diff --git a/glibc-RHEL-111115-1.patch b/glibc-RHEL-111115-1.patch new file mode 100644 index 0000000..32e48af --- /dev/null +++ b/glibc-RHEL-111115-1.patch @@ -0,0 +1,81 @@ +commit 84373ef7b72c9c8ab61ce1fdfd798777715a1a52 +Author: Frédéric Bérat +Date: Fri Mar 7 14:42:26 2025 +0100 + + Prepare inet_ntop to be fortified + + Rename inet_ntop to __inet_ntop and create the inet_ntop weak alias + based on it in order to prepare for disabling fortification when + available. + + Reviewed-by: Florian Weimer + +diff --git a/include/arpa/inet.h b/include/arpa/inet.h +index df9472ba3bc52689..d1ea13bb19d4a497 100644 +--- a/include/arpa/inet.h ++++ b/include/arpa/inet.h +@@ -5,7 +5,9 @@ + extern int __inet_aton_exact (const char *__cp, struct in_addr *__inp); + libc_hidden_proto (__inet_aton_exact) + +-libc_hidden_proto (inet_ntop) ++extern __typeof (inet_ntop) __inet_ntop; ++libc_hidden_proto (__inet_ntop) ++ + libc_hidden_proto (inet_pton) + extern __typeof (inet_pton) __inet_pton; + libc_hidden_proto (__inet_pton) +diff --git a/nss/getnameinfo.c b/nss/getnameinfo.c +index 889c0a35d29b676e..36c5401a7645d7d2 100644 +--- a/nss/getnameinfo.c ++++ b/nss/getnameinfo.c +@@ -338,7 +338,7 @@ gni_host_inet_numeric (struct scratch_buffer *tmpbuf, + if (sa->sa_family == AF_INET6) + { + const struct sockaddr_in6 *sin6p = (const struct sockaddr_in6 *) sa; +- if (inet_ntop (AF_INET6, &sin6p->sin6_addr, host, hostlen) == NULL) ++ if (__inet_ntop (AF_INET6, &sin6p->sin6_addr, host, hostlen) == NULL) + return EAI_OVERFLOW; + + uint32_t scopeid = sin6p->sin6_scope_id; +@@ -365,7 +365,7 @@ gni_host_inet_numeric (struct scratch_buffer *tmpbuf, + else + { + const struct sockaddr_in *sinp = (const struct sockaddr_in *) sa; +- if (inet_ntop (AF_INET, &sinp->sin_addr, host, hostlen) == NULL) ++ if (__inet_ntop (AF_INET, &sinp->sin_addr, host, hostlen) == NULL) + return EAI_OVERFLOW; + } + return 0; +diff --git a/resolv/inet_ntop.c b/resolv/inet_ntop.c +index c4d38c0f951013e5..acf5f3cb885e2e47 100644 +--- a/resolv/inet_ntop.c ++++ b/resolv/inet_ntop.c +@@ -42,7 +42,7 @@ static const char *inet_ntop4 (const u_char *src, char *dst, socklen_t size); + static const char *inet_ntop6 (const u_char *src, char *dst, socklen_t size); + + /* char * +- * inet_ntop(af, src, dst, size) ++ * __inet_ntop(af, src, dst, size) + * convert a network format address to presentation format. + * return: + * pointer to presentation format address (`dst'), or NULL (see errno). +@@ -50,7 +50,7 @@ static const char *inet_ntop6 (const u_char *src, char *dst, socklen_t size); + * Paul Vixie, 1996. + */ + const char * +-inet_ntop (int af, const void *src, char *dst, socklen_t size) ++__inet_ntop (int af, const void *src, char *dst, socklen_t size) + { + switch (af) { + case AF_INET: +@@ -63,7 +63,8 @@ inet_ntop (int af, const void *src, char *dst, socklen_t size) + } + /* NOTREACHED */ + } +-libc_hidden_def (inet_ntop) ++libc_hidden_def (__inet_ntop) ++weak_alias (__inet_ntop, inet_ntop) + + /* const char * + * inet_ntop4(src, dst, size) diff --git a/glibc-RHEL-111115-2.patch b/glibc-RHEL-111115-2.patch new file mode 100644 index 0000000..ca6bade --- /dev/null +++ b/glibc-RHEL-111115-2.patch @@ -0,0 +1,26 @@ +commit 3cdb99d8bb9d0008b2b297080e61d6c10dd66cc8 +Author: Frédéric Bérat +Date: Tue Mar 11 10:40:11 2025 +0100 + + Add missing guards in include/arpa/inet.h + + Add the missing guards in the header, similarly to other headers at the + same level + + Reviewed-by: Florian Weimer + +diff --git a/include/arpa/inet.h b/include/arpa/inet.h +index d1ea13bb19d4a497..d9e55a3c7f2db9f2 100644 +--- a/include/arpa/inet.h ++++ b/include/arpa/inet.h +@@ -1,3 +1,5 @@ ++#ifndef _ARPA_INET_H ++/* Note: _ARPA_INET_H is defined by inet/arpa/inet.h below. */ + #include + + #ifndef _ISOMAC +@@ -17,3 +19,4 @@ libc_hidden_proto (inet_netof) + extern __typeof (inet_network) __inet_network; + libc_hidden_proto (__inet_network) + #endif ++#endif diff --git a/glibc-RHEL-111115-3.patch b/glibc-RHEL-111115-3.patch new file mode 100644 index 0000000..c230044 --- /dev/null +++ b/glibc-RHEL-111115-3.patch @@ -0,0 +1,318 @@ +Partial backport (without ABI changes, using libc_nonshared.a instead) +of: + +commit 090dfa40a5e46f7c0e4d6e8369bcbbd51267625f +Author: Frédéric Bérat +Date: Fri Mar 7 18:16:30 2025 +0100 + + Add _FORTIFY_SOURCE support for inet_ntop + + - Create the __inet_ntop_chk routine that verifies that the builtin size + of the destination buffer is at least as big as the size given by the + user. + - Redirect calls from inet_ntop to __inet_ntop_chk or __inet_ntop_warn + - Update the abilist (Dropped) for this new routine + - Update the manual to mention the new fortification + + Reviewed-by: Florian Weimer + +Conflicts: + debug/inet_ntop_chk.c + (attribute_hidden added, use inet_ntop instead of __inet_ntop) + debug/Makefile + (Routine added to static-only-routines) + debug/Versions + (Dropped) + inet/bits/inet-fortified.h + (removed attribute_overloadable and clang specific handling) + sysdeps/mach/hurd/i386/libc.abilist + sysdeps/mach/hurd/x86_64/libc.abilist + sysdeps/unix/sysv/linux/aarch64/libc.abilist + sysdeps/unix/sysv/linux/alpha/libc.abilist + sysdeps/unix/sysv/linux/arc/libc.abilist + sysdeps/unix/sysv/linux/arm/be/libc.abilist + sysdeps/unix/sysv/linux/arm/le/libc.abilist + sysdeps/unix/sysv/linux/csky/libc.abilist + sysdeps/unix/sysv/linux/hppa/libc.abilist + sysdeps/unix/sysv/linux/i386/libc.abilist + sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist + sysdeps/unix/sysv/linux/microblaze/be/libc.abilist + sysdeps/unix/sysv/linux/microblaze/le/libc.abilist + sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist + sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist + sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist + sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist + sysdeps/unix/sysv/linux/or1k/libc.abilist + sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist + sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist + sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist + sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist + sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist + sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist + sysdeps/unix/sysv/linux/sh/be/libc.abilist + sysdeps/unix/sysv/linux/sh/le/libc.abilist + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist + sysdeps/unix/sysv/linux/x86_64/64/libc.abilist + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist + (Dropped) + +diff --git a/debug/Makefile b/debug/Makefile +index 76c311d2845df9c1..db9a400711a2ce91 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -119,7 +119,10 @@ routines = \ + wmemset_chk \ + wprintf_chk \ + # routines +-static-only-routines := stack_chk_fail_local ++static-only-routines := \ ++ inet_ntop_chk \ ++ stack_chk_fail_local \ ++ # static-only-routines + + # Don't add stack_chk_fail_local.o to libc.a since __stack_chk_fail_local + # is an alias of __stack_chk_fail in stack_chk_fail.o. +diff --git a/debug/inet_ntop_chk.c b/debug/inet_ntop_chk.c +new file mode 100644 +index 0000000000000000..8a3994dd3fc9bfe4 +--- /dev/null ++++ b/debug/inet_ntop_chk.c +@@ -0,0 +1,31 @@ ++/* Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++ ++attribute_hidden ++const char * ++__inet_ntop_chk (int af, const void *src, char *dst, ++ socklen_t size, size_t dst_size) ++{ ++ if (size > dst_size) ++ __chk_fail (); ++ ++ return inet_ntop (af, src, dst, size); ++} ++libc_hidden_def (__inet_ntop_chk) +diff --git a/debug/tst-fortify.c b/debug/tst-fortify.c +index ae738ff10a305575..f9b97531749d363b 100644 +--- a/debug/tst-fortify.c ++++ b/debug/tst-fortify.c +@@ -23,6 +23,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -1832,6 +1833,26 @@ do_test (void) + # endif + #endif + ++ struct in6_addr addr6 = {}; ++ struct in_addr addr = {}; ++ char addrstr6[INET6_ADDRSTRLEN]; ++ char addrstr[INET_ADDRSTRLEN]; ++ ++ if (inet_ntop (AF_INET6, &addr6, addrstr6, sizeof (addrstr6)) == NULL) ++ FAIL (); ++ if (inet_ntop (AF_INET, &addr, addrstr, sizeof (addrstr)) == NULL) ++ FAIL (); ++ ++#if __USE_FORTIFY_LEVEL >= 1 ++ CHK_FAIL_START ++ inet_ntop (AF_INET6, &addr6, buf, INET6_ADDRSTRLEN); ++ CHK_FAIL_END ++ ++ CHK_FAIL_START ++ inet_ntop (AF_INET, &addr, buf, INET_ADDRSTRLEN); ++ CHK_FAIL_END ++#endif ++ + return ret; + } + +diff --git a/include/arpa/inet.h b/include/arpa/inet.h +index d9e55a3c7f2db9f2..a02892f48a27454e 100644 +--- a/include/arpa/inet.h ++++ b/include/arpa/inet.h +@@ -3,12 +3,18 @@ + #include + + #ifndef _ISOMAC ++/* Declare functions with security checks. ++ This needs to be included unconditionally as these definition are needed even ++ when fortification is disabled in inet/arpa/inet.h. */ ++#include ++ + /* Variant of inet_aton which rejects trailing garbage. */ + extern int __inet_aton_exact (const char *__cp, struct in_addr *__inp); + libc_hidden_proto (__inet_aton_exact) + + extern __typeof (inet_ntop) __inet_ntop; + libc_hidden_proto (__inet_ntop) ++libc_hidden_proto (__inet_ntop_chk) + + libc_hidden_proto (inet_pton) + extern __typeof (inet_pton) __inet_pton; +diff --git a/include/bits/inet-fortified-decl.h b/include/bits/inet-fortified-decl.h +new file mode 100644 +index 0000000000000000..e6ad4d4663c61a0d +--- /dev/null ++++ b/include/bits/inet-fortified-decl.h +@@ -0,0 +1 @@ ++#include +diff --git a/include/bits/inet-fortified.h b/include/bits/inet-fortified.h +new file mode 100644 +index 0000000000000000..abba7c57014c2a23 +--- /dev/null ++++ b/include/bits/inet-fortified.h +@@ -0,0 +1 @@ ++#include +diff --git a/inet/Makefile b/inet/Makefile +index cb97b45f0f9d223f..01208235c4f800bb 100644 +--- a/inet/Makefile ++++ b/inet/Makefile +@@ -25,6 +25,8 @@ include ../Makeconfig + headers := \ + $(wildcard arpa/*.h protocols/*.h) \ + bits/in.h \ ++ bits/inet-fortified-decl.h \ ++ bits/inet-fortified.h \ + ifaddrs.h \ + netinet/ether.h \ + netinet/icmp6.h \ +diff --git a/inet/arpa/inet.h b/inet/arpa/inet.h +index c005340a8004dcaf..2b8eac147280306e 100644 +--- a/inet/arpa/inet.h ++++ b/inet/arpa/inet.h +@@ -101,6 +101,11 @@ extern char *inet_nsap_ntoa (int __len, const unsigned char *__cp, + char *__buf) __THROW; + #endif + ++#if __USE_FORTIFY_LEVEL > 0 && defined __fortify_function ++/* Include functions with security checks. */ ++# include ++#endif ++ + __END_DECLS + + #endif /* arpa/inet.h */ +diff --git a/inet/bits/inet-fortified-decl.h b/inet/bits/inet-fortified-decl.h +new file mode 100644 +index 0000000000000000..23e3cf4b2238c81a +--- /dev/null ++++ b/inet/bits/inet-fortified-decl.h +@@ -0,0 +1,35 @@ ++/* Declarations of checking macros for inet functions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#ifndef _BITS_INET_FORTIFIED_DEC_H ++#define _BITS_INET_FORTIFIED_DEC_H 1 ++ ++#ifndef _ARPA_INET_H ++# error "Never include directly; use instead." ++#endif ++ ++extern const char *__inet_ntop_chk (int, const void *, char *, socklen_t, size_t); ++ ++extern const char *__REDIRECT_FORTIFY_NTH (__inet_ntop_alias, ++ (int, const void *, char *, socklen_t), inet_ntop); ++extern const char *__REDIRECT_NTH (__inet_ntop_chk_warn, ++ (int, const void *, char *, socklen_t, size_t), __inet_ntop_chk) ++ __warnattr ("inet_ntop called with bigger length than " ++ "size of destination buffer"); ++ ++#endif /* bits/inet-fortified-decl.h. */ +diff --git a/inet/bits/inet-fortified.h b/inet/bits/inet-fortified.h +new file mode 100644 +index 0000000000000000..af26f36ef6ae0533 +--- /dev/null ++++ b/inet/bits/inet-fortified.h +@@ -0,0 +1,37 @@ ++/* Checking macros for inet functions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#ifndef _BITS_INET_FORTIFIED_H ++#define _BITS_INET_FORTIFIED_H 1 ++ ++#ifndef _ARPA_INET_H ++# error "Never include directly; use instead." ++#endif ++ ++#include ++ ++__fortify_function const char * ++__NTH (inet_ntop (int __af, const void * __restrict __src, ++ char *__restrict __dst, socklen_t __dst_size)) ++{ ++ return __glibc_fortify (inet_ntop, __dst_size, sizeof (char), ++ __glibc_objsize (__dst), ++ __af, __src, __dst, __dst_size); ++}; ++ ++#endif /* bits/inet-fortified.h. */ +diff --git a/manual/maint.texi b/manual/maint.texi +index 04faa222e2bd2fc4..ce6a556c68925b49 100644 +--- a/manual/maint.texi ++++ b/manual/maint.texi +@@ -303,6 +303,8 @@ The following functions and macros are fortified in @theglibc{}: + + @item @code{getwd} + ++@item @code{inet_ntop} ++ + @item @code{longjmp} + + @item @code{mbsnrtowcs} diff --git a/glibc-RHEL-111115-4.patch b/glibc-RHEL-111115-4.patch new file mode 100644 index 0000000..09a32a9 --- /dev/null +++ b/glibc-RHEL-111115-4.patch @@ -0,0 +1,471 @@ +commit a71db81ed1353edd00ca2901d2fefd98c53209d3 +Author: Aaron Merey +Date: Thu Mar 20 11:07:05 2025 -0400 + + Prepare inet_pton to be fortified + + Split inet_pton internals such as __inet_pton_length from the + inet_pton entry point. + + This allows the internals to be built with fortification while + leaving the inet_pton entry point unchanged. + + Co-authored-by: Frédéric Bérat + Reviewed-by: Florian Weimer + +diff --git a/resolv/Makefile b/resolv/Makefile +index abff7fc0074e893b..05fb04edf1082690 100644 +--- a/resolv/Makefile ++++ b/resolv/Makefile +@@ -38,6 +38,7 @@ routines := \ + inet_addr \ + inet_ntop \ + inet_pton \ ++ inet_pton_length \ + ns_makecanon \ + ns_name_compress \ + ns_name_length_uncompressed \ +@@ -73,6 +74,11 @@ routines := \ + resolv_context \ + # routines + ++# Exclude fortified routines from being built with _FORTIFY_SOURCE ++routines_no_fortify += \ ++ inet_pton \ ++ # routines_no_fortify ++ + tests = tst-aton tst-leaks tst-inet_ntop + tests-container = tst-leaks2 + +diff --git a/resolv/inet_pton.c b/resolv/inet_pton.c +index 96ca3e4f9e1790a0..70f6fa177582f2cc 100644 +--- a/resolv/inet_pton.c ++++ b/resolv/inet_pton.c +@@ -33,33 +33,7 @@ + */ + + #include +-#include +-#include +-#include +-#include + #include +-#include +-#include +-#include +- +-static int inet_pton4 (const char *src, const char *src_end, u_char *dst); +-static int inet_pton6 (const char *src, const char *src_end, u_char *dst); +- +-int +-__inet_pton_length (int af, const char *src, size_t srclen, void *dst) +-{ +- switch (af) +- { +- case AF_INET: +- return inet_pton4 (src, src + srclen, dst); +- case AF_INET6: +- return inet_pton6 (src, src + srclen, dst); +- default: +- __set_errno (EAFNOSUPPORT); +- return -1; +- } +-} +-libc_hidden_def (__inet_pton_length) + + /* Like __inet_pton_length, but use strlen (SRC) as the length of + SRC. */ +@@ -71,164 +45,3 @@ __inet_pton (int af, const char *src, void *dst) + libc_hidden_def (__inet_pton) + weak_alias (__inet_pton, inet_pton) + libc_hidden_weak (inet_pton) +- +-/* Like inet_aton but without all the hexadecimal, octal and shorthand +- (and trailing garbage is not ignored). Return 1 if SRC is a valid +- dotted quad, else 0. This function does not touch DST unless it's +- returning 1. +- Author: Paul Vixie, 1996. */ +-static int +-inet_pton4 (const char *src, const char *end, unsigned char *dst) +-{ +- int saw_digit, octets, ch; +- unsigned char tmp[NS_INADDRSZ], *tp; +- +- saw_digit = 0; +- octets = 0; +- *(tp = tmp) = 0; +- while (src < end) +- { +- ch = *src++; +- if (ch >= '0' && ch <= '9') +- { +- unsigned int new = *tp * 10 + (ch - '0'); +- +- if (saw_digit && *tp == 0) +- return 0; +- if (new > 255) +- return 0; +- *tp = new; +- if (! saw_digit) +- { +- if (++octets > 4) +- return 0; +- saw_digit = 1; +- } +- } +- else if (ch == '.' && saw_digit) +- { +- if (octets == 4) +- return 0; +- *++tp = 0; +- saw_digit = 0; +- } +- else +- return 0; +- } +- if (octets < 4) +- return 0; +- memcpy (dst, tmp, NS_INADDRSZ); +- return 1; +-} +- +-/* Return the value of CH as a hexadecimal digit, or -1 if it is a +- different type of character. */ +-static int +-hex_digit_value (char ch) +-{ +- if ('0' <= ch && ch <= '9') +- return ch - '0'; +- if ('a' <= ch && ch <= 'f') +- return ch - 'a' + 10; +- if ('A' <= ch && ch <= 'F') +- return ch - 'A' + 10; +- return -1; +-} +- +-/* Convert presentation-level IPv6 address to network order binary +- form. Return 1 if SRC is a valid [RFC1884 2.2] address, else 0. +- This function does not touch DST unless it's returning 1. +- Author: Paul Vixie, 1996. Inspired by Mark Andrews. */ +-static int +-inet_pton6 (const char *src, const char *src_endp, unsigned char *dst) +-{ +- unsigned char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp; +- const char *curtok; +- int ch; +- size_t xdigits_seen; /* Number of hex digits since colon. */ +- unsigned int val; +- +- tp = memset (tmp, '\0', NS_IN6ADDRSZ); +- endp = tp + NS_IN6ADDRSZ; +- colonp = NULL; +- +- /* Leading :: requires some special handling. */ +- if (src == src_endp) +- return 0; +- if (*src == ':') +- { +- ++src; +- if (src == src_endp || *src != ':') +- return 0; +- } +- +- curtok = src; +- xdigits_seen = 0; +- val = 0; +- while (src < src_endp) +- { +- ch = *src++; +- int digit = hex_digit_value (ch); +- if (digit >= 0) +- { +- if (xdigits_seen == 4) +- return 0; +- val <<= 4; +- val |= digit; +- if (val > 0xffff) +- return 0; +- ++xdigits_seen; +- continue; +- } +- if (ch == ':') +- { +- curtok = src; +- if (xdigits_seen == 0) +- { +- if (colonp) +- return 0; +- colonp = tp; +- continue; +- } +- else if (src == src_endp) +- return 0; +- if (tp + NS_INT16SZ > endp) +- return 0; +- *tp++ = (unsigned char) (val >> 8) & 0xff; +- *tp++ = (unsigned char) val & 0xff; +- xdigits_seen = 0; +- val = 0; +- continue; +- } +- if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) +- && inet_pton4 (curtok, src_endp, tp) > 0) +- { +- tp += NS_INADDRSZ; +- xdigits_seen = 0; +- break; /* '\0' was seen by inet_pton4. */ +- } +- return 0; +- } +- if (xdigits_seen > 0) +- { +- if (tp + NS_INT16SZ > endp) +- return 0; +- *tp++ = (unsigned char) (val >> 8) & 0xff; +- *tp++ = (unsigned char) val & 0xff; +- } +- if (colonp != NULL) +- { +- /* Replace :: with zeros. */ +- if (tp == endp) +- /* :: would expand to a zero-width field. */ +- return 0; +- size_t n = tp - colonp; +- memmove (endp - n, colonp, n); +- memset (colonp, 0, endp - n - colonp); +- tp = endp; +- } +- if (tp != endp) +- return 0; +- memcpy (dst, tmp, NS_IN6ADDRSZ); +- return 1; +-} +diff --git a/resolv/inet_pton_length.c b/resolv/inet_pton_length.c +new file mode 100644 +index 0000000000000000..c3614074a47140c1 +--- /dev/null ++++ b/resolv/inet_pton_length.c +@@ -0,0 +1,223 @@ ++/* Copyright (C) 1996-2025 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 ++ . */ ++ ++/* ++ * Copyright (c) 1996,1999 by Internet Software Consortium. ++ * ++ * Permission to use, copy, modify, and distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS ++ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE ++ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL ++ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR ++ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ++ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS ++ * SOFTWARE. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int inet_pton4 (const char *src, const char *src_end, u_char *dst); ++static int inet_pton6 (const char *src, const char *src_end, u_char *dst); ++ ++int ++__inet_pton_length (int af, const char *src, size_t srclen, void *dst) ++{ ++ switch (af) ++ { ++ case AF_INET: ++ return inet_pton4 (src, src + srclen, dst); ++ case AF_INET6: ++ return inet_pton6 (src, src + srclen, dst); ++ default: ++ __set_errno (EAFNOSUPPORT); ++ return -1; ++ } ++} ++libc_hidden_def (__inet_pton_length) ++ ++/* Like inet_aton but without all the hexadecimal, octal and shorthand ++ (and trailing garbage is not ignored). Return 1 if SRC is a valid ++ dotted quad, else 0. This function does not touch DST unless it's ++ returning 1. ++ Author: Paul Vixie, 1996. */ ++static int ++inet_pton4 (const char *src, const char *end, unsigned char *dst) ++{ ++ int saw_digit, octets, ch; ++ unsigned char tmp[NS_INADDRSZ], *tp; ++ ++ saw_digit = 0; ++ octets = 0; ++ *(tp = tmp) = 0; ++ while (src < end) ++ { ++ ch = *src++; ++ if (ch >= '0' && ch <= '9') ++ { ++ unsigned int new = *tp * 10 + (ch - '0'); ++ ++ if (saw_digit && *tp == 0) ++ return 0; ++ if (new > 255) ++ return 0; ++ *tp = new; ++ if (! saw_digit) ++ { ++ if (++octets > 4) ++ return 0; ++ saw_digit = 1; ++ } ++ } ++ else if (ch == '.' && saw_digit) ++ { ++ if (octets == 4) ++ return 0; ++ *++tp = 0; ++ saw_digit = 0; ++ } ++ else ++ return 0; ++ } ++ if (octets < 4) ++ return 0; ++ memcpy (dst, tmp, NS_INADDRSZ); ++ return 1; ++} ++ ++/* Return the value of CH as a hexadecimal digit, or -1 if it is a ++ different type of character. */ ++static int ++hex_digit_value (char ch) ++{ ++ if ('0' <= ch && ch <= '9') ++ return ch - '0'; ++ if ('a' <= ch && ch <= 'f') ++ return ch - 'a' + 10; ++ if ('A' <= ch && ch <= 'F') ++ return ch - 'A' + 10; ++ return -1; ++} ++ ++/* Convert presentation-level IPv6 address to network order binary ++ form. Return 1 if SRC is a valid [RFC1884 2.2] address, else 0. ++ This function does not touch DST unless it's returning 1. ++ Author: Paul Vixie, 1996. Inspired by Mark Andrews. */ ++static int ++inet_pton6 (const char *src, const char *src_endp, unsigned char *dst) ++{ ++ unsigned char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp; ++ const char *curtok; ++ int ch; ++ size_t xdigits_seen; /* Number of hex digits since colon. */ ++ unsigned int val; ++ ++ tp = memset (tmp, '\0', NS_IN6ADDRSZ); ++ endp = tp + NS_IN6ADDRSZ; ++ colonp = NULL; ++ ++ /* Leading :: requires some special handling. */ ++ if (src == src_endp) ++ return 0; ++ if (*src == ':') ++ { ++ ++src; ++ if (src == src_endp || *src != ':') ++ return 0; ++ } ++ ++ curtok = src; ++ xdigits_seen = 0; ++ val = 0; ++ while (src < src_endp) ++ { ++ ch = *src++; ++ int digit = hex_digit_value (ch); ++ if (digit >= 0) ++ { ++ if (xdigits_seen == 4) ++ return 0; ++ val <<= 4; ++ val |= digit; ++ if (val > 0xffff) ++ return 0; ++ ++xdigits_seen; ++ continue; ++ } ++ if (ch == ':') ++ { ++ curtok = src; ++ if (xdigits_seen == 0) ++ { ++ if (colonp) ++ return 0; ++ colonp = tp; ++ continue; ++ } ++ else if (src == src_endp) ++ return 0; ++ if (tp + NS_INT16SZ > endp) ++ return 0; ++ *tp++ = (unsigned char) (val >> 8) & 0xff; ++ *tp++ = (unsigned char) val & 0xff; ++ xdigits_seen = 0; ++ val = 0; ++ continue; ++ } ++ if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) ++ && inet_pton4 (curtok, src_endp, tp) > 0) ++ { ++ tp += NS_INADDRSZ; ++ xdigits_seen = 0; ++ break; /* '\0' was seen by inet_pton4. */ ++ } ++ return 0; ++ } ++ if (xdigits_seen > 0) ++ { ++ if (tp + NS_INT16SZ > endp) ++ return 0; ++ *tp++ = (unsigned char) (val >> 8) & 0xff; ++ *tp++ = (unsigned char) val & 0xff; ++ } ++ if (colonp != NULL) ++ { ++ /* Replace :: with zeros. */ ++ if (tp == endp) ++ /* :: would expand to a zero-width field. */ ++ return 0; ++ size_t n = tp - colonp; ++ memmove (endp - n, colonp, n); ++ memset (colonp, 0, endp - n - colonp); ++ tp = endp; ++ } ++ if (tp != endp) ++ return 0; ++ memcpy (dst, tmp, NS_IN6ADDRSZ); ++ return 1; ++} diff --git a/glibc-RHEL-111115-5.patch b/glibc-RHEL-111115-5.patch new file mode 100644 index 0000000..585e570 --- /dev/null +++ b/glibc-RHEL-111115-5.patch @@ -0,0 +1,216 @@ +Partial backport (without ABI changes, using libc_nonshared.a instead) +of: + +commit e3a6e85d67f1a48dec3e2557a83d6ce1544a58cb +Author: Aaron Merey +Date: Thu Mar 20 13:13:33 2025 -0400 + + Add _FORTIFY_SOURCE support for inet_pton + + Add function __inet_pton_chk which calls __chk_fail when the size of + argument dst is too small. inet_pton is redirected to __inet_pton_chk + or __inet_pton_warn when _FORTIFY_SOURCE is > 0. + + Also add tests to debug/tst-fortify.c, update the abilist (Dropped) with + __inet_pton_chk and mention inet_pton fortification in maint.texi. + + Co-authored-by: Frédéric Bérat + Reviewed-by: Florian Weimer + +Conflicts: + debug/inet_pton_chk.c + (attribute_hidden added, use inet_pton instead of __inet_pton) + debug/Makefile + (routine added to static-routines-only) + debug/Versions + (Dropped) + inet/bits/inet-fortified.h + (removed attribute_overloadable and clang specific handling) + sysdeps/mach/hurd/i386/libc.abilist + sysdeps/mach/hurd/x86_64/libc.abilist + sysdeps/unix/sysv/linux/aarch64/libc.abilist + sysdeps/unix/sysv/linux/alpha/libc.abilist + sysdeps/unix/sysv/linux/arc/libc.abilist + sysdeps/unix/sysv/linux/arm/be/libc.abilist + sysdeps/unix/sysv/linux/arm/le/libc.abilist + sysdeps/unix/sysv/linux/csky/libc.abilist + sysdeps/unix/sysv/linux/hppa/libc.abilist + sysdeps/unix/sysv/linux/i386/libc.abilist + sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist + sysdeps/unix/sysv/linux/microblaze/be/libc.abilist + sysdeps/unix/sysv/linux/microblaze/le/libc.abilist + sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist + sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist + sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist + sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist + sysdeps/unix/sysv/linux/or1k/libc.abilist + sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist + sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist + sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist + sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist + sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist + sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist + sysdeps/unix/sysv/linux/sh/be/libc.abilist + sysdeps/unix/sysv/linux/sh/le/libc.abilist + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist + sysdeps/unix/sysv/linux/x86_64/64/libc.abilist + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist + (Dropped) + +diff --git a/debug/Makefile b/debug/Makefile +index a2d236e28eda8b47..5a7295678cb1eed1 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -122,6 +122,7 @@ routines = \ + static-only-routines := \ + inet_ntop_chk \ ++ inet_pton_chk \ + stack_chk_fail_local \ + # static-only-routines + + # Don't add stack_chk_fail_local.o to libc.a since __stack_chk_fail_local +diff --git a/debug/inet_pton_chk.c b/debug/inet_pton_chk.c +new file mode 100644 +index 0000000000000000..feca3bff5a4ded2f +--- /dev/null ++++ b/debug/inet_pton_chk.c +@@ -0,0 +1,31 @@ ++/* Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++ ++attribute_hidden ++int ++__inet_pton_chk (int af, const char *src, void *dst, size_t dst_size) ++{ ++ if ((af == AF_INET && dst_size < 4) ++ || (af == AF_INET6 && dst_size < 16)) ++ __chk_fail (); ++ ++ return inet_pton (af, src, dst); ++} ++libc_hidden_def (__inet_pton_chk) +diff --git a/debug/tst-fortify.c b/debug/tst-fortify.c +index f9b97531749d363b..0e44594a181fdba5 100644 +--- a/debug/tst-fortify.c ++++ b/debug/tst-fortify.c +@@ -1853,6 +1853,30 @@ do_test (void) + CHK_FAIL_END + #endif + ++ const char *ipv4str = "127.0.0.1"; ++ const char *ipv6str = "::1"; ++ ++ if (inet_pton (AF_INET, ipv4str, (void *) &addr) != 1) ++ FAIL (); ++ if (inet_pton (AF_INET6, ipv6str, (void *) &addr6) != 1) ++ FAIL (); ++ ++#if __USE_FORTIFY_LEVEL >= 1 ++ char smallbuf[2]; ++ ++ CHK_FAIL_START ++ inet_pton (AF_INET, ipv4str, (void *) smallbuf); ++ CHK_FAIL_END ++ ++ CHK_FAIL_START ++ inet_pton (AF_INET6, ipv6str, (void *) smallbuf); ++ CHK_FAIL_END ++ ++ CHK_FAIL_START ++ inet_pton (AF_INET6, ipv6str, (void *) &addr); ++ CHK_FAIL_END ++#endif ++ + return ret; + } + +diff --git a/include/arpa/inet.h b/include/arpa/inet.h +index a02892f48a27454e..3db8f1a96fdbd6fd 100644 +--- a/include/arpa/inet.h ++++ b/include/arpa/inet.h +@@ -19,6 +19,8 @@ libc_hidden_proto (__inet_ntop_chk) + libc_hidden_proto (inet_pton) + extern __typeof (inet_pton) __inet_pton; + libc_hidden_proto (__inet_pton) ++libc_hidden_proto (__inet_pton_chk) ++ + extern __typeof (inet_makeaddr) __inet_makeaddr; + libc_hidden_proto (__inet_makeaddr) + libc_hidden_proto (inet_netof) +diff --git a/inet/bits/inet-fortified-decl.h b/inet/bits/inet-fortified-decl.h +index 23e3cf4b2238c81a..748a119f149d790b 100644 +--- a/inet/bits/inet-fortified-decl.h ++++ b/inet/bits/inet-fortified-decl.h +@@ -32,4 +32,11 @@ extern const char *__REDIRECT_NTH (__inet_ntop_chk_warn, + __warnattr ("inet_ntop called with bigger length than " + "size of destination buffer"); + ++extern int __inet_pton_chk (int, const char *, void *, size_t); ++ ++extern int __REDIRECT_FORTIFY_NTH (__inet_pton_alias, ++ (int, const char *, void *), inet_pton); ++extern int __REDIRECT_NTH (__inet_pton_chk_warn, ++ (int, const char *, void *, size_t), __inet_pton_chk) ++ __warnattr ("inet_pton called with a destination buffer size too small"); + #endif /* bits/inet-fortified-decl.h. */ +diff --git a/inet/bits/inet-fortified.h b/inet/bits/inet-fortified.h +index af26f36ef6ae0533..8420a4b7fb41086f 100644 +--- a/inet/bits/inet-fortified.h ++++ b/inet/bits/inet-fortified.h +@@ -34,4 +34,21 @@ __NTH (inet_ntop (int __af, const void * __restrict __src, + __af, __src, __dst, __dst_size); + }; + ++__fortify_function int ++__NTH (inet_pton (int __af, const char *__restrict __src, ++ void * __restrict __dst)) ++{ ++ size_t sz = 0; ++ if (__af == AF_INET) ++ sz = sizeof (struct in_addr); ++ else if (__af == AF_INET6) ++ sz = sizeof (struct in6_addr); ++ else ++ return __inet_pton_alias (__af, __src, __dst); ++ ++ return __glibc_fortify (inet_pton, sz, sizeof (char), ++ __glibc_objsize (__dst), ++ __af, __src, __dst); ++}; ++ + #endif /* bits/inet-fortified.h. */ +diff --git a/manual/maint.texi b/manual/maint.texi +index ce6a556c68925b49..b6ee5b6e3bdf768c 100644 +--- a/manual/maint.texi ++++ b/manual/maint.texi +@@ -305,6 +305,8 @@ The following functions and macros are fortified in @theglibc{}: + + @item @code{inet_ntop} + ++@item @code{inet_pton} ++ + @item @code{longjmp} + + @item @code{mbsnrtowcs} diff --git a/glibc-RHEL-111115-6.patch b/glibc-RHEL-111115-6.patch new file mode 100644 index 0000000..d8232fc --- /dev/null +++ b/glibc-RHEL-111115-6.patch @@ -0,0 +1,34 @@ +commit 87afbd7a1ad9c1dd116921817fa97198171045db +Author: Sam James +Date: Mon Jul 28 21:55:30 2025 +0100 + + inet-fortified: fix namespace violation (bug 33227) + + We need to use __sz, not sz, as we do elsewhere. + + Reviewed-by: Florian Weimer + +diff --git a/inet/bits/inet-fortified.h b/inet/bits/inet-fortified.h +index 8420a4b7fb41086f..5d16b1f871c49e6f 100644 +--- a/inet/bits/inet-fortified.h ++++ b/inet/bits/inet-fortified.h +@@ -38,15 +38,15 @@ __fortify_function int + __NTH (inet_pton (int __af, const char *__restrict __src, + void * __restrict __dst)) + { +- size_t sz = 0; ++ size_t __sz = 0; + if (__af == AF_INET) +- sz = sizeof (struct in_addr); ++ __sz = sizeof (struct in_addr); + else if (__af == AF_INET6) +- sz = sizeof (struct in6_addr); ++ __sz = sizeof (struct in6_addr); + else + return __inet_pton_alias (__af, __src, __dst); + +- return __glibc_fortify (inet_pton, sz, sizeof (char), ++ return __glibc_fortify (inet_pton, __sz, sizeof (char), + __glibc_objsize (__dst), + __af, __src, __dst); + }; diff --git a/glibc-RHEL-111117-1.patch b/glibc-RHEL-111117-1.patch new file mode 100644 index 0000000..542e89b --- /dev/null +++ b/glibc-RHEL-111117-1.patch @@ -0,0 +1,230 @@ +commit f6ba993e0cda0ca5554fd47b00e6a87be5fdf05e +Author: Adhemerval Zanella +Date: Thu Jul 25 15:41:44 2024 -0300 + + stdlib: Allow concurrent exit (BZ 31997) + + Even if C/POSIX standard states that exit is not formally thread-unsafe, + calling it more than once is UB. The glibc already supports + it for the single-thread, and both elf/nodelete2.c and tst-rseq-disable.c + call exit from a DSO destructor (which is called by _dl_fini, registered + at program startup with __cxa_atexit). + + However, there are still race issues when it is called more than once + concurrently by multiple threads. A recent Rust PR triggered this + issue [1], which resulted in an Austin Group ask for clarification [2]. + Besides it, there is a discussion to make concurrent calling not UB [3], + wtih a defined semantic where any remaining callers block until the first + call to exit has finished (reentrant calls, leaving through longjmp, and + exceptions are still undefined). + + For glibc, at least reentrant calls are required to be supported to avoid + changing the current behaviour. This requires locking using a recursive + lock, where any exit called by atexit() handlers resumes at the point of + the current handler (thus avoiding calling the current handle multiple + times). + + Checked on x86_64-linux-gnu and aarch64-linux-gnu. + + [1] https://github.com/rust-lang/rust/issues/126600 + [2] https://austingroupbugs.net/view.php?id=1845 + [3] https://www.openwall.com/lists/libc-coord/2024/07/24/4 + Reviewed-by: Carlos O'Donell + +diff --git a/stdlib/Makefile b/stdlib/Makefile +index 12f8820fd0668039..e15d154885fadc47 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -273,6 +273,7 @@ tests := \ + tst-bsearch \ + tst-bz20544 \ + tst-canon-bz26341 \ ++ tst-concurrent-exit \ + tst-cxa_atexit \ + tst-environ \ + tst-environ-change-1 \ +diff --git a/stdlib/exit.c b/stdlib/exit.c +index 5166c78044335398..bbaf1388068a1cea 100644 +--- a/stdlib/exit.c ++++ b/stdlib/exit.c +@@ -132,9 +132,17 @@ __run_exit_handlers (int status, struct exit_function_list **listp, + } + + ++/* The lock handles concurrent exit(), even though the C/POSIX standard states ++ that calling exit() more than once is UB. The recursive lock allows ++ atexit() handlers or destructors to call exit() itself. In this case, the ++ handler list execution will resume at the point of the current handler. */ ++__libc_lock_define_initialized_recursive (static, __exit_lock) ++ + void + exit (int status) + { ++ /* The exit should never return, so there is no need to unlock it. */ ++ __libc_lock_lock_recursive (__exit_lock); + __run_exit_handlers (status, &__exit_funcs, true, true); + } + libc_hidden_def (exit) +diff --git a/stdlib/tst-concurrent-exit.c b/stdlib/tst-concurrent-exit.c +new file mode 100644 +index 0000000000000000..1141130f87fde20f +--- /dev/null ++++ b/stdlib/tst-concurrent-exit.c +@@ -0,0 +1,157 @@ ++/* Check if exit can be called concurrently by multiple threads. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define MAX_atexit 32 ++ ++static pthread_barrier_t barrier; ++ ++static void * ++tf (void *closure) ++{ ++ xpthread_barrier_wait (&barrier); ++ exit (0); ++ ++ return NULL; ++} ++ ++static const char expected[] = "00000000000000000000000003021121130211"; ++static char crumbs[sizeof (expected)]; ++static int next_slot = 0; ++ ++static void ++exit_with_flush (int code) ++{ ++ fflush (stdout); ++ /* glibc allows recursive exit, the atexit handlers execution will be ++ resumed from the where the previous exit was interrupted. */ ++ exit (code); ++} ++ ++/* Take some time, so another thread potentially issue exit. */ ++#define SETUP_NANOSLEEP \ ++ if (nanosleep (&(struct timespec) { .tv_sec = 0, .tv_nsec = 1000L }, \ ++ NULL) != 0) \ ++ FAIL_EXIT1 ("nanosleep: %m") ++ ++static void ++fn0 (void) ++{ ++ crumbs[next_slot++] = '0'; ++ SETUP_NANOSLEEP; ++} ++ ++static void ++fn1 (void) ++{ ++ crumbs[next_slot++] = '1'; ++ SETUP_NANOSLEEP; ++} ++ ++static void ++fn2 (void) ++{ ++ crumbs[next_slot++] = '2'; ++ atexit (fn1); ++ SETUP_NANOSLEEP; ++} ++ ++static void ++fn3 (void) ++{ ++ crumbs[next_slot++] = '3'; ++ atexit (fn2); ++ atexit (fn0); ++ SETUP_NANOSLEEP; ++} ++ ++static void ++fn_final (void) ++{ ++ TEST_COMPARE_STRING (crumbs, expected); ++ exit_with_flush (0); ++} ++ ++_Noreturn static void ++child (void) ++{ ++ enum { nthreads = 8 }; ++ ++ xpthread_barrier_init (&barrier, NULL, nthreads + 1); ++ ++ pthread_t thr[nthreads]; ++ for (int i = 0; i < nthreads; i++) ++ thr[i] = xpthread_create (NULL, tf, NULL); ++ ++ xpthread_barrier_wait (&barrier); ++ ++ for (int i = 0; i < nthreads; i++) ++ { ++ pthread_join (thr[i], NULL); ++ /* It should not be reached, it means that thread did not exit for ++ some reason. */ ++ support_record_failure (); ++ } ++ ++ exit (2); ++} ++ ++static int ++do_test (void) ++{ ++ /* Register a large number of handler that will trigger a heap allocation ++ for the handle state. On exit, each block will be freed after the ++ handle is processed. */ ++ int slots_remaining = MAX_atexit; ++ ++ /* Register this first so it can verify expected order of the rest. */ ++ atexit (fn_final); --slots_remaining; ++ ++ TEST_VERIFY_EXIT (atexit (fn1) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (atexit (fn3) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (atexit (fn1) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (atexit (fn2) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (atexit (fn1) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (atexit (fn3) == 0); --slots_remaining; ++ ++ while (slots_remaining > 0) ++ { ++ TEST_VERIFY_EXIT (atexit (fn0) == 0); --slots_remaining; ++ } ++ ++ pid_t pid = xfork (); ++ if (pid != 0) ++ { ++ int status; ++ xwaitpid (pid, &status, 0); ++ TEST_VERIFY (WIFEXITED (status)); ++ } ++ else ++ child (); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-111117-2.patch b/glibc-RHEL-111117-2.patch new file mode 100644 index 0000000..7cfb43b --- /dev/null +++ b/glibc-RHEL-111117-2.patch @@ -0,0 +1,427 @@ +commit c6af8a9a3ce137a9704825d173be22a2b2d9cb49 +Author: Adhemerval Zanella +Date: Mon Aug 5 11:27:35 2024 -0300 + + stdlib: Allow concurrent quick_exit (BZ 31997) + + As for exit, also allows concurrent quick_exit to avoid race + conditions when it is called concurrently. Since it uses the same + internal function as exit, the __exit_lock lock is moved to + __run_exit_handlers. It also solved a potential concurrent when + calling exit and quick_exit concurrently. + + The test case 'expected' is expanded to a value larger than the + minimum required by C/POSIX (32 entries) so at_quick_exit() will + require libc to allocate a new block. This makes the test mre likely to + trigger concurrent issues (through free() at __run_exit_handlers) + if quick_exit() interacts with the at_quick_exit list concurrently. + + This is also the latest interpretation of the Austin Ticket [1]. + + Checked on x86_64-linux-gnu. + + [1] https://austingroupbugs.net/view.php?id=1845 + Reviewed-by: Carlos O'Donell + +diff --git a/stdlib/Makefile b/stdlib/Makefile +index e15d154885fadc47..fe663f3bb8ee1e00 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -274,6 +274,7 @@ tests := \ + tst-bz20544 \ + tst-canon-bz26341 \ + tst-concurrent-exit \ ++ tst-concurrent-quick_exit \ + tst-cxa_atexit \ + tst-environ \ + tst-environ-change-1 \ +diff --git a/stdlib/exit.c b/stdlib/exit.c +index bbaf1388068a1cea..8d7e2e53d0ee93ae 100644 +--- a/stdlib/exit.c ++++ b/stdlib/exit.c +@@ -28,6 +28,13 @@ + __exit_funcs_lock is declared. */ + bool __exit_funcs_done = false; + ++/* The lock handles concurrent exit() and quick_exit(), even though the ++ C/POSIX standard states that calling exit() more than once is UB. The ++ recursive lock allows atexit() handlers or destructors to call exit() ++ itself. In this case, the handler list execution will resume at the ++ point of the current handler. */ ++__libc_lock_define_initialized_recursive (static, __exit_lock) ++ + /* Call all functions registered with `atexit' and `on_exit', + in the reverse of the order in which they were registered + perform stdio cleanup, and terminate program execution with STATUS. */ +@@ -36,6 +43,9 @@ attribute_hidden + __run_exit_handlers (int status, struct exit_function_list **listp, + bool run_list_atexit, bool run_dtors) + { ++ /* The exit should never return, so there is no need to unlock it. */ ++ __libc_lock_lock_recursive (__exit_lock); ++ + /* First, call the TLS destructors. */ + if (run_dtors) + call_function_static_weak (__call_tls_dtors); +@@ -132,17 +142,9 @@ __run_exit_handlers (int status, struct exit_function_list **listp, + } + + +-/* The lock handles concurrent exit(), even though the C/POSIX standard states +- that calling exit() more than once is UB. The recursive lock allows +- atexit() handlers or destructors to call exit() itself. In this case, the +- handler list execution will resume at the point of the current handler. */ +-__libc_lock_define_initialized_recursive (static, __exit_lock) +- + void + exit (int status) + { +- /* The exit should never return, so there is no need to unlock it. */ +- __libc_lock_lock_recursive (__exit_lock); + __run_exit_handlers (status, &__exit_funcs, true, true); + } + libc_hidden_def (exit) +diff --git a/stdlib/tst-concurrent-exit-skeleton.c b/stdlib/tst-concurrent-exit-skeleton.c +new file mode 100644 +index 0000000000000000..cfd5140466e1a730 +--- /dev/null ++++ b/stdlib/tst-concurrent-exit-skeleton.c +@@ -0,0 +1,160 @@ ++/* Check if exit/quick_exit can be called concurrently by multiple threads. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* A value larger than the minimum required by C/POSIX (32), to trigger a ++ new block memory allocation. */ ++#define MAX_atexit 64 ++ ++static pthread_barrier_t barrier; ++ ++static void * ++tf (void *closure) ++{ ++ xpthread_barrier_wait (&barrier); ++ EXIT (0); ++ ++ return NULL; ++} ++ ++static const char expected[] = "00000000000000000000000000000000000" ++ "00000000000000000000003021121130211"; ++static char crumbs[sizeof (expected)]; ++static int next_slot = 0; ++ ++static void ++exit_with_flush (int code) ++{ ++ fflush (stdout); ++ /* glibc allows recursive EXIT, the ATEXIT handlers execution will be ++ resumed from the where the previous EXIT was interrupted. */ ++ EXIT (code); ++} ++ ++/* Take some time, so another thread potentially issue EXIT. */ ++#define SETUP_NANOSLEEP \ ++ if (nanosleep (&(struct timespec) { .tv_sec = 0, .tv_nsec = 1000L }, \ ++ NULL) != 0) \ ++ FAIL_EXIT1 ("nanosleep: %m") ++ ++static void ++fn0 (void) ++{ ++ crumbs[next_slot++] = '0'; ++ SETUP_NANOSLEEP; ++} ++ ++static void ++fn1 (void) ++{ ++ crumbs[next_slot++] = '1'; ++ SETUP_NANOSLEEP; ++} ++ ++static void ++fn2 (void) ++{ ++ crumbs[next_slot++] = '2'; ++ ATEXIT (fn1); ++ SETUP_NANOSLEEP; ++} ++ ++static void ++fn3 (void) ++{ ++ crumbs[next_slot++] = '3'; ++ ATEXIT (fn2); ++ ATEXIT (fn0); ++ SETUP_NANOSLEEP; ++} ++ ++static void ++fn_final (void) ++{ ++ TEST_COMPARE_STRING (crumbs, expected); ++ exit_with_flush (0); ++} ++ ++_Noreturn static void ++child (void) ++{ ++ enum { nthreads = 8 }; ++ ++ xpthread_barrier_init (&barrier, NULL, nthreads + 1); ++ ++ pthread_t thr[nthreads]; ++ for (int i = 0; i < nthreads; i++) ++ thr[i] = xpthread_create (NULL, tf, NULL); ++ ++ xpthread_barrier_wait (&barrier); ++ ++ for (int i = 0; i < nthreads; i++) ++ { ++ pthread_join (thr[i], NULL); ++ /* It should not be reached, it means that thread did not exit for ++ some reason. */ ++ support_record_failure (); ++ } ++ ++ EXIT (2); ++} ++ ++static int ++do_test (void) ++{ ++ /* Register a large number of handler that will trigger a heap allocation ++ for the handle state. On EXIT, each block will be freed after the ++ handle is processed. */ ++ int slots_remaining = MAX_atexit; ++ ++ /* Register this first so it can verify expected order of the rest. */ ++ ATEXIT (fn_final); --slots_remaining; ++ ++ TEST_VERIFY_EXIT (ATEXIT (fn1) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (ATEXIT (fn3) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (ATEXIT (fn1) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (ATEXIT (fn2) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (ATEXIT (fn1) == 0); --slots_remaining; ++ TEST_VERIFY_EXIT (ATEXIT (fn3) == 0); --slots_remaining; ++ ++ while (slots_remaining > 0) ++ { ++ TEST_VERIFY_EXIT (ATEXIT (fn0) == 0); --slots_remaining; ++ } ++ ++ pid_t pid = xfork (); ++ if (pid != 0) ++ { ++ int status; ++ xwaitpid (pid, &status, 0); ++ TEST_VERIFY (WIFEXITED (status)); ++ } ++ else ++ child (); ++ ++ return 0; ++} ++ ++#include +diff --git a/stdlib/tst-concurrent-exit.c b/stdlib/tst-concurrent-exit.c +index 1141130f87fde20f..421c39d63126246d 100644 +--- a/stdlib/tst-concurrent-exit.c ++++ b/stdlib/tst-concurrent-exit.c +@@ -16,142 +16,7 @@ + License along with the GNU C Library; if not, see + . */ + +-#include +-#include +-#include +-#include +-#include +-#include +-#include ++#define EXIT(__r) exit (__r) ++#define ATEXIT(__f) atexit (__f) + +-#define MAX_atexit 32 +- +-static pthread_barrier_t barrier; +- +-static void * +-tf (void *closure) +-{ +- xpthread_barrier_wait (&barrier); +- exit (0); +- +- return NULL; +-} +- +-static const char expected[] = "00000000000000000000000003021121130211"; +-static char crumbs[sizeof (expected)]; +-static int next_slot = 0; +- +-static void +-exit_with_flush (int code) +-{ +- fflush (stdout); +- /* glibc allows recursive exit, the atexit handlers execution will be +- resumed from the where the previous exit was interrupted. */ +- exit (code); +-} +- +-/* Take some time, so another thread potentially issue exit. */ +-#define SETUP_NANOSLEEP \ +- if (nanosleep (&(struct timespec) { .tv_sec = 0, .tv_nsec = 1000L }, \ +- NULL) != 0) \ +- FAIL_EXIT1 ("nanosleep: %m") +- +-static void +-fn0 (void) +-{ +- crumbs[next_slot++] = '0'; +- SETUP_NANOSLEEP; +-} +- +-static void +-fn1 (void) +-{ +- crumbs[next_slot++] = '1'; +- SETUP_NANOSLEEP; +-} +- +-static void +-fn2 (void) +-{ +- crumbs[next_slot++] = '2'; +- atexit (fn1); +- SETUP_NANOSLEEP; +-} +- +-static void +-fn3 (void) +-{ +- crumbs[next_slot++] = '3'; +- atexit (fn2); +- atexit (fn0); +- SETUP_NANOSLEEP; +-} +- +-static void +-fn_final (void) +-{ +- TEST_COMPARE_STRING (crumbs, expected); +- exit_with_flush (0); +-} +- +-_Noreturn static void +-child (void) +-{ +- enum { nthreads = 8 }; +- +- xpthread_barrier_init (&barrier, NULL, nthreads + 1); +- +- pthread_t thr[nthreads]; +- for (int i = 0; i < nthreads; i++) +- thr[i] = xpthread_create (NULL, tf, NULL); +- +- xpthread_barrier_wait (&barrier); +- +- for (int i = 0; i < nthreads; i++) +- { +- pthread_join (thr[i], NULL); +- /* It should not be reached, it means that thread did not exit for +- some reason. */ +- support_record_failure (); +- } +- +- exit (2); +-} +- +-static int +-do_test (void) +-{ +- /* Register a large number of handler that will trigger a heap allocation +- for the handle state. On exit, each block will be freed after the +- handle is processed. */ +- int slots_remaining = MAX_atexit; +- +- /* Register this first so it can verify expected order of the rest. */ +- atexit (fn_final); --slots_remaining; +- +- TEST_VERIFY_EXIT (atexit (fn1) == 0); --slots_remaining; +- TEST_VERIFY_EXIT (atexit (fn3) == 0); --slots_remaining; +- TEST_VERIFY_EXIT (atexit (fn1) == 0); --slots_remaining; +- TEST_VERIFY_EXIT (atexit (fn2) == 0); --slots_remaining; +- TEST_VERIFY_EXIT (atexit (fn1) == 0); --slots_remaining; +- TEST_VERIFY_EXIT (atexit (fn3) == 0); --slots_remaining; +- +- while (slots_remaining > 0) +- { +- TEST_VERIFY_EXIT (atexit (fn0) == 0); --slots_remaining; +- } +- +- pid_t pid = xfork (); +- if (pid != 0) +- { +- int status; +- xwaitpid (pid, &status, 0); +- TEST_VERIFY (WIFEXITED (status)); +- } +- else +- child (); +- +- return 0; +-} +- +-#include ++#include "tst-concurrent-exit-skeleton.c" +diff --git a/stdlib/tst-concurrent-quick_exit.c b/stdlib/tst-concurrent-quick_exit.c +new file mode 100644 +index 0000000000000000..3f321668d6b8d536 +--- /dev/null ++++ b/stdlib/tst-concurrent-quick_exit.c +@@ -0,0 +1,22 @@ ++/* Check if quick_exit can be called concurrently by multiple threads. ++ Copyright (C) 2024 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 ++ . */ ++ ++#define EXIT(__r) quick_exit (__r) ++#define ATEXIT(__f) at_quick_exit (__f) ++ ++#include "tst-concurrent-exit-skeleton.c" diff --git a/glibc-RHEL-111120-1.patch b/glibc-RHEL-111120-1.patch new file mode 100644 index 0000000..5572370 --- /dev/null +++ b/glibc-RHEL-111120-1.patch @@ -0,0 +1,75 @@ +commit a4a12af5abe22d63fbebf0a219d8d13eff6db20c +Author: Carlos O'Donell +Date: Thu Jun 8 07:30:33 2023 -0400 + + dirent: Reformat Makefile. + + Reflow and sort Makefile. + + Code generation changes present due to link order changes. + + No regressions on x86_64 and i686. + +diff --git a/dirent/Makefile b/dirent/Makefile +index 92587cab9a85203f..556f759f653349bd 100644 +--- a/dirent/Makefile ++++ b/dirent/Makefile +@@ -22,16 +22,48 @@ subdir := dirent + + include ../Makeconfig + +-headers := dirent.h bits/dirent.h bits/dirent_ext.h +-routines := opendir closedir readdir readdir_r rewinddir \ +- seekdir telldir scandir alphasort versionsort \ +- getdents getdents64 dirfd readdir64 readdir64_r scandir64 \ +- alphasort64 versionsort64 fdopendir \ +- scandirat scandirat64 \ +- scandir-cancel scandir-tail scandir64-tail +- +-tests := list tst-seekdir opendir-tst1 bug-readdir1 tst-fdopendir \ +- tst-fdopendir2 tst-scandir tst-scandir64 ++headers := \ ++ bits/dirent.h \ ++ bits/dirent_ext.h \ ++ dirent.h \ ++ # headers ++routines := \ ++ alphasort \ ++ alphasort64 \ ++ closedir \ ++ dirfd \ ++ fdopendir \ ++ getdents \ ++ getdents64 \ ++ opendir \ ++ readdir \ ++ readdir64 \ ++ readdir64_r \ ++ readdir_r \ ++ rewinddir \ ++ scandir \ ++ scandir-cancel \ ++ scandir-tail \ ++ scandir64 \ ++ scandir64-tail \ ++ scandirat \ ++ scandirat64 \ ++ seekdir \ ++ telldir \ ++ versionsort \ ++ versionsort64 \ ++ # routines ++ ++tests := \ ++ bug-readdir1 \ ++ list \ ++ opendir-tst1 \ ++ tst-fdopendir \ ++ tst-fdopendir2 \ ++ tst-scandir \ ++ tst-scandir64 \ ++ tst-seekdir \ ++ # tests + + CFLAGS-scandir.c += $(uses-callbacks) + CFLAGS-scandir64.c += $(uses-callbacks) diff --git a/glibc-RHEL-111120-2.patch b/glibc-RHEL-111120-2.patch new file mode 100644 index 0000000..8ff604a --- /dev/null +++ b/glibc-RHEL-111120-2.patch @@ -0,0 +1,48 @@ +commit 61f2c2e1d1287a791c22d86c943b44bcf66bb8ad +Author: Florian Weimer +Date: Fri Aug 30 21:52:23 2024 +0200 + + Linux: readdir_r needs to report getdents failures (bug 32124) + + Upon error, return the errno value set by the __getdents call + in __readdir_unlocked. Previously, kernel-reported errors + were ignored. + + Reviewed-by: DJ Delorie + +diff --git a/sysdeps/unix/sysv/linux/readdir_r.c b/sysdeps/unix/sysv/linux/readdir_r.c +index ffd5262cf5a6f885..1d595688f78ccd77 100644 +--- a/sysdeps/unix/sysv/linux/readdir_r.c ++++ b/sysdeps/unix/sysv/linux/readdir_r.c +@@ -25,14 +25,22 @@ __readdir_r (DIR *dirp, struct dirent *entry, struct dirent **result) + { + struct dirent *dp; + size_t reclen; ++ int saved_errno = errno; + + __libc_lock_lock (dirp->lock); + + while (1) + { ++ /* If errno is changed from 0, the NULL return value indicates ++ an actual error. It overrides a pending ENAMETOOLONG error. */ ++ __set_errno (0); + dp = __readdir_unlocked (dirp); + if (dp == NULL) +- break; ++ { ++ if (errno != 0) ++ dirp->errcode = errno; ++ break; ++ } + + reclen = dp->d_reclen; + if (reclen <= offsetof (struct dirent, d_name) + NAME_MAX + 1) +@@ -61,6 +69,7 @@ __readdir_r (DIR *dirp, struct dirent *entry, struct dirent **result) + + __libc_lock_unlock (dirp->lock); + ++ __set_errno (saved_errno); + return dp != NULL ? 0 : dirp->errcode; + } + diff --git a/glibc-RHEL-111120-3.patch b/glibc-RHEL-111120-3.patch new file mode 100644 index 0000000..667693e --- /dev/null +++ b/glibc-RHEL-111120-3.patch @@ -0,0 +1,526 @@ +commit 1251e9ea49fba9f53bbf4f290f3db90c01931fa7 +Author: Florian Weimer +Date: Thu Sep 12 09:40:25 2024 +0200 + + support: Add + + It allows to read directories using the six readdir variants + without writing type-specific code or using skeleton files + that are compiled four times. + + The readdir_r subtest for support_readdir_expect_error revealed + bug 32124. + + Reviewed-by: DJ Delorie + +diff --git a/support/Makefile b/support/Makefile +index 480d3a91b8b9b625..6809c234e9314163 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -74,6 +74,7 @@ libsupport-routines = \ + support_quote_blob \ + support_quote_blob_wide \ + support_quote_string \ ++ support_readdir \ + support_readdir_check \ + support_readdir_r_check \ + support_record_failure \ +@@ -329,6 +330,7 @@ tests = \ + tst-support_quote_blob \ + tst-support_quote_blob_wide \ + tst-support_quote_string \ ++ tst-support_readdir \ + tst-support_record_failure \ + tst-test_compare \ + tst-test_compare_blob \ +diff --git a/support/readdir.h b/support/readdir.h +new file mode 100644 +index 0000000000000000..7d7c7650d42efb70 +--- /dev/null ++++ b/support/readdir.h +@@ -0,0 +1,85 @@ ++/* Type-generic wrapper for readdir functions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#ifndef SUPPORT_READDIR_H ++#define SUPPORT_READDIR_H ++ ++#include ++#include ++#include ++ ++__BEGIN_DECLS ++ ++/* Definition independent of _FILE_OFFSET_BITS. */ ++struct support_dirent ++{ ++ uint64_t d_ino; ++ uint64_t d_off; /* 0 if d_off is not supported. */ ++ uint32_t d_type; ++ char *d_name; ++}; ++ ++/* Operation to be performed by support_readdir below. */ ++enum support_readdir_op ++ { ++ SUPPORT_READDIR, ++ SUPPORT_READDIR64, ++ SUPPORT_READDIR_R, ++ SUPPORT_READDIR64_R, ++ SUPPORT_READDIR64_COMPAT, ++ SUPPORT_READDIR64_R_COMPAT, ++ }; ++ ++/* Returns the last supported function. May exclude ++ SUPPORT_READDIR64_R_COMPAT if not implemented. */ ++enum support_readdir_op support_readdir_op_last (void); ++ ++/* Returns the name of the function that corresponds to the OP constant. */ ++const char *support_readdir_function (enum support_readdir_op op); ++ ++/* Returns the d_ino field width for OP, in bits. */ ++unsigned int support_readdir_inode_width (enum support_readdir_op op); ++ ++/* Returns the d_off field width for OP, in bits. Zero if not present. */ ++unsigned int support_readdir_offset_width (enum support_readdir_op op); ++ ++/* Returns true if OP is an _r variant with name length restrictions. */ ++bool support_readdir_r_variant (enum support_readdir_op op); ++ ++/* First, free E->d_name and set the field to NULL. Then call the ++ readdir variant as specified by OP. If successfully, copy fields ++ to E, make a copy of the entry name using strdup, and write its ++ addres sto E->d_name. ++ ++ Return true if an entry was read, or false if the end of the ++ directory stream was reached. Terminates the process upon error. ++ The caller is expected to free E->d_name if the function is not ++ called again for this E. ++ ++ Note that this function assumes that E->d_name has been initialized ++ to NULL or has been allocated by a previous call to this function. */ ++bool support_readdir (DIR *stream, enum support_readdir_op op, ++ struct support_dirent *e) __nonnull ((1, 3)); ++ ++/* Checks that the readdir operation OP fails with errno value EXPECTED. */ ++void support_readdir_expect_error (DIR *stream, enum support_readdir_op op, ++ int expected) __nonnull ((1)); ++ ++__END_DECLS ++ ++#endif /* SUPPORT_READDIR_H */ +diff --git a/support/support_readdir.c b/support/support_readdir.c +new file mode 100644 +index 0000000000000000..10d808416f7a0456 +--- /dev/null ++++ b/support/support_readdir.c +@@ -0,0 +1,318 @@ ++/* Type-generic wrapper for readdir functions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Copied from . */ ++struct __old_dirent64 ++ { ++ __ino_t d_ino; ++ __off64_t d_off; ++ unsigned short int d_reclen; ++ unsigned char d_type; ++ char d_name[256]; ++ }; ++ ++static struct __old_dirent64 *(*readdir64_compat) (DIR *); ++static int (*readdir64_r_compat) (DIR *, struct __old_dirent64 *, ++ struct __old_dirent64 **); ++ ++static void __attribute__ ((constructor)) ++init (void) ++{ ++ /* These compat symbols exists on alpha, i386, m67k , powerpc, s390, ++ sparc. at the same GLIBC_2.1 version. */ ++ readdir64_compat = dlvsym (RTLD_DEFAULT, "readdir64", "GLIBC_2.1"); ++ readdir64_r_compat = dlvsym (RTLD_DEFAULT, "readdir64_r", "GLIBC_2.1"); ++} ++ ++enum support_readdir_op ++support_readdir_op_last (void) ++{ ++ if (readdir64_r_compat != NULL) ++ { ++ TEST_VERIFY (readdir64_compat != NULL); ++ return SUPPORT_READDIR64_R_COMPAT; ++ } ++ else ++ return SUPPORT_READDIR64_R; ++} ++ ++const char * ++support_readdir_function (enum support_readdir_op op) ++{ ++ switch (op) ++ { ++ case SUPPORT_READDIR: ++ return "readdir"; ++ case SUPPORT_READDIR64: ++ return "readdir64"; ++ case SUPPORT_READDIR_R: ++ return "readdir_r"; ++ case SUPPORT_READDIR64_R: ++ return "readdir64_r"; ++ case SUPPORT_READDIR64_COMPAT: ++ return "readdir64@GBLIC_2.1"; ++ case SUPPORT_READDIR64_R_COMPAT: ++ return "readdir64_r@GBLIC_2.1"; ++ } ++ FAIL_EXIT1 ("invalid support_readdir_op constant: %d", op); ++} ++ ++unsigned int ++support_readdir_inode_width (enum support_readdir_op op) ++{ ++ switch (op) ++ { ++ case SUPPORT_READDIR: ++ case SUPPORT_READDIR_R: ++ return sizeof ((struct dirent) { 0, }.d_ino) * 8; ++ case SUPPORT_READDIR64: ++ case SUPPORT_READDIR64_R: ++ return sizeof ((struct dirent64) { 0, }.d_ino) * 8; ++ case SUPPORT_READDIR64_COMPAT: ++ case SUPPORT_READDIR64_R_COMPAT: ++ return sizeof ((struct __old_dirent64) { 0, }.d_ino) * 8; ++ } ++ FAIL_EXIT1 ("invalid support_readdir_op constant: %d", op); ++} ++ ++unsigned int ++support_readdir_offset_width (enum support_readdir_op op) ++{ ++#ifdef _DIRENT_HAVE_D_OFF ++ switch (op) ++ { ++ case SUPPORT_READDIR: ++ case SUPPORT_READDIR_R: ++ return sizeof ((struct dirent) { 0, }.d_off) * 8; ++ case SUPPORT_READDIR64: ++ case SUPPORT_READDIR64_R: ++ return sizeof ((struct dirent64) { 0, }.d_off) * 8; ++ case SUPPORT_READDIR64_COMPAT: ++ case SUPPORT_READDIR64_R_COMPAT: ++ return sizeof ((struct __old_dirent64) { 0, }.d_off) * 8; ++ } ++#else ++ switch (op) ++ { ++ case SUPPORT_READDIR: ++ case SUPPORT_READDIR_R: ++ case SUPPORT_READDIR64: ++ case SUPPORT_READDIR64_R: ++ case SUPPORT_READDIR64_COMPAT: ++ case SUPPORT_READDIR64_R_COMPAT: ++ return 0; ++ } ++#endif ++ FAIL_EXIT1 ("invalid support_readdir_op constant: %d", op); ++} ++ ++bool ++support_readdir_r_variant (enum support_readdir_op op) ++{ ++ switch (op) ++ { ++ case SUPPORT_READDIR: ++ case SUPPORT_READDIR64: ++ case SUPPORT_READDIR64_COMPAT: ++ return false; ++ case SUPPORT_READDIR_R: ++ case SUPPORT_READDIR64_R: ++ case SUPPORT_READDIR64_R_COMPAT: ++ return true; ++ } ++ FAIL_EXIT1 ("invalid support_readdir_op constant: %d", op); ++} ++ ++static bool ++copy_dirent (struct support_dirent *dst, struct dirent *src) ++{ ++ if (src == NULL) ++ return false; ++ dst->d_ino = src->d_ino; ++#ifdef _DIRENT_HAVE_D_OFF ++ dst->d_off = src->d_off; ++#else ++ dst->d_off = 0; ++#endif ++ dst->d_type = src->d_type; ++ dst->d_name = xstrdup (src->d_name); ++ return true; ++} ++ ++static bool ++copy_dirent64 (struct support_dirent *dst, struct dirent64 *src) ++{ ++ if (src == NULL) ++ return false; ++ dst->d_ino = src->d_ino; ++#ifdef _DIRENT_HAVE_D_OFF ++ dst->d_off = src->d_off; ++#else ++ dst->d_off = 0; ++#endif ++ dst->d_type = src->d_type; ++ dst->d_name = xstrdup (src->d_name); ++ return true; ++} ++ ++static bool ++copy_old_dirent64 (struct support_dirent *dst, struct __old_dirent64 *src) ++{ ++ if (src == NULL) ++ return false; ++ dst->d_ino = src->d_ino; ++#ifdef _DIRENT_HAVE_D_OFF ++ dst->d_off = src->d_off; ++#else ++ dst->d_off = 0; ++#endif ++ dst->d_type = src->d_type; ++ dst->d_name = xstrdup (src->d_name); ++ return true; ++} ++ ++bool ++support_readdir (DIR *stream, enum support_readdir_op op, ++ struct support_dirent *e) ++{ ++ free (e->d_name); ++ e->d_name = NULL; ++ switch (op) ++ { ++ case SUPPORT_READDIR: ++ return copy_dirent (e, xreaddir (stream)); ++ case SUPPORT_READDIR64: ++ return copy_dirent64 (e, xreaddir64 (stream)); ++ ++ /* The functions readdir_r, readdir64_r were deprecated in glibc 2.24. */ ++ DIAG_PUSH_NEEDS_COMMENT; ++ DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdeprecated-declarations"); ++ ++ case SUPPORT_READDIR_R: ++ { ++ struct dirent buf; ++ if (!xreaddir_r (stream, &buf)) ++ return false; ++ return copy_dirent (e, &buf); ++ } ++ case SUPPORT_READDIR64_R: ++ { ++ struct dirent64 buf; ++ if (!xreaddir64_r (stream, &buf)) ++ return false; ++ return copy_dirent64 (e, &buf); ++ } ++ ++ DIAG_POP_NEEDS_COMMENT; ++ ++ case SUPPORT_READDIR64_COMPAT: ++ if (readdir64_compat == NULL) ++ FAIL_EXIT1 ("readdir64 compat function not implemented"); ++ return copy_old_dirent64 (e, readdir64_compat (stream)); ++ ++ case SUPPORT_READDIR64_R_COMPAT: ++ { ++ if (readdir64_r_compat == NULL) ++ FAIL_EXIT1 ("readdir64_r compat function not implemented"); ++ struct __old_dirent64 buf; ++ struct __old_dirent64 *e1; ++ int ret = readdir64_r_compat (stream, &buf, &e1); ++ if (ret != 0) ++ { ++ errno = ret; ++ FAIL ("readdir64_r@GLIBC_2.1: %m"); ++ return false; ++ } ++ if (e1 == NULL) ++ return false; ++ return copy_old_dirent64 (e, e1); ++ } ++ } ++ FAIL_EXIT1 ("support_readdir: invalid op argument %d", (int) op); ++} ++ ++void ++support_readdir_expect_error (DIR *stream, enum support_readdir_op op, ++ int expected) ++{ ++ switch (op) ++ { ++ case SUPPORT_READDIR: ++ errno = 0; ++ TEST_VERIFY (readdir (stream) == NULL); ++ TEST_COMPARE (errno, expected); ++ return; ++ case SUPPORT_READDIR64: ++ errno = 0; ++ TEST_VERIFY (readdir64 (stream) == NULL); ++ TEST_COMPARE (errno, expected); ++ return; ++ ++ /* The functions readdir_r, readdir64_r were deprecated in glibc 2.24. */ ++ DIAG_PUSH_NEEDS_COMMENT; ++ DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdeprecated-declarations"); ++ ++ case SUPPORT_READDIR_R: ++ { ++ struct dirent buf; ++ struct dirent *e; ++ errno = readdir_r (stream, &buf, &e); ++ TEST_COMPARE (errno, expected);; ++ } ++ return; ++ case SUPPORT_READDIR64_R: ++ { ++ struct dirent64 buf; ++ struct dirent64 *e; ++ errno = readdir64_r (stream, &buf, &e); ++ TEST_COMPARE (errno, expected);; ++ } ++ return; ++ ++ DIAG_POP_NEEDS_COMMENT; ++ ++ case SUPPORT_READDIR64_COMPAT: ++ if (readdir64_compat == NULL) ++ FAIL_EXIT1 ("readdir64_r compat function not implemented"); ++ errno = 0; ++ TEST_VERIFY (readdir64_compat (stream) == NULL); ++ TEST_COMPARE (errno, expected); ++ return; ++ case SUPPORT_READDIR64_R_COMPAT: ++ { ++ if (readdir64_r_compat == NULL) ++ FAIL_EXIT1 ("readdir64_r compat function not implemented"); ++ struct __old_dirent64 buf; ++ struct __old_dirent64 *e; ++ errno = readdir64_r_compat (stream, &buf, &e); ++ TEST_COMPARE (errno, expected); ++ } ++ return; ++ } ++ FAIL_EXIT1 ("support_readdir_expect_error: invalid op argument %d", ++ (int) op); ++} +diff --git a/support/tst-support_readdir.c b/support/tst-support_readdir.c +new file mode 100644 +index 0000000000000000..c0639571c7c3f516 +--- /dev/null ++++ b/support/tst-support_readdir.c +@@ -0,0 +1,70 @@ ++/* Test the support_readdir function. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ DIR *reference_stream = xopendir ("."); ++ struct dirent64 *reference = xreaddir64 (reference_stream); ++ ++ for (enum support_readdir_op op = 0; op <= support_readdir_op_last (); ++op) ++ { ++ DIR *stream = xopendir ("."); ++ struct support_dirent e; ++ memset (&e, 0xcc, sizeof (e)); ++ e.d_name = NULL; ++ TEST_VERIFY (support_readdir (stream, op, &e)); ++ TEST_COMPARE (e.d_ino, reference->d_ino); ++ if (support_readdir_offset_width (op) != 0) ++ TEST_COMPARE (e.d_off, reference->d_off); ++ else ++ TEST_COMPARE (e.d_off, 0); ++ TEST_COMPARE (e.d_type, reference->d_type); ++ TEST_COMPARE_STRING (e.d_name, reference->d_name); ++ free (e.d_name); ++ xclosedir (stream); ++ } ++ ++ xclosedir (reference_stream); ++ ++ /* Error injection test. */ ++ int devnull = xopen ("/dev/null", O_RDONLY, 0); ++ for (enum support_readdir_op op = 0; op <= support_readdir_op_last (); ++op) ++ { ++ DIR *stream = xopendir ("."); ++ /* A descriptor incompatible with readdir. */ ++ xdup2 (devnull, dirfd (stream)); ++ errno = -1; ++ support_readdir_expect_error (stream, op, ENOTDIR); ++ xclosedir (stream); ++ } ++ xclose (devnull); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-111120-4.patch b/glibc-RHEL-111120-4.patch new file mode 100644 index 0000000..a4ccf82 --- /dev/null +++ b/glibc-RHEL-111120-4.patch @@ -0,0 +1,34 @@ +commit c9154cad66aa0b11ede62cc9190d3485c5ef6941 +Author: Florian Weimer +Date: Thu Sep 12 18:26:04 2024 +0200 + + support: Fix Hurd build of tst-support_readdir + + Check for the availability of the d_off member at compile time, not + run time. + + Fixes commit 1251e9ea49fba9f53bbf4f290f3db90c01931fa7 + ("support: Add "). + +diff --git a/support/tst-support_readdir.c b/support/tst-support_readdir.c +index c0639571c7c3f516..66be94fa802e727a 100644 +--- a/support/tst-support_readdir.c ++++ b/support/tst-support_readdir.c +@@ -39,10 +39,13 @@ do_test (void) + e.d_name = NULL; + TEST_VERIFY (support_readdir (stream, op, &e)); + TEST_COMPARE (e.d_ino, reference->d_ino); +- if (support_readdir_offset_width (op) != 0) +- TEST_COMPARE (e.d_off, reference->d_off); +- else +- TEST_COMPARE (e.d_off, 0); ++#ifdef _DIRENT_HAVE_D_OFF ++ TEST_VERIFY (support_readdir_offset_width (op) != 0); ++ TEST_COMPARE (e.d_off, reference->d_off); ++#else ++ TEST_COMPARE (support_readdir_offset_width (op), 0); ++ TEST_COMPARE (e.d_off, 0); ++#endif + TEST_COMPARE (e.d_type, reference->d_type); + TEST_COMPARE_STRING (e.d_name, reference->d_name); + free (e.d_name); diff --git a/glibc-RHEL-111120-5.patch b/glibc-RHEL-111120-5.patch new file mode 100644 index 0000000..967ae12 --- /dev/null +++ b/glibc-RHEL-111120-5.patch @@ -0,0 +1,136 @@ +commit 4c09aa31b1aeea1329674109eb02d4ba506b0ad2 +Author: Florian Weimer +Date: Sat Sep 21 19:32:34 2024 +0200 + + dirent: Add tst-closedir-leaks + + It verfies that closedir deallocates memory and closes + file descriptors. + + Reviewed-by: DJ Delorie + +diff --git a/dirent/Makefile b/dirent/Makefile +index 556f759f653349bd..f9056724f03125c0 100644 +--- a/dirent/Makefile ++++ b/dirent/Makefile +@@ -58,6 +58,7 @@ tests := \ + bug-readdir1 \ + list \ + opendir-tst1 \ ++ tst-closedir-leaks \ + tst-fdopendir \ + tst-fdopendir2 \ + tst-scandir \ +@@ -65,6 +66,18 @@ tests := \ + tst-seekdir \ + # tests + ++ifeq ($(run-built-tests),yes) ++ifneq ($(PERL),no) ++generated += \ ++ $(objpfx)tst-closedir-leaks-mem.out \ ++ # generated ++ ++tests-special += \ ++ $(objpfx)tst-closedir-leaks-mem.out \ ++ # tests-special ++endif # $(PERL) ! no ++endif # $(run-built-tests) == yes ++ + CFLAGS-scandir.c += $(uses-callbacks) + CFLAGS-scandir64.c += $(uses-callbacks) + CFLAGS-scandir-tail.c += $(uses-callbacks) +@@ -74,3 +87,10 @@ CFLAGS-dirfd.c += $(config-cflags-wno-ignored-attributes) + include ../Rules + + opendir-tst1-ARGS = --test-dir=${common-objpfx}dirent ++ ++tst-closedir-leaks-ENV += MALLOC_TRACE=$(objpfx)tst-closedir-leaks.mtrace \ ++ LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so ++ ++$(objpfx)tst-closedir-leaks-mem.out: $(objpfx)tst-closedir-leaks.out ++ $(common-objpfx)malloc/mtrace $(objpfx)tst-closedir-leaks.mtrace > $@; \ ++ $(evaluate-test) +diff --git a/dirent/tst-closedir-leaks.c b/dirent/tst-closedir-leaks.c +new file mode 100644 +index 0000000000000000..d9de119b637ea623 +--- /dev/null ++++ b/dirent/tst-closedir-leaks.c +@@ -0,0 +1,77 @@ ++/* Test for resource leaks in closedir. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static void ++one_test (enum support_readdir_op op, unsigned int read_limit, ++ bool use_fdopendir) ++{ ++ struct support_descriptors *fds = support_descriptors_list (); ++ struct support_dirent e = { 0, }; ++ ++ DIR *stream; ++ if (use_fdopendir) ++ { ++ int fd = xopen (".", O_RDONLY | O_DIRECTORY, 0); ++ stream = xfdopendir (fd); ++ /* The descriptor fd will be closed by closedir below. */ ++ } ++ else ++ stream = xopendir ("."); ++ for (unsigned int i = 0; i < read_limit; ++i) ++ if (!support_readdir (stream, op, &e)) ++ break; ++ TEST_COMPARE (closedir (stream), 0); ++ ++ free (e.d_name); ++ support_descriptors_check (fds); ++ support_descriptors_free (fds); ++} ++ ++static int ++do_test (void) ++{ ++ mtrace (); ++ ++ for (int use_fdopendir = 0; use_fdopendir < 2; ++use_fdopendir) ++ { ++ /* No reads, operation does not matter. */ ++ one_test (SUPPORT_READDIR, 0, use_fdopendir); ++ ++ for (enum support_readdir_op op = 0; op <= support_readdir_op_last(); ++ ++op) ++ { ++ one_test (op, 1, use_fdopendir); ++ one_test (op, UINT_MAX, use_fdopendir); /* Unlimited reads. */ ++ } ++ } ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-111120-6.patch b/glibc-RHEL-111120-6.patch new file mode 100644 index 0000000..dba5d06 --- /dev/null +++ b/glibc-RHEL-111120-6.patch @@ -0,0 +1,389 @@ +commit e92718552e1d17b8eccbffb88bf5bbb2235c4596 +Author: Florian Weimer +Date: Sat Sep 21 19:32:34 2024 +0200 + + Linux: Use readdir64_r for compat __old_readdir64_r (bug 32128) + + It is not necessary to do the conversion at the getdents64 + layer for readdir64_r. Doing it piecewise for readdir64 + is slightly simpler and allows deleting __old_getdents64. + + This fixes bug 32128 because readdir64_r handles the length + check correctly. + + Reviewed-by: DJ Delorie + +diff --git a/sysdeps/unix/sysv/linux/getdents64.c b/sysdeps/unix/sysv/linux/getdents64.c +index 227fbf21aef294f6..795bd935f0e95126 100644 +--- a/sysdeps/unix/sysv/linux/getdents64.c ++++ b/sysdeps/unix/sysv/linux/getdents64.c +@@ -33,100 +33,3 @@ __getdents64 (int fd, void *buf, size_t nbytes) + } + libc_hidden_def (__getdents64) + weak_alias (__getdents64, getdents64) +- +-#if _DIRENT_MATCHES_DIRENT64 +-strong_alias (__getdents64, __getdents) +-#else +-# include +- +-# if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2) +-# include +-# include +- +-static ssize_t +-handle_overflow (int fd, __off64_t offset, ssize_t count) +-{ +- /* If this is the first entry in the buffer, we can report the +- error. */ +- if (offset == 0) +- { +- __set_errno (EOVERFLOW); +- return -1; +- } +- +- /* Otherwise, seek to the overflowing entry, so that the next call +- will report the error, and return the data read so far. */ +- if (__lseek64 (fd, offset, SEEK_SET) != 0) +- return -1; +- return count; +-} +- +-ssize_t +-__old_getdents64 (int fd, char *buf, size_t nbytes) +-{ +- /* We do not move the individual directory entries. This is only +- possible if the target type (struct __old_dirent64) is smaller +- than the source type. */ +- _Static_assert (offsetof (struct __old_dirent64, d_name) +- <= offsetof (struct dirent64, d_name), +- "__old_dirent64 is larger than dirent64"); +- _Static_assert (__alignof__ (struct __old_dirent64) +- <= __alignof__ (struct dirent64), +- "alignment of __old_dirent64 is larger than dirent64"); +- +- ssize_t retval = INLINE_SYSCALL_CALL (getdents64, fd, buf, nbytes); +- if (retval > 0) +- { +- /* This is the marker for the first entry. Offset 0 is reserved +- for the first entry (see rewinddir). Here, we use it as a +- marker for the first entry in the buffer. We never actually +- seek to offset 0 because handle_overflow reports the error +- directly, so it does not matter that the offset is incorrect +- if entries have been read from the descriptor before (so that +- the descriptor is not actually at offset 0). */ +- __off64_t previous_offset = 0; +- +- char *p = buf; +- char *end = buf + retval; +- while (p < end) +- { +- struct dirent64 *source = (struct dirent64 *) p; +- +- /* Copy out the fixed-size data. */ +- __ino_t ino = source->d_ino; +- __off64_t offset = source->d_off; +- unsigned int reclen = source->d_reclen; +- unsigned char type = source->d_type; +- +- /* Check for ino_t overflow. */ +- if (__glibc_unlikely (ino != source->d_ino)) +- return handle_overflow (fd, previous_offset, p - buf); +- +- /* Convert to the target layout. Use a separate struct and +- memcpy to side-step aliasing issues. */ +- struct __old_dirent64 result; +- result.d_ino = ino; +- result.d_off = offset; +- result.d_reclen = reclen; +- result.d_type = type; +- +- /* Write the fixed-sized part of the result to the +- buffer. */ +- size_t result_name_offset = offsetof (struct __old_dirent64, d_name); +- memcpy (p, &result, result_name_offset); +- +- /* Adjust the position of the name if necessary. Copy +- everything until the end of the record, including the +- terminating NUL byte. */ +- if (result_name_offset != offsetof (struct dirent64, d_name)) +- memmove (p + result_name_offset, source->d_name, +- reclen - offsetof (struct dirent64, d_name)); +- +- p += reclen; +- previous_offset = offset; +- } +- } +- return retval; +-} +-# endif /* SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2) */ +-#endif /* _DIRENT_MATCHES_DIRENT64 */ +diff --git a/sysdeps/unix/sysv/linux/olddirent.h b/sysdeps/unix/sysv/linux/olddirent.h +index 239f790648c6e6b6..065ca41a6e93e1c9 100644 +--- a/sysdeps/unix/sysv/linux/olddirent.h ++++ b/sysdeps/unix/sysv/linux/olddirent.h +@@ -34,8 +34,6 @@ extern struct __old_dirent64 *__old_readdir64 (DIR *__dirp); + libc_hidden_proto (__old_readdir64); + extern int __old_readdir64_r (DIR *__dirp, struct __old_dirent64 *__entry, + struct __old_dirent64 **__result); +-extern __ssize_t __old_getdents64 (int __fd, char *__buf, size_t __nbytes) +- attribute_hidden; + int __old_scandir64 (const char * __dir, + struct __old_dirent64 *** __namelist, + int (*__selector) (const struct __old_dirent64 *), +diff --git a/sysdeps/unix/sysv/linux/readdir64.c b/sysdeps/unix/sysv/linux/readdir64.c +index e6f5108c0a809353..e6b8867b7a361a62 100644 +--- a/sysdeps/unix/sysv/linux/readdir64.c ++++ b/sysdeps/unix/sysv/linux/readdir64.c +@@ -26,17 +26,13 @@ + #undef __readdir + #undef readdir + +-/* Read a directory entry from DIRP. */ +-struct dirent64 * +-__readdir64 (DIR *dirp) ++/* Read a directory entry from DIRP. No locking. */ ++static struct dirent64 * ++__readdir64_unlocked (DIR *dirp) + { + struct dirent64 *dp; + int saved_errno = errno; + +-#if IS_IN (libc) +- __libc_lock_lock (dirp->lock); +-#endif +- + if (dirp->offset >= dirp->size) + { + /* We've emptied out our buffer. Refill it. */ +@@ -53,9 +49,6 @@ __readdir64 (DIR *dirp) + do not set errno in that case, to indicate success. */ + if (bytes == 0 || errno == ENOENT) + __set_errno (saved_errno); +-#if IS_IN (libc) +- __libc_lock_unlock (dirp->lock); +-#endif + return NULL; + } + dirp->size = (size_t) bytes; +@@ -68,10 +61,16 @@ __readdir64 (DIR *dirp) + dirp->offset += dp->d_reclen; + dirp->filepos = dp->d_off; + +-#if IS_IN (libc) +- __libc_lock_unlock (dirp->lock); +-#endif ++ return dp; ++} + ++/* Read a directory entry from DIRP. */ ++struct dirent64 * ++__readdir64 (DIR *dirp) ++{ ++ __libc_lock_lock (dirp->lock); ++ struct dirent64 *dp = __readdir64_unlocked (dirp); ++ __libc_lock_unlock (dirp->lock); + return dp; + } + libc_hidden_def (__readdir64) +@@ -99,45 +98,54 @@ __old_readdir64 (DIR *dirp) + struct __old_dirent64 *dp; + int saved_errno = errno; + +-#if IS_IN (libc) + __libc_lock_lock (dirp->lock); +-#endif + +- if (dirp->offset >= dirp->size) ++ while (1) + { +- /* We've emptied out our buffer. Refill it. */ ++ errno = 0; ++ struct dirent64 *newdp = __readdir64_unlocked (dirp); ++ if (newdp == NULL) ++ { ++ if (errno == 0 && dirp->errcode != 0) ++ __set_errno (dirp->errcode); ++ else if (errno == 0) ++ __set_errno (saved_errno); ++ dp = NULL; ++ break; ++ } + +- size_t maxread = dirp->allocation; +- ssize_t bytes; ++ /* Convert to the target layout. Use a separate struct and ++ memcpy to side-step aliasing issues. */ ++ struct __old_dirent64 result; ++ result.d_ino = newdp->d_ino; ++ result.d_off = newdp->d_off; ++ result.d_reclen = newdp->d_reclen; ++ result.d_type = newdp->d_type; + +- bytes = __old_getdents64 (dirp->fd, dirp->data, maxread); +- if (bytes <= 0) ++ /* Check for ino_t overflow. */ ++ if (__glibc_unlikely (result.d_ino != newdp->d_ino)) + { +- /* Linux may fail with ENOENT on some file systems if the +- directory inode is marked as dead (deleted). POSIX +- treats this as a regular end-of-directory condition, so +- do not set errno in that case, to indicate success. */ +- if (bytes == 0 || errno == ENOENT) +- __set_errno (saved_errno); +-#if IS_IN (libc) +- __libc_lock_unlock (dirp->lock); +-#endif +- return NULL; ++ dirp->errcode = ENAMETOOLONG; ++ continue; + } +- dirp->size = (size_t) bytes; + +- /* Reset the offset into the buffer. */ +- dirp->offset = 0; +- } ++ /* Overwrite the fixed-sized part. */ ++ dp = (struct __old_dirent64 *) newdp; ++ memcpy (dp, &result, offsetof (struct __old_dirent64, d_name)); + +- dp = (struct __old_dirent64 *) &dirp->data[dirp->offset]; +- dirp->offset += dp->d_reclen; +- dirp->filepos = dp->d_off; ++ /* Move the name. */ ++ _Static_assert (offsetof (struct __old_dirent64, d_name) ++ <= offsetof (struct dirent64, d_name), ++ "old struct must be smaller"); ++ if (offsetof (struct __old_dirent64, d_name) ++ != offsetof (struct dirent64, d_name)) ++ memmove (dp->d_name, newdp->d_name, strlen (newdp->d_name) + 1); + +-#if IS_IN (libc) +- __libc_lock_unlock (dirp->lock); +-#endif ++ __set_errno (saved_errno); ++ break; ++ } + ++ __libc_lock_unlock (dirp->lock); + return dp; + } + libc_hidden_def (__old_readdir64) +diff --git a/sysdeps/unix/sysv/linux/readdir64_r.c b/sysdeps/unix/sysv/linux/readdir64_r.c +index e87882ee06d6deaf..7ad7e5945bc833c6 100644 +--- a/sysdeps/unix/sysv/linux/readdir64_r.c ++++ b/sysdeps/unix/sysv/linux/readdir64_r.c +@@ -135,91 +135,37 @@ attribute_compat_text_section + __old_readdir64_r (DIR *dirp, struct __old_dirent64 *entry, + struct __old_dirent64 **result) + { +- struct __old_dirent64 *dp; +- size_t reclen; +- const int saved_errno = errno; +- int ret; +- +- __libc_lock_lock (dirp->lock); +- +- do ++ while (1) + { +- if (dirp->offset >= dirp->size) +- { +- /* We've emptied out our buffer. Refill it. */ +- +- size_t maxread = dirp->allocation; +- ssize_t bytes; +- +- maxread = dirp->allocation; +- +- bytes = __old_getdents64 (dirp->fd, dirp->data, maxread); +- if (bytes <= 0) +- { +- /* On some systems getdents fails with ENOENT when the +- open directory has been rmdir'd already. POSIX.1 +- requires that we treat this condition like normal EOF. */ +- if (bytes < 0 && errno == ENOENT) +- { +- bytes = 0; +- __set_errno (saved_errno); +- } +- if (bytes < 0) +- dirp->errcode = errno; ++ struct dirent64 new_entry; ++ struct dirent64 *newp; ++ int ret = __readdir64_r (dirp, &new_entry, &newp); + +- dp = NULL; +- break; +- } +- dirp->size = (size_t) bytes; +- +- /* Reset the offset into the buffer. */ +- dirp->offset = 0; ++ if (ret != 0) ++ return ret; ++ else if (newp == NULL) ++ { ++ *result = NULL; ++ return 0; + } +- +- dp = (struct __old_dirent64 *) &dirp->data[dirp->offset]; +- +- reclen = dp->d_reclen; +- +- dirp->offset += reclen; +- +- dirp->filepos = dp->d_off; +- +- if (reclen > offsetof (struct __old_dirent64, d_name) + NAME_MAX + 1) ++ else + { +- /* The record is very long. It could still fit into the +- caller-supplied buffer if we can skip padding at the +- end. */ +- size_t namelen = _D_EXACT_NAMLEN (dp); +- if (namelen <= NAME_MAX) +- reclen = offsetof (struct __old_dirent64, d_name) + namelen + 1; +- else ++ entry->d_ino = newp->d_ino; ++ if (entry->d_ino != newp->d_ino) + { +- /* The name is too long. Ignore this file. */ +- dirp->errcode = ENAMETOOLONG; +- dp->d_ino = 0; ++ dirp->errcode = EOVERFLOW; + continue; + } ++ size_t namelen = strlen (newp->d_name); ++ entry->d_off = newp->d_off; ++ entry->d_reclen = (offsetof (struct __old_dirent64, d_name) ++ + namelen + 1); ++ entry->d_type = newp->d_type; ++ memcpy (entry->d_name, newp->d_name, namelen + 1); ++ *result = entry; ++ return 0; + } +- +- /* Skip deleted and ignored files. */ +- } +- while (dp->d_ino == 0); +- +- if (dp != NULL) +- { +- *result = memcpy (entry, dp, reclen); +- entry->d_reclen = reclen; +- ret = 0; + } +- else +- { +- *result = NULL; +- ret = dirp->errcode; +- } +- +- __libc_lock_unlock (dirp->lock); +- +- return ret; + } + + compat_symbol (libc, __old_readdir64_r, readdir64_r, GLIBC_2_1); diff --git a/glibc-RHEL-111120-7.patch b/glibc-RHEL-111120-7.patch new file mode 100644 index 0000000..ea989a2 --- /dev/null +++ b/glibc-RHEL-111120-7.patch @@ -0,0 +1,261 @@ +commit 4ec355af454695556db1212d1c9ca9c3789cddf4 +Author: Florian Weimer +Date: Sat Sep 21 19:32:34 2024 +0200 + + dirent: Add tst-readdir-long + + It tests long names and ENAMETOOLONG handling, specifically + for readdir_r. This is a regression test for bug 14699, + bug 32124, and bug 32128. + + Reviewed-by: DJ Delorie + +diff --git a/dirent/Makefile b/dirent/Makefile +index f9056724f03125c0..91edcf9e70622938 100644 +--- a/dirent/Makefile ++++ b/dirent/Makefile +@@ -61,6 +61,7 @@ tests := \ + tst-closedir-leaks \ + tst-fdopendir \ + tst-fdopendir2 \ ++ tst-readdir-long \ + tst-scandir \ + tst-scandir64 \ + tst-seekdir \ +diff --git a/dirent/tst-readdir-long.c b/dirent/tst-readdir-long.c +new file mode 100644 +index 0000000000000000..409318fa52fc664f +--- /dev/null ++++ b/dirent/tst-readdir-long.c +@@ -0,0 +1,231 @@ ++/* Test readdir (+variants) behavior with file names of varying length. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* If positive, at this length an EMSGSIZE error is injected. */ ++static _Atomic int inject_error_at_length; ++ ++/* Return a file name, LENGTH bytes long. */ ++static char * ++name_of_length (size_t length) ++{ ++ char *result = xmalloc (length + 1); ++ unsigned int prefix = snprintf (result, length + 1, "%zu-", length); ++ for (size_t i = prefix; i < length; ++i) ++ result[i] = 'A' + ((length + i) % 26); ++ result[length] = '\0'; ++ return result; ++} ++ ++/* Add the directory entry at OFFSET to the stream D. */ ++static uint64_t ++add_directory_entry (struct support_fuse_dirstream *d, uint64_t offset) ++{ ++ unsigned int length = offset + 1; ++ if (length > 1000) ++ /* Longer than what is possible to produce with 256 ++ UTF-8-encoded Unicode code points. */ ++ return 0; ++ ++ char *to_free = NULL; ++ const char *name; ++ uint64_t ino = 1000 + length; /* Arbitrary value, distinct from 1. */ ++ uint32_t type = DT_REG; ++ if (offset <= 1) ++ { ++ type = DT_DIR; ++ name = ".." + !offset; /* "." or "..". */ ++ ino = 1; ++ } ++ else if (length == 1000) ++ name = "short"; ++ else ++ { ++ to_free = name_of_length (length); ++ name = to_free; ++ } ++ ++ ++offset; ++ bool added = support_fuse_dirstream_add (d, ino, offset, type, name); ++ free (to_free); ++ if (added) ++ return offset; ++ else ++ return 0; ++} ++ ++/* Set to true if getdents64 should produce only one entry. */ ++static _Atomic bool one_entry_per_getdents64; ++ ++static void ++fuse_thread (struct support_fuse *f, void *closure) ++{ ++ struct fuse_in_header *inh; ++ while ((inh = support_fuse_next (f)) != NULL) ++ { ++ if (support_fuse_handle_mountpoint (f) ++ || (inh->nodeid == 1 && support_fuse_handle_directory (f))) ++ continue; ++ switch (inh->opcode) ++ { ++ case FUSE_READDIR: ++ if (inh->nodeid == 1) ++ { ++ uint64_t offset = support_fuse_cast (READ, inh)->offset; ++ if (inject_error_at_length == offset + 1) ++ support_fuse_reply_error (f, EMSGSIZE); ++ else ++ { ++ struct support_fuse_dirstream *d ++ = support_fuse_prepare_readdir (f); ++ while (true) ++ { ++ offset = add_directory_entry (d, offset); ++ if (offset == 0 || one_entry_per_getdents64 ++ /* Error will be reported at next READDIR. */ ++ || offset + 1 == inject_error_at_length) ++ break; ++ } ++ support_fuse_reply_prepared (f); ++ } ++ } ++ else ++ support_fuse_reply_error (f, EIO); ++ break; ++ default: ++ FAIL ("unexpected event %s", support_fuse_opcode (inh->opcode)); ++ support_fuse_reply_error (f, EIO); ++ } ++ } ++} ++ ++/* Run the tests for the specified readdir variant OP. */ ++static void ++run_readdir_tests (struct support_fuse *f, enum support_readdir_op op) ++{ ++ printf ("info: testing %s (inject_error=%d unbuffered=%d)\n", ++ support_readdir_function (op), inject_error_at_length, ++ (int) one_entry_per_getdents64); ++ ++ bool testing_r = support_readdir_r_variant (op); ++ ++ DIR *dir = xopendir (support_fuse_mountpoint (f)); ++ struct support_dirent e = { 0, }; ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE (e.d_ino, 1); ++ TEST_COMPARE_STRING (e.d_name, "."); ++ ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE (e.d_ino, 1); ++ TEST_COMPARE_STRING (e.d_name, ".."); ++ ++ for (unsigned int i = 3; i < 1000; ++i) ++ { ++ if (i == inject_error_at_length) ++ /* Error expected below. */ ++ break; ++ ++ if (i >= sizeof ((struct dirent) { 0, }.d_name) && testing_r) ++ /* This is a readir_r test. The longer names are not ++ available because they do not fit into struct dirent. */ ++ break; ++ ++ char *expected_name = name_of_length (i); ++ TEST_COMPARE (strlen (expected_name), i); ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE (e.d_ino, 1000 + i); ++ TEST_COMPARE_STRING (e.d_name, expected_name); ++ free (expected_name); ++ } ++ ++ if (inject_error_at_length == 0) ++ { ++ /* Check that the ENAMETOOLONG error does not prevent reading a ++ later short name. */ ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE (e.d_ino, 2000); ++ TEST_COMPARE_STRING (e.d_name, "short"); ++ ++ if (testing_r) ++ /* An earlier name was too long. */ ++ support_readdir_expect_error (dir, op, ENAMETOOLONG); ++ else ++ /* Entire directory read without error. */ ++ TEST_VERIFY (!support_readdir (dir, op, &e)); ++ } ++ else ++ support_readdir_expect_error (dir, op, EMSGSIZE); ++ ++ free (e.d_name); ++ xclosedir (dir); ++} ++ ++/* Run all readdir variants for both fully-buffered an unbuffered ++ (one-at-a-time) directory streams. */ ++static void ++run_fully_buffered_and_singleton_buffers (struct support_fuse *f) ++{ ++ for (int do_one_entry = 0; do_one_entry < 2; ++do_one_entry) ++ { ++ one_entry_per_getdents64 = do_one_entry; ++ for (enum support_readdir_op op = 0; op <= support_readdir_op_last(); ++ ++op) ++ run_readdir_tests (f, op); ++ } ++} ++ ++static int ++do_test (void) ++{ ++ /* Smoke test for name_of_length. */ ++ { ++ char *name = name_of_length (5); ++ TEST_COMPARE_STRING (name, "5-HIJ"); ++ free (name); ++ ++ name = name_of_length (6); ++ TEST_COMPARE_STRING (name, "6-IJKL"); ++ free (name); ++ } ++ ++ support_fuse_init (); ++ struct support_fuse *f = support_fuse_mount (fuse_thread, NULL); ++ ++ run_fully_buffered_and_singleton_buffers (f); ++ ++ inject_error_at_length = 100; ++ run_fully_buffered_and_singleton_buffers (f); ++ ++ inject_error_at_length = 300; ++ run_fully_buffered_and_singleton_buffers (f); ++ ++ support_fuse_unmount (f); ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-111120-8.patch b/glibc-RHEL-111120-8.patch new file mode 100644 index 0000000..017d79c --- /dev/null +++ b/glibc-RHEL-111120-8.patch @@ -0,0 +1,236 @@ +commit 6aa1645f669322b36bda8e1fded6fd524d3e08ff +Author: Florian Weimer +Date: Sat Sep 21 19:32:34 2024 +0200 + + dirent: Add tst-rewinddir + + It verifies that rewinddir allows restarting the directory + iteration. + + Reviewed-by: DJ Delorie + +diff --git a/dirent/Makefile b/dirent/Makefile +index 91edcf9e70622938..045c786575a7d5ff 100644 +--- a/dirent/Makefile ++++ b/dirent/Makefile +@@ -62,6 +62,7 @@ tests := \ + tst-fdopendir \ + tst-fdopendir2 \ + tst-readdir-long \ ++ tst-rewinddir \ + tst-scandir \ + tst-scandir64 \ + tst-seekdir \ +diff --git a/dirent/tst-rewinddir.c b/dirent/tst-rewinddir.c +new file mode 100644 +index 0000000000000000..1479766ebe8fc911 +--- /dev/null ++++ b/dirent/tst-rewinddir.c +@@ -0,0 +1,207 @@ ++/* Test for rewinddir, using FUSE. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Return the file name at the indicated directory offset. */ ++static char * ++name_at_offset (unsigned int offset) ++{ ++ if (offset <= 1) ++ return xstrdup (".." + !offset); /* "." or "..". */ ++ else ++ /* Pad the name with a lot of zeros, so that the dirent buffer gets ++ filled more quickly. */ ++ return xasprintf ("file%0240u", offset); ++} ++ ++/* This many directory entries, including "." and "..". */ ++enum { directory_entries = 200 }; ++ ++/* Add the directory entry at OFFSET to the stream D. */ ++static uint64_t ++add_directory_entry (struct support_fuse_dirstream *d, uint64_t offset) ++{ ++ if (offset >= directory_entries) ++ return 0; ++ ++ char *name = name_at_offset (offset); ++ uint64_t ino = 1000 + offset; /* Arbitrary value, distinct from 1. */ ++ uint32_t type = DT_REG; ++ if (offset <= 1) ++ { ++ type = DT_DIR; ++ ino = 1; ++ } ++ ++ ++offset; ++ bool added = support_fuse_dirstream_add (d, ino, offset, type, name); ++ free (name); ++ if (added) ++ return offset; ++ else ++ return 0; ++} ++ ++/* Set to true if getdents64 should produce only one entry. */ ++static bool one_entry_per_getdents64; ++ ++static void ++fuse_thread (struct support_fuse *f, void *closure) ++{ ++ struct fuse_in_header *inh; ++ while ((inh = support_fuse_next (f)) != NULL) ++ { ++ if (support_fuse_handle_mountpoint (f) ++ || (inh->nodeid == 1 && support_fuse_handle_directory (f))) ++ continue; ++ switch (inh->opcode) ++ { ++ case FUSE_READDIR: ++ if (inh->nodeid == 1) ++ { ++ uint64_t offset = support_fuse_cast (READ, inh)->offset; ++ struct support_fuse_dirstream *d ++ = support_fuse_prepare_readdir (f); ++ while (true) ++ { ++ offset = add_directory_entry (d, offset); ++ if (offset == 0 || one_entry_per_getdents64) ++ break; ++ } ++ support_fuse_reply_prepared (f); ++ } ++ else ++ support_fuse_reply_error (f, EIO); ++ break; ++ default: ++ FAIL ("unexpected event %s", support_fuse_opcode (inh->opcode)); ++ support_fuse_reply_error (f, EIO); ++ } ++ } ++} ++ ++/* Lists the entire directory from start to end. */ ++static void ++verify_directory (DIR *dir, enum support_readdir_op op) ++{ ++ struct support_dirent e = { 0, }; ++ ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, "."); ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, ".."); ++ for (int i = 2; i < directory_entries; ++i) ++ { ++ char *expected = name_at_offset (i); ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, expected); ++ free (expected); ++ } ++ TEST_VERIFY (!support_readdir (dir, op, &e)); ++ free (e.d_name); ++} ++ ++/* Run tests with rewinding after ENTRIES readdir calls. */ ++static void ++rewind_after (unsigned int rewind_at) ++{ ++ for (enum support_readdir_op op = 0; op <= support_readdir_op_last (); ++op) ++ { ++ printf ("info: testing %s (rewind_at=%u)\n", ++ support_readdir_function (op), rewind_at); ++ ++ struct support_fuse *f = support_fuse_mount (fuse_thread, NULL); ++ DIR *dir = xopendir (support_fuse_mountpoint (f)); ++ struct support_dirent e = { 0, }; ++ ++ switch (rewind_at) ++ { ++ case 0: ++ break; ++ case 1: ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, "."); ++ break; ++ default: ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, "."); ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, ".."); ++ for (int i = 2; i < directory_entries; ++i) ++ { ++ if (i == rewind_at) ++ break; ++ char *expected = name_at_offset (i); ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, expected); ++ free (expected); ++ } ++ break; ++ } ++ ++ errno = 0; ++ rewinddir (dir); ++ TEST_COMPARE (errno, 0); ++ verify_directory (dir, op); ++ ++ free (e.d_name); ++ xclosedir (dir); ++ support_fuse_unmount (f); ++ } ++} ++ ++static int ++do_test (void) ++{ ++ support_fuse_init (); ++ ++ /* One pass without rewinding to verify that the generated directory ++ content matches expectations. */ ++ { ++ struct support_fuse *f = support_fuse_mount (fuse_thread, NULL); ++ DIR *dir = xopendir (support_fuse_mountpoint (f)); ++ verify_directory (dir, SUPPORT_READDIR64); ++ xclosedir (dir); ++ support_fuse_unmount (f); ++ } ++ ++ for (int do_unbuffered = 0; do_unbuffered < 2; ++do_unbuffered) ++ { ++ one_entry_per_getdents64 = do_unbuffered; ++ ++ for (int i = 0; i < 20; ++i) ++ rewind_after (i); ++ rewind_after (50); ++ rewind_after (100); ++ rewind_after (150); ++ rewind_after (180); ++ rewind_after (199); ++ } ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-111120-9.patch b/glibc-RHEL-111120-9.patch new file mode 100644 index 0000000..ed88574 --- /dev/null +++ b/glibc-RHEL-111120-9.patch @@ -0,0 +1,214 @@ +commit 6f3f6c506cdaf981a4374f1f12863b98ac7fea1a +Author: Florian Weimer +Date: Sat Sep 21 19:32:34 2024 +0200 + + Linux: readdir64_r should not skip d_ino == 0 entries (bug 32126) + + This is the same bug as bug 12165, but for readdir_r. The + regression test covers both bug 12165 and bug 32126. + + Reviewed-by: DJ Delorie + +diff --git a/dirent/Makefile b/dirent/Makefile +index 045c786575a7d5ff..11b772e3abb700eb 100644 +--- a/dirent/Makefile ++++ b/dirent/Makefile +@@ -62,6 +62,7 @@ tests := \ + tst-fdopendir \ + tst-fdopendir2 \ + tst-readdir-long \ ++ tst-readdir-zero-inode \ + tst-rewinddir \ + tst-scandir \ + tst-scandir64 \ +diff --git a/dirent/tst-readdir-zero-inode.c b/dirent/tst-readdir-zero-inode.c +new file mode 100644 +index 0000000000000000..af9fb946abe6c483 +--- /dev/null ++++ b/dirent/tst-readdir-zero-inode.c +@@ -0,0 +1,134 @@ ++/* Test that readdir does not skip entries with d_ino == 0 (bug 12165). ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* Add the directory entry at OFFSET to the stream D. */ ++static uint64_t ++add_directory_entry (struct support_fuse_dirstream *d, uint64_t offset) ++{ ++ bool added = false; ++ ++offset; ++ switch (offset - 1) ++ { ++ case 0: ++ added = support_fuse_dirstream_add (d, 1, offset, DT_DIR, "."); ++ break; ++ case 1: ++ added = support_fuse_dirstream_add (d, 1, offset, DT_DIR, ".."); ++ break; ++ case 2: ++ added = support_fuse_dirstream_add (d, 2, offset, DT_REG, "before"); ++ break; ++ case 3: ++ added = support_fuse_dirstream_add (d, 0, offset, DT_REG, "zero"); ++ break; ++ case 4: ++ added = support_fuse_dirstream_add (d, 3, offset, DT_REG, "after"); ++ break; ++ } ++ if (added) ++ return offset; ++ else ++ return 0; ++} ++ ++/* Set to true if getdents64 should produce only one entry. */ ++static bool one_entry_per_getdents64; ++ ++static void ++fuse_thread (struct support_fuse *f, void *closure) ++{ ++ struct fuse_in_header *inh; ++ while ((inh = support_fuse_next (f)) != NULL) ++ { ++ if (support_fuse_handle_mountpoint (f) ++ || (inh->nodeid == 1 && support_fuse_handle_directory (f))) ++ continue; ++ switch (inh->opcode) ++ { ++ case FUSE_READDIR: ++ if (inh->nodeid == 1) ++ { ++ uint64_t offset = support_fuse_cast (READ, inh)->offset; ++ struct support_fuse_dirstream *d ++ = support_fuse_prepare_readdir (f); ++ while (true) ++ { ++ offset = add_directory_entry (d, offset); ++ if (offset == 0 || one_entry_per_getdents64) ++ break; ++ } ++ support_fuse_reply_prepared (f); ++ } ++ else ++ support_fuse_reply_error (f, EIO); ++ break; ++ default: ++ FAIL ("unexpected event %s", support_fuse_opcode (inh->opcode)); ++ support_fuse_reply_error (f, EIO); ++ } ++ } ++} ++ ++static int ++do_test (void) ++{ ++ support_fuse_init (); ++ ++ for (enum support_readdir_op op = 0; op <= support_readdir_op_last (); ++op) ++ { ++ struct support_fuse *f = support_fuse_mount (fuse_thread, NULL); ++ DIR *dir = xopendir (support_fuse_mountpoint (f)); ++ struct support_dirent e = { 0, }; ++ ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, "."); ++ TEST_COMPARE (e.d_ino, 1); ++ ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, ".."); ++ TEST_COMPARE (e.d_ino, 1); ++ ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, "before"); ++ TEST_COMPARE (e.d_ino, 2); ++ ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, "zero"); ++ TEST_COMPARE (e.d_ino, 0); ++ ++ TEST_VERIFY (support_readdir (dir, op, &e)); ++ TEST_COMPARE_STRING (e.d_name, "after"); ++ TEST_COMPARE (e.d_ino, 3); ++ ++ TEST_VERIFY (!support_readdir (dir, op, &e)); ++ ++ free (e.d_name); ++ xclosedir (dir); ++ support_fuse_unmount (f); ++ } ++ ++ return 0; ++} ++ ++#include +diff --git a/sysdeps/unix/sysv/linux/readdir64_r.c b/sysdeps/unix/sysv/linux/readdir64_r.c +index 7ad7e5945bc833c6..c42a161ffcf9fd70 100644 +--- a/sysdeps/unix/sysv/linux/readdir64_r.c ++++ b/sysdeps/unix/sysv/linux/readdir64_r.c +@@ -37,7 +37,7 @@ __readdir64_r (DIR *dirp, struct dirent64 *entry, struct dirent64 **result) + + __libc_lock_lock (dirp->lock); + +- do ++ while (1) + { + if (dirp->offset >= dirp->size) + { +@@ -79,26 +79,21 @@ __readdir64_r (DIR *dirp, struct dirent64 *entry, struct dirent64 **result) + + dirp->filepos = dp->d_off; + +- if (reclen > offsetof (struct dirent64, d_name) + NAME_MAX + 1) ++ if (reclen <= offsetof (struct dirent64, d_name) + NAME_MAX + 1) ++ break; ++ ++ /* The record is very long. It could still fit into the ++ caller-supplied buffer if we can skip padding at the end. */ ++ size_t namelen = _D_EXACT_NAMLEN (dp); ++ if (namelen <= NAME_MAX) + { +- /* The record is very long. It could still fit into the +- caller-supplied buffer if we can skip padding at the +- end. */ +- size_t namelen = _D_EXACT_NAMLEN (dp); +- if (namelen <= NAME_MAX) +- reclen = offsetof (struct dirent64, d_name) + namelen + 1; +- else +- { +- /* The name is too long. Ignore this file. */ +- dirp->errcode = ENAMETOOLONG; +- dp->d_ino = 0; +- continue; +- } ++ reclen = offsetof (struct dirent64, d_name) + namelen + 1; ++ break; + } + +- /* Skip deleted and ignored files. */ ++ /* The name is too long. Ignore this file. */ ++ dirp->errcode = ENAMETOOLONG; + } +- while (dp->d_ino == 0); + + if (dp != NULL) + { diff --git a/glibc-RHEL-114264.patch b/glibc-RHEL-114265.patch similarity index 96% rename from glibc-RHEL-114264.patch rename to glibc-RHEL-114265.patch index a7b0130..15cf58d 100644 --- a/glibc-RHEL-114264.patch +++ b/glibc-RHEL-114265.patch @@ -13,7 +13,7 @@ Date: Fri Sep 12 21:33:34 2025 +0200 Reviewed-by: Collin Funk diff --git a/nss/getXXbyYY_r.c b/nss/getXXbyYY_r.c -index fe7d5b7d0eddfb05..3a15b1a4ae151fcc 100644 +index eae6c3480e..2b0735fb6a 100644 --- a/nss/getXXbyYY_r.c +++ b/nss/getXXbyYY_r.c @@ -157,19 +157,15 @@ __merge_einval (LOOKUP_TYPE *a, diff --git a/glibc-RHEL-115819-1.patch b/glibc-RHEL-115819-1.patch new file mode 100644 index 0000000..d28762e --- /dev/null +++ b/glibc-RHEL-115819-1.patch @@ -0,0 +1,378 @@ +commit a7fe3e805d2ee128ac5f43b2a24201726d41cc04 +Author: Carlos O'Donell +Date: Wed Jun 19 11:48:05 2024 -0400 + + Fix conditionals on mtrace-based tests (bug 31892) + + The conditionals for several mtrace-based tests in catgets, elf, libio, + malloc, misc, nptl, posix, and stdio-common were incorrect leading to + test failures when bootstrapping glibc without perl. + + The correct conditional for mtrace-based tests requires three checks: + first checking for run-built-tests, then build-shared, and lastly that + PERL is not equal to "no" (missing perl). + Reviewed-by: Adhemerval Zanella + +Conflicts: + stdio-common/Makefile + (fixup context) + +diff --git a/catgets/Makefile b/catgets/Makefile +index 24b4560d5fefcd08..40c65eac950ee662 100644 +--- a/catgets/Makefile ++++ b/catgets/Makefile +@@ -43,8 +43,12 @@ tests-special += \ + $(objpfx)test-gencat.out \ + $(objpfx)test1.cat \ + $(objpfx)test2.cat \ +- $(objpfx)tst-catgets-mem.out + # tests-special ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) ++tests-special += $(objpfx)tst-catgets-mem.out ++endif ++endif + endif + + gencat-modules = xmalloc +@@ -68,9 +72,17 @@ generated += \ + test1.h \ + test2.cat \ + test2.h \ ++ # generated ++ifeq ($(run-built-tests),yes) ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) ++generated += \ + tst-catgets-mem.out \ + tst-catgets.mtrace \ + # generated ++endif ++endif ++endif + + generated-dirs += \ + de \ +diff --git a/elf/Makefile b/elf/Makefile +index fb35102f827b96cd..fc721b4f6379cb07 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -647,13 +647,19 @@ $(objpfx)tst-valgrind-smoke.out: tst-valgrind-smoke.sh $(objpfx)ld.so $(objpfx)v + tests += $(tests-execstack-$(have-z-execstack)) + ifeq ($(run-built-tests),yes) + tests-special += \ +- $(objpfx)noload-mem.out \ + $(objpfx)tst-ldconfig-X.out \ + $(objpfx)tst-ldconfig-p.out \ + $(objpfx)tst-ldconfig-soname.out \ +- $(objpfx)tst-leaks1-mem.out \ + $(objpfx)tst-rtld-help.out \ + # tests-special ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) ++tests-special += \ ++ $(objpfx)noload-mem.out \ ++ $(objpfx)tst-leaks1-mem.out \ ++ # tests-special ++endif ++endif + endif + tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 + tlsmod18a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 +diff --git a/libio/Makefile b/libio/Makefile +index b189455bb9b8fd1b..03ffb659e8c0f347 100644 +--- a/libio/Makefile ++++ b/libio/Makefile +@@ -264,15 +264,28 @@ tst-bz22415-ENV = MALLOC_TRACE=$(objpfx)tst-bz22415.mtrace \ + tst-bz24228-ENV = MALLOC_TRACE=$(objpfx)tst-bz24228.mtrace \ + LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so + +-generated += test-fmemopen.mtrace test-fmemopen.check +-generated += tst-fdopen-seek-failure.mtrace tst-fdopen-seek-failure.check +-generated += tst-fopenloc.mtrace tst-fopenloc.check +-generated += tst-bz22415.mtrace tst-bz22415.check +- + aux := fileops genops stdfiles stdio strops + ++ifeq ($(run-built-tests),yes) ++ifeq ($(build-shared),yes) ++ifneq ($(PERL),no) ++generated += \ ++ test-fmemopen.check \ ++ test-fmemopen.mtrace \ ++ tst-bz22415.check \ ++ tst-bz22415.mtrace \ ++ tst-bz24228.check \ ++ tst-bz24228.mtrace \ ++ tst-fdopen-seek-failure.check \ ++ tst-fdopen-seek-failure.mtrace \ ++ tst-fopenloc.check \ ++ tst-fopenloc.mtrace \ ++ # generated ++endif ++endif ++endif ++ + ifeq ($(build-shared),yes) +-generated += tst-bz24228.mtrace tst-bz24228.check + aux += oldfileops oldstdfiles + tests += \ + tst-stderr-compat \ +@@ -289,16 +302,23 @@ shared-only-routines = oldiofopen oldiofdopen oldiofclose oldfileops \ + + ifeq ($(run-built-tests),yes) + tests-special += \ +- $(objpfx)test-fmemopen-mem.out \ + $(objpfx)test-freopen.out \ +- $(objpfx)tst-bz22415-mem.out \ +- $(objpfx)tst-fdopen-seek-failure-mem.out \ + # tests-special + ifeq (yes,$(build-shared)) + # Run tst-fopenloc-cmp.out and tst-openloc-mem.out only if shared + # library is enabled since they depend on tst-fopenloc.out. +-tests-special += $(objpfx)tst-fopenloc-cmp.out $(objpfx)tst-fopenloc-mem.out \ +- $(objpfx)tst-bz24228-mem.out ++tests-special += $(objpfx)tst-fopenloc-cmp.out ++ifeq ($(build-shared),yes) ++ifneq ($(PERL),no) ++tests-special += \ ++ $(objpfx)test-fmemopen-mem.out \ ++ $(objpfx)tst-bz22415-mem.out \ ++ $(objpfx)tst-bz24228-mem.out \ ++ $(objpfx)tst-fdopen-seek-failure-mem.out \ ++ $(objpfx)tst-fopenloc-mem.out \ ++ # tests-special ++endif ++endif + endif + + tests += \ +diff --git a/misc/Makefile b/misc/Makefile +index 6aa74d332b40ca94..a932b1aab461bc7d 100644 +--- a/misc/Makefile ++++ b/misc/Makefile +@@ -214,12 +214,18 @@ routines_no_fortify += \ + syslog \ + # routines_no_fortify + ++ifeq ($(run-built-tests),yes) ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) + generated += \ + tst-allocate_once-mem.out \ + tst-allocate_once.mtrace \ + tst-error1-mem.out \ + tst-error1.mtrace \ + # generated ++endif ++endif ++endif + + aux := init-misc + install-lib := libg.a +@@ -293,8 +299,14 @@ xtests += \ + # xtests + + ifeq ($(run-built-tests),yes) +-tests-special += $(objpfx)tst-error1-mem.out \ +- $(objpfx)tst-allocate_once-mem.out ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) ++tests-special += \ ++ $(objpfx)tst-allocate_once-mem.out \ ++ $(objpfx)tst-error1-mem.out \ ++ # tests-special ++endif ++endif + endif + + tests-container := \ +diff --git a/nptl/Makefile b/nptl/Makefile +index c9d9079cdb8a5643..34c80f6f38261669 100644 +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -558,10 +558,12 @@ xtests-static += tst-setuid1-static + ifeq ($(run-built-tests),yes) + tests-special += \ + $(objpfx)tst-oddstacklimit.out \ +- $(objpfx)tst-stack3-mem.out \ + # tests-special + ifeq ($(build-shared),yes) + tests-special += $(objpfx)tst-tls6.out ++ifneq ($(PERL),no) ++tests-special += $(objpfx)tst-stack3-mem.out ++endif + endif + endif + +@@ -619,10 +621,17 @@ tst-stack3-ENV = MALLOC_TRACE=$(objpfx)tst-stack3.mtrace \ + $(objpfx)tst-stack3-mem.out: $(objpfx)tst-stack3.out + $(common-objpfx)malloc/mtrace $(objpfx)tst-stack3.mtrace > $@; \ + $(evaluate-test) ++ ++ifeq ($(run-built-tests),yes) ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) + generated += \ + tst-stack3-mem.out \ + tst-stack3.mtrace \ + # generated ++endif ++endif ++endif + + tst-stack4mod.sos=$(shell for i in 0 1 2 3 4 5 6 7 8 9 10 \ + 11 12 13 14 15 16 17 18 19; do \ +diff --git a/posix/Makefile b/posix/Makefile +index 18ddb8c34176848e..830278a4233d7234 100644 +--- a/posix/Makefile ++++ b/posix/Makefile +@@ -419,6 +419,17 @@ generated += \ + $(addprefix wordexp-test-result, 1 2 3 4 5 6 7 8 9 10) \ + annexc \ + annexc.out \ ++ getconf.speclist \ ++ ptestcases.h \ ++ testcases.h \ ++ tst-getconf.out \ ++ wordexp-tst.out \ ++ # generated ++ ++ifeq ($(run-built-tests),yes) ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) ++generated += \ + bug-ga2-mem.out \ + bug-ga2.mtrace \ + bug-glob2-mem.out \ +@@ -431,23 +442,22 @@ generated += \ + bug-regex21.mtrace \ + bug-regex31-mem.out \ + bug-regex31.mtrace \ ++ bug-regex36-mem.out \ + bug-regex36.mtrace \ +- getconf.speclist \ +- ptestcases.h \ +- testcases.h \ + tst-boost-mem.out \ + tst-boost.mtrace \ + tst-fnmatch-mem.out \ + tst-fnmatch.mtrace \ +- tst-getconf.out \ + tst-pcre-mem.out \ + tst-pcre.mtrace \ + tst-rxspencer-no-utf8-mem.out \ + tst-rxspencer-no-utf8.mtrace \ + tst-vfork3-mem.out \ + tst-vfork3.mtrace \ +- wordexp-tst.out \ + # generated ++endif ++endif ++endif + + ifeq ($(run-built-tests),yes) + ifeq (yes,$(build-shared)) +@@ -462,6 +472,9 @@ endif + # XXX Please note that for now we ignore the result of this test. + tests-special += $(objpfx)annexc.out + ifeq ($(run-built-tests),yes) ++tests-special += $(objpfx)tst-getconf.out ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) + tests-special += \ + $(objpfx)bug-ga2-mem.out \ + $(objpfx)bug-glob2-mem.out \ +@@ -472,13 +485,14 @@ tests-special += \ + $(objpfx)bug-regex36-mem.out \ + $(objpfx)tst-boost-mem.out \ + $(objpfx)tst-fnmatch-mem.out \ +- $(objpfx)tst-getconf.out \ + $(objpfx)tst-glob-tilde-mem.out \ + $(objpfx)tst-pcre-mem.out \ + $(objpfx)tst-rxspencer-no-utf8-mem.out \ + $(objpfx)tst-vfork3-mem.out \ + # tests-special + endif ++endif ++endif + + include ../Rules + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 74512f20d39f8fec..2a01b1de6639bb6f 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -232,10 +232,6 @@ tests := \ + tst-popen \ + tst-popen2 \ + tst-printf-binary \ +- tst-printf-bz18872 \ +- tst-printf-bz25691 \ +- tst-printf-fp-free \ +- tst-printf-fp-leak \ + tst-printf-intn \ + tst-printf-oct \ + tst-printf-round \ +@@ -266,7 +262,6 @@ tests := \ + tst-vfprintf-mbs-prec \ + tst-vfprintf-user-type \ + tst-vfprintf-width-i18n \ +- tst-vfprintf-width-prec \ + tst-vfprintf-width-prec-alloc \ + tst-wc-printf \ + tstdiomisc \ +@@ -275,6 +270,20 @@ tests := \ + xbug \ + # tests + ++ifeq ($(run-built-tests),yes) ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) ++tests += \ ++ tst-printf-bz18872 \ ++ tst-printf-bz25691 \ ++ tst-printf-fp-free \ ++ tst-printf-fp-leak \ ++ tst-vfprintf-width-prec \ ++ # tests ++endif ++endif ++endif ++ + tests-container += \ + tst-popen3 \ + tst-setvbuf2 \ +@@ -302,14 +311,19 @@ test-srcs = \ + + ifeq ($(run-built-tests),yes) + tests-special += \ +- $(objpfx)tst-printf-bz18872-mem.out \ +- $(objpfx)tst-printf-bz25691-mem.out \ +- $(objpfx)tst-printf-fp-free-mem.out \ +- $(objpfx)tst-printf-fp-leak-mem.out \ + $(objpfx)tst-printf.out \ + $(objpfx)tst-printfsz-islongdouble.out \ + $(objpfx)tst-setvbuf1-cmp.out \ + $(objpfx)tst-unbputc.out \ ++ # tests-special ++ ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) ++tests-special += \ ++ $(objpfx)tst-printf-bz18872-mem.out \ ++ $(objpfx)tst-printf-bz25691-mem.out \ ++ $(objpfx)tst-printf-fp-free-mem.out \ ++ $(objpfx)tst-printf-fp-leak-mem.out \ + $(objpfx)tst-ungetc-leak-mem.out \ + $(objpfx)tst-vfprintf-width-prec-mem.out \ + # tests-special +@@ -330,6 +344,8 @@ generated += \ + tst-vfprintf-width-prec-mem.out \ + tst-vfprintf-width-prec.mtrace \ + # generated ++endif ++endif + endif # $(run-built-tests) + + tests-special += $(objpfx)tst-errno-manual.out diff --git a/glibc-RHEL-115819-2.patch b/glibc-RHEL-115819-2.patch new file mode 100644 index 0000000..33ae6ce --- /dev/null +++ b/glibc-RHEL-115819-2.patch @@ -0,0 +1,630 @@ +commit 7f04bb4e49413bd57ac3215f3480b09ae7131968 +Author: Joseph Myers +Date: Wed Aug 21 19:58:14 2024 +0000 + + Add more tests of getline + + There is very little test coverage for getline (only a minimal + stdio-common/tstgetln.c which doesn't verify anything about the + results of the getline calls). Add some more thorough tests + (generally using fopencookie for convenience in testing various cases + for what the input and possible errors / EOF in the file read might + look like). + + Note the following regarding testing of error cases: + + * Nothing is said in the specifications about what if anything might + be written into the buffer, and whether it might be reallocated, in + error cases. The expectation of the tests (required to avoid memory + leaks on error) is that at least on error cases, the invariant that + lineptr points to at least n bytes is maintained. + + * The optional EOVERFLOW error case specified in POSIX, "The number of + bytes to be written into the buffer, including the delimiter + character (if encountered), would exceed {SSIZE_MAX}.", doesn't seem + practically testable, as any case reading so many characters (half + the address space) would also be liable to run into allocation + failure along (ENOMEM) the way. + + * If a read error occurs part way through reading an input line, it + seems unclear whether a partial line should be returned by getline + (avoid input getting lost), which is what glibc does at least in the + fopencookie case used in this test, or whether getline should return + -1 (error) (so avoiding the program misbehaving by processing a + truncated line as if it were complete). (There was a short, + inconclusive discussion about this on the Austin Group list on 9-10 + November 2014.) + + * The POSIX specification of getline inherits errors from fgetc. I + didn't try to cover fgetc errors systematically, just one example of + such an error. + + Tested for x86_64 and x86. + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 2a01b1de6639bb6f..98fcd8a38523b728 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -221,6 +221,8 @@ tests := \ + tst-fread \ + tst-fseek \ + tst-fwrite \ ++ tst-getline \ ++ tst-getline-enomem \ + tst-gets \ + tst-grouping \ + tst-grouping2 \ +@@ -320,6 +322,8 @@ tests-special += \ + ifeq (yes,$(build-shared)) + ifneq ($(PERL),no) + tests-special += \ ++ $(objpfx)tst-getline-enomem-mem.out \ ++ $(objpfx)tst-getline-mem.out \ + $(objpfx)tst-printf-bz18872-mem.out \ + $(objpfx)tst-printf-bz25691-mem.out \ + $(objpfx)tst-printf-fp-free-mem.out \ +@@ -329,6 +333,10 @@ tests-special += \ + # tests-special + + generated += \ ++ tst-getline-enomem-mem.out \ ++ tst-getline-enomem.mtrace \ ++ tst-getline-mem.out \ ++ tst-getline.mtrace \ + tst-printf-bz18872-mem.out \ + tst-printf-bz18872.c \ + tst-printf-bz18872.mtrace \ +@@ -438,6 +446,12 @@ tst-scanf-bz27650-ENV = \ + tst-ungetc-leak-ENV = \ + MALLOC_TRACE=$(objpfx)tst-ungetc-leak.mtrace \ + LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-getline-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-getline.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-getline-enomem-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-getline-enomem.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so + + $(objpfx)tst-unbputc.out: tst-unbputc.sh $(objpfx)tst-unbputc + $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \ +diff --git a/stdio-common/tst-getline-enomem.c b/stdio-common/tst-getline-enomem.c +new file mode 100644 +index 0000000000000000..7fc70ea9b51d1262 +--- /dev/null ++++ b/stdio-common/tst-getline-enomem.c +@@ -0,0 +1,78 @@ ++/* Test getline: ENOMEM on allocation failure. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++/* Produce a stream of test data based on data in COOKIE (ignored), ++ storing up to SIZE bytes in BUF. */ ++ ++static ssize_t ++io_read (void *cookie, char *buf, size_t size) ++{ ++ memset (buf, 'x', size); ++ return size; ++} ++ ++/* Set up a test stream with fopencookie. */ ++ ++static FILE * ++open_test_stream (void) ++{ ++ static cookie_io_functions_t io_funcs = { .read = io_read }; ++ static int cookie; ++ FILE *fp = fopencookie (&cookie, "r", io_funcs); ++ TEST_VERIFY_EXIT (fp != NULL); ++ return fp; ++} ++ ++int ++do_test (void) ++{ ++ FILE *fp; ++ char *lineptr = NULL; ++ size_t size = 0; ++ ssize_t ret; ++ mtrace (); ++ /* Test ENOMEM (and error indicator for stream set) for memory ++ allocation failure. */ ++ verbose_printf ("Testing memory allocation failure\n"); ++ fp = open_test_stream (); ++ struct rlimit limit; ++ TEST_VERIFY_EXIT (getrlimit (RLIMIT_AS, &limit) == 0); ++ limit.rlim_cur = 32 * 1024 * 1024; ++ TEST_VERIFY_EXIT (setrlimit (RLIMIT_AS, &limit) == 0); ++ errno = 0; ++ ret = getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, ENOMEM); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ free (lineptr); ++ fclose (fp); ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-getline.c b/stdio-common/tst-getline.c +new file mode 100644 +index 0000000000000000..29eb7cec0f344872 +--- /dev/null ++++ b/stdio-common/tst-getline.c +@@ -0,0 +1,451 @@ ++/* Test getline. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++static struct test_data ++{ ++ /* Input test data for fopencookie stream. */ ++ const char *in_data; ++ ++ /* The amount of test data left. */ ++ size_t in_data_left; ++ ++ /* Error number for forcing an error on next read. */ ++ int in_error; ++ ++ /* Error number for forcing an error (rather than EOF) after all ++ bytes read. */ ++ int in_error_after; ++} the_cookie; ++ ++/* Produce a stream of test data based on data in COOKIE, storing up ++ to SIZE bytes in BUF. */ ++ ++static ssize_t ++io_read (void *cookie, char *buf, size_t size) ++{ ++ struct test_data *p = cookie; ++ if (p->in_error) ++ { ++ errno = p->in_error; ++ return -1; ++ } ++ if (size > p->in_data_left) ++ size = p->in_data_left; ++ memcpy (buf, p->in_data, size); ++ p->in_data += size; ++ p->in_data_left -= size; ++ if (p->in_data_left == 0) ++ p->in_error = p->in_error_after; ++ return size; ++} ++ ++/* Set up a test stream with fopencookie. */ ++ ++static FILE * ++open_test_stream (const char *in_data, size_t size) ++{ ++ static cookie_io_functions_t io_funcs = { .read = io_read }; ++ the_cookie.in_data = in_data; ++ the_cookie.in_data_left = size; ++ the_cookie.in_error = 0; ++ the_cookie.in_error_after = 0; ++ FILE *fp = fopencookie (&the_cookie, "r", io_funcs); ++ TEST_VERIFY_EXIT (fp != NULL); ++ return fp; ++} ++ ++/* Set up a test stream with fopencookie, using data from a string ++ literal. */ ++#define OPEN_TEST_STREAM(IN_DATA) open_test_stream (IN_DATA, sizeof (IN_DATA)) ++ ++/* Wrap getline to verify that (as per the glibc manual), *LINEPTR is ++ returned as non-null and with at least *N bytes (even on error or ++ EOF). Also clear errno for the benefit of tests that check the ++ value of errno after the call. */ ++ ++ssize_t ++wrap_getline (char **lineptr, size_t *n, FILE *stream) ++{ ++ errno = 0; ++ ssize_t ret = getline (lineptr, n, stream); ++ if (lineptr != NULL && n != NULL) ++ { ++ TEST_VERIFY (*lineptr != NULL); ++ TEST_VERIFY (malloc_usable_size (*lineptr) >= *n); ++ } ++ return ret; ++} ++ ++int ++do_test (void) ++{ ++ FILE *fp; ++ char *lineptr = NULL; ++ size_t size = 0; ++ ssize_t ret; ++ mtrace (); ++ /* Test failure with EINVAL (and error indicator for stream set) if ++ lineptr is a null pointer. */ ++ verbose_printf ("Testing lineptr == NULL\n"); ++ fp = OPEN_TEST_STREAM ("test"); ++ ret = wrap_getline (NULL, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, EINVAL); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ fclose (fp); ++ /* Test failure with EINVAL (and error indicator for stream set) if ++ n is a null pointer. */ ++ verbose_printf ("Testing n == NULL\n"); ++ fp = OPEN_TEST_STREAM ("test"); ++ ret = wrap_getline (&lineptr, NULL, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, EINVAL); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ fclose (fp); ++ /* Test failure with EINVAL (and error indicator for stream set) if ++ both lineptr and n are null pointers. */ ++ verbose_printf ("Testing lineptr == NULL and n == NULL\n"); ++ fp = OPEN_TEST_STREAM ("test"); ++ ret = wrap_getline (NULL, NULL, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, EINVAL); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ fclose (fp); ++ /* Test normal line, fitting in available space (including case with ++ null bytes). */ ++ verbose_printf ("Testing normal nonempty input\n"); ++ lineptr = xmalloc (10); ++ size = 10; ++ fp = OPEN_TEST_STREAM ("foo\nbar\0\n\0baz\nte\0st\n"); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "foo\n", 5); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "bar\0\n", 6); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "\0baz\n", 6); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 6); ++ TEST_COMPARE_BLOB (lineptr, 7, "te\0st\n", 7); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 1); ++ TEST_COMPARE_BLOB (lineptr, 1, "", 1); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (ferror (fp), 0); ++ TEST_COMPARE (!!feof (fp), 1); ++ fclose (fp); ++ /* Test normal line, with reallocation (including case with null bytes). */ ++ verbose_printf ("Testing normal nonempty input with reallocation\n"); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = OPEN_TEST_STREAM ("foo\nbar\0\n\0baz\nte\0st\n" ++ "foo\nbar\0\n\0baz\nte\0st\n"); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "foo\n", 5); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "bar\0\n", 6); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "\0baz\n", 6); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 6); ++ TEST_COMPARE_BLOB (lineptr, 7, "te\0st\n", 7); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "foo\n", 5); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "bar\0\n", 6); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "\0baz\n", 6); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 6); ++ TEST_COMPARE_BLOB (lineptr, 7, "te\0st\n", 7); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 1); ++ TEST_COMPARE_BLOB (lineptr, 1, "", 1); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (ferror (fp), 0); ++ TEST_COMPARE (!!feof (fp), 1); ++ fclose (fp); ++ /* Test EOF before delimiter but after some bytes read, fitting in ++ available space (including case with null bytes). */ ++ verbose_printf ("Testing EOF before delimiter\n"); ++ free (lineptr); ++ lineptr = xmalloc (10); ++ size = 10; ++ fp = open_test_stream ("foo", 3); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 3); ++ TEST_COMPARE_BLOB (lineptr, 4, "foo", 4); ++ fclose (fp); ++ free (lineptr); ++ lineptr = xmalloc (10); ++ size = 10; ++ fp = open_test_stream ("bar\0", 4); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "bar\0", 5); ++ fclose (fp); ++ free (lineptr); ++ lineptr = xmalloc (10); ++ size = 10; ++ fp = open_test_stream ("\0baz", 4); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "\0baz", 5); ++ fclose (fp); ++ free (lineptr); ++ lineptr = xmalloc (10); ++ size = 10; ++ fp = open_test_stream ("te\0st", 5); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "te\0st", 6); ++ fclose (fp); ++ /* Test EOF before delimiter but after some bytes read, with ++ reallocation (including case with null bytes). */ ++ verbose_printf ("Testing EOF before delimiter with reallocation\n"); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = open_test_stream ("foo", 3); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 3); ++ TEST_COMPARE_BLOB (lineptr, 4, "foo", 4); ++ fclose (fp); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = open_test_stream ("bar\0", 4); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "bar\0", 5); ++ fclose (fp); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = open_test_stream ("\0baz", 4); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "\0baz", 5); ++ fclose (fp); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = open_test_stream ("te\0st", 5); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "te\0st", 6); ++ fclose (fp); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ fp = open_test_stream ("foo", 3); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 3); ++ TEST_COMPARE_BLOB (lineptr, 4, "foo", 4); ++ fclose (fp); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ fp = open_test_stream ("bar\0", 4); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "bar\0", 5); ++ fclose (fp); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ fp = open_test_stream ("\0baz", 4); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 4); ++ TEST_COMPARE_BLOB (lineptr, 5, "\0baz", 5); ++ fclose (fp); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ fp = open_test_stream ("te\0st", 5); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 5); ++ TEST_COMPARE_BLOB (lineptr, 6, "te\0st", 6); ++ fclose (fp); ++ /* Test EOF with no bytes read (nothing is specified about anything ++ written to the buffer), including EOF again when already at end ++ of file. */ ++ verbose_printf ("Testing EOF with no bytes read\n"); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = open_test_stream ("", 0); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (ferror (fp), 0); ++ TEST_COMPARE (!!feof (fp), 1); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (ferror (fp), 0); ++ TEST_COMPARE (!!feof (fp), 1); ++ fclose (fp); ++ free (lineptr); ++ lineptr = xmalloc (1); ++ size = 1; ++ fp = open_test_stream ("", 0); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (ferror (fp), 0); ++ TEST_COMPARE (!!feof (fp), 1); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (ferror (fp), 0); ++ TEST_COMPARE (!!feof (fp), 1); ++ fclose (fp); ++ /* Test error occurring with no bytes read, including calling ++ wrap_getline again while the file is in error state. */ ++ verbose_printf ("Testing error with no bytes read\n"); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = open_test_stream ("", 0); ++ the_cookie.in_error = EINVAL; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, EINVAL); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ /* Make sure error state is sticky. */ ++ the_cookie.in_error = 0; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ fclose (fp); ++ /* Test error occurring after some bytes read. Specifications are ++ ambiguous here; at least in the fopencookie case used for ++ testing, glibc returns the partial line (but with the error ++ indicator on the stream set). */ ++ verbose_printf ("Testing error after some bytes read\n"); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = open_test_stream ("foo", 3); ++ the_cookie.in_error_after = EINVAL; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, 3); ++ TEST_COMPARE_BLOB (lineptr, 4, "foo", 4); ++ TEST_COMPARE (errno, EINVAL); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ /* Make sure error state is sticky. */ ++ the_cookie.in_error = 0; ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ fclose (fp); ++ /* Test EBADF error as a representative example of an fgetc error ++ resulting in an error from wrap_getline. We don't try to cover all ++ error cases for fgetc here. */ ++ verbose_printf ("Testing EBADF error\n"); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ fp = xfopen ("/dev/null", "r"); ++ xclose (fileno (fp)); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ fclose (fp); ++ /* Test EAGAIN error as an example of an fgetc error on a valid file ++ descriptor. */ ++ verbose_printf ("Testing EAGAIN error\n"); ++ free (lineptr); ++ lineptr = NULL; ++ size = 0; ++ int pipefd[2]; ++ xpipe (pipefd); ++ ret = fcntl (pipefd[0], F_SETFL, O_NONBLOCK); ++ TEST_VERIFY_EXIT (ret == 0); ++ fp = fdopen (pipefd[0], "r"); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, EAGAIN); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ /* Make sure error state is sticky (even after more data is ++ available to read). */ ++ xwrite (pipefd[1], "x\n", 2); ++ ret = wrap_getline (&lineptr, &size, fp); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (!!ferror (fp), 1); ++ TEST_COMPARE (feof (fp), 0); ++ fclose (fp); ++ free (lineptr); ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-115820-1.patch b/glibc-RHEL-115820-1.patch new file mode 100644 index 0000000..6ffdbe5 --- /dev/null +++ b/glibc-RHEL-115820-1.patch @@ -0,0 +1,79 @@ +commit 3e4a01870ef9605ccf6475215a4b32aa86d5d206 +Author: Aaron Merey +Date: Thu Aug 29 12:02:25 2024 -0400 + + Test fclose on an unopened file. + + Add new file libio/tst-fclosed-unopened.c that tests whether fclose on + an unopened file returns EOF. + + Calling fclose on unopened files normally causes a use-after-free bug, + however the standard streams are an exception since they are not + deallocated by fclose. + + fclose returning EOF for unopened files is not part of the external + contract but there are dependancies on this behaviour. For example, + gnulib's close_stdout in lib/closeout.c. + + Tested for x86_64. + + Signed-off-by: Aaron Merey + +diff --git a/libio/Makefile b/libio/Makefile +index 6cf5b3464b5bb4bf..3252c8c52fc3c773 100644 +--- a/libio/Makefile ++++ b/libio/Makefile +@@ -95,6 +95,7 @@ tests = \ + tst-eof \ + tst-ext \ + tst-ext2 \ ++ tst-fclose-unopened \ + tst-fdopen-seek-failure \ + tst-fgetc-after-eof \ + tst-fgetwc \ +diff --git a/libio/tst-fclose-unopened.c b/libio/tst-fclose-unopened.c +new file mode 100644 +index 0000000000000000..1f1cad042d8d72bf +--- /dev/null ++++ b/libio/tst-fclose-unopened.c +@@ -0,0 +1,40 @@ ++/* Test using fclose on an unopened file. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++ ++/* Verify that fclose on an unopened file returns EOF. This is not part ++ of the fclose external contract but there are dependancies on this ++ behaviour. */ ++ ++static int ++do_test (void) ++{ ++ TEST_COMPARE (fclose (stdin), 0); ++ ++ /* Attempt to close the unopened file and verify that EOF is returned. ++ Calling fclose on a file twice normally causes a use-after-free bug, ++ however the standard streams are an exception since they are not ++ deallocated by fclose. */ ++ TEST_COMPARE (fclose (stdin), EOF); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-115820-2.patch b/glibc-RHEL-115820-2.patch new file mode 100644 index 0000000..74afe9c --- /dev/null +++ b/glibc-RHEL-115820-2.patch @@ -0,0 +1,155 @@ +commit 35dc62de3d5d73a91d4ca8fa9799b510a34d170d +Author: Aaron Merey +Date: Thu Sep 19 09:53:23 2024 -0400 + + Add another test for fclose on an unopened file + + Add new file libio/tst-fclose-unopened2.c that tests whether fclose on an + unopened file returns EOF. + + This test differs from tst-fclose-unopened.c by ensuring the file's buffer + is allocated prior to double-fclose. A comment in tst-fclose-unopened.c + now clarifies that it is testing a file with an unallocated buffer. + + Calling fclose on unopened files normally causes a use-after-free bug, + however the standard streams are an exception since they are not + deallocated by fclose. + + Tested for x86_64. + + Reviewed-by: Carlos O'Donell + +diff --git a/libio/Makefile b/libio/Makefile +index 3252c8c52fc3c773..efa60525b39331da 100644 +--- a/libio/Makefile ++++ b/libio/Makefile +@@ -96,6 +96,7 @@ tests = \ + tst-ext \ + tst-ext2 \ + tst-fclose-unopened \ ++ tst-fclose-unopened2 \ + tst-fdopen-seek-failure \ + tst-fgetc-after-eof \ + tst-fgetwc \ +@@ -254,6 +255,9 @@ LDFLAGS-tst-bz24228 = -Wl,--version-script=tst-bz24228.map + + tst_wprintf2-ARGS = "Some Text" + ++tst-fclose-unopened2-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-fclose-unopened2.mtrace \ ++ LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so + test-fmemopen-ENV = MALLOC_TRACE=$(objpfx)test-fmemopen.mtrace \ + LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so + tst-fdopen-seek-failure-ENV = \ +@@ -278,6 +282,8 @@ generated += \ + tst-bz22415.mtrace \ + tst-bz24228.check \ + tst-bz24228.mtrace \ ++ tst-fclose-unopened2.check \ ++ tst-fclose-unopened2.mtrace \ + tst-fdopen-seek-failure.check \ + tst-fdopen-seek-failure.mtrace \ + tst-fopenloc.check \ +@@ -316,6 +322,7 @@ tests-special += \ + $(objpfx)test-fmemopen-mem.out \ + $(objpfx)tst-bz22415-mem.out \ + $(objpfx)tst-bz24228-mem.out \ ++ $(objpfx)tst-fclose-unopened2-mem.out \ + $(objpfx)tst-fdopen-seek-failure-mem.out \ + $(objpfx)tst-fopenloc-mem.out \ + # tests-special +@@ -403,6 +410,11 @@ $(objpfx)test-fmemopen-mem.out: $(objpfx)test-fmemopen.out + $(common-objpfx)malloc/mtrace $(objpfx)test-fmemopen.mtrace > $@; \ + $(evaluate-test) + ++$(objpfx)tst-fclose-unopened2-mem.out: $(objpfx)tst-fclose-unopened2.out ++ $(common-objpfx)malloc/mtrace \ ++ $(objpfx)tst-fclose-unopened2.mtrace > $@; \ ++ $(evaluate-test) ++ + $(objpfx)tst-fdopen-seek-failure-mem.out: $(objpfx)tst-fdopen-seek-failure.out + $(common-objpfx)malloc/mtrace \ + $(objpfx)tst-fdopen-seek-failure.mtrace > $@; \ +diff --git a/libio/tst-fclose-unopened.c b/libio/tst-fclose-unopened.c +index 1f1cad042d8d72bf..4fed2ffdfe8cf9b4 100644 +--- a/libio/tst-fclose-unopened.c ++++ b/libio/tst-fclose-unopened.c +@@ -19,9 +19,11 @@ + #include + #include + +-/* Verify that fclose on an unopened file returns EOF. This is not part +- of the fclose external contract but there are dependancies on this +- behaviour. */ ++/* Verify that fclose on an unopened file returns EOF. This test uses ++ a file with an unallocated buffer. ++ ++ This is not part of the fclose external contract but there are ++ dependencies on this behaviour. */ + + static int + do_test (void) +diff --git a/libio/tst-fclose-unopened2.c b/libio/tst-fclose-unopened2.c +new file mode 100644 +index 0000000000000000..1e99d9dc3d561b80 +--- /dev/null ++++ b/libio/tst-fclose-unopened2.c +@@ -0,0 +1,51 @@ ++/* Test using fclose on an unopened file. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++ ++/* Verify that fclose on an unopened file returns EOF. This test uses ++ a file with an allocated buffer. ++ ++ This is not part of the fclose external contract but there are ++ dependencies on this behaviour. */ ++ ++static int ++do_test (void) ++{ ++ mtrace (); ++ ++ /* Input file tst-fclose-unopened2.input has 6 bytes plus newline. */ ++ char buf[6]; ++ ++ /* Read from the file to ensure its internal buffer is allocated. */ ++ TEST_COMPARE (fread (buf, 1, sizeof (buf), stdin), sizeof (buf)); ++ ++ TEST_COMPARE (fclose (stdin), 0); ++ ++ /* Attempt to close the unopened file and verify that EOF is returned. ++ Calling fclose on a file twice normally causes a use-after-free bug, ++ however the standard streams are an exception since they are not ++ deallocated by fclose. */ ++ TEST_COMPARE (fclose (stdin), EOF); ++ ++ return 0; ++} ++ ++#include +diff --git a/libio/tst-fclose-unopened2.input b/libio/tst-fclose-unopened2.input +new file mode 100644 +index 0000000000000000..399f9ba41aff870b +--- /dev/null ++++ b/libio/tst-fclose-unopened2.input +@@ -0,0 +1 @@ ++fclose diff --git a/glibc-RHEL-115823-1.patch b/glibc-RHEL-115823-1.patch new file mode 100644 index 0000000..4f5fec1 --- /dev/null +++ b/glibc-RHEL-115823-1.patch @@ -0,0 +1,261 @@ +commit 96d0bf98cafd0b63721f369ca21ec64590551d47 +Author: Joseph Myers +Date: Tue Sep 3 13:53:01 2024 +0000 + + Add support/ code for checking file contents + + For use in freopen tests, add various support/ helper interfaces for + use in checking file contents. + + Tested for x86_64. + +diff --git a/support/Makefile b/support/Makefile +index 6b859e85ddb157f4..aee37b9c82e94499 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -49,6 +49,8 @@ libsupport-routines = \ + support_check_stat_fd \ + support_check_stat_path \ + support_chroot \ ++ support_compare_file_bytes \ ++ support_compare_file_string \ + support_copy_file \ + support_copy_file_range \ + support_create_timer \ +@@ -66,6 +68,8 @@ libsupport-routines = \ + support_isolate_in_subprocess \ + support_mutex_pi_monotonic \ + support_need_proc \ ++ support_open_and_compare_file_bytes \ ++ support_open_and_compare_file_string \ + support_openpty \ + support_path_support_time64 \ + support_paths \ +diff --git a/support/file_contents.h b/support/file_contents.h +new file mode 100644 +index 0000000000000000..9b2d750aae8a885a +--- /dev/null ++++ b/support/file_contents.h +@@ -0,0 +1,63 @@ ++/* Functionality for checking file contents. ++ Copyright (C) 2024 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 ++ . */ ++ ++#ifndef SUPPORT_FILE_CONTENTS_H ++#define SUPPORT_FILE_CONTENTS_H ++ ++#include ++#include ++ ++__BEGIN_DECLS ++ ++/* Check that an already-open file has exactly the given bytes, ++ starting at the current location in the file. The file position ++ indicator is updated to point after the bytes compared. Return 0 ++ if equal, 1 otherwise or on read error. */ ++int support_compare_file_bytes (FILE *fp, const char *contents, size_t length); ++ ++/* Check that an already-open file has exactly the given string as ++ contents, starting at the current offset. The file position ++ indicator is updated to point after the bytes compared. Return 0 ++ if equal, 1 otherwise or on read error. */ ++int support_compare_file_string (FILE *fp, const char *contents); ++ ++/* Check that a not-currently-open file has exactly the given bytes. ++ Return 0 if equal, 1 otherwise or on read error. */ ++int support_open_and_compare_file_bytes (const char *file, ++ const char *contents, ++ size_t length); ++ ++/* Check that a not-currently-open file has exactly the given string ++ as contents, starting at the current offset. Return 0 if equal, 1 ++ otherwise or on read error. */ ++int support_open_and_compare_file_string (const char *file, ++ const char *contents); ++ ++/* Compare bytes read from an open file with the given string. The ++ file position indicator is updated to point after the bytes ++ compared. */ ++#define TEST_COMPARE_FILE_STRING(FP, CONTENTS) \ ++ TEST_COMPARE (support_compare_file_string (FP, CONTENTS), 0) ++ ++/* Read a file and compare bytes read from it with the given string. */ ++#define TEST_OPEN_AND_COMPARE_FILE_STRING(FILE, CONTENTS) \ ++ TEST_COMPARE (support_open_and_compare_file_string (FILE, CONTENTS), 0) ++ ++__END_DECLS ++ ++#endif /* SUPPORT_FILE_CONTENTS_H */ +diff --git a/support/support_compare_file_bytes.c b/support/support_compare_file_bytes.c +new file mode 100644 +index 0000000000000000..e261e1da8f7b02b2 +--- /dev/null ++++ b/support/support_compare_file_bytes.c +@@ -0,0 +1,42 @@ ++/* Compare bytes from an open file. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#include ++ ++/* Check that an already-open file has exactly the given bytes, ++ starting at the current offset. */ ++ ++int ++support_compare_file_bytes (FILE *fp, const char *contents, size_t length) ++{ ++ int c; ++ while (length > 0) ++ { ++ c = getc (fp); ++ if (c == EOF || (unsigned char) c != (unsigned char) contents[0]) ++ return 1; ++ contents++; ++ length--; ++ } ++ c = getc (fp); ++ if (c != EOF || ferror (fp)) ++ return 1; ++ return 0; ++} +diff --git a/support/support_compare_file_string.c b/support/support_compare_file_string.c +new file mode 100644 +index 0000000000000000..04513c3af197037d +--- /dev/null ++++ b/support/support_compare_file_string.c +@@ -0,0 +1,28 @@ ++/* Compare string from an open file. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++ ++#include ++ ++int ++support_compare_file_string (FILE *fp, const char *contents) ++{ ++ return support_compare_file_bytes (fp, contents, strlen (contents)); ++} +diff --git a/support/support_open_and_compare_file_bytes.c b/support/support_open_and_compare_file_bytes.c +new file mode 100644 +index 0000000000000000..f804ed8e460d82f0 +--- /dev/null ++++ b/support/support_open_and_compare_file_bytes.c +@@ -0,0 +1,33 @@ ++/* Compare bytes from a file. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++ ++/* Check that a not-currently-open file has exactly the given ++ bytes. */ ++ ++int ++support_open_and_compare_file_bytes (const char *file, const char *contents, ++ size_t length) ++{ ++ FILE *fp = xfopen (file, "r"); ++ int ret = support_compare_file_bytes (fp, contents, length); ++ xfclose (fp); ++ return ret; ++} +diff --git a/support/support_open_and_compare_file_string.c b/support/support_open_and_compare_file_string.c +new file mode 100644 +index 0000000000000000..2b596d4c88b697f2 +--- /dev/null ++++ b/support/support_open_and_compare_file_string.c +@@ -0,0 +1,32 @@ ++/* Compare string from a file. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#include ++#include ++ ++/* Check that a not-currently-open file has exactly the given string ++ as contents, starting at the current offset. */ ++ ++int ++support_open_and_compare_file_string (const char *file, const char *contents) ++{ ++ return support_open_and_compare_file_bytes (file, contents, ++ strlen (contents)); ++} diff --git a/glibc-RHEL-115823-2.patch b/glibc-RHEL-115823-2.patch new file mode 100644 index 0000000..a97c16a --- /dev/null +++ b/glibc-RHEL-115823-2.patch @@ -0,0 +1,739 @@ +commit ed4bb289cf739f537deb735eaa01be531df084b9 +Author: Joseph Myers +Date: Wed Sep 4 16:32:21 2024 +0000 + + Add more thorough tests of freopen + + freopen is rather minimally tested in libio/tst-freopen and + libio/test-freopen. Add some more thorough tests, covering different + cases for change of mode in particular. The tests are run for both + freopen and freopen64 (given that those functions have two separate + copies of much of the code, so any bug fix directly in the freopen + code would probably need applying in both places). + + Note that there are two parts of the tests disabled because of bugs + discovered through running the tests, with bug numbers given in + comments. I expect to address those separately. The tests also don't + cover changes to cancellation ("c" in mode); I think that will better + be handled through a separate test. Also to handle separately: + testing on stdin / stdout / stderr; documenting lack of support for + streams opened with popen / fmemopen / open_memstream / fopencookie; + maybe also a chroot test without /proc; maybe also more thorough tests + for large file handling on 32-bit systems (freopen64). + + Tested for x86_64. + +Conflicts: + stdio-common/Makefile + (fixup context for newly added tests) + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index cee076cb7bcff2d2..f949ec37482d8859 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -224,6 +224,10 @@ tests := \ + tst-fphex \ + tst-fphex-wide \ + tst-fread \ ++ tst-freopen2 \ ++ tst-freopen3 \ ++ tst-freopen64-2 \ ++ tst-freopen64-3 \ + tst-fseek \ + tst-fseek-mmap \ + tst-fwrite \ +@@ -331,6 +335,8 @@ tests-special += \ + ifeq (yes,$(build-shared)) + ifneq ($(PERL),no) + tests-special += \ ++ $(objpfx)tst-freopen2-mem.out \ ++ $(objpfx)tst-freopen64-2-mem.out \ + $(objpfx)tst-getline-enomem-mem.out \ + $(objpfx)tst-getline-mem.out \ + $(objpfx)tst-printf-bz18872-mem.out \ +@@ -342,6 +348,10 @@ tests-special += \ + # tests-special + + generated += \ ++ tst-freopen2-mem.out \ ++ tst-freopen2.mtrace \ ++ tst-freopen64-2-mem.out \ ++ tst-freopen64-2.mtrace \ + tst-getline-enomem-mem.out \ + tst-getline-enomem.mtrace \ + tst-getline-mem.out \ +@@ -461,6 +471,12 @@ tst-getline-ENV = \ + tst-getline-enomem-ENV = \ + MALLOC_TRACE=$(objpfx)tst-getline-enomem.mtrace \ + LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen2-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen2.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen64-2-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen64-2.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so + + $(objpfx)tst-unbputc.out: tst-unbputc.sh $(objpfx)tst-unbputc + $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \ +diff --git a/stdio-common/tst-freopen2-main.c b/stdio-common/tst-freopen2-main.c +new file mode 100644 +index 0000000000000000..22b21afebf709563 +--- /dev/null ++++ b/stdio-common/tst-freopen2-main.c +@@ -0,0 +1,526 @@ ++/* Test freopen. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define START_TEST(DESC) \ ++ do \ ++ { \ ++ fds = support_descriptors_list (); \ ++ verbose_printf (DESC); \ ++ } \ ++ while (0) ++ ++#define END_TEST \ ++ do \ ++ { \ ++ support_descriptors_check (fds); \ ++ support_descriptors_free (fds); \ ++ } \ ++ while (0) ++ ++int ++do_test (void) ++{ ++ mtrace (); ++ struct support_descriptors *fds; ++ char *temp_dir = support_create_temp_directory ("tst-freopen2"); ++ char *file1 = xasprintf ("%s/file1", temp_dir); ++ support_write_file_string (file1, "file1"); ++ add_temp_file (file1); ++ char *file2 = xasprintf ("%s/file2", temp_dir); ++ support_write_file_string (file2, "file2"); ++ add_temp_file (file2); ++ char *file3 = xasprintf ("%s/file3", temp_dir); ++ char *file4 = xasprintf ("%s/file4", temp_dir); ++ char *file1a = xasprintf ("%s/file1a", temp_dir); ++ FILE *fp; ++ int ret; ++ wint_t wc; ++ ++ /* Test each pair of old and new modes from r w a. */ ++ ++ START_TEST ("Testing r -> r\n"); ++ fp = xfopen (file1, "r"); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "file2"); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("Testing r -> w\n"); ++ fp = xfopen (file1, "r"); ++ fp = FREOPEN (file2, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("File2new", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file1, "file1"); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "File2new"); ++ END_TEST; ++ ++ START_TEST ("Testing r -> a\n"); ++ fp = xfopen (file1, "r"); ++ fp = FREOPEN (file2, "a", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("3", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "File2new3"); ++ END_TEST; ++ ++ START_TEST ("Testing w -> r\n"); ++ fp = xfopen (file1, "w"); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "File2new3"); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("Testing w -> w\n"); ++ fp = xfopen (file1, "w"); ++ fp = FREOPEN (file2, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("next", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file1, ""); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "next"); ++ END_TEST; ++ ++ START_TEST ("Testing w -> a\n"); ++ fp = xfopen (file1, "w"); ++ fp = FREOPEN (file2, "a", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("4", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "next4"); ++ END_TEST; ++ ++ START_TEST ("Testing a -> r\n"); ++ fp = xfopen (file1, "a"); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "next4"); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("Testing a -> w\n"); ++ fp = xfopen (file1, "a"); ++ fp = FREOPEN (file2, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("another", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "another"); ++ END_TEST; ++ ++ START_TEST ("Testing a -> a\n"); ++ fp = xfopen (file1, "a"); ++ fp = FREOPEN (file2, "a", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("5", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "another5"); ++ END_TEST; ++ ++ /* Test for file originally opened with fopen64. */ ++ START_TEST ("Testing fopen64 a -> a\n"); ++ fp = fopen64 (file1, "a"); ++ TEST_VERIFY_EXIT (fp != NULL); ++ fp = FREOPEN (file2, "a", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("64", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "another564"); ++ END_TEST; ++ ++ /* Test calling freopen more than once on the same FILE *. */ ++ ++ START_TEST ("Testing r -> w -> r\n"); ++ fp = xfopen (file1, "r"); ++ fp = FREOPEN (file2, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("freopen-twice", fp); ++ TEST_VERIFY (ret >= 0); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "freopen-twice"); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "freopen-twice"); ++ END_TEST; ++ ++ START_TEST ("Testing r -> w -> r (exactly one freopen64)\n"); ++ fp = xfopen (file1, "r"); ++ fp = OTHER_FREOPEN (file2, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("freopen-twice64", fp); ++ TEST_VERIFY (ret >= 0); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "freopen-twice64"); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "freopen-twice64"); ++ END_TEST; ++ ++ /* Test changing to/from b (binary, no-op). */ ++ ++ START_TEST ("Testing rb -> r\n"); ++ fp = xfopen (file1, "rb"); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "freopen-twice64"); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("Testing r -> rb\n"); ++ fp = xfopen (file1, "r"); ++ fp = FREOPEN (file2, "rb", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "freopen-twice64"); ++ xfclose (fp); ++ END_TEST; ++ ++ /* Test changing to/from + (read-and-write). */ ++ ++ START_TEST ("Testing r -> w+\n"); ++ fp = xfopen (file1, "r"); ++ fp = FREOPEN (file2, "w+", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("latest", fp); ++ TEST_VERIFY (ret >= 0); ++ ret = fseek (fp, 0, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ TEST_COMPARE_FILE_STRING (fp, "latest"); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "latest"); ++ END_TEST; ++ ++ START_TEST ("Testing w -> a+\n"); ++ fp = xfopen (file1, "w"); ++ fp = FREOPEN (file2, "a+", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("suffix", fp); ++ TEST_VERIFY (ret >= 0); ++ ret = fseek (fp, 0, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ TEST_COMPARE_FILE_STRING (fp, "latestsuffix"); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "latestsuffix"); ++ END_TEST; ++ ++ START_TEST ("Testing a -> r+\n"); ++ fp = xfopen (file1, "a"); ++ fp = FREOPEN (file2, "r+", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "latestsuffix"); ++ ret = fseek (fp, 0, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ ret = fputs ("new", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "newestsuffix"); ++ END_TEST; ++ ++ START_TEST ("Testing r+ -> w\n"); ++ fp = xfopen (file1, "r+"); ++ fp = FREOPEN (file2, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("plusto", fp); ++ TEST_VERIFY (ret >= 0); ++ ret = fseek (fp, 0, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ errno = 0; ++ TEST_COMPARE (fgetc (fp), EOF); ++ TEST_COMPARE (errno, EBADF); ++ clearerr (fp); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "plusto"); ++ END_TEST; ++ ++ START_TEST ("Testing w+ -> a\n"); ++ fp = xfopen (file1, "w+"); ++ fp = FREOPEN (file2, "a", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("more", fp); ++ TEST_VERIFY (ret >= 0); ++ ret = fseek (fp, 0, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ errno = 0; ++ TEST_COMPARE (fgetc (fp), EOF); ++ TEST_COMPARE (errno, EBADF); ++ clearerr (fp); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "plustomore"); ++ END_TEST; ++ ++ START_TEST ("Testing a+ -> r\n"); ++ fp = xfopen (file1, "a+"); ++ fp = FREOPEN (file2, "rr", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "plustomore"); ++ ret = fputs ("2", fp); ++ TEST_COMPARE (ret, EOF); ++ clearerr (fp); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "plustomore"); ++ END_TEST; ++ ++ /* Test changing to/from e (FD_CLOEXEC). */ ++ ++ START_TEST ("Testing re -> r\n"); ++ fp = xfopen (file1, "re"); ++ ret = fcntl (fileno (fp), F_GETFD); ++ TEST_VERIFY (ret != -1); ++ TEST_COMPARE (ret & FD_CLOEXEC, FD_CLOEXEC); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fcntl (fileno (fp), F_GETFD); ++ TEST_VERIFY (ret != -1); ++#if 0 /* Fails to clear FD_CLOEXEC (bug 32134). */ ++ TEST_COMPARE (ret & FD_CLOEXEC, 0); ++#endif ++ TEST_COMPARE_FILE_STRING (fp, "plustomore"); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("Testing r -> re\n"); ++ fp = xfopen (file1, "r"); ++ ret = fcntl (fileno (fp), F_GETFD); ++ TEST_VERIFY (ret != -1); ++ TEST_COMPARE (ret & FD_CLOEXEC, 0); ++ fp = FREOPEN (file2, "re", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fcntl (fileno (fp), F_GETFD); ++ TEST_VERIFY (ret != -1); ++ TEST_COMPARE (ret & FD_CLOEXEC, FD_CLOEXEC); ++ TEST_COMPARE_FILE_STRING (fp, "plustomore"); ++ xfclose (fp); ++ END_TEST; ++ ++ /* Test changing to/from m (mmap) (a no-op as far as testing ++ semantics is concerned). */ ++ ++ START_TEST ("Testing rm -> r\n"); ++ fp = xfopen (file1, "rm"); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "plustomore"); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("Testing r -> rm\n"); ++ fp = xfopen (file1, "r"); ++ fp = FREOPEN (file2, "rm", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "plustomore"); ++ xfclose (fp); ++ END_TEST; ++ ++ /* Test changing to/from x (O_EXCL). */ ++ ++ START_TEST ("Testing wx -> w\n"); ++ fp = xfopen (file3, "wx"); ++ add_temp_file (file3); ++ fp = FREOPEN (file2, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = fputs ("wxtow", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file2, "wxtow"); ++ END_TEST; ++ ++ START_TEST ("Testing w -> wx (file does not exist)\n"); ++ fp = xfopen (file1, "w"); ++ fp = FREOPEN (file4, "wx", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ add_temp_file (file4); ++ ret = fputs ("wtowx", fp); ++ TEST_VERIFY (ret >= 0); ++ xfclose (fp); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file4, "wtowx"); ++ END_TEST; ++ ++ /* Test with ,ccs=CHARSET. */ ++ ++ START_TEST ("testing w,ccs=utf-8 -> r\n"); ++ fp = xfopen (file1, "w,ccs=utf-8"); ++ ret = fputws (L"\xc0\xc1", fp); ++ TEST_VERIFY (ret >= 0); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "wxtow"); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("testing w,ccs=iso-8859-1 -> r,ccs=utf-8\n"); ++ fp = xfopen (file2, "w,ccs=iso-8859-1"); ++ ret = fputws (L"\xc0\xc1", fp); ++ TEST_VERIFY (ret >= 0); ++#if 0 /* Doesn't work (bug 23675). */ ++ fp = FREOPEN (file1, "r,ccs=utf-8", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++#else /* Works instead. */ ++ xfclose (fp); ++ fp = xfopen (file1, "r,ccs=utf-8"); ++#endif ++ wc = fgetwc (fp); ++ TEST_COMPARE (wc, (wint_t) 0xc0); ++ wc = fgetwc (fp); ++ TEST_COMPARE (wc, (wint_t) 0xc1); ++ wc = fgetwc (fp); ++ TEST_COMPARE (wc, WEOF); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("testing r,ccs=utf-8 -> r\n"); ++ fp = xfopen (file1, "r,ccs=utf-8"); ++ fp = FREOPEN (file1, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "\u00c0\u00c1"); ++ xfclose (fp); ++ END_TEST; ++ ++ /* Test that errors closing the old file are ignored. */ ++ ++ START_TEST ("testing errors closing old file ignored\n"); ++ fp = xfopen ("/dev/full", "w"); ++ fputc ('x', fp); ++ fp = FREOPEN (file1, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "\u00c0\u00c1"); ++ xfclose (fp); ++ END_TEST; ++ ++ /* Test that error / EOF state from the old file are cleared. */ ++ ++ START_TEST ("testing error state from old file cleared\n"); ++ fp = xfopen ("/dev/full", "w"); ++ fputc ('x', fp); ++ fflush (fp); ++ TEST_VERIFY (ferror (fp)); ++ TEST_VERIFY (!feof (fp)); ++ fp = FREOPEN (file2, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_VERIFY (!ferror (fp)); ++ TEST_VERIFY (!feof (fp)); ++ xfclose (fp); ++ END_TEST; ++ ++ START_TEST ("testing EOF state from old file cleared\n"); ++ fp = xfopen ("/dev/null", "r"); ++ fgetc (fp); ++ TEST_VERIFY (!ferror (fp)); ++ TEST_VERIFY (feof (fp)); ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_VERIFY (!ferror (fp)); ++ TEST_VERIFY (!feof (fp)); ++ xfclose (fp); ++ END_TEST; ++ ++ /* Test freopen with NULL, same mode (should flush content and reset ++ file offset). */ ++ ++ START_TEST ("testing freopen with NULL, same mode\n"); ++ fp = xfopen (file1, "r+"); ++ ret = fputs ("same mode", fp); ++ TEST_VERIFY (ret >= 0); ++ fp = FREOPEN (NULL, "r+", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "same mode"); ++ xfclose (fp); ++ END_TEST; ++ ++ /* Test freopen with NULL, different mode. */ ++ ++ START_TEST ("testing freopen with NULL, different mode\n"); ++ fp = xfopen (file1, "w"); ++ ret = fputs ("different mode", fp); ++ TEST_VERIFY (ret >= 0); ++ fp = FREOPEN (NULL, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "different mode"); ++ xfclose (fp); ++ END_TEST; ++ ++ /* Test freopen with NULL, renamed file. This verifies that ++ reopening succeeds (and resets the file position indicator to ++ start of file) even when the original path could no longer be ++ opened. */ ++ ++ START_TEST ("testing freopen with NULL, renamed file\n"); ++ fp = xfopen (file1, "r+"); ++ ret = fputs ("file has been renamed", fp); ++ TEST_VERIFY (ret >= 0); ++ ret = rename (file1, file1a); ++ TEST_COMPARE (ret, 0); ++ fp = FREOPEN (NULL, "r+", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "file has been renamed"); ++ xfclose (fp); ++ ret = rename (file1a, file1); ++ TEST_COMPARE (ret, 0); ++ END_TEST; ++ ++ /* Test freopen with NULL, deleted file. This verifies that ++ reopening succeeds (and resets the file position indicator to ++ start of file) even when the original path could no longer be ++ opened. */ ++ ++ START_TEST ("testing freopen with NULL, deleted file\n"); ++ fp = xfopen (file1, "r+"); ++ ret = fputs ("file has now been deleted", fp); ++ TEST_VERIFY (ret >= 0); ++ ret = remove (file1); ++ TEST_COMPARE (ret, 0); ++ fp = FREOPEN (NULL, "r+", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ TEST_COMPARE_FILE_STRING (fp, "file has now been deleted"); ++ xfclose (fp); ++ /* Recreate the file so it is present when expected for temporary ++ file deletion. */ ++ support_write_file_string (file1, "file1"); ++ END_TEST; ++ ++ free (temp_dir); ++ free (file1); ++ free (file2); ++ free (file3); ++ free (file4); ++ free (file1a); ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-freopen2.c b/stdio-common/tst-freopen2.c +new file mode 100644 +index 0000000000000000..11ec7a9783b7caa3 +--- /dev/null ++++ b/stdio-common/tst-freopen2.c +@@ -0,0 +1,3 @@ ++#define FREOPEN freopen ++#define OTHER_FREOPEN freopen64 ++#include +diff --git a/stdio-common/tst-freopen3-main.c b/stdio-common/tst-freopen3-main.c +new file mode 100644 +index 0000000000000000..5107e1f98e189e4b +--- /dev/null ++++ b/stdio-common/tst-freopen3-main.c +@@ -0,0 +1,90 @@ ++/* Test freopen failure. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define START_TEST(DESC) \ ++ do \ ++ { \ ++ fds = support_descriptors_list (); \ ++ verbose_printf (DESC); \ ++ } \ ++ while (0) ++ ++#define END_TEST \ ++ do \ ++ { \ ++ support_descriptors_check (fds); \ ++ support_descriptors_free (fds); \ ++ } \ ++ while (0) ++ ++int ++do_test (void) ++{ ++ struct support_descriptors *fds; ++ char *temp_dir = support_create_temp_directory ("tst-freopen3"); ++ char *file1 = xasprintf ("%s/file1", temp_dir); ++ support_write_file_string (file1, "file1"); ++ add_temp_file (file1); ++ char *file2 = xasprintf ("%s/file2", temp_dir); ++ support_write_file_string (file2, "file2"); ++ add_temp_file (file2); ++ char *file_nodir = xasprintf ("%s/nodir/file", temp_dir); ++ FILE *fp; ++ int ret; ++ int fd; ++ ++ START_TEST ("Testing w -> wx (file exists)\n"); ++ fp = xfopen (file1, "w"); ++ fp = FREOPEN (file2, "wx", fp); ++ TEST_VERIFY (fp == NULL); ++ END_TEST; ++ ++ /* Test old file is closed even when opening the new file fails. */ ++ ++ START_TEST ("testing r -> r (opening new file fails)\n"); ++ fp = xfopen (file1, "r"); ++ fd = fileno (fp); ++ fp = FREOPEN (file_nodir, "r", fp); ++ TEST_VERIFY (fp == NULL); ++ errno = 0; ++ ret = fcntl (fd, F_GETFL); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, EBADF); ++ END_TEST; ++ ++ free (temp_dir); ++ free (file1); ++ free (file2); ++ free (file_nodir); ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-freopen3.c b/stdio-common/tst-freopen3.c +new file mode 100644 +index 0000000000000000..5041b6b2332c8af1 +--- /dev/null ++++ b/stdio-common/tst-freopen3.c +@@ -0,0 +1,2 @@ ++#define FREOPEN freopen ++#include +diff --git a/stdio-common/tst-freopen64-2.c b/stdio-common/tst-freopen64-2.c +new file mode 100644 +index 0000000000000000..88fdc64d8c6548f5 +--- /dev/null ++++ b/stdio-common/tst-freopen64-2.c +@@ -0,0 +1,3 @@ ++#define FREOPEN freopen64 ++#define OTHER_FREOPEN freopen ++#include +diff --git a/stdio-common/tst-freopen64-3.c b/stdio-common/tst-freopen64-3.c +new file mode 100644 +index 0000000000000000..b91b6d2c033a1a79 +--- /dev/null ++++ b/stdio-common/tst-freopen64-3.c +@@ -0,0 +1,2 @@ ++#define FREOPEN freopen64 ++#include diff --git a/glibc-RHEL-115823-3.patch b/glibc-RHEL-115823-3.patch new file mode 100644 index 0000000..b646a53 --- /dev/null +++ b/glibc-RHEL-115823-3.patch @@ -0,0 +1,69 @@ +commit f512634ddef242ef0ff025ddeba64ce51035040f +Author: Joseph Myers +Date: Thu Sep 5 11:15:29 2024 +0000 + + Clear flags2 flags set from mode in freopen (bug 32134) + + As reported in bug 32134, freopen does not clear the flags set in + fp->_flags2 by the "e", "m" or "c" mode characters. Clear these so + that they can be set or not as appropriate from the mode string passed + to freopen. The relevant test for "e" in tst-freopen2-main.c is + enabled accordingly; "c" is expected to be covered in a separately + written test (and while tst-freopen2-main.c does include transitions + to and from "m", that's not really a semantic flag intended to result + in behaving in an observably different way). + + Tested for x86_64. + +diff --git a/libio/freopen.c b/libio/freopen.c +index c7e36db7758c8f3b..f6c943ddf82e399c 100644 +--- a/libio/freopen.c ++++ b/libio/freopen.c +@@ -63,6 +63,9 @@ freopen (const char *filename, const char *mode, FILE *fp) + up here. */ + _IO_old_file_close_it (fp); + _IO_JUMPS_FUNC_UPDATE (fp, &_IO_old_file_jumps); ++ fp->_flags2 &= ~(_IO_FLAGS2_MMAP ++ | _IO_FLAGS2_NOTCANCEL ++ | _IO_FLAGS2_CLOEXEC); + result = _IO_old_file_fopen (fp, gfilename, mode); + } + else +@@ -72,6 +75,9 @@ freopen (const char *filename, const char *mode, FILE *fp) + _IO_JUMPS_FILE_plus (fp) = &_IO_file_jumps; + if (_IO_vtable_offset (fp) == 0 && fp->_wide_data != NULL) + fp->_wide_data->_wide_vtable = &_IO_wfile_jumps; ++ fp->_flags2 &= ~(_IO_FLAGS2_MMAP ++ | _IO_FLAGS2_NOTCANCEL ++ | _IO_FLAGS2_CLOEXEC); + result = _IO_file_fopen (fp, gfilename, mode, 1); + if (result != NULL) + result = __fopen_maybe_mmap (result); +diff --git a/libio/freopen64.c b/libio/freopen64.c +index 9a6d5ed8016b6ed6..0f3cb16331318425 100644 +--- a/libio/freopen64.c ++++ b/libio/freopen64.c +@@ -56,6 +56,9 @@ freopen64 (const char *filename, const char *mode, FILE *fp) + _IO_JUMPS_FILE_plus (fp) = &_IO_file_jumps; + if (_IO_vtable_offset (fp) == 0 && fp->_wide_data != NULL) + fp->_wide_data->_wide_vtable = &_IO_wfile_jumps; ++ fp->_flags2 &= ~(_IO_FLAGS2_MMAP ++ | _IO_FLAGS2_NOTCANCEL ++ | _IO_FLAGS2_CLOEXEC); + result = _IO_file_fopen (fp, gfilename, mode, 0); + fp->_flags2 &= ~_IO_FLAGS2_NOCLOSE; + if (result != NULL) +diff --git a/stdio-common/tst-freopen2-main.c b/stdio-common/tst-freopen2-main.c +index 22b21afebf709563..5dad41c76b02e6de 100644 +--- a/stdio-common/tst-freopen2-main.c ++++ b/stdio-common/tst-freopen2-main.c +@@ -308,9 +308,7 @@ do_test (void) + TEST_VERIFY_EXIT (fp != NULL); + ret = fcntl (fileno (fp), F_GETFD); + TEST_VERIFY (ret != -1); +-#if 0 /* Fails to clear FD_CLOEXEC (bug 32134). */ + TEST_COMPARE (ret & FD_CLOEXEC, 0); +-#endif + TEST_COMPARE_FILE_STRING (fp, "plustomore"); + xfclose (fp); + END_TEST; diff --git a/glibc-RHEL-115823-4.patch b/glibc-RHEL-115823-4.patch new file mode 100644 index 0000000..9c17fc2 --- /dev/null +++ b/glibc-RHEL-115823-4.patch @@ -0,0 +1,119 @@ +commit 9c0d6f7a1046aba111e25e34ec07242853e859dc +Author: Joseph Myers +Date: Thu Sep 5 11:16:59 2024 +0000 + + Fix memory leak on freopen error return (bug 32140) + + As reported in bug 32140, freopen leaks the FILE object when it + returns NULL: there is no valid use of the FILE * pointer (including + passing to freopen again or to fclose) after such an error return, so + the underlying object should be freed. Add code to free it. + + Note 1: while I think it's clear from the relevant standards that the + object should be freed and the FILE * can't be used after the call in + this case (the stream is closed, which ends the lifetime of the FILE), + it's entirely possible that some existing code does in fact try to use + the existing FILE * in some way and could be broken by this change. + (Though the most common case for freopen may be stdin / stdout / + stderr, which _IO_deallocate_file explicitly checks for and does not + deallocate.) + + Note 2: the deallocation is only done in the _IO_IS_FILEBUF case. + Other kinds of streams bypass all the freopen logic handling closing + the file, meaning a call to _IO_deallocate_file would neither be safe + (the FILE might still be linked into the list of all open FILEs) nor + sufficient (other internal memory allocations associated with the file + would not have been freed). I think the validity of freopen for any + other kind of stream will need clarifying with the Austin Group, but + if it is valid in any such case (where "valid" means "not undefined + behavior so required to close the stream" rather than "required to + successfully associate the stream with the new file in cases where + fopen would work"), more significant changes would be needed to ensure + the stream gets fully closed. + + Tested for x86_64. + +diff --git a/libio/freopen.c b/libio/freopen.c +index f6c943ddf82e399c..ceeff8f2acb6333f 100644 +--- a/libio/freopen.c ++++ b/libio/freopen.c +@@ -114,5 +114,7 @@ freopen (const char *filename, const char *mode, FILE *fp) + + end: + _IO_release_lock (fp); ++ if (result == NULL && (fp->_flags & _IO_IS_FILEBUF) != 0) ++ _IO_deallocate_file (fp); + return result; + } +diff --git a/libio/freopen64.c b/libio/freopen64.c +index 0f3cb16331318425..3a314aca5ce808ca 100644 +--- a/libio/freopen64.c ++++ b/libio/freopen64.c +@@ -94,5 +94,7 @@ freopen64 (const char *filename, const char *mode, FILE *fp) + + end: + _IO_release_lock (fp); ++ if (result == NULL && (fp->_flags & _IO_IS_FILEBUF) != 0) ++ _IO_deallocate_file (fp); + return result; + } +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index f949ec37482d8859..ea6212b4eacd07d1 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -336,7 +336,9 @@ ifeq (yes,$(build-shared)) + ifneq ($(PERL),no) + tests-special += \ + $(objpfx)tst-freopen2-mem.out \ ++ $(objpfx)tst-freopen3-mem.out \ + $(objpfx)tst-freopen64-2-mem.out \ ++ $(objpfx)tst-freopen64-3-mem.out \ + $(objpfx)tst-getline-enomem-mem.out \ + $(objpfx)tst-getline-mem.out \ + $(objpfx)tst-printf-bz18872-mem.out \ +@@ -350,8 +352,12 @@ tests-special += \ + generated += \ + tst-freopen2-mem.out \ + tst-freopen2.mtrace \ ++ tst-freopen3-mem.out \ ++ tst-freopen3.mtrace \ + tst-freopen64-2-mem.out \ + tst-freopen64-2.mtrace \ ++ tst-freopen64-3-mem.out \ ++ tst-freopen64-3.mtrace \ + tst-getline-enomem-mem.out \ + tst-getline-enomem.mtrace \ + tst-getline-mem.out \ +@@ -477,6 +483,12 @@ tst-freopen2-ENV = \ + tst-freopen64-2-ENV = \ + MALLOC_TRACE=$(objpfx)tst-freopen64-2.mtrace \ + LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen3-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen3.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen64-3-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen64-3.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so + + $(objpfx)tst-unbputc.out: tst-unbputc.sh $(objpfx)tst-unbputc + $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \ +diff --git a/stdio-common/tst-freopen3-main.c b/stdio-common/tst-freopen3-main.c +index 5107e1f98e189e4b..990a6e5921843793 100644 +--- a/stdio-common/tst-freopen3-main.c ++++ b/stdio-common/tst-freopen3-main.c +@@ -18,6 +18,7 @@ + + #include + #include ++#include + #include + #include + +@@ -48,6 +49,7 @@ + int + do_test (void) + { ++ mtrace (); + struct support_descriptors *fds; + char *temp_dir = support_create_temp_directory ("tst-freopen3"); + char *file1 = xasprintf ("%s/file1", temp_dir); diff --git a/glibc-RHEL-115823-5.patch b/glibc-RHEL-115823-5.patch new file mode 100644 index 0000000..70949cf --- /dev/null +++ b/glibc-RHEL-115823-5.patch @@ -0,0 +1,86 @@ +commit e44ca1c085b3bd41266c882ea1cb0fd436231635 +Author: Joseph Myers +Date: Thu Sep 5 20:08:10 2024 +0000 + + Fix freopen handling of ,ccs= (bug 23675) + + As reported in bug 23675 and shown up in the recently added tests of + different cases of freopen (relevant part of the test currently + conditioned under #if 0 to avoid a failure resulting from this bug), + freopen wrongly forces the stream to unoriented even when a mode with + ,ccs= is specified, though such a mode is supposed to result in a + wide-oriented stream. Move the clearing of _mode to before the actual + reopening occurs, so that the main fopen implementation can leave a + wide-oriented stream in the ,ccs= case. + + Tested for x86_64. + +diff --git a/libio/freopen.c b/libio/freopen.c +index ceeff8f2acb6333f..00f26ad578afc1b1 100644 +--- a/libio/freopen.c ++++ b/libio/freopen.c +@@ -66,6 +66,7 @@ freopen (const char *filename, const char *mode, FILE *fp) + fp->_flags2 &= ~(_IO_FLAGS2_MMAP + | _IO_FLAGS2_NOTCANCEL + | _IO_FLAGS2_CLOEXEC); ++ fp->_mode = 0; + result = _IO_old_file_fopen (fp, gfilename, mode); + } + else +@@ -78,6 +79,7 @@ freopen (const char *filename, const char *mode, FILE *fp) + fp->_flags2 &= ~(_IO_FLAGS2_MMAP + | _IO_FLAGS2_NOTCANCEL + | _IO_FLAGS2_CLOEXEC); ++ fp->_mode = 0; + result = _IO_file_fopen (fp, gfilename, mode, 1); + if (result != NULL) + result = __fopen_maybe_mmap (result); +@@ -85,9 +87,6 @@ freopen (const char *filename, const char *mode, FILE *fp) + fp->_flags2 &= ~_IO_FLAGS2_NOCLOSE; + if (result != NULL) + { +- /* unbound stream orientation */ +- result->_mode = 0; +- + if (fd != -1 && _IO_fileno (result) != fd) + { + /* At this point we have both file descriptors already allocated, +diff --git a/libio/freopen64.c b/libio/freopen64.c +index 3a314aca5ce808ca..77c0dd3fdf3c3494 100644 +--- a/libio/freopen64.c ++++ b/libio/freopen64.c +@@ -59,15 +59,13 @@ freopen64 (const char *filename, const char *mode, FILE *fp) + fp->_flags2 &= ~(_IO_FLAGS2_MMAP + | _IO_FLAGS2_NOTCANCEL + | _IO_FLAGS2_CLOEXEC); ++ fp->_mode = 0; + result = _IO_file_fopen (fp, gfilename, mode, 0); + fp->_flags2 &= ~_IO_FLAGS2_NOCLOSE; + if (result != NULL) + result = __fopen_maybe_mmap (result); + if (result != NULL) + { +- /* unbound stream orientation */ +- result->_mode = 0; +- + if (fd != -1 && _IO_fileno (result) != fd) + { + /* At this point we have both file descriptors already allocated, +diff --git a/stdio-common/tst-freopen2-main.c b/stdio-common/tst-freopen2-main.c +index 5dad41c76b02e6de..74c3125fca697fe3 100644 +--- a/stdio-common/tst-freopen2-main.c ++++ b/stdio-common/tst-freopen2-main.c +@@ -386,13 +386,8 @@ do_test (void) + fp = xfopen (file2, "w,ccs=iso-8859-1"); + ret = fputws (L"\xc0\xc1", fp); + TEST_VERIFY (ret >= 0); +-#if 0 /* Doesn't work (bug 23675). */ + fp = FREOPEN (file1, "r,ccs=utf-8", fp); + TEST_VERIFY_EXIT (fp != NULL); +-#else /* Works instead. */ +- xfclose (fp); +- fp = xfopen (file1, "r,ccs=utf-8"); +-#endif + wc = fgetwc (fp); + TEST_COMPARE (wc, (wint_t) 0xc0); + wc = fgetwc (fp); diff --git a/glibc-RHEL-115823-6.patch b/glibc-RHEL-115823-6.patch new file mode 100644 index 0000000..73f83a5 --- /dev/null +++ b/glibc-RHEL-115823-6.patch @@ -0,0 +1,33 @@ +commit a2509a8bc955988f01f389a1cf74db3a9da42409 +Author: Joseph Myers +Date: Fri Sep 6 20:38:23 2024 +0000 + + Document limitations on streams passed to freopen + + As recently discussed, document that freopen does not work with + streams opened with functions such as popen, fmemopen, open_memstream + or fopencookie. I've filed + to clarify this issue + in POSIX. + + Tested with "make info" and "make html". + +diff --git a/manual/stdio.texi b/manual/stdio.texi +index de174eafcd5fde0c..7d787735079ea964 100644 +--- a/manual/stdio.texi ++++ b/manual/stdio.texi +@@ -330,6 +330,14 @@ this ability, so using @code{freopen} is more portable. + When the sources are compiled with @code{_FILE_OFFSET_BITS == 64} on a + 32 bit machine this function is in fact @code{freopen64} since the LFS + interface replaces transparently the old interface. ++ ++@Theglibc{} only supports use of @code{freopen} on streams opened with ++@code{fopen} or @code{fopen64} and on the original values of the ++standard streams @code{stdin}, @code{stdout}, and @code{stderr}; such ++a stream may be reopened multiple times with @code{freopen}. If it is ++called on another kind of stream (opened with functions such as ++@code{popen}, @code{fmemopen}, @code{open_memstream}, and ++@code{fopencookie}), @code{freopen} fails and returns a null pointer. + @end deftypefun + + @deftypefun {FILE *} freopen64 (const char *@var{filename}, const char *@var{opentype}, FILE *@var{stream}) diff --git a/glibc-RHEL-115823-7.patch b/glibc-RHEL-115823-7.patch new file mode 100644 index 0000000..8a8a079 --- /dev/null +++ b/glibc-RHEL-115823-7.patch @@ -0,0 +1,495 @@ +commit e0f3bf10acf4aab27752847828bfecd3fce41190 +Author: Joseph Myers +Date: Fri Sep 20 23:26:31 2024 +0000 + + Add freopen special-case tests: chroot, EFBIG, stdin/stdout/stderr + + Add tests of special cases for freopen that were omitted from the more + general tests of different modes and similar issues. The special + cases in the three tests here are logically unconnected, it was simply + convenient to put these tests in one patch. + + * Test freopen with a NULL path to the new file, in a chroot. Rather + than asserting that this fails (logically, failure in this case is + an implementation detail; it's not required for freopen to rely on + /proc), verify that either it fails (without memory leaks) or that + it succeeds and behaves as expected on success. There is no check + for file descriptor leaks because the machinery for that also + depends on /proc, so can't be used in a chroot. + + * Test that freopen and freopen64 are genuinely different in + configurations with 32-bit off_t by checking for an EFBIG trying to + write past 2GB in a file opened with freopen in such a configuration + but no error with 64-bit off_t or when opening with freopen64. + + * Test freopen of stdin, stdout and stderr. + + Tested for x86_64 and x86. + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index ea6212b4eacd07d1..13ad32289e6a9f50 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -226,8 +226,13 @@ tests := \ + tst-fread \ + tst-freopen2 \ + tst-freopen3 \ ++ tst-freopen4 \ ++ tst-freopen5 \ ++ tst-freopen6 \ + tst-freopen64-2 \ + tst-freopen64-3 \ ++ tst-freopen64-4 \ ++ tst-freopen64-6 \ + tst-fseek \ + tst-fseek-mmap \ + tst-fwrite \ +@@ -337,8 +342,13 @@ ifneq ($(PERL),no) + tests-special += \ + $(objpfx)tst-freopen2-mem.out \ + $(objpfx)tst-freopen3-mem.out \ ++ $(objpfx)tst-freopen4-mem.out \ ++ $(objpfx)tst-freopen5-mem.out \ ++ $(objpfx)tst-freopen6-mem.out \ + $(objpfx)tst-freopen64-2-mem.out \ + $(objpfx)tst-freopen64-3-mem.out \ ++ $(objpfx)tst-freopen64-4-mem.out \ ++ $(objpfx)tst-freopen64-6-mem.out \ + $(objpfx)tst-getline-enomem-mem.out \ + $(objpfx)tst-getline-mem.out \ + $(objpfx)tst-printf-bz18872-mem.out \ +@@ -354,10 +364,20 @@ generated += \ + tst-freopen2.mtrace \ + tst-freopen3-mem.out \ + tst-freopen3.mtrace \ ++ tst-freopen4-mem.out \ ++ tst-freopen4.mtrace \ ++ tst-freopen5-mem.out \ ++ tst-freopen5.mtrace \ ++ tst-freopen6-mem.out \ ++ tst-freopen6.mtrace \ + tst-freopen64-2-mem.out \ + tst-freopen64-2.mtrace \ + tst-freopen64-3-mem.out \ + tst-freopen64-3.mtrace \ ++ tst-freopen64-4-mem.out \ ++ tst-freopen64-4.mtrace \ ++ tst-freopen64-6-mem.out \ ++ tst-freopen64-6.mtrace \ + tst-getline-enomem-mem.out \ + tst-getline-enomem.mtrace \ + tst-getline-mem.out \ +@@ -489,6 +509,21 @@ tst-freopen3-ENV = \ + tst-freopen64-3-ENV = \ + MALLOC_TRACE=$(objpfx)tst-freopen64-3.mtrace \ + LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen4-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen4.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen64-4-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen64-4.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen5-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen5.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen6-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen6.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so ++tst-freopen64-6-ENV = \ ++ MALLOC_TRACE=$(objpfx)tst-freopen64-6.mtrace \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so + + $(objpfx)tst-unbputc.out: tst-unbputc.sh $(objpfx)tst-unbputc + $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \ +diff --git a/stdio-common/tst-freopen4-main.c b/stdio-common/tst-freopen4-main.c +new file mode 100644 +index 0000000000000000..e169442cf4df2e9d +--- /dev/null ++++ b/stdio-common/tst-freopen4-main.c +@@ -0,0 +1,100 @@ ++/* Test freopen in chroot. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int ++do_test (void) ++{ ++ mtrace (); ++ char *temp_dir = support_create_temp_directory ("tst-freopen4"); ++ FILE *fp; ++ int ret; ++ ++ /* These chroot tests verify that either reopening a renamed or ++ deleted file works even in the absence of /proc, or that it fails ++ (without memory leaks); thus, for example, such reopening does ++ not crash in the absence of /proc. */ ++ ++ support_become_root (); ++ if (!support_can_chroot ()) ++ return EXIT_UNSUPPORTED; ++ xchroot (temp_dir); ++ ++ /* Test freopen with NULL, renamed file. This verifies that ++ reopening succeeds (and resets the file position indicator to ++ start of file) even when the original path could no longer be ++ opened, or fails without a memory leak. (It is not possible to ++ use to test for file descriptor leaks ++ here, because that also depends on /proc.) */ ++ ++ verbose_printf ("testing freopen with NULL, renamed file\n"); ++ fp = xfopen ("/file1", "w+"); ++ ret = fputs ("file has been renamed", fp); ++ TEST_VERIFY (ret >= 0); ++ ret = rename ("/file1", "/file1a"); ++ TEST_COMPARE (ret, 0); ++ fp = FREOPEN (NULL, "r+", fp); ++ if (fp != NULL) ++ { ++ puts ("freopen of renamed file succeeded"); ++ TEST_COMPARE_FILE_STRING (fp, "file has been renamed"); ++ xfclose (fp); ++ } ++ else ++ puts ("freopen of renamed file failed (OK)"); ++ ret = rename ("/file1a", "/file1"); ++ TEST_COMPARE (ret, 0); ++ ++ /* Test freopen with NULL, deleted file. This verifies that ++ reopening succeeds (and resets the file position indicator to ++ start of file) even when the original path could no longer be ++ opened, or fails without a memory leak. */ ++ ++ verbose_printf ("testing freopen with NULL, deleted file\n"); ++ fp = xfopen ("/file1", "r+"); ++ ret = fputs ("file has now been deleted", fp); ++ TEST_VERIFY (ret >= 0); ++ ret = remove ("/file1"); ++ TEST_COMPARE (ret, 0); ++ fp = FREOPEN (NULL, "r+", fp); ++ if (fp != NULL) ++ { ++ puts ("freopen of deleted file succeeded"); ++ TEST_COMPARE_FILE_STRING (fp, "file has now been deleted"); ++ xfclose (fp); ++ } ++ else ++ puts ("freopen of deleted file failed (OK)"); ++ ++ free (temp_dir); ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-freopen4.c b/stdio-common/tst-freopen4.c +new file mode 100644 +index 0000000000000000..f39ec0d21730879f +--- /dev/null ++++ b/stdio-common/tst-freopen4.c +@@ -0,0 +1,2 @@ ++#define FREOPEN freopen ++#include +diff --git a/stdio-common/tst-freopen5.c b/stdio-common/tst-freopen5.c +new file mode 100644 +index 0000000000000000..f32626bccfe5c10a +--- /dev/null ++++ b/stdio-common/tst-freopen5.c +@@ -0,0 +1,144 @@ ++/* Test freopen and freopen64 with large offsets. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define START_TEST(DESC) \ ++ do \ ++ { \ ++ fds = support_descriptors_list (); \ ++ verbose_printf (DESC); \ ++ } \ ++ while (0) ++ ++#define END_TEST \ ++ do \ ++ { \ ++ support_descriptors_check (fds); \ ++ support_descriptors_free (fds); \ ++ } \ ++ while (0) ++ ++int ++do_test (void) ++{ ++ mtrace (); ++ struct support_descriptors *fds; ++ FILE *fp; ++ int ret; ++ ++ char *temp_dir = support_create_temp_directory ("tst-freopen5"); ++ /* This file is removed at the end of each test rather than left ++ around between tests to avoid problems with subsequent tests ++ reopening it as a large (2GB + 1 byte) file. */ ++ char *file1 = xasprintf ("%s/file1", temp_dir); ++ ++ /* fopen with freopen64: large offsets OK. */ ++ START_TEST ("testing fopen with freopen64\n"); ++ fp = fopen ("/dev/null", "r"); ++ TEST_VERIFY_EXIT (fp != NULL); ++ fp = freopen64 (file1, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ setbuf (fp, NULL); ++ ret = fseeko64 (fp, 1LL << 32, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ ret = fputc ('x', fp); ++ TEST_COMPARE (ret, 'x'); ++ xfclose (fp); ++ ret = remove (file1); ++ TEST_COMPARE (ret, 0); ++ END_TEST; ++ ++ /* fopen64 with freopen64: large offsets OK. */ ++ START_TEST ("testing fopen64 with freopen64\n"); ++ fp = fopen64 ("/dev/null", "r"); ++ TEST_VERIFY_EXIT (fp != NULL); ++ fp = freopen64 (file1, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ setbuf (fp, NULL); ++ ret = fseeko64 (fp, 1LL << 32, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ ret = fputc ('x', fp); ++ TEST_COMPARE (ret, 'x'); ++ xfclose (fp); ++ ret = remove (file1); ++ TEST_COMPARE (ret, 0); ++ END_TEST; ++ ++ /* fopen with freopen: large offsets not OK on 32-bit systems. */ ++ START_TEST ("testing fopen with freopen\n"); ++ fp = fopen ("/dev/null", "r"); ++ TEST_VERIFY_EXIT (fp != NULL); ++ fp = freopen (file1, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ setbuf (fp, NULL); ++ ret = fseeko64 (fp, 1LL << 32, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ errno = 0; ++ ret = fputc ('x', fp); ++ if (sizeof (off_t) == 4) ++ { ++ TEST_COMPARE (ret, EOF); ++ TEST_COMPARE (errno, EFBIG); ++ } ++ else ++ TEST_COMPARE (ret, 'x'); ++ fclose (fp); ++ ret = remove (file1); ++ TEST_COMPARE (ret, 0); ++ END_TEST; ++ ++ /* fopen64 with freopen: large offsets not OK on 32-bit systems. */ ++ START_TEST ("testing fopen64 with freopen\n"); ++ fp = fopen64 ("/dev/null", "r"); ++ TEST_VERIFY_EXIT (fp != NULL); ++ fp = freopen (file1, "w", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ setbuf (fp, NULL); ++ ret = fseeko64 (fp, 1LL << 32, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ errno = 0; ++ ret = fputc ('x', fp); ++ if (sizeof (off_t) == 4) ++ { ++ TEST_COMPARE (ret, EOF); ++ TEST_COMPARE (errno, EFBIG); ++ } ++ else ++ TEST_COMPARE (ret, 'x'); ++ fclose (fp); ++ ret = remove (file1); ++ TEST_COMPARE (ret, 0); ++ END_TEST; ++ ++ free (temp_dir); ++ free (file1); ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-freopen6-main.c b/stdio-common/tst-freopen6-main.c +new file mode 100644 +index 0000000000000000..f493f42fd7486b72 +--- /dev/null ++++ b/stdio-common/tst-freopen6-main.c +@@ -0,0 +1,98 @@ ++/* Test freopen of stdin / stdout / stderr. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int ++do_test (void) ++{ ++ mtrace (); ++ char *temp_dir = support_create_temp_directory ("tst-freopen6"); ++ char *file1 = xasprintf ("%s/file1", temp_dir); ++ support_write_file_string (file1, "file1"); ++ add_temp_file (file1); ++ FILE *fp; ++ int ret; ++ ++ verbose_printf ("Testing reopening stdin\n"); ++ fp = FREOPEN (file1, "r", stdin); ++ TEST_VERIFY_EXIT (fp == stdin); ++ ret = getchar (); ++ TEST_COMPARE (ret, 'f'); ++ ret = getchar (); ++ TEST_COMPARE (ret, 'i'); ++ ret = getchar (); ++ TEST_COMPARE (ret, 'l'); ++ ret = getchar (); ++ TEST_COMPARE (ret, 'e'); ++ ret = getchar (); ++ TEST_COMPARE (ret, '1'); ++ ret = getchar (); ++ TEST_COMPARE (ret, EOF); ++ xfclose (fp); ++ ++ verbose_printf ("Testing reopening stderr\n"); ++ fp = FREOPEN (file1, "w+", stderr); ++ TEST_VERIFY_EXIT (fp == stderr); ++ errno = EINVAL; ++ perror ("test"); ++ ret = fseek (fp, 0, SEEK_SET); ++ TEST_COMPARE (ret, 0); ++ TEST_COMPARE_FILE_STRING (fp, "test: Invalid argument\n"); ++ xfclose (fp); ++ ++ verbose_printf ("Testing reopening stdout\n"); ++ /* Defer checks until the old stdout has been restored to make it ++ more likely any errors are written to the old stdout (rather than ++ the temporary file used for the redirected stdout). */ ++ int old_stdout = dup (STDOUT_FILENO); ++ TEST_VERIFY_EXIT (old_stdout != -1); ++ int ret_fseek = 0; ++ int ret_compare = 0; ++ fp = FREOPEN (file1, "w+", stdout); ++ int fp_eq_stdout = fp == stdout; ++ if (fp != NULL) ++ { ++ printf ("reopened\n"); ++ ret_fseek = fseek (fp, 0, SEEK_SET); ++ ret_compare = support_compare_file_string (fp, "reopened\n"); ++ } ++ xfclose (fp); ++ stdout = fdopen (old_stdout, "w"); ++ TEST_VERIFY (fp_eq_stdout); ++ TEST_COMPARE (ret_fseek, 0); ++ TEST_COMPARE (ret_compare, 0); ++ xfclose (stdout); ++ ++ free (temp_dir); ++ free (file1); ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-freopen6.c b/stdio-common/tst-freopen6.c +new file mode 100644 +index 0000000000000000..8fd6957b54fa9bc2 +--- /dev/null ++++ b/stdio-common/tst-freopen6.c +@@ -0,0 +1,2 @@ ++#define FREOPEN freopen ++#include +diff --git a/stdio-common/tst-freopen64-4.c b/stdio-common/tst-freopen64-4.c +new file mode 100644 +index 0000000000000000..1411be2bfa0105c1 +--- /dev/null ++++ b/stdio-common/tst-freopen64-4.c +@@ -0,0 +1,2 @@ ++#define FREOPEN freopen64 ++#include +diff --git a/stdio-common/tst-freopen64-6.c b/stdio-common/tst-freopen64-6.c +new file mode 100644 +index 0000000000000000..3ec509a36c2471f6 +--- /dev/null ++++ b/stdio-common/tst-freopen64-6.c +@@ -0,0 +1,2 @@ ++#define FREOPEN freopen64 ++#include diff --git a/glibc-RHEL-115823-8.patch b/glibc-RHEL-115823-8.patch new file mode 100644 index 0000000..d65bf05 --- /dev/null +++ b/glibc-RHEL-115823-8.patch @@ -0,0 +1,30 @@ +commit 6948ee4edf0c57c556f8d5f394d9191216d05780 +Author: Florian Weimer +Date: Sat Sep 28 21:06:11 2024 +0200 + + stdio-common: Fix memory leak in tst-freopen4* tests on UNSUPPORTED + + The temp_dir allocation leaks if support_can_chroot returns false. + +diff --git a/stdio-common/tst-freopen4-main.c b/stdio-common/tst-freopen4-main.c +index e169442cf4df2e9d..7284677a97e10af6 100644 +--- a/stdio-common/tst-freopen4-main.c ++++ b/stdio-common/tst-freopen4-main.c +@@ -33,7 +33,7 @@ int + do_test (void) + { + mtrace (); +- char *temp_dir = support_create_temp_directory ("tst-freopen4"); ++ char *temp_dir; + FILE *fp; + int ret; + +@@ -45,6 +45,8 @@ do_test (void) + support_become_root (); + if (!support_can_chroot ()) + return EXIT_UNSUPPORTED; ++ ++ temp_dir = support_create_temp_directory ("tst-freopen4"); + xchroot (temp_dir); + + /* Test freopen with NULL, renamed file. This verifies that diff --git a/glibc-RHEL-115823-9.patch b/glibc-RHEL-115823-9.patch new file mode 100644 index 0000000..2430cca --- /dev/null +++ b/glibc-RHEL-115823-9.patch @@ -0,0 +1,216 @@ +commit 42c810c2cf3554afbdd60885b7da6bb4e702466f +Author: Joseph Myers +Date: Mon Oct 7 19:44:25 2024 +0000 + + Add freopen special-case tests: thread cancellation + + Add tests of freopen adding or removing "c" (non-cancelling I/O) from + the mode string (so completing my planned tests of freopen with + different features used in the mode strings). Note that it's in the + nature of the uncertain time at which cancellation might act (possibly + during freopen, possibly during subsequent reads) that these can leak + memory or file descriptors, so these do not include leak tests. + + Tested for x86_64. + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 13ad32289e6a9f50..4c39b9d9fb3d029f 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -229,10 +229,12 @@ tests := \ + tst-freopen4 \ + tst-freopen5 \ + tst-freopen6 \ ++ tst-freopen7 \ + tst-freopen64-2 \ + tst-freopen64-3 \ + tst-freopen64-4 \ + tst-freopen64-6 \ ++ tst-freopen64-7 \ + tst-fseek \ + tst-fseek-mmap \ + tst-fwrite \ +@@ -636,3 +638,6 @@ $(objpfx)tst-setvbuf2.out: $(objpfx)tst-setvbuf2-ind + + $(objpfx)tst-printf-round: $(libm) + $(objpfx)tst-scanf-round: $(libm) ++ ++$(objpfx)tst-freopen7: $(shared-thread-library) ++$(objpfx)tst-freopen64-7: $(shared-thread-library) +diff --git a/stdio-common/tst-freopen64-7.c b/stdio-common/tst-freopen64-7.c +new file mode 100644 +index 0000000000000000..f34c2805210079b9 +--- /dev/null ++++ b/stdio-common/tst-freopen64-7.c +@@ -0,0 +1,2 @@ ++#define FREOPEN freopen64 ++#include +diff --git a/stdio-common/tst-freopen7-main.c b/stdio-common/tst-freopen7-main.c +new file mode 100644 +index 0000000000000000..965e0b4adce750cc +--- /dev/null ++++ b/stdio-common/tst-freopen7-main.c +@@ -0,0 +1,155 @@ ++/* Test freopen cancellation handling. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++char *file1, *file2, *file3, *fifo; ++ ++sem_t sem; ++ ++void * ++test_rc_to_r (void *p) ++{ ++ int ret; ++ FILE *fp, *fp2; ++ ret = sem_post (&sem); ++ TEST_VERIFY_EXIT (ret == 0); ++ fp = xfopen (file1, "rc"); ++ for (int i = 0; i < 1000000; i++) ++ { ++ fgetc (fp); ++ fseek (fp, 0, SEEK_SET); ++ } ++ fp2 = xfopen (file3, "wc"); ++ fputs ("rc_to_r got to freopen", fp2); ++ xfclose (fp2); ++ /* Cancellation should occur at some point from here onwards ++ (possibly leaking memory and file descriptors associated with the ++ FILE). */ ++ fp = FREOPEN (file2, "r", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ for (;;) ++ { ++ fgetc (fp); ++ fseek (fp, 0, SEEK_SET); ++ } ++} ++ ++void * ++test_r_to_rc (void *p) ++{ ++ int ret; ++ FILE *fp; ++ fp = xfopen (file1, "r"); ++ fp = FREOPEN (fifo, "rc", fp); ++ TEST_VERIFY_EXIT (fp != NULL); ++ ret = sem_post (&sem); ++ TEST_VERIFY_EXIT (ret == 0); ++ /* No cancellation should occur for I/O on fifo. */ ++ ret = fgetc (fp); ++ /* At this point, the other thread has called pthread_cancel and ++ then written a byte to the fifo, so this thread is cancelled at ++ the next cancellation point. */ ++ TEST_VERIFY (ret == 'x'); ++ xfclose (fp); ++ fp = xfopen (file3, "wc"); ++ fputs ("r_to_rc got to fclose", fp); ++ xfclose (fp); ++ pthread_testcancel (); ++ FAIL_EXIT1 ("test_r_to_rc not cancelled\n"); ++} ++ ++int ++do_test (void) ++{ ++ char *temp_dir = support_create_temp_directory ("tst-freopen-cancel"); ++ file1 = xasprintf ("%s/file1", temp_dir); ++ support_write_file_string (file1, "file1"); ++ add_temp_file (file1); ++ file2 = xasprintf ("%s/file2", temp_dir); ++ support_write_file_string (file2, "file2"); ++ add_temp_file (file2); ++ file3 = xasprintf ("%s/file3", temp_dir); ++ support_write_file_string (file3, "file3"); ++ add_temp_file (file3); ++ fifo = xasprintf ("%s/fifo", temp_dir); ++ xmkfifo (fifo, 0666); ++ add_temp_file (fifo); ++ int ret; ++ pthread_t thr; ++ void *retval; ++ ++ /* Test changing to/from c (cancellation disabled). */ ++ ++ verbose_printf ("Testing rc -> r\n"); ++ ret = sem_init (&sem, 0, 0); ++ TEST_VERIFY_EXIT (ret == 0); ++ thr = xpthread_create (NULL, test_rc_to_r, NULL); ++ ret = sem_wait (&sem); ++ TEST_VERIFY_EXIT (ret == 0); ++ xpthread_cancel (thr); ++ ret = pthread_join (thr, &retval); ++ TEST_COMPARE (ret, 0); ++ TEST_VERIFY (retval == PTHREAD_CANCELED); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file3, "rc_to_r got to freopen"); ++ ++ verbose_printf ("Testing r -> rc\n"); ++ ret = sem_init (&sem, 0, 0); ++ TEST_VERIFY_EXIT (ret == 0); ++ thr = xpthread_create (NULL, test_r_to_rc, NULL); ++ FILE *fp = xfopen (fifo, "w"); ++ ret = sem_wait (&sem); ++ TEST_VERIFY_EXIT (ret == 0); ++ /* This call happens while, or before, the other thread is waiting ++ to read a character from the fifo. It thus verifies that ++ cancellation does not occur from the fgetc call in that thread ++ (it should instead occur only in pthread_testcancel call), ++ because the expected string is only written to file3 after that ++ thread closes the fifo. */ ++ xpthread_cancel (thr); ++ fputc ('x', fp); ++ xfclose (fp); ++ ret = pthread_join (thr, &retval); ++ TEST_COMPARE (ret, 0); ++ TEST_VERIFY (retval == PTHREAD_CANCELED); ++ TEST_OPEN_AND_COMPARE_FILE_STRING (file3, "r_to_rc got to fclose"); ++ ++ free (temp_dir); ++ free (file1); ++ free (file2); ++ free (file3); ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-freopen7.c b/stdio-common/tst-freopen7.c +new file mode 100644 +index 0000000000000000..03d0de798e3d2616 +--- /dev/null ++++ b/stdio-common/tst-freopen7.c +@@ -0,0 +1,2 @@ ++#define FREOPEN freopen ++#include diff --git a/glibc-RHEL-115825.patch b/glibc-RHEL-115825.patch new file mode 100644 index 0000000..544e287 --- /dev/null +++ b/glibc-RHEL-115825.patch @@ -0,0 +1,160 @@ +commit b371ed272695919a332d30bd2754a82e5e683178 +Author: Joseph Myers +Date: Mon Oct 21 20:56:48 2024 +0000 + + Check time arguments to pthread_timedjoin_np and pthread_clockjoin_np + + The pthread_timedjoin_np and pthread_clockjoin_np functions do not + check that a valid time has been specified. The documentation for + these functions in the glibc manual isn't sufficiently detailed to say + if they should, but consistency with POSIX functions such as + pthread_mutex_timedlock and pthread_cond_timedwait strongly indicates + that an EINVAL error is appropriate (even if there might be some + ambiguity about exactly where such a check should go in relation to + other checks for whether the thread exists, whether it's immediately + joinable, etc.). Copy the logic for such a check used in + pthread_rwlock_common.c. + + pthread_join_common had some logic calling valid_nanoseconds before + commit 9e92278ffad441daf588ff1ff5bd8094aa33fbfd, "nptl: Remove + clockwait_tid"; I haven't checked exactly what cases that detected. + + Tested for x86_64 and x86. + +diff --git a/nptl/pthread_join_common.c b/nptl/pthread_join_common.c +index 9c685c79cfd19415..273db80543103772 100644 +--- a/nptl/pthread_join_common.c ++++ b/nptl/pthread_join_common.c +@@ -49,6 +49,12 @@ __pthread_clockjoin_ex (pthread_t threadid, void **thread_return, + /* We cannot wait for the thread. */ + return EINVAL; + ++ /* Make sure the clock and time specified are valid. */ ++ if (abstime ++ && __glibc_unlikely (!futex_abstimed_supported_clockid (clockid) ++ || ! valid_nanoseconds (abstime->tv_nsec))) ++ return EINVAL; ++ + struct pthread *self = THREAD_SELF; + int result = 0; + +diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile +index 82de1ae81b244dec..0d9e232acec2ed39 100644 +--- a/sysdeps/pthread/Makefile ++++ b/sysdeps/pthread/Makefile +@@ -175,6 +175,7 @@ tests += \ + tst-join13 \ + tst-join14 \ + tst-join15 \ ++ tst-join16 \ + tst-key1 \ + tst-key2 \ + tst-key3 \ +@@ -293,6 +294,7 @@ tests-time64 += \ + tst-cnd-timedwait-time64 \ + tst-cond11-time64 \ + tst-join14-time64 \ ++ tst-join16-time64 \ + tst-mtx-timedlock-time64 \ + tst-rwlock14-time64 \ + tst-sem5-time64 \ +diff --git a/sysdeps/pthread/tst-join16-time64.c b/sysdeps/pthread/tst-join16-time64.c +new file mode 100644 +index 0000000000000000..730cc5656308c30c +--- /dev/null ++++ b/sysdeps/pthread/tst-join16-time64.c +@@ -0,0 +1 @@ ++#include "tst-join16.c" +diff --git a/sysdeps/pthread/tst-join16.c b/sysdeps/pthread/tst-join16.c +new file mode 100644 +index 0000000000000000..8bf37b5e42fc46f6 +--- /dev/null ++++ b/sysdeps/pthread/tst-join16.c +@@ -0,0 +1,87 @@ ++/* Test pthread_timedjoin_np and pthread_clockjoin_np with an invalid timeout. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++#define CLOCK_USE_TIMEDJOIN (-1) ++ ++static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; ++ ++static void * ++tf (void *arg) ++{ ++ xpthread_mutex_lock (&lock); ++ xpthread_mutex_unlock (&lock); ++ return (void *) 42l; ++} ++ ++static int ++do_test_clock (clockid_t clockid) ++{ ++ const clockid_t clockid_for_get = ++ (clockid == CLOCK_USE_TIMEDJOIN) ? CLOCK_REALTIME : clockid; ++ ++ xpthread_mutex_lock (&lock); ++ pthread_t th = xpthread_create (NULL, tf, NULL); ++ ++ void *status; ++ int ret; ++ struct timespec timeout = xclock_now (clockid_for_get); ++ timeout.tv_sec += 2; ++ timeout.tv_nsec = -1; ++ if (clockid == CLOCK_USE_TIMEDJOIN) ++ ret = pthread_timedjoin_np (th, &status, &timeout); ++ else ++ ret = pthread_clockjoin_np (th, &status, clockid, &timeout); ++ TEST_COMPARE (ret, EINVAL); ++ timeout.tv_nsec = 1000000000; ++ if (clockid == CLOCK_USE_TIMEDJOIN) ++ ret = pthread_timedjoin_np (th, &status, &timeout); ++ else ++ ret = pthread_clockjoin_np (th, &status, clockid, &timeout); ++ TEST_COMPARE (ret, EINVAL); ++ xpthread_mutex_unlock (&lock); ++ timeout.tv_nsec = 0; ++ ret = pthread_join (th, &status); ++ TEST_COMPARE (ret, 0); ++ if (status != (void *) 42l) ++ FAIL_EXIT1 ("return value %p, expected %p\n", status, (void *) 42l); ++ ++ return 0; ++} ++ ++static int ++do_test (void) ++{ ++ puts ("testing pthread_timedjoin_np"); ++ do_test_clock (CLOCK_USE_TIMEDJOIN); ++ puts ("testing CLOCK_REALTIME"); ++ do_test_clock (CLOCK_REALTIME); ++ puts ("testing CLOCK_MONOTONIC"); ++ do_test_clock (CLOCK_MONOTONIC); ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-117418.patch b/glibc-RHEL-117418.patch new file mode 100644 index 0000000..0a1c55d --- /dev/null +++ b/glibc-RHEL-117418.patch @@ -0,0 +1,85 @@ +commit afce5fccdf680113cdb6fc44d1b4ca7daea42c25 +Author: Florian Weimer +Date: Thu Sep 25 08:37:13 2025 +0200 + + manual: Improve documentation of the shutdown function + + Document the SHUT_* constants and attempt to explain the + implications for Linux TCP and UNIX domain sockets. + + The Linux TCP behavior was discovered when writing the + socket/tst-shutdown test. + + Suggested by Sergey Organov in + . + + Reviewed-by: Collin Funk + +diff --git a/manual/socket.texi b/manual/socket.texi +index d804c7a48b..56948073d5 100644 +--- a/manual/socket.texi ++++ b/manual/socket.texi +@@ -2317,22 +2317,23 @@ The @code{shutdown} function shuts down the connection of socket + @var{socket}. The argument @var{how} specifies what action to + perform: + +-@table @code +-@item 0 +-Stop receiving data for this socket. If further data arrives, +-reject it. ++@vtable @code ++@item SHUT_RD ++Stop receiving data on the socket. + +-@item 1 +-Stop trying to transmit data from this socket. Discard any data +-waiting to be sent. Stop looking for acknowledgement of data already +-sent; don't retransmit it if it is lost. ++@item SHUT_WR ++Indicate to the peer that no further data will be transmitted on the ++socket. This indication is ordered with regard to past send ++operations on the socket, and data pending at the time of the call is ++still delivered. + +-@item 2 +-Stop both reception and transmission. +-@end table ++@item SHUT_RDWR ++Combine the actions of @code{SHUT_RD} and @code{SHUT_WR}. ++@end vtable + + The return value is @code{0} on success and @code{-1} on failure. The +-following @code{errno} error conditions are defined for this function: ++following generic @code{errno} error conditions are defined for this ++function: + + @table @code + @item EBADF +@@ -2346,6 +2347,27 @@ following @code{errno} error conditions are defined for this function: + @end table + @end deftypefun + ++Additional errors can be reported for specific socket types. ++ ++The exact impact of the @code{shutdown} function depends on the socket ++protocol and its implementation. In portable code, the @code{shutdown} ++function cannot be used on its own to gracefully terminate a connection ++which is operated in full-duplex mode (with both peers sending data). ++ ++On Linux, when @code{SHUT_RD} is used to shut down a TCP socket, any ++pending data in the incoming socket buffer and any data that arrives ++subsequently is discarded, without reporting an error or generating a ++TCP RST segment. Attempts to read data from this socket using ++@code{recv} and similar functions (@pxref{Receiving Data}) return zero. ++(Other systems may treat @code{SHUT_RD} with pending data as a data loss ++event and generate RST segments. Linux @code{AF_LOCAL}/@code{AF_UNIX} ++sockets also report errors to peers.) ++ ++Similarly, when @code{SHUT_WR} is used on a Linux TCP socket, a FIN ++segment is sent to the peer, ordered after any data written previously ++to the socket. After encountering the FIN segment, the peer will ++recognize this as an end-of-stream condition. ++ + @node Socket Pairs + @subsection Socket Pairs + @cindex creating a socket pair diff --git a/glibc-RHEL-118273-1.patch b/glibc-RHEL-118273-1.patch new file mode 100644 index 0000000..4862969 --- /dev/null +++ b/glibc-RHEL-118273-1.patch @@ -0,0 +1,4742 @@ +commit cb5d84f1f8527116a724e729b98412567eed6404 +Author: Joe Ramsay +Date: Tue Feb 20 16:59:38 2024 +0000 + + aarch64/fpu: Add vector variants of erf + + Reviewed-by: Szabolcs Nagy + +diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile +index 1fe4b5268283cd96..320b6ed43a9a454c 100644 +--- a/sysdeps/aarch64/fpu/Makefile ++++ b/sysdeps/aarch64/fpu/Makefile +@@ -3,6 +3,7 @@ libmvec-supported-funcs = acos \ + atan \ + atan2 \ + cos \ ++ erf \ + exp \ + exp10 \ + exp2 \ +@@ -27,7 +28,11 @@ libmvec-support = $(addsuffix f_advsimd,$(float-advsimd-funcs)) \ + v_log_data \ + v_exp_data \ + v_log2_data \ +- v_log10_data ++ v_log10_data \ ++ erf_data \ ++ erff_data \ ++ sv_erf_data \ ++ sv_erff_data + endif + + sve-cflags = -march=armv8-a+sve +diff --git a/sysdeps/aarch64/fpu/Versions b/sysdeps/aarch64/fpu/Versions +index accd1011846608bf..d7b1e87191b66439 100644 +--- a/sysdeps/aarch64/fpu/Versions ++++ b/sysdeps/aarch64/fpu/Versions +@@ -78,4 +78,11 @@ libmvec { + _ZGVsMxv_tanf; + _ZGVsMxv_tan; + } ++ GLIBC_2.40 { ++ _ZGVnN2v_erf; ++ _ZGVnN2v_erff; ++ _ZGVnN4v_erff; ++ _ZGVsMxv_erf; ++ _ZGVsMxv_erff; ++ } + } +diff --git a/sysdeps/aarch64/fpu/advsimd_f32_protos.h b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +index 8fec7a4b447a5375..d8d88de2181569f9 100644 +--- a/sysdeps/aarch64/fpu/advsimd_f32_protos.h ++++ b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +@@ -21,6 +21,7 @@ libmvec_hidden_proto (V_NAME_F1(acos)); + libmvec_hidden_proto (V_NAME_F1(asin)); + libmvec_hidden_proto (V_NAME_F1(atan)); + libmvec_hidden_proto (V_NAME_F1(cos)); ++libmvec_hidden_proto (V_NAME_F1(erf)); + libmvec_hidden_proto (V_NAME_F1(exp10)); + libmvec_hidden_proto (V_NAME_F1(exp2)); + libmvec_hidden_proto (V_NAME_F1(exp)); +diff --git a/sysdeps/aarch64/fpu/bits/math-vector.h b/sysdeps/aarch64/fpu/bits/math-vector.h +index 04837bdcd7c0d0ce..71f53363a071126d 100644 +--- a/sysdeps/aarch64/fpu/bits/math-vector.h ++++ b/sysdeps/aarch64/fpu/bits/math-vector.h +@@ -49,6 +49,10 @@ + # define __DECL_SIMD_cos __DECL_SIMD_aarch64 + # undef __DECL_SIMD_cosf + # define __DECL_SIMD_cosf __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_erf ++# define __DECL_SIMD_erf __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_erff ++# define __DECL_SIMD_erff __DECL_SIMD_aarch64 + # undef __DECL_SIMD_exp + # define __DECL_SIMD_exp __DECL_SIMD_aarch64 + # undef __DECL_SIMD_expf +@@ -120,6 +124,7 @@ __vpcs __f32x4_t _ZGVnN4v_acosf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_asinf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_atanf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_cosf (__f32x4_t); ++__vpcs __f32x4_t _ZGVnN4v_erff (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_expf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_exp10f (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_exp2f (__f32x4_t); +@@ -136,6 +141,7 @@ __vpcs __f64x2_t _ZGVnN2v_acos (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_asin (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_atan (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_cos (__f64x2_t); ++__vpcs __f64x2_t _ZGVnN2v_erf (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_exp (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_exp10 (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_exp2 (__f64x2_t); +@@ -157,6 +163,7 @@ __sv_f32_t _ZGVsMxv_acosf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_asinf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_atanf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_cosf (__sv_f32_t, __sv_bool_t); ++__sv_f32_t _ZGVsMxv_erff (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_expf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_exp10f (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_exp2f (__sv_f32_t, __sv_bool_t); +@@ -173,6 +180,7 @@ __sv_f64_t _ZGVsMxv_acos (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_asin (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_atan (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_cos (__sv_f64_t, __sv_bool_t); ++__sv_f64_t _ZGVsMxv_erf (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_exp (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_exp10 (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_exp2 (__sv_f64_t, __sv_bool_t); +diff --git a/sysdeps/aarch64/fpu/erf_advsimd.c b/sysdeps/aarch64/fpu/erf_advsimd.c +new file mode 100644 +index 0000000000000000..3e70cbc025248a05 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/erf_advsimd.c +@@ -0,0 +1,161 @@ ++/* Double-precision vector (Advanced SIMD) erf function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_math.h" ++ ++static const struct data ++{ ++ float64x2_t third; ++ float64x2_t tenth, two_over_five, two_over_fifteen; ++ float64x2_t two_over_nine, two_over_fortyfive; ++ float64x2_t max, shift; ++#if WANT_SIMD_EXCEPT ++ float64x2_t tiny_bound, huge_bound, scale_minus_one; ++#endif ++} data = { ++ .third = V2 (0x1.5555555555556p-2), /* used to compute 2/3 and 1/6 too. */ ++ .two_over_fifteen = V2 (0x1.1111111111111p-3), ++ .tenth = V2 (-0x1.999999999999ap-4), ++ .two_over_five = V2 (-0x1.999999999999ap-2), ++ .two_over_nine = V2 (-0x1.c71c71c71c71cp-3), ++ .two_over_fortyfive = V2 (0x1.6c16c16c16c17p-5), ++ .max = V2 (5.9921875), /* 6 - 1/128. */ ++ .shift = V2 (0x1p45), ++#if WANT_SIMD_EXCEPT ++ .huge_bound = V2 (0x1p205), ++ .tiny_bound = V2 (0x1p-226), ++ .scale_minus_one = V2 (0x1.06eba8214db69p-3), /* 2/sqrt(pi) - 1.0. */ ++#endif ++}; ++ ++#define AbsMask 0x7fffffffffffffff ++ ++struct entry ++{ ++ float64x2_t erf; ++ float64x2_t scale; ++}; ++ ++static inline struct entry ++lookup (uint64x2_t i) ++{ ++ struct entry e; ++ float64x2_t e1 = vld1q_f64 ((float64_t *) (__erf_data.tab + i[0])), ++ e2 = vld1q_f64 ((float64_t *) (__erf_data.tab + i[1])); ++ e.erf = vuzp1q_f64 (e1, e2); ++ e.scale = vuzp2q_f64 (e1, e2); ++ return e; ++} ++ ++/* Double-precision implementation of vector erf(x). ++ Approximation based on series expansion near x rounded to ++ nearest multiple of 1/128. ++ Let d = x - r, and scale = 2 / sqrt(pi) * exp(-r^2). For x near r, ++ ++ erf(x) ~ erf(r) + scale * d * [ ++ + 1 ++ - r d ++ + 1/3 (2 r^2 - 1) d^2 ++ - 1/6 (r (2 r^2 - 3)) d^3 ++ + 1/30 (4 r^4 - 12 r^2 + 3) d^4 ++ - 1/90 (4 r^4 - 20 r^2 + 15) d^5 ++ ] ++ ++ Maximum measure error: 2.29 ULP ++ V_NAME_D1 (erf)(-0x1.00003c924e5d1p-8) got -0x1.20dd59132ebadp-8 ++ want -0x1.20dd59132ebafp-8. */ ++float64x2_t VPCS_ATTR V_NAME_D1 (erf) (float64x2_t x) ++{ ++ const struct data *dat = ptr_barrier (&data); ++ ++ float64x2_t a = vabsq_f64 (x); ++ /* Reciprocal conditions that do not catch NaNs so they can be used in BSLs ++ to return expected results. */ ++ uint64x2_t a_le_max = vcleq_f64 (a, dat->max); ++ uint64x2_t a_gt_max = vcgtq_f64 (a, dat->max); ++ ++#if WANT_SIMD_EXCEPT ++ /* |x| huge or tiny. */ ++ uint64x2_t cmp1 = vcgtq_f64 (a, dat->huge_bound); ++ uint64x2_t cmp2 = vcltq_f64 (a, dat->tiny_bound); ++ uint64x2_t cmp = vorrq_u64 (cmp1, cmp2); ++ /* If any lanes are special, mask them with 1 for small x or 8 for large ++ values and retain a copy of a to allow special case handler to fix special ++ lanes later. This is only necessary if fenv exceptions are to be triggered ++ correctly. */ ++ if (__glibc_unlikely (v_any_u64 (cmp))) ++ { ++ a = vbslq_f64 (cmp1, v_f64 (8.0), a); ++ a = vbslq_f64 (cmp2, v_f64 (1.0), a); ++ } ++#endif ++ ++ /* Set r to multiple of 1/128 nearest to |x|. */ ++ float64x2_t shift = dat->shift; ++ float64x2_t z = vaddq_f64 (a, shift); ++ ++ /* Lookup erf(r) and scale(r) in table, without shortcut for small values, ++ but with saturated indices for large values and NaNs in order to avoid ++ segfault. */ ++ uint64x2_t i ++ = vsubq_u64 (vreinterpretq_u64_f64 (z), vreinterpretq_u64_f64 (shift)); ++ i = vbslq_u64 (a_le_max, i, v_u64 (768)); ++ struct entry e = lookup (i); ++ ++ float64x2_t r = vsubq_f64 (z, shift); ++ ++ /* erf(x) ~ erf(r) + scale * d * poly (r, d). */ ++ float64x2_t d = vsubq_f64 (a, r); ++ float64x2_t d2 = vmulq_f64 (d, d); ++ float64x2_t r2 = vmulq_f64 (r, r); ++ ++ /* poly (d, r) = 1 + p1(r) * d + p2(r) * d^2 + ... + p5(r) * d^5. */ ++ float64x2_t p1 = r; ++ float64x2_t p2 ++ = vfmsq_f64 (dat->third, r2, vaddq_f64 (dat->third, dat->third)); ++ float64x2_t p3 = vmulq_f64 (r, vfmaq_f64 (v_f64 (-0.5), r2, dat->third)); ++ float64x2_t p4 = vfmaq_f64 (dat->two_over_five, r2, dat->two_over_fifteen); ++ p4 = vfmsq_f64 (dat->tenth, r2, p4); ++ float64x2_t p5 = vfmaq_f64 (dat->two_over_nine, r2, dat->two_over_fortyfive); ++ p5 = vmulq_f64 (r, vfmaq_f64 (vmulq_f64 (v_f64 (0.5), dat->third), r2, p5)); ++ ++ float64x2_t p34 = vfmaq_f64 (p3, d, p4); ++ float64x2_t p12 = vfmaq_f64 (p1, d, p2); ++ float64x2_t y = vfmaq_f64 (p34, d2, p5); ++ y = vfmaq_f64 (p12, d2, y); ++ ++ y = vfmaq_f64 (e.erf, e.scale, vfmsq_f64 (d, d2, y)); ++ ++ /* Solves the |x| = inf and NaN cases. */ ++ y = vbslq_f64 (a_gt_max, v_f64 (1.0), y); ++ ++ /* Copy sign. */ ++ y = vbslq_f64 (v_u64 (AbsMask), y, x); ++ ++#if WANT_SIMD_EXCEPT ++ if (__glibc_unlikely (v_any_u64 (cmp2))) ++ { ++ /* Neutralise huge values of x before fixing small values. */ ++ x = vbslq_f64 (cmp1, v_f64 (1.0), x); ++ /* Fix tiny values that trigger spurious underflow. */ ++ return vbslq_f64 (cmp2, vfmaq_f64 (x, dat->scale_minus_one, x), y); ++ } ++#endif ++ return y; ++} +diff --git a/sysdeps/aarch64/fpu/erf_data.c b/sysdeps/aarch64/fpu/erf_data.c +new file mode 100644 +index 0000000000000000..6d2dcd235c8b7928 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/erf_data.c +@@ -0,0 +1,800 @@ ++/* Table for Advanced SIMD erf approximation ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "vecmath_config.h" ++ ++/* Lookup table used in erf. ++ For each possible rounded input r (multiples of 1/128), between ++ r = 0.0 and r = 6.0 (769 values): ++ - the first entry __erff_data.tab.erf contains the values of erf(r), ++ - the second entry __erff_data.tab.scale contains the values of ++ 2/sqrt(pi)*exp(-r^2). Note that indices 0 and 1 are never hit by the ++ algorithm, since lookup is performed only for x >= 1/64-1/512. */ ++const struct erf_data __erf_data = { ++ .tab = { { 0x0.0000000000000p+0, 0x1.20dd750429b6dp+0 }, ++ { 0x1.20dbf3deb1340p-7, 0x1.20d8f1975c85dp+0 }, ++ { 0x1.20d77083f17a0p-6, 0x1.20cb67bd452c7p+0 }, ++ { 0x1.b137e0cf584dcp-6, 0x1.20b4d8bac36c1p+0 }, ++ { 0x1.20c5645dd2538p-5, 0x1.209546ad13ccfp+0 }, ++ { 0x1.68e5d3bbc9526p-5, 0x1.206cb4897b148p+0 }, ++ { 0x1.b0fafef135745p-5, 0x1.203b261cd0052p+0 }, ++ { 0x1.f902a77bd3821p-5, 0x1.2000a00ae3804p+0 }, ++ { 0x1.207d480e90658p-4, 0x1.1fbd27cdc72d3p+0 }, ++ { 0x1.44703e87e8593p-4, 0x1.1f70c3b4f2cc7p+0 }, ++ { 0x1.68591a1e83b5dp-4, 0x1.1f1b7ae44867fp+0 }, ++ { 0x1.8c36beb8a8d23p-4, 0x1.1ebd5552f795bp+0 }, ++ { 0x1.b0081148a873ap-4, 0x1.1e565bca400d4p+0 }, ++ { 0x1.d3cbf7e70a4b3p-4, 0x1.1de697e413d28p+0 }, ++ { 0x1.f78159ec8bb50p-4, 0x1.1d6e14099944ap+0 }, ++ { 0x1.0d939005f65e5p-3, 0x1.1cecdb718d61cp+0 }, ++ { 0x1.1f5e1a35c3b89p-3, 0x1.1c62fa1e869b6p+0 }, ++ { 0x1.311fc15f56d14p-3, 0x1.1bd07cdd189acp+0 }, ++ { 0x1.42d7fc2f64959p-3, 0x1.1b357141d95d5p+0 }, ++ { 0x1.548642321d7c6p-3, 0x1.1a91e5a748165p+0 }, ++ { 0x1.662a0bdf7a89fp-3, 0x1.19e5e92b964abp+0 }, ++ { 0x1.77c2d2a765f9ep-3, 0x1.19318bae53a04p+0 }, ++ { 0x1.895010fdbdbfdp-3, 0x1.1874ddcdfce24p+0 }, ++ { 0x1.9ad142662e14dp-3, 0x1.17aff0e56ec10p+0 }, ++ { 0x1.ac45e37fe2526p-3, 0x1.16e2d7093cd8cp+0 }, ++ { 0x1.bdad72110a648p-3, 0x1.160da304ed92fp+0 }, ++ { 0x1.cf076d1233237p-3, 0x1.153068581b781p+0 }, ++ { 0x1.e05354b96ff36p-3, 0x1.144b3b337c90cp+0 }, ++ { 0x1.f190aa85540e2p-3, 0x1.135e3075d076bp+0 }, ++ { 0x1.015f78a3dcf3dp-2, 0x1.12695da8b5bdep+0 }, ++ { 0x1.09eed6982b948p-2, 0x1.116cd8fd67618p+0 }, ++ { 0x1.127631eb8de32p-2, 0x1.1068b94962e5ep+0 }, ++ { 0x1.1af54e232d609p-2, 0x1.0f5d1602f7e41p+0 }, ++ { 0x1.236bef825d9a2p-2, 0x1.0e4a073dc1b91p+0 }, ++ { 0x1.2bd9db0f7827fp-2, 0x1.0d2fa5a70c168p+0 }, ++ { 0x1.343ed6989b7d9p-2, 0x1.0c0e0a8223359p+0 }, ++ { 0x1.3c9aa8b84bedap-2, 0x1.0ae54fa490722p+0 }, ++ { 0x1.44ed18d9f6462p-2, 0x1.09b58f724416bp+0 }, ++ { 0x1.4d35ef3e5372ep-2, 0x1.087ee4d9ad247p+0 }, ++ { 0x1.5574f4ffac98ep-2, 0x1.07416b4fbfe7cp+0 }, ++ { 0x1.5da9f415ff23fp-2, 0x1.05fd3ecbec297p+0 }, ++ { 0x1.65d4b75b00471p-2, 0x1.04b27bc403d30p+0 }, ++ { 0x1.6df50a8dff772p-2, 0x1.03613f2812dafp+0 }, ++ { 0x1.760aba57a76bfp-2, 0x1.0209a65e29545p+0 }, ++ { 0x1.7e15944d9d3e4p-2, 0x1.00abcf3e187a9p+0 }, ++ { 0x1.861566f5fd3c0p-2, 0x1.fe8fb01a47307p-1 }, ++ { 0x1.8e0a01cab516bp-2, 0x1.fbbbbef34b4b2p-1 }, ++ { 0x1.95f3353cbb146p-2, 0x1.f8dc092d58ff8p-1 }, ++ { 0x1.9dd0d2b721f39p-2, 0x1.f5f0cdaf15313p-1 }, ++ { 0x1.a5a2aca209394p-2, 0x1.f2fa4c16c0019p-1 }, ++ { 0x1.ad68966569a87p-2, 0x1.eff8c4b1375dbp-1 }, ++ { 0x1.b522646bbda68p-2, 0x1.ecec7870ebca7p-1 }, ++ { 0x1.bccfec24855b8p-2, 0x1.e9d5a8e4c934ep-1 }, ++ { 0x1.c4710406a65fcp-2, 0x1.e6b4982f158b9p-1 }, ++ { 0x1.cc058392a6d2dp-2, 0x1.e38988fc46e72p-1 }, ++ { 0x1.d38d4354c3bd0p-2, 0x1.e054be79d3042p-1 }, ++ { 0x1.db081ce6e2a48p-2, 0x1.dd167c4cf9d2ap-1 }, ++ { 0x1.e275eaf25e458p-2, 0x1.d9cf06898cdafp-1 }, ++ { 0x1.e9d68931ae650p-2, 0x1.d67ea1a8b5368p-1 }, ++ { 0x1.f129d471eabb1p-2, 0x1.d325927fb9d89p-1 }, ++ { 0x1.f86faa9428f9dp-2, 0x1.cfc41e36c7df9p-1 }, ++ { 0x1.ffa7ea8eb5fd0p-2, 0x1.cc5a8a3fbea40p-1 }, ++ { 0x1.03693a371519cp-1, 0x1.c8e91c4d01368p-1 }, ++ { 0x1.06f794ab2cae7p-1, 0x1.c5701a484ef9dp-1 }, ++ { 0x1.0a7ef5c18edd2p-1, 0x1.c1efca49a5011p-1 }, ++ { 0x1.0dff4f247f6c6p-1, 0x1.be68728e29d5dp-1 }, ++ { 0x1.1178930ada115p-1, 0x1.bada596f25436p-1 }, ++ { 0x1.14eab43841b55p-1, 0x1.b745c55905bf8p-1 }, ++ { 0x1.1855a5fd3dd50p-1, 0x1.b3aafcc27502ep-1 }, ++ { 0x1.1bb95c3746199p-1, 0x1.b00a46237d5bep-1 }, ++ { 0x1.1f15cb50bc4dep-1, 0x1.ac63e7ecc1411p-1 }, ++ { 0x1.226ae840d4d70p-1, 0x1.a8b8287ec6a09p-1 }, ++ { 0x1.25b8a88b6dd7fp-1, 0x1.a5074e2157620p-1 }, ++ { 0x1.28ff0240d52cdp-1, 0x1.a1519efaf889ep-1 }, ++ { 0x1.2c3debfd7d6c1p-1, 0x1.9d97610879642p-1 }, ++ { 0x1.2f755ce9a21f4p-1, 0x1.99d8da149c13fp-1 }, ++ { 0x1.32a54cb8db67bp-1, 0x1.96164fafd8de3p-1 }, ++ { 0x1.35cdb3a9a144dp-1, 0x1.925007283d7aap-1 }, ++ { 0x1.38ee8a84beb71p-1, 0x1.8e86458169af8p-1 }, ++ { 0x1.3c07ca9cb4f9ep-1, 0x1.8ab94f6caa71dp-1 }, ++ { 0x1.3f196dcd0f135p-1, 0x1.86e9694134b9ep-1 }, ++ { 0x1.42236e79a5fa6p-1, 0x1.8316d6f48133dp-1 }, ++ { 0x1.4525c78dd5966p-1, 0x1.7f41dc12c9e89p-1 }, ++ { 0x1.4820747ba2dc2p-1, 0x1.7b6abbb7aaf19p-1 }, ++ { 0x1.4b13713ad3513p-1, 0x1.7791b886e7403p-1 }, ++ { 0x1.4dfeba47f63ccp-1, 0x1.73b714a552763p-1 }, ++ { 0x1.50e24ca35fd2cp-1, 0x1.6fdb11b1e0c34p-1 }, ++ { 0x1.53be25d016a4fp-1, 0x1.6bfdf0beddaf5p-1 }, ++ { 0x1.569243d2b3a9bp-1, 0x1.681ff24b4ab04p-1 }, ++ { 0x1.595ea53035283p-1, 0x1.6441563c665d4p-1 }, ++ { 0x1.5c2348ecc4dc3p-1, 0x1.60625bd75d07bp-1 }, ++ { 0x1.5ee02e8a71a53p-1, 0x1.5c8341bb23767p-1 }, ++ { 0x1.61955607dd15dp-1, 0x1.58a445da7c74cp-1 }, ++ { 0x1.6442bfdedd397p-1, 0x1.54c5a57629db0p-1 }, ++ { 0x1.66e86d0312e82p-1, 0x1.50e79d1749ac9p-1 }, ++ { 0x1.69865ee075011p-1, 0x1.4d0a6889dfd9fp-1 }, ++ { 0x1.6c1c9759d0e5fp-1, 0x1.492e42d78d2c5p-1 }, ++ { 0x1.6eab18c74091bp-1, 0x1.4553664273d24p-1 }, ++ { 0x1.7131e5f496a5ap-1, 0x1.417a0c4049fd0p-1 }, ++ { 0x1.73b1021fc0cb8p-1, 0x1.3da26d759aef5p-1 }, ++ { 0x1.762870f720c6fp-1, 0x1.39ccc1b136d5ap-1 }, ++ { 0x1.78983697dc96fp-1, 0x1.35f93fe7d1b3dp-1 }, ++ { 0x1.7b00578c26037p-1, 0x1.32281e2fd1a92p-1 }, ++ { 0x1.7d60d8c979f7bp-1, 0x1.2e5991bd4cbfcp-1 }, ++ { 0x1.7fb9bfaed8078p-1, 0x1.2a8dcede3673bp-1 }, ++ { 0x1.820b1202f27fbp-1, 0x1.26c508f6bd0ffp-1 }, ++ { 0x1.8454d5f25760dp-1, 0x1.22ff727dd6f7bp-1 }, ++ { 0x1.8697120d92a4ap-1, 0x1.1f3d3cf9ffe5ap-1 }, ++ { 0x1.88d1cd474a2e0p-1, 0x1.1b7e98fe26217p-1 }, ++ { 0x1.8b050ef253c37p-1, 0x1.17c3b626c7a11p-1 }, ++ { 0x1.8d30debfc572ep-1, 0x1.140cc3173f007p-1 }, ++ { 0x1.8f5544bd00c04p-1, 0x1.1059ed7740313p-1 }, ++ { 0x1.91724951b8fc6p-1, 0x1.0cab61f084b93p-1 }, ++ { 0x1.9387f53df5238p-1, 0x1.09014c2ca74dap-1 }, ++ { 0x1.959651980da31p-1, 0x1.055bd6d32e8d7p-1 }, ++ { 0x1.979d67caa6631p-1, 0x1.01bb2b87c6968p-1 }, ++ { 0x1.999d4192a5715p-1, 0x1.fc3ee5d1524b0p-2 }, ++ { 0x1.9b95e8fd26abap-1, 0x1.f511a91a67d2ap-2 }, ++ { 0x1.9d8768656cc42p-1, 0x1.edeeee0959518p-2 }, ++ { 0x1.9f71ca72cffb6p-1, 0x1.e6d6ffaa65a25p-2 }, ++ { 0x1.a1551a16aaeafp-1, 0x1.dfca26f5bbf88p-2 }, ++ { 0x1.a331628a45b92p-1, 0x1.d8c8aace11e63p-2 }, ++ { 0x1.a506af4cc00f4p-1, 0x1.d1d2cfff91594p-2 }, ++ { 0x1.a6d50c20fa293p-1, 0x1.cae8d93f1d7b6p-2 }, ++ { 0x1.a89c850b7d54dp-1, 0x1.c40b0729ed547p-2 }, ++ { 0x1.aa5d265064366p-1, 0x1.bd3998457afdap-2 }, ++ { 0x1.ac16fc7143263p-1, 0x1.b674c8ffc6283p-2 }, ++ { 0x1.adca142b10f98p-1, 0x1.afbcd3afe8ab6p-2 }, ++ { 0x1.af767a741088bp-1, 0x1.a911f096fbc26p-2 }, ++ { 0x1.b11c3c79bb424p-1, 0x1.a27455e14c93cp-2 }, ++ { 0x1.b2bb679ead19cp-1, 0x1.9be437a7de946p-2 }, ++ { 0x1.b4540978921eep-1, 0x1.9561c7f23a47bp-2 }, ++ { 0x1.b5e62fce16095p-1, 0x1.8eed36b886d93p-2 }, ++ { 0x1.b771e894d602ep-1, 0x1.8886b1e5ecfd1p-2 }, ++ { 0x1.b8f741ef54f83p-1, 0x1.822e655b417e6p-2 }, ++ { 0x1.ba764a2af2b78p-1, 0x1.7be47af1f5d89p-2 }, ++ { 0x1.bbef0fbde6221p-1, 0x1.75a91a7f4d2edp-2 }, ++ { 0x1.bd61a1453ab44p-1, 0x1.6f7c69d7d3ef8p-2 }, ++ { 0x1.bece0d82d1a5cp-1, 0x1.695e8cd31867ep-2 }, ++ { 0x1.c034635b66e23p-1, 0x1.634fa54fa285fp-2 }, ++ { 0x1.c194b1d49a184p-1, 0x1.5d4fd33729015p-2 }, ++ { 0x1.c2ef0812fc1bdp-1, 0x1.575f3483021c3p-2 }, ++ { 0x1.c443755820d64p-1, 0x1.517de540ce2a3p-2 }, ++ { 0x1.c5920900b5fd1p-1, 0x1.4babff975a04cp-2 }, ++ { 0x1.c6dad2829ec62p-1, 0x1.45e99bcbb7915p-2 }, ++ { 0x1.c81de16b14cefp-1, 0x1.4036d0468a7a2p-2 }, ++ { 0x1.c95b455cce69dp-1, 0x1.3a93b1998736cp-2 }, ++ { 0x1.ca930e0e2a825p-1, 0x1.35005285227f1p-2 }, ++ { 0x1.cbc54b476248dp-1, 0x1.2f7cc3fe6f423p-2 }, ++ { 0x1.ccf20ce0c0d27p-1, 0x1.2a09153529381p-2 }, ++ { 0x1.ce1962c0e0d8bp-1, 0x1.24a55399ea239p-2 }, ++ { 0x1.cf3b5cdaf0c39p-1, 0x1.1f518ae487dc8p-2 }, ++ { 0x1.d0580b2cfd249p-1, 0x1.1a0dc51a9934dp-2 }, ++ { 0x1.d16f7dbe41ca0p-1, 0x1.14da0a961fd14p-2 }, ++ { 0x1.d281c49d818d0p-1, 0x1.0fb6620c550afp-2 }, ++ { 0x1.d38eefdf64fddp-1, 0x1.0aa2d09497f2bp-2 }, ++ { 0x1.d4970f9ce00d9p-1, 0x1.059f59af7a906p-2 }, ++ { 0x1.d59a33f19ed42p-1, 0x1.00abff4dec7a3p-2 }, ++ { 0x1.d6986cfa798e7p-1, 0x1.f79183b101c5bp-3 }, ++ { 0x1.d791cad3eff01p-1, 0x1.edeb406d9c824p-3 }, ++ { 0x1.d8865d98abe01p-1, 0x1.e4652fadcb6b2p-3 }, ++ { 0x1.d97635600bb89p-1, 0x1.daff4969c0b04p-3 }, ++ { 0x1.da61623cb41e0p-1, 0x1.d1b982c501370p-3 }, ++ { 0x1.db47f43b2980dp-1, 0x1.c893ce1dcbef7p-3 }, ++ { 0x1.dc29fb60715afp-1, 0x1.bf8e1b1ca2279p-3 }, ++ { 0x1.dd0787a8bb39dp-1, 0x1.b6a856c3ed54fp-3 }, ++ { 0x1.dde0a90611a0dp-1, 0x1.ade26b7fbed95p-3 }, ++ { 0x1.deb56f5f12d28p-1, 0x1.a53c4135a6526p-3 }, ++ { 0x1.df85ea8db188ep-1, 0x1.9cb5bd549b111p-3 }, ++ { 0x1.e0522a5dfda73p-1, 0x1.944ec2e4f5630p-3 }, ++ { 0x1.e11a3e8cf4eb8p-1, 0x1.8c07329874652p-3 }, ++ { 0x1.e1de36c75ba58p-1, 0x1.83deeada4d25ap-3 }, ++ { 0x1.e29e22a89d766p-1, 0x1.7bd5c7df3fe9cp-3 }, ++ { 0x1.e35a11b9b61cep-1, 0x1.73eba3b5b07b7p-3 }, ++ { 0x1.e4121370224ccp-1, 0x1.6c205655be71fp-3 }, ++ { 0x1.e4c6372cd8927p-1, 0x1.6473b5b15a7a1p-3 }, ++ { 0x1.e5768c3b4a3fcp-1, 0x1.5ce595c455b0ap-3 }, ++ { 0x1.e62321d06c5e0p-1, 0x1.5575c8a468361p-3 }, ++ { 0x1.e6cc0709c8a0dp-1, 0x1.4e241e912c305p-3 }, ++ { 0x1.e7714aec96534p-1, 0x1.46f066040a832p-3 }, ++ { 0x1.e812fc64db369p-1, 0x1.3fda6bc016994p-3 }, ++ { 0x1.e8b12a44944a8p-1, 0x1.38e1fae1d6a9dp-3 }, ++ { 0x1.e94be342e6743p-1, 0x1.3206dceef5f87p-3 }, ++ { 0x1.e9e335fb56f87p-1, 0x1.2b48d9e5dea1cp-3 }, ++ { 0x1.ea7730ed0bbb9p-1, 0x1.24a7b84d38971p-3 }, ++ { 0x1.eb07e27a133aap-1, 0x1.1e233d434b813p-3 }, ++ { 0x1.eb9558e6b42cep-1, 0x1.17bb2c8d41535p-3 }, ++ { 0x1.ec1fa258c4beap-1, 0x1.116f48a6476ccp-3 }, ++ { 0x1.eca6ccd709544p-1, 0x1.0b3f52ce8c383p-3 }, ++ { 0x1.ed2ae6489ac1ep-1, 0x1.052b0b1a174eap-3 }, ++ { 0x1.edabfc7453e63p-1, 0x1.fe6460fef4680p-4 }, ++ { 0x1.ee2a1d004692cp-1, 0x1.f2a901ccafb37p-4 }, ++ { 0x1.eea5557137ae0p-1, 0x1.e723726b824a9p-4 }, ++ { 0x1.ef1db32a2277cp-1, 0x1.dbd32ac4c99b0p-4 }, ++ { 0x1.ef93436bc2daap-1, 0x1.d0b7a0f921e7cp-4 }, ++ { 0x1.f006135426b26p-1, 0x1.c5d0497c09e74p-4 }, ++ { 0x1.f0762fde45ee6p-1, 0x1.bb1c972f23e50p-4 }, ++ { 0x1.f0e3a5e1a1788p-1, 0x1.b09bfb7d11a83p-4 }, ++ { 0x1.f14e8211e8c55p-1, 0x1.a64de673e8837p-4 }, ++ { 0x1.f1b6d0fea5f4dp-1, 0x1.9c31c6df3b1b8p-4 }, ++ { 0x1.f21c9f12f0677p-1, 0x1.92470a61b6965p-4 }, ++ { 0x1.f27ff89525acfp-1, 0x1.888d1d8e510a3p-4 }, ++ { 0x1.f2e0e9a6a8b09p-1, 0x1.7f036c0107294p-4 }, ++ { 0x1.f33f7e43a706bp-1, 0x1.75a96077274bap-4 }, ++ { 0x1.f39bc242e43e6p-1, 0x1.6c7e64e7281cbp-4 }, ++ { 0x1.f3f5c1558b19ep-1, 0x1.6381e2980956bp-4 }, ++ { 0x1.f44d870704911p-1, 0x1.5ab342383d177p-4 }, ++ { 0x1.f4a31ebcd47dfp-1, 0x1.5211ebf41880bp-4 }, ++ { 0x1.f4f693b67bd77p-1, 0x1.499d478bca735p-4 }, ++ { 0x1.f547f10d60597p-1, 0x1.4154bc68d75c3p-4 }, ++ { 0x1.f59741b4b97cfp-1, 0x1.3937b1b319259p-4 }, ++ { 0x1.f5e4907982a07p-1, 0x1.31458e6542847p-4 }, ++ { 0x1.f62fe80272419p-1, 0x1.297db960e4f63p-4 }, ++ { 0x1.f67952cff6282p-1, 0x1.21df9981f8e53p-4 }, ++ { 0x1.f6c0db3c34641p-1, 0x1.1a6a95b1e786fp-4 }, ++ { 0x1.f7068b7b10fd9p-1, 0x1.131e14fa1625dp-4 }, ++ { 0x1.f74a6d9a38383p-1, 0x1.0bf97e95f2a64p-4 }, ++ { 0x1.f78c8b812d498p-1, 0x1.04fc3a0481321p-4 }, ++ { 0x1.f7cceef15d631p-1, 0x1.fc4b5e32d6259p-5 }, ++ { 0x1.f80ba18636f07p-1, 0x1.eeea8c1b1db93p-5 }, ++ { 0x1.f848acb544e95p-1, 0x1.e1d4cf1e2450ap-5 }, ++ { 0x1.f88419ce4e184p-1, 0x1.d508f9a1ea64ep-5 }, ++ { 0x1.f8bdf1fb78370p-1, 0x1.c885df3451a07p-5 }, ++ { 0x1.f8f63e416ebffp-1, 0x1.bc4a54a84e834p-5 }, ++ { 0x1.f92d077f8d56dp-1, 0x1.b055303221015p-5 }, ++ { 0x1.f96256700da8ep-1, 0x1.a4a549829587ep-5 }, ++ { 0x1.f99633a838a57p-1, 0x1.993979e14fffdp-5 }, ++ { 0x1.f9c8a7989af0dp-1, 0x1.8e109c4622913p-5 }, ++ { 0x1.f9f9ba8d3c733p-1, 0x1.83298d717210ep-5 }, ++ { 0x1.fa2974addae45p-1, 0x1.78832c03aa2b1p-5 }, ++ { 0x1.fa57ddfe27376p-1, 0x1.6e1c5893c380bp-5 }, ++ { 0x1.fa84fe5e05c8dp-1, 0x1.63f3f5c4de13bp-5 }, ++ { 0x1.fab0dd89d1309p-1, 0x1.5a08e85af27e0p-5 }, ++ { 0x1.fadb831a9f9c3p-1, 0x1.505a174e9c929p-5 }, ++ { 0x1.fb04f6868a944p-1, 0x1.46e66be002240p-5 }, ++ { 0x1.fb2d3f20f9101p-1, 0x1.3dacd1a8d8ccdp-5 }, ++ { 0x1.fb54641aebbc9p-1, 0x1.34ac36ad8dafep-5 }, ++ { 0x1.fb7a6c834b5a2p-1, 0x1.2be38b6d92415p-5 }, ++ { 0x1.fb9f5f4739170p-1, 0x1.2351c2f2d1449p-5 }, ++ { 0x1.fbc3433260ca5p-1, 0x1.1af5d2e04f3f6p-5 }, ++ { 0x1.fbe61eef4cf6ap-1, 0x1.12ceb37ff9bc3p-5 }, ++ { 0x1.fc07f907bc794p-1, 0x1.0adb5fcfa8c75p-5 }, ++ { 0x1.fc28d7e4f9cd0p-1, 0x1.031ad58d56279p-5 }, ++ { 0x1.fc48c1d033c7ap-1, 0x1.f7182a851bca2p-6 }, ++ { 0x1.fc67bcf2d7b8fp-1, 0x1.e85c449e377f2p-6 }, ++ { 0x1.fc85cf56ecd38p-1, 0x1.da0005e5f28dfp-6 }, ++ { 0x1.fca2fee770c79p-1, 0x1.cc0180af00a8bp-6 }, ++ { 0x1.fcbf5170b578bp-1, 0x1.be5ecd2fcb5f9p-6 }, ++ { 0x1.fcdacca0bfb73p-1, 0x1.b1160991ff737p-6 }, ++ { 0x1.fcf57607a6e7cp-1, 0x1.a4255a00b9f03p-6 }, ++ { 0x1.fd0f5317f582fp-1, 0x1.978ae8b55ce1bp-6 }, ++ { 0x1.fd2869270a56fp-1, 0x1.8b44e6031383ep-6 }, ++ { 0x1.fd40bd6d7a785p-1, 0x1.7f5188610ddc8p-6 }, ++ { 0x1.fd58550773cb5p-1, 0x1.73af0c737bb45p-6 }, ++ { 0x1.fd6f34f52013ap-1, 0x1.685bb5134ef13p-6 }, ++ { 0x1.fd85621b0876dp-1, 0x1.5d55cb54cd53ap-6 }, ++ { 0x1.fd9ae142795e3p-1, 0x1.529b9e8cf9a1ep-6 }, ++ { 0x1.fdafb719e6a69p-1, 0x1.482b8455dc491p-6 }, ++ { 0x1.fdc3e835500b3p-1, 0x1.3e03d891b37dep-6 }, ++ { 0x1.fdd7790ea5bc0p-1, 0x1.3422fd6d12e2bp-6 }, ++ { 0x1.fdea6e062d0c9p-1, 0x1.2a875b5ffab56p-6 }, ++ { 0x1.fdfccb62e52d3p-1, 0x1.212f612dee7fbp-6 }, ++ { 0x1.fe0e9552ebdd6p-1, 0x1.181983e5133ddp-6 }, ++ { 0x1.fe1fcfebe2083p-1, 0x1.0f443edc5ce49p-6 }, ++ { 0x1.fe307f2b503d0p-1, 0x1.06ae13b0d3255p-6 }, ++ { 0x1.fe40a6f70af4bp-1, 0x1.fcab1483ea7fcp-7 }, ++ { 0x1.fe504b1d9696cp-1, 0x1.ec72615a894c4p-7 }, ++ { 0x1.fe5f6f568b301p-1, 0x1.dcaf3691fc448p-7 }, ++ { 0x1.fe6e1742f7cf6p-1, 0x1.cd5ec93c12431p-7 }, ++ { 0x1.fe7c466dc57a1p-1, 0x1.be7e5ac24963bp-7 }, ++ { 0x1.fe8a004c19ae6p-1, 0x1.b00b38d6b3575p-7 }, ++ { 0x1.fe97483db8670p-1, 0x1.a202bd6372dcep-7 }, ++ { 0x1.fea4218d6594ap-1, 0x1.94624e78e0fafp-7 }, ++ { 0x1.feb08f7146046p-1, 0x1.87275e3a6869dp-7 }, ++ { 0x1.febc950b3fa75p-1, 0x1.7a4f6aca256cbp-7 }, ++ { 0x1.fec835695932ep-1, 0x1.6dd7fe3358230p-7 }, ++ { 0x1.fed37386190fbp-1, 0x1.61beae53b72b7p-7 }, ++ { 0x1.fede5248e38f4p-1, 0x1.56011cc3b036dp-7 }, ++ { 0x1.fee8d486585eep-1, 0x1.4a9cf6bda3f4cp-7 }, ++ { 0x1.fef2fd00af31ap-1, 0x1.3f8ff5042a88ep-7 }, ++ { 0x1.fefcce6813974p-1, 0x1.34d7dbc76d7e5p-7 }, ++ { 0x1.ff064b5afffbep-1, 0x1.2a727a89a3f14p-7 }, ++ { 0x1.ff0f766697c76p-1, 0x1.205dac02bd6b9p-7 }, ++ { 0x1.ff18520700971p-1, 0x1.1697560347b25p-7 }, ++ { 0x1.ff20e0a7ba8c2p-1, 0x1.0d1d69569b82dp-7 }, ++ { 0x1.ff2924a3f7a83p-1, 0x1.03ede1a45bfeep-7 }, ++ { 0x1.ff312046f2339p-1, 0x1.f60d8aa2a88f2p-8 }, ++ { 0x1.ff38d5cc4227fp-1, 0x1.e4cc4abf7d065p-8 }, ++ { 0x1.ff404760319b4p-1, 0x1.d4143a9dfe965p-8 }, ++ { 0x1.ff47772010262p-1, 0x1.c3e1a5f5c077cp-8 }, ++ { 0x1.ff4e671a85425p-1, 0x1.b430ecf4a83a8p-8 }, ++ { 0x1.ff55194fe19dfp-1, 0x1.a4fe83fb9db25p-8 }, ++ { 0x1.ff5b8fb26f5f6p-1, 0x1.9646f35a76623p-8 }, ++ { 0x1.ff61cc26c1578p-1, 0x1.8806d70b2fc36p-8 }, ++ { 0x1.ff67d08401202p-1, 0x1.7a3ade6c8b3e4p-8 }, ++ { 0x1.ff6d9e943c231p-1, 0x1.6cdfcbfc1e263p-8 }, ++ { 0x1.ff733814af88cp-1, 0x1.5ff2750fe7820p-8 }, ++ { 0x1.ff789eb6130c9p-1, 0x1.536fc18f7ce5cp-8 }, ++ { 0x1.ff7dd41ce2b4dp-1, 0x1.4754abacdf1dcp-8 }, ++ { 0x1.ff82d9e1a76d8p-1, 0x1.3b9e3f9d06e3fp-8 }, ++ { 0x1.ff87b1913e853p-1, 0x1.30499b503957fp-8 }, ++ { 0x1.ff8c5cad200a5p-1, 0x1.2553ee2a336bfp-8 }, ++ { 0x1.ff90dcaba4096p-1, 0x1.1aba78ba3af89p-8 }, ++ { 0x1.ff9532f846ab0p-1, 0x1.107a8c7323a6ep-8 }, ++ { 0x1.ff9960f3eb327p-1, 0x1.06918b6355624p-8 }, ++ { 0x1.ff9d67f51ddbap-1, 0x1.f9f9cfd9c3035p-9 }, ++ { 0x1.ffa14948549a7p-1, 0x1.e77448fb66bb9p-9 }, ++ { 0x1.ffa506302ebaep-1, 0x1.d58da68fd1170p-9 }, ++ { 0x1.ffa89fe5b3625p-1, 0x1.c4412bf4b8f0bp-9 }, ++ { 0x1.ffac17988ef4bp-1, 0x1.b38a3af2e55b4p-9 }, ++ { 0x1.ffaf6e6f4f5c0p-1, 0x1.a3645330550ffp-9 }, ++ { 0x1.ffb2a5879f35ep-1, 0x1.93cb11a30d765p-9 }, ++ { 0x1.ffb5bdf67fe6fp-1, 0x1.84ba3004a50d0p-9 }, ++ { 0x1.ffb8b8c88295fp-1, 0x1.762d84469c18fp-9 }, ++ { 0x1.ffbb970200110p-1, 0x1.6821000795a03p-9 }, ++ { 0x1.ffbe599f4f9d9p-1, 0x1.5a90b00981d93p-9 }, ++ { 0x1.ffc10194fcb64p-1, 0x1.4d78bba8ca5fdp-9 }, ++ { 0x1.ffc38fcffbb7cp-1, 0x1.40d564548fad7p-9 }, ++ { 0x1.ffc60535dd7f5p-1, 0x1.34a305080681fp-9 }, ++ { 0x1.ffc862a501fd7p-1, 0x1.28de11c5031ebp-9 }, ++ { 0x1.ffcaa8f4c9beap-1, 0x1.1d83170fbf6fbp-9 }, ++ { 0x1.ffccd8f5c66d1p-1, 0x1.128eb96be8798p-9 }, ++ { 0x1.ffcef371ea4d7p-1, 0x1.07fdb4dafea5fp-9 }, ++ { 0x1.ffd0f92cb6ba7p-1, 0x1.fb99b8b8279e1p-10 }, ++ { 0x1.ffd2eae369a07p-1, 0x1.e7f232d9e2630p-10 }, ++ { 0x1.ffd4c94d29fdbp-1, 0x1.d4fed7195d7e8p-10 }, ++ { 0x1.ffd6951b33686p-1, 0x1.c2b9cf7f893bfp-10 }, ++ { 0x1.ffd84ef9009eep-1, 0x1.b11d702b3deb1p-10 }, ++ { 0x1.ffd9f78c7524ap-1, 0x1.a024365f771bdp-10 }, ++ { 0x1.ffdb8f7605ee7p-1, 0x1.8fc8c794b03b5p-10 }, ++ { 0x1.ffdd1750e1220p-1, 0x1.8005f08d6f1efp-10 }, ++ { 0x1.ffde8fb314ebfp-1, 0x1.70d6a46e07ddap-10 }, ++ { 0x1.ffdff92db56e5p-1, 0x1.6235fbd7a4345p-10 }, ++ { 0x1.ffe1544d01ccbp-1, 0x1.541f340697987p-10 }, ++ { 0x1.ffe2a1988857cp-1, 0x1.468dadf4080abp-10 }, ++ { 0x1.ffe3e19349dc7p-1, 0x1.397ced7af2b15p-10 }, ++ { 0x1.ffe514bbdc197p-1, 0x1.2ce898809244ep-10 }, ++ { 0x1.ffe63b8c8b5f7p-1, 0x1.20cc76202c5fap-10 }, ++ { 0x1.ffe7567b7b5e1p-1, 0x1.15246dda49d47p-10 }, ++ { 0x1.ffe865fac722bp-1, 0x1.09ec86c75d497p-10 }, ++ { 0x1.ffe96a78a04a9p-1, 0x1.fe41cd9bb4eeep-11 }, ++ { 0x1.ffea645f6d6dap-1, 0x1.e97ba3b77f306p-11 }, ++ { 0x1.ffeb5415e7c44p-1, 0x1.d57f524723822p-11 }, ++ { 0x1.ffec39ff380b9p-1, 0x1.c245d4b998479p-11 }, ++ { 0x1.ffed167b12ac2p-1, 0x1.afc85e0f82e12p-11 }, ++ { 0x1.ffede9e5d3262p-1, 0x1.9e005769dbc1dp-11 }, ++ { 0x1.ffeeb49896c6dp-1, 0x1.8ce75e9f6f8a0p-11 }, ++ { 0x1.ffef76e956a9fp-1, 0x1.7c7744d9378f7p-11 }, ++ { 0x1.fff0312b010b5p-1, 0x1.6caa0d3582fe9p-11 }, ++ { 0x1.fff0e3ad91ec2p-1, 0x1.5d79eb71e893bp-11 }, ++ { 0x1.fff18ebe2b0e1p-1, 0x1.4ee1429bf7cc0p-11 }, ++ { 0x1.fff232a72b48ep-1, 0x1.40daa3c89f5b6p-11 }, ++ { 0x1.fff2cfb0453d9p-1, 0x1.3360ccd23db3ap-11 }, ++ { 0x1.fff3661e9569dp-1, 0x1.266ea71d4f71ap-11 }, ++ { 0x1.fff3f634b79f9p-1, 0x1.19ff4663ae9dfp-11 }, ++ { 0x1.fff48032dbe40p-1, 0x1.0e0de78654d1ep-11 }, ++ { 0x1.fff50456dab8cp-1, 0x1.0295ef6591848p-11 }, ++ { 0x1.fff582dc48d30p-1, 0x1.ef25d37f49fe1p-12 }, ++ { 0x1.fff5fbfc8a439p-1, 0x1.da01102b5f851p-12 }, ++ { 0x1.fff66feee5129p-1, 0x1.c5b5412dcafadp-12 }, ++ { 0x1.fff6dee89352ep-1, 0x1.b23a5a23e4210p-12 }, ++ { 0x1.fff7491cd4af6p-1, 0x1.9f8893d8fd1c1p-12 }, ++ { 0x1.fff7aebcff755p-1, 0x1.8d986a4187285p-12 }, ++ { 0x1.fff80ff8911fdp-1, 0x1.7c629a822bc9ep-12 }, ++ { 0x1.fff86cfd3e657p-1, 0x1.6be02102b3520p-12 }, ++ { 0x1.fff8c5f702ccfp-1, 0x1.5c0a378c90bcap-12 }, ++ { 0x1.fff91b102fca8p-1, 0x1.4cda5374ea275p-12 }, ++ { 0x1.fff96c717b695p-1, 0x1.3e4a23d1f4702p-12 }, ++ { 0x1.fff9ba420e834p-1, 0x1.30538fbb77ecdp-12 }, ++ { 0x1.fffa04a7928b1p-1, 0x1.22f0b496539bdp-12 }, ++ { 0x1.fffa4bc63ee9ap-1, 0x1.161be46ad3b50p-12 }, ++ { 0x1.fffa8fc0e5f33p-1, 0x1.09cfa445b00ffp-12 }, ++ { 0x1.fffad0b901755p-1, 0x1.fc0d55470cf51p-13 }, ++ { 0x1.fffb0ecebee1bp-1, 0x1.e577bbcd49935p-13 }, ++ { 0x1.fffb4a210b172p-1, 0x1.cfd4a5adec5bfp-13 }, ++ { 0x1.fffb82cd9dcbfp-1, 0x1.bb1a9657ce465p-13 }, ++ { 0x1.fffbb8f1049c6p-1, 0x1.a740684026555p-13 }, ++ { 0x1.fffbeca6adbe9p-1, 0x1.943d4a1d1ed39p-13 }, ++ { 0x1.fffc1e08f25f5p-1, 0x1.8208bc334a6a5p-13 }, ++ { 0x1.fffc4d3120aa1p-1, 0x1.709a8db59f25cp-13 }, ++ { 0x1.fffc7a37857d2p-1, 0x1.5feada379d8b7p-13 }, ++ { 0x1.fffca53375ce3p-1, 0x1.4ff207314a102p-13 }, ++ { 0x1.fffcce3b57bffp-1, 0x1.40a8c1949f75ep-13 }, ++ { 0x1.fffcf564ab6b7p-1, 0x1.3207fb7420eb9p-13 }, ++ { 0x1.fffd1ac4135f9p-1, 0x1.2408e9ba3327fp-13 }, ++ { 0x1.fffd3e6d5cd87p-1, 0x1.16a501f0e42cap-13 }, ++ { 0x1.fffd607387b07p-1, 0x1.09d5f819c9e29p-13 }, ++ { 0x1.fffd80e8ce0dap-1, 0x1.fb2b792b40a22p-14 }, ++ { 0x1.fffd9fdeabccep-1, 0x1.e3bcf436a1a95p-14 }, ++ { 0x1.fffdbd65e5ad0p-1, 0x1.cd55277c18d05p-14 }, ++ { 0x1.fffdd98e903b2p-1, 0x1.b7e94604479dcp-14 }, ++ { 0x1.fffdf46816833p-1, 0x1.a36eec00926ddp-14 }, ++ { 0x1.fffe0e0140857p-1, 0x1.8fdc1b2dcf7b9p-14 }, ++ { 0x1.fffe26683972ap-1, 0x1.7d2737527c3f9p-14 }, ++ { 0x1.fffe3daa95b18p-1, 0x1.6b4702d7d5849p-14 }, ++ { 0x1.fffe53d558ae9p-1, 0x1.5a329b7d30748p-14 }, ++ { 0x1.fffe68f4fa777p-1, 0x1.49e17724f4d41p-14 }, ++ { 0x1.fffe7d156d244p-1, 0x1.3a4b60ba9aa4dp-14 }, ++ { 0x1.fffe904222101p-1, 0x1.2b6875310f785p-14 }, ++ { 0x1.fffea2860ee1ep-1, 0x1.1d312098e9dbap-14 }, ++ { 0x1.fffeb3ebb267bp-1, 0x1.0f9e1b4dd36dfp-14 }, ++ { 0x1.fffec47d19457p-1, 0x1.02a8673a94691p-14 }, ++ { 0x1.fffed443e2787p-1, 0x1.ec929a665b449p-15 }, ++ { 0x1.fffee34943b15p-1, 0x1.d4f4b4c8e09edp-15 }, ++ { 0x1.fffef1960d85dp-1, 0x1.be6abbb10a5aap-15 }, ++ { 0x1.fffeff32af7afp-1, 0x1.a8e8cc1fadef6p-15 }, ++ { 0x1.ffff0c273bea2p-1, 0x1.94637d5bacfdbp-15 }, ++ { 0x1.ffff187b6bc0ep-1, 0x1.80cfdc72220cfp-15 }, ++ { 0x1.ffff2436a21dcp-1, 0x1.6e2367dc27f95p-15 }, ++ { 0x1.ffff2f5fefcaap-1, 0x1.5c540b4936fd2p-15 }, ++ { 0x1.ffff39fe16963p-1, 0x1.4b581b8d170fcp-15 }, ++ { 0x1.ffff44178c8d2p-1, 0x1.3b2652b06c2b2p-15 }, ++ { 0x1.ffff4db27f146p-1, 0x1.2bb5cc22e5db6p-15 }, ++ { 0x1.ffff56d4d5e5ep-1, 0x1.1cfe010e2052dp-15 }, ++ { 0x1.ffff5f8435efcp-1, 0x1.0ef6c4c84a0fep-15 }, ++ { 0x1.ffff67c604180p-1, 0x1.01984165a5f36p-15 }, ++ { 0x1.ffff6f9f67e55p-1, 0x1.e9b5e8d00ce76p-16 }, ++ { 0x1.ffff77154e0d6p-1, 0x1.d16f5716c6c1ap-16 }, ++ { 0x1.ffff7e2c6aea2p-1, 0x1.ba4f035d60e02p-16 }, ++ { 0x1.ffff84e93cd75p-1, 0x1.a447b7b03f045p-16 }, ++ { 0x1.ffff8b500e77cp-1, 0x1.8f4ccca7fc90dp-16 }, ++ { 0x1.ffff9164f8e46p-1, 0x1.7b5223dac7336p-16 }, ++ { 0x1.ffff972be5c59p-1, 0x1.684c227fcacefp-16 }, ++ { 0x1.ffff9ca891572p-1, 0x1.562fac4329b48p-16 }, ++ { 0x1.ffffa1de8c582p-1, 0x1.44f21e49054f2p-16 }, ++ { 0x1.ffffa6d13de73p-1, 0x1.34894a5e24657p-16 }, ++ { 0x1.ffffab83e54b8p-1, 0x1.24eb7254ccf83p-16 }, ++ { 0x1.ffffaff99bac4p-1, 0x1.160f438c70913p-16 }, ++ { 0x1.ffffb43555b5fp-1, 0x1.07ebd2a2d2844p-16 }, ++ { 0x1.ffffb839e52f3p-1, 0x1.f4f12e9ab070ap-17 }, ++ { 0x1.ffffbc09fa7cdp-1, 0x1.db5ad0b27805cp-17 }, ++ { 0x1.ffffbfa82616bp-1, 0x1.c304efa2c6f4ep-17 }, ++ { 0x1.ffffc316d9ed0p-1, 0x1.abe09e9144b5ep-17 }, ++ { 0x1.ffffc6586abf6p-1, 0x1.95df988e76644p-17 }, ++ { 0x1.ffffc96f1165ep-1, 0x1.80f439b4ee04bp-17 }, ++ { 0x1.ffffcc5cec0c1p-1, 0x1.6d11788a69c64p-17 }, ++ { 0x1.ffffcf23ff5fcp-1, 0x1.5a2adfa0b4bc4p-17 }, ++ { 0x1.ffffd1c637b2bp-1, 0x1.4834877429b8fp-17 }, ++ { 0x1.ffffd4456a10dp-1, 0x1.37231085c7d9ap-17 }, ++ { 0x1.ffffd6a3554a1p-1, 0x1.26eb9daed6f7ep-17 }, ++ { 0x1.ffffd8e1a2f22p-1, 0x1.1783ceac28910p-17 }, ++ { 0x1.ffffdb01e8546p-1, 0x1.08e1badf0fcedp-17 }, ++ { 0x1.ffffdd05a75eap-1, 0x1.f5f7d88472604p-18 }, ++ { 0x1.ffffdeee4f810p-1, 0x1.db92b5212fb8dp-18 }, ++ { 0x1.ffffe0bd3e852p-1, 0x1.c282cd3957edap-18 }, ++ { 0x1.ffffe273c15b7p-1, 0x1.aab7abace48dcp-18 }, ++ { 0x1.ffffe41314e06p-1, 0x1.94219bfcb4928p-18 }, ++ { 0x1.ffffe59c6698bp-1, 0x1.7eb1a2075864dp-18 }, ++ { 0x1.ffffe710d565ep-1, 0x1.6a597219a93d9p-18 }, ++ { 0x1.ffffe8717232dp-1, 0x1.570b69502f313p-18 }, ++ { 0x1.ffffe9bf4098cp-1, 0x1.44ba864670882p-18 }, ++ { 0x1.ffffeafb377d5p-1, 0x1.335a62115bce2p-18 }, ++ { 0x1.ffffec2641a9ep-1, 0x1.22df298214423p-18 }, ++ { 0x1.ffffed413e5b7p-1, 0x1.133d96ae7e0ddp-18 }, ++ { 0x1.ffffee4d01cd6p-1, 0x1.046aeabcfcdecp-18 }, ++ { 0x1.ffffef4a55bd4p-1, 0x1.ecb9cfe1d8642p-19 }, ++ { 0x1.fffff039f9e8fp-1, 0x1.d21397ead99cbp-19 }, ++ { 0x1.fffff11ca4876p-1, 0x1.b8d094c86d374p-19 }, ++ { 0x1.fffff1f302bc1p-1, 0x1.a0df0f0c626dcp-19 }, ++ { 0x1.fffff2bdb904dp-1, 0x1.8a2e269750a39p-19 }, ++ { 0x1.fffff37d63a36p-1, 0x1.74adc8f4064d3p-19 }, ++ { 0x1.fffff43297019p-1, 0x1.604ea819f007cp-19 }, ++ { 0x1.fffff4dde0118p-1, 0x1.4d0231928c6f9p-19 }, ++ { 0x1.fffff57fc4a95p-1, 0x1.3aba85fe22e1fp-19 }, ++ { 0x1.fffff618c3da6p-1, 0x1.296a70f414053p-19 }, ++ { 0x1.fffff6a956450p-1, 0x1.1905613b3abf2p-19 }, ++ { 0x1.fffff731ee681p-1, 0x1.097f6156f32c5p-19 }, ++ { 0x1.fffff7b2f8ed6p-1, 0x1.f59a20caf6695p-20 }, ++ { 0x1.fffff82cdcf1bp-1, 0x1.d9c73698fb1dcp-20 }, ++ { 0x1.fffff89ffc4aap-1, 0x1.bf716c6168baep-20 }, ++ { 0x1.fffff90cb3c81p-1, 0x1.a6852c6b58392p-20 }, ++ { 0x1.fffff9735b73bp-1, 0x1.8eefd70594a88p-20 }, ++ { 0x1.fffff9d446cccp-1, 0x1.789fb715aae95p-20 }, ++ { 0x1.fffffa2fc5015p-1, 0x1.6383f726a8e04p-20 }, ++ { 0x1.fffffa8621251p-1, 0x1.4f8c96f26a26ap-20 }, ++ { 0x1.fffffad7a2652p-1, 0x1.3caa61607f920p-20 }, ++ { 0x1.fffffb248c39dp-1, 0x1.2acee2f5ecdb8p-20 }, ++ { 0x1.fffffb6d1e95dp-1, 0x1.19ec60b1242edp-20 }, ++ { 0x1.fffffbb196132p-1, 0x1.09f5cf4dd2877p-20 }, ++ { 0x1.fffffbf22c1e2p-1, 0x1.f5bd95d8730d8p-21 }, ++ { 0x1.fffffc2f171e3p-1, 0x1.d9371e2ff7c35p-21 }, ++ { 0x1.fffffc688a9cfp-1, 0x1.be41de54d155ap-21 }, ++ { 0x1.fffffc9eb76acp-1, 0x1.a4c89e08ef4f3p-21 }, ++ { 0x1.fffffcd1cbc28p-1, 0x1.8cb738399b12cp-21 }, ++ { 0x1.fffffd01f36afp-1, 0x1.75fa8dbc84becp-21 }, ++ { 0x1.fffffd2f57d68p-1, 0x1.608078a70dcbcp-21 }, ++ { 0x1.fffffd5a2041fp-1, 0x1.4c37c0394d094p-21 }, ++ { 0x1.fffffd8271d12p-1, 0x1.39100d5687bfep-21 }, ++ { 0x1.fffffda86faa9p-1, 0x1.26f9df8519bd6p-21 }, ++ { 0x1.fffffdcc3b117p-1, 0x1.15e6827001f18p-21 }, ++ { 0x1.fffffdedf37edp-1, 0x1.05c803e4831c1p-21 }, ++ { 0x1.fffffe0db6b91p-1, 0x1.ed22548cffd35p-22 }, ++ { 0x1.fffffe2ba0ea5p-1, 0x1.d06ad6ecdf971p-22 }, ++ { 0x1.fffffe47ccb60p-1, 0x1.b551c847fbc96p-22 }, ++ { 0x1.fffffe62534d4p-1, 0x1.9bc09f112b494p-22 }, ++ { 0x1.fffffe7b4c81ep-1, 0x1.83a1ff0aa239dp-22 }, ++ { 0x1.fffffe92ced93p-1, 0x1.6ce1aa3fd7bddp-22 }, ++ { 0x1.fffffea8ef9cfp-1, 0x1.576c72b514859p-22 }, ++ { 0x1.fffffebdc2ec6p-1, 0x1.43302cc4a0da8p-22 }, ++ { 0x1.fffffed15bcbap-1, 0x1.301ba221dc9bbp-22 }, ++ { 0x1.fffffee3cc32cp-1, 0x1.1e1e857adc568p-22 }, ++ { 0x1.fffffef5251c2p-1, 0x1.0d2966b1746f7p-22 }, ++ { 0x1.ffffff0576917p-1, 0x1.fa5b4f49cc6b2p-23 }, ++ { 0x1.ffffff14cfb92p-1, 0x1.dc3ae30b55c16p-23 }, ++ { 0x1.ffffff233ee1dp-1, 0x1.bfd7555a3bd68p-23 }, ++ { 0x1.ffffff30d18e8p-1, 0x1.a517d9e61628ap-23 }, ++ { 0x1.ffffff3d9480fp-1, 0x1.8be4f8f6c951fp-23 }, ++ { 0x1.ffffff4993c46p-1, 0x1.74287ded49339p-23 }, ++ { 0x1.ffffff54dab72p-1, 0x1.5dcd669f2cd34p-23 }, ++ { 0x1.ffffff5f74141p-1, 0x1.48bfd38302870p-23 }, ++ { 0x1.ffffff6969fb8p-1, 0x1.34ecf8a3c124ap-23 }, ++ { 0x1.ffffff72c5fb6p-1, 0x1.22430f521cbcfp-23 }, ++ { 0x1.ffffff7b91176p-1, 0x1.10b1488aeb235p-23 }, ++ { 0x1.ffffff83d3d07p-1, 0x1.0027c00a263a6p-23 }, ++ { 0x1.ffffff8b962bep-1, 0x1.e12ee004efc37p-24 }, ++ { 0x1.ffffff92dfba2p-1, 0x1.c3e44ae32b16bp-24 }, ++ { 0x1.ffffff99b79d2p-1, 0x1.a854ea14102a8p-24 }, ++ { 0x1.ffffffa0248e8p-1, 0x1.8e6761569f45dp-24 }, ++ { 0x1.ffffffa62ce54p-1, 0x1.7603bac345f65p-24 }, ++ { 0x1.ffffffabd69b4p-1, 0x1.5f1353cdad001p-24 }, ++ { 0x1.ffffffb127525p-1, 0x1.4980cb3c80949p-24 }, ++ { 0x1.ffffffb624592p-1, 0x1.3537f00b6ad4dp-24 }, ++ { 0x1.ffffffbad2affp-1, 0x1.2225b12bffc68p-24 }, ++ { 0x1.ffffffbf370cdp-1, 0x1.10380e1adb7e9p-24 }, ++ { 0x1.ffffffc355dfdp-1, 0x1.febc107d5efaap-25 }, ++ { 0x1.ffffffc733572p-1, 0x1.df0f2a0ee6946p-25 }, ++ { 0x1.ffffffcad3626p-1, 0x1.c14b2188bcee4p-25 }, ++ { 0x1.ffffffce39b67p-1, 0x1.a553644f7f07dp-25 }, ++ { 0x1.ffffffd169d0cp-1, 0x1.8b0cfce0579dfp-25 }, ++ { 0x1.ffffffd466fa5p-1, 0x1.725e7c5dd20f7p-25 }, ++ { 0x1.ffffffd7344aap-1, 0x1.5b2fe547a1340p-25 }, ++ { 0x1.ffffffd9d4aabp-1, 0x1.456a974e92e93p-25 }, ++ { 0x1.ffffffdc4ad7ap-1, 0x1.30f93c3699078p-25 }, ++ { 0x1.ffffffde9964ep-1, 0x1.1dc7b5b978cf8p-25 }, ++ { 0x1.ffffffe0c2bf0p-1, 0x1.0bc30c5d52f15p-25 }, ++ { 0x1.ffffffe2c92dbp-1, 0x1.f5b2be65a0c7fp-26 }, ++ { 0x1.ffffffe4aed5ep-1, 0x1.d5f3a8dea7357p-26 }, ++ { 0x1.ffffffe675bbdp-1, 0x1.b82915b03515bp-26 }, ++ { 0x1.ffffffe81fc4ep-1, 0x1.9c3517e789488p-26 }, ++ { 0x1.ffffffe9aeb97p-1, 0x1.81fb7df06136ep-26 }, ++ { 0x1.ffffffeb24467p-1, 0x1.6961b8d641d06p-26 }, ++ { 0x1.ffffffec81ff2p-1, 0x1.524ec4d916caep-26 }, ++ { 0x1.ffffffedc95e7p-1, 0x1.3cab1343d18d1p-26 }, ++ { 0x1.ffffffeefbc85p-1, 0x1.2860757487a01p-26 }, ++ { 0x1.fffffff01a8b6p-1, 0x1.155a09065d4f7p-26 }, ++ { 0x1.fffffff126e1ep-1, 0x1.0384250e4c9fcp-26 }, ++ { 0x1.fffffff221f30p-1, 0x1.e59890b926c78p-27 }, ++ { 0x1.fffffff30cd3fp-1, 0x1.c642116a8a9e3p-27 }, ++ { 0x1.fffffff3e8892p-1, 0x1.a8e405e651ab6p-27 }, ++ { 0x1.fffffff4b606fp-1, 0x1.8d5f98114f872p-27 }, ++ { 0x1.fffffff57632dp-1, 0x1.7397c5a66e307p-27 }, ++ { 0x1.fffffff629e44p-1, 0x1.5b71456c5a4c4p-27 }, ++ { 0x1.fffffff6d1e56p-1, 0x1.44d26de513197p-27 }, ++ { 0x1.fffffff76ef3fp-1, 0x1.2fa31d6371537p-27 }, ++ { 0x1.fffffff801c1fp-1, 0x1.1bcca373b7b43p-27 }, ++ { 0x1.fffffff88af67p-1, 0x1.0939ab853339fp-27 }, ++ { 0x1.fffffff90b2e3p-1, 0x1.efac5187b2863p-28 }, ++ { 0x1.fffffff982fc1p-1, 0x1.cf1e86235d0e6p-28 }, ++ { 0x1.fffffff9f2e9fp-1, 0x1.b0a68a2128babp-28 }, ++ { 0x1.fffffffa5b790p-1, 0x1.9423165bc4444p-28 }, ++ { 0x1.fffffffabd229p-1, 0x1.7974e743dea3cp-28 }, ++ { 0x1.fffffffb18582p-1, 0x1.607e9eacd1050p-28 }, ++ { 0x1.fffffffb6d844p-1, 0x1.4924a74dec728p-28 }, ++ { 0x1.fffffffbbd0aap-1, 0x1.334d19e0c2160p-28 }, ++ { 0x1.fffffffc0748fp-1, 0x1.1edfa3c5f5ccap-28 }, ++ { 0x1.fffffffc4c96cp-1, 0x1.0bc56f1b54701p-28 }, ++ { 0x1.fffffffc8d462p-1, 0x1.f3d2185e047d9p-29 }, ++ { 0x1.fffffffcc9a41p-1, 0x1.d26cb87945e87p-29 }, ++ { 0x1.fffffffd01f89p-1, 0x1.b334fac4b9f99p-29 }, ++ { 0x1.fffffffd36871p-1, 0x1.96076f7918d1cp-29 }, ++ { 0x1.fffffffd678edp-1, 0x1.7ac2d72fc2c63p-29 }, ++ { 0x1.fffffffd954aep-1, 0x1.614801550319ep-29 }, ++ { 0x1.fffffffdbff2ap-1, 0x1.4979ac8b28926p-29 }, ++ { 0x1.fffffffde7ba0p-1, 0x1.333c68e2d0548p-29 }, ++ { 0x1.fffffffe0cd16p-1, 0x1.1e767bce37dd7p-29 }, ++ { 0x1.fffffffe2f664p-1, 0x1.0b0fc5b6d05a0p-29 }, ++ { 0x1.fffffffe4fa30p-1, 0x1.f1e3523b41d7dp-30 }, ++ { 0x1.fffffffe6daf7p-1, 0x1.d00de6608effep-30 }, ++ { 0x1.fffffffe89b0cp-1, 0x1.b0778b7b3301ap-30 }, ++ { 0x1.fffffffea3c9ap-1, 0x1.92fb04ec0f6cfp-30 }, ++ { 0x1.fffffffebc1a9p-1, 0x1.77756ec9f78fap-30 }, ++ { 0x1.fffffffed2c21p-1, 0x1.5dc61922d5a06p-30 }, ++ { 0x1.fffffffee7dc8p-1, 0x1.45ce65699ff6dp-30 }, ++ { 0x1.fffffffefb847p-1, 0x1.2f71a5f159970p-30 }, ++ { 0x1.ffffffff0dd2bp-1, 0x1.1a94ff571654fp-30 }, ++ { 0x1.ffffffff1ede9p-1, 0x1.071f4bbea09ecp-30 }, ++ { 0x1.ffffffff2ebdap-1, 0x1.e9f1ff8ddd774p-31 }, ++ { 0x1.ffffffff3d843p-1, 0x1.c818223a202c7p-31 }, ++ { 0x1.ffffffff4b453p-1, 0x1.a887bd2b4404dp-31 }, ++ { 0x1.ffffffff58126p-1, 0x1.8b1a336c5eb6bp-31 }, ++ { 0x1.ffffffff63fc3p-1, 0x1.6fab63324088ap-31 }, ++ { 0x1.ffffffff6f121p-1, 0x1.56197e30205bap-31 }, ++ { 0x1.ffffffff79626p-1, 0x1.3e44e45301b92p-31 }, ++ { 0x1.ffffffff82fabp-1, 0x1.281000bfe4c3fp-31 }, ++ { 0x1.ffffffff8be77p-1, 0x1.135f28f2d50b4p-31 }, ++ { 0x1.ffffffff94346p-1, 0x1.00187dded5975p-31 }, ++ { 0x1.ffffffff9bec8p-1, 0x1.dc479de0ef001p-32 }, ++ { 0x1.ffffffffa319fp-1, 0x1.bad4fdad3caa1p-32 }, ++ { 0x1.ffffffffa9c63p-1, 0x1.9baed3ed27ab8p-32 }, ++ { 0x1.ffffffffaffa4p-1, 0x1.7ead9ce4285bbp-32 }, ++ { 0x1.ffffffffb5be5p-1, 0x1.63ac6b4edc88ep-32 }, ++ { 0x1.ffffffffbb1a2p-1, 0x1.4a88be2a6390cp-32 }, ++ { 0x1.ffffffffc014ep-1, 0x1.332259185f1a0p-32 }, ++ { 0x1.ffffffffc4b56p-1, 0x1.1d5b1f3793044p-32 }, ++ { 0x1.ffffffffc901cp-1, 0x1.0916f04b6e18bp-32 }, ++ { 0x1.ffffffffccfffp-1, 0x1.ec77101de6926p-33 }, ++ { 0x1.ffffffffd0b56p-1, 0x1.c960bf23153e0p-33 }, ++ { 0x1.ffffffffd4271p-1, 0x1.a8bd20fc65ef7p-33 }, ++ { 0x1.ffffffffd759dp-1, 0x1.8a61745ec7d1dp-33 }, ++ { 0x1.ffffffffda520p-1, 0x1.6e25d0e756261p-33 }, ++ { 0x1.ffffffffdd13cp-1, 0x1.53e4f7d1666cbp-33 }, ++ { 0x1.ffffffffdfa2dp-1, 0x1.3b7c27a7ddb0ep-33 }, ++ { 0x1.ffffffffe202dp-1, 0x1.24caf2c32af14p-33 }, ++ { 0x1.ffffffffe4371p-1, 0x1.0fb3186804d0fp-33 }, ++ { 0x1.ffffffffe642ap-1, 0x1.f830c0bb41fd7p-34 }, ++ { 0x1.ffffffffe8286p-1, 0x1.d3c0f1a91c846p-34 }, ++ { 0x1.ffffffffe9eb0p-1, 0x1.b1e5acf351d87p-34 }, ++ { 0x1.ffffffffeb8d0p-1, 0x1.92712d259ce66p-34 }, ++ { 0x1.ffffffffed10ap-1, 0x1.7538c60a04476p-34 }, ++ { 0x1.ffffffffee782p-1, 0x1.5a14b04b47879p-34 }, ++ { 0x1.ffffffffefc57p-1, 0x1.40dfd87456f4cp-34 }, ++ { 0x1.fffffffff0fa7p-1, 0x1.2977b1172b9d5p-34 }, ++ { 0x1.fffffffff218fp-1, 0x1.13bc07e891491p-34 }, ++ { 0x1.fffffffff3227p-1, 0x1.ff1dbb4300811p-35 }, ++ { 0x1.fffffffff4188p-1, 0x1.d9a880f306bd8p-35 }, ++ { 0x1.fffffffff4fc9p-1, 0x1.b6e45220b55e0p-35 }, ++ { 0x1.fffffffff5cfdp-1, 0x1.96a0b33f2c4dap-35 }, ++ { 0x1.fffffffff6939p-1, 0x1.78b07e9e924acp-35 }, ++ { 0x1.fffffffff748ep-1, 0x1.5ce9ab1670dd2p-35 }, ++ { 0x1.fffffffff7f0dp-1, 0x1.4325167006bb0p-35 }, ++ { 0x1.fffffffff88c5p-1, 0x1.2b3e53538ff3fp-35 }, ++ { 0x1.fffffffff91c6p-1, 0x1.15137a7f44864p-35 }, ++ { 0x1.fffffffff9a1bp-1, 0x1.0084ff125639dp-35 }, ++ { 0x1.fffffffffa1d2p-1, 0x1.daeb0b7311ec7p-36 }, ++ { 0x1.fffffffffa8f6p-1, 0x1.b7937d1c40c52p-36 }, ++ { 0x1.fffffffffaf92p-1, 0x1.96d082f59ab06p-36 }, ++ { 0x1.fffffffffb5b0p-1, 0x1.7872d9fa10aadp-36 }, ++ { 0x1.fffffffffbb58p-1, 0x1.5c4e8e37bc7d0p-36 }, ++ { 0x1.fffffffffc095p-1, 0x1.423ac0df49a40p-36 }, ++ { 0x1.fffffffffc56dp-1, 0x1.2a117230ad284p-36 }, ++ { 0x1.fffffffffc9e8p-1, 0x1.13af4f04f9998p-36 }, ++ { 0x1.fffffffffce0dp-1, 0x1.fde703724e560p-37 }, ++ { 0x1.fffffffffd1e1p-1, 0x1.d77f0c82e7641p-37 }, ++ { 0x1.fffffffffd56cp-1, 0x1.b3ee02611d7ddp-37 }, ++ { 0x1.fffffffffd8b3p-1, 0x1.92ff33023d5bdp-37 }, ++ { 0x1.fffffffffdbbap-1, 0x1.7481a9e69f53fp-37 }, ++ { 0x1.fffffffffde86p-1, 0x1.5847eda620959p-37 }, ++ { 0x1.fffffffffe11dp-1, 0x1.3e27c1fcc74bdp-37 }, ++ { 0x1.fffffffffe380p-1, 0x1.25f9ee0b923dcp-37 }, ++ { 0x1.fffffffffe5b6p-1, 0x1.0f9a0686531ffp-37 }, ++ { 0x1.fffffffffe7c0p-1, 0x1.f5cc7718082afp-38 }, ++ { 0x1.fffffffffe9a2p-1, 0x1.cf7e53d6a2ca5p-38 }, ++ { 0x1.fffffffffeb60p-1, 0x1.ac0f5f3229372p-38 }, ++ { 0x1.fffffffffecfbp-1, 0x1.8b498644847eap-38 }, ++ { 0x1.fffffffffee77p-1, 0x1.6cfa9bcca59dcp-38 }, ++ { 0x1.fffffffffefd6p-1, 0x1.50f411d4fd2cdp-38 }, ++ { 0x1.ffffffffff11ap-1, 0x1.370ab8327af5ep-38 }, ++ { 0x1.ffffffffff245p-1, 0x1.1f167f88c6b6ep-38 }, ++ { 0x1.ffffffffff359p-1, 0x1.08f24085d4597p-38 }, ++ { 0x1.ffffffffff457p-1, 0x1.e8f70e181d619p-39 }, ++ { 0x1.ffffffffff542p-1, 0x1.c324c20e337dcp-39 }, ++ { 0x1.ffffffffff61bp-1, 0x1.a03261574b54ep-39 }, ++ { 0x1.ffffffffff6e3p-1, 0x1.7fe903cdf5855p-39 }, ++ { 0x1.ffffffffff79bp-1, 0x1.6215c58da3450p-39 }, ++ { 0x1.ffffffffff845p-1, 0x1.46897d4b69fc6p-39 }, ++ { 0x1.ffffffffff8e2p-1, 0x1.2d1877d731b7bp-39 }, ++ { 0x1.ffffffffff973p-1, 0x1.159a386b11517p-39 }, ++ { 0x1.ffffffffff9f8p-1, 0x1.ffd27ae9393cep-40 }, ++ { 0x1.ffffffffffa73p-1, 0x1.d7c593130dd0bp-40 }, ++ { 0x1.ffffffffffae4p-1, 0x1.b2cd607c79bcfp-40 }, ++ { 0x1.ffffffffffb4cp-1, 0x1.90ae4d3405651p-40 }, ++ { 0x1.ffffffffffbadp-1, 0x1.71312dd1759e2p-40 }, ++ { 0x1.ffffffffffc05p-1, 0x1.5422ef5d8949dp-40 }, ++ { 0x1.ffffffffffc57p-1, 0x1.39544b0ecc957p-40 }, ++ { 0x1.ffffffffffca2p-1, 0x1.20997f73e73ddp-40 }, ++ { 0x1.ffffffffffce7p-1, 0x1.09ca0eaacd277p-40 }, ++ { 0x1.ffffffffffd27p-1, 0x1.e9810295890ecp-41 }, ++ { 0x1.ffffffffffd62p-1, 0x1.c2b45b5aa4a1dp-41 }, ++ { 0x1.ffffffffffd98p-1, 0x1.9eee068fa7596p-41 }, ++ { 0x1.ffffffffffdcap-1, 0x1.7df2b399c10a8p-41 }, ++ { 0x1.ffffffffffdf8p-1, 0x1.5f8b87a31bd85p-41 }, ++ { 0x1.ffffffffffe22p-1, 0x1.4385c96e9a2d9p-41 }, ++ { 0x1.ffffffffffe49p-1, 0x1.29b2933ef4cbcp-41 }, ++ { 0x1.ffffffffffe6cp-1, 0x1.11e68a6378f8ap-41 }, ++ { 0x1.ffffffffffe8dp-1, 0x1.f7f338086a86bp-42 }, ++ { 0x1.ffffffffffeabp-1, 0x1.cf8d7d9ce040ap-42 }, ++ { 0x1.ffffffffffec7p-1, 0x1.aa577251ae484p-42 }, ++ { 0x1.ffffffffffee1p-1, 0x1.8811d739efb5ep-42 }, ++ { 0x1.ffffffffffef8p-1, 0x1.68823e52970bep-42 }, ++ { 0x1.fffffffffff0ep-1, 0x1.4b72ae68e8b4cp-42 }, ++ { 0x1.fffffffffff22p-1, 0x1.30b14dbe876bcp-42 }, ++ { 0x1.fffffffffff34p-1, 0x1.181012ef86610p-42 }, ++ { 0x1.fffffffffff45p-1, 0x1.01647ba798744p-42 }, ++ { 0x1.fffffffffff54p-1, 0x1.d90e917701675p-43 }, ++ { 0x1.fffffffffff62p-1, 0x1.b2a87e86d0c8ap-43 }, ++ { 0x1.fffffffffff6fp-1, 0x1.8f53dcb377293p-43 }, ++ { 0x1.fffffffffff7bp-1, 0x1.6ed2f2515e933p-43 }, ++ { 0x1.fffffffffff86p-1, 0x1.50ecc9ed47f19p-43 }, ++ { 0x1.fffffffffff90p-1, 0x1.356cd5ce7799ep-43 }, ++ { 0x1.fffffffffff9ap-1, 0x1.1c229a587ab78p-43 }, ++ { 0x1.fffffffffffa2p-1, 0x1.04e15ecc7f3f6p-43 }, ++ { 0x1.fffffffffffaap-1, 0x1.deffc7e6a6017p-44 }, ++ { 0x1.fffffffffffb1p-1, 0x1.b7b040832f310p-44 }, ++ { 0x1.fffffffffffb8p-1, 0x1.938e021f36d76p-44 }, ++ { 0x1.fffffffffffbep-1, 0x1.7258610b3b233p-44 }, ++ { 0x1.fffffffffffc3p-1, 0x1.53d3bfc82a909p-44 }, ++ { 0x1.fffffffffffc8p-1, 0x1.37c92babdc2fdp-44 }, ++ { 0x1.fffffffffffcdp-1, 0x1.1e06010120f6ap-44 }, ++ { 0x1.fffffffffffd1p-1, 0x1.065b9616170d4p-44 }, ++ { 0x1.fffffffffffd5p-1, 0x1.e13dd96b3753ap-45 }, ++ { 0x1.fffffffffffd9p-1, 0x1.b950d32467392p-45 }, ++ { 0x1.fffffffffffdcp-1, 0x1.94a72263259a5p-45 }, ++ { 0x1.fffffffffffdfp-1, 0x1.72fd93e036cdcp-45 }, ++ { 0x1.fffffffffffe2p-1, 0x1.54164576929abp-45 }, ++ { 0x1.fffffffffffe4p-1, 0x1.37b83c521fe96p-45 }, ++ { 0x1.fffffffffffe7p-1, 0x1.1daf033182e96p-45 }, ++ { 0x1.fffffffffffe9p-1, 0x1.05ca50205d26ap-45 }, ++ { 0x1.fffffffffffebp-1, 0x1.dfbb6235639fap-46 }, ++ { 0x1.fffffffffffedp-1, 0x1.b7807e294781fp-46 }, ++ { 0x1.fffffffffffeep-1, 0x1.9298add70a734p-46 }, ++ { 0x1.ffffffffffff0p-1, 0x1.70beaf9c7ffb6p-46 }, ++ { 0x1.ffffffffffff1p-1, 0x1.51b2cd6709222p-46 }, ++ { 0x1.ffffffffffff3p-1, 0x1.353a6cf7f7fffp-46 }, ++ { 0x1.ffffffffffff4p-1, 0x1.1b1fa8cbe84a7p-46 }, ++ { 0x1.ffffffffffff5p-1, 0x1.0330f0fd69921p-46 }, ++ { 0x1.ffffffffffff6p-1, 0x1.da81670f96f9bp-47 }, ++ { 0x1.ffffffffffff7p-1, 0x1.b24a16b4d09aap-47 }, ++ { 0x1.ffffffffffff7p-1, 0x1.8d6eeb6efdbd6p-47 }, ++ { 0x1.ffffffffffff8p-1, 0x1.6ba91ac734785p-47 }, ++ { 0x1.ffffffffffff9p-1, 0x1.4cb7966770ab5p-47 }, ++ { 0x1.ffffffffffff9p-1, 0x1.305e9721d0981p-47 }, ++ { 0x1.ffffffffffffap-1, 0x1.1667311fff70ap-47 }, ++ { 0x1.ffffffffffffbp-1, 0x1.fd3de10d62855p-48 }, ++ { 0x1.ffffffffffffbp-1, 0x1.d1aefbcd48d0cp-48 }, ++ { 0x1.ffffffffffffbp-1, 0x1.a9cc93c25aca9p-48 }, ++ { 0x1.ffffffffffffcp-1, 0x1.85487ee3ea735p-48 }, ++ { 0x1.ffffffffffffcp-1, 0x1.63daf8b4b1e0cp-48 }, ++ { 0x1.ffffffffffffdp-1, 0x1.45421e69a6ca1p-48 }, ++ { 0x1.ffffffffffffdp-1, 0x1.294175802d99ap-48 }, ++ { 0x1.ffffffffffffdp-1, 0x1.0fa17bf41068fp-48 }, ++ { 0x1.ffffffffffffdp-1, 0x1.f05e82aae2bb9p-49 }, ++ { 0x1.ffffffffffffep-1, 0x1.c578101b29058p-49 }, ++ { 0x1.ffffffffffffep-1, 0x1.9e39dc5dd2f7cp-49 }, ++ { 0x1.ffffffffffffep-1, 0x1.7a553a728bbf2p-49 }, ++ { 0x1.ffffffffffffep-1, 0x1.5982008db1304p-49 }, ++ { 0x1.ffffffffffffep-1, 0x1.3b7e00422e51bp-49 }, ++ { 0x1.ffffffffffffep-1, 0x1.200c898d9ee3ep-49 }, ++ { 0x1.fffffffffffffp-1, 0x1.06f5f7eb65a56p-49 }, ++ { 0x1.fffffffffffffp-1, 0x1.e00e9148a1d25p-50 }, ++ { 0x1.fffffffffffffp-1, 0x1.b623734024e92p-50 }, ++ { 0x1.fffffffffffffp-1, 0x1.8fd4e01891bf8p-50 }, ++ { 0x1.fffffffffffffp-1, 0x1.6cd44c7470d89p-50 }, ++ { 0x1.fffffffffffffp-1, 0x1.4cd9c04158cd7p-50 }, ++ { 0x1.fffffffffffffp-1, 0x1.2fa34bf5c8344p-50 }, ++ { 0x1.fffffffffffffp-1, 0x1.14f4890ff2461p-50 }, ++ { 0x1.fffffffffffffp-1, 0x1.f92c49dfa4df5p-51 }, ++ { 0x1.fffffffffffffp-1, 0x1.ccaaea71ab0dfp-51 }, ++ { 0x1.fffffffffffffp-1, 0x1.a40829f001197p-51 }, ++ { 0x1.0000000000000p+0, 0x1.7eef13b59e96cp-51 }, ++ { 0x1.0000000000000p+0, 0x1.5d11e1a252bf5p-51 }, ++ { 0x1.0000000000000p+0, 0x1.3e296303b2297p-51 }, ++ { 0x1.0000000000000p+0, 0x1.21f47009f43cep-51 }, ++ { 0x1.0000000000000p+0, 0x1.083768c5e4541p-51 }, ++ { 0x1.0000000000000p+0, 0x1.e1777d831265ep-52 }, ++ { 0x1.0000000000000p+0, 0x1.b69f10b0191b5p-52 }, ++ { 0x1.0000000000000p+0, 0x1.8f8a3a05b5b52p-52 }, ++ { 0x1.0000000000000p+0, 0x1.6be573c40c8e7p-52 }, ++ { 0x1.0000000000000p+0, 0x1.4b645ba991fdbp-52 }, ++ { 0x1.0000000000000p+0, 0x1.2dc119095729fp-52 }, ++ }, ++}; +diff --git a/sysdeps/aarch64/fpu/erf_sve.c b/sysdeps/aarch64/fpu/erf_sve.c +new file mode 100644 +index 0000000000000000..7d51417406e9d9d3 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/erf_sve.c +@@ -0,0 +1,115 @@ ++/* Double-precision vector (SVE) erf function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "sv_math.h" ++ ++static const struct data ++{ ++ double third; ++ double tenth, two_over_five, two_over_fifteen; ++ double two_over_nine, two_over_fortyfive; ++ double max, shift; ++} data = { ++ .third = 0x1.5555555555556p-2, /* used to compute 2/3 and 1/6 too. */ ++ .two_over_fifteen = 0x1.1111111111111p-3, ++ .tenth = -0x1.999999999999ap-4, ++ .two_over_five = -0x1.999999999999ap-2, ++ .two_over_nine = -0x1.c71c71c71c71cp-3, ++ .two_over_fortyfive = 0x1.6c16c16c16c17p-5, ++ .max = 5.9921875, /* 6 - 1/128. */ ++ .shift = 0x1p45, ++}; ++ ++#define SignMask (0x8000000000000000) ++ ++/* Double-precision implementation of vector erf(x). ++ Approximation based on series expansion near x rounded to ++ nearest multiple of 1/128. ++ Let d = x - r, and scale = 2 / sqrt(pi) * exp(-r^2). For x near r, ++ erf(x) ~ erf(r) + scale * d * [ ++ + 1 ++ - r d ++ + 1/3 (2 r^2 - 1) d^2 ++ - 1/6 (r (2 r^2 - 3)) d^3 ++ + 1/30 (4 r^4 - 12 r^2 + 3) d^4 ++ - 1/90 (4 r^4 - 20 r^2 + 15) d^5 ++ ] ++ ++ Maximum measure error: 2.29 ULP ++ _ZGVsMxv_erf(-0x1.00003c924e5d1p-8) got -0x1.20dd59132ebadp-8 ++ want -0x1.20dd59132ebafp-8. */ ++svfloat64_t SV_NAME_D1 (erf) (svfloat64_t x, const svbool_t pg) ++{ ++ const struct data *dat = ptr_barrier (&data); ++ ++ /* |x| >= 6.0 - 1/128. Opposite conditions except none of them catch NaNs so ++ they can be used in lookup and BSLs to yield the expected results. */ ++ svbool_t a_ge_max = svacge (pg, x, dat->max); ++ svbool_t a_lt_max = svaclt (pg, x, dat->max); ++ ++ /* Set r to multiple of 1/128 nearest to |x|. */ ++ svfloat64_t a = svabs_x (pg, x); ++ svfloat64_t shift = sv_f64 (dat->shift); ++ svfloat64_t z = svadd_x (pg, a, shift); ++ svuint64_t i ++ = svsub_x (pg, svreinterpret_u64 (z), svreinterpret_u64 (shift)); ++ ++ /* Lookup without shortcut for small values but with predicate to avoid ++ segfault for large values and NaNs. */ ++ svfloat64_t r = svsub_x (pg, z, shift); ++ svfloat64_t erfr = svld1_gather_index (a_lt_max, __sv_erf_data.erf, i); ++ svfloat64_t scale = svld1_gather_index (a_lt_max, __sv_erf_data.scale, i); ++ ++ /* erf(x) ~ erf(r) + scale * d * poly (r, d). */ ++ svfloat64_t d = svsub_x (pg, a, r); ++ svfloat64_t d2 = svmul_x (pg, d, d); ++ svfloat64_t r2 = svmul_x (pg, r, r); ++ ++ /* poly (d, r) = 1 + p1(r) * d + p2(r) * d^2 + ... + p5(r) * d^5. */ ++ svfloat64_t p1 = r; ++ svfloat64_t third = sv_f64 (dat->third); ++ svfloat64_t twothird = svmul_x (pg, third, 2.0); ++ svfloat64_t sixth = svmul_x (pg, third, 0.5); ++ svfloat64_t p2 = svmls_x (pg, third, r2, twothird); ++ svfloat64_t p3 = svmad_x (pg, r2, third, -0.5); ++ p3 = svmul_x (pg, r, p3); ++ svfloat64_t p4 ++ = svmla_x (pg, sv_f64 (dat->two_over_five), r2, dat->two_over_fifteen); ++ p4 = svmls_x (pg, sv_f64 (dat->tenth), r2, p4); ++ svfloat64_t p5 ++ = svmla_x (pg, sv_f64 (dat->two_over_nine), r2, dat->two_over_fortyfive); ++ p5 = svmla_x (pg, sixth, r2, p5); ++ p5 = svmul_x (pg, r, p5); ++ ++ svfloat64_t p34 = svmla_x (pg, p3, d, p4); ++ svfloat64_t p12 = svmla_x (pg, p1, d, p2); ++ svfloat64_t y = svmla_x (pg, p34, d2, p5); ++ y = svmla_x (pg, p12, d2, y); ++ ++ y = svmla_x (pg, erfr, scale, svmls_x (pg, d, d2, y)); ++ ++ /* Solves the |x| = inf and NaN cases. */ ++ y = svsel (a_ge_max, sv_f64 (1.0), y); ++ ++ /* Copy sign. */ ++ svuint64_t ix = svreinterpret_u64 (x); ++ svuint64_t iy = svreinterpret_u64 (y); ++ svuint64_t sign = svand_x (pg, ix, SignMask); ++ return svreinterpret_f64 (svorr_x (pg, sign, iy)); ++} +diff --git a/sysdeps/aarch64/fpu/erff_advsimd.c b/sysdeps/aarch64/fpu/erff_advsimd.c +new file mode 100644 +index 0000000000000000..c44644a71cffbb62 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/erff_advsimd.c +@@ -0,0 +1,123 @@ ++/* Single-precision vector (Advanced SIMD) erf function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_math.h" ++ ++static const struct data ++{ ++ float32x4_t max, shift, third; ++#if WANT_SIMD_EXCEPT ++ float32x4_t tiny_bound, scale_minus_one; ++#endif ++} data = { ++ .max = V4 (3.9375), /* 4 - 8/128. */ ++ .shift = V4 (0x1p16f), ++ .third = V4 (0x1.555556p-2f), /* 1/3. */ ++#if WANT_SIMD_EXCEPT ++ .tiny_bound = V4 (0x1p-62f), ++ .scale_minus_one = V4 (0x1.06eba8p-3f), /* scale - 1.0. */ ++#endif ++}; ++ ++#define AbsMask 0x7fffffff ++ ++struct entry ++{ ++ float32x4_t erf; ++ float32x4_t scale; ++}; ++ ++static inline struct entry ++lookup (uint32x4_t i) ++{ ++ struct entry e; ++ float64_t t0 = *((float64_t *) (__erff_data.tab + i[0])); ++ float64_t t1 = *((float64_t *) (__erff_data.tab + i[1])); ++ float64_t t2 = *((float64_t *) (__erff_data.tab + i[2])); ++ float64_t t3 = *((float64_t *) (__erff_data.tab + i[3])); ++ float32x4_t e1 = vreinterpretq_f32_f64 ((float64x2_t){ t0, t1 }); ++ float32x4_t e2 = vreinterpretq_f32_f64 ((float64x2_t){ t2, t3 }); ++ e.erf = vuzp1q_f32 (e1, e2); ++ e.scale = vuzp2q_f32 (e1, e2); ++ return e; ++} ++ ++/* Single-precision implementation of vector erf(x). ++ Approximation based on series expansion near x rounded to ++ nearest multiple of 1/128. ++ Let d = x - r, and scale = 2 / sqrt(pi) * exp(-r^2). For x near r, ++ ++ erf(x) ~ erf(r) + scale * d * [1 - r * d - 1/3 * d^2] ++ ++ Values of erf(r) and scale are read from lookup tables. ++ For |x| > 3.9375, erf(|x|) rounds to 1.0f. ++ ++ Maximum error: 1.93 ULP ++ _ZGVnN4v_erff(0x1.c373e6p-9) got 0x1.fd686cp-9 ++ want 0x1.fd6868p-9. */ ++float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (erf) (float32x4_t x) ++{ ++ const struct data *dat = ptr_barrier (&data); ++ ++#if WANT_SIMD_EXCEPT ++ /* |x| < 2^-62. */ ++ uint32x4_t cmp = vcaltq_f32 (x, dat->tiny_bound); ++ float32x4_t xm = x; ++ /* If any lanes are special, mask them with 1 and retain a copy of x to allow ++ special case handler to fix special lanes later. This is only necessary if ++ fenv exceptions are to be triggered correctly. */ ++ if (__glibc_unlikely (v_any_u32 (cmp))) ++ x = vbslq_f32 (cmp, v_f32 (1), x); ++#endif ++ ++ float32x4_t a = vabsq_f32 (x); ++ uint32x4_t a_gt_max = vcgtq_f32 (a, dat->max); ++ ++ /* Lookup erf(r) and scale(r) in tables, e.g. set erf(r) to 0 and scale to ++ 2/sqrt(pi), when x reduced to r = 0. */ ++ float32x4_t shift = dat->shift; ++ float32x4_t z = vaddq_f32 (a, shift); ++ ++ uint32x4_t i ++ = vsubq_u32 (vreinterpretq_u32_f32 (z), vreinterpretq_u32_f32 (shift)); ++ i = vminq_u32 (i, v_u32 (512)); ++ struct entry e = lookup (i); ++ ++ float32x4_t r = vsubq_f32 (z, shift); ++ ++ /* erf(x) ~ erf(r) + scale * d * (1 - r * d - 1/3 * d^2). */ ++ float32x4_t d = vsubq_f32 (a, r); ++ float32x4_t d2 = vmulq_f32 (d, d); ++ float32x4_t y = vfmaq_f32 (r, dat->third, d); ++ y = vfmaq_f32 (e.erf, e.scale, vfmsq_f32 (d, d2, y)); ++ ++ /* Solves the |x| = inf case. */ ++ y = vbslq_f32 (a_gt_max, v_f32 (1.0f), y); ++ ++ /* Copy sign. */ ++ y = vbslq_f32 (v_u32 (AbsMask), y, x); ++ ++#if WANT_SIMD_EXCEPT ++ if (__glibc_unlikely (v_any_u32 (cmp))) ++ return vbslq_f32 (cmp, vfmaq_f32 (xm, dat->scale_minus_one, xm), y); ++#endif ++ return y; ++} ++libmvec_hidden_def (V_NAME_F1 (erf)) ++HALF_WIDTH_ALIAS_F1 (erf) +diff --git a/sysdeps/aarch64/fpu/erff_data.c b/sysdeps/aarch64/fpu/erff_data.c +new file mode 100644 +index 0000000000000000..9a32940915c3a838 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/erff_data.c +@@ -0,0 +1,544 @@ ++/* Table for Advanced SIMD erff approximation ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "vecmath_config.h" ++ ++/* Lookup table used in erff. ++ For each possible rounded input r (multiples of 1/128), between ++ r = 0.0 and r = 4.0 (513 values): ++ - the first entry __erff_data.tab.erf contains the values of erf(r), ++ - the second entry __erff_data.tab.scale contains the values of ++ 2/sqrt(pi)*exp(-r^2). Note that indices 0 and 1 are never hit by the ++ algorithm, since lookup is performed only for x >= 1/64-1/512. */ ++const struct erff_data __erff_data = { ++ .tab = { { 0x0.000000p+0, 0x1.20dd76p+0 }, ++ { 0x1.20dbf4p-7, 0x1.20d8f2p+0 }, ++ { 0x1.20d770p-6, 0x1.20cb68p+0 }, ++ { 0x1.b137e0p-6, 0x1.20b4d8p+0 }, ++ { 0x1.20c564p-5, 0x1.209546p+0 }, ++ { 0x1.68e5d4p-5, 0x1.206cb4p+0 }, ++ { 0x1.b0fafep-5, 0x1.203b26p+0 }, ++ { 0x1.f902a8p-5, 0x1.2000a0p+0 }, ++ { 0x1.207d48p-4, 0x1.1fbd28p+0 }, ++ { 0x1.44703ep-4, 0x1.1f70c4p+0 }, ++ { 0x1.68591ap-4, 0x1.1f1b7ap+0 }, ++ { 0x1.8c36bep-4, 0x1.1ebd56p+0 }, ++ { 0x1.b00812p-4, 0x1.1e565cp+0 }, ++ { 0x1.d3cbf8p-4, 0x1.1de698p+0 }, ++ { 0x1.f7815ap-4, 0x1.1d6e14p+0 }, ++ { 0x1.0d9390p-3, 0x1.1cecdcp+0 }, ++ { 0x1.1f5e1ap-3, 0x1.1c62fap+0 }, ++ { 0x1.311fc2p-3, 0x1.1bd07cp+0 }, ++ { 0x1.42d7fcp-3, 0x1.1b3572p+0 }, ++ { 0x1.548642p-3, 0x1.1a91e6p+0 }, ++ { 0x1.662a0cp-3, 0x1.19e5eap+0 }, ++ { 0x1.77c2d2p-3, 0x1.19318cp+0 }, ++ { 0x1.895010p-3, 0x1.1874dep+0 }, ++ { 0x1.9ad142p-3, 0x1.17aff0p+0 }, ++ { 0x1.ac45e4p-3, 0x1.16e2d8p+0 }, ++ { 0x1.bdad72p-3, 0x1.160da4p+0 }, ++ { 0x1.cf076ep-3, 0x1.153068p+0 }, ++ { 0x1.e05354p-3, 0x1.144b3cp+0 }, ++ { 0x1.f190aap-3, 0x1.135e30p+0 }, ++ { 0x1.015f78p-2, 0x1.12695ep+0 }, ++ { 0x1.09eed6p-2, 0x1.116cd8p+0 }, ++ { 0x1.127632p-2, 0x1.1068bap+0 }, ++ { 0x1.1af54ep-2, 0x1.0f5d16p+0 }, ++ { 0x1.236bf0p-2, 0x1.0e4a08p+0 }, ++ { 0x1.2bd9dcp-2, 0x1.0d2fa6p+0 }, ++ { 0x1.343ed6p-2, 0x1.0c0e0ap+0 }, ++ { 0x1.3c9aa8p-2, 0x1.0ae550p+0 }, ++ { 0x1.44ed18p-2, 0x1.09b590p+0 }, ++ { 0x1.4d35f0p-2, 0x1.087ee4p+0 }, ++ { 0x1.5574f4p-2, 0x1.07416cp+0 }, ++ { 0x1.5da9f4p-2, 0x1.05fd3ep+0 }, ++ { 0x1.65d4b8p-2, 0x1.04b27cp+0 }, ++ { 0x1.6df50ap-2, 0x1.036140p+0 }, ++ { 0x1.760abap-2, 0x1.0209a6p+0 }, ++ { 0x1.7e1594p-2, 0x1.00abd0p+0 }, ++ { 0x1.861566p-2, 0x1.fe8fb0p-1 }, ++ { 0x1.8e0a02p-2, 0x1.fbbbbep-1 }, ++ { 0x1.95f336p-2, 0x1.f8dc0ap-1 }, ++ { 0x1.9dd0d2p-2, 0x1.f5f0cep-1 }, ++ { 0x1.a5a2acp-2, 0x1.f2fa4cp-1 }, ++ { 0x1.ad6896p-2, 0x1.eff8c4p-1 }, ++ { 0x1.b52264p-2, 0x1.ecec78p-1 }, ++ { 0x1.bccfecp-2, 0x1.e9d5a8p-1 }, ++ { 0x1.c47104p-2, 0x1.e6b498p-1 }, ++ { 0x1.cc0584p-2, 0x1.e38988p-1 }, ++ { 0x1.d38d44p-2, 0x1.e054bep-1 }, ++ { 0x1.db081cp-2, 0x1.dd167cp-1 }, ++ { 0x1.e275eap-2, 0x1.d9cf06p-1 }, ++ { 0x1.e9d68ap-2, 0x1.d67ea2p-1 }, ++ { 0x1.f129d4p-2, 0x1.d32592p-1 }, ++ { 0x1.f86faap-2, 0x1.cfc41ep-1 }, ++ { 0x1.ffa7eap-2, 0x1.cc5a8ap-1 }, ++ { 0x1.03693ap-1, 0x1.c8e91cp-1 }, ++ { 0x1.06f794p-1, 0x1.c5701ap-1 }, ++ { 0x1.0a7ef6p-1, 0x1.c1efcap-1 }, ++ { 0x1.0dff50p-1, 0x1.be6872p-1 }, ++ { 0x1.117894p-1, 0x1.bada5ap-1 }, ++ { 0x1.14eab4p-1, 0x1.b745c6p-1 }, ++ { 0x1.1855a6p-1, 0x1.b3aafcp-1 }, ++ { 0x1.1bb95cp-1, 0x1.b00a46p-1 }, ++ { 0x1.1f15ccp-1, 0x1.ac63e8p-1 }, ++ { 0x1.226ae8p-1, 0x1.a8b828p-1 }, ++ { 0x1.25b8a8p-1, 0x1.a5074ep-1 }, ++ { 0x1.28ff02p-1, 0x1.a1519ep-1 }, ++ { 0x1.2c3decp-1, 0x1.9d9762p-1 }, ++ { 0x1.2f755cp-1, 0x1.99d8dap-1 }, ++ { 0x1.32a54cp-1, 0x1.961650p-1 }, ++ { 0x1.35cdb4p-1, 0x1.925008p-1 }, ++ { 0x1.38ee8ap-1, 0x1.8e8646p-1 }, ++ { 0x1.3c07cap-1, 0x1.8ab950p-1 }, ++ { 0x1.3f196ep-1, 0x1.86e96ap-1 }, ++ { 0x1.42236ep-1, 0x1.8316d6p-1 }, ++ { 0x1.4525c8p-1, 0x1.7f41dcp-1 }, ++ { 0x1.482074p-1, 0x1.7b6abcp-1 }, ++ { 0x1.4b1372p-1, 0x1.7791b8p-1 }, ++ { 0x1.4dfebap-1, 0x1.73b714p-1 }, ++ { 0x1.50e24cp-1, 0x1.6fdb12p-1 }, ++ { 0x1.53be26p-1, 0x1.6bfdf0p-1 }, ++ { 0x1.569244p-1, 0x1.681ff2p-1 }, ++ { 0x1.595ea6p-1, 0x1.644156p-1 }, ++ { 0x1.5c2348p-1, 0x1.60625cp-1 }, ++ { 0x1.5ee02ep-1, 0x1.5c8342p-1 }, ++ { 0x1.619556p-1, 0x1.58a446p-1 }, ++ { 0x1.6442c0p-1, 0x1.54c5a6p-1 }, ++ { 0x1.66e86ep-1, 0x1.50e79ep-1 }, ++ { 0x1.69865ep-1, 0x1.4d0a68p-1 }, ++ { 0x1.6c1c98p-1, 0x1.492e42p-1 }, ++ { 0x1.6eab18p-1, 0x1.455366p-1 }, ++ { 0x1.7131e6p-1, 0x1.417a0cp-1 }, ++ { 0x1.73b102p-1, 0x1.3da26ep-1 }, ++ { 0x1.762870p-1, 0x1.39ccc2p-1 }, ++ { 0x1.789836p-1, 0x1.35f940p-1 }, ++ { 0x1.7b0058p-1, 0x1.32281ep-1 }, ++ { 0x1.7d60d8p-1, 0x1.2e5992p-1 }, ++ { 0x1.7fb9c0p-1, 0x1.2a8dcep-1 }, ++ { 0x1.820b12p-1, 0x1.26c508p-1 }, ++ { 0x1.8454d6p-1, 0x1.22ff72p-1 }, ++ { 0x1.869712p-1, 0x1.1f3d3cp-1 }, ++ { 0x1.88d1cep-1, 0x1.1b7e98p-1 }, ++ { 0x1.8b050ep-1, 0x1.17c3b6p-1 }, ++ { 0x1.8d30dep-1, 0x1.140cc4p-1 }, ++ { 0x1.8f5544p-1, 0x1.1059eep-1 }, ++ { 0x1.91724ap-1, 0x1.0cab62p-1 }, ++ { 0x1.9387f6p-1, 0x1.09014cp-1 }, ++ { 0x1.959652p-1, 0x1.055bd6p-1 }, ++ { 0x1.979d68p-1, 0x1.01bb2cp-1 }, ++ { 0x1.999d42p-1, 0x1.fc3ee6p-2 }, ++ { 0x1.9b95e8p-1, 0x1.f511aap-2 }, ++ { 0x1.9d8768p-1, 0x1.edeeeep-2 }, ++ { 0x1.9f71cap-1, 0x1.e6d700p-2 }, ++ { 0x1.a1551ap-1, 0x1.dfca26p-2 }, ++ { 0x1.a33162p-1, 0x1.d8c8aap-2 }, ++ { 0x1.a506b0p-1, 0x1.d1d2d0p-2 }, ++ { 0x1.a6d50cp-1, 0x1.cae8dap-2 }, ++ { 0x1.a89c86p-1, 0x1.c40b08p-2 }, ++ { 0x1.aa5d26p-1, 0x1.bd3998p-2 }, ++ { 0x1.ac16fcp-1, 0x1.b674c8p-2 }, ++ { 0x1.adca14p-1, 0x1.afbcd4p-2 }, ++ { 0x1.af767ap-1, 0x1.a911f0p-2 }, ++ { 0x1.b11c3cp-1, 0x1.a27456p-2 }, ++ { 0x1.b2bb68p-1, 0x1.9be438p-2 }, ++ { 0x1.b4540ap-1, 0x1.9561c8p-2 }, ++ { 0x1.b5e630p-1, 0x1.8eed36p-2 }, ++ { 0x1.b771e8p-1, 0x1.8886b2p-2 }, ++ { 0x1.b8f742p-1, 0x1.822e66p-2 }, ++ { 0x1.ba764ap-1, 0x1.7be47ap-2 }, ++ { 0x1.bbef10p-1, 0x1.75a91ap-2 }, ++ { 0x1.bd61a2p-1, 0x1.6f7c6ap-2 }, ++ { 0x1.bece0ep-1, 0x1.695e8cp-2 }, ++ { 0x1.c03464p-1, 0x1.634fa6p-2 }, ++ { 0x1.c194b2p-1, 0x1.5d4fd4p-2 }, ++ { 0x1.c2ef08p-1, 0x1.575f34p-2 }, ++ { 0x1.c44376p-1, 0x1.517de6p-2 }, ++ { 0x1.c5920ap-1, 0x1.4bac00p-2 }, ++ { 0x1.c6dad2p-1, 0x1.45e99cp-2 }, ++ { 0x1.c81de2p-1, 0x1.4036d0p-2 }, ++ { 0x1.c95b46p-1, 0x1.3a93b2p-2 }, ++ { 0x1.ca930ep-1, 0x1.350052p-2 }, ++ { 0x1.cbc54cp-1, 0x1.2f7cc4p-2 }, ++ { 0x1.ccf20cp-1, 0x1.2a0916p-2 }, ++ { 0x1.ce1962p-1, 0x1.24a554p-2 }, ++ { 0x1.cf3b5cp-1, 0x1.1f518ap-2 }, ++ { 0x1.d0580cp-1, 0x1.1a0dc6p-2 }, ++ { 0x1.d16f7ep-1, 0x1.14da0ap-2 }, ++ { 0x1.d281c4p-1, 0x1.0fb662p-2 }, ++ { 0x1.d38ef0p-1, 0x1.0aa2d0p-2 }, ++ { 0x1.d49710p-1, 0x1.059f5ap-2 }, ++ { 0x1.d59a34p-1, 0x1.00ac00p-2 }, ++ { 0x1.d6986cp-1, 0x1.f79184p-3 }, ++ { 0x1.d791cap-1, 0x1.edeb40p-3 }, ++ { 0x1.d8865ep-1, 0x1.e46530p-3 }, ++ { 0x1.d97636p-1, 0x1.daff4ap-3 }, ++ { 0x1.da6162p-1, 0x1.d1b982p-3 }, ++ { 0x1.db47f4p-1, 0x1.c893cep-3 }, ++ { 0x1.dc29fcp-1, 0x1.bf8e1cp-3 }, ++ { 0x1.dd0788p-1, 0x1.b6a856p-3 }, ++ { 0x1.dde0aap-1, 0x1.ade26cp-3 }, ++ { 0x1.deb570p-1, 0x1.a53c42p-3 }, ++ { 0x1.df85eap-1, 0x1.9cb5bep-3 }, ++ { 0x1.e0522ap-1, 0x1.944ec2p-3 }, ++ { 0x1.e11a3ep-1, 0x1.8c0732p-3 }, ++ { 0x1.e1de36p-1, 0x1.83deeap-3 }, ++ { 0x1.e29e22p-1, 0x1.7bd5c8p-3 }, ++ { 0x1.e35a12p-1, 0x1.73eba4p-3 }, ++ { 0x1.e41214p-1, 0x1.6c2056p-3 }, ++ { 0x1.e4c638p-1, 0x1.6473b6p-3 }, ++ { 0x1.e5768cp-1, 0x1.5ce596p-3 }, ++ { 0x1.e62322p-1, 0x1.5575c8p-3 }, ++ { 0x1.e6cc08p-1, 0x1.4e241ep-3 }, ++ { 0x1.e7714ap-1, 0x1.46f066p-3 }, ++ { 0x1.e812fcp-1, 0x1.3fda6cp-3 }, ++ { 0x1.e8b12ap-1, 0x1.38e1fap-3 }, ++ { 0x1.e94be4p-1, 0x1.3206dcp-3 }, ++ { 0x1.e9e336p-1, 0x1.2b48dap-3 }, ++ { 0x1.ea7730p-1, 0x1.24a7b8p-3 }, ++ { 0x1.eb07e2p-1, 0x1.1e233ep-3 }, ++ { 0x1.eb9558p-1, 0x1.17bb2cp-3 }, ++ { 0x1.ec1fa2p-1, 0x1.116f48p-3 }, ++ { 0x1.eca6ccp-1, 0x1.0b3f52p-3 }, ++ { 0x1.ed2ae6p-1, 0x1.052b0cp-3 }, ++ { 0x1.edabfcp-1, 0x1.fe6460p-4 }, ++ { 0x1.ee2a1ep-1, 0x1.f2a902p-4 }, ++ { 0x1.eea556p-1, 0x1.e72372p-4 }, ++ { 0x1.ef1db4p-1, 0x1.dbd32ap-4 }, ++ { 0x1.ef9344p-1, 0x1.d0b7a0p-4 }, ++ { 0x1.f00614p-1, 0x1.c5d04ap-4 }, ++ { 0x1.f07630p-1, 0x1.bb1c98p-4 }, ++ { 0x1.f0e3a6p-1, 0x1.b09bfcp-4 }, ++ { 0x1.f14e82p-1, 0x1.a64de6p-4 }, ++ { 0x1.f1b6d0p-1, 0x1.9c31c6p-4 }, ++ { 0x1.f21ca0p-1, 0x1.92470ap-4 }, ++ { 0x1.f27ff8p-1, 0x1.888d1ep-4 }, ++ { 0x1.f2e0eap-1, 0x1.7f036cp-4 }, ++ { 0x1.f33f7ep-1, 0x1.75a960p-4 }, ++ { 0x1.f39bc2p-1, 0x1.6c7e64p-4 }, ++ { 0x1.f3f5c2p-1, 0x1.6381e2p-4 }, ++ { 0x1.f44d88p-1, 0x1.5ab342p-4 }, ++ { 0x1.f4a31ep-1, 0x1.5211ecp-4 }, ++ { 0x1.f4f694p-1, 0x1.499d48p-4 }, ++ { 0x1.f547f2p-1, 0x1.4154bcp-4 }, ++ { 0x1.f59742p-1, 0x1.3937b2p-4 }, ++ { 0x1.f5e490p-1, 0x1.31458ep-4 }, ++ { 0x1.f62fe8p-1, 0x1.297dbap-4 }, ++ { 0x1.f67952p-1, 0x1.21df9ap-4 }, ++ { 0x1.f6c0dcp-1, 0x1.1a6a96p-4 }, ++ { 0x1.f7068cp-1, 0x1.131e14p-4 }, ++ { 0x1.f74a6ep-1, 0x1.0bf97ep-4 }, ++ { 0x1.f78c8cp-1, 0x1.04fc3ap-4 }, ++ { 0x1.f7cceep-1, 0x1.fc4b5ep-5 }, ++ { 0x1.f80ba2p-1, 0x1.eeea8cp-5 }, ++ { 0x1.f848acp-1, 0x1.e1d4d0p-5 }, ++ { 0x1.f8841ap-1, 0x1.d508fap-5 }, ++ { 0x1.f8bdf2p-1, 0x1.c885e0p-5 }, ++ { 0x1.f8f63ep-1, 0x1.bc4a54p-5 }, ++ { 0x1.f92d08p-1, 0x1.b05530p-5 }, ++ { 0x1.f96256p-1, 0x1.a4a54ap-5 }, ++ { 0x1.f99634p-1, 0x1.99397ap-5 }, ++ { 0x1.f9c8a8p-1, 0x1.8e109cp-5 }, ++ { 0x1.f9f9bap-1, 0x1.83298ep-5 }, ++ { 0x1.fa2974p-1, 0x1.78832cp-5 }, ++ { 0x1.fa57dep-1, 0x1.6e1c58p-5 }, ++ { 0x1.fa84fep-1, 0x1.63f3f6p-5 }, ++ { 0x1.fab0dep-1, 0x1.5a08e8p-5 }, ++ { 0x1.fadb84p-1, 0x1.505a18p-5 }, ++ { 0x1.fb04f6p-1, 0x1.46e66cp-5 }, ++ { 0x1.fb2d40p-1, 0x1.3dacd2p-5 }, ++ { 0x1.fb5464p-1, 0x1.34ac36p-5 }, ++ { 0x1.fb7a6cp-1, 0x1.2be38cp-5 }, ++ { 0x1.fb9f60p-1, 0x1.2351c2p-5 }, ++ { 0x1.fbc344p-1, 0x1.1af5d2p-5 }, ++ { 0x1.fbe61ep-1, 0x1.12ceb4p-5 }, ++ { 0x1.fc07fap-1, 0x1.0adb60p-5 }, ++ { 0x1.fc28d8p-1, 0x1.031ad6p-5 }, ++ { 0x1.fc48c2p-1, 0x1.f7182ap-6 }, ++ { 0x1.fc67bcp-1, 0x1.e85c44p-6 }, ++ { 0x1.fc85d0p-1, 0x1.da0006p-6 }, ++ { 0x1.fca2fep-1, 0x1.cc0180p-6 }, ++ { 0x1.fcbf52p-1, 0x1.be5ecep-6 }, ++ { 0x1.fcdaccp-1, 0x1.b1160ap-6 }, ++ { 0x1.fcf576p-1, 0x1.a4255ap-6 }, ++ { 0x1.fd0f54p-1, 0x1.978ae8p-6 }, ++ { 0x1.fd286ap-1, 0x1.8b44e6p-6 }, ++ { 0x1.fd40bep-1, 0x1.7f5188p-6 }, ++ { 0x1.fd5856p-1, 0x1.73af0cp-6 }, ++ { 0x1.fd6f34p-1, 0x1.685bb6p-6 }, ++ { 0x1.fd8562p-1, 0x1.5d55ccp-6 }, ++ { 0x1.fd9ae2p-1, 0x1.529b9ep-6 }, ++ { 0x1.fdafb8p-1, 0x1.482b84p-6 }, ++ { 0x1.fdc3e8p-1, 0x1.3e03d8p-6 }, ++ { 0x1.fdd77ap-1, 0x1.3422fep-6 }, ++ { 0x1.fdea6ep-1, 0x1.2a875cp-6 }, ++ { 0x1.fdfcccp-1, 0x1.212f62p-6 }, ++ { 0x1.fe0e96p-1, 0x1.181984p-6 }, ++ { 0x1.fe1fd0p-1, 0x1.0f443ep-6 }, ++ { 0x1.fe3080p-1, 0x1.06ae14p-6 }, ++ { 0x1.fe40a6p-1, 0x1.fcab14p-7 }, ++ { 0x1.fe504cp-1, 0x1.ec7262p-7 }, ++ { 0x1.fe5f70p-1, 0x1.dcaf36p-7 }, ++ { 0x1.fe6e18p-1, 0x1.cd5ecap-7 }, ++ { 0x1.fe7c46p-1, 0x1.be7e5ap-7 }, ++ { 0x1.fe8a00p-1, 0x1.b00b38p-7 }, ++ { 0x1.fe9748p-1, 0x1.a202bep-7 }, ++ { 0x1.fea422p-1, 0x1.94624ep-7 }, ++ { 0x1.feb090p-1, 0x1.87275ep-7 }, ++ { 0x1.febc96p-1, 0x1.7a4f6ap-7 }, ++ { 0x1.fec836p-1, 0x1.6dd7fep-7 }, ++ { 0x1.fed374p-1, 0x1.61beaep-7 }, ++ { 0x1.fede52p-1, 0x1.56011cp-7 }, ++ { 0x1.fee8d4p-1, 0x1.4a9cf6p-7 }, ++ { 0x1.fef2fep-1, 0x1.3f8ff6p-7 }, ++ { 0x1.fefccep-1, 0x1.34d7dcp-7 }, ++ { 0x1.ff064cp-1, 0x1.2a727ap-7 }, ++ { 0x1.ff0f76p-1, 0x1.205dacp-7 }, ++ { 0x1.ff1852p-1, 0x1.169756p-7 }, ++ { 0x1.ff20e0p-1, 0x1.0d1d6ap-7 }, ++ { 0x1.ff2924p-1, 0x1.03ede2p-7 }, ++ { 0x1.ff3120p-1, 0x1.f60d8ap-8 }, ++ { 0x1.ff38d6p-1, 0x1.e4cc4ap-8 }, ++ { 0x1.ff4048p-1, 0x1.d4143ap-8 }, ++ { 0x1.ff4778p-1, 0x1.c3e1a6p-8 }, ++ { 0x1.ff4e68p-1, 0x1.b430ecp-8 }, ++ { 0x1.ff551ap-1, 0x1.a4fe84p-8 }, ++ { 0x1.ff5b90p-1, 0x1.9646f4p-8 }, ++ { 0x1.ff61ccp-1, 0x1.8806d8p-8 }, ++ { 0x1.ff67d0p-1, 0x1.7a3adep-8 }, ++ { 0x1.ff6d9ep-1, 0x1.6cdfccp-8 }, ++ { 0x1.ff7338p-1, 0x1.5ff276p-8 }, ++ { 0x1.ff789ep-1, 0x1.536fc2p-8 }, ++ { 0x1.ff7dd4p-1, 0x1.4754acp-8 }, ++ { 0x1.ff82dap-1, 0x1.3b9e40p-8 }, ++ { 0x1.ff87b2p-1, 0x1.30499cp-8 }, ++ { 0x1.ff8c5cp-1, 0x1.2553eep-8 }, ++ { 0x1.ff90dcp-1, 0x1.1aba78p-8 }, ++ { 0x1.ff9532p-1, 0x1.107a8cp-8 }, ++ { 0x1.ff9960p-1, 0x1.06918cp-8 }, ++ { 0x1.ff9d68p-1, 0x1.f9f9d0p-9 }, ++ { 0x1.ffa14ap-1, 0x1.e77448p-9 }, ++ { 0x1.ffa506p-1, 0x1.d58da6p-9 }, ++ { 0x1.ffa8a0p-1, 0x1.c4412cp-9 }, ++ { 0x1.ffac18p-1, 0x1.b38a3ap-9 }, ++ { 0x1.ffaf6ep-1, 0x1.a36454p-9 }, ++ { 0x1.ffb2a6p-1, 0x1.93cb12p-9 }, ++ { 0x1.ffb5bep-1, 0x1.84ba30p-9 }, ++ { 0x1.ffb8b8p-1, 0x1.762d84p-9 }, ++ { 0x1.ffbb98p-1, 0x1.682100p-9 }, ++ { 0x1.ffbe5ap-1, 0x1.5a90b0p-9 }, ++ { 0x1.ffc102p-1, 0x1.4d78bcp-9 }, ++ { 0x1.ffc390p-1, 0x1.40d564p-9 }, ++ { 0x1.ffc606p-1, 0x1.34a306p-9 }, ++ { 0x1.ffc862p-1, 0x1.28de12p-9 }, ++ { 0x1.ffcaa8p-1, 0x1.1d8318p-9 }, ++ { 0x1.ffccd8p-1, 0x1.128ebap-9 }, ++ { 0x1.ffcef4p-1, 0x1.07fdb4p-9 }, ++ { 0x1.ffd0fap-1, 0x1.fb99b8p-10 }, ++ { 0x1.ffd2eap-1, 0x1.e7f232p-10 }, ++ { 0x1.ffd4cap-1, 0x1.d4fed8p-10 }, ++ { 0x1.ffd696p-1, 0x1.c2b9d0p-10 }, ++ { 0x1.ffd84ep-1, 0x1.b11d70p-10 }, ++ { 0x1.ffd9f8p-1, 0x1.a02436p-10 }, ++ { 0x1.ffdb90p-1, 0x1.8fc8c8p-10 }, ++ { 0x1.ffdd18p-1, 0x1.8005f0p-10 }, ++ { 0x1.ffde90p-1, 0x1.70d6a4p-10 }, ++ { 0x1.ffdffap-1, 0x1.6235fcp-10 }, ++ { 0x1.ffe154p-1, 0x1.541f34p-10 }, ++ { 0x1.ffe2a2p-1, 0x1.468daep-10 }, ++ { 0x1.ffe3e2p-1, 0x1.397ceep-10 }, ++ { 0x1.ffe514p-1, 0x1.2ce898p-10 }, ++ { 0x1.ffe63cp-1, 0x1.20cc76p-10 }, ++ { 0x1.ffe756p-1, 0x1.15246ep-10 }, ++ { 0x1.ffe866p-1, 0x1.09ec86p-10 }, ++ { 0x1.ffe96ap-1, 0x1.fe41cep-11 }, ++ { 0x1.ffea64p-1, 0x1.e97ba4p-11 }, ++ { 0x1.ffeb54p-1, 0x1.d57f52p-11 }, ++ { 0x1.ffec3ap-1, 0x1.c245d4p-11 }, ++ { 0x1.ffed16p-1, 0x1.afc85ep-11 }, ++ { 0x1.ffedeap-1, 0x1.9e0058p-11 }, ++ { 0x1.ffeeb4p-1, 0x1.8ce75ep-11 }, ++ { 0x1.ffef76p-1, 0x1.7c7744p-11 }, ++ { 0x1.fff032p-1, 0x1.6caa0ep-11 }, ++ { 0x1.fff0e4p-1, 0x1.5d79ecp-11 }, ++ { 0x1.fff18ep-1, 0x1.4ee142p-11 }, ++ { 0x1.fff232p-1, 0x1.40daa4p-11 }, ++ { 0x1.fff2d0p-1, 0x1.3360ccp-11 }, ++ { 0x1.fff366p-1, 0x1.266ea8p-11 }, ++ { 0x1.fff3f6p-1, 0x1.19ff46p-11 }, ++ { 0x1.fff480p-1, 0x1.0e0de8p-11 }, ++ { 0x1.fff504p-1, 0x1.0295f0p-11 }, ++ { 0x1.fff582p-1, 0x1.ef25d4p-12 }, ++ { 0x1.fff5fcp-1, 0x1.da0110p-12 }, ++ { 0x1.fff670p-1, 0x1.c5b542p-12 }, ++ { 0x1.fff6dep-1, 0x1.b23a5ap-12 }, ++ { 0x1.fff74ap-1, 0x1.9f8894p-12 }, ++ { 0x1.fff7aep-1, 0x1.8d986ap-12 }, ++ { 0x1.fff810p-1, 0x1.7c629ap-12 }, ++ { 0x1.fff86cp-1, 0x1.6be022p-12 }, ++ { 0x1.fff8c6p-1, 0x1.5c0a38p-12 }, ++ { 0x1.fff91cp-1, 0x1.4cda54p-12 }, ++ { 0x1.fff96cp-1, 0x1.3e4a24p-12 }, ++ { 0x1.fff9bap-1, 0x1.305390p-12 }, ++ { 0x1.fffa04p-1, 0x1.22f0b4p-12 }, ++ { 0x1.fffa4cp-1, 0x1.161be4p-12 }, ++ { 0x1.fffa90p-1, 0x1.09cfa4p-12 }, ++ { 0x1.fffad0p-1, 0x1.fc0d56p-13 }, ++ { 0x1.fffb0ep-1, 0x1.e577bcp-13 }, ++ { 0x1.fffb4ap-1, 0x1.cfd4a6p-13 }, ++ { 0x1.fffb82p-1, 0x1.bb1a96p-13 }, ++ { 0x1.fffbb8p-1, 0x1.a74068p-13 }, ++ { 0x1.fffbecp-1, 0x1.943d4ap-13 }, ++ { 0x1.fffc1ep-1, 0x1.8208bcp-13 }, ++ { 0x1.fffc4ep-1, 0x1.709a8ep-13 }, ++ { 0x1.fffc7ap-1, 0x1.5feadap-13 }, ++ { 0x1.fffca6p-1, 0x1.4ff208p-13 }, ++ { 0x1.fffccep-1, 0x1.40a8c2p-13 }, ++ { 0x1.fffcf6p-1, 0x1.3207fcp-13 }, ++ { 0x1.fffd1ap-1, 0x1.2408eap-13 }, ++ { 0x1.fffd3ep-1, 0x1.16a502p-13 }, ++ { 0x1.fffd60p-1, 0x1.09d5f8p-13 }, ++ { 0x1.fffd80p-1, 0x1.fb2b7ap-14 }, ++ { 0x1.fffda0p-1, 0x1.e3bcf4p-14 }, ++ { 0x1.fffdbep-1, 0x1.cd5528p-14 }, ++ { 0x1.fffddap-1, 0x1.b7e946p-14 }, ++ { 0x1.fffdf4p-1, 0x1.a36eecp-14 }, ++ { 0x1.fffe0ep-1, 0x1.8fdc1cp-14 }, ++ { 0x1.fffe26p-1, 0x1.7d2738p-14 }, ++ { 0x1.fffe3ep-1, 0x1.6b4702p-14 }, ++ { 0x1.fffe54p-1, 0x1.5a329cp-14 }, ++ { 0x1.fffe68p-1, 0x1.49e178p-14 }, ++ { 0x1.fffe7ep-1, 0x1.3a4b60p-14 }, ++ { 0x1.fffe90p-1, 0x1.2b6876p-14 }, ++ { 0x1.fffea2p-1, 0x1.1d3120p-14 }, ++ { 0x1.fffeb4p-1, 0x1.0f9e1cp-14 }, ++ { 0x1.fffec4p-1, 0x1.02a868p-14 }, ++ { 0x1.fffed4p-1, 0x1.ec929ap-15 }, ++ { 0x1.fffee4p-1, 0x1.d4f4b4p-15 }, ++ { 0x1.fffef2p-1, 0x1.be6abcp-15 }, ++ { 0x1.ffff00p-1, 0x1.a8e8ccp-15 }, ++ { 0x1.ffff0cp-1, 0x1.94637ep-15 }, ++ { 0x1.ffff18p-1, 0x1.80cfdcp-15 }, ++ { 0x1.ffff24p-1, 0x1.6e2368p-15 }, ++ { 0x1.ffff30p-1, 0x1.5c540cp-15 }, ++ { 0x1.ffff3ap-1, 0x1.4b581cp-15 }, ++ { 0x1.ffff44p-1, 0x1.3b2652p-15 }, ++ { 0x1.ffff4ep-1, 0x1.2bb5ccp-15 }, ++ { 0x1.ffff56p-1, 0x1.1cfe02p-15 }, ++ { 0x1.ffff60p-1, 0x1.0ef6c4p-15 }, ++ { 0x1.ffff68p-1, 0x1.019842p-15 }, ++ { 0x1.ffff70p-1, 0x1.e9b5e8p-16 }, ++ { 0x1.ffff78p-1, 0x1.d16f58p-16 }, ++ { 0x1.ffff7ep-1, 0x1.ba4f04p-16 }, ++ { 0x1.ffff84p-1, 0x1.a447b8p-16 }, ++ { 0x1.ffff8cp-1, 0x1.8f4cccp-16 }, ++ { 0x1.ffff92p-1, 0x1.7b5224p-16 }, ++ { 0x1.ffff98p-1, 0x1.684c22p-16 }, ++ { 0x1.ffff9cp-1, 0x1.562facp-16 }, ++ { 0x1.ffffa2p-1, 0x1.44f21ep-16 }, ++ { 0x1.ffffa6p-1, 0x1.34894ap-16 }, ++ { 0x1.ffffacp-1, 0x1.24eb72p-16 }, ++ { 0x1.ffffb0p-1, 0x1.160f44p-16 }, ++ { 0x1.ffffb4p-1, 0x1.07ebd2p-16 }, ++ { 0x1.ffffb8p-1, 0x1.f4f12ep-17 }, ++ { 0x1.ffffbcp-1, 0x1.db5ad0p-17 }, ++ { 0x1.ffffc0p-1, 0x1.c304f0p-17 }, ++ { 0x1.ffffc4p-1, 0x1.abe09ep-17 }, ++ { 0x1.ffffc6p-1, 0x1.95df98p-17 }, ++ { 0x1.ffffcap-1, 0x1.80f43ap-17 }, ++ { 0x1.ffffccp-1, 0x1.6d1178p-17 }, ++ { 0x1.ffffd0p-1, 0x1.5a2ae0p-17 }, ++ { 0x1.ffffd2p-1, 0x1.483488p-17 }, ++ { 0x1.ffffd4p-1, 0x1.372310p-17 }, ++ { 0x1.ffffd6p-1, 0x1.26eb9ep-17 }, ++ { 0x1.ffffd8p-1, 0x1.1783cep-17 }, ++ { 0x1.ffffdcp-1, 0x1.08e1bap-17 }, ++ { 0x1.ffffdep-1, 0x1.f5f7d8p-18 }, ++ { 0x1.ffffdep-1, 0x1.db92b6p-18 }, ++ { 0x1.ffffe0p-1, 0x1.c282cep-18 }, ++ { 0x1.ffffe2p-1, 0x1.aab7acp-18 }, ++ { 0x1.ffffe4p-1, 0x1.94219cp-18 }, ++ { 0x1.ffffe6p-1, 0x1.7eb1a2p-18 }, ++ { 0x1.ffffe8p-1, 0x1.6a5972p-18 }, ++ { 0x1.ffffe8p-1, 0x1.570b6ap-18 }, ++ { 0x1.ffffeap-1, 0x1.44ba86p-18 }, ++ { 0x1.ffffeap-1, 0x1.335a62p-18 }, ++ { 0x1.ffffecp-1, 0x1.22df2ap-18 }, ++ { 0x1.ffffeep-1, 0x1.133d96p-18 }, ++ { 0x1.ffffeep-1, 0x1.046aeap-18 }, ++ { 0x1.fffff0p-1, 0x1.ecb9d0p-19 }, ++ { 0x1.fffff0p-1, 0x1.d21398p-19 }, ++ { 0x1.fffff2p-1, 0x1.b8d094p-19 }, ++ { 0x1.fffff2p-1, 0x1.a0df10p-19 }, ++ { 0x1.fffff2p-1, 0x1.8a2e26p-19 }, ++ { 0x1.fffff4p-1, 0x1.74adc8p-19 }, ++ { 0x1.fffff4p-1, 0x1.604ea8p-19 }, ++ { 0x1.fffff4p-1, 0x1.4d0232p-19 }, ++ { 0x1.fffff6p-1, 0x1.3aba86p-19 }, ++ { 0x1.fffff6p-1, 0x1.296a70p-19 }, ++ { 0x1.fffff6p-1, 0x1.190562p-19 }, ++ { 0x1.fffff8p-1, 0x1.097f62p-19 }, ++ { 0x1.fffff8p-1, 0x1.f59a20p-20 }, ++ { 0x1.fffff8p-1, 0x1.d9c736p-20 }, ++ { 0x1.fffff8p-1, 0x1.bf716cp-20 }, ++ { 0x1.fffffap-1, 0x1.a6852cp-20 }, ++ { 0x1.fffffap-1, 0x1.8eefd8p-20 }, ++ { 0x1.fffffap-1, 0x1.789fb8p-20 }, ++ { 0x1.fffffap-1, 0x1.6383f8p-20 }, ++ { 0x1.fffffap-1, 0x1.4f8c96p-20 }, ++ { 0x1.fffffap-1, 0x1.3caa62p-20 }, ++ { 0x1.fffffcp-1, 0x1.2acee2p-20 }, ++ { 0x1.fffffcp-1, 0x1.19ec60p-20 }, ++ { 0x1.fffffcp-1, 0x1.09f5d0p-20 }, ++ { 0x1.fffffcp-1, 0x1.f5bd96p-21 }, ++ { 0x1.fffffcp-1, 0x1.d9371ep-21 }, ++ { 0x1.fffffcp-1, 0x1.be41dep-21 }, ++ { 0x1.fffffcp-1, 0x1.a4c89ep-21 }, ++ { 0x1.fffffcp-1, 0x1.8cb738p-21 }, ++ { 0x1.fffffep-1, 0x1.75fa8ep-21 }, ++ { 0x1.fffffep-1, 0x1.608078p-21 }, ++ { 0x1.fffffep-1, 0x1.4c37c0p-21 }, ++ { 0x1.fffffep-1, 0x1.39100ep-21 }, ++ { 0x1.fffffep-1, 0x1.26f9e0p-21 }, ++ { 0x1.fffffep-1, 0x1.15e682p-21 }, ++ { 0x1.fffffep-1, 0x1.05c804p-21 }, ++ { 0x1.fffffep-1, 0x1.ed2254p-22 }, ++ { 0x1.fffffep-1, 0x1.d06ad6p-22 }, ++ { 0x1.fffffep-1, 0x1.b551c8p-22 }, ++ { 0x1.fffffep-1, 0x1.9bc0a0p-22 }, ++ { 0x1.fffffep-1, 0x1.83a200p-22 }, ++ { 0x1.fffffep-1, 0x1.6ce1aap-22 }, ++ { 0x1.fffffep-1, 0x1.576c72p-22 }, ++ { 0x1.fffffep-1, 0x1.43302cp-22 }, ++ { 0x1.fffffep-1, 0x1.301ba2p-22 }, ++ { 0x1.fffffep-1, 0x1.1e1e86p-22 }, ++ { 0x1.fffffep-1, 0x1.0d2966p-22 }, ++ { 0x1.000000p+0, 0x1.fa5b50p-23 }, ++ { 0x1.000000p+0, 0x1.dc3ae4p-23 }, ++ { 0x1.000000p+0, 0x1.bfd756p-23 }, ++ { 0x1.000000p+0, 0x1.a517dap-23 }, ++ { 0x1.000000p+0, 0x1.8be4f8p-23 }, ++ { 0x1.000000p+0, 0x1.74287ep-23 }, ++ { 0x1.000000p+0, 0x1.5dcd66p-23 }, ++ { 0x1.000000p+0, 0x1.48bfd4p-23 }, ++ { 0x1.000000p+0, 0x1.34ecf8p-23 }, ++ { 0x1.000000p+0, 0x1.224310p-23 }, ++ { 0x1.000000p+0, 0x1.10b148p-23 }, ++ }, ++}; +diff --git a/sysdeps/aarch64/fpu/erff_sve.c b/sysdeps/aarch64/fpu/erff_sve.c +new file mode 100644 +index 0000000000000000..38f00db9be7424d3 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/erff_sve.c +@@ -0,0 +1,93 @@ ++/* Single-precision vector (SVE) erf function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "sv_math.h" ++ ++static const struct data ++{ ++ float min, max, scale, shift, third; ++} data = { ++ .min = 0x1.cp-7f, /* 1/64 - 1/512. */ ++ .max = 3.9375, /* 4 - 8/128. */ ++ .scale = 0x1.20dd76p+0f, /* 2/sqrt(pi). */ ++ .shift = 0x1p16f, ++ .third = 0x1.555556p-2f, /* 1/3. */ ++}; ++ ++#define SignMask (0x80000000) ++ ++/* Single-precision implementation of vector erf(x). ++ Approximation based on series expansion near x rounded to ++ nearest multiple of 1/128. ++ Let d = x - r, and scale = 2 / sqrt(pi) * exp(-r^2). For x near r, ++ ++ erf(x) ~ erf(r) + scale * d * [1 - r * d - 1/3 * d^2] ++ ++ Values of erf(r) and scale are read from lookup tables. ++ For |x| < 0x1.cp-7, the algorithm sets r = 0, erf(r) = 0, and scale = 2 / ++ sqrt(pi), so it simply boils down to a Taylor series expansion near 0. For ++ |x| > 3.9375, erf(|x|) rounds to 1.0f. ++ ++ Maximum error on each interval: ++ - [0, 0x1.cp-7]: 1.93 ULP ++ _ZGVsMxv_erff(0x1.c373e6p-9) got 0x1.fd686cp-9 want 0x1.fd6868p-9 ++ - [0x1.cp-7, 4.0]: 1.26 ULP ++ _ZGVsMxv_erff(0x1.1d002ep+0) got 0x1.c4eb9ap-1 want 0x1.c4eb98p-1. */ ++svfloat32_t SV_NAME_F1 (erf) (svfloat32_t x, const svbool_t pg) ++{ ++ const struct data *dat = ptr_barrier (&data); ++ ++ /* |x| > 1/64 - 1/512. */ ++ svbool_t a_gt_min = svacgt (pg, x, dat->min); ++ ++ /* |x| >= 4.0 - 8/128. */ ++ svbool_t a_ge_max = svacge (pg, x, dat->max); ++ svfloat32_t a = svabs_x (pg, x); ++ ++ svfloat32_t shift = sv_f32 (dat->shift); ++ svfloat32_t z = svadd_x (pg, a, shift); ++ svuint32_t i ++ = svsub_x (pg, svreinterpret_u32 (z), svreinterpret_u32 (shift)); ++ ++ /* Saturate lookup index. */ ++ i = svsel (a_ge_max, sv_u32 (512), i); ++ ++ /* r and erf(r) set to 0 for |x| below min. */ ++ svfloat32_t r = svsub_z (a_gt_min, z, shift); ++ svfloat32_t erfr = svld1_gather_index (a_gt_min, __sv_erff_data.erf, i); ++ ++ /* scale set to 2/sqrt(pi) for |x| below min. */ ++ svfloat32_t scale = svld1_gather_index (a_gt_min, __sv_erff_data.scale, i); ++ scale = svsel (a_gt_min, scale, sv_f32 (dat->scale)); ++ ++ /* erf(x) ~ erf(r) + scale * d * (1 - r * d + 1/3 * d^2). */ ++ svfloat32_t d = svsub_x (pg, a, r); ++ svfloat32_t d2 = svmul_x (pg, d, d); ++ svfloat32_t y = svmla_x (pg, r, d, dat->third); ++ y = svmla_x (pg, erfr, scale, svmls_x (pg, d, d2, y)); ++ ++ /* Solves the |x| = inf case. */ ++ y = svsel (a_ge_max, sv_f32 (1.0f), y); ++ ++ /* Copy sign. */ ++ svuint32_t ix = svreinterpret_u32 (x); ++ svuint32_t iy = svreinterpret_u32 (y); ++ svuint32_t sign = svand_x (pg, ix, SignMask); ++ return svreinterpret_f32 (svorr_x (pg, sign, iy)); ++} +diff --git a/sysdeps/aarch64/fpu/sv_erf_data.c b/sysdeps/aarch64/fpu/sv_erf_data.c +new file mode 100644 +index 0000000000000000..a53878f893e0d683 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/sv_erf_data.c +@@ -0,0 +1,1570 @@ ++/* Table for SVE erf approximation ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "vecmath_config.h" ++ ++/* Lookup table used in vector erf. ++ For each possible rounded input r (multiples of 1/128), between ++ r = 0.0 and r = 6.0 (769 values): ++ - the first entry __erf_data.tab.erf contains the values of erf(r), ++ - the second entry __erf_data.tab.scale contains the values of ++ 2/sqrt(pi)*exp(-r^2). Note that indices 0 and 1 are never hit by the ++ algorithm, since lookup is performed only for x >= 1/64-1/512. */ ++const struct sv_erf_data __sv_erf_data = { ++ .erf = { 0x0.0000000000000p+0, ++ 0x1.20dbf3deb1340p-7, ++ 0x1.20d77083f17a0p-6, ++ 0x1.b137e0cf584dcp-6, ++ 0x1.20c5645dd2538p-5, ++ 0x1.68e5d3bbc9526p-5, ++ 0x1.b0fafef135745p-5, ++ 0x1.f902a77bd3821p-5, ++ 0x1.207d480e90658p-4, ++ 0x1.44703e87e8593p-4, ++ 0x1.68591a1e83b5dp-4, ++ 0x1.8c36beb8a8d23p-4, ++ 0x1.b0081148a873ap-4, ++ 0x1.d3cbf7e70a4b3p-4, ++ 0x1.f78159ec8bb50p-4, ++ 0x1.0d939005f65e5p-3, ++ 0x1.1f5e1a35c3b89p-3, ++ 0x1.311fc15f56d14p-3, ++ 0x1.42d7fc2f64959p-3, ++ 0x1.548642321d7c6p-3, ++ 0x1.662a0bdf7a89fp-3, ++ 0x1.77c2d2a765f9ep-3, ++ 0x1.895010fdbdbfdp-3, ++ 0x1.9ad142662e14dp-3, ++ 0x1.ac45e37fe2526p-3, ++ 0x1.bdad72110a648p-3, ++ 0x1.cf076d1233237p-3, ++ 0x1.e05354b96ff36p-3, ++ 0x1.f190aa85540e2p-3, ++ 0x1.015f78a3dcf3dp-2, ++ 0x1.09eed6982b948p-2, ++ 0x1.127631eb8de32p-2, ++ 0x1.1af54e232d609p-2, ++ 0x1.236bef825d9a2p-2, ++ 0x1.2bd9db0f7827fp-2, ++ 0x1.343ed6989b7d9p-2, ++ 0x1.3c9aa8b84bedap-2, ++ 0x1.44ed18d9f6462p-2, ++ 0x1.4d35ef3e5372ep-2, ++ 0x1.5574f4ffac98ep-2, ++ 0x1.5da9f415ff23fp-2, ++ 0x1.65d4b75b00471p-2, ++ 0x1.6df50a8dff772p-2, ++ 0x1.760aba57a76bfp-2, ++ 0x1.7e15944d9d3e4p-2, ++ 0x1.861566f5fd3c0p-2, ++ 0x1.8e0a01cab516bp-2, ++ 0x1.95f3353cbb146p-2, ++ 0x1.9dd0d2b721f39p-2, ++ 0x1.a5a2aca209394p-2, ++ 0x1.ad68966569a87p-2, ++ 0x1.b522646bbda68p-2, ++ 0x1.bccfec24855b8p-2, ++ 0x1.c4710406a65fcp-2, ++ 0x1.cc058392a6d2dp-2, ++ 0x1.d38d4354c3bd0p-2, ++ 0x1.db081ce6e2a48p-2, ++ 0x1.e275eaf25e458p-2, ++ 0x1.e9d68931ae650p-2, ++ 0x1.f129d471eabb1p-2, ++ 0x1.f86faa9428f9dp-2, ++ 0x1.ffa7ea8eb5fd0p-2, ++ 0x1.03693a371519cp-1, ++ 0x1.06f794ab2cae7p-1, ++ 0x1.0a7ef5c18edd2p-1, ++ 0x1.0dff4f247f6c6p-1, ++ 0x1.1178930ada115p-1, ++ 0x1.14eab43841b55p-1, ++ 0x1.1855a5fd3dd50p-1, ++ 0x1.1bb95c3746199p-1, ++ 0x1.1f15cb50bc4dep-1, ++ 0x1.226ae840d4d70p-1, ++ 0x1.25b8a88b6dd7fp-1, ++ 0x1.28ff0240d52cdp-1, ++ 0x1.2c3debfd7d6c1p-1, ++ 0x1.2f755ce9a21f4p-1, ++ 0x1.32a54cb8db67bp-1, ++ 0x1.35cdb3a9a144dp-1, ++ 0x1.38ee8a84beb71p-1, ++ 0x1.3c07ca9cb4f9ep-1, ++ 0x1.3f196dcd0f135p-1, ++ 0x1.42236e79a5fa6p-1, ++ 0x1.4525c78dd5966p-1, ++ 0x1.4820747ba2dc2p-1, ++ 0x1.4b13713ad3513p-1, ++ 0x1.4dfeba47f63ccp-1, ++ 0x1.50e24ca35fd2cp-1, ++ 0x1.53be25d016a4fp-1, ++ 0x1.569243d2b3a9bp-1, ++ 0x1.595ea53035283p-1, ++ 0x1.5c2348ecc4dc3p-1, ++ 0x1.5ee02e8a71a53p-1, ++ 0x1.61955607dd15dp-1, ++ 0x1.6442bfdedd397p-1, ++ 0x1.66e86d0312e82p-1, ++ 0x1.69865ee075011p-1, ++ 0x1.6c1c9759d0e5fp-1, ++ 0x1.6eab18c74091bp-1, ++ 0x1.7131e5f496a5ap-1, ++ 0x1.73b1021fc0cb8p-1, ++ 0x1.762870f720c6fp-1, ++ 0x1.78983697dc96fp-1, ++ 0x1.7b00578c26037p-1, ++ 0x1.7d60d8c979f7bp-1, ++ 0x1.7fb9bfaed8078p-1, ++ 0x1.820b1202f27fbp-1, ++ 0x1.8454d5f25760dp-1, ++ 0x1.8697120d92a4ap-1, ++ 0x1.88d1cd474a2e0p-1, ++ 0x1.8b050ef253c37p-1, ++ 0x1.8d30debfc572ep-1, ++ 0x1.8f5544bd00c04p-1, ++ 0x1.91724951b8fc6p-1, ++ 0x1.9387f53df5238p-1, ++ 0x1.959651980da31p-1, ++ 0x1.979d67caa6631p-1, ++ 0x1.999d4192a5715p-1, ++ 0x1.9b95e8fd26abap-1, ++ 0x1.9d8768656cc42p-1, ++ 0x1.9f71ca72cffb6p-1, ++ 0x1.a1551a16aaeafp-1, ++ 0x1.a331628a45b92p-1, ++ 0x1.a506af4cc00f4p-1, ++ 0x1.a6d50c20fa293p-1, ++ 0x1.a89c850b7d54dp-1, ++ 0x1.aa5d265064366p-1, ++ 0x1.ac16fc7143263p-1, ++ 0x1.adca142b10f98p-1, ++ 0x1.af767a741088bp-1, ++ 0x1.b11c3c79bb424p-1, ++ 0x1.b2bb679ead19cp-1, ++ 0x1.b4540978921eep-1, ++ 0x1.b5e62fce16095p-1, ++ 0x1.b771e894d602ep-1, ++ 0x1.b8f741ef54f83p-1, ++ 0x1.ba764a2af2b78p-1, ++ 0x1.bbef0fbde6221p-1, ++ 0x1.bd61a1453ab44p-1, ++ 0x1.bece0d82d1a5cp-1, ++ 0x1.c034635b66e23p-1, ++ 0x1.c194b1d49a184p-1, ++ 0x1.c2ef0812fc1bdp-1, ++ 0x1.c443755820d64p-1, ++ 0x1.c5920900b5fd1p-1, ++ 0x1.c6dad2829ec62p-1, ++ 0x1.c81de16b14cefp-1, ++ 0x1.c95b455cce69dp-1, ++ 0x1.ca930e0e2a825p-1, ++ 0x1.cbc54b476248dp-1, ++ 0x1.ccf20ce0c0d27p-1, ++ 0x1.ce1962c0e0d8bp-1, ++ 0x1.cf3b5cdaf0c39p-1, ++ 0x1.d0580b2cfd249p-1, ++ 0x1.d16f7dbe41ca0p-1, ++ 0x1.d281c49d818d0p-1, ++ 0x1.d38eefdf64fddp-1, ++ 0x1.d4970f9ce00d9p-1, ++ 0x1.d59a33f19ed42p-1, ++ 0x1.d6986cfa798e7p-1, ++ 0x1.d791cad3eff01p-1, ++ 0x1.d8865d98abe01p-1, ++ 0x1.d97635600bb89p-1, ++ 0x1.da61623cb41e0p-1, ++ 0x1.db47f43b2980dp-1, ++ 0x1.dc29fb60715afp-1, ++ 0x1.dd0787a8bb39dp-1, ++ 0x1.dde0a90611a0dp-1, ++ 0x1.deb56f5f12d28p-1, ++ 0x1.df85ea8db188ep-1, ++ 0x1.e0522a5dfda73p-1, ++ 0x1.e11a3e8cf4eb8p-1, ++ 0x1.e1de36c75ba58p-1, ++ 0x1.e29e22a89d766p-1, ++ 0x1.e35a11b9b61cep-1, ++ 0x1.e4121370224ccp-1, ++ 0x1.e4c6372cd8927p-1, ++ 0x1.e5768c3b4a3fcp-1, ++ 0x1.e62321d06c5e0p-1, ++ 0x1.e6cc0709c8a0dp-1, ++ 0x1.e7714aec96534p-1, ++ 0x1.e812fc64db369p-1, ++ 0x1.e8b12a44944a8p-1, ++ 0x1.e94be342e6743p-1, ++ 0x1.e9e335fb56f87p-1, ++ 0x1.ea7730ed0bbb9p-1, ++ 0x1.eb07e27a133aap-1, ++ 0x1.eb9558e6b42cep-1, ++ 0x1.ec1fa258c4beap-1, ++ 0x1.eca6ccd709544p-1, ++ 0x1.ed2ae6489ac1ep-1, ++ 0x1.edabfc7453e63p-1, ++ 0x1.ee2a1d004692cp-1, ++ 0x1.eea5557137ae0p-1, ++ 0x1.ef1db32a2277cp-1, ++ 0x1.ef93436bc2daap-1, ++ 0x1.f006135426b26p-1, ++ 0x1.f0762fde45ee6p-1, ++ 0x1.f0e3a5e1a1788p-1, ++ 0x1.f14e8211e8c55p-1, ++ 0x1.f1b6d0fea5f4dp-1, ++ 0x1.f21c9f12f0677p-1, ++ 0x1.f27ff89525acfp-1, ++ 0x1.f2e0e9a6a8b09p-1, ++ 0x1.f33f7e43a706bp-1, ++ 0x1.f39bc242e43e6p-1, ++ 0x1.f3f5c1558b19ep-1, ++ 0x1.f44d870704911p-1, ++ 0x1.f4a31ebcd47dfp-1, ++ 0x1.f4f693b67bd77p-1, ++ 0x1.f547f10d60597p-1, ++ 0x1.f59741b4b97cfp-1, ++ 0x1.f5e4907982a07p-1, ++ 0x1.f62fe80272419p-1, ++ 0x1.f67952cff6282p-1, ++ 0x1.f6c0db3c34641p-1, ++ 0x1.f7068b7b10fd9p-1, ++ 0x1.f74a6d9a38383p-1, ++ 0x1.f78c8b812d498p-1, ++ 0x1.f7cceef15d631p-1, ++ 0x1.f80ba18636f07p-1, ++ 0x1.f848acb544e95p-1, ++ 0x1.f88419ce4e184p-1, ++ 0x1.f8bdf1fb78370p-1, ++ 0x1.f8f63e416ebffp-1, ++ 0x1.f92d077f8d56dp-1, ++ 0x1.f96256700da8ep-1, ++ 0x1.f99633a838a57p-1, ++ 0x1.f9c8a7989af0dp-1, ++ 0x1.f9f9ba8d3c733p-1, ++ 0x1.fa2974addae45p-1, ++ 0x1.fa57ddfe27376p-1, ++ 0x1.fa84fe5e05c8dp-1, ++ 0x1.fab0dd89d1309p-1, ++ 0x1.fadb831a9f9c3p-1, ++ 0x1.fb04f6868a944p-1, ++ 0x1.fb2d3f20f9101p-1, ++ 0x1.fb54641aebbc9p-1, ++ 0x1.fb7a6c834b5a2p-1, ++ 0x1.fb9f5f4739170p-1, ++ 0x1.fbc3433260ca5p-1, ++ 0x1.fbe61eef4cf6ap-1, ++ 0x1.fc07f907bc794p-1, ++ 0x1.fc28d7e4f9cd0p-1, ++ 0x1.fc48c1d033c7ap-1, ++ 0x1.fc67bcf2d7b8fp-1, ++ 0x1.fc85cf56ecd38p-1, ++ 0x1.fca2fee770c79p-1, ++ 0x1.fcbf5170b578bp-1, ++ 0x1.fcdacca0bfb73p-1, ++ 0x1.fcf57607a6e7cp-1, ++ 0x1.fd0f5317f582fp-1, ++ 0x1.fd2869270a56fp-1, ++ 0x1.fd40bd6d7a785p-1, ++ 0x1.fd58550773cb5p-1, ++ 0x1.fd6f34f52013ap-1, ++ 0x1.fd85621b0876dp-1, ++ 0x1.fd9ae142795e3p-1, ++ 0x1.fdafb719e6a69p-1, ++ 0x1.fdc3e835500b3p-1, ++ 0x1.fdd7790ea5bc0p-1, ++ 0x1.fdea6e062d0c9p-1, ++ 0x1.fdfccb62e52d3p-1, ++ 0x1.fe0e9552ebdd6p-1, ++ 0x1.fe1fcfebe2083p-1, ++ 0x1.fe307f2b503d0p-1, ++ 0x1.fe40a6f70af4bp-1, ++ 0x1.fe504b1d9696cp-1, ++ 0x1.fe5f6f568b301p-1, ++ 0x1.fe6e1742f7cf6p-1, ++ 0x1.fe7c466dc57a1p-1, ++ 0x1.fe8a004c19ae6p-1, ++ 0x1.fe97483db8670p-1, ++ 0x1.fea4218d6594ap-1, ++ 0x1.feb08f7146046p-1, ++ 0x1.febc950b3fa75p-1, ++ 0x1.fec835695932ep-1, ++ 0x1.fed37386190fbp-1, ++ 0x1.fede5248e38f4p-1, ++ 0x1.fee8d486585eep-1, ++ 0x1.fef2fd00af31ap-1, ++ 0x1.fefcce6813974p-1, ++ 0x1.ff064b5afffbep-1, ++ 0x1.ff0f766697c76p-1, ++ 0x1.ff18520700971p-1, ++ 0x1.ff20e0a7ba8c2p-1, ++ 0x1.ff2924a3f7a83p-1, ++ 0x1.ff312046f2339p-1, ++ 0x1.ff38d5cc4227fp-1, ++ 0x1.ff404760319b4p-1, ++ 0x1.ff47772010262p-1, ++ 0x1.ff4e671a85425p-1, ++ 0x1.ff55194fe19dfp-1, ++ 0x1.ff5b8fb26f5f6p-1, ++ 0x1.ff61cc26c1578p-1, ++ 0x1.ff67d08401202p-1, ++ 0x1.ff6d9e943c231p-1, ++ 0x1.ff733814af88cp-1, ++ 0x1.ff789eb6130c9p-1, ++ 0x1.ff7dd41ce2b4dp-1, ++ 0x1.ff82d9e1a76d8p-1, ++ 0x1.ff87b1913e853p-1, ++ 0x1.ff8c5cad200a5p-1, ++ 0x1.ff90dcaba4096p-1, ++ 0x1.ff9532f846ab0p-1, ++ 0x1.ff9960f3eb327p-1, ++ 0x1.ff9d67f51ddbap-1, ++ 0x1.ffa14948549a7p-1, ++ 0x1.ffa506302ebaep-1, ++ 0x1.ffa89fe5b3625p-1, ++ 0x1.ffac17988ef4bp-1, ++ 0x1.ffaf6e6f4f5c0p-1, ++ 0x1.ffb2a5879f35ep-1, ++ 0x1.ffb5bdf67fe6fp-1, ++ 0x1.ffb8b8c88295fp-1, ++ 0x1.ffbb970200110p-1, ++ 0x1.ffbe599f4f9d9p-1, ++ 0x1.ffc10194fcb64p-1, ++ 0x1.ffc38fcffbb7cp-1, ++ 0x1.ffc60535dd7f5p-1, ++ 0x1.ffc862a501fd7p-1, ++ 0x1.ffcaa8f4c9beap-1, ++ 0x1.ffccd8f5c66d1p-1, ++ 0x1.ffcef371ea4d7p-1, ++ 0x1.ffd0f92cb6ba7p-1, ++ 0x1.ffd2eae369a07p-1, ++ 0x1.ffd4c94d29fdbp-1, ++ 0x1.ffd6951b33686p-1, ++ 0x1.ffd84ef9009eep-1, ++ 0x1.ffd9f78c7524ap-1, ++ 0x1.ffdb8f7605ee7p-1, ++ 0x1.ffdd1750e1220p-1, ++ 0x1.ffde8fb314ebfp-1, ++ 0x1.ffdff92db56e5p-1, ++ 0x1.ffe1544d01ccbp-1, ++ 0x1.ffe2a1988857cp-1, ++ 0x1.ffe3e19349dc7p-1, ++ 0x1.ffe514bbdc197p-1, ++ 0x1.ffe63b8c8b5f7p-1, ++ 0x1.ffe7567b7b5e1p-1, ++ 0x1.ffe865fac722bp-1, ++ 0x1.ffe96a78a04a9p-1, ++ 0x1.ffea645f6d6dap-1, ++ 0x1.ffeb5415e7c44p-1, ++ 0x1.ffec39ff380b9p-1, ++ 0x1.ffed167b12ac2p-1, ++ 0x1.ffede9e5d3262p-1, ++ 0x1.ffeeb49896c6dp-1, ++ 0x1.ffef76e956a9fp-1, ++ 0x1.fff0312b010b5p-1, ++ 0x1.fff0e3ad91ec2p-1, ++ 0x1.fff18ebe2b0e1p-1, ++ 0x1.fff232a72b48ep-1, ++ 0x1.fff2cfb0453d9p-1, ++ 0x1.fff3661e9569dp-1, ++ 0x1.fff3f634b79f9p-1, ++ 0x1.fff48032dbe40p-1, ++ 0x1.fff50456dab8cp-1, ++ 0x1.fff582dc48d30p-1, ++ 0x1.fff5fbfc8a439p-1, ++ 0x1.fff66feee5129p-1, ++ 0x1.fff6dee89352ep-1, ++ 0x1.fff7491cd4af6p-1, ++ 0x1.fff7aebcff755p-1, ++ 0x1.fff80ff8911fdp-1, ++ 0x1.fff86cfd3e657p-1, ++ 0x1.fff8c5f702ccfp-1, ++ 0x1.fff91b102fca8p-1, ++ 0x1.fff96c717b695p-1, ++ 0x1.fff9ba420e834p-1, ++ 0x1.fffa04a7928b1p-1, ++ 0x1.fffa4bc63ee9ap-1, ++ 0x1.fffa8fc0e5f33p-1, ++ 0x1.fffad0b901755p-1, ++ 0x1.fffb0ecebee1bp-1, ++ 0x1.fffb4a210b172p-1, ++ 0x1.fffb82cd9dcbfp-1, ++ 0x1.fffbb8f1049c6p-1, ++ 0x1.fffbeca6adbe9p-1, ++ 0x1.fffc1e08f25f5p-1, ++ 0x1.fffc4d3120aa1p-1, ++ 0x1.fffc7a37857d2p-1, ++ 0x1.fffca53375ce3p-1, ++ 0x1.fffcce3b57bffp-1, ++ 0x1.fffcf564ab6b7p-1, ++ 0x1.fffd1ac4135f9p-1, ++ 0x1.fffd3e6d5cd87p-1, ++ 0x1.fffd607387b07p-1, ++ 0x1.fffd80e8ce0dap-1, ++ 0x1.fffd9fdeabccep-1, ++ 0x1.fffdbd65e5ad0p-1, ++ 0x1.fffdd98e903b2p-1, ++ 0x1.fffdf46816833p-1, ++ 0x1.fffe0e0140857p-1, ++ 0x1.fffe26683972ap-1, ++ 0x1.fffe3daa95b18p-1, ++ 0x1.fffe53d558ae9p-1, ++ 0x1.fffe68f4fa777p-1, ++ 0x1.fffe7d156d244p-1, ++ 0x1.fffe904222101p-1, ++ 0x1.fffea2860ee1ep-1, ++ 0x1.fffeb3ebb267bp-1, ++ 0x1.fffec47d19457p-1, ++ 0x1.fffed443e2787p-1, ++ 0x1.fffee34943b15p-1, ++ 0x1.fffef1960d85dp-1, ++ 0x1.fffeff32af7afp-1, ++ 0x1.ffff0c273bea2p-1, ++ 0x1.ffff187b6bc0ep-1, ++ 0x1.ffff2436a21dcp-1, ++ 0x1.ffff2f5fefcaap-1, ++ 0x1.ffff39fe16963p-1, ++ 0x1.ffff44178c8d2p-1, ++ 0x1.ffff4db27f146p-1, ++ 0x1.ffff56d4d5e5ep-1, ++ 0x1.ffff5f8435efcp-1, ++ 0x1.ffff67c604180p-1, ++ 0x1.ffff6f9f67e55p-1, ++ 0x1.ffff77154e0d6p-1, ++ 0x1.ffff7e2c6aea2p-1, ++ 0x1.ffff84e93cd75p-1, ++ 0x1.ffff8b500e77cp-1, ++ 0x1.ffff9164f8e46p-1, ++ 0x1.ffff972be5c59p-1, ++ 0x1.ffff9ca891572p-1, ++ 0x1.ffffa1de8c582p-1, ++ 0x1.ffffa6d13de73p-1, ++ 0x1.ffffab83e54b8p-1, ++ 0x1.ffffaff99bac4p-1, ++ 0x1.ffffb43555b5fp-1, ++ 0x1.ffffb839e52f3p-1, ++ 0x1.ffffbc09fa7cdp-1, ++ 0x1.ffffbfa82616bp-1, ++ 0x1.ffffc316d9ed0p-1, ++ 0x1.ffffc6586abf6p-1, ++ 0x1.ffffc96f1165ep-1, ++ 0x1.ffffcc5cec0c1p-1, ++ 0x1.ffffcf23ff5fcp-1, ++ 0x1.ffffd1c637b2bp-1, ++ 0x1.ffffd4456a10dp-1, ++ 0x1.ffffd6a3554a1p-1, ++ 0x1.ffffd8e1a2f22p-1, ++ 0x1.ffffdb01e8546p-1, ++ 0x1.ffffdd05a75eap-1, ++ 0x1.ffffdeee4f810p-1, ++ 0x1.ffffe0bd3e852p-1, ++ 0x1.ffffe273c15b7p-1, ++ 0x1.ffffe41314e06p-1, ++ 0x1.ffffe59c6698bp-1, ++ 0x1.ffffe710d565ep-1, ++ 0x1.ffffe8717232dp-1, ++ 0x1.ffffe9bf4098cp-1, ++ 0x1.ffffeafb377d5p-1, ++ 0x1.ffffec2641a9ep-1, ++ 0x1.ffffed413e5b7p-1, ++ 0x1.ffffee4d01cd6p-1, ++ 0x1.ffffef4a55bd4p-1, ++ 0x1.fffff039f9e8fp-1, ++ 0x1.fffff11ca4876p-1, ++ 0x1.fffff1f302bc1p-1, ++ 0x1.fffff2bdb904dp-1, ++ 0x1.fffff37d63a36p-1, ++ 0x1.fffff43297019p-1, ++ 0x1.fffff4dde0118p-1, ++ 0x1.fffff57fc4a95p-1, ++ 0x1.fffff618c3da6p-1, ++ 0x1.fffff6a956450p-1, ++ 0x1.fffff731ee681p-1, ++ 0x1.fffff7b2f8ed6p-1, ++ 0x1.fffff82cdcf1bp-1, ++ 0x1.fffff89ffc4aap-1, ++ 0x1.fffff90cb3c81p-1, ++ 0x1.fffff9735b73bp-1, ++ 0x1.fffff9d446cccp-1, ++ 0x1.fffffa2fc5015p-1, ++ 0x1.fffffa8621251p-1, ++ 0x1.fffffad7a2652p-1, ++ 0x1.fffffb248c39dp-1, ++ 0x1.fffffb6d1e95dp-1, ++ 0x1.fffffbb196132p-1, ++ 0x1.fffffbf22c1e2p-1, ++ 0x1.fffffc2f171e3p-1, ++ 0x1.fffffc688a9cfp-1, ++ 0x1.fffffc9eb76acp-1, ++ 0x1.fffffcd1cbc28p-1, ++ 0x1.fffffd01f36afp-1, ++ 0x1.fffffd2f57d68p-1, ++ 0x1.fffffd5a2041fp-1, ++ 0x1.fffffd8271d12p-1, ++ 0x1.fffffda86faa9p-1, ++ 0x1.fffffdcc3b117p-1, ++ 0x1.fffffdedf37edp-1, ++ 0x1.fffffe0db6b91p-1, ++ 0x1.fffffe2ba0ea5p-1, ++ 0x1.fffffe47ccb60p-1, ++ 0x1.fffffe62534d4p-1, ++ 0x1.fffffe7b4c81ep-1, ++ 0x1.fffffe92ced93p-1, ++ 0x1.fffffea8ef9cfp-1, ++ 0x1.fffffebdc2ec6p-1, ++ 0x1.fffffed15bcbap-1, ++ 0x1.fffffee3cc32cp-1, ++ 0x1.fffffef5251c2p-1, ++ 0x1.ffffff0576917p-1, ++ 0x1.ffffff14cfb92p-1, ++ 0x1.ffffff233ee1dp-1, ++ 0x1.ffffff30d18e8p-1, ++ 0x1.ffffff3d9480fp-1, ++ 0x1.ffffff4993c46p-1, ++ 0x1.ffffff54dab72p-1, ++ 0x1.ffffff5f74141p-1, ++ 0x1.ffffff6969fb8p-1, ++ 0x1.ffffff72c5fb6p-1, ++ 0x1.ffffff7b91176p-1, ++ 0x1.ffffff83d3d07p-1, ++ 0x1.ffffff8b962bep-1, ++ 0x1.ffffff92dfba2p-1, ++ 0x1.ffffff99b79d2p-1, ++ 0x1.ffffffa0248e8p-1, ++ 0x1.ffffffa62ce54p-1, ++ 0x1.ffffffabd69b4p-1, ++ 0x1.ffffffb127525p-1, ++ 0x1.ffffffb624592p-1, ++ 0x1.ffffffbad2affp-1, ++ 0x1.ffffffbf370cdp-1, ++ 0x1.ffffffc355dfdp-1, ++ 0x1.ffffffc733572p-1, ++ 0x1.ffffffcad3626p-1, ++ 0x1.ffffffce39b67p-1, ++ 0x1.ffffffd169d0cp-1, ++ 0x1.ffffffd466fa5p-1, ++ 0x1.ffffffd7344aap-1, ++ 0x1.ffffffd9d4aabp-1, ++ 0x1.ffffffdc4ad7ap-1, ++ 0x1.ffffffde9964ep-1, ++ 0x1.ffffffe0c2bf0p-1, ++ 0x1.ffffffe2c92dbp-1, ++ 0x1.ffffffe4aed5ep-1, ++ 0x1.ffffffe675bbdp-1, ++ 0x1.ffffffe81fc4ep-1, ++ 0x1.ffffffe9aeb97p-1, ++ 0x1.ffffffeb24467p-1, ++ 0x1.ffffffec81ff2p-1, ++ 0x1.ffffffedc95e7p-1, ++ 0x1.ffffffeefbc85p-1, ++ 0x1.fffffff01a8b6p-1, ++ 0x1.fffffff126e1ep-1, ++ 0x1.fffffff221f30p-1, ++ 0x1.fffffff30cd3fp-1, ++ 0x1.fffffff3e8892p-1, ++ 0x1.fffffff4b606fp-1, ++ 0x1.fffffff57632dp-1, ++ 0x1.fffffff629e44p-1, ++ 0x1.fffffff6d1e56p-1, ++ 0x1.fffffff76ef3fp-1, ++ 0x1.fffffff801c1fp-1, ++ 0x1.fffffff88af67p-1, ++ 0x1.fffffff90b2e3p-1, ++ 0x1.fffffff982fc1p-1, ++ 0x1.fffffff9f2e9fp-1, ++ 0x1.fffffffa5b790p-1, ++ 0x1.fffffffabd229p-1, ++ 0x1.fffffffb18582p-1, ++ 0x1.fffffffb6d844p-1, ++ 0x1.fffffffbbd0aap-1, ++ 0x1.fffffffc0748fp-1, ++ 0x1.fffffffc4c96cp-1, ++ 0x1.fffffffc8d462p-1, ++ 0x1.fffffffcc9a41p-1, ++ 0x1.fffffffd01f89p-1, ++ 0x1.fffffffd36871p-1, ++ 0x1.fffffffd678edp-1, ++ 0x1.fffffffd954aep-1, ++ 0x1.fffffffdbff2ap-1, ++ 0x1.fffffffde7ba0p-1, ++ 0x1.fffffffe0cd16p-1, ++ 0x1.fffffffe2f664p-1, ++ 0x1.fffffffe4fa30p-1, ++ 0x1.fffffffe6daf7p-1, ++ 0x1.fffffffe89b0cp-1, ++ 0x1.fffffffea3c9ap-1, ++ 0x1.fffffffebc1a9p-1, ++ 0x1.fffffffed2c21p-1, ++ 0x1.fffffffee7dc8p-1, ++ 0x1.fffffffefb847p-1, ++ 0x1.ffffffff0dd2bp-1, ++ 0x1.ffffffff1ede9p-1, ++ 0x1.ffffffff2ebdap-1, ++ 0x1.ffffffff3d843p-1, ++ 0x1.ffffffff4b453p-1, ++ 0x1.ffffffff58126p-1, ++ 0x1.ffffffff63fc3p-1, ++ 0x1.ffffffff6f121p-1, ++ 0x1.ffffffff79626p-1, ++ 0x1.ffffffff82fabp-1, ++ 0x1.ffffffff8be77p-1, ++ 0x1.ffffffff94346p-1, ++ 0x1.ffffffff9bec8p-1, ++ 0x1.ffffffffa319fp-1, ++ 0x1.ffffffffa9c63p-1, ++ 0x1.ffffffffaffa4p-1, ++ 0x1.ffffffffb5be5p-1, ++ 0x1.ffffffffbb1a2p-1, ++ 0x1.ffffffffc014ep-1, ++ 0x1.ffffffffc4b56p-1, ++ 0x1.ffffffffc901cp-1, ++ 0x1.ffffffffccfffp-1, ++ 0x1.ffffffffd0b56p-1, ++ 0x1.ffffffffd4271p-1, ++ 0x1.ffffffffd759dp-1, ++ 0x1.ffffffffda520p-1, ++ 0x1.ffffffffdd13cp-1, ++ 0x1.ffffffffdfa2dp-1, ++ 0x1.ffffffffe202dp-1, ++ 0x1.ffffffffe4371p-1, ++ 0x1.ffffffffe642ap-1, ++ 0x1.ffffffffe8286p-1, ++ 0x1.ffffffffe9eb0p-1, ++ 0x1.ffffffffeb8d0p-1, ++ 0x1.ffffffffed10ap-1, ++ 0x1.ffffffffee782p-1, ++ 0x1.ffffffffefc57p-1, ++ 0x1.fffffffff0fa7p-1, ++ 0x1.fffffffff218fp-1, ++ 0x1.fffffffff3227p-1, ++ 0x1.fffffffff4188p-1, ++ 0x1.fffffffff4fc9p-1, ++ 0x1.fffffffff5cfdp-1, ++ 0x1.fffffffff6939p-1, ++ 0x1.fffffffff748ep-1, ++ 0x1.fffffffff7f0dp-1, ++ 0x1.fffffffff88c5p-1, ++ 0x1.fffffffff91c6p-1, ++ 0x1.fffffffff9a1bp-1, ++ 0x1.fffffffffa1d2p-1, ++ 0x1.fffffffffa8f6p-1, ++ 0x1.fffffffffaf92p-1, ++ 0x1.fffffffffb5b0p-1, ++ 0x1.fffffffffbb58p-1, ++ 0x1.fffffffffc095p-1, ++ 0x1.fffffffffc56dp-1, ++ 0x1.fffffffffc9e8p-1, ++ 0x1.fffffffffce0dp-1, ++ 0x1.fffffffffd1e1p-1, ++ 0x1.fffffffffd56cp-1, ++ 0x1.fffffffffd8b3p-1, ++ 0x1.fffffffffdbbap-1, ++ 0x1.fffffffffde86p-1, ++ 0x1.fffffffffe11dp-1, ++ 0x1.fffffffffe380p-1, ++ 0x1.fffffffffe5b6p-1, ++ 0x1.fffffffffe7c0p-1, ++ 0x1.fffffffffe9a2p-1, ++ 0x1.fffffffffeb60p-1, ++ 0x1.fffffffffecfbp-1, ++ 0x1.fffffffffee77p-1, ++ 0x1.fffffffffefd6p-1, ++ 0x1.ffffffffff11ap-1, ++ 0x1.ffffffffff245p-1, ++ 0x1.ffffffffff359p-1, ++ 0x1.ffffffffff457p-1, ++ 0x1.ffffffffff542p-1, ++ 0x1.ffffffffff61bp-1, ++ 0x1.ffffffffff6e3p-1, ++ 0x1.ffffffffff79bp-1, ++ 0x1.ffffffffff845p-1, ++ 0x1.ffffffffff8e2p-1, ++ 0x1.ffffffffff973p-1, ++ 0x1.ffffffffff9f8p-1, ++ 0x1.ffffffffffa73p-1, ++ 0x1.ffffffffffae4p-1, ++ 0x1.ffffffffffb4cp-1, ++ 0x1.ffffffffffbadp-1, ++ 0x1.ffffffffffc05p-1, ++ 0x1.ffffffffffc57p-1, ++ 0x1.ffffffffffca2p-1, ++ 0x1.ffffffffffce7p-1, ++ 0x1.ffffffffffd27p-1, ++ 0x1.ffffffffffd62p-1, ++ 0x1.ffffffffffd98p-1, ++ 0x1.ffffffffffdcap-1, ++ 0x1.ffffffffffdf8p-1, ++ 0x1.ffffffffffe22p-1, ++ 0x1.ffffffffffe49p-1, ++ 0x1.ffffffffffe6cp-1, ++ 0x1.ffffffffffe8dp-1, ++ 0x1.ffffffffffeabp-1, ++ 0x1.ffffffffffec7p-1, ++ 0x1.ffffffffffee1p-1, ++ 0x1.ffffffffffef8p-1, ++ 0x1.fffffffffff0ep-1, ++ 0x1.fffffffffff22p-1, ++ 0x1.fffffffffff34p-1, ++ 0x1.fffffffffff45p-1, ++ 0x1.fffffffffff54p-1, ++ 0x1.fffffffffff62p-1, ++ 0x1.fffffffffff6fp-1, ++ 0x1.fffffffffff7bp-1, ++ 0x1.fffffffffff86p-1, ++ 0x1.fffffffffff90p-1, ++ 0x1.fffffffffff9ap-1, ++ 0x1.fffffffffffa2p-1, ++ 0x1.fffffffffffaap-1, ++ 0x1.fffffffffffb1p-1, ++ 0x1.fffffffffffb8p-1, ++ 0x1.fffffffffffbep-1, ++ 0x1.fffffffffffc3p-1, ++ 0x1.fffffffffffc8p-1, ++ 0x1.fffffffffffcdp-1, ++ 0x1.fffffffffffd1p-1, ++ 0x1.fffffffffffd5p-1, ++ 0x1.fffffffffffd9p-1, ++ 0x1.fffffffffffdcp-1, ++ 0x1.fffffffffffdfp-1, ++ 0x1.fffffffffffe2p-1, ++ 0x1.fffffffffffe4p-1, ++ 0x1.fffffffffffe7p-1, ++ 0x1.fffffffffffe9p-1, ++ 0x1.fffffffffffebp-1, ++ 0x1.fffffffffffedp-1, ++ 0x1.fffffffffffeep-1, ++ 0x1.ffffffffffff0p-1, ++ 0x1.ffffffffffff1p-1, ++ 0x1.ffffffffffff3p-1, ++ 0x1.ffffffffffff4p-1, ++ 0x1.ffffffffffff5p-1, ++ 0x1.ffffffffffff6p-1, ++ 0x1.ffffffffffff7p-1, ++ 0x1.ffffffffffff7p-1, ++ 0x1.ffffffffffff8p-1, ++ 0x1.ffffffffffff9p-1, ++ 0x1.ffffffffffff9p-1, ++ 0x1.ffffffffffffap-1, ++ 0x1.ffffffffffffbp-1, ++ 0x1.ffffffffffffbp-1, ++ 0x1.ffffffffffffbp-1, ++ 0x1.ffffffffffffcp-1, ++ 0x1.ffffffffffffcp-1, ++ 0x1.ffffffffffffdp-1, ++ 0x1.ffffffffffffdp-1, ++ 0x1.ffffffffffffdp-1, ++ 0x1.ffffffffffffdp-1, ++ 0x1.ffffffffffffep-1, ++ 0x1.ffffffffffffep-1, ++ 0x1.ffffffffffffep-1, ++ 0x1.ffffffffffffep-1, ++ 0x1.ffffffffffffep-1, ++ 0x1.ffffffffffffep-1, ++ 0x1.fffffffffffffp-1, ++ 0x1.fffffffffffffp-1, ++ 0x1.fffffffffffffp-1, ++ 0x1.fffffffffffffp-1, ++ 0x1.fffffffffffffp-1, ++ 0x1.fffffffffffffp-1, ++ 0x1.fffffffffffffp-1, ++ 0x1.fffffffffffffp-1, ++ 0x1.fffffffffffffp-1, ++ 0x1.fffffffffffffp-1, ++ 0x1.fffffffffffffp-1, ++ 0x1.0000000000000p+0, ++ 0x1.0000000000000p+0, ++ 0x1.0000000000000p+0, ++ 0x1.0000000000000p+0, ++ 0x1.0000000000000p+0, ++ 0x1.0000000000000p+0, ++ 0x1.0000000000000p+0, ++ 0x1.0000000000000p+0, ++ 0x1.0000000000000p+0, ++ 0x1.0000000000000p+0, ++ 0x1.0000000000000p+0, ++ }, ++ .scale = { 0x1.20dd750429b6dp+0, ++ 0x1.20d8f1975c85dp+0, ++ 0x1.20cb67bd452c7p+0, ++ 0x1.20b4d8bac36c1p+0, ++ 0x1.209546ad13ccfp+0, ++ 0x1.206cb4897b148p+0, ++ 0x1.203b261cd0052p+0, ++ 0x1.2000a00ae3804p+0, ++ 0x1.1fbd27cdc72d3p+0, ++ 0x1.1f70c3b4f2cc7p+0, ++ 0x1.1f1b7ae44867fp+0, ++ 0x1.1ebd5552f795bp+0, ++ 0x1.1e565bca400d4p+0, ++ 0x1.1de697e413d28p+0, ++ 0x1.1d6e14099944ap+0, ++ 0x1.1cecdb718d61cp+0, ++ 0x1.1c62fa1e869b6p+0, ++ 0x1.1bd07cdd189acp+0, ++ 0x1.1b357141d95d5p+0, ++ 0x1.1a91e5a748165p+0, ++ 0x1.19e5e92b964abp+0, ++ 0x1.19318bae53a04p+0, ++ 0x1.1874ddcdfce24p+0, ++ 0x1.17aff0e56ec10p+0, ++ 0x1.16e2d7093cd8cp+0, ++ 0x1.160da304ed92fp+0, ++ 0x1.153068581b781p+0, ++ 0x1.144b3b337c90cp+0, ++ 0x1.135e3075d076bp+0, ++ 0x1.12695da8b5bdep+0, ++ 0x1.116cd8fd67618p+0, ++ 0x1.1068b94962e5ep+0, ++ 0x1.0f5d1602f7e41p+0, ++ 0x1.0e4a073dc1b91p+0, ++ 0x1.0d2fa5a70c168p+0, ++ 0x1.0c0e0a8223359p+0, ++ 0x1.0ae54fa490722p+0, ++ 0x1.09b58f724416bp+0, ++ 0x1.087ee4d9ad247p+0, ++ 0x1.07416b4fbfe7cp+0, ++ 0x1.05fd3ecbec297p+0, ++ 0x1.04b27bc403d30p+0, ++ 0x1.03613f2812dafp+0, ++ 0x1.0209a65e29545p+0, ++ 0x1.00abcf3e187a9p+0, ++ 0x1.fe8fb01a47307p-1, ++ 0x1.fbbbbef34b4b2p-1, ++ 0x1.f8dc092d58ff8p-1, ++ 0x1.f5f0cdaf15313p-1, ++ 0x1.f2fa4c16c0019p-1, ++ 0x1.eff8c4b1375dbp-1, ++ 0x1.ecec7870ebca7p-1, ++ 0x1.e9d5a8e4c934ep-1, ++ 0x1.e6b4982f158b9p-1, ++ 0x1.e38988fc46e72p-1, ++ 0x1.e054be79d3042p-1, ++ 0x1.dd167c4cf9d2ap-1, ++ 0x1.d9cf06898cdafp-1, ++ 0x1.d67ea1a8b5368p-1, ++ 0x1.d325927fb9d89p-1, ++ 0x1.cfc41e36c7df9p-1, ++ 0x1.cc5a8a3fbea40p-1, ++ 0x1.c8e91c4d01368p-1, ++ 0x1.c5701a484ef9dp-1, ++ 0x1.c1efca49a5011p-1, ++ 0x1.be68728e29d5dp-1, ++ 0x1.bada596f25436p-1, ++ 0x1.b745c55905bf8p-1, ++ 0x1.b3aafcc27502ep-1, ++ 0x1.b00a46237d5bep-1, ++ 0x1.ac63e7ecc1411p-1, ++ 0x1.a8b8287ec6a09p-1, ++ 0x1.a5074e2157620p-1, ++ 0x1.a1519efaf889ep-1, ++ 0x1.9d97610879642p-1, ++ 0x1.99d8da149c13fp-1, ++ 0x1.96164fafd8de3p-1, ++ 0x1.925007283d7aap-1, ++ 0x1.8e86458169af8p-1, ++ 0x1.8ab94f6caa71dp-1, ++ 0x1.86e9694134b9ep-1, ++ 0x1.8316d6f48133dp-1, ++ 0x1.7f41dc12c9e89p-1, ++ 0x1.7b6abbb7aaf19p-1, ++ 0x1.7791b886e7403p-1, ++ 0x1.73b714a552763p-1, ++ 0x1.6fdb11b1e0c34p-1, ++ 0x1.6bfdf0beddaf5p-1, ++ 0x1.681ff24b4ab04p-1, ++ 0x1.6441563c665d4p-1, ++ 0x1.60625bd75d07bp-1, ++ 0x1.5c8341bb23767p-1, ++ 0x1.58a445da7c74cp-1, ++ 0x1.54c5a57629db0p-1, ++ 0x1.50e79d1749ac9p-1, ++ 0x1.4d0a6889dfd9fp-1, ++ 0x1.492e42d78d2c5p-1, ++ 0x1.4553664273d24p-1, ++ 0x1.417a0c4049fd0p-1, ++ 0x1.3da26d759aef5p-1, ++ 0x1.39ccc1b136d5ap-1, ++ 0x1.35f93fe7d1b3dp-1, ++ 0x1.32281e2fd1a92p-1, ++ 0x1.2e5991bd4cbfcp-1, ++ 0x1.2a8dcede3673bp-1, ++ 0x1.26c508f6bd0ffp-1, ++ 0x1.22ff727dd6f7bp-1, ++ 0x1.1f3d3cf9ffe5ap-1, ++ 0x1.1b7e98fe26217p-1, ++ 0x1.17c3b626c7a11p-1, ++ 0x1.140cc3173f007p-1, ++ 0x1.1059ed7740313p-1, ++ 0x1.0cab61f084b93p-1, ++ 0x1.09014c2ca74dap-1, ++ 0x1.055bd6d32e8d7p-1, ++ 0x1.01bb2b87c6968p-1, ++ 0x1.fc3ee5d1524b0p-2, ++ 0x1.f511a91a67d2ap-2, ++ 0x1.edeeee0959518p-2, ++ 0x1.e6d6ffaa65a25p-2, ++ 0x1.dfca26f5bbf88p-2, ++ 0x1.d8c8aace11e63p-2, ++ 0x1.d1d2cfff91594p-2, ++ 0x1.cae8d93f1d7b6p-2, ++ 0x1.c40b0729ed547p-2, ++ 0x1.bd3998457afdap-2, ++ 0x1.b674c8ffc6283p-2, ++ 0x1.afbcd3afe8ab6p-2, ++ 0x1.a911f096fbc26p-2, ++ 0x1.a27455e14c93cp-2, ++ 0x1.9be437a7de946p-2, ++ 0x1.9561c7f23a47bp-2, ++ 0x1.8eed36b886d93p-2, ++ 0x1.8886b1e5ecfd1p-2, ++ 0x1.822e655b417e6p-2, ++ 0x1.7be47af1f5d89p-2, ++ 0x1.75a91a7f4d2edp-2, ++ 0x1.6f7c69d7d3ef8p-2, ++ 0x1.695e8cd31867ep-2, ++ 0x1.634fa54fa285fp-2, ++ 0x1.5d4fd33729015p-2, ++ 0x1.575f3483021c3p-2, ++ 0x1.517de540ce2a3p-2, ++ 0x1.4babff975a04cp-2, ++ 0x1.45e99bcbb7915p-2, ++ 0x1.4036d0468a7a2p-2, ++ 0x1.3a93b1998736cp-2, ++ 0x1.35005285227f1p-2, ++ 0x1.2f7cc3fe6f423p-2, ++ 0x1.2a09153529381p-2, ++ 0x1.24a55399ea239p-2, ++ 0x1.1f518ae487dc8p-2, ++ 0x1.1a0dc51a9934dp-2, ++ 0x1.14da0a961fd14p-2, ++ 0x1.0fb6620c550afp-2, ++ 0x1.0aa2d09497f2bp-2, ++ 0x1.059f59af7a906p-2, ++ 0x1.00abff4dec7a3p-2, ++ 0x1.f79183b101c5bp-3, ++ 0x1.edeb406d9c824p-3, ++ 0x1.e4652fadcb6b2p-3, ++ 0x1.daff4969c0b04p-3, ++ 0x1.d1b982c501370p-3, ++ 0x1.c893ce1dcbef7p-3, ++ 0x1.bf8e1b1ca2279p-3, ++ 0x1.b6a856c3ed54fp-3, ++ 0x1.ade26b7fbed95p-3, ++ 0x1.a53c4135a6526p-3, ++ 0x1.9cb5bd549b111p-3, ++ 0x1.944ec2e4f5630p-3, ++ 0x1.8c07329874652p-3, ++ 0x1.83deeada4d25ap-3, ++ 0x1.7bd5c7df3fe9cp-3, ++ 0x1.73eba3b5b07b7p-3, ++ 0x1.6c205655be71fp-3, ++ 0x1.6473b5b15a7a1p-3, ++ 0x1.5ce595c455b0ap-3, ++ 0x1.5575c8a468361p-3, ++ 0x1.4e241e912c305p-3, ++ 0x1.46f066040a832p-3, ++ 0x1.3fda6bc016994p-3, ++ 0x1.38e1fae1d6a9dp-3, ++ 0x1.3206dceef5f87p-3, ++ 0x1.2b48d9e5dea1cp-3, ++ 0x1.24a7b84d38971p-3, ++ 0x1.1e233d434b813p-3, ++ 0x1.17bb2c8d41535p-3, ++ 0x1.116f48a6476ccp-3, ++ 0x1.0b3f52ce8c383p-3, ++ 0x1.052b0b1a174eap-3, ++ 0x1.fe6460fef4680p-4, ++ 0x1.f2a901ccafb37p-4, ++ 0x1.e723726b824a9p-4, ++ 0x1.dbd32ac4c99b0p-4, ++ 0x1.d0b7a0f921e7cp-4, ++ 0x1.c5d0497c09e74p-4, ++ 0x1.bb1c972f23e50p-4, ++ 0x1.b09bfb7d11a83p-4, ++ 0x1.a64de673e8837p-4, ++ 0x1.9c31c6df3b1b8p-4, ++ 0x1.92470a61b6965p-4, ++ 0x1.888d1d8e510a3p-4, ++ 0x1.7f036c0107294p-4, ++ 0x1.75a96077274bap-4, ++ 0x1.6c7e64e7281cbp-4, ++ 0x1.6381e2980956bp-4, ++ 0x1.5ab342383d177p-4, ++ 0x1.5211ebf41880bp-4, ++ 0x1.499d478bca735p-4, ++ 0x1.4154bc68d75c3p-4, ++ 0x1.3937b1b319259p-4, ++ 0x1.31458e6542847p-4, ++ 0x1.297db960e4f63p-4, ++ 0x1.21df9981f8e53p-4, ++ 0x1.1a6a95b1e786fp-4, ++ 0x1.131e14fa1625dp-4, ++ 0x1.0bf97e95f2a64p-4, ++ 0x1.04fc3a0481321p-4, ++ 0x1.fc4b5e32d6259p-5, ++ 0x1.eeea8c1b1db93p-5, ++ 0x1.e1d4cf1e2450ap-5, ++ 0x1.d508f9a1ea64ep-5, ++ 0x1.c885df3451a07p-5, ++ 0x1.bc4a54a84e834p-5, ++ 0x1.b055303221015p-5, ++ 0x1.a4a549829587ep-5, ++ 0x1.993979e14fffdp-5, ++ 0x1.8e109c4622913p-5, ++ 0x1.83298d717210ep-5, ++ 0x1.78832c03aa2b1p-5, ++ 0x1.6e1c5893c380bp-5, ++ 0x1.63f3f5c4de13bp-5, ++ 0x1.5a08e85af27e0p-5, ++ 0x1.505a174e9c929p-5, ++ 0x1.46e66be002240p-5, ++ 0x1.3dacd1a8d8ccdp-5, ++ 0x1.34ac36ad8dafep-5, ++ 0x1.2be38b6d92415p-5, ++ 0x1.2351c2f2d1449p-5, ++ 0x1.1af5d2e04f3f6p-5, ++ 0x1.12ceb37ff9bc3p-5, ++ 0x1.0adb5fcfa8c75p-5, ++ 0x1.031ad58d56279p-5, ++ 0x1.f7182a851bca2p-6, ++ 0x1.e85c449e377f2p-6, ++ 0x1.da0005e5f28dfp-6, ++ 0x1.cc0180af00a8bp-6, ++ 0x1.be5ecd2fcb5f9p-6, ++ 0x1.b1160991ff737p-6, ++ 0x1.a4255a00b9f03p-6, ++ 0x1.978ae8b55ce1bp-6, ++ 0x1.8b44e6031383ep-6, ++ 0x1.7f5188610ddc8p-6, ++ 0x1.73af0c737bb45p-6, ++ 0x1.685bb5134ef13p-6, ++ 0x1.5d55cb54cd53ap-6, ++ 0x1.529b9e8cf9a1ep-6, ++ 0x1.482b8455dc491p-6, ++ 0x1.3e03d891b37dep-6, ++ 0x1.3422fd6d12e2bp-6, ++ 0x1.2a875b5ffab56p-6, ++ 0x1.212f612dee7fbp-6, ++ 0x1.181983e5133ddp-6, ++ 0x1.0f443edc5ce49p-6, ++ 0x1.06ae13b0d3255p-6, ++ 0x1.fcab1483ea7fcp-7, ++ 0x1.ec72615a894c4p-7, ++ 0x1.dcaf3691fc448p-7, ++ 0x1.cd5ec93c12431p-7, ++ 0x1.be7e5ac24963bp-7, ++ 0x1.b00b38d6b3575p-7, ++ 0x1.a202bd6372dcep-7, ++ 0x1.94624e78e0fafp-7, ++ 0x1.87275e3a6869dp-7, ++ 0x1.7a4f6aca256cbp-7, ++ 0x1.6dd7fe3358230p-7, ++ 0x1.61beae53b72b7p-7, ++ 0x1.56011cc3b036dp-7, ++ 0x1.4a9cf6bda3f4cp-7, ++ 0x1.3f8ff5042a88ep-7, ++ 0x1.34d7dbc76d7e5p-7, ++ 0x1.2a727a89a3f14p-7, ++ 0x1.205dac02bd6b9p-7, ++ 0x1.1697560347b25p-7, ++ 0x1.0d1d69569b82dp-7, ++ 0x1.03ede1a45bfeep-7, ++ 0x1.f60d8aa2a88f2p-8, ++ 0x1.e4cc4abf7d065p-8, ++ 0x1.d4143a9dfe965p-8, ++ 0x1.c3e1a5f5c077cp-8, ++ 0x1.b430ecf4a83a8p-8, ++ 0x1.a4fe83fb9db25p-8, ++ 0x1.9646f35a76623p-8, ++ 0x1.8806d70b2fc36p-8, ++ 0x1.7a3ade6c8b3e4p-8, ++ 0x1.6cdfcbfc1e263p-8, ++ 0x1.5ff2750fe7820p-8, ++ 0x1.536fc18f7ce5cp-8, ++ 0x1.4754abacdf1dcp-8, ++ 0x1.3b9e3f9d06e3fp-8, ++ 0x1.30499b503957fp-8, ++ 0x1.2553ee2a336bfp-8, ++ 0x1.1aba78ba3af89p-8, ++ 0x1.107a8c7323a6ep-8, ++ 0x1.06918b6355624p-8, ++ 0x1.f9f9cfd9c3035p-9, ++ 0x1.e77448fb66bb9p-9, ++ 0x1.d58da68fd1170p-9, ++ 0x1.c4412bf4b8f0bp-9, ++ 0x1.b38a3af2e55b4p-9, ++ 0x1.a3645330550ffp-9, ++ 0x1.93cb11a30d765p-9, ++ 0x1.84ba3004a50d0p-9, ++ 0x1.762d84469c18fp-9, ++ 0x1.6821000795a03p-9, ++ 0x1.5a90b00981d93p-9, ++ 0x1.4d78bba8ca5fdp-9, ++ 0x1.40d564548fad7p-9, ++ 0x1.34a305080681fp-9, ++ 0x1.28de11c5031ebp-9, ++ 0x1.1d83170fbf6fbp-9, ++ 0x1.128eb96be8798p-9, ++ 0x1.07fdb4dafea5fp-9, ++ 0x1.fb99b8b8279e1p-10, ++ 0x1.e7f232d9e2630p-10, ++ 0x1.d4fed7195d7e8p-10, ++ 0x1.c2b9cf7f893bfp-10, ++ 0x1.b11d702b3deb1p-10, ++ 0x1.a024365f771bdp-10, ++ 0x1.8fc8c794b03b5p-10, ++ 0x1.8005f08d6f1efp-10, ++ 0x1.70d6a46e07ddap-10, ++ 0x1.6235fbd7a4345p-10, ++ 0x1.541f340697987p-10, ++ 0x1.468dadf4080abp-10, ++ 0x1.397ced7af2b15p-10, ++ 0x1.2ce898809244ep-10, ++ 0x1.20cc76202c5fap-10, ++ 0x1.15246dda49d47p-10, ++ 0x1.09ec86c75d497p-10, ++ 0x1.fe41cd9bb4eeep-11, ++ 0x1.e97ba3b77f306p-11, ++ 0x1.d57f524723822p-11, ++ 0x1.c245d4b998479p-11, ++ 0x1.afc85e0f82e12p-11, ++ 0x1.9e005769dbc1dp-11, ++ 0x1.8ce75e9f6f8a0p-11, ++ 0x1.7c7744d9378f7p-11, ++ 0x1.6caa0d3582fe9p-11, ++ 0x1.5d79eb71e893bp-11, ++ 0x1.4ee1429bf7cc0p-11, ++ 0x1.40daa3c89f5b6p-11, ++ 0x1.3360ccd23db3ap-11, ++ 0x1.266ea71d4f71ap-11, ++ 0x1.19ff4663ae9dfp-11, ++ 0x1.0e0de78654d1ep-11, ++ 0x1.0295ef6591848p-11, ++ 0x1.ef25d37f49fe1p-12, ++ 0x1.da01102b5f851p-12, ++ 0x1.c5b5412dcafadp-12, ++ 0x1.b23a5a23e4210p-12, ++ 0x1.9f8893d8fd1c1p-12, ++ 0x1.8d986a4187285p-12, ++ 0x1.7c629a822bc9ep-12, ++ 0x1.6be02102b3520p-12, ++ 0x1.5c0a378c90bcap-12, ++ 0x1.4cda5374ea275p-12, ++ 0x1.3e4a23d1f4702p-12, ++ 0x1.30538fbb77ecdp-12, ++ 0x1.22f0b496539bdp-12, ++ 0x1.161be46ad3b50p-12, ++ 0x1.09cfa445b00ffp-12, ++ 0x1.fc0d55470cf51p-13, ++ 0x1.e577bbcd49935p-13, ++ 0x1.cfd4a5adec5bfp-13, ++ 0x1.bb1a9657ce465p-13, ++ 0x1.a740684026555p-13, ++ 0x1.943d4a1d1ed39p-13, ++ 0x1.8208bc334a6a5p-13, ++ 0x1.709a8db59f25cp-13, ++ 0x1.5feada379d8b7p-13, ++ 0x1.4ff207314a102p-13, ++ 0x1.40a8c1949f75ep-13, ++ 0x1.3207fb7420eb9p-13, ++ 0x1.2408e9ba3327fp-13, ++ 0x1.16a501f0e42cap-13, ++ 0x1.09d5f819c9e29p-13, ++ 0x1.fb2b792b40a22p-14, ++ 0x1.e3bcf436a1a95p-14, ++ 0x1.cd55277c18d05p-14, ++ 0x1.b7e94604479dcp-14, ++ 0x1.a36eec00926ddp-14, ++ 0x1.8fdc1b2dcf7b9p-14, ++ 0x1.7d2737527c3f9p-14, ++ 0x1.6b4702d7d5849p-14, ++ 0x1.5a329b7d30748p-14, ++ 0x1.49e17724f4d41p-14, ++ 0x1.3a4b60ba9aa4dp-14, ++ 0x1.2b6875310f785p-14, ++ 0x1.1d312098e9dbap-14, ++ 0x1.0f9e1b4dd36dfp-14, ++ 0x1.02a8673a94691p-14, ++ 0x1.ec929a665b449p-15, ++ 0x1.d4f4b4c8e09edp-15, ++ 0x1.be6abbb10a5aap-15, ++ 0x1.a8e8cc1fadef6p-15, ++ 0x1.94637d5bacfdbp-15, ++ 0x1.80cfdc72220cfp-15, ++ 0x1.6e2367dc27f95p-15, ++ 0x1.5c540b4936fd2p-15, ++ 0x1.4b581b8d170fcp-15, ++ 0x1.3b2652b06c2b2p-15, ++ 0x1.2bb5cc22e5db6p-15, ++ 0x1.1cfe010e2052dp-15, ++ 0x1.0ef6c4c84a0fep-15, ++ 0x1.01984165a5f36p-15, ++ 0x1.e9b5e8d00ce76p-16, ++ 0x1.d16f5716c6c1ap-16, ++ 0x1.ba4f035d60e02p-16, ++ 0x1.a447b7b03f045p-16, ++ 0x1.8f4ccca7fc90dp-16, ++ 0x1.7b5223dac7336p-16, ++ 0x1.684c227fcacefp-16, ++ 0x1.562fac4329b48p-16, ++ 0x1.44f21e49054f2p-16, ++ 0x1.34894a5e24657p-16, ++ 0x1.24eb7254ccf83p-16, ++ 0x1.160f438c70913p-16, ++ 0x1.07ebd2a2d2844p-16, ++ 0x1.f4f12e9ab070ap-17, ++ 0x1.db5ad0b27805cp-17, ++ 0x1.c304efa2c6f4ep-17, ++ 0x1.abe09e9144b5ep-17, ++ 0x1.95df988e76644p-17, ++ 0x1.80f439b4ee04bp-17, ++ 0x1.6d11788a69c64p-17, ++ 0x1.5a2adfa0b4bc4p-17, ++ 0x1.4834877429b8fp-17, ++ 0x1.37231085c7d9ap-17, ++ 0x1.26eb9daed6f7ep-17, ++ 0x1.1783ceac28910p-17, ++ 0x1.08e1badf0fcedp-17, ++ 0x1.f5f7d88472604p-18, ++ 0x1.db92b5212fb8dp-18, ++ 0x1.c282cd3957edap-18, ++ 0x1.aab7abace48dcp-18, ++ 0x1.94219bfcb4928p-18, ++ 0x1.7eb1a2075864dp-18, ++ 0x1.6a597219a93d9p-18, ++ 0x1.570b69502f313p-18, ++ 0x1.44ba864670882p-18, ++ 0x1.335a62115bce2p-18, ++ 0x1.22df298214423p-18, ++ 0x1.133d96ae7e0ddp-18, ++ 0x1.046aeabcfcdecp-18, ++ 0x1.ecb9cfe1d8642p-19, ++ 0x1.d21397ead99cbp-19, ++ 0x1.b8d094c86d374p-19, ++ 0x1.a0df0f0c626dcp-19, ++ 0x1.8a2e269750a39p-19, ++ 0x1.74adc8f4064d3p-19, ++ 0x1.604ea819f007cp-19, ++ 0x1.4d0231928c6f9p-19, ++ 0x1.3aba85fe22e1fp-19, ++ 0x1.296a70f414053p-19, ++ 0x1.1905613b3abf2p-19, ++ 0x1.097f6156f32c5p-19, ++ 0x1.f59a20caf6695p-20, ++ 0x1.d9c73698fb1dcp-20, ++ 0x1.bf716c6168baep-20, ++ 0x1.a6852c6b58392p-20, ++ 0x1.8eefd70594a88p-20, ++ 0x1.789fb715aae95p-20, ++ 0x1.6383f726a8e04p-20, ++ 0x1.4f8c96f26a26ap-20, ++ 0x1.3caa61607f920p-20, ++ 0x1.2acee2f5ecdb8p-20, ++ 0x1.19ec60b1242edp-20, ++ 0x1.09f5cf4dd2877p-20, ++ 0x1.f5bd95d8730d8p-21, ++ 0x1.d9371e2ff7c35p-21, ++ 0x1.be41de54d155ap-21, ++ 0x1.a4c89e08ef4f3p-21, ++ 0x1.8cb738399b12cp-21, ++ 0x1.75fa8dbc84becp-21, ++ 0x1.608078a70dcbcp-21, ++ 0x1.4c37c0394d094p-21, ++ 0x1.39100d5687bfep-21, ++ 0x1.26f9df8519bd6p-21, ++ 0x1.15e6827001f18p-21, ++ 0x1.05c803e4831c1p-21, ++ 0x1.ed22548cffd35p-22, ++ 0x1.d06ad6ecdf971p-22, ++ 0x1.b551c847fbc96p-22, ++ 0x1.9bc09f112b494p-22, ++ 0x1.83a1ff0aa239dp-22, ++ 0x1.6ce1aa3fd7bddp-22, ++ 0x1.576c72b514859p-22, ++ 0x1.43302cc4a0da8p-22, ++ 0x1.301ba221dc9bbp-22, ++ 0x1.1e1e857adc568p-22, ++ 0x1.0d2966b1746f7p-22, ++ 0x1.fa5b4f49cc6b2p-23, ++ 0x1.dc3ae30b55c16p-23, ++ 0x1.bfd7555a3bd68p-23, ++ 0x1.a517d9e61628ap-23, ++ 0x1.8be4f8f6c951fp-23, ++ 0x1.74287ded49339p-23, ++ 0x1.5dcd669f2cd34p-23, ++ 0x1.48bfd38302870p-23, ++ 0x1.34ecf8a3c124ap-23, ++ 0x1.22430f521cbcfp-23, ++ 0x1.10b1488aeb235p-23, ++ 0x1.0027c00a263a6p-23, ++ 0x1.e12ee004efc37p-24, ++ 0x1.c3e44ae32b16bp-24, ++ 0x1.a854ea14102a8p-24, ++ 0x1.8e6761569f45dp-24, ++ 0x1.7603bac345f65p-24, ++ 0x1.5f1353cdad001p-24, ++ 0x1.4980cb3c80949p-24, ++ 0x1.3537f00b6ad4dp-24, ++ 0x1.2225b12bffc68p-24, ++ 0x1.10380e1adb7e9p-24, ++ 0x1.febc107d5efaap-25, ++ 0x1.df0f2a0ee6946p-25, ++ 0x1.c14b2188bcee4p-25, ++ 0x1.a553644f7f07dp-25, ++ 0x1.8b0cfce0579dfp-25, ++ 0x1.725e7c5dd20f7p-25, ++ 0x1.5b2fe547a1340p-25, ++ 0x1.456a974e92e93p-25, ++ 0x1.30f93c3699078p-25, ++ 0x1.1dc7b5b978cf8p-25, ++ 0x1.0bc30c5d52f15p-25, ++ 0x1.f5b2be65a0c7fp-26, ++ 0x1.d5f3a8dea7357p-26, ++ 0x1.b82915b03515bp-26, ++ 0x1.9c3517e789488p-26, ++ 0x1.81fb7df06136ep-26, ++ 0x1.6961b8d641d06p-26, ++ 0x1.524ec4d916caep-26, ++ 0x1.3cab1343d18d1p-26, ++ 0x1.2860757487a01p-26, ++ 0x1.155a09065d4f7p-26, ++ 0x1.0384250e4c9fcp-26, ++ 0x1.e59890b926c78p-27, ++ 0x1.c642116a8a9e3p-27, ++ 0x1.a8e405e651ab6p-27, ++ 0x1.8d5f98114f872p-27, ++ 0x1.7397c5a66e307p-27, ++ 0x1.5b71456c5a4c4p-27, ++ 0x1.44d26de513197p-27, ++ 0x1.2fa31d6371537p-27, ++ 0x1.1bcca373b7b43p-27, ++ 0x1.0939ab853339fp-27, ++ 0x1.efac5187b2863p-28, ++ 0x1.cf1e86235d0e6p-28, ++ 0x1.b0a68a2128babp-28, ++ 0x1.9423165bc4444p-28, ++ 0x1.7974e743dea3cp-28, ++ 0x1.607e9eacd1050p-28, ++ 0x1.4924a74dec728p-28, ++ 0x1.334d19e0c2160p-28, ++ 0x1.1edfa3c5f5ccap-28, ++ 0x1.0bc56f1b54701p-28, ++ 0x1.f3d2185e047d9p-29, ++ 0x1.d26cb87945e87p-29, ++ 0x1.b334fac4b9f99p-29, ++ 0x1.96076f7918d1cp-29, ++ 0x1.7ac2d72fc2c63p-29, ++ 0x1.614801550319ep-29, ++ 0x1.4979ac8b28926p-29, ++ 0x1.333c68e2d0548p-29, ++ 0x1.1e767bce37dd7p-29, ++ 0x1.0b0fc5b6d05a0p-29, ++ 0x1.f1e3523b41d7dp-30, ++ 0x1.d00de6608effep-30, ++ 0x1.b0778b7b3301ap-30, ++ 0x1.92fb04ec0f6cfp-30, ++ 0x1.77756ec9f78fap-30, ++ 0x1.5dc61922d5a06p-30, ++ 0x1.45ce65699ff6dp-30, ++ 0x1.2f71a5f159970p-30, ++ 0x1.1a94ff571654fp-30, ++ 0x1.071f4bbea09ecp-30, ++ 0x1.e9f1ff8ddd774p-31, ++ 0x1.c818223a202c7p-31, ++ 0x1.a887bd2b4404dp-31, ++ 0x1.8b1a336c5eb6bp-31, ++ 0x1.6fab63324088ap-31, ++ 0x1.56197e30205bap-31, ++ 0x1.3e44e45301b92p-31, ++ 0x1.281000bfe4c3fp-31, ++ 0x1.135f28f2d50b4p-31, ++ 0x1.00187dded5975p-31, ++ 0x1.dc479de0ef001p-32, ++ 0x1.bad4fdad3caa1p-32, ++ 0x1.9baed3ed27ab8p-32, ++ 0x1.7ead9ce4285bbp-32, ++ 0x1.63ac6b4edc88ep-32, ++ 0x1.4a88be2a6390cp-32, ++ 0x1.332259185f1a0p-32, ++ 0x1.1d5b1f3793044p-32, ++ 0x1.0916f04b6e18bp-32, ++ 0x1.ec77101de6926p-33, ++ 0x1.c960bf23153e0p-33, ++ 0x1.a8bd20fc65ef7p-33, ++ 0x1.8a61745ec7d1dp-33, ++ 0x1.6e25d0e756261p-33, ++ 0x1.53e4f7d1666cbp-33, ++ 0x1.3b7c27a7ddb0ep-33, ++ 0x1.24caf2c32af14p-33, ++ 0x1.0fb3186804d0fp-33, ++ 0x1.f830c0bb41fd7p-34, ++ 0x1.d3c0f1a91c846p-34, ++ 0x1.b1e5acf351d87p-34, ++ 0x1.92712d259ce66p-34, ++ 0x1.7538c60a04476p-34, ++ 0x1.5a14b04b47879p-34, ++ 0x1.40dfd87456f4cp-34, ++ 0x1.2977b1172b9d5p-34, ++ 0x1.13bc07e891491p-34, ++ 0x1.ff1dbb4300811p-35, ++ 0x1.d9a880f306bd8p-35, ++ 0x1.b6e45220b55e0p-35, ++ 0x1.96a0b33f2c4dap-35, ++ 0x1.78b07e9e924acp-35, ++ 0x1.5ce9ab1670dd2p-35, ++ 0x1.4325167006bb0p-35, ++ 0x1.2b3e53538ff3fp-35, ++ 0x1.15137a7f44864p-35, ++ 0x1.0084ff125639dp-35, ++ 0x1.daeb0b7311ec7p-36, ++ 0x1.b7937d1c40c52p-36, ++ 0x1.96d082f59ab06p-36, ++ 0x1.7872d9fa10aadp-36, ++ 0x1.5c4e8e37bc7d0p-36, ++ 0x1.423ac0df49a40p-36, ++ 0x1.2a117230ad284p-36, ++ 0x1.13af4f04f9998p-36, ++ 0x1.fde703724e560p-37, ++ 0x1.d77f0c82e7641p-37, ++ 0x1.b3ee02611d7ddp-37, ++ 0x1.92ff33023d5bdp-37, ++ 0x1.7481a9e69f53fp-37, ++ 0x1.5847eda620959p-37, ++ 0x1.3e27c1fcc74bdp-37, ++ 0x1.25f9ee0b923dcp-37, ++ 0x1.0f9a0686531ffp-37, ++ 0x1.f5cc7718082afp-38, ++ 0x1.cf7e53d6a2ca5p-38, ++ 0x1.ac0f5f3229372p-38, ++ 0x1.8b498644847eap-38, ++ 0x1.6cfa9bcca59dcp-38, ++ 0x1.50f411d4fd2cdp-38, ++ 0x1.370ab8327af5ep-38, ++ 0x1.1f167f88c6b6ep-38, ++ 0x1.08f24085d4597p-38, ++ 0x1.e8f70e181d619p-39, ++ 0x1.c324c20e337dcp-39, ++ 0x1.a03261574b54ep-39, ++ 0x1.7fe903cdf5855p-39, ++ 0x1.6215c58da3450p-39, ++ 0x1.46897d4b69fc6p-39, ++ 0x1.2d1877d731b7bp-39, ++ 0x1.159a386b11517p-39, ++ 0x1.ffd27ae9393cep-40, ++ 0x1.d7c593130dd0bp-40, ++ 0x1.b2cd607c79bcfp-40, ++ 0x1.90ae4d3405651p-40, ++ 0x1.71312dd1759e2p-40, ++ 0x1.5422ef5d8949dp-40, ++ 0x1.39544b0ecc957p-40, ++ 0x1.20997f73e73ddp-40, ++ 0x1.09ca0eaacd277p-40, ++ 0x1.e9810295890ecp-41, ++ 0x1.c2b45b5aa4a1dp-41, ++ 0x1.9eee068fa7596p-41, ++ 0x1.7df2b399c10a8p-41, ++ 0x1.5f8b87a31bd85p-41, ++ 0x1.4385c96e9a2d9p-41, ++ 0x1.29b2933ef4cbcp-41, ++ 0x1.11e68a6378f8ap-41, ++ 0x1.f7f338086a86bp-42, ++ 0x1.cf8d7d9ce040ap-42, ++ 0x1.aa577251ae484p-42, ++ 0x1.8811d739efb5ep-42, ++ 0x1.68823e52970bep-42, ++ 0x1.4b72ae68e8b4cp-42, ++ 0x1.30b14dbe876bcp-42, ++ 0x1.181012ef86610p-42, ++ 0x1.01647ba798744p-42, ++ 0x1.d90e917701675p-43, ++ 0x1.b2a87e86d0c8ap-43, ++ 0x1.8f53dcb377293p-43, ++ 0x1.6ed2f2515e933p-43, ++ 0x1.50ecc9ed47f19p-43, ++ 0x1.356cd5ce7799ep-43, ++ 0x1.1c229a587ab78p-43, ++ 0x1.04e15ecc7f3f6p-43, ++ 0x1.deffc7e6a6017p-44, ++ 0x1.b7b040832f310p-44, ++ 0x1.938e021f36d76p-44, ++ 0x1.7258610b3b233p-44, ++ 0x1.53d3bfc82a909p-44, ++ 0x1.37c92babdc2fdp-44, ++ 0x1.1e06010120f6ap-44, ++ 0x1.065b9616170d4p-44, ++ 0x1.e13dd96b3753ap-45, ++ 0x1.b950d32467392p-45, ++ 0x1.94a72263259a5p-45, ++ 0x1.72fd93e036cdcp-45, ++ 0x1.54164576929abp-45, ++ 0x1.37b83c521fe96p-45, ++ 0x1.1daf033182e96p-45, ++ 0x1.05ca50205d26ap-45, ++ 0x1.dfbb6235639fap-46, ++ 0x1.b7807e294781fp-46, ++ 0x1.9298add70a734p-46, ++ 0x1.70beaf9c7ffb6p-46, ++ 0x1.51b2cd6709222p-46, ++ 0x1.353a6cf7f7fffp-46, ++ 0x1.1b1fa8cbe84a7p-46, ++ 0x1.0330f0fd69921p-46, ++ 0x1.da81670f96f9bp-47, ++ 0x1.b24a16b4d09aap-47, ++ 0x1.8d6eeb6efdbd6p-47, ++ 0x1.6ba91ac734785p-47, ++ 0x1.4cb7966770ab5p-47, ++ 0x1.305e9721d0981p-47, ++ 0x1.1667311fff70ap-47, ++ 0x1.fd3de10d62855p-48, ++ 0x1.d1aefbcd48d0cp-48, ++ 0x1.a9cc93c25aca9p-48, ++ 0x1.85487ee3ea735p-48, ++ 0x1.63daf8b4b1e0cp-48, ++ 0x1.45421e69a6ca1p-48, ++ 0x1.294175802d99ap-48, ++ 0x1.0fa17bf41068fp-48, ++ 0x1.f05e82aae2bb9p-49, ++ 0x1.c578101b29058p-49, ++ 0x1.9e39dc5dd2f7cp-49, ++ 0x1.7a553a728bbf2p-49, ++ 0x1.5982008db1304p-49, ++ 0x1.3b7e00422e51bp-49, ++ 0x1.200c898d9ee3ep-49, ++ 0x1.06f5f7eb65a56p-49, ++ 0x1.e00e9148a1d25p-50, ++ 0x1.b623734024e92p-50, ++ 0x1.8fd4e01891bf8p-50, ++ 0x1.6cd44c7470d89p-50, ++ 0x1.4cd9c04158cd7p-50, ++ 0x1.2fa34bf5c8344p-50, ++ 0x1.14f4890ff2461p-50, ++ 0x1.f92c49dfa4df5p-51, ++ 0x1.ccaaea71ab0dfp-51, ++ 0x1.a40829f001197p-51, ++ 0x1.7eef13b59e96cp-51, ++ 0x1.5d11e1a252bf5p-51, ++ 0x1.3e296303b2297p-51, ++ 0x1.21f47009f43cep-51, ++ 0x1.083768c5e4541p-51, ++ 0x1.e1777d831265ep-52, ++ 0x1.b69f10b0191b5p-52, ++ 0x1.8f8a3a05b5b52p-52, ++ 0x1.6be573c40c8e7p-52, ++ 0x1.4b645ba991fdbp-52, ++ 0x1.2dc119095729fp-52, ++ }, ++}; +diff --git a/sysdeps/aarch64/fpu/sv_erff_data.c b/sysdeps/aarch64/fpu/sv_erff_data.c +new file mode 100644 +index 0000000000000000..6dcd72af69431379 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/sv_erff_data.c +@@ -0,0 +1,1058 @@ ++/* Table for SVE erff approximation ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "vecmath_config.h" ++ ++/* Lookup table used in SVE erff. ++ For each possible rounded input r (multiples of 1/128), between ++ r = 0.0 and r = 4.0 (513 values): ++ - __erff_data.erf contains the values of erf(r), ++ - __erff_data.scale contains the values of 2/sqrt(pi)*exp(-r^2). ++ Note that indices 0 and 1 are never hit by the algorithm, since lookup is ++ performed only for x >= 1/64-1/512. */ ++const struct sv_erff_data __sv_erff_data = { ++ .erf = { 0x0.000000p+0, ++ 0x1.20dbf4p-7, ++ 0x1.20d770p-6, ++ 0x1.b137e0p-6, ++ 0x1.20c564p-5, ++ 0x1.68e5d4p-5, ++ 0x1.b0fafep-5, ++ 0x1.f902a8p-5, ++ 0x1.207d48p-4, ++ 0x1.44703ep-4, ++ 0x1.68591ap-4, ++ 0x1.8c36bep-4, ++ 0x1.b00812p-4, ++ 0x1.d3cbf8p-4, ++ 0x1.f7815ap-4, ++ 0x1.0d9390p-3, ++ 0x1.1f5e1ap-3, ++ 0x1.311fc2p-3, ++ 0x1.42d7fcp-3, ++ 0x1.548642p-3, ++ 0x1.662a0cp-3, ++ 0x1.77c2d2p-3, ++ 0x1.895010p-3, ++ 0x1.9ad142p-3, ++ 0x1.ac45e4p-3, ++ 0x1.bdad72p-3, ++ 0x1.cf076ep-3, ++ 0x1.e05354p-3, ++ 0x1.f190aap-3, ++ 0x1.015f78p-2, ++ 0x1.09eed6p-2, ++ 0x1.127632p-2, ++ 0x1.1af54ep-2, ++ 0x1.236bf0p-2, ++ 0x1.2bd9dcp-2, ++ 0x1.343ed6p-2, ++ 0x1.3c9aa8p-2, ++ 0x1.44ed18p-2, ++ 0x1.4d35f0p-2, ++ 0x1.5574f4p-2, ++ 0x1.5da9f4p-2, ++ 0x1.65d4b8p-2, ++ 0x1.6df50ap-2, ++ 0x1.760abap-2, ++ 0x1.7e1594p-2, ++ 0x1.861566p-2, ++ 0x1.8e0a02p-2, ++ 0x1.95f336p-2, ++ 0x1.9dd0d2p-2, ++ 0x1.a5a2acp-2, ++ 0x1.ad6896p-2, ++ 0x1.b52264p-2, ++ 0x1.bccfecp-2, ++ 0x1.c47104p-2, ++ 0x1.cc0584p-2, ++ 0x1.d38d44p-2, ++ 0x1.db081cp-2, ++ 0x1.e275eap-2, ++ 0x1.e9d68ap-2, ++ 0x1.f129d4p-2, ++ 0x1.f86faap-2, ++ 0x1.ffa7eap-2, ++ 0x1.03693ap-1, ++ 0x1.06f794p-1, ++ 0x1.0a7ef6p-1, ++ 0x1.0dff50p-1, ++ 0x1.117894p-1, ++ 0x1.14eab4p-1, ++ 0x1.1855a6p-1, ++ 0x1.1bb95cp-1, ++ 0x1.1f15ccp-1, ++ 0x1.226ae8p-1, ++ 0x1.25b8a8p-1, ++ 0x1.28ff02p-1, ++ 0x1.2c3decp-1, ++ 0x1.2f755cp-1, ++ 0x1.32a54cp-1, ++ 0x1.35cdb4p-1, ++ 0x1.38ee8ap-1, ++ 0x1.3c07cap-1, ++ 0x1.3f196ep-1, ++ 0x1.42236ep-1, ++ 0x1.4525c8p-1, ++ 0x1.482074p-1, ++ 0x1.4b1372p-1, ++ 0x1.4dfebap-1, ++ 0x1.50e24cp-1, ++ 0x1.53be26p-1, ++ 0x1.569244p-1, ++ 0x1.595ea6p-1, ++ 0x1.5c2348p-1, ++ 0x1.5ee02ep-1, ++ 0x1.619556p-1, ++ 0x1.6442c0p-1, ++ 0x1.66e86ep-1, ++ 0x1.69865ep-1, ++ 0x1.6c1c98p-1, ++ 0x1.6eab18p-1, ++ 0x1.7131e6p-1, ++ 0x1.73b102p-1, ++ 0x1.762870p-1, ++ 0x1.789836p-1, ++ 0x1.7b0058p-1, ++ 0x1.7d60d8p-1, ++ 0x1.7fb9c0p-1, ++ 0x1.820b12p-1, ++ 0x1.8454d6p-1, ++ 0x1.869712p-1, ++ 0x1.88d1cep-1, ++ 0x1.8b050ep-1, ++ 0x1.8d30dep-1, ++ 0x1.8f5544p-1, ++ 0x1.91724ap-1, ++ 0x1.9387f6p-1, ++ 0x1.959652p-1, ++ 0x1.979d68p-1, ++ 0x1.999d42p-1, ++ 0x1.9b95e8p-1, ++ 0x1.9d8768p-1, ++ 0x1.9f71cap-1, ++ 0x1.a1551ap-1, ++ 0x1.a33162p-1, ++ 0x1.a506b0p-1, ++ 0x1.a6d50cp-1, ++ 0x1.a89c86p-1, ++ 0x1.aa5d26p-1, ++ 0x1.ac16fcp-1, ++ 0x1.adca14p-1, ++ 0x1.af767ap-1, ++ 0x1.b11c3cp-1, ++ 0x1.b2bb68p-1, ++ 0x1.b4540ap-1, ++ 0x1.b5e630p-1, ++ 0x1.b771e8p-1, ++ 0x1.b8f742p-1, ++ 0x1.ba764ap-1, ++ 0x1.bbef10p-1, ++ 0x1.bd61a2p-1, ++ 0x1.bece0ep-1, ++ 0x1.c03464p-1, ++ 0x1.c194b2p-1, ++ 0x1.c2ef08p-1, ++ 0x1.c44376p-1, ++ 0x1.c5920ap-1, ++ 0x1.c6dad2p-1, ++ 0x1.c81de2p-1, ++ 0x1.c95b46p-1, ++ 0x1.ca930ep-1, ++ 0x1.cbc54cp-1, ++ 0x1.ccf20cp-1, ++ 0x1.ce1962p-1, ++ 0x1.cf3b5cp-1, ++ 0x1.d0580cp-1, ++ 0x1.d16f7ep-1, ++ 0x1.d281c4p-1, ++ 0x1.d38ef0p-1, ++ 0x1.d49710p-1, ++ 0x1.d59a34p-1, ++ 0x1.d6986cp-1, ++ 0x1.d791cap-1, ++ 0x1.d8865ep-1, ++ 0x1.d97636p-1, ++ 0x1.da6162p-1, ++ 0x1.db47f4p-1, ++ 0x1.dc29fcp-1, ++ 0x1.dd0788p-1, ++ 0x1.dde0aap-1, ++ 0x1.deb570p-1, ++ 0x1.df85eap-1, ++ 0x1.e0522ap-1, ++ 0x1.e11a3ep-1, ++ 0x1.e1de36p-1, ++ 0x1.e29e22p-1, ++ 0x1.e35a12p-1, ++ 0x1.e41214p-1, ++ 0x1.e4c638p-1, ++ 0x1.e5768cp-1, ++ 0x1.e62322p-1, ++ 0x1.e6cc08p-1, ++ 0x1.e7714ap-1, ++ 0x1.e812fcp-1, ++ 0x1.e8b12ap-1, ++ 0x1.e94be4p-1, ++ 0x1.e9e336p-1, ++ 0x1.ea7730p-1, ++ 0x1.eb07e2p-1, ++ 0x1.eb9558p-1, ++ 0x1.ec1fa2p-1, ++ 0x1.eca6ccp-1, ++ 0x1.ed2ae6p-1, ++ 0x1.edabfcp-1, ++ 0x1.ee2a1ep-1, ++ 0x1.eea556p-1, ++ 0x1.ef1db4p-1, ++ 0x1.ef9344p-1, ++ 0x1.f00614p-1, ++ 0x1.f07630p-1, ++ 0x1.f0e3a6p-1, ++ 0x1.f14e82p-1, ++ 0x1.f1b6d0p-1, ++ 0x1.f21ca0p-1, ++ 0x1.f27ff8p-1, ++ 0x1.f2e0eap-1, ++ 0x1.f33f7ep-1, ++ 0x1.f39bc2p-1, ++ 0x1.f3f5c2p-1, ++ 0x1.f44d88p-1, ++ 0x1.f4a31ep-1, ++ 0x1.f4f694p-1, ++ 0x1.f547f2p-1, ++ 0x1.f59742p-1, ++ 0x1.f5e490p-1, ++ 0x1.f62fe8p-1, ++ 0x1.f67952p-1, ++ 0x1.f6c0dcp-1, ++ 0x1.f7068cp-1, ++ 0x1.f74a6ep-1, ++ 0x1.f78c8cp-1, ++ 0x1.f7cceep-1, ++ 0x1.f80ba2p-1, ++ 0x1.f848acp-1, ++ 0x1.f8841ap-1, ++ 0x1.f8bdf2p-1, ++ 0x1.f8f63ep-1, ++ 0x1.f92d08p-1, ++ 0x1.f96256p-1, ++ 0x1.f99634p-1, ++ 0x1.f9c8a8p-1, ++ 0x1.f9f9bap-1, ++ 0x1.fa2974p-1, ++ 0x1.fa57dep-1, ++ 0x1.fa84fep-1, ++ 0x1.fab0dep-1, ++ 0x1.fadb84p-1, ++ 0x1.fb04f6p-1, ++ 0x1.fb2d40p-1, ++ 0x1.fb5464p-1, ++ 0x1.fb7a6cp-1, ++ 0x1.fb9f60p-1, ++ 0x1.fbc344p-1, ++ 0x1.fbe61ep-1, ++ 0x1.fc07fap-1, ++ 0x1.fc28d8p-1, ++ 0x1.fc48c2p-1, ++ 0x1.fc67bcp-1, ++ 0x1.fc85d0p-1, ++ 0x1.fca2fep-1, ++ 0x1.fcbf52p-1, ++ 0x1.fcdaccp-1, ++ 0x1.fcf576p-1, ++ 0x1.fd0f54p-1, ++ 0x1.fd286ap-1, ++ 0x1.fd40bep-1, ++ 0x1.fd5856p-1, ++ 0x1.fd6f34p-1, ++ 0x1.fd8562p-1, ++ 0x1.fd9ae2p-1, ++ 0x1.fdafb8p-1, ++ 0x1.fdc3e8p-1, ++ 0x1.fdd77ap-1, ++ 0x1.fdea6ep-1, ++ 0x1.fdfcccp-1, ++ 0x1.fe0e96p-1, ++ 0x1.fe1fd0p-1, ++ 0x1.fe3080p-1, ++ 0x1.fe40a6p-1, ++ 0x1.fe504cp-1, ++ 0x1.fe5f70p-1, ++ 0x1.fe6e18p-1, ++ 0x1.fe7c46p-1, ++ 0x1.fe8a00p-1, ++ 0x1.fe9748p-1, ++ 0x1.fea422p-1, ++ 0x1.feb090p-1, ++ 0x1.febc96p-1, ++ 0x1.fec836p-1, ++ 0x1.fed374p-1, ++ 0x1.fede52p-1, ++ 0x1.fee8d4p-1, ++ 0x1.fef2fep-1, ++ 0x1.fefccep-1, ++ 0x1.ff064cp-1, ++ 0x1.ff0f76p-1, ++ 0x1.ff1852p-1, ++ 0x1.ff20e0p-1, ++ 0x1.ff2924p-1, ++ 0x1.ff3120p-1, ++ 0x1.ff38d6p-1, ++ 0x1.ff4048p-1, ++ 0x1.ff4778p-1, ++ 0x1.ff4e68p-1, ++ 0x1.ff551ap-1, ++ 0x1.ff5b90p-1, ++ 0x1.ff61ccp-1, ++ 0x1.ff67d0p-1, ++ 0x1.ff6d9ep-1, ++ 0x1.ff7338p-1, ++ 0x1.ff789ep-1, ++ 0x1.ff7dd4p-1, ++ 0x1.ff82dap-1, ++ 0x1.ff87b2p-1, ++ 0x1.ff8c5cp-1, ++ 0x1.ff90dcp-1, ++ 0x1.ff9532p-1, ++ 0x1.ff9960p-1, ++ 0x1.ff9d68p-1, ++ 0x1.ffa14ap-1, ++ 0x1.ffa506p-1, ++ 0x1.ffa8a0p-1, ++ 0x1.ffac18p-1, ++ 0x1.ffaf6ep-1, ++ 0x1.ffb2a6p-1, ++ 0x1.ffb5bep-1, ++ 0x1.ffb8b8p-1, ++ 0x1.ffbb98p-1, ++ 0x1.ffbe5ap-1, ++ 0x1.ffc102p-1, ++ 0x1.ffc390p-1, ++ 0x1.ffc606p-1, ++ 0x1.ffc862p-1, ++ 0x1.ffcaa8p-1, ++ 0x1.ffccd8p-1, ++ 0x1.ffcef4p-1, ++ 0x1.ffd0fap-1, ++ 0x1.ffd2eap-1, ++ 0x1.ffd4cap-1, ++ 0x1.ffd696p-1, ++ 0x1.ffd84ep-1, ++ 0x1.ffd9f8p-1, ++ 0x1.ffdb90p-1, ++ 0x1.ffdd18p-1, ++ 0x1.ffde90p-1, ++ 0x1.ffdffap-1, ++ 0x1.ffe154p-1, ++ 0x1.ffe2a2p-1, ++ 0x1.ffe3e2p-1, ++ 0x1.ffe514p-1, ++ 0x1.ffe63cp-1, ++ 0x1.ffe756p-1, ++ 0x1.ffe866p-1, ++ 0x1.ffe96ap-1, ++ 0x1.ffea64p-1, ++ 0x1.ffeb54p-1, ++ 0x1.ffec3ap-1, ++ 0x1.ffed16p-1, ++ 0x1.ffedeap-1, ++ 0x1.ffeeb4p-1, ++ 0x1.ffef76p-1, ++ 0x1.fff032p-1, ++ 0x1.fff0e4p-1, ++ 0x1.fff18ep-1, ++ 0x1.fff232p-1, ++ 0x1.fff2d0p-1, ++ 0x1.fff366p-1, ++ 0x1.fff3f6p-1, ++ 0x1.fff480p-1, ++ 0x1.fff504p-1, ++ 0x1.fff582p-1, ++ 0x1.fff5fcp-1, ++ 0x1.fff670p-1, ++ 0x1.fff6dep-1, ++ 0x1.fff74ap-1, ++ 0x1.fff7aep-1, ++ 0x1.fff810p-1, ++ 0x1.fff86cp-1, ++ 0x1.fff8c6p-1, ++ 0x1.fff91cp-1, ++ 0x1.fff96cp-1, ++ 0x1.fff9bap-1, ++ 0x1.fffa04p-1, ++ 0x1.fffa4cp-1, ++ 0x1.fffa90p-1, ++ 0x1.fffad0p-1, ++ 0x1.fffb0ep-1, ++ 0x1.fffb4ap-1, ++ 0x1.fffb82p-1, ++ 0x1.fffbb8p-1, ++ 0x1.fffbecp-1, ++ 0x1.fffc1ep-1, ++ 0x1.fffc4ep-1, ++ 0x1.fffc7ap-1, ++ 0x1.fffca6p-1, ++ 0x1.fffccep-1, ++ 0x1.fffcf6p-1, ++ 0x1.fffd1ap-1, ++ 0x1.fffd3ep-1, ++ 0x1.fffd60p-1, ++ 0x1.fffd80p-1, ++ 0x1.fffda0p-1, ++ 0x1.fffdbep-1, ++ 0x1.fffddap-1, ++ 0x1.fffdf4p-1, ++ 0x1.fffe0ep-1, ++ 0x1.fffe26p-1, ++ 0x1.fffe3ep-1, ++ 0x1.fffe54p-1, ++ 0x1.fffe68p-1, ++ 0x1.fffe7ep-1, ++ 0x1.fffe90p-1, ++ 0x1.fffea2p-1, ++ 0x1.fffeb4p-1, ++ 0x1.fffec4p-1, ++ 0x1.fffed4p-1, ++ 0x1.fffee4p-1, ++ 0x1.fffef2p-1, ++ 0x1.ffff00p-1, ++ 0x1.ffff0cp-1, ++ 0x1.ffff18p-1, ++ 0x1.ffff24p-1, ++ 0x1.ffff30p-1, ++ 0x1.ffff3ap-1, ++ 0x1.ffff44p-1, ++ 0x1.ffff4ep-1, ++ 0x1.ffff56p-1, ++ 0x1.ffff60p-1, ++ 0x1.ffff68p-1, ++ 0x1.ffff70p-1, ++ 0x1.ffff78p-1, ++ 0x1.ffff7ep-1, ++ 0x1.ffff84p-1, ++ 0x1.ffff8cp-1, ++ 0x1.ffff92p-1, ++ 0x1.ffff98p-1, ++ 0x1.ffff9cp-1, ++ 0x1.ffffa2p-1, ++ 0x1.ffffa6p-1, ++ 0x1.ffffacp-1, ++ 0x1.ffffb0p-1, ++ 0x1.ffffb4p-1, ++ 0x1.ffffb8p-1, ++ 0x1.ffffbcp-1, ++ 0x1.ffffc0p-1, ++ 0x1.ffffc4p-1, ++ 0x1.ffffc6p-1, ++ 0x1.ffffcap-1, ++ 0x1.ffffccp-1, ++ 0x1.ffffd0p-1, ++ 0x1.ffffd2p-1, ++ 0x1.ffffd4p-1, ++ 0x1.ffffd6p-1, ++ 0x1.ffffd8p-1, ++ 0x1.ffffdcp-1, ++ 0x1.ffffdep-1, ++ 0x1.ffffdep-1, ++ 0x1.ffffe0p-1, ++ 0x1.ffffe2p-1, ++ 0x1.ffffe4p-1, ++ 0x1.ffffe6p-1, ++ 0x1.ffffe8p-1, ++ 0x1.ffffe8p-1, ++ 0x1.ffffeap-1, ++ 0x1.ffffeap-1, ++ 0x1.ffffecp-1, ++ 0x1.ffffeep-1, ++ 0x1.ffffeep-1, ++ 0x1.fffff0p-1, ++ 0x1.fffff0p-1, ++ 0x1.fffff2p-1, ++ 0x1.fffff2p-1, ++ 0x1.fffff2p-1, ++ 0x1.fffff4p-1, ++ 0x1.fffff4p-1, ++ 0x1.fffff4p-1, ++ 0x1.fffff6p-1, ++ 0x1.fffff6p-1, ++ 0x1.fffff6p-1, ++ 0x1.fffff8p-1, ++ 0x1.fffff8p-1, ++ 0x1.fffff8p-1, ++ 0x1.fffff8p-1, ++ 0x1.fffffap-1, ++ 0x1.fffffap-1, ++ 0x1.fffffap-1, ++ 0x1.fffffap-1, ++ 0x1.fffffap-1, ++ 0x1.fffffap-1, ++ 0x1.fffffcp-1, ++ 0x1.fffffcp-1, ++ 0x1.fffffcp-1, ++ 0x1.fffffcp-1, ++ 0x1.fffffcp-1, ++ 0x1.fffffcp-1, ++ 0x1.fffffcp-1, ++ 0x1.fffffcp-1, ++ 0x1.fffffep-1, ++ 0x1.fffffep-1, ++ 0x1.fffffep-1, ++ 0x1.fffffep-1, ++ 0x1.fffffep-1, ++ 0x1.fffffep-1, ++ 0x1.fffffep-1, ++ 0x1.fffffep-1, ++ 0x1.fffffep-1, ++ 0x1.fffffep-1, ++ 0x1.fffffep-1, ++ 0x1.fffffep-1, ++ 0x1.fffffep-1, ++ 0x1.fffffep-1, ++ 0x1.fffffep-1, ++ 0x1.fffffep-1, ++ 0x1.fffffep-1, ++ 0x1.fffffep-1, ++ 0x1.000000p+0, ++ 0x1.000000p+0, ++ 0x1.000000p+0, ++ 0x1.000000p+0, ++ 0x1.000000p+0, ++ 0x1.000000p+0, ++ 0x1.000000p+0, ++ 0x1.000000p+0, ++ 0x1.000000p+0, ++ 0x1.000000p+0, ++ 0x1.000000p+0, ++ }, ++ .scale = { 0x1.20dd76p+0, ++ 0x1.20d8f2p+0, ++ 0x1.20cb68p+0, ++ 0x1.20b4d8p+0, ++ 0x1.209546p+0, ++ 0x1.206cb4p+0, ++ 0x1.203b26p+0, ++ 0x1.2000a0p+0, ++ 0x1.1fbd28p+0, ++ 0x1.1f70c4p+0, ++ 0x1.1f1b7ap+0, ++ 0x1.1ebd56p+0, ++ 0x1.1e565cp+0, ++ 0x1.1de698p+0, ++ 0x1.1d6e14p+0, ++ 0x1.1cecdcp+0, ++ 0x1.1c62fap+0, ++ 0x1.1bd07cp+0, ++ 0x1.1b3572p+0, ++ 0x1.1a91e6p+0, ++ 0x1.19e5eap+0, ++ 0x1.19318cp+0, ++ 0x1.1874dep+0, ++ 0x1.17aff0p+0, ++ 0x1.16e2d8p+0, ++ 0x1.160da4p+0, ++ 0x1.153068p+0, ++ 0x1.144b3cp+0, ++ 0x1.135e30p+0, ++ 0x1.12695ep+0, ++ 0x1.116cd8p+0, ++ 0x1.1068bap+0, ++ 0x1.0f5d16p+0, ++ 0x1.0e4a08p+0, ++ 0x1.0d2fa6p+0, ++ 0x1.0c0e0ap+0, ++ 0x1.0ae550p+0, ++ 0x1.09b590p+0, ++ 0x1.087ee4p+0, ++ 0x1.07416cp+0, ++ 0x1.05fd3ep+0, ++ 0x1.04b27cp+0, ++ 0x1.036140p+0, ++ 0x1.0209a6p+0, ++ 0x1.00abd0p+0, ++ 0x1.fe8fb0p-1, ++ 0x1.fbbbbep-1, ++ 0x1.f8dc0ap-1, ++ 0x1.f5f0cep-1, ++ 0x1.f2fa4cp-1, ++ 0x1.eff8c4p-1, ++ 0x1.ecec78p-1, ++ 0x1.e9d5a8p-1, ++ 0x1.e6b498p-1, ++ 0x1.e38988p-1, ++ 0x1.e054bep-1, ++ 0x1.dd167cp-1, ++ 0x1.d9cf06p-1, ++ 0x1.d67ea2p-1, ++ 0x1.d32592p-1, ++ 0x1.cfc41ep-1, ++ 0x1.cc5a8ap-1, ++ 0x1.c8e91cp-1, ++ 0x1.c5701ap-1, ++ 0x1.c1efcap-1, ++ 0x1.be6872p-1, ++ 0x1.bada5ap-1, ++ 0x1.b745c6p-1, ++ 0x1.b3aafcp-1, ++ 0x1.b00a46p-1, ++ 0x1.ac63e8p-1, ++ 0x1.a8b828p-1, ++ 0x1.a5074ep-1, ++ 0x1.a1519ep-1, ++ 0x1.9d9762p-1, ++ 0x1.99d8dap-1, ++ 0x1.961650p-1, ++ 0x1.925008p-1, ++ 0x1.8e8646p-1, ++ 0x1.8ab950p-1, ++ 0x1.86e96ap-1, ++ 0x1.8316d6p-1, ++ 0x1.7f41dcp-1, ++ 0x1.7b6abcp-1, ++ 0x1.7791b8p-1, ++ 0x1.73b714p-1, ++ 0x1.6fdb12p-1, ++ 0x1.6bfdf0p-1, ++ 0x1.681ff2p-1, ++ 0x1.644156p-1, ++ 0x1.60625cp-1, ++ 0x1.5c8342p-1, ++ 0x1.58a446p-1, ++ 0x1.54c5a6p-1, ++ 0x1.50e79ep-1, ++ 0x1.4d0a68p-1, ++ 0x1.492e42p-1, ++ 0x1.455366p-1, ++ 0x1.417a0cp-1, ++ 0x1.3da26ep-1, ++ 0x1.39ccc2p-1, ++ 0x1.35f940p-1, ++ 0x1.32281ep-1, ++ 0x1.2e5992p-1, ++ 0x1.2a8dcep-1, ++ 0x1.26c508p-1, ++ 0x1.22ff72p-1, ++ 0x1.1f3d3cp-1, ++ 0x1.1b7e98p-1, ++ 0x1.17c3b6p-1, ++ 0x1.140cc4p-1, ++ 0x1.1059eep-1, ++ 0x1.0cab62p-1, ++ 0x1.09014cp-1, ++ 0x1.055bd6p-1, ++ 0x1.01bb2cp-1, ++ 0x1.fc3ee6p-2, ++ 0x1.f511aap-2, ++ 0x1.edeeeep-2, ++ 0x1.e6d700p-2, ++ 0x1.dfca26p-2, ++ 0x1.d8c8aap-2, ++ 0x1.d1d2d0p-2, ++ 0x1.cae8dap-2, ++ 0x1.c40b08p-2, ++ 0x1.bd3998p-2, ++ 0x1.b674c8p-2, ++ 0x1.afbcd4p-2, ++ 0x1.a911f0p-2, ++ 0x1.a27456p-2, ++ 0x1.9be438p-2, ++ 0x1.9561c8p-2, ++ 0x1.8eed36p-2, ++ 0x1.8886b2p-2, ++ 0x1.822e66p-2, ++ 0x1.7be47ap-2, ++ 0x1.75a91ap-2, ++ 0x1.6f7c6ap-2, ++ 0x1.695e8cp-2, ++ 0x1.634fa6p-2, ++ 0x1.5d4fd4p-2, ++ 0x1.575f34p-2, ++ 0x1.517de6p-2, ++ 0x1.4bac00p-2, ++ 0x1.45e99cp-2, ++ 0x1.4036d0p-2, ++ 0x1.3a93b2p-2, ++ 0x1.350052p-2, ++ 0x1.2f7cc4p-2, ++ 0x1.2a0916p-2, ++ 0x1.24a554p-2, ++ 0x1.1f518ap-2, ++ 0x1.1a0dc6p-2, ++ 0x1.14da0ap-2, ++ 0x1.0fb662p-2, ++ 0x1.0aa2d0p-2, ++ 0x1.059f5ap-2, ++ 0x1.00ac00p-2, ++ 0x1.f79184p-3, ++ 0x1.edeb40p-3, ++ 0x1.e46530p-3, ++ 0x1.daff4ap-3, ++ 0x1.d1b982p-3, ++ 0x1.c893cep-3, ++ 0x1.bf8e1cp-3, ++ 0x1.b6a856p-3, ++ 0x1.ade26cp-3, ++ 0x1.a53c42p-3, ++ 0x1.9cb5bep-3, ++ 0x1.944ec2p-3, ++ 0x1.8c0732p-3, ++ 0x1.83deeap-3, ++ 0x1.7bd5c8p-3, ++ 0x1.73eba4p-3, ++ 0x1.6c2056p-3, ++ 0x1.6473b6p-3, ++ 0x1.5ce596p-3, ++ 0x1.5575c8p-3, ++ 0x1.4e241ep-3, ++ 0x1.46f066p-3, ++ 0x1.3fda6cp-3, ++ 0x1.38e1fap-3, ++ 0x1.3206dcp-3, ++ 0x1.2b48dap-3, ++ 0x1.24a7b8p-3, ++ 0x1.1e233ep-3, ++ 0x1.17bb2cp-3, ++ 0x1.116f48p-3, ++ 0x1.0b3f52p-3, ++ 0x1.052b0cp-3, ++ 0x1.fe6460p-4, ++ 0x1.f2a902p-4, ++ 0x1.e72372p-4, ++ 0x1.dbd32ap-4, ++ 0x1.d0b7a0p-4, ++ 0x1.c5d04ap-4, ++ 0x1.bb1c98p-4, ++ 0x1.b09bfcp-4, ++ 0x1.a64de6p-4, ++ 0x1.9c31c6p-4, ++ 0x1.92470ap-4, ++ 0x1.888d1ep-4, ++ 0x1.7f036cp-4, ++ 0x1.75a960p-4, ++ 0x1.6c7e64p-4, ++ 0x1.6381e2p-4, ++ 0x1.5ab342p-4, ++ 0x1.5211ecp-4, ++ 0x1.499d48p-4, ++ 0x1.4154bcp-4, ++ 0x1.3937b2p-4, ++ 0x1.31458ep-4, ++ 0x1.297dbap-4, ++ 0x1.21df9ap-4, ++ 0x1.1a6a96p-4, ++ 0x1.131e14p-4, ++ 0x1.0bf97ep-4, ++ 0x1.04fc3ap-4, ++ 0x1.fc4b5ep-5, ++ 0x1.eeea8cp-5, ++ 0x1.e1d4d0p-5, ++ 0x1.d508fap-5, ++ 0x1.c885e0p-5, ++ 0x1.bc4a54p-5, ++ 0x1.b05530p-5, ++ 0x1.a4a54ap-5, ++ 0x1.99397ap-5, ++ 0x1.8e109cp-5, ++ 0x1.83298ep-5, ++ 0x1.78832cp-5, ++ 0x1.6e1c58p-5, ++ 0x1.63f3f6p-5, ++ 0x1.5a08e8p-5, ++ 0x1.505a18p-5, ++ 0x1.46e66cp-5, ++ 0x1.3dacd2p-5, ++ 0x1.34ac36p-5, ++ 0x1.2be38cp-5, ++ 0x1.2351c2p-5, ++ 0x1.1af5d2p-5, ++ 0x1.12ceb4p-5, ++ 0x1.0adb60p-5, ++ 0x1.031ad6p-5, ++ 0x1.f7182ap-6, ++ 0x1.e85c44p-6, ++ 0x1.da0006p-6, ++ 0x1.cc0180p-6, ++ 0x1.be5ecep-6, ++ 0x1.b1160ap-6, ++ 0x1.a4255ap-6, ++ 0x1.978ae8p-6, ++ 0x1.8b44e6p-6, ++ 0x1.7f5188p-6, ++ 0x1.73af0cp-6, ++ 0x1.685bb6p-6, ++ 0x1.5d55ccp-6, ++ 0x1.529b9ep-6, ++ 0x1.482b84p-6, ++ 0x1.3e03d8p-6, ++ 0x1.3422fep-6, ++ 0x1.2a875cp-6, ++ 0x1.212f62p-6, ++ 0x1.181984p-6, ++ 0x1.0f443ep-6, ++ 0x1.06ae14p-6, ++ 0x1.fcab14p-7, ++ 0x1.ec7262p-7, ++ 0x1.dcaf36p-7, ++ 0x1.cd5ecap-7, ++ 0x1.be7e5ap-7, ++ 0x1.b00b38p-7, ++ 0x1.a202bep-7, ++ 0x1.94624ep-7, ++ 0x1.87275ep-7, ++ 0x1.7a4f6ap-7, ++ 0x1.6dd7fep-7, ++ 0x1.61beaep-7, ++ 0x1.56011cp-7, ++ 0x1.4a9cf6p-7, ++ 0x1.3f8ff6p-7, ++ 0x1.34d7dcp-7, ++ 0x1.2a727ap-7, ++ 0x1.205dacp-7, ++ 0x1.169756p-7, ++ 0x1.0d1d6ap-7, ++ 0x1.03ede2p-7, ++ 0x1.f60d8ap-8, ++ 0x1.e4cc4ap-8, ++ 0x1.d4143ap-8, ++ 0x1.c3e1a6p-8, ++ 0x1.b430ecp-8, ++ 0x1.a4fe84p-8, ++ 0x1.9646f4p-8, ++ 0x1.8806d8p-8, ++ 0x1.7a3adep-8, ++ 0x1.6cdfccp-8, ++ 0x1.5ff276p-8, ++ 0x1.536fc2p-8, ++ 0x1.4754acp-8, ++ 0x1.3b9e40p-8, ++ 0x1.30499cp-8, ++ 0x1.2553eep-8, ++ 0x1.1aba78p-8, ++ 0x1.107a8cp-8, ++ 0x1.06918cp-8, ++ 0x1.f9f9d0p-9, ++ 0x1.e77448p-9, ++ 0x1.d58da6p-9, ++ 0x1.c4412cp-9, ++ 0x1.b38a3ap-9, ++ 0x1.a36454p-9, ++ 0x1.93cb12p-9, ++ 0x1.84ba30p-9, ++ 0x1.762d84p-9, ++ 0x1.682100p-9, ++ 0x1.5a90b0p-9, ++ 0x1.4d78bcp-9, ++ 0x1.40d564p-9, ++ 0x1.34a306p-9, ++ 0x1.28de12p-9, ++ 0x1.1d8318p-9, ++ 0x1.128ebap-9, ++ 0x1.07fdb4p-9, ++ 0x1.fb99b8p-10, ++ 0x1.e7f232p-10, ++ 0x1.d4fed8p-10, ++ 0x1.c2b9d0p-10, ++ 0x1.b11d70p-10, ++ 0x1.a02436p-10, ++ 0x1.8fc8c8p-10, ++ 0x1.8005f0p-10, ++ 0x1.70d6a4p-10, ++ 0x1.6235fcp-10, ++ 0x1.541f34p-10, ++ 0x1.468daep-10, ++ 0x1.397ceep-10, ++ 0x1.2ce898p-10, ++ 0x1.20cc76p-10, ++ 0x1.15246ep-10, ++ 0x1.09ec86p-10, ++ 0x1.fe41cep-11, ++ 0x1.e97ba4p-11, ++ 0x1.d57f52p-11, ++ 0x1.c245d4p-11, ++ 0x1.afc85ep-11, ++ 0x1.9e0058p-11, ++ 0x1.8ce75ep-11, ++ 0x1.7c7744p-11, ++ 0x1.6caa0ep-11, ++ 0x1.5d79ecp-11, ++ 0x1.4ee142p-11, ++ 0x1.40daa4p-11, ++ 0x1.3360ccp-11, ++ 0x1.266ea8p-11, ++ 0x1.19ff46p-11, ++ 0x1.0e0de8p-11, ++ 0x1.0295f0p-11, ++ 0x1.ef25d4p-12, ++ 0x1.da0110p-12, ++ 0x1.c5b542p-12, ++ 0x1.b23a5ap-12, ++ 0x1.9f8894p-12, ++ 0x1.8d986ap-12, ++ 0x1.7c629ap-12, ++ 0x1.6be022p-12, ++ 0x1.5c0a38p-12, ++ 0x1.4cda54p-12, ++ 0x1.3e4a24p-12, ++ 0x1.305390p-12, ++ 0x1.22f0b4p-12, ++ 0x1.161be4p-12, ++ 0x1.09cfa4p-12, ++ 0x1.fc0d56p-13, ++ 0x1.e577bcp-13, ++ 0x1.cfd4a6p-13, ++ 0x1.bb1a96p-13, ++ 0x1.a74068p-13, ++ 0x1.943d4ap-13, ++ 0x1.8208bcp-13, ++ 0x1.709a8ep-13, ++ 0x1.5feadap-13, ++ 0x1.4ff208p-13, ++ 0x1.40a8c2p-13, ++ 0x1.3207fcp-13, ++ 0x1.2408eap-13, ++ 0x1.16a502p-13, ++ 0x1.09d5f8p-13, ++ 0x1.fb2b7ap-14, ++ 0x1.e3bcf4p-14, ++ 0x1.cd5528p-14, ++ 0x1.b7e946p-14, ++ 0x1.a36eecp-14, ++ 0x1.8fdc1cp-14, ++ 0x1.7d2738p-14, ++ 0x1.6b4702p-14, ++ 0x1.5a329cp-14, ++ 0x1.49e178p-14, ++ 0x1.3a4b60p-14, ++ 0x1.2b6876p-14, ++ 0x1.1d3120p-14, ++ 0x1.0f9e1cp-14, ++ 0x1.02a868p-14, ++ 0x1.ec929ap-15, ++ 0x1.d4f4b4p-15, ++ 0x1.be6abcp-15, ++ 0x1.a8e8ccp-15, ++ 0x1.94637ep-15, ++ 0x1.80cfdcp-15, ++ 0x1.6e2368p-15, ++ 0x1.5c540cp-15, ++ 0x1.4b581cp-15, ++ 0x1.3b2652p-15, ++ 0x1.2bb5ccp-15, ++ 0x1.1cfe02p-15, ++ 0x1.0ef6c4p-15, ++ 0x1.019842p-15, ++ 0x1.e9b5e8p-16, ++ 0x1.d16f58p-16, ++ 0x1.ba4f04p-16, ++ 0x1.a447b8p-16, ++ 0x1.8f4cccp-16, ++ 0x1.7b5224p-16, ++ 0x1.684c22p-16, ++ 0x1.562facp-16, ++ 0x1.44f21ep-16, ++ 0x1.34894ap-16, ++ 0x1.24eb72p-16, ++ 0x1.160f44p-16, ++ 0x1.07ebd2p-16, ++ 0x1.f4f12ep-17, ++ 0x1.db5ad0p-17, ++ 0x1.c304f0p-17, ++ 0x1.abe09ep-17, ++ 0x1.95df98p-17, ++ 0x1.80f43ap-17, ++ 0x1.6d1178p-17, ++ 0x1.5a2ae0p-17, ++ 0x1.483488p-17, ++ 0x1.372310p-17, ++ 0x1.26eb9ep-17, ++ 0x1.1783cep-17, ++ 0x1.08e1bap-17, ++ 0x1.f5f7d8p-18, ++ 0x1.db92b6p-18, ++ 0x1.c282cep-18, ++ 0x1.aab7acp-18, ++ 0x1.94219cp-18, ++ 0x1.7eb1a2p-18, ++ 0x1.6a5972p-18, ++ 0x1.570b6ap-18, ++ 0x1.44ba86p-18, ++ 0x1.335a62p-18, ++ 0x1.22df2ap-18, ++ 0x1.133d96p-18, ++ 0x1.046aeap-18, ++ 0x1.ecb9d0p-19, ++ 0x1.d21398p-19, ++ 0x1.b8d094p-19, ++ 0x1.a0df10p-19, ++ 0x1.8a2e26p-19, ++ 0x1.74adc8p-19, ++ 0x1.604ea8p-19, ++ 0x1.4d0232p-19, ++ 0x1.3aba86p-19, ++ 0x1.296a70p-19, ++ 0x1.190562p-19, ++ 0x1.097f62p-19, ++ 0x1.f59a20p-20, ++ 0x1.d9c736p-20, ++ 0x1.bf716cp-20, ++ 0x1.a6852cp-20, ++ 0x1.8eefd8p-20, ++ 0x1.789fb8p-20, ++ 0x1.6383f8p-20, ++ 0x1.4f8c96p-20, ++ 0x1.3caa62p-20, ++ 0x1.2acee2p-20, ++ 0x1.19ec60p-20, ++ 0x1.09f5d0p-20, ++ 0x1.f5bd96p-21, ++ 0x1.d9371ep-21, ++ 0x1.be41dep-21, ++ 0x1.a4c89ep-21, ++ 0x1.8cb738p-21, ++ 0x1.75fa8ep-21, ++ 0x1.608078p-21, ++ 0x1.4c37c0p-21, ++ 0x1.39100ep-21, ++ 0x1.26f9e0p-21, ++ 0x1.15e682p-21, ++ 0x1.05c804p-21, ++ 0x1.ed2254p-22, ++ 0x1.d06ad6p-22, ++ 0x1.b551c8p-22, ++ 0x1.9bc0a0p-22, ++ 0x1.83a200p-22, ++ 0x1.6ce1aap-22, ++ 0x1.576c72p-22, ++ 0x1.43302cp-22, ++ 0x1.301ba2p-22, ++ 0x1.1e1e86p-22, ++ 0x1.0d2966p-22, ++ 0x1.fa5b50p-23, ++ 0x1.dc3ae4p-23, ++ 0x1.bfd756p-23, ++ 0x1.a517dap-23, ++ 0x1.8be4f8p-23, ++ 0x1.74287ep-23, ++ 0x1.5dcd66p-23, ++ 0x1.48bfd4p-23, ++ 0x1.34ecf8p-23, ++ 0x1.224310p-23, ++ 0x1.10b148p-23, ++ }, ++}; +diff --git a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +index caac3f7ce483c28c..41fdb92d7ea6e707 100644 +--- a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +@@ -28,6 +28,7 @@ VPCS_VECTOR_WRAPPER (asin_advsimd, _ZGVnN2v_asin) + VPCS_VECTOR_WRAPPER (atan_advsimd, _ZGVnN2v_atan) + VPCS_VECTOR_WRAPPER_ff (atan2_advsimd, _ZGVnN2vv_atan2) + VPCS_VECTOR_WRAPPER (cos_advsimd, _ZGVnN2v_cos) ++VPCS_VECTOR_WRAPPER (erf_advsimd, _ZGVnN2v_erf) + VPCS_VECTOR_WRAPPER (exp_advsimd, _ZGVnN2v_exp) + VPCS_VECTOR_WRAPPER (exp10_advsimd, _ZGVnN2v_exp10) + VPCS_VECTOR_WRAPPER (exp2_advsimd, _ZGVnN2v_exp2) +diff --git a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +index 2e29cbe7399bc39b..8e3d64da420348a7 100644 +--- a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +@@ -47,6 +47,7 @@ SVE_VECTOR_WRAPPER (asin_sve, _ZGVsMxv_asin) + SVE_VECTOR_WRAPPER (atan_sve, _ZGVsMxv_atan) + SVE_VECTOR_WRAPPER_ff (atan2_sve, _ZGVsMxvv_atan2) + SVE_VECTOR_WRAPPER (cos_sve, _ZGVsMxv_cos) ++SVE_VECTOR_WRAPPER (erf_sve, _ZGVsMxv_erf) + SVE_VECTOR_WRAPPER (exp_sve, _ZGVsMxv_exp) + SVE_VECTOR_WRAPPER (exp10_sve, _ZGVsMxv_exp10) + SVE_VECTOR_WRAPPER (exp2_sve, _ZGVsMxv_exp2) +diff --git a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +index c8a3df4bcdc92a5b..33ae92878f774ac3 100644 +--- a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +@@ -28,6 +28,7 @@ VPCS_VECTOR_WRAPPER (asinf_advsimd, _ZGVnN4v_asinf) + VPCS_VECTOR_WRAPPER (atanf_advsimd, _ZGVnN4v_atanf) + VPCS_VECTOR_WRAPPER_ff (atan2f_advsimd, _ZGVnN4vv_atan2f) + VPCS_VECTOR_WRAPPER (cosf_advsimd, _ZGVnN4v_cosf) ++VPCS_VECTOR_WRAPPER (erff_advsimd, _ZGVnN4v_erff) + VPCS_VECTOR_WRAPPER (expf_advsimd, _ZGVnN4v_expf) + VPCS_VECTOR_WRAPPER (exp10f_advsimd, _ZGVnN4v_exp10f) + VPCS_VECTOR_WRAPPER (exp2f_advsimd, _ZGVnN4v_exp2f) +diff --git a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +index 0bc247b90b9f9de9..ac0464f196e7972f 100644 +--- a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +@@ -47,6 +47,7 @@ SVE_VECTOR_WRAPPER (asinf_sve, _ZGVsMxv_asinf) + SVE_VECTOR_WRAPPER (atanf_sve, _ZGVsMxv_atanf) + SVE_VECTOR_WRAPPER_ff (atan2f_sve, _ZGVsMxvv_atan2f) + SVE_VECTOR_WRAPPER (cosf_sve, _ZGVsMxv_cosf) ++SVE_VECTOR_WRAPPER (erff_sve, _ZGVsMxv_erff) + SVE_VECTOR_WRAPPER (expf_sve, _ZGVsMxv_expf) + SVE_VECTOR_WRAPPER (exp10f_sve, _ZGVsMxv_exp10f) + SVE_VECTOR_WRAPPER (exp2f_sve, _ZGVsMxv_exp2f) +diff --git a/sysdeps/aarch64/fpu/vecmath_config.h b/sysdeps/aarch64/fpu/vecmath_config.h +index 62f71f57f365748b..409c0c9bd9b85422 100644 +--- a/sysdeps/aarch64/fpu/vecmath_config.h ++++ b/sysdeps/aarch64/fpu/vecmath_config.h +@@ -84,4 +84,32 @@ extern const struct v_log10_data + } table[1 << V_LOG10_TABLE_BITS]; + } __v_log10_data attribute_hidden; + ++extern const struct erff_data ++{ ++ struct ++ { ++ float erf, scale; ++ } tab[513]; ++} __erff_data attribute_hidden; ++ ++extern const struct sv_erff_data ++{ ++ float erf[513]; ++ float scale[513]; ++} __sv_erff_data attribute_hidden; ++ ++extern const struct erf_data ++{ ++ struct ++ { ++ double erf, scale; ++ } tab[769]; ++} __erf_data attribute_hidden; ++ ++extern const struct sv_erf_data ++{ ++ double erf[769]; ++ double scale[769]; ++} __sv_erf_data attribute_hidden; ++ + #endif +diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps +index 10788b790a963918..f1103a245645476b 100644 +--- a/sysdeps/aarch64/libm-test-ulps ++++ b/sysdeps/aarch64/libm-test-ulps +@@ -957,11 +957,19 @@ double: 1 + float: 1 + ldouble: 1 + ++Function: "erf_advsimd": ++double: 1 ++float: 2 ++ + Function: "erf_downward": + double: 1 + float: 1 + ldouble: 2 + ++Function: "erf_sve": ++double: 1 ++float: 2 ++ + Function: "erf_towardzero": + double: 1 + float: 1 +diff --git a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +index 580952b4de695050..6193518fb001cc92 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist ++++ b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +@@ -73,3 +73,8 @@ GLIBC_2.39 _ZGVsMxv_tan F + GLIBC_2.39 _ZGVsMxv_tanf F + GLIBC_2.39 _ZGVsMxvv_atan2 F + GLIBC_2.39 _ZGVsMxvv_atan2f F ++GLIBC_2.40 _ZGVnN2v_erf F ++GLIBC_2.40 _ZGVnN2v_erff F ++GLIBC_2.40 _ZGVnN4v_erff F ++GLIBC_2.40 _ZGVsMxv_erf F ++GLIBC_2.40 _ZGVsMxv_erff F diff --git a/glibc-RHEL-118273-10.patch b/glibc-RHEL-118273-10.patch new file mode 100644 index 0000000..5a282d6 --- /dev/null +++ b/glibc-RHEL-118273-10.patch @@ -0,0 +1,514 @@ +commit 157f89fa3d616729c8d7797168a9b3eaaa6ebf6e +Author: Joe Ramsay +Date: Tue Apr 30 13:49:58 2024 +0100 + + aarch64/fpu: Add vector variants of hypot + + Reviewed-by: Szabolcs Nagy + +diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile +index e8af35099d7b9f8f..06657782a1ee7106 100644 +--- a/sysdeps/aarch64/fpu/Makefile ++++ b/sysdeps/aarch64/fpu/Makefile +@@ -13,6 +13,7 @@ libmvec-supported-funcs = acos \ + exp10 \ + exp2 \ + expm1 \ ++ hypot \ + log \ + log10 \ + log1p \ +diff --git a/sysdeps/aarch64/fpu/Versions b/sysdeps/aarch64/fpu/Versions +index 3cb1b82bd2785a4b..aedae9457b148983 100644 +--- a/sysdeps/aarch64/fpu/Versions ++++ b/sysdeps/aarch64/fpu/Versions +@@ -109,6 +109,11 @@ libmvec { + _ZGVnN4v_erfcf; + _ZGVsMxv_erfc; + _ZGVsMxv_erfcf; ++ _ZGVnN4vv_hypotf; ++ _ZGVnN2vv_hypotf; ++ _ZGVnN2vv_hypot; ++ _ZGVsMxvv_hypotf; ++ _ZGVsMxvv_hypot; + _ZGVnN2v_sinh; + _ZGVnN2v_sinhf; + _ZGVnN4v_sinhf; +diff --git a/sysdeps/aarch64/fpu/advsimd_f32_protos.h b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +index 383c4369729a3452..a8889a92fd041585 100644 +--- a/sysdeps/aarch64/fpu/advsimd_f32_protos.h ++++ b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +@@ -31,6 +31,7 @@ libmvec_hidden_proto (V_NAME_F1(exp10)); + libmvec_hidden_proto (V_NAME_F1(exp2)); + libmvec_hidden_proto (V_NAME_F1(exp)); + libmvec_hidden_proto (V_NAME_F1(expm1)); ++libmvec_hidden_proto (V_NAME_F2(hypot)); + libmvec_hidden_proto (V_NAME_F1(log10)); + libmvec_hidden_proto (V_NAME_F1(log1p)); + libmvec_hidden_proto (V_NAME_F1(log2)); +diff --git a/sysdeps/aarch64/fpu/bits/math-vector.h b/sysdeps/aarch64/fpu/bits/math-vector.h +index e29b2d1c09273969..ca3017733959702f 100644 +--- a/sysdeps/aarch64/fpu/bits/math-vector.h ++++ b/sysdeps/aarch64/fpu/bits/math-vector.h +@@ -89,6 +89,10 @@ + # define __DECL_SIMD_expm1 __DECL_SIMD_aarch64 + # undef __DECL_SIMD_expm1f + # define __DECL_SIMD_expm1f __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_hypot ++# define __DECL_SIMD_hypot __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_hypotf ++# define __DECL_SIMD_hypotf __DECL_SIMD_aarch64 + # undef __DECL_SIMD_log + # define __DECL_SIMD_log __DECL_SIMD_aarch64 + # undef __DECL_SIMD_logf +@@ -162,6 +166,7 @@ __vpcs __f32x4_t _ZGVnN4v_expf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_exp10f (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_exp2f (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_expm1f (__f32x4_t); ++__vpcs __f32x4_t _ZGVnN4vv_hypotf (__f32x4_t, __f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_logf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_log10f (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_log1pf (__f32x4_t); +@@ -186,6 +191,7 @@ __vpcs __f64x2_t _ZGVnN2v_exp (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_exp10 (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_exp2 (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_expm1 (__f64x2_t); ++__vpcs __f64x2_t _ZGVnN2vv_hypot (__f64x2_t, __f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_log (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_log10 (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_log1p (__f64x2_t); +@@ -215,6 +221,7 @@ __sv_f32_t _ZGVsMxv_expf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_exp10f (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_exp2f (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_expm1f (__sv_f32_t, __sv_bool_t); ++__sv_f32_t _ZGVsMxvv_hypotf (__sv_f32_t, __sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_logf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_log10f (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_log1pf (__sv_f32_t, __sv_bool_t); +@@ -239,6 +246,7 @@ __sv_f64_t _ZGVsMxv_exp (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_exp10 (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_exp2 (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_expm1 (__sv_f64_t, __sv_bool_t); ++__sv_f64_t _ZGVsMxvv_hypot (__sv_f64_t, __sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_log (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_log10 (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_log1p (__sv_f64_t, __sv_bool_t); +diff --git a/sysdeps/aarch64/fpu/hypot_advsimd.c b/sysdeps/aarch64/fpu/hypot_advsimd.c +new file mode 100644 +index 0000000000000000..e4e279fa0c362336 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/hypot_advsimd.c +@@ -0,0 +1,97 @@ ++/* Double-precision vector (Advanced SIMD) hypot function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_math.h" ++ ++#if WANT_SIMD_EXCEPT ++static const struct data ++{ ++ uint64x2_t tiny_bound, thres; ++} data = { ++ .tiny_bound = V2 (0x2000000000000000), /* asuint (0x1p-511). */ ++ .thres = V2 (0x3fe0000000000000), /* asuint (0x1p511) - tiny_bound. */ ++}; ++#else ++static const struct data ++{ ++ uint64x2_t tiny_bound; ++ uint32x4_t thres; ++} data = { ++ .tiny_bound = V2 (0x0360000000000000), /* asuint (0x1p-969). */ ++ .thres = V4 (0x7c900000), /* asuint (inf) - tiny_bound. */ ++}; ++#endif ++ ++static float64x2_t VPCS_ATTR NOINLINE ++special_case (float64x2_t x, float64x2_t y, float64x2_t sqsum, ++ uint32x2_t special) ++{ ++ return v_call2_f64 (hypot, x, y, vsqrtq_f64 (sqsum), vmovl_u32 (special)); ++} ++ ++/* Vector implementation of double-precision hypot. ++ Maximum error observed is 1.21 ULP: ++ _ZGVnN2vv_hypot (0x1.6a1b193ff85b5p-204, 0x1.bc50676c2a447p-222) ++ got 0x1.6a1b19400964ep-204 ++ want 0x1.6a1b19400964dp-204. */ ++#if WANT_SIMD_EXCEPT ++ ++float64x2_t VPCS_ATTR V_NAME_D2 (hypot) (float64x2_t x, float64x2_t y) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ float64x2_t ax = vabsq_f64 (x); ++ float64x2_t ay = vabsq_f64 (y); ++ ++ uint64x2_t ix = vreinterpretq_u64_f64 (ax); ++ uint64x2_t iy = vreinterpretq_u64_f64 (ay); ++ ++ /* Extreme values, NaNs, and infinities should be handled by the scalar ++ fallback for correct flag handling. */ ++ uint64x2_t specialx = vcgeq_u64 (vsubq_u64 (ix, d->tiny_bound), d->thres); ++ uint64x2_t specialy = vcgeq_u64 (vsubq_u64 (iy, d->tiny_bound), d->thres); ++ ax = v_zerofy_f64 (ax, specialx); ++ ay = v_zerofy_f64 (ay, specialy); ++ uint32x2_t special = vaddhn_u64 (specialx, specialy); ++ ++ float64x2_t sqsum = vfmaq_f64 (vmulq_f64 (ax, ax), ay, ay); ++ ++ if (__glibc_unlikely (v_any_u32h (special))) ++ return special_case (x, y, sqsum, special); ++ ++ return vsqrtq_f64 (sqsum); ++} ++#else ++ ++float64x2_t VPCS_ATTR V_NAME_D2 (hypot) (float64x2_t x, float64x2_t y) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ float64x2_t sqsum = vfmaq_f64 (vmulq_f64 (x, x), y, y); ++ ++ uint32x2_t special = vcge_u32 ( ++ vsubhn_u64 (vreinterpretq_u64_f64 (sqsum), d->tiny_bound), ++ vget_low_u32 (d->thres)); ++ ++ if (__glibc_unlikely (v_any_u32h (special))) ++ return special_case (x, y, sqsum, special); ++ ++ return vsqrtq_f64 (sqsum); ++} ++#endif +diff --git a/sysdeps/aarch64/fpu/hypot_sve.c b/sysdeps/aarch64/fpu/hypot_sve.c +new file mode 100644 +index 0000000000000000..74417040acb2f32f +--- /dev/null ++++ b/sysdeps/aarch64/fpu/hypot_sve.c +@@ -0,0 +1,54 @@ ++/* Double-precision vector (SVE) hypot function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "sv_math.h" ++ ++static const struct data ++{ ++ uint64_t tiny_bound, thres; ++} data = { ++ .tiny_bound = 0x0c80000000000000, /* asuint (0x1p-102). */ ++ .thres = 0x7300000000000000, /* asuint (inf) - tiny_bound. */ ++}; ++ ++static svfloat64_t NOINLINE ++special_case (svfloat64_t sqsum, svfloat64_t x, svfloat64_t y, svbool_t pg, ++ svbool_t special) ++{ ++ return sv_call2_f64 (hypot, x, y, svsqrt_x (pg, sqsum), special); ++} ++ ++/* SVE implementation of double-precision hypot. ++ Maximum error observed is 1.21 ULP: ++ _ZGVsMxvv_hypot (-0x1.6a22d0412cdd3p+352, 0x1.d3d89bd66fb1ap+330) ++ got 0x1.6a22d0412cfp+352 ++ want 0x1.6a22d0412cf01p+352. */ ++svfloat64_t SV_NAME_D2 (hypot) (svfloat64_t x, svfloat64_t y, svbool_t pg) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ svfloat64_t sqsum = svmla_x (pg, svmul_x (pg, x, x), y, y); ++ ++ svbool_t special = svcmpge ( ++ pg, svsub_x (pg, svreinterpret_u64 (sqsum), d->tiny_bound), d->thres); ++ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ return special_case (sqsum, x, y, pg, special); ++ return svsqrt_x (pg, sqsum); ++} +diff --git a/sysdeps/aarch64/fpu/hypotf_advsimd.c b/sysdeps/aarch64/fpu/hypotf_advsimd.c +new file mode 100644 +index 0000000000000000..34818b021abce1b7 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/hypotf_advsimd.c +@@ -0,0 +1,98 @@ ++/* Single-precision vector (Advanced SIMD) hypot function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_math.h" ++ ++#if WANT_SIMD_EXCEPT ++static const struct data ++{ ++ uint32x4_t tiny_bound, thres; ++} data = { ++ .tiny_bound = V4 (0x20000000), /* asuint (0x1p-63). */ ++ .thres = V4 (0x3f000000), /* asuint (0x1p63) - tiny_bound. */ ++}; ++#else ++static const struct data ++{ ++ uint32x4_t tiny_bound; ++ uint16x8_t thres; ++} data = { ++ .tiny_bound = V4 (0x0C800000), /* asuint (0x1p-102). */ ++ .thres = V8 (0x7300), /* asuint (inf) - tiny_bound. */ ++}; ++#endif ++ ++static float32x4_t VPCS_ATTR NOINLINE ++special_case (float32x4_t x, float32x4_t y, float32x4_t sqsum, ++ uint16x4_t special) ++{ ++ return v_call2_f32 (hypotf, x, y, vsqrtq_f32 (sqsum), vmovl_u16 (special)); ++} ++ ++/* Vector implementation of single-precision hypot. ++ Maximum error observed is 1.21 ULP: ++ _ZGVnN4vv_hypotf (0x1.6a419cp-13, 0x1.82a852p-22) got 0x1.6a41d2p-13 ++ want 0x1.6a41dp-13. */ ++#if WANT_SIMD_EXCEPT ++ ++float32x4_t VPCS_ATTR V_NAME_F2 (hypot) (float32x4_t x, float32x4_t y) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ float32x4_t ax = vabsq_f32 (x); ++ float32x4_t ay = vabsq_f32 (y); ++ ++ uint32x4_t ix = vreinterpretq_u32_f32 (ax); ++ uint32x4_t iy = vreinterpretq_u32_f32 (ay); ++ ++ /* Extreme values, NaNs, and infinities should be handled by the scalar ++ fallback for correct flag handling. */ ++ uint32x4_t specialx = vcgeq_u32 (vsubq_u32 (ix, d->tiny_bound), d->thres); ++ uint32x4_t specialy = vcgeq_u32 (vsubq_u32 (iy, d->tiny_bound), d->thres); ++ ax = v_zerofy_f32 (ax, specialx); ++ ay = v_zerofy_f32 (ay, specialy); ++ uint16x4_t special = vaddhn_u32 (specialx, specialy); ++ ++ float32x4_t sqsum = vfmaq_f32 (vmulq_f32 (ax, ax), ay, ay); ++ ++ if (__glibc_unlikely (v_any_u16h (special))) ++ return special_case (x, y, sqsum, special); ++ ++ return vsqrtq_f32 (sqsum); ++} ++#else ++ ++float32x4_t VPCS_ATTR V_NAME_F2 (hypot) (float32x4_t x, float32x4_t y) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ float32x4_t sqsum = vfmaq_f32 (vmulq_f32 (x, x), y, y); ++ ++ uint16x4_t special = vcge_u16 ( ++ vsubhn_u32 (vreinterpretq_u32_f32 (sqsum), d->tiny_bound), ++ vget_low_u16 (d->thres)); ++ ++ if (__glibc_unlikely (v_any_u16h (special))) ++ return special_case (x, y, sqsum, special); ++ ++ return vsqrtq_f32 (sqsum); ++} ++#endif ++libmvec_hidden_def (V_NAME_F2 (hypot)) ++HALF_WIDTH_ALIAS_F2(hypot) +diff --git a/sysdeps/aarch64/fpu/hypotf_sve.c b/sysdeps/aarch64/fpu/hypotf_sve.c +new file mode 100644 +index 0000000000000000..3a403de66eb091f4 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/hypotf_sve.c +@@ -0,0 +1,48 @@ ++/* Single-precision vector (SVE) hypot function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "sv_math.h" ++ ++#define TinyBound 0x0c800000 /* asuint (0x1p-102). */ ++#define Thres 0x73000000 /* 0x70000000 - TinyBound. */ ++ ++static svfloat32_t NOINLINE ++special_case (svfloat32_t sqsum, svfloat32_t x, svfloat32_t y, svbool_t pg, ++ svbool_t special) ++{ ++ return sv_call2_f32 (hypotf, x, y, svsqrt_x (pg, sqsum), special); ++} ++ ++/* SVE implementation of single-precision hypot. ++ Maximum error observed is 1.21 ULP: ++ _ZGVsMxvv_hypotf (0x1.6a213cp-19, -0x1.32b982p-26) got 0x1.6a2346p-19 ++ want 0x1.6a2344p-19. */ ++svfloat32_t SV_NAME_F2 (hypot) (svfloat32_t x, svfloat32_t y, ++ const svbool_t pg) ++{ ++ svfloat32_t sqsum = svmla_x (pg, svmul_x (pg, x, x), y, y); ++ ++ svbool_t special = svcmpge ( ++ pg, svsub_x (pg, svreinterpret_u32 (sqsum), TinyBound), Thres); ++ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ return special_case (sqsum, x, y, pg, special); ++ ++ return svsqrt_x (pg, sqsum); ++} +diff --git a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +index f2d8714075ab99b8..417125be476cd75f 100644 +--- a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +@@ -38,6 +38,7 @@ VPCS_VECTOR_WRAPPER (exp_advsimd, _ZGVnN2v_exp) + VPCS_VECTOR_WRAPPER (exp10_advsimd, _ZGVnN2v_exp10) + VPCS_VECTOR_WRAPPER (exp2_advsimd, _ZGVnN2v_exp2) + VPCS_VECTOR_WRAPPER (expm1_advsimd, _ZGVnN2v_expm1) ++VPCS_VECTOR_WRAPPER_ff (hypot_advsimd, _ZGVnN2vv_hypot) + VPCS_VECTOR_WRAPPER (log_advsimd, _ZGVnN2v_log) + VPCS_VECTOR_WRAPPER (log10_advsimd, _ZGVnN2v_log10) + VPCS_VECTOR_WRAPPER (log1p_advsimd, _ZGVnN2v_log1p) +diff --git a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +index 37873d5e432ae9e8..31ebf18705f68856 100644 +--- a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +@@ -57,6 +57,7 @@ SVE_VECTOR_WRAPPER (exp_sve, _ZGVsMxv_exp) + SVE_VECTOR_WRAPPER (exp10_sve, _ZGVsMxv_exp10) + SVE_VECTOR_WRAPPER (exp2_sve, _ZGVsMxv_exp2) + SVE_VECTOR_WRAPPER (expm1_sve, _ZGVsMxv_expm1) ++SVE_VECTOR_WRAPPER_ff (hypot_sve, _ZGVsMxvv_hypot) + SVE_VECTOR_WRAPPER (log_sve, _ZGVsMxv_log) + SVE_VECTOR_WRAPPER (log10_sve, _ZGVsMxv_log10) + SVE_VECTOR_WRAPPER (log1p_sve, _ZGVsMxv_log1p) +diff --git a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +index 08e33115b9dc6f5e..dab0f1cfcb79a305 100644 +--- a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +@@ -38,6 +38,7 @@ VPCS_VECTOR_WRAPPER (expf_advsimd, _ZGVnN4v_expf) + VPCS_VECTOR_WRAPPER (exp10f_advsimd, _ZGVnN4v_exp10f) + VPCS_VECTOR_WRAPPER (exp2f_advsimd, _ZGVnN4v_exp2f) + VPCS_VECTOR_WRAPPER (expm1f_advsimd, _ZGVnN4v_expm1f) ++VPCS_VECTOR_WRAPPER_ff (hypotf_advsimd, _ZGVnN4vv_hypotf) + VPCS_VECTOR_WRAPPER (logf_advsimd, _ZGVnN4v_logf) + VPCS_VECTOR_WRAPPER (log10f_advsimd, _ZGVnN4v_log10f) + VPCS_VECTOR_WRAPPER (log1pf_advsimd, _ZGVnN4v_log1pf) +diff --git a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +index 025daa662efd6f7f..2aa6cbcc28d69cf8 100644 +--- a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +@@ -57,6 +57,7 @@ SVE_VECTOR_WRAPPER (expf_sve, _ZGVsMxv_expf) + SVE_VECTOR_WRAPPER (exp10f_sve, _ZGVsMxv_exp10f) + SVE_VECTOR_WRAPPER (exp2f_sve, _ZGVsMxv_exp2f) + SVE_VECTOR_WRAPPER (expm1f_sve, _ZGVsMxv_expm1f) ++SVE_VECTOR_WRAPPER_ff (hypotf_sve, _ZGVsMxvv_hypotf) + SVE_VECTOR_WRAPPER (logf_sve, _ZGVsMxv_logf) + SVE_VECTOR_WRAPPER (log10f_sve, _ZGVsMxv_log10f) + SVE_VECTOR_WRAPPER (log1pf_sve, _ZGVsMxv_log1pf) +diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps +index 055da83d639a2430..17723d0c9e2dfcf5 100644 +--- a/sysdeps/aarch64/libm-test-ulps ++++ b/sysdeps/aarch64/libm-test-ulps +@@ -1174,10 +1174,18 @@ double: 1 + float: 1 + ldouble: 1 + ++Function: "hypot_advsimd": ++double: 1 ++float: 1 ++ + Function: "hypot_downward": + double: 1 + ldouble: 1 + ++Function: "hypot_sve": ++double: 1 ++float: 1 ++ + Function: "hypot_towardzero": + double: 1 + ldouble: 1 +diff --git a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +index 26c3fbf18b2f12a9..1184374efd25cfa6 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist ++++ b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +@@ -89,6 +89,8 @@ GLIBC_2.40 _ZGVnN2v_sinh F + GLIBC_2.40 _ZGVnN2v_sinhf F + GLIBC_2.40 _ZGVnN2v_tanh F + GLIBC_2.40 _ZGVnN2v_tanhf F ++GLIBC_2.40 _ZGVnN2vv_hypot F ++GLIBC_2.40 _ZGVnN2vv_hypotf F + GLIBC_2.40 _ZGVnN4v_acoshf F + GLIBC_2.40 _ZGVnN4v_asinhf F + GLIBC_2.40 _ZGVnN4v_atanhf F +@@ -97,6 +99,7 @@ GLIBC_2.40 _ZGVnN4v_erfcf F + GLIBC_2.40 _ZGVnN4v_erff F + GLIBC_2.40 _ZGVnN4v_sinhf F + GLIBC_2.40 _ZGVnN4v_tanhf F ++GLIBC_2.40 _ZGVnN4vv_hypotf F + GLIBC_2.40 _ZGVsMxv_acosh F + GLIBC_2.40 _ZGVsMxv_acoshf F + GLIBC_2.40 _ZGVsMxv_asinh F +@@ -113,3 +116,5 @@ GLIBC_2.40 _ZGVsMxv_sinh F + GLIBC_2.40 _ZGVsMxv_sinhf F + GLIBC_2.40 _ZGVsMxv_tanh F + GLIBC_2.40 _ZGVsMxv_tanhf F ++GLIBC_2.40 _ZGVsMxvv_hypot F ++GLIBC_2.40 _ZGVsMxvv_hypotf F diff --git a/glibc-RHEL-118273-11.patch b/glibc-RHEL-118273-11.patch new file mode 100644 index 0000000..7b13e88 --- /dev/null +++ b/glibc-RHEL-118273-11.patch @@ -0,0 +1,715 @@ +commit 75207bde6870eb4b258e16fbb41252b2e6377675 +Author: Joe Ramsay +Date: Tue Apr 30 13:49:59 2024 +0100 + + aarch64/fpu: Add vector variants of cbrt + + Reviewed-by: Szabolcs Nagy + +diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile +index 06657782a1ee7106..990d1135b93485c5 100644 +--- a/sysdeps/aarch64/fpu/Makefile ++++ b/sysdeps/aarch64/fpu/Makefile +@@ -5,6 +5,7 @@ libmvec-supported-funcs = acos \ + atan \ + atanh \ + atan2 \ ++ cbrt \ + cos \ + cosh \ + erf \ +diff --git a/sysdeps/aarch64/fpu/Versions b/sysdeps/aarch64/fpu/Versions +index aedae9457b148983..36a9e4df1e058c46 100644 +--- a/sysdeps/aarch64/fpu/Versions ++++ b/sysdeps/aarch64/fpu/Versions +@@ -94,6 +94,11 @@ libmvec { + _ZGVnN4v_atanhf; + _ZGVsMxv_atanh; + _ZGVsMxv_atanhf; ++ _ZGVnN2v_cbrt; ++ _ZGVnN2v_cbrtf; ++ _ZGVnN4v_cbrtf; ++ _ZGVsMxv_cbrt; ++ _ZGVsMxv_cbrtf; + _ZGVnN2v_cosh; + _ZGVnN2v_coshf; + _ZGVnN4v_coshf; +diff --git a/sysdeps/aarch64/fpu/advsimd_f32_protos.h b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +index a8889a92fd041585..54858efd8aa0ff82 100644 +--- a/sysdeps/aarch64/fpu/advsimd_f32_protos.h ++++ b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +@@ -23,6 +23,7 @@ libmvec_hidden_proto (V_NAME_F1(asin)); + libmvec_hidden_proto (V_NAME_F1(asinh)); + libmvec_hidden_proto (V_NAME_F1(atan)); + libmvec_hidden_proto (V_NAME_F1(atanh)); ++libmvec_hidden_proto (V_NAME_F1(cbrt)); + libmvec_hidden_proto (V_NAME_F1(cos)); + libmvec_hidden_proto (V_NAME_F1(cosh)); + libmvec_hidden_proto (V_NAME_F1(erf)); +diff --git a/sysdeps/aarch64/fpu/bits/math-vector.h b/sysdeps/aarch64/fpu/bits/math-vector.h +index ca3017733959702f..b1c024fe13a7dc32 100644 +--- a/sysdeps/aarch64/fpu/bits/math-vector.h ++++ b/sysdeps/aarch64/fpu/bits/math-vector.h +@@ -57,6 +57,10 @@ + # define __DECL_SIMD_atan2 __DECL_SIMD_aarch64 + # undef __DECL_SIMD_atan2f + # define __DECL_SIMD_atan2f __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_cbrt ++# define __DECL_SIMD_cbrt __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_cbrtf ++# define __DECL_SIMD_cbrtf __DECL_SIMD_aarch64 + # undef __DECL_SIMD_cos + # define __DECL_SIMD_cos __DECL_SIMD_aarch64 + # undef __DECL_SIMD_cosf +@@ -158,6 +162,7 @@ __vpcs __f32x4_t _ZGVnN4v_asinf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_asinhf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_atanf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_atanhf (__f32x4_t); ++__vpcs __f32x4_t _ZGVnN4v_cbrtf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_cosf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_coshf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_erff (__f32x4_t); +@@ -183,6 +188,7 @@ __vpcs __f64x2_t _ZGVnN2v_asin (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_asinh (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_atan (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_atanh (__f64x2_t); ++__vpcs __f64x2_t _ZGVnN2v_cbrt (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_cos (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_cosh (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_erf (__f64x2_t); +@@ -213,6 +219,7 @@ __sv_f32_t _ZGVsMxv_asinf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_asinhf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_atanf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_atanhf (__sv_f32_t, __sv_bool_t); ++__sv_f32_t _ZGVsMxv_cbrtf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_cosf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_coshf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_erff (__sv_f32_t, __sv_bool_t); +@@ -238,6 +245,7 @@ __sv_f64_t _ZGVsMxv_asin (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_asinh (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_atan (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_atanh (__sv_f64_t, __sv_bool_t); ++__sv_f64_t _ZGVsMxv_cbrt (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_cos (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_cosh (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_erf (__sv_f64_t, __sv_bool_t); +diff --git a/sysdeps/aarch64/fpu/cbrt_advsimd.c b/sysdeps/aarch64/fpu/cbrt_advsimd.c +new file mode 100644 +index 0000000000000000..adfbb60cd3918c95 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/cbrt_advsimd.c +@@ -0,0 +1,121 @@ ++/* Double-precision vector (AdvSIMD) cbrt function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_math.h" ++#include "poly_advsimd_f64.h" ++ ++const static struct data ++{ ++ float64x2_t poly[4], one_third, shift; ++ int64x2_t exp_bias; ++ uint64x2_t abs_mask, tiny_bound; ++ uint32x4_t thresh; ++ double table[5]; ++} data = { ++ .shift = V2 (0x1.8p52), ++ .poly = { /* Generated with fpminimax in [0.5, 1]. */ ++ V2 (0x1.c14e8ee44767p-2), V2 (0x1.dd2d3f99e4c0ep-1), ++ V2 (-0x1.08e83026b7e74p-1), V2 (0x1.2c74eaa3ba428p-3) }, ++ .exp_bias = V2 (1022), ++ .abs_mask = V2(0x7fffffffffffffff), ++ .tiny_bound = V2(0x0010000000000000), /* Smallest normal. */ ++ .thresh = V4(0x7fe00000), /* asuint64 (infinity) - tiny_bound. */ ++ .one_third = V2(0x1.5555555555555p-2), ++ .table = { /* table[i] = 2^((i - 2) / 3). */ ++ 0x1.428a2f98d728bp-1, 0x1.965fea53d6e3dp-1, 0x1p0, ++ 0x1.428a2f98d728bp0, 0x1.965fea53d6e3dp0 } ++}; ++ ++#define MantissaMask v_u64 (0x000fffffffffffff) ++ ++static float64x2_t NOINLINE VPCS_ATTR ++special_case (float64x2_t x, float64x2_t y, uint32x2_t special) ++{ ++ return v_call_f64 (cbrt, x, y, vmovl_u32 (special)); ++} ++ ++/* Approximation for double-precision vector cbrt(x), using low-order polynomial ++ and two Newton iterations. Greatest observed error is 1.79 ULP. Errors repeat ++ according to the exponent, for instance an error observed for double value ++ m * 2^e will be observed for any input m * 2^(e + 3*i), where i is an ++ integer. ++ __v_cbrt(0x1.fffff403f0bc6p+1) got 0x1.965fe72821e9bp+0 ++ want 0x1.965fe72821e99p+0. */ ++VPCS_ATTR float64x2_t V_NAME_D1 (cbrt) (float64x2_t x) ++{ ++ const struct data *d = ptr_barrier (&data); ++ uint64x2_t iax = vreinterpretq_u64_f64 (vabsq_f64 (x)); ++ ++ /* Subnormal, +/-0 and special values. */ ++ uint32x2_t special ++ = vcge_u32 (vsubhn_u64 (iax, d->tiny_bound), vget_low_u32 (d->thresh)); ++ ++ /* Decompose |x| into m * 2^e, where m is in [0.5, 1.0]. This is a vector ++ version of frexp, which gets subnormal values wrong - these have to be ++ special-cased as a result. */ ++ float64x2_t m = vbslq_f64 (MantissaMask, x, v_f64 (0.5)); ++ int64x2_t exp_bias = d->exp_bias; ++ uint64x2_t ia12 = vshrq_n_u64 (iax, 52); ++ int64x2_t e = vsubq_s64 (vreinterpretq_s64_u64 (ia12), exp_bias); ++ ++ /* Calculate rough approximation for cbrt(m) in [0.5, 1.0], starting point for ++ Newton iterations. */ ++ float64x2_t p = v_pairwise_poly_3_f64 (m, vmulq_f64 (m, m), d->poly); ++ float64x2_t one_third = d->one_third; ++ /* Two iterations of Newton's method for iteratively approximating cbrt. */ ++ float64x2_t m_by_3 = vmulq_f64 (m, one_third); ++ float64x2_t two_thirds = vaddq_f64 (one_third, one_third); ++ float64x2_t a ++ = vfmaq_f64 (vdivq_f64 (m_by_3, vmulq_f64 (p, p)), two_thirds, p); ++ a = vfmaq_f64 (vdivq_f64 (m_by_3, vmulq_f64 (a, a)), two_thirds, a); ++ ++ /* Assemble the result by the following: ++ ++ cbrt(x) = cbrt(m) * 2 ^ (e / 3). ++ ++ We can get 2 ^ round(e / 3) using ldexp and integer divide, but since e is ++ not necessarily a multiple of 3 we lose some information. ++ ++ Let q = 2 ^ round(e / 3), then t = 2 ^ (e / 3) / q. ++ ++ Then we know t = 2 ^ (i / 3), where i is the remainder from e / 3, which is ++ an integer in [-2, 2], and can be looked up in the table T. Hence the ++ result is assembled as: ++ ++ cbrt(x) = cbrt(m) * t * 2 ^ round(e / 3) * sign. */ ++ ++ float64x2_t ef = vcvtq_f64_s64 (e); ++ float64x2_t eb3f = vrndnq_f64 (vmulq_f64 (ef, one_third)); ++ int64x2_t em3 = vcvtq_s64_f64 (vfmsq_f64 (ef, eb3f, v_f64 (3))); ++ int64x2_t ey = vcvtq_s64_f64 (eb3f); ++ ++ float64x2_t my = (float64x2_t){ d->table[em3[0] + 2], d->table[em3[1] + 2] }; ++ my = vmulq_f64 (my, a); ++ ++ /* Vector version of ldexp. */ ++ float64x2_t y = vreinterpretq_f64_s64 ( ++ vshlq_n_s64 (vaddq_s64 (ey, vaddq_s64 (exp_bias, v_s64 (1))), 52)); ++ y = vmulq_f64 (y, my); ++ ++ if (__glibc_unlikely (v_any_u32h (special))) ++ return special_case (x, vbslq_f64 (d->abs_mask, y, x), special); ++ ++ /* Copy sign. */ ++ return vbslq_f64 (d->abs_mask, y, x); ++} +diff --git a/sysdeps/aarch64/fpu/cbrt_sve.c b/sysdeps/aarch64/fpu/cbrt_sve.c +new file mode 100644 +index 0000000000000000..fc976eda2a6018f7 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/cbrt_sve.c +@@ -0,0 +1,128 @@ ++/* Double-precision vector (SVE) cbrt function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "sv_math.h" ++#include "poly_sve_f64.h" ++ ++const static struct data ++{ ++ float64_t poly[4]; ++ float64_t table[5]; ++ float64_t one_third, two_thirds, shift; ++ int64_t exp_bias; ++ uint64_t tiny_bound, thresh; ++} data = { ++ /* Generated with FPMinimax in [0.5, 1]. */ ++ .poly = { 0x1.c14e8ee44767p-2, 0x1.dd2d3f99e4c0ep-1, -0x1.08e83026b7e74p-1, ++ 0x1.2c74eaa3ba428p-3, }, ++ /* table[i] = 2^((i - 2) / 3). */ ++ .table = { 0x1.428a2f98d728bp-1, 0x1.965fea53d6e3dp-1, 0x1p0, ++ 0x1.428a2f98d728bp0, 0x1.965fea53d6e3dp0, }, ++ .one_third = 0x1.5555555555555p-2, ++ .two_thirds = 0x1.5555555555555p-1, ++ .shift = 0x1.8p52, ++ .exp_bias = 1022, ++ .tiny_bound = 0x0010000000000000, /* Smallest normal. */ ++ .thresh = 0x7fe0000000000000, /* asuint64 (infinity) - tiny_bound. */ ++}; ++ ++#define MantissaMask 0x000fffffffffffff ++#define HalfExp 0x3fe0000000000000 ++ ++static svfloat64_t NOINLINE ++special_case (svfloat64_t x, svfloat64_t y, svbool_t special) ++{ ++ return sv_call_f64 (cbrt, x, y, special); ++} ++ ++static inline svfloat64_t ++shifted_lookup (const svbool_t pg, const float64_t *table, svint64_t i) ++{ ++ return svld1_gather_index (pg, table, svadd_x (pg, i, 2)); ++} ++ ++/* Approximation for double-precision vector cbrt(x), using low-order ++ polynomial and two Newton iterations. Greatest observed error is 1.79 ULP. ++ Errors repeat according to the exponent, for instance an error observed for ++ double value m * 2^e will be observed for any input m * 2^(e + 3*i), where i ++ is an integer. ++ _ZGVsMxv_cbrt (0x0.3fffb8d4413f3p-1022) got 0x1.965f53b0e5d97p-342 ++ want 0x1.965f53b0e5d95p-342. */ ++svfloat64_t SV_NAME_D1 (cbrt) (svfloat64_t x, const svbool_t pg) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ svfloat64_t ax = svabs_x (pg, x); ++ svuint64_t iax = svreinterpret_u64 (ax); ++ svuint64_t sign = sveor_x (pg, svreinterpret_u64 (x), iax); ++ ++ /* Subnormal, +/-0 and special values. */ ++ svbool_t special = svcmpge (pg, svsub_x (pg, iax, d->tiny_bound), d->thresh); ++ ++ /* Decompose |x| into m * 2^e, where m is in [0.5, 1.0]. This is a vector ++ version of frexp, which gets subnormal values wrong - these have to be ++ special-cased as a result. */ ++ svfloat64_t m = svreinterpret_f64 (svorr_x ( ++ pg, svand_x (pg, svreinterpret_u64 (x), MantissaMask), HalfExp)); ++ svint64_t e ++ = svsub_x (pg, svreinterpret_s64 (svlsr_x (pg, iax, 52)), d->exp_bias); ++ ++ /* Calculate rough approximation for cbrt(m) in [0.5, 1.0], starting point ++ for Newton iterations. */ ++ svfloat64_t p ++ = sv_pairwise_poly_3_f64_x (pg, m, svmul_x (pg, m, m), d->poly); ++ ++ /* Two iterations of Newton's method for iteratively approximating cbrt. */ ++ svfloat64_t m_by_3 = svmul_x (pg, m, d->one_third); ++ svfloat64_t a = svmla_x (pg, svdiv_x (pg, m_by_3, svmul_x (pg, p, p)), p, ++ d->two_thirds); ++ a = svmla_x (pg, svdiv_x (pg, m_by_3, svmul_x (pg, a, a)), a, d->two_thirds); ++ ++ /* Assemble the result by the following: ++ ++ cbrt(x) = cbrt(m) * 2 ^ (e / 3). ++ ++ We can get 2 ^ round(e / 3) using ldexp and integer divide, but since e is ++ not necessarily a multiple of 3 we lose some information. ++ ++ Let q = 2 ^ round(e / 3), then t = 2 ^ (e / 3) / q. ++ ++ Then we know t = 2 ^ (i / 3), where i is the remainder from e / 3, which ++ is an integer in [-2, 2], and can be looked up in the table T. Hence the ++ result is assembled as: ++ ++ cbrt(x) = cbrt(m) * t * 2 ^ round(e / 3) * sign. */ ++ svfloat64_t eb3f = svmul_x (pg, svcvt_f64_x (pg, e), d->one_third); ++ svint64_t ey = svcvt_s64_x (pg, eb3f); ++ svint64_t em3 = svmls_x (pg, e, ey, 3); ++ ++ svfloat64_t my = shifted_lookup (pg, d->table, em3); ++ my = svmul_x (pg, my, a); ++ ++ /* Vector version of ldexp. */ ++ svfloat64_t y = svscale_x (pg, my, ey); ++ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ return special_case ( ++ x, svreinterpret_f64 (svorr_x (pg, svreinterpret_u64 (y), sign)), ++ special); ++ ++ /* Copy sign. */ ++ return svreinterpret_f64 (svorr_x (pg, svreinterpret_u64 (y), sign)); ++} +diff --git a/sysdeps/aarch64/fpu/cbrtf_advsimd.c b/sysdeps/aarch64/fpu/cbrtf_advsimd.c +new file mode 100644 +index 0000000000000000..27debb8b57c8c3e2 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/cbrtf_advsimd.c +@@ -0,0 +1,123 @@ ++/* Single-precision vector (AdvSIMD) cbrt function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_math.h" ++#include "poly_advsimd_f32.h" ++ ++const static struct data ++{ ++ float32x4_t poly[4], one_third; ++ float table[5]; ++} data = { ++ .poly = { /* Very rough approximation of cbrt(x) in [0.5, 1], generated with ++ FPMinimax. */ ++ V4 (0x1.c14e96p-2), V4 (0x1.dd2d3p-1), V4 (-0x1.08e81ap-1), ++ V4 (0x1.2c74c2p-3) }, ++ .table = { /* table[i] = 2^((i - 2) / 3). */ ++ 0x1.428a3p-1, 0x1.965feap-1, 0x1p0, 0x1.428a3p0, 0x1.965feap0 }, ++ .one_third = V4 (0x1.555556p-2f), ++}; ++ ++#define SignMask v_u32 (0x80000000) ++#define SmallestNormal v_u32 (0x00800000) ++#define Thresh vdup_n_u16 (0x7f00) /* asuint(INFINITY) - SmallestNormal. */ ++#define MantissaMask v_u32 (0x007fffff) ++#define HalfExp v_u32 (0x3f000000) ++ ++static float32x4_t VPCS_ATTR NOINLINE ++special_case (float32x4_t x, float32x4_t y, uint16x4_t special) ++{ ++ return v_call_f32 (cbrtf, x, y, vmovl_u16 (special)); ++} ++ ++static inline float32x4_t ++shifted_lookup (const float *table, int32x4_t i) ++{ ++ return (float32x4_t){ table[i[0] + 2], table[i[1] + 2], table[i[2] + 2], ++ table[i[3] + 2] }; ++} ++ ++/* Approximation for vector single-precision cbrt(x) using Newton iteration ++ with initial guess obtained by a low-order polynomial. Greatest error ++ is 1.64 ULP. This is observed for every value where the mantissa is ++ 0x1.85a2aa and the exponent is a multiple of 3, for example: ++ _ZGVnN4v_cbrtf(0x1.85a2aap+3) got 0x1.267936p+1 ++ want 0x1.267932p+1. */ ++VPCS_ATTR float32x4_t V_NAME_F1 (cbrt) (float32x4_t x) ++{ ++ const struct data *d = ptr_barrier (&data); ++ uint32x4_t iax = vreinterpretq_u32_f32 (vabsq_f32 (x)); ++ ++ /* Subnormal, +/-0 and special values. */ ++ uint16x4_t special = vcge_u16 (vsubhn_u32 (iax, SmallestNormal), Thresh); ++ ++ /* Decompose |x| into m * 2^e, where m is in [0.5, 1.0]. This is a vector ++ version of frexpf, which gets subnormal values wrong - these have to be ++ special-cased as a result. */ ++ float32x4_t m = vbslq_f32 (MantissaMask, x, v_f32 (0.5)); ++ int32x4_t e ++ = vsubq_s32 (vreinterpretq_s32_u32 (vshrq_n_u32 (iax, 23)), v_s32 (126)); ++ ++ /* p is a rough approximation for cbrt(m) in [0.5, 1.0]. The better this is, ++ the less accurate the next stage of the algorithm needs to be. An order-4 ++ polynomial is enough for one Newton iteration. */ ++ float32x4_t p = v_pairwise_poly_3_f32 (m, vmulq_f32 (m, m), d->poly); ++ ++ float32x4_t one_third = d->one_third; ++ float32x4_t two_thirds = vaddq_f32 (one_third, one_third); ++ ++ /* One iteration of Newton's method for iteratively approximating cbrt. */ ++ float32x4_t m_by_3 = vmulq_f32 (m, one_third); ++ float32x4_t a ++ = vfmaq_f32 (vdivq_f32 (m_by_3, vmulq_f32 (p, p)), two_thirds, p); ++ ++ /* Assemble the result by the following: ++ ++ cbrt(x) = cbrt(m) * 2 ^ (e / 3). ++ ++ We can get 2 ^ round(e / 3) using ldexp and integer divide, but since e is ++ not necessarily a multiple of 3 we lose some information. ++ ++ Let q = 2 ^ round(e / 3), then t = 2 ^ (e / 3) / q. ++ ++ Then we know t = 2 ^ (i / 3), where i is the remainder from e / 3, which ++ is an integer in [-2, 2], and can be looked up in the table T. Hence the ++ result is assembled as: ++ ++ cbrt(x) = cbrt(m) * t * 2 ^ round(e / 3) * sign. */ ++ float32x4_t ef = vmulq_f32 (vcvtq_f32_s32 (e), one_third); ++ int32x4_t ey = vcvtq_s32_f32 (ef); ++ int32x4_t em3 = vsubq_s32 (e, vmulq_s32 (ey, v_s32 (3))); ++ ++ float32x4_t my = shifted_lookup (d->table, em3); ++ my = vmulq_f32 (my, a); ++ ++ /* Vector version of ldexpf. */ ++ float32x4_t y ++ = vreinterpretq_f32_s32 (vshlq_n_s32 (vaddq_s32 (ey, v_s32 (127)), 23)); ++ y = vmulq_f32 (y, my); ++ ++ if (__glibc_unlikely (v_any_u16h (special))) ++ return special_case (x, vbslq_f32 (SignMask, x, y), special); ++ ++ /* Copy sign. */ ++ return vbslq_f32 (SignMask, x, y); ++} ++libmvec_hidden_def (V_NAME_F1 (cbrt)) ++HALF_WIDTH_ALIAS_F1 (cbrt) +diff --git a/sysdeps/aarch64/fpu/cbrtf_sve.c b/sysdeps/aarch64/fpu/cbrtf_sve.c +new file mode 100644 +index 0000000000000000..23c220c202244c1f +--- /dev/null ++++ b/sysdeps/aarch64/fpu/cbrtf_sve.c +@@ -0,0 +1,122 @@ ++/* Single-precision vector (SVE) cbrt function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "sv_math.h" ++#include "poly_sve_f32.h" ++ ++const static struct data ++{ ++ float32_t poly[4]; ++ float32_t table[5]; ++ float32_t one_third, two_thirds; ++} data = { ++ /* Very rough approximation of cbrt(x) in [0.5, 1], generated with FPMinimax. ++ */ ++ .poly = { 0x1.c14e96p-2, 0x1.dd2d3p-1, -0x1.08e81ap-1, ++ 0x1.2c74c2p-3, }, ++ /* table[i] = 2^((i - 2) / 3). */ ++ .table = { 0x1.428a3p-1, 0x1.965feap-1, 0x1p0, 0x1.428a3p0, 0x1.965feap0 }, ++ .one_third = 0x1.555556p-2f, ++ .two_thirds = 0x1.555556p-1f, ++}; ++ ++#define SmallestNormal 0x00800000 ++#define Thresh 0x7f000000 /* asuint(INFINITY) - SmallestNormal. */ ++#define MantissaMask 0x007fffff ++#define HalfExp 0x3f000000 ++ ++static svfloat32_t NOINLINE ++special_case (svfloat32_t x, svfloat32_t y, svbool_t special) ++{ ++ return sv_call_f32 (cbrtf, x, y, special); ++} ++ ++static inline svfloat32_t ++shifted_lookup (const svbool_t pg, const float32_t *table, svint32_t i) ++{ ++ return svld1_gather_index (pg, table, svadd_x (pg, i, 2)); ++} ++ ++/* Approximation for vector single-precision cbrt(x) using Newton iteration ++ with initial guess obtained by a low-order polynomial. Greatest error ++ is 1.64 ULP. This is observed for every value where the mantissa is ++ 0x1.85a2aa and the exponent is a multiple of 3, for example: ++ _ZGVsMxv_cbrtf (0x1.85a2aap+3) got 0x1.267936p+1 ++ want 0x1.267932p+1. */ ++svfloat32_t SV_NAME_F1 (cbrt) (svfloat32_t x, const svbool_t pg) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ svfloat32_t ax = svabs_x (pg, x); ++ svuint32_t iax = svreinterpret_u32 (ax); ++ svuint32_t sign = sveor_x (pg, svreinterpret_u32 (x), iax); ++ ++ /* Subnormal, +/-0 and special values. */ ++ svbool_t special = svcmpge (pg, svsub_x (pg, iax, SmallestNormal), Thresh); ++ ++ /* Decompose |x| into m * 2^e, where m is in [0.5, 1.0]. This is a vector ++ version of frexpf, which gets subnormal values wrong - these have to be ++ special-cased as a result. */ ++ svfloat32_t m = svreinterpret_f32 (svorr_x ( ++ pg, svand_x (pg, svreinterpret_u32 (x), MantissaMask), HalfExp)); ++ svint32_t e = svsub_x (pg, svreinterpret_s32 (svlsr_x (pg, iax, 23)), 126); ++ ++ /* p is a rough approximation for cbrt(m) in [0.5, 1.0]. The better this is, ++ the less accurate the next stage of the algorithm needs to be. An order-4 ++ polynomial is enough for one Newton iteration. */ ++ svfloat32_t p ++ = sv_pairwise_poly_3_f32_x (pg, m, svmul_x (pg, m, m), d->poly); ++ ++ /* One iteration of Newton's method for iteratively approximating cbrt. */ ++ svfloat32_t m_by_3 = svmul_x (pg, m, d->one_third); ++ svfloat32_t a = svmla_x (pg, svdiv_x (pg, m_by_3, svmul_x (pg, p, p)), p, ++ d->two_thirds); ++ ++ /* Assemble the result by the following: ++ ++ cbrt(x) = cbrt(m) * 2 ^ (e / 3). ++ ++ We can get 2 ^ round(e / 3) using ldexp and integer divide, but since e is ++ not necessarily a multiple of 3 we lose some information. ++ ++ Let q = 2 ^ round(e / 3), then t = 2 ^ (e / 3) / q. ++ ++ Then we know t = 2 ^ (i / 3), where i is the remainder from e / 3, which ++ is an integer in [-2, 2], and can be looked up in the table T. Hence the ++ result is assembled as: ++ ++ cbrt(x) = cbrt(m) * t * 2 ^ round(e / 3) * sign. */ ++ svfloat32_t ef = svmul_x (pg, svcvt_f32_x (pg, e), d->one_third); ++ svint32_t ey = svcvt_s32_x (pg, ef); ++ svint32_t em3 = svmls_x (pg, e, ey, 3); ++ ++ svfloat32_t my = shifted_lookup (pg, d->table, em3); ++ my = svmul_x (pg, my, a); ++ ++ /* Vector version of ldexpf. */ ++ svfloat32_t y = svscale_x (pg, my, ey); ++ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ return special_case ( ++ x, svreinterpret_f32 (svorr_x (pg, svreinterpret_u32 (y), sign)), ++ special); ++ ++ /* Copy sign. */ ++ return svreinterpret_f32 (svorr_x (pg, svreinterpret_u32 (y), sign)); ++} +diff --git a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +index 417125be476cd75f..1877db3ac6932037 100644 +--- a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +@@ -30,6 +30,7 @@ VPCS_VECTOR_WRAPPER (asinh_advsimd, _ZGVnN2v_asinh) + VPCS_VECTOR_WRAPPER (atan_advsimd, _ZGVnN2v_atan) + VPCS_VECTOR_WRAPPER (atanh_advsimd, _ZGVnN2v_atanh) + VPCS_VECTOR_WRAPPER_ff (atan2_advsimd, _ZGVnN2vv_atan2) ++VPCS_VECTOR_WRAPPER (cbrt_advsimd, _ZGVnN2v_cbrt) + VPCS_VECTOR_WRAPPER (cos_advsimd, _ZGVnN2v_cos) + VPCS_VECTOR_WRAPPER (cosh_advsimd, _ZGVnN2v_cosh) + VPCS_VECTOR_WRAPPER (erf_advsimd, _ZGVnN2v_erf) +diff --git a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +index 31ebf18705f68856..b702f942dea0749f 100644 +--- a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +@@ -49,6 +49,7 @@ SVE_VECTOR_WRAPPER (asinh_sve, _ZGVsMxv_asinh) + SVE_VECTOR_WRAPPER (atan_sve, _ZGVsMxv_atan) + SVE_VECTOR_WRAPPER (atanh_sve, _ZGVsMxv_atanh) + SVE_VECTOR_WRAPPER_ff (atan2_sve, _ZGVsMxvv_atan2) ++SVE_VECTOR_WRAPPER (cbrt_sve, _ZGVsMxv_cbrt) + SVE_VECTOR_WRAPPER (cos_sve, _ZGVsMxv_cos) + SVE_VECTOR_WRAPPER (cosh_sve, _ZGVsMxv_cosh) + SVE_VECTOR_WRAPPER (erf_sve, _ZGVsMxv_erf) +diff --git a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +index dab0f1cfcb79a305..9cb451b4f045e625 100644 +--- a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +@@ -30,6 +30,7 @@ VPCS_VECTOR_WRAPPER (asinhf_advsimd, _ZGVnN4v_asinhf) + VPCS_VECTOR_WRAPPER (atanf_advsimd, _ZGVnN4v_atanf) + VPCS_VECTOR_WRAPPER (atanhf_advsimd, _ZGVnN4v_atanhf) + VPCS_VECTOR_WRAPPER_ff (atan2f_advsimd, _ZGVnN4vv_atan2f) ++VPCS_VECTOR_WRAPPER (cbrtf_advsimd, _ZGVnN4v_cbrtf) + VPCS_VECTOR_WRAPPER (cosf_advsimd, _ZGVnN4v_cosf) + VPCS_VECTOR_WRAPPER (coshf_advsimd, _ZGVnN4v_coshf) + VPCS_VECTOR_WRAPPER (erff_advsimd, _ZGVnN4v_erff) +diff --git a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +index 2aa6cbcc28d69cf8..5b3dd22916d2a50d 100644 +--- a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +@@ -49,6 +49,7 @@ SVE_VECTOR_WRAPPER (asinhf_sve, _ZGVsMxv_asinhf) + SVE_VECTOR_WRAPPER (atanf_sve, _ZGVsMxv_atanf) + SVE_VECTOR_WRAPPER (atanhf_sve, _ZGVsMxv_atanhf) + SVE_VECTOR_WRAPPER_ff (atan2f_sve, _ZGVsMxvv_atan2f) ++SVE_VECTOR_WRAPPER (cbrtf_sve, _ZGVsMxv_cbrtf) + SVE_VECTOR_WRAPPER (cosf_sve, _ZGVsMxv_cosf) + SVE_VECTOR_WRAPPER (coshf_sve, _ZGVsMxv_coshf) + SVE_VECTOR_WRAPPER (erff_sve, _ZGVsMxv_erff) +diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps +index 17723d0c9e2dfcf5..a67cd7cd7399c533 100644 +--- a/sysdeps/aarch64/libm-test-ulps ++++ b/sysdeps/aarch64/libm-test-ulps +@@ -477,11 +477,19 @@ double: 4 + float: 1 + ldouble: 1 + ++Function: "cbrt_advsimd": ++double: 1 ++float: 1 ++ + Function: "cbrt_downward": + double: 4 + float: 1 + ldouble: 1 + ++Function: "cbrt_sve": ++double: 1 ++float: 1 ++ + Function: "cbrt_towardzero": + double: 3 + float: 1 +diff --git a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +index 1184374efd25cfa6..89ac1dfa36279eb0 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist ++++ b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +@@ -79,6 +79,8 @@ GLIBC_2.40 _ZGVnN2v_asinh F + GLIBC_2.40 _ZGVnN2v_asinhf F + GLIBC_2.40 _ZGVnN2v_atanh F + GLIBC_2.40 _ZGVnN2v_atanhf F ++GLIBC_2.40 _ZGVnN2v_cbrt F ++GLIBC_2.40 _ZGVnN2v_cbrtf F + GLIBC_2.40 _ZGVnN2v_cosh F + GLIBC_2.40 _ZGVnN2v_coshf F + GLIBC_2.40 _ZGVnN2v_erf F +@@ -94,6 +96,7 @@ GLIBC_2.40 _ZGVnN2vv_hypotf F + GLIBC_2.40 _ZGVnN4v_acoshf F + GLIBC_2.40 _ZGVnN4v_asinhf F + GLIBC_2.40 _ZGVnN4v_atanhf F ++GLIBC_2.40 _ZGVnN4v_cbrtf F + GLIBC_2.40 _ZGVnN4v_coshf F + GLIBC_2.40 _ZGVnN4v_erfcf F + GLIBC_2.40 _ZGVnN4v_erff F +@@ -106,6 +109,8 @@ GLIBC_2.40 _ZGVsMxv_asinh F + GLIBC_2.40 _ZGVsMxv_asinhf F + GLIBC_2.40 _ZGVsMxv_atanh F + GLIBC_2.40 _ZGVsMxv_atanhf F ++GLIBC_2.40 _ZGVsMxv_cbrt F ++GLIBC_2.40 _ZGVsMxv_cbrtf F + GLIBC_2.40 _ZGVsMxv_cosh F + GLIBC_2.40 _ZGVsMxv_coshf F + GLIBC_2.40 _ZGVsMxv_erf F diff --git a/glibc-RHEL-118273-12.patch b/glibc-RHEL-118273-12.patch new file mode 100644 index 0000000..73aa260 --- /dev/null +++ b/glibc-RHEL-118273-12.patch @@ -0,0 +1,2511 @@ +commit 0fed0b250f728f38bca5f6fba1dcecdccfc6a44e +Author: Joe Ramsay +Date: Thu May 16 09:21:24 2024 +0100 + + aarch64/fpu: Add vector variants of pow + + Plus a small amount of moving includes around in order to be able to + remove duplicate definition of asuint64. + + Reviewed-by: Szabolcs Nagy + +Conflicts: + sysdeps/aarch64/fpu/atan2_advsimd.c + sysdeps/aarch64/fpu/atan2_sve.c + (Adjusting to align with glibc-upstream-2.39-214.patch) + +diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile +index 990d1135b93485c5..234a6c457c26f6cb 100644 +--- a/sysdeps/aarch64/fpu/Makefile ++++ b/sysdeps/aarch64/fpu/Makefile +@@ -19,6 +19,7 @@ libmvec-supported-funcs = acos \ + log10 \ + log1p \ + log2 \ ++ pow \ + sin \ + sinh \ + tan \ +@@ -44,7 +45,10 @@ libmvec-support = $(addsuffix f_advsimd,$(float-advsimd-funcs)) \ + sv_erff_data \ + v_exp_tail_data \ + erfc_data \ +- erfcf_data ++ erfcf_data \ ++ v_pow_exp_data \ ++ v_pow_log_data \ ++ v_powf_data + endif + + sve-cflags = -march=armv8-a+sve +diff --git a/sysdeps/aarch64/fpu/Versions b/sysdeps/aarch64/fpu/Versions +index 36a9e4df1e058c46..cc15ce2d1e26b2c3 100644 +--- a/sysdeps/aarch64/fpu/Versions ++++ b/sysdeps/aarch64/fpu/Versions +@@ -119,6 +119,11 @@ libmvec { + _ZGVnN2vv_hypot; + _ZGVsMxvv_hypotf; + _ZGVsMxvv_hypot; ++ _ZGVnN4vv_powf; ++ _ZGVnN2vv_powf; ++ _ZGVnN2vv_pow; ++ _ZGVsMxvv_powf; ++ _ZGVsMxvv_pow; + _ZGVnN2v_sinh; + _ZGVnN2v_sinhf; + _ZGVnN4v_sinhf; +diff --git a/sysdeps/aarch64/fpu/advsimd_f32_protos.h b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +index 54858efd8aa0ff82..097d403ffe2c379b 100644 +--- a/sysdeps/aarch64/fpu/advsimd_f32_protos.h ++++ b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +@@ -37,6 +37,7 @@ libmvec_hidden_proto (V_NAME_F1(log10)); + libmvec_hidden_proto (V_NAME_F1(log1p)); + libmvec_hidden_proto (V_NAME_F1(log2)); + libmvec_hidden_proto (V_NAME_F1(log)); ++libmvec_hidden_proto (V_NAME_F2(pow)); + libmvec_hidden_proto (V_NAME_F1(sin)); + libmvec_hidden_proto (V_NAME_F1(sinh)); + libmvec_hidden_proto (V_NAME_F1(tan)); +diff --git a/sysdeps/aarch64/fpu/atan2_advsimd.c b/sysdeps/aarch64/fpu/atan2_advsimd.c +index 36be4ce83ac15727..1e5d20602ea27380 100644 +--- a/sysdeps/aarch64/fpu/atan2_advsimd.c ++++ b/sysdeps/aarch64/fpu/atan2_advsimd.c +@@ -17,6 +17,7 @@ + License along with the GNU C Library; if not, see + . */ + ++#include "math_config.h" + #include "v_math.h" + + static const struct data +diff --git a/sysdeps/aarch64/fpu/atan2_sve.c b/sysdeps/aarch64/fpu/atan2_sve.c +index 7af4931cdb89a1c5..0337ea57b78be851 100644 +--- a/sysdeps/aarch64/fpu/atan2_sve.c ++++ b/sysdeps/aarch64/fpu/atan2_sve.c +@@ -17,6 +17,7 @@ + License along with the GNU C Library; if not, see + . */ + ++#include "math_config.h" + #include "sv_math.h" + + static const struct data +diff --git a/sysdeps/aarch64/fpu/bits/math-vector.h b/sysdeps/aarch64/fpu/bits/math-vector.h +index b1c024fe13a7dc32..74841501311827c1 100644 +--- a/sysdeps/aarch64/fpu/bits/math-vector.h ++++ b/sysdeps/aarch64/fpu/bits/math-vector.h +@@ -113,6 +113,10 @@ + # define __DECL_SIMD_log2 __DECL_SIMD_aarch64 + # undef __DECL_SIMD_log2f + # define __DECL_SIMD_log2f __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_pow ++# define __DECL_SIMD_pow __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_powf ++# define __DECL_SIMD_powf __DECL_SIMD_aarch64 + # undef __DECL_SIMD_sin + # define __DECL_SIMD_sin __DECL_SIMD_aarch64 + # undef __DECL_SIMD_sinf +@@ -176,6 +180,7 @@ __vpcs __f32x4_t _ZGVnN4v_logf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_log10f (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_log1pf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_log2f (__f32x4_t); ++__vpcs __f32x4_t _ZGVnN4vv_powf (__f32x4_t, __f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_sinf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_sinhf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_tanf (__f32x4_t); +@@ -202,6 +207,7 @@ __vpcs __f64x2_t _ZGVnN2v_log (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_log10 (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_log1p (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_log2 (__f64x2_t); ++__vpcs __f64x2_t _ZGVnN2vv_pow (__f64x2_t, __f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_sin (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_sinh (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_tan (__f64x2_t); +@@ -233,6 +239,7 @@ __sv_f32_t _ZGVsMxv_logf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_log10f (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_log1pf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_log2f (__sv_f32_t, __sv_bool_t); ++__sv_f32_t _ZGVsMxvv_powf (__sv_f32_t, __sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_sinf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_sinhf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_tanf (__sv_f32_t, __sv_bool_t); +@@ -259,6 +266,7 @@ __sv_f64_t _ZGVsMxv_log (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_log10 (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_log1p (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_log2 (__sv_f64_t, __sv_bool_t); ++__sv_f64_t _ZGVsMxvv_pow (__sv_f64_t, __sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_sin (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_sinh (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_tan (__sv_f64_t, __sv_bool_t); +diff --git a/sysdeps/aarch64/fpu/finite_pow.h b/sysdeps/aarch64/fpu/finite_pow.h +new file mode 100644 +index 0000000000000000..84c93d404836e2ba +--- /dev/null ++++ b/sysdeps/aarch64/fpu/finite_pow.h +@@ -0,0 +1,373 @@ ++/* Double-precision x^y function. ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "math_config.h" ++ ++/* Scalar version of pow used for fallbacks in vector implementations. */ ++ ++/* Data is defined in v_pow_log_data.c. */ ++#define N_LOG (1 << V_POW_LOG_TABLE_BITS) ++#define Off 0x3fe6955500000000 ++#define As __v_pow_log_data.poly ++ ++/* Data is defined in v_pow_exp_data.c. */ ++#define N_EXP (1 << V_POW_EXP_TABLE_BITS) ++#define SignBias (0x800 << V_POW_EXP_TABLE_BITS) ++#define SmallExp 0x3c9 /* top12(0x1p-54). */ ++#define BigExp 0x408 /* top12(512.0). */ ++#define ThresExp 0x03f /* BigExp - SmallExp. */ ++#define InvLn2N __v_pow_exp_data.n_over_ln2 ++#define Ln2HiN __v_pow_exp_data.ln2_over_n_hi ++#define Ln2LoN __v_pow_exp_data.ln2_over_n_lo ++#define SBits __v_pow_exp_data.sbits ++#define Cs __v_pow_exp_data.poly ++ ++/* Constants associated with pow. */ ++#define SmallPowX 0x001 /* top12(0x1p-126). */ ++#define BigPowX 0x7ff /* top12(INFINITY). */ ++#define ThresPowX 0x7fe /* BigPowX - SmallPowX. */ ++#define SmallPowY 0x3be /* top12(0x1.e7b6p-65). */ ++#define BigPowY 0x43e /* top12(0x1.749p62). */ ++#define ThresPowY 0x080 /* BigPowY - SmallPowY. */ ++ ++/* Top 12 bits of a double (sign and exponent bits). */ ++static inline uint32_t ++top12 (double x) ++{ ++ return asuint64 (x) >> 52; ++} ++ ++/* Compute y+TAIL = log(x) where the rounded result is y and TAIL has about ++ additional 15 bits precision. IX is the bit representation of x, but ++ normalized in the subnormal range using the sign bit for the exponent. */ ++static inline double ++log_inline (uint64_t ix, double *tail) ++{ ++ /* x = 2^k z; where z is in range [Off,2*Off) and exact. ++ The range is split into N subintervals. ++ The ith subinterval contains z and c is near its center. */ ++ uint64_t tmp = ix - Off; ++ int i = (tmp >> (52 - V_POW_LOG_TABLE_BITS)) & (N_LOG - 1); ++ int k = (int64_t) tmp >> 52; /* arithmetic shift. */ ++ uint64_t iz = ix - (tmp & 0xfffULL << 52); ++ double z = asdouble (iz); ++ double kd = (double) k; ++ ++ /* log(x) = k*Ln2 + log(c) + log1p(z/c-1). */ ++ double invc = __v_pow_log_data.invc[i]; ++ double logc = __v_pow_log_data.logc[i]; ++ double logctail = __v_pow_log_data.logctail[i]; ++ ++ /* Note: 1/c is j/N or j/N/2 where j is an integer in [N,2N) and ++ |z/c - 1| < 1/N, so r = z/c - 1 is exactly representible. */ ++ double r = fma (z, invc, -1.0); ++ ++ /* k*Ln2 + log(c) + r. */ ++ double t1 = kd * __v_pow_log_data.ln2_hi + logc; ++ double t2 = t1 + r; ++ double lo1 = kd * __v_pow_log_data.ln2_lo + logctail; ++ double lo2 = t1 - t2 + r; ++ ++ /* Evaluation is optimized assuming superscalar pipelined execution. */ ++ double ar = As[0] * r; ++ double ar2 = r * ar; ++ double ar3 = r * ar2; ++ /* k*Ln2 + log(c) + r + A[0]*r*r. */ ++ double hi = t2 + ar2; ++ double lo3 = fma (ar, r, -ar2); ++ double lo4 = t2 - hi + ar2; ++ /* p = log1p(r) - r - A[0]*r*r. */ ++ double p = (ar3 ++ * (As[1] + r * As[2] ++ + ar2 * (As[3] + r * As[4] + ar2 * (As[5] + r * As[6])))); ++ double lo = lo1 + lo2 + lo3 + lo4 + p; ++ double y = hi + lo; ++ *tail = hi - y + lo; ++ return y; ++} ++ ++/* Handle cases that may overflow or underflow when computing the result that ++ is scale*(1+TMP) without intermediate rounding. The bit representation of ++ scale is in SBITS, however it has a computed exponent that may have ++ overflown into the sign bit so that needs to be adjusted before using it as ++ a double. (int32_t)KI is the k used in the argument reduction and exponent ++ adjustment of scale, positive k here means the result may overflow and ++ negative k means the result may underflow. */ ++static inline double ++special_case (double tmp, uint64_t sbits, uint64_t ki) ++{ ++ double scale, y; ++ ++ if ((ki & 0x80000000) == 0) ++ { ++ /* k > 0, the exponent of scale might have overflowed by <= 460. */ ++ sbits -= 1009ull << 52; ++ scale = asdouble (sbits); ++ y = 0x1p1009 * (scale + scale * tmp); ++ return y; ++ } ++ /* k < 0, need special care in the subnormal range. */ ++ sbits += 1022ull << 52; ++ /* Note: sbits is signed scale. */ ++ scale = asdouble (sbits); ++ y = scale + scale * tmp; ++#if WANT_SIMD_EXCEPT ++ if (fabs (y) < 1.0) ++ { ++ /* Round y to the right precision before scaling it into the subnormal ++ range to avoid double rounding that can cause 0.5+E/2 ulp error where ++ E is the worst-case ulp error outside the subnormal range. So this ++ is only useful if the goal is better than 1 ulp worst-case error. */ ++ double hi, lo, one = 1.0; ++ if (y < 0.0) ++ one = -1.0; ++ lo = scale - y + scale * tmp; ++ hi = one + y; ++ lo = one - hi + y + lo; ++ y = (hi + lo) - one; ++ /* Fix the sign of 0. */ ++ if (y == 0.0) ++ y = asdouble (sbits & 0x8000000000000000); ++ /* The underflow exception needs to be signaled explicitly. */ ++ force_eval_double (opt_barrier_double (0x1p-1022) * 0x1p-1022); ++ } ++#endif ++ y = 0x1p-1022 * y; ++ return y; ++} ++ ++/* Computes sign*exp(x+xtail) where |xtail| < 2^-8/N and |xtail| <= |x|. ++ The sign_bias argument is SignBias or 0 and sets the sign to -1 or 1. */ ++static inline double ++exp_inline (double x, double xtail, uint32_t sign_bias) ++{ ++ uint32_t abstop = top12 (x) & 0x7ff; ++ if (__glibc_unlikely (abstop - SmallExp >= ThresExp)) ++ { ++ if (abstop - SmallExp >= 0x80000000) ++ { ++ /* Avoid spurious underflow for tiny x. */ ++ /* Note: 0 is common input. */ ++ return sign_bias ? -1.0 : 1.0; ++ } ++ if (abstop >= top12 (1024.0)) ++ { ++ /* Note: inf and nan are already handled. */ ++ /* Skip errno handling. */ ++#if WANT_SIMD_EXCEPT ++ return asuint64 (x) >> 63 ? __math_uflow (sign_bias) ++ : __math_oflow (sign_bias); ++#else ++ double res_uoflow = asuint64 (x) >> 63 ? 0.0 : INFINITY; ++ return sign_bias ? -res_uoflow : res_uoflow; ++#endif ++ } ++ /* Large x is special cased below. */ ++ abstop = 0; ++ } ++ ++ /* exp(x) = 2^(k/N) * exp(r), with exp(r) in [2^(-1/2N),2^(1/2N)]. */ ++ /* x = ln2/N*k + r, with int k and r in [-ln2/2N, ln2/2N]. */ ++ double z = InvLn2N * x; ++ double kd = round (z); ++ uint64_t ki = lround (z); ++ double r = x - kd * Ln2HiN - kd * Ln2LoN; ++ /* The code assumes 2^-200 < |xtail| < 2^-8/N. */ ++ r += xtail; ++ /* 2^(k/N) ~= scale. */ ++ uint64_t idx = ki & (N_EXP - 1); ++ uint64_t top = (ki + sign_bias) << (52 - V_POW_EXP_TABLE_BITS); ++ /* This is only a valid scale when -1023*N < k < 1024*N. */ ++ uint64_t sbits = SBits[idx] + top; ++ /* exp(x) = 2^(k/N) * exp(r) ~= scale + scale * (exp(r) - 1). */ ++ /* Evaluation is optimized assuming superscalar pipelined execution. */ ++ double r2 = r * r; ++ double tmp = r + r2 * Cs[0] + r * r2 * (Cs[1] + r * Cs[2]); ++ if (__glibc_unlikely (abstop == 0)) ++ return special_case (tmp, sbits, ki); ++ double scale = asdouble (sbits); ++ /* Note: tmp == 0 or |tmp| > 2^-200 and scale > 2^-739, so there ++ is no spurious underflow here even without fma. */ ++ return scale + scale * tmp; ++} ++ ++/* Computes exp(x+xtail) where |xtail| < 2^-8/N and |xtail| <= |x|. ++ A version of exp_inline that is not inlined and for which sign_bias is ++ equal to 0. */ ++static double NOINLINE ++exp_nosignbias (double x, double xtail) ++{ ++ uint32_t abstop = top12 (x) & 0x7ff; ++ if (__glibc_unlikely (abstop - SmallExp >= ThresExp)) ++ { ++ /* Avoid spurious underflow for tiny x. */ ++ if (abstop - SmallExp >= 0x80000000) ++ return 1.0; ++ /* Note: inf and nan are already handled. */ ++ if (abstop >= top12 (1024.0)) ++#if WANT_SIMD_EXCEPT ++ return asuint64 (x) >> 63 ? __math_uflow (0) : __math_oflow (0); ++#else ++ return asuint64 (x) >> 63 ? 0.0 : INFINITY; ++#endif ++ /* Large x is special cased below. */ ++ abstop = 0; ++ } ++ ++ /* exp(x) = 2^(k/N) * exp(r), with exp(r) in [2^(-1/2N),2^(1/2N)]. */ ++ /* x = ln2/N*k + r, with k integer and r in [-ln2/2N, ln2/2N]. */ ++ double z = InvLn2N * x; ++ double kd = round (z); ++ uint64_t ki = lround (z); ++ double r = x - kd * Ln2HiN - kd * Ln2LoN; ++ /* The code assumes 2^-200 < |xtail| < 2^-8/N. */ ++ r += xtail; ++ /* 2^(k/N) ~= scale. */ ++ uint64_t idx = ki & (N_EXP - 1); ++ uint64_t top = ki << (52 - V_POW_EXP_TABLE_BITS); ++ /* This is only a valid scale when -1023*N < k < 1024*N. */ ++ uint64_t sbits = SBits[idx] + top; ++ /* exp(x) = 2^(k/N) * exp(r) ~= scale + scale * (tail + exp(r) - 1). */ ++ double r2 = r * r; ++ double tmp = r + r2 * Cs[0] + r * r2 * (Cs[1] + r * Cs[2]); ++ if (__glibc_unlikely (abstop == 0)) ++ return special_case (tmp, sbits, ki); ++ double scale = asdouble (sbits); ++ /* Note: tmp == 0 or |tmp| > 2^-200 and scale > 2^-739, so there ++ is no spurious underflow here even without fma. */ ++ return scale + scale * tmp; ++} ++ ++/* Returns 0 if not int, 1 if odd int, 2 if even int. The argument is ++ the bit representation of a non-zero finite floating-point value. */ ++static inline int ++checkint (uint64_t iy) ++{ ++ int e = iy >> 52 & 0x7ff; ++ if (e < 0x3ff) ++ return 0; ++ if (e > 0x3ff + 52) ++ return 2; ++ if (iy & ((1ULL << (0x3ff + 52 - e)) - 1)) ++ return 0; ++ if (iy & (1ULL << (0x3ff + 52 - e))) ++ return 1; ++ return 2; ++} ++ ++/* Returns 1 if input is the bit representation of 0, infinity or nan. */ ++static inline int ++zeroinfnan (uint64_t i) ++{ ++ return 2 * i - 1 >= 2 * asuint64 (INFINITY) - 1; ++} ++ ++static double NOINLINE ++pow_scalar_special_case (double x, double y) ++{ ++ uint32_t sign_bias = 0; ++ uint64_t ix, iy; ++ uint32_t topx, topy; ++ ++ ix = asuint64 (x); ++ iy = asuint64 (y); ++ topx = top12 (x); ++ topy = top12 (y); ++ if (__glibc_unlikely (topx - SmallPowX >= ThresPowX ++ || (topy & 0x7ff) - SmallPowY >= ThresPowY)) ++ { ++ /* Note: if |y| > 1075 * ln2 * 2^53 ~= 0x1.749p62 then pow(x,y) = inf/0 ++ and if |y| < 2^-54 / 1075 ~= 0x1.e7b6p-65 then pow(x,y) = +-1. */ ++ /* Special cases: (x < 0x1p-126 or inf or nan) or ++ (|y| < 0x1p-65 or |y| >= 0x1p63 or nan). */ ++ if (__glibc_unlikely (zeroinfnan (iy))) ++ { ++ if (2 * iy == 0) ++ return issignaling_inline (x) ? x + y : 1.0; ++ if (ix == asuint64 (1.0)) ++ return issignaling_inline (y) ? x + y : 1.0; ++ if (2 * ix > 2 * asuint64 (INFINITY) ++ || 2 * iy > 2 * asuint64 (INFINITY)) ++ return x + y; ++ if (2 * ix == 2 * asuint64 (1.0)) ++ return 1.0; ++ if ((2 * ix < 2 * asuint64 (1.0)) == !(iy >> 63)) ++ return 0.0; /* |x|<1 && y==inf or |x|>1 && y==-inf. */ ++ return y * y; ++ } ++ if (__glibc_unlikely (zeroinfnan (ix))) ++ { ++ double x2 = x * x; ++ if (ix >> 63 && checkint (iy) == 1) ++ { ++ x2 = -x2; ++ sign_bias = 1; ++ } ++#if WANT_SIMD_EXCEPT ++ if (2 * ix == 0 && iy >> 63) ++ return __math_divzero (sign_bias); ++#endif ++ return iy >> 63 ? 1 / x2 : x2; ++ } ++ /* Here x and y are non-zero finite. */ ++ if (ix >> 63) ++ { ++ /* Finite x < 0. */ ++ int yint = checkint (iy); ++ if (yint == 0) ++#if WANT_SIMD_EXCEPT ++ return __math_invalid (x); ++#else ++ return __builtin_nan (""); ++#endif ++ if (yint == 1) ++ sign_bias = SignBias; ++ ix &= 0x7fffffffffffffff; ++ topx &= 0x7ff; ++ } ++ if ((topy & 0x7ff) - SmallPowY >= ThresPowY) ++ { ++ /* Note: sign_bias == 0 here because y is not odd. */ ++ if (ix == asuint64 (1.0)) ++ return 1.0; ++ /* |y| < 2^-65, x^y ~= 1 + y*log(x). */ ++ if ((topy & 0x7ff) < SmallPowY) ++ return 1.0; ++#if WANT_SIMD_EXCEPT ++ return (ix > asuint64 (1.0)) == (topy < 0x800) ? __math_oflow (0) ++ : __math_uflow (0); ++#else ++ return (ix > asuint64 (1.0)) == (topy < 0x800) ? INFINITY : 0; ++#endif ++ } ++ if (topx == 0) ++ { ++ /* Normalize subnormal x so exponent becomes negative. */ ++ ix = asuint64 (x * 0x1p52); ++ ix &= 0x7fffffffffffffff; ++ ix -= 52ULL << 52; ++ } ++ } ++ ++ double lo; ++ double hi = log_inline (ix, &lo); ++ double ehi = y * hi; ++ double elo = y * lo + fma (y, hi, -ehi); ++ return exp_inline (ehi, elo, sign_bias); ++} +diff --git a/sysdeps/aarch64/fpu/pow_advsimd.c b/sysdeps/aarch64/fpu/pow_advsimd.c +new file mode 100644 +index 0000000000000000..3c91e3e183599e3e +--- /dev/null ++++ b/sysdeps/aarch64/fpu/pow_advsimd.c +@@ -0,0 +1,249 @@ ++/* Double-precision vector (AdvSIMD) pow function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_math.h" ++ ++/* Defines parameters of the approximation and scalar fallback. */ ++#include "finite_pow.h" ++ ++#define VecSmallExp v_u64 (SmallExp) ++#define VecThresExp v_u64 (ThresExp) ++ ++#define VecSmallPowX v_u64 (SmallPowX) ++#define VecThresPowX v_u64 (ThresPowX) ++#define VecSmallPowY v_u64 (SmallPowY) ++#define VecThresPowY v_u64 (ThresPowY) ++ ++static const struct data ++{ ++ float64x2_t log_poly[6]; ++ float64x2_t exp_poly[3]; ++ float64x2_t ln2_hi, ln2_lo; ++ float64x2_t shift, inv_ln2_n, ln2_hi_n, ln2_lo_n, small_powx; ++ uint64x2_t inf; ++} data = { ++ /* Coefficients copied from v_pow_log_data.c ++ relative error: 0x1.11922ap-70 in [-0x1.6bp-8, 0x1.6bp-8] ++ Coefficients are scaled to match the scaling during evaluation. */ ++ .log_poly ++ = { V2 (0x1.555555555556p-2 * -2), V2 (-0x1.0000000000006p-2 * -2), ++ V2 (0x1.999999959554ep-3 * 4), V2 (-0x1.555555529a47ap-3 * 4), ++ V2 (0x1.2495b9b4845e9p-3 * -8), V2 (-0x1.0002b8b263fc3p-3 * -8) }, ++ .ln2_hi = V2 (0x1.62e42fefa3800p-1), ++ .ln2_lo = V2 (0x1.ef35793c76730p-45), ++ /* Polynomial coefficients: abs error: 1.43*2^-58, ulp error: 0.549 ++ (0.550 without fma) if |x| < ln2/512. */ ++ .exp_poly = { V2 (0x1.fffffffffffd4p-2), V2 (0x1.5555571d6ef9p-3), ++ V2 (0x1.5555576a5adcep-5) }, ++ .shift = V2 (0x1.8p52), /* round to nearest int. without intrinsics. */ ++ .inv_ln2_n = V2 (0x1.71547652b82fep8), /* N/ln2. */ ++ .ln2_hi_n = V2 (0x1.62e42fefc0000p-9), /* ln2/N. */ ++ .ln2_lo_n = V2 (-0x1.c610ca86c3899p-45), ++ .small_powx = V2 (0x1p-126), ++ .inf = V2 (0x7ff0000000000000) ++}; ++ ++#define A(i) data.log_poly[i] ++#define C(i) data.exp_poly[i] ++ ++/* This version implements an algorithm close to scalar pow but ++ - does not implement the trick in the exp's specialcase subroutine to avoid ++ double-rounding, ++ - does not use a tail in the exponential core computation, ++ - and pow's exp polynomial order and table bits might differ. ++ ++ Maximum measured error is 1.04 ULPs: ++ _ZGVnN2vv_pow(0x1.024a3e56b3c3p-136, 0x1.87910248b58acp-13) ++ got 0x1.f71162f473251p-1 ++ want 0x1.f71162f473252p-1. */ ++ ++static inline float64x2_t ++v_masked_lookup_f64 (const double *table, uint64x2_t i) ++{ ++ return (float64x2_t){ ++ table[(i[0] >> (52 - V_POW_LOG_TABLE_BITS)) & (N_LOG - 1)], ++ table[(i[1] >> (52 - V_POW_LOG_TABLE_BITS)) & (N_LOG - 1)] ++ }; ++} ++ ++/* Compute y+TAIL = log(x) where the rounded result is y and TAIL has about ++ additional 15 bits precision. IX is the bit representation of x, but ++ normalized in the subnormal range using the sign bit for the exponent. */ ++static inline float64x2_t ++v_log_inline (uint64x2_t ix, float64x2_t *tail, const struct data *d) ++{ ++ /* x = 2^k z; where z is in range [OFF,2*OFF) and exact. ++ The range is split into N subintervals. ++ The ith subinterval contains z and c is near its center. */ ++ uint64x2_t tmp = vsubq_u64 (ix, v_u64 (Off)); ++ int64x2_t k ++ = vshrq_n_s64 (vreinterpretq_s64_u64 (tmp), 52); /* arithmetic shift. */ ++ uint64x2_t iz = vsubq_u64 (ix, vandq_u64 (tmp, v_u64 (0xfffULL << 52))); ++ float64x2_t z = vreinterpretq_f64_u64 (iz); ++ float64x2_t kd = vcvtq_f64_s64 (k); ++ /* log(x) = k*Ln2 + log(c) + log1p(z/c-1). */ ++ float64x2_t invc = v_masked_lookup_f64 (__v_pow_log_data.invc, tmp); ++ float64x2_t logc = v_masked_lookup_f64 (__v_pow_log_data.logc, tmp); ++ float64x2_t logctail = v_masked_lookup_f64 (__v_pow_log_data.logctail, tmp); ++ /* Note: 1/c is j/N or j/N/2 where j is an integer in [N,2N) and ++ |z/c - 1| < 1/N, so r = z/c - 1 is exactly representible. */ ++ float64x2_t r = vfmaq_f64 (v_f64 (-1.0), z, invc); ++ /* k*Ln2 + log(c) + r. */ ++ float64x2_t t1 = vfmaq_f64 (logc, kd, d->ln2_hi); ++ float64x2_t t2 = vaddq_f64 (t1, r); ++ float64x2_t lo1 = vfmaq_f64 (logctail, kd, d->ln2_lo); ++ float64x2_t lo2 = vaddq_f64 (vsubq_f64 (t1, t2), r); ++ /* Evaluation is optimized assuming superscalar pipelined execution. */ ++ float64x2_t ar = vmulq_f64 (v_f64 (-0.5), r); ++ float64x2_t ar2 = vmulq_f64 (r, ar); ++ float64x2_t ar3 = vmulq_f64 (r, ar2); ++ /* k*Ln2 + log(c) + r + A[0]*r*r. */ ++ float64x2_t hi = vaddq_f64 (t2, ar2); ++ float64x2_t lo3 = vfmaq_f64 (vnegq_f64 (ar2), ar, r); ++ float64x2_t lo4 = vaddq_f64 (vsubq_f64 (t2, hi), ar2); ++ /* p = log1p(r) - r - A[0]*r*r. */ ++ float64x2_t a56 = vfmaq_f64 (A (4), r, A (5)); ++ float64x2_t a34 = vfmaq_f64 (A (2), r, A (3)); ++ float64x2_t a12 = vfmaq_f64 (A (0), r, A (1)); ++ float64x2_t p = vfmaq_f64 (a34, ar2, a56); ++ p = vfmaq_f64 (a12, ar2, p); ++ p = vmulq_f64 (ar3, p); ++ float64x2_t lo ++ = vaddq_f64 (vaddq_f64 (vaddq_f64 (vaddq_f64 (lo1, lo2), lo3), lo4), p); ++ float64x2_t y = vaddq_f64 (hi, lo); ++ *tail = vaddq_f64 (vsubq_f64 (hi, y), lo); ++ return y; ++} ++ ++static float64x2_t VPCS_ATTR NOINLINE ++exp_special_case (float64x2_t x, float64x2_t xtail) ++{ ++ return (float64x2_t){ exp_nosignbias (x[0], xtail[0]), ++ exp_nosignbias (x[1], xtail[1]) }; ++} ++ ++/* Computes sign*exp(x+xtail) where |xtail| < 2^-8/N and |xtail| <= |x|. */ ++static inline float64x2_t ++v_exp_inline (float64x2_t x, float64x2_t xtail, const struct data *d) ++{ ++ /* Fallback to scalar exp_inline for all lanes if any lane ++ contains value of x s.t. |x| <= 2^-54 or >= 512. */ ++ uint64x2_t abstop ++ = vshrq_n_u64 (vandq_u64 (vreinterpretq_u64_f64 (x), d->inf), 52); ++ uint64x2_t uoflowx ++ = vcgeq_u64 (vsubq_u64 (abstop, VecSmallExp), VecThresExp); ++ if (__glibc_unlikely (v_any_u64 (uoflowx))) ++ return exp_special_case (x, xtail); ++ ++ /* exp(x) = 2^(k/N) * exp(r), with exp(r) in [2^(-1/2N),2^(1/2N)]. */ ++ /* x = ln2/N*k + r, with k integer and r in [-ln2/2N, ln2/2N]. */ ++ float64x2_t z = vmulq_f64 (d->inv_ln2_n, x); ++ /* z - kd is in [-1, 1] in non-nearest rounding modes. */ ++ float64x2_t kd = vaddq_f64 (z, d->shift); ++ uint64x2_t ki = vreinterpretq_u64_f64 (kd); ++ kd = vsubq_f64 (kd, d->shift); ++ float64x2_t r = vfmsq_f64 (x, kd, d->ln2_hi_n); ++ r = vfmsq_f64 (r, kd, d->ln2_lo_n); ++ /* The code assumes 2^-200 < |xtail| < 2^-8/N. */ ++ r = vaddq_f64 (r, xtail); ++ /* 2^(k/N) ~= scale. */ ++ uint64x2_t idx = vandq_u64 (ki, v_u64 (N_EXP - 1)); ++ uint64x2_t top = vshlq_n_u64 (ki, 52 - V_POW_EXP_TABLE_BITS); ++ /* This is only a valid scale when -1023*N < k < 1024*N. */ ++ uint64x2_t sbits = v_lookup_u64 (SBits, idx); ++ sbits = vaddq_u64 (sbits, top); ++ /* exp(x) = 2^(k/N) * exp(r) ~= scale + scale * (exp(r) - 1). */ ++ float64x2_t r2 = vmulq_f64 (r, r); ++ float64x2_t tmp = vfmaq_f64 (C (1), r, C (2)); ++ tmp = vfmaq_f64 (C (0), r, tmp); ++ tmp = vfmaq_f64 (r, r2, tmp); ++ float64x2_t scale = vreinterpretq_f64_u64 (sbits); ++ /* Note: tmp == 0 or |tmp| > 2^-200 and scale > 2^-739, so there ++ is no spurious underflow here even without fma. */ ++ return vfmaq_f64 (scale, scale, tmp); ++} ++ ++static float64x2_t NOINLINE VPCS_ATTR ++scalar_fallback (float64x2_t x, float64x2_t y) ++{ ++ return (float64x2_t){ pow_scalar_special_case (x[0], y[0]), ++ pow_scalar_special_case (x[1], y[1]) }; ++} ++ ++float64x2_t VPCS_ATTR V_NAME_D2 (pow) (float64x2_t x, float64x2_t y) ++{ ++ const struct data *d = ptr_barrier (&data); ++ /* Case of x <= 0 is too complicated to be vectorised efficiently here, ++ fallback to scalar pow for all lanes if any x < 0 detected. */ ++ if (v_any_u64 (vclezq_s64 (vreinterpretq_s64_f64 (x)))) ++ return scalar_fallback (x, y); ++ ++ uint64x2_t vix = vreinterpretq_u64_f64 (x); ++ uint64x2_t viy = vreinterpretq_u64_f64 (y); ++ uint64x2_t iay = vandq_u64 (viy, d->inf); ++ ++ /* Special cases of x or y. */ ++#if WANT_SIMD_EXCEPT ++ /* Small or large. */ ++ uint64x2_t vtopx = vshrq_n_u64 (vix, 52); ++ uint64x2_t vabstopy = vshrq_n_u64 (iay, 52); ++ uint64x2_t specialx ++ = vcgeq_u64 (vsubq_u64 (vtopx, VecSmallPowX), VecThresPowX); ++ uint64x2_t specialy ++ = vcgeq_u64 (vsubq_u64 (vabstopy, VecSmallPowY), VecThresPowY); ++#else ++ /* The case y==0 does not trigger a special case, since in this case it is ++ necessary to fix the result only if x is a signalling nan, which already ++ triggers a special case. We test y==0 directly in the scalar fallback. */ ++ uint64x2_t iax = vandq_u64 (vix, d->inf); ++ uint64x2_t specialx = vcgeq_u64 (iax, d->inf); ++ uint64x2_t specialy = vcgeq_u64 (iay, d->inf); ++#endif ++ uint64x2_t special = vorrq_u64 (specialx, specialy); ++ /* Fallback to scalar on all lanes if any lane is inf or nan. */ ++ if (__glibc_unlikely (v_any_u64 (special))) ++ return scalar_fallback (x, y); ++ ++ /* Small cases of x: |x| < 0x1p-126. */ ++ uint64x2_t smallx = vcaltq_f64 (x, d->small_powx); ++ if (__glibc_unlikely (v_any_u64 (smallx))) ++ { ++ /* Update ix if top 12 bits of x are 0. */ ++ uint64x2_t sub_x = vceqzq_u64 (vshrq_n_u64 (vix, 52)); ++ if (__glibc_unlikely (v_any_u64 (sub_x))) ++ { ++ /* Normalize subnormal x so exponent becomes negative. */ ++ uint64x2_t vix_norm = vreinterpretq_u64_f64 ( ++ vabsq_f64 (vmulq_f64 (x, vcvtq_f64_u64 (v_u64 (1ULL << 52))))); ++ vix_norm = vsubq_u64 (vix_norm, v_u64 (52ULL << 52)); ++ vix = vbslq_u64 (sub_x, vix_norm, vix); ++ } ++ } ++ ++ /* Vector Log(ix, &lo). */ ++ float64x2_t vlo; ++ float64x2_t vhi = v_log_inline (vix, &vlo, d); ++ ++ /* Vector Exp(y_loghi, y_loglo). */ ++ float64x2_t vehi = vmulq_f64 (y, vhi); ++ float64x2_t velo = vmulq_f64 (y, vlo); ++ float64x2_t vemi = vfmsq_f64 (vehi, y, vhi); ++ velo = vsubq_f64 (velo, vemi); ++ return v_exp_inline (vehi, velo, d); ++} +diff --git a/sysdeps/aarch64/fpu/pow_sve.c b/sysdeps/aarch64/fpu/pow_sve.c +new file mode 100644 +index 0000000000000000..4c0bf8956c584be7 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/pow_sve.c +@@ -0,0 +1,411 @@ ++/* Double-precision vector (SVE) pow function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++/* This version share a similar algorithm as AOR scalar pow. ++ ++ The core computation consists in computing pow(x, y) as ++ ++ exp (y * log (x)). ++ ++ The algorithms for exp and log are very similar to scalar exp and log. ++ The log relies on table lookup for 3 variables and an order 8 polynomial. ++ It returns a high and a low contribution that are then passed to the exp, ++ to minimise the loss of accuracy in both routines. ++ The exp is based on 8-bit table lookup for scale and order-4 polynomial. ++ The SVE algorithm drops the tail in the exp computation at the price of ++ a lower accuracy, slightly above 1ULP. ++ The SVE algorithm also drops the special treatement of small (< 2^-65) and ++ large (> 2^63) finite values of |y|, as they only affect non-round to nearest ++ modes. ++ ++ Maximum measured error is 1.04 ULPs: ++ SV_NAME_D2 (pow) (0x1.3d2d45bc848acp+63, -0x1.a48a38b40cd43p-12) ++ got 0x1.f7116284221fcp-1 ++ want 0x1.f7116284221fdp-1. */ ++ ++#include "math_config.h" ++#include "sv_math.h" ++ ++/* Data is defined in v_pow_log_data.c. */ ++#define N_LOG (1 << V_POW_LOG_TABLE_BITS) ++#define A __v_pow_log_data.poly ++#define Off 0x3fe6955500000000 ++ ++/* Data is defined in v_pow_exp_data.c. */ ++#define N_EXP (1 << V_POW_EXP_TABLE_BITS) ++#define SignBias (0x800 << V_POW_EXP_TABLE_BITS) ++#define C __v_pow_exp_data.poly ++#define SmallExp 0x3c9 /* top12(0x1p-54). */ ++#define BigExp 0x408 /* top12(512.). */ ++#define ThresExp 0x03f /* BigExp - SmallExp. */ ++#define HugeExp 0x409 /* top12(1024.). */ ++ ++/* Constants associated with pow. */ ++#define SmallPowX 0x001 /* top12(0x1p-126). */ ++#define BigPowX 0x7ff /* top12(INFINITY). */ ++#define ThresPowX 0x7fe /* BigPowX - SmallPowX. */ ++#define SmallPowY 0x3be /* top12(0x1.e7b6p-65). */ ++#define BigPowY 0x43e /* top12(0x1.749p62). */ ++#define ThresPowY 0x080 /* BigPowY - SmallPowY. */ ++ ++/* Check if x is an integer. */ ++static inline svbool_t ++sv_isint (svbool_t pg, svfloat64_t x) ++{ ++ return svcmpeq (pg, svrintz_z (pg, x), x); ++} ++ ++/* Check if x is real not integer valued. */ ++static inline svbool_t ++sv_isnotint (svbool_t pg, svfloat64_t x) ++{ ++ return svcmpne (pg, svrintz_z (pg, x), x); ++} ++ ++/* Check if x is an odd integer. */ ++static inline svbool_t ++sv_isodd (svbool_t pg, svfloat64_t x) ++{ ++ svfloat64_t y = svmul_x (pg, x, 0.5); ++ return sv_isnotint (pg, y); ++} ++ ++/* Returns 0 if not int, 1 if odd int, 2 if even int. The argument is ++ the bit representation of a non-zero finite floating-point value. */ ++static inline int ++checkint (uint64_t iy) ++{ ++ int e = iy >> 52 & 0x7ff; ++ if (e < 0x3ff) ++ return 0; ++ if (e > 0x3ff + 52) ++ return 2; ++ if (iy & ((1ULL << (0x3ff + 52 - e)) - 1)) ++ return 0; ++ if (iy & (1ULL << (0x3ff + 52 - e))) ++ return 1; ++ return 2; ++} ++ ++/* Top 12 bits (sign and exponent of each double float lane). */ ++static inline svuint64_t ++sv_top12 (svfloat64_t x) ++{ ++ return svlsr_x (svptrue_b64 (), svreinterpret_u64 (x), 52); ++} ++ ++/* Returns 1 if input is the bit representation of 0, infinity or nan. */ ++static inline int ++zeroinfnan (uint64_t i) ++{ ++ return 2 * i - 1 >= 2 * asuint64 (INFINITY) - 1; ++} ++ ++/* Returns 1 if input is the bit representation of 0, infinity or nan. */ ++static inline svbool_t ++sv_zeroinfnan (svbool_t pg, svuint64_t i) ++{ ++ return svcmpge (pg, svsub_x (pg, svmul_x (pg, i, 2), 1), ++ 2 * asuint64 (INFINITY) - 1); ++} ++ ++/* Handle cases that may overflow or underflow when computing the result that ++ is scale*(1+TMP) without intermediate rounding. The bit representation of ++ scale is in SBITS, however it has a computed exponent that may have ++ overflown into the sign bit so that needs to be adjusted before using it as ++ a double. (int32_t)KI is the k used in the argument reduction and exponent ++ adjustment of scale, positive k here means the result may overflow and ++ negative k means the result may underflow. */ ++static inline double ++specialcase (double tmp, uint64_t sbits, uint64_t ki) ++{ ++ double scale; ++ if ((ki & 0x80000000) == 0) ++ { ++ /* k > 0, the exponent of scale might have overflowed by <= 460. */ ++ sbits -= 1009ull << 52; ++ scale = asdouble (sbits); ++ return 0x1p1009 * (scale + scale * tmp); ++ } ++ /* k < 0, need special care in the subnormal range. */ ++ sbits += 1022ull << 52; ++ /* Note: sbits is signed scale. */ ++ scale = asdouble (sbits); ++ double y = scale + scale * tmp; ++ return 0x1p-1022 * y; ++} ++ ++/* Scalar fallback for special cases of SVE pow's exp. */ ++static inline svfloat64_t ++sv_call_specialcase (svfloat64_t x1, svuint64_t u1, svuint64_t u2, ++ svfloat64_t y, svbool_t cmp) ++{ ++ svbool_t p = svpfirst (cmp, svpfalse ()); ++ while (svptest_any (cmp, p)) ++ { ++ double sx1 = svclastb (p, 0, x1); ++ uint64_t su1 = svclastb (p, 0, u1); ++ uint64_t su2 = svclastb (p, 0, u2); ++ double elem = specialcase (sx1, su1, su2); ++ svfloat64_t y2 = sv_f64 (elem); ++ y = svsel (p, y2, y); ++ p = svpnext_b64 (cmp, p); ++ } ++ return y; ++} ++ ++/* Compute y+TAIL = log(x) where the rounded result is y and TAIL has about ++ additional 15 bits precision. IX is the bit representation of x, but ++ normalized in the subnormal range using the sign bit for the exponent. */ ++static inline svfloat64_t ++sv_log_inline (svbool_t pg, svuint64_t ix, svfloat64_t *tail) ++{ ++ /* x = 2^k z; where z is in range [Off,2*Off) and exact. ++ The range is split into N subintervals. ++ The ith subinterval contains z and c is near its center. */ ++ svuint64_t tmp = svsub_x (pg, ix, Off); ++ svuint64_t i = svand_x (pg, svlsr_x (pg, tmp, 52 - V_POW_LOG_TABLE_BITS), ++ sv_u64 (N_LOG - 1)); ++ svint64_t k = svasr_x (pg, svreinterpret_s64 (tmp), 52); ++ svuint64_t iz = svsub_x (pg, ix, svand_x (pg, tmp, sv_u64 (0xfffULL << 52))); ++ svfloat64_t z = svreinterpret_f64 (iz); ++ svfloat64_t kd = svcvt_f64_x (pg, k); ++ ++ /* log(x) = k*Ln2 + log(c) + log1p(z/c-1). */ ++ /* SVE lookup requires 3 separate lookup tables, as opposed to scalar version ++ that uses array of structures. We also do the lookup earlier in the code to ++ make sure it finishes as early as possible. */ ++ svfloat64_t invc = svld1_gather_index (pg, __v_pow_log_data.invc, i); ++ svfloat64_t logc = svld1_gather_index (pg, __v_pow_log_data.logc, i); ++ svfloat64_t logctail = svld1_gather_index (pg, __v_pow_log_data.logctail, i); ++ ++ /* Note: 1/c is j/N or j/N/2 where j is an integer in [N,2N) and ++ |z/c - 1| < 1/N, so r = z/c - 1 is exactly representible. */ ++ svfloat64_t r = svmad_x (pg, z, invc, -1.0); ++ /* k*Ln2 + log(c) + r. */ ++ svfloat64_t t1 = svmla_x (pg, logc, kd, __v_pow_log_data.ln2_hi); ++ svfloat64_t t2 = svadd_x (pg, t1, r); ++ svfloat64_t lo1 = svmla_x (pg, logctail, kd, __v_pow_log_data.ln2_lo); ++ svfloat64_t lo2 = svadd_x (pg, svsub_x (pg, t1, t2), r); ++ ++ /* Evaluation is optimized assuming superscalar pipelined execution. */ ++ svfloat64_t ar = svmul_x (pg, r, -0.5); /* A[0] = -0.5. */ ++ svfloat64_t ar2 = svmul_x (pg, r, ar); ++ svfloat64_t ar3 = svmul_x (pg, r, ar2); ++ /* k*Ln2 + log(c) + r + A[0]*r*r. */ ++ svfloat64_t hi = svadd_x (pg, t2, ar2); ++ svfloat64_t lo3 = svmla_x (pg, svneg_x (pg, ar2), ar, r); ++ svfloat64_t lo4 = svadd_x (pg, svsub_x (pg, t2, hi), ar2); ++ /* p = log1p(r) - r - A[0]*r*r. */ ++ /* p = (ar3 * (A[1] + r * A[2] + ar2 * (A[3] + r * A[4] + ar2 * (A[5] + r * ++ A[6])))). */ ++ svfloat64_t a56 = svmla_x (pg, sv_f64 (A[5]), r, A[6]); ++ svfloat64_t a34 = svmla_x (pg, sv_f64 (A[3]), r, A[4]); ++ svfloat64_t a12 = svmla_x (pg, sv_f64 (A[1]), r, A[2]); ++ svfloat64_t p = svmla_x (pg, a34, ar2, a56); ++ p = svmla_x (pg, a12, ar2, p); ++ p = svmul_x (pg, ar3, p); ++ svfloat64_t lo = svadd_x ( ++ pg, svadd_x (pg, svadd_x (pg, svadd_x (pg, lo1, lo2), lo3), lo4), p); ++ svfloat64_t y = svadd_x (pg, hi, lo); ++ *tail = svadd_x (pg, svsub_x (pg, hi, y), lo); ++ return y; ++} ++ ++/* Computes sign*exp(x+xtail) where |xtail| < 2^-8/N and |xtail| <= |x|. ++ The sign_bias argument is SignBias or 0 and sets the sign to -1 or 1. */ ++static inline svfloat64_t ++sv_exp_inline (svbool_t pg, svfloat64_t x, svfloat64_t xtail, ++ svuint64_t sign_bias) ++{ ++ /* 3 types of special cases: tiny (uflow and spurious uflow), huge (oflow) ++ and other cases of large values of x (scale * (1 + TMP) oflow). */ ++ svuint64_t abstop = svand_x (pg, sv_top12 (x), 0x7ff); ++ /* |x| is large (|x| >= 512) or tiny (|x| <= 0x1p-54). */ ++ svbool_t uoflow = svcmpge (pg, svsub_x (pg, abstop, SmallExp), ThresExp); ++ ++ /* Conditions special, uflow and oflow are all expressed as uoflow && ++ something, hence do not bother computing anything if no lane in uoflow is ++ true. */ ++ svbool_t special = svpfalse_b (); ++ svbool_t uflow = svpfalse_b (); ++ svbool_t oflow = svpfalse_b (); ++ if (__glibc_unlikely (svptest_any (pg, uoflow))) ++ { ++ /* |x| is tiny (|x| <= 0x1p-54). */ ++ uflow = svcmpge (pg, svsub_x (pg, abstop, SmallExp), 0x80000000); ++ uflow = svand_z (pg, uoflow, uflow); ++ /* |x| is huge (|x| >= 1024). */ ++ oflow = svcmpge (pg, abstop, HugeExp); ++ oflow = svand_z (pg, uoflow, svbic_z (pg, oflow, uflow)); ++ /* For large |x| values (512 < |x| < 1024) scale * (1 + TMP) can overflow ++ or underflow. */ ++ special = svbic_z (pg, uoflow, svorr_z (pg, uflow, oflow)); ++ } ++ ++ /* exp(x) = 2^(k/N) * exp(r), with exp(r) in [2^(-1/2N),2^(1/2N)]. */ ++ /* x = ln2/N*k + r, with int k and r in [-ln2/2N, ln2/2N]. */ ++ svfloat64_t z = svmul_x (pg, x, __v_pow_exp_data.n_over_ln2); ++ /* z - kd is in [-1, 1] in non-nearest rounding modes. */ ++ svfloat64_t shift = sv_f64 (__v_pow_exp_data.shift); ++ svfloat64_t kd = svadd_x (pg, z, shift); ++ svuint64_t ki = svreinterpret_u64 (kd); ++ kd = svsub_x (pg, kd, shift); ++ svfloat64_t r = x; ++ r = svmls_x (pg, r, kd, __v_pow_exp_data.ln2_over_n_hi); ++ r = svmls_x (pg, r, kd, __v_pow_exp_data.ln2_over_n_lo); ++ /* The code assumes 2^-200 < |xtail| < 2^-8/N. */ ++ r = svadd_x (pg, r, xtail); ++ /* 2^(k/N) ~= scale. */ ++ svuint64_t idx = svand_x (pg, ki, N_EXP - 1); ++ svuint64_t top ++ = svlsl_x (pg, svadd_x (pg, ki, sign_bias), 52 - V_POW_EXP_TABLE_BITS); ++ /* This is only a valid scale when -1023*N < k < 1024*N. */ ++ svuint64_t sbits = svld1_gather_index (pg, __v_pow_exp_data.sbits, idx); ++ sbits = svadd_x (pg, sbits, top); ++ /* exp(x) = 2^(k/N) * exp(r) ~= scale + scale * (exp(r) - 1). */ ++ svfloat64_t r2 = svmul_x (pg, r, r); ++ svfloat64_t tmp = svmla_x (pg, sv_f64 (C[1]), r, C[2]); ++ tmp = svmla_x (pg, sv_f64 (C[0]), r, tmp); ++ tmp = svmla_x (pg, r, r2, tmp); ++ svfloat64_t scale = svreinterpret_f64 (sbits); ++ /* Note: tmp == 0 or |tmp| > 2^-200 and scale > 2^-739, so there ++ is no spurious underflow here even without fma. */ ++ z = svmla_x (pg, scale, scale, tmp); ++ ++ /* Update result with special and large cases. */ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ z = sv_call_specialcase (tmp, sbits, ki, z, special); ++ ++ /* Handle underflow and overflow. */ ++ svuint64_t sign_bit = svlsr_x (pg, svreinterpret_u64 (x), 63); ++ svbool_t x_is_neg = svcmpne (pg, sign_bit, 0); ++ svuint64_t sign_mask = svlsl_x (pg, sign_bias, 52 - V_POW_EXP_TABLE_BITS); ++ svfloat64_t res_uoflow = svsel (x_is_neg, sv_f64 (0.0), sv_f64 (INFINITY)); ++ res_uoflow = svreinterpret_f64 ( ++ svorr_x (pg, svreinterpret_u64 (res_uoflow), sign_mask)); ++ z = svsel (oflow, res_uoflow, z); ++ /* Avoid spurious underflow for tiny x. */ ++ svfloat64_t res_spurious_uflow ++ = svreinterpret_f64 (svorr_x (pg, sign_mask, 0x3ff0000000000000)); ++ z = svsel (uflow, res_spurious_uflow, z); ++ ++ return z; ++} ++ ++static inline double ++pow_sc (double x, double y) ++{ ++ uint64_t ix = asuint64 (x); ++ uint64_t iy = asuint64 (y); ++ /* Special cases: |x| or |y| is 0, inf or nan. */ ++ if (__glibc_unlikely (zeroinfnan (iy))) ++ { ++ if (2 * iy == 0) ++ return issignaling_inline (x) ? x + y : 1.0; ++ if (ix == asuint64 (1.0)) ++ return issignaling_inline (y) ? x + y : 1.0; ++ if (2 * ix > 2 * asuint64 (INFINITY) || 2 * iy > 2 * asuint64 (INFINITY)) ++ return x + y; ++ if (2 * ix == 2 * asuint64 (1.0)) ++ return 1.0; ++ if ((2 * ix < 2 * asuint64 (1.0)) == !(iy >> 63)) ++ return 0.0; /* |x|<1 && y==inf or |x|>1 && y==-inf. */ ++ return y * y; ++ } ++ if (__glibc_unlikely (zeroinfnan (ix))) ++ { ++ double_t x2 = x * x; ++ if (ix >> 63 && checkint (iy) == 1) ++ x2 = -x2; ++ return (iy >> 63) ? 1 / x2 : x2; ++ } ++ return x; ++} ++ ++svfloat64_t SV_NAME_D2 (pow) (svfloat64_t x, svfloat64_t y, const svbool_t pg) ++{ ++ /* This preamble handles special case conditions used in the final scalar ++ fallbacks. It also updates ix and sign_bias, that are used in the core ++ computation too, i.e., exp( y * log (x) ). */ ++ svuint64_t vix0 = svreinterpret_u64 (x); ++ svuint64_t viy0 = svreinterpret_u64 (y); ++ svuint64_t vtopx0 = svlsr_x (svptrue_b64 (), vix0, 52); ++ ++ /* Negative x cases. */ ++ svuint64_t sign_bit = svlsr_m (pg, vix0, 63); ++ svbool_t xisneg = svcmpeq (pg, sign_bit, 1); ++ ++ /* Set sign_bias and ix depending on sign of x and nature of y. */ ++ svbool_t yisnotint_xisneg = svpfalse_b (); ++ svuint64_t sign_bias = sv_u64 (0); ++ svuint64_t vix = vix0; ++ svuint64_t vtopx1 = vtopx0; ++ if (__glibc_unlikely (svptest_any (pg, xisneg))) ++ { ++ /* Determine nature of y. */ ++ yisnotint_xisneg = sv_isnotint (xisneg, y); ++ svbool_t yisint_xisneg = sv_isint (xisneg, y); ++ svbool_t yisodd_xisneg = sv_isodd (xisneg, y); ++ /* ix set to abs(ix) if y is integer. */ ++ vix = svand_m (yisint_xisneg, vix0, 0x7fffffffffffffff); ++ vtopx1 = svand_m (yisint_xisneg, vtopx0, 0x7ff); ++ /* Set to SignBias if x is negative and y is odd. */ ++ sign_bias = svsel (yisodd_xisneg, sv_u64 (SignBias), sv_u64 (0)); ++ } ++ ++ /* Special cases of x or y: zero, inf and nan. */ ++ svbool_t xspecial = sv_zeroinfnan (pg, vix0); ++ svbool_t yspecial = sv_zeroinfnan (pg, viy0); ++ svbool_t special = svorr_z (pg, xspecial, yspecial); ++ ++ /* Small cases of x: |x| < 0x1p-126. */ ++ svuint64_t vabstopx0 = svand_x (pg, vtopx0, 0x7ff); ++ svbool_t xsmall = svcmplt (pg, vabstopx0, SmallPowX); ++ if (__glibc_unlikely (svptest_any (pg, xsmall))) ++ { ++ /* Normalize subnormal x so exponent becomes negative. */ ++ svbool_t topx_is_null = svcmpeq (xsmall, vtopx1, 0); ++ ++ svuint64_t vix_norm = svreinterpret_u64 (svmul_m (xsmall, x, 0x1p52)); ++ vix_norm = svand_m (xsmall, vix_norm, 0x7fffffffffffffff); ++ vix_norm = svsub_m (xsmall, vix_norm, 52ULL << 52); ++ vix = svsel (topx_is_null, vix_norm, vix); ++ } ++ ++ /* y_hi = log(ix, &y_lo). */ ++ svfloat64_t vlo; ++ svfloat64_t vhi = sv_log_inline (pg, vix, &vlo); ++ ++ /* z = exp(y_hi, y_lo, sign_bias). */ ++ svfloat64_t vehi = svmul_x (pg, y, vhi); ++ svfloat64_t velo = svmul_x (pg, y, vlo); ++ svfloat64_t vemi = svmls_x (pg, vehi, y, vhi); ++ velo = svsub_x (pg, velo, vemi); ++ svfloat64_t vz = sv_exp_inline (pg, vehi, velo, sign_bias); ++ ++ /* Cases of finite y and finite negative x. */ ++ vz = svsel (yisnotint_xisneg, sv_f64 (__builtin_nan ("")), vz); ++ ++ /* Cases of zero/inf/nan x or y. */ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ vz = sv_call2_f64 (pow_sc, x, y, vz, special); ++ ++ return vz; ++} +diff --git a/sysdeps/aarch64/fpu/powf_advsimd.c b/sysdeps/aarch64/fpu/powf_advsimd.c +new file mode 100644 +index 0000000000000000..8232e70436dd5ef4 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/powf_advsimd.c +@@ -0,0 +1,210 @@ ++/* Single-precision vector (AdvSIMD) pow function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "math_config.h" ++#include "v_math.h" ++ ++#define Min v_u32 (0x00800000) ++#define Max v_u32 (0x7f800000) ++#define Thresh v_u32 (0x7f000000) /* Max - Min. */ ++#define MantissaMask v_u32 (0x007fffff) ++ ++#define A d->log2_poly ++#define C d->exp2f_poly ++ ++/* 2.6 ulp ~ 0.5 + 2^24 (128*Ln2*relerr_log2 + relerr_exp2). */ ++#define Off v_u32 (0x3f35d000) ++ ++#define V_POWF_LOG2_TABLE_BITS 5 ++#define V_EXP2F_TABLE_BITS 5 ++#define Log2IdxMask ((1 << V_POWF_LOG2_TABLE_BITS) - 1) ++#define Scale ((double) (1 << V_EXP2F_TABLE_BITS)) ++ ++static const struct data ++{ ++ struct ++ { ++ double invc, logc; ++ } log2_tab[1 << V_POWF_LOG2_TABLE_BITS]; ++ float64x2_t log2_poly[4]; ++ uint64_t exp2f_tab[1 << V_EXP2F_TABLE_BITS]; ++ float64x2_t exp2f_poly[3]; ++} data = { ++ .log2_tab = {{0x1.6489890582816p+0, -0x1.e960f97b22702p-2 * Scale}, ++ {0x1.5cf19b35e3472p+0, -0x1.c993406cd4db6p-2 * Scale}, ++ {0x1.55aac0e956d65p+0, -0x1.aa711d9a7d0f3p-2 * Scale}, ++ {0x1.4eb0022977e01p+0, -0x1.8bf37bacdce9bp-2 * Scale}, ++ {0x1.47fcccda1dd1fp+0, -0x1.6e13b3519946ep-2 * Scale}, ++ {0x1.418ceabab68c1p+0, -0x1.50cb8281e4089p-2 * Scale}, ++ {0x1.3b5c788f1edb3p+0, -0x1.341504a237e2bp-2 * Scale}, ++ {0x1.3567de48e9c9ap+0, -0x1.17eaab624ffbbp-2 * Scale}, ++ {0x1.2fabc80fd19bap+0, -0x1.f88e708f8c853p-3 * Scale}, ++ {0x1.2a25200ce536bp+0, -0x1.c24b6da113914p-3 * Scale}, ++ {0x1.24d108e0152e3p+0, -0x1.8d02ee397cb1dp-3 * Scale}, ++ {0x1.1facd8ab2fbe1p+0, -0x1.58ac1223408b3p-3 * Scale}, ++ {0x1.1ab614a03efdfp+0, -0x1.253e6fd190e89p-3 * Scale}, ++ {0x1.15ea6d03af9ffp+0, -0x1.e5641882c12ffp-4 * Scale}, ++ {0x1.1147b994bb776p+0, -0x1.81fea712926f7p-4 * Scale}, ++ {0x1.0ccbf650593aap+0, -0x1.203e240de64a3p-4 * Scale}, ++ {0x1.0875408477302p+0, -0x1.8029b86a78281p-5 * Scale}, ++ {0x1.0441d42a93328p+0, -0x1.85d713190fb9p-6 * Scale}, ++ {0x1p+0, 0x0p+0 * Scale}, ++ {0x1.f1d006c855e86p-1, 0x1.4c1cc07312997p-5 * Scale}, ++ {0x1.e28c3341aa301p-1, 0x1.5e1848ccec948p-4 * Scale}, ++ {0x1.d4bdf9aa64747p-1, 0x1.04cfcb7f1196fp-3 * Scale}, ++ {0x1.c7b45a24e5803p-1, 0x1.582813d463c21p-3 * Scale}, ++ {0x1.bb5f5eb2ed60ap-1, 0x1.a936fa68760ccp-3 * Scale}, ++ {0x1.afb0bff8fe6b4p-1, 0x1.f81bc31d6cc4ep-3 * Scale}, ++ {0x1.a49badf7ab1f5p-1, 0x1.2279a09fae6b1p-2 * Scale}, ++ {0x1.9a14a111fc4c9p-1, 0x1.47ec0b6df5526p-2 * Scale}, ++ {0x1.901131f5b2fdcp-1, 0x1.6c71762280f1p-2 * Scale}, ++ {0x1.8687f73f6d865p-1, 0x1.90155070798dap-2 * Scale}, ++ {0x1.7d7067eb77986p-1, 0x1.b2e23b1d3068cp-2 * Scale}, ++ {0x1.74c2c1cf97b65p-1, 0x1.d4e21b0daa86ap-2 * Scale}, ++ {0x1.6c77f37cff2a1p-1, 0x1.f61e2a2f67f3fp-2 * Scale},}, ++ .log2_poly = { /* rel err: 1.5 * 2^-30. */ ++ V2 (-0x1.6ff5daa3b3d7cp-2 * Scale), ++ V2 (0x1.ec81d03c01aebp-2 * Scale), ++ V2 (-0x1.71547bb43f101p-1 * Scale), ++ V2 (0x1.7154764a815cbp0 * Scale)}, ++ .exp2f_tab = {0x3ff0000000000000, 0x3fefd9b0d3158574, 0x3fefb5586cf9890f, ++ 0x3fef9301d0125b51, 0x3fef72b83c7d517b, 0x3fef54873168b9aa, ++ 0x3fef387a6e756238, 0x3fef1e9df51fdee1, 0x3fef06fe0a31b715, ++ 0x3feef1a7373aa9cb, 0x3feedea64c123422, 0x3feece086061892d, ++ 0x3feebfdad5362a27, 0x3feeb42b569d4f82, 0x3feeab07dd485429, ++ 0x3feea47eb03a5585, 0x3feea09e667f3bcd, 0x3fee9f75e8ec5f74, ++ 0x3feea11473eb0187, 0x3feea589994cce13, 0x3feeace5422aa0db, ++ 0x3feeb737b0cdc5e5, 0x3feec49182a3f090, 0x3feed503b23e255d, ++ 0x3feee89f995ad3ad, 0x3feeff76f2fb5e47, 0x3fef199bdd85529c, ++ 0x3fef3720dcef9069, 0x3fef5818dcfba487, 0x3fef7c97337b9b5f, ++ 0x3fefa4afa2a490da, 0x3fefd0765b6e4540,}, ++ .exp2f_poly = { /* rel err: 1.69 * 2^-34. */ ++ V2 (0x1.c6af84b912394p-5 / Scale / Scale / Scale), ++ V2 (0x1.ebfce50fac4f3p-3 / Scale / Scale), ++ V2 (0x1.62e42ff0c52d6p-1 / Scale)}}; ++ ++static float32x4_t VPCS_ATTR NOINLINE ++special_case (float32x4_t x, float32x4_t y, float32x4_t ret, uint32x4_t cmp) ++{ ++ return v_call2_f32 (powf, x, y, ret, cmp); ++} ++ ++static inline float64x2_t ++ylogx_core (const struct data *d, float64x2_t iz, float64x2_t k, ++ float64x2_t invc, float64x2_t logc, float64x2_t y) ++{ ++ ++ /* log2(x) = log1p(z/c-1)/ln2 + log2(c) + k. */ ++ float64x2_t r = vfmaq_f64 (v_f64 (-1.0), iz, invc); ++ float64x2_t y0 = vaddq_f64 (logc, k); ++ ++ /* Polynomial to approximate log1p(r)/ln2. */ ++ float64x2_t logx = vfmaq_f64 (A[1], r, A[0]); ++ logx = vfmaq_f64 (A[2], logx, r); ++ logx = vfmaq_f64 (A[3], logx, r); ++ logx = vfmaq_f64 (y0, logx, r); ++ ++ return vmulq_f64 (logx, y); ++} ++ ++static inline float64x2_t ++log2_lookup (const struct data *d, uint32_t i) ++{ ++ return vld1q_f64 ( ++ &d->log2_tab[(i >> (23 - V_POWF_LOG2_TABLE_BITS)) & Log2IdxMask].invc); ++} ++ ++static inline uint64x1_t ++exp2f_lookup (const struct data *d, uint64_t i) ++{ ++ return vld1_u64 (&d->exp2f_tab[i % (1 << V_EXP2F_TABLE_BITS)]); ++} ++ ++static inline float32x2_t ++powf_core (const struct data *d, float64x2_t ylogx) ++{ ++ /* N*x = k + r with r in [-1/2, 1/2]. */ ++ float64x2_t kd = vrndnq_f64 (ylogx); ++ int64x2_t ki = vcvtaq_s64_f64 (ylogx); ++ float64x2_t r = vsubq_f64 (ylogx, kd); ++ ++ /* exp2(x) = 2^(k/N) * 2^r ~= s * (C0*r^3 + C1*r^2 + C2*r + 1). */ ++ uint64x2_t t = vcombine_u64 (exp2f_lookup (d, vgetq_lane_s64 (ki, 0)), ++ exp2f_lookup (d, vgetq_lane_s64 (ki, 1))); ++ t = vaddq_u64 ( ++ t, vreinterpretq_u64_s64 (vshlq_n_s64 (ki, 52 - V_EXP2F_TABLE_BITS))); ++ float64x2_t s = vreinterpretq_f64_u64 (t); ++ float64x2_t p = vfmaq_f64 (C[1], r, C[0]); ++ p = vfmaq_f64 (C[2], r, p); ++ p = vfmaq_f64 (s, p, vmulq_f64 (s, r)); ++ return vcvt_f32_f64 (p); ++} ++ ++float32x4_t VPCS_ATTR V_NAME_F2 (pow) (float32x4_t x, float32x4_t y) ++{ ++ const struct data *d = ptr_barrier (&data); ++ uint32x4_t u = vreinterpretq_u32_f32 (x); ++ uint32x4_t cmp = vcgeq_u32 (vsubq_u32 (u, Min), Thresh); ++ uint32x4_t tmp = vsubq_u32 (u, Off); ++ uint32x4_t top = vbicq_u32 (tmp, MantissaMask); ++ float32x4_t iz = vreinterpretq_f32_u32 (vsubq_u32 (u, top)); ++ int32x4_t k = vshrq_n_s32 (vreinterpretq_s32_u32 (top), ++ 23 - V_EXP2F_TABLE_BITS); /* arithmetic shift. */ ++ ++ /* Use double precision for each lane: split input vectors into lo and hi ++ halves and promote. */ ++ float64x2_t tab0 = log2_lookup (d, vgetq_lane_u32 (tmp, 0)), ++ tab1 = log2_lookup (d, vgetq_lane_u32 (tmp, 1)), ++ tab2 = log2_lookup (d, vgetq_lane_u32 (tmp, 2)), ++ tab3 = log2_lookup (d, vgetq_lane_u32 (tmp, 3)); ++ ++ float64x2_t iz_lo = vcvt_f64_f32 (vget_low_f32 (iz)), ++ iz_hi = vcvt_high_f64_f32 (iz); ++ ++ float64x2_t k_lo = vcvtq_f64_s64 (vmovl_s32 (vget_low_s32 (k))), ++ k_hi = vcvtq_f64_s64 (vmovl_high_s32 (k)); ++ ++ float64x2_t invc_lo = vzip1q_f64 (tab0, tab1), ++ invc_hi = vzip1q_f64 (tab2, tab3), ++ logc_lo = vzip2q_f64 (tab0, tab1), ++ logc_hi = vzip2q_f64 (tab2, tab3); ++ ++ float64x2_t y_lo = vcvt_f64_f32 (vget_low_f32 (y)), ++ y_hi = vcvt_high_f64_f32 (y); ++ ++ float64x2_t ylogx_lo = ylogx_core (d, iz_lo, k_lo, invc_lo, logc_lo, y_lo); ++ float64x2_t ylogx_hi = ylogx_core (d, iz_hi, k_hi, invc_hi, logc_hi, y_hi); ++ ++ uint32x4_t ylogx_top = vuzp2q_u32 (vreinterpretq_u32_f64 (ylogx_lo), ++ vreinterpretq_u32_f64 (ylogx_hi)); ++ ++ cmp = vorrq_u32 ( ++ cmp, vcgeq_u32 (vandq_u32 (vshrq_n_u32 (ylogx_top, 15), v_u32 (0xffff)), ++ vdupq_n_u32 (asuint64 (126.0 * (1 << V_EXP2F_TABLE_BITS)) ++ >> 47))); ++ ++ float32x2_t p_lo = powf_core (d, ylogx_lo); ++ float32x2_t p_hi = powf_core (d, ylogx_hi); ++ ++ if (__glibc_unlikely (v_any_u32 (cmp))) ++ return special_case (x, y, vcombine_f32 (p_lo, p_hi), cmp); ++ return vcombine_f32 (p_lo, p_hi); ++} ++libmvec_hidden_def (V_NAME_F2 (pow)) ++HALF_WIDTH_ALIAS_F2(pow) +diff --git a/sysdeps/aarch64/fpu/powf_sve.c b/sysdeps/aarch64/fpu/powf_sve.c +new file mode 100644 +index 0000000000000000..4f6a142325ae719b +--- /dev/null ++++ b/sysdeps/aarch64/fpu/powf_sve.c +@@ -0,0 +1,335 @@ ++/* Single-precision vector (SVE) pow function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "../ieee754/flt-32/math_config.h" ++#include "sv_math.h" ++ ++/* The following data is used in the SVE pow core computation ++ and special case detection. */ ++#define Tinvc __v_powf_data.invc ++#define Tlogc __v_powf_data.logc ++#define Texp __v_powf_data.scale ++#define SignBias (1 << (V_POWF_EXP2_TABLE_BITS + 11)) ++#define Shift 0x1.8p52 ++#define Norm 0x1p23f /* 0x4b000000. */ ++ ++/* Overall ULP error bound for pow is 2.6 ulp ++ ~ 0.5 + 2^24 (128*Ln2*relerr_log2 + relerr_exp2). */ ++static const struct data ++{ ++ double log_poly[4]; ++ double exp_poly[3]; ++ float uflow_bound, oflow_bound, small_bound; ++ uint32_t sign_bias, sign_mask, subnormal_bias, off; ++} data = { ++ /* rel err: 1.5 * 2^-30. Each coefficients is multiplied the value of ++ V_POWF_EXP2_N. */ ++ .log_poly = { -0x1.6ff5daa3b3d7cp+3, 0x1.ec81d03c01aebp+3, ++ -0x1.71547bb43f101p+4, 0x1.7154764a815cbp+5 }, ++ /* rel err: 1.69 * 2^-34. */ ++ .exp_poly = { ++ 0x1.c6af84b912394p-20, /* A0 / V_POWF_EXP2_N^3. */ ++ 0x1.ebfce50fac4f3p-13, /* A1 / V_POWF_EXP2_N^2. */ ++ 0x1.62e42ff0c52d6p-6, /* A3 / V_POWF_EXP2_N. */ ++ }, ++ .uflow_bound = -0x1.2cp+12f, /* -150.0 * V_POWF_EXP2_N. */ ++ .oflow_bound = 0x1p+12f, /* 128.0 * V_POWF_EXP2_N. */ ++ .small_bound = 0x1p-126f, ++ .off = 0x3f35d000, ++ .sign_bias = SignBias, ++ .sign_mask = 0x80000000, ++ .subnormal_bias = 0x0b800000, /* 23 << 23. */ ++}; ++ ++#define A(i) sv_f64 (d->log_poly[i]) ++#define C(i) sv_f64 (d->exp_poly[i]) ++ ++/* Check if x is an integer. */ ++static inline svbool_t ++svisint (svbool_t pg, svfloat32_t x) ++{ ++ return svcmpeq (pg, svrintz_z (pg, x), x); ++} ++ ++/* Check if x is real not integer valued. */ ++static inline svbool_t ++svisnotint (svbool_t pg, svfloat32_t x) ++{ ++ return svcmpne (pg, svrintz_z (pg, x), x); ++} ++ ++/* Check if x is an odd integer. */ ++static inline svbool_t ++svisodd (svbool_t pg, svfloat32_t x) ++{ ++ svfloat32_t y = svmul_x (pg, x, 0.5f); ++ return svisnotint (pg, y); ++} ++ ++/* Check if zero, inf or nan. */ ++static inline svbool_t ++sv_zeroinfnan (svbool_t pg, svuint32_t i) ++{ ++ return svcmpge (pg, svsub_x (pg, svmul_x (pg, i, 2u), 1), ++ 2u * 0x7f800000 - 1); ++} ++ ++/* Returns 0 if not int, 1 if odd int, 2 if even int. The argument is ++ the bit representation of a non-zero finite floating-point value. */ ++static inline int ++checkint (uint32_t iy) ++{ ++ int e = iy >> 23 & 0xff; ++ if (e < 0x7f) ++ return 0; ++ if (e > 0x7f + 23) ++ return 2; ++ if (iy & ((1 << (0x7f + 23 - e)) - 1)) ++ return 0; ++ if (iy & (1 << (0x7f + 23 - e))) ++ return 1; ++ return 2; ++} ++ ++/* Check if zero, inf or nan. */ ++static inline int ++zeroinfnan (uint32_t ix) ++{ ++ return 2 * ix - 1 >= 2u * 0x7f800000 - 1; ++} ++ ++/* A scalar subroutine used to fix main power special cases. Similar to the ++ preamble of scalar powf except that we do not update ix and sign_bias. This ++ is done in the preamble of the SVE powf. */ ++static inline float ++powf_specialcase (float x, float y, float z) ++{ ++ uint32_t ix = asuint (x); ++ uint32_t iy = asuint (y); ++ /* Either (x < 0x1p-126 or inf or nan) or (y is 0 or inf or nan). */ ++ if (__glibc_unlikely (zeroinfnan (iy))) ++ { ++ if (2 * iy == 0) ++ return issignalingf_inline (x) ? x + y : 1.0f; ++ if (ix == 0x3f800000) ++ return issignalingf_inline (y) ? x + y : 1.0f; ++ if (2 * ix > 2u * 0x7f800000 || 2 * iy > 2u * 0x7f800000) ++ return x + y; ++ if (2 * ix == 2 * 0x3f800000) ++ return 1.0f; ++ if ((2 * ix < 2 * 0x3f800000) == !(iy & 0x80000000)) ++ return 0.0f; /* |x|<1 && y==inf or |x|>1 && y==-inf. */ ++ return y * y; ++ } ++ if (__glibc_unlikely (zeroinfnan (ix))) ++ { ++ float_t x2 = x * x; ++ if (ix & 0x80000000 && checkint (iy) == 1) ++ x2 = -x2; ++ return iy & 0x80000000 ? 1 / x2 : x2; ++ } ++ /* We need a return here in case x<0 and y is integer, but all other tests ++ need to be run. */ ++ return z; ++} ++ ++/* Scalar fallback for special case routines with custom signature. */ ++static inline svfloat32_t ++sv_call_powf_sc (svfloat32_t x1, svfloat32_t x2, svfloat32_t y, svbool_t cmp) ++{ ++ svbool_t p = svpfirst (cmp, svpfalse ()); ++ while (svptest_any (cmp, p)) ++ { ++ float sx1 = svclastb (p, 0, x1); ++ float sx2 = svclastb (p, 0, x2); ++ float elem = svclastb (p, 0, y); ++ elem = powf_specialcase (sx1, sx2, elem); ++ svfloat32_t y2 = sv_f32 (elem); ++ y = svsel (p, y2, y); ++ p = svpnext_b32 (cmp, p); ++ } ++ return y; ++} ++ ++/* Compute core for half of the lanes in double precision. */ ++static inline svfloat64_t ++sv_powf_core_ext (const svbool_t pg, svuint64_t i, svfloat64_t z, svint64_t k, ++ svfloat64_t y, svuint64_t sign_bias, svfloat64_t *pylogx, ++ const struct data *d) ++{ ++ svfloat64_t invc = svld1_gather_index (pg, Tinvc, i); ++ svfloat64_t logc = svld1_gather_index (pg, Tlogc, i); ++ ++ /* log2(x) = log1p(z/c-1)/ln2 + log2(c) + k. */ ++ svfloat64_t r = svmla_x (pg, sv_f64 (-1.0), z, invc); ++ svfloat64_t y0 = svadd_x (pg, logc, svcvt_f64_x (pg, k)); ++ ++ /* Polynomial to approximate log1p(r)/ln2. */ ++ svfloat64_t logx = A (0); ++ logx = svmla_x (pg, A (1), r, logx); ++ logx = svmla_x (pg, A (2), r, logx); ++ logx = svmla_x (pg, A (3), r, logx); ++ logx = svmla_x (pg, y0, r, logx); ++ *pylogx = svmul_x (pg, y, logx); ++ ++ /* z - kd is in [-1, 1] in non-nearest rounding modes. */ ++ svfloat64_t kd = svadd_x (pg, *pylogx, Shift); ++ svuint64_t ki = svreinterpret_u64 (kd); ++ kd = svsub_x (pg, kd, Shift); ++ ++ r = svsub_x (pg, *pylogx, kd); ++ ++ /* exp2(x) = 2^(k/N) * 2^r ~= s * (C0*r^3 + C1*r^2 + C2*r + 1). */ ++ svuint64_t t ++ = svld1_gather_index (pg, Texp, svand_x (pg, ki, V_POWF_EXP2_N - 1)); ++ svuint64_t ski = svadd_x (pg, ki, sign_bias); ++ t = svadd_x (pg, t, svlsl_x (pg, ski, 52 - V_POWF_EXP2_TABLE_BITS)); ++ svfloat64_t s = svreinterpret_f64 (t); ++ ++ svfloat64_t p = C (0); ++ p = svmla_x (pg, C (1), p, r); ++ p = svmla_x (pg, C (2), p, r); ++ p = svmla_x (pg, s, p, svmul_x (pg, s, r)); ++ ++ return p; ++} ++ ++/* Widen vector to double precision and compute core on both halves of the ++ vector. Lower cost of promotion by considering all lanes active. */ ++static inline svfloat32_t ++sv_powf_core (const svbool_t pg, svuint32_t i, svuint32_t iz, svint32_t k, ++ svfloat32_t y, svuint32_t sign_bias, svfloat32_t *pylogx, ++ const struct data *d) ++{ ++ const svbool_t ptrue = svptrue_b64 (); ++ ++ /* Unpack and promote input vectors (pg, y, z, i, k and sign_bias) into two in ++ order to perform core computation in double precision. */ ++ const svbool_t pg_lo = svunpklo (pg); ++ const svbool_t pg_hi = svunpkhi (pg); ++ svfloat64_t y_lo = svcvt_f64_x ( ++ ptrue, svreinterpret_f32 (svunpklo (svreinterpret_u32 (y)))); ++ svfloat64_t y_hi = svcvt_f64_x ( ++ ptrue, svreinterpret_f32 (svunpkhi (svreinterpret_u32 (y)))); ++ svfloat32_t z = svreinterpret_f32 (iz); ++ svfloat64_t z_lo = svcvt_f64_x ( ++ ptrue, svreinterpret_f32 (svunpklo (svreinterpret_u32 (z)))); ++ svfloat64_t z_hi = svcvt_f64_x ( ++ ptrue, svreinterpret_f32 (svunpkhi (svreinterpret_u32 (z)))); ++ svuint64_t i_lo = svunpklo (i); ++ svuint64_t i_hi = svunpkhi (i); ++ svint64_t k_lo = svunpklo (k); ++ svint64_t k_hi = svunpkhi (k); ++ svuint64_t sign_bias_lo = svunpklo (sign_bias); ++ svuint64_t sign_bias_hi = svunpkhi (sign_bias); ++ ++ /* Compute each part in double precision. */ ++ svfloat64_t ylogx_lo, ylogx_hi; ++ svfloat64_t lo = sv_powf_core_ext (pg_lo, i_lo, z_lo, k_lo, y_lo, ++ sign_bias_lo, &ylogx_lo, d); ++ svfloat64_t hi = sv_powf_core_ext (pg_hi, i_hi, z_hi, k_hi, y_hi, ++ sign_bias_hi, &ylogx_hi, d); ++ ++ /* Convert back to single-precision and interleave. */ ++ svfloat32_t ylogx_lo_32 = svcvt_f32_x (ptrue, ylogx_lo); ++ svfloat32_t ylogx_hi_32 = svcvt_f32_x (ptrue, ylogx_hi); ++ *pylogx = svuzp1 (ylogx_lo_32, ylogx_hi_32); ++ svfloat32_t lo_32 = svcvt_f32_x (ptrue, lo); ++ svfloat32_t hi_32 = svcvt_f32_x (ptrue, hi); ++ return svuzp1 (lo_32, hi_32); ++} ++ ++/* Implementation of SVE powf. ++ Provides the same accuracy as AdvSIMD powf, since it relies on the same ++ algorithm. The theoretical maximum error is under 2.60 ULPs. ++ Maximum measured error is 2.56 ULPs: ++ SV_NAME_F2 (pow) (0x1.004118p+0, 0x1.5d14a4p+16) got 0x1.fd4bp+127 ++ want 0x1.fd4b06p+127. */ ++svfloat32_t SV_NAME_F2 (pow) (svfloat32_t x, svfloat32_t y, const svbool_t pg) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ svuint32_t vix0 = svreinterpret_u32 (x); ++ svuint32_t viy0 = svreinterpret_u32 (y); ++ ++ /* Negative x cases. */ ++ svuint32_t sign_bit = svand_m (pg, vix0, d->sign_mask); ++ svbool_t xisneg = svcmpeq (pg, sign_bit, d->sign_mask); ++ ++ /* Set sign_bias and ix depending on sign of x and nature of y. */ ++ svbool_t yisnotint_xisneg = svpfalse_b (); ++ svuint32_t sign_bias = sv_u32 (0); ++ svuint32_t vix = vix0; ++ if (__glibc_unlikely (svptest_any (pg, xisneg))) ++ { ++ /* Determine nature of y. */ ++ yisnotint_xisneg = svisnotint (xisneg, y); ++ svbool_t yisint_xisneg = svisint (xisneg, y); ++ svbool_t yisodd_xisneg = svisodd (xisneg, y); ++ /* ix set to abs(ix) if y is integer. */ ++ vix = svand_m (yisint_xisneg, vix0, 0x7fffffff); ++ /* Set to SignBias if x is negative and y is odd. */ ++ sign_bias = svsel (yisodd_xisneg, sv_u32 (d->sign_bias), sv_u32 (0)); ++ } ++ ++ /* Special cases of x or y: zero, inf and nan. */ ++ svbool_t xspecial = sv_zeroinfnan (pg, vix0); ++ svbool_t yspecial = sv_zeroinfnan (pg, viy0); ++ svbool_t cmp = svorr_z (pg, xspecial, yspecial); ++ ++ /* Small cases of x: |x| < 0x1p-126. */ ++ svbool_t xsmall = svaclt (pg, x, d->small_bound); ++ if (__glibc_unlikely (svptest_any (pg, xsmall))) ++ { ++ /* Normalize subnormal x so exponent becomes negative. */ ++ svuint32_t vix_norm = svreinterpret_u32 (svmul_x (xsmall, x, Norm)); ++ vix_norm = svand_x (xsmall, vix_norm, 0x7fffffff); ++ vix_norm = svsub_x (xsmall, vix_norm, d->subnormal_bias); ++ vix = svsel (xsmall, vix_norm, vix); ++ } ++ /* Part of core computation carried in working precision. */ ++ svuint32_t tmp = svsub_x (pg, vix, d->off); ++ svuint32_t i = svand_x (pg, svlsr_x (pg, tmp, (23 - V_POWF_LOG2_TABLE_BITS)), ++ V_POWF_LOG2_N - 1); ++ svuint32_t top = svand_x (pg, tmp, 0xff800000); ++ svuint32_t iz = svsub_x (pg, vix, top); ++ svint32_t k ++ = svasr_x (pg, svreinterpret_s32 (top), (23 - V_POWF_EXP2_TABLE_BITS)); ++ ++ /* Compute core in extended precision and return intermediate ylogx results to ++ handle cases of underflow and underflow in exp. */ ++ svfloat32_t ylogx; ++ svfloat32_t ret = sv_powf_core (pg, i, iz, k, y, sign_bias, &ylogx, d); ++ ++ /* Handle exp special cases of underflow and overflow. */ ++ svuint32_t sign = svlsl_x (pg, sign_bias, 20 - V_POWF_EXP2_TABLE_BITS); ++ svfloat32_t ret_oflow ++ = svreinterpret_f32 (svorr_x (pg, sign, asuint (INFINITY))); ++ svfloat32_t ret_uflow = svreinterpret_f32 (sign); ++ ret = svsel (svcmple (pg, ylogx, d->uflow_bound), ret_uflow, ret); ++ ret = svsel (svcmpgt (pg, ylogx, d->oflow_bound), ret_oflow, ret); ++ ++ /* Cases of finite y and finite negative x. */ ++ ret = svsel (yisnotint_xisneg, sv_f32 (__builtin_nanf ("")), ret); ++ ++ if (__glibc_unlikely (svptest_any (pg, cmp))) ++ return sv_call_powf_sc (x, y, ret, cmp); ++ ++ return ret; ++} +diff --git a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +index 1877db3ac6932037..8c98161662dada80 100644 +--- a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +@@ -44,6 +44,7 @@ VPCS_VECTOR_WRAPPER (log_advsimd, _ZGVnN2v_log) + VPCS_VECTOR_WRAPPER (log10_advsimd, _ZGVnN2v_log10) + VPCS_VECTOR_WRAPPER (log1p_advsimd, _ZGVnN2v_log1p) + VPCS_VECTOR_WRAPPER (log2_advsimd, _ZGVnN2v_log2) ++VPCS_VECTOR_WRAPPER_ff (pow_advsimd, _ZGVnN2vv_pow) + VPCS_VECTOR_WRAPPER (sin_advsimd, _ZGVnN2v_sin) + VPCS_VECTOR_WRAPPER (sinh_advsimd, _ZGVnN2v_sinh) + VPCS_VECTOR_WRAPPER (tan_advsimd, _ZGVnN2v_tan) +diff --git a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +index b702f942dea0749f..2583428af5cb13c8 100644 +--- a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +@@ -63,6 +63,7 @@ SVE_VECTOR_WRAPPER (log_sve, _ZGVsMxv_log) + SVE_VECTOR_WRAPPER (log10_sve, _ZGVsMxv_log10) + SVE_VECTOR_WRAPPER (log1p_sve, _ZGVsMxv_log1p) + SVE_VECTOR_WRAPPER (log2_sve, _ZGVsMxv_log2) ++SVE_VECTOR_WRAPPER_ff (pow_sve, _ZGVsMxvv_pow) + SVE_VECTOR_WRAPPER (sin_sve, _ZGVsMxv_sin) + SVE_VECTOR_WRAPPER (sinh_sve, _ZGVsMxv_sinh) + SVE_VECTOR_WRAPPER (tan_sve, _ZGVsMxv_tan) +diff --git a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +index 9cb451b4f045e625..26679018d6994c5a 100644 +--- a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +@@ -44,6 +44,7 @@ VPCS_VECTOR_WRAPPER (logf_advsimd, _ZGVnN4v_logf) + VPCS_VECTOR_WRAPPER (log10f_advsimd, _ZGVnN4v_log10f) + VPCS_VECTOR_WRAPPER (log1pf_advsimd, _ZGVnN4v_log1pf) + VPCS_VECTOR_WRAPPER (log2f_advsimd, _ZGVnN4v_log2f) ++VPCS_VECTOR_WRAPPER_ff (powf_advsimd, _ZGVnN4vv_powf) + VPCS_VECTOR_WRAPPER (sinf_advsimd, _ZGVnN4v_sinf) + VPCS_VECTOR_WRAPPER (sinhf_advsimd, _ZGVnN4v_sinhf) + VPCS_VECTOR_WRAPPER (tanf_advsimd, _ZGVnN4v_tanf) +diff --git a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +index 5b3dd22916d2a50d..0f972b788690d9fb 100644 +--- a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +@@ -63,6 +63,7 @@ SVE_VECTOR_WRAPPER (logf_sve, _ZGVsMxv_logf) + SVE_VECTOR_WRAPPER (log10f_sve, _ZGVsMxv_log10f) + SVE_VECTOR_WRAPPER (log1pf_sve, _ZGVsMxv_log1pf) + SVE_VECTOR_WRAPPER (log2f_sve, _ZGVsMxv_log2f) ++SVE_VECTOR_WRAPPER_ff (powf_sve, _ZGVsMxvv_powf) + SVE_VECTOR_WRAPPER (sinf_sve, _ZGVsMxv_sinf) + SVE_VECTOR_WRAPPER (sinhf_sve, _ZGVsMxv_sinhf) + SVE_VECTOR_WRAPPER (tanf_sve, _ZGVsMxv_tanf) +diff --git a/sysdeps/aarch64/fpu/v_pow_exp_data.c b/sysdeps/aarch64/fpu/v_pow_exp_data.c +new file mode 100644 +index 0000000000000000..8b7fb836687752bd +--- /dev/null ++++ b/sysdeps/aarch64/fpu/v_pow_exp_data.c +@@ -0,0 +1,301 @@ ++/* Shared data between exp, exp2 and pow. ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "vecmath_config.h" ++ ++#define N (1 << V_POW_EXP_TABLE_BITS) ++ ++const struct v_pow_exp_data __v_pow_exp_data = { ++// exp polynomial coefficients. ++.poly = { ++// abs error: 1.43*2^-58 ++// ulp error: 0.549 (0.550 without fma) ++// if |x| < ln2/512 ++0x1.fffffffffffd4p-2, ++0x1.5555571d6ef9p-3, ++0x1.5555576a5adcep-5, ++}, ++// N/ln2 ++.n_over_ln2 = 0x1.71547652b82fep0 * N, ++// ln2/N ++.ln2_over_n_hi = 0x1.62e42fefc0000p-9, ++.ln2_over_n_lo = -0x1.c610ca86c3899p-45, ++// Used for rounding to nearest integer without using intrinsics. ++.shift = 0x1.8p52, ++// 2^(k/N) ~= H[k]*(1 + T[k]) for int k in [0,N) ++// sbits[k] = asuint64(H[k]) - (k << 52)/N ++.sbits = { ++0x3ff0000000000000, ++0x3feffb1afa5abcbf, ++0x3feff63da9fb3335, ++0x3feff168143b0281, ++0x3fefec9a3e778061, ++0x3fefe7d42e11bbcc, ++0x3fefe315e86e7f85, ++0x3fefde5f72f654b1, ++0x3fefd9b0d3158574, ++0x3fefd50a0e3c1f89, ++0x3fefd06b29ddf6de, ++0x3fefcbd42b72a836, ++0x3fefc74518759bc8, ++0x3fefc2bdf66607e0, ++0x3fefbe3ecac6f383, ++0x3fefb9c79b1f3919, ++0x3fefb5586cf9890f, ++0x3fefb0f145e46c85, ++0x3fefac922b7247f7, ++0x3fefa83b23395dec, ++0x3fefa3ec32d3d1a2, ++0x3fef9fa55fdfa9c5, ++0x3fef9b66affed31b, ++0x3fef973028d7233e, ++0x3fef9301d0125b51, ++0x3fef8edbab5e2ab6, ++0x3fef8abdc06c31cc, ++0x3fef86a814f204ab, ++0x3fef829aaea92de0, ++0x3fef7e95934f312e, ++0x3fef7a98c8a58e51, ++0x3fef76a45471c3c2, ++0x3fef72b83c7d517b, ++0x3fef6ed48695bbc0, ++0x3fef6af9388c8dea, ++0x3fef672658375d2f, ++0x3fef635beb6fcb75, ++0x3fef5f99f8138a1c, ++0x3fef5be084045cd4, ++0x3fef582f95281c6b, ++0x3fef54873168b9aa, ++0x3fef50e75eb44027, ++0x3fef4d5022fcd91d, ++0x3fef49c18438ce4d, ++0x3fef463b88628cd6, ++0x3fef42be3578a819, ++0x3fef3f49917ddc96, ++0x3fef3bdda27912d1, ++0x3fef387a6e756238, ++0x3fef351ffb82140a, ++0x3fef31ce4fb2a63f, ++0x3fef2e85711ece75, ++0x3fef2b4565e27cdd, ++0x3fef280e341ddf29, ++0x3fef24dfe1f56381, ++0x3fef21ba7591bb70, ++0x3fef1e9df51fdee1, ++0x3fef1b8a66d10f13, ++0x3fef187fd0dad990, ++0x3fef157e39771b2f, ++0x3fef1285a6e4030b, ++0x3fef0f961f641589, ++0x3fef0cafa93e2f56, ++0x3fef09d24abd886b, ++0x3fef06fe0a31b715, ++0x3fef0432edeeb2fd, ++0x3fef0170fc4cd831, ++0x3feefeb83ba8ea32, ++0x3feefc08b26416ff, ++0x3feef96266e3fa2d, ++0x3feef6c55f929ff1, ++0x3feef431a2de883b, ++0x3feef1a7373aa9cb, ++0x3feeef26231e754a, ++0x3feeecae6d05d866, ++0x3feeea401b7140ef, ++0x3feee7db34e59ff7, ++0x3feee57fbfec6cf4, ++0x3feee32dc313a8e5, ++0x3feee0e544ede173, ++0x3feedea64c123422, ++0x3feedc70df1c5175, ++0x3feeda4504ac801c, ++0x3feed822c367a024, ++0x3feed60a21f72e2a, ++0x3feed3fb2709468a, ++0x3feed1f5d950a897, ++0x3feecffa3f84b9d4, ++0x3feece086061892d, ++0x3feecc2042a7d232, ++0x3feeca41ed1d0057, ++0x3feec86d668b3237, ++0x3feec6a2b5c13cd0, ++0x3feec4e1e192aed2, ++0x3feec32af0d7d3de, ++0x3feec17dea6db7d7, ++0x3feebfdad5362a27, ++0x3feebe41b817c114, ++0x3feebcb299fddd0d, ++0x3feebb2d81d8abff, ++0x3feeb9b2769d2ca7, ++0x3feeb8417f4531ee, ++0x3feeb6daa2cf6642, ++0x3feeb57de83f4eef, ++0x3feeb42b569d4f82, ++0x3feeb2e2f4f6ad27, ++0x3feeb1a4ca5d920f, ++0x3feeb070dde910d2, ++0x3feeaf4736b527da, ++0x3feeae27dbe2c4cf, ++0x3feead12d497c7fd, ++0x3feeac0827ff07cc, ++0x3feeab07dd485429, ++0x3feeaa11fba87a03, ++0x3feea9268a5946b7, ++0x3feea84590998b93, ++0x3feea76f15ad2148, ++0x3feea6a320dceb71, ++0x3feea5e1b976dc09, ++0x3feea52ae6cdf6f4, ++0x3feea47eb03a5585, ++0x3feea3dd1d1929fd, ++0x3feea34634ccc320, ++0x3feea2b9febc8fb7, ++0x3feea23882552225, ++0x3feea1c1c70833f6, ++0x3feea155d44ca973, ++0x3feea0f4b19e9538, ++0x3feea09e667f3bcd, ++0x3feea052fa75173e, ++0x3feea012750bdabf, ++0x3fee9fdcddd47645, ++0x3fee9fb23c651a2f, ++0x3fee9f9298593ae5, ++0x3fee9f7df9519484, ++0x3fee9f7466f42e87, ++0x3fee9f75e8ec5f74, ++0x3fee9f8286ead08a, ++0x3fee9f9a48a58174, ++0x3fee9fbd35d7cbfd, ++0x3fee9feb564267c9, ++0x3feea024b1ab6e09, ++0x3feea0694fde5d3f, ++0x3feea0b938ac1cf6, ++0x3feea11473eb0187, ++0x3feea17b0976cfdb, ++0x3feea1ed0130c132, ++0x3feea26a62ff86f0, ++0x3feea2f336cf4e62, ++0x3feea3878491c491, ++0x3feea427543e1a12, ++0x3feea4d2add106d9, ++0x3feea589994cce13, ++0x3feea64c1eb941f7, ++0x3feea71a4623c7ad, ++0x3feea7f4179f5b21, ++0x3feea8d99b4492ed, ++0x3feea9cad931a436, ++0x3feeaac7d98a6699, ++0x3feeabd0a478580f, ++0x3feeace5422aa0db, ++0x3feeae05bad61778, ++0x3feeaf3216b5448c, ++0x3feeb06a5e0866d9, ++0x3feeb1ae99157736, ++0x3feeb2fed0282c8a, ++0x3feeb45b0b91ffc6, ++0x3feeb5c353aa2fe2, ++0x3feeb737b0cdc5e5, ++0x3feeb8b82b5f98e5, ++0x3feeba44cbc8520f, ++0x3feebbdd9a7670b3, ++0x3feebd829fde4e50, ++0x3feebf33e47a22a2, ++0x3feec0f170ca07ba, ++0x3feec2bb4d53fe0d, ++0x3feec49182a3f090, ++0x3feec674194bb8d5, ++0x3feec86319e32323, ++0x3feeca5e8d07f29e, ++0x3feecc667b5de565, ++0x3feece7aed8eb8bb, ++0x3feed09bec4a2d33, ++0x3feed2c980460ad8, ++0x3feed503b23e255d, ++0x3feed74a8af46052, ++0x3feed99e1330b358, ++0x3feedbfe53c12e59, ++0x3feede6b5579fdbf, ++0x3feee0e521356eba, ++0x3feee36bbfd3f37a, ++0x3feee5ff3a3c2774, ++0x3feee89f995ad3ad, ++0x3feeeb4ce622f2ff, ++0x3feeee07298db666, ++0x3feef0ce6c9a8952, ++0x3feef3a2b84f15fb, ++0x3feef68415b749b1, ++0x3feef9728de5593a, ++0x3feefc6e29f1c52a, ++0x3feeff76f2fb5e47, ++0x3fef028cf22749e4, ++0x3fef05b030a1064a, ++0x3fef08e0b79a6f1f, ++0x3fef0c1e904bc1d2, ++0x3fef0f69c3f3a207, ++0x3fef12c25bd71e09, ++0x3fef16286141b33d, ++0x3fef199bdd85529c, ++0x3fef1d1cd9fa652c, ++0x3fef20ab5fffd07a, ++0x3fef244778fafb22, ++0x3fef27f12e57d14b, ++0x3fef2ba88988c933, ++0x3fef2f6d9406e7b5, ++0x3fef33405751c4db, ++0x3fef3720dcef9069, ++0x3fef3b0f2e6d1675, ++0x3fef3f0b555dc3fa, ++0x3fef43155b5bab74, ++0x3fef472d4a07897c, ++0x3fef4b532b08c968, ++0x3fef4f87080d89f2, ++0x3fef53c8eacaa1d6, ++0x3fef5818dcfba487, ++0x3fef5c76e862e6d3, ++0x3fef60e316c98398, ++0x3fef655d71ff6075, ++0x3fef69e603db3285, ++0x3fef6e7cd63a8315, ++0x3fef7321f301b460, ++0x3fef77d5641c0658, ++0x3fef7c97337b9b5f, ++0x3fef81676b197d17, ++0x3fef864614f5a129, ++0x3fef8b333b16ee12, ++0x3fef902ee78b3ff6, ++0x3fef953924676d76, ++0x3fef9a51fbc74c83, ++0x3fef9f7977cdb740, ++0x3fefa4afa2a490da, ++0x3fefa9f4867cca6e, ++0x3fefaf482d8e67f1, ++0x3fefb4aaa2188510, ++0x3fefba1bee615a27, ++0x3fefbf9c1cb6412a, ++0x3fefc52b376bba97, ++0x3fefcac948dd7274, ++0x3fefd0765b6e4540, ++0x3fefd632798844f8, ++0x3fefdbfdad9cbe14, ++0x3fefe1d802243c89, ++0x3fefe7c1819e90d8, ++0x3fefedba3692d514, ++0x3feff3c22b8f71f1, ++0x3feff9d96b2a23d9, ++}, ++}; +diff --git a/sysdeps/aarch64/fpu/v_pow_log_data.c b/sysdeps/aarch64/fpu/v_pow_log_data.c +new file mode 100644 +index 0000000000000000..0242fff477ce1298 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/v_pow_log_data.c +@@ -0,0 +1,186 @@ ++/* Data for the log part of pow. ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "vecmath_config.h" ++ ++#define N (1 << V_POW_LOG_TABLE_BITS) ++ ++/* Algorithm: ++ ++ x = 2^k z ++ log(x) = k ln2 + log(c) + log(z/c) ++ log(z/c) = poly(z/c - 1) ++ ++ where z is in [0x1.69555p-1; 0x1.69555p0] which is split into N subintervals ++ and z falls into the ith one, then table entries are computed as ++ ++ tab[i].invc = 1/c ++ tab[i].logc = round(0x1p43*log(c))/0x1p43 ++ tab[i].logctail = (double)(log(c) - logc) ++ ++ where c is chosen near the center of the subinterval such that 1/c has only ++ a few precision bits so z/c - 1 is exactly representible as double: ++ ++ 1/c = center < 1 ? round(N/center)/N : round(2*N/center)/N/2 ++ ++ Note: |z/c - 1| < 1/N for the chosen c, |log(c) - logc - logctail| < ++ 0x1p-97, the last few bits of logc are rounded away so k*ln2hi + logc has no ++ rounding error and the interval for z is selected such that near x == 1, ++ where log(x) ++ is tiny, large cancellation error is avoided in logc + poly(z/c - 1). */ ++const struct v_pow_log_data __v_pow_log_data = { ++ /* relative error: 0x1.11922ap-70 in [-0x1.6bp-8, 0x1.6bp-8] ++ Coefficients are scaled to match the scaling during evaluation. */ ++ .poly = { -0x1p-1, -0x1.555555555556p-1, 0x1.0000000000006p-1, ++ 0x1.999999959554ep-1, -0x1.555555529a47ap-1, -0x1.2495b9b4845e9p0, ++ 0x1.0002b8b263fc3p0, }, ++ .ln2_hi = 0x1.62e42fefa3800p-1, ++ .ln2_lo = 0x1.ef35793c76730p-45, ++ .invc = { 0x1.6a00000000000p+0, 0x1.6800000000000p+0, 0x1.6600000000000p+0, ++ 0x1.6400000000000p+0, 0x1.6200000000000p+0, 0x1.6000000000000p+0, ++ 0x1.5e00000000000p+0, 0x1.5c00000000000p+0, 0x1.5a00000000000p+0, ++ 0x1.5800000000000p+0, 0x1.5600000000000p+0, 0x1.5600000000000p+0, ++ 0x1.5400000000000p+0, 0x1.5200000000000p+0, 0x1.5000000000000p+0, ++ 0x1.4e00000000000p+0, 0x1.4c00000000000p+0, 0x1.4a00000000000p+0, ++ 0x1.4a00000000000p+0, 0x1.4800000000000p+0, 0x1.4600000000000p+0, ++ 0x1.4400000000000p+0, 0x1.4200000000000p+0, 0x1.4000000000000p+0, ++ 0x1.4000000000000p+0, 0x1.3e00000000000p+0, 0x1.3c00000000000p+0, ++ 0x1.3a00000000000p+0, 0x1.3a00000000000p+0, 0x1.3800000000000p+0, ++ 0x1.3600000000000p+0, 0x1.3400000000000p+0, 0x1.3400000000000p+0, ++ 0x1.3200000000000p+0, 0x1.3000000000000p+0, 0x1.3000000000000p+0, ++ 0x1.2e00000000000p+0, 0x1.2c00000000000p+0, 0x1.2c00000000000p+0, ++ 0x1.2a00000000000p+0, 0x1.2800000000000p+0, 0x1.2600000000000p+0, ++ 0x1.2600000000000p+0, 0x1.2400000000000p+0, 0x1.2400000000000p+0, ++ 0x1.2200000000000p+0, 0x1.2000000000000p+0, 0x1.2000000000000p+0, ++ 0x1.1e00000000000p+0, 0x1.1c00000000000p+0, 0x1.1c00000000000p+0, ++ 0x1.1a00000000000p+0, 0x1.1a00000000000p+0, 0x1.1800000000000p+0, ++ 0x1.1600000000000p+0, 0x1.1600000000000p+0, 0x1.1400000000000p+0, ++ 0x1.1400000000000p+0, 0x1.1200000000000p+0, 0x1.1000000000000p+0, ++ 0x1.1000000000000p+0, 0x1.0e00000000000p+0, 0x1.0e00000000000p+0, ++ 0x1.0c00000000000p+0, 0x1.0c00000000000p+0, 0x1.0a00000000000p+0, ++ 0x1.0a00000000000p+0, 0x1.0800000000000p+0, 0x1.0800000000000p+0, ++ 0x1.0600000000000p+0, 0x1.0400000000000p+0, 0x1.0400000000000p+0, ++ 0x1.0200000000000p+0, 0x1.0200000000000p+0, 0x1.0000000000000p+0, ++ 0x1.0000000000000p+0, 0x1.fc00000000000p-1, 0x1.f800000000000p-1, ++ 0x1.f400000000000p-1, 0x1.f000000000000p-1, 0x1.ec00000000000p-1, ++ 0x1.e800000000000p-1, 0x1.e400000000000p-1, 0x1.e200000000000p-1, ++ 0x1.de00000000000p-1, 0x1.da00000000000p-1, 0x1.d600000000000p-1, ++ 0x1.d400000000000p-1, 0x1.d000000000000p-1, 0x1.cc00000000000p-1, ++ 0x1.ca00000000000p-1, 0x1.c600000000000p-1, 0x1.c400000000000p-1, ++ 0x1.c000000000000p-1, 0x1.be00000000000p-1, 0x1.ba00000000000p-1, ++ 0x1.b800000000000p-1, 0x1.b400000000000p-1, 0x1.b200000000000p-1, ++ 0x1.ae00000000000p-1, 0x1.ac00000000000p-1, 0x1.aa00000000000p-1, ++ 0x1.a600000000000p-1, 0x1.a400000000000p-1, 0x1.a000000000000p-1, ++ 0x1.9e00000000000p-1, 0x1.9c00000000000p-1, 0x1.9a00000000000p-1, ++ 0x1.9600000000000p-1, 0x1.9400000000000p-1, 0x1.9200000000000p-1, ++ 0x1.9000000000000p-1, 0x1.8c00000000000p-1, 0x1.8a00000000000p-1, ++ 0x1.8800000000000p-1, 0x1.8600000000000p-1, 0x1.8400000000000p-1, ++ 0x1.8200000000000p-1, 0x1.7e00000000000p-1, 0x1.7c00000000000p-1, ++ 0x1.7a00000000000p-1, 0x1.7800000000000p-1, 0x1.7600000000000p-1, ++ 0x1.7400000000000p-1, 0x1.7200000000000p-1, 0x1.7000000000000p-1, ++ 0x1.6e00000000000p-1, 0x1.6c00000000000p-1, }, ++ .logc ++ = { -0x1.62c82f2b9c800p-2, -0x1.5d1bdbf580800p-2, -0x1.5767717455800p-2, ++ -0x1.51aad872df800p-2, -0x1.4be5f95777800p-2, -0x1.4618bc21c6000p-2, ++ -0x1.404308686a800p-2, -0x1.3a64c55694800p-2, -0x1.347dd9a988000p-2, ++ -0x1.2e8e2bae12000p-2, -0x1.2895a13de8800p-2, -0x1.2895a13de8800p-2, ++ -0x1.22941fbcf7800p-2, -0x1.1c898c1699800p-2, -0x1.1675cababa800p-2, ++ -0x1.1058bf9ae4800p-2, -0x1.0a324e2739000p-2, -0x1.0402594b4d000p-2, ++ -0x1.0402594b4d000p-2, -0x1.fb9186d5e4000p-3, -0x1.ef0adcbdc6000p-3, ++ -0x1.e27076e2af000p-3, -0x1.d5c216b4fc000p-3, -0x1.c8ff7c79aa000p-3, ++ -0x1.c8ff7c79aa000p-3, -0x1.bc286742d9000p-3, -0x1.af3c94e80c000p-3, ++ -0x1.a23bc1fe2b000p-3, -0x1.a23bc1fe2b000p-3, -0x1.9525a9cf45000p-3, ++ -0x1.87fa06520d000p-3, -0x1.7ab890210e000p-3, -0x1.7ab890210e000p-3, ++ -0x1.6d60fe719d000p-3, -0x1.5ff3070a79000p-3, -0x1.5ff3070a79000p-3, ++ -0x1.526e5e3a1b000p-3, -0x1.44d2b6ccb8000p-3, -0x1.44d2b6ccb8000p-3, ++ -0x1.371fc201e9000p-3, -0x1.29552f81ff000p-3, -0x1.1b72ad52f6000p-3, ++ -0x1.1b72ad52f6000p-3, -0x1.0d77e7cd09000p-3, -0x1.0d77e7cd09000p-3, ++ -0x1.fec9131dbe000p-4, -0x1.e27076e2b0000p-4, -0x1.e27076e2b0000p-4, ++ -0x1.c5e548f5bc000p-4, -0x1.a926d3a4ae000p-4, -0x1.a926d3a4ae000p-4, ++ -0x1.8c345d631a000p-4, -0x1.8c345d631a000p-4, -0x1.6f0d28ae56000p-4, ++ -0x1.51b073f062000p-4, -0x1.51b073f062000p-4, -0x1.341d7961be000p-4, ++ -0x1.341d7961be000p-4, -0x1.16536eea38000p-4, -0x1.f0a30c0118000p-5, ++ -0x1.f0a30c0118000p-5, -0x1.b42dd71198000p-5, -0x1.b42dd71198000p-5, ++ -0x1.77458f632c000p-5, -0x1.77458f632c000p-5, -0x1.39e87b9fec000p-5, ++ -0x1.39e87b9fec000p-5, -0x1.f829b0e780000p-6, -0x1.f829b0e780000p-6, ++ -0x1.7b91b07d58000p-6, -0x1.fc0a8b0fc0000p-7, -0x1.fc0a8b0fc0000p-7, ++ -0x1.fe02a6b100000p-8, -0x1.fe02a6b100000p-8, 0x0.0000000000000p+0, ++ 0x0.0000000000000p+0, 0x1.0101575890000p-7, 0x1.0205658938000p-6, ++ 0x1.8492528c90000p-6, 0x1.0415d89e74000p-5, 0x1.466aed42e0000p-5, ++ 0x1.894aa149fc000p-5, 0x1.ccb73cdddc000p-5, 0x1.eea31c006c000p-5, ++ 0x1.1973bd1466000p-4, 0x1.3bdf5a7d1e000p-4, 0x1.5e95a4d97a000p-4, ++ 0x1.700d30aeac000p-4, 0x1.9335e5d594000p-4, 0x1.b6ac88dad6000p-4, ++ 0x1.c885801bc4000p-4, 0x1.ec739830a2000p-4, 0x1.fe89139dbe000p-4, ++ 0x1.1178e8227e000p-3, 0x1.1aa2b7e23f000p-3, 0x1.2d1610c868000p-3, ++ 0x1.365fcb0159000p-3, 0x1.4913d8333b000p-3, 0x1.527e5e4a1b000p-3, ++ 0x1.6574ebe8c1000p-3, 0x1.6f0128b757000p-3, 0x1.7898d85445000p-3, ++ 0x1.8beafeb390000p-3, 0x1.95a5adcf70000p-3, 0x1.a93ed3c8ae000p-3, ++ 0x1.b31d8575bd000p-3, 0x1.bd087383be000p-3, 0x1.c6ffbc6f01000p-3, ++ 0x1.db13db0d49000p-3, 0x1.e530effe71000p-3, 0x1.ef5ade4dd0000p-3, ++ 0x1.f991c6cb3b000p-3, 0x1.07138604d5800p-2, 0x1.0c42d67616000p-2, ++ 0x1.1178e8227e800p-2, 0x1.16b5ccbacf800p-2, 0x1.1bf99635a6800p-2, ++ 0x1.214456d0eb800p-2, 0x1.2bef07cdc9000p-2, 0x1.314f1e1d36000p-2, ++ 0x1.36b6776be1000p-2, 0x1.3c25277333000p-2, 0x1.419b423d5e800p-2, ++ 0x1.4718dc271c800p-2, 0x1.4c9e09e173000p-2, 0x1.522ae0738a000p-2, ++ 0x1.57bf753c8d000p-2, 0x1.5d5bddf596000p-2, }, ++ .logctail ++ = { 0x1.ab42428375680p-48, -0x1.ca508d8e0f720p-46, -0x1.362a4d5b6506dp-45, ++ -0x1.684e49eb067d5p-49, -0x1.41b6993293ee0p-47, 0x1.3d82f484c84ccp-46, ++ 0x1.c42f3ed820b3ap-50, 0x1.0b1c686519460p-45, 0x1.5594dd4c58092p-45, ++ 0x1.67b1e99b72bd8p-45, 0x1.5ca14b6cfb03fp-46, 0x1.5ca14b6cfb03fp-46, ++ -0x1.65a242853da76p-46, -0x1.fafbc68e75404p-46, 0x1.f1fc63382a8f0p-46, ++ -0x1.6a8c4fd055a66p-45, -0x1.c6bee7ef4030ep-47, -0x1.036b89ef42d7fp-48, ++ -0x1.036b89ef42d7fp-48, 0x1.d572aab993c87p-47, 0x1.b26b79c86af24p-45, ++ -0x1.72f4f543fff10p-46, 0x1.1ba91bbca681bp-45, 0x1.7794f689f8434p-45, ++ 0x1.7794f689f8434p-45, 0x1.94eb0318bb78fp-46, 0x1.a4e633fcd9066p-52, ++ -0x1.58c64dc46c1eap-45, -0x1.58c64dc46c1eap-45, -0x1.ad1d904c1d4e3p-45, ++ 0x1.bbdbf7fdbfa09p-45, 0x1.bdb9072534a58p-45, 0x1.bdb9072534a58p-45, ++ -0x1.0e46aa3b2e266p-46, -0x1.e9e439f105039p-46, -0x1.e9e439f105039p-46, ++ -0x1.0de8b90075b8fp-45, 0x1.70cc16135783cp-46, 0x1.70cc16135783cp-46, ++ 0x1.178864d27543ap-48, -0x1.48d301771c408p-45, -0x1.e80a41811a396p-45, ++ -0x1.e80a41811a396p-45, 0x1.a699688e85bf4p-47, 0x1.a699688e85bf4p-47, ++ -0x1.575545ca333f2p-45, 0x1.a342c2af0003cp-45, 0x1.a342c2af0003cp-45, ++ -0x1.d0c57585fbe06p-46, 0x1.53935e85baac8p-45, 0x1.53935e85baac8p-45, ++ 0x1.37c294d2f5668p-46, 0x1.37c294d2f5668p-46, -0x1.69737c93373dap-45, ++ 0x1.f025b61c65e57p-46, 0x1.f025b61c65e57p-46, 0x1.c5edaccf913dfp-45, ++ 0x1.c5edaccf913dfp-45, 0x1.47c5e768fa309p-46, 0x1.d599e83368e91p-45, ++ 0x1.d599e83368e91p-45, 0x1.c827ae5d6704cp-46, 0x1.c827ae5d6704cp-46, ++ -0x1.cfc4634f2a1eep-45, -0x1.cfc4634f2a1eep-45, 0x1.502b7f526feaap-48, ++ 0x1.502b7f526feaap-48, -0x1.980267c7e09e4p-45, -0x1.980267c7e09e4p-45, ++ -0x1.88d5493faa639p-45, -0x1.f1e7cf6d3a69cp-50, -0x1.f1e7cf6d3a69cp-50, ++ -0x1.9e23f0dda40e4p-46, -0x1.9e23f0dda40e4p-46, 0x0.0000000000000p+0, ++ 0x0.0000000000000p+0, -0x1.0c76b999d2be8p-46, -0x1.3dc5b06e2f7d2p-45, ++ -0x1.aa0ba325a0c34p-45, 0x1.111c05cf1d753p-47, -0x1.c167375bdfd28p-45, ++ -0x1.97995d05a267dp-46, -0x1.a68f247d82807p-46, -0x1.e113e4fc93b7bp-47, ++ -0x1.5325d560d9e9bp-45, 0x1.cc85ea5db4ed7p-45, -0x1.c69063c5d1d1ep-45, ++ 0x1.c1e8da99ded32p-49, 0x1.3115c3abd47dap-45, -0x1.390802bf768e5p-46, ++ 0x1.646d1c65aacd3p-45, -0x1.dc068afe645e0p-45, -0x1.534d64fa10afdp-45, ++ 0x1.1ef78ce2d07f2p-45, 0x1.ca78e44389934p-45, 0x1.39d6ccb81b4a1p-47, ++ 0x1.62fa8234b7289p-51, 0x1.5837954fdb678p-45, 0x1.633e8e5697dc7p-45, ++ 0x1.9cf8b2c3c2e78p-46, -0x1.5118de59c21e1p-45, -0x1.c661070914305p-46, ++ -0x1.73d54aae92cd1p-47, 0x1.7f22858a0ff6fp-47, -0x1.8724350562169p-45, ++ -0x1.c358d4eace1aap-47, -0x1.d4bc4595412b6p-45, -0x1.1ec72c5962bd2p-48, ++ -0x1.aff2af715b035p-45, 0x1.212276041f430p-51, -0x1.a211565bb8e11p-51, ++ 0x1.bcbecca0cdf30p-46, 0x1.89cdb16ed4e91p-48, 0x1.7188b163ceae9p-45, ++ -0x1.c210e63a5f01cp-45, 0x1.b9acdf7a51681p-45, 0x1.ca6ed5147bdb7p-45, ++ 0x1.a87deba46baeap-47, 0x1.a9cfa4a5004f4p-45, -0x1.8e27ad3213cb8p-45, ++ 0x1.16ecdb0f177c8p-46, 0x1.83b54b606bd5cp-46, 0x1.8e436ec90e09dp-47, ++ -0x1.f27ce0967d675p-45, -0x1.e20891b0ad8a4p-45, 0x1.ebe708164c759p-45, ++ 0x1.fadedee5d40efp-46, -0x1.a0b2a08a465dcp-47, }, ++}; +diff --git a/sysdeps/aarch64/fpu/v_powf_data.c b/sysdeps/aarch64/fpu/v_powf_data.c +new file mode 100644 +index 0000000000000000..f789b84850545644 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/v_powf_data.c +@@ -0,0 +1,102 @@ ++/* Coefficients for single-precision SVE pow(x) function. ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++ ++#include "vecmath_config.h" ++ ++const struct v_powf_data __v_powf_data = { ++ .invc = { 0x1.6489890582816p+0, ++ 0x1.5cf19b35e3472p+0, ++ 0x1.55aac0e956d65p+0, ++ 0x1.4eb0022977e01p+0, ++ 0x1.47fcccda1dd1fp+0, ++ 0x1.418ceabab68c1p+0, ++ 0x1.3b5c788f1edb3p+0, ++ 0x1.3567de48e9c9ap+0, ++ 0x1.2fabc80fd19bap+0, ++ 0x1.2a25200ce536bp+0, ++ 0x1.24d108e0152e3p+0, ++ 0x1.1facd8ab2fbe1p+0, ++ 0x1.1ab614a03efdfp+0, ++ 0x1.15ea6d03af9ffp+0, ++ 0x1.1147b994bb776p+0, ++ 0x1.0ccbf650593aap+0, ++ 0x1.0875408477302p+0, ++ 0x1.0441d42a93328p+0, ++ 0x1p+0, ++ 0x1.f1d006c855e86p-1, ++ 0x1.e28c3341aa301p-1, ++ 0x1.d4bdf9aa64747p-1, ++ 0x1.c7b45a24e5803p-1, ++ 0x1.bb5f5eb2ed60ap-1, ++ 0x1.afb0bff8fe6b4p-1, ++ 0x1.a49badf7ab1f5p-1, ++ 0x1.9a14a111fc4c9p-1, ++ 0x1.901131f5b2fdcp-1, ++ 0x1.8687f73f6d865p-1, ++ 0x1.7d7067eb77986p-1, ++ 0x1.74c2c1cf97b65p-1, ++ 0x1.6c77f37cff2a1p-1 ++ }, ++ .logc = { -0x1.e960f97b22702p+3, ++ -0x1.c993406cd4db6p+3, ++ -0x1.aa711d9a7d0f3p+3, ++ -0x1.8bf37bacdce9bp+3, ++ -0x1.6e13b3519946ep+3, ++ -0x1.50cb8281e4089p+3, ++ -0x1.341504a237e2bp+3, ++ -0x1.17eaab624ffbbp+3, ++ -0x1.f88e708f8c853p+2, ++ -0x1.c24b6da113914p+2, ++ -0x1.8d02ee397cb1dp+2, ++ -0x1.58ac1223408b3p+2, ++ -0x1.253e6fd190e89p+2, ++ -0x1.e5641882c12ffp+1, ++ -0x1.81fea712926f7p+1, ++ -0x1.203e240de64a3p+1, ++ -0x1.8029b86a78281p0, ++ -0x1.85d713190fb9p-1, ++ 0x0p+0, ++ 0x1.4c1cc07312997p0, ++ 0x1.5e1848ccec948p+1, ++ 0x1.04cfcb7f1196fp+2, ++ 0x1.582813d463c21p+2, ++ 0x1.a936fa68760ccp+2, ++ 0x1.f81bc31d6cc4ep+2, ++ 0x1.2279a09fae6b1p+3, ++ 0x1.47ec0b6df5526p+3, ++ 0x1.6c71762280f1p+3, ++ 0x1.90155070798dap+3, ++ 0x1.b2e23b1d3068cp+3, ++ 0x1.d4e21b0daa86ap+3, ++ 0x1.f61e2a2f67f3fp+3 ++ }, ++ .scale = { 0x3ff0000000000000, 0x3fefd9b0d3158574, 0x3fefb5586cf9890f, ++ 0x3fef9301d0125b51, 0x3fef72b83c7d517b, 0x3fef54873168b9aa, ++ 0x3fef387a6e756238, 0x3fef1e9df51fdee1, 0x3fef06fe0a31b715, ++ 0x3feef1a7373aa9cb, 0x3feedea64c123422, 0x3feece086061892d, ++ 0x3feebfdad5362a27, 0x3feeb42b569d4f82, 0x3feeab07dd485429, ++ 0x3feea47eb03a5585, 0x3feea09e667f3bcd, 0x3fee9f75e8ec5f74, ++ 0x3feea11473eb0187, 0x3feea589994cce13, 0x3feeace5422aa0db, ++ 0x3feeb737b0cdc5e5, 0x3feec49182a3f090, 0x3feed503b23e255d, ++ 0x3feee89f995ad3ad, 0x3feeff76f2fb5e47, 0x3fef199bdd85529c, ++ 0x3fef3720dcef9069, 0x3fef5818dcfba487, 0x3fef7c97337b9b5f, ++ 0x3fefa4afa2a490da, 0x3fefd0765b6e4540, ++ }, ++}; +diff --git a/sysdeps/aarch64/fpu/vecmath_config.h b/sysdeps/aarch64/fpu/vecmath_config.h +index c8cfc03bc0b949e9..7f0a8aa5f2e80ec5 100644 +--- a/sysdeps/aarch64/fpu/vecmath_config.h ++++ b/sysdeps/aarch64/fpu/vecmath_config.h +@@ -35,17 +35,6 @@ + __ptr; \ + }) + +-static inline uint64_t +-asuint64 (double f) +-{ +- union +- { +- double f; +- uint64_t i; +- } u = { f }; +- return u.i; +-} +- + #define V_LOG_POLY_ORDER 6 + #define V_LOG_TABLE_BITS 7 + extern const struct v_log_data +@@ -130,4 +119,35 @@ extern const struct erfcf_data + } tab[645]; + } __erfcf_data attribute_hidden; + ++/* Some data for AdvSIMD and SVE pow's internal exp and log. */ ++#define V_POW_EXP_TABLE_BITS 8 ++extern const struct v_pow_exp_data ++{ ++ double poly[3]; ++ double n_over_ln2, ln2_over_n_hi, ln2_over_n_lo, shift; ++ uint64_t sbits[1 << V_POW_EXP_TABLE_BITS]; ++} __v_pow_exp_data attribute_hidden; ++ ++#define V_POW_LOG_TABLE_BITS 7 ++extern const struct v_pow_log_data ++{ ++ double poly[7]; /* First coefficient is 1. */ ++ double ln2_hi, ln2_lo; ++ double invc[1 << V_POW_LOG_TABLE_BITS]; ++ double logc[1 << V_POW_LOG_TABLE_BITS]; ++ double logctail[1 << V_POW_LOG_TABLE_BITS]; ++} __v_pow_log_data attribute_hidden; ++ ++/* Some data for SVE powf's internal exp and log. */ ++#define V_POWF_EXP2_TABLE_BITS 5 ++#define V_POWF_EXP2_N (1 << V_POWF_EXP2_TABLE_BITS) ++#define V_POWF_LOG2_TABLE_BITS 5 ++#define V_POWF_LOG2_N (1 << V_POWF_LOG2_TABLE_BITS) ++extern const struct v_powf_data ++{ ++ double invc[V_POWF_LOG2_N]; ++ double logc[V_POWF_LOG2_N]; ++ uint64_t scale[V_POWF_EXP2_N]; ++} __v_powf_data attribute_hidden; ++ + #endif +diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps +index a67cd7cd7399c533..bd7e43983fc242a1 100644 +--- a/sysdeps/aarch64/libm-test-ulps ++++ b/sysdeps/aarch64/libm-test-ulps +@@ -1397,11 +1397,19 @@ double: 1 + float: 1 + ldouble: 2 + ++Function: "pow_advsimd": ++double: 1 ++float: 2 ++ + Function: "pow_downward": + double: 1 + float: 1 + ldouble: 2 + ++Function: "pow_sve": ++double: 1 ++float: 2 ++ + Function: "pow_towardzero": + double: 1 + float: 1 +diff --git a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +index 89ac1dfa36279eb0..b68510695481cf13 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist ++++ b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +@@ -93,6 +93,8 @@ GLIBC_2.40 _ZGVnN2v_tanh F + GLIBC_2.40 _ZGVnN2v_tanhf F + GLIBC_2.40 _ZGVnN2vv_hypot F + GLIBC_2.40 _ZGVnN2vv_hypotf F ++GLIBC_2.40 _ZGVnN2vv_pow F ++GLIBC_2.40 _ZGVnN2vv_powf F + GLIBC_2.40 _ZGVnN4v_acoshf F + GLIBC_2.40 _ZGVnN4v_asinhf F + GLIBC_2.40 _ZGVnN4v_atanhf F +@@ -103,6 +105,7 @@ GLIBC_2.40 _ZGVnN4v_erff F + GLIBC_2.40 _ZGVnN4v_sinhf F + GLIBC_2.40 _ZGVnN4v_tanhf F + GLIBC_2.40 _ZGVnN4vv_hypotf F ++GLIBC_2.40 _ZGVnN4vv_powf F + GLIBC_2.40 _ZGVsMxv_acosh F + GLIBC_2.40 _ZGVsMxv_acoshf F + GLIBC_2.40 _ZGVsMxv_asinh F +@@ -123,3 +126,5 @@ GLIBC_2.40 _ZGVsMxv_tanh F + GLIBC_2.40 _ZGVsMxv_tanhf F + GLIBC_2.40 _ZGVsMxvv_hypot F + GLIBC_2.40 _ZGVsMxvv_hypotf F ++GLIBC_2.40 _ZGVsMxvv_pow F ++GLIBC_2.40 _ZGVsMxvv_powf F diff --git a/glibc-RHEL-118273-13.patch b/glibc-RHEL-118273-13.patch new file mode 100644 index 0000000..b852325 --- /dev/null +++ b/glibc-RHEL-118273-13.patch @@ -0,0 +1,319 @@ +commit 7900ac490db32f6bccff812733f00280dde34e27 +Author: Joe Ramsay +Date: Mon Sep 23 15:32:53 2024 +0100 + + AArch64: Improve codegen in users of ADVSIMD expm1f helper + + Rearrange operations so MOV is not necessary in reduction or around + the special-case handler. Reduce memory access by using more indexed + MLAs in polynomial. + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/fpu/expm1f_advsimd.c b/sysdeps/aarch64/fpu/expm1f_advsimd.c +index a0616ec7542cbfce..8303ca296e030c2e 100644 +--- a/sysdeps/aarch64/fpu/expm1f_advsimd.c ++++ b/sysdeps/aarch64/fpu/expm1f_advsimd.c +@@ -18,27 +18,18 @@ + . */ + + #include "v_math.h" +-#include "poly_advsimd_f32.h" ++#include "v_expm1f_inline.h" + + static const struct data + { +- float32x4_t poly[5]; +- float invln2_and_ln2[4]; +- float32x4_t shift; +- int32x4_t exponent_bias; ++ struct v_expm1f_data d; + #if WANT_SIMD_EXCEPT + uint32x4_t thresh; + #else + float32x4_t oflow_bound; + #endif + } data = { +- /* Generated using fpminimax with degree=5 in [-log(2)/2, log(2)/2]. */ +- .poly = { V4 (0x1.fffffep-2), V4 (0x1.5554aep-3), V4 (0x1.555736p-5), +- V4 (0x1.12287cp-7), V4 (0x1.6b55a2p-10) }, +- /* Stores constants: invln2, ln2_hi, ln2_lo, 0. */ +- .invln2_and_ln2 = { 0x1.715476p+0f, 0x1.62e4p-1f, 0x1.7f7d1cp-20f, 0 }, +- .shift = V4 (0x1.8p23f), +- .exponent_bias = V4 (0x3f800000), ++ .d = V_EXPM1F_DATA, + #if !WANT_SIMD_EXCEPT + /* Value above which expm1f(x) should overflow. Absolute value of the + underflow bound is greater than this, so it catches both cases - there is +@@ -55,67 +46,38 @@ static const struct data + #define TinyBound v_u32 (0x34000000 << 1) + + static float32x4_t VPCS_ATTR NOINLINE +-special_case (float32x4_t x, float32x4_t y, uint32x4_t special) ++special_case (float32x4_t x, uint32x4_t special, const struct data *d) + { +- return v_call_f32 (expm1f, x, y, special); ++ return v_call_f32 ( ++ expm1f, x, expm1f_inline (v_zerofy_f32 (x, special), &d->d), special); + } + + /* Single-precision vector exp(x) - 1 function. +- The maximum error is 1.51 ULP: +- _ZGVnN4v_expm1f (0x1.8baa96p-2) got 0x1.e2fb9p-2 +- want 0x1.e2fb94p-2. */ ++ The maximum error is 1.62 ULP: ++ _ZGVnN4v_expm1f(0x1.85f83p-2) got 0x1.da9f4p-2 ++ want 0x1.da9f44p-2. */ + float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (expm1) (float32x4_t x) + { + const struct data *d = ptr_barrier (&data); +- uint32x4_t ix = vreinterpretq_u32_f32 (x); + + #if WANT_SIMD_EXCEPT ++ uint32x4_t ix = vreinterpretq_u32_f32 (x); + /* If fp exceptions are to be triggered correctly, fall back to scalar for + |x| < 2^-23, |x| > oflow_bound, Inf & NaN. Add ix to itself for + shift-left by 1, and compare with thresh which was left-shifted offline - + this is effectively an absolute compare. */ + uint32x4_t special + = vcgeq_u32 (vsubq_u32 (vaddq_u32 (ix, ix), TinyBound), d->thresh); +- if (__glibc_unlikely (v_any_u32 (special))) +- x = v_zerofy_f32 (x, special); + #else + /* Handles very large values (+ve and -ve), +/-NaN, +/-Inf. */ + uint32x4_t special = vcagtq_f32 (x, d->oflow_bound); + #endif + +- /* Reduce argument to smaller range: +- Let i = round(x / ln2) +- and f = x - i * ln2, then f is in [-ln2/2, ln2/2]. +- exp(x) - 1 = 2^i * (expm1(f) + 1) - 1 +- where 2^i is exact because i is an integer. */ +- float32x4_t invln2_and_ln2 = vld1q_f32 (d->invln2_and_ln2); +- float32x4_t j +- = vsubq_f32 (vfmaq_laneq_f32 (d->shift, x, invln2_and_ln2, 0), d->shift); +- int32x4_t i = vcvtq_s32_f32 (j); +- float32x4_t f = vfmsq_laneq_f32 (x, j, invln2_and_ln2, 1); +- f = vfmsq_laneq_f32 (f, j, invln2_and_ln2, 2); +- +- /* Approximate expm1(f) using polynomial. +- Taylor expansion for expm1(x) has the form: +- x + ax^2 + bx^3 + cx^4 .... +- So we calculate the polynomial P(f) = a + bf + cf^2 + ... +- and assemble the approximation expm1(f) ~= f + f^2 * P(f). */ +- float32x4_t p = v_horner_4_f32 (f, d->poly); +- p = vfmaq_f32 (f, vmulq_f32 (f, f), p); +- +- /* Assemble the result. +- expm1(x) ~= 2^i * (p + 1) - 1 +- Let t = 2^i. */ +- int32x4_t u = vaddq_s32 (vshlq_n_s32 (i, 23), d->exponent_bias); +- float32x4_t t = vreinterpretq_f32_s32 (u); +- + if (__glibc_unlikely (v_any_u32 (special))) +- return special_case (vreinterpretq_f32_u32 (ix), +- vfmaq_f32 (vsubq_f32 (t, v_f32 (1.0f)), p, t), +- special); ++ return special_case (x, special, d); + + /* expm1(x) ~= p * t + (t - 1). */ +- return vfmaq_f32 (vsubq_f32 (t, v_f32 (1.0f)), p, t); ++ return expm1f_inline (x, &d->d); + } + libmvec_hidden_def (V_NAME_F1 (expm1)) + HALF_WIDTH_ALIAS_F1 (expm1) +diff --git a/sysdeps/aarch64/fpu/sinhf_advsimd.c b/sysdeps/aarch64/fpu/sinhf_advsimd.c +index 6bb7482dc28795c1..c6ed7598e7deca1b 100644 +--- a/sysdeps/aarch64/fpu/sinhf_advsimd.c ++++ b/sysdeps/aarch64/fpu/sinhf_advsimd.c +@@ -23,15 +23,13 @@ + static const struct data + { + struct v_expm1f_data expm1f_consts; +- uint32x4_t halff; + #if WANT_SIMD_EXCEPT + uint32x4_t tiny_bound, thresh; + #else +- uint32x4_t oflow_bound; ++ float32x4_t oflow_bound; + #endif + } data = { + .expm1f_consts = V_EXPM1F_DATA, +- .halff = V4 (0x3f000000), + #if WANT_SIMD_EXCEPT + /* 0x1.6a09e8p-32, below which expm1f underflows. */ + .tiny_bound = V4 (0x2fb504f4), +@@ -39,14 +37,15 @@ static const struct data + .thresh = V4 (0x12fbbbb3), + #else + /* 0x1.61814ep+6, above which expm1f helper overflows. */ +- .oflow_bound = V4 (0x42b0c0a7), ++ .oflow_bound = V4 (0x1.61814ep+6), + #endif + }; + + static float32x4_t NOINLINE VPCS_ATTR +-special_case (float32x4_t x, float32x4_t y, uint32x4_t special) ++special_case (float32x4_t x, float32x4_t t, float32x4_t halfsign, ++ uint32x4_t special) + { +- return v_call_f32 (sinhf, x, y, special); ++ return v_call_f32 (sinhf, x, vmulq_f32 (t, halfsign), special); + } + + /* Approximation for vector single-precision sinh(x) using expm1. +@@ -60,15 +59,15 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (sinh) (float32x4_t x) + + uint32x4_t ix = vreinterpretq_u32_f32 (x); + float32x4_t ax = vabsq_f32 (x); +- uint32x4_t iax = vreinterpretq_u32_f32 (ax); +- uint32x4_t sign = veorq_u32 (ix, iax); +- float32x4_t halfsign = vreinterpretq_f32_u32 (vorrq_u32 (sign, d->halff)); ++ float32x4_t halfsign = vreinterpretq_f32_u32 ( ++ vbslq_u32 (v_u32 (0x80000000), ix, vreinterpretq_u32_f32 (v_f32 (0.5)))); + + #if WANT_SIMD_EXCEPT +- uint32x4_t special = vcgeq_u32 (vsubq_u32 (iax, d->tiny_bound), d->thresh); ++ uint32x4_t special = vcgeq_u32 ( ++ vsubq_u32 (vreinterpretq_u32_f32 (ax), d->tiny_bound), d->thresh); + ax = v_zerofy_f32 (ax, special); + #else +- uint32x4_t special = vcgeq_u32 (iax, d->oflow_bound); ++ uint32x4_t special = vcageq_f32 (x, d->oflow_bound); + #endif + + /* Up to the point that expm1f overflows, we can use it to calculate sinhf +@@ -80,7 +79,7 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (sinh) (float32x4_t x) + /* Fall back to the scalar variant for any lanes that should trigger an + exception. */ + if (__glibc_unlikely (v_any_u32 (special))) +- return special_case (x, vmulq_f32 (t, halfsign), special); ++ return special_case (x, t, halfsign, special); + + return vmulq_f32 (t, halfsign); + } +diff --git a/sysdeps/aarch64/fpu/tanhf_advsimd.c b/sysdeps/aarch64/fpu/tanhf_advsimd.c +index 50defd6ef03926f4..3ced9b7a414c812c 100644 +--- a/sysdeps/aarch64/fpu/tanhf_advsimd.c ++++ b/sysdeps/aarch64/fpu/tanhf_advsimd.c +@@ -28,13 +28,16 @@ static const struct data + /* 0x1.205966p+3, above which tanhf rounds to 1 (or -1 for negative). */ + .boring_bound = V4 (0x41102cb3), + .large_bound = V4 (0x7f800000), +- .onef = V4 (0x3f800000), + }; + + static float32x4_t NOINLINE VPCS_ATTR +-special_case (float32x4_t x, float32x4_t y, uint32x4_t special) ++special_case (float32x4_t x, uint32x4_t is_boring, float32x4_t boring, ++ float32x4_t q, uint32x4_t special) + { +- return v_call_f32 (tanhf, x, y, special); ++ return v_call_f32 ( ++ tanhf, x, ++ vbslq_f32 (is_boring, boring, vdivq_f32 (q, vaddq_f32 (q, v_f32 (2.0)))), ++ special); + } + + /* Approximation for single-precision vector tanh(x), using a simplified +@@ -50,7 +53,9 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (tanh) (float32x4_t x) + uint32x4_t iax = vreinterpretq_u32_f32 (ax); + uint32x4_t sign = veorq_u32 (ix, iax); + uint32x4_t is_boring = vcgtq_u32 (iax, d->boring_bound); +- float32x4_t boring = vreinterpretq_f32_u32 (vorrq_u32 (sign, d->onef)); ++ /* expm1 exponent bias is 1.0f reinterpreted to int. */ ++ float32x4_t boring = vreinterpretq_f32_u32 (vorrq_u32 ( ++ sign, vreinterpretq_u32_s32 (d->expm1f_consts.exponent_bias))); + + #if WANT_SIMD_EXCEPT + /* If fp exceptions are to be triggered properly, set all special and boring +@@ -66,10 +71,12 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (tanh) (float32x4_t x) + + /* tanh(x) = (e^2x - 1) / (e^2x + 1). */ + float32x4_t q = expm1f_inline (vmulq_n_f32 (x, 2), &d->expm1f_consts); +- float32x4_t y = vdivq_f32 (q, vaddq_f32 (q, v_f32 (2.0))); ++ + if (__glibc_unlikely (v_any_u32 (special))) +- return special_case (vreinterpretq_f32_u32 (ix), +- vbslq_f32 (is_boring, boring, y), special); ++ return special_case (vreinterpretq_f32_u32 (ix), is_boring, boring, q, ++ special); ++ ++ float32x4_t y = vdivq_f32 (q, vaddq_f32 (q, v_f32 (2.0))); + return vbslq_f32 (is_boring, boring, y); + } + libmvec_hidden_def (V_NAME_F1 (tanh)) +diff --git a/sysdeps/aarch64/fpu/v_expm1f_inline.h b/sysdeps/aarch64/fpu/v_expm1f_inline.h +index 59b552da6b74785e..1daedfdd51cfc54b 100644 +--- a/sysdeps/aarch64/fpu/v_expm1f_inline.h ++++ b/sysdeps/aarch64/fpu/v_expm1f_inline.h +@@ -21,48 +21,47 @@ + #define AARCH64_FPU_V_EXPM1F_INLINE_H + + #include "v_math.h" +-#include "poly_advsimd_f32.h" ++#include "math_config.h" + + struct v_expm1f_data + { +- float32x4_t poly[5]; +- float invln2_and_ln2[4]; +- float32x4_t shift; ++ float32x4_t c0, c2; + int32x4_t exponent_bias; ++ float c1, c3, inv_ln2, c4; ++ float ln2_hi, ln2_lo; + }; + + /* Coefficients generated using fpminimax with degree=5 in [-log(2)/2, +- log(2)/2]. Exponent bias is asuint(1.0f). +- invln2_and_ln2 Stores constants: invln2, ln2_lo, ln2_hi, 0. */ ++ log(2)/2]. Exponent bias is asuint(1.0f). */ + #define V_EXPM1F_DATA \ + { \ +- .poly = { V4 (0x1.fffffep-2), V4 (0x1.5554aep-3), V4 (0x1.555736p-5), \ +- V4 (0x1.12287cp-7), V4 (0x1.6b55a2p-10) }, \ +- .shift = V4 (0x1.8p23f), .exponent_bias = V4 (0x3f800000), \ +- .invln2_and_ln2 = { 0x1.715476p+0f, 0x1.62e4p-1f, 0x1.7f7d1cp-20f, 0 }, \ ++ .c0 = V4 (0x1.fffffep-2), .c1 = 0x1.5554aep-3, .c2 = V4 (0x1.555736p-5), \ ++ .c3 = 0x1.12287cp-7, .c4 = 0x1.6b55a2p-10, \ ++ .exponent_bias = V4 (0x3f800000), .inv_ln2 = 0x1.715476p+0f, \ ++ .ln2_hi = 0x1.62e4p-1f, .ln2_lo = 0x1.7f7d1cp-20f, \ + } + + static inline float32x4_t + expm1f_inline (float32x4_t x, const struct v_expm1f_data *d) + { +- /* Helper routine for calculating exp(x) - 1. +- Copied from v_expm1f_1u6.c, with all special-case handling removed - the +- calling routine should handle special values if required. */ ++ /* Helper routine for calculating exp(x) - 1. */ ++ ++ float32x2_t ln2 = vld1_f32 (&d->ln2_hi); ++ float32x4_t lane_consts = vld1q_f32 (&d->c1); + + /* Reduce argument: f in [-ln2/2, ln2/2], i is exact. */ +- float32x4_t invln2_and_ln2 = vld1q_f32 (d->invln2_and_ln2); +- float32x4_t j +- = vsubq_f32 (vfmaq_laneq_f32 (d->shift, x, invln2_and_ln2, 0), d->shift); ++ float32x4_t j = vrndaq_f32 (vmulq_laneq_f32 (x, lane_consts, 2)); + int32x4_t i = vcvtq_s32_f32 (j); +- float32x4_t f = vfmsq_laneq_f32 (x, j, invln2_and_ln2, 1); +- f = vfmsq_laneq_f32 (f, j, invln2_and_ln2, 2); ++ float32x4_t f = vfmsq_lane_f32 (x, j, ln2, 0); ++ f = vfmsq_lane_f32 (f, j, ln2, 1); + +- /* Approximate expm1(f) with polynomial P, expm1(f) ~= f + f^2 * P(f). +- Uses Estrin scheme, where the main _ZGVnN4v_expm1f routine uses +- Horner. */ ++ /* Approximate expm1(f) with polynomial P, expm1(f) ~= f + f^2 * P(f). */ + float32x4_t f2 = vmulq_f32 (f, f); + float32x4_t f4 = vmulq_f32 (f2, f2); +- float32x4_t p = v_estrin_4_f32 (f, f2, f4, d->poly); ++ float32x4_t p01 = vfmaq_laneq_f32 (d->c0, f, lane_consts, 0); ++ float32x4_t p23 = vfmaq_laneq_f32 (d->c2, f, lane_consts, 1); ++ float32x4_t p = vfmaq_f32 (p01, f2, p23); ++ p = vfmaq_laneq_f32 (p, f4, lane_consts, 3); + p = vfmaq_f32 (f, f2, p); + + /* t = 2^i. */ diff --git a/glibc-RHEL-118273-14.patch b/glibc-RHEL-118273-14.patch new file mode 100644 index 0000000..6922f4d --- /dev/null +++ b/glibc-RHEL-118273-14.patch @@ -0,0 +1,495 @@ +commit 5bc100bd4b7e00db3009ae93d25d303341545d23 +Author: Joe Ramsay +Date: Mon Sep 23 15:32:14 2024 +0100 + + AArch64: Improve codegen in users of AdvSIMD log1pf helper + + log1pf is quite register-intensive - use fewer registers for the + polynomial, and make various changes to shorten dependency chains in + parent routines. There is now no spilling with GCC 14. Accuracy moves + around a little - comments adjusted accordingly but does not require + regen-ulps. + + Use the helper in log1pf as well, instead of having separate + implementations. The more accurate polynomial means special-casing can + be simplified, and the shorter dependency chain avoids the usual dance + around v0, which is otherwise difficult. + + There is a small duplication of vectors containing 1.0f (or 0x3f800000) - + GCC is not currently able to efficiently handle values which fit in FMOV + but not MOVI, and are reinterpreted to integer. There may be potential + for more optimisation if this is fixed. + + Reviewed-by: Wilco Dijkstra + +Conflicts: + sysdeps/aarch64/fpu/log1pf_advsimd.c + (Fixup context to apply without out-of-scope dependency 751a5502) + +diff --git a/sysdeps/aarch64/fpu/acoshf_advsimd.c b/sysdeps/aarch64/fpu/acoshf_advsimd.c +index 8916dcbf409922a9..004474acf9e9322b 100644 +--- a/sysdeps/aarch64/fpu/acoshf_advsimd.c ++++ b/sysdeps/aarch64/fpu/acoshf_advsimd.c +@@ -25,35 +25,32 @@ const static struct data + { + struct v_log1pf_data log1pf_consts; + uint32x4_t one; +- uint16x4_t thresh; +-} data = { +- .log1pf_consts = V_LOG1PF_CONSTANTS_TABLE, +- .one = V4 (0x3f800000), +- .thresh = V4 (0x2000) /* top(asuint(SquareLim) - asuint(1)). */ +-}; ++} data = { .log1pf_consts = V_LOG1PF_CONSTANTS_TABLE, .one = V4 (0x3f800000) }; ++ ++#define Thresh vdup_n_u16 (0x2000) /* top(asuint(SquareLim) - asuint(1)). */ + + static float32x4_t NOINLINE VPCS_ATTR + special_case (float32x4_t x, float32x4_t y, uint16x4_t special, +- const struct v_log1pf_data d) ++ const struct v_log1pf_data *d) + { + return v_call_f32 (acoshf, x, log1pf_inline (y, d), vmovl_u16 (special)); + } + + /* Vector approximation for single-precision acosh, based on log1p. Maximum + error depends on WANT_SIMD_EXCEPT. With SIMD fp exceptions enabled, it +- is 2.78 ULP: +- __v_acoshf(0x1.07887p+0) got 0x1.ef9e9cp-3 +- want 0x1.ef9ea2p-3. ++ is 3.00 ULP: ++ _ZGVnN4v_acoshf(0x1.01df3ap+0) got 0x1.ef0a82p-4 ++ want 0x1.ef0a7cp-4. + With exceptions disabled, we can compute u with a shorter dependency chain, +- which gives maximum error of 3.07 ULP: +- __v_acoshf(0x1.01f83ep+0) got 0x1.fbc7fap-4 +- want 0x1.fbc7f4p-4. */ ++ which gives maximum error of 3.22 ULP: ++ _ZGVnN4v_acoshf(0x1.007ef2p+0) got 0x1.fdcdccp-5 ++ want 0x1.fdcdd2p-5. */ + + VPCS_ATTR float32x4_t NOINLINE V_NAME_F1 (acosh) (float32x4_t x) + { + const struct data *d = ptr_barrier (&data); + uint32x4_t ix = vreinterpretq_u32_f32 (x); +- uint16x4_t special = vcge_u16 (vsubhn_u32 (ix, d->one), d->thresh); ++ uint16x4_t special = vcge_u16 (vsubhn_u32 (ix, d->one), Thresh); + + #if WANT_SIMD_EXCEPT + /* Mask special lanes with 1 to side-step spurious invalid or overflow. Use +@@ -64,15 +61,16 @@ VPCS_ATTR float32x4_t NOINLINE V_NAME_F1 (acosh) (float32x4_t x) + float32x4_t xm1 = v_zerofy_f32 (vsubq_f32 (x, v_f32 (1)), p); + float32x4_t u = vfmaq_f32 (vaddq_f32 (xm1, xm1), xm1, xm1); + #else +- float32x4_t xm1 = vsubq_f32 (x, v_f32 (1)); +- float32x4_t u = vmulq_f32 (xm1, vaddq_f32 (x, v_f32 (1.0f))); ++ float32x4_t xm1 = vsubq_f32 (x, vreinterpretq_f32_u32 (d->one)); ++ float32x4_t u ++ = vmulq_f32 (xm1, vaddq_f32 (x, vreinterpretq_f32_u32 (d->one))); + #endif + + float32x4_t y = vaddq_f32 (xm1, vsqrtq_f32 (u)); + + if (__glibc_unlikely (v_any_u16h (special))) +- return special_case (x, y, special, d->log1pf_consts); +- return log1pf_inline (y, d->log1pf_consts); ++ return special_case (x, y, special, &d->log1pf_consts); ++ return log1pf_inline (y, &d->log1pf_consts); + } + libmvec_hidden_def (V_NAME_F1 (acosh)) + HALF_WIDTH_ALIAS_F1 (acosh) +diff --git a/sysdeps/aarch64/fpu/asinhf_advsimd.c b/sysdeps/aarch64/fpu/asinhf_advsimd.c +index 09fd8a614305563d..eb789b91b600af52 100644 +--- a/sysdeps/aarch64/fpu/asinhf_advsimd.c ++++ b/sysdeps/aarch64/fpu/asinhf_advsimd.c +@@ -20,16 +20,16 @@ + #include "v_math.h" + #include "v_log1pf_inline.h" + +-#define SignMask v_u32 (0x80000000) +- + const static struct data + { + struct v_log1pf_data log1pf_consts; ++ float32x4_t one; + uint32x4_t big_bound; + #if WANT_SIMD_EXCEPT + uint32x4_t tiny_bound; + #endif + } data = { ++ .one = V4 (1), + .log1pf_consts = V_LOG1PF_CONSTANTS_TABLE, + .big_bound = V4 (0x5f800000), /* asuint(0x1p64). */ + #if WANT_SIMD_EXCEPT +@@ -38,20 +38,27 @@ const static struct data + }; + + static float32x4_t NOINLINE VPCS_ATTR +-special_case (float32x4_t x, float32x4_t y, uint32x4_t special) ++special_case (float32x4_t x, uint32x4_t sign, float32x4_t y, ++ uint32x4_t special, const struct data *d) + { +- return v_call_f32 (asinhf, x, y, special); ++ return v_call_f32 ( ++ asinhf, x, ++ vreinterpretq_f32_u32 (veorq_u32 ( ++ sign, vreinterpretq_u32_f32 (log1pf_inline (y, &d->log1pf_consts)))), ++ special); + } + + /* Single-precision implementation of vector asinh(x), using vector log1p. +- Worst-case error is 2.66 ULP, at roughly +/-0.25: +- __v_asinhf(0x1.01b04p-2) got 0x1.fe163ep-3 want 0x1.fe1638p-3. */ ++ Worst-case error is 2.59 ULP: ++ _ZGVnN4v_asinhf(0x1.d86124p-3) got 0x1.d449bep-3 ++ want 0x1.d449c4p-3. */ + VPCS_ATTR float32x4_t NOINLINE V_NAME_F1 (asinh) (float32x4_t x) + { + const struct data *dat = ptr_barrier (&data); +- uint32x4_t iax = vbicq_u32 (vreinterpretq_u32_f32 (x), SignMask); +- float32x4_t ax = vreinterpretq_f32_u32 (iax); ++ float32x4_t ax = vabsq_f32 (x); ++ uint32x4_t iax = vreinterpretq_u32_f32 (ax); + uint32x4_t special = vcgeq_u32 (iax, dat->big_bound); ++ uint32x4_t sign = veorq_u32 (vreinterpretq_u32_f32 (x), iax); + float32x4_t special_arg = x; + + #if WANT_SIMD_EXCEPT +@@ -68,13 +75,13 @@ VPCS_ATTR float32x4_t NOINLINE V_NAME_F1 (asinh) (float32x4_t x) + /* asinh(x) = log(x + sqrt(x * x + 1)). + For positive x, asinh(x) = log1p(x + x * x / (1 + sqrt(x * x + 1))). */ + float32x4_t d +- = vaddq_f32 (v_f32 (1), vsqrtq_f32 (vfmaq_f32 (v_f32 (1), x, x))); +- float32x4_t y = log1pf_inline ( +- vaddq_f32 (ax, vdivq_f32 (vmulq_f32 (ax, ax), d)), dat->log1pf_consts); ++ = vaddq_f32 (v_f32 (1), vsqrtq_f32 (vfmaq_f32 (dat->one, ax, ax))); ++ float32x4_t y = vaddq_f32 (ax, vdivq_f32 (vmulq_f32 (ax, ax), d)); + + if (__glibc_unlikely (v_any_u32 (special))) +- return special_case (special_arg, vbslq_f32 (SignMask, x, y), special); +- return vbslq_f32 (SignMask, x, y); ++ return special_case (special_arg, sign, y, special, dat); ++ return vreinterpretq_f32_u32 (veorq_u32 ( ++ sign, vreinterpretq_u32_f32 (log1pf_inline (y, &dat->log1pf_consts)))); + } + libmvec_hidden_def (V_NAME_F1 (asinh)) + HALF_WIDTH_ALIAS_F1 (asinh) +diff --git a/sysdeps/aarch64/fpu/atanhf_advsimd.c b/sysdeps/aarch64/fpu/atanhf_advsimd.c +index ae488f7b54ddce26..818b6c92adcd48bb 100644 +--- a/sysdeps/aarch64/fpu/atanhf_advsimd.c ++++ b/sysdeps/aarch64/fpu/atanhf_advsimd.c +@@ -40,15 +40,17 @@ const static struct data + #define Half v_u32 (0x3f000000) + + static float32x4_t NOINLINE VPCS_ATTR +-special_case (float32x4_t x, float32x4_t y, uint32x4_t special) ++special_case (float32x4_t x, float32x4_t halfsign, float32x4_t y, ++ uint32x4_t special) + { +- return v_call_f32 (atanhf, x, y, special); ++ return v_call_f32 (atanhf, vbslq_f32 (AbsMask, x, halfsign), ++ vmulq_f32 (halfsign, y), special); + } + + /* Approximation for vector single-precision atanh(x) using modified log1p. +- The maximum error is 3.08 ULP: +- __v_atanhf(0x1.ff215p-5) got 0x1.ffcb7cp-5 +- want 0x1.ffcb82p-5. */ ++ The maximum error is 2.93 ULP: ++ _ZGVnN4v_atanhf(0x1.f43d7p-5) got 0x1.f4dcfep-5 ++ want 0x1.f4dcf8p-5. */ + VPCS_ATTR float32x4_t NOINLINE V_NAME_F1 (atanh) (float32x4_t x) + { + const struct data *d = ptr_barrier (&data); +@@ -68,11 +70,19 @@ VPCS_ATTR float32x4_t NOINLINE V_NAME_F1 (atanh) (float32x4_t x) + uint32x4_t special = vcgeq_u32 (iax, d->one); + #endif + +- float32x4_t y = vdivq_f32 (vaddq_f32 (ax, ax), vsubq_f32 (v_f32 (1), ax)); +- y = log1pf_inline (y, d->log1pf_consts); ++ float32x4_t y = vdivq_f32 (vaddq_f32 (ax, ax), ++ vsubq_f32 (vreinterpretq_f32_u32 (d->one), ax)); ++ y = log1pf_inline (y, &d->log1pf_consts); + ++ /* If exceptions not required, pass ax to special-case for shorter dependency ++ chain. If exceptions are required ax will have been zerofied, so have to ++ pass x. */ + if (__glibc_unlikely (v_any_u32 (special))) +- return special_case (x, vmulq_f32 (halfsign, y), special); ++#if WANT_SIMD_EXCEPT ++ return special_case (x, halfsign, y, special); ++#else ++ return special_case (ax, halfsign, y, special); ++#endif + return vmulq_f32 (halfsign, y); + } + libmvec_hidden_def (V_NAME_F1 (atanh)) +diff --git a/sysdeps/aarch64/fpu/log1pf_advsimd.c b/sysdeps/aarch64/fpu/log1pf_advsimd.c +index dc15334a8537b1fc..f2d47962fe13fbdd 100644 +--- a/sysdeps/aarch64/fpu/log1pf_advsimd.c ++++ b/sysdeps/aarch64/fpu/log1pf_advsimd.c +@@ -18,113 +18,78 @@ + . */ + + #include "v_math.h" +-#include "poly_advsimd_f32.h" ++#include "v_log1pf_inline.h" ++ ++#if WANT_SIMD_EXCEPT + + const static struct data + { +- float32x4_t poly[8], ln2; +- uint32x4_t tiny_bound, minus_one, four, thresh; +- int32x4_t three_quarters; ++ uint32x4_t minus_one, thresh; ++ struct v_log1pf_data d; + } data = { +- .poly = { /* Generated using FPMinimax in [-0.25, 0.5]. First two coefficients +- (1, -0.5) are not stored as they can be generated more +- efficiently. */ +- V4 (0x1.5555aap-2f), V4 (-0x1.000038p-2f), V4 (0x1.99675cp-3f), +- V4 (-0x1.54ef78p-3f), V4 (0x1.28a1f4p-3f), V4 (-0x1.0da91p-3f), +- V4 (0x1.abcb6p-4f), V4 (-0x1.6f0d5ep-5f) }, +- .ln2 = V4 (0x1.62e43p-1f), +- .tiny_bound = V4 (0x34000000), /* asuint32(0x1p-23). ulp=0.5 at 0x1p-23. */ +- .thresh = V4 (0x4b800000), /* asuint32(INFINITY) - tiny_bound. */ ++ .d = V_LOG1PF_CONSTANTS_TABLE, ++ .thresh = V4 (0x4b800000), /* asuint32(INFINITY) - TinyBound. */ + .minus_one = V4 (0xbf800000), +- .four = V4 (0x40800000), +- .three_quarters = V4 (0x3f400000) + }; + +-static inline float32x4_t +-eval_poly (float32x4_t m, const float32x4_t *p) +-{ +- /* Approximate log(1+m) on [-0.25, 0.5] using split Estrin scheme. */ +- float32x4_t p_12 = vfmaq_f32 (v_f32 (-0.5), m, p[0]); +- float32x4_t p_34 = vfmaq_f32 (p[1], m, p[2]); +- float32x4_t p_56 = vfmaq_f32 (p[3], m, p[4]); +- float32x4_t p_78 = vfmaq_f32 (p[5], m, p[6]); +- +- float32x4_t m2 = vmulq_f32 (m, m); +- float32x4_t p_02 = vfmaq_f32 (m, m2, p_12); +- float32x4_t p_36 = vfmaq_f32 (p_34, m2, p_56); +- float32x4_t p_79 = vfmaq_f32 (p_78, m2, p[7]); +- +- float32x4_t m4 = vmulq_f32 (m2, m2); +- float32x4_t p_06 = vfmaq_f32 (p_02, m4, p_36); +- return vfmaq_f32 (p_06, m4, vmulq_f32 (m4, p_79)); +-} ++/* asuint32(0x1p-23). ulp=0.5 at 0x1p-23. */ ++# define TinyBound v_u32 (0x34000000) + + static float32x4_t NOINLINE VPCS_ATTR +-special_case (float32x4_t x, float32x4_t y, uint32x4_t special) ++special_case (float32x4_t x, uint32x4_t cmp, const struct data *d) + { +- return v_call_f32 (log1pf, x, y, special); ++ /* Side-step special lanes so fenv exceptions are not triggered ++ inadvertently. */ ++ float32x4_t x_nospecial = v_zerofy_f32 (x, cmp); ++ return v_call_f32 (log1pf, x, log1pf_inline (x_nospecial, &d->d), cmp); + } + +-/* Vector log1pf approximation using polynomial on reduced interval. Accuracy +- is roughly 2.02 ULP: +- log1pf(0x1.21e13ap-2) got 0x1.fe8028p-3 want 0x1.fe802cp-3. */ ++/* Vector log1pf approximation using polynomial on reduced interval. Worst-case ++ error is 1.69 ULP: ++ _ZGVnN4v_log1pf(0x1.04418ap-2) got 0x1.cfcbd8p-3 ++ want 0x1.cfcbdcp-3. */ + VPCS_ATTR float32x4_t V_NAME_F1 (log1p) (float32x4_t x) + { + const struct data *d = ptr_barrier (&data); +- + uint32x4_t ix = vreinterpretq_u32_f32 (x); + uint32x4_t ia = vreinterpretq_u32_f32 (vabsq_f32 (x)); ++ + uint32x4_t special_cases +- = vorrq_u32 (vcgeq_u32 (vsubq_u32 (ia, d->tiny_bound), d->thresh), ++ = vorrq_u32 (vcgeq_u32 (vsubq_u32 (ia, TinyBound), d->thresh), + vcgeq_u32 (ix, d->minus_one)); +- float32x4_t special_arg = x; + +-#if WANT_SIMD_EXCEPT + if (__glibc_unlikely (v_any_u32 (special_cases))) +- /* Side-step special lanes so fenv exceptions are not triggered +- inadvertently. */ +- x = v_zerofy_f32 (x, special_cases); +-#endif ++ return special_case (x, special_cases, d); + +- /* With x + 1 = t * 2^k (where t = m + 1 and k is chosen such that m +- is in [-0.25, 0.5]): +- log1p(x) = log(t) + log(2^k) = log1p(m) + k*log(2). +- +- We approximate log1p(m) with a polynomial, then scale by +- k*log(2). Instead of doing this directly, we use an intermediate +- scale factor s = 4*k*log(2) to ensure the scale is representable +- as a normalised fp32 number. */ ++ return log1pf_inline (x, &d->d); ++} + +- float32x4_t m = vaddq_f32 (x, v_f32 (1.0f)); ++#else + +- /* Choose k to scale x to the range [-1/4, 1/2]. */ +- int32x4_t k +- = vandq_s32 (vsubq_s32 (vreinterpretq_s32_f32 (m), d->three_quarters), +- v_s32 (0xff800000)); +- uint32x4_t ku = vreinterpretq_u32_s32 (k); ++const static struct v_log1pf_data data = V_LOG1PF_CONSTANTS_TABLE; + +- /* Scale x by exponent manipulation. */ +- float32x4_t m_scale +- = vreinterpretq_f32_u32 (vsubq_u32 (vreinterpretq_u32_f32 (x), ku)); ++static float32x4_t NOINLINE VPCS_ATTR ++special_case (float32x4_t x, uint32x4_t cmp) ++{ ++ return v_call_f32 (log1pf, x, log1pf_inline (x, ptr_barrier (&data)), cmp); ++} + +- /* Scale up to ensure that the scale factor is representable as normalised +- fp32 number, and scale m down accordingly. */ +- float32x4_t s = vreinterpretq_f32_u32 (vsubq_u32 (d->four, ku)); +- m_scale = vaddq_f32 (m_scale, vfmaq_f32 (v_f32 (-1.0f), v_f32 (0.25f), s)); ++/* Vector log1pf approximation using polynomial on reduced interval. Worst-case ++ error is 1.63 ULP: ++ _ZGVnN4v_log1pf(0x1.216d12p-2) got 0x1.fdcb12p-3 ++ want 0x1.fdcb16p-3. */ ++VPCS_ATTR float32x4_t V_NAME_F1 (log1p) (float32x4_t x) ++{ ++ uint32x4_t special_cases = vornq_u32 (vcleq_f32 (x, v_f32 (-1)), ++ vcaleq_f32 (x, v_f32 (0x1p127f))); + +- /* Evaluate polynomial on the reduced interval. */ +- float32x4_t p = eval_poly (m_scale, d->poly); ++ if (__glibc_unlikely (v_any_u32 (special_cases))) ++ return special_case (x, special_cases); + +- /* The scale factor to be applied back at the end - by multiplying float(k) +- by 2^-23 we get the unbiased exponent of k. */ +- float32x4_t scale_back = vcvtq_f32_s32 (vshrq_n_s32 (k, 23)); ++ return log1pf_inline (x, ptr_barrier (&data)); ++} + +- /* Apply the scaling back. */ +- float32x4_t y = vfmaq_f32 (p, scale_back, d->ln2); ++#endif + +- if (__glibc_unlikely (v_any_u32 (special_cases))) +- return special_case (special_arg, y, special_cases); +- return y; +-} + libmvec_hidden_def (V_NAME_F1 (log1p)) + HALF_WIDTH_ALIAS_F1 (log1p) +diff --git a/sysdeps/aarch64/fpu/v_log1pf_inline.h b/sysdeps/aarch64/fpu/v_log1pf_inline.h +index 643a6cdcfc498970..73e45a942e24a26f 100644 +--- a/sysdeps/aarch64/fpu/v_log1pf_inline.h ++++ b/sysdeps/aarch64/fpu/v_log1pf_inline.h +@@ -25,54 +25,81 @@ + + struct v_log1pf_data + { +- float32x4_t poly[8], ln2; + uint32x4_t four; + int32x4_t three_quarters; ++ float c0, c3, c5, c7; ++ float32x4_t c4, c6, c1, c2, ln2; + }; + + /* Polynomial generated using FPMinimax in [-0.25, 0.5]. First two coefficients + (1, -0.5) are not stored as they can be generated more efficiently. */ + #define V_LOG1PF_CONSTANTS_TABLE \ + { \ +- .poly \ +- = { V4 (0x1.5555aap-2f), V4 (-0x1.000038p-2f), V4 (0x1.99675cp-3f), \ +- V4 (-0x1.54ef78p-3f), V4 (0x1.28a1f4p-3f), V4 (-0x1.0da91p-3f), \ +- V4 (0x1.abcb6p-4f), V4 (-0x1.6f0d5ep-5f) }, \ +- .ln2 = V4 (0x1.62e43p-1f), .four = V4 (0x40800000), \ +- .three_quarters = V4 (0x3f400000) \ ++ .c0 = 0x1.5555aap-2f, .c1 = V4 (-0x1.000038p-2f), \ ++ .c2 = V4 (0x1.99675cp-3f), .c3 = -0x1.54ef78p-3f, \ ++ .c4 = V4 (0x1.28a1f4p-3f), .c5 = -0x1.0da91p-3f, \ ++ .c6 = V4 (0x1.abcb6p-4f), .c7 = -0x1.6f0d5ep-5f, \ ++ .ln2 = V4 (0x1.62e43p-1f), .four = V4 (0x40800000), \ ++ .three_quarters = V4 (0x3f400000) \ + } + + static inline float32x4_t +-eval_poly (float32x4_t m, const float32x4_t *c) ++eval_poly (float32x4_t m, const struct v_log1pf_data *d) + { +- /* Approximate log(1+m) on [-0.25, 0.5] using pairwise Horner (main routine +- uses split Estrin, but this way reduces register pressure in the calling +- routine). */ +- float32x4_t q = vfmaq_f32 (v_f32 (-0.5), m, c[0]); ++ /* Approximate log(1+m) on [-0.25, 0.5] using pairwise Horner. */ ++ float32x4_t c0357 = vld1q_f32 (&d->c0); ++ float32x4_t q = vfmaq_laneq_f32 (v_f32 (-0.5), m, c0357, 0); + float32x4_t m2 = vmulq_f32 (m, m); +- q = vfmaq_f32 (m, m2, q); +- float32x4_t p = v_pw_horner_6_f32 (m, m2, c + 1); ++ float32x4_t p67 = vfmaq_laneq_f32 (d->c6, m, c0357, 3); ++ float32x4_t p45 = vfmaq_laneq_f32 (d->c4, m, c0357, 2); ++ float32x4_t p23 = vfmaq_laneq_f32 (d->c2, m, c0357, 1); ++ float32x4_t p = vfmaq_f32 (p45, m2, p67); ++ p = vfmaq_f32 (p23, m2, p); ++ p = vfmaq_f32 (d->c1, m, p); + p = vmulq_f32 (m2, p); +- return vfmaq_f32 (q, m2, p); ++ p = vfmaq_f32 (m, m2, p); ++ return vfmaq_f32 (p, m2, q); + } + + static inline float32x4_t +-log1pf_inline (float32x4_t x, const struct v_log1pf_data d) ++log1pf_inline (float32x4_t x, const struct v_log1pf_data *d) + { +- /* Helper for calculating log(x + 1). Copied from log1pf_2u1.c, with no +- special-case handling. See that file for details of the algorithm. */ ++ /* Helper for calculating log(x + 1). */ ++ ++ /* With x + 1 = t * 2^k (where t = m + 1 and k is chosen such that m ++ is in [-0.25, 0.5]): ++ log1p(x) = log(t) + log(2^k) = log1p(m) + k*log(2). ++ ++ We approximate log1p(m) with a polynomial, then scale by ++ k*log(2). Instead of doing this directly, we use an intermediate ++ scale factor s = 4*k*log(2) to ensure the scale is representable ++ as a normalised fp32 number. */ + float32x4_t m = vaddq_f32 (x, v_f32 (1.0f)); ++ ++ /* Choose k to scale x to the range [-1/4, 1/2]. */ + int32x4_t k +- = vandq_s32 (vsubq_s32 (vreinterpretq_s32_f32 (m), d.three_quarters), ++ = vandq_s32 (vsubq_s32 (vreinterpretq_s32_f32 (m), d->three_quarters), + v_s32 (0xff800000)); + uint32x4_t ku = vreinterpretq_u32_s32 (k); +- float32x4_t s = vreinterpretq_f32_u32 (vsubq_u32 (d.four, ku)); ++ ++ /* Scale up to ensure that the scale factor is representable as normalised ++ fp32 number, and scale m down accordingly. */ ++ float32x4_t s = vreinterpretq_f32_u32 (vsubq_u32 (d->four, ku)); ++ ++ /* Scale x by exponent manipulation. */ + float32x4_t m_scale + = vreinterpretq_f32_u32 (vsubq_u32 (vreinterpretq_u32_f32 (x), ku)); + m_scale = vaddq_f32 (m_scale, vfmaq_f32 (v_f32 (-1.0f), v_f32 (0.25f), s)); +- float32x4_t p = eval_poly (m_scale, d.poly); ++ ++ /* Evaluate polynomial on the reduced interval. */ ++ float32x4_t p = eval_poly (m_scale, d); ++ ++ /* The scale factor to be applied back at the end - by multiplying float(k) ++ by 2^-23 we get the unbiased exponent of k. */ + float32x4_t scale_back = vmulq_f32 (vcvtq_f32_s32 (k), v_f32 (0x1.0p-23f)); +- return vfmaq_f32 (p, scale_back, d.ln2); ++ ++ /* Apply the scaling back. */ ++ return vfmaq_f32 (p, scale_back, d->ln2); + } + + #endif diff --git a/glibc-RHEL-118273-15.patch b/glibc-RHEL-118273-15.patch new file mode 100644 index 0000000..5f503d7 --- /dev/null +++ b/glibc-RHEL-118273-15.patch @@ -0,0 +1,261 @@ +commit a15b1394b5eba98ffe28a02a392b587e4fe13c0d +Author: Joe Ramsay +Date: Mon Sep 23 15:30:20 2024 +0100 + + AArch64: Improve codegen in SVE F32 logs + + Reduce MOVPRFXs by using unpredicated (non-destructive) instructions + where possible. Similar to the recent change to AdvSIMD F32 logs, + adjust special-case arguments and bounds to allow for more optimal + register usage. For all 3 routines one MOVPRFX remains in the + reduction, which cannot be avoided as immediate AND and ASR are both + destructive. + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/fpu/log10f_sve.c b/sysdeps/aarch64/fpu/log10f_sve.c +index bdbb49cd32feccb4..7913679f6795502a 100644 +--- a/sysdeps/aarch64/fpu/log10f_sve.c ++++ b/sysdeps/aarch64/fpu/log10f_sve.c +@@ -24,6 +24,7 @@ static const struct data + float poly_0246[4]; + float poly_1357[4]; + float ln2, inv_ln10; ++ uint32_t off, lower; + } data = { + .poly_1357 = { + /* Coefficients copied from the AdvSIMD routine, then rearranged so that coeffs +@@ -35,18 +36,23 @@ static const struct data + -0x1.0fc92cp-4f }, + .ln2 = 0x1.62e43p-1f, + .inv_ln10 = 0x1.bcb7b2p-2f, ++ .off = 0x3f2aaaab, ++ /* Lower bound is the smallest positive normal float 0x00800000. For ++ optimised register use subnormals are detected after offset has been ++ subtracted, so lower bound is 0x0080000 - offset (which wraps around). */ ++ .lower = 0x00800000 - 0x3f2aaaab + }; + +-#define Min 0x00800000 +-#define Max 0x7f800000 +-#define Thres 0x7f000000 /* Max - Min. */ +-#define Offset 0x3f2aaaab /* 0.666667. */ ++#define Thres 0x7f000000 /* asuint32(inf) - 0x00800000. */ + #define MantissaMask 0x007fffff + + static svfloat32_t NOINLINE +-special_case (svfloat32_t x, svfloat32_t y, svbool_t special) ++special_case (svuint32_t u_off, svfloat32_t p, svfloat32_t r2, svfloat32_t y, ++ svbool_t cmp) + { +- return sv_call_f32 (log10f, x, y, special); ++ return sv_call_f32 ( ++ log10f, svreinterpret_f32 (svadd_x (svptrue_b32 (), u_off, data.off)), ++ svmla_x (svptrue_b32 (), p, r2, y), cmp); + } + + /* Optimised implementation of SVE log10f using the same algorithm and +@@ -57,23 +63,25 @@ special_case (svfloat32_t x, svfloat32_t y, svbool_t special) + svfloat32_t SV_NAME_F1 (log10) (svfloat32_t x, const svbool_t pg) + { + const struct data *d = ptr_barrier (&data); +- svuint32_t ix = svreinterpret_u32 (x); +- svbool_t special = svcmpge (pg, svsub_x (pg, ix, Min), Thres); ++ ++ svuint32_t u_off = svreinterpret_u32 (x); ++ ++ u_off = svsub_x (pg, u_off, d->off); ++ svbool_t special = svcmpge (pg, svsub_x (pg, u_off, d->lower), Thres); + + /* x = 2^n * (1+r), where 2/3 < 1+r < 4/3. */ +- ix = svsub_x (pg, ix, Offset); + svfloat32_t n = svcvt_f32_x ( +- pg, svasr_x (pg, svreinterpret_s32 (ix), 23)); /* signextend. */ +- ix = svand_x (pg, ix, MantissaMask); +- ix = svadd_x (pg, ix, Offset); ++ pg, svasr_x (pg, svreinterpret_s32 (u_off), 23)); /* signextend. */ ++ svuint32_t ix = svand_x (pg, u_off, MantissaMask); ++ ix = svadd_x (pg, ix, d->off); + svfloat32_t r = svsub_x (pg, svreinterpret_f32 (ix), 1.0f); + + /* y = log10(1+r) + n*log10(2) + log10(1+r) ~ r * InvLn(10) + P(r) + where P(r) is a polynomial. Use order 9 for log10(1+x), i.e. order 8 for + log10(1+x)/x, with x in [-1/3, 1/3] (offset=2/3). */ +- svfloat32_t r2 = svmul_x (pg, r, r); +- svfloat32_t r4 = svmul_x (pg, r2, r2); ++ svfloat32_t r2 = svmul_x (svptrue_b32 (), r, r); ++ svfloat32_t r4 = svmul_x (svptrue_b32 (), r2, r2); + svfloat32_t p_1357 = svld1rq (svptrue_b32 (), &d->poly_1357[0]); + svfloat32_t q_01 = svmla_lane (sv_f32 (d->poly_0246[0]), r, p_1357, 0); + svfloat32_t q_23 = svmla_lane (sv_f32 (d->poly_0246[1]), r, p_1357, 1); +@@ -88,7 +96,6 @@ svfloat32_t SV_NAME_F1 (log10) (svfloat32_t x, const svbool_t pg) + hi = svmul_x (pg, hi, d->inv_ln10); + + if (__glibc_unlikely (svptest_any (pg, special))) +- return special_case (x, svmla_x (svnot_z (pg, special), hi, r2, y), +- special); +- return svmla_x (pg, hi, r2, y); ++ return special_case (u_off, hi, r2, y, special); ++ return svmla_x (svptrue_b32 (), hi, r2, y); + } +diff --git a/sysdeps/aarch64/fpu/log2f_sve.c b/sysdeps/aarch64/fpu/log2f_sve.c +index 5031c4248359295e..939d89bfb9a95a11 100644 +--- a/sysdeps/aarch64/fpu/log2f_sve.c ++++ b/sysdeps/aarch64/fpu/log2f_sve.c +@@ -23,6 +23,7 @@ static const struct data + { + float poly_02468[5]; + float poly_1357[4]; ++ uint32_t off, lower; + } data = { + .poly_1357 = { + /* Coefficients copied from the AdvSIMD routine, then rearranged so that coeffs +@@ -32,18 +33,23 @@ static const struct data + }, + .poly_02468 = { 0x1.715476p0f, 0x1.ec701cp-2f, 0x1.27a0b8p-2f, + 0x1.9d8ecap-3f, 0x1.9e495p-3f }, ++ .off = 0x3f2aaaab, ++ /* Lower bound is the smallest positive normal float 0x00800000. For ++ optimised register use subnormals are detected after offset has been ++ subtracted, so lower bound is 0x0080000 - offset (which wraps around). */ ++ .lower = 0x00800000 - 0x3f2aaaab + }; + +-#define Min (0x00800000) +-#define Max (0x7f800000) +-#define Thres (0x7f000000) /* Max - Min. */ ++#define Thresh (0x7f000000) /* asuint32(inf) - 0x00800000. */ + #define MantissaMask (0x007fffff) +-#define Off (0x3f2aaaab) /* 0.666667. */ + + static svfloat32_t NOINLINE +-special_case (svfloat32_t x, svfloat32_t y, svbool_t cmp) ++special_case (svuint32_t u_off, svfloat32_t p, svfloat32_t r2, svfloat32_t y, ++ svbool_t cmp) + { +- return sv_call_f32 (log2f, x, y, cmp); ++ return sv_call_f32 ( ++ log2f, svreinterpret_f32 (svadd_x (svptrue_b32 (), u_off, data.off)), ++ svmla_x (svptrue_b32 (), p, r2, y), cmp); + } + + /* Optimised implementation of SVE log2f, using the same algorithm +@@ -55,19 +61,20 @@ svfloat32_t SV_NAME_F1 (log2) (svfloat32_t x, const svbool_t pg) + { + const struct data *d = ptr_barrier (&data); + +- svuint32_t u = svreinterpret_u32 (x); +- svbool_t special = svcmpge (pg, svsub_x (pg, u, Min), Thres); ++ svuint32_t u_off = svreinterpret_u32 (x); ++ ++ u_off = svsub_x (pg, u_off, d->off); ++ svbool_t special = svcmpge (pg, svsub_x (pg, u_off, d->lower), Thresh); + + /* x = 2^n * (1+r), where 2/3 < 1+r < 4/3. */ +- u = svsub_x (pg, u, Off); + svfloat32_t n = svcvt_f32_x ( +- pg, svasr_x (pg, svreinterpret_s32 (u), 23)); /* Sign-extend. */ +- u = svand_x (pg, u, MantissaMask); +- u = svadd_x (pg, u, Off); ++ pg, svasr_x (pg, svreinterpret_s32 (u_off), 23)); /* Sign-extend. */ ++ svuint32_t u = svand_x (pg, u_off, MantissaMask); ++ u = svadd_x (pg, u, d->off); + svfloat32_t r = svsub_x (pg, svreinterpret_f32 (u), 1.0f); + + /* y = log2(1+r) + n. */ +- svfloat32_t r2 = svmul_x (pg, r, r); ++ svfloat32_t r2 = svmul_x (svptrue_b32 (), r, r); + + /* Evaluate polynomial using pairwise Horner scheme. */ + svfloat32_t p_1357 = svld1rq (svptrue_b32 (), &d->poly_1357[0]); +@@ -81,6 +88,6 @@ svfloat32_t SV_NAME_F1 (log2) (svfloat32_t x, const svbool_t pg) + y = svmla_x (pg, q_01, r2, y); + + if (__glibc_unlikely (svptest_any (pg, special))) +- return special_case (x, svmla_x (svnot_z (pg, special), n, r, y), special); +- return svmla_x (pg, n, r, y); ++ return special_case (u_off, n, r, y, special); ++ return svmla_x (svptrue_b32 (), n, r, y); + } +diff --git a/sysdeps/aarch64/fpu/logf_sve.c b/sysdeps/aarch64/fpu/logf_sve.c +index d64e810cfec9aa19..5b9324678d99455b 100644 +--- a/sysdeps/aarch64/fpu/logf_sve.c ++++ b/sysdeps/aarch64/fpu/logf_sve.c +@@ -24,6 +24,7 @@ static const struct data + float poly_0135[4]; + float poly_246[3]; + float ln2; ++ uint32_t off, lower; + } data = { + .poly_0135 = { + /* Coefficients copied from the AdvSIMD routine in math/, then rearranged so +@@ -32,19 +33,24 @@ static const struct data + -0x1.3e737cp-3f, 0x1.5a9aa2p-3f, 0x1.961348p-3f, 0x1.555d7cp-2f + }, + .poly_246 = { -0x1.4f9934p-3f, -0x1.00187cp-2f, -0x1.ffffc8p-2f }, +- .ln2 = 0x1.62e43p-1f ++ .ln2 = 0x1.62e43p-1f, ++ .off = 0x3f2aaaab, ++ /* Lower bound is the smallest positive normal float 0x00800000. For ++ optimised register use subnormals are detected after offset has been ++ subtracted, so lower bound is 0x0080000 - offset (which wraps around). */ ++ .lower = 0x00800000 - 0x3f2aaaab + }; + +-#define Min (0x00800000) +-#define Max (0x7f800000) +-#define Thresh (0x7f000000) /* Max - Min. */ ++#define Thresh (0x7f000000) /* asuint32(inf) - 0x00800000. */ + #define Mask (0x007fffff) +-#define Off (0x3f2aaaab) /* 0.666667. */ + + static svfloat32_t NOINLINE +-special_case (svfloat32_t x, svfloat32_t y, svbool_t cmp) ++special_case (svuint32_t u_off, svfloat32_t p, svfloat32_t r2, svfloat32_t y, ++ svbool_t cmp) + { +- return sv_call_f32 (logf, x, y, cmp); ++ return sv_call_f32 ( ++ logf, svreinterpret_f32 (svadd_x (svptrue_b32 (), u_off, data.off)), ++ svmla_x (svptrue_b32 (), p, r2, y), cmp); + } + + /* Optimised implementation of SVE logf, using the same algorithm and +@@ -55,19 +61,21 @@ svfloat32_t SV_NAME_F1 (log) (svfloat32_t x, const svbool_t pg) + { + const struct data *d = ptr_barrier (&data); + +- svuint32_t u = svreinterpret_u32 (x); +- svbool_t cmp = svcmpge (pg, svsub_x (pg, u, Min), Thresh); ++ svuint32_t u_off = svreinterpret_u32 (x); ++ ++ u_off = svsub_x (pg, u_off, d->off); ++ svbool_t cmp = svcmpge (pg, svsub_x (pg, u_off, d->lower), Thresh); + + /* x = 2^n * (1+r), where 2/3 < 1+r < 4/3. */ +- u = svsub_x (pg, u, Off); + svfloat32_t n = svcvt_f32_x ( +- pg, svasr_x (pg, svreinterpret_s32 (u), 23)); /* Sign-extend. */ +- u = svand_x (pg, u, Mask); +- u = svadd_x (pg, u, Off); ++ pg, svasr_x (pg, svreinterpret_s32 (u_off), 23)); /* Sign-extend. */ ++ ++ svuint32_t u = svand_x (pg, u_off, Mask); ++ u = svadd_x (pg, u, d->off); + svfloat32_t r = svsub_x (pg, svreinterpret_f32 (u), 1.0f); + + /* y = log(1+r) + n*ln2. */ +- svfloat32_t r2 = svmul_x (pg, r, r); ++ svfloat32_t r2 = svmul_x (svptrue_b32 (), r, r); + /* n*ln2 + r + r2*(P6 + r*P5 + r2*(P4 + r*P3 + r2*(P2 + r*P1 + r2*P0))). */ + svfloat32_t p_0135 = svld1rq (svptrue_b32 (), &d->poly_0135[0]); + svfloat32_t p = svmla_lane (sv_f32 (d->poly_246[0]), r, p_0135, 1); +@@ -80,6 +88,6 @@ svfloat32_t SV_NAME_F1 (log) (svfloat32_t x, const svbool_t pg) + p = svmla_x (pg, r, n, d->ln2); + + if (__glibc_unlikely (svptest_any (pg, cmp))) +- return special_case (x, svmla_x (svnot_z (pg, cmp), p, r2, y), cmp); ++ return special_case (u_off, p, r2, y, cmp); + return svmla_x (pg, p, r2, y); + } diff --git a/glibc-RHEL-118273-16.patch b/glibc-RHEL-118273-16.patch new file mode 100644 index 0000000..32c1c98 --- /dev/null +++ b/glibc-RHEL-118273-16.patch @@ -0,0 +1,467 @@ +commit 7b8c134b5460ed933d610fa92ed1227372b68fdc +Author: Joe Ramsay +Date: Mon Sep 23 15:26:12 2024 +0100 + + AArch64: Improve codegen in SVE expf & related routines + + Reduce MOV and MOVPRFX by improving special-case handling. Use inline + helper to duplicate the entire computation between the special- and + non-special case branches, removing the contention for z0 between x + and the return value. + + Also rearrange some MLAs and MLSs - by making the multiplicand the + destination we can avoid a MOVPRFX in several cases. Also change which + constants go in the vector used for lanewise ops - the last lane is no + longer wasted. + + Spotted that shift was incorrect in exp2f and exp10f, w.r.t. to the + comment that explains it. Fixed - worst-case ULP for exp2f moves + around but it doesn't change significantly for either routine. + + Worst-case error for coshf increases due to passing x to exp rather + than abs(x) - updated the comment, but does not require regen-ulps. + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/fpu/coshf_sve.c b/sysdeps/aarch64/fpu/coshf_sve.c +index e5d8a299c6aa7ceb..7ad6efa0fc218278 100644 +--- a/sysdeps/aarch64/fpu/coshf_sve.c ++++ b/sysdeps/aarch64/fpu/coshf_sve.c +@@ -23,37 +23,42 @@ + static const struct data + { + struct sv_expf_data expf_consts; +- uint32_t special_bound; ++ float special_bound; + } data = { + .expf_consts = SV_EXPF_DATA, + /* 0x1.5a92d8p+6: expf overflows above this, so have to use special case. */ +- .special_bound = 0x42ad496c, ++ .special_bound = 0x1.5a92d8p+6, + }; + + static svfloat32_t NOINLINE +-special_case (svfloat32_t x, svfloat32_t y, svbool_t pg) ++special_case (svfloat32_t x, svfloat32_t half_e, svfloat32_t half_over_e, ++ svbool_t pg) + { +- return sv_call_f32 (coshf, x, y, pg); ++ return sv_call_f32 (coshf, x, svadd_x (svptrue_b32 (), half_e, half_over_e), ++ pg); + } + + /* Single-precision vector cosh, using vector expf. +- Maximum error is 1.89 ULP: +- _ZGVsMxv_coshf (-0x1.65898cp+6) got 0x1.f00aep+127 +- want 0x1.f00adcp+127. */ ++ Maximum error is 2.77 ULP: ++ _ZGVsMxv_coshf(-0x1.5b38f4p+1) got 0x1.e45946p+2 ++ want 0x1.e4594cp+2. */ + svfloat32_t SV_NAME_F1 (cosh) (svfloat32_t x, svbool_t pg) + { + const struct data *d = ptr_barrier (&data); + +- svfloat32_t ax = svabs_x (pg, x); +- svbool_t special = svcmpge (pg, svreinterpret_u32 (ax), d->special_bound); ++ svbool_t special = svacge (pg, x, d->special_bound); + +- /* Calculate cosh by exp(x) / 2 + exp(-x) / 2. */ +- svfloat32_t t = expf_inline (ax, pg, &d->expf_consts); +- svfloat32_t half_t = svmul_x (pg, t, 0.5); +- svfloat32_t half_over_t = svdivr_x (pg, t, 0.5); ++ /* Calculate cosh by exp(x) / 2 + exp(-x) / 2. ++ Note that x is passed to exp here, rather than |x|. This is to avoid using ++ destructive unary ABS for better register usage. However it means the ++ routine is not exactly symmetrical, as the exp helper is slightly less ++ accurate in the negative range. */ ++ svfloat32_t e = expf_inline (x, pg, &d->expf_consts); ++ svfloat32_t half_e = svmul_x (svptrue_b32 (), e, 0.5); ++ svfloat32_t half_over_e = svdivr_x (pg, e, 0.5); + + if (__glibc_unlikely (svptest_any (pg, special))) +- return special_case (x, svadd_x (pg, half_t, half_over_t), special); ++ return special_case (x, half_e, half_over_e, special); + +- return svadd_x (pg, half_t, half_over_t); ++ return svadd_x (svptrue_b32 (), half_e, half_over_e); + } +diff --git a/sysdeps/aarch64/fpu/exp10f_sve.c b/sysdeps/aarch64/fpu/exp10f_sve.c +index e09b2f3b2705515a..8aa3fa9c4335cfb8 100644 +--- a/sysdeps/aarch64/fpu/exp10f_sve.c ++++ b/sysdeps/aarch64/fpu/exp10f_sve.c +@@ -18,74 +18,83 @@ + . */ + + #include "sv_math.h" +-#include "poly_sve_f32.h" + +-/* For x < -SpecialBound, the result is subnormal and not handled correctly by ++/* For x < -Thres, the result is subnormal and not handled correctly by + FEXPA. */ +-#define SpecialBound 37.9 ++#define Thres 37.9 + + static const struct data + { +- float poly[5]; +- float shift, log10_2, log2_10_hi, log2_10_lo, special_bound; ++ float log2_10_lo, c0, c2, c4; ++ float c1, c3, log10_2; ++ float shift, log2_10_hi, thres; + } data = { + /* Coefficients generated using Remez algorithm with minimisation of relative + error. + rel error: 0x1.89dafa3p-24 + abs error: 0x1.167d55p-23 in [-log10(2)/2, log10(2)/2] + maxerr: 0.52 +0.5 ulp. */ +- .poly = { 0x1.26bb16p+1f, 0x1.5350d2p+1f, 0x1.04744ap+1f, 0x1.2d8176p+0f, +- 0x1.12b41ap-1f }, ++ .c0 = 0x1.26bb16p+1f, ++ .c1 = 0x1.5350d2p+1f, ++ .c2 = 0x1.04744ap+1f, ++ .c3 = 0x1.2d8176p+0f, ++ .c4 = 0x1.12b41ap-1f, + /* 1.5*2^17 + 127, a shift value suitable for FEXPA. */ +- .shift = 0x1.903f8p17f, ++ .shift = 0x1.803f8p17f, + .log10_2 = 0x1.a934fp+1, + .log2_10_hi = 0x1.344136p-2, + .log2_10_lo = -0x1.ec10cp-27, +- .special_bound = SpecialBound, ++ .thres = Thres, + }; + +-static svfloat32_t NOINLINE +-special_case (svfloat32_t x, svfloat32_t y, svbool_t special) ++static inline svfloat32_t ++sv_exp10f_inline (svfloat32_t x, const svbool_t pg, const struct data *d) + { +- return sv_call_f32 (exp10f, x, y, special); +-} +- +-/* Single-precision SVE exp10f routine. Implements the same algorithm +- as AdvSIMD exp10f. +- Worst case error is 1.02 ULPs. +- _ZGVsMxv_exp10f(-0x1.040488p-4) got 0x1.ba5f9ep-1 +- want 0x1.ba5f9cp-1. */ +-svfloat32_t SV_NAME_F1 (exp10) (svfloat32_t x, const svbool_t pg) +-{ +- const struct data *d = ptr_barrier (&data); + /* exp10(x) = 2^(n/N) * 10^r = 2^n * (1 + poly (r)), + with poly(r) in [1/sqrt(2), sqrt(2)] and + x = r + n * log10(2) / N, with r in [-log10(2)/2N, log10(2)/2N]. */ + +- /* Load some constants in quad-word chunks to minimise memory access (last +- lane is wasted). */ +- svfloat32_t log10_2_and_inv = svld1rq (svptrue_b32 (), &d->log10_2); ++ svfloat32_t lane_consts = svld1rq (svptrue_b32 (), &d->log2_10_lo); + + /* n = round(x/(log10(2)/N)). */ + svfloat32_t shift = sv_f32 (d->shift); +- svfloat32_t z = svmla_lane (shift, x, log10_2_and_inv, 0); +- svfloat32_t n = svsub_x (pg, z, shift); ++ svfloat32_t z = svmad_x (pg, sv_f32 (d->log10_2), x, shift); ++ svfloat32_t n = svsub_x (svptrue_b32 (), z, shift); + + /* r = x - n*log10(2)/N. */ +- svfloat32_t r = svmls_lane (x, n, log10_2_and_inv, 1); +- r = svmls_lane (r, n, log10_2_and_inv, 2); ++ svfloat32_t r = svmsb_x (pg, sv_f32 (d->log2_10_hi), n, x); ++ r = svmls_lane (r, n, lane_consts, 0); + +- svbool_t special = svacgt (pg, x, d->special_bound); + svfloat32_t scale = svexpa (svreinterpret_u32 (z)); + + /* Polynomial evaluation: poly(r) ~ exp10(r)-1. */ +- svfloat32_t r2 = svmul_x (pg, r, r); +- svfloat32_t poly +- = svmla_x (pg, svmul_x (pg, r, d->poly[0]), +- sv_pairwise_poly_3_f32_x (pg, r, r2, d->poly + 1), r2); +- +- if (__glibc_unlikely (svptest_any (pg, special))) +- return special_case (x, svmla_x (pg, scale, scale, poly), special); ++ svfloat32_t p12 = svmla_lane (sv_f32 (d->c1), r, lane_consts, 2); ++ svfloat32_t p34 = svmla_lane (sv_f32 (d->c3), r, lane_consts, 3); ++ svfloat32_t r2 = svmul_x (svptrue_b32 (), r, r); ++ svfloat32_t p14 = svmla_x (pg, p12, p34, r2); ++ svfloat32_t p0 = svmul_lane (r, lane_consts, 1); ++ svfloat32_t poly = svmla_x (pg, p0, r2, p14); + + return svmla_x (pg, scale, scale, poly); + } ++ ++static svfloat32_t NOINLINE ++special_case (svfloat32_t x, svbool_t special, const struct data *d) ++{ ++ return sv_call_f32 (exp10f, x, sv_exp10f_inline (x, svptrue_b32 (), d), ++ special); ++} ++ ++/* Single-precision SVE exp10f routine. Implements the same algorithm ++ as AdvSIMD exp10f. ++ Worst case error is 1.02 ULPs. ++ _ZGVsMxv_exp10f(-0x1.040488p-4) got 0x1.ba5f9ep-1 ++ want 0x1.ba5f9cp-1. */ ++svfloat32_t SV_NAME_F1 (exp10) (svfloat32_t x, const svbool_t pg) ++{ ++ const struct data *d = ptr_barrier (&data); ++ svbool_t special = svacgt (pg, x, d->thres); ++ if (__glibc_unlikely (svptest_any (special, special))) ++ return special_case (x, special, d); ++ return sv_exp10f_inline (x, pg, d); ++} +diff --git a/sysdeps/aarch64/fpu/exp2f_sve.c b/sysdeps/aarch64/fpu/exp2f_sve.c +index 8a686e3e054cb7f5..c6216bed9e9e7538 100644 +--- a/sysdeps/aarch64/fpu/exp2f_sve.c ++++ b/sysdeps/aarch64/fpu/exp2f_sve.c +@@ -24,54 +24,64 @@ + + static const struct data + { +- float poly[5]; ++ float c0, c2, c4, c1, c3; + float shift, thres; + } data = { +- /* Coefficients copied from the polynomial in AdvSIMD variant, reversed for +- compatibility with polynomial helpers. */ +- .poly = { 0x1.62e422p-1f, 0x1.ebf9bcp-3f, 0x1.c6bd32p-5f, 0x1.3ce9e4p-7f, +- 0x1.59977ap-10f }, ++ /* Coefficients copied from the polynomial in AdvSIMD variant. */ ++ .c0 = 0x1.62e422p-1f, ++ .c1 = 0x1.ebf9bcp-3f, ++ .c2 = 0x1.c6bd32p-5f, ++ .c3 = 0x1.3ce9e4p-7f, ++ .c4 = 0x1.59977ap-10f, + /* 1.5*2^17 + 127. */ +- .shift = 0x1.903f8p17f, ++ .shift = 0x1.803f8p17f, + /* Roughly 87.3. For x < -Thres, the result is subnormal and not handled + correctly by FEXPA. */ + .thres = Thres, + }; + +-static svfloat32_t NOINLINE +-special_case (svfloat32_t x, svfloat32_t y, svbool_t special) +-{ +- return sv_call_f32 (exp2f, x, y, special); +-} +- +-/* Single-precision SVE exp2f routine. Implements the same algorithm +- as AdvSIMD exp2f. +- Worst case error is 1.04 ULPs. +- SV_NAME_F1 (exp2)(0x1.943b9p-1) got 0x1.ba7eb2p+0 +- want 0x1.ba7ebp+0. */ +-svfloat32_t SV_NAME_F1 (exp2) (svfloat32_t x, const svbool_t pg) ++static inline svfloat32_t ++sv_exp2f_inline (svfloat32_t x, const svbool_t pg, const struct data *d) + { +- const struct data *d = ptr_barrier (&data); + /* exp2(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)] + x = n + r, with r in [-1/2, 1/2]. */ +- svfloat32_t shift = sv_f32 (d->shift); +- svfloat32_t z = svadd_x (pg, x, shift); +- svfloat32_t n = svsub_x (pg, z, shift); +- svfloat32_t r = svsub_x (pg, x, n); ++ svfloat32_t z = svadd_x (svptrue_b32 (), x, d->shift); ++ svfloat32_t n = svsub_x (svptrue_b32 (), z, d->shift); ++ svfloat32_t r = svsub_x (svptrue_b32 (), x, n); + +- svbool_t special = svacgt (pg, x, d->thres); + svfloat32_t scale = svexpa (svreinterpret_u32 (z)); + + /* Polynomial evaluation: poly(r) ~ exp2(r)-1. + Evaluate polynomial use hybrid scheme - offset ESTRIN by 1 for + coefficients 1 to 4, and apply most significant coefficient directly. */ +- svfloat32_t r2 = svmul_x (pg, r, r); +- svfloat32_t p14 = sv_pairwise_poly_3_f32_x (pg, r, r2, d->poly + 1); +- svfloat32_t p0 = svmul_x (pg, r, d->poly[0]); ++ svfloat32_t even_coeffs = svld1rq (svptrue_b32 (), &d->c0); ++ svfloat32_t r2 = svmul_x (svptrue_b32 (), r, r); ++ svfloat32_t p12 = svmla_lane (sv_f32 (d->c1), r, even_coeffs, 1); ++ svfloat32_t p34 = svmla_lane (sv_f32 (d->c3), r, even_coeffs, 2); ++ svfloat32_t p14 = svmla_x (pg, p12, r2, p34); ++ svfloat32_t p0 = svmul_lane (r, even_coeffs, 0); + svfloat32_t poly = svmla_x (pg, p0, r2, p14); + +- if (__glibc_unlikely (svptest_any (pg, special))) +- return special_case (x, svmla_x (pg, scale, scale, poly), special); +- + return svmla_x (pg, scale, scale, poly); + } ++ ++static svfloat32_t NOINLINE ++special_case (svfloat32_t x, svbool_t special, const struct data *d) ++{ ++ return sv_call_f32 (exp2f, x, sv_exp2f_inline (x, svptrue_b32 (), d), ++ special); ++} ++ ++/* Single-precision SVE exp2f routine. Implements the same algorithm ++ as AdvSIMD exp2f. ++ Worst case error is 1.04 ULPs. ++ _ZGVsMxv_exp2f(-0x1.af994ap-3) got 0x1.ba6a66p-1 ++ want 0x1.ba6a64p-1. */ ++svfloat32_t SV_NAME_F1 (exp2) (svfloat32_t x, const svbool_t pg) ++{ ++ const struct data *d = ptr_barrier (&data); ++ svbool_t special = svacgt (pg, x, d->thres); ++ if (__glibc_unlikely (svptest_any (special, special))) ++ return special_case (x, special, d); ++ return sv_exp2f_inline (x, pg, d); ++} +diff --git a/sysdeps/aarch64/fpu/expf_sve.c b/sysdeps/aarch64/fpu/expf_sve.c +index 3ba79bc4f11a05f9..da93e01b87e0e890 100644 +--- a/sysdeps/aarch64/fpu/expf_sve.c ++++ b/sysdeps/aarch64/fpu/expf_sve.c +@@ -18,33 +18,25 @@ + . */ + + #include "sv_math.h" ++#include "sv_expf_inline.h" ++ ++/* Roughly 87.3. For x < -Thres, the result is subnormal and not handled ++ correctly by FEXPA. */ ++#define Thres 0x1.5d5e2ap+6f + + static const struct data + { +- float poly[5]; +- float inv_ln2, ln2_hi, ln2_lo, shift, thres; ++ struct sv_expf_data d; ++ float thres; + } data = { +- /* Coefficients copied from the polynomial in AdvSIMD variant, reversed for +- compatibility with polynomial helpers. */ +- .poly = { 0x1.ffffecp-1f, 0x1.fffdb6p-2f, 0x1.555e66p-3f, 0x1.573e2ep-5f, +- 0x1.0e4020p-7f }, +- .inv_ln2 = 0x1.715476p+0f, +- .ln2_hi = 0x1.62e4p-1f, +- .ln2_lo = 0x1.7f7d1cp-20f, +- /* 1.5*2^17 + 127. */ +- .shift = 0x1.903f8p17f, +- /* Roughly 87.3. For x < -Thres, the result is subnormal and not handled +- correctly by FEXPA. */ +- .thres = 0x1.5d5e2ap+6f, ++ .d = SV_EXPF_DATA, ++ .thres = Thres, + }; + +-#define C(i) sv_f32 (d->poly[i]) +-#define ExponentBias 0x3f800000 +- + static svfloat32_t NOINLINE +-special_case (svfloat32_t x, svfloat32_t y, svbool_t special) ++special_case (svfloat32_t x, svbool_t special, const struct sv_expf_data *d) + { +- return sv_call_f32 (expf, x, y, special); ++ return sv_call_f32 (expf, x, expf_inline (x, svptrue_b32 (), d), special); + } + + /* Optimised single-precision SVE exp function. +@@ -54,36 +46,8 @@ special_case (svfloat32_t x, svfloat32_t y, svbool_t special) + svfloat32_t SV_NAME_F1 (exp) (svfloat32_t x, const svbool_t pg) + { + const struct data *d = ptr_barrier (&data); +- +- /* exp(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)] +- x = ln2*n + r, with r in [-ln2/2, ln2/2]. */ +- +- /* Load some constants in quad-word chunks to minimise memory access (last +- lane is wasted). */ +- svfloat32_t invln2_and_ln2 = svld1rq (svptrue_b32 (), &d->inv_ln2); +- +- /* n = round(x/(ln2/N)). */ +- svfloat32_t z = svmla_lane (sv_f32 (d->shift), x, invln2_and_ln2, 0); +- svfloat32_t n = svsub_x (pg, z, d->shift); +- +- /* r = x - n*ln2/N. */ +- svfloat32_t r = svmls_lane (x, n, invln2_and_ln2, 1); +- r = svmls_lane (r, n, invln2_and_ln2, 2); +- +- /* scale = 2^(n/N). */ + svbool_t is_special_case = svacgt (pg, x, d->thres); +- svfloat32_t scale = svexpa (svreinterpret_u32 (z)); +- +- /* y = exp(r) - 1 ~= r + C0 r^2 + C1 r^3 + C2 r^4 + C3 r^5 + C4 r^6. */ +- svfloat32_t p12 = svmla_x (pg, C (1), C (2), r); +- svfloat32_t p34 = svmla_x (pg, C (3), C (4), r); +- svfloat32_t r2 = svmul_x (pg, r, r); +- svfloat32_t p14 = svmla_x (pg, p12, p34, r2); +- svfloat32_t p0 = svmul_x (pg, r, C (0)); +- svfloat32_t poly = svmla_x (pg, p0, r2, p14); +- + if (__glibc_unlikely (svptest_any (pg, is_special_case))) +- return special_case (x, svmla_x (pg, scale, scale, poly), is_special_case); +- +- return svmla_x (pg, scale, scale, poly); ++ return special_case (x, is_special_case, &d->d); ++ return expf_inline (x, pg, &d->d); + } +diff --git a/sysdeps/aarch64/fpu/sv_expf_inline.h b/sysdeps/aarch64/fpu/sv_expf_inline.h +index 23963b5f8ec89ead..6166df65533555a6 100644 +--- a/sysdeps/aarch64/fpu/sv_expf_inline.h ++++ b/sysdeps/aarch64/fpu/sv_expf_inline.h +@@ -24,19 +24,20 @@ + + struct sv_expf_data + { +- float poly[5]; +- float inv_ln2, ln2_hi, ln2_lo, shift; ++ float c1, c3, inv_ln2; ++ float ln2_lo, c0, c2, c4; ++ float ln2_hi, shift; + }; + + /* Coefficients copied from the polynomial in AdvSIMD variant, reversed for + compatibility with polynomial helpers. Shift is 1.5*2^17 + 127. */ + #define SV_EXPF_DATA \ + { \ +- .poly = { 0x1.ffffecp-1f, 0x1.fffdb6p-2f, 0x1.555e66p-3f, 0x1.573e2ep-5f, \ +- 0x1.0e4020p-7f }, \ +- \ +- .inv_ln2 = 0x1.715476p+0f, .ln2_hi = 0x1.62e4p-1f, \ +- .ln2_lo = 0x1.7f7d1cp-20f, .shift = 0x1.803f8p17f, \ ++ /* Coefficients copied from the polynomial in AdvSIMD variant. */ \ ++ .c0 = 0x1.ffffecp-1f, .c1 = 0x1.fffdb6p-2f, .c2 = 0x1.555e66p-3f, \ ++ .c3 = 0x1.573e2ep-5f, .c4 = 0x1.0e4020p-7f, .inv_ln2 = 0x1.715476p+0f, \ ++ .ln2_hi = 0x1.62e4p-1f, .ln2_lo = 0x1.7f7d1cp-20f, \ ++ .shift = 0x1.803f8p17f, \ + } + + #define C(i) sv_f32 (d->poly[i]) +@@ -47,26 +48,25 @@ expf_inline (svfloat32_t x, const svbool_t pg, const struct sv_expf_data *d) + /* exp(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)] + x = ln2*n + r, with r in [-ln2/2, ln2/2]. */ + +- /* Load some constants in quad-word chunks to minimise memory access. */ +- svfloat32_t c4_invln2_and_ln2 = svld1rq (svptrue_b32 (), &d->poly[4]); ++ svfloat32_t lane_consts = svld1rq (svptrue_b32 (), &d->ln2_lo); + + /* n = round(x/(ln2/N)). */ +- svfloat32_t z = svmla_lane (sv_f32 (d->shift), x, c4_invln2_and_ln2, 1); ++ svfloat32_t z = svmad_x (pg, sv_f32 (d->inv_ln2), x, d->shift); + svfloat32_t n = svsub_x (pg, z, d->shift); + + /* r = x - n*ln2/N. */ +- svfloat32_t r = svmls_lane (x, n, c4_invln2_and_ln2, 2); +- r = svmls_lane (r, n, c4_invln2_and_ln2, 3); ++ svfloat32_t r = svmsb_x (pg, sv_f32 (d->ln2_hi), n, x); ++ r = svmls_lane (r, n, lane_consts, 0); + + /* scale = 2^(n/N). */ +- svfloat32_t scale = svexpa (svreinterpret_u32_f32 (z)); ++ svfloat32_t scale = svexpa (svreinterpret_u32 (z)); + + /* y = exp(r) - 1 ~= r + C0 r^2 + C1 r^3 + C2 r^4 + C3 r^5 + C4 r^6. */ +- svfloat32_t p12 = svmla_x (pg, C (1), C (2), r); +- svfloat32_t p34 = svmla_lane (C (3), r, c4_invln2_and_ln2, 0); +- svfloat32_t r2 = svmul_f32_x (pg, r, r); ++ svfloat32_t p12 = svmla_lane (sv_f32 (d->c1), r, lane_consts, 2); ++ svfloat32_t p34 = svmla_lane (sv_f32 (d->c3), r, lane_consts, 3); ++ svfloat32_t r2 = svmul_x (svptrue_b32 (), r, r); + svfloat32_t p14 = svmla_x (pg, p12, p34, r2); +- svfloat32_t p0 = svmul_f32_x (pg, r, C (0)); ++ svfloat32_t p0 = svmul_lane (r, lane_consts, 1); + svfloat32_t poly = svmla_x (pg, p0, r2, p14); + + return svmla_x (pg, scale, scale, poly); diff --git a/glibc-RHEL-118273-17.patch b/glibc-RHEL-118273-17.patch new file mode 100644 index 0000000..d7e1dbf --- /dev/null +++ b/glibc-RHEL-118273-17.patch @@ -0,0 +1,124 @@ +commit 1cf29fbc5be23db775d1dfa6b332ded6e6554252 +Author: Joe Ramsay +Date: Mon Oct 28 14:58:35 2024 +0000 + + AArch64: Small optimisation in AdvSIMD erf and erfc + + In both routines, reduce register pressure such that GCC 14 emits no + spills for erf and fewer spills for erfc. Also use more efficient + comparison for the special-case in erf. + + Benchtests show erf improves by 6.4%, erfc by 1.0%. + +diff --git a/sysdeps/aarch64/fpu/erf_advsimd.c b/sysdeps/aarch64/fpu/erf_advsimd.c +index 19cbb7d0f42eb4e2..c0116735e408066d 100644 +--- a/sysdeps/aarch64/fpu/erf_advsimd.c ++++ b/sysdeps/aarch64/fpu/erf_advsimd.c +@@ -22,19 +22,21 @@ + static const struct data + { + float64x2_t third; +- float64x2_t tenth, two_over_five, two_over_fifteen; +- float64x2_t two_over_nine, two_over_fortyfive; ++ float64x2_t tenth, two_over_five, two_over_nine; ++ double two_over_fifteen, two_over_fortyfive; + float64x2_t max, shift; ++ uint64x2_t max_idx; + #if WANT_SIMD_EXCEPT + float64x2_t tiny_bound, huge_bound, scale_minus_one; + #endif + } data = { ++ .max_idx = V2 (768), + .third = V2 (0x1.5555555555556p-2), /* used to compute 2/3 and 1/6 too. */ +- .two_over_fifteen = V2 (0x1.1111111111111p-3), ++ .two_over_fifteen = 0x1.1111111111111p-3, + .tenth = V2 (-0x1.999999999999ap-4), + .two_over_five = V2 (-0x1.999999999999ap-2), + .two_over_nine = V2 (-0x1.c71c71c71c71cp-3), +- .two_over_fortyfive = V2 (0x1.6c16c16c16c17p-5), ++ .two_over_fortyfive = 0x1.6c16c16c16c17p-5, + .max = V2 (5.9921875), /* 6 - 1/128. */ + .shift = V2 (0x1p45), + #if WANT_SIMD_EXCEPT +@@ -87,8 +89,8 @@ float64x2_t VPCS_ATTR V_NAME_D1 (erf) (float64x2_t x) + float64x2_t a = vabsq_f64 (x); + /* Reciprocal conditions that do not catch NaNs so they can be used in BSLs + to return expected results. */ +- uint64x2_t a_le_max = vcleq_f64 (a, dat->max); +- uint64x2_t a_gt_max = vcgtq_f64 (a, dat->max); ++ uint64x2_t a_le_max = vcaleq_f64 (x, dat->max); ++ uint64x2_t a_gt_max = vcagtq_f64 (x, dat->max); + + #if WANT_SIMD_EXCEPT + /* |x| huge or tiny. */ +@@ -115,7 +117,7 @@ float64x2_t VPCS_ATTR V_NAME_D1 (erf) (float64x2_t x) + segfault. */ + uint64x2_t i + = vsubq_u64 (vreinterpretq_u64_f64 (z), vreinterpretq_u64_f64 (shift)); +- i = vbslq_u64 (a_le_max, i, v_u64 (768)); ++ i = vbslq_u64 (a_le_max, i, dat->max_idx); + struct entry e = lookup (i); + + float64x2_t r = vsubq_f64 (z, shift); +@@ -125,14 +127,19 @@ float64x2_t VPCS_ATTR V_NAME_D1 (erf) (float64x2_t x) + float64x2_t d2 = vmulq_f64 (d, d); + float64x2_t r2 = vmulq_f64 (r, r); + ++ float64x2_t two_over_fifteen_and_fortyfive ++ = vld1q_f64 (&dat->two_over_fifteen); ++ + /* poly (d, r) = 1 + p1(r) * d + p2(r) * d^2 + ... + p5(r) * d^5. */ + float64x2_t p1 = r; + float64x2_t p2 + = vfmsq_f64 (dat->third, r2, vaddq_f64 (dat->third, dat->third)); + float64x2_t p3 = vmulq_f64 (r, vfmaq_f64 (v_f64 (-0.5), r2, dat->third)); +- float64x2_t p4 = vfmaq_f64 (dat->two_over_five, r2, dat->two_over_fifteen); ++ float64x2_t p4 = vfmaq_laneq_f64 (dat->two_over_five, r2, ++ two_over_fifteen_and_fortyfive, 0); + p4 = vfmsq_f64 (dat->tenth, r2, p4); +- float64x2_t p5 = vfmaq_f64 (dat->two_over_nine, r2, dat->two_over_fortyfive); ++ float64x2_t p5 = vfmaq_laneq_f64 (dat->two_over_nine, r2, ++ two_over_fifteen_and_fortyfive, 1); + p5 = vmulq_f64 (r, vfmaq_f64 (vmulq_f64 (v_f64 (0.5), dat->third), r2, p5)); + + float64x2_t p34 = vfmaq_f64 (p3, d, p4); +diff --git a/sysdeps/aarch64/fpu/erfc_advsimd.c b/sysdeps/aarch64/fpu/erfc_advsimd.c +index f1b3bfe8304c73b5..2f2f755c46e71b58 100644 +--- a/sysdeps/aarch64/fpu/erfc_advsimd.c ++++ b/sysdeps/aarch64/fpu/erfc_advsimd.c +@@ -24,8 +24,8 @@ static const struct data + { + uint64x2_t offset, table_scale; + float64x2_t max, shift; +- float64x2_t p20, p40, p41, p42; +- float64x2_t p51, p52; ++ float64x2_t p20, p40, p41, p51; ++ double p42, p52; + double qr5[2], qr6[2], qr7[2], qr8[2], qr9[2]; + #if WANT_SIMD_EXCEPT + float64x2_t uflow_bound; +@@ -41,9 +41,9 @@ static const struct data + .p20 = V2 (0x1.5555555555555p-2), /* 1/3, used to compute 2/3 and 1/6. */ + .p40 = V2 (-0x1.999999999999ap-4), /* 1/10. */ + .p41 = V2 (-0x1.999999999999ap-2), /* 2/5. */ +- .p42 = V2 (0x1.1111111111111p-3), /* 2/15. */ ++ .p42 = 0x1.1111111111111p-3, /* 2/15. */ + .p51 = V2 (-0x1.c71c71c71c71cp-3), /* 2/9. */ +- .p52 = V2 (0x1.6c16c16c16c17p-5), /* 2/45. */ ++ .p52 = 0x1.6c16c16c16c17p-5, /* 2/45. */ + /* Qi = (i+1) / i, Ri = -2 * i / ((i+1)*(i+2)), for i = 5, ..., 9. */ + .qr5 = { 0x1.3333333333333p0, -0x1.e79e79e79e79ep-3 }, + .qr6 = { 0x1.2aaaaaaaaaaabp0, -0x1.b6db6db6db6dbp-3 }, +@@ -157,9 +157,10 @@ float64x2_t V_NAME_D1 (erfc) (float64x2_t x) + float64x2_t p1 = r; + float64x2_t p2 = vfmsq_f64 (dat->p20, r2, vaddq_f64 (dat->p20, dat->p20)); + float64x2_t p3 = vmulq_f64 (r, vfmaq_f64 (v_f64 (-0.5), r2, dat->p20)); +- float64x2_t p4 = vfmaq_f64 (dat->p41, r2, dat->p42); ++ float64x2_t p42_p52 = vld1q_f64 (&dat->p42); ++ float64x2_t p4 = vfmaq_laneq_f64 (dat->p41, r2, p42_p52, 0); + p4 = vfmsq_f64 (dat->p40, r2, p4); +- float64x2_t p5 = vfmaq_f64 (dat->p51, r2, dat->p52); ++ float64x2_t p5 = vfmaq_laneq_f64 (dat->p51, r2, p42_p52, 1); + p5 = vmulq_f64 (r, vfmaq_f64 (vmulq_f64 (v_f64 (0.5), dat->p20), r2, p5)); + /* Compute p_i using recurrence relation: + p_{i+2} = (p_i + r * Q_{i+1} * p_{i+1}) * R_{i+1}. */ diff --git a/glibc-RHEL-118273-18.patch b/glibc-RHEL-118273-18.patch new file mode 100644 index 0000000..5899018 --- /dev/null +++ b/glibc-RHEL-118273-18.patch @@ -0,0 +1,2973 @@ +commit 2d82d781a539ce8e82178fc1fa2c99ae1884e7fe +Author: Joe Ramsay +Date: Fri Nov 1 15:48:54 2024 +0000 + + AArch64: Remove SVE erf and erfc tables + + By using a combination of mask-and-add instead of the shift-based + index calculation the routines can share the same table as other + variants with no performance degradation. + + The tables change name because of other changes in downstream AOR. + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile +index 234a6c457c26f6cb..be8541f6496d6688 100644 +--- a/sysdeps/aarch64/fpu/Makefile ++++ b/sysdeps/aarch64/fpu/Makefile +@@ -41,8 +41,6 @@ libmvec-support = $(addsuffix f_advsimd,$(float-advsimd-funcs)) \ + v_log10_data \ + erf_data \ + erff_data \ +- sv_erf_data \ +- sv_erff_data \ + v_exp_tail_data \ + erfc_data \ + erfcf_data \ +diff --git a/sysdeps/aarch64/fpu/erf_advsimd.c b/sysdeps/aarch64/fpu/erf_advsimd.c +index c0116735e408066d..a48092e838e3edb6 100644 +--- a/sysdeps/aarch64/fpu/erf_advsimd.c ++++ b/sysdeps/aarch64/fpu/erf_advsimd.c +@@ -58,8 +58,8 @@ static inline struct entry + lookup (uint64x2_t i) + { + struct entry e; +- float64x2_t e1 = vld1q_f64 (&__erf_data.tab[vgetq_lane_u64 (i, 0)].erf), +- e2 = vld1q_f64 (&__erf_data.tab[vgetq_lane_u64 (i, 1)].erf); ++ float64x2_t e1 = vld1q_f64 (&__v_erf_data.tab[vgetq_lane_u64 (i, 0)].erf), ++ e2 = vld1q_f64 (&__v_erf_data.tab[vgetq_lane_u64 (i, 1)].erf); + e.erf = vuzp1q_f64 (e1, e2); + e.scale = vuzp2q_f64 (e1, e2); + return e; +diff --git a/sysdeps/aarch64/fpu/erf_data.c b/sysdeps/aarch64/fpu/erf_data.c +index 6d2dcd235c8b7928..ea01fad7cafdbeb5 100644 +--- a/sysdeps/aarch64/fpu/erf_data.c ++++ b/sysdeps/aarch64/fpu/erf_data.c +@@ -19,14 +19,14 @@ + + #include "vecmath_config.h" + +-/* Lookup table used in erf. ++/* Lookup table used in vector erf. + For each possible rounded input r (multiples of 1/128), between + r = 0.0 and r = 6.0 (769 values): +- - the first entry __erff_data.tab.erf contains the values of erf(r), +- - the second entry __erff_data.tab.scale contains the values of ++ - the first entry __v_erff_data.tab.erf contains the values of erf(r), ++ - the second entry __v_erff_data.tab.scale contains the values of + 2/sqrt(pi)*exp(-r^2). Note that indices 0 and 1 are never hit by the + algorithm, since lookup is performed only for x >= 1/64-1/512. */ +-const struct erf_data __erf_data = { ++const struct v_erf_data __v_erf_data = { + .tab = { { 0x0.0000000000000p+0, 0x1.20dd750429b6dp+0 }, + { 0x1.20dbf3deb1340p-7, 0x1.20d8f1975c85dp+0 }, + { 0x1.20d77083f17a0p-6, 0x1.20cb67bd452c7p+0 }, +diff --git a/sysdeps/aarch64/fpu/erf_sve.c b/sysdeps/aarch64/fpu/erf_sve.c +index 7d51417406e9d9d3..671d55a02b318a2f 100644 +--- a/sysdeps/aarch64/fpu/erf_sve.c ++++ b/sysdeps/aarch64/fpu/erf_sve.c +@@ -67,14 +67,16 @@ svfloat64_t SV_NAME_D1 (erf) (svfloat64_t x, const svbool_t pg) + svfloat64_t a = svabs_x (pg, x); + svfloat64_t shift = sv_f64 (dat->shift); + svfloat64_t z = svadd_x (pg, a, shift); +- svuint64_t i +- = svsub_x (pg, svreinterpret_u64 (z), svreinterpret_u64 (shift)); ++ svuint64_t i = svand_x (pg, svreinterpret_u64 (z), 0xfff); ++ i = svadd_x (pg, i, i); + + /* Lookup without shortcut for small values but with predicate to avoid + segfault for large values and NaNs. */ + svfloat64_t r = svsub_x (pg, z, shift); +- svfloat64_t erfr = svld1_gather_index (a_lt_max, __sv_erf_data.erf, i); +- svfloat64_t scale = svld1_gather_index (a_lt_max, __sv_erf_data.scale, i); ++ svfloat64_t erfr ++ = svld1_gather_index (a_lt_max, &__v_erf_data.tab[0].erf, i); ++ svfloat64_t scale ++ = svld1_gather_index (a_lt_max, &__v_erf_data.tab[0].scale, i); + + /* erf(x) ~ erf(r) + scale * d * poly (r, d). */ + svfloat64_t d = svsub_x (pg, a, r); +diff --git a/sysdeps/aarch64/fpu/erfc_advsimd.c b/sysdeps/aarch64/fpu/erfc_advsimd.c +index 2f2f755c46e71b58..d05eac61a2888eb1 100644 +--- a/sysdeps/aarch64/fpu/erfc_advsimd.c ++++ b/sysdeps/aarch64/fpu/erfc_advsimd.c +@@ -69,9 +69,9 @@ lookup (uint64x2_t i) + { + struct entry e; + float64x2_t e1 +- = vld1q_f64 (&__erfc_data.tab[vgetq_lane_u64 (i, 0) - Off].erfc); ++ = vld1q_f64 (&__v_erfc_data.tab[vgetq_lane_u64 (i, 0) - Off].erfc); + float64x2_t e2 +- = vld1q_f64 (&__erfc_data.tab[vgetq_lane_u64 (i, 1) - Off].erfc); ++ = vld1q_f64 (&__v_erfc_data.tab[vgetq_lane_u64 (i, 1) - Off].erfc); + e.erfc = vuzp1q_f64 (e1, e2); + e.scale = vuzp2q_f64 (e1, e2); + return e; +diff --git a/sysdeps/aarch64/fpu/erfc_data.c b/sysdeps/aarch64/fpu/erfc_data.c +index 76a94e4681665cc1..8dc6a8c42c6320e0 100644 +--- a/sysdeps/aarch64/fpu/erfc_data.c ++++ b/sysdeps/aarch64/fpu/erfc_data.c +@@ -19,14 +19,14 @@ + + #include "vecmath_config.h" + +-/* Lookup table used in erfc. ++/* Lookup table used in vector erfc. + For each possible rounded input r (multiples of 1/128), between + r = 0.0 and r = ~27.0 (3488 values): +- - the first entry __erfc_data.tab.erfc contains the values of erfc(r), +- - the second entry __erfc_data.tab.scale contains the values of ++ - the first entry __v_erfc_data.tab.erfc contains the values of erfc(r), ++ - the second entry __v_erfc_data.tab.scale contains the values of + 2/sqrt(pi)*exp(-r^2). Both values may go into subnormal range, therefore + they are scaled by a large enough value 2^128 (fits in 8bit). */ +-const struct erfc_data __erfc_data = { ++const struct v_erfc_data __v_erfc_data = { + .tab = { { 0x1p128, 0x1.20dd750429b6dp128 }, + { 0x1.fb7c9030853b3p127, 0x1.20d8f1975c85dp128 }, + { 0x1.f6f9447be0743p127, 0x1.20cb67bd452c7p128 }, +diff --git a/sysdeps/aarch64/fpu/erfc_sve.c b/sysdeps/aarch64/fpu/erfc_sve.c +index c17d3e448457b41c..703926ee41adef3a 100644 +--- a/sysdeps/aarch64/fpu/erfc_sve.c ++++ b/sysdeps/aarch64/fpu/erfc_sve.c +@@ -104,7 +104,7 @@ svfloat64_t SV_NAME_D1 (erfc) (svfloat64_t x, const svbool_t pg) + + /* Lookup erfc(r) and 2/sqrt(pi)*exp(-r^2) in tables. */ + i = svadd_x (pg, i, i); +- const float64_t *p = &__erfc_data.tab[0].erfc - 2 * dat->off_arr; ++ const float64_t *p = &__v_erfc_data.tab[0].erfc - 2 * dat->off_arr; + svfloat64_t erfcr = svld1_gather_index (pg, p, i); + svfloat64_t scale = svld1_gather_index (pg, p + 1, i); + +diff --git a/sysdeps/aarch64/fpu/erfcf_advsimd.c b/sysdeps/aarch64/fpu/erfcf_advsimd.c +index ca5bc3ab33c92f83..59b0b0d64b25bdc7 100644 +--- a/sysdeps/aarch64/fpu/erfcf_advsimd.c ++++ b/sysdeps/aarch64/fpu/erfcf_advsimd.c +@@ -62,13 +62,13 @@ lookup (uint32x4_t i) + { + struct entry e; + float32x2_t t0 +- = vld1_f32 (&__erfcf_data.tab[vgetq_lane_u32 (i, 0) - Off].erfc); ++ = vld1_f32 (&__v_erfcf_data.tab[vgetq_lane_u32 (i, 0) - Off].erfc); + float32x2_t t1 +- = vld1_f32 (&__erfcf_data.tab[vgetq_lane_u32 (i, 1) - Off].erfc); ++ = vld1_f32 (&__v_erfcf_data.tab[vgetq_lane_u32 (i, 1) - Off].erfc); + float32x2_t t2 +- = vld1_f32 (&__erfcf_data.tab[vgetq_lane_u32 (i, 2) - Off].erfc); ++ = vld1_f32 (&__v_erfcf_data.tab[vgetq_lane_u32 (i, 2) - Off].erfc); + float32x2_t t3 +- = vld1_f32 (&__erfcf_data.tab[vgetq_lane_u32 (i, 3) - Off].erfc); ++ = vld1_f32 (&__v_erfcf_data.tab[vgetq_lane_u32 (i, 3) - Off].erfc); + float32x4_t e1 = vcombine_f32 (t0, t1); + float32x4_t e2 = vcombine_f32 (t2, t3); + e.erfc = vuzp1q_f32 (e1, e2); +diff --git a/sysdeps/aarch64/fpu/erfcf_data.c b/sysdeps/aarch64/fpu/erfcf_data.c +index 77fb889a788345ad..d45087bbb9c565b6 100644 +--- a/sysdeps/aarch64/fpu/erfcf_data.c ++++ b/sysdeps/aarch64/fpu/erfcf_data.c +@@ -19,14 +19,14 @@ + + #include "vecmath_config.h" + +-/* Lookup table used in erfcf. ++/* Lookup table used in vector erfcf. + For each possible rounded input r (multiples of 1/64), between + r = 0.0 and r = 10.0625 (645 values): +- - the first entry __erfcf_data.tab.erfc contains the values of erfc(r), +- - the second entry __erfcf_data.tab.scale contains the values of ++ - the first entry __v_erfcf_data.tab.erfc contains the values of erfc(r), ++ - the second entry __v_erfcf_data.tab.scale contains the values of + 2/sqrt(pi)*exp(-r^2). Both values may go into subnormal range, therefore + they are scaled by a large enough value 2^47 (fits in 8 bits). */ +-const struct erfcf_data __erfcf_data = { ++const struct v_erfcf_data __v_erfcf_data = { + .tab = { { 0x1p47, 0x1.20dd76p47 }, + { 0x1.f6f944p46, 0x1.20cb68p47 }, + { 0x1.edf3aap46, 0x1.209546p47 }, +diff --git a/sysdeps/aarch64/fpu/erfcf_sve.c b/sysdeps/aarch64/fpu/erfcf_sve.c +index 48d1677eb4e0b677..ecacb933aca40855 100644 +--- a/sysdeps/aarch64/fpu/erfcf_sve.c ++++ b/sysdeps/aarch64/fpu/erfcf_sve.c +@@ -77,7 +77,7 @@ svfloat32_t SV_NAME_F1 (erfc) (svfloat32_t x, const svbool_t pg) + + /* Lookup erfc(r) and 2/sqrt(pi)*exp(-r^2) in tables. */ + i = svmul_x (pg, i, 2); +- const float32_t *p = &__erfcf_data.tab[0].erfc - 2 * dat->off_arr; ++ const float32_t *p = &__v_erfcf_data.tab[0].erfc - 2 * dat->off_arr; + svfloat32_t erfcr = svld1_gather_index (pg, p, i); + svfloat32_t scale = svld1_gather_index (pg, p + 1, i); + +diff --git a/sysdeps/aarch64/fpu/erff_advsimd.c b/sysdeps/aarch64/fpu/erff_advsimd.c +index f2fe6ff236a6ec07..db39e789b6241649 100644 +--- a/sysdeps/aarch64/fpu/erff_advsimd.c ++++ b/sysdeps/aarch64/fpu/erff_advsimd.c +@@ -47,10 +47,10 @@ static inline struct entry + lookup (uint32x4_t i) + { + struct entry e; +- float32x2_t t0 = vld1_f32 (&__erff_data.tab[vgetq_lane_u32 (i, 0)].erf); +- float32x2_t t1 = vld1_f32 (&__erff_data.tab[vgetq_lane_u32 (i, 1)].erf); +- float32x2_t t2 = vld1_f32 (&__erff_data.tab[vgetq_lane_u32 (i, 2)].erf); +- float32x2_t t3 = vld1_f32 (&__erff_data.tab[vgetq_lane_u32 (i, 3)].erf); ++ float32x2_t t0 = vld1_f32 (&__v_erff_data.tab[vgetq_lane_u32 (i, 0)].erf); ++ float32x2_t t1 = vld1_f32 (&__v_erff_data.tab[vgetq_lane_u32 (i, 1)].erf); ++ float32x2_t t2 = vld1_f32 (&__v_erff_data.tab[vgetq_lane_u32 (i, 2)].erf); ++ float32x2_t t3 = vld1_f32 (&__v_erff_data.tab[vgetq_lane_u32 (i, 3)].erf); + float32x4_t e1 = vcombine_f32 (t0, t1); + float32x4_t e2 = vcombine_f32 (t2, t3); + e.erf = vuzp1q_f32 (e1, e2); +diff --git a/sysdeps/aarch64/fpu/erff_data.c b/sysdeps/aarch64/fpu/erff_data.c +index 9a32940915c3a838..da38aed2055d9f78 100644 +--- a/sysdeps/aarch64/fpu/erff_data.c ++++ b/sysdeps/aarch64/fpu/erff_data.c +@@ -19,14 +19,14 @@ + + #include "vecmath_config.h" + +-/* Lookup table used in erff. ++/* Lookup table used in vector erff. + For each possible rounded input r (multiples of 1/128), between + r = 0.0 and r = 4.0 (513 values): +- - the first entry __erff_data.tab.erf contains the values of erf(r), +- - the second entry __erff_data.tab.scale contains the values of ++ - the first entry __v_erff_data.tab.erf contains the values of erf(r), ++ - the second entry __v_erff_data.tab.scale contains the values of + 2/sqrt(pi)*exp(-r^2). Note that indices 0 and 1 are never hit by the + algorithm, since lookup is performed only for x >= 1/64-1/512. */ +-const struct erff_data __erff_data = { ++const struct v_erff_data __v_erff_data = { + .tab = { { 0x0.000000p+0, 0x1.20dd76p+0 }, + { 0x1.20dbf4p-7, 0x1.20d8f2p+0 }, + { 0x1.20d770p-6, 0x1.20cb68p+0 }, +diff --git a/sysdeps/aarch64/fpu/erff_sve.c b/sysdeps/aarch64/fpu/erff_sve.c +index 38f00db9be7424d3..0e382eb09a8344d5 100644 +--- a/sysdeps/aarch64/fpu/erff_sve.c ++++ b/sysdeps/aarch64/fpu/erff_sve.c +@@ -62,18 +62,17 @@ svfloat32_t SV_NAME_F1 (erf) (svfloat32_t x, const svbool_t pg) + + svfloat32_t shift = sv_f32 (dat->shift); + svfloat32_t z = svadd_x (pg, a, shift); +- svuint32_t i +- = svsub_x (pg, svreinterpret_u32 (z), svreinterpret_u32 (shift)); +- +- /* Saturate lookup index. */ +- i = svsel (a_ge_max, sv_u32 (512), i); ++ svuint32_t i = svand_x (pg, svreinterpret_u32 (z), 0xfff); ++ i = svadd_x (pg, i, i); + + /* r and erf(r) set to 0 for |x| below min. */ + svfloat32_t r = svsub_z (a_gt_min, z, shift); +- svfloat32_t erfr = svld1_gather_index (a_gt_min, __sv_erff_data.erf, i); ++ svfloat32_t erfr ++ = svld1_gather_index (a_gt_min, &__v_erff_data.tab[0].erf, i); + + /* scale set to 2/sqrt(pi) for |x| below min. */ +- svfloat32_t scale = svld1_gather_index (a_gt_min, __sv_erff_data.scale, i); ++ svfloat32_t scale ++ = svld1_gather_index (a_gt_min, &__v_erff_data.tab[0].scale, i); + scale = svsel (a_gt_min, scale, sv_f32 (dat->scale)); + + /* erf(x) ~ erf(r) + scale * d * (1 - r * d + 1/3 * d^2). */ +diff --git a/sysdeps/aarch64/fpu/sv_erf_data.c b/sysdeps/aarch64/fpu/sv_erf_data.c +deleted file mode 100644 +index a53878f893e0d683..0000000000000000 +--- a/sysdeps/aarch64/fpu/sv_erf_data.c ++++ /dev/null +@@ -1,1570 +0,0 @@ +-/* Table for SVE erf approximation +- +- Copyright (C) 2024 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 +- . */ +- +-#include "vecmath_config.h" +- +-/* Lookup table used in vector erf. +- For each possible rounded input r (multiples of 1/128), between +- r = 0.0 and r = 6.0 (769 values): +- - the first entry __erf_data.tab.erf contains the values of erf(r), +- - the second entry __erf_data.tab.scale contains the values of +- 2/sqrt(pi)*exp(-r^2). Note that indices 0 and 1 are never hit by the +- algorithm, since lookup is performed only for x >= 1/64-1/512. */ +-const struct sv_erf_data __sv_erf_data = { +- .erf = { 0x0.0000000000000p+0, +- 0x1.20dbf3deb1340p-7, +- 0x1.20d77083f17a0p-6, +- 0x1.b137e0cf584dcp-6, +- 0x1.20c5645dd2538p-5, +- 0x1.68e5d3bbc9526p-5, +- 0x1.b0fafef135745p-5, +- 0x1.f902a77bd3821p-5, +- 0x1.207d480e90658p-4, +- 0x1.44703e87e8593p-4, +- 0x1.68591a1e83b5dp-4, +- 0x1.8c36beb8a8d23p-4, +- 0x1.b0081148a873ap-4, +- 0x1.d3cbf7e70a4b3p-4, +- 0x1.f78159ec8bb50p-4, +- 0x1.0d939005f65e5p-3, +- 0x1.1f5e1a35c3b89p-3, +- 0x1.311fc15f56d14p-3, +- 0x1.42d7fc2f64959p-3, +- 0x1.548642321d7c6p-3, +- 0x1.662a0bdf7a89fp-3, +- 0x1.77c2d2a765f9ep-3, +- 0x1.895010fdbdbfdp-3, +- 0x1.9ad142662e14dp-3, +- 0x1.ac45e37fe2526p-3, +- 0x1.bdad72110a648p-3, +- 0x1.cf076d1233237p-3, +- 0x1.e05354b96ff36p-3, +- 0x1.f190aa85540e2p-3, +- 0x1.015f78a3dcf3dp-2, +- 0x1.09eed6982b948p-2, +- 0x1.127631eb8de32p-2, +- 0x1.1af54e232d609p-2, +- 0x1.236bef825d9a2p-2, +- 0x1.2bd9db0f7827fp-2, +- 0x1.343ed6989b7d9p-2, +- 0x1.3c9aa8b84bedap-2, +- 0x1.44ed18d9f6462p-2, +- 0x1.4d35ef3e5372ep-2, +- 0x1.5574f4ffac98ep-2, +- 0x1.5da9f415ff23fp-2, +- 0x1.65d4b75b00471p-2, +- 0x1.6df50a8dff772p-2, +- 0x1.760aba57a76bfp-2, +- 0x1.7e15944d9d3e4p-2, +- 0x1.861566f5fd3c0p-2, +- 0x1.8e0a01cab516bp-2, +- 0x1.95f3353cbb146p-2, +- 0x1.9dd0d2b721f39p-2, +- 0x1.a5a2aca209394p-2, +- 0x1.ad68966569a87p-2, +- 0x1.b522646bbda68p-2, +- 0x1.bccfec24855b8p-2, +- 0x1.c4710406a65fcp-2, +- 0x1.cc058392a6d2dp-2, +- 0x1.d38d4354c3bd0p-2, +- 0x1.db081ce6e2a48p-2, +- 0x1.e275eaf25e458p-2, +- 0x1.e9d68931ae650p-2, +- 0x1.f129d471eabb1p-2, +- 0x1.f86faa9428f9dp-2, +- 0x1.ffa7ea8eb5fd0p-2, +- 0x1.03693a371519cp-1, +- 0x1.06f794ab2cae7p-1, +- 0x1.0a7ef5c18edd2p-1, +- 0x1.0dff4f247f6c6p-1, +- 0x1.1178930ada115p-1, +- 0x1.14eab43841b55p-1, +- 0x1.1855a5fd3dd50p-1, +- 0x1.1bb95c3746199p-1, +- 0x1.1f15cb50bc4dep-1, +- 0x1.226ae840d4d70p-1, +- 0x1.25b8a88b6dd7fp-1, +- 0x1.28ff0240d52cdp-1, +- 0x1.2c3debfd7d6c1p-1, +- 0x1.2f755ce9a21f4p-1, +- 0x1.32a54cb8db67bp-1, +- 0x1.35cdb3a9a144dp-1, +- 0x1.38ee8a84beb71p-1, +- 0x1.3c07ca9cb4f9ep-1, +- 0x1.3f196dcd0f135p-1, +- 0x1.42236e79a5fa6p-1, +- 0x1.4525c78dd5966p-1, +- 0x1.4820747ba2dc2p-1, +- 0x1.4b13713ad3513p-1, +- 0x1.4dfeba47f63ccp-1, +- 0x1.50e24ca35fd2cp-1, +- 0x1.53be25d016a4fp-1, +- 0x1.569243d2b3a9bp-1, +- 0x1.595ea53035283p-1, +- 0x1.5c2348ecc4dc3p-1, +- 0x1.5ee02e8a71a53p-1, +- 0x1.61955607dd15dp-1, +- 0x1.6442bfdedd397p-1, +- 0x1.66e86d0312e82p-1, +- 0x1.69865ee075011p-1, +- 0x1.6c1c9759d0e5fp-1, +- 0x1.6eab18c74091bp-1, +- 0x1.7131e5f496a5ap-1, +- 0x1.73b1021fc0cb8p-1, +- 0x1.762870f720c6fp-1, +- 0x1.78983697dc96fp-1, +- 0x1.7b00578c26037p-1, +- 0x1.7d60d8c979f7bp-1, +- 0x1.7fb9bfaed8078p-1, +- 0x1.820b1202f27fbp-1, +- 0x1.8454d5f25760dp-1, +- 0x1.8697120d92a4ap-1, +- 0x1.88d1cd474a2e0p-1, +- 0x1.8b050ef253c37p-1, +- 0x1.8d30debfc572ep-1, +- 0x1.8f5544bd00c04p-1, +- 0x1.91724951b8fc6p-1, +- 0x1.9387f53df5238p-1, +- 0x1.959651980da31p-1, +- 0x1.979d67caa6631p-1, +- 0x1.999d4192a5715p-1, +- 0x1.9b95e8fd26abap-1, +- 0x1.9d8768656cc42p-1, +- 0x1.9f71ca72cffb6p-1, +- 0x1.a1551a16aaeafp-1, +- 0x1.a331628a45b92p-1, +- 0x1.a506af4cc00f4p-1, +- 0x1.a6d50c20fa293p-1, +- 0x1.a89c850b7d54dp-1, +- 0x1.aa5d265064366p-1, +- 0x1.ac16fc7143263p-1, +- 0x1.adca142b10f98p-1, +- 0x1.af767a741088bp-1, +- 0x1.b11c3c79bb424p-1, +- 0x1.b2bb679ead19cp-1, +- 0x1.b4540978921eep-1, +- 0x1.b5e62fce16095p-1, +- 0x1.b771e894d602ep-1, +- 0x1.b8f741ef54f83p-1, +- 0x1.ba764a2af2b78p-1, +- 0x1.bbef0fbde6221p-1, +- 0x1.bd61a1453ab44p-1, +- 0x1.bece0d82d1a5cp-1, +- 0x1.c034635b66e23p-1, +- 0x1.c194b1d49a184p-1, +- 0x1.c2ef0812fc1bdp-1, +- 0x1.c443755820d64p-1, +- 0x1.c5920900b5fd1p-1, +- 0x1.c6dad2829ec62p-1, +- 0x1.c81de16b14cefp-1, +- 0x1.c95b455cce69dp-1, +- 0x1.ca930e0e2a825p-1, +- 0x1.cbc54b476248dp-1, +- 0x1.ccf20ce0c0d27p-1, +- 0x1.ce1962c0e0d8bp-1, +- 0x1.cf3b5cdaf0c39p-1, +- 0x1.d0580b2cfd249p-1, +- 0x1.d16f7dbe41ca0p-1, +- 0x1.d281c49d818d0p-1, +- 0x1.d38eefdf64fddp-1, +- 0x1.d4970f9ce00d9p-1, +- 0x1.d59a33f19ed42p-1, +- 0x1.d6986cfa798e7p-1, +- 0x1.d791cad3eff01p-1, +- 0x1.d8865d98abe01p-1, +- 0x1.d97635600bb89p-1, +- 0x1.da61623cb41e0p-1, +- 0x1.db47f43b2980dp-1, +- 0x1.dc29fb60715afp-1, +- 0x1.dd0787a8bb39dp-1, +- 0x1.dde0a90611a0dp-1, +- 0x1.deb56f5f12d28p-1, +- 0x1.df85ea8db188ep-1, +- 0x1.e0522a5dfda73p-1, +- 0x1.e11a3e8cf4eb8p-1, +- 0x1.e1de36c75ba58p-1, +- 0x1.e29e22a89d766p-1, +- 0x1.e35a11b9b61cep-1, +- 0x1.e4121370224ccp-1, +- 0x1.e4c6372cd8927p-1, +- 0x1.e5768c3b4a3fcp-1, +- 0x1.e62321d06c5e0p-1, +- 0x1.e6cc0709c8a0dp-1, +- 0x1.e7714aec96534p-1, +- 0x1.e812fc64db369p-1, +- 0x1.e8b12a44944a8p-1, +- 0x1.e94be342e6743p-1, +- 0x1.e9e335fb56f87p-1, +- 0x1.ea7730ed0bbb9p-1, +- 0x1.eb07e27a133aap-1, +- 0x1.eb9558e6b42cep-1, +- 0x1.ec1fa258c4beap-1, +- 0x1.eca6ccd709544p-1, +- 0x1.ed2ae6489ac1ep-1, +- 0x1.edabfc7453e63p-1, +- 0x1.ee2a1d004692cp-1, +- 0x1.eea5557137ae0p-1, +- 0x1.ef1db32a2277cp-1, +- 0x1.ef93436bc2daap-1, +- 0x1.f006135426b26p-1, +- 0x1.f0762fde45ee6p-1, +- 0x1.f0e3a5e1a1788p-1, +- 0x1.f14e8211e8c55p-1, +- 0x1.f1b6d0fea5f4dp-1, +- 0x1.f21c9f12f0677p-1, +- 0x1.f27ff89525acfp-1, +- 0x1.f2e0e9a6a8b09p-1, +- 0x1.f33f7e43a706bp-1, +- 0x1.f39bc242e43e6p-1, +- 0x1.f3f5c1558b19ep-1, +- 0x1.f44d870704911p-1, +- 0x1.f4a31ebcd47dfp-1, +- 0x1.f4f693b67bd77p-1, +- 0x1.f547f10d60597p-1, +- 0x1.f59741b4b97cfp-1, +- 0x1.f5e4907982a07p-1, +- 0x1.f62fe80272419p-1, +- 0x1.f67952cff6282p-1, +- 0x1.f6c0db3c34641p-1, +- 0x1.f7068b7b10fd9p-1, +- 0x1.f74a6d9a38383p-1, +- 0x1.f78c8b812d498p-1, +- 0x1.f7cceef15d631p-1, +- 0x1.f80ba18636f07p-1, +- 0x1.f848acb544e95p-1, +- 0x1.f88419ce4e184p-1, +- 0x1.f8bdf1fb78370p-1, +- 0x1.f8f63e416ebffp-1, +- 0x1.f92d077f8d56dp-1, +- 0x1.f96256700da8ep-1, +- 0x1.f99633a838a57p-1, +- 0x1.f9c8a7989af0dp-1, +- 0x1.f9f9ba8d3c733p-1, +- 0x1.fa2974addae45p-1, +- 0x1.fa57ddfe27376p-1, +- 0x1.fa84fe5e05c8dp-1, +- 0x1.fab0dd89d1309p-1, +- 0x1.fadb831a9f9c3p-1, +- 0x1.fb04f6868a944p-1, +- 0x1.fb2d3f20f9101p-1, +- 0x1.fb54641aebbc9p-1, +- 0x1.fb7a6c834b5a2p-1, +- 0x1.fb9f5f4739170p-1, +- 0x1.fbc3433260ca5p-1, +- 0x1.fbe61eef4cf6ap-1, +- 0x1.fc07f907bc794p-1, +- 0x1.fc28d7e4f9cd0p-1, +- 0x1.fc48c1d033c7ap-1, +- 0x1.fc67bcf2d7b8fp-1, +- 0x1.fc85cf56ecd38p-1, +- 0x1.fca2fee770c79p-1, +- 0x1.fcbf5170b578bp-1, +- 0x1.fcdacca0bfb73p-1, +- 0x1.fcf57607a6e7cp-1, +- 0x1.fd0f5317f582fp-1, +- 0x1.fd2869270a56fp-1, +- 0x1.fd40bd6d7a785p-1, +- 0x1.fd58550773cb5p-1, +- 0x1.fd6f34f52013ap-1, +- 0x1.fd85621b0876dp-1, +- 0x1.fd9ae142795e3p-1, +- 0x1.fdafb719e6a69p-1, +- 0x1.fdc3e835500b3p-1, +- 0x1.fdd7790ea5bc0p-1, +- 0x1.fdea6e062d0c9p-1, +- 0x1.fdfccb62e52d3p-1, +- 0x1.fe0e9552ebdd6p-1, +- 0x1.fe1fcfebe2083p-1, +- 0x1.fe307f2b503d0p-1, +- 0x1.fe40a6f70af4bp-1, +- 0x1.fe504b1d9696cp-1, +- 0x1.fe5f6f568b301p-1, +- 0x1.fe6e1742f7cf6p-1, +- 0x1.fe7c466dc57a1p-1, +- 0x1.fe8a004c19ae6p-1, +- 0x1.fe97483db8670p-1, +- 0x1.fea4218d6594ap-1, +- 0x1.feb08f7146046p-1, +- 0x1.febc950b3fa75p-1, +- 0x1.fec835695932ep-1, +- 0x1.fed37386190fbp-1, +- 0x1.fede5248e38f4p-1, +- 0x1.fee8d486585eep-1, +- 0x1.fef2fd00af31ap-1, +- 0x1.fefcce6813974p-1, +- 0x1.ff064b5afffbep-1, +- 0x1.ff0f766697c76p-1, +- 0x1.ff18520700971p-1, +- 0x1.ff20e0a7ba8c2p-1, +- 0x1.ff2924a3f7a83p-1, +- 0x1.ff312046f2339p-1, +- 0x1.ff38d5cc4227fp-1, +- 0x1.ff404760319b4p-1, +- 0x1.ff47772010262p-1, +- 0x1.ff4e671a85425p-1, +- 0x1.ff55194fe19dfp-1, +- 0x1.ff5b8fb26f5f6p-1, +- 0x1.ff61cc26c1578p-1, +- 0x1.ff67d08401202p-1, +- 0x1.ff6d9e943c231p-1, +- 0x1.ff733814af88cp-1, +- 0x1.ff789eb6130c9p-1, +- 0x1.ff7dd41ce2b4dp-1, +- 0x1.ff82d9e1a76d8p-1, +- 0x1.ff87b1913e853p-1, +- 0x1.ff8c5cad200a5p-1, +- 0x1.ff90dcaba4096p-1, +- 0x1.ff9532f846ab0p-1, +- 0x1.ff9960f3eb327p-1, +- 0x1.ff9d67f51ddbap-1, +- 0x1.ffa14948549a7p-1, +- 0x1.ffa506302ebaep-1, +- 0x1.ffa89fe5b3625p-1, +- 0x1.ffac17988ef4bp-1, +- 0x1.ffaf6e6f4f5c0p-1, +- 0x1.ffb2a5879f35ep-1, +- 0x1.ffb5bdf67fe6fp-1, +- 0x1.ffb8b8c88295fp-1, +- 0x1.ffbb970200110p-1, +- 0x1.ffbe599f4f9d9p-1, +- 0x1.ffc10194fcb64p-1, +- 0x1.ffc38fcffbb7cp-1, +- 0x1.ffc60535dd7f5p-1, +- 0x1.ffc862a501fd7p-1, +- 0x1.ffcaa8f4c9beap-1, +- 0x1.ffccd8f5c66d1p-1, +- 0x1.ffcef371ea4d7p-1, +- 0x1.ffd0f92cb6ba7p-1, +- 0x1.ffd2eae369a07p-1, +- 0x1.ffd4c94d29fdbp-1, +- 0x1.ffd6951b33686p-1, +- 0x1.ffd84ef9009eep-1, +- 0x1.ffd9f78c7524ap-1, +- 0x1.ffdb8f7605ee7p-1, +- 0x1.ffdd1750e1220p-1, +- 0x1.ffde8fb314ebfp-1, +- 0x1.ffdff92db56e5p-1, +- 0x1.ffe1544d01ccbp-1, +- 0x1.ffe2a1988857cp-1, +- 0x1.ffe3e19349dc7p-1, +- 0x1.ffe514bbdc197p-1, +- 0x1.ffe63b8c8b5f7p-1, +- 0x1.ffe7567b7b5e1p-1, +- 0x1.ffe865fac722bp-1, +- 0x1.ffe96a78a04a9p-1, +- 0x1.ffea645f6d6dap-1, +- 0x1.ffeb5415e7c44p-1, +- 0x1.ffec39ff380b9p-1, +- 0x1.ffed167b12ac2p-1, +- 0x1.ffede9e5d3262p-1, +- 0x1.ffeeb49896c6dp-1, +- 0x1.ffef76e956a9fp-1, +- 0x1.fff0312b010b5p-1, +- 0x1.fff0e3ad91ec2p-1, +- 0x1.fff18ebe2b0e1p-1, +- 0x1.fff232a72b48ep-1, +- 0x1.fff2cfb0453d9p-1, +- 0x1.fff3661e9569dp-1, +- 0x1.fff3f634b79f9p-1, +- 0x1.fff48032dbe40p-1, +- 0x1.fff50456dab8cp-1, +- 0x1.fff582dc48d30p-1, +- 0x1.fff5fbfc8a439p-1, +- 0x1.fff66feee5129p-1, +- 0x1.fff6dee89352ep-1, +- 0x1.fff7491cd4af6p-1, +- 0x1.fff7aebcff755p-1, +- 0x1.fff80ff8911fdp-1, +- 0x1.fff86cfd3e657p-1, +- 0x1.fff8c5f702ccfp-1, +- 0x1.fff91b102fca8p-1, +- 0x1.fff96c717b695p-1, +- 0x1.fff9ba420e834p-1, +- 0x1.fffa04a7928b1p-1, +- 0x1.fffa4bc63ee9ap-1, +- 0x1.fffa8fc0e5f33p-1, +- 0x1.fffad0b901755p-1, +- 0x1.fffb0ecebee1bp-1, +- 0x1.fffb4a210b172p-1, +- 0x1.fffb82cd9dcbfp-1, +- 0x1.fffbb8f1049c6p-1, +- 0x1.fffbeca6adbe9p-1, +- 0x1.fffc1e08f25f5p-1, +- 0x1.fffc4d3120aa1p-1, +- 0x1.fffc7a37857d2p-1, +- 0x1.fffca53375ce3p-1, +- 0x1.fffcce3b57bffp-1, +- 0x1.fffcf564ab6b7p-1, +- 0x1.fffd1ac4135f9p-1, +- 0x1.fffd3e6d5cd87p-1, +- 0x1.fffd607387b07p-1, +- 0x1.fffd80e8ce0dap-1, +- 0x1.fffd9fdeabccep-1, +- 0x1.fffdbd65e5ad0p-1, +- 0x1.fffdd98e903b2p-1, +- 0x1.fffdf46816833p-1, +- 0x1.fffe0e0140857p-1, +- 0x1.fffe26683972ap-1, +- 0x1.fffe3daa95b18p-1, +- 0x1.fffe53d558ae9p-1, +- 0x1.fffe68f4fa777p-1, +- 0x1.fffe7d156d244p-1, +- 0x1.fffe904222101p-1, +- 0x1.fffea2860ee1ep-1, +- 0x1.fffeb3ebb267bp-1, +- 0x1.fffec47d19457p-1, +- 0x1.fffed443e2787p-1, +- 0x1.fffee34943b15p-1, +- 0x1.fffef1960d85dp-1, +- 0x1.fffeff32af7afp-1, +- 0x1.ffff0c273bea2p-1, +- 0x1.ffff187b6bc0ep-1, +- 0x1.ffff2436a21dcp-1, +- 0x1.ffff2f5fefcaap-1, +- 0x1.ffff39fe16963p-1, +- 0x1.ffff44178c8d2p-1, +- 0x1.ffff4db27f146p-1, +- 0x1.ffff56d4d5e5ep-1, +- 0x1.ffff5f8435efcp-1, +- 0x1.ffff67c604180p-1, +- 0x1.ffff6f9f67e55p-1, +- 0x1.ffff77154e0d6p-1, +- 0x1.ffff7e2c6aea2p-1, +- 0x1.ffff84e93cd75p-1, +- 0x1.ffff8b500e77cp-1, +- 0x1.ffff9164f8e46p-1, +- 0x1.ffff972be5c59p-1, +- 0x1.ffff9ca891572p-1, +- 0x1.ffffa1de8c582p-1, +- 0x1.ffffa6d13de73p-1, +- 0x1.ffffab83e54b8p-1, +- 0x1.ffffaff99bac4p-1, +- 0x1.ffffb43555b5fp-1, +- 0x1.ffffb839e52f3p-1, +- 0x1.ffffbc09fa7cdp-1, +- 0x1.ffffbfa82616bp-1, +- 0x1.ffffc316d9ed0p-1, +- 0x1.ffffc6586abf6p-1, +- 0x1.ffffc96f1165ep-1, +- 0x1.ffffcc5cec0c1p-1, +- 0x1.ffffcf23ff5fcp-1, +- 0x1.ffffd1c637b2bp-1, +- 0x1.ffffd4456a10dp-1, +- 0x1.ffffd6a3554a1p-1, +- 0x1.ffffd8e1a2f22p-1, +- 0x1.ffffdb01e8546p-1, +- 0x1.ffffdd05a75eap-1, +- 0x1.ffffdeee4f810p-1, +- 0x1.ffffe0bd3e852p-1, +- 0x1.ffffe273c15b7p-1, +- 0x1.ffffe41314e06p-1, +- 0x1.ffffe59c6698bp-1, +- 0x1.ffffe710d565ep-1, +- 0x1.ffffe8717232dp-1, +- 0x1.ffffe9bf4098cp-1, +- 0x1.ffffeafb377d5p-1, +- 0x1.ffffec2641a9ep-1, +- 0x1.ffffed413e5b7p-1, +- 0x1.ffffee4d01cd6p-1, +- 0x1.ffffef4a55bd4p-1, +- 0x1.fffff039f9e8fp-1, +- 0x1.fffff11ca4876p-1, +- 0x1.fffff1f302bc1p-1, +- 0x1.fffff2bdb904dp-1, +- 0x1.fffff37d63a36p-1, +- 0x1.fffff43297019p-1, +- 0x1.fffff4dde0118p-1, +- 0x1.fffff57fc4a95p-1, +- 0x1.fffff618c3da6p-1, +- 0x1.fffff6a956450p-1, +- 0x1.fffff731ee681p-1, +- 0x1.fffff7b2f8ed6p-1, +- 0x1.fffff82cdcf1bp-1, +- 0x1.fffff89ffc4aap-1, +- 0x1.fffff90cb3c81p-1, +- 0x1.fffff9735b73bp-1, +- 0x1.fffff9d446cccp-1, +- 0x1.fffffa2fc5015p-1, +- 0x1.fffffa8621251p-1, +- 0x1.fffffad7a2652p-1, +- 0x1.fffffb248c39dp-1, +- 0x1.fffffb6d1e95dp-1, +- 0x1.fffffbb196132p-1, +- 0x1.fffffbf22c1e2p-1, +- 0x1.fffffc2f171e3p-1, +- 0x1.fffffc688a9cfp-1, +- 0x1.fffffc9eb76acp-1, +- 0x1.fffffcd1cbc28p-1, +- 0x1.fffffd01f36afp-1, +- 0x1.fffffd2f57d68p-1, +- 0x1.fffffd5a2041fp-1, +- 0x1.fffffd8271d12p-1, +- 0x1.fffffda86faa9p-1, +- 0x1.fffffdcc3b117p-1, +- 0x1.fffffdedf37edp-1, +- 0x1.fffffe0db6b91p-1, +- 0x1.fffffe2ba0ea5p-1, +- 0x1.fffffe47ccb60p-1, +- 0x1.fffffe62534d4p-1, +- 0x1.fffffe7b4c81ep-1, +- 0x1.fffffe92ced93p-1, +- 0x1.fffffea8ef9cfp-1, +- 0x1.fffffebdc2ec6p-1, +- 0x1.fffffed15bcbap-1, +- 0x1.fffffee3cc32cp-1, +- 0x1.fffffef5251c2p-1, +- 0x1.ffffff0576917p-1, +- 0x1.ffffff14cfb92p-1, +- 0x1.ffffff233ee1dp-1, +- 0x1.ffffff30d18e8p-1, +- 0x1.ffffff3d9480fp-1, +- 0x1.ffffff4993c46p-1, +- 0x1.ffffff54dab72p-1, +- 0x1.ffffff5f74141p-1, +- 0x1.ffffff6969fb8p-1, +- 0x1.ffffff72c5fb6p-1, +- 0x1.ffffff7b91176p-1, +- 0x1.ffffff83d3d07p-1, +- 0x1.ffffff8b962bep-1, +- 0x1.ffffff92dfba2p-1, +- 0x1.ffffff99b79d2p-1, +- 0x1.ffffffa0248e8p-1, +- 0x1.ffffffa62ce54p-1, +- 0x1.ffffffabd69b4p-1, +- 0x1.ffffffb127525p-1, +- 0x1.ffffffb624592p-1, +- 0x1.ffffffbad2affp-1, +- 0x1.ffffffbf370cdp-1, +- 0x1.ffffffc355dfdp-1, +- 0x1.ffffffc733572p-1, +- 0x1.ffffffcad3626p-1, +- 0x1.ffffffce39b67p-1, +- 0x1.ffffffd169d0cp-1, +- 0x1.ffffffd466fa5p-1, +- 0x1.ffffffd7344aap-1, +- 0x1.ffffffd9d4aabp-1, +- 0x1.ffffffdc4ad7ap-1, +- 0x1.ffffffde9964ep-1, +- 0x1.ffffffe0c2bf0p-1, +- 0x1.ffffffe2c92dbp-1, +- 0x1.ffffffe4aed5ep-1, +- 0x1.ffffffe675bbdp-1, +- 0x1.ffffffe81fc4ep-1, +- 0x1.ffffffe9aeb97p-1, +- 0x1.ffffffeb24467p-1, +- 0x1.ffffffec81ff2p-1, +- 0x1.ffffffedc95e7p-1, +- 0x1.ffffffeefbc85p-1, +- 0x1.fffffff01a8b6p-1, +- 0x1.fffffff126e1ep-1, +- 0x1.fffffff221f30p-1, +- 0x1.fffffff30cd3fp-1, +- 0x1.fffffff3e8892p-1, +- 0x1.fffffff4b606fp-1, +- 0x1.fffffff57632dp-1, +- 0x1.fffffff629e44p-1, +- 0x1.fffffff6d1e56p-1, +- 0x1.fffffff76ef3fp-1, +- 0x1.fffffff801c1fp-1, +- 0x1.fffffff88af67p-1, +- 0x1.fffffff90b2e3p-1, +- 0x1.fffffff982fc1p-1, +- 0x1.fffffff9f2e9fp-1, +- 0x1.fffffffa5b790p-1, +- 0x1.fffffffabd229p-1, +- 0x1.fffffffb18582p-1, +- 0x1.fffffffb6d844p-1, +- 0x1.fffffffbbd0aap-1, +- 0x1.fffffffc0748fp-1, +- 0x1.fffffffc4c96cp-1, +- 0x1.fffffffc8d462p-1, +- 0x1.fffffffcc9a41p-1, +- 0x1.fffffffd01f89p-1, +- 0x1.fffffffd36871p-1, +- 0x1.fffffffd678edp-1, +- 0x1.fffffffd954aep-1, +- 0x1.fffffffdbff2ap-1, +- 0x1.fffffffde7ba0p-1, +- 0x1.fffffffe0cd16p-1, +- 0x1.fffffffe2f664p-1, +- 0x1.fffffffe4fa30p-1, +- 0x1.fffffffe6daf7p-1, +- 0x1.fffffffe89b0cp-1, +- 0x1.fffffffea3c9ap-1, +- 0x1.fffffffebc1a9p-1, +- 0x1.fffffffed2c21p-1, +- 0x1.fffffffee7dc8p-1, +- 0x1.fffffffefb847p-1, +- 0x1.ffffffff0dd2bp-1, +- 0x1.ffffffff1ede9p-1, +- 0x1.ffffffff2ebdap-1, +- 0x1.ffffffff3d843p-1, +- 0x1.ffffffff4b453p-1, +- 0x1.ffffffff58126p-1, +- 0x1.ffffffff63fc3p-1, +- 0x1.ffffffff6f121p-1, +- 0x1.ffffffff79626p-1, +- 0x1.ffffffff82fabp-1, +- 0x1.ffffffff8be77p-1, +- 0x1.ffffffff94346p-1, +- 0x1.ffffffff9bec8p-1, +- 0x1.ffffffffa319fp-1, +- 0x1.ffffffffa9c63p-1, +- 0x1.ffffffffaffa4p-1, +- 0x1.ffffffffb5be5p-1, +- 0x1.ffffffffbb1a2p-1, +- 0x1.ffffffffc014ep-1, +- 0x1.ffffffffc4b56p-1, +- 0x1.ffffffffc901cp-1, +- 0x1.ffffffffccfffp-1, +- 0x1.ffffffffd0b56p-1, +- 0x1.ffffffffd4271p-1, +- 0x1.ffffffffd759dp-1, +- 0x1.ffffffffda520p-1, +- 0x1.ffffffffdd13cp-1, +- 0x1.ffffffffdfa2dp-1, +- 0x1.ffffffffe202dp-1, +- 0x1.ffffffffe4371p-1, +- 0x1.ffffffffe642ap-1, +- 0x1.ffffffffe8286p-1, +- 0x1.ffffffffe9eb0p-1, +- 0x1.ffffffffeb8d0p-1, +- 0x1.ffffffffed10ap-1, +- 0x1.ffffffffee782p-1, +- 0x1.ffffffffefc57p-1, +- 0x1.fffffffff0fa7p-1, +- 0x1.fffffffff218fp-1, +- 0x1.fffffffff3227p-1, +- 0x1.fffffffff4188p-1, +- 0x1.fffffffff4fc9p-1, +- 0x1.fffffffff5cfdp-1, +- 0x1.fffffffff6939p-1, +- 0x1.fffffffff748ep-1, +- 0x1.fffffffff7f0dp-1, +- 0x1.fffffffff88c5p-1, +- 0x1.fffffffff91c6p-1, +- 0x1.fffffffff9a1bp-1, +- 0x1.fffffffffa1d2p-1, +- 0x1.fffffffffa8f6p-1, +- 0x1.fffffffffaf92p-1, +- 0x1.fffffffffb5b0p-1, +- 0x1.fffffffffbb58p-1, +- 0x1.fffffffffc095p-1, +- 0x1.fffffffffc56dp-1, +- 0x1.fffffffffc9e8p-1, +- 0x1.fffffffffce0dp-1, +- 0x1.fffffffffd1e1p-1, +- 0x1.fffffffffd56cp-1, +- 0x1.fffffffffd8b3p-1, +- 0x1.fffffffffdbbap-1, +- 0x1.fffffffffde86p-1, +- 0x1.fffffffffe11dp-1, +- 0x1.fffffffffe380p-1, +- 0x1.fffffffffe5b6p-1, +- 0x1.fffffffffe7c0p-1, +- 0x1.fffffffffe9a2p-1, +- 0x1.fffffffffeb60p-1, +- 0x1.fffffffffecfbp-1, +- 0x1.fffffffffee77p-1, +- 0x1.fffffffffefd6p-1, +- 0x1.ffffffffff11ap-1, +- 0x1.ffffffffff245p-1, +- 0x1.ffffffffff359p-1, +- 0x1.ffffffffff457p-1, +- 0x1.ffffffffff542p-1, +- 0x1.ffffffffff61bp-1, +- 0x1.ffffffffff6e3p-1, +- 0x1.ffffffffff79bp-1, +- 0x1.ffffffffff845p-1, +- 0x1.ffffffffff8e2p-1, +- 0x1.ffffffffff973p-1, +- 0x1.ffffffffff9f8p-1, +- 0x1.ffffffffffa73p-1, +- 0x1.ffffffffffae4p-1, +- 0x1.ffffffffffb4cp-1, +- 0x1.ffffffffffbadp-1, +- 0x1.ffffffffffc05p-1, +- 0x1.ffffffffffc57p-1, +- 0x1.ffffffffffca2p-1, +- 0x1.ffffffffffce7p-1, +- 0x1.ffffffffffd27p-1, +- 0x1.ffffffffffd62p-1, +- 0x1.ffffffffffd98p-1, +- 0x1.ffffffffffdcap-1, +- 0x1.ffffffffffdf8p-1, +- 0x1.ffffffffffe22p-1, +- 0x1.ffffffffffe49p-1, +- 0x1.ffffffffffe6cp-1, +- 0x1.ffffffffffe8dp-1, +- 0x1.ffffffffffeabp-1, +- 0x1.ffffffffffec7p-1, +- 0x1.ffffffffffee1p-1, +- 0x1.ffffffffffef8p-1, +- 0x1.fffffffffff0ep-1, +- 0x1.fffffffffff22p-1, +- 0x1.fffffffffff34p-1, +- 0x1.fffffffffff45p-1, +- 0x1.fffffffffff54p-1, +- 0x1.fffffffffff62p-1, +- 0x1.fffffffffff6fp-1, +- 0x1.fffffffffff7bp-1, +- 0x1.fffffffffff86p-1, +- 0x1.fffffffffff90p-1, +- 0x1.fffffffffff9ap-1, +- 0x1.fffffffffffa2p-1, +- 0x1.fffffffffffaap-1, +- 0x1.fffffffffffb1p-1, +- 0x1.fffffffffffb8p-1, +- 0x1.fffffffffffbep-1, +- 0x1.fffffffffffc3p-1, +- 0x1.fffffffffffc8p-1, +- 0x1.fffffffffffcdp-1, +- 0x1.fffffffffffd1p-1, +- 0x1.fffffffffffd5p-1, +- 0x1.fffffffffffd9p-1, +- 0x1.fffffffffffdcp-1, +- 0x1.fffffffffffdfp-1, +- 0x1.fffffffffffe2p-1, +- 0x1.fffffffffffe4p-1, +- 0x1.fffffffffffe7p-1, +- 0x1.fffffffffffe9p-1, +- 0x1.fffffffffffebp-1, +- 0x1.fffffffffffedp-1, +- 0x1.fffffffffffeep-1, +- 0x1.ffffffffffff0p-1, +- 0x1.ffffffffffff1p-1, +- 0x1.ffffffffffff3p-1, +- 0x1.ffffffffffff4p-1, +- 0x1.ffffffffffff5p-1, +- 0x1.ffffffffffff6p-1, +- 0x1.ffffffffffff7p-1, +- 0x1.ffffffffffff7p-1, +- 0x1.ffffffffffff8p-1, +- 0x1.ffffffffffff9p-1, +- 0x1.ffffffffffff9p-1, +- 0x1.ffffffffffffap-1, +- 0x1.ffffffffffffbp-1, +- 0x1.ffffffffffffbp-1, +- 0x1.ffffffffffffbp-1, +- 0x1.ffffffffffffcp-1, +- 0x1.ffffffffffffcp-1, +- 0x1.ffffffffffffdp-1, +- 0x1.ffffffffffffdp-1, +- 0x1.ffffffffffffdp-1, +- 0x1.ffffffffffffdp-1, +- 0x1.ffffffffffffep-1, +- 0x1.ffffffffffffep-1, +- 0x1.ffffffffffffep-1, +- 0x1.ffffffffffffep-1, +- 0x1.ffffffffffffep-1, +- 0x1.ffffffffffffep-1, +- 0x1.fffffffffffffp-1, +- 0x1.fffffffffffffp-1, +- 0x1.fffffffffffffp-1, +- 0x1.fffffffffffffp-1, +- 0x1.fffffffffffffp-1, +- 0x1.fffffffffffffp-1, +- 0x1.fffffffffffffp-1, +- 0x1.fffffffffffffp-1, +- 0x1.fffffffffffffp-1, +- 0x1.fffffffffffffp-1, +- 0x1.fffffffffffffp-1, +- 0x1.0000000000000p+0, +- 0x1.0000000000000p+0, +- 0x1.0000000000000p+0, +- 0x1.0000000000000p+0, +- 0x1.0000000000000p+0, +- 0x1.0000000000000p+0, +- 0x1.0000000000000p+0, +- 0x1.0000000000000p+0, +- 0x1.0000000000000p+0, +- 0x1.0000000000000p+0, +- 0x1.0000000000000p+0, +- }, +- .scale = { 0x1.20dd750429b6dp+0, +- 0x1.20d8f1975c85dp+0, +- 0x1.20cb67bd452c7p+0, +- 0x1.20b4d8bac36c1p+0, +- 0x1.209546ad13ccfp+0, +- 0x1.206cb4897b148p+0, +- 0x1.203b261cd0052p+0, +- 0x1.2000a00ae3804p+0, +- 0x1.1fbd27cdc72d3p+0, +- 0x1.1f70c3b4f2cc7p+0, +- 0x1.1f1b7ae44867fp+0, +- 0x1.1ebd5552f795bp+0, +- 0x1.1e565bca400d4p+0, +- 0x1.1de697e413d28p+0, +- 0x1.1d6e14099944ap+0, +- 0x1.1cecdb718d61cp+0, +- 0x1.1c62fa1e869b6p+0, +- 0x1.1bd07cdd189acp+0, +- 0x1.1b357141d95d5p+0, +- 0x1.1a91e5a748165p+0, +- 0x1.19e5e92b964abp+0, +- 0x1.19318bae53a04p+0, +- 0x1.1874ddcdfce24p+0, +- 0x1.17aff0e56ec10p+0, +- 0x1.16e2d7093cd8cp+0, +- 0x1.160da304ed92fp+0, +- 0x1.153068581b781p+0, +- 0x1.144b3b337c90cp+0, +- 0x1.135e3075d076bp+0, +- 0x1.12695da8b5bdep+0, +- 0x1.116cd8fd67618p+0, +- 0x1.1068b94962e5ep+0, +- 0x1.0f5d1602f7e41p+0, +- 0x1.0e4a073dc1b91p+0, +- 0x1.0d2fa5a70c168p+0, +- 0x1.0c0e0a8223359p+0, +- 0x1.0ae54fa490722p+0, +- 0x1.09b58f724416bp+0, +- 0x1.087ee4d9ad247p+0, +- 0x1.07416b4fbfe7cp+0, +- 0x1.05fd3ecbec297p+0, +- 0x1.04b27bc403d30p+0, +- 0x1.03613f2812dafp+0, +- 0x1.0209a65e29545p+0, +- 0x1.00abcf3e187a9p+0, +- 0x1.fe8fb01a47307p-1, +- 0x1.fbbbbef34b4b2p-1, +- 0x1.f8dc092d58ff8p-1, +- 0x1.f5f0cdaf15313p-1, +- 0x1.f2fa4c16c0019p-1, +- 0x1.eff8c4b1375dbp-1, +- 0x1.ecec7870ebca7p-1, +- 0x1.e9d5a8e4c934ep-1, +- 0x1.e6b4982f158b9p-1, +- 0x1.e38988fc46e72p-1, +- 0x1.e054be79d3042p-1, +- 0x1.dd167c4cf9d2ap-1, +- 0x1.d9cf06898cdafp-1, +- 0x1.d67ea1a8b5368p-1, +- 0x1.d325927fb9d89p-1, +- 0x1.cfc41e36c7df9p-1, +- 0x1.cc5a8a3fbea40p-1, +- 0x1.c8e91c4d01368p-1, +- 0x1.c5701a484ef9dp-1, +- 0x1.c1efca49a5011p-1, +- 0x1.be68728e29d5dp-1, +- 0x1.bada596f25436p-1, +- 0x1.b745c55905bf8p-1, +- 0x1.b3aafcc27502ep-1, +- 0x1.b00a46237d5bep-1, +- 0x1.ac63e7ecc1411p-1, +- 0x1.a8b8287ec6a09p-1, +- 0x1.a5074e2157620p-1, +- 0x1.a1519efaf889ep-1, +- 0x1.9d97610879642p-1, +- 0x1.99d8da149c13fp-1, +- 0x1.96164fafd8de3p-1, +- 0x1.925007283d7aap-1, +- 0x1.8e86458169af8p-1, +- 0x1.8ab94f6caa71dp-1, +- 0x1.86e9694134b9ep-1, +- 0x1.8316d6f48133dp-1, +- 0x1.7f41dc12c9e89p-1, +- 0x1.7b6abbb7aaf19p-1, +- 0x1.7791b886e7403p-1, +- 0x1.73b714a552763p-1, +- 0x1.6fdb11b1e0c34p-1, +- 0x1.6bfdf0beddaf5p-1, +- 0x1.681ff24b4ab04p-1, +- 0x1.6441563c665d4p-1, +- 0x1.60625bd75d07bp-1, +- 0x1.5c8341bb23767p-1, +- 0x1.58a445da7c74cp-1, +- 0x1.54c5a57629db0p-1, +- 0x1.50e79d1749ac9p-1, +- 0x1.4d0a6889dfd9fp-1, +- 0x1.492e42d78d2c5p-1, +- 0x1.4553664273d24p-1, +- 0x1.417a0c4049fd0p-1, +- 0x1.3da26d759aef5p-1, +- 0x1.39ccc1b136d5ap-1, +- 0x1.35f93fe7d1b3dp-1, +- 0x1.32281e2fd1a92p-1, +- 0x1.2e5991bd4cbfcp-1, +- 0x1.2a8dcede3673bp-1, +- 0x1.26c508f6bd0ffp-1, +- 0x1.22ff727dd6f7bp-1, +- 0x1.1f3d3cf9ffe5ap-1, +- 0x1.1b7e98fe26217p-1, +- 0x1.17c3b626c7a11p-1, +- 0x1.140cc3173f007p-1, +- 0x1.1059ed7740313p-1, +- 0x1.0cab61f084b93p-1, +- 0x1.09014c2ca74dap-1, +- 0x1.055bd6d32e8d7p-1, +- 0x1.01bb2b87c6968p-1, +- 0x1.fc3ee5d1524b0p-2, +- 0x1.f511a91a67d2ap-2, +- 0x1.edeeee0959518p-2, +- 0x1.e6d6ffaa65a25p-2, +- 0x1.dfca26f5bbf88p-2, +- 0x1.d8c8aace11e63p-2, +- 0x1.d1d2cfff91594p-2, +- 0x1.cae8d93f1d7b6p-2, +- 0x1.c40b0729ed547p-2, +- 0x1.bd3998457afdap-2, +- 0x1.b674c8ffc6283p-2, +- 0x1.afbcd3afe8ab6p-2, +- 0x1.a911f096fbc26p-2, +- 0x1.a27455e14c93cp-2, +- 0x1.9be437a7de946p-2, +- 0x1.9561c7f23a47bp-2, +- 0x1.8eed36b886d93p-2, +- 0x1.8886b1e5ecfd1p-2, +- 0x1.822e655b417e6p-2, +- 0x1.7be47af1f5d89p-2, +- 0x1.75a91a7f4d2edp-2, +- 0x1.6f7c69d7d3ef8p-2, +- 0x1.695e8cd31867ep-2, +- 0x1.634fa54fa285fp-2, +- 0x1.5d4fd33729015p-2, +- 0x1.575f3483021c3p-2, +- 0x1.517de540ce2a3p-2, +- 0x1.4babff975a04cp-2, +- 0x1.45e99bcbb7915p-2, +- 0x1.4036d0468a7a2p-2, +- 0x1.3a93b1998736cp-2, +- 0x1.35005285227f1p-2, +- 0x1.2f7cc3fe6f423p-2, +- 0x1.2a09153529381p-2, +- 0x1.24a55399ea239p-2, +- 0x1.1f518ae487dc8p-2, +- 0x1.1a0dc51a9934dp-2, +- 0x1.14da0a961fd14p-2, +- 0x1.0fb6620c550afp-2, +- 0x1.0aa2d09497f2bp-2, +- 0x1.059f59af7a906p-2, +- 0x1.00abff4dec7a3p-2, +- 0x1.f79183b101c5bp-3, +- 0x1.edeb406d9c824p-3, +- 0x1.e4652fadcb6b2p-3, +- 0x1.daff4969c0b04p-3, +- 0x1.d1b982c501370p-3, +- 0x1.c893ce1dcbef7p-3, +- 0x1.bf8e1b1ca2279p-3, +- 0x1.b6a856c3ed54fp-3, +- 0x1.ade26b7fbed95p-3, +- 0x1.a53c4135a6526p-3, +- 0x1.9cb5bd549b111p-3, +- 0x1.944ec2e4f5630p-3, +- 0x1.8c07329874652p-3, +- 0x1.83deeada4d25ap-3, +- 0x1.7bd5c7df3fe9cp-3, +- 0x1.73eba3b5b07b7p-3, +- 0x1.6c205655be71fp-3, +- 0x1.6473b5b15a7a1p-3, +- 0x1.5ce595c455b0ap-3, +- 0x1.5575c8a468361p-3, +- 0x1.4e241e912c305p-3, +- 0x1.46f066040a832p-3, +- 0x1.3fda6bc016994p-3, +- 0x1.38e1fae1d6a9dp-3, +- 0x1.3206dceef5f87p-3, +- 0x1.2b48d9e5dea1cp-3, +- 0x1.24a7b84d38971p-3, +- 0x1.1e233d434b813p-3, +- 0x1.17bb2c8d41535p-3, +- 0x1.116f48a6476ccp-3, +- 0x1.0b3f52ce8c383p-3, +- 0x1.052b0b1a174eap-3, +- 0x1.fe6460fef4680p-4, +- 0x1.f2a901ccafb37p-4, +- 0x1.e723726b824a9p-4, +- 0x1.dbd32ac4c99b0p-4, +- 0x1.d0b7a0f921e7cp-4, +- 0x1.c5d0497c09e74p-4, +- 0x1.bb1c972f23e50p-4, +- 0x1.b09bfb7d11a83p-4, +- 0x1.a64de673e8837p-4, +- 0x1.9c31c6df3b1b8p-4, +- 0x1.92470a61b6965p-4, +- 0x1.888d1d8e510a3p-4, +- 0x1.7f036c0107294p-4, +- 0x1.75a96077274bap-4, +- 0x1.6c7e64e7281cbp-4, +- 0x1.6381e2980956bp-4, +- 0x1.5ab342383d177p-4, +- 0x1.5211ebf41880bp-4, +- 0x1.499d478bca735p-4, +- 0x1.4154bc68d75c3p-4, +- 0x1.3937b1b319259p-4, +- 0x1.31458e6542847p-4, +- 0x1.297db960e4f63p-4, +- 0x1.21df9981f8e53p-4, +- 0x1.1a6a95b1e786fp-4, +- 0x1.131e14fa1625dp-4, +- 0x1.0bf97e95f2a64p-4, +- 0x1.04fc3a0481321p-4, +- 0x1.fc4b5e32d6259p-5, +- 0x1.eeea8c1b1db93p-5, +- 0x1.e1d4cf1e2450ap-5, +- 0x1.d508f9a1ea64ep-5, +- 0x1.c885df3451a07p-5, +- 0x1.bc4a54a84e834p-5, +- 0x1.b055303221015p-5, +- 0x1.a4a549829587ep-5, +- 0x1.993979e14fffdp-5, +- 0x1.8e109c4622913p-5, +- 0x1.83298d717210ep-5, +- 0x1.78832c03aa2b1p-5, +- 0x1.6e1c5893c380bp-5, +- 0x1.63f3f5c4de13bp-5, +- 0x1.5a08e85af27e0p-5, +- 0x1.505a174e9c929p-5, +- 0x1.46e66be002240p-5, +- 0x1.3dacd1a8d8ccdp-5, +- 0x1.34ac36ad8dafep-5, +- 0x1.2be38b6d92415p-5, +- 0x1.2351c2f2d1449p-5, +- 0x1.1af5d2e04f3f6p-5, +- 0x1.12ceb37ff9bc3p-5, +- 0x1.0adb5fcfa8c75p-5, +- 0x1.031ad58d56279p-5, +- 0x1.f7182a851bca2p-6, +- 0x1.e85c449e377f2p-6, +- 0x1.da0005e5f28dfp-6, +- 0x1.cc0180af00a8bp-6, +- 0x1.be5ecd2fcb5f9p-6, +- 0x1.b1160991ff737p-6, +- 0x1.a4255a00b9f03p-6, +- 0x1.978ae8b55ce1bp-6, +- 0x1.8b44e6031383ep-6, +- 0x1.7f5188610ddc8p-6, +- 0x1.73af0c737bb45p-6, +- 0x1.685bb5134ef13p-6, +- 0x1.5d55cb54cd53ap-6, +- 0x1.529b9e8cf9a1ep-6, +- 0x1.482b8455dc491p-6, +- 0x1.3e03d891b37dep-6, +- 0x1.3422fd6d12e2bp-6, +- 0x1.2a875b5ffab56p-6, +- 0x1.212f612dee7fbp-6, +- 0x1.181983e5133ddp-6, +- 0x1.0f443edc5ce49p-6, +- 0x1.06ae13b0d3255p-6, +- 0x1.fcab1483ea7fcp-7, +- 0x1.ec72615a894c4p-7, +- 0x1.dcaf3691fc448p-7, +- 0x1.cd5ec93c12431p-7, +- 0x1.be7e5ac24963bp-7, +- 0x1.b00b38d6b3575p-7, +- 0x1.a202bd6372dcep-7, +- 0x1.94624e78e0fafp-7, +- 0x1.87275e3a6869dp-7, +- 0x1.7a4f6aca256cbp-7, +- 0x1.6dd7fe3358230p-7, +- 0x1.61beae53b72b7p-7, +- 0x1.56011cc3b036dp-7, +- 0x1.4a9cf6bda3f4cp-7, +- 0x1.3f8ff5042a88ep-7, +- 0x1.34d7dbc76d7e5p-7, +- 0x1.2a727a89a3f14p-7, +- 0x1.205dac02bd6b9p-7, +- 0x1.1697560347b25p-7, +- 0x1.0d1d69569b82dp-7, +- 0x1.03ede1a45bfeep-7, +- 0x1.f60d8aa2a88f2p-8, +- 0x1.e4cc4abf7d065p-8, +- 0x1.d4143a9dfe965p-8, +- 0x1.c3e1a5f5c077cp-8, +- 0x1.b430ecf4a83a8p-8, +- 0x1.a4fe83fb9db25p-8, +- 0x1.9646f35a76623p-8, +- 0x1.8806d70b2fc36p-8, +- 0x1.7a3ade6c8b3e4p-8, +- 0x1.6cdfcbfc1e263p-8, +- 0x1.5ff2750fe7820p-8, +- 0x1.536fc18f7ce5cp-8, +- 0x1.4754abacdf1dcp-8, +- 0x1.3b9e3f9d06e3fp-8, +- 0x1.30499b503957fp-8, +- 0x1.2553ee2a336bfp-8, +- 0x1.1aba78ba3af89p-8, +- 0x1.107a8c7323a6ep-8, +- 0x1.06918b6355624p-8, +- 0x1.f9f9cfd9c3035p-9, +- 0x1.e77448fb66bb9p-9, +- 0x1.d58da68fd1170p-9, +- 0x1.c4412bf4b8f0bp-9, +- 0x1.b38a3af2e55b4p-9, +- 0x1.a3645330550ffp-9, +- 0x1.93cb11a30d765p-9, +- 0x1.84ba3004a50d0p-9, +- 0x1.762d84469c18fp-9, +- 0x1.6821000795a03p-9, +- 0x1.5a90b00981d93p-9, +- 0x1.4d78bba8ca5fdp-9, +- 0x1.40d564548fad7p-9, +- 0x1.34a305080681fp-9, +- 0x1.28de11c5031ebp-9, +- 0x1.1d83170fbf6fbp-9, +- 0x1.128eb96be8798p-9, +- 0x1.07fdb4dafea5fp-9, +- 0x1.fb99b8b8279e1p-10, +- 0x1.e7f232d9e2630p-10, +- 0x1.d4fed7195d7e8p-10, +- 0x1.c2b9cf7f893bfp-10, +- 0x1.b11d702b3deb1p-10, +- 0x1.a024365f771bdp-10, +- 0x1.8fc8c794b03b5p-10, +- 0x1.8005f08d6f1efp-10, +- 0x1.70d6a46e07ddap-10, +- 0x1.6235fbd7a4345p-10, +- 0x1.541f340697987p-10, +- 0x1.468dadf4080abp-10, +- 0x1.397ced7af2b15p-10, +- 0x1.2ce898809244ep-10, +- 0x1.20cc76202c5fap-10, +- 0x1.15246dda49d47p-10, +- 0x1.09ec86c75d497p-10, +- 0x1.fe41cd9bb4eeep-11, +- 0x1.e97ba3b77f306p-11, +- 0x1.d57f524723822p-11, +- 0x1.c245d4b998479p-11, +- 0x1.afc85e0f82e12p-11, +- 0x1.9e005769dbc1dp-11, +- 0x1.8ce75e9f6f8a0p-11, +- 0x1.7c7744d9378f7p-11, +- 0x1.6caa0d3582fe9p-11, +- 0x1.5d79eb71e893bp-11, +- 0x1.4ee1429bf7cc0p-11, +- 0x1.40daa3c89f5b6p-11, +- 0x1.3360ccd23db3ap-11, +- 0x1.266ea71d4f71ap-11, +- 0x1.19ff4663ae9dfp-11, +- 0x1.0e0de78654d1ep-11, +- 0x1.0295ef6591848p-11, +- 0x1.ef25d37f49fe1p-12, +- 0x1.da01102b5f851p-12, +- 0x1.c5b5412dcafadp-12, +- 0x1.b23a5a23e4210p-12, +- 0x1.9f8893d8fd1c1p-12, +- 0x1.8d986a4187285p-12, +- 0x1.7c629a822bc9ep-12, +- 0x1.6be02102b3520p-12, +- 0x1.5c0a378c90bcap-12, +- 0x1.4cda5374ea275p-12, +- 0x1.3e4a23d1f4702p-12, +- 0x1.30538fbb77ecdp-12, +- 0x1.22f0b496539bdp-12, +- 0x1.161be46ad3b50p-12, +- 0x1.09cfa445b00ffp-12, +- 0x1.fc0d55470cf51p-13, +- 0x1.e577bbcd49935p-13, +- 0x1.cfd4a5adec5bfp-13, +- 0x1.bb1a9657ce465p-13, +- 0x1.a740684026555p-13, +- 0x1.943d4a1d1ed39p-13, +- 0x1.8208bc334a6a5p-13, +- 0x1.709a8db59f25cp-13, +- 0x1.5feada379d8b7p-13, +- 0x1.4ff207314a102p-13, +- 0x1.40a8c1949f75ep-13, +- 0x1.3207fb7420eb9p-13, +- 0x1.2408e9ba3327fp-13, +- 0x1.16a501f0e42cap-13, +- 0x1.09d5f819c9e29p-13, +- 0x1.fb2b792b40a22p-14, +- 0x1.e3bcf436a1a95p-14, +- 0x1.cd55277c18d05p-14, +- 0x1.b7e94604479dcp-14, +- 0x1.a36eec00926ddp-14, +- 0x1.8fdc1b2dcf7b9p-14, +- 0x1.7d2737527c3f9p-14, +- 0x1.6b4702d7d5849p-14, +- 0x1.5a329b7d30748p-14, +- 0x1.49e17724f4d41p-14, +- 0x1.3a4b60ba9aa4dp-14, +- 0x1.2b6875310f785p-14, +- 0x1.1d312098e9dbap-14, +- 0x1.0f9e1b4dd36dfp-14, +- 0x1.02a8673a94691p-14, +- 0x1.ec929a665b449p-15, +- 0x1.d4f4b4c8e09edp-15, +- 0x1.be6abbb10a5aap-15, +- 0x1.a8e8cc1fadef6p-15, +- 0x1.94637d5bacfdbp-15, +- 0x1.80cfdc72220cfp-15, +- 0x1.6e2367dc27f95p-15, +- 0x1.5c540b4936fd2p-15, +- 0x1.4b581b8d170fcp-15, +- 0x1.3b2652b06c2b2p-15, +- 0x1.2bb5cc22e5db6p-15, +- 0x1.1cfe010e2052dp-15, +- 0x1.0ef6c4c84a0fep-15, +- 0x1.01984165a5f36p-15, +- 0x1.e9b5e8d00ce76p-16, +- 0x1.d16f5716c6c1ap-16, +- 0x1.ba4f035d60e02p-16, +- 0x1.a447b7b03f045p-16, +- 0x1.8f4ccca7fc90dp-16, +- 0x1.7b5223dac7336p-16, +- 0x1.684c227fcacefp-16, +- 0x1.562fac4329b48p-16, +- 0x1.44f21e49054f2p-16, +- 0x1.34894a5e24657p-16, +- 0x1.24eb7254ccf83p-16, +- 0x1.160f438c70913p-16, +- 0x1.07ebd2a2d2844p-16, +- 0x1.f4f12e9ab070ap-17, +- 0x1.db5ad0b27805cp-17, +- 0x1.c304efa2c6f4ep-17, +- 0x1.abe09e9144b5ep-17, +- 0x1.95df988e76644p-17, +- 0x1.80f439b4ee04bp-17, +- 0x1.6d11788a69c64p-17, +- 0x1.5a2adfa0b4bc4p-17, +- 0x1.4834877429b8fp-17, +- 0x1.37231085c7d9ap-17, +- 0x1.26eb9daed6f7ep-17, +- 0x1.1783ceac28910p-17, +- 0x1.08e1badf0fcedp-17, +- 0x1.f5f7d88472604p-18, +- 0x1.db92b5212fb8dp-18, +- 0x1.c282cd3957edap-18, +- 0x1.aab7abace48dcp-18, +- 0x1.94219bfcb4928p-18, +- 0x1.7eb1a2075864dp-18, +- 0x1.6a597219a93d9p-18, +- 0x1.570b69502f313p-18, +- 0x1.44ba864670882p-18, +- 0x1.335a62115bce2p-18, +- 0x1.22df298214423p-18, +- 0x1.133d96ae7e0ddp-18, +- 0x1.046aeabcfcdecp-18, +- 0x1.ecb9cfe1d8642p-19, +- 0x1.d21397ead99cbp-19, +- 0x1.b8d094c86d374p-19, +- 0x1.a0df0f0c626dcp-19, +- 0x1.8a2e269750a39p-19, +- 0x1.74adc8f4064d3p-19, +- 0x1.604ea819f007cp-19, +- 0x1.4d0231928c6f9p-19, +- 0x1.3aba85fe22e1fp-19, +- 0x1.296a70f414053p-19, +- 0x1.1905613b3abf2p-19, +- 0x1.097f6156f32c5p-19, +- 0x1.f59a20caf6695p-20, +- 0x1.d9c73698fb1dcp-20, +- 0x1.bf716c6168baep-20, +- 0x1.a6852c6b58392p-20, +- 0x1.8eefd70594a88p-20, +- 0x1.789fb715aae95p-20, +- 0x1.6383f726a8e04p-20, +- 0x1.4f8c96f26a26ap-20, +- 0x1.3caa61607f920p-20, +- 0x1.2acee2f5ecdb8p-20, +- 0x1.19ec60b1242edp-20, +- 0x1.09f5cf4dd2877p-20, +- 0x1.f5bd95d8730d8p-21, +- 0x1.d9371e2ff7c35p-21, +- 0x1.be41de54d155ap-21, +- 0x1.a4c89e08ef4f3p-21, +- 0x1.8cb738399b12cp-21, +- 0x1.75fa8dbc84becp-21, +- 0x1.608078a70dcbcp-21, +- 0x1.4c37c0394d094p-21, +- 0x1.39100d5687bfep-21, +- 0x1.26f9df8519bd6p-21, +- 0x1.15e6827001f18p-21, +- 0x1.05c803e4831c1p-21, +- 0x1.ed22548cffd35p-22, +- 0x1.d06ad6ecdf971p-22, +- 0x1.b551c847fbc96p-22, +- 0x1.9bc09f112b494p-22, +- 0x1.83a1ff0aa239dp-22, +- 0x1.6ce1aa3fd7bddp-22, +- 0x1.576c72b514859p-22, +- 0x1.43302cc4a0da8p-22, +- 0x1.301ba221dc9bbp-22, +- 0x1.1e1e857adc568p-22, +- 0x1.0d2966b1746f7p-22, +- 0x1.fa5b4f49cc6b2p-23, +- 0x1.dc3ae30b55c16p-23, +- 0x1.bfd7555a3bd68p-23, +- 0x1.a517d9e61628ap-23, +- 0x1.8be4f8f6c951fp-23, +- 0x1.74287ded49339p-23, +- 0x1.5dcd669f2cd34p-23, +- 0x1.48bfd38302870p-23, +- 0x1.34ecf8a3c124ap-23, +- 0x1.22430f521cbcfp-23, +- 0x1.10b1488aeb235p-23, +- 0x1.0027c00a263a6p-23, +- 0x1.e12ee004efc37p-24, +- 0x1.c3e44ae32b16bp-24, +- 0x1.a854ea14102a8p-24, +- 0x1.8e6761569f45dp-24, +- 0x1.7603bac345f65p-24, +- 0x1.5f1353cdad001p-24, +- 0x1.4980cb3c80949p-24, +- 0x1.3537f00b6ad4dp-24, +- 0x1.2225b12bffc68p-24, +- 0x1.10380e1adb7e9p-24, +- 0x1.febc107d5efaap-25, +- 0x1.df0f2a0ee6946p-25, +- 0x1.c14b2188bcee4p-25, +- 0x1.a553644f7f07dp-25, +- 0x1.8b0cfce0579dfp-25, +- 0x1.725e7c5dd20f7p-25, +- 0x1.5b2fe547a1340p-25, +- 0x1.456a974e92e93p-25, +- 0x1.30f93c3699078p-25, +- 0x1.1dc7b5b978cf8p-25, +- 0x1.0bc30c5d52f15p-25, +- 0x1.f5b2be65a0c7fp-26, +- 0x1.d5f3a8dea7357p-26, +- 0x1.b82915b03515bp-26, +- 0x1.9c3517e789488p-26, +- 0x1.81fb7df06136ep-26, +- 0x1.6961b8d641d06p-26, +- 0x1.524ec4d916caep-26, +- 0x1.3cab1343d18d1p-26, +- 0x1.2860757487a01p-26, +- 0x1.155a09065d4f7p-26, +- 0x1.0384250e4c9fcp-26, +- 0x1.e59890b926c78p-27, +- 0x1.c642116a8a9e3p-27, +- 0x1.a8e405e651ab6p-27, +- 0x1.8d5f98114f872p-27, +- 0x1.7397c5a66e307p-27, +- 0x1.5b71456c5a4c4p-27, +- 0x1.44d26de513197p-27, +- 0x1.2fa31d6371537p-27, +- 0x1.1bcca373b7b43p-27, +- 0x1.0939ab853339fp-27, +- 0x1.efac5187b2863p-28, +- 0x1.cf1e86235d0e6p-28, +- 0x1.b0a68a2128babp-28, +- 0x1.9423165bc4444p-28, +- 0x1.7974e743dea3cp-28, +- 0x1.607e9eacd1050p-28, +- 0x1.4924a74dec728p-28, +- 0x1.334d19e0c2160p-28, +- 0x1.1edfa3c5f5ccap-28, +- 0x1.0bc56f1b54701p-28, +- 0x1.f3d2185e047d9p-29, +- 0x1.d26cb87945e87p-29, +- 0x1.b334fac4b9f99p-29, +- 0x1.96076f7918d1cp-29, +- 0x1.7ac2d72fc2c63p-29, +- 0x1.614801550319ep-29, +- 0x1.4979ac8b28926p-29, +- 0x1.333c68e2d0548p-29, +- 0x1.1e767bce37dd7p-29, +- 0x1.0b0fc5b6d05a0p-29, +- 0x1.f1e3523b41d7dp-30, +- 0x1.d00de6608effep-30, +- 0x1.b0778b7b3301ap-30, +- 0x1.92fb04ec0f6cfp-30, +- 0x1.77756ec9f78fap-30, +- 0x1.5dc61922d5a06p-30, +- 0x1.45ce65699ff6dp-30, +- 0x1.2f71a5f159970p-30, +- 0x1.1a94ff571654fp-30, +- 0x1.071f4bbea09ecp-30, +- 0x1.e9f1ff8ddd774p-31, +- 0x1.c818223a202c7p-31, +- 0x1.a887bd2b4404dp-31, +- 0x1.8b1a336c5eb6bp-31, +- 0x1.6fab63324088ap-31, +- 0x1.56197e30205bap-31, +- 0x1.3e44e45301b92p-31, +- 0x1.281000bfe4c3fp-31, +- 0x1.135f28f2d50b4p-31, +- 0x1.00187dded5975p-31, +- 0x1.dc479de0ef001p-32, +- 0x1.bad4fdad3caa1p-32, +- 0x1.9baed3ed27ab8p-32, +- 0x1.7ead9ce4285bbp-32, +- 0x1.63ac6b4edc88ep-32, +- 0x1.4a88be2a6390cp-32, +- 0x1.332259185f1a0p-32, +- 0x1.1d5b1f3793044p-32, +- 0x1.0916f04b6e18bp-32, +- 0x1.ec77101de6926p-33, +- 0x1.c960bf23153e0p-33, +- 0x1.a8bd20fc65ef7p-33, +- 0x1.8a61745ec7d1dp-33, +- 0x1.6e25d0e756261p-33, +- 0x1.53e4f7d1666cbp-33, +- 0x1.3b7c27a7ddb0ep-33, +- 0x1.24caf2c32af14p-33, +- 0x1.0fb3186804d0fp-33, +- 0x1.f830c0bb41fd7p-34, +- 0x1.d3c0f1a91c846p-34, +- 0x1.b1e5acf351d87p-34, +- 0x1.92712d259ce66p-34, +- 0x1.7538c60a04476p-34, +- 0x1.5a14b04b47879p-34, +- 0x1.40dfd87456f4cp-34, +- 0x1.2977b1172b9d5p-34, +- 0x1.13bc07e891491p-34, +- 0x1.ff1dbb4300811p-35, +- 0x1.d9a880f306bd8p-35, +- 0x1.b6e45220b55e0p-35, +- 0x1.96a0b33f2c4dap-35, +- 0x1.78b07e9e924acp-35, +- 0x1.5ce9ab1670dd2p-35, +- 0x1.4325167006bb0p-35, +- 0x1.2b3e53538ff3fp-35, +- 0x1.15137a7f44864p-35, +- 0x1.0084ff125639dp-35, +- 0x1.daeb0b7311ec7p-36, +- 0x1.b7937d1c40c52p-36, +- 0x1.96d082f59ab06p-36, +- 0x1.7872d9fa10aadp-36, +- 0x1.5c4e8e37bc7d0p-36, +- 0x1.423ac0df49a40p-36, +- 0x1.2a117230ad284p-36, +- 0x1.13af4f04f9998p-36, +- 0x1.fde703724e560p-37, +- 0x1.d77f0c82e7641p-37, +- 0x1.b3ee02611d7ddp-37, +- 0x1.92ff33023d5bdp-37, +- 0x1.7481a9e69f53fp-37, +- 0x1.5847eda620959p-37, +- 0x1.3e27c1fcc74bdp-37, +- 0x1.25f9ee0b923dcp-37, +- 0x1.0f9a0686531ffp-37, +- 0x1.f5cc7718082afp-38, +- 0x1.cf7e53d6a2ca5p-38, +- 0x1.ac0f5f3229372p-38, +- 0x1.8b498644847eap-38, +- 0x1.6cfa9bcca59dcp-38, +- 0x1.50f411d4fd2cdp-38, +- 0x1.370ab8327af5ep-38, +- 0x1.1f167f88c6b6ep-38, +- 0x1.08f24085d4597p-38, +- 0x1.e8f70e181d619p-39, +- 0x1.c324c20e337dcp-39, +- 0x1.a03261574b54ep-39, +- 0x1.7fe903cdf5855p-39, +- 0x1.6215c58da3450p-39, +- 0x1.46897d4b69fc6p-39, +- 0x1.2d1877d731b7bp-39, +- 0x1.159a386b11517p-39, +- 0x1.ffd27ae9393cep-40, +- 0x1.d7c593130dd0bp-40, +- 0x1.b2cd607c79bcfp-40, +- 0x1.90ae4d3405651p-40, +- 0x1.71312dd1759e2p-40, +- 0x1.5422ef5d8949dp-40, +- 0x1.39544b0ecc957p-40, +- 0x1.20997f73e73ddp-40, +- 0x1.09ca0eaacd277p-40, +- 0x1.e9810295890ecp-41, +- 0x1.c2b45b5aa4a1dp-41, +- 0x1.9eee068fa7596p-41, +- 0x1.7df2b399c10a8p-41, +- 0x1.5f8b87a31bd85p-41, +- 0x1.4385c96e9a2d9p-41, +- 0x1.29b2933ef4cbcp-41, +- 0x1.11e68a6378f8ap-41, +- 0x1.f7f338086a86bp-42, +- 0x1.cf8d7d9ce040ap-42, +- 0x1.aa577251ae484p-42, +- 0x1.8811d739efb5ep-42, +- 0x1.68823e52970bep-42, +- 0x1.4b72ae68e8b4cp-42, +- 0x1.30b14dbe876bcp-42, +- 0x1.181012ef86610p-42, +- 0x1.01647ba798744p-42, +- 0x1.d90e917701675p-43, +- 0x1.b2a87e86d0c8ap-43, +- 0x1.8f53dcb377293p-43, +- 0x1.6ed2f2515e933p-43, +- 0x1.50ecc9ed47f19p-43, +- 0x1.356cd5ce7799ep-43, +- 0x1.1c229a587ab78p-43, +- 0x1.04e15ecc7f3f6p-43, +- 0x1.deffc7e6a6017p-44, +- 0x1.b7b040832f310p-44, +- 0x1.938e021f36d76p-44, +- 0x1.7258610b3b233p-44, +- 0x1.53d3bfc82a909p-44, +- 0x1.37c92babdc2fdp-44, +- 0x1.1e06010120f6ap-44, +- 0x1.065b9616170d4p-44, +- 0x1.e13dd96b3753ap-45, +- 0x1.b950d32467392p-45, +- 0x1.94a72263259a5p-45, +- 0x1.72fd93e036cdcp-45, +- 0x1.54164576929abp-45, +- 0x1.37b83c521fe96p-45, +- 0x1.1daf033182e96p-45, +- 0x1.05ca50205d26ap-45, +- 0x1.dfbb6235639fap-46, +- 0x1.b7807e294781fp-46, +- 0x1.9298add70a734p-46, +- 0x1.70beaf9c7ffb6p-46, +- 0x1.51b2cd6709222p-46, +- 0x1.353a6cf7f7fffp-46, +- 0x1.1b1fa8cbe84a7p-46, +- 0x1.0330f0fd69921p-46, +- 0x1.da81670f96f9bp-47, +- 0x1.b24a16b4d09aap-47, +- 0x1.8d6eeb6efdbd6p-47, +- 0x1.6ba91ac734785p-47, +- 0x1.4cb7966770ab5p-47, +- 0x1.305e9721d0981p-47, +- 0x1.1667311fff70ap-47, +- 0x1.fd3de10d62855p-48, +- 0x1.d1aefbcd48d0cp-48, +- 0x1.a9cc93c25aca9p-48, +- 0x1.85487ee3ea735p-48, +- 0x1.63daf8b4b1e0cp-48, +- 0x1.45421e69a6ca1p-48, +- 0x1.294175802d99ap-48, +- 0x1.0fa17bf41068fp-48, +- 0x1.f05e82aae2bb9p-49, +- 0x1.c578101b29058p-49, +- 0x1.9e39dc5dd2f7cp-49, +- 0x1.7a553a728bbf2p-49, +- 0x1.5982008db1304p-49, +- 0x1.3b7e00422e51bp-49, +- 0x1.200c898d9ee3ep-49, +- 0x1.06f5f7eb65a56p-49, +- 0x1.e00e9148a1d25p-50, +- 0x1.b623734024e92p-50, +- 0x1.8fd4e01891bf8p-50, +- 0x1.6cd44c7470d89p-50, +- 0x1.4cd9c04158cd7p-50, +- 0x1.2fa34bf5c8344p-50, +- 0x1.14f4890ff2461p-50, +- 0x1.f92c49dfa4df5p-51, +- 0x1.ccaaea71ab0dfp-51, +- 0x1.a40829f001197p-51, +- 0x1.7eef13b59e96cp-51, +- 0x1.5d11e1a252bf5p-51, +- 0x1.3e296303b2297p-51, +- 0x1.21f47009f43cep-51, +- 0x1.083768c5e4541p-51, +- 0x1.e1777d831265ep-52, +- 0x1.b69f10b0191b5p-52, +- 0x1.8f8a3a05b5b52p-52, +- 0x1.6be573c40c8e7p-52, +- 0x1.4b645ba991fdbp-52, +- 0x1.2dc119095729fp-52, +- }, +-}; +diff --git a/sysdeps/aarch64/fpu/sv_erff_data.c b/sysdeps/aarch64/fpu/sv_erff_data.c +deleted file mode 100644 +index 6dcd72af69431379..0000000000000000 +--- a/sysdeps/aarch64/fpu/sv_erff_data.c ++++ /dev/null +@@ -1,1058 +0,0 @@ +-/* Table for SVE erff approximation +- +- Copyright (C) 2024 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 +- . */ +- +-#include "vecmath_config.h" +- +-/* Lookup table used in SVE erff. +- For each possible rounded input r (multiples of 1/128), between +- r = 0.0 and r = 4.0 (513 values): +- - __erff_data.erf contains the values of erf(r), +- - __erff_data.scale contains the values of 2/sqrt(pi)*exp(-r^2). +- Note that indices 0 and 1 are never hit by the algorithm, since lookup is +- performed only for x >= 1/64-1/512. */ +-const struct sv_erff_data __sv_erff_data = { +- .erf = { 0x0.000000p+0, +- 0x1.20dbf4p-7, +- 0x1.20d770p-6, +- 0x1.b137e0p-6, +- 0x1.20c564p-5, +- 0x1.68e5d4p-5, +- 0x1.b0fafep-5, +- 0x1.f902a8p-5, +- 0x1.207d48p-4, +- 0x1.44703ep-4, +- 0x1.68591ap-4, +- 0x1.8c36bep-4, +- 0x1.b00812p-4, +- 0x1.d3cbf8p-4, +- 0x1.f7815ap-4, +- 0x1.0d9390p-3, +- 0x1.1f5e1ap-3, +- 0x1.311fc2p-3, +- 0x1.42d7fcp-3, +- 0x1.548642p-3, +- 0x1.662a0cp-3, +- 0x1.77c2d2p-3, +- 0x1.895010p-3, +- 0x1.9ad142p-3, +- 0x1.ac45e4p-3, +- 0x1.bdad72p-3, +- 0x1.cf076ep-3, +- 0x1.e05354p-3, +- 0x1.f190aap-3, +- 0x1.015f78p-2, +- 0x1.09eed6p-2, +- 0x1.127632p-2, +- 0x1.1af54ep-2, +- 0x1.236bf0p-2, +- 0x1.2bd9dcp-2, +- 0x1.343ed6p-2, +- 0x1.3c9aa8p-2, +- 0x1.44ed18p-2, +- 0x1.4d35f0p-2, +- 0x1.5574f4p-2, +- 0x1.5da9f4p-2, +- 0x1.65d4b8p-2, +- 0x1.6df50ap-2, +- 0x1.760abap-2, +- 0x1.7e1594p-2, +- 0x1.861566p-2, +- 0x1.8e0a02p-2, +- 0x1.95f336p-2, +- 0x1.9dd0d2p-2, +- 0x1.a5a2acp-2, +- 0x1.ad6896p-2, +- 0x1.b52264p-2, +- 0x1.bccfecp-2, +- 0x1.c47104p-2, +- 0x1.cc0584p-2, +- 0x1.d38d44p-2, +- 0x1.db081cp-2, +- 0x1.e275eap-2, +- 0x1.e9d68ap-2, +- 0x1.f129d4p-2, +- 0x1.f86faap-2, +- 0x1.ffa7eap-2, +- 0x1.03693ap-1, +- 0x1.06f794p-1, +- 0x1.0a7ef6p-1, +- 0x1.0dff50p-1, +- 0x1.117894p-1, +- 0x1.14eab4p-1, +- 0x1.1855a6p-1, +- 0x1.1bb95cp-1, +- 0x1.1f15ccp-1, +- 0x1.226ae8p-1, +- 0x1.25b8a8p-1, +- 0x1.28ff02p-1, +- 0x1.2c3decp-1, +- 0x1.2f755cp-1, +- 0x1.32a54cp-1, +- 0x1.35cdb4p-1, +- 0x1.38ee8ap-1, +- 0x1.3c07cap-1, +- 0x1.3f196ep-1, +- 0x1.42236ep-1, +- 0x1.4525c8p-1, +- 0x1.482074p-1, +- 0x1.4b1372p-1, +- 0x1.4dfebap-1, +- 0x1.50e24cp-1, +- 0x1.53be26p-1, +- 0x1.569244p-1, +- 0x1.595ea6p-1, +- 0x1.5c2348p-1, +- 0x1.5ee02ep-1, +- 0x1.619556p-1, +- 0x1.6442c0p-1, +- 0x1.66e86ep-1, +- 0x1.69865ep-1, +- 0x1.6c1c98p-1, +- 0x1.6eab18p-1, +- 0x1.7131e6p-1, +- 0x1.73b102p-1, +- 0x1.762870p-1, +- 0x1.789836p-1, +- 0x1.7b0058p-1, +- 0x1.7d60d8p-1, +- 0x1.7fb9c0p-1, +- 0x1.820b12p-1, +- 0x1.8454d6p-1, +- 0x1.869712p-1, +- 0x1.88d1cep-1, +- 0x1.8b050ep-1, +- 0x1.8d30dep-1, +- 0x1.8f5544p-1, +- 0x1.91724ap-1, +- 0x1.9387f6p-1, +- 0x1.959652p-1, +- 0x1.979d68p-1, +- 0x1.999d42p-1, +- 0x1.9b95e8p-1, +- 0x1.9d8768p-1, +- 0x1.9f71cap-1, +- 0x1.a1551ap-1, +- 0x1.a33162p-1, +- 0x1.a506b0p-1, +- 0x1.a6d50cp-1, +- 0x1.a89c86p-1, +- 0x1.aa5d26p-1, +- 0x1.ac16fcp-1, +- 0x1.adca14p-1, +- 0x1.af767ap-1, +- 0x1.b11c3cp-1, +- 0x1.b2bb68p-1, +- 0x1.b4540ap-1, +- 0x1.b5e630p-1, +- 0x1.b771e8p-1, +- 0x1.b8f742p-1, +- 0x1.ba764ap-1, +- 0x1.bbef10p-1, +- 0x1.bd61a2p-1, +- 0x1.bece0ep-1, +- 0x1.c03464p-1, +- 0x1.c194b2p-1, +- 0x1.c2ef08p-1, +- 0x1.c44376p-1, +- 0x1.c5920ap-1, +- 0x1.c6dad2p-1, +- 0x1.c81de2p-1, +- 0x1.c95b46p-1, +- 0x1.ca930ep-1, +- 0x1.cbc54cp-1, +- 0x1.ccf20cp-1, +- 0x1.ce1962p-1, +- 0x1.cf3b5cp-1, +- 0x1.d0580cp-1, +- 0x1.d16f7ep-1, +- 0x1.d281c4p-1, +- 0x1.d38ef0p-1, +- 0x1.d49710p-1, +- 0x1.d59a34p-1, +- 0x1.d6986cp-1, +- 0x1.d791cap-1, +- 0x1.d8865ep-1, +- 0x1.d97636p-1, +- 0x1.da6162p-1, +- 0x1.db47f4p-1, +- 0x1.dc29fcp-1, +- 0x1.dd0788p-1, +- 0x1.dde0aap-1, +- 0x1.deb570p-1, +- 0x1.df85eap-1, +- 0x1.e0522ap-1, +- 0x1.e11a3ep-1, +- 0x1.e1de36p-1, +- 0x1.e29e22p-1, +- 0x1.e35a12p-1, +- 0x1.e41214p-1, +- 0x1.e4c638p-1, +- 0x1.e5768cp-1, +- 0x1.e62322p-1, +- 0x1.e6cc08p-1, +- 0x1.e7714ap-1, +- 0x1.e812fcp-1, +- 0x1.e8b12ap-1, +- 0x1.e94be4p-1, +- 0x1.e9e336p-1, +- 0x1.ea7730p-1, +- 0x1.eb07e2p-1, +- 0x1.eb9558p-1, +- 0x1.ec1fa2p-1, +- 0x1.eca6ccp-1, +- 0x1.ed2ae6p-1, +- 0x1.edabfcp-1, +- 0x1.ee2a1ep-1, +- 0x1.eea556p-1, +- 0x1.ef1db4p-1, +- 0x1.ef9344p-1, +- 0x1.f00614p-1, +- 0x1.f07630p-1, +- 0x1.f0e3a6p-1, +- 0x1.f14e82p-1, +- 0x1.f1b6d0p-1, +- 0x1.f21ca0p-1, +- 0x1.f27ff8p-1, +- 0x1.f2e0eap-1, +- 0x1.f33f7ep-1, +- 0x1.f39bc2p-1, +- 0x1.f3f5c2p-1, +- 0x1.f44d88p-1, +- 0x1.f4a31ep-1, +- 0x1.f4f694p-1, +- 0x1.f547f2p-1, +- 0x1.f59742p-1, +- 0x1.f5e490p-1, +- 0x1.f62fe8p-1, +- 0x1.f67952p-1, +- 0x1.f6c0dcp-1, +- 0x1.f7068cp-1, +- 0x1.f74a6ep-1, +- 0x1.f78c8cp-1, +- 0x1.f7cceep-1, +- 0x1.f80ba2p-1, +- 0x1.f848acp-1, +- 0x1.f8841ap-1, +- 0x1.f8bdf2p-1, +- 0x1.f8f63ep-1, +- 0x1.f92d08p-1, +- 0x1.f96256p-1, +- 0x1.f99634p-1, +- 0x1.f9c8a8p-1, +- 0x1.f9f9bap-1, +- 0x1.fa2974p-1, +- 0x1.fa57dep-1, +- 0x1.fa84fep-1, +- 0x1.fab0dep-1, +- 0x1.fadb84p-1, +- 0x1.fb04f6p-1, +- 0x1.fb2d40p-1, +- 0x1.fb5464p-1, +- 0x1.fb7a6cp-1, +- 0x1.fb9f60p-1, +- 0x1.fbc344p-1, +- 0x1.fbe61ep-1, +- 0x1.fc07fap-1, +- 0x1.fc28d8p-1, +- 0x1.fc48c2p-1, +- 0x1.fc67bcp-1, +- 0x1.fc85d0p-1, +- 0x1.fca2fep-1, +- 0x1.fcbf52p-1, +- 0x1.fcdaccp-1, +- 0x1.fcf576p-1, +- 0x1.fd0f54p-1, +- 0x1.fd286ap-1, +- 0x1.fd40bep-1, +- 0x1.fd5856p-1, +- 0x1.fd6f34p-1, +- 0x1.fd8562p-1, +- 0x1.fd9ae2p-1, +- 0x1.fdafb8p-1, +- 0x1.fdc3e8p-1, +- 0x1.fdd77ap-1, +- 0x1.fdea6ep-1, +- 0x1.fdfcccp-1, +- 0x1.fe0e96p-1, +- 0x1.fe1fd0p-1, +- 0x1.fe3080p-1, +- 0x1.fe40a6p-1, +- 0x1.fe504cp-1, +- 0x1.fe5f70p-1, +- 0x1.fe6e18p-1, +- 0x1.fe7c46p-1, +- 0x1.fe8a00p-1, +- 0x1.fe9748p-1, +- 0x1.fea422p-1, +- 0x1.feb090p-1, +- 0x1.febc96p-1, +- 0x1.fec836p-1, +- 0x1.fed374p-1, +- 0x1.fede52p-1, +- 0x1.fee8d4p-1, +- 0x1.fef2fep-1, +- 0x1.fefccep-1, +- 0x1.ff064cp-1, +- 0x1.ff0f76p-1, +- 0x1.ff1852p-1, +- 0x1.ff20e0p-1, +- 0x1.ff2924p-1, +- 0x1.ff3120p-1, +- 0x1.ff38d6p-1, +- 0x1.ff4048p-1, +- 0x1.ff4778p-1, +- 0x1.ff4e68p-1, +- 0x1.ff551ap-1, +- 0x1.ff5b90p-1, +- 0x1.ff61ccp-1, +- 0x1.ff67d0p-1, +- 0x1.ff6d9ep-1, +- 0x1.ff7338p-1, +- 0x1.ff789ep-1, +- 0x1.ff7dd4p-1, +- 0x1.ff82dap-1, +- 0x1.ff87b2p-1, +- 0x1.ff8c5cp-1, +- 0x1.ff90dcp-1, +- 0x1.ff9532p-1, +- 0x1.ff9960p-1, +- 0x1.ff9d68p-1, +- 0x1.ffa14ap-1, +- 0x1.ffa506p-1, +- 0x1.ffa8a0p-1, +- 0x1.ffac18p-1, +- 0x1.ffaf6ep-1, +- 0x1.ffb2a6p-1, +- 0x1.ffb5bep-1, +- 0x1.ffb8b8p-1, +- 0x1.ffbb98p-1, +- 0x1.ffbe5ap-1, +- 0x1.ffc102p-1, +- 0x1.ffc390p-1, +- 0x1.ffc606p-1, +- 0x1.ffc862p-1, +- 0x1.ffcaa8p-1, +- 0x1.ffccd8p-1, +- 0x1.ffcef4p-1, +- 0x1.ffd0fap-1, +- 0x1.ffd2eap-1, +- 0x1.ffd4cap-1, +- 0x1.ffd696p-1, +- 0x1.ffd84ep-1, +- 0x1.ffd9f8p-1, +- 0x1.ffdb90p-1, +- 0x1.ffdd18p-1, +- 0x1.ffde90p-1, +- 0x1.ffdffap-1, +- 0x1.ffe154p-1, +- 0x1.ffe2a2p-1, +- 0x1.ffe3e2p-1, +- 0x1.ffe514p-1, +- 0x1.ffe63cp-1, +- 0x1.ffe756p-1, +- 0x1.ffe866p-1, +- 0x1.ffe96ap-1, +- 0x1.ffea64p-1, +- 0x1.ffeb54p-1, +- 0x1.ffec3ap-1, +- 0x1.ffed16p-1, +- 0x1.ffedeap-1, +- 0x1.ffeeb4p-1, +- 0x1.ffef76p-1, +- 0x1.fff032p-1, +- 0x1.fff0e4p-1, +- 0x1.fff18ep-1, +- 0x1.fff232p-1, +- 0x1.fff2d0p-1, +- 0x1.fff366p-1, +- 0x1.fff3f6p-1, +- 0x1.fff480p-1, +- 0x1.fff504p-1, +- 0x1.fff582p-1, +- 0x1.fff5fcp-1, +- 0x1.fff670p-1, +- 0x1.fff6dep-1, +- 0x1.fff74ap-1, +- 0x1.fff7aep-1, +- 0x1.fff810p-1, +- 0x1.fff86cp-1, +- 0x1.fff8c6p-1, +- 0x1.fff91cp-1, +- 0x1.fff96cp-1, +- 0x1.fff9bap-1, +- 0x1.fffa04p-1, +- 0x1.fffa4cp-1, +- 0x1.fffa90p-1, +- 0x1.fffad0p-1, +- 0x1.fffb0ep-1, +- 0x1.fffb4ap-1, +- 0x1.fffb82p-1, +- 0x1.fffbb8p-1, +- 0x1.fffbecp-1, +- 0x1.fffc1ep-1, +- 0x1.fffc4ep-1, +- 0x1.fffc7ap-1, +- 0x1.fffca6p-1, +- 0x1.fffccep-1, +- 0x1.fffcf6p-1, +- 0x1.fffd1ap-1, +- 0x1.fffd3ep-1, +- 0x1.fffd60p-1, +- 0x1.fffd80p-1, +- 0x1.fffda0p-1, +- 0x1.fffdbep-1, +- 0x1.fffddap-1, +- 0x1.fffdf4p-1, +- 0x1.fffe0ep-1, +- 0x1.fffe26p-1, +- 0x1.fffe3ep-1, +- 0x1.fffe54p-1, +- 0x1.fffe68p-1, +- 0x1.fffe7ep-1, +- 0x1.fffe90p-1, +- 0x1.fffea2p-1, +- 0x1.fffeb4p-1, +- 0x1.fffec4p-1, +- 0x1.fffed4p-1, +- 0x1.fffee4p-1, +- 0x1.fffef2p-1, +- 0x1.ffff00p-1, +- 0x1.ffff0cp-1, +- 0x1.ffff18p-1, +- 0x1.ffff24p-1, +- 0x1.ffff30p-1, +- 0x1.ffff3ap-1, +- 0x1.ffff44p-1, +- 0x1.ffff4ep-1, +- 0x1.ffff56p-1, +- 0x1.ffff60p-1, +- 0x1.ffff68p-1, +- 0x1.ffff70p-1, +- 0x1.ffff78p-1, +- 0x1.ffff7ep-1, +- 0x1.ffff84p-1, +- 0x1.ffff8cp-1, +- 0x1.ffff92p-1, +- 0x1.ffff98p-1, +- 0x1.ffff9cp-1, +- 0x1.ffffa2p-1, +- 0x1.ffffa6p-1, +- 0x1.ffffacp-1, +- 0x1.ffffb0p-1, +- 0x1.ffffb4p-1, +- 0x1.ffffb8p-1, +- 0x1.ffffbcp-1, +- 0x1.ffffc0p-1, +- 0x1.ffffc4p-1, +- 0x1.ffffc6p-1, +- 0x1.ffffcap-1, +- 0x1.ffffccp-1, +- 0x1.ffffd0p-1, +- 0x1.ffffd2p-1, +- 0x1.ffffd4p-1, +- 0x1.ffffd6p-1, +- 0x1.ffffd8p-1, +- 0x1.ffffdcp-1, +- 0x1.ffffdep-1, +- 0x1.ffffdep-1, +- 0x1.ffffe0p-1, +- 0x1.ffffe2p-1, +- 0x1.ffffe4p-1, +- 0x1.ffffe6p-1, +- 0x1.ffffe8p-1, +- 0x1.ffffe8p-1, +- 0x1.ffffeap-1, +- 0x1.ffffeap-1, +- 0x1.ffffecp-1, +- 0x1.ffffeep-1, +- 0x1.ffffeep-1, +- 0x1.fffff0p-1, +- 0x1.fffff0p-1, +- 0x1.fffff2p-1, +- 0x1.fffff2p-1, +- 0x1.fffff2p-1, +- 0x1.fffff4p-1, +- 0x1.fffff4p-1, +- 0x1.fffff4p-1, +- 0x1.fffff6p-1, +- 0x1.fffff6p-1, +- 0x1.fffff6p-1, +- 0x1.fffff8p-1, +- 0x1.fffff8p-1, +- 0x1.fffff8p-1, +- 0x1.fffff8p-1, +- 0x1.fffffap-1, +- 0x1.fffffap-1, +- 0x1.fffffap-1, +- 0x1.fffffap-1, +- 0x1.fffffap-1, +- 0x1.fffffap-1, +- 0x1.fffffcp-1, +- 0x1.fffffcp-1, +- 0x1.fffffcp-1, +- 0x1.fffffcp-1, +- 0x1.fffffcp-1, +- 0x1.fffffcp-1, +- 0x1.fffffcp-1, +- 0x1.fffffcp-1, +- 0x1.fffffep-1, +- 0x1.fffffep-1, +- 0x1.fffffep-1, +- 0x1.fffffep-1, +- 0x1.fffffep-1, +- 0x1.fffffep-1, +- 0x1.fffffep-1, +- 0x1.fffffep-1, +- 0x1.fffffep-1, +- 0x1.fffffep-1, +- 0x1.fffffep-1, +- 0x1.fffffep-1, +- 0x1.fffffep-1, +- 0x1.fffffep-1, +- 0x1.fffffep-1, +- 0x1.fffffep-1, +- 0x1.fffffep-1, +- 0x1.fffffep-1, +- 0x1.000000p+0, +- 0x1.000000p+0, +- 0x1.000000p+0, +- 0x1.000000p+0, +- 0x1.000000p+0, +- 0x1.000000p+0, +- 0x1.000000p+0, +- 0x1.000000p+0, +- 0x1.000000p+0, +- 0x1.000000p+0, +- 0x1.000000p+0, +- }, +- .scale = { 0x1.20dd76p+0, +- 0x1.20d8f2p+0, +- 0x1.20cb68p+0, +- 0x1.20b4d8p+0, +- 0x1.209546p+0, +- 0x1.206cb4p+0, +- 0x1.203b26p+0, +- 0x1.2000a0p+0, +- 0x1.1fbd28p+0, +- 0x1.1f70c4p+0, +- 0x1.1f1b7ap+0, +- 0x1.1ebd56p+0, +- 0x1.1e565cp+0, +- 0x1.1de698p+0, +- 0x1.1d6e14p+0, +- 0x1.1cecdcp+0, +- 0x1.1c62fap+0, +- 0x1.1bd07cp+0, +- 0x1.1b3572p+0, +- 0x1.1a91e6p+0, +- 0x1.19e5eap+0, +- 0x1.19318cp+0, +- 0x1.1874dep+0, +- 0x1.17aff0p+0, +- 0x1.16e2d8p+0, +- 0x1.160da4p+0, +- 0x1.153068p+0, +- 0x1.144b3cp+0, +- 0x1.135e30p+0, +- 0x1.12695ep+0, +- 0x1.116cd8p+0, +- 0x1.1068bap+0, +- 0x1.0f5d16p+0, +- 0x1.0e4a08p+0, +- 0x1.0d2fa6p+0, +- 0x1.0c0e0ap+0, +- 0x1.0ae550p+0, +- 0x1.09b590p+0, +- 0x1.087ee4p+0, +- 0x1.07416cp+0, +- 0x1.05fd3ep+0, +- 0x1.04b27cp+0, +- 0x1.036140p+0, +- 0x1.0209a6p+0, +- 0x1.00abd0p+0, +- 0x1.fe8fb0p-1, +- 0x1.fbbbbep-1, +- 0x1.f8dc0ap-1, +- 0x1.f5f0cep-1, +- 0x1.f2fa4cp-1, +- 0x1.eff8c4p-1, +- 0x1.ecec78p-1, +- 0x1.e9d5a8p-1, +- 0x1.e6b498p-1, +- 0x1.e38988p-1, +- 0x1.e054bep-1, +- 0x1.dd167cp-1, +- 0x1.d9cf06p-1, +- 0x1.d67ea2p-1, +- 0x1.d32592p-1, +- 0x1.cfc41ep-1, +- 0x1.cc5a8ap-1, +- 0x1.c8e91cp-1, +- 0x1.c5701ap-1, +- 0x1.c1efcap-1, +- 0x1.be6872p-1, +- 0x1.bada5ap-1, +- 0x1.b745c6p-1, +- 0x1.b3aafcp-1, +- 0x1.b00a46p-1, +- 0x1.ac63e8p-1, +- 0x1.a8b828p-1, +- 0x1.a5074ep-1, +- 0x1.a1519ep-1, +- 0x1.9d9762p-1, +- 0x1.99d8dap-1, +- 0x1.961650p-1, +- 0x1.925008p-1, +- 0x1.8e8646p-1, +- 0x1.8ab950p-1, +- 0x1.86e96ap-1, +- 0x1.8316d6p-1, +- 0x1.7f41dcp-1, +- 0x1.7b6abcp-1, +- 0x1.7791b8p-1, +- 0x1.73b714p-1, +- 0x1.6fdb12p-1, +- 0x1.6bfdf0p-1, +- 0x1.681ff2p-1, +- 0x1.644156p-1, +- 0x1.60625cp-1, +- 0x1.5c8342p-1, +- 0x1.58a446p-1, +- 0x1.54c5a6p-1, +- 0x1.50e79ep-1, +- 0x1.4d0a68p-1, +- 0x1.492e42p-1, +- 0x1.455366p-1, +- 0x1.417a0cp-1, +- 0x1.3da26ep-1, +- 0x1.39ccc2p-1, +- 0x1.35f940p-1, +- 0x1.32281ep-1, +- 0x1.2e5992p-1, +- 0x1.2a8dcep-1, +- 0x1.26c508p-1, +- 0x1.22ff72p-1, +- 0x1.1f3d3cp-1, +- 0x1.1b7e98p-1, +- 0x1.17c3b6p-1, +- 0x1.140cc4p-1, +- 0x1.1059eep-1, +- 0x1.0cab62p-1, +- 0x1.09014cp-1, +- 0x1.055bd6p-1, +- 0x1.01bb2cp-1, +- 0x1.fc3ee6p-2, +- 0x1.f511aap-2, +- 0x1.edeeeep-2, +- 0x1.e6d700p-2, +- 0x1.dfca26p-2, +- 0x1.d8c8aap-2, +- 0x1.d1d2d0p-2, +- 0x1.cae8dap-2, +- 0x1.c40b08p-2, +- 0x1.bd3998p-2, +- 0x1.b674c8p-2, +- 0x1.afbcd4p-2, +- 0x1.a911f0p-2, +- 0x1.a27456p-2, +- 0x1.9be438p-2, +- 0x1.9561c8p-2, +- 0x1.8eed36p-2, +- 0x1.8886b2p-2, +- 0x1.822e66p-2, +- 0x1.7be47ap-2, +- 0x1.75a91ap-2, +- 0x1.6f7c6ap-2, +- 0x1.695e8cp-2, +- 0x1.634fa6p-2, +- 0x1.5d4fd4p-2, +- 0x1.575f34p-2, +- 0x1.517de6p-2, +- 0x1.4bac00p-2, +- 0x1.45e99cp-2, +- 0x1.4036d0p-2, +- 0x1.3a93b2p-2, +- 0x1.350052p-2, +- 0x1.2f7cc4p-2, +- 0x1.2a0916p-2, +- 0x1.24a554p-2, +- 0x1.1f518ap-2, +- 0x1.1a0dc6p-2, +- 0x1.14da0ap-2, +- 0x1.0fb662p-2, +- 0x1.0aa2d0p-2, +- 0x1.059f5ap-2, +- 0x1.00ac00p-2, +- 0x1.f79184p-3, +- 0x1.edeb40p-3, +- 0x1.e46530p-3, +- 0x1.daff4ap-3, +- 0x1.d1b982p-3, +- 0x1.c893cep-3, +- 0x1.bf8e1cp-3, +- 0x1.b6a856p-3, +- 0x1.ade26cp-3, +- 0x1.a53c42p-3, +- 0x1.9cb5bep-3, +- 0x1.944ec2p-3, +- 0x1.8c0732p-3, +- 0x1.83deeap-3, +- 0x1.7bd5c8p-3, +- 0x1.73eba4p-3, +- 0x1.6c2056p-3, +- 0x1.6473b6p-3, +- 0x1.5ce596p-3, +- 0x1.5575c8p-3, +- 0x1.4e241ep-3, +- 0x1.46f066p-3, +- 0x1.3fda6cp-3, +- 0x1.38e1fap-3, +- 0x1.3206dcp-3, +- 0x1.2b48dap-3, +- 0x1.24a7b8p-3, +- 0x1.1e233ep-3, +- 0x1.17bb2cp-3, +- 0x1.116f48p-3, +- 0x1.0b3f52p-3, +- 0x1.052b0cp-3, +- 0x1.fe6460p-4, +- 0x1.f2a902p-4, +- 0x1.e72372p-4, +- 0x1.dbd32ap-4, +- 0x1.d0b7a0p-4, +- 0x1.c5d04ap-4, +- 0x1.bb1c98p-4, +- 0x1.b09bfcp-4, +- 0x1.a64de6p-4, +- 0x1.9c31c6p-4, +- 0x1.92470ap-4, +- 0x1.888d1ep-4, +- 0x1.7f036cp-4, +- 0x1.75a960p-4, +- 0x1.6c7e64p-4, +- 0x1.6381e2p-4, +- 0x1.5ab342p-4, +- 0x1.5211ecp-4, +- 0x1.499d48p-4, +- 0x1.4154bcp-4, +- 0x1.3937b2p-4, +- 0x1.31458ep-4, +- 0x1.297dbap-4, +- 0x1.21df9ap-4, +- 0x1.1a6a96p-4, +- 0x1.131e14p-4, +- 0x1.0bf97ep-4, +- 0x1.04fc3ap-4, +- 0x1.fc4b5ep-5, +- 0x1.eeea8cp-5, +- 0x1.e1d4d0p-5, +- 0x1.d508fap-5, +- 0x1.c885e0p-5, +- 0x1.bc4a54p-5, +- 0x1.b05530p-5, +- 0x1.a4a54ap-5, +- 0x1.99397ap-5, +- 0x1.8e109cp-5, +- 0x1.83298ep-5, +- 0x1.78832cp-5, +- 0x1.6e1c58p-5, +- 0x1.63f3f6p-5, +- 0x1.5a08e8p-5, +- 0x1.505a18p-5, +- 0x1.46e66cp-5, +- 0x1.3dacd2p-5, +- 0x1.34ac36p-5, +- 0x1.2be38cp-5, +- 0x1.2351c2p-5, +- 0x1.1af5d2p-5, +- 0x1.12ceb4p-5, +- 0x1.0adb60p-5, +- 0x1.031ad6p-5, +- 0x1.f7182ap-6, +- 0x1.e85c44p-6, +- 0x1.da0006p-6, +- 0x1.cc0180p-6, +- 0x1.be5ecep-6, +- 0x1.b1160ap-6, +- 0x1.a4255ap-6, +- 0x1.978ae8p-6, +- 0x1.8b44e6p-6, +- 0x1.7f5188p-6, +- 0x1.73af0cp-6, +- 0x1.685bb6p-6, +- 0x1.5d55ccp-6, +- 0x1.529b9ep-6, +- 0x1.482b84p-6, +- 0x1.3e03d8p-6, +- 0x1.3422fep-6, +- 0x1.2a875cp-6, +- 0x1.212f62p-6, +- 0x1.181984p-6, +- 0x1.0f443ep-6, +- 0x1.06ae14p-6, +- 0x1.fcab14p-7, +- 0x1.ec7262p-7, +- 0x1.dcaf36p-7, +- 0x1.cd5ecap-7, +- 0x1.be7e5ap-7, +- 0x1.b00b38p-7, +- 0x1.a202bep-7, +- 0x1.94624ep-7, +- 0x1.87275ep-7, +- 0x1.7a4f6ap-7, +- 0x1.6dd7fep-7, +- 0x1.61beaep-7, +- 0x1.56011cp-7, +- 0x1.4a9cf6p-7, +- 0x1.3f8ff6p-7, +- 0x1.34d7dcp-7, +- 0x1.2a727ap-7, +- 0x1.205dacp-7, +- 0x1.169756p-7, +- 0x1.0d1d6ap-7, +- 0x1.03ede2p-7, +- 0x1.f60d8ap-8, +- 0x1.e4cc4ap-8, +- 0x1.d4143ap-8, +- 0x1.c3e1a6p-8, +- 0x1.b430ecp-8, +- 0x1.a4fe84p-8, +- 0x1.9646f4p-8, +- 0x1.8806d8p-8, +- 0x1.7a3adep-8, +- 0x1.6cdfccp-8, +- 0x1.5ff276p-8, +- 0x1.536fc2p-8, +- 0x1.4754acp-8, +- 0x1.3b9e40p-8, +- 0x1.30499cp-8, +- 0x1.2553eep-8, +- 0x1.1aba78p-8, +- 0x1.107a8cp-8, +- 0x1.06918cp-8, +- 0x1.f9f9d0p-9, +- 0x1.e77448p-9, +- 0x1.d58da6p-9, +- 0x1.c4412cp-9, +- 0x1.b38a3ap-9, +- 0x1.a36454p-9, +- 0x1.93cb12p-9, +- 0x1.84ba30p-9, +- 0x1.762d84p-9, +- 0x1.682100p-9, +- 0x1.5a90b0p-9, +- 0x1.4d78bcp-9, +- 0x1.40d564p-9, +- 0x1.34a306p-9, +- 0x1.28de12p-9, +- 0x1.1d8318p-9, +- 0x1.128ebap-9, +- 0x1.07fdb4p-9, +- 0x1.fb99b8p-10, +- 0x1.e7f232p-10, +- 0x1.d4fed8p-10, +- 0x1.c2b9d0p-10, +- 0x1.b11d70p-10, +- 0x1.a02436p-10, +- 0x1.8fc8c8p-10, +- 0x1.8005f0p-10, +- 0x1.70d6a4p-10, +- 0x1.6235fcp-10, +- 0x1.541f34p-10, +- 0x1.468daep-10, +- 0x1.397ceep-10, +- 0x1.2ce898p-10, +- 0x1.20cc76p-10, +- 0x1.15246ep-10, +- 0x1.09ec86p-10, +- 0x1.fe41cep-11, +- 0x1.e97ba4p-11, +- 0x1.d57f52p-11, +- 0x1.c245d4p-11, +- 0x1.afc85ep-11, +- 0x1.9e0058p-11, +- 0x1.8ce75ep-11, +- 0x1.7c7744p-11, +- 0x1.6caa0ep-11, +- 0x1.5d79ecp-11, +- 0x1.4ee142p-11, +- 0x1.40daa4p-11, +- 0x1.3360ccp-11, +- 0x1.266ea8p-11, +- 0x1.19ff46p-11, +- 0x1.0e0de8p-11, +- 0x1.0295f0p-11, +- 0x1.ef25d4p-12, +- 0x1.da0110p-12, +- 0x1.c5b542p-12, +- 0x1.b23a5ap-12, +- 0x1.9f8894p-12, +- 0x1.8d986ap-12, +- 0x1.7c629ap-12, +- 0x1.6be022p-12, +- 0x1.5c0a38p-12, +- 0x1.4cda54p-12, +- 0x1.3e4a24p-12, +- 0x1.305390p-12, +- 0x1.22f0b4p-12, +- 0x1.161be4p-12, +- 0x1.09cfa4p-12, +- 0x1.fc0d56p-13, +- 0x1.e577bcp-13, +- 0x1.cfd4a6p-13, +- 0x1.bb1a96p-13, +- 0x1.a74068p-13, +- 0x1.943d4ap-13, +- 0x1.8208bcp-13, +- 0x1.709a8ep-13, +- 0x1.5feadap-13, +- 0x1.4ff208p-13, +- 0x1.40a8c2p-13, +- 0x1.3207fcp-13, +- 0x1.2408eap-13, +- 0x1.16a502p-13, +- 0x1.09d5f8p-13, +- 0x1.fb2b7ap-14, +- 0x1.e3bcf4p-14, +- 0x1.cd5528p-14, +- 0x1.b7e946p-14, +- 0x1.a36eecp-14, +- 0x1.8fdc1cp-14, +- 0x1.7d2738p-14, +- 0x1.6b4702p-14, +- 0x1.5a329cp-14, +- 0x1.49e178p-14, +- 0x1.3a4b60p-14, +- 0x1.2b6876p-14, +- 0x1.1d3120p-14, +- 0x1.0f9e1cp-14, +- 0x1.02a868p-14, +- 0x1.ec929ap-15, +- 0x1.d4f4b4p-15, +- 0x1.be6abcp-15, +- 0x1.a8e8ccp-15, +- 0x1.94637ep-15, +- 0x1.80cfdcp-15, +- 0x1.6e2368p-15, +- 0x1.5c540cp-15, +- 0x1.4b581cp-15, +- 0x1.3b2652p-15, +- 0x1.2bb5ccp-15, +- 0x1.1cfe02p-15, +- 0x1.0ef6c4p-15, +- 0x1.019842p-15, +- 0x1.e9b5e8p-16, +- 0x1.d16f58p-16, +- 0x1.ba4f04p-16, +- 0x1.a447b8p-16, +- 0x1.8f4cccp-16, +- 0x1.7b5224p-16, +- 0x1.684c22p-16, +- 0x1.562facp-16, +- 0x1.44f21ep-16, +- 0x1.34894ap-16, +- 0x1.24eb72p-16, +- 0x1.160f44p-16, +- 0x1.07ebd2p-16, +- 0x1.f4f12ep-17, +- 0x1.db5ad0p-17, +- 0x1.c304f0p-17, +- 0x1.abe09ep-17, +- 0x1.95df98p-17, +- 0x1.80f43ap-17, +- 0x1.6d1178p-17, +- 0x1.5a2ae0p-17, +- 0x1.483488p-17, +- 0x1.372310p-17, +- 0x1.26eb9ep-17, +- 0x1.1783cep-17, +- 0x1.08e1bap-17, +- 0x1.f5f7d8p-18, +- 0x1.db92b6p-18, +- 0x1.c282cep-18, +- 0x1.aab7acp-18, +- 0x1.94219cp-18, +- 0x1.7eb1a2p-18, +- 0x1.6a5972p-18, +- 0x1.570b6ap-18, +- 0x1.44ba86p-18, +- 0x1.335a62p-18, +- 0x1.22df2ap-18, +- 0x1.133d96p-18, +- 0x1.046aeap-18, +- 0x1.ecb9d0p-19, +- 0x1.d21398p-19, +- 0x1.b8d094p-19, +- 0x1.a0df10p-19, +- 0x1.8a2e26p-19, +- 0x1.74adc8p-19, +- 0x1.604ea8p-19, +- 0x1.4d0232p-19, +- 0x1.3aba86p-19, +- 0x1.296a70p-19, +- 0x1.190562p-19, +- 0x1.097f62p-19, +- 0x1.f59a20p-20, +- 0x1.d9c736p-20, +- 0x1.bf716cp-20, +- 0x1.a6852cp-20, +- 0x1.8eefd8p-20, +- 0x1.789fb8p-20, +- 0x1.6383f8p-20, +- 0x1.4f8c96p-20, +- 0x1.3caa62p-20, +- 0x1.2acee2p-20, +- 0x1.19ec60p-20, +- 0x1.09f5d0p-20, +- 0x1.f5bd96p-21, +- 0x1.d9371ep-21, +- 0x1.be41dep-21, +- 0x1.a4c89ep-21, +- 0x1.8cb738p-21, +- 0x1.75fa8ep-21, +- 0x1.608078p-21, +- 0x1.4c37c0p-21, +- 0x1.39100ep-21, +- 0x1.26f9e0p-21, +- 0x1.15e682p-21, +- 0x1.05c804p-21, +- 0x1.ed2254p-22, +- 0x1.d06ad6p-22, +- 0x1.b551c8p-22, +- 0x1.9bc0a0p-22, +- 0x1.83a200p-22, +- 0x1.6ce1aap-22, +- 0x1.576c72p-22, +- 0x1.43302cp-22, +- 0x1.301ba2p-22, +- 0x1.1e1e86p-22, +- 0x1.0d2966p-22, +- 0x1.fa5b50p-23, +- 0x1.dc3ae4p-23, +- 0x1.bfd756p-23, +- 0x1.a517dap-23, +- 0x1.8be4f8p-23, +- 0x1.74287ep-23, +- 0x1.5dcd66p-23, +- 0x1.48bfd4p-23, +- 0x1.34ecf8p-23, +- 0x1.224310p-23, +- 0x1.10b148p-23, +- }, +-}; +diff --git a/sysdeps/aarch64/fpu/vecmath_config.h b/sysdeps/aarch64/fpu/vecmath_config.h +index 7f0a8aa5f2e80ec5..862eefaf8f144f12 100644 +--- a/sysdeps/aarch64/fpu/vecmath_config.h ++++ b/sysdeps/aarch64/fpu/vecmath_config.h +@@ -75,49 +75,37 @@ extern const struct v_log10_data + } table[1 << V_LOG10_TABLE_BITS]; + } __v_log10_data attribute_hidden; + +-extern const struct erff_data ++extern const struct v_erff_data + { + struct + { + float erf, scale; + } tab[513]; +-} __erff_data attribute_hidden; ++} __v_erff_data attribute_hidden; + +-extern const struct sv_erff_data +-{ +- float erf[513]; +- float scale[513]; +-} __sv_erff_data attribute_hidden; +- +-extern const struct erf_data ++extern const struct v_erf_data + { + struct + { + double erf, scale; + } tab[769]; +-} __erf_data attribute_hidden; +- +-extern const struct sv_erf_data +-{ +- double erf[769]; +- double scale[769]; +-} __sv_erf_data attribute_hidden; ++} __v_erf_data attribute_hidden; + +-extern const struct erfc_data ++extern const struct v_erfc_data + { + struct + { + double erfc, scale; + } tab[3488]; +-} __erfc_data attribute_hidden; ++} __v_erfc_data attribute_hidden; + +-extern const struct erfcf_data ++extern const struct v_erfcf_data + { + struct + { + float erfc, scale; + } tab[645]; +-} __erfcf_data attribute_hidden; ++} __v_erfcf_data attribute_hidden; + + /* Some data for AdvSIMD and SVE pow's internal exp and log. */ + #define V_POW_EXP_TABLE_BITS 8 diff --git a/glibc-RHEL-118273-19.patch b/glibc-RHEL-118273-19.patch new file mode 100644 index 0000000..0c685e3 --- /dev/null +++ b/glibc-RHEL-118273-19.patch @@ -0,0 +1,461 @@ +commit 13a7ef5999de56add448a24fefb0250236271a06 +Author: Pierre Blanchard +Date: Mon Dec 9 15:58:47 2024 +0000 + + AArch64: Improve codegen in users of ADVSIMD expm1 helper + + Add inline helper for expm1 and rearrange operations so MOV + is not necessary in reduction or around the special-case handler. + Reduce memory access by using more indexed MLAs in polynomial. + Speedup on Neoverse V1 for expm1 (19%), sinh (8.5%), and tanh (7.5%). + +diff --git a/sysdeps/aarch64/fpu/expm1_advsimd.c b/sysdeps/aarch64/fpu/expm1_advsimd.c +index 3db3b80c49292947..f2042db8bcc8466a 100644 +--- a/sysdeps/aarch64/fpu/expm1_advsimd.c ++++ b/sysdeps/aarch64/fpu/expm1_advsimd.c +@@ -18,31 +18,18 @@ + . */ + + #include "v_math.h" +-#include "poly_advsimd_f64.h" ++#include "v_expm1_inline.h" + + static const struct data + { +- float64x2_t poly[11]; +- float64x2_t invln2; +- double ln2[2]; +- float64x2_t shift; +- int64x2_t exponent_bias; ++ struct v_expm1_data d; + #if WANT_SIMD_EXCEPT + uint64x2_t thresh, tiny_bound; + #else + float64x2_t oflow_bound; + #endif + } data = { +- /* Generated using fpminimax, with degree=12 in [log(2)/2, log(2)/2]. */ +- .poly = { V2 (0x1p-1), V2 (0x1.5555555555559p-3), V2 (0x1.555555555554bp-5), +- V2 (0x1.111111110f663p-7), V2 (0x1.6c16c16c1b5f3p-10), +- V2 (0x1.a01a01affa35dp-13), V2 (0x1.a01a018b4ecbbp-16), +- V2 (0x1.71ddf82db5bb4p-19), V2 (0x1.27e517fc0d54bp-22), +- V2 (0x1.af5eedae67435p-26), V2 (0x1.1f143d060a28ap-29) }, +- .invln2 = V2 (0x1.71547652b82fep0), +- .ln2 = { 0x1.62e42fefa39efp-1, 0x1.abc9e3b39803fp-56 }, +- .shift = V2 (0x1.8p52), +- .exponent_bias = V2 (0x3ff0000000000000), ++ .d = V_EXPM1_DATA, + #if WANT_SIMD_EXCEPT + /* asuint64(oflow_bound) - asuint64(0x1p-51), shifted left by 1 for abs + compare. */ +@@ -58,67 +45,36 @@ static const struct data + }; + + static float64x2_t VPCS_ATTR NOINLINE +-special_case (float64x2_t x, float64x2_t y, uint64x2_t special) ++special_case (float64x2_t x, uint64x2_t special, const struct data *d) + { +- return v_call_f64 (expm1, x, y, special); ++ return v_call_f64 (expm1, x, expm1_inline (v_zerofy_f64 (x, special), &d->d), ++ special); + } + + /* Double-precision vector exp(x) - 1 function. +- The maximum error observed error is 2.18 ULP: +- _ZGVnN2v_expm1 (0x1.634ba0c237d7bp-2) got 0x1.a8b9ea8d66e22p-2 +- want 0x1.a8b9ea8d66e2p-2. */ ++ The maximum error observed error is 2.05 ULP: ++ _ZGVnN2v_expm1(0x1.634902eaff3adp-2) got 0x1.a8b636e2a9388p-2 ++ want 0x1.a8b636e2a9386p-2. */ + float64x2_t VPCS_ATTR V_NAME_D1 (expm1) (float64x2_t x) + { + const struct data *d = ptr_barrier (&data); + +- uint64x2_t ix = vreinterpretq_u64_f64 (x); +- + #if WANT_SIMD_EXCEPT ++ uint64x2_t ix = vreinterpretq_u64_f64 (x); + /* If fp exceptions are to be triggered correctly, fall back to scalar for + |x| < 2^-51, |x| > oflow_bound, Inf & NaN. Add ix to itself for + shift-left by 1, and compare with thresh which was left-shifted offline - + this is effectively an absolute compare. */ + uint64x2_t special + = vcgeq_u64 (vsubq_u64 (vaddq_u64 (ix, ix), d->tiny_bound), d->thresh); +- if (__glibc_unlikely (v_any_u64 (special))) +- x = v_zerofy_f64 (x, special); + #else + /* Large input, NaNs and Infs. */ + uint64x2_t special = vcageq_f64 (x, d->oflow_bound); + #endif + +- /* Reduce argument to smaller range: +- Let i = round(x / ln2) +- and f = x - i * ln2, then f is in [-ln2/2, ln2/2]. +- exp(x) - 1 = 2^i * (expm1(f) + 1) - 1 +- where 2^i is exact because i is an integer. */ +- float64x2_t n = vsubq_f64 (vfmaq_f64 (d->shift, d->invln2, x), d->shift); +- int64x2_t i = vcvtq_s64_f64 (n); +- float64x2_t ln2 = vld1q_f64 (&d->ln2[0]); +- float64x2_t f = vfmsq_laneq_f64 (x, n, ln2, 0); +- f = vfmsq_laneq_f64 (f, n, ln2, 1); +- +- /* Approximate expm1(f) using polynomial. +- Taylor expansion for expm1(x) has the form: +- x + ax^2 + bx^3 + cx^4 .... +- So we calculate the polynomial P(f) = a + bf + cf^2 + ... +- and assemble the approximation expm1(f) ~= f + f^2 * P(f). */ +- float64x2_t f2 = vmulq_f64 (f, f); +- float64x2_t f4 = vmulq_f64 (f2, f2); +- float64x2_t f8 = vmulq_f64 (f4, f4); +- float64x2_t p = vfmaq_f64 (f, f2, v_estrin_10_f64 (f, f2, f4, f8, d->poly)); +- +- /* Assemble the result. +- expm1(x) ~= 2^i * (p + 1) - 1 +- Let t = 2^i. */ +- int64x2_t u = vaddq_s64 (vshlq_n_s64 (i, 52), d->exponent_bias); +- float64x2_t t = vreinterpretq_f64_s64 (u); +- + if (__glibc_unlikely (v_any_u64 (special))) +- return special_case (vreinterpretq_f64_u64 (ix), +- vfmaq_f64 (vsubq_f64 (t, v_f64 (1.0)), p, t), +- special); ++ return special_case (x, special, d); + + /* expm1(x) ~= p * t + (t - 1). */ +- return vfmaq_f64 (vsubq_f64 (t, v_f64 (1.0)), p, t); ++ return expm1_inline (x, &d->d); + } +diff --git a/sysdeps/aarch64/fpu/sinh_advsimd.c b/sysdeps/aarch64/fpu/sinh_advsimd.c +index 3e3b76c502b01e16..7adf771517de2507 100644 +--- a/sysdeps/aarch64/fpu/sinh_advsimd.c ++++ b/sysdeps/aarch64/fpu/sinh_advsimd.c +@@ -18,72 +18,31 @@ + . */ + + #include "v_math.h" +-#include "poly_advsimd_f64.h" ++#include "v_expm1_inline.h" + + static const struct data + { +- float64x2_t poly[11], inv_ln2; +- double m_ln2[2]; +- float64x2_t shift; ++ struct v_expm1_data d; + uint64x2_t halff; +- int64x2_t onef; + #if WANT_SIMD_EXCEPT + uint64x2_t tiny_bound, thresh; + #else +- uint64x2_t large_bound; ++ float64x2_t large_bound; + #endif + } data = { +- /* Generated using Remez, deg=12 in [-log(2)/2, log(2)/2]. */ +- .poly = { V2 (0x1p-1), V2 (0x1.5555555555559p-3), V2 (0x1.555555555554bp-5), +- V2 (0x1.111111110f663p-7), V2 (0x1.6c16c16c1b5f3p-10), +- V2 (0x1.a01a01affa35dp-13), V2 (0x1.a01a018b4ecbbp-16), +- V2 (0x1.71ddf82db5bb4p-19), V2 (0x1.27e517fc0d54bp-22), +- V2 (0x1.af5eedae67435p-26), V2 (0x1.1f143d060a28ap-29), }, +- +- .inv_ln2 = V2 (0x1.71547652b82fep0), +- .m_ln2 = {-0x1.62e42fefa39efp-1, -0x1.abc9e3b39803fp-56}, +- .shift = V2 (0x1.8p52), +- ++ .d = V_EXPM1_DATA, + .halff = V2 (0x3fe0000000000000), +- .onef = V2 (0x3ff0000000000000), + #if WANT_SIMD_EXCEPT + /* 2^-26, below which sinh(x) rounds to x. */ + .tiny_bound = V2 (0x3e50000000000000), + /* asuint(large_bound) - asuint(tiny_bound). */ + .thresh = V2 (0x0230000000000000), + #else +-/* 2^9. expm1 helper overflows for large input. */ +- .large_bound = V2 (0x4080000000000000), ++ /* 2^9. expm1 helper overflows for large input. */ ++ .large_bound = V2 (0x1p+9), + #endif + }; + +-static inline float64x2_t +-expm1_inline (float64x2_t x) +-{ +- const struct data *d = ptr_barrier (&data); +- +- /* Reduce argument: +- exp(x) - 1 = 2^i * (expm1(f) + 1) - 1 +- where i = round(x / ln2) +- and f = x - i * ln2 (f in [-ln2/2, ln2/2]). */ +- float64x2_t j = vsubq_f64 (vfmaq_f64 (d->shift, d->inv_ln2, x), d->shift); +- int64x2_t i = vcvtq_s64_f64 (j); +- +- float64x2_t m_ln2 = vld1q_f64 (d->m_ln2); +- float64x2_t f = vfmaq_laneq_f64 (x, j, m_ln2, 0); +- f = vfmaq_laneq_f64 (f, j, m_ln2, 1); +- /* Approximate expm1(f) using polynomial. */ +- float64x2_t f2 = vmulq_f64 (f, f); +- float64x2_t f4 = vmulq_f64 (f2, f2); +- float64x2_t f8 = vmulq_f64 (f4, f4); +- float64x2_t p = vfmaq_f64 (f, f2, v_estrin_10_f64 (f, f2, f4, f8, d->poly)); +- /* t = 2^i. */ +- float64x2_t t = vreinterpretq_f64_u64 ( +- vreinterpretq_u64_s64 (vaddq_s64 (vshlq_n_s64 (i, 52), d->onef))); +- /* expm1(x) ~= p * t + (t - 1). */ +- return vfmaq_f64 (vsubq_f64 (t, v_f64 (1.0)), p, t); +-} +- + static float64x2_t NOINLINE VPCS_ATTR + special_case (float64x2_t x) + { +@@ -92,23 +51,23 @@ special_case (float64x2_t x) + + /* Approximation for vector double-precision sinh(x) using expm1. + sinh(x) = (exp(x) - exp(-x)) / 2. +- The greatest observed error is 2.57 ULP: +- _ZGVnN2v_sinh (0x1.9fb1d49d1d58bp-2) got 0x1.ab34e59d678dcp-2 +- want 0x1.ab34e59d678d9p-2. */ ++ The greatest observed error is 2.52 ULP: ++ _ZGVnN2v_sinh(-0x1.a098a2177a2b9p-2) got -0x1.ac2f05bb66fccp-2 ++ want -0x1.ac2f05bb66fc9p-2. */ + float64x2_t VPCS_ATTR V_NAME_D1 (sinh) (float64x2_t x) + { + const struct data *d = ptr_barrier (&data); + + float64x2_t ax = vabsq_f64 (x); +- uint64x2_t sign +- = veorq_u64 (vreinterpretq_u64_f64 (x), vreinterpretq_u64_f64 (ax)); +- float64x2_t halfsign = vreinterpretq_f64_u64 (vorrq_u64 (sign, d->halff)); ++ uint64x2_t ix = vreinterpretq_u64_f64 (x); ++ float64x2_t halfsign = vreinterpretq_f64_u64 ( ++ vbslq_u64 (v_u64 (0x8000000000000000), ix, d->halff)); + + #if WANT_SIMD_EXCEPT + uint64x2_t special = vcgeq_u64 ( + vsubq_u64 (vreinterpretq_u64_f64 (ax), d->tiny_bound), d->thresh); + #else +- uint64x2_t special = vcgeq_u64 (vreinterpretq_u64_f64 (ax), d->large_bound); ++ uint64x2_t special = vcageq_f64 (x, d->large_bound); + #endif + + /* Fall back to scalar variant for all lanes if any of them are special. */ +@@ -118,7 +77,7 @@ float64x2_t VPCS_ATTR V_NAME_D1 (sinh) (float64x2_t x) + /* Up to the point that expm1 overflows, we can use it to calculate sinh + using a slight rearrangement of the definition of sinh. This allows us to + retain acceptable accuracy for very small inputs. */ +- float64x2_t t = expm1_inline (ax); ++ float64x2_t t = expm1_inline (ax, &d->d); + t = vaddq_f64 (t, vdivq_f64 (t, vaddq_f64 (t, v_f64 (1.0)))); + return vmulq_f64 (t, halfsign); + } +diff --git a/sysdeps/aarch64/fpu/tanh_advsimd.c b/sysdeps/aarch64/fpu/tanh_advsimd.c +index 1da1dfa5dbe418b6..402ba9d8ad2478a8 100644 +--- a/sysdeps/aarch64/fpu/tanh_advsimd.c ++++ b/sysdeps/aarch64/fpu/tanh_advsimd.c +@@ -18,68 +18,30 @@ + . */ + + #include "v_math.h" +-#include "poly_advsimd_f64.h" ++#include "v_expm1_inline.h" + + static const struct data + { +- float64x2_t poly[11]; +- float64x2_t inv_ln2, ln2_hi, ln2_lo, shift; +- uint64x2_t onef; ++ struct v_expm1_data d; + uint64x2_t thresh, tiny_bound; + } data = { +- /* Generated using Remez, deg=12 in [-log(2)/2, log(2)/2]. */ +- .poly = { V2 (0x1p-1), V2 (0x1.5555555555559p-3), V2 (0x1.555555555554bp-5), +- V2 (0x1.111111110f663p-7), V2 (0x1.6c16c16c1b5f3p-10), +- V2 (0x1.a01a01affa35dp-13), V2 (0x1.a01a018b4ecbbp-16), +- V2 (0x1.71ddf82db5bb4p-19), V2 (0x1.27e517fc0d54bp-22), +- V2 (0x1.af5eedae67435p-26), V2 (0x1.1f143d060a28ap-29), }, +- +- .inv_ln2 = V2 (0x1.71547652b82fep0), +- .ln2_hi = V2 (-0x1.62e42fefa39efp-1), +- .ln2_lo = V2 (-0x1.abc9e3b39803fp-56), +- .shift = V2 (0x1.8p52), +- +- .onef = V2 (0x3ff0000000000000), ++ .d = V_EXPM1_DATA, + .tiny_bound = V2 (0x3e40000000000000), /* asuint64 (0x1p-27). */ + /* asuint64(0x1.241bf835f9d5fp+4) - asuint64(tiny_bound). */ + .thresh = V2 (0x01f241bf835f9d5f), + }; + +-static inline float64x2_t +-expm1_inline (float64x2_t x, const struct data *d) +-{ +- /* Helper routine for calculating exp(x) - 1. Vector port of the helper from +- the scalar variant of tanh. */ +- +- /* Reduce argument: f in [-ln2/2, ln2/2], i is exact. */ +- float64x2_t j = vsubq_f64 (vfmaq_f64 (d->shift, d->inv_ln2, x), d->shift); +- int64x2_t i = vcvtq_s64_f64 (j); +- float64x2_t f = vfmaq_f64 (x, j, d->ln2_hi); +- f = vfmaq_f64 (f, j, d->ln2_lo); +- +- /* Approximate expm1(f) using polynomial. */ +- float64x2_t f2 = vmulq_f64 (f, f); +- float64x2_t f4 = vmulq_f64 (f2, f2); +- float64x2_t p = vfmaq_f64 ( +- f, f2, v_estrin_10_f64 (f, f2, f4, vmulq_f64 (f4, f4), d->poly)); +- +- /* t = 2 ^ i. */ +- float64x2_t t = vreinterpretq_f64_u64 ( +- vaddq_u64 (vreinterpretq_u64_s64 (i << 52), d->onef)); +- /* expm1(x) = p * t + (t - 1). */ +- return vfmaq_f64 (vsubq_f64 (t, v_f64 (1)), p, t); +-} +- + static float64x2_t NOINLINE VPCS_ATTR +-special_case (float64x2_t x, float64x2_t y, uint64x2_t special) ++special_case (float64x2_t x, float64x2_t q, float64x2_t qp2, ++ uint64x2_t special) + { +- return v_call_f64 (tanh, x, y, special); ++ return v_call_f64 (tanh, x, vdivq_f64 (q, qp2), special); + } + + /* Vector approximation for double-precision tanh(x), using a simplified +- version of expm1. The greatest observed error is 2.77 ULP: +- _ZGVnN2v_tanh(-0x1.c4a4ca0f9f3b7p-3) got -0x1.bd6a21a163627p-3 +- want -0x1.bd6a21a163624p-3. */ ++ version of expm1. The greatest observed error is 2.70 ULP: ++ _ZGVnN2v_tanh(-0x1.c59aa220cb177p-3) got -0x1.be5452a6459fep-3 ++ want -0x1.be5452a6459fbp-3. */ + float64x2_t VPCS_ATTR V_NAME_D1 (tanh) (float64x2_t x) + { + const struct data *d = ptr_barrier (&data); +@@ -100,10 +62,10 @@ float64x2_t VPCS_ATTR V_NAME_D1 (tanh) (float64x2_t x) + u = vaddq_f64 (u, u); + + /* tanh(x) = (e^2x - 1) / (e^2x + 1). */ +- float64x2_t q = expm1_inline (u, d); +- float64x2_t qp2 = vaddq_f64 (q, v_f64 (2)); ++ float64x2_t q = expm1_inline (u, &d->d); ++ float64x2_t qp2 = vaddq_f64 (q, v_f64 (2.0)); + + if (__glibc_unlikely (v_any_u64 (special))) +- return special_case (x, vdivq_f64 (q, qp2), special); ++ return special_case (x, q, qp2, special); + return vdivq_f64 (q, qp2); + } +diff --git a/sysdeps/aarch64/fpu/v_expm1_inline.h b/sysdeps/aarch64/fpu/v_expm1_inline.h +new file mode 100644 +index 0000000000000000..a925183d4e5e4623 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/v_expm1_inline.h +@@ -0,0 +1,97 @@ ++/* Double-precision inline helper for vector (Advanced SIMD) expm1 function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#ifndef AARCH64_FPU_V_EXPM1_INLINE_H ++#define AARCH64_FPU_V_EXPM1_INLINE_H ++ ++#include "v_math.h" ++ ++struct v_expm1_data ++{ ++ float64x2_t c2, c4, c6, c8; ++ float64x2_t invln2; ++ int64x2_t exponent_bias; ++ double c1, c3, c5, c7, c9, c10; ++ double ln2[2]; ++}; ++ ++/* Generated using fpminimax, with degree=12 in [log(2)/2, log(2)/2]. */ ++#define V_EXPM1_DATA \ ++ { \ ++ .c1 = 0x1.5555555555559p-3, .c2 = V2 (0x1.555555555554bp-5), \ ++ .c3 = 0x1.111111110f663p-7, .c4 = V2 (0x1.6c16c16c1b5f3p-10), \ ++ .c5 = 0x1.a01a01affa35dp-13, .c6 = V2 (0x1.a01a018b4ecbbp-16), \ ++ .c7 = 0x1.71ddf82db5bb4p-19, .c8 = V2 (0x1.27e517fc0d54bp-22), \ ++ .c9 = 0x1.af5eedae67435p-26, .c10 = 0x1.1f143d060a28ap-29, \ ++ .ln2 = { 0x1.62e42fefa39efp-1, 0x1.abc9e3b39803fp-56 }, \ ++ .invln2 = V2 (0x1.71547652b82fep0), \ ++ .exponent_bias = V2 (0x3ff0000000000000), \ ++ } ++ ++static inline float64x2_t ++expm1_inline (float64x2_t x, const struct v_expm1_data *d) ++{ ++ /* Helper routine for calculating exp(x) - 1. */ ++ ++ float64x2_t ln2 = vld1q_f64 (&d->ln2[0]); ++ ++ /* Reduce argument to smaller range: ++ Let i = round(x / ln2) ++ and f = x - i * ln2, then f is in [-ln2/2, ln2/2]. ++ exp(x) - 1 = 2^i * (expm1(f) + 1) - 1 ++ where 2^i is exact because i is an integer. */ ++ float64x2_t n = vrndaq_f64 (vmulq_f64 (x, d->invln2)); ++ int64x2_t i = vcvtq_s64_f64 (n); ++ float64x2_t f = vfmsq_laneq_f64 (x, n, ln2, 0); ++ f = vfmsq_laneq_f64 (f, n, ln2, 1); ++ ++ /* Approximate expm1(f) using polynomial. ++ Taylor expansion for expm1(x) has the form: ++ x + ax^2 + bx^3 + cx^4 .... ++ So we calculate the polynomial P(f) = a + bf + cf^2 + ... ++ and assemble the approximation expm1(f) ~= f + f^2 * P(f). */ ++ float64x2_t f2 = vmulq_f64 (f, f); ++ float64x2_t f4 = vmulq_f64 (f2, f2); ++ float64x2_t lane_consts_13 = vld1q_f64 (&d->c1); ++ float64x2_t lane_consts_57 = vld1q_f64 (&d->c5); ++ float64x2_t lane_consts_910 = vld1q_f64 (&d->c9); ++ float64x2_t p01 = vfmaq_laneq_f64 (v_f64 (0.5), f, lane_consts_13, 0); ++ float64x2_t p23 = vfmaq_laneq_f64 (d->c2, f, lane_consts_13, 1); ++ float64x2_t p45 = vfmaq_laneq_f64 (d->c4, f, lane_consts_57, 0); ++ float64x2_t p67 = vfmaq_laneq_f64 (d->c6, f, lane_consts_57, 1); ++ float64x2_t p03 = vfmaq_f64 (p01, f2, p23); ++ float64x2_t p47 = vfmaq_f64 (p45, f2, p67); ++ float64x2_t p89 = vfmaq_laneq_f64 (d->c8, f, lane_consts_910, 0); ++ float64x2_t p = vfmaq_laneq_f64 (p89, f2, lane_consts_910, 1); ++ p = vfmaq_f64 (p47, f4, p); ++ p = vfmaq_f64 (p03, f4, p); ++ ++ p = vfmaq_f64 (f, f2, p); ++ ++ /* Assemble the result. ++ expm1(x) ~= 2^i * (p + 1) - 1 ++ Let t = 2^i. */ ++ int64x2_t u = vaddq_s64 (vshlq_n_s64 (i, 52), d->exponent_bias); ++ float64x2_t t = vreinterpretq_f64_s64 (u); ++ ++ /* expm1(x) ~= p * t + (t - 1). */ ++ return vfmaq_f64 (vsubq_f64 (t, v_f64 (1.0)), p, t); ++} ++ ++#endif +diff --git a/sysdeps/aarch64/fpu/v_expm1f_inline.h b/sysdeps/aarch64/fpu/v_expm1f_inline.h +index 1daedfdd51cfc54b..c1fb88b5e027b322 100644 +--- a/sysdeps/aarch64/fpu/v_expm1f_inline.h ++++ b/sysdeps/aarch64/fpu/v_expm1f_inline.h +@@ -21,7 +21,6 @@ + #define AARCH64_FPU_V_EXPM1F_INLINE_H + + #include "v_math.h" +-#include "math_config.h" + + struct v_expm1f_data + { diff --git a/glibc-RHEL-118273-2.patch b/glibc-RHEL-118273-2.patch new file mode 100644 index 0000000..8d9e4ee --- /dev/null +++ b/glibc-RHEL-118273-2.patch @@ -0,0 +1,862 @@ +commit bdb5705b7bab618ed4445f4b17d4b1e4fbbf94a7 +Author: Joe Ramsay +Date: Tue Feb 20 16:59:39 2024 +0000 + + aarch64/fpu: Add vector variants of cosh + + Reviewed-by: Szabolcs Nagy + +diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile +index 320b6ed43a9a454c..019c3a51880e2306 100644 +--- a/sysdeps/aarch64/fpu/Makefile ++++ b/sysdeps/aarch64/fpu/Makefile +@@ -3,6 +3,7 @@ libmvec-supported-funcs = acos \ + atan \ + atan2 \ + cos \ ++ cosh \ + erf \ + exp \ + exp10 \ +@@ -32,7 +33,8 @@ libmvec-support = $(addsuffix f_advsimd,$(float-advsimd-funcs)) \ + erf_data \ + erff_data \ + sv_erf_data \ +- sv_erff_data ++ sv_erff_data \ ++ v_exp_tail_data + endif + + sve-cflags = -march=armv8-a+sve +diff --git a/sysdeps/aarch64/fpu/Versions b/sysdeps/aarch64/fpu/Versions +index d7b1e87191b66439..884b4b57f097635f 100644 +--- a/sysdeps/aarch64/fpu/Versions ++++ b/sysdeps/aarch64/fpu/Versions +@@ -79,6 +79,11 @@ libmvec { + _ZGVsMxv_tan; + } + GLIBC_2.40 { ++ _ZGVnN2v_cosh; ++ _ZGVnN2v_coshf; ++ _ZGVnN4v_coshf; ++ _ZGVsMxv_cosh; ++ _ZGVsMxv_coshf; + _ZGVnN2v_erf; + _ZGVnN2v_erff; + _ZGVnN4v_erff; +diff --git a/sysdeps/aarch64/fpu/advsimd_f32_protos.h b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +index d8d88de2181569f9..c63b2948d4938b0d 100644 +--- a/sysdeps/aarch64/fpu/advsimd_f32_protos.h ++++ b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +@@ -21,6 +21,7 @@ libmvec_hidden_proto (V_NAME_F1(acos)); + libmvec_hidden_proto (V_NAME_F1(asin)); + libmvec_hidden_proto (V_NAME_F1(atan)); + libmvec_hidden_proto (V_NAME_F1(cos)); ++libmvec_hidden_proto (V_NAME_F1(cosh)); + libmvec_hidden_proto (V_NAME_F1(erf)); + libmvec_hidden_proto (V_NAME_F1(exp10)); + libmvec_hidden_proto (V_NAME_F1(exp2)); +diff --git a/sysdeps/aarch64/fpu/bits/math-vector.h b/sysdeps/aarch64/fpu/bits/math-vector.h +index 71f53363a071126d..8ca55098706a54c2 100644 +--- a/sysdeps/aarch64/fpu/bits/math-vector.h ++++ b/sysdeps/aarch64/fpu/bits/math-vector.h +@@ -49,6 +49,10 @@ + # define __DECL_SIMD_cos __DECL_SIMD_aarch64 + # undef __DECL_SIMD_cosf + # define __DECL_SIMD_cosf __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_cosh ++# define __DECL_SIMD_cosh __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_coshf ++# define __DECL_SIMD_coshf __DECL_SIMD_aarch64 + # undef __DECL_SIMD_erf + # define __DECL_SIMD_erf __DECL_SIMD_aarch64 + # undef __DECL_SIMD_erff +@@ -124,6 +128,7 @@ __vpcs __f32x4_t _ZGVnN4v_acosf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_asinf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_atanf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_cosf (__f32x4_t); ++__vpcs __f32x4_t _ZGVnN4v_coshf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_erff (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_expf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_exp10f (__f32x4_t); +@@ -141,6 +146,7 @@ __vpcs __f64x2_t _ZGVnN2v_acos (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_asin (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_atan (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_cos (__f64x2_t); ++__vpcs __f64x2_t _ZGVnN2v_cosh (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_erf (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_exp (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_exp10 (__f64x2_t); +@@ -163,6 +169,7 @@ __sv_f32_t _ZGVsMxv_acosf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_asinf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_atanf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_cosf (__sv_f32_t, __sv_bool_t); ++__sv_f32_t _ZGVsMxv_coshf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_erff (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_expf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_exp10f (__sv_f32_t, __sv_bool_t); +@@ -180,6 +187,7 @@ __sv_f64_t _ZGVsMxv_acos (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_asin (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_atan (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_cos (__sv_f64_t, __sv_bool_t); ++__sv_f64_t _ZGVsMxv_cosh (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_erf (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_exp (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_exp10 (__sv_f64_t, __sv_bool_t); +diff --git a/sysdeps/aarch64/fpu/cosh_advsimd.c b/sysdeps/aarch64/fpu/cosh_advsimd.c +new file mode 100644 +index 0000000000000000..ec7b59637e973da9 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/cosh_advsimd.c +@@ -0,0 +1,108 @@ ++/* Double-precision vector (AdvSIMD) cosh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_math.h" ++ ++static const struct data ++{ ++ float64x2_t poly[3]; ++ float64x2_t inv_ln2, ln2, shift, thres; ++ uint64x2_t index_mask, special_bound; ++} data = { ++ .poly = { V2 (0x1.fffffffffffd4p-2), V2 (0x1.5555571d6b68cp-3), ++ V2 (0x1.5555576a59599p-5), }, ++ ++ .inv_ln2 = V2 (0x1.71547652b82fep8), /* N/ln2. */ ++ /* -ln2/N. */ ++ .ln2 = {-0x1.62e42fefa39efp-9, -0x1.abc9e3b39803f3p-64}, ++ .shift = V2 (0x1.8p+52), ++ .thres = V2 (704.0), ++ ++ .index_mask = V2 (0xff), ++ /* 0x1.6p9, above which exp overflows. */ ++ .special_bound = V2 (0x4086000000000000), ++}; ++ ++static float64x2_t NOINLINE VPCS_ATTR ++special_case (float64x2_t x, float64x2_t y, uint64x2_t special) ++{ ++ return v_call_f64 (cosh, x, y, special); ++} ++ ++/* Helper for approximating exp(x). Copied from v_exp_tail, with no ++ special-case handling or tail. */ ++static inline float64x2_t ++exp_inline (float64x2_t x) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ /* n = round(x/(ln2/N)). */ ++ float64x2_t z = vfmaq_f64 (d->shift, x, d->inv_ln2); ++ uint64x2_t u = vreinterpretq_u64_f64 (z); ++ float64x2_t n = vsubq_f64 (z, d->shift); ++ ++ /* r = x - n*ln2/N. */ ++ float64x2_t r = vfmaq_laneq_f64 (x, n, d->ln2, 0); ++ r = vfmaq_laneq_f64 (r, n, d->ln2, 1); ++ ++ uint64x2_t e = vshlq_n_u64 (u, 52 - V_EXP_TAIL_TABLE_BITS); ++ uint64x2_t i = vandq_u64 (u, d->index_mask); ++ ++ /* y = tail + exp(r) - 1 ~= r + C1 r^2 + C2 r^3 + C3 r^4. */ ++ float64x2_t y = vfmaq_f64 (d->poly[1], d->poly[2], r); ++ y = vfmaq_f64 (d->poly[0], y, r); ++ y = vmulq_f64 (vfmaq_f64 (v_f64 (1), y, r), r); ++ ++ /* s = 2^(n/N). */ ++ u = v_lookup_u64 (__v_exp_tail_data, i); ++ float64x2_t s = vreinterpretq_f64_u64 (vaddq_u64 (u, e)); ++ ++ return vfmaq_f64 (s, y, s); ++} ++ ++/* Approximation for vector double-precision cosh(x) using exp_inline. ++ cosh(x) = (exp(x) + exp(-x)) / 2. ++ The greatest observed error is in the scalar fall-back region, so is the ++ same as the scalar routine, 1.93 ULP: ++ _ZGVnN2v_cosh (0x1.628af341989dap+9) got 0x1.fdf28623ef921p+1021 ++ want 0x1.fdf28623ef923p+1021. ++ ++ The greatest observed error in the non-special region is 1.54 ULP: ++ _ZGVnN2v_cosh (0x1.8e205b6ecacf7p+2) got 0x1.f711dcb0c77afp+7 ++ want 0x1.f711dcb0c77b1p+7. */ ++float64x2_t VPCS_ATTR V_NAME_D1 (cosh) (float64x2_t x) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ float64x2_t ax = vabsq_f64 (x); ++ uint64x2_t special ++ = vcgtq_u64 (vreinterpretq_u64_f64 (ax), d->special_bound); ++ ++ /* Up to the point that exp overflows, we can use it to calculate cosh by ++ exp(|x|) / 2 + 1 / (2 * exp(|x|)). */ ++ float64x2_t t = exp_inline (ax); ++ float64x2_t half_t = vmulq_n_f64 (t, 0.5); ++ float64x2_t half_over_t = vdivq_f64 (v_f64 (0.5), t); ++ ++ /* Fall back to scalar for any special cases. */ ++ if (__glibc_unlikely (v_any_u64 (special))) ++ return special_case (x, vaddq_f64 (half_t, half_over_t), special); ++ ++ return vaddq_f64 (half_t, half_over_t); ++} +diff --git a/sysdeps/aarch64/fpu/cosh_sve.c b/sysdeps/aarch64/fpu/cosh_sve.c +new file mode 100644 +index 0000000000000000..919f34604a452b4a +--- /dev/null ++++ b/sysdeps/aarch64/fpu/cosh_sve.c +@@ -0,0 +1,105 @@ ++/* Double-precision vector (SVE) cosh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "sv_math.h" ++ ++static const struct data ++{ ++ float64_t poly[3]; ++ float64_t inv_ln2, ln2_hi, ln2_lo, shift, thres; ++ uint64_t index_mask, special_bound; ++} data = { ++ .poly = { 0x1.fffffffffffd4p-2, 0x1.5555571d6b68cp-3, ++ 0x1.5555576a59599p-5, }, ++ ++ .inv_ln2 = 0x1.71547652b82fep8, /* N/ln2. */ ++ /* -ln2/N. */ ++ .ln2_hi = -0x1.62e42fefa39efp-9, ++ .ln2_lo = -0x1.abc9e3b39803f3p-64, ++ .shift = 0x1.8p+52, ++ .thres = 704.0, ++ ++ .index_mask = 0xff, ++ /* 0x1.6p9, above which exp overflows. */ ++ .special_bound = 0x4086000000000000, ++}; ++ ++static svfloat64_t NOINLINE ++special_case (svfloat64_t x, svfloat64_t y, svbool_t special) ++{ ++ return sv_call_f64 (cosh, x, y, special); ++} ++ ++/* Helper for approximating exp(x). Copied from sv_exp_tail, with no ++ special-case handling or tail. */ ++static inline svfloat64_t ++exp_inline (svfloat64_t x, const svbool_t pg, const struct data *d) ++{ ++ /* Calculate exp(x). */ ++ svfloat64_t z = svmla_x (pg, sv_f64 (d->shift), x, d->inv_ln2); ++ svfloat64_t n = svsub_x (pg, z, d->shift); ++ ++ svfloat64_t r = svmla_x (pg, x, n, d->ln2_hi); ++ r = svmla_x (pg, r, n, d->ln2_lo); ++ ++ svuint64_t u = svreinterpret_u64 (z); ++ svuint64_t e = svlsl_x (pg, u, 52 - V_EXP_TAIL_TABLE_BITS); ++ svuint64_t i = svand_x (pg, u, d->index_mask); ++ ++ svfloat64_t y = svmla_x (pg, sv_f64 (d->poly[1]), r, d->poly[2]); ++ y = svmla_x (pg, sv_f64 (d->poly[0]), r, y); ++ y = svmla_x (pg, sv_f64 (1.0), r, y); ++ y = svmul_x (pg, r, y); ++ ++ /* s = 2^(n/N). */ ++ u = svld1_gather_index (pg, __v_exp_tail_data, i); ++ svfloat64_t s = svreinterpret_f64 (svadd_x (pg, u, e)); ++ ++ return svmla_x (pg, s, s, y); ++} ++ ++/* Approximation for SVE double-precision cosh(x) using exp_inline. ++ cosh(x) = (exp(x) + exp(-x)) / 2. ++ The greatest observed error is in the scalar fall-back region, so is the ++ same as the scalar routine, 1.93 ULP: ++ _ZGVsMxv_cosh (0x1.628ad45039d2fp+9) got 0x1.fd774e958236dp+1021 ++ want 0x1.fd774e958236fp+1021. ++ ++ The greatest observed error in the non-special region is 1.54 ULP: ++ _ZGVsMxv_cosh (0x1.ba5651dd4486bp+2) got 0x1.f5e2bb8d5c98fp+8 ++ want 0x1.f5e2bb8d5c991p+8. */ ++svfloat64_t SV_NAME_D1 (cosh) (svfloat64_t x, const svbool_t pg) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ svfloat64_t ax = svabs_x (pg, x); ++ svbool_t special = svcmpgt (pg, svreinterpret_u64 (ax), d->special_bound); ++ ++ /* Up to the point that exp overflows, we can use it to calculate cosh by ++ exp(|x|) / 2 + 1 / (2 * exp(|x|)). */ ++ svfloat64_t t = exp_inline (ax, pg, d); ++ svfloat64_t half_t = svmul_x (pg, t, 0.5); ++ svfloat64_t half_over_t = svdivr_x (pg, t, 0.5); ++ ++ /* Fall back to scalar for any special cases. */ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ return special_case (x, svadd_x (pg, half_t, half_over_t), special); ++ ++ return svadd_x (pg, half_t, half_over_t); ++} +diff --git a/sysdeps/aarch64/fpu/coshf_advsimd.c b/sysdeps/aarch64/fpu/coshf_advsimd.c +new file mode 100644 +index 0000000000000000..c1ab4923b826569b +--- /dev/null ++++ b/sysdeps/aarch64/fpu/coshf_advsimd.c +@@ -0,0 +1,84 @@ ++/* Single-precision vector (AdvSIMD) cosh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_expf_inline.h" ++#include "v_math.h" ++ ++static const struct data ++{ ++ struct v_expf_data expf_consts; ++ uint32x4_t tiny_bound, special_bound; ++} data = { ++ .expf_consts = V_EXPF_DATA, ++ .tiny_bound = V4 (0x20000000), /* 0x1p-63: Round to 1 below this. */ ++ /* 0x1.5a92d8p+6: expf overflows above this, so have to use special case. */ ++ .special_bound = V4 (0x42ad496c), ++}; ++ ++#if !WANT_SIMD_EXCEPT ++static float32x4_t NOINLINE VPCS_ATTR ++special_case (float32x4_t x, float32x4_t y, uint32x4_t special) ++{ ++ return v_call_f32 (coshf, x, y, special); ++} ++#endif ++ ++/* Single-precision vector cosh, using vector expf. ++ Maximum error is 2.38 ULP: ++ _ZGVnN4v_coshf (0x1.e8001ep+1) got 0x1.6a491ep+4 ++ want 0x1.6a4922p+4. */ ++float32x4_t VPCS_ATTR V_NAME_F1 (cosh) (float32x4_t x) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ float32x4_t ax = vabsq_f32 (x); ++ uint32x4_t iax = vreinterpretq_u32_f32 (ax); ++ uint32x4_t special = vcgeq_u32 (iax, d->special_bound); ++ ++#if WANT_SIMD_EXCEPT ++ /* If fp exceptions are to be triggered correctly, fall back to the scalar ++ variant for all inputs if any input is a special value or above the bound ++ at which expf overflows. */ ++ if (__glibc_unlikely (v_any_u32 (special))) ++ return v_call_f32 (coshf, x, x, v_u32 (-1)); ++ ++ uint32x4_t tiny = vcleq_u32 (iax, d->tiny_bound); ++ /* If any input is tiny, avoid underflow exception by fixing tiny lanes of ++ input to 0, which will generate no exceptions. */ ++ if (__glibc_unlikely (v_any_u32 (tiny))) ++ ax = v_zerofy_f32 (ax, tiny); ++#endif ++ ++ /* Calculate cosh by exp(x) / 2 + exp(-x) / 2. */ ++ float32x4_t t = v_expf_inline (ax, &d->expf_consts); ++ float32x4_t half_t = vmulq_n_f32 (t, 0.5); ++ float32x4_t half_over_t = vdivq_f32 (v_f32 (0.5), t); ++ ++#if WANT_SIMD_EXCEPT ++ if (__glibc_unlikely (v_any_u32 (tiny))) ++ return vbslq_f32 (tiny, v_f32 (1), vaddq_f32 (half_t, half_over_t)); ++#else ++ if (__glibc_unlikely (v_any_u32 (special))) ++ return special_case (x, vaddq_f32 (half_t, half_over_t), special); ++#endif ++ ++ return vaddq_f32 (half_t, half_over_t); ++} ++libmvec_hidden_def (V_NAME_F1 (cosh)) ++HALF_WIDTH_ALIAS_F1 (cosh) +diff --git a/sysdeps/aarch64/fpu/coshf_sve.c b/sysdeps/aarch64/fpu/coshf_sve.c +new file mode 100644 +index 0000000000000000..e5d8a299c6aa7ceb +--- /dev/null ++++ b/sysdeps/aarch64/fpu/coshf_sve.c +@@ -0,0 +1,59 @@ ++/* Single-precision vector (SVE) cosh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "sv_math.h" ++#include "sv_expf_inline.h" ++ ++static const struct data ++{ ++ struct sv_expf_data expf_consts; ++ uint32_t special_bound; ++} data = { ++ .expf_consts = SV_EXPF_DATA, ++ /* 0x1.5a92d8p+6: expf overflows above this, so have to use special case. */ ++ .special_bound = 0x42ad496c, ++}; ++ ++static svfloat32_t NOINLINE ++special_case (svfloat32_t x, svfloat32_t y, svbool_t pg) ++{ ++ return sv_call_f32 (coshf, x, y, pg); ++} ++ ++/* Single-precision vector cosh, using vector expf. ++ Maximum error is 1.89 ULP: ++ _ZGVsMxv_coshf (-0x1.65898cp+6) got 0x1.f00aep+127 ++ want 0x1.f00adcp+127. */ ++svfloat32_t SV_NAME_F1 (cosh) (svfloat32_t x, svbool_t pg) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ svfloat32_t ax = svabs_x (pg, x); ++ svbool_t special = svcmpge (pg, svreinterpret_u32 (ax), d->special_bound); ++ ++ /* Calculate cosh by exp(x) / 2 + exp(-x) / 2. */ ++ svfloat32_t t = expf_inline (ax, pg, &d->expf_consts); ++ svfloat32_t half_t = svmul_x (pg, t, 0.5); ++ svfloat32_t half_over_t = svdivr_x (pg, t, 0.5); ++ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ return special_case (x, svadd_x (pg, half_t, half_over_t), special); ++ ++ return svadd_x (pg, half_t, half_over_t); ++} +diff --git a/sysdeps/aarch64/fpu/sv_expf_inline.h b/sysdeps/aarch64/fpu/sv_expf_inline.h +new file mode 100644 +index 0000000000000000..23963b5f8ec89ead +--- /dev/null ++++ b/sysdeps/aarch64/fpu/sv_expf_inline.h +@@ -0,0 +1,75 @@ ++/* SVE helper for single-precision routines which depend on exp ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#ifndef AARCH64_FPU_SV_EXPF_INLINE_H ++#define AARCH64_FPU_SV_EXPF_INLINE_H ++ ++#include "sv_math.h" ++ ++struct sv_expf_data ++{ ++ float poly[5]; ++ float inv_ln2, ln2_hi, ln2_lo, shift; ++}; ++ ++/* Coefficients copied from the polynomial in AdvSIMD variant, reversed for ++ compatibility with polynomial helpers. Shift is 1.5*2^17 + 127. */ ++#define SV_EXPF_DATA \ ++ { \ ++ .poly = { 0x1.ffffecp-1f, 0x1.fffdb6p-2f, 0x1.555e66p-3f, 0x1.573e2ep-5f, \ ++ 0x1.0e4020p-7f }, \ ++ \ ++ .inv_ln2 = 0x1.715476p+0f, .ln2_hi = 0x1.62e4p-1f, \ ++ .ln2_lo = 0x1.7f7d1cp-20f, .shift = 0x1.803f8p17f, \ ++ } ++ ++#define C(i) sv_f32 (d->poly[i]) ++ ++static inline svfloat32_t ++expf_inline (svfloat32_t x, const svbool_t pg, const struct sv_expf_data *d) ++{ ++ /* exp(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)] ++ x = ln2*n + r, with r in [-ln2/2, ln2/2]. */ ++ ++ /* Load some constants in quad-word chunks to minimise memory access. */ ++ svfloat32_t c4_invln2_and_ln2 = svld1rq (svptrue_b32 (), &d->poly[4]); ++ ++ /* n = round(x/(ln2/N)). */ ++ svfloat32_t z = svmla_lane (sv_f32 (d->shift), x, c4_invln2_and_ln2, 1); ++ svfloat32_t n = svsub_x (pg, z, d->shift); ++ ++ /* r = x - n*ln2/N. */ ++ svfloat32_t r = svmls_lane (x, n, c4_invln2_and_ln2, 2); ++ r = svmls_lane (r, n, c4_invln2_and_ln2, 3); ++ ++ /* scale = 2^(n/N). */ ++ svfloat32_t scale = svexpa (svreinterpret_u32_f32 (z)); ++ ++ /* y = exp(r) - 1 ~= r + C0 r^2 + C1 r^3 + C2 r^4 + C3 r^5 + C4 r^6. */ ++ svfloat32_t p12 = svmla_x (pg, C (1), C (2), r); ++ svfloat32_t p34 = svmla_lane (C (3), r, c4_invln2_and_ln2, 0); ++ svfloat32_t r2 = svmul_f32_x (pg, r, r); ++ svfloat32_t p14 = svmla_x (pg, p12, p34, r2); ++ svfloat32_t p0 = svmul_f32_x (pg, r, C (0)); ++ svfloat32_t poly = svmla_x (pg, p0, r2, p14); ++ ++ return svmla_x (pg, scale, scale, poly); ++} ++ ++#endif +diff --git a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +index 41fdb92d7ea6e707..b37cb7d5e9c0d96a 100644 +--- a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +@@ -28,6 +28,7 @@ VPCS_VECTOR_WRAPPER (asin_advsimd, _ZGVnN2v_asin) + VPCS_VECTOR_WRAPPER (atan_advsimd, _ZGVnN2v_atan) + VPCS_VECTOR_WRAPPER_ff (atan2_advsimd, _ZGVnN2vv_atan2) + VPCS_VECTOR_WRAPPER (cos_advsimd, _ZGVnN2v_cos) ++VPCS_VECTOR_WRAPPER (cosh_advsimd, _ZGVnN2v_cosh) + VPCS_VECTOR_WRAPPER (erf_advsimd, _ZGVnN2v_erf) + VPCS_VECTOR_WRAPPER (exp_advsimd, _ZGVnN2v_exp) + VPCS_VECTOR_WRAPPER (exp10_advsimd, _ZGVnN2v_exp10) +diff --git a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +index 8e3d64da420348a7..011f07d2c15b148f 100644 +--- a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +@@ -47,6 +47,7 @@ SVE_VECTOR_WRAPPER (asin_sve, _ZGVsMxv_asin) + SVE_VECTOR_WRAPPER (atan_sve, _ZGVsMxv_atan) + SVE_VECTOR_WRAPPER_ff (atan2_sve, _ZGVsMxvv_atan2) + SVE_VECTOR_WRAPPER (cos_sve, _ZGVsMxv_cos) ++SVE_VECTOR_WRAPPER (cosh_sve, _ZGVsMxv_cosh) + SVE_VECTOR_WRAPPER (erf_sve, _ZGVsMxv_erf) + SVE_VECTOR_WRAPPER (exp_sve, _ZGVsMxv_exp) + SVE_VECTOR_WRAPPER (exp10_sve, _ZGVsMxv_exp10) +diff --git a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +index 33ae92878f774ac3..35452991431e238a 100644 +--- a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +@@ -28,6 +28,7 @@ VPCS_VECTOR_WRAPPER (asinf_advsimd, _ZGVnN4v_asinf) + VPCS_VECTOR_WRAPPER (atanf_advsimd, _ZGVnN4v_atanf) + VPCS_VECTOR_WRAPPER_ff (atan2f_advsimd, _ZGVnN4vv_atan2f) + VPCS_VECTOR_WRAPPER (cosf_advsimd, _ZGVnN4v_cosf) ++VPCS_VECTOR_WRAPPER (coshf_advsimd, _ZGVnN4v_coshf) + VPCS_VECTOR_WRAPPER (erff_advsimd, _ZGVnN4v_erff) + VPCS_VECTOR_WRAPPER (expf_advsimd, _ZGVnN4v_expf) + VPCS_VECTOR_WRAPPER (exp10f_advsimd, _ZGVnN4v_exp10f) +diff --git a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +index ac0464f196e7972f..bbc74ede88c9e6c8 100644 +--- a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +@@ -47,6 +47,7 @@ SVE_VECTOR_WRAPPER (asinf_sve, _ZGVsMxv_asinf) + SVE_VECTOR_WRAPPER (atanf_sve, _ZGVsMxv_atanf) + SVE_VECTOR_WRAPPER_ff (atan2f_sve, _ZGVsMxvv_atan2f) + SVE_VECTOR_WRAPPER (cosf_sve, _ZGVsMxv_cosf) ++SVE_VECTOR_WRAPPER (coshf_sve, _ZGVsMxv_coshf) + SVE_VECTOR_WRAPPER (erff_sve, _ZGVsMxv_erff) + SVE_VECTOR_WRAPPER (expf_sve, _ZGVsMxv_expf) + SVE_VECTOR_WRAPPER (exp10f_sve, _ZGVsMxv_exp10f) +diff --git a/sysdeps/aarch64/fpu/v_exp_tail_data.c b/sysdeps/aarch64/fpu/v_exp_tail_data.c +new file mode 100644 +index 0000000000000000..151e97c21bbc11ae +--- /dev/null ++++ b/sysdeps/aarch64/fpu/v_exp_tail_data.c +@@ -0,0 +1,110 @@ ++/* Lookup table for high-precision exp(x, tail) function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "vecmath_config.h" ++ ++/* 2^(j/N), j=0..N, N=2^8=256. */ ++const uint64_t __v_exp_tail_data[] = { ++ 0x3ff0000000000000, 0x3feffb1afa5abcbf, 0x3feff63da9fb3335, ++ 0x3feff168143b0281, 0x3fefec9a3e778061, 0x3fefe7d42e11bbcc, ++ 0x3fefe315e86e7f85, 0x3fefde5f72f654b1, 0x3fefd9b0d3158574, ++ 0x3fefd50a0e3c1f89, 0x3fefd06b29ddf6de, 0x3fefcbd42b72a836, ++ 0x3fefc74518759bc8, 0x3fefc2bdf66607e0, 0x3fefbe3ecac6f383, ++ 0x3fefb9c79b1f3919, 0x3fefb5586cf9890f, 0x3fefb0f145e46c85, ++ 0x3fefac922b7247f7, 0x3fefa83b23395dec, 0x3fefa3ec32d3d1a2, ++ 0x3fef9fa55fdfa9c5, 0x3fef9b66affed31b, 0x3fef973028d7233e, ++ 0x3fef9301d0125b51, 0x3fef8edbab5e2ab6, 0x3fef8abdc06c31cc, ++ 0x3fef86a814f204ab, 0x3fef829aaea92de0, 0x3fef7e95934f312e, ++ 0x3fef7a98c8a58e51, 0x3fef76a45471c3c2, 0x3fef72b83c7d517b, ++ 0x3fef6ed48695bbc0, 0x3fef6af9388c8dea, 0x3fef672658375d2f, ++ 0x3fef635beb6fcb75, 0x3fef5f99f8138a1c, 0x3fef5be084045cd4, ++ 0x3fef582f95281c6b, 0x3fef54873168b9aa, 0x3fef50e75eb44027, ++ 0x3fef4d5022fcd91d, 0x3fef49c18438ce4d, 0x3fef463b88628cd6, ++ 0x3fef42be3578a819, 0x3fef3f49917ddc96, 0x3fef3bdda27912d1, ++ 0x3fef387a6e756238, 0x3fef351ffb82140a, 0x3fef31ce4fb2a63f, ++ 0x3fef2e85711ece75, 0x3fef2b4565e27cdd, 0x3fef280e341ddf29, ++ 0x3fef24dfe1f56381, 0x3fef21ba7591bb70, 0x3fef1e9df51fdee1, ++ 0x3fef1b8a66d10f13, 0x3fef187fd0dad990, 0x3fef157e39771b2f, ++ 0x3fef1285a6e4030b, 0x3fef0f961f641589, 0x3fef0cafa93e2f56, ++ 0x3fef09d24abd886b, 0x3fef06fe0a31b715, 0x3fef0432edeeb2fd, ++ 0x3fef0170fc4cd831, 0x3feefeb83ba8ea32, 0x3feefc08b26416ff, ++ 0x3feef96266e3fa2d, 0x3feef6c55f929ff1, 0x3feef431a2de883b, ++ 0x3feef1a7373aa9cb, 0x3feeef26231e754a, 0x3feeecae6d05d866, ++ 0x3feeea401b7140ef, 0x3feee7db34e59ff7, 0x3feee57fbfec6cf4, ++ 0x3feee32dc313a8e5, 0x3feee0e544ede173, 0x3feedea64c123422, ++ 0x3feedc70df1c5175, 0x3feeda4504ac801c, 0x3feed822c367a024, ++ 0x3feed60a21f72e2a, 0x3feed3fb2709468a, 0x3feed1f5d950a897, ++ 0x3feecffa3f84b9d4, 0x3feece086061892d, 0x3feecc2042a7d232, ++ 0x3feeca41ed1d0057, 0x3feec86d668b3237, 0x3feec6a2b5c13cd0, ++ 0x3feec4e1e192aed2, 0x3feec32af0d7d3de, 0x3feec17dea6db7d7, ++ 0x3feebfdad5362a27, 0x3feebe41b817c114, 0x3feebcb299fddd0d, ++ 0x3feebb2d81d8abff, 0x3feeb9b2769d2ca7, 0x3feeb8417f4531ee, ++ 0x3feeb6daa2cf6642, 0x3feeb57de83f4eef, 0x3feeb42b569d4f82, ++ 0x3feeb2e2f4f6ad27, 0x3feeb1a4ca5d920f, 0x3feeb070dde910d2, ++ 0x3feeaf4736b527da, 0x3feeae27dbe2c4cf, 0x3feead12d497c7fd, ++ 0x3feeac0827ff07cc, 0x3feeab07dd485429, 0x3feeaa11fba87a03, ++ 0x3feea9268a5946b7, 0x3feea84590998b93, 0x3feea76f15ad2148, ++ 0x3feea6a320dceb71, 0x3feea5e1b976dc09, 0x3feea52ae6cdf6f4, ++ 0x3feea47eb03a5585, 0x3feea3dd1d1929fd, 0x3feea34634ccc320, ++ 0x3feea2b9febc8fb7, 0x3feea23882552225, 0x3feea1c1c70833f6, ++ 0x3feea155d44ca973, 0x3feea0f4b19e9538, 0x3feea09e667f3bcd, ++ 0x3feea052fa75173e, 0x3feea012750bdabf, 0x3fee9fdcddd47645, ++ 0x3fee9fb23c651a2f, 0x3fee9f9298593ae5, 0x3fee9f7df9519484, ++ 0x3fee9f7466f42e87, 0x3fee9f75e8ec5f74, 0x3fee9f8286ead08a, ++ 0x3fee9f9a48a58174, 0x3fee9fbd35d7cbfd, 0x3fee9feb564267c9, ++ 0x3feea024b1ab6e09, 0x3feea0694fde5d3f, 0x3feea0b938ac1cf6, ++ 0x3feea11473eb0187, 0x3feea17b0976cfdb, 0x3feea1ed0130c132, ++ 0x3feea26a62ff86f0, 0x3feea2f336cf4e62, 0x3feea3878491c491, ++ 0x3feea427543e1a12, 0x3feea4d2add106d9, 0x3feea589994cce13, ++ 0x3feea64c1eb941f7, 0x3feea71a4623c7ad, 0x3feea7f4179f5b21, ++ 0x3feea8d99b4492ed, 0x3feea9cad931a436, 0x3feeaac7d98a6699, ++ 0x3feeabd0a478580f, 0x3feeace5422aa0db, 0x3feeae05bad61778, ++ 0x3feeaf3216b5448c, 0x3feeb06a5e0866d9, 0x3feeb1ae99157736, ++ 0x3feeb2fed0282c8a, 0x3feeb45b0b91ffc6, 0x3feeb5c353aa2fe2, ++ 0x3feeb737b0cdc5e5, 0x3feeb8b82b5f98e5, 0x3feeba44cbc8520f, ++ 0x3feebbdd9a7670b3, 0x3feebd829fde4e50, 0x3feebf33e47a22a2, ++ 0x3feec0f170ca07ba, 0x3feec2bb4d53fe0d, 0x3feec49182a3f090, ++ 0x3feec674194bb8d5, 0x3feec86319e32323, 0x3feeca5e8d07f29e, ++ 0x3feecc667b5de565, 0x3feece7aed8eb8bb, 0x3feed09bec4a2d33, ++ 0x3feed2c980460ad8, 0x3feed503b23e255d, 0x3feed74a8af46052, ++ 0x3feed99e1330b358, 0x3feedbfe53c12e59, 0x3feede6b5579fdbf, ++ 0x3feee0e521356eba, 0x3feee36bbfd3f37a, 0x3feee5ff3a3c2774, ++ 0x3feee89f995ad3ad, 0x3feeeb4ce622f2ff, 0x3feeee07298db666, ++ 0x3feef0ce6c9a8952, 0x3feef3a2b84f15fb, 0x3feef68415b749b1, ++ 0x3feef9728de5593a, 0x3feefc6e29f1c52a, 0x3feeff76f2fb5e47, ++ 0x3fef028cf22749e4, 0x3fef05b030a1064a, 0x3fef08e0b79a6f1f, ++ 0x3fef0c1e904bc1d2, 0x3fef0f69c3f3a207, 0x3fef12c25bd71e09, ++ 0x3fef16286141b33d, 0x3fef199bdd85529c, 0x3fef1d1cd9fa652c, ++ 0x3fef20ab5fffd07a, 0x3fef244778fafb22, 0x3fef27f12e57d14b, ++ 0x3fef2ba88988c933, 0x3fef2f6d9406e7b5, 0x3fef33405751c4db, ++ 0x3fef3720dcef9069, 0x3fef3b0f2e6d1675, 0x3fef3f0b555dc3fa, ++ 0x3fef43155b5bab74, 0x3fef472d4a07897c, 0x3fef4b532b08c968, ++ 0x3fef4f87080d89f2, 0x3fef53c8eacaa1d6, 0x3fef5818dcfba487, ++ 0x3fef5c76e862e6d3, 0x3fef60e316c98398, 0x3fef655d71ff6075, ++ 0x3fef69e603db3285, 0x3fef6e7cd63a8315, 0x3fef7321f301b460, ++ 0x3fef77d5641c0658, 0x3fef7c97337b9b5f, 0x3fef81676b197d17, ++ 0x3fef864614f5a129, 0x3fef8b333b16ee12, 0x3fef902ee78b3ff6, ++ 0x3fef953924676d76, 0x3fef9a51fbc74c83, 0x3fef9f7977cdb740, ++ 0x3fefa4afa2a490da, 0x3fefa9f4867cca6e, 0x3fefaf482d8e67f1, ++ 0x3fefb4aaa2188510, 0x3fefba1bee615a27, 0x3fefbf9c1cb6412a, ++ 0x3fefc52b376bba97, 0x3fefcac948dd7274, 0x3fefd0765b6e4540, ++ 0x3fefd632798844f8, 0x3fefdbfdad9cbe14, 0x3fefe1d802243c89, ++ 0x3fefe7c1819e90d8, 0x3fefedba3692d514, 0x3feff3c22b8f71f1, ++ 0x3feff9d96b2a23d9, ++}; +diff --git a/sysdeps/aarch64/fpu/v_expf_inline.h b/sysdeps/aarch64/fpu/v_expf_inline.h +new file mode 100644 +index 0000000000000000..a3b0e32f9eb42021 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/v_expf_inline.h +@@ -0,0 +1,71 @@ ++/* Helper for single-precision AdvSIMD routines which depend on exp ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#ifndef AARCH64_FPU_V_EXPF_INLINE_H ++#define AARCH64_FPU_V_EXPF_INLINE_H ++ ++#include "v_math.h" ++ ++struct v_expf_data ++{ ++ float32x4_t poly[5]; ++ float32x4_t shift, invln2_and_ln2; ++}; ++ ++/* maxerr: 1.45358 +0.5 ulp. */ ++#define V_EXPF_DATA \ ++ { \ ++ .poly = { V4 (0x1.0e4020p-7f), V4 (0x1.573e2ep-5f), V4 (0x1.555e66p-3f), \ ++ V4 (0x1.fffdb6p-2f), V4 (0x1.ffffecp-1f) }, \ ++ .shift = V4 (0x1.8p23f), \ ++ .invln2_and_ln2 = { 0x1.715476p+0f, 0x1.62e4p-1f, 0x1.7f7d1cp-20f, 0 }, \ ++ } ++ ++#define ExponentBias v_u32 (0x3f800000) /* asuint(1.0f). */ ++#define C(i) d->poly[i] ++ ++static inline float32x4_t ++v_expf_inline (float32x4_t x, const struct v_expf_data *d) ++{ ++ /* Helper routine for calculating exp(x). ++ Copied from v_expf.c, with all special-case handling removed - the ++ calling routine should handle special values if required. */ ++ ++ /* exp(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)] ++ x = ln2*n + r, with r in [-ln2/2, ln2/2]. */ ++ float32x4_t n, r, z; ++ z = vfmaq_laneq_f32 (d->shift, x, d->invln2_and_ln2, 0); ++ n = vsubq_f32 (z, d->shift); ++ r = vfmsq_laneq_f32 (x, n, d->invln2_and_ln2, 1); ++ r = vfmsq_laneq_f32 (r, n, d->invln2_and_ln2, 2); ++ uint32x4_t e = vshlq_n_u32 (vreinterpretq_u32_f32 (z), 23); ++ float32x4_t scale = vreinterpretq_f32_u32 (vaddq_u32 (e, ExponentBias)); ++ ++ /* Custom order-4 Estrin avoids building high order monomial. */ ++ float32x4_t r2 = vmulq_f32 (r, r); ++ float32x4_t p, q, poly; ++ p = vfmaq_f32 (C (1), C (0), r); ++ q = vfmaq_f32 (C (3), C (2), r); ++ q = vfmaq_f32 (q, p, r2); ++ p = vmulq_f32 (C (4), r); ++ poly = vfmaq_f32 (p, q, r2); ++ return vfmaq_f32 (scale, poly, scale); ++} ++ ++#endif +diff --git a/sysdeps/aarch64/fpu/vecmath_config.h b/sysdeps/aarch64/fpu/vecmath_config.h +index 409c0c9bd9b85422..3f0b5f476433ca06 100644 +--- a/sysdeps/aarch64/fpu/vecmath_config.h ++++ b/sysdeps/aarch64/fpu/vecmath_config.h +@@ -59,6 +59,8 @@ extern const struct v_log_data + } table[1 << V_LOG_TABLE_BITS]; + } __v_log_data attribute_hidden; + ++#define V_EXP_TAIL_TABLE_BITS 8 ++extern const uint64_t __v_exp_tail_data[1 << V_EXP_TAIL_TABLE_BITS] attribute_hidden; + #define V_EXP_TABLE_BITS 7 + extern const uint64_t __v_exp_data[1 << V_EXP_TABLE_BITS] attribute_hidden; + +diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps +index f1103a245645476b..48d747ad5793be96 100644 +--- a/sysdeps/aarch64/libm-test-ulps ++++ b/sysdeps/aarch64/libm-test-ulps +@@ -701,11 +701,19 @@ double: 2 + float: 2 + ldouble: 2 + ++Function: "cosh_advsimd": ++double: 2 ++float: 2 ++ + Function: "cosh_downward": + double: 3 + float: 1 + ldouble: 3 + ++Function: "cosh_sve": ++double: 2 ++float: 2 ++ + Function: "cosh_towardzero": + double: 3 + float: 1 +diff --git a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +index 6193518fb001cc92..f66da42c3630bf48 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist ++++ b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +@@ -73,8 +73,13 @@ GLIBC_2.39 _ZGVsMxv_tan F + GLIBC_2.39 _ZGVsMxv_tanf F + GLIBC_2.39 _ZGVsMxvv_atan2 F + GLIBC_2.39 _ZGVsMxvv_atan2f F ++GLIBC_2.40 _ZGVnN2v_cosh F ++GLIBC_2.40 _ZGVnN2v_coshf F + GLIBC_2.40 _ZGVnN2v_erf F + GLIBC_2.40 _ZGVnN2v_erff F ++GLIBC_2.40 _ZGVnN4v_coshf F + GLIBC_2.40 _ZGVnN4v_erff F ++GLIBC_2.40 _ZGVsMxv_cosh F ++GLIBC_2.40 _ZGVsMxv_coshf F + GLIBC_2.40 _ZGVsMxv_erf F + GLIBC_2.40 _ZGVsMxv_erff F diff --git a/glibc-RHEL-118273-20.patch b/glibc-RHEL-118273-20.patch new file mode 100644 index 0000000..49e8fa8 --- /dev/null +++ b/glibc-RHEL-118273-20.patch @@ -0,0 +1,359 @@ +commit ca0c0d0f26fbf75b9cacc65122b457e8fdec40b8 +Author: Pierre Blanchard +Date: Mon Dec 9 15:55:39 2024 +0000 + + AArch64: Improve codegen in users of ADVSIMD log1p helper + + Add inline helper for log1p and rearrange operations so MOV + is not necessary in reduction or around the special-case handler. + Reduce memory access by using more indexed MLAs in polynomial. + Speedup on Neoverse V1 for log1p (3.5%), acosh (7.5%) and atanh (10%). + +Conflicts: + sysdeps/aarch64/fpu/log1p_advsimd.c + (Fixup context to apply without out-of-scope dependency 751a5502) + +diff --git a/sysdeps/aarch64/fpu/acosh_advsimd.c b/sysdeps/aarch64/fpu/acosh_advsimd.c +index c88283cf1191f4eb..a98f4a2e4d8cbf42 100644 +--- a/sysdeps/aarch64/fpu/acosh_advsimd.c ++++ b/sysdeps/aarch64/fpu/acosh_advsimd.c +@@ -54,9 +54,8 @@ VPCS_ATTR float64x2_t V_NAME_D1 (acosh) (float64x2_t x) + x = vbslq_f64 (special, vreinterpretq_f64_u64 (d->one), x); + #endif + +- float64x2_t xm1 = vsubq_f64 (x, v_f64 (1)); +- float64x2_t y; +- y = vaddq_f64 (x, v_f64 (1)); ++ float64x2_t xm1 = vsubq_f64 (x, v_f64 (1.0)); ++ float64x2_t y = vaddq_f64 (x, v_f64 (1.0)); + y = vmulq_f64 (y, xm1); + y = vsqrtq_f64 (y); + y = vaddq_f64 (xm1, y); +diff --git a/sysdeps/aarch64/fpu/atanh_advsimd.c b/sysdeps/aarch64/fpu/atanh_advsimd.c +index 3c3d0bd6ad41396d..eb9769aeac29cf15 100644 +--- a/sysdeps/aarch64/fpu/atanh_advsimd.c ++++ b/sysdeps/aarch64/fpu/atanh_advsimd.c +@@ -23,15 +23,19 @@ + const static struct data + { + struct v_log1p_data log1p_consts; +- uint64x2_t one, half; ++ uint64x2_t one; ++ uint64x2_t sign_mask; + } data = { .log1p_consts = V_LOG1P_CONSTANTS_TABLE, + .one = V2 (0x3ff0000000000000), +- .half = V2 (0x3fe0000000000000) }; ++ .sign_mask = V2 (0x8000000000000000) }; + + static float64x2_t VPCS_ATTR NOINLINE +-special_case (float64x2_t x, float64x2_t y, uint64x2_t special) ++special_case (float64x2_t x, float64x2_t halfsign, float64x2_t y, ++ uint64x2_t special, const struct data *d) + { +- return v_call_f64 (atanh, x, y, special); ++ y = log1p_inline (y, &d->log1p_consts); ++ return v_call_f64 (atanh, vbslq_f64 (d->sign_mask, halfsign, x), ++ vmulq_f64 (halfsign, y), special); + } + + /* Approximation for vector double-precision atanh(x) using modified log1p. +@@ -43,11 +47,10 @@ float64x2_t V_NAME_D1 (atanh) (float64x2_t x) + { + const struct data *d = ptr_barrier (&data); + ++ float64x2_t halfsign = vbslq_f64 (d->sign_mask, x, v_f64 (0.5)); + float64x2_t ax = vabsq_f64 (x); + uint64x2_t ia = vreinterpretq_u64_f64 (ax); +- uint64x2_t sign = veorq_u64 (vreinterpretq_u64_f64 (x), ia); + uint64x2_t special = vcgeq_u64 (ia, d->one); +- float64x2_t halfsign = vreinterpretq_f64_u64 (vorrq_u64 (sign, d->half)); + + #if WANT_SIMD_EXCEPT + ax = v_zerofy_f64 (ax, special); +@@ -55,10 +58,15 @@ float64x2_t V_NAME_D1 (atanh) (float64x2_t x) + + float64x2_t y; + y = vaddq_f64 (ax, ax); +- y = vdivq_f64 (y, vsubq_f64 (v_f64 (1), ax)); +- y = log1p_inline (y, &d->log1p_consts); ++ y = vdivq_f64 (y, vsubq_f64 (vreinterpretq_f64_u64 (d->one), ax)); + + if (__glibc_unlikely (v_any_u64 (special))) +- return special_case (x, vmulq_f64 (y, halfsign), special); ++#if WANT_SIMD_EXCEPT ++ return special_case (x, halfsign, y, special, d); ++#else ++ return special_case (ax, halfsign, y, special, d); ++#endif ++ ++ y = log1p_inline (y, &d->log1p_consts); + return vmulq_f64 (y, halfsign); + } +diff --git a/sysdeps/aarch64/fpu/log1p_advsimd.c b/sysdeps/aarch64/fpu/log1p_advsimd.c +index ffc418fc9c24be28..9d18578ce6497787 100644 +--- a/sysdeps/aarch64/fpu/log1p_advsimd.c ++++ b/sysdeps/aarch64/fpu/log1p_advsimd.c +@@ -17,43 +17,26 @@ + License along with the GNU C Library; if not, see + . */ + +-#include "v_math.h" +-#include "poly_advsimd_f64.h" ++#define WANT_V_LOG1P_K0_SHORTCUT 0 ++#include "v_log1p_inline.h" + + const static struct data + { +- float64x2_t poly[19], ln2[2]; +- uint64x2_t hf_rt2_top, one_m_hf_rt2_top, umask, inf, minus_one; +- int64x2_t one_top; +-} data = { +- /* Generated using Remez, deg=20, in [sqrt(2)/2-1, sqrt(2)-1]. */ +- .poly = { V2 (-0x1.ffffffffffffbp-2), V2 (0x1.55555555551a9p-2), +- V2 (-0x1.00000000008e3p-2), V2 (0x1.9999999a32797p-3), +- V2 (-0x1.555555552fecfp-3), V2 (0x1.249248e071e5ap-3), +- V2 (-0x1.ffffff8bf8482p-4), V2 (0x1.c71c8f07da57ap-4), +- V2 (-0x1.9999ca4ccb617p-4), V2 (0x1.7459ad2e1dfa3p-4), +- V2 (-0x1.554d2680a3ff2p-4), V2 (0x1.3b4c54d487455p-4), +- V2 (-0x1.2548a9ffe80e6p-4), V2 (0x1.0f389a24b2e07p-4), +- V2 (-0x1.eee4db15db335p-5), V2 (0x1.e95b494d4a5ddp-5), +- V2 (-0x1.15fdf07cb7c73p-4), V2 (0x1.0310b70800fcfp-4), +- V2 (-0x1.cfa7385bdb37ep-6) }, +- .ln2 = { V2 (0x1.62e42fefa3800p-1), V2 (0x1.ef35793c76730p-45) }, +- /* top32(asuint64(sqrt(2)/2)) << 32. */ +- .hf_rt2_top = V2 (0x3fe6a09e00000000), +- /* (top32(asuint64(1)) - top32(asuint64(sqrt(2)/2))) << 32. */ +- .one_m_hf_rt2_top = V2 (0x00095f6200000000), +- .umask = V2 (0x000fffff00000000), +- .one_top = V2 (0x3ff), +- .inf = V2 (0x7ff0000000000000), +- .minus_one = V2 (0xbff0000000000000) +-}; ++ struct v_log1p_data d; ++ uint64x2_t inf, minus_one; ++} data = { .d = V_LOG1P_CONSTANTS_TABLE, ++ .inf = V2 (0x7ff0000000000000), ++ .minus_one = V2 (0xbff0000000000000) }; + + #define BottomMask v_u64 (0xffffffff) + +-static float64x2_t VPCS_ATTR NOINLINE +-special_case (float64x2_t x, float64x2_t y, uint64x2_t special) ++static float64x2_t NOINLINE VPCS_ATTR ++special_case (float64x2_t x, uint64x2_t cmp, const struct data *d) + { +- return v_call_f64 (log1p, x, y, special); ++ /* Side-step special lanes so fenv exceptions are not triggered ++ inadvertently. */ ++ float64x2_t x_nospecial = v_zerofy_f64 (x, cmp); ++ return v_call_f64 (log1p, x, log1p_inline (x_nospecial, &d->d), cmp); + } + + /* Vector log1p approximation using polynomial on reduced interval. Routine is +@@ -66,64 +49,12 @@ VPCS_ATTR float64x2_t V_NAME_D1 (log1p) (float64x2_t x) + const struct data *d = ptr_barrier (&data); + uint64x2_t ix = vreinterpretq_u64_f64 (x); + uint64x2_t ia = vreinterpretq_u64_f64 (vabsq_f64 (x)); +- uint64x2_t special = vcgeq_u64 (ia, d->inf); + +-#if WANT_SIMD_EXCEPT +- special = vorrq_u64 (special, +- vcgeq_u64 (ix, vreinterpretq_u64_f64 (v_f64 (-1)))); +- if (__glibc_unlikely (v_any_u64 (special))) +- x = v_zerofy_f64 (x, special); +-#else +- special = vorrq_u64 (special, vcleq_f64 (x, v_f64 (-1))); +-#endif ++ uint64x2_t special_cases ++ = vorrq_u64 (vcgeq_u64 (ia, d->inf), vcgeq_u64 (ix, d->minus_one)); + +- /* With x + 1 = t * 2^k (where t = f + 1 and k is chosen such that f +- is in [sqrt(2)/2, sqrt(2)]): +- log1p(x) = k*log(2) + log1p(f). ++ if (__glibc_unlikely (v_any_u64 (special_cases))) ++ return special_case (x, special_cases, d); + +- f may not be representable exactly, so we need a correction term: +- let m = round(1 + x), c = (1 + x) - m. +- c << m: at very small x, log1p(x) ~ x, hence: +- log(1+x) - log(m) ~ c/m. +- +- We therefore calculate log1p(x) by k*log2 + log1p(f) + c/m. */ +- +- /* Obtain correctly scaled k by manipulation in the exponent. +- The scalar algorithm casts down to 32-bit at this point to calculate k and +- u_red. We stay in double-width to obtain f and k, using the same constants +- as the scalar algorithm but shifted left by 32. */ +- float64x2_t m = vaddq_f64 (x, v_f64 (1)); +- uint64x2_t mi = vreinterpretq_u64_f64 (m); +- uint64x2_t u = vaddq_u64 (mi, d->one_m_hf_rt2_top); +- +- int64x2_t ki +- = vsubq_s64 (vreinterpretq_s64_u64 (vshrq_n_u64 (u, 52)), d->one_top); +- float64x2_t k = vcvtq_f64_s64 (ki); +- +- /* Reduce x to f in [sqrt(2)/2, sqrt(2)]. */ +- uint64x2_t utop = vaddq_u64 (vandq_u64 (u, d->umask), d->hf_rt2_top); +- uint64x2_t u_red = vorrq_u64 (utop, vandq_u64 (mi, BottomMask)); +- float64x2_t f = vsubq_f64 (vreinterpretq_f64_u64 (u_red), v_f64 (1)); +- +- /* Correction term c/m. */ +- float64x2_t cm = vdivq_f64 (vsubq_f64 (x, vsubq_f64 (m, v_f64 (1))), m); +- +- /* Approximate log1p(x) on the reduced input using a polynomial. Because +- log1p(0)=0 we choose an approximation of the form: +- x + C0*x^2 + C1*x^3 + C2x^4 + ... +- Hence approximation has the form f + f^2 * P(f) +- where P(x) = C0 + C1*x + C2x^2 + ... +- Assembling this all correctly is dealt with at the final step. */ +- float64x2_t f2 = vmulq_f64 (f, f); +- float64x2_t p = v_pw_horner_18_f64 (f, f2, d->poly); +- +- float64x2_t ylo = vfmaq_f64 (cm, k, d->ln2[1]); +- float64x2_t yhi = vfmaq_f64 (f, k, d->ln2[0]); +- float64x2_t y = vaddq_f64 (ylo, yhi); +- +- if (__glibc_unlikely (v_any_u64 (special))) +- return special_case (vreinterpretq_f64_u64 (ix), vfmaq_f64 (y, f2, p), +- special); +- +- return vfmaq_f64 (y, f2, p); ++ return log1p_inline (x, &d->d); + } +diff --git a/sysdeps/aarch64/fpu/v_log1p_inline.h b/sysdeps/aarch64/fpu/v_log1p_inline.h +index 242e43b6eecc0b6e..834ff65adf34ed4a 100644 +--- a/sysdeps/aarch64/fpu/v_log1p_inline.h ++++ b/sysdeps/aarch64/fpu/v_log1p_inline.h +@@ -21,29 +21,30 @@ + #define AARCH64_FPU_V_LOG1P_INLINE_H + + #include "v_math.h" +-#include "poly_advsimd_f64.h" + + struct v_log1p_data + { +- float64x2_t poly[19], ln2[2]; ++ float64x2_t c0, c2, c4, c6, c8, c10, c12, c14, c16; + uint64x2_t hf_rt2_top, one_m_hf_rt2_top, umask; + int64x2_t one_top; ++ double c1, c3, c5, c7, c9, c11, c13, c15, c17, c18; ++ double ln2[2]; + }; + + /* Coefficients generated using Remez, deg=20, in [sqrt(2)/2-1, sqrt(2)-1]. */ + #define V_LOG1P_CONSTANTS_TABLE \ + { \ +- .poly = { V2 (-0x1.ffffffffffffbp-2), V2 (0x1.55555555551a9p-2), \ +- V2 (-0x1.00000000008e3p-2), V2 (0x1.9999999a32797p-3), \ +- V2 (-0x1.555555552fecfp-3), V2 (0x1.249248e071e5ap-3), \ +- V2 (-0x1.ffffff8bf8482p-4), V2 (0x1.c71c8f07da57ap-4), \ +- V2 (-0x1.9999ca4ccb617p-4), V2 (0x1.7459ad2e1dfa3p-4), \ +- V2 (-0x1.554d2680a3ff2p-4), V2 (0x1.3b4c54d487455p-4), \ +- V2 (-0x1.2548a9ffe80e6p-4), V2 (0x1.0f389a24b2e07p-4), \ +- V2 (-0x1.eee4db15db335p-5), V2 (0x1.e95b494d4a5ddp-5), \ +- V2 (-0x1.15fdf07cb7c73p-4), V2 (0x1.0310b70800fcfp-4), \ +- V2 (-0x1.cfa7385bdb37ep-6) }, \ +- .ln2 = { V2 (0x1.62e42fefa3800p-1), V2 (0x1.ef35793c76730p-45) }, \ ++ .c0 = V2 (-0x1.ffffffffffffbp-2), .c1 = 0x1.55555555551a9p-2, \ ++ .c2 = V2 (-0x1.00000000008e3p-2), .c3 = 0x1.9999999a32797p-3, \ ++ .c4 = V2 (-0x1.555555552fecfp-3), .c5 = 0x1.249248e071e5ap-3, \ ++ .c6 = V2 (-0x1.ffffff8bf8482p-4), .c7 = 0x1.c71c8f07da57ap-4, \ ++ .c8 = V2 (-0x1.9999ca4ccb617p-4), .c9 = 0x1.7459ad2e1dfa3p-4, \ ++ .c10 = V2 (-0x1.554d2680a3ff2p-4), .c11 = 0x1.3b4c54d487455p-4, \ ++ .c12 = V2 (-0x1.2548a9ffe80e6p-4), .c13 = 0x1.0f389a24b2e07p-4, \ ++ .c14 = V2 (-0x1.eee4db15db335p-5), .c15 = 0x1.e95b494d4a5ddp-5, \ ++ .c16 = V2 (-0x1.15fdf07cb7c73p-4), .c17 = 0x1.0310b70800fcfp-4, \ ++ .c18 = -0x1.cfa7385bdb37ep-6, \ ++ .ln2 = { 0x1.62e42fefa3800p-1, 0x1.ef35793c76730p-45 }, \ + .hf_rt2_top = V2 (0x3fe6a09e00000000), \ + .one_m_hf_rt2_top = V2 (0x00095f6200000000), \ + .umask = V2 (0x000fffff00000000), .one_top = V2 (0x3ff) \ +@@ -51,19 +52,45 @@ struct v_log1p_data + + #define BottomMask v_u64 (0xffffffff) + ++static inline float64x2_t ++eval_poly (float64x2_t m, float64x2_t m2, const struct v_log1p_data *d) ++{ ++ /* Approximate log(1+m) on [-0.25, 0.5] using pairwise Horner. */ ++ float64x2_t c13 = vld1q_f64 (&d->c1); ++ float64x2_t c57 = vld1q_f64 (&d->c5); ++ float64x2_t c911 = vld1q_f64 (&d->c9); ++ float64x2_t c1315 = vld1q_f64 (&d->c13); ++ float64x2_t c1718 = vld1q_f64 (&d->c17); ++ float64x2_t p1617 = vfmaq_laneq_f64 (d->c16, m, c1718, 0); ++ float64x2_t p1415 = vfmaq_laneq_f64 (d->c14, m, c1315, 1); ++ float64x2_t p1213 = vfmaq_laneq_f64 (d->c12, m, c1315, 0); ++ float64x2_t p1011 = vfmaq_laneq_f64 (d->c10, m, c911, 1); ++ float64x2_t p89 = vfmaq_laneq_f64 (d->c8, m, c911, 0); ++ float64x2_t p67 = vfmaq_laneq_f64 (d->c6, m, c57, 1); ++ float64x2_t p45 = vfmaq_laneq_f64 (d->c4, m, c57, 0); ++ float64x2_t p23 = vfmaq_laneq_f64 (d->c2, m, c13, 1); ++ float64x2_t p01 = vfmaq_laneq_f64 (d->c0, m, c13, 0); ++ float64x2_t p = vfmaq_laneq_f64 (p1617, m2, c1718, 1); ++ p = vfmaq_f64 (p1415, m2, p); ++ p = vfmaq_f64 (p1213, m2, p); ++ p = vfmaq_f64 (p1011, m2, p); ++ p = vfmaq_f64 (p89, m2, p); ++ p = vfmaq_f64 (p67, m2, p); ++ p = vfmaq_f64 (p45, m2, p); ++ p = vfmaq_f64 (p23, m2, p); ++ return vfmaq_f64 (p01, m2, p); ++} ++ + static inline float64x2_t + log1p_inline (float64x2_t x, const struct v_log1p_data *d) + { +- /* Helper for calculating log(x + 1). Copied from v_log1p_2u5.c, with several +- modifications: ++ /* Helper for calculating log(x + 1): + - No special-case handling - this should be dealt with by the caller. +- - Pairwise Horner polynomial evaluation for improved accuracy. + - Optionally simulate the shortcut for k=0, used in the scalar routine, +- using v_sel, for improved accuracy when the argument to log1p is close to +- 0. This feature is enabled by defining WANT_V_LOG1P_K0_SHORTCUT as 1 in +- the source of the caller before including this file. +- See v_log1pf_2u1.c for details of the algorithm. */ +- float64x2_t m = vaddq_f64 (x, v_f64 (1)); ++ using v_sel, for improved accuracy when the argument to log1p is close ++ to 0. This feature is enabled by defining WANT_V_LOG1P_K0_SHORTCUT as 1 ++ in the source of the caller before including this file. */ ++ float64x2_t m = vaddq_f64 (x, v_f64 (1.0)); + uint64x2_t mi = vreinterpretq_u64_f64 (m); + uint64x2_t u = vaddq_u64 (mi, d->one_m_hf_rt2_top); + +@@ -74,14 +101,14 @@ log1p_inline (float64x2_t x, const struct v_log1p_data *d) + /* Reduce x to f in [sqrt(2)/2, sqrt(2)]. */ + uint64x2_t utop = vaddq_u64 (vandq_u64 (u, d->umask), d->hf_rt2_top); + uint64x2_t u_red = vorrq_u64 (utop, vandq_u64 (mi, BottomMask)); +- float64x2_t f = vsubq_f64 (vreinterpretq_f64_u64 (u_red), v_f64 (1)); ++ float64x2_t f = vsubq_f64 (vreinterpretq_f64_u64 (u_red), v_f64 (1.0)); + + /* Correction term c/m. */ +- float64x2_t cm = vdivq_f64 (vsubq_f64 (x, vsubq_f64 (m, v_f64 (1))), m); ++ float64x2_t cm = vdivq_f64 (vsubq_f64 (x, vsubq_f64 (m, v_f64 (1.0))), m); + + #ifndef WANT_V_LOG1P_K0_SHORTCUT +-#error \ +- "Cannot use v_log1p_inline.h without specifying whether you need the k0 shortcut for greater accuracy close to 0" ++# error \ ++ "Cannot use v_log1p_inline.h without specifying whether you need the k0 shortcut for greater accuracy close to 0" + #elif WANT_V_LOG1P_K0_SHORTCUT + /* Shortcut if k is 0 - set correction term to 0 and f to x. The result is + that the approximation is solely the polynomial. */ +@@ -92,11 +119,12 @@ log1p_inline (float64x2_t x, const struct v_log1p_data *d) + + /* Approximate log1p(f) on the reduced input using a polynomial. */ + float64x2_t f2 = vmulq_f64 (f, f); +- float64x2_t p = v_pw_horner_18_f64 (f, f2, d->poly); ++ float64x2_t p = eval_poly (f, f2, d); + + /* Assemble log1p(x) = k * log2 + log1p(f) + c/m. */ +- float64x2_t ylo = vfmaq_f64 (cm, k, d->ln2[1]); +- float64x2_t yhi = vfmaq_f64 (f, k, d->ln2[0]); ++ float64x2_t ln2 = vld1q_f64 (&d->ln2[0]); ++ float64x2_t ylo = vfmaq_laneq_f64 (cm, k, ln2, 1); ++ float64x2_t yhi = vfmaq_laneq_f64 (f, k, ln2, 0); + return vfmaq_f64 (vaddq_f64 (ylo, yhi), f2, p); + } + diff --git a/glibc-RHEL-118273-21.patch b/glibc-RHEL-118273-21.patch new file mode 100644 index 0000000..cb930ba --- /dev/null +++ b/glibc-RHEL-118273-21.patch @@ -0,0 +1,216 @@ +commit 569cfaaf4984ae70b23c61ee28a609b5aef93fea +Author: Pierre Blanchard +Date: Mon Dec 9 15:53:04 2024 +0000 + + AArch64: Improve codegen in AdvSIMD pow + + Remove spurious ADRP. Improve memory access by shuffling constants and + using more indexed MLAs. + + A few more optimisation with no impact on accuracy + - force fmas contraction + - switch from shift-aided rint to rint instruction + + Between 1 and 5% throughput improvement on Neoverse + V1 depending on benchmark. + +diff --git a/sysdeps/aarch64/fpu/pow_advsimd.c b/sysdeps/aarch64/fpu/pow_advsimd.c +index 3c91e3e183599e3e..81e134ac2f0bd2f5 100644 +--- a/sysdeps/aarch64/fpu/pow_advsimd.c ++++ b/sysdeps/aarch64/fpu/pow_advsimd.c +@@ -22,9 +22,6 @@ + /* Defines parameters of the approximation and scalar fallback. */ + #include "finite_pow.h" + +-#define VecSmallExp v_u64 (SmallExp) +-#define VecThresExp v_u64 (ThresExp) +- + #define VecSmallPowX v_u64 (SmallPowX) + #define VecThresPowX v_u64 (ThresPowX) + #define VecSmallPowY v_u64 (SmallPowY) +@@ -32,36 +29,48 @@ + + static const struct data + { +- float64x2_t log_poly[6]; +- float64x2_t exp_poly[3]; +- float64x2_t ln2_hi, ln2_lo; +- float64x2_t shift, inv_ln2_n, ln2_hi_n, ln2_lo_n, small_powx; + uint64x2_t inf; ++ float64x2_t small_powx; ++ uint64x2_t offset, mask; ++ uint64x2_t mask_sub_0, mask_sub_1; ++ float64x2_t log_c0, log_c2, log_c4, log_c5; ++ double log_c1, log_c3; ++ double ln2_lo, ln2_hi; ++ uint64x2_t small_exp, thres_exp; ++ double ln2_lo_n, ln2_hi_n; ++ double inv_ln2_n, exp_c2; ++ float64x2_t exp_c0, exp_c1; + } data = { ++ /* Power threshold. */ ++ .inf = V2 (0x7ff0000000000000), ++ .small_powx = V2 (0x1p-126), ++ .offset = V2 (Off), ++ .mask = V2 (0xfffULL << 52), ++ .mask_sub_0 = V2 (1ULL << 52), ++ .mask_sub_1 = V2 (52ULL << 52), + /* Coefficients copied from v_pow_log_data.c + relative error: 0x1.11922ap-70 in [-0x1.6bp-8, 0x1.6bp-8] + Coefficients are scaled to match the scaling during evaluation. */ +- .log_poly +- = { V2 (0x1.555555555556p-2 * -2), V2 (-0x1.0000000000006p-2 * -2), +- V2 (0x1.999999959554ep-3 * 4), V2 (-0x1.555555529a47ap-3 * 4), +- V2 (0x1.2495b9b4845e9p-3 * -8), V2 (-0x1.0002b8b263fc3p-3 * -8) }, +- .ln2_hi = V2 (0x1.62e42fefa3800p-1), +- .ln2_lo = V2 (0x1.ef35793c76730p-45), ++ .log_c0 = V2 (0x1.555555555556p-2 * -2), ++ .log_c1 = -0x1.0000000000006p-2 * -2, ++ .log_c2 = V2 (0x1.999999959554ep-3 * 4), ++ .log_c3 = -0x1.555555529a47ap-3 * 4, ++ .log_c4 = V2 (0x1.2495b9b4845e9p-3 * -8), ++ .log_c5 = V2 (-0x1.0002b8b263fc3p-3 * -8), ++ .ln2_hi = 0x1.62e42fefa3800p-1, ++ .ln2_lo = 0x1.ef35793c76730p-45, + /* Polynomial coefficients: abs error: 1.43*2^-58, ulp error: 0.549 + (0.550 without fma) if |x| < ln2/512. */ +- .exp_poly = { V2 (0x1.fffffffffffd4p-2), V2 (0x1.5555571d6ef9p-3), +- V2 (0x1.5555576a5adcep-5) }, +- .shift = V2 (0x1.8p52), /* round to nearest int. without intrinsics. */ +- .inv_ln2_n = V2 (0x1.71547652b82fep8), /* N/ln2. */ +- .ln2_hi_n = V2 (0x1.62e42fefc0000p-9), /* ln2/N. */ +- .ln2_lo_n = V2 (-0x1.c610ca86c3899p-45), +- .small_powx = V2 (0x1p-126), +- .inf = V2 (0x7ff0000000000000) ++ .exp_c0 = V2 (0x1.fffffffffffd4p-2), ++ .exp_c1 = V2 (0x1.5555571d6ef9p-3), ++ .exp_c2 = 0x1.5555576a5adcep-5, ++ .small_exp = V2 (0x3c90000000000000), ++ .thres_exp = V2 (0x03f0000000000000), ++ .inv_ln2_n = 0x1.71547652b82fep8, /* N/ln2. */ ++ .ln2_hi_n = 0x1.62e42fefc0000p-9, /* ln2/N. */ ++ .ln2_lo_n = -0x1.c610ca86c3899p-45, + }; + +-#define A(i) data.log_poly[i] +-#define C(i) data.exp_poly[i] +- + /* This version implements an algorithm close to scalar pow but + - does not implement the trick in the exp's specialcase subroutine to avoid + double-rounding, +@@ -91,10 +100,9 @@ v_log_inline (uint64x2_t ix, float64x2_t *tail, const struct data *d) + /* x = 2^k z; where z is in range [OFF,2*OFF) and exact. + The range is split into N subintervals. + The ith subinterval contains z and c is near its center. */ +- uint64x2_t tmp = vsubq_u64 (ix, v_u64 (Off)); +- int64x2_t k +- = vshrq_n_s64 (vreinterpretq_s64_u64 (tmp), 52); /* arithmetic shift. */ +- uint64x2_t iz = vsubq_u64 (ix, vandq_u64 (tmp, v_u64 (0xfffULL << 52))); ++ uint64x2_t tmp = vsubq_u64 (ix, d->offset); ++ int64x2_t k = vshrq_n_s64 (vreinterpretq_s64_u64 (tmp), 52); ++ uint64x2_t iz = vsubq_u64 (ix, vandq_u64 (tmp, d->mask)); + float64x2_t z = vreinterpretq_f64_u64 (iz); + float64x2_t kd = vcvtq_f64_s64 (k); + /* log(x) = k*Ln2 + log(c) + log1p(z/c-1). */ +@@ -105,9 +113,10 @@ v_log_inline (uint64x2_t ix, float64x2_t *tail, const struct data *d) + |z/c - 1| < 1/N, so r = z/c - 1 is exactly representible. */ + float64x2_t r = vfmaq_f64 (v_f64 (-1.0), z, invc); + /* k*Ln2 + log(c) + r. */ +- float64x2_t t1 = vfmaq_f64 (logc, kd, d->ln2_hi); ++ float64x2_t ln2 = vld1q_f64 (&d->ln2_lo); ++ float64x2_t t1 = vfmaq_laneq_f64 (logc, kd, ln2, 1); + float64x2_t t2 = vaddq_f64 (t1, r); +- float64x2_t lo1 = vfmaq_f64 (logctail, kd, d->ln2_lo); ++ float64x2_t lo1 = vfmaq_laneq_f64 (logctail, kd, ln2, 0); + float64x2_t lo2 = vaddq_f64 (vsubq_f64 (t1, t2), r); + /* Evaluation is optimized assuming superscalar pipelined execution. */ + float64x2_t ar = vmulq_f64 (v_f64 (-0.5), r); +@@ -118,9 +127,10 @@ v_log_inline (uint64x2_t ix, float64x2_t *tail, const struct data *d) + float64x2_t lo3 = vfmaq_f64 (vnegq_f64 (ar2), ar, r); + float64x2_t lo4 = vaddq_f64 (vsubq_f64 (t2, hi), ar2); + /* p = log1p(r) - r - A[0]*r*r. */ +- float64x2_t a56 = vfmaq_f64 (A (4), r, A (5)); +- float64x2_t a34 = vfmaq_f64 (A (2), r, A (3)); +- float64x2_t a12 = vfmaq_f64 (A (0), r, A (1)); ++ float64x2_t odd_coeffs = vld1q_f64 (&d->log_c1); ++ float64x2_t a56 = vfmaq_f64 (d->log_c4, r, d->log_c5); ++ float64x2_t a34 = vfmaq_laneq_f64 (d->log_c2, r, odd_coeffs, 1); ++ float64x2_t a12 = vfmaq_laneq_f64 (d->log_c0, r, odd_coeffs, 0); + float64x2_t p = vfmaq_f64 (a34, ar2, a56); + p = vfmaq_f64 (a12, ar2, p); + p = vmulq_f64 (ar3, p); +@@ -140,28 +150,28 @@ exp_special_case (float64x2_t x, float64x2_t xtail) + + /* Computes sign*exp(x+xtail) where |xtail| < 2^-8/N and |xtail| <= |x|. */ + static inline float64x2_t +-v_exp_inline (float64x2_t x, float64x2_t xtail, const struct data *d) ++v_exp_inline (float64x2_t x, float64x2_t neg_xtail, const struct data *d) + { + /* Fallback to scalar exp_inline for all lanes if any lane + contains value of x s.t. |x| <= 2^-54 or >= 512. */ +- uint64x2_t abstop +- = vshrq_n_u64 (vandq_u64 (vreinterpretq_u64_f64 (x), d->inf), 52); +- uint64x2_t uoflowx +- = vcgeq_u64 (vsubq_u64 (abstop, VecSmallExp), VecThresExp); ++ uint64x2_t uoflowx = vcgeq_u64 ( ++ vsubq_u64 (vreinterpretq_u64_f64 (vabsq_f64 (x)), d->small_exp), ++ d->thres_exp); + if (__glibc_unlikely (v_any_u64 (uoflowx))) +- return exp_special_case (x, xtail); ++ return exp_special_case (x, vnegq_f64 (neg_xtail)); + + /* exp(x) = 2^(k/N) * exp(r), with exp(r) in [2^(-1/2N),2^(1/2N)]. */ + /* x = ln2/N*k + r, with k integer and r in [-ln2/2N, ln2/2N]. */ +- float64x2_t z = vmulq_f64 (d->inv_ln2_n, x); + /* z - kd is in [-1, 1] in non-nearest rounding modes. */ +- float64x2_t kd = vaddq_f64 (z, d->shift); +- uint64x2_t ki = vreinterpretq_u64_f64 (kd); +- kd = vsubq_f64 (kd, d->shift); +- float64x2_t r = vfmsq_f64 (x, kd, d->ln2_hi_n); +- r = vfmsq_f64 (r, kd, d->ln2_lo_n); ++ float64x2_t exp_consts = vld1q_f64 (&d->inv_ln2_n); ++ float64x2_t z = vmulq_laneq_f64 (x, exp_consts, 0); ++ float64x2_t kd = vrndnq_f64 (z); ++ uint64x2_t ki = vreinterpretq_u64_s64 (vcvtaq_s64_f64 (z)); ++ float64x2_t ln2_n = vld1q_f64 (&d->ln2_lo_n); ++ float64x2_t r = vfmsq_laneq_f64 (x, kd, ln2_n, 1); ++ r = vfmsq_laneq_f64 (r, kd, ln2_n, 0); + /* The code assumes 2^-200 < |xtail| < 2^-8/N. */ +- r = vaddq_f64 (r, xtail); ++ r = vsubq_f64 (r, neg_xtail); + /* 2^(k/N) ~= scale. */ + uint64x2_t idx = vandq_u64 (ki, v_u64 (N_EXP - 1)); + uint64x2_t top = vshlq_n_u64 (ki, 52 - V_POW_EXP_TABLE_BITS); +@@ -170,8 +180,8 @@ v_exp_inline (float64x2_t x, float64x2_t xtail, const struct data *d) + sbits = vaddq_u64 (sbits, top); + /* exp(x) = 2^(k/N) * exp(r) ~= scale + scale * (exp(r) - 1). */ + float64x2_t r2 = vmulq_f64 (r, r); +- float64x2_t tmp = vfmaq_f64 (C (1), r, C (2)); +- tmp = vfmaq_f64 (C (0), r, tmp); ++ float64x2_t tmp = vfmaq_laneq_f64 (d->exp_c1, r, exp_consts, 1); ++ tmp = vfmaq_f64 (d->exp_c0, r, tmp); + tmp = vfmaq_f64 (r, r2, tmp); + float64x2_t scale = vreinterpretq_f64_u64 (sbits); + /* Note: tmp == 0 or |tmp| > 2^-200 and scale > 2^-739, so there +@@ -230,8 +240,8 @@ float64x2_t VPCS_ATTR V_NAME_D2 (pow) (float64x2_t x, float64x2_t y) + { + /* Normalize subnormal x so exponent becomes negative. */ + uint64x2_t vix_norm = vreinterpretq_u64_f64 ( +- vabsq_f64 (vmulq_f64 (x, vcvtq_f64_u64 (v_u64 (1ULL << 52))))); +- vix_norm = vsubq_u64 (vix_norm, v_u64 (52ULL << 52)); ++ vabsq_f64 (vmulq_f64 (x, vcvtq_f64_u64 (d->mask_sub_0)))); ++ vix_norm = vsubq_u64 (vix_norm, d->mask_sub_1); + vix = vbslq_u64 (sub_x, vix_norm, vix); + } + } +@@ -242,8 +252,7 @@ float64x2_t VPCS_ATTR V_NAME_D2 (pow) (float64x2_t x, float64x2_t y) + + /* Vector Exp(y_loghi, y_loglo). */ + float64x2_t vehi = vmulq_f64 (y, vhi); +- float64x2_t velo = vmulq_f64 (y, vlo); + float64x2_t vemi = vfmsq_f64 (vehi, y, vhi); +- velo = vsubq_f64 (velo, vemi); +- return v_exp_inline (vehi, velo, d); ++ float64x2_t neg_velo = vfmsq_f64 (vemi, y, vlo); ++ return v_exp_inline (vehi, neg_velo, d); + } diff --git a/glibc-RHEL-118273-22.patch b/glibc-RHEL-118273-22.patch new file mode 100644 index 0000000..1633bc7 --- /dev/null +++ b/glibc-RHEL-118273-22.patch @@ -0,0 +1,501 @@ +commit cff9648d0b50d19cdaf685f6767add040d4e1a8e +Author: Joana Cruz +Date: Tue Dec 17 14:50:33 2024 +0000 + + AArch64: Improve codegen of AdvSIMD expf family + + Load the polynomial evaluation coefficients into 2 vectors and use lanewise MLAs. + Also use intrinsics instead of native operations. + expf: 3% improvement in throughput microbenchmark on Neoverse V1, exp2f: 5%, + exp10f: 13%, coshf: 14%. + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/fpu/coshf_advsimd.c b/sysdeps/aarch64/fpu/coshf_advsimd.c +index c1ab4923b826569b..cd5c86652129ea9c 100644 +--- a/sysdeps/aarch64/fpu/coshf_advsimd.c ++++ b/sysdeps/aarch64/fpu/coshf_advsimd.c +@@ -23,19 +23,27 @@ + static const struct data + { + struct v_expf_data expf_consts; +- uint32x4_t tiny_bound, special_bound; ++ uint32x4_t tiny_bound; ++ float32x4_t bound; ++#if WANT_SIMD_EXCEPT ++ uint32x4_t special_bound; ++#endif + } data = { + .expf_consts = V_EXPF_DATA, + .tiny_bound = V4 (0x20000000), /* 0x1p-63: Round to 1 below this. */ + /* 0x1.5a92d8p+6: expf overflows above this, so have to use special case. */ ++ .bound = V4 (0x1.5a92d8p+6), ++#if WANT_SIMD_EXCEPT + .special_bound = V4 (0x42ad496c), ++#endif + }; + + #if !WANT_SIMD_EXCEPT + static float32x4_t NOINLINE VPCS_ATTR +-special_case (float32x4_t x, float32x4_t y, uint32x4_t special) ++special_case (float32x4_t x, float32x4_t half_t, float32x4_t half_over_t, ++ uint32x4_t special) + { +- return v_call_f32 (coshf, x, y, special); ++ return v_call_f32 (coshf, x, vaddq_f32 (half_t, half_over_t), special); + } + #endif + +@@ -47,14 +55,13 @@ float32x4_t VPCS_ATTR V_NAME_F1 (cosh) (float32x4_t x) + { + const struct data *d = ptr_barrier (&data); + +- float32x4_t ax = vabsq_f32 (x); +- uint32x4_t iax = vreinterpretq_u32_f32 (ax); +- uint32x4_t special = vcgeq_u32 (iax, d->special_bound); +- + #if WANT_SIMD_EXCEPT + /* If fp exceptions are to be triggered correctly, fall back to the scalar + variant for all inputs if any input is a special value or above the bound + at which expf overflows. */ ++ float32x4_t ax = vabsq_f32 (x); ++ uint32x4_t iax = vreinterpretq_u32_f32 (ax); ++ uint32x4_t special = vcgeq_u32 (iax, d->special_bound); + if (__glibc_unlikely (v_any_u32 (special))) + return v_call_f32 (coshf, x, x, v_u32 (-1)); + +@@ -63,10 +70,13 @@ float32x4_t VPCS_ATTR V_NAME_F1 (cosh) (float32x4_t x) + input to 0, which will generate no exceptions. */ + if (__glibc_unlikely (v_any_u32 (tiny))) + ax = v_zerofy_f32 (ax, tiny); ++ float32x4_t t = v_expf_inline (ax, &d->expf_consts); ++#else ++ uint32x4_t special = vcageq_f32 (x, d->bound); ++ float32x4_t t = v_expf_inline (x, &d->expf_consts); + #endif + + /* Calculate cosh by exp(x) / 2 + exp(-x) / 2. */ +- float32x4_t t = v_expf_inline (ax, &d->expf_consts); + float32x4_t half_t = vmulq_n_f32 (t, 0.5); + float32x4_t half_over_t = vdivq_f32 (v_f32 (0.5), t); + +@@ -75,7 +85,7 @@ float32x4_t VPCS_ATTR V_NAME_F1 (cosh) (float32x4_t x) + return vbslq_f32 (tiny, v_f32 (1), vaddq_f32 (half_t, half_over_t)); + #else + if (__glibc_unlikely (v_any_u32 (special))) +- return special_case (x, vaddq_f32 (half_t, half_over_t), special); ++ return special_case (x, half_t, half_over_t, special); + #endif + + return vaddq_f32 (half_t, half_over_t); +diff --git a/sysdeps/aarch64/fpu/exp10f_advsimd.c b/sysdeps/aarch64/fpu/exp10f_advsimd.c +index cf53e73290fcedb6..55d9cd83f2968ab9 100644 +--- a/sysdeps/aarch64/fpu/exp10f_advsimd.c ++++ b/sysdeps/aarch64/fpu/exp10f_advsimd.c +@@ -18,16 +18,15 @@ + . */ + + #include "v_math.h" +-#include "poly_advsimd_f32.h" + + #define ScaleBound 192.0f + + static const struct data + { +- float32x4_t poly[5]; +- float log10_2_and_inv[4]; +- float32x4_t shift; +- ++ float32x4_t c0, c1, c3; ++ float log10_2_high, log10_2_low, c2, c4; ++ float32x4_t inv_log10_2, special_bound; ++ uint32x4_t exponent_bias, special_offset, special_bias; + #if !WANT_SIMD_EXCEPT + float32x4_t scale_thresh; + #endif +@@ -37,19 +36,24 @@ static const struct data + rel error: 0x1.89dafa3p-24 + abs error: 0x1.167d55p-23 in [-log10(2)/2, log10(2)/2] + maxerr: 1.85943 +0.5 ulp. */ +- .poly = { V4 (0x1.26bb16p+1f), V4 (0x1.5350d2p+1f), V4 (0x1.04744ap+1f), +- V4 (0x1.2d8176p+0f), V4 (0x1.12b41ap-1f) }, +- .shift = V4 (0x1.8p23f), +- +- /* Stores constants 1/log10(2), log10(2)_high, log10(2)_low, 0. */ +- .log10_2_and_inv = { 0x1.a934fp+1, 0x1.344136p-2, -0x1.ec10cp-27, 0 }, ++ .c0 = V4 (0x1.26bb16p+1f), ++ .c1 = V4 (0x1.5350d2p+1f), ++ .c2 = 0x1.04744ap+1f, ++ .c3 = V4 (0x1.2d8176p+0f), ++ .c4 = 0x1.12b41ap-1f, ++ .inv_log10_2 = V4 (0x1.a934fp+1), ++ .log10_2_high = 0x1.344136p-2, ++ .log10_2_low = 0x1.ec10cp-27, ++ /* rint (log2 (2^127 / (1 + sqrt (2)))). */ ++ .special_bound = V4 (126.0f), ++ .exponent_bias = V4 (0x3f800000), ++ .special_offset = V4 (0x82000000), ++ .special_bias = V4 (0x7f000000), + #if !WANT_SIMD_EXCEPT + .scale_thresh = V4 (ScaleBound) + #endif + }; + +-#define ExponentBias v_u32 (0x3f800000) +- + #if WANT_SIMD_EXCEPT + + # define SpecialBound 38.0f /* rint(log10(2^127)). */ +@@ -67,17 +71,15 @@ special_case (float32x4_t x, float32x4_t y, uint32x4_t cmp) + + #else + +-# define SpecialBound 126.0f /* rint (log2 (2^127 / (1 + sqrt (2)))). */ +-# define SpecialOffset v_u32 (0x82000000) +-# define SpecialBias v_u32 (0x7f000000) ++# define SpecialBound 126.0f + + static float32x4_t VPCS_ATTR NOINLINE + special_case (float32x4_t poly, float32x4_t n, uint32x4_t e, uint32x4_t cmp1, + float32x4_t scale, const struct data *d) + { + /* 2^n may overflow, break it up into s1*s2. */ +- uint32x4_t b = vandq_u32 (vclezq_f32 (n), SpecialOffset); +- float32x4_t s1 = vreinterpretq_f32_u32 (vaddq_u32 (b, SpecialBias)); ++ uint32x4_t b = vandq_u32 (vclezq_f32 (n), d->special_offset); ++ float32x4_t s1 = vreinterpretq_f32_u32 (vaddq_u32 (b, d->special_bias)); + float32x4_t s2 = vreinterpretq_f32_u32 (vsubq_u32 (e, b)); + uint32x4_t cmp2 = vcagtq_f32 (n, d->scale_thresh); + float32x4_t r2 = vmulq_f32 (s1, s1); +@@ -112,23 +114,23 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (exp10) (float32x4_t x) + /* exp10(x) = 2^n * 10^r = 2^n * (1 + poly (r)), + with poly(r) in [1/sqrt(2), sqrt(2)] and + x = r + n * log10 (2), with r in [-log10(2)/2, log10(2)/2]. */ +- float32x4_t log10_2_and_inv = vld1q_f32 (d->log10_2_and_inv); +- float32x4_t z = vfmaq_laneq_f32 (d->shift, x, log10_2_and_inv, 0); +- float32x4_t n = vsubq_f32 (z, d->shift); +- float32x4_t r = vfmsq_laneq_f32 (x, n, log10_2_and_inv, 1); +- r = vfmsq_laneq_f32 (r, n, log10_2_and_inv, 2); +- uint32x4_t e = vshlq_n_u32 (vreinterpretq_u32_f32 (z), 23); ++ float32x4_t log10_2_c24 = vld1q_f32 (&d->log10_2_high); ++ float32x4_t n = vrndaq_f32 (vmulq_f32 (x, d->inv_log10_2)); ++ float32x4_t r = vfmsq_laneq_f32 (x, n, log10_2_c24, 0); ++ r = vfmaq_laneq_f32 (r, n, log10_2_c24, 1); ++ uint32x4_t e = vshlq_n_u32 (vreinterpretq_u32_s32 (vcvtaq_s32_f32 (n)), 23); + +- float32x4_t scale = vreinterpretq_f32_u32 (vaddq_u32 (e, ExponentBias)); ++ float32x4_t scale = vreinterpretq_f32_u32 (vaddq_u32 (e, d->exponent_bias)); + + #if !WANT_SIMD_EXCEPT +- uint32x4_t cmp = vcagtq_f32 (n, v_f32 (SpecialBound)); ++ uint32x4_t cmp = vcagtq_f32 (n, d->special_bound); + #endif + + float32x4_t r2 = vmulq_f32 (r, r); +- float32x4_t poly +- = vfmaq_f32 (vmulq_f32 (r, d->poly[0]), +- v_pairwise_poly_3_f32 (r, r2, d->poly + 1), r2); ++ float32x4_t p12 = vfmaq_laneq_f32 (d->c1, r, log10_2_c24, 2); ++ float32x4_t p34 = vfmaq_laneq_f32 (d->c3, r, log10_2_c24, 3); ++ float32x4_t p14 = vfmaq_f32 (p12, r2, p34); ++ float32x4_t poly = vfmaq_f32 (vmulq_f32 (r, d->c0), p14, r2); + + if (__glibc_unlikely (v_any_u32 (cmp))) + #if WANT_SIMD_EXCEPT +diff --git a/sysdeps/aarch64/fpu/exp2f_advsimd.c b/sysdeps/aarch64/fpu/exp2f_advsimd.c +index 69e0b193a1a91249..a4220da63c624490 100644 +--- a/sysdeps/aarch64/fpu/exp2f_advsimd.c ++++ b/sysdeps/aarch64/fpu/exp2f_advsimd.c +@@ -21,24 +21,28 @@ + + static const struct data + { +- float32x4_t poly[5]; +- uint32x4_t exponent_bias; ++ float32x4_t c1, c3; ++ uint32x4_t exponent_bias, special_offset, special_bias; + #if !WANT_SIMD_EXCEPT +- float32x4_t special_bound, scale_thresh; ++ float32x4_t scale_thresh, special_bound; + #endif ++ float c0, c2, c4, zero; + } data = { + /* maxerr: 1.962 ulp. */ +- .poly = { V4 (0x1.59977ap-10f), V4 (0x1.3ce9e4p-7f), V4 (0x1.c6bd32p-5f), +- V4 (0x1.ebf9bcp-3f), V4 (0x1.62e422p-1f) }, ++ .c0 = 0x1.59977ap-10f, ++ .c1 = V4 (0x1.3ce9e4p-7f), ++ .c2 = 0x1.c6bd32p-5f, ++ .c3 = V4 (0x1.ebf9bcp-3f), ++ .c4 = 0x1.62e422p-1f, + .exponent_bias = V4 (0x3f800000), ++ .special_offset = V4 (0x82000000), ++ .special_bias = V4 (0x7f000000), + #if !WANT_SIMD_EXCEPT + .special_bound = V4 (126.0f), + .scale_thresh = V4 (192.0f), + #endif + }; + +-#define C(i) d->poly[i] +- + #if WANT_SIMD_EXCEPT + + # define TinyBound v_u32 (0x20000000) /* asuint (0x1p-63). */ +@@ -55,16 +59,13 @@ special_case (float32x4_t x, float32x4_t y, uint32x4_t cmp) + + #else + +-# define SpecialOffset v_u32 (0x82000000) +-# define SpecialBias v_u32 (0x7f000000) +- + static float32x4_t VPCS_ATTR NOINLINE + special_case (float32x4_t poly, float32x4_t n, uint32x4_t e, uint32x4_t cmp1, + float32x4_t scale, const struct data *d) + { + /* 2^n may overflow, break it up into s1*s2. */ +- uint32x4_t b = vandq_u32 (vclezq_f32 (n), SpecialOffset); +- float32x4_t s1 = vreinterpretq_f32_u32 (vaddq_u32 (b, SpecialBias)); ++ uint32x4_t b = vandq_u32 (vclezq_f32 (n), d->special_offset); ++ float32x4_t s1 = vreinterpretq_f32_u32 (vaddq_u32 (b, d->special_bias)); + float32x4_t s2 = vreinterpretq_f32_u32 (vsubq_u32 (e, b)); + uint32x4_t cmp2 = vcagtq_f32 (n, d->scale_thresh); + float32x4_t r2 = vmulq_f32 (s1, s1); +@@ -80,13 +81,11 @@ special_case (float32x4_t poly, float32x4_t n, uint32x4_t e, uint32x4_t cmp1, + float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (exp2) (float32x4_t x) + { + const struct data *d = ptr_barrier (&data); +- float32x4_t n, r, r2, scale, p, q, poly; +- uint32x4_t cmp, e; + + #if WANT_SIMD_EXCEPT + /* asuint(|x|) - TinyBound >= BigBound - TinyBound. */ + uint32x4_t ia = vreinterpretq_u32_f32 (vabsq_f32 (x)); +- cmp = vcgeq_u32 (vsubq_u32 (ia, TinyBound), SpecialBound); ++ uint32x4_t cmp = vcgeq_u32 (vsubq_u32 (ia, TinyBound), SpecialBound); + float32x4_t xm = x; + /* If any lanes are special, mask them with 1 and retain a copy of x to allow + special_case to fix special lanes later. This is only necessary if fenv +@@ -95,23 +94,24 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (exp2) (float32x4_t x) + x = vbslq_f32 (cmp, v_f32 (1), x); + #endif + +- /* exp2(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)] +- x = n + r, with r in [-1/2, 1/2]. */ +- n = vrndaq_f32 (x); +- r = vsubq_f32 (x, n); +- e = vshlq_n_u32 (vreinterpretq_u32_s32 (vcvtaq_s32_f32 (x)), 23); +- scale = vreinterpretq_f32_u32 (vaddq_u32 (e, d->exponent_bias)); ++ /* exp2(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)] ++ x = n + r, with r in [-1/2, 1/2]. */ ++ float32x4_t n = vrndaq_f32 (x); ++ float32x4_t r = vsubq_f32 (x, n); ++ uint32x4_t e = vshlq_n_u32 (vreinterpretq_u32_s32 (vcvtaq_s32_f32 (x)), 23); ++ float32x4_t scale = vreinterpretq_f32_u32 (vaddq_u32 (e, d->exponent_bias)); + + #if !WANT_SIMD_EXCEPT +- cmp = vcagtq_f32 (n, d->special_bound); ++ uint32x4_t cmp = vcagtq_f32 (n, d->special_bound); + #endif + +- r2 = vmulq_f32 (r, r); +- p = vfmaq_f32 (C (1), C (0), r); +- q = vfmaq_f32 (C (3), C (2), r); ++ float32x4_t c024 = vld1q_f32 (&d->c0); ++ float32x4_t r2 = vmulq_f32 (r, r); ++ float32x4_t p = vfmaq_laneq_f32 (d->c1, r, c024, 0); ++ float32x4_t q = vfmaq_laneq_f32 (d->c3, r, c024, 1); + q = vfmaq_f32 (q, p, r2); +- p = vmulq_f32 (C (4), r); +- poly = vfmaq_f32 (p, q, r2); ++ p = vmulq_laneq_f32 (r, c024, 2); ++ float32x4_t poly = vfmaq_f32 (p, q, r2); + + if (__glibc_unlikely (v_any_u32 (cmp))) + #if WANT_SIMD_EXCEPT +diff --git a/sysdeps/aarch64/fpu/expf_advsimd.c b/sysdeps/aarch64/fpu/expf_advsimd.c +index 5c9cb726205ece6e..70f137e2e5b46207 100644 +--- a/sysdeps/aarch64/fpu/expf_advsimd.c ++++ b/sysdeps/aarch64/fpu/expf_advsimd.c +@@ -21,20 +21,25 @@ + + static const struct data + { +- float32x4_t poly[5]; +- float32x4_t inv_ln2, ln2_hi, ln2_lo; +- uint32x4_t exponent_bias; ++ float32x4_t c1, c3, c4, inv_ln2; ++ float ln2_hi, ln2_lo, c0, c2; ++ uint32x4_t exponent_bias, special_offset, special_bias; + #if !WANT_SIMD_EXCEPT + float32x4_t special_bound, scale_thresh; + #endif + } data = { + /* maxerr: 1.45358 +0.5 ulp. */ +- .poly = { V4 (0x1.0e4020p-7f), V4 (0x1.573e2ep-5f), V4 (0x1.555e66p-3f), +- V4 (0x1.fffdb6p-2f), V4 (0x1.ffffecp-1f) }, ++ .c0 = 0x1.0e4020p-7f, ++ .c1 = V4 (0x1.573e2ep-5f), ++ .c2 = 0x1.555e66p-3f, ++ .c3 = V4 (0x1.fffdb6p-2f), ++ .c4 = V4 (0x1.ffffecp-1f), + .inv_ln2 = V4 (0x1.715476p+0f), +- .ln2_hi = V4 (0x1.62e4p-1f), +- .ln2_lo = V4 (0x1.7f7d1cp-20f), ++ .ln2_hi = 0x1.62e4p-1f, ++ .ln2_lo = 0x1.7f7d1cp-20f, + .exponent_bias = V4 (0x3f800000), ++ .special_offset = V4 (0x82000000), ++ .special_bias = V4 (0x7f000000), + #if !WANT_SIMD_EXCEPT + .special_bound = V4 (126.0f), + .scale_thresh = V4 (192.0f), +@@ -59,19 +64,17 @@ special_case (float32x4_t x, float32x4_t y, uint32x4_t cmp) + + #else + +-# define SpecialOffset v_u32 (0x82000000) +-# define SpecialBias v_u32 (0x7f000000) +- + static float32x4_t VPCS_ATTR NOINLINE + special_case (float32x4_t poly, float32x4_t n, uint32x4_t e, uint32x4_t cmp1, + float32x4_t scale, const struct data *d) + { + /* 2^n may overflow, break it up into s1*s2. */ +- uint32x4_t b = vandq_u32 (vclezq_f32 (n), SpecialOffset); +- float32x4_t s1 = vreinterpretq_f32_u32 (vaddq_u32 (b, SpecialBias)); ++ uint32x4_t b = vandq_u32 (vclezq_f32 (n), d->special_offset); ++ float32x4_t s1 = vreinterpretq_f32_u32 (vaddq_u32 (b, d->special_bias)); + float32x4_t s2 = vreinterpretq_f32_u32 (vsubq_u32 (e, b)); + uint32x4_t cmp2 = vcagtq_f32 (n, d->scale_thresh); + float32x4_t r2 = vmulq_f32 (s1, s1); ++ // (s2 + p*s2)*s1 = s2(p+1)s1 + float32x4_t r1 = vmulq_f32 (vfmaq_f32 (s2, poly, s2), s1); + /* Similar to r1 but avoids double rounding in the subnormal range. */ + float32x4_t r0 = vfmaq_f32 (scale, poly, scale); +@@ -84,12 +87,11 @@ special_case (float32x4_t poly, float32x4_t n, uint32x4_t e, uint32x4_t cmp1, + float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (exp) (float32x4_t x) + { + const struct data *d = ptr_barrier (&data); +- float32x4_t n, r, r2, scale, p, q, poly; +- uint32x4_t cmp, e; ++ float32x4_t ln2_c02 = vld1q_f32 (&d->ln2_hi); + + #if WANT_SIMD_EXCEPT + /* asuint(x) - TinyBound >= BigBound - TinyBound. */ +- cmp = vcgeq_u32 ( ++ uint32x4_t cmp = vcgeq_u32 ( + vsubq_u32 (vandq_u32 (vreinterpretq_u32_f32 (x), v_u32 (0x7fffffff)), + TinyBound), + SpecialBound); +@@ -103,22 +105,22 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (exp) (float32x4_t x) + + /* exp(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)] + x = ln2*n + r, with r in [-ln2/2, ln2/2]. */ +- n = vrndaq_f32 (vmulq_f32 (x, d->inv_ln2)); +- r = vfmsq_f32 (x, n, d->ln2_hi); +- r = vfmsq_f32 (r, n, d->ln2_lo); +- e = vshlq_n_u32 (vreinterpretq_u32_s32 (vcvtq_s32_f32 (n)), 23); +- scale = vreinterpretq_f32_u32 (vaddq_u32 (e, d->exponent_bias)); ++ float32x4_t n = vrndaq_f32 (vmulq_f32 (x, d->inv_ln2)); ++ float32x4_t r = vfmsq_laneq_f32 (x, n, ln2_c02, 0); ++ r = vfmsq_laneq_f32 (r, n, ln2_c02, 1); ++ uint32x4_t e = vshlq_n_u32 (vreinterpretq_u32_s32 (vcvtq_s32_f32 (n)), 23); ++ float32x4_t scale = vreinterpretq_f32_u32 (vaddq_u32 (e, d->exponent_bias)); + + #if !WANT_SIMD_EXCEPT +- cmp = vcagtq_f32 (n, d->special_bound); ++ uint32x4_t cmp = vcagtq_f32 (n, d->special_bound); + #endif + +- r2 = vmulq_f32 (r, r); +- p = vfmaq_f32 (C (1), C (0), r); +- q = vfmaq_f32 (C (3), C (2), r); ++ float32x4_t r2 = vmulq_f32 (r, r); ++ float32x4_t p = vfmaq_laneq_f32 (d->c1, r, ln2_c02, 2); ++ float32x4_t q = vfmaq_laneq_f32 (d->c3, r, ln2_c02, 3); + q = vfmaq_f32 (q, p, r2); +- p = vmulq_f32 (C (4), r); +- poly = vfmaq_f32 (p, q, r2); ++ p = vmulq_f32 (d->c4, r); ++ float32x4_t poly = vfmaq_f32 (p, q, r2); + + if (__glibc_unlikely (v_any_u32 (cmp))) + #if WANT_SIMD_EXCEPT +diff --git a/sysdeps/aarch64/fpu/v_expf_inline.h b/sysdeps/aarch64/fpu/v_expf_inline.h +index 08b06e0a6b34b4f4..eacd2af24161fe3a 100644 +--- a/sysdeps/aarch64/fpu/v_expf_inline.h ++++ b/sysdeps/aarch64/fpu/v_expf_inline.h +@@ -24,50 +24,45 @@ + + struct v_expf_data + { +- float32x4_t poly[5]; +- float32x4_t shift; +- float invln2_and_ln2[4]; ++ float ln2_hi, ln2_lo, c0, c2; ++ float32x4_t inv_ln2, c1, c3, c4; ++ /* asuint(1.0f). */ ++ uint32x4_t exponent_bias; + }; + + /* maxerr: 1.45358 +0.5 ulp. */ + #define V_EXPF_DATA \ + { \ +- .poly = { V4 (0x1.0e4020p-7f), V4 (0x1.573e2ep-5f), V4 (0x1.555e66p-3f), \ +- V4 (0x1.fffdb6p-2f), V4 (0x1.ffffecp-1f) }, \ +- .shift = V4 (0x1.8p23f), \ +- .invln2_and_ln2 = { 0x1.715476p+0f, 0x1.62e4p-1f, 0x1.7f7d1cp-20f, 0 }, \ ++ .c0 = 0x1.0e4020p-7f, .c1 = V4 (0x1.573e2ep-5f), .c2 = 0x1.555e66p-3f, \ ++ .c3 = V4 (0x1.fffdb6p-2f), .c4 = V4 (0x1.ffffecp-1f), \ ++ .ln2_hi = 0x1.62e4p-1f, .ln2_lo = 0x1.7f7d1cp-20f, \ ++ .inv_ln2 = V4 (0x1.715476p+0f), .exponent_bias = V4 (0x3f800000), \ + } + +-#define ExponentBias v_u32 (0x3f800000) /* asuint(1.0f). */ +-#define C(i) d->poly[i] +- + static inline float32x4_t + v_expf_inline (float32x4_t x, const struct v_expf_data *d) + { +- /* Helper routine for calculating exp(x). ++ /* Helper routine for calculating exp(ax). + Copied from v_expf.c, with all special-case handling removed - the + calling routine should handle special values if required. */ + +- /* exp(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)] +- x = ln2*n + r, with r in [-ln2/2, ln2/2]. */ +- float32x4_t n, r, z; +- float32x4_t invln2_and_ln2 = vld1q_f32 (d->invln2_and_ln2); +- z = vfmaq_laneq_f32 (d->shift, x, invln2_and_ln2, 0); +- n = vsubq_f32 (z, d->shift); +- r = vfmsq_laneq_f32 (x, n, invln2_and_ln2, 1); +- r = vfmsq_laneq_f32 (r, n, invln2_and_ln2, 2); +- uint32x4_t e = vshlq_n_u32 (vreinterpretq_u32_f32 (z), 23); +- float32x4_t scale = vreinterpretq_f32_u32 (vaddq_u32 (e, ExponentBias)); ++ /* exp(ax) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)] ++ ax = ln2*n + r, with r in [-ln2/2, ln2/2]. */ ++ float32x4_t ax = vabsq_f32 (x); ++ float32x4_t ln2_c02 = vld1q_f32 (&d->ln2_hi); ++ float32x4_t n = vrndaq_f32 (vmulq_f32 (ax, d->inv_ln2)); ++ float32x4_t r = vfmsq_laneq_f32 (ax, n, ln2_c02, 0); ++ r = vfmsq_laneq_f32 (r, n, ln2_c02, 1); ++ uint32x4_t e = vshlq_n_u32 (vreinterpretq_u32_s32 (vcvtq_s32_f32 (n)), 23); ++ float32x4_t scale = vreinterpretq_f32_u32 (vaddq_u32 (e, d->exponent_bias)); + + /* Custom order-4 Estrin avoids building high order monomial. */ + float32x4_t r2 = vmulq_f32 (r, r); +- float32x4_t p, q, poly; +- p = vfmaq_f32 (C (1), C (0), r); +- q = vfmaq_f32 (C (3), C (2), r); ++ float32x4_t p = vfmaq_laneq_f32 (d->c1, r, ln2_c02, 2); ++ float32x4_t q = vfmaq_laneq_f32 (d->c3, r, ln2_c02, 3); + q = vfmaq_f32 (q, p, r2); +- p = vmulq_f32 (C (4), r); +- poly = vfmaq_f32 (p, q, r2); ++ p = vmulq_f32 (d->c4, r); ++ float32x4_t poly = vfmaq_f32 (p, q, r2); + return vfmaq_f32 (scale, poly, scale); + } +- + #endif diff --git a/glibc-RHEL-118273-23.patch b/glibc-RHEL-118273-23.patch new file mode 100644 index 0000000..63ec79e --- /dev/null +++ b/glibc-RHEL-118273-23.patch @@ -0,0 +1,362 @@ +commit 91c1fadba338752bf514cd4cca057b27b1b10eed +Author: Yat Long Poon +Date: Fri Jan 3 19:09:05 2025 +0000 + + AArch64: Improve codegen for SVE log1pf users + + Reduce memory access by using lanewise MLA and reduce number of MOVPRFXs. + Move log1pf implementation to inline helper function. + Speedup on Neoverse V1 for log1pf (10%), acoshf (-1%), atanhf (2%), asinhf (2%). + +Conflicts: + sysdeps/aarch64/fpu/log1pf_sve.c + (Fixup context to apply without out-of-scope dependency 751a5502) + +diff --git a/sysdeps/aarch64/fpu/acoshf_sve.c b/sysdeps/aarch64/fpu/acoshf_sve.c +index 2110894e629500be..491365e24d692f0f 100644 +--- a/sysdeps/aarch64/fpu/acoshf_sve.c ++++ b/sysdeps/aarch64/fpu/acoshf_sve.c +@@ -17,23 +17,26 @@ + License along with the GNU C Library; if not, see + . */ + ++#include "sv_math.h" ++#include "sv_log1pf_inline.h" ++ + #define One 0x3f800000 + #define Thres 0x20000000 /* asuint(0x1p64) - One. */ + +-#include "sv_log1pf_inline.h" +- + static svfloat32_t NOINLINE +-special_case (svfloat32_t x, svfloat32_t y, svbool_t special) ++special_case (svfloat32_t xm1, svfloat32_t tmp, svbool_t special) + { ++ svfloat32_t x = svadd_x (svptrue_b32 (), xm1, 1.0f); ++ svfloat32_t y = sv_log1pf_inline (tmp, svptrue_b32 ()); + return sv_call_f32 (acoshf, x, y, special); + } + + /* Single-precision SVE acosh(x) routine. Implements the same algorithm as + vector acoshf and log1p. + +- Maximum error is 2.78 ULPs: +- SV_NAME_F1 (acosh) (0x1.01e996p+0) got 0x1.f45b42p-4 +- want 0x1.f45b3cp-4. */ ++ Maximum error is 2.47 ULPs: ++ SV_NAME_F1 (acosh) (0x1.01ca76p+0) got 0x1.e435a6p-4 ++ want 0x1.e435a2p-4. */ + svfloat32_t SV_NAME_F1 (acosh) (svfloat32_t x, const svbool_t pg) + { + svuint32_t ix = svreinterpret_u32 (x); +@@ -41,9 +44,9 @@ svfloat32_t SV_NAME_F1 (acosh) (svfloat32_t x, const svbool_t pg) + + svfloat32_t xm1 = svsub_x (pg, x, 1.0f); + svfloat32_t u = svmul_x (pg, xm1, svadd_x (pg, x, 1.0f)); +- svfloat32_t y = sv_log1pf_inline (svadd_x (pg, xm1, svsqrt_x (pg, u)), pg); ++ svfloat32_t tmp = svadd_x (pg, xm1, svsqrt_x (pg, u)); + + if (__glibc_unlikely (svptest_any (pg, special))) +- return special_case (x, y, special); +- return y; ++ return special_case (xm1, tmp, special); ++ return sv_log1pf_inline (tmp, pg); + } +diff --git a/sysdeps/aarch64/fpu/asinhf_sve.c b/sysdeps/aarch64/fpu/asinhf_sve.c +index d85c3a685c0b83ff..b7f253bf32fb9478 100644 +--- a/sysdeps/aarch64/fpu/asinhf_sve.c ++++ b/sysdeps/aarch64/fpu/asinhf_sve.c +@@ -20,20 +20,23 @@ + #include "sv_math.h" + #include "sv_log1pf_inline.h" + +-#define BigBound (0x5f800000) /* asuint(0x1p64). */ ++#define BigBound 0x5f800000 /* asuint(0x1p64). */ + + static svfloat32_t NOINLINE +-special_case (svfloat32_t x, svfloat32_t y, svbool_t special) ++special_case (svuint32_t iax, svuint32_t sign, svfloat32_t y, svbool_t special) + { ++ svfloat32_t x = svreinterpret_f32 (sveor_x (svptrue_b32 (), iax, sign)); ++ y = svreinterpret_f32 ( ++ svorr_x (svptrue_b32 (), sign, svreinterpret_u32 (y))); + return sv_call_f32 (asinhf, x, y, special); + } + + /* Single-precision SVE asinh(x) routine. Implements the same algorithm as + vector asinhf and log1p. + +- Maximum error is 2.48 ULPs: +- SV_NAME_F1 (asinh) (0x1.008864p-3) got 0x1.ffbbbcp-4 +- want 0x1.ffbbb8p-4. */ ++ Maximum error is 1.92 ULPs: ++ SV_NAME_F1 (asinh) (-0x1.0922ecp-1) got -0x1.fd0bccp-2 ++ want -0x1.fd0bc8p-2. */ + svfloat32_t SV_NAME_F1 (asinh) (svfloat32_t x, const svbool_t pg) + { + svfloat32_t ax = svabs_x (pg, x); +@@ -49,8 +52,6 @@ svfloat32_t SV_NAME_F1 (asinh) (svfloat32_t x, const svbool_t pg) + = sv_log1pf_inline (svadd_x (pg, ax, svdiv_x (pg, ax2, d)), pg); + + if (__glibc_unlikely (svptest_any (pg, special))) +- return special_case ( +- x, svreinterpret_f32 (svorr_x (pg, sign, svreinterpret_u32 (y))), +- special); ++ return special_case (iax, sign, y, special); + return svreinterpret_f32 (svorr_x (pg, sign, svreinterpret_u32 (y))); + } +diff --git a/sysdeps/aarch64/fpu/atanhf_sve.c b/sysdeps/aarch64/fpu/atanhf_sve.c +index dae83041ef7157f0..2d3005bbc88393ec 100644 +--- a/sysdeps/aarch64/fpu/atanhf_sve.c ++++ b/sysdeps/aarch64/fpu/atanhf_sve.c +@@ -17,21 +17,25 @@ + License along with the GNU C Library; if not, see + . */ + ++#include "sv_math.h" + #include "sv_log1pf_inline.h" + + #define One (0x3f800000) + #define Half (0x3f000000) + + static svfloat32_t NOINLINE +-special_case (svfloat32_t x, svfloat32_t y, svbool_t special) ++special_case (svuint32_t iax, svuint32_t sign, svfloat32_t halfsign, ++ svfloat32_t y, svbool_t special) + { ++ svfloat32_t x = svreinterpret_f32 (sveor_x (svptrue_b32 (), iax, sign)); ++ y = svmul_x (svptrue_b32 (), halfsign, y); + return sv_call_f32 (atanhf, x, y, special); + } + + /* Approximation for vector single-precision atanh(x) using modified log1p. +- The maximum error is 2.28 ULP: +- _ZGVsMxv_atanhf(0x1.ff1194p-5) got 0x1.ffbbbcp-5 +- want 0x1.ffbbb6p-5. */ ++ The maximum error is 1.99 ULP: ++ _ZGVsMxv_atanhf(0x1.f1583p-5) got 0x1.f1f4fap-5 ++ want 0x1.f1f4f6p-5. */ + svfloat32_t SV_NAME_F1 (atanh) (svfloat32_t x, const svbool_t pg) + { + svfloat32_t ax = svabs_x (pg, x); +@@ -48,7 +52,7 @@ svfloat32_t SV_NAME_F1 (atanh) (svfloat32_t x, const svbool_t pg) + y = sv_log1pf_inline (y, pg); + + if (__glibc_unlikely (svptest_any (pg, special))) +- return special_case (x, svmul_x (pg, halfsign, y), special); ++ return special_case (iax, sign, halfsign, y, special); + + return svmul_x (pg, halfsign, y); + } +diff --git a/sysdeps/aarch64/fpu/log1pf_sve.c b/sysdeps/aarch64/fpu/log1pf_sve.c +index f645cc997e430bcb..4f17c44e2d96039a 100644 +--- a/sysdeps/aarch64/fpu/log1pf_sve.c ++++ b/sysdeps/aarch64/fpu/log1pf_sve.c +@@ -18,30 +18,13 @@ + . */ + + #include "sv_math.h" +-#include "poly_sve_f32.h" +- +-static const struct data +-{ +- float poly[8]; +- float ln2, exp_bias; +- uint32_t four, three_quarters; +-} data = {.poly = {/* Do not store first term of polynomial, which is -0.5, as +- this can be fmov-ed directly instead of including it in +- the main load-and-mla polynomial schedule. */ +- 0x1.5555aap-2f, -0x1.000038p-2f, 0x1.99675cp-3f, +- -0x1.54ef78p-3f, 0x1.28a1f4p-3f, -0x1.0da91p-3f, +- 0x1.abcb6p-4f, -0x1.6f0d5ep-5f}, +- .ln2 = 0x1.62e43p-1f, +- .exp_bias = 0x1p-23f, +- .four = 0x40800000, +- .three_quarters = 0x3f400000}; +- +-#define SignExponentMask 0xff800000 ++#include "sv_log1pf_inline.h" + + static svfloat32_t NOINLINE +-special_case (svfloat32_t x, svfloat32_t y, svbool_t special) ++special_case (svfloat32_t x, svbool_t special) + { +- return sv_call_f32 (log1pf, x, y, special); ++ return sv_call_f32 (log1pf, x, sv_log1pf_inline (x, svptrue_b32 ()), ++ special); + } + + /* Vector log1pf approximation using polynomial on reduced interval. Worst-case +@@ -50,51 +33,12 @@ special_case (svfloat32_t x, svfloat32_t y, svbool_t special) + want 0x1.9f323ep-2. */ + svfloat32_t SV_NAME_F1 (log1p) (svfloat32_t x, svbool_t pg) + { +- const struct data *d = ptr_barrier (&data); + /* x < -1, Inf/Nan. */ + svbool_t special = svcmpeq (pg, svreinterpret_u32 (x), 0x7f800000); + special = svorn_z (pg, special, svcmpge (pg, x, -1)); + +- /* With x + 1 = t * 2^k (where t = m + 1 and k is chosen such that m +- is in [-0.25, 0.5]): +- log1p(x) = log(t) + log(2^k) = log1p(m) + k*log(2). +- +- We approximate log1p(m) with a polynomial, then scale by +- k*log(2). Instead of doing this directly, we use an intermediate +- scale factor s = 4*k*log(2) to ensure the scale is representable +- as a normalised fp32 number. */ +- svfloat32_t m = svadd_x (pg, x, 1); +- +- /* Choose k to scale x to the range [-1/4, 1/2]. */ +- svint32_t k +- = svand_x (pg, svsub_x (pg, svreinterpret_s32 (m), d->three_quarters), +- sv_s32 (SignExponentMask)); +- +- /* Scale x by exponent manipulation. */ +- svfloat32_t m_scale = svreinterpret_f32 ( +- svsub_x (pg, svreinterpret_u32 (x), svreinterpret_u32 (k))); +- +- /* Scale up to ensure that the scale factor is representable as normalised +- fp32 number, and scale m down accordingly. */ +- svfloat32_t s = svreinterpret_f32 (svsubr_x (pg, k, d->four)); +- m_scale = svadd_x (pg, m_scale, svmla_x (pg, sv_f32 (-1), s, 0.25)); +- +- /* Evaluate polynomial on reduced interval. */ +- svfloat32_t ms2 = svmul_x (pg, m_scale, m_scale), +- ms4 = svmul_x (pg, ms2, ms2); +- svfloat32_t p = sv_estrin_7_f32_x (pg, m_scale, ms2, ms4, d->poly); +- p = svmad_x (pg, m_scale, p, -0.5); +- p = svmla_x (pg, m_scale, m_scale, svmul_x (pg, m_scale, p)); +- +- /* The scale factor to be applied back at the end - by multiplying float(k) +- by 2^-23 we get the unbiased exponent of k. */ +- svfloat32_t scale_back = svmul_x (pg, svcvt_f32_x (pg, k), d->exp_bias); +- +- /* Apply the scaling back. */ +- svfloat32_t y = svmla_x (pg, p, scale_back, d->ln2); +- + if (__glibc_unlikely (svptest_any (pg, special))) +- return special_case (x, y, special); ++ return special_case (x, special); + +- return y; ++ return sv_log1pf_inline (x, pg); + } +diff --git a/sysdeps/aarch64/fpu/sv_log1pf_inline.h b/sysdeps/aarch64/fpu/sv_log1pf_inline.h +index b94b2da055a6c59b..850297d61556740c 100644 +--- a/sysdeps/aarch64/fpu/sv_log1pf_inline.h ++++ b/sysdeps/aarch64/fpu/sv_log1pf_inline.h +@@ -22,55 +22,76 @@ + + #include "sv_math.h" + #include "vecmath_config.h" +-#include "poly_sve_f32.h" ++ ++#define SignExponentMask 0xff800000 + + static const struct sv_log1pf_data + { +- float32_t poly[9]; +- float32_t ln2; +- float32_t scale_back; ++ float c0, c2, c4, c6; ++ float c1, c3, c5, c7; ++ float ln2, exp_bias, quarter; ++ uint32_t four, three_quarters; + } sv_log1pf_data = { +- /* Polynomial generated using FPMinimax in [-0.25, 0.5]. */ +- .poly = { -0x1p-1f, 0x1.5555aap-2f, -0x1.000038p-2f, 0x1.99675cp-3f, +- -0x1.54ef78p-3f, 0x1.28a1f4p-3f, -0x1.0da91p-3f, 0x1.abcb6p-4f, +- -0x1.6f0d5ep-5f }, +- .scale_back = 0x1.0p-23f, +- .ln2 = 0x1.62e43p-1f, ++ /* Do not store first term of polynomial, which is -0.5, as ++ this can be fmov-ed directly instead of including it in ++ the main load-and-mla polynomial schedule. */ ++ .c0 = 0x1.5555aap-2f, .c1 = -0x1.000038p-2f, .c2 = 0x1.99675cp-3f, ++ .c3 = -0x1.54ef78p-3f, .c4 = 0x1.28a1f4p-3f, .c5 = -0x1.0da91p-3f, ++ .c6 = 0x1.abcb6p-4f, .c7 = -0x1.6f0d5ep-5f, .ln2 = 0x1.62e43p-1f, ++ .exp_bias = 0x1p-23f, .quarter = 0x1p-2f, .four = 0x40800000, ++ .three_quarters = 0x3f400000, + }; + +-static inline svfloat32_t +-eval_poly (svfloat32_t m, const float32_t *c, svbool_t pg) +-{ +- svfloat32_t p_12 = svmla_x (pg, sv_f32 (c[0]), m, sv_f32 (c[1])); +- svfloat32_t m2 = svmul_x (pg, m, m); +- svfloat32_t q = svmla_x (pg, m, m2, p_12); +- svfloat32_t p = sv_pw_horner_6_f32_x (pg, m, m2, c + 2); +- p = svmul_x (pg, m2, p); +- +- return svmla_x (pg, q, m2, p); +-} +- + static inline svfloat32_t + sv_log1pf_inline (svfloat32_t x, svbool_t pg) + { + const struct sv_log1pf_data *d = ptr_barrier (&sv_log1pf_data); + +- svfloat32_t m = svadd_x (pg, x, 1.0f); +- +- svint32_t ks = svsub_x (pg, svreinterpret_s32 (m), +- svreinterpret_s32 (svdup_f32 (0.75f))); +- ks = svand_x (pg, ks, 0xff800000); +- svuint32_t k = svreinterpret_u32 (ks); +- svfloat32_t s = svreinterpret_f32 ( +- svsub_x (pg, svreinterpret_u32 (svdup_f32 (4.0f)), k)); +- +- svfloat32_t m_scale +- = svreinterpret_f32 (svsub_x (pg, svreinterpret_u32 (x), k)); +- m_scale +- = svadd_x (pg, m_scale, svmla_x (pg, sv_f32 (-1.0f), sv_f32 (0.25f), s)); +- svfloat32_t p = eval_poly (m_scale, d->poly, pg); +- svfloat32_t scale_back = svmul_x (pg, svcvt_f32_x (pg, k), d->scale_back); +- return svmla_x (pg, p, scale_back, d->ln2); ++ /* With x + 1 = t * 2^k (where t = m + 1 and k is chosen such that m ++ is in [-0.25, 0.5]): ++ log1p(x) = log(t) + log(2^k) = log1p(m) + k*log(2). ++ ++ We approximate log1p(m) with a polynomial, then scale by ++ k*log(2). Instead of doing this directly, we use an intermediate ++ scale factor s = 4*k*log(2) to ensure the scale is representable ++ as a normalised fp32 number. */ ++ svfloat32_t m = svadd_x (pg, x, 1); ++ ++ /* Choose k to scale x to the range [-1/4, 1/2]. */ ++ svint32_t k ++ = svand_x (pg, svsub_x (pg, svreinterpret_s32 (m), d->three_quarters), ++ sv_s32 (SignExponentMask)); ++ ++ /* Scale x by exponent manipulation. */ ++ svfloat32_t m_scale = svreinterpret_f32 ( ++ svsub_x (pg, svreinterpret_u32 (x), svreinterpret_u32 (k))); ++ ++ /* Scale up to ensure that the scale factor is representable as normalised ++ fp32 number, and scale m down accordingly. */ ++ svfloat32_t s = svreinterpret_f32 (svsubr_x (pg, k, d->four)); ++ svfloat32_t fconst = svld1rq_f32 (svptrue_b32 (), &d->ln2); ++ m_scale = svadd_x (pg, m_scale, svmla_lane_f32 (sv_f32 (-1), s, fconst, 2)); ++ ++ /* Evaluate polynomial on reduced interval. */ ++ svfloat32_t ms2 = svmul_x (svptrue_b32 (), m_scale, m_scale); ++ ++ svfloat32_t c1357 = svld1rq_f32 (svptrue_b32 (), &d->c1); ++ svfloat32_t p01 = svmla_lane_f32 (sv_f32 (d->c0), m_scale, c1357, 0); ++ svfloat32_t p23 = svmla_lane_f32 (sv_f32 (d->c2), m_scale, c1357, 1); ++ svfloat32_t p45 = svmla_lane_f32 (sv_f32 (d->c4), m_scale, c1357, 2); ++ svfloat32_t p67 = svmla_lane_f32 (sv_f32 (d->c6), m_scale, c1357, 3); ++ ++ svfloat32_t p = svmla_x (pg, p45, p67, ms2); ++ p = svmla_x (pg, p23, p, ms2); ++ p = svmla_x (pg, p01, p, ms2); ++ ++ p = svmad_x (pg, m_scale, p, -0.5); ++ p = svmla_x (pg, m_scale, m_scale, svmul_x (pg, m_scale, p)); ++ ++ /* The scale factor to be applied back at the end - by multiplying float(k) ++ by 2^-23 we get the unbiased exponent of k. */ ++ svfloat32_t scale_back = svmul_lane_f32 (svcvt_f32_x (pg, k), fconst, 1); ++ return svmla_lane_f32 (p, scale_back, fconst, 0); + } + + #endif diff --git a/glibc-RHEL-118273-24.patch b/glibc-RHEL-118273-24.patch new file mode 100644 index 0000000..965cfa1 --- /dev/null +++ b/glibc-RHEL-118273-24.patch @@ -0,0 +1,258 @@ +commit 140b985e5a2071000122b3cb63ebfe88cf21dd29 +Author: Luna Lamb +Date: Fri Jan 3 19:00:12 2025 +0000 + + AArch64: Improve codegen in AdvSIMD asinh + + Improves memory access and removes spills. + Load the polynomial evaluation coefficients into 2 vectors and use lanewise + MLAs. Reduces MOVs 6->3 , LDR 11->5, STR/STP 2->0, ADRP 3->2. + +diff --git a/sysdeps/aarch64/fpu/asinh_advsimd.c b/sysdeps/aarch64/fpu/asinh_advsimd.c +index 6207e7da9531f48d..2739f98b390edca7 100644 +--- a/sysdeps/aarch64/fpu/asinh_advsimd.c ++++ b/sysdeps/aarch64/fpu/asinh_advsimd.c +@@ -20,41 +20,71 @@ + #include "v_math.h" + #include "poly_advsimd_f64.h" + +-#define A(i) v_f64 (__v_log_data.poly[i]) +-#define N (1 << V_LOG_TABLE_BITS) +-#define IndexMask (N - 1) +- + const static struct data + { +- float64x2_t poly[18]; +- uint64x2_t off, huge_bound, abs_mask; +- float64x2_t ln2, tiny_bound; ++ uint64x2_t huge_bound, abs_mask, off, mask; ++#if WANT_SIMD_EXCEPT ++ float64x2_t tiny_bound; ++#endif ++ float64x2_t lc0, lc2; ++ double lc1, lc3, ln2, lc4; ++ ++ float64x2_t c0, c2, c4, c6, c8, c10, c12, c14, c16, c17; ++ double c1, c3, c5, c7, c9, c11, c13, c15; ++ + } data = { +- .off = V2 (0x3fe6900900000000), +- .ln2 = V2 (0x1.62e42fefa39efp-1), +- .huge_bound = V2 (0x5fe0000000000000), ++ ++#if WANT_SIMD_EXCEPT + .tiny_bound = V2 (0x1p-26), +- .abs_mask = V2 (0x7fffffffffffffff), ++#endif + /* Even terms of polynomial s.t. asinh(x) is approximated by + asinh(x) ~= x + x^3 * (C0 + C1 * x + C2 * x^2 + C3 * x^3 + ...). + Generated using Remez, f = (asinh(sqrt(x)) - sqrt(x))/x^(3/2). */ +- .poly = { V2 (-0x1.55555555554a7p-3), V2 (0x1.3333333326c7p-4), +- V2 (-0x1.6db6db68332e6p-5), V2 (0x1.f1c71b26fb40dp-6), +- V2 (-0x1.6e8b8b654a621p-6), V2 (0x1.1c4daa9e67871p-6), +- V2 (-0x1.c9871d10885afp-7), V2 (0x1.7a16e8d9d2ecfp-7), +- V2 (-0x1.3ddca533e9f54p-7), V2 (0x1.0becef748dafcp-7), +- V2 (-0x1.b90c7099dd397p-8), V2 (0x1.541f2bb1ffe51p-8), +- V2 (-0x1.d217026a669ecp-9), V2 (0x1.0b5c7977aaf7p-9), +- V2 (-0x1.e0f37daef9127p-11), V2 (0x1.388b5fe542a6p-12), +- V2 (-0x1.021a48685e287p-14), V2 (0x1.93d4ba83d34dap-18) }, ++ ++ .c0 = V2 (-0x1.55555555554a7p-3), ++ .c1 = 0x1.3333333326c7p-4, ++ .c2 = V2 (-0x1.6db6db68332e6p-5), ++ .c3 = 0x1.f1c71b26fb40dp-6, ++ .c4 = V2 (-0x1.6e8b8b654a621p-6), ++ .c5 = 0x1.1c4daa9e67871p-6, ++ .c6 = V2 (-0x1.c9871d10885afp-7), ++ .c7 = 0x1.7a16e8d9d2ecfp-7, ++ .c8 = V2 (-0x1.3ddca533e9f54p-7), ++ .c9 = 0x1.0becef748dafcp-7, ++ .c10 = V2 (-0x1.b90c7099dd397p-8), ++ .c11 = 0x1.541f2bb1ffe51p-8, ++ .c12 = V2 (-0x1.d217026a669ecp-9), ++ .c13 = 0x1.0b5c7977aaf7p-9, ++ .c14 = V2 (-0x1.e0f37daef9127p-11), ++ .c15 = 0x1.388b5fe542a6p-12, ++ .c16 = V2 (-0x1.021a48685e287p-14), ++ .c17 = V2 (0x1.93d4ba83d34dap-18), ++ ++ .lc0 = V2 (-0x1.ffffffffffff7p-2), ++ .lc1 = 0x1.55555555170d4p-2, ++ .lc2 = V2 (-0x1.0000000399c27p-2), ++ .lc3 = 0x1.999b2e90e94cap-3, ++ .lc4 = -0x1.554e550bd501ep-3, ++ .ln2 = 0x1.62e42fefa39efp-1, ++ ++ .off = V2 (0x3fe6900900000000), ++ .huge_bound = V2 (0x5fe0000000000000), ++ .abs_mask = V2 (0x7fffffffffffffff), ++ .mask = V2 (0xfffULL << 52), + }; + + static float64x2_t NOINLINE VPCS_ATTR +-special_case (float64x2_t x, float64x2_t y, uint64x2_t special) ++special_case (float64x2_t x, float64x2_t y, uint64x2_t abs_mask, ++ uint64x2_t special) + { ++ /* Copy sign. */ ++ y = vbslq_f64 (abs_mask, y, x); + return v_call_f64 (asinh, x, y, special); + } + ++#define N (1 << V_LOG_TABLE_BITS) ++#define IndexMask (N - 1) ++ + struct entry + { + float64x2_t invc; +@@ -76,27 +106,34 @@ lookup (uint64x2_t i) + } + + static inline float64x2_t +-log_inline (float64x2_t x, const struct data *d) ++log_inline (float64x2_t xm, const struct data *d) + { +- /* Double-precision vector log, copied from ordinary vector log with some +- cosmetic modification and special-cases removed. */ +- uint64x2_t ix = vreinterpretq_u64_f64 (x); +- uint64x2_t tmp = vsubq_u64 (ix, d->off); +- int64x2_t k = vshrq_n_s64 (vreinterpretq_s64_u64 (tmp), 52); +- uint64x2_t iz +- = vsubq_u64 (ix, vandq_u64 (tmp, vdupq_n_u64 (0xfffULL << 52))); ++ ++ uint64x2_t u = vreinterpretq_u64_f64 (xm); ++ uint64x2_t u_off = vsubq_u64 (u, d->off); ++ ++ int64x2_t k = vshrq_n_s64 (vreinterpretq_s64_u64 (u_off), 52); ++ uint64x2_t iz = vsubq_u64 (u, vandq_u64 (u_off, d->mask)); + float64x2_t z = vreinterpretq_f64_u64 (iz); +- struct entry e = lookup (tmp); ++ ++ struct entry e = lookup (u_off); ++ ++ /* log(x) = log1p(z/c-1) + log(c) + k*Ln2. */ + float64x2_t r = vfmaq_f64 (v_f64 (-1.0), z, e.invc); + float64x2_t kd = vcvtq_f64_s64 (k); +- float64x2_t hi = vfmaq_f64 (vaddq_f64 (e.logc, r), kd, d->ln2); ++ ++ /* hi = r + log(c) + k*Ln2. */ ++ float64x2_t ln2_and_lc4 = vld1q_f64 (&d->ln2); ++ float64x2_t hi = vfmaq_laneq_f64 (vaddq_f64 (e.logc, r), kd, ln2_and_lc4, 0); ++ ++ /* y = r2*(A0 + r*A1 + r2*(A2 + r*A3 + r2*A4)) + hi. */ ++ float64x2_t odd_coeffs = vld1q_f64 (&d->lc1); + float64x2_t r2 = vmulq_f64 (r, r); +- float64x2_t y = vfmaq_f64 (A (2), A (3), r); +- float64x2_t p = vfmaq_f64 (A (0), A (1), r); +- y = vfmaq_f64 (y, A (4), r2); +- y = vfmaq_f64 (p, y, r2); +- y = vfmaq_f64 (hi, y, r2); +- return y; ++ float64x2_t y = vfmaq_laneq_f64 (d->lc2, r, odd_coeffs, 1); ++ float64x2_t p = vfmaq_laneq_f64 (d->lc0, r, odd_coeffs, 0); ++ y = vfmaq_laneq_f64 (y, r2, ln2_and_lc4, 1); ++ y = vfmaq_f64 (p, r2, y); ++ return vfmaq_f64 (hi, y, r2); + } + + /* Double-precision implementation of vector asinh(x). +@@ -106,23 +143,24 @@ log_inline (float64x2_t x, const struct data *d) + asinh(x) = sign(x) * log(|x| + sqrt(x^2 + 1) if |x| >= 1 + = sign(x) * (|x| + |x|^3 * P(x^2)) otherwise + where log(x) is an optimized log approximation, and P(x) is a polynomial +- shared with the scalar routine. The greatest observed error 3.29 ULP, in ++ shared with the scalar routine. The greatest observed error 2.79 ULP, in + |x| >= 1: +- __v_asinh(0x1.2cd9d717e2c9bp+0) got 0x1.ffffcfd0e234fp-1 +- want 0x1.ffffcfd0e2352p-1. */ ++ _ZGVnN2v_asinh(0x1.2cd9d73ea76a6p+0) got 0x1.ffffd003219dap-1 ++ want 0x1.ffffd003219ddp-1. */ + VPCS_ATTR float64x2_t V_NAME_D1 (asinh) (float64x2_t x) + { + const struct data *d = ptr_barrier (&data); +- + float64x2_t ax = vabsq_f64 (x); +- uint64x2_t iax = vreinterpretq_u64_f64 (ax); + + uint64x2_t gt1 = vcgeq_f64 (ax, v_f64 (1)); +- uint64x2_t special = vcgeq_u64 (iax, d->huge_bound); + + #if WANT_SIMD_EXCEPT ++ uint64x2_t iax = vreinterpretq_u64_f64 (ax); ++ uint64x2_t special = vcgeq_u64 (iax, (d->huge_bound)); + uint64x2_t tiny = vcltq_f64 (ax, d->tiny_bound); + special = vorrq_u64 (special, tiny); ++#else ++ uint64x2_t special = vcgeq_f64 (ax, vreinterpretq_f64_u64 (d->huge_bound)); + #endif + + /* Option 1: |x| >= 1. +@@ -147,19 +185,45 @@ VPCS_ATTR float64x2_t V_NAME_D1 (asinh) (float64x2_t x) + overflow, and tiny lanes, which will underflow, by setting them to 0. They + will be fixed later, either by selecting x or falling back to the scalar + special-case. The largest observed error in this region is 1.47 ULPs: +- __v_asinh(0x1.fdfcd00cc1e6ap-1) got 0x1.c1d6bf874019bp-1 +- want 0x1.c1d6bf874019cp-1. */ ++ _ZGVnN2v_asinh(0x1.fdfcd00cc1e6ap-1) got 0x1.c1d6bf874019bp-1 ++ want 0x1.c1d6bf874019cp-1. */ + float64x2_t option_2 = v_f64 (0); ++ + if (__glibc_likely (v_any_u64 (vceqzq_u64 (gt1)))) + { ++ + #if WANT_SIMD_EXCEPT + ax = v_zerofy_f64 (ax, vorrq_u64 (tiny, gt1)); + #endif +- float64x2_t x2 = vmulq_f64 (ax, ax), x3 = vmulq_f64 (ax, x2), +- z2 = vmulq_f64 (x2, x2), z4 = vmulq_f64 (z2, z2), +- z8 = vmulq_f64 (z4, z4), z16 = vmulq_f64 (z8, z8); +- float64x2_t p = v_estrin_17_f64 (x2, z2, z4, z8, z16, d->poly); +- option_2 = vfmaq_f64 (ax, p, x3); ++ float64x2_t x2 = vmulq_f64 (ax, ax), z2 = vmulq_f64 (x2, x2); ++ /* Order-17 Pairwise Horner scheme. */ ++ float64x2_t c13 = vld1q_f64 (&d->c1); ++ float64x2_t c57 = vld1q_f64 (&d->c5); ++ float64x2_t c911 = vld1q_f64 (&d->c9); ++ float64x2_t c1315 = vld1q_f64 (&d->c13); ++ ++ float64x2_t p01 = vfmaq_laneq_f64 (d->c0, x2, c13, 0); ++ float64x2_t p23 = vfmaq_laneq_f64 (d->c2, x2, c13, 1); ++ float64x2_t p45 = vfmaq_laneq_f64 (d->c4, x2, c57, 0); ++ float64x2_t p67 = vfmaq_laneq_f64 (d->c6, x2, c57, 1); ++ float64x2_t p89 = vfmaq_laneq_f64 (d->c8, x2, c911, 0); ++ float64x2_t p1011 = vfmaq_laneq_f64 (d->c10, x2, c911, 1); ++ float64x2_t p1213 = vfmaq_laneq_f64 (d->c12, x2, c1315, 0); ++ float64x2_t p1415 = vfmaq_laneq_f64 (d->c14, x2, c1315, 1); ++ float64x2_t p1617 = vfmaq_f64 (d->c16, x2, d->c17); ++ ++ float64x2_t p = vfmaq_f64 (p1415, z2, p1617); ++ p = vfmaq_f64 (p1213, z2, p); ++ p = vfmaq_f64 (p1011, z2, p); ++ p = vfmaq_f64 (p89, z2, p); ++ ++ p = vfmaq_f64 (p67, z2, p); ++ p = vfmaq_f64 (p45, z2, p); ++ ++ p = vfmaq_f64 (p23, z2, p); ++ ++ p = vfmaq_f64 (p01, z2, p); ++ option_2 = vfmaq_f64 (ax, p, vmulq_f64 (ax, x2)); + #if WANT_SIMD_EXCEPT + option_2 = vbslq_f64 (tiny, x, option_2); + #endif +@@ -167,10 +231,10 @@ VPCS_ATTR float64x2_t V_NAME_D1 (asinh) (float64x2_t x) + + /* Choose the right option for each lane. */ + float64x2_t y = vbslq_f64 (gt1, option_1, option_2); +- /* Copy sign. */ +- y = vbslq_f64 (d->abs_mask, y, x); +- + if (__glibc_unlikely (v_any_u64 (special))) +- return special_case (x, y, special); +- return y; ++ { ++ return special_case (x, y, d->abs_mask, special); ++ } ++ /* Copy sign. */ ++ return vbslq_f64 (d->abs_mask, y, x); + } diff --git a/glibc-RHEL-118273-25.patch b/glibc-RHEL-118273-25.patch new file mode 100644 index 0000000..e87c829 --- /dev/null +++ b/glibc-RHEL-118273-25.patch @@ -0,0 +1,221 @@ +commit f86b4cf87581cf1e45702b07880679ffa0b1f47a +Author: Luna Lamb +Date: Fri Jan 3 20:15:17 2025 +0000 + + AArch64: Improve codegen in SVE expm1f and users + + Use unpredicated muls, use absolute compare and improve memory access. + Expm1f, sinhf and tanhf show 7%, 5% and 1% improvement in throughput + microbenchmark on Neoverse V1. + +diff --git a/sysdeps/aarch64/fpu/expm1f_sve.c b/sysdeps/aarch64/fpu/expm1f_sve.c +index 7c852125cdbd0a2b..05a66400d477b819 100644 +--- a/sysdeps/aarch64/fpu/expm1f_sve.c ++++ b/sysdeps/aarch64/fpu/expm1f_sve.c +@@ -18,7 +18,6 @@ + . */ + + #include "sv_math.h" +-#include "poly_sve_f32.h" + + /* Largest value of x for which expm1(x) should round to -1. */ + #define SpecialBound 0x1.5ebc4p+6f +@@ -28,20 +27,17 @@ static const struct data + /* These 4 are grouped together so they can be loaded as one quadword, then + used with _lane forms of svmla/svmls. */ + float c2, c4, ln2_hi, ln2_lo; +- float c0, c1, c3, inv_ln2, special_bound, shift; ++ float c0, inv_ln2, c1, c3, special_bound; + } data = { + /* Generated using fpminimax. */ + .c0 = 0x1.fffffep-2, .c1 = 0x1.5554aep-3, + .c2 = 0x1.555736p-5, .c3 = 0x1.12287cp-7, +- .c4 = 0x1.6b55a2p-10, ++ .c4 = 0x1.6b55a2p-10, .inv_ln2 = 0x1.715476p+0f, ++ .special_bound = SpecialBound, .ln2_lo = 0x1.7f7d1cp-20f, ++ .ln2_hi = 0x1.62e4p-1f, + +- .special_bound = SpecialBound, .shift = 0x1.8p23f, +- .inv_ln2 = 0x1.715476p+0f, .ln2_hi = 0x1.62e4p-1f, +- .ln2_lo = 0x1.7f7d1cp-20f, + }; + +-#define C(i) sv_f32 (d->c##i) +- + static svfloat32_t NOINLINE + special_case (svfloat32_t x, svbool_t pg) + { +@@ -71,9 +67,8 @@ svfloat32_t SV_NAME_F1 (expm1) (svfloat32_t x, svbool_t pg) + and f = x - i * ln2, then f is in [-ln2/2, ln2/2]. + exp(x) - 1 = 2^i * (expm1(f) + 1) - 1 + where 2^i is exact because i is an integer. */ +- svfloat32_t j = svmla_x (pg, sv_f32 (d->shift), x, d->inv_ln2); +- j = svsub_x (pg, j, d->shift); +- svint32_t i = svcvt_s32_x (pg, j); ++ svfloat32_t j = svmul_x (svptrue_b32 (), x, d->inv_ln2); ++ j = svrinta_x (pg, j); + + svfloat32_t f = svmls_lane (x, j, lane_constants, 2); + f = svmls_lane (f, j, lane_constants, 3); +@@ -83,17 +78,17 @@ svfloat32_t SV_NAME_F1 (expm1) (svfloat32_t x, svbool_t pg) + x + ax^2 + bx^3 + cx^4 .... + So we calculate the polynomial P(f) = a + bf + cf^2 + ... + and assemble the approximation expm1(f) ~= f + f^2 * P(f). */ +- svfloat32_t p12 = svmla_lane (C (1), f, lane_constants, 0); +- svfloat32_t p34 = svmla_lane (C (3), f, lane_constants, 1); +- svfloat32_t f2 = svmul_x (pg, f, f); ++ svfloat32_t p12 = svmla_lane (sv_f32 (d->c1), f, lane_constants, 0); ++ svfloat32_t p34 = svmla_lane (sv_f32 (d->c3), f, lane_constants, 1); ++ svfloat32_t f2 = svmul_x (svptrue_b32 (), f, f); + svfloat32_t p = svmla_x (pg, p12, f2, p34); +- p = svmla_x (pg, C (0), f, p); ++ ++ p = svmla_x (pg, sv_f32 (d->c0), f, p); + p = svmla_x (pg, f, f2, p); + + /* Assemble the result. + expm1(x) ~= 2^i * (p + 1) - 1 + Let t = 2^i. */ +- svfloat32_t t = svreinterpret_f32 ( +- svadd_x (pg, svreinterpret_u32 (svlsl_x (pg, i, 23)), 0x3f800000)); +- return svmla_x (pg, svsub_x (pg, t, 1), p, t); ++ svfloat32_t t = svscale_x (pg, sv_f32 (1.0f), svcvt_s32_x (pg, j)); ++ return svmla_x (pg, svsub_x (pg, t, 1.0f), p, t); + } +diff --git a/sysdeps/aarch64/fpu/sinhf_sve.c b/sysdeps/aarch64/fpu/sinhf_sve.c +index 6c204b57a2aa18d3..50dd386774b005ca 100644 +--- a/sysdeps/aarch64/fpu/sinhf_sve.c ++++ b/sysdeps/aarch64/fpu/sinhf_sve.c +@@ -63,5 +63,5 @@ svfloat32_t SV_NAME_F1 (sinh) (svfloat32_t x, const svbool_t pg) + if (__glibc_unlikely (svptest_any (pg, special))) + return special_case (x, svmul_x (pg, t, halfsign), special); + +- return svmul_x (pg, t, halfsign); ++ return svmul_x (svptrue_b32 (), t, halfsign); + } +diff --git a/sysdeps/aarch64/fpu/sv_expm1f_inline.h b/sysdeps/aarch64/fpu/sv_expm1f_inline.h +index 5b7245122294e1b4..e46ddda5437dc826 100644 +--- a/sysdeps/aarch64/fpu/sv_expm1f_inline.h ++++ b/sysdeps/aarch64/fpu/sv_expm1f_inline.h +@@ -27,21 +27,18 @@ struct sv_expm1f_data + /* These 4 are grouped together so they can be loaded as one quadword, then + used with _lane forms of svmla/svmls. */ + float32_t c2, c4, ln2_hi, ln2_lo; +- float32_t c0, c1, c3, inv_ln2, shift; ++ float c0, inv_ln2, c1, c3, special_bound; + }; + + /* Coefficients generated using fpminimax. */ + #define SV_EXPM1F_DATA \ + { \ +- .c0 = 0x1.fffffep-2, .c1 = 0x1.5554aep-3, .c2 = 0x1.555736p-5, \ +- .c3 = 0x1.12287cp-7, .c4 = 0x1.6b55a2p-10, \ ++ .c0 = 0x1.fffffep-2, .c1 = 0x1.5554aep-3, .inv_ln2 = 0x1.715476p+0f, \ ++ .c2 = 0x1.555736p-5, .c3 = 0x1.12287cp-7, \ + \ +- .shift = 0x1.8p23f, .inv_ln2 = 0x1.715476p+0f, .ln2_hi = 0x1.62e4p-1f, \ +- .ln2_lo = 0x1.7f7d1cp-20f, \ ++ .c4 = 0x1.6b55a2p-10, .ln2_lo = 0x1.7f7d1cp-20f, .ln2_hi = 0x1.62e4p-1f, \ + } + +-#define C(i) sv_f32 (d->c##i) +- + static inline svfloat32_t + expm1f_inline (svfloat32_t x, svbool_t pg, const struct sv_expm1f_data *d) + { +@@ -55,9 +52,8 @@ expm1f_inline (svfloat32_t x, svbool_t pg, const struct sv_expm1f_data *d) + and f = x - i * ln2, then f is in [-ln2/2, ln2/2]. + exp(x) - 1 = 2^i * (expm1(f) + 1) - 1 + where 2^i is exact because i is an integer. */ +- svfloat32_t j = svmla_x (pg, sv_f32 (d->shift), x, d->inv_ln2); +- j = svsub_x (pg, j, d->shift); +- svint32_t i = svcvt_s32_x (pg, j); ++ svfloat32_t j = svmul_x (svptrue_b32 (), x, d->inv_ln2); ++ j = svrinta_x (pg, j); + + svfloat32_t f = svmls_lane (x, j, lane_constants, 2); + f = svmls_lane (f, j, lane_constants, 3); +@@ -67,18 +63,18 @@ expm1f_inline (svfloat32_t x, svbool_t pg, const struct sv_expm1f_data *d) + x + ax^2 + bx^3 + cx^4 .... + So we calculate the polynomial P(f) = a + bf + cf^2 + ... + and assemble the approximation expm1(f) ~= f + f^2 * P(f). */ +- svfloat32_t p12 = svmla_lane (C (1), f, lane_constants, 0); +- svfloat32_t p34 = svmla_lane (C (3), f, lane_constants, 1); +- svfloat32_t f2 = svmul_x (pg, f, f); ++ svfloat32_t p12 = svmla_lane (sv_f32 (d->c1), f, lane_constants, 0); ++ svfloat32_t p34 = svmla_lane (sv_f32 (d->c3), f, lane_constants, 1); ++ svfloat32_t f2 = svmul_x (svptrue_b32 (), f, f); + svfloat32_t p = svmla_x (pg, p12, f2, p34); +- p = svmla_x (pg, C (0), f, p); ++ p = svmla_x (pg, sv_f32 (d->c0), f, p); + p = svmla_x (pg, f, f2, p); + + /* Assemble the result. + expm1(x) ~= 2^i * (p + 1) - 1 + Let t = 2^i. */ +- svfloat32_t t = svscale_x (pg, sv_f32 (1), i); +- return svmla_x (pg, svsub_x (pg, t, 1), p, t); ++ svfloat32_t t = svscale_x (pg, sv_f32 (1.0f), svcvt_s32_x (pg, j)); ++ return svmla_x (pg, svsub_x (pg, t, 1.0f), p, t); + } + + #endif +diff --git a/sysdeps/aarch64/fpu/tanhf_sve.c b/sysdeps/aarch64/fpu/tanhf_sve.c +index 0b94523cf5074200..80dd679346f13f37 100644 +--- a/sysdeps/aarch64/fpu/tanhf_sve.c ++++ b/sysdeps/aarch64/fpu/tanhf_sve.c +@@ -19,20 +19,27 @@ + + #include "sv_expm1f_inline.h" + ++/* Largest value of x for which tanhf(x) rounds to 1 (or -1 for negative). */ ++#define BoringBound 0x1.205966p+3f ++ + static const struct data + { + struct sv_expm1f_data expm1f_consts; +- uint32_t boring_bound, onef; ++ uint32_t onef, special_bound; ++ float boring_bound; + } data = { + .expm1f_consts = SV_EXPM1F_DATA, +- /* 0x1.205966p+3, above which tanhf rounds to 1 (or -1 for negative). */ +- .boring_bound = 0x41102cb3, + .onef = 0x3f800000, ++ .special_bound = 0x7f800000, ++ .boring_bound = BoringBound, + }; + + static svfloat32_t NOINLINE +-special_case (svfloat32_t x, svfloat32_t y, svbool_t special) ++special_case (svfloat32_t x, svbool_t pg, svbool_t is_boring, ++ svfloat32_t boring, svfloat32_t q, svbool_t special) + { ++ svfloat32_t y ++ = svsel_f32 (is_boring, boring, svdiv_x (pg, q, svadd_x (pg, q, 2.0))); + return sv_call_f32 (tanhf, x, y, special); + } + +@@ -47,15 +54,16 @@ svfloat32_t SV_NAME_F1 (tanh) (svfloat32_t x, const svbool_t pg) + svfloat32_t ax = svabs_x (pg, x); + svuint32_t iax = svreinterpret_u32 (ax); + svuint32_t sign = sveor_x (pg, svreinterpret_u32 (x), iax); +- svbool_t is_boring = svcmpgt (pg, iax, d->boring_bound); + svfloat32_t boring = svreinterpret_f32 (svorr_x (pg, sign, d->onef)); +- +- svbool_t special = svcmpgt (pg, iax, 0x7f800000); ++ svbool_t special = svcmpgt (pg, iax, d->special_bound); ++ svbool_t is_boring = svacgt (pg, x, d->boring_bound); + + /* tanh(x) = (e^2x - 1) / (e^2x + 1). */ +- svfloat32_t q = expm1f_inline (svmul_x (pg, x, 2.0), pg, &d->expm1f_consts); +- svfloat32_t y = svdiv_x (pg, q, svadd_x (pg, q, 2.0)); ++ svfloat32_t q = expm1f_inline (svmul_x (svptrue_b32 (), x, 2.0), pg, ++ &d->expm1f_consts); ++ + if (__glibc_unlikely (svptest_any (pg, special))) +- return special_case (x, svsel_f32 (is_boring, boring, y), special); ++ return special_case (x, pg, is_boring, boring, q, special); ++ svfloat32_t y = svdiv_x (pg, q, svadd_x (pg, q, 2.0)); + return svsel_f32 (is_boring, boring, y); + } diff --git a/glibc-RHEL-118273-26.patch b/glibc-RHEL-118273-26.patch new file mode 100644 index 0000000..8b238dc --- /dev/null +++ b/glibc-RHEL-118273-26.patch @@ -0,0 +1,125 @@ +commit d3f2b71ef1d146137a25dd1367d97a14fac341c6 +Author: Yury Khrustalev +Date: Tue Nov 26 11:38:30 2024 +0000 + + aarch64: Fix tests not compatible with targets supporting GCS + + - Add GCS marking to some of the tests when target supports GCS + - Fix tst-ro-dynamic-mod.map linker script to avoid removing + GNU properties + - Add header with macros for GNU properties + + Reviewed-by: Wilco Dijkstra + +diff --git a/elf/tst-asm-helper.h b/elf/tst-asm-helper.h +new file mode 100644 +index 0000000000000000..6f91ac2ddc54d3f9 +--- /dev/null ++++ b/elf/tst-asm-helper.h +@@ -0,0 +1,49 @@ ++/* Test header that defines macros for GNU properties that need to be ++ used in some test assembly files where sysdep.h cannot be included ++ for some reason. ++ Copyright (C) 2024-2025 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 ++ . */ ++ ++#include ++ ++/* GNU_PROPERTY_AARCH64_* macros from elf.h for use in asm code. */ ++#define FEATURE_1_AND 0xc0000000 ++#define FEATURE_1_BTI 1 ++#define FEATURE_1_PAC 2 ++#define FEATURE_1_GCS 4 ++ ++/* Add a NT_GNU_PROPERTY_TYPE_0 note. */ ++#define GNU_PROPERTY(type, value) \ ++ .section .note.gnu.property, "a"; \ ++ .p2align 3; \ ++ .word 4; \ ++ .word 16; \ ++ .word 5; \ ++ .asciz "GNU"; \ ++ .word type; \ ++ .word 4; \ ++ .word value; \ ++ .word 0; \ ++ .text ++ ++/* Add GNU property note with the supported features to all asm code ++ where sysdep.h is included. */ ++#if HAVE_AARCH64_BTI && HAVE_AARCH64_PAC_RET ++GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI|FEATURE_1_PAC|FEATURE_1_GCS) ++#elif HAVE_AARCH64_BTI ++GNU_PROPERTY (FEATURE_1_AND, FEATURE_1_BTI|FEATURE_1_GCS) ++#endif +diff --git a/elf/tst-big-note-lib.S b/elf/tst-big-note-lib.S +index 5eb1e03cfbe2cee8..cfd31137e85a1335 100644 +--- a/elf/tst-big-note-lib.S ++++ b/elf/tst-big-note-lib.S +@@ -20,6 +20,8 @@ + On a typical Linux system with 8MiB "ulimit -s", that was enough + to trigger stack overflow in open_verify. */ + ++#include "tst-asm-helper.h" ++ + #define NOTE_SIZE 8*1024*1024 + + .pushsection .note.big,"a" +diff --git a/elf/tst-ro-dynamic-mod.map b/elf/tst-ro-dynamic-mod.map +index 2fe4a2998cddd587..2a158480c07d9691 100644 +--- a/elf/tst-ro-dynamic-mod.map ++++ b/elf/tst-ro-dynamic-mod.map +@@ -3,14 +3,13 @@ SECTIONS + . = SIZEOF_HEADERS; + .dynamic : { *(.dynamic) } :text :dynamic + .rodata : { *(.data*) *(.bss*) } :text +- /DISCARD/ : { +- *(.note.gnu.property) +- } +- .note : { *(.note.*) } :text :note ++ .note : { *(.note) } :text :note ++ .note.gnu.property : { *(.note.gnu.property) } :text :gnu_property + } + PHDRS + { + text PT_LOAD FLAGS(5) FILEHDR PHDRS; + dynamic PT_DYNAMIC FLAGS(4); + note PT_NOTE FLAGS(4); ++ gnu_property PT_GNU_PROPERTY FLAGS(4); + } +diff --git a/sysdeps/aarch64/tst-vpcs-mod.S b/sysdeps/aarch64/tst-vpcs-mod.S +index 19b01c3c3859e13b..b3b5824eda1fb076 100644 +--- a/sysdeps/aarch64/tst-vpcs-mod.S ++++ b/sysdeps/aarch64/tst-vpcs-mod.S +@@ -17,6 +17,8 @@ + License along with the GNU C Library. If not, see + . */ + ++#include "tst-asm-helper.h" ++ + .variant_pcs vpcs_call + .global vpcs_call + .type vpcs_call, %function +@@ -121,7 +123,7 @@ vpcs_call_regs: + /* Emulate a BL using B, but save x30 before the branch. */ + adr x30, .L_return_addr + stp x30, x29, [x1, 240] +- b vpcs_call ++ bl vpcs_call + .L_return_addr: + + /* Restore callee-saved registers. */ diff --git a/glibc-RHEL-118273-27.patch b/glibc-RHEL-118273-27.patch new file mode 100644 index 0000000..8e8302d --- /dev/null +++ b/glibc-RHEL-118273-27.patch @@ -0,0 +1,241 @@ +commit 95e807209b680257a9afe81a507754f1565dbb4d +Author: Yat Long Poon +Date: Thu Feb 13 18:03:04 2025 +0000 + + AArch64: Improve codegen for SVE powf + + Improve memory access with indexed/unpredicated instructions. + Eliminate register spills. Speedup on Neoverse V1: 3%. + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/fpu/powf_sve.c b/sysdeps/aarch64/fpu/powf_sve.c +index 4f6a142325ae719b..08d7019a1855ff3c 100644 +--- a/sysdeps/aarch64/fpu/powf_sve.c ++++ b/sysdeps/aarch64/fpu/powf_sve.c +@@ -26,7 +26,6 @@ + #define Tlogc __v_powf_data.logc + #define Texp __v_powf_data.scale + #define SignBias (1 << (V_POWF_EXP2_TABLE_BITS + 11)) +-#define Shift 0x1.8p52 + #define Norm 0x1p23f /* 0x4b000000. */ + + /* Overall ULP error bound for pow is 2.6 ulp +@@ -36,7 +35,7 @@ static const struct data + double log_poly[4]; + double exp_poly[3]; + float uflow_bound, oflow_bound, small_bound; +- uint32_t sign_bias, sign_mask, subnormal_bias, off; ++ uint32_t sign_bias, subnormal_bias, off; + } data = { + /* rel err: 1.5 * 2^-30. Each coefficients is multiplied the value of + V_POWF_EXP2_N. */ +@@ -53,7 +52,6 @@ static const struct data + .small_bound = 0x1p-126f, + .off = 0x3f35d000, + .sign_bias = SignBias, +- .sign_mask = 0x80000000, + .subnormal_bias = 0x0b800000, /* 23 << 23. */ + }; + +@@ -86,7 +84,7 @@ svisodd (svbool_t pg, svfloat32_t x) + static inline svbool_t + sv_zeroinfnan (svbool_t pg, svuint32_t i) + { +- return svcmpge (pg, svsub_x (pg, svmul_x (pg, i, 2u), 1), ++ return svcmpge (pg, svsub_x (pg, svadd_x (pg, i, i), 1), + 2u * 0x7f800000 - 1); + } + +@@ -150,9 +148,14 @@ powf_specialcase (float x, float y, float z) + } + + /* Scalar fallback for special case routines with custom signature. */ +-static inline svfloat32_t +-sv_call_powf_sc (svfloat32_t x1, svfloat32_t x2, svfloat32_t y, svbool_t cmp) ++static svfloat32_t NOINLINE ++sv_call_powf_sc (svfloat32_t x1, svfloat32_t x2, svfloat32_t y) + { ++ /* Special cases of x or y: zero, inf and nan. */ ++ svbool_t xspecial = sv_zeroinfnan (svptrue_b32 (), svreinterpret_u32 (x1)); ++ svbool_t yspecial = sv_zeroinfnan (svptrue_b32 (), svreinterpret_u32 (x2)); ++ svbool_t cmp = svorr_z (svptrue_b32 (), xspecial, yspecial); ++ + svbool_t p = svpfirst (cmp, svpfalse ()); + while (svptest_any (cmp, p)) + { +@@ -182,30 +185,30 @@ sv_powf_core_ext (const svbool_t pg, svuint64_t i, svfloat64_t z, svint64_t k, + + /* Polynomial to approximate log1p(r)/ln2. */ + svfloat64_t logx = A (0); +- logx = svmla_x (pg, A (1), r, logx); +- logx = svmla_x (pg, A (2), r, logx); +- logx = svmla_x (pg, A (3), r, logx); +- logx = svmla_x (pg, y0, r, logx); ++ logx = svmad_x (pg, r, logx, A (1)); ++ logx = svmad_x (pg, r, logx, A (2)); ++ logx = svmad_x (pg, r, logx, A (3)); ++ logx = svmad_x (pg, r, logx, y0); + *pylogx = svmul_x (pg, y, logx); + + /* z - kd is in [-1, 1] in non-nearest rounding modes. */ +- svfloat64_t kd = svadd_x (pg, *pylogx, Shift); +- svuint64_t ki = svreinterpret_u64 (kd); +- kd = svsub_x (pg, kd, Shift); ++ svfloat64_t kd = svrinta_x (svptrue_b64 (), *pylogx); ++ svuint64_t ki = svreinterpret_u64 (svcvt_s64_x (svptrue_b64 (), kd)); + + r = svsub_x (pg, *pylogx, kd); + + /* exp2(x) = 2^(k/N) * 2^r ~= s * (C0*r^3 + C1*r^2 + C2*r + 1). */ +- svuint64_t t +- = svld1_gather_index (pg, Texp, svand_x (pg, ki, V_POWF_EXP2_N - 1)); +- svuint64_t ski = svadd_x (pg, ki, sign_bias); +- t = svadd_x (pg, t, svlsl_x (pg, ski, 52 - V_POWF_EXP2_TABLE_BITS)); ++ svuint64_t t = svld1_gather_index ( ++ svptrue_b64 (), Texp, svand_x (svptrue_b64 (), ki, V_POWF_EXP2_N - 1)); ++ svuint64_t ski = svadd_x (svptrue_b64 (), ki, sign_bias); ++ t = svadd_x (svptrue_b64 (), t, ++ svlsl_x (svptrue_b64 (), ski, 52 - V_POWF_EXP2_TABLE_BITS)); + svfloat64_t s = svreinterpret_f64 (t); + + svfloat64_t p = C (0); + p = svmla_x (pg, C (1), p, r); + p = svmla_x (pg, C (2), p, r); +- p = svmla_x (pg, s, p, svmul_x (pg, s, r)); ++ p = svmla_x (pg, s, p, svmul_x (svptrue_b64 (), s, r)); + + return p; + } +@@ -219,19 +222,16 @@ sv_powf_core (const svbool_t pg, svuint32_t i, svuint32_t iz, svint32_t k, + { + const svbool_t ptrue = svptrue_b64 (); + +- /* Unpack and promote input vectors (pg, y, z, i, k and sign_bias) into two in +- order to perform core computation in double precision. */ ++ /* Unpack and promote input vectors (pg, y, z, i, k and sign_bias) into two ++ * in order to perform core computation in double precision. */ + const svbool_t pg_lo = svunpklo (pg); + const svbool_t pg_hi = svunpkhi (pg); +- svfloat64_t y_lo = svcvt_f64_x ( +- ptrue, svreinterpret_f32 (svunpklo (svreinterpret_u32 (y)))); +- svfloat64_t y_hi = svcvt_f64_x ( +- ptrue, svreinterpret_f32 (svunpkhi (svreinterpret_u32 (y)))); +- svfloat32_t z = svreinterpret_f32 (iz); +- svfloat64_t z_lo = svcvt_f64_x ( +- ptrue, svreinterpret_f32 (svunpklo (svreinterpret_u32 (z)))); +- svfloat64_t z_hi = svcvt_f64_x ( +- ptrue, svreinterpret_f32 (svunpkhi (svreinterpret_u32 (z)))); ++ svfloat64_t y_lo ++ = svcvt_f64_x (pg, svreinterpret_f32 (svunpklo (svreinterpret_u32 (y)))); ++ svfloat64_t y_hi ++ = svcvt_f64_x (pg, svreinterpret_f32 (svunpkhi (svreinterpret_u32 (y)))); ++ svfloat64_t z_lo = svcvt_f64_x (pg, svreinterpret_f32 (svunpklo (iz))); ++ svfloat64_t z_hi = svcvt_f64_x (pg, svreinterpret_f32 (svunpkhi (iz))); + svuint64_t i_lo = svunpklo (i); + svuint64_t i_hi = svunpkhi (i); + svint64_t k_lo = svunpklo (k); +@@ -258,9 +258,9 @@ sv_powf_core (const svbool_t pg, svuint32_t i, svuint32_t iz, svint32_t k, + /* Implementation of SVE powf. + Provides the same accuracy as AdvSIMD powf, since it relies on the same + algorithm. The theoretical maximum error is under 2.60 ULPs. +- Maximum measured error is 2.56 ULPs: +- SV_NAME_F2 (pow) (0x1.004118p+0, 0x1.5d14a4p+16) got 0x1.fd4bp+127 +- want 0x1.fd4b06p+127. */ ++ Maximum measured error is 2.57 ULPs: ++ SV_NAME_F2 (pow) (0x1.031706p+0, 0x1.ce2ec2p+12) got 0x1.fff868p+127 ++ want 0x1.fff862p+127. */ + svfloat32_t SV_NAME_F2 (pow) (svfloat32_t x, svfloat32_t y, const svbool_t pg) + { + const struct data *d = ptr_barrier (&data); +@@ -269,21 +269,19 @@ svfloat32_t SV_NAME_F2 (pow) (svfloat32_t x, svfloat32_t y, const svbool_t pg) + svuint32_t viy0 = svreinterpret_u32 (y); + + /* Negative x cases. */ +- svuint32_t sign_bit = svand_m (pg, vix0, d->sign_mask); +- svbool_t xisneg = svcmpeq (pg, sign_bit, d->sign_mask); ++ svbool_t xisneg = svcmplt (pg, x, sv_f32 (0)); + + /* Set sign_bias and ix depending on sign of x and nature of y. */ +- svbool_t yisnotint_xisneg = svpfalse_b (); ++ svbool_t yint_or_xpos = pg; + svuint32_t sign_bias = sv_u32 (0); + svuint32_t vix = vix0; + if (__glibc_unlikely (svptest_any (pg, xisneg))) + { + /* Determine nature of y. */ +- yisnotint_xisneg = svisnotint (xisneg, y); +- svbool_t yisint_xisneg = svisint (xisneg, y); ++ yint_or_xpos = svisint (xisneg, y); + svbool_t yisodd_xisneg = svisodd (xisneg, y); + /* ix set to abs(ix) if y is integer. */ +- vix = svand_m (yisint_xisneg, vix0, 0x7fffffff); ++ vix = svand_m (yint_or_xpos, vix0, 0x7fffffff); + /* Set to SignBias if x is negative and y is odd. */ + sign_bias = svsel (yisodd_xisneg, sv_u32 (d->sign_bias), sv_u32 (0)); + } +@@ -294,8 +292,8 @@ svfloat32_t SV_NAME_F2 (pow) (svfloat32_t x, svfloat32_t y, const svbool_t pg) + svbool_t cmp = svorr_z (pg, xspecial, yspecial); + + /* Small cases of x: |x| < 0x1p-126. */ +- svbool_t xsmall = svaclt (pg, x, d->small_bound); +- if (__glibc_unlikely (svptest_any (pg, xsmall))) ++ svbool_t xsmall = svaclt (yint_or_xpos, x, d->small_bound); ++ if (__glibc_unlikely (svptest_any (yint_or_xpos, xsmall))) + { + /* Normalize subnormal x so exponent becomes negative. */ + svuint32_t vix_norm = svreinterpret_u32 (svmul_x (xsmall, x, Norm)); +@@ -304,32 +302,35 @@ svfloat32_t SV_NAME_F2 (pow) (svfloat32_t x, svfloat32_t y, const svbool_t pg) + vix = svsel (xsmall, vix_norm, vix); + } + /* Part of core computation carried in working precision. */ +- svuint32_t tmp = svsub_x (pg, vix, d->off); +- svuint32_t i = svand_x (pg, svlsr_x (pg, tmp, (23 - V_POWF_LOG2_TABLE_BITS)), +- V_POWF_LOG2_N - 1); +- svuint32_t top = svand_x (pg, tmp, 0xff800000); +- svuint32_t iz = svsub_x (pg, vix, top); +- svint32_t k +- = svasr_x (pg, svreinterpret_s32 (top), (23 - V_POWF_EXP2_TABLE_BITS)); +- +- /* Compute core in extended precision and return intermediate ylogx results to +- handle cases of underflow and underflow in exp. */ ++ svuint32_t tmp = svsub_x (yint_or_xpos, vix, d->off); ++ svuint32_t i = svand_x ( ++ yint_or_xpos, svlsr_x (yint_or_xpos, tmp, (23 - V_POWF_LOG2_TABLE_BITS)), ++ V_POWF_LOG2_N - 1); ++ svuint32_t top = svand_x (yint_or_xpos, tmp, 0xff800000); ++ svuint32_t iz = svsub_x (yint_or_xpos, vix, top); ++ svint32_t k = svasr_x (yint_or_xpos, svreinterpret_s32 (top), ++ (23 - V_POWF_EXP2_TABLE_BITS)); ++ ++ /* Compute core in extended precision and return intermediate ylogx results ++ * to handle cases of underflow and underflow in exp. */ + svfloat32_t ylogx; +- svfloat32_t ret = sv_powf_core (pg, i, iz, k, y, sign_bias, &ylogx, d); ++ svfloat32_t ret ++ = sv_powf_core (yint_or_xpos, i, iz, k, y, sign_bias, &ylogx, d); + + /* Handle exp special cases of underflow and overflow. */ +- svuint32_t sign = svlsl_x (pg, sign_bias, 20 - V_POWF_EXP2_TABLE_BITS); ++ svuint32_t sign ++ = svlsl_x (yint_or_xpos, sign_bias, 20 - V_POWF_EXP2_TABLE_BITS); + svfloat32_t ret_oflow +- = svreinterpret_f32 (svorr_x (pg, sign, asuint (INFINITY))); ++ = svreinterpret_f32 (svorr_x (yint_or_xpos, sign, asuint (INFINITY))); + svfloat32_t ret_uflow = svreinterpret_f32 (sign); +- ret = svsel (svcmple (pg, ylogx, d->uflow_bound), ret_uflow, ret); +- ret = svsel (svcmpgt (pg, ylogx, d->oflow_bound), ret_oflow, ret); ++ ret = svsel (svcmple (yint_or_xpos, ylogx, d->uflow_bound), ret_uflow, ret); ++ ret = svsel (svcmpgt (yint_or_xpos, ylogx, d->oflow_bound), ret_oflow, ret); + + /* Cases of finite y and finite negative x. */ +- ret = svsel (yisnotint_xisneg, sv_f32 (__builtin_nanf ("")), ret); ++ ret = svsel (yint_or_xpos, ret, sv_f32 (__builtin_nanf (""))); + +- if (__glibc_unlikely (svptest_any (pg, cmp))) +- return sv_call_powf_sc (x, y, ret, cmp); ++ if (__glibc_unlikely (svptest_any (cmp, cmp))) ++ return sv_call_powf_sc (x, y, ret); + + return ret; + } diff --git a/glibc-RHEL-118273-28.patch b/glibc-RHEL-118273-28.patch new file mode 100644 index 0000000..886ca71 --- /dev/null +++ b/glibc-RHEL-118273-28.patch @@ -0,0 +1,401 @@ +commit 0b195651db3ae793187c7dd6d78b5a7a8da9d5e6 +Author: Yat Long Poon +Date: Thu Feb 13 18:02:01 2025 +0000 + + AArch64: Improve codegen for SVE pow + + Move constants to struct. Improve memory access with indexed/unpredicated + instructions. Eliminate register spills. Speedup on Neoverse V1: 24%. + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/fpu/pow_sve.c b/sysdeps/aarch64/fpu/pow_sve.c +index 4c0bf8956c584be7..4242d22a491ed17e 100644 +--- a/sysdeps/aarch64/fpu/pow_sve.c ++++ b/sysdeps/aarch64/fpu/pow_sve.c +@@ -44,19 +44,18 @@ + + /* Data is defined in v_pow_log_data.c. */ + #define N_LOG (1 << V_POW_LOG_TABLE_BITS) +-#define A __v_pow_log_data.poly + #define Off 0x3fe6955500000000 + + /* Data is defined in v_pow_exp_data.c. */ + #define N_EXP (1 << V_POW_EXP_TABLE_BITS) + #define SignBias (0x800 << V_POW_EXP_TABLE_BITS) +-#define C __v_pow_exp_data.poly + #define SmallExp 0x3c9 /* top12(0x1p-54). */ + #define BigExp 0x408 /* top12(512.). */ + #define ThresExp 0x03f /* BigExp - SmallExp. */ + #define HugeExp 0x409 /* top12(1024.). */ + + /* Constants associated with pow. */ ++#define SmallBoundX 0x1p-126 + #define SmallPowX 0x001 /* top12(0x1p-126). */ + #define BigPowX 0x7ff /* top12(INFINITY). */ + #define ThresPowX 0x7fe /* BigPowX - SmallPowX. */ +@@ -64,6 +63,31 @@ + #define BigPowY 0x43e /* top12(0x1.749p62). */ + #define ThresPowY 0x080 /* BigPowY - SmallPowY. */ + ++static const struct data ++{ ++ double log_c0, log_c2, log_c4, log_c6, ln2_hi, ln2_lo; ++ double log_c1, log_c3, log_c5, off; ++ double n_over_ln2, exp_c2, ln2_over_n_hi, ln2_over_n_lo; ++ double exp_c0, exp_c1; ++} data = { ++ .log_c0 = -0x1p-1, ++ .log_c1 = -0x1.555555555556p-1, ++ .log_c2 = 0x1.0000000000006p-1, ++ .log_c3 = 0x1.999999959554ep-1, ++ .log_c4 = -0x1.555555529a47ap-1, ++ .log_c5 = -0x1.2495b9b4845e9p0, ++ .log_c6 = 0x1.0002b8b263fc3p0, ++ .off = Off, ++ .exp_c0 = 0x1.fffffffffffd4p-2, ++ .exp_c1 = 0x1.5555571d6ef9p-3, ++ .exp_c2 = 0x1.5555576a5adcep-5, ++ .ln2_hi = 0x1.62e42fefa3800p-1, ++ .ln2_lo = 0x1.ef35793c76730p-45, ++ .n_over_ln2 = 0x1.71547652b82fep0 * N_EXP, ++ .ln2_over_n_hi = 0x1.62e42fefc0000p-9, ++ .ln2_over_n_lo = -0x1.c610ca86c3899p-45, ++}; ++ + /* Check if x is an integer. */ + static inline svbool_t + sv_isint (svbool_t pg, svfloat64_t x) +@@ -82,7 +106,7 @@ sv_isnotint (svbool_t pg, svfloat64_t x) + static inline svbool_t + sv_isodd (svbool_t pg, svfloat64_t x) + { +- svfloat64_t y = svmul_x (pg, x, 0.5); ++ svfloat64_t y = svmul_x (svptrue_b64 (), x, 0.5); + return sv_isnotint (pg, y); + } + +@@ -121,7 +145,7 @@ zeroinfnan (uint64_t i) + static inline svbool_t + sv_zeroinfnan (svbool_t pg, svuint64_t i) + { +- return svcmpge (pg, svsub_x (pg, svmul_x (pg, i, 2), 1), ++ return svcmpge (pg, svsub_x (pg, svadd_x (pg, i, i), 1), + 2 * asuint64 (INFINITY) - 1); + } + +@@ -174,16 +198,17 @@ sv_call_specialcase (svfloat64_t x1, svuint64_t u1, svuint64_t u2, + additional 15 bits precision. IX is the bit representation of x, but + normalized in the subnormal range using the sign bit for the exponent. */ + static inline svfloat64_t +-sv_log_inline (svbool_t pg, svuint64_t ix, svfloat64_t *tail) ++sv_log_inline (svbool_t pg, svuint64_t ix, svfloat64_t *tail, ++ const struct data *d) + { + /* x = 2^k z; where z is in range [Off,2*Off) and exact. + The range is split into N subintervals. + The ith subinterval contains z and c is near its center. */ +- svuint64_t tmp = svsub_x (pg, ix, Off); ++ svuint64_t tmp = svsub_x (pg, ix, d->off); + svuint64_t i = svand_x (pg, svlsr_x (pg, tmp, 52 - V_POW_LOG_TABLE_BITS), + sv_u64 (N_LOG - 1)); + svint64_t k = svasr_x (pg, svreinterpret_s64 (tmp), 52); +- svuint64_t iz = svsub_x (pg, ix, svand_x (pg, tmp, sv_u64 (0xfffULL << 52))); ++ svuint64_t iz = svsub_x (pg, ix, svlsl_x (pg, svreinterpret_u64 (k), 52)); + svfloat64_t z = svreinterpret_f64 (iz); + svfloat64_t kd = svcvt_f64_x (pg, k); + +@@ -199,40 +224,85 @@ sv_log_inline (svbool_t pg, svuint64_t ix, svfloat64_t *tail) + |z/c - 1| < 1/N, so r = z/c - 1 is exactly representible. */ + svfloat64_t r = svmad_x (pg, z, invc, -1.0); + /* k*Ln2 + log(c) + r. */ +- svfloat64_t t1 = svmla_x (pg, logc, kd, __v_pow_log_data.ln2_hi); ++ ++ svfloat64_t ln2_hilo = svld1rq_f64 (svptrue_b64 (), &d->ln2_hi); ++ svfloat64_t t1 = svmla_lane_f64 (logc, kd, ln2_hilo, 0); + svfloat64_t t2 = svadd_x (pg, t1, r); +- svfloat64_t lo1 = svmla_x (pg, logctail, kd, __v_pow_log_data.ln2_lo); ++ svfloat64_t lo1 = svmla_lane_f64 (logctail, kd, ln2_hilo, 1); + svfloat64_t lo2 = svadd_x (pg, svsub_x (pg, t1, t2), r); + + /* Evaluation is optimized assuming superscalar pipelined execution. */ +- svfloat64_t ar = svmul_x (pg, r, -0.5); /* A[0] = -0.5. */ +- svfloat64_t ar2 = svmul_x (pg, r, ar); +- svfloat64_t ar3 = svmul_x (pg, r, ar2); ++ ++ svfloat64_t log_c02 = svld1rq_f64 (svptrue_b64 (), &d->log_c0); ++ svfloat64_t ar = svmul_lane_f64 (r, log_c02, 0); ++ svfloat64_t ar2 = svmul_x (svptrue_b64 (), r, ar); ++ svfloat64_t ar3 = svmul_x (svptrue_b64 (), r, ar2); + /* k*Ln2 + log(c) + r + A[0]*r*r. */ + svfloat64_t hi = svadd_x (pg, t2, ar2); +- svfloat64_t lo3 = svmla_x (pg, svneg_x (pg, ar2), ar, r); ++ svfloat64_t lo3 = svmls_x (pg, ar2, ar, r); + svfloat64_t lo4 = svadd_x (pg, svsub_x (pg, t2, hi), ar2); + /* p = log1p(r) - r - A[0]*r*r. */ + /* p = (ar3 * (A[1] + r * A[2] + ar2 * (A[3] + r * A[4] + ar2 * (A[5] + r * + A[6])))). */ +- svfloat64_t a56 = svmla_x (pg, sv_f64 (A[5]), r, A[6]); +- svfloat64_t a34 = svmla_x (pg, sv_f64 (A[3]), r, A[4]); +- svfloat64_t a12 = svmla_x (pg, sv_f64 (A[1]), r, A[2]); ++ ++ svfloat64_t log_c46 = svld1rq_f64 (svptrue_b64 (), &d->log_c4); ++ svfloat64_t a56 = svmla_lane_f64 (sv_f64 (d->log_c5), r, log_c46, 1); ++ svfloat64_t a34 = svmla_lane_f64 (sv_f64 (d->log_c3), r, log_c46, 0); ++ svfloat64_t a12 = svmla_lane_f64 (sv_f64 (d->log_c1), r, log_c02, 1); + svfloat64_t p = svmla_x (pg, a34, ar2, a56); + p = svmla_x (pg, a12, ar2, p); +- p = svmul_x (pg, ar3, p); ++ p = svmul_x (svptrue_b64 (), ar3, p); + svfloat64_t lo = svadd_x ( +- pg, svadd_x (pg, svadd_x (pg, svadd_x (pg, lo1, lo2), lo3), lo4), p); ++ pg, svadd_x (pg, svsub_x (pg, svadd_x (pg, lo1, lo2), lo3), lo4), p); + svfloat64_t y = svadd_x (pg, hi, lo); + *tail = svadd_x (pg, svsub_x (pg, hi, y), lo); + return y; + } + ++static inline svfloat64_t ++sv_exp_core (svbool_t pg, svfloat64_t x, svfloat64_t xtail, ++ svuint64_t sign_bias, svfloat64_t *tmp, svuint64_t *sbits, ++ svuint64_t *ki, const struct data *d) ++{ ++ /* exp(x) = 2^(k/N) * exp(r), with exp(r) in [2^(-1/2N),2^(1/2N)]. */ ++ /* x = ln2/N*k + r, with int k and r in [-ln2/2N, ln2/2N]. */ ++ svfloat64_t n_over_ln2_and_c2 = svld1rq_f64 (svptrue_b64 (), &d->n_over_ln2); ++ svfloat64_t z = svmul_lane_f64 (x, n_over_ln2_and_c2, 0); ++ /* z - kd is in [-1, 1] in non-nearest rounding modes. */ ++ svfloat64_t kd = svrinta_x (pg, z); ++ *ki = svreinterpret_u64 (svcvt_s64_x (pg, kd)); ++ ++ svfloat64_t ln2_over_n_hilo ++ = svld1rq_f64 (svptrue_b64 (), &d->ln2_over_n_hi); ++ svfloat64_t r = x; ++ r = svmls_lane_f64 (r, kd, ln2_over_n_hilo, 0); ++ r = svmls_lane_f64 (r, kd, ln2_over_n_hilo, 1); ++ /* The code assumes 2^-200 < |xtail| < 2^-8/N. */ ++ r = svadd_x (pg, r, xtail); ++ /* 2^(k/N) ~= scale. */ ++ svuint64_t idx = svand_x (pg, *ki, N_EXP - 1); ++ svuint64_t top ++ = svlsl_x (pg, svadd_x (pg, *ki, sign_bias), 52 - V_POW_EXP_TABLE_BITS); ++ /* This is only a valid scale when -1023*N < k < 1024*N. */ ++ *sbits = svld1_gather_index (pg, __v_pow_exp_data.sbits, idx); ++ *sbits = svadd_x (pg, *sbits, top); ++ /* exp(x) = 2^(k/N) * exp(r) ~= scale + scale * (exp(r) - 1). */ ++ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r); ++ *tmp = svmla_lane_f64 (sv_f64 (d->exp_c1), r, n_over_ln2_and_c2, 1); ++ *tmp = svmla_x (pg, sv_f64 (d->exp_c0), r, *tmp); ++ *tmp = svmla_x (pg, r, r2, *tmp); ++ svfloat64_t scale = svreinterpret_f64 (*sbits); ++ /* Note: tmp == 0 or |tmp| > 2^-200 and scale > 2^-739, so there ++ is no spurious underflow here even without fma. */ ++ z = svmla_x (pg, scale, scale, *tmp); ++ return z; ++} ++ + /* Computes sign*exp(x+xtail) where |xtail| < 2^-8/N and |xtail| <= |x|. + The sign_bias argument is SignBias or 0 and sets the sign to -1 or 1. */ + static inline svfloat64_t + sv_exp_inline (svbool_t pg, svfloat64_t x, svfloat64_t xtail, +- svuint64_t sign_bias) ++ svuint64_t sign_bias, const struct data *d) + { + /* 3 types of special cases: tiny (uflow and spurious uflow), huge (oflow) + and other cases of large values of x (scale * (1 + TMP) oflow). */ +@@ -240,73 +310,46 @@ sv_exp_inline (svbool_t pg, svfloat64_t x, svfloat64_t xtail, + /* |x| is large (|x| >= 512) or tiny (|x| <= 0x1p-54). */ + svbool_t uoflow = svcmpge (pg, svsub_x (pg, abstop, SmallExp), ThresExp); + +- /* Conditions special, uflow and oflow are all expressed as uoflow && +- something, hence do not bother computing anything if no lane in uoflow is +- true. */ +- svbool_t special = svpfalse_b (); +- svbool_t uflow = svpfalse_b (); +- svbool_t oflow = svpfalse_b (); ++ svfloat64_t tmp; ++ svuint64_t sbits, ki; + if (__glibc_unlikely (svptest_any (pg, uoflow))) + { ++ svfloat64_t z ++ = sv_exp_core (pg, x, xtail, sign_bias, &tmp, &sbits, &ki, d); ++ + /* |x| is tiny (|x| <= 0x1p-54). */ +- uflow = svcmpge (pg, svsub_x (pg, abstop, SmallExp), 0x80000000); ++ svbool_t uflow ++ = svcmpge (pg, svsub_x (pg, abstop, SmallExp), 0x80000000); + uflow = svand_z (pg, uoflow, uflow); + /* |x| is huge (|x| >= 1024). */ +- oflow = svcmpge (pg, abstop, HugeExp); ++ svbool_t oflow = svcmpge (pg, abstop, HugeExp); + oflow = svand_z (pg, uoflow, svbic_z (pg, oflow, uflow)); ++ + /* For large |x| values (512 < |x| < 1024) scale * (1 + TMP) can overflow +- or underflow. */ +- special = svbic_z (pg, uoflow, svorr_z (pg, uflow, oflow)); ++ or underflow. */ ++ svbool_t special = svbic_z (pg, uoflow, svorr_z (pg, uflow, oflow)); ++ ++ /* Update result with special and large cases. */ ++ z = sv_call_specialcase (tmp, sbits, ki, z, special); ++ ++ /* Handle underflow and overflow. */ ++ svbool_t x_is_neg = svcmplt (pg, x, 0); ++ svuint64_t sign_mask ++ = svlsl_x (pg, sign_bias, 52 - V_POW_EXP_TABLE_BITS); ++ svfloat64_t res_uoflow ++ = svsel (x_is_neg, sv_f64 (0.0), sv_f64 (INFINITY)); ++ res_uoflow = svreinterpret_f64 ( ++ svorr_x (pg, svreinterpret_u64 (res_uoflow), sign_mask)); ++ /* Avoid spurious underflow for tiny x. */ ++ svfloat64_t res_spurious_uflow ++ = svreinterpret_f64 (svorr_x (pg, sign_mask, 0x3ff0000000000000)); ++ ++ z = svsel (oflow, res_uoflow, z); ++ z = svsel (uflow, res_spurious_uflow, z); ++ return z; + } + +- /* exp(x) = 2^(k/N) * exp(r), with exp(r) in [2^(-1/2N),2^(1/2N)]. */ +- /* x = ln2/N*k + r, with int k and r in [-ln2/2N, ln2/2N]. */ +- svfloat64_t z = svmul_x (pg, x, __v_pow_exp_data.n_over_ln2); +- /* z - kd is in [-1, 1] in non-nearest rounding modes. */ +- svfloat64_t shift = sv_f64 (__v_pow_exp_data.shift); +- svfloat64_t kd = svadd_x (pg, z, shift); +- svuint64_t ki = svreinterpret_u64 (kd); +- kd = svsub_x (pg, kd, shift); +- svfloat64_t r = x; +- r = svmls_x (pg, r, kd, __v_pow_exp_data.ln2_over_n_hi); +- r = svmls_x (pg, r, kd, __v_pow_exp_data.ln2_over_n_lo); +- /* The code assumes 2^-200 < |xtail| < 2^-8/N. */ +- r = svadd_x (pg, r, xtail); +- /* 2^(k/N) ~= scale. */ +- svuint64_t idx = svand_x (pg, ki, N_EXP - 1); +- svuint64_t top +- = svlsl_x (pg, svadd_x (pg, ki, sign_bias), 52 - V_POW_EXP_TABLE_BITS); +- /* This is only a valid scale when -1023*N < k < 1024*N. */ +- svuint64_t sbits = svld1_gather_index (pg, __v_pow_exp_data.sbits, idx); +- sbits = svadd_x (pg, sbits, top); +- /* exp(x) = 2^(k/N) * exp(r) ~= scale + scale * (exp(r) - 1). */ +- svfloat64_t r2 = svmul_x (pg, r, r); +- svfloat64_t tmp = svmla_x (pg, sv_f64 (C[1]), r, C[2]); +- tmp = svmla_x (pg, sv_f64 (C[0]), r, tmp); +- tmp = svmla_x (pg, r, r2, tmp); +- svfloat64_t scale = svreinterpret_f64 (sbits); +- /* Note: tmp == 0 or |tmp| > 2^-200 and scale > 2^-739, so there +- is no spurious underflow here even without fma. */ +- z = svmla_x (pg, scale, scale, tmp); +- +- /* Update result with special and large cases. */ +- if (__glibc_unlikely (svptest_any (pg, special))) +- z = sv_call_specialcase (tmp, sbits, ki, z, special); +- +- /* Handle underflow and overflow. */ +- svuint64_t sign_bit = svlsr_x (pg, svreinterpret_u64 (x), 63); +- svbool_t x_is_neg = svcmpne (pg, sign_bit, 0); +- svuint64_t sign_mask = svlsl_x (pg, sign_bias, 52 - V_POW_EXP_TABLE_BITS); +- svfloat64_t res_uoflow = svsel (x_is_neg, sv_f64 (0.0), sv_f64 (INFINITY)); +- res_uoflow = svreinterpret_f64 ( +- svorr_x (pg, svreinterpret_u64 (res_uoflow), sign_mask)); +- z = svsel (oflow, res_uoflow, z); +- /* Avoid spurious underflow for tiny x. */ +- svfloat64_t res_spurious_uflow +- = svreinterpret_f64 (svorr_x (pg, sign_mask, 0x3ff0000000000000)); +- z = svsel (uflow, res_spurious_uflow, z); +- +- return z; ++ return sv_exp_core (pg, x, xtail, sign_bias, &tmp, &sbits, &ki, d); + } + + static inline double +@@ -341,47 +384,39 @@ pow_sc (double x, double y) + + svfloat64_t SV_NAME_D2 (pow) (svfloat64_t x, svfloat64_t y, const svbool_t pg) + { ++ const struct data *d = ptr_barrier (&data); ++ + /* This preamble handles special case conditions used in the final scalar + fallbacks. It also updates ix and sign_bias, that are used in the core + computation too, i.e., exp( y * log (x) ). */ + svuint64_t vix0 = svreinterpret_u64 (x); + svuint64_t viy0 = svreinterpret_u64 (y); +- svuint64_t vtopx0 = svlsr_x (svptrue_b64 (), vix0, 52); + + /* Negative x cases. */ +- svuint64_t sign_bit = svlsr_m (pg, vix0, 63); +- svbool_t xisneg = svcmpeq (pg, sign_bit, 1); ++ svbool_t xisneg = svcmplt (pg, x, 0); + + /* Set sign_bias and ix depending on sign of x and nature of y. */ +- svbool_t yisnotint_xisneg = svpfalse_b (); ++ svbool_t yint_or_xpos = pg; + svuint64_t sign_bias = sv_u64 (0); + svuint64_t vix = vix0; +- svuint64_t vtopx1 = vtopx0; + if (__glibc_unlikely (svptest_any (pg, xisneg))) + { + /* Determine nature of y. */ +- yisnotint_xisneg = sv_isnotint (xisneg, y); +- svbool_t yisint_xisneg = sv_isint (xisneg, y); ++ yint_or_xpos = sv_isint (xisneg, y); + svbool_t yisodd_xisneg = sv_isodd (xisneg, y); + /* ix set to abs(ix) if y is integer. */ +- vix = svand_m (yisint_xisneg, vix0, 0x7fffffffffffffff); +- vtopx1 = svand_m (yisint_xisneg, vtopx0, 0x7ff); ++ vix = svand_m (yint_or_xpos, vix0, 0x7fffffffffffffff); + /* Set to SignBias if x is negative and y is odd. */ + sign_bias = svsel (yisodd_xisneg, sv_u64 (SignBias), sv_u64 (0)); + } + +- /* Special cases of x or y: zero, inf and nan. */ +- svbool_t xspecial = sv_zeroinfnan (pg, vix0); +- svbool_t yspecial = sv_zeroinfnan (pg, viy0); +- svbool_t special = svorr_z (pg, xspecial, yspecial); +- + /* Small cases of x: |x| < 0x1p-126. */ +- svuint64_t vabstopx0 = svand_x (pg, vtopx0, 0x7ff); +- svbool_t xsmall = svcmplt (pg, vabstopx0, SmallPowX); +- if (__glibc_unlikely (svptest_any (pg, xsmall))) ++ svbool_t xsmall = svaclt (yint_or_xpos, x, SmallBoundX); ++ if (__glibc_unlikely (svptest_any (yint_or_xpos, xsmall))) + { + /* Normalize subnormal x so exponent becomes negative. */ +- svbool_t topx_is_null = svcmpeq (xsmall, vtopx1, 0); ++ svuint64_t vtopx = svlsr_x (svptrue_b64 (), vix, 52); ++ svbool_t topx_is_null = svcmpeq (xsmall, vtopx, 0); + + svuint64_t vix_norm = svreinterpret_u64 (svmul_m (xsmall, x, 0x1p52)); + vix_norm = svand_m (xsmall, vix_norm, 0x7fffffffffffffff); +@@ -391,20 +426,24 @@ svfloat64_t SV_NAME_D2 (pow) (svfloat64_t x, svfloat64_t y, const svbool_t pg) + + /* y_hi = log(ix, &y_lo). */ + svfloat64_t vlo; +- svfloat64_t vhi = sv_log_inline (pg, vix, &vlo); ++ svfloat64_t vhi = sv_log_inline (yint_or_xpos, vix, &vlo, d); + + /* z = exp(y_hi, y_lo, sign_bias). */ +- svfloat64_t vehi = svmul_x (pg, y, vhi); +- svfloat64_t velo = svmul_x (pg, y, vlo); +- svfloat64_t vemi = svmls_x (pg, vehi, y, vhi); +- velo = svsub_x (pg, velo, vemi); +- svfloat64_t vz = sv_exp_inline (pg, vehi, velo, sign_bias); ++ svfloat64_t vehi = svmul_x (svptrue_b64 (), y, vhi); ++ svfloat64_t vemi = svmls_x (yint_or_xpos, vehi, y, vhi); ++ svfloat64_t velo = svnmls_x (yint_or_xpos, vemi, y, vlo); ++ svfloat64_t vz = sv_exp_inline (yint_or_xpos, vehi, velo, sign_bias, d); + + /* Cases of finite y and finite negative x. */ +- vz = svsel (yisnotint_xisneg, sv_f64 (__builtin_nan ("")), vz); ++ vz = svsel (yint_or_xpos, vz, sv_f64 (__builtin_nan (""))); ++ ++ /* Special cases of x or y: zero, inf and nan. */ ++ svbool_t xspecial = sv_zeroinfnan (svptrue_b64 (), vix0); ++ svbool_t yspecial = sv_zeroinfnan (svptrue_b64 (), viy0); ++ svbool_t special = svorr_z (svptrue_b64 (), xspecial, yspecial); + + /* Cases of zero/inf/nan x or y. */ +- if (__glibc_unlikely (svptest_any (pg, special))) ++ if (__glibc_unlikely (svptest_any (svptrue_b64 (), special))) + vz = sv_call2_f64 (pow_sc, x, y, vz, special); + + return vz; diff --git a/glibc-RHEL-118273-29.patch b/glibc-RHEL-118273-29.patch new file mode 100644 index 0000000..7ac05a2 --- /dev/null +++ b/glibc-RHEL-118273-29.patch @@ -0,0 +1,45 @@ +commit f5ff34cb3c75ec1061c75bb9188b3c1176426947 +Author: Yat Long Poon +Date: Thu Feb 13 18:00:50 2025 +0000 + + AArch64: Improve codegen for SVE erfcf + + Reduce number of MOV/MOVPRFXs and use unpredicated FMUL. + Replace MUL with LSL. Speedup on Neoverse V1: 6%. + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/fpu/erfcf_sve.c b/sysdeps/aarch64/fpu/erfcf_sve.c +index ecacb933aca40855..e4869263e31e18bc 100644 +--- a/sysdeps/aarch64/fpu/erfcf_sve.c ++++ b/sysdeps/aarch64/fpu/erfcf_sve.c +@@ -76,7 +76,7 @@ svfloat32_t SV_NAME_F1 (erfc) (svfloat32_t x, const svbool_t pg) + svuint32_t i = svqadd (svreinterpret_u32 (z), dat->off_idx); + + /* Lookup erfc(r) and 2/sqrt(pi)*exp(-r^2) in tables. */ +- i = svmul_x (pg, i, 2); ++ i = svlsl_x (svptrue_b32 (), i, 1); + const float32_t *p = &__v_erfcf_data.tab[0].erfc - 2 * dat->off_arr; + svfloat32_t erfcr = svld1_gather_index (pg, p, i); + svfloat32_t scale = svld1_gather_index (pg, p + 1, i); +@@ -84,15 +84,15 @@ svfloat32_t SV_NAME_F1 (erfc) (svfloat32_t x, const svbool_t pg) + /* erfc(x) ~ erfc(r) - scale * d * poly(r, d). */ + svfloat32_t r = svsub_x (pg, z, shift); + svfloat32_t d = svsub_x (pg, a, r); +- svfloat32_t d2 = svmul_x (pg, d, d); +- svfloat32_t r2 = svmul_x (pg, r, r); ++ svfloat32_t d2 = svmul_x (svptrue_b32 (), d, d); ++ svfloat32_t r2 = svmul_x (svptrue_b32 (), r, r); + + svfloat32_t coeffs = svld1rq (svptrue_b32 (), &dat->third); +- svfloat32_t third = svdup_lane (coeffs, 0); + + svfloat32_t p1 = r; +- svfloat32_t p2 = svmls_lane (third, r2, coeffs, 1); +- svfloat32_t p3 = svmul_x (pg, r, svmla_lane (sv_f32 (-0.5), r2, coeffs, 0)); ++ svfloat32_t p2 = svmls_lane (sv_f32 (dat->third), r2, coeffs, 1); ++ svfloat32_t p3 ++ = svmul_x (svptrue_b32 (), r, svmla_lane (sv_f32 (-0.5), r2, coeffs, 0)); + svfloat32_t p4 = svmla_lane (sv_f32 (dat->two_over_five), r2, coeffs, 2); + p4 = svmls_x (pg, sv_f32 (dat->tenth), r2, p4); + diff --git a/glibc-RHEL-118273-3.patch b/glibc-RHEL-118273-3.patch new file mode 100644 index 0000000..e919cfa --- /dev/null +++ b/glibc-RHEL-118273-3.patch @@ -0,0 +1,873 @@ +commit b09fee1d21650428a6a3335408a46ebe1165d30d +Author: Joe Ramsay +Date: Tue Feb 20 16:59:40 2024 +0000 + + aarch64/fpu: Add vector variants of acosh + + Reviewed-by: Szabolcs Nagy + +diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile +index 019c3a51880e2306..2e5bbb5a07f4c9b0 100644 +--- a/sysdeps/aarch64/fpu/Makefile ++++ b/sysdeps/aarch64/fpu/Makefile +@@ -1,4 +1,5 @@ + libmvec-supported-funcs = acos \ ++ acosh \ + asin \ + atan \ + atan2 \ +diff --git a/sysdeps/aarch64/fpu/Versions b/sysdeps/aarch64/fpu/Versions +index 884b4b57f097635f..60e1cdeacec3f77e 100644 +--- a/sysdeps/aarch64/fpu/Versions ++++ b/sysdeps/aarch64/fpu/Versions +@@ -79,6 +79,11 @@ libmvec { + _ZGVsMxv_tan; + } + GLIBC_2.40 { ++ _ZGVnN2v_acosh; ++ _ZGVnN2v_acoshf; ++ _ZGVnN4v_acoshf; ++ _ZGVsMxv_acosh; ++ _ZGVsMxv_acoshf; + _ZGVnN2v_cosh; + _ZGVnN2v_coshf; + _ZGVnN4v_coshf; +diff --git a/sysdeps/aarch64/fpu/acosh_advsimd.c b/sysdeps/aarch64/fpu/acosh_advsimd.c +new file mode 100644 +index 0000000000000000..c88283cf1191f4eb +--- /dev/null ++++ b/sysdeps/aarch64/fpu/acosh_advsimd.c +@@ -0,0 +1,67 @@ ++/* Double-precision vector (Advanced SIMD) acosh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#define WANT_V_LOG1P_K0_SHORTCUT 1 ++#include "v_log1p_inline.h" ++ ++const static struct data ++{ ++ struct v_log1p_data log1p_consts; ++ uint64x2_t one, thresh; ++} data = { ++ .log1p_consts = V_LOG1P_CONSTANTS_TABLE, ++ .one = V2 (0x3ff0000000000000), ++ .thresh = V2 (0x1ff0000000000000) /* asuint64(0x1p511) - asuint64(1). */ ++}; ++ ++static float64x2_t NOINLINE VPCS_ATTR ++special_case (float64x2_t x, float64x2_t y, uint64x2_t special, ++ const struct v_log1p_data *d) ++{ ++ return v_call_f64 (acosh, x, log1p_inline (y, d), special); ++} ++ ++/* Vector approximation for double-precision acosh, based on log1p. ++ The largest observed error is 3.02 ULP in the region where the ++ argument to log1p falls in the k=0 interval, i.e. x close to 1: ++ _ZGVnN2v_acosh(0x1.00798aaf80739p+0) got 0x1.f2d6d823bc9dfp-5 ++ want 0x1.f2d6d823bc9e2p-5. */ ++VPCS_ATTR float64x2_t V_NAME_D1 (acosh) (float64x2_t x) ++{ ++ const struct data *d = ptr_barrier (&data); ++ uint64x2_t special ++ = vcgeq_u64 (vsubq_u64 (vreinterpretq_u64_f64 (x), d->one), d->thresh); ++ float64x2_t special_arg = x; ++ ++#if WANT_SIMD_EXCEPT ++ if (__glibc_unlikely (v_any_u64 (special))) ++ x = vbslq_f64 (special, vreinterpretq_f64_u64 (d->one), x); ++#endif ++ ++ float64x2_t xm1 = vsubq_f64 (x, v_f64 (1)); ++ float64x2_t y; ++ y = vaddq_f64 (x, v_f64 (1)); ++ y = vmulq_f64 (y, xm1); ++ y = vsqrtq_f64 (y); ++ y = vaddq_f64 (xm1, y); ++ ++ if (__glibc_unlikely (v_any_u64 (special))) ++ return special_case (special_arg, y, special, &d->log1p_consts); ++ return log1p_inline (y, &d->log1p_consts); ++} +diff --git a/sysdeps/aarch64/fpu/acosh_sve.c b/sysdeps/aarch64/fpu/acosh_sve.c +new file mode 100644 +index 0000000000000000..3e4faaa5ca686c18 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/acosh_sve.c +@@ -0,0 +1,51 @@ ++/* Double-precision vector (SVE) acosh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#define WANT_SV_LOG1P_K0_SHORTCUT 1 ++#include "sv_log1p_inline.h" ++ ++#define One (0x3ff0000000000000) ++#define Thres (0x1ff0000000000000) /* asuint64 (0x1p511) - One. */ ++ ++static svfloat64_t NOINLINE ++special_case (svfloat64_t x, svfloat64_t y, svbool_t special) ++{ ++ return sv_call_f64 (acosh, x, y, special); ++} ++ ++/* SVE approximation for double-precision acosh, based on log1p. ++ The largest observed error is 3.19 ULP in the region where the ++ argument to log1p falls in the k=0 interval, i.e. x close to 1: ++ SV_NAME_D1 (acosh)(0x1.1e4388d4ca821p+0) got 0x1.ed23399f5137p-2 ++ want 0x1.ed23399f51373p-2. */ ++svfloat64_t SV_NAME_D1 (acosh) (svfloat64_t x, const svbool_t pg) ++{ ++ /* (ix - One) >= (BigBound - One). */ ++ svuint64_t ix = svreinterpret_u64 (x); ++ svbool_t special = svcmpge (pg, svsub_x (pg, ix, One), Thres); ++ ++ svfloat64_t xm1 = svsub_x (pg, x, 1.0); ++ svfloat64_t u = svmul_x (pg, xm1, svadd_x (pg, x, 1.0)); ++ svfloat64_t y = svadd_x (pg, xm1, svsqrt_x (pg, u)); ++ ++ /* Fall back to scalar routine for special lanes. */ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ return special_case (x, sv_log1p_inline (y, pg), special); ++ return sv_log1p_inline (y, pg); ++} +diff --git a/sysdeps/aarch64/fpu/acoshf_advsimd.c b/sysdeps/aarch64/fpu/acoshf_advsimd.c +new file mode 100644 +index 0000000000000000..8916dcbf409922a9 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/acoshf_advsimd.c +@@ -0,0 +1,78 @@ ++/* Single-precision vector (Advanced SIMD) acosh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_log1pf_inline.h" ++ ++#define SquareLim 0x1p64 ++ ++const static struct data ++{ ++ struct v_log1pf_data log1pf_consts; ++ uint32x4_t one; ++ uint16x4_t thresh; ++} data = { ++ .log1pf_consts = V_LOG1PF_CONSTANTS_TABLE, ++ .one = V4 (0x3f800000), ++ .thresh = V4 (0x2000) /* top(asuint(SquareLim) - asuint(1)). */ ++}; ++ ++static float32x4_t NOINLINE VPCS_ATTR ++special_case (float32x4_t x, float32x4_t y, uint16x4_t special, ++ const struct v_log1pf_data d) ++{ ++ return v_call_f32 (acoshf, x, log1pf_inline (y, d), vmovl_u16 (special)); ++} ++ ++/* Vector approximation for single-precision acosh, based on log1p. Maximum ++ error depends on WANT_SIMD_EXCEPT. With SIMD fp exceptions enabled, it ++ is 2.78 ULP: ++ __v_acoshf(0x1.07887p+0) got 0x1.ef9e9cp-3 ++ want 0x1.ef9ea2p-3. ++ With exceptions disabled, we can compute u with a shorter dependency chain, ++ which gives maximum error of 3.07 ULP: ++ __v_acoshf(0x1.01f83ep+0) got 0x1.fbc7fap-4 ++ want 0x1.fbc7f4p-4. */ ++ ++VPCS_ATTR float32x4_t NOINLINE V_NAME_F1 (acosh) (float32x4_t x) ++{ ++ const struct data *d = ptr_barrier (&data); ++ uint32x4_t ix = vreinterpretq_u32_f32 (x); ++ uint16x4_t special = vcge_u16 (vsubhn_u32 (ix, d->one), d->thresh); ++ ++#if WANT_SIMD_EXCEPT ++ /* Mask special lanes with 1 to side-step spurious invalid or overflow. Use ++ only xm1 to calculate u, as operating on x will trigger invalid for NaN. ++ Widening sign-extend special predicate in order to mask with it. */ ++ uint32x4_t p ++ = vreinterpretq_u32_s32 (vmovl_s16 (vreinterpret_s16_u16 (special))); ++ float32x4_t xm1 = v_zerofy_f32 (vsubq_f32 (x, v_f32 (1)), p); ++ float32x4_t u = vfmaq_f32 (vaddq_f32 (xm1, xm1), xm1, xm1); ++#else ++ float32x4_t xm1 = vsubq_f32 (x, v_f32 (1)); ++ float32x4_t u = vmulq_f32 (xm1, vaddq_f32 (x, v_f32 (1.0f))); ++#endif ++ ++ float32x4_t y = vaddq_f32 (xm1, vsqrtq_f32 (u)); ++ ++ if (__glibc_unlikely (v_any_u16h (special))) ++ return special_case (x, y, special, d->log1pf_consts); ++ return log1pf_inline (y, d->log1pf_consts); ++} ++libmvec_hidden_def (V_NAME_F1 (acosh)) ++HALF_WIDTH_ALIAS_F1 (acosh) +diff --git a/sysdeps/aarch64/fpu/acoshf_sve.c b/sysdeps/aarch64/fpu/acoshf_sve.c +new file mode 100644 +index 0000000000000000..2110894e629500be +--- /dev/null ++++ b/sysdeps/aarch64/fpu/acoshf_sve.c +@@ -0,0 +1,49 @@ ++/* Single-precision vector (SVE) acosh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#define One 0x3f800000 ++#define Thres 0x20000000 /* asuint(0x1p64) - One. */ ++ ++#include "sv_log1pf_inline.h" ++ ++static svfloat32_t NOINLINE ++special_case (svfloat32_t x, svfloat32_t y, svbool_t special) ++{ ++ return sv_call_f32 (acoshf, x, y, special); ++} ++ ++/* Single-precision SVE acosh(x) routine. Implements the same algorithm as ++ vector acoshf and log1p. ++ ++ Maximum error is 2.78 ULPs: ++ SV_NAME_F1 (acosh) (0x1.01e996p+0) got 0x1.f45b42p-4 ++ want 0x1.f45b3cp-4. */ ++svfloat32_t SV_NAME_F1 (acosh) (svfloat32_t x, const svbool_t pg) ++{ ++ svuint32_t ix = svreinterpret_u32 (x); ++ svbool_t special = svcmpge (pg, svsub_x (pg, ix, One), Thres); ++ ++ svfloat32_t xm1 = svsub_x (pg, x, 1.0f); ++ svfloat32_t u = svmul_x (pg, xm1, svadd_x (pg, x, 1.0f)); ++ svfloat32_t y = sv_log1pf_inline (svadd_x (pg, xm1, svsqrt_x (pg, u)), pg); ++ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ return special_case (x, y, special); ++ return y; ++} +diff --git a/sysdeps/aarch64/fpu/advsimd_f32_protos.h b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +index c63b2948d4938b0d..22fec4de77395e60 100644 +--- a/sysdeps/aarch64/fpu/advsimd_f32_protos.h ++++ b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +@@ -18,6 +18,7 @@ + . */ + + libmvec_hidden_proto (V_NAME_F1(acos)); ++libmvec_hidden_proto (V_NAME_F1(acosh)); + libmvec_hidden_proto (V_NAME_F1(asin)); + libmvec_hidden_proto (V_NAME_F1(atan)); + libmvec_hidden_proto (V_NAME_F1(cos)); +diff --git a/sysdeps/aarch64/fpu/bits/math-vector.h b/sysdeps/aarch64/fpu/bits/math-vector.h +index 8ca55098706a54c2..841330956c102ff1 100644 +--- a/sysdeps/aarch64/fpu/bits/math-vector.h ++++ b/sysdeps/aarch64/fpu/bits/math-vector.h +@@ -33,6 +33,10 @@ + # define __DECL_SIMD_acos __DECL_SIMD_aarch64 + # undef __DECL_SIMD_acosf + # define __DECL_SIMD_acosf __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_acosh ++# define __DECL_SIMD_acosh __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_acoshf ++# define __DECL_SIMD_acoshf __DECL_SIMD_aarch64 + # undef __DECL_SIMD_asin + # define __DECL_SIMD_asin __DECL_SIMD_aarch64 + # undef __DECL_SIMD_asinf +@@ -125,6 +129,7 @@ typedef __SVBool_t __sv_bool_t; + + __vpcs __f32x4_t _ZGVnN4vv_atan2f (__f32x4_t, __f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_acosf (__f32x4_t); ++__vpcs __f32x4_t _ZGVnN4v_acoshf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_asinf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_atanf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_cosf (__f32x4_t); +@@ -143,6 +148,7 @@ __vpcs __f32x4_t _ZGVnN4v_tanf (__f32x4_t); + + __vpcs __f64x2_t _ZGVnN2vv_atan2 (__f64x2_t, __f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_acos (__f64x2_t); ++__vpcs __f64x2_t _ZGVnN2v_acosh (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_asin (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_atan (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_cos (__f64x2_t); +@@ -166,6 +172,7 @@ __vpcs __f64x2_t _ZGVnN2v_tan (__f64x2_t); + + __sv_f32_t _ZGVsMxvv_atan2f (__sv_f32_t, __sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_acosf (__sv_f32_t, __sv_bool_t); ++__sv_f32_t _ZGVsMxv_acoshf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_asinf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_atanf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_cosf (__sv_f32_t, __sv_bool_t); +@@ -184,6 +191,7 @@ __sv_f32_t _ZGVsMxv_tanf (__sv_f32_t, __sv_bool_t); + + __sv_f64_t _ZGVsMxvv_atan2 (__sv_f64_t, __sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_acos (__sv_f64_t, __sv_bool_t); ++__sv_f64_t _ZGVsMxv_acosh (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_asin (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_atan (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_cos (__sv_f64_t, __sv_bool_t); +diff --git a/sysdeps/aarch64/fpu/sv_log1p_inline.h b/sysdeps/aarch64/fpu/sv_log1p_inline.h +new file mode 100644 +index 0000000000000000..da019674f94dbac7 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/sv_log1p_inline.h +@@ -0,0 +1,109 @@ ++/* Helper for double-precision SVE routines which depend on log1p ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#ifndef AARCH64_FPU_SV_LOG1P_INLINE_H ++#define AARCH64_FPU_SV_LOG1P_INLINE_H ++ ++#include "sv_math.h" ++#include "poly_sve_f64.h" ++ ++static const struct sv_log1p_data ++{ ++ double poly[19], ln2[2]; ++ uint64_t hf_rt2_top; ++ uint64_t one_m_hf_rt2_top; ++ uint32_t bottom_mask; ++ int64_t one_top; ++} sv_log1p_data = { ++ /* Coefficients generated using Remez, deg=20, in [sqrt(2)/2-1, sqrt(2)-1]. ++ */ ++ .poly = { -0x1.ffffffffffffbp-2, 0x1.55555555551a9p-2, -0x1.00000000008e3p-2, ++ 0x1.9999999a32797p-3, -0x1.555555552fecfp-3, 0x1.249248e071e5ap-3, ++ -0x1.ffffff8bf8482p-4, 0x1.c71c8f07da57ap-4, -0x1.9999ca4ccb617p-4, ++ 0x1.7459ad2e1dfa3p-4, -0x1.554d2680a3ff2p-4, 0x1.3b4c54d487455p-4, ++ -0x1.2548a9ffe80e6p-4, 0x1.0f389a24b2e07p-4, -0x1.eee4db15db335p-5, ++ 0x1.e95b494d4a5ddp-5, -0x1.15fdf07cb7c73p-4, 0x1.0310b70800fcfp-4, ++ -0x1.cfa7385bdb37ep-6 }, ++ .ln2 = { 0x1.62e42fefa3800p-1, 0x1.ef35793c76730p-45 }, ++ .hf_rt2_top = 0x3fe6a09e00000000, ++ .one_m_hf_rt2_top = 0x00095f6200000000, ++ .bottom_mask = 0xffffffff, ++ .one_top = 0x3ff ++}; ++ ++static inline svfloat64_t ++sv_log1p_inline (svfloat64_t x, const svbool_t pg) ++{ ++ /* Helper for calculating log(x + 1). Adapted from v_log1p_inline.h, which ++ differs from v_log1p_2u5.c by: ++ - No special-case handling - this should be dealt with by the caller. ++ - Pairwise Horner polynomial evaluation for improved accuracy. ++ - Optionally simulate the shortcut for k=0, used in the scalar routine, ++ using svsel, for improved accuracy when the argument to log1p is close ++ to 0. This feature is enabled by defining WANT_SV_LOG1P_K0_SHORTCUT as 1 ++ in the source of the caller before including this file. ++ See sv_log1p_2u1.c for details of the algorithm. */ ++ const struct sv_log1p_data *d = ptr_barrier (&sv_log1p_data); ++ svfloat64_t m = svadd_x (pg, x, 1); ++ svuint64_t mi = svreinterpret_u64 (m); ++ svuint64_t u = svadd_x (pg, mi, d->one_m_hf_rt2_top); ++ ++ svint64_t ki ++ = svsub_x (pg, svreinterpret_s64 (svlsr_x (pg, u, 52)), d->one_top); ++ svfloat64_t k = svcvt_f64_x (pg, ki); ++ ++ /* Reduce x to f in [sqrt(2)/2, sqrt(2)]. */ ++ svuint64_t utop ++ = svadd_x (pg, svand_x (pg, u, 0x000fffff00000000), d->hf_rt2_top); ++ svuint64_t u_red = svorr_x (pg, utop, svand_x (pg, mi, d->bottom_mask)); ++ svfloat64_t f = svsub_x (pg, svreinterpret_f64 (u_red), 1); ++ ++ /* Correction term c/m. */ ++ svfloat64_t c = svsub_x (pg, x, svsub_x (pg, m, 1)); ++ svfloat64_t cm; ++ ++#ifndef WANT_SV_LOG1P_K0_SHORTCUT ++#error \ ++ "Cannot use sv_log1p_inline.h without specifying whether you need the k0 shortcut for greater accuracy close to 0" ++#elif WANT_SV_LOG1P_K0_SHORTCUT ++ /* Shortcut if k is 0 - set correction term to 0 and f to x. The result is ++ that the approximation is solely the polynomial. */ ++ svbool_t knot0 = svcmpne (pg, k, 0); ++ cm = svdiv_z (knot0, c, m); ++ if (__glibc_likely (!svptest_any (pg, knot0))) ++ { ++ f = svsel (knot0, f, x); ++ } ++#else ++ /* No shortcut. */ ++ cm = svdiv_x (pg, c, m); ++#endif ++ ++ /* Approximate log1p(f) on the reduced input using a polynomial. */ ++ svfloat64_t f2 = svmul_x (pg, f, f); ++ svfloat64_t p = sv_pw_horner_18_f64_x (pg, f, f2, d->poly); ++ ++ /* Assemble log1p(x) = k * log2 + log1p(f) + c/m. */ ++ svfloat64_t ylo = svmla_x (pg, cm, k, d->ln2[0]); ++ svfloat64_t yhi = svmla_x (pg, f, k, d->ln2[1]); ++ ++ return svmla_x (pg, svadd_x (pg, ylo, yhi), f2, p); ++} ++ ++#endif +diff --git a/sysdeps/aarch64/fpu/sv_log1pf_inline.h b/sysdeps/aarch64/fpu/sv_log1pf_inline.h +new file mode 100644 +index 0000000000000000..b94b2da055a6c59b +--- /dev/null ++++ b/sysdeps/aarch64/fpu/sv_log1pf_inline.h +@@ -0,0 +1,76 @@ ++/* Helper for single-precision SVE routines which depend on log1p ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#ifndef AARCH64_FPU_SV_LOG1PF_INLINE_H ++#define AARCH64_FPU_SV_LOG1PF_INLINE_H ++ ++#include "sv_math.h" ++#include "vecmath_config.h" ++#include "poly_sve_f32.h" ++ ++static const struct sv_log1pf_data ++{ ++ float32_t poly[9]; ++ float32_t ln2; ++ float32_t scale_back; ++} sv_log1pf_data = { ++ /* Polynomial generated using FPMinimax in [-0.25, 0.5]. */ ++ .poly = { -0x1p-1f, 0x1.5555aap-2f, -0x1.000038p-2f, 0x1.99675cp-3f, ++ -0x1.54ef78p-3f, 0x1.28a1f4p-3f, -0x1.0da91p-3f, 0x1.abcb6p-4f, ++ -0x1.6f0d5ep-5f }, ++ .scale_back = 0x1.0p-23f, ++ .ln2 = 0x1.62e43p-1f, ++}; ++ ++static inline svfloat32_t ++eval_poly (svfloat32_t m, const float32_t *c, svbool_t pg) ++{ ++ svfloat32_t p_12 = svmla_x (pg, sv_f32 (c[0]), m, sv_f32 (c[1])); ++ svfloat32_t m2 = svmul_x (pg, m, m); ++ svfloat32_t q = svmla_x (pg, m, m2, p_12); ++ svfloat32_t p = sv_pw_horner_6_f32_x (pg, m, m2, c + 2); ++ p = svmul_x (pg, m2, p); ++ ++ return svmla_x (pg, q, m2, p); ++} ++ ++static inline svfloat32_t ++sv_log1pf_inline (svfloat32_t x, svbool_t pg) ++{ ++ const struct sv_log1pf_data *d = ptr_barrier (&sv_log1pf_data); ++ ++ svfloat32_t m = svadd_x (pg, x, 1.0f); ++ ++ svint32_t ks = svsub_x (pg, svreinterpret_s32 (m), ++ svreinterpret_s32 (svdup_f32 (0.75f))); ++ ks = svand_x (pg, ks, 0xff800000); ++ svuint32_t k = svreinterpret_u32 (ks); ++ svfloat32_t s = svreinterpret_f32 ( ++ svsub_x (pg, svreinterpret_u32 (svdup_f32 (4.0f)), k)); ++ ++ svfloat32_t m_scale ++ = svreinterpret_f32 (svsub_x (pg, svreinterpret_u32 (x), k)); ++ m_scale ++ = svadd_x (pg, m_scale, svmla_x (pg, sv_f32 (-1.0f), sv_f32 (0.25f), s)); ++ svfloat32_t p = eval_poly (m_scale, d->poly, pg); ++ svfloat32_t scale_back = svmul_x (pg, svcvt_f32_x (pg, k), d->scale_back); ++ return svmla_x (pg, p, scale_back, d->ln2); ++} ++ ++#endif +diff --git a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +index b37cb7d5e9c0d96a..f4ce1d70096888aa 100644 +--- a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +@@ -24,6 +24,7 @@ + #define VEC_TYPE float64x2_t + + VPCS_VECTOR_WRAPPER (acos_advsimd, _ZGVnN2v_acos) ++VPCS_VECTOR_WRAPPER (acosh_advsimd, _ZGVnN2v_acosh) + VPCS_VECTOR_WRAPPER (asin_advsimd, _ZGVnN2v_asin) + VPCS_VECTOR_WRAPPER (atan_advsimd, _ZGVnN2v_atan) + VPCS_VECTOR_WRAPPER_ff (atan2_advsimd, _ZGVnN2vv_atan2) +diff --git a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +index 011f07d2c15b148f..0e973cc9d7ade813 100644 +--- a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +@@ -43,6 +43,7 @@ + } + + SVE_VECTOR_WRAPPER (acos_sve, _ZGVsMxv_acos) ++SVE_VECTOR_WRAPPER (acosh_sve, _ZGVsMxv_acosh) + SVE_VECTOR_WRAPPER (asin_sve, _ZGVsMxv_asin) + SVE_VECTOR_WRAPPER (atan_sve, _ZGVsMxv_atan) + SVE_VECTOR_WRAPPER_ff (atan2_sve, _ZGVsMxvv_atan2) +diff --git a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +index 35452991431e238a..0ce026b5ea96a064 100644 +--- a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +@@ -24,6 +24,7 @@ + #define VEC_TYPE float32x4_t + + VPCS_VECTOR_WRAPPER (acosf_advsimd, _ZGVnN4v_acosf) ++VPCS_VECTOR_WRAPPER (acoshf_advsimd, _ZGVnN4v_acoshf) + VPCS_VECTOR_WRAPPER (asinf_advsimd, _ZGVnN4v_asinf) + VPCS_VECTOR_WRAPPER (atanf_advsimd, _ZGVnN4v_atanf) + VPCS_VECTOR_WRAPPER_ff (atan2f_advsimd, _ZGVnN4vv_atan2f) +diff --git a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +index bbc74ede88c9e6c8..398b7373e800cd5b 100644 +--- a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +@@ -43,6 +43,7 @@ + } + + SVE_VECTOR_WRAPPER (acosf_sve, _ZGVsMxv_acosf) ++SVE_VECTOR_WRAPPER (acoshf_sve, _ZGVsMxv_acoshf) + SVE_VECTOR_WRAPPER (asinf_sve, _ZGVsMxv_asinf) + SVE_VECTOR_WRAPPER (atanf_sve, _ZGVsMxv_atanf) + SVE_VECTOR_WRAPPER_ff (atan2f_sve, _ZGVsMxvv_atan2f) +diff --git a/sysdeps/aarch64/fpu/v_log1p_inline.h b/sysdeps/aarch64/fpu/v_log1p_inline.h +new file mode 100644 +index 0000000000000000..242e43b6eecc0b6e +--- /dev/null ++++ b/sysdeps/aarch64/fpu/v_log1p_inline.h +@@ -0,0 +1,103 @@ ++/* Helper for double-precision Advanced SIMD routines which depend on log1p ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#ifndef AARCH64_FPU_V_LOG1P_INLINE_H ++#define AARCH64_FPU_V_LOG1P_INLINE_H ++ ++#include "v_math.h" ++#include "poly_advsimd_f64.h" ++ ++struct v_log1p_data ++{ ++ float64x2_t poly[19], ln2[2]; ++ uint64x2_t hf_rt2_top, one_m_hf_rt2_top, umask; ++ int64x2_t one_top; ++}; ++ ++/* Coefficients generated using Remez, deg=20, in [sqrt(2)/2-1, sqrt(2)-1]. */ ++#define V_LOG1P_CONSTANTS_TABLE \ ++ { \ ++ .poly = { V2 (-0x1.ffffffffffffbp-2), V2 (0x1.55555555551a9p-2), \ ++ V2 (-0x1.00000000008e3p-2), V2 (0x1.9999999a32797p-3), \ ++ V2 (-0x1.555555552fecfp-3), V2 (0x1.249248e071e5ap-3), \ ++ V2 (-0x1.ffffff8bf8482p-4), V2 (0x1.c71c8f07da57ap-4), \ ++ V2 (-0x1.9999ca4ccb617p-4), V2 (0x1.7459ad2e1dfa3p-4), \ ++ V2 (-0x1.554d2680a3ff2p-4), V2 (0x1.3b4c54d487455p-4), \ ++ V2 (-0x1.2548a9ffe80e6p-4), V2 (0x1.0f389a24b2e07p-4), \ ++ V2 (-0x1.eee4db15db335p-5), V2 (0x1.e95b494d4a5ddp-5), \ ++ V2 (-0x1.15fdf07cb7c73p-4), V2 (0x1.0310b70800fcfp-4), \ ++ V2 (-0x1.cfa7385bdb37ep-6) }, \ ++ .ln2 = { V2 (0x1.62e42fefa3800p-1), V2 (0x1.ef35793c76730p-45) }, \ ++ .hf_rt2_top = V2 (0x3fe6a09e00000000), \ ++ .one_m_hf_rt2_top = V2 (0x00095f6200000000), \ ++ .umask = V2 (0x000fffff00000000), .one_top = V2 (0x3ff) \ ++ } ++ ++#define BottomMask v_u64 (0xffffffff) ++ ++static inline float64x2_t ++log1p_inline (float64x2_t x, const struct v_log1p_data *d) ++{ ++ /* Helper for calculating log(x + 1). Copied from v_log1p_2u5.c, with several ++ modifications: ++ - No special-case handling - this should be dealt with by the caller. ++ - Pairwise Horner polynomial evaluation for improved accuracy. ++ - Optionally simulate the shortcut for k=0, used in the scalar routine, ++ using v_sel, for improved accuracy when the argument to log1p is close to ++ 0. This feature is enabled by defining WANT_V_LOG1P_K0_SHORTCUT as 1 in ++ the source of the caller before including this file. ++ See v_log1pf_2u1.c for details of the algorithm. */ ++ float64x2_t m = vaddq_f64 (x, v_f64 (1)); ++ uint64x2_t mi = vreinterpretq_u64_f64 (m); ++ uint64x2_t u = vaddq_u64 (mi, d->one_m_hf_rt2_top); ++ ++ int64x2_t ki ++ = vsubq_s64 (vreinterpretq_s64_u64 (vshrq_n_u64 (u, 52)), d->one_top); ++ float64x2_t k = vcvtq_f64_s64 (ki); ++ ++ /* Reduce x to f in [sqrt(2)/2, sqrt(2)]. */ ++ uint64x2_t utop = vaddq_u64 (vandq_u64 (u, d->umask), d->hf_rt2_top); ++ uint64x2_t u_red = vorrq_u64 (utop, vandq_u64 (mi, BottomMask)); ++ float64x2_t f = vsubq_f64 (vreinterpretq_f64_u64 (u_red), v_f64 (1)); ++ ++ /* Correction term c/m. */ ++ float64x2_t cm = vdivq_f64 (vsubq_f64 (x, vsubq_f64 (m, v_f64 (1))), m); ++ ++#ifndef WANT_V_LOG1P_K0_SHORTCUT ++#error \ ++ "Cannot use v_log1p_inline.h without specifying whether you need the k0 shortcut for greater accuracy close to 0" ++#elif WANT_V_LOG1P_K0_SHORTCUT ++ /* Shortcut if k is 0 - set correction term to 0 and f to x. The result is ++ that the approximation is solely the polynomial. */ ++ uint64x2_t k0 = vceqzq_f64 (k); ++ cm = v_zerofy_f64 (cm, k0); ++ f = vbslq_f64 (k0, x, f); ++#endif ++ ++ /* Approximate log1p(f) on the reduced input using a polynomial. */ ++ float64x2_t f2 = vmulq_f64 (f, f); ++ float64x2_t p = v_pw_horner_18_f64 (f, f2, d->poly); ++ ++ /* Assemble log1p(x) = k * log2 + log1p(f) + c/m. */ ++ float64x2_t ylo = vfmaq_f64 (cm, k, d->ln2[1]); ++ float64x2_t yhi = vfmaq_f64 (f, k, d->ln2[0]); ++ return vfmaq_f64 (vaddq_f64 (ylo, yhi), f2, p); ++} ++ ++#endif +diff --git a/sysdeps/aarch64/fpu/v_log1pf_inline.h b/sysdeps/aarch64/fpu/v_log1pf_inline.h +new file mode 100644 +index 0000000000000000..643a6cdcfc498970 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/v_log1pf_inline.h +@@ -0,0 +1,78 @@ ++/* Helper for single-precision Advanced SIMD routines which depend on log1p ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#ifndef AARCH64_FPU_V_LOG1PF_INLINE_H ++#define AARCH64_FPU_V_LOG1PF_INLINE_H ++ ++#include "v_math.h" ++#include "poly_advsimd_f32.h" ++ ++struct v_log1pf_data ++{ ++ float32x4_t poly[8], ln2; ++ uint32x4_t four; ++ int32x4_t three_quarters; ++}; ++ ++/* Polynomial generated using FPMinimax in [-0.25, 0.5]. First two coefficients ++ (1, -0.5) are not stored as they can be generated more efficiently. */ ++#define V_LOG1PF_CONSTANTS_TABLE \ ++ { \ ++ .poly \ ++ = { V4 (0x1.5555aap-2f), V4 (-0x1.000038p-2f), V4 (0x1.99675cp-3f), \ ++ V4 (-0x1.54ef78p-3f), V4 (0x1.28a1f4p-3f), V4 (-0x1.0da91p-3f), \ ++ V4 (0x1.abcb6p-4f), V4 (-0x1.6f0d5ep-5f) }, \ ++ .ln2 = V4 (0x1.62e43p-1f), .four = V4 (0x40800000), \ ++ .three_quarters = V4 (0x3f400000) \ ++ } ++ ++static inline float32x4_t ++eval_poly (float32x4_t m, const float32x4_t *c) ++{ ++ /* Approximate log(1+m) on [-0.25, 0.5] using pairwise Horner (main routine ++ uses split Estrin, but this way reduces register pressure in the calling ++ routine). */ ++ float32x4_t q = vfmaq_f32 (v_f32 (-0.5), m, c[0]); ++ float32x4_t m2 = vmulq_f32 (m, m); ++ q = vfmaq_f32 (m, m2, q); ++ float32x4_t p = v_pw_horner_6_f32 (m, m2, c + 1); ++ p = vmulq_f32 (m2, p); ++ return vfmaq_f32 (q, m2, p); ++} ++ ++static inline float32x4_t ++log1pf_inline (float32x4_t x, const struct v_log1pf_data d) ++{ ++ /* Helper for calculating log(x + 1). Copied from log1pf_2u1.c, with no ++ special-case handling. See that file for details of the algorithm. */ ++ float32x4_t m = vaddq_f32 (x, v_f32 (1.0f)); ++ int32x4_t k ++ = vandq_s32 (vsubq_s32 (vreinterpretq_s32_f32 (m), d.three_quarters), ++ v_s32 (0xff800000)); ++ uint32x4_t ku = vreinterpretq_u32_s32 (k); ++ float32x4_t s = vreinterpretq_f32_u32 (vsubq_u32 (d.four, ku)); ++ float32x4_t m_scale ++ = vreinterpretq_f32_u32 (vsubq_u32 (vreinterpretq_u32_f32 (x), ku)); ++ m_scale = vaddq_f32 (m_scale, vfmaq_f32 (v_f32 (-1.0f), v_f32 (0.25f), s)); ++ float32x4_t p = eval_poly (m_scale, d.poly); ++ float32x4_t scale_back = vmulq_f32 (vcvtq_f32_s32 (k), v_f32 (0x1.0p-23f)); ++ return vfmaq_f32 (p, scale_back, d.ln2); ++} ++ ++#endif +diff --git a/sysdeps/aarch64/fpu/v_math.h b/sysdeps/aarch64/fpu/v_math.h +index d4d78bc4027abebb..12824fce8c698cf4 100644 +--- a/sysdeps/aarch64/fpu/v_math.h ++++ b/sysdeps/aarch64/fpu/v_math.h +@@ -108,6 +108,11 @@ v_call2_f32 (float (*f) (float, float), float32x4_t x1, float32x4_t x2, + p[2] ? f (x1[2], x2[2]) : y[2], + p[3] ? f (x1[3], x2[3]) : y[3] }; + } ++static inline float32x4_t ++v_zerofy_f32 (float32x4_t x, uint32x4_t mask) ++{ ++ return vreinterpretq_f32_u32 (vbicq_u32 (vreinterpretq_u32_f32 (x), mask)); ++} + + static inline float64x2_t + v_f64 (double x) +@@ -167,5 +172,10 @@ v_call2_f64 (double (*f) (double, double), float64x2_t x1, float64x2_t x2, + return (float64x2_t){ p[0] ? f (x1[0], x2[0]) : y[0], + p[1] ? f (x1[1], x2[1]) : y[1] }; + } ++static inline float64x2_t ++v_zerofy_f64 (float64x2_t x, uint64x2_t mask) ++{ ++ return vreinterpretq_f64_u64 (vbicq_u64 (vreinterpretq_u64_f64 (x), mask)); ++} + + #endif +diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps +index 48d747ad5793be96..1646cdbdd22d93d9 100644 +--- a/sysdeps/aarch64/libm-test-ulps ++++ b/sysdeps/aarch64/libm-test-ulps +@@ -34,11 +34,19 @@ double: 2 + float: 2 + ldouble: 4 + ++Function: "acosh_advsimd": ++double: 2 ++float: 2 ++ + Function: "acosh_downward": + double: 2 + float: 2 + ldouble: 3 + ++Function: "acosh_sve": ++double: 2 ++float: 2 ++ + Function: "acosh_towardzero": + double: 2 + float: 2 +diff --git a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +index f66da42c3630bf48..f5aaa519f2c8663e 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist ++++ b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +@@ -73,12 +73,17 @@ GLIBC_2.39 _ZGVsMxv_tan F + GLIBC_2.39 _ZGVsMxv_tanf F + GLIBC_2.39 _ZGVsMxvv_atan2 F + GLIBC_2.39 _ZGVsMxvv_atan2f F ++GLIBC_2.40 _ZGVnN2v_acosh F ++GLIBC_2.40 _ZGVnN2v_acoshf F + GLIBC_2.40 _ZGVnN2v_cosh F + GLIBC_2.40 _ZGVnN2v_coshf F + GLIBC_2.40 _ZGVnN2v_erf F + GLIBC_2.40 _ZGVnN2v_erff F ++GLIBC_2.40 _ZGVnN4v_acoshf F + GLIBC_2.40 _ZGVnN4v_coshf F + GLIBC_2.40 _ZGVnN4v_erff F ++GLIBC_2.40 _ZGVsMxv_acosh F ++GLIBC_2.40 _ZGVsMxv_acoshf F + GLIBC_2.40 _ZGVsMxv_cosh F + GLIBC_2.40 _ZGVsMxv_coshf F + GLIBC_2.40 _ZGVsMxv_erf F diff --git a/glibc-RHEL-118273-30.patch b/glibc-RHEL-118273-30.patch new file mode 100644 index 0000000..fc9779a --- /dev/null +++ b/glibc-RHEL-118273-30.patch @@ -0,0 +1,303 @@ +commit c0ff447edf19bd4630fe79adf5e8b896405b059f +Author: Luna Lamb +Date: Thu Feb 13 17:54:46 2025 +0000 + + Aarch64: Improve codegen in SVE exp and users, and update expf_inline + + Use unpredicted muls, and improve memory access. + 7%, 3% and 1% improvement in throughput microbenchmark on Neoverse V1, + for exp, exp2 and cosh respectively. + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/fpu/cosh_sve.c b/sysdeps/aarch64/fpu/cosh_sve.c +index 919f34604a452b4a..e375dd8a3407feb2 100644 +--- a/sysdeps/aarch64/fpu/cosh_sve.c ++++ b/sysdeps/aarch64/fpu/cosh_sve.c +@@ -23,7 +23,7 @@ static const struct data + { + float64_t poly[3]; + float64_t inv_ln2, ln2_hi, ln2_lo, shift, thres; +- uint64_t index_mask, special_bound; ++ uint64_t special_bound; + } data = { + .poly = { 0x1.fffffffffffd4p-2, 0x1.5555571d6b68cp-3, + 0x1.5555576a59599p-5, }, +@@ -35,14 +35,16 @@ static const struct data + .shift = 0x1.8p+52, + .thres = 704.0, + +- .index_mask = 0xff, + /* 0x1.6p9, above which exp overflows. */ + .special_bound = 0x4086000000000000, + }; + + static svfloat64_t NOINLINE +-special_case (svfloat64_t x, svfloat64_t y, svbool_t special) ++special_case (svfloat64_t x, svbool_t pg, svfloat64_t t, svbool_t special) + { ++ svfloat64_t half_t = svmul_x (svptrue_b64 (), t, 0.5); ++ svfloat64_t half_over_t = svdivr_x (pg, t, 0.5); ++ svfloat64_t y = svadd_x (pg, half_t, half_over_t); + return sv_call_f64 (cosh, x, y, special); + } + +@@ -60,12 +62,12 @@ exp_inline (svfloat64_t x, const svbool_t pg, const struct data *d) + + svuint64_t u = svreinterpret_u64 (z); + svuint64_t e = svlsl_x (pg, u, 52 - V_EXP_TAIL_TABLE_BITS); +- svuint64_t i = svand_x (pg, u, d->index_mask); ++ svuint64_t i = svand_x (svptrue_b64 (), u, 0xff); + + svfloat64_t y = svmla_x (pg, sv_f64 (d->poly[1]), r, d->poly[2]); + y = svmla_x (pg, sv_f64 (d->poly[0]), r, y); + y = svmla_x (pg, sv_f64 (1.0), r, y); +- y = svmul_x (pg, r, y); ++ y = svmul_x (svptrue_b64 (), r, y); + + /* s = 2^(n/N). */ + u = svld1_gather_index (pg, __v_exp_tail_data, i); +@@ -94,12 +96,12 @@ svfloat64_t SV_NAME_D1 (cosh) (svfloat64_t x, const svbool_t pg) + /* Up to the point that exp overflows, we can use it to calculate cosh by + exp(|x|) / 2 + 1 / (2 * exp(|x|)). */ + svfloat64_t t = exp_inline (ax, pg, d); +- svfloat64_t half_t = svmul_x (pg, t, 0.5); +- svfloat64_t half_over_t = svdivr_x (pg, t, 0.5); + + /* Fall back to scalar for any special cases. */ + if (__glibc_unlikely (svptest_any (pg, special))) +- return special_case (x, svadd_x (pg, half_t, half_over_t), special); ++ return special_case (x, pg, t, special); + ++ svfloat64_t half_t = svmul_x (svptrue_b64 (), t, 0.5); ++ svfloat64_t half_over_t = svdivr_x (pg, t, 0.5); + return svadd_x (pg, half_t, half_over_t); + } +diff --git a/sysdeps/aarch64/fpu/exp10_sve.c b/sysdeps/aarch64/fpu/exp10_sve.c +index ddf64708cb1773cd..bfd3fb9e1948a3b8 100644 +--- a/sysdeps/aarch64/fpu/exp10_sve.c ++++ b/sysdeps/aarch64/fpu/exp10_sve.c +@@ -18,21 +18,23 @@ + . */ + + #include "sv_math.h" +-#include "poly_sve_f64.h" + + #define SpecialBound 307.0 /* floor (log10 (2^1023)). */ + + static const struct data + { +- double poly[5]; ++ double c1, c3, c2, c4, c0; + double shift, log10_2, log2_10_hi, log2_10_lo, scale_thres, special_bound; + } data = { + /* Coefficients generated using Remez algorithm. + rel error: 0x1.9fcb9b3p-60 + abs error: 0x1.a20d9598p-60 in [ -log10(2)/128, log10(2)/128 ] + max ulp err 0.52 +0.5. */ +- .poly = { 0x1.26bb1bbb55516p1, 0x1.53524c73cd32ap1, 0x1.0470591daeafbp1, +- 0x1.2bd77b1361ef6p0, 0x1.142b5d54e9621p-1 }, ++ .c0 = 0x1.26bb1bbb55516p1, ++ .c1 = 0x1.53524c73cd32ap1, ++ .c2 = 0x1.0470591daeafbp1, ++ .c3 = 0x1.2bd77b1361ef6p0, ++ .c4 = 0x1.142b5d54e9621p-1, + /* 1.5*2^46+1023. This value is further explained below. */ + .shift = 0x1.800000000ffc0p+46, + .log10_2 = 0x1.a934f0979a371p1, /* 1/log2(10). */ +@@ -70,9 +72,9 @@ special_case (svbool_t pg, svfloat64_t s, svfloat64_t y, svfloat64_t n, + /* |n| > 1280 => 2^(n) overflows. */ + svbool_t p_cmp = svacgt (pg, n, d->scale_thres); + +- svfloat64_t r1 = svmul_x (pg, s1, s1); ++ svfloat64_t r1 = svmul_x (svptrue_b64 (), s1, s1); + svfloat64_t r2 = svmla_x (pg, s2, s2, y); +- svfloat64_t r0 = svmul_x (pg, r2, s1); ++ svfloat64_t r0 = svmul_x (svptrue_b64 (), r2, s1); + + return svsel (p_cmp, r1, r0); + } +@@ -103,11 +105,14 @@ svfloat64_t SV_NAME_D1 (exp10) (svfloat64_t x, svbool_t pg) + comes at significant performance cost. */ + svuint64_t u = svreinterpret_u64 (z); + svfloat64_t scale = svexpa (u); +- ++ svfloat64_t c24 = svld1rq (svptrue_b64 (), &d->c2); + /* Approximate exp10(r) using polynomial. */ +- svfloat64_t r2 = svmul_x (pg, r, r); +- svfloat64_t y = svmla_x (pg, svmul_x (pg, r, d->poly[0]), r2, +- sv_pairwise_poly_3_f64_x (pg, r, r2, d->poly + 1)); ++ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r); ++ svfloat64_t p12 = svmla_lane (sv_f64 (d->c1), r, c24, 0); ++ svfloat64_t p34 = svmla_lane (sv_f64 (d->c3), r, c24, 1); ++ svfloat64_t p14 = svmla_x (pg, p12, p34, r2); ++ ++ svfloat64_t y = svmla_x (pg, svmul_x (svptrue_b64 (), r, d->c0), r2, p14); + + /* Assemble result as exp10(x) = 2^n * exp10(r). If |x| > SpecialBound + multiplication may overflow, so use special case routine. */ +diff --git a/sysdeps/aarch64/fpu/exp2_sve.c b/sysdeps/aarch64/fpu/exp2_sve.c +index 22848ebfa5ac21d8..5dfb77cdbc2f6a51 100644 +--- a/sysdeps/aarch64/fpu/exp2_sve.c ++++ b/sysdeps/aarch64/fpu/exp2_sve.c +@@ -18,7 +18,6 @@ + . */ + + #include "sv_math.h" +-#include "poly_sve_f64.h" + + #define N (1 << V_EXP_TABLE_BITS) + +@@ -27,15 +26,15 @@ + + static const struct data + { +- double poly[4]; ++ double c0, c2; ++ double c1, c3; + double shift, big_bound, uoflow_bound; + } data = { + /* Coefficients are computed using Remez algorithm with + minimisation of the absolute error. */ +- .poly = { 0x1.62e42fefa3686p-1, 0x1.ebfbdff82c241p-3, 0x1.c6b09b16de99ap-5, +- 0x1.3b2abf5571ad8p-7 }, +- .shift = 0x1.8p52 / N, +- .uoflow_bound = UOFlowBound, ++ .c0 = 0x1.62e42fefa3686p-1, .c1 = 0x1.ebfbdff82c241p-3, ++ .c2 = 0x1.c6b09b16de99ap-5, .c3 = 0x1.3b2abf5571ad8p-7, ++ .shift = 0x1.8p52 / N, .uoflow_bound = UOFlowBound, + .big_bound = BigBound, + }; + +@@ -67,9 +66,9 @@ special_case (svbool_t pg, svfloat64_t s, svfloat64_t y, svfloat64_t n, + /* |n| > 1280 => 2^(n) overflows. */ + svbool_t p_cmp = svacgt (pg, n, d->uoflow_bound); + +- svfloat64_t r1 = svmul_x (pg, s1, s1); ++ svfloat64_t r1 = svmul_x (svptrue_b64 (), s1, s1); + svfloat64_t r2 = svmla_x (pg, s2, s2, y); +- svfloat64_t r0 = svmul_x (pg, r2, s1); ++ svfloat64_t r0 = svmul_x (svptrue_b64 (), r2, s1); + + return svsel (p_cmp, r1, r0); + } +@@ -99,11 +98,14 @@ svfloat64_t SV_NAME_D1 (exp2) (svfloat64_t x, svbool_t pg) + svuint64_t top = svlsl_x (pg, ki, 52 - V_EXP_TABLE_BITS); + svfloat64_t scale = svreinterpret_f64 (svadd_x (pg, sbits, top)); + ++ svfloat64_t c13 = svld1rq (svptrue_b64 (), &d->c1); + /* Approximate exp2(r) using polynomial. */ +- svfloat64_t r2 = svmul_x (pg, r, r); +- svfloat64_t p = sv_pairwise_poly_3_f64_x (pg, r, r2, d->poly); +- svfloat64_t y = svmul_x (pg, r, p); +- ++ /* y = exp2(r) - 1 ~= C0 r + C1 r^2 + C2 r^3 + C3 r^4. */ ++ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r); ++ svfloat64_t p01 = svmla_lane (sv_f64 (d->c0), r, c13, 0); ++ svfloat64_t p23 = svmla_lane (sv_f64 (d->c2), r, c13, 1); ++ svfloat64_t p = svmla_x (pg, p01, p23, r2); ++ svfloat64_t y = svmul_x (svptrue_b64 (), r, p); + /* Assemble exp2(x) = exp2(r) * scale. */ + if (__glibc_unlikely (svptest_any (pg, special))) + return special_case (pg, scale, y, kd, d); +diff --git a/sysdeps/aarch64/fpu/exp_sve.c b/sysdeps/aarch64/fpu/exp_sve.c +index aabaaa1d61dbab27..b2421d493f2e119f 100644 +--- a/sysdeps/aarch64/fpu/exp_sve.c ++++ b/sysdeps/aarch64/fpu/exp_sve.c +@@ -21,12 +21,15 @@ + + static const struct data + { +- double poly[4]; ++ double c0, c2; ++ double c1, c3; + double ln2_hi, ln2_lo, inv_ln2, shift, thres; ++ + } data = { +- .poly = { /* ulp error: 0.53. */ +- 0x1.fffffffffdbcdp-2, 0x1.555555555444cp-3, 0x1.555573c6a9f7dp-5, +- 0x1.1111266d28935p-7 }, ++ .c0 = 0x1.fffffffffdbcdp-2, ++ .c1 = 0x1.555555555444cp-3, ++ .c2 = 0x1.555573c6a9f7dp-5, ++ .c3 = 0x1.1111266d28935p-7, + .ln2_hi = 0x1.62e42fefa3800p-1, + .ln2_lo = 0x1.ef35793c76730p-45, + /* 1/ln2. */ +@@ -36,7 +39,6 @@ static const struct data + .thres = 704.0, + }; + +-#define C(i) sv_f64 (d->poly[i]) + #define SpecialOffset 0x6000000000000000 /* 0x1p513. */ + /* SpecialBias1 + SpecialBias1 = asuint(1.0). */ + #define SpecialBias1 0x7000000000000000 /* 0x1p769. */ +@@ -56,20 +58,20 @@ special_case (svbool_t pg, svfloat64_t s, svfloat64_t y, svfloat64_t n) + svuint64_t b + = svdup_u64_z (p_sign, SpecialOffset); /* Inactive lanes set to 0. */ + +- /* Set s1 to generate overflow depending on sign of exponent n. */ +- svfloat64_t s1 = svreinterpret_f64 ( +- svsubr_x (pg, b, SpecialBias1)); /* 0x70...0 - b. */ +- /* Offset s to avoid overflow in final result if n is below threshold. */ ++ /* Set s1 to generate overflow depending on sign of exponent n, ++ ie. s1 = 0x70...0 - b. */ ++ svfloat64_t s1 = svreinterpret_f64 (svsubr_x (pg, b, SpecialBias1)); ++ /* Offset s to avoid overflow in final result if n is below threshold. ++ ie. s2 = as_u64 (s) - 0x3010...0 + b. */ + svfloat64_t s2 = svreinterpret_f64 ( +- svadd_x (pg, svsub_x (pg, svreinterpret_u64 (s), SpecialBias2), +- b)); /* as_u64 (s) - 0x3010...0 + b. */ ++ svadd_x (pg, svsub_x (pg, svreinterpret_u64 (s), SpecialBias2), b)); + + /* |n| > 1280 => 2^(n) overflows. */ + svbool_t p_cmp = svacgt (pg, n, 1280.0); + +- svfloat64_t r1 = svmul_x (pg, s1, s1); ++ svfloat64_t r1 = svmul_x (svptrue_b64 (), s1, s1); + svfloat64_t r2 = svmla_x (pg, s2, s2, y); +- svfloat64_t r0 = svmul_x (pg, r2, s1); ++ svfloat64_t r0 = svmul_x (svptrue_b64 (), r2, s1); + + return svsel (p_cmp, r1, r0); + } +@@ -103,16 +105,16 @@ svfloat64_t SV_NAME_D1 (exp) (svfloat64_t x, const svbool_t pg) + svfloat64_t z = svmla_x (pg, sv_f64 (d->shift), x, d->inv_ln2); + svuint64_t u = svreinterpret_u64 (z); + svfloat64_t n = svsub_x (pg, z, d->shift); +- ++ svfloat64_t c13 = svld1rq (svptrue_b64 (), &d->c1); + /* r = x - n * ln2, r is in [-ln2/(2N), ln2/(2N)]. */ + svfloat64_t ln2 = svld1rq (svptrue_b64 (), &d->ln2_hi); + svfloat64_t r = svmls_lane (x, n, ln2, 0); + r = svmls_lane (r, n, ln2, 1); + + /* y = exp(r) - 1 ~= r + C0 r^2 + C1 r^3 + C2 r^4 + C3 r^5. */ +- svfloat64_t r2 = svmul_x (pg, r, r); +- svfloat64_t p01 = svmla_x (pg, C (0), C (1), r); +- svfloat64_t p23 = svmla_x (pg, C (2), C (3), r); ++ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r); ++ svfloat64_t p01 = svmla_lane (sv_f64 (d->c0), r, c13, 0); ++ svfloat64_t p23 = svmla_lane (sv_f64 (d->c2), r, c13, 1); + svfloat64_t p04 = svmla_x (pg, p01, p23, r2); + svfloat64_t y = svmla_x (pg, r, p04, r2); + +diff --git a/sysdeps/aarch64/fpu/sv_expf_inline.h b/sysdeps/aarch64/fpu/sv_expf_inline.h +index 6166df65533555a6..75781fb4ddcb9790 100644 +--- a/sysdeps/aarch64/fpu/sv_expf_inline.h ++++ b/sysdeps/aarch64/fpu/sv_expf_inline.h +@@ -61,7 +61,7 @@ expf_inline (svfloat32_t x, const svbool_t pg, const struct sv_expf_data *d) + /* scale = 2^(n/N). */ + svfloat32_t scale = svexpa (svreinterpret_u32 (z)); + +- /* y = exp(r) - 1 ~= r + C0 r^2 + C1 r^3 + C2 r^4 + C3 r^5 + C4 r^6. */ ++ /* poly(r) = exp(r) - 1 ~= C0 r + C1 r^2 + C2 r^3 + C3 r^4 + C4 r^5. */ + svfloat32_t p12 = svmla_lane (sv_f32 (d->c1), r, lane_consts, 2); + svfloat32_t p34 = svmla_lane (sv_f32 (d->c3), r, lane_consts, 3); + svfloat32_t r2 = svmul_x (svptrue_b32 (), r, r); +@@ -71,5 +71,4 @@ expf_inline (svfloat32_t x, const svbool_t pg, const struct sv_expf_data *d) + + return svmla_x (pg, scale, scale, poly); + } +- + #endif diff --git a/glibc-RHEL-118273-31.patch b/glibc-RHEL-118273-31.patch new file mode 100644 index 0000000..4e68a14 --- /dev/null +++ b/glibc-RHEL-118273-31.patch @@ -0,0 +1,194 @@ +commit 8f0e7fe61e0a2ad5ed777933703ce09053810ec4 +Author: Luna Lamb +Date: Thu Feb 13 17:52:09 2025 +0000 + + Aarch64: Improve codegen in SVE asinh + + Use unpredicated muls, use lanewise mla's and improve memory access. + 1% regression in throughput microbenchmark on Neoverse V1. + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/fpu/asinh_sve.c b/sysdeps/aarch64/fpu/asinh_sve.c +index 28dc5c458750bac4..fe8715e06c92ac51 100644 +--- a/sysdeps/aarch64/fpu/asinh_sve.c ++++ b/sysdeps/aarch64/fpu/asinh_sve.c +@@ -18,36 +18,49 @@ + . */ + + #include "sv_math.h" +-#include "poly_sve_f64.h" + + #define SignMask (0x8000000000000000) + #define One (0x3ff0000000000000) + #define Thres (0x5fe0000000000000) /* asuint64 (0x1p511). */ ++#define IndexMask (((1 << V_LOG_TABLE_BITS) - 1) << 1) + + static const struct data + { +- double poly[18]; +- double ln2, p3, p1, p4, p0, p2; +- uint64_t n; +- uint64_t off; ++ double even_coeffs[9]; ++ double ln2, p3, p1, p4, p0, p2, c1, c3, c5, c7, c9, c11, c13, c15, c17; ++ uint64_t off, mask; + + } data = { +- /* Polynomial generated using Remez on [2^-26, 1]. */ +- .poly +- = { -0x1.55555555554a7p-3, 0x1.3333333326c7p-4, -0x1.6db6db68332e6p-5, +- 0x1.f1c71b26fb40dp-6, -0x1.6e8b8b654a621p-6, 0x1.1c4daa9e67871p-6, +- -0x1.c9871d10885afp-7, 0x1.7a16e8d9d2ecfp-7, -0x1.3ddca533e9f54p-7, +- 0x1.0becef748dafcp-7, -0x1.b90c7099dd397p-8, 0x1.541f2bb1ffe51p-8, +- -0x1.d217026a669ecp-9, 0x1.0b5c7977aaf7p-9, -0x1.e0f37daef9127p-11, +- 0x1.388b5fe542a6p-12, -0x1.021a48685e287p-14, 0x1.93d4ba83d34dap-18 }, ++ /* Polynomial generated using Remez on [2^-26, 1]. */ ++ .even_coeffs ={ ++ -0x1.55555555554a7p-3, ++ -0x1.6db6db68332e6p-5, ++ -0x1.6e8b8b654a621p-6, ++ -0x1.c9871d10885afp-7, ++ -0x1.3ddca533e9f54p-7, ++ -0x1.b90c7099dd397p-8, ++ -0x1.d217026a669ecp-9, ++ -0x1.e0f37daef9127p-11, ++ -0x1.021a48685e287p-14, }, ++ ++ .c1 = 0x1.3333333326c7p-4, ++ .c3 = 0x1.f1c71b26fb40dp-6, ++ .c5 = 0x1.1c4daa9e67871p-6, ++ .c7 = 0x1.7a16e8d9d2ecfp-7, ++ .c9 = 0x1.0becef748dafcp-7, ++ .c11 = 0x1.541f2bb1ffe51p-8, ++ .c13 = 0x1.0b5c7977aaf7p-9, ++ .c15 = 0x1.388b5fe542a6p-12, ++ .c17 = 0x1.93d4ba83d34dap-18, ++ + .ln2 = 0x1.62e42fefa39efp-1, + .p0 = -0x1.ffffffffffff7p-2, + .p1 = 0x1.55555555170d4p-2, + .p2 = -0x1.0000000399c27p-2, + .p3 = 0x1.999b2e90e94cap-3, + .p4 = -0x1.554e550bd501ep-3, +- .n = 1 << V_LOG_TABLE_BITS, +- .off = 0x3fe6900900000000 ++ .off = 0x3fe6900900000000, ++ .mask = 0xfffULL << 52, + }; + + static svfloat64_t NOINLINE +@@ -64,11 +77,10 @@ __sv_log_inline (svfloat64_t x, const struct data *d, const svbool_t pg) + of the algorithm used. */ + + svuint64_t ix = svreinterpret_u64 (x); +- svuint64_t tmp = svsub_x (pg, ix, d->off); +- svuint64_t i = svand_x (pg, svlsr_x (pg, tmp, (51 - V_LOG_TABLE_BITS)), +- (d->n - 1) << 1); +- svint64_t k = svasr_x (pg, svreinterpret_s64 (tmp), 52); +- svuint64_t iz = svsub_x (pg, ix, svand_x (pg, tmp, 0xfffULL << 52)); ++ svuint64_t i_off = svsub_x (pg, ix, d->off); ++ svuint64_t i ++ = svand_x (pg, svlsr_x (pg, i_off, (51 - V_LOG_TABLE_BITS)), IndexMask); ++ svuint64_t iz = svsub_x (pg, ix, svand_x (pg, i_off, d->mask)); + svfloat64_t z = svreinterpret_f64 (iz); + + svfloat64_t invc = svld1_gather_index (pg, &__v_log_data.table[0].invc, i); +@@ -78,14 +90,14 @@ __sv_log_inline (svfloat64_t x, const struct data *d, const svbool_t pg) + svfloat64_t p1_p4 = svld1rq (svptrue_b64 (), &d->p1); + + svfloat64_t r = svmla_x (pg, sv_f64 (-1.0), invc, z); +- svfloat64_t kd = svcvt_f64_x (pg, k); ++ svfloat64_t kd ++ = svcvt_f64_x (pg, svasr_x (pg, svreinterpret_s64 (i_off), 52)); + + svfloat64_t hi = svmla_lane (svadd_x (pg, logc, r), kd, ln2_p3, 0); +- svfloat64_t r2 = svmul_x (pg, r, r); +- ++ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r); + svfloat64_t y = svmla_lane (sv_f64 (d->p2), r, ln2_p3, 1); +- + svfloat64_t p = svmla_lane (sv_f64 (d->p0), r, p1_p4, 0); ++ + y = svmla_lane (y, r2, p1_p4, 1); + y = svmla_x (pg, p, r2, y); + y = svmla_x (pg, hi, r2, y); +@@ -111,7 +123,6 @@ svfloat64_t SV_NAME_D1 (asinh) (svfloat64_t x, const svbool_t pg) + svuint64_t iax = svbic_x (pg, ix, SignMask); + svuint64_t sign = svand_x (pg, ix, SignMask); + svfloat64_t ax = svreinterpret_f64 (iax); +- + svbool_t ge1 = svcmpge (pg, iax, One); + svbool_t special = svcmpge (pg, iax, Thres); + +@@ -120,7 +131,7 @@ svfloat64_t SV_NAME_D1 (asinh) (svfloat64_t x, const svbool_t pg) + svfloat64_t option_1 = sv_f64 (0); + if (__glibc_likely (svptest_any (pg, ge1))) + { +- svfloat64_t x2 = svmul_x (pg, ax, ax); ++ svfloat64_t x2 = svmul_x (svptrue_b64 (), ax, ax); + option_1 = __sv_log_inline ( + svadd_x (pg, ax, svsqrt_x (pg, svadd_x (pg, x2, 1))), d, pg); + } +@@ -130,21 +141,53 @@ svfloat64_t SV_NAME_D1 (asinh) (svfloat64_t x, const svbool_t pg) + The largest observed error in this region is 1.51 ULPs: + _ZGVsMxv_asinh(0x1.fe12bf8c616a2p-1) got 0x1.c1e649ee2681bp-1 + want 0x1.c1e649ee2681dp-1. */ ++ + svfloat64_t option_2 = sv_f64 (0); + if (__glibc_likely (svptest_any (pg, svnot_z (pg, ge1)))) + { +- svfloat64_t x2 = svmul_x (pg, ax, ax); +- svfloat64_t x4 = svmul_x (pg, x2, x2); +- svfloat64_t p = sv_pw_horner_17_f64_x (pg, x2, x4, d->poly); +- option_2 = svmla_x (pg, ax, p, svmul_x (pg, x2, ax)); ++ svfloat64_t x2 = svmul_x (svptrue_b64 (), ax, ax); ++ svfloat64_t x4 = svmul_x (svptrue_b64 (), x2, x2); ++ /* Order-17 Pairwise Horner scheme. */ ++ svfloat64_t c13 = svld1rq (svptrue_b64 (), &d->c1); ++ svfloat64_t c57 = svld1rq (svptrue_b64 (), &d->c5); ++ svfloat64_t c911 = svld1rq (svptrue_b64 (), &d->c9); ++ svfloat64_t c1315 = svld1rq (svptrue_b64 (), &d->c13); ++ ++ svfloat64_t p01 = svmla_lane (sv_f64 (d->even_coeffs[0]), x2, c13, 0); ++ svfloat64_t p23 = svmla_lane (sv_f64 (d->even_coeffs[1]), x2, c13, 1); ++ svfloat64_t p45 = svmla_lane (sv_f64 (d->even_coeffs[2]), x2, c57, 0); ++ svfloat64_t p67 = svmla_lane (sv_f64 (d->even_coeffs[3]), x2, c57, 1); ++ svfloat64_t p89 = svmla_lane (sv_f64 (d->even_coeffs[4]), x2, c911, 0); ++ svfloat64_t p1011 = svmla_lane (sv_f64 (d->even_coeffs[5]), x2, c911, 1); ++ svfloat64_t p1213 ++ = svmla_lane (sv_f64 (d->even_coeffs[6]), x2, c1315, 0); ++ svfloat64_t p1415 ++ = svmla_lane (sv_f64 (d->even_coeffs[7]), x2, c1315, 1); ++ svfloat64_t p1617 = svmla_x (pg, sv_f64 (d->even_coeffs[8]), x2, d->c17); ++ ++ svfloat64_t p = svmla_x (pg, p1415, x4, p1617); ++ p = svmla_x (pg, p1213, x4, p); ++ p = svmla_x (pg, p1011, x4, p); ++ p = svmla_x (pg, p89, x4, p); ++ ++ p = svmla_x (pg, p67, x4, p); ++ p = svmla_x (pg, p45, x4, p); ++ ++ p = svmla_x (pg, p23, x4, p); ++ ++ p = svmla_x (pg, p01, x4, p); ++ ++ option_2 = svmla_x (pg, ax, p, svmul_x (svptrue_b64 (), x2, ax)); + } + +- /* Choose the right option for each lane. */ +- svfloat64_t y = svsel (ge1, option_1, option_2); +- + if (__glibc_unlikely (svptest_any (pg, special))) + return special_case ( +- x, svreinterpret_f64 (sveor_x (pg, svreinterpret_u64 (y), sign)), ++ x, ++ svreinterpret_f64 (sveor_x ( ++ pg, svreinterpret_u64 (svsel (ge1, option_1, option_2)), sign)), + special); ++ ++ /* Choose the right option for each lane. */ ++ svfloat64_t y = svsel (ge1, option_1, option_2); + return svreinterpret_f64 (sveor_x (pg, svreinterpret_u64 (y), sign)); + } diff --git a/glibc-RHEL-118273-32.patch b/glibc-RHEL-118273-32.patch new file mode 100644 index 0000000..33fdcd2 --- /dev/null +++ b/glibc-RHEL-118273-32.patch @@ -0,0 +1,531 @@ +commit ce2f26a22e6b6f5c108d156afd9b43a452bb024c +Author: Wilco Dijkstra +Date: Tue Dec 31 18:07:36 2024 +0000 + + AArch64: Remove PTR_ARG/SIZE_ARG defines + + This series removes various ILP32 defines that are now + no longer needed. + + Remove PTR_ARG/SIZE_ARG. + + Reviewed-by: Adhemerval Zanella  + +Conflicts: + sysdeps/aarch64/dl-start.S + (Fixup context to apply without out-of-scope dependency 01f52b11de) + sysdeps/aarch64/multiarch/memcpy_thunderx.S + (Dropped by upstream commit e162ab2) + sysdeps/aarch64/multiarch/memcpy_oryon1.S + (Skipped: file from 4dc83cac is out-of-scope) + sysdeps/aarch64/multiarch/memset_oryon1.S + (Skipped: file from 2f1f7a5f is out-of-scope) + +diff --git a/sysdeps/aarch64/__longjmp.S b/sysdeps/aarch64/__longjmp.S +index 7b6add751e6bd96b..452ba0da6d788ce8 100644 +--- a/sysdeps/aarch64/__longjmp.S ++++ b/sysdeps/aarch64/__longjmp.S +@@ -47,8 +47,6 @@ ENTRY (__longjmp) + cfi_offset(d14, JB_D14<<3) + cfi_offset(d15, JB_D15<<3) + +- PTR_ARG (0) +- + #if IS_IN(libc) + /* Disable ZA state of SME in libc.a and libc.so, but not in ld.so. */ + # if HAVE_AARCH64_PAC_RET +diff --git a/sysdeps/aarch64/__mtag_tag_region.S b/sysdeps/aarch64/__mtag_tag_region.S +index 22e8d8b75372c8aa..90ac17ced4801f21 100644 +--- a/sysdeps/aarch64/__mtag_tag_region.S ++++ b/sysdeps/aarch64/__mtag_tag_region.S +@@ -40,9 +40,6 @@ + #define zva_val x4 + + ENTRY (__libc_mtag_tag_region) +- PTR_ARG (0) +- SIZE_ARG (1) +- + add dstend, dstin, count + + cmp count, 96 +diff --git a/sysdeps/aarch64/__mtag_tag_zero_region.S b/sysdeps/aarch64/__mtag_tag_zero_region.S +index 566698e9146e7da8..e975a2f8bdb85ae0 100644 +--- a/sysdeps/aarch64/__mtag_tag_zero_region.S ++++ b/sysdeps/aarch64/__mtag_tag_zero_region.S +@@ -40,9 +40,6 @@ + #define zva_val x4 + + ENTRY (__libc_mtag_tag_zero_region) +- PTR_ARG (0) +- SIZE_ARG (1) +- + add dstend, dstin, count + + cmp count, 96 +diff --git a/sysdeps/aarch64/dl-start.S b/sysdeps/aarch64/dl-start.S +index d645484e79858013..b7ac6c31432e07c9 100644 +--- a/sysdeps/aarch64/dl-start.S ++++ b/sysdeps/aarch64/dl-start.S +@@ -26,7 +26,6 @@ ENTRY (_start) + mov x30, #0 + + mov x0, sp +- PTR_ARG (0) + bl _dl_start + /* Returns user entry point in x0. */ + mov PTR_REG (21), PTR_REG (0) +diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S +index 9b253b39dd1d9d46..0aeaf64edd2594f1 100644 +--- a/sysdeps/aarch64/dl-tlsdesc.S ++++ b/sysdeps/aarch64/dl-tlsdesc.S +@@ -75,7 +75,6 @@ + .align 2 + _dl_tlsdesc_return: + BTI_C +- PTR_ARG (0) + ldr PTR_REG (0), [x0, #PTR_SIZE] + RET + cfi_endproc +@@ -99,7 +98,6 @@ _dl_tlsdesc_undefweak: + BTI_C + str x1, [sp, #-16]! + cfi_adjust_cfa_offset (16) +- PTR_ARG (0) + ldr PTR_REG (0), [x0, #PTR_SIZE] + mrs x1, tpidr_el0 + sub PTR_REG (0), PTR_REG (0), PTR_REG (1) +@@ -145,7 +143,6 @@ _dl_tlsdesc_undefweak: + .align 2 + _dl_tlsdesc_dynamic: + BTI_C +- PTR_ARG (0) + + /* Save just enough registers to support fast path, if we fall + into slow path we will save additional registers. */ +diff --git a/sysdeps/aarch64/memchr.S b/sysdeps/aarch64/memchr.S +index a9fa40519c78b7df..7173c7fafa7d6eb5 100644 +--- a/sysdeps/aarch64/memchr.S ++++ b/sysdeps/aarch64/memchr.S +@@ -57,8 +57,6 @@ + exactly which byte matched. */ + + ENTRY (MEMCHR) +- PTR_ARG (0) +- SIZE_ARG (2) + bic src, srcin, 15 + cbz cntin, L(nomatch) + ld1 {vdata.16b}, [src] +diff --git a/sysdeps/aarch64/memcmp.S b/sysdeps/aarch64/memcmp.S +index 5afa79494bf9cb7f..68dfa604f4b1bd43 100644 +--- a/sysdeps/aarch64/memcmp.S ++++ b/sysdeps/aarch64/memcmp.S +@@ -44,10 +44,6 @@ + + + ENTRY (memcmp) +- PTR_ARG (0) +- PTR_ARG (1) +- SIZE_ARG (2) +- + cmp limit, 16 + b.lo L(less16) + ldp data1, data3, [src1] +diff --git a/sysdeps/aarch64/memcpy.S b/sysdeps/aarch64/memcpy.S +index f21c21d3f2a21d89..fba93faeba52447f 100644 +--- a/sysdeps/aarch64/memcpy.S ++++ b/sysdeps/aarch64/memcpy.S +@@ -70,10 +70,6 @@ + from the end. */ + + ENTRY (MEMCPY) +- PTR_ARG (0) +- PTR_ARG (1) +- SIZE_ARG (2) +- + add srcend, src, count + add dstend, dstin, count + cmp count, 128 +@@ -187,10 +183,6 @@ libc_hidden_builtin_def (MEMCPY) + + + ENTRY (MEMMOVE) +- PTR_ARG (0) +- PTR_ARG (1) +- SIZE_ARG (2) +- + add srcend, src, count + add dstend, dstin, count + cmp count, 128 +diff --git a/sysdeps/aarch64/memrchr.S b/sysdeps/aarch64/memrchr.S +index c5274f5ebf595268..1bd3e230ca197581 100644 +--- a/sysdeps/aarch64/memrchr.S ++++ b/sysdeps/aarch64/memrchr.S +@@ -55,8 +55,6 @@ + exactly which byte matched. */ + + ENTRY (__memrchr) +- PTR_ARG (0) +- SIZE_ARG (2) + add end, srcin, cntin + sub endm1, end, 1 + bic src, endm1, 15 +diff --git a/sysdeps/aarch64/memset.S b/sysdeps/aarch64/memset.S +index 71814d0b2f6dd3a7..496ad332882a7e3d 100644 +--- a/sysdeps/aarch64/memset.S ++++ b/sysdeps/aarch64/memset.S +@@ -40,9 +40,6 @@ + #define dstend2 x5 + + ENTRY (MEMSET) +- PTR_ARG (0) +- SIZE_ARG (2) +- + dup v0.16B, valw + cmp count, 16 + b.lo L(set_small) +diff --git a/sysdeps/aarch64/multiarch/memchr_nosimd.S b/sysdeps/aarch64/multiarch/memchr_nosimd.S +index 0a65139b0810e95b..b47059de1ee61f71 100644 +--- a/sysdeps/aarch64/multiarch/memchr_nosimd.S ++++ b/sysdeps/aarch64/multiarch/memchr_nosimd.S +@@ -60,9 +60,6 @@ + + ENTRY (__memchr_nosimd) + +- PTR_ARG (0) +- SIZE_ARG (2) +- + /* Do not dereference srcin if no bytes to compare. */ + cbz cntin, L(none_chr) + +diff --git a/sysdeps/aarch64/multiarch/memcpy_a64fx.S b/sysdeps/aarch64/multiarch/memcpy_a64fx.S +index d826aafd80ed7b0b..fa693f7c3a5c28a3 100644 +--- a/sysdeps/aarch64/multiarch/memcpy_a64fx.S ++++ b/sysdeps/aarch64/multiarch/memcpy_a64fx.S +@@ -96,10 +96,6 @@ + + ENTRY (__memcpy_a64fx) + +- PTR_ARG (0) +- PTR_ARG (1) +- SIZE_ARG (2) +- + cntb vlen + cmp n, vlen, lsl 1 + b.hi L(copy_small) +@@ -236,10 +232,6 @@ END (__memcpy_a64fx) + + ENTRY_ALIGN (__memmove_a64fx, 4) + +- PTR_ARG (0) +- PTR_ARG (1) +- SIZE_ARG (2) +- + /* Fast case for up to 2 vectors. */ + cntb vlen + cmp n, vlen, lsl 1 +diff --git a/sysdeps/aarch64/multiarch/memcpy_mops.S b/sysdeps/aarch64/multiarch/memcpy_mops.S +index b094af3d22bc4aeb..2c426f008e699101 100644 +--- a/sysdeps/aarch64/multiarch/memcpy_mops.S ++++ b/sysdeps/aarch64/multiarch/memcpy_mops.S +@@ -26,10 +26,6 @@ + */ + + ENTRY (__memcpy_mops) +- PTR_ARG (0) +- PTR_ARG (1) +- SIZE_ARG (2) +- + mov x3, x0 + .inst 0x19010443 /* cpyfp [x3]!, [x1]!, x2! */ + .inst 0x19410443 /* cpyfm [x3]!, [x1]!, x2! */ +diff --git a/sysdeps/aarch64/multiarch/memcpy_sve.S b/sysdeps/aarch64/multiarch/memcpy_sve.S +index 3ce49d79ecdb94e0..26375b47174f1ba8 100644 +--- a/sysdeps/aarch64/multiarch/memcpy_sve.S ++++ b/sysdeps/aarch64/multiarch/memcpy_sve.S +@@ -61,10 +61,6 @@ + .arch armv8.2-a+sve + + ENTRY (__memcpy_sve) +- PTR_ARG (0) +- PTR_ARG (1) +- SIZE_ARG (2) +- + cmp count, 128 + b.hi L(copy_long) + cntb vlen +@@ -144,10 +140,6 @@ END (__memcpy_sve) + + + ENTRY (__memmove_sve) +- PTR_ARG (0) +- PTR_ARG (1) +- SIZE_ARG (2) +- + cmp count, 128 + b.hi L(move_long) + cntb vlen +diff --git a/sysdeps/aarch64/multiarch/memcpy_thunderx.S b/sysdeps/aarch64/multiarch/memcpy_thunderx.S +index 5d8438a82ea2a3be..02ea27f356fe8ea1 100644 +--- a/sysdeps/aarch64/multiarch/memcpy_thunderx.S ++++ b/sysdeps/aarch64/multiarch/memcpy_thunderx.S +@@ -67,10 +67,6 @@ + + ENTRY (__memmove_thunderx) + +- PTR_ARG (0) +- PTR_ARG (1) +- SIZE_ARG (2) +- + sub tmp1, dstin, src + cmp count, 96 + ccmp tmp1, count, 2, hi +diff --git a/sysdeps/aarch64/multiarch/memmove_mops.S b/sysdeps/aarch64/multiarch/memmove_mops.S +index 7df0d22454ead375..229fccd9d5a7abd2 100644 +--- a/sysdeps/aarch64/multiarch/memmove_mops.S ++++ b/sysdeps/aarch64/multiarch/memmove_mops.S +@@ -26,10 +26,6 @@ + */ + + ENTRY (__memmove_mops) +- PTR_ARG (0) +- PTR_ARG (1) +- SIZE_ARG (2) +- + mov x3, x0 + .inst 0x1d010443 /* cpyp [x3]!, [x1]!, x2! */ + .inst 0x1d410443 /* cpym [x3]!, [x1]!, x2! */ +diff --git a/sysdeps/aarch64/multiarch/memset_a64fx.S b/sysdeps/aarch64/multiarch/memset_a64fx.S +index 2e6d882fc931a882..9ea329a82ae7d0f6 100644 +--- a/sysdeps/aarch64/multiarch/memset_a64fx.S ++++ b/sysdeps/aarch64/multiarch/memset_a64fx.S +@@ -48,8 +48,6 @@ + #define BTI_C + + ENTRY (__memset_a64fx) +- PTR_ARG (0) +- SIZE_ARG (2) + + cntb vector_length + dup z0.b, valw +diff --git a/sysdeps/aarch64/multiarch/memset_emag.S b/sysdeps/aarch64/multiarch/memset_emag.S +index 6d714ed0e1b396ef..5c33280e0f8bf85a 100644 +--- a/sysdeps/aarch64/multiarch/memset_emag.S ++++ b/sysdeps/aarch64/multiarch/memset_emag.S +@@ -28,9 +28,6 @@ + + ENTRY (__memset_emag) + +- PTR_ARG (0) +- SIZE_ARG (2) +- + bfi valw, valw, 8, 8 + bfi valw, valw, 16, 16 + bfi val, val, 32, 32 +diff --git a/sysdeps/aarch64/multiarch/memset_kunpeng.S b/sysdeps/aarch64/multiarch/memset_kunpeng.S +index 7b215501376cbe03..93f3bfb8cf7238a5 100644 +--- a/sysdeps/aarch64/multiarch/memset_kunpeng.S ++++ b/sysdeps/aarch64/multiarch/memset_kunpeng.S +@@ -28,9 +28,6 @@ + + ENTRY (__memset_kunpeng) + +- PTR_ARG (0) +- SIZE_ARG (2) +- + dup v0.16B, valw + add dstend, dstin, count + +diff --git a/sysdeps/aarch64/multiarch/memset_mops.S b/sysdeps/aarch64/multiarch/memset_mops.S +index e879c81ab2d047b1..f13a0b561078137e 100644 +--- a/sysdeps/aarch64/multiarch/memset_mops.S ++++ b/sysdeps/aarch64/multiarch/memset_mops.S +@@ -26,9 +26,6 @@ + */ + + ENTRY (__memset_mops) +- PTR_ARG (0) +- SIZE_ARG (2) +- + mov x3, x0 + .inst 0x19c10443 /* setp [x3]!, x2!, x1 */ + .inst 0x19c14443 /* setm [x3]!, x2!, x1 */ +diff --git a/sysdeps/aarch64/multiarch/strlen_asimd.S b/sysdeps/aarch64/multiarch/strlen_asimd.S +index 67dcc94adc587928..3118cd00663b0b25 100644 +--- a/sysdeps/aarch64/multiarch/strlen_asimd.S ++++ b/sysdeps/aarch64/multiarch/strlen_asimd.S +@@ -87,7 +87,6 @@ + character, return the length, if not, continue in the main loop. */ + + ENTRY (__strlen_asimd) +- PTR_ARG (0) + and tmp1, srcin, MIN_PAGE_SIZE - 1 + cmp tmp1, MIN_PAGE_SIZE - 32 + b.hi L(page_cross) +diff --git a/sysdeps/aarch64/setjmp.S b/sysdeps/aarch64/setjmp.S +index 43fdb1b2fb1b7b78..92dc34e3e9a2650c 100644 +--- a/sysdeps/aarch64/setjmp.S ++++ b/sysdeps/aarch64/setjmp.S +@@ -34,8 +34,6 @@ END (_setjmp) + libc_hidden_def (_setjmp) + + ENTRY (__sigsetjmp) +- PTR_ARG (0) +- + 1: + stp x19, x20, [x0, #JB_X19<<3] + stp x21, x22, [x0, #JB_X21<<3] +diff --git a/sysdeps/aarch64/strchr.S b/sysdeps/aarch64/strchr.S +index ca4c99e6bf9ac960..bc57283361e172ab 100644 +--- a/sysdeps/aarch64/strchr.S ++++ b/sysdeps/aarch64/strchr.S +@@ -52,7 +52,6 @@ + If it is not a multiple of 4, there was no match. */ + + ENTRY (strchr) +- PTR_ARG (0) + bic src, srcin, 15 + dup vrepchr.16b, chrin + ld1 {vdata.16b}, [src] +diff --git a/sysdeps/aarch64/strchrnul.S b/sysdeps/aarch64/strchrnul.S +index e1a1c7eb4383e0f6..09e092bf5f847a7f 100644 +--- a/sysdeps/aarch64/strchrnul.S ++++ b/sysdeps/aarch64/strchrnul.S +@@ -51,7 +51,6 @@ + exactly which byte matched. */ + + ENTRY (__strchrnul) +- PTR_ARG (0) + bic src, srcin, 15 + dup vrepchr.16b, chrin + ld1 {vdata.16b}, [src] +diff --git a/sysdeps/aarch64/strcmp.S b/sysdeps/aarch64/strcmp.S +index 47f6fb1448c464bf..7bf87073be304e0f 100644 +--- a/sysdeps/aarch64/strcmp.S ++++ b/sysdeps/aarch64/strcmp.S +@@ -62,8 +62,6 @@ + NUL too in big-endian, byte-reverse the data before the NUL check. */ + + ENTRY(strcmp) +- PTR_ARG (0) +- PTR_ARG (1) + sub off2, src2, src1 + mov zeroones, REP8_01 + and tmp, src1, 7 +diff --git a/sysdeps/aarch64/strcpy.S b/sysdeps/aarch64/strcpy.S +index 705354060055a45e..62fb0248fa5a7ba3 100644 +--- a/sysdeps/aarch64/strcpy.S ++++ b/sysdeps/aarch64/strcpy.S +@@ -69,8 +69,6 @@ + exactly which byte matched. */ + + ENTRY (STRCPY) +- PTR_ARG (0) +- PTR_ARG (1) + bic src, srcin, 15 + ld1 {vdata.16b}, [src] + cmeq vhas_nul.16b, vdata.16b, 0 +diff --git a/sysdeps/aarch64/strlen.S b/sysdeps/aarch64/strlen.S +index 352fb40d3abbb44b..0d10b6efb7b31e54 100644 +--- a/sysdeps/aarch64/strlen.S ++++ b/sysdeps/aarch64/strlen.S +@@ -49,7 +49,6 @@ + identifies the first zero byte. */ + + ENTRY (STRLEN) +- PTR_ARG (0) + bic src, srcin, 15 + ld1 {vdata.16b}, [src] + cmeq vhas_nul.16b, vdata.16b, 0 +diff --git a/sysdeps/aarch64/strnlen.S b/sysdeps/aarch64/strnlen.S +index e4fb3506a80756b3..2a2264c0e5427225 100644 +--- a/sysdeps/aarch64/strnlen.S ++++ b/sysdeps/aarch64/strnlen.S +@@ -49,8 +49,6 @@ + identifies the first zero byte. */ + + ENTRY (__strnlen) +- PTR_ARG (0) +- SIZE_ARG (1) + bic src, srcin, 15 + cbz cntin, L(nomatch) + ld1 {vdata.16b}, [src] +diff --git a/sysdeps/aarch64/strrchr.S b/sysdeps/aarch64/strrchr.S +index e52c9b275347978c..402bce444ef3bb28 100644 +--- a/sysdeps/aarch64/strrchr.S ++++ b/sysdeps/aarch64/strrchr.S +@@ -55,7 +55,6 @@ + if the relevant byte matched the NUL end of string. */ + + ENTRY (strrchr) +- PTR_ARG (0) + bic src, srcin, 15 + dup vrepchr.16b, chrin + movi vrepmask.16b, 0x33 +diff --git a/sysdeps/unix/sysv/linux/aarch64/clone.S b/sysdeps/unix/sysv/linux/aarch64/clone.S +index 0e7ee24e68c85377..fed19acc2f78351f 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/clone.S ++++ b/sysdeps/unix/sysv/linux/aarch64/clone.S +@@ -33,12 +33,6 @@ + */ + .text + ENTRY(__clone) +- PTR_ARG (0) +- PTR_ARG (1) +- PTR_ARG (3) +- PTR_ARG (4) +- PTR_ARG (5) +- PTR_ARG (6) + /* Save args for the child. */ + mov x10, x0 + mov x11, x2 +diff --git a/sysdeps/unix/sysv/linux/aarch64/clone3.S b/sysdeps/unix/sysv/linux/aarch64/clone3.S +index 92d69a5430518cbc..9b00b6b8853e9b8b 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/clone3.S ++++ b/sysdeps/unix/sysv/linux/aarch64/clone3.S +@@ -36,10 +36,6 @@ + + .text + ENTRY(__clone3) +- PTR_ARG (0) +- PTR_ARG (1) +- PTR_ARG (3) +- PTR_ARG (4) + /* Save args for the child. */ + mov x10, x0 /* cl_args */ + mov x11, x2 /* func */ +diff --git a/sysdeps/unix/sysv/linux/aarch64/getcontext.S b/sysdeps/unix/sysv/linux/aarch64/getcontext.S +index e5b69c9a82b7a448..862bd67aa484ae1a 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/getcontext.S ++++ b/sysdeps/unix/sysv/linux/aarch64/getcontext.S +@@ -30,7 +30,6 @@ + .text + + ENTRY(__getcontext) +- PTR_ARG (0) + /* The saved context will return to the getcontext() call point + with a return value of 0 */ + str xzr, [x0, oX0 + 0 * SZREG] +diff --git a/sysdeps/unix/sysv/linux/aarch64/setcontext.S b/sysdeps/unix/sysv/linux/aarch64/setcontext.S +index ba659438c564dc3b..8c072781cdf98c2b 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/setcontext.S ++++ b/sysdeps/unix/sysv/linux/aarch64/setcontext.S +@@ -34,7 +34,6 @@ + .text + + ENTRY (__setcontext) +- PTR_ARG (0) + /* Save a copy of UCP. */ + mov x9, x0 + +diff --git a/sysdeps/unix/sysv/linux/aarch64/swapcontext.S b/sysdeps/unix/sysv/linux/aarch64/swapcontext.S +index f049140d35b79ba6..7000f220368bb094 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/swapcontext.S ++++ b/sysdeps/unix/sysv/linux/aarch64/swapcontext.S +@@ -27,7 +27,6 @@ + + .text + ENTRY(__swapcontext) +- PTR_ARG (0) + /* Set the value returned when swapcontext() returns in this context. + And set up x1 to become the return address of the caller, so we + can return there with a normal RET instead of an indirect jump. */ diff --git a/glibc-RHEL-118273-33.patch b/glibc-RHEL-118273-33.patch new file mode 100644 index 0000000..b8ac4de --- /dev/null +++ b/glibc-RHEL-118273-33.patch @@ -0,0 +1,113 @@ +commit cf56eb28fa277d9dbb301654682ca89f71c30a48 +Author: Pierre Blanchard +Date: Tue Mar 18 17:07:31 2025 +0000 + + AArch64: Optimize algorithm in users of SVE expf helper + + Polynomial order was unnecessarily high, unlocking multiple + optimizations. + Max error for new SVE expf is 0.88 +0.5ULP. + Max error for new SVE coshf is 2.56 +0.5ULP. + Performance improvement on Neoverse V1: expf (30%), coshf (26%). + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/fpu/coshf_sve.c b/sysdeps/aarch64/fpu/coshf_sve.c +index 7ad6efa0fc218278..508c0790ee89e0cd 100644 +--- a/sysdeps/aarch64/fpu/coshf_sve.c ++++ b/sysdeps/aarch64/fpu/coshf_sve.c +@@ -39,9 +39,9 @@ special_case (svfloat32_t x, svfloat32_t half_e, svfloat32_t half_over_e, + } + + /* Single-precision vector cosh, using vector expf. +- Maximum error is 2.77 ULP: +- _ZGVsMxv_coshf(-0x1.5b38f4p+1) got 0x1.e45946p+2 +- want 0x1.e4594cp+2. */ ++ Maximum error is 2.56 +0.5 ULP: ++ _ZGVsMxv_coshf(-0x1.5b40f4p+1) got 0x1.e47748p+2 ++ want 0x1.e4774ep+2. */ + svfloat32_t SV_NAME_F1 (cosh) (svfloat32_t x, svbool_t pg) + { + const struct data *d = ptr_barrier (&data); +diff --git a/sysdeps/aarch64/fpu/expf_sve.c b/sysdeps/aarch64/fpu/expf_sve.c +index da93e01b87e0e890..aee86a203379efb3 100644 +--- a/sysdeps/aarch64/fpu/expf_sve.c ++++ b/sysdeps/aarch64/fpu/expf_sve.c +@@ -40,9 +40,9 @@ special_case (svfloat32_t x, svbool_t special, const struct sv_expf_data *d) + } + + /* Optimised single-precision SVE exp function. +- Worst-case error is 1.04 ulp: +- SV_NAME_F1 (exp)(0x1.a8eda4p+1) got 0x1.ba74bcp+4 +- want 0x1.ba74bap+4. */ ++ Worst-case error is 0.88 +0.50 ULP: ++ _ZGVsMxv_expf(-0x1.bba276p-6) got 0x1.f25288p-1 ++ want 0x1.f2528ap-1. */ + svfloat32_t SV_NAME_F1 (exp) (svfloat32_t x, const svbool_t pg) + { + const struct data *d = ptr_barrier (&data); +diff --git a/sysdeps/aarch64/fpu/sv_expf_inline.h b/sysdeps/aarch64/fpu/sv_expf_inline.h +index 75781fb4ddcb9790..01fbb4d4c046eb3b 100644 +--- a/sysdeps/aarch64/fpu/sv_expf_inline.h ++++ b/sysdeps/aarch64/fpu/sv_expf_inline.h +@@ -24,50 +24,40 @@ + + struct sv_expf_data + { +- float c1, c3, inv_ln2; +- float ln2_lo, c0, c2, c4; +- float ln2_hi, shift; ++ float ln2_hi, ln2_lo, c1, null; ++ float inv_ln2, shift; + }; + +-/* Coefficients copied from the polynomial in AdvSIMD variant, reversed for +- compatibility with polynomial helpers. Shift is 1.5*2^17 + 127. */ ++/* Shift is 1.5*2^17 + 127. */ + #define SV_EXPF_DATA \ + { \ +- /* Coefficients copied from the polynomial in AdvSIMD variant. */ \ +- .c0 = 0x1.ffffecp-1f, .c1 = 0x1.fffdb6p-2f, .c2 = 0x1.555e66p-3f, \ +- .c3 = 0x1.573e2ep-5f, .c4 = 0x1.0e4020p-7f, .inv_ln2 = 0x1.715476p+0f, \ +- .ln2_hi = 0x1.62e4p-1f, .ln2_lo = 0x1.7f7d1cp-20f, \ +- .shift = 0x1.803f8p17f, \ ++ .c1 = 0.5f, .inv_ln2 = 0x1.715476p+0f, .ln2_hi = 0x1.62e4p-1f, \ ++ .ln2_lo = 0x1.7f7d1cp-20f, .shift = 0x1.803f8p17f, \ + } + +-#define C(i) sv_f32 (d->poly[i]) +- + static inline svfloat32_t + expf_inline (svfloat32_t x, const svbool_t pg, const struct sv_expf_data *d) + { + /* exp(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)] + x = ln2*n + r, with r in [-ln2/2, ln2/2]. */ + +- svfloat32_t lane_consts = svld1rq (svptrue_b32 (), &d->ln2_lo); ++ svfloat32_t lane_consts = svld1rq (svptrue_b32 (), &d->ln2_hi); + + /* n = round(x/(ln2/N)). */ + svfloat32_t z = svmad_x (pg, sv_f32 (d->inv_ln2), x, d->shift); + svfloat32_t n = svsub_x (pg, z, d->shift); + + /* r = x - n*ln2/N. */ +- svfloat32_t r = svmsb_x (pg, sv_f32 (d->ln2_hi), n, x); ++ svfloat32_t r = x; + r = svmls_lane (r, n, lane_consts, 0); ++ r = svmls_lane (r, n, lane_consts, 1); + + /* scale = 2^(n/N). */ + svfloat32_t scale = svexpa (svreinterpret_u32 (z)); + +- /* poly(r) = exp(r) - 1 ~= C0 r + C1 r^2 + C2 r^3 + C3 r^4 + C4 r^5. */ +- svfloat32_t p12 = svmla_lane (sv_f32 (d->c1), r, lane_consts, 2); +- svfloat32_t p34 = svmla_lane (sv_f32 (d->c3), r, lane_consts, 3); ++ /* poly(r) = exp(r) - 1 ~= r + 0.5 r^2. */ + svfloat32_t r2 = svmul_x (svptrue_b32 (), r, r); +- svfloat32_t p14 = svmla_x (pg, p12, p34, r2); +- svfloat32_t p0 = svmul_lane (r, lane_consts, 1); +- svfloat32_t poly = svmla_x (pg, p0, r2, p14); ++ svfloat32_t poly = svmla_lane (r, r2, lane_consts, 2); + + return svmla_x (pg, scale, scale, poly); + } diff --git a/glibc-RHEL-118273-34.patch b/glibc-RHEL-118273-34.patch new file mode 100644 index 0000000..053febb --- /dev/null +++ b/glibc-RHEL-118273-34.patch @@ -0,0 +1,217 @@ +commit 4352e2cc934b2874dba37397157bf890fcee455a +Author: Adhemerval Zanella +Date: Fri Mar 28 14:27:45 2025 -0300 + + aarch64: Fix _dl_tlsdesc_dynamic unwind for pac-ret (BZ 32612) + + When libgcc is built with pac-ret, it requires to autenticate the + unwinding frame based on CFI information. The _dl_tlsdesc_dynamic + uses a custom calling convention, where it is responsible to save + and restore all registers it might use (even volatile). + + The pac-ret support added by 1be3d6eb823d8b952fa54b7bbc90cbecb8981380 + was added only on the slow-path, but the fast path also adds DWARF + Register Rule Instruction (cfi_adjust_cfa_offset) since it requires + to save/restore some auxiliary register. It seems that this is not + fully supported neither by libgcc nor AArch64 ABI [1]. + + Instead, move paciasp/autiasp to function prologue/epilogue to be + used on both fast and slow paths. + + I also corrected the _dl_tlsdesc_dynamic comment description, it was + copied from i386 implementation without any adjustment. + + Checked on aarch64-linux-gnu with a toolchain built with + --enable-standard-branch-protection on a system with pac-ret + support. + + [1] https://github.com/ARM-software/abi-aa/blob/main/aadwarf64/aadwarf64.rst#id1 + + Reviewed-by: Yury Khrustalev + +Conflicts: + sysdeps/unix/sysv/linux/aarch64/Makefile + (Fixup context to apply without out-of-scope dependency f4d00dd60d) + +diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S +index 0aeaf64edd2594f1..36195c956855e024 100644 +--- a/sysdeps/aarch64/dl-tlsdesc.S ++++ b/sysdeps/aarch64/dl-tlsdesc.S +@@ -119,20 +119,19 @@ _dl_tlsdesc_undefweak: + object referenced by the argument. + + ptrdiff_t +- __attribute__ ((__regparm__ (1))) + _dl_tlsdesc_dynamic (struct tlsdesc *tdp) + { + struct tlsdesc_dynamic_arg *td = tdp->arg; +- dtv_t *dtv = *(dtv_t **)((char *)__thread_pointer + TCBHEAD_DTV); ++ dtv_t *dtv = *(dtv_t **)((char *)__thread_pointer() + TCBHEAD_DTV); + if (__builtin_expect (td->gen_count <= dtv[0].counter + && (dtv[td->tlsinfo.ti_module].pointer.val + != TLS_DTV_UNALLOCATED), + 1)) + return dtv[td->tlsinfo.ti_module].pointer.val + + td->tlsinfo.ti_offset +- - __thread_pointer; ++ - __thread_pointer(); + +- return ___tls_get_addr (&td->tlsinfo) - __thread_pointer; ++ return __tls_get_addr (&td->tlsinfo) - __thread_pointer(); + } + */ + +@@ -142,7 +141,12 @@ _dl_tlsdesc_undefweak: + cfi_startproc + .align 2 + _dl_tlsdesc_dynamic: ++# if HAVE_AARCH64_PAC_RET ++ PACIASP ++ cfi_window_save ++# else + BTI_C ++# endif + + /* Save just enough registers to support fast path, if we fall + into slow path we will save additional registers. */ +@@ -173,6 +177,10 @@ _dl_tlsdesc_dynamic: + 1: + ldp x3, x4, [sp, #16] + ldp x1, x2, [sp], #32 ++# if HAVE_AARCH64_PAC_RET ++ AUTIASP ++ cfi_window_save ++# endif + cfi_adjust_cfa_offset (-32) + RET + 2: +@@ -182,10 +190,6 @@ _dl_tlsdesc_dynamic: + + /* Save the remaining registers that we must treat as caller save. */ + cfi_restore_state +-# if HAVE_AARCH64_PAC_RET +- PACIASP +- cfi_window_save +-# endif + # define NSAVEXREGPAIRS 8 + stp x29, x30, [sp,#-16*NSAVEXREGPAIRS]! + cfi_adjust_cfa_offset (16*NSAVEXREGPAIRS) +@@ -236,10 +240,6 @@ _dl_tlsdesc_dynamic: + cfi_adjust_cfa_offset (-16*NSAVEXREGPAIRS) + cfi_restore (x29) + cfi_restore (x30) +-# if HAVE_AARCH64_PAC_RET +- AUTIASP +- cfi_window_save +-# endif + b 1b + cfi_endproc + .size _dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic +diff --git a/sysdeps/unix/sysv/linux/aarch64/Makefile b/sysdeps/unix/sysv/linux/aarch64/Makefile +index 40b9a2e5dea1ea89..607a0c56d8dfad8d 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/Makefile ++++ b/sysdeps/unix/sysv/linux/aarch64/Makefile +@@ -1,3 +1,16 @@ ++ifeq ($(subdir),elf) ++tests += \ ++ tst-tlsdesc-pac \ ++ # tests ++modules-names += \ ++ tst-tlsdesc-pac-mod \ ++ # modules-names ++ ++LDFLAGS-tst-tlsdesc-pac = -rdynamic ++ ++$(objpfx)tst-tlsdesc-pac.out: $(objpfx)tst-tlsdesc-pac-mod.so ++endif ++ + ifeq ($(subdir),misc) + sysdep_headers += sys/elf.h + endif +diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac-mod.c b/sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac-mod.c +new file mode 100644 +index 0000000000000000..d34c8beda9b1986d +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac-mod.c +@@ -0,0 +1,27 @@ ++/* AArch64 tests for unwinding TLSDESC (BZ 32612) ++ Copyright (C) 2025 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 ++ . */ ++ ++_Thread_local int foo; ++/* Make the TLS segment large enough to trigger _dl_tlsdesc_dynamic. */ ++_Thread_local int foobar[1000]; ++ ++void ++bar (void) ++{ ++ foo = 1; ++} +diff --git a/sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac.c b/sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac.c +new file mode 100644 +index 0000000000000000..24d656aafc2784b4 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/aarch64/tst-tlsdesc-pac.c +@@ -0,0 +1,48 @@ ++/* AArch64 tests for unwinding TLSDESC (BZ 32612) ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++ ++static _Unwind_Reason_Code ++unwind_callback (struct _Unwind_Context* context, void* closure) ++{ ++ return _URC_NO_REASON; ++} ++ ++/* Assume that TLS variable from tst-tlsdesc-pac-mod.so will trigger ++ the slow-path that allocates the required memory with malloc. */ ++void * ++malloc (size_t s) ++{ ++ _Unwind_Backtrace (unwind_callback, NULL); ++ return calloc (1, s); ++} ++ ++static int ++do_test (void) ++{ ++ void *h = xdlopen ("tst-tlsdesc-pac-mod.so", RTLD_LAZY); ++ void (*func)(void) = xdlsym (h, "bar"); ++ func (); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-118273-35.patch b/glibc-RHEL-118273-35.patch new file mode 100644 index 0000000..0af55d0 --- /dev/null +++ b/glibc-RHEL-118273-35.patch @@ -0,0 +1,76 @@ +commit 691edbdf7727466ba87e27a8eeae1c3bc5824ef5 +Author: Yury Khrustalev +Date: Thu May 8 13:53:38 2025 +0100 + + aarch64: fix unwinding in longjmp + + Previously, longjmp() on aarch64 was using CFI directives around the + call to __libc_arm_za_disable() after CFA was redefined at the start + of longjmp(). This may result in unwinding issues. Move the call and + surrounding CFI directives to the beginning of longjmp(). + + Suggested-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/__longjmp.S b/sysdeps/aarch64/__longjmp.S +index 452ba0da6d788ce8..30b36cb25d921795 100644 +--- a/sysdeps/aarch64/__longjmp.S ++++ b/sysdeps/aarch64/__longjmp.S +@@ -24,28 +24,6 @@ + /* __longjmp(jmpbuf, val) */ + + ENTRY (__longjmp) +- cfi_def_cfa(x0, 0) +- cfi_offset(x19, JB_X19<<3) +- cfi_offset(x20, JB_X20<<3) +- cfi_offset(x21, JB_X21<<3) +- cfi_offset(x22, JB_X22<<3) +- cfi_offset(x23, JB_X23<<3) +- cfi_offset(x24, JB_X24<<3) +- cfi_offset(x25, JB_X25<<3) +- cfi_offset(x26, JB_X26<<3) +- cfi_offset(x27, JB_X27<<3) +- cfi_offset(x28, JB_X28<<3) +- cfi_offset(x29, JB_X29<<3) +- cfi_offset(x30, JB_LR<<3) +- +- cfi_offset( d8, JB_D8<<3) +- cfi_offset( d9, JB_D9<<3) +- cfi_offset(d10, JB_D10<<3) +- cfi_offset(d11, JB_D11<<3) +- cfi_offset(d12, JB_D12<<3) +- cfi_offset(d13, JB_D13<<3) +- cfi_offset(d14, JB_D14<<3) +- cfi_offset(d15, JB_D15<<3) + + #if IS_IN(libc) + /* Disable ZA state of SME in libc.a and libc.so, but not in ld.so. */ +@@ -69,6 +47,29 @@ ENTRY (__longjmp) + # endif + #endif + ++ cfi_def_cfa (x0, 0) ++ cfi_offset (x19, JB_X19<<3) ++ cfi_offset (x20, JB_X20<<3) ++ cfi_offset (x21, JB_X21<<3) ++ cfi_offset (x22, JB_X22<<3) ++ cfi_offset (x23, JB_X23<<3) ++ cfi_offset (x24, JB_X24<<3) ++ cfi_offset (x25, JB_X25<<3) ++ cfi_offset (x26, JB_X26<<3) ++ cfi_offset (x27, JB_X27<<3) ++ cfi_offset (x28, JB_X28<<3) ++ cfi_offset (x29, JB_X29<<3) ++ cfi_offset (x30, JB_LR<<3) ++ ++ cfi_offset ( d8, JB_D8<<3) ++ cfi_offset ( d9, JB_D9<<3) ++ cfi_offset (d10, JB_D10<<3) ++ cfi_offset (d11, JB_D11<<3) ++ cfi_offset (d12, JB_D12<<3) ++ cfi_offset (d13, JB_D13<<3) ++ cfi_offset (d14, JB_D14<<3) ++ cfi_offset (d15, JB_D15<<3) ++ + ldp x19, x20, [x0, #JB_X19<<3] + ldp x21, x22, [x0, #JB_X21<<3] + ldp x23, x24, [x0, #JB_X23<<3] diff --git a/glibc-RHEL-118273-36.patch b/glibc-RHEL-118273-36.patch new file mode 100644 index 0000000..f7972c7 --- /dev/null +++ b/glibc-RHEL-118273-36.patch @@ -0,0 +1,29 @@ +commit aa18367c1169700f610565eba8acf3e08429fcf5 +Author: Wilco Dijkstra +Date: Thu May 29 15:08:15 2025 +0000 + + AArch64: Improve enabling of SVE for libmvec + + When using a -mcpu option in CFLAGS, GCC can report errors when building libmvec. + Fix this by overriding both -mcpu and -march with a generic variant with SVE added. + Also use a tune for a modern SVE core. + + Reviewed-by: Yury Khrustalev + +diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile +index be8541f6496d6688..aa547b21df5f41d9 100644 +--- a/sysdeps/aarch64/fpu/Makefile ++++ b/sysdeps/aarch64/fpu/Makefile +@@ -49,8 +49,11 @@ libmvec-support = $(addsuffix f_advsimd,$(float-advsimd-funcs)) \ + v_powf_data + endif + +-sve-cflags = -march=armv8-a+sve ++# Enable SVE for building libmvec. Since CFLAGS may contain a -mcpu or -march, ++# add a generic -mcpu and -march with SVE enabled. Also use a tune for a modern ++# SVE core. + ++sve-cflags = -mcpu=generic+sve -march=armv8-a+sve -mtune=neoverse-v2 + + ifeq ($(build-mathvec),yes) + bench-libmvec = $(addprefix float-advsimd-,$(float-advsimd-funcs)) \ diff --git a/glibc-RHEL-118273-37.patch b/glibc-RHEL-118273-37.patch new file mode 100644 index 0000000..c8d9a95 --- /dev/null +++ b/glibc-RHEL-118273-37.patch @@ -0,0 +1,24 @@ +commit 09795c5612c630db605886dfd55dbf56f381d128 +Author: Wilco Dijkstra +Date: Fri Jun 6 13:15:30 2025 +0000 + + AArch64: Fix builderror with GCC 12.1/12.2 + + Early versions of GCC 12 didn't support -mtune=neoverse-v2, so use + -mtune=neoverse-v1 instead. + + Reported-by: Yury Khrustalev + +diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile +index aa547b21df5f41d9..c8a6fb4628d13aec 100644 +--- a/sysdeps/aarch64/fpu/Makefile ++++ b/sysdeps/aarch64/fpu/Makefile +@@ -53,7 +53,7 @@ endif + # add a generic -mcpu and -march with SVE enabled. Also use a tune for a modern + # SVE core. + +-sve-cflags = -mcpu=generic+sve -march=armv8-a+sve -mtune=neoverse-v2 ++sve-cflags = -mcpu=generic+sve -march=armv8-a+sve -mtune=neoverse-v1 + + ifeq ($(build-mathvec),yes) + bench-libmvec = $(addprefix float-advsimd-,$(float-advsimd-funcs)) \ diff --git a/glibc-RHEL-118273-38.patch b/glibc-RHEL-118273-38.patch new file mode 100644 index 0000000..8f895a4 --- /dev/null +++ b/glibc-RHEL-118273-38.patch @@ -0,0 +1,188 @@ +commit 6849c5b791edd216f2ec3fdbe4d138bc69b9b333 +Author: Luna Lamb +Date: Wed Jun 18 16:12:19 2025 +0000 + + AArch64: Improve codegen SVE log1p helper + + Improve codegen by packing coefficients. + 4% and 2% improvement in throughput microbenchmark on Neoverse V1, for acosh + and atanh respectively. + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/fpu/acosh_sve.c b/sysdeps/aarch64/fpu/acosh_sve.c +index 3e4faaa5ca686c18..78ebcffbb5737641 100644 +--- a/sysdeps/aarch64/fpu/acosh_sve.c ++++ b/sysdeps/aarch64/fpu/acosh_sve.c +@@ -30,10 +30,10 @@ special_case (svfloat64_t x, svfloat64_t y, svbool_t special) + } + + /* SVE approximation for double-precision acosh, based on log1p. +- The largest observed error is 3.19 ULP in the region where the ++ The largest observed error is 3.14 ULP in the region where the + argument to log1p falls in the k=0 interval, i.e. x close to 1: +- SV_NAME_D1 (acosh)(0x1.1e4388d4ca821p+0) got 0x1.ed23399f5137p-2 +- want 0x1.ed23399f51373p-2. */ ++ SV_NAME_D1 (acosh)(0x1.1e80ed12f0ad1p+0) got 0x1.ef0cee7c33ce1p-2 ++ want 0x1.ef0cee7c33ce4p-2. */ + svfloat64_t SV_NAME_D1 (acosh) (svfloat64_t x, const svbool_t pg) + { + /* (ix - One) >= (BigBound - One). */ +diff --git a/sysdeps/aarch64/fpu/atanh_sve.c b/sysdeps/aarch64/fpu/atanh_sve.c +index 7a52728d70f6d226..a4803e5c1305379e 100644 +--- a/sysdeps/aarch64/fpu/atanh_sve.c ++++ b/sysdeps/aarch64/fpu/atanh_sve.c +@@ -30,7 +30,7 @@ special_case (svfloat64_t x, svfloat64_t y, svbool_t special) + } + + /* SVE approximation for double-precision atanh, based on log1p. +- The greatest observed error is 2.81 ULP: ++ The greatest observed error is 3.3 ULP: + _ZGVsMxv_atanh(0x1.ffae6288b601p-6) got 0x1.ffd8ff31b5019p-6 + want 0x1.ffd8ff31b501cp-6. */ + svfloat64_t SV_NAME_D1 (atanh) (svfloat64_t x, const svbool_t pg) +@@ -42,7 +42,6 @@ svfloat64_t SV_NAME_D1 (atanh) (svfloat64_t x, const svbool_t pg) + svfloat64_t halfsign = svreinterpret_f64 (svorr_x (pg, sign, Half)); + + /* It is special if iax >= 1. */ +-// svbool_t special = svcmpge (pg, iax, One); + svbool_t special = svacge (pg, x, 1.0); + + /* Computation is performed based on the following sequence of equality: +diff --git a/sysdeps/aarch64/fpu/sv_log1p_inline.h b/sysdeps/aarch64/fpu/sv_log1p_inline.h +index da019674f94dbac7..a9ecd75d19e95d39 100644 +--- a/sysdeps/aarch64/fpu/sv_log1p_inline.h ++++ b/sysdeps/aarch64/fpu/sv_log1p_inline.h +@@ -21,11 +21,12 @@ + #define AARCH64_FPU_SV_LOG1P_INLINE_H + + #include "sv_math.h" +-#include "poly_sve_f64.h" + + static const struct sv_log1p_data + { +- double poly[19], ln2[2]; ++ double c0, c2, c4, c6, c8, c10, c12, c14, c16; ++ double c1, c3, c5, c7, c9, c11, c13, c15, c17, c18; ++ double ln2_lo, ln2_hi; + uint64_t hf_rt2_top; + uint64_t one_m_hf_rt2_top; + uint32_t bottom_mask; +@@ -33,15 +34,30 @@ static const struct sv_log1p_data + } sv_log1p_data = { + /* Coefficients generated using Remez, deg=20, in [sqrt(2)/2-1, sqrt(2)-1]. + */ +- .poly = { -0x1.ffffffffffffbp-2, 0x1.55555555551a9p-2, -0x1.00000000008e3p-2, +- 0x1.9999999a32797p-3, -0x1.555555552fecfp-3, 0x1.249248e071e5ap-3, +- -0x1.ffffff8bf8482p-4, 0x1.c71c8f07da57ap-4, -0x1.9999ca4ccb617p-4, +- 0x1.7459ad2e1dfa3p-4, -0x1.554d2680a3ff2p-4, 0x1.3b4c54d487455p-4, +- -0x1.2548a9ffe80e6p-4, 0x1.0f389a24b2e07p-4, -0x1.eee4db15db335p-5, +- 0x1.e95b494d4a5ddp-5, -0x1.15fdf07cb7c73p-4, 0x1.0310b70800fcfp-4, +- -0x1.cfa7385bdb37ep-6 }, +- .ln2 = { 0x1.62e42fefa3800p-1, 0x1.ef35793c76730p-45 }, ++ .c0 = -0x1.ffffffffffffbp-2, ++ .c1 = 0x1.55555555551a9p-2, ++ .c2 = -0x1.00000000008e3p-2, ++ .c3 = 0x1.9999999a32797p-3, ++ .c4 = -0x1.555555552fecfp-3, ++ .c5 = 0x1.249248e071e5ap-3, ++ .c6 = -0x1.ffffff8bf8482p-4, ++ .c7 = 0x1.c71c8f07da57ap-4, ++ .c8 = -0x1.9999ca4ccb617p-4, ++ .c9 = 0x1.7459ad2e1dfa3p-4, ++ .c10 = -0x1.554d2680a3ff2p-4, ++ .c11 = 0x1.3b4c54d487455p-4, ++ .c12 = -0x1.2548a9ffe80e6p-4, ++ .c13 = 0x1.0f389a24b2e07p-4, ++ .c14 = -0x1.eee4db15db335p-5, ++ .c15 = 0x1.e95b494d4a5ddp-5, ++ .c16 = -0x1.15fdf07cb7c73p-4, ++ .c17 = 0x1.0310b70800fcfp-4, ++ .c18 = -0x1.cfa7385bdb37ep-6, ++ .ln2_lo = 0x1.62e42fefa3800p-1, ++ .ln2_hi = 0x1.ef35793c76730p-45, ++ /* top32(asuint64(sqrt(2)/2)) << 32. */ + .hf_rt2_top = 0x3fe6a09e00000000, ++ /* (top32(asuint64(1)) - top32(asuint64(sqrt(2)/2))) << 32. */ + .one_m_hf_rt2_top = 0x00095f6200000000, + .bottom_mask = 0xffffffff, + .one_top = 0x3ff +@@ -51,14 +67,14 @@ static inline svfloat64_t + sv_log1p_inline (svfloat64_t x, const svbool_t pg) + { + /* Helper for calculating log(x + 1). Adapted from v_log1p_inline.h, which +- differs from v_log1p_2u5.c by: ++ differs from advsimd/log1p.c by: + - No special-case handling - this should be dealt with by the caller. + - Pairwise Horner polynomial evaluation for improved accuracy. + - Optionally simulate the shortcut for k=0, used in the scalar routine, + using svsel, for improved accuracy when the argument to log1p is close + to 0. This feature is enabled by defining WANT_SV_LOG1P_K0_SHORTCUT as 1 + in the source of the caller before including this file. +- See sv_log1p_2u1.c for details of the algorithm. */ ++ See sve/log1p.c for details of the algorithm. */ + const struct sv_log1p_data *d = ptr_barrier (&sv_log1p_data); + svfloat64_t m = svadd_x (pg, x, 1); + svuint64_t mi = svreinterpret_u64 (m); +@@ -79,7 +95,7 @@ sv_log1p_inline (svfloat64_t x, const svbool_t pg) + svfloat64_t cm; + + #ifndef WANT_SV_LOG1P_K0_SHORTCUT +-#error \ ++#error \ + "Cannot use sv_log1p_inline.h without specifying whether you need the k0 shortcut for greater accuracy close to 0" + #elif WANT_SV_LOG1P_K0_SHORTCUT + /* Shortcut if k is 0 - set correction term to 0 and f to x. The result is +@@ -96,14 +112,46 @@ sv_log1p_inline (svfloat64_t x, const svbool_t pg) + #endif + + /* Approximate log1p(f) on the reduced input using a polynomial. */ +- svfloat64_t f2 = svmul_x (pg, f, f); +- svfloat64_t p = sv_pw_horner_18_f64_x (pg, f, f2, d->poly); ++ svfloat64_t f2 = svmul_x (svptrue_b64 (), f, f), ++ f4 = svmul_x (svptrue_b64 (), f2, f2), ++ f8 = svmul_x (svptrue_b64 (), f4, f4), ++ f16 = svmul_x (svptrue_b64 (), f8, f8); ++ ++ svfloat64_t c13 = svld1rq (svptrue_b64 (), &d->c1); ++ svfloat64_t c57 = svld1rq (svptrue_b64 (), &d->c5); ++ svfloat64_t c911 = svld1rq (svptrue_b64 (), &d->c9); ++ svfloat64_t c1315 = svld1rq (svptrue_b64 (), &d->c13); ++ svfloat64_t c1718 = svld1rq (svptrue_b64 (), &d->c17); ++ ++ /* Order-18 Estrin scheme. */ ++ svfloat64_t p01 = svmla_lane (sv_f64 (d->c0), f, c13, 0); ++ svfloat64_t p23 = svmla_lane (sv_f64 (d->c2), f, c13, 1); ++ svfloat64_t p45 = svmla_lane (sv_f64 (d->c4), f, c57, 0); ++ svfloat64_t p67 = svmla_lane (sv_f64 (d->c6), f, c57, 1); ++ ++ svfloat64_t p03 = svmla_x (pg, p01, f2, p23); ++ svfloat64_t p47 = svmla_x (pg, p45, f2, p67); ++ svfloat64_t p07 = svmla_x (pg, p03, f4, p47); ++ ++ svfloat64_t p89 = svmla_lane (sv_f64 (d->c8), f, c911, 0); ++ svfloat64_t p1011 = svmla_lane (sv_f64 (d->c10), f, c911, 1); ++ svfloat64_t p1213 = svmla_lane (sv_f64 (d->c12), f, c1315, 0); ++ svfloat64_t p1415 = svmla_lane (sv_f64 (d->c14), f, c1315, 1); ++ ++ svfloat64_t p811 = svmla_x (pg, p89, f2, p1011); ++ svfloat64_t p1215 = svmla_x (pg, p1213, f2, p1415); ++ svfloat64_t p815 = svmla_x (pg, p811, f4, p1215); ++ ++ svfloat64_t p015 = svmla_x (pg, p07, f8, p815); ++ svfloat64_t p1617 = svmla_lane (sv_f64 (d->c16), f, c1718, 0); ++ svfloat64_t p1618 = svmla_lane (p1617, f2, c1718, 1); ++ svfloat64_t p = svmla_x (pg, p015, f16, p1618); + + /* Assemble log1p(x) = k * log2 + log1p(f) + c/m. */ +- svfloat64_t ylo = svmla_x (pg, cm, k, d->ln2[0]); +- svfloat64_t yhi = svmla_x (pg, f, k, d->ln2[1]); ++ svfloat64_t ln2_lo_hi = svld1rq (svptrue_b64 (), &d->ln2_lo); ++ svfloat64_t ylo = svmla_lane (cm, k, ln2_lo_hi, 0); ++ svfloat64_t yhi = svmla_lane (f, k, ln2_lo_hi, 1); + +- return svmla_x (pg, svadd_x (pg, ylo, yhi), f2, p); ++ return svmad_x (pg, p, f2, svadd_x (pg, ylo, yhi)); + } +- + #endif diff --git a/glibc-RHEL-118273-39.patch b/glibc-RHEL-118273-39.patch new file mode 100644 index 0000000..dc3b229 --- /dev/null +++ b/glibc-RHEL-118273-39.patch @@ -0,0 +1,583 @@ +commit dee22d2a81ab59afc165fb6dcb45d723f13582a0 +Author: Dylan Fleming +Date: Wed Jun 18 16:19:22 2025 +0000 + + AArch64: Optimise SVE FP64 Hyperbolics + + Reworke SVE FP64 hyperbolics to use the SVE FEXPA + instruction. + + Also update the special case handelling for large + inputs to be entirely vectorised. + + Performance improvements on Neoverse V1: + + cosh_sve: 19% for |x| < 709, 5x otherwise + sinh_sve: 24% for |x| < 709, 5.9x otherwise + tanh_sve: 12% for |x| < 19, 9x otherwise + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/fpu/cosh_sve.c b/sysdeps/aarch64/fpu/cosh_sve.c +index e375dd8a3407feb2..3561893ae614e2ea 100644 +--- a/sysdeps/aarch64/fpu/cosh_sve.c ++++ b/sysdeps/aarch64/fpu/cosh_sve.c +@@ -21,71 +21,99 @@ + + static const struct data + { +- float64_t poly[3]; +- float64_t inv_ln2, ln2_hi, ln2_lo, shift, thres; ++ double c0, c2; ++ double c1, c3; ++ float64_t inv_ln2, ln2_hi, ln2_lo, shift; + uint64_t special_bound; + } data = { +- .poly = { 0x1.fffffffffffd4p-2, 0x1.5555571d6b68cp-3, +- 0x1.5555576a59599p-5, }, +- +- .inv_ln2 = 0x1.71547652b82fep8, /* N/ln2. */ +- /* -ln2/N. */ +- .ln2_hi = -0x1.62e42fefa39efp-9, +- .ln2_lo = -0x1.abc9e3b39803f3p-64, +- .shift = 0x1.8p+52, +- .thres = 704.0, +- +- /* 0x1.6p9, above which exp overflows. */ +- .special_bound = 0x4086000000000000, ++ /* Generated using Remez, in [-log(2)/128, log(2)/128]. */ ++ .c0 = 0x1.fffffffffdbcdp-2, ++ .c1 = 0x1.555555555444cp-3, ++ .c2 = 0x1.555573c6a9f7dp-5, ++ .c3 = 0x1.1111266d28935p-7, ++ .ln2_hi = 0x1.62e42fefa3800p-1, ++ .ln2_lo = 0x1.ef35793c76730p-45, ++ /* 1/ln2. */ ++ .inv_ln2 = 0x1.71547652b82fep+0, ++ .shift = 0x1.800000000ff80p+46, /* 1.5*2^46+1022. */ ++ ++ /* asuint(ln(2^(1024 - 1/128))), the value above which exp overflows. */ ++ .special_bound = 0x40862e37e7d8ba72, + }; + +-static svfloat64_t NOINLINE +-special_case (svfloat64_t x, svbool_t pg, svfloat64_t t, svbool_t special) +-{ +- svfloat64_t half_t = svmul_x (svptrue_b64 (), t, 0.5); +- svfloat64_t half_over_t = svdivr_x (pg, t, 0.5); +- svfloat64_t y = svadd_x (pg, half_t, half_over_t); +- return sv_call_f64 (cosh, x, y, special); +-} +- +-/* Helper for approximating exp(x). Copied from sv_exp_tail, with no +- special-case handling or tail. */ ++/* Helper for approximating exp(x)/2. ++ Functionally identical to FEXPA exp(x), but an adjustment in ++ the shift value which leads to a reduction in the exponent of scale by 1, ++ thus halving the result at no cost. */ + static inline svfloat64_t +-exp_inline (svfloat64_t x, const svbool_t pg, const struct data *d) ++exp_over_two_inline (const svbool_t pg, svfloat64_t x, const struct data *d) + { + /* Calculate exp(x). */ + svfloat64_t z = svmla_x (pg, sv_f64 (d->shift), x, d->inv_ln2); ++ svuint64_t u = svreinterpret_u64 (z); + svfloat64_t n = svsub_x (pg, z, d->shift); + +- svfloat64_t r = svmla_x (pg, x, n, d->ln2_hi); +- r = svmla_x (pg, r, n, d->ln2_lo); ++ svfloat64_t c13 = svld1rq (svptrue_b64 (), &d->c1); ++ svfloat64_t ln2 = svld1rq (svptrue_b64 (), &d->ln2_hi); + +- svuint64_t u = svreinterpret_u64 (z); +- svuint64_t e = svlsl_x (pg, u, 52 - V_EXP_TAIL_TABLE_BITS); +- svuint64_t i = svand_x (svptrue_b64 (), u, 0xff); ++ svfloat64_t r = x; ++ r = svmls_lane (r, n, ln2, 0); ++ r = svmls_lane (r, n, ln2, 1); + +- svfloat64_t y = svmla_x (pg, sv_f64 (d->poly[1]), r, d->poly[2]); +- y = svmla_x (pg, sv_f64 (d->poly[0]), r, y); +- y = svmla_x (pg, sv_f64 (1.0), r, y); +- y = svmul_x (svptrue_b64 (), r, y); ++ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r); ++ svfloat64_t p01 = svmla_lane (sv_f64 (d->c0), r, c13, 0); ++ svfloat64_t p23 = svmla_lane (sv_f64 (d->c2), r, c13, 1); ++ svfloat64_t p04 = svmla_x (pg, p01, p23, r2); ++ svfloat64_t p = svmla_x (pg, r, p04, r2); + +- /* s = 2^(n/N). */ +- u = svld1_gather_index (pg, __v_exp_tail_data, i); +- svfloat64_t s = svreinterpret_f64 (svadd_x (pg, u, e)); ++ svfloat64_t scale = svexpa (u); + +- return svmla_x (pg, s, s, y); ++ return svmla_x (pg, scale, scale, p); ++} ++ ++/* Vectorised special case to handle values past where exp_inline overflows. ++ Halves the input value and uses the identity exp(x) = exp(x/2)^2 to double ++ the valid range of inputs, and returns inf for anything past that. */ ++static svfloat64_t NOINLINE ++special_case (svbool_t pg, svbool_t special, svfloat64_t ax, svfloat64_t t, ++ const struct data *d) ++{ ++ /* Finish fast path to compute values for non-special cases. */ ++ svfloat64_t inv_twoexp = svdivr_x (pg, t, 0.25); ++ svfloat64_t y = svadd_x (pg, t, inv_twoexp); ++ ++ /* Halves input value, and then check if any cases ++ are still going to overflow. */ ++ ax = svmul_x (special, ax, 0.5); ++ svbool_t is_safe ++ = svcmplt (special, svreinterpret_u64 (ax), d->special_bound); ++ ++ /* Computes exp(x/2), and sets any overflowing lanes to inf. */ ++ svfloat64_t half_exp = exp_over_two_inline (special, ax, d); ++ half_exp = svsel (is_safe, half_exp, sv_f64 (INFINITY)); ++ ++ /* Construct special case cosh(x) = (exp(x/2)^2)/2. */ ++ svfloat64_t exp = svmul_x (svptrue_b64 (), half_exp, 2); ++ svfloat64_t special_y = svmul_x (special, exp, half_exp); ++ ++ /* Select correct return values for special and non-special cases. */ ++ special_y = svsel (special, special_y, y); ++ ++ /* Ensure an input of nan is correctly propagated. */ ++ svbool_t is_nan ++ = svcmpgt (special, svreinterpret_u64 (ax), sv_u64 (0x7ff0000000000000)); ++ return svsel (is_nan, ax, svsel (special, special_y, y)); + } + + /* Approximation for SVE double-precision cosh(x) using exp_inline. + cosh(x) = (exp(x) + exp(-x)) / 2. +- The greatest observed error is in the scalar fall-back region, so is the +- same as the scalar routine, 1.93 ULP: +- _ZGVsMxv_cosh (0x1.628ad45039d2fp+9) got 0x1.fd774e958236dp+1021 +- want 0x1.fd774e958236fp+1021. +- +- The greatest observed error in the non-special region is 1.54 ULP: +- _ZGVsMxv_cosh (0x1.ba5651dd4486bp+2) got 0x1.f5e2bb8d5c98fp+8 +- want 0x1.f5e2bb8d5c991p+8. */ ++ The greatest observed error in special case region is 2.66 + 0.5 ULP: ++ _ZGVsMxv_cosh (0x1.633b532ffbc1ap+9) got 0x1.f9b2d3d22399ep+1023 ++ want 0x1.f9b2d3d22399bp+1023 ++ ++ The greatest observed error in the non-special region is 1.01 + 0.5 ULP: ++ _ZGVsMxv_cosh (0x1.998ecbb3c1f81p+1) got 0x1.890b225657f84p+3 ++ want 0x1.890b225657f82p+3. */ + svfloat64_t SV_NAME_D1 (cosh) (svfloat64_t x, const svbool_t pg) + { + const struct data *d = ptr_barrier (&data); +@@ -94,14 +122,13 @@ svfloat64_t SV_NAME_D1 (cosh) (svfloat64_t x, const svbool_t pg) + svbool_t special = svcmpgt (pg, svreinterpret_u64 (ax), d->special_bound); + + /* Up to the point that exp overflows, we can use it to calculate cosh by +- exp(|x|) / 2 + 1 / (2 * exp(|x|)). */ +- svfloat64_t t = exp_inline (ax, pg, d); ++ (exp(|x|)/2 + 1) / (2 * exp(|x|)). */ ++ svfloat64_t half_exp = exp_over_two_inline (pg, ax, d); + +- /* Fall back to scalar for any special cases. */ ++ /* Falls back to entirely standalone vectorized special case. */ + if (__glibc_unlikely (svptest_any (pg, special))) +- return special_case (x, pg, t, special); ++ return special_case (pg, special, ax, half_exp, d); + +- svfloat64_t half_t = svmul_x (svptrue_b64 (), t, 0.5); +- svfloat64_t half_over_t = svdivr_x (pg, t, 0.5); +- return svadd_x (pg, half_t, half_over_t); ++ svfloat64_t inv_twoexp = svdivr_x (pg, half_exp, 0.25); ++ return svadd_x (pg, half_exp, inv_twoexp); + } +diff --git a/sysdeps/aarch64/fpu/sinh_sve.c b/sysdeps/aarch64/fpu/sinh_sve.c +index df5f6c8c06e5b173..ac7b306018bda613 100644 +--- a/sysdeps/aarch64/fpu/sinh_sve.c ++++ b/sysdeps/aarch64/fpu/sinh_sve.c +@@ -18,90 +18,153 @@ + . */ + + #include "sv_math.h" +-#include "poly_sve_f64.h" + + static const struct data + { +- float64_t poly[11]; +- float64_t inv_ln2, m_ln2_hi, m_ln2_lo, shift; + uint64_t halff; +- int64_t onef; +- uint64_t large_bound; ++ double c2, c4; ++ double inv_ln2; ++ double ln2_hi, ln2_lo; ++ double c0, c1, c3; ++ double shift, special_bound, bound; ++ uint64_t expm1_data[20]; + } data = { +- /* Generated using Remez, deg=12 in [-log(2)/2, log(2)/2]. */ +- .poly = { 0x1p-1, 0x1.5555555555559p-3, 0x1.555555555554bp-5, +- 0x1.111111110f663p-7, 0x1.6c16c16c1b5f3p-10, +- 0x1.a01a01affa35dp-13, 0x1.a01a018b4ecbbp-16, +- 0x1.71ddf82db5bb4p-19, 0x1.27e517fc0d54bp-22, +- 0x1.af5eedae67435p-26, 0x1.1f143d060a28ap-29, }, +- +- .inv_ln2 = 0x1.71547652b82fep0, +- .m_ln2_hi = -0x1.62e42fefa39efp-1, +- .m_ln2_lo = -0x1.abc9e3b39803fp-56, +- .shift = 0x1.8p52, +- ++ /* Table lookup of 2^(i/64) - 1, for values of i from 0..19. */ ++ .expm1_data = { ++ 0x0000000000000000, 0x3f864d1f3bc03077, 0x3f966c34c5615d0f, 0x3fa0e8a30eb37901, ++ 0x3fa6ab0d9f3121ec, 0x3fac7d865a7a3440, 0x3fb1301d0125b50a, 0x3fb429aaea92ddfb, ++ 0x3fb72b83c7d517ae, 0x3fba35beb6fcb754, 0x3fbd4873168b9aa8, 0x3fc031dc431466b2, ++ 0x3fc1c3d373ab11c3, 0x3fc35a2b2f13e6e9, 0x3fc4f4efa8fef709, 0x3fc6942d3720185a, ++ 0x3fc837f0518db8a9, 0x3fc9e0459320b7fa, 0x3fcb8d39b9d54e55, 0x3fcd3ed9a72cffb7, ++ }, ++ ++ /* Generated using Remez, in [-log(2)/128, log(2)/128]. */ ++ .c0 = 0x1p-1, ++ .c1 = 0x1.55555555548f9p-3, ++ .c2 = 0x1.5555555554c22p-5, ++ .c3 = 0x1.111123aaa2fb2p-7, ++ .c4 = 0x1.6c16d77d98e5bp-10, ++ .ln2_hi = 0x1.62e42fefa3800p-1, ++ .ln2_lo = 0x1.ef35793c76730p-45, ++ .inv_ln2 = 0x1.71547652b82fep+0, ++ .shift = 0x1.800000000ffc0p+46, /* 1.5*2^46+1023. */ + .halff = 0x3fe0000000000000, +- .onef = 0x3ff0000000000000, +- /* 2^9. expm1 helper overflows for large input. */ +- .large_bound = 0x4080000000000000, ++ .special_bound = 0x1.62e37e7d8ba72p+9, /* ln(2^(1024 - 1/128)). */ ++ .bound = 0x1.a56ef8ec924ccp-3 /* 19*ln2/64. */ + }; + ++/* A specialised FEXPA expm1 that is only valid for positive inputs and ++ has no special cases. Based off the full FEXPA expm1 implementated for ++ _ZGVsMxv_expm1, with a slightly modified file to keep sinh under 3.5ULP. */ + static inline svfloat64_t +-expm1_inline (svfloat64_t x, svbool_t pg) ++expm1_inline (svbool_t pg, svfloat64_t x) + { + const struct data *d = ptr_barrier (&data); + +- /* Reduce argument: +- exp(x) - 1 = 2^i * (expm1(f) + 1) - 1 +- where i = round(x / ln2) +- and f = x - i * ln2 (f in [-ln2/2, ln2/2]). */ +- svfloat64_t j +- = svsub_x (pg, svmla_x (pg, sv_f64 (d->shift), x, d->inv_ln2), d->shift); +- svint64_t i = svcvt_s64_x (pg, j); +- svfloat64_t f = svmla_x (pg, x, j, d->m_ln2_hi); +- f = svmla_x (pg, f, j, d->m_ln2_lo); +- /* Approximate expm1(f) using polynomial. */ +- svfloat64_t f2 = svmul_x (pg, f, f); +- svfloat64_t f4 = svmul_x (pg, f2, f2); +- svfloat64_t f8 = svmul_x (pg, f4, f4); +- svfloat64_t p +- = svmla_x (pg, f, f2, sv_estrin_10_f64_x (pg, f, f2, f4, f8, d->poly)); +- /* t = 2^i. */ +- svfloat64_t t = svscale_x (pg, sv_f64 (1), i); +- /* expm1(x) ~= p * t + (t - 1). */ +- return svmla_x (pg, svsub_x (pg, t, 1.0), p, t); ++ svfloat64_t z = svmla_x (pg, sv_f64 (d->shift), x, d->inv_ln2); ++ svuint64_t u = svreinterpret_u64 (z); ++ svfloat64_t n = svsub_x (pg, z, d->shift); ++ ++ svfloat64_t ln2 = svld1rq (svptrue_b64 (), &d->ln2_hi); ++ svfloat64_t c24 = svld1rq (svptrue_b64 (), &d->c2); ++ ++ svfloat64_t r = x; ++ r = svmls_lane (r, n, ln2, 0); ++ r = svmls_lane (r, n, ln2, 1); ++ ++ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r); ++ ++ svfloat64_t p; ++ svfloat64_t c12 = svmla_lane (sv_f64 (d->c1), r, c24, 0); ++ svfloat64_t c34 = svmla_lane (sv_f64 (d->c3), r, c24, 1); ++ p = svmad_x (pg, c34, r2, c12); ++ p = svmad_x (pg, p, r, sv_f64 (d->c0)); ++ p = svmad_x (pg, p, r2, r); ++ ++ svfloat64_t scale = svexpa (u); ++ ++ /* We want to construct expm1(x) = (scale - 1) + scale * poly. ++ However, for values of scale close to 1, scale-1 causes large ULP errors ++ due to cancellation. ++ ++ This can be circumvented by using a small lookup for scale-1 ++ when our input is below a certain bound, otherwise we can use FEXPA. */ ++ svbool_t is_small = svaclt (pg, x, d->bound); ++ ++ /* Index via the input of FEXPA, but we only care about the lower 5 bits. */ ++ svuint64_t base_idx = svand_x (pg, u, 0x1f); ++ ++ /* Compute scale - 1 from FEXPA, and lookup values where this fails. */ ++ svfloat64_t scalem1_estimate = svsub_x (pg, scale, sv_f64 (1.0)); ++ svuint64_t scalem1_lookup ++ = svld1_gather_index (is_small, d->expm1_data, base_idx); ++ ++ /* Select the appropriate scale - 1 value based on x. */ ++ svfloat64_t scalem1 ++ = svsel (is_small, svreinterpret_f64 (scalem1_lookup), scalem1_estimate); ++ ++ /* return expm1 = scale - 1 + (scale * poly). */ ++ return svmla_x (pg, scalem1, scale, p); + } + ++/* Vectorised special case to handle values past where exp_inline overflows. ++ Halves the input value and uses the identity exp(x) = exp(x/2)^2 to double ++ the valid range of inputs, and returns inf for anything past that. */ + static svfloat64_t NOINLINE +-special_case (svfloat64_t x, svbool_t pg) ++special_case (svbool_t pg, svbool_t special, svfloat64_t ax, ++ svfloat64_t halfsign, const struct data *d) + { +- return sv_call_f64 (sinh, x, x, pg); ++ /* Halves input value, and then check if any cases ++ are still going to overflow. */ ++ ax = svmul_x (special, ax, 0.5); ++ svbool_t is_safe = svaclt (special, ax, d->special_bound); ++ ++ svfloat64_t t = expm1_inline (pg, ax); ++ ++ /* Finish fastpass to compute values for non-special cases. */ ++ svfloat64_t y = svadd_x (pg, t, svdiv_x (pg, t, svadd_x (pg, t, 1.0))); ++ y = svmul_x (pg, y, halfsign); ++ ++ /* Computes special lane, and set remaining overflow lanes to inf. */ ++ svfloat64_t half_special_y = svmul_x (svptrue_b64 (), t, halfsign); ++ svfloat64_t special_y = svmul_x (svptrue_b64 (), half_special_y, t); ++ ++ svuint64_t signed_inf ++ = svorr_x (svptrue_b64 (), svreinterpret_u64 (halfsign), ++ sv_u64 (0x7ff0000000000000)); ++ special_y = svsel (is_safe, special_y, svreinterpret_f64 (signed_inf)); ++ ++ /* Join resulting vectors together and return. */ ++ return svsel (special, special_y, y); + } + +-/* Approximation for SVE double-precision sinh(x) using expm1. +- sinh(x) = (exp(x) - exp(-x)) / 2. +- The greatest observed error is 2.57 ULP: +- _ZGVsMxv_sinh (0x1.a008538399931p-2) got 0x1.ab929fc64bd66p-2 +- want 0x1.ab929fc64bd63p-2. */ ++/* Approximation for SVE double-precision sinh(x) using FEXPA expm1. ++ Uses sinh(x) = e^2x - 1 / 2e^x, rewritten for accuracy. ++ The greatest observed error in the non-special region is 2.63 + 0.5 ULP: ++ _ZGVsMxv_sinh (0x1.b5e0e13ba88aep-2) got 0x1.c3587faf97b0cp-2 ++ want 0x1.c3587faf97b09p-2 ++ ++ The greatest observed error in the special region is 2.65 + 0.5 ULP: ++ _ZGVsMxv_sinh (0x1.633ce847dab1ap+9) got 0x1.fffd30eea0066p+1023 ++ want 0x1.fffd30eea0063p+1023. */ + svfloat64_t SV_NAME_D1 (sinh) (svfloat64_t x, svbool_t pg) + { + const struct data *d = ptr_barrier (&data); + ++ svbool_t special = svacge (pg, x, d->special_bound); + svfloat64_t ax = svabs_x (pg, x); + svuint64_t sign + = sveor_x (pg, svreinterpret_u64 (x), svreinterpret_u64 (ax)); + svfloat64_t halfsign = svreinterpret_f64 (svorr_x (pg, sign, d->halff)); + +- svbool_t special = svcmpge (pg, svreinterpret_u64 (ax), d->large_bound); +- + /* Fall back to scalar variant for all lanes if any are special. */ + if (__glibc_unlikely (svptest_any (pg, special))) +- return special_case (x, pg); ++ return special_case (pg, special, ax, halfsign, d); + + /* Up to the point that expm1 overflows, we can use it to calculate sinh + using a slight rearrangement of the definition of sinh. This allows us to + retain acceptable accuracy for very small inputs. */ +- svfloat64_t t = expm1_inline (ax, pg); ++ svfloat64_t t = expm1_inline (pg, ax); + t = svadd_x (pg, t, svdiv_x (pg, t, svadd_x (pg, t, 1.0))); + return svmul_x (pg, t, halfsign); + } +diff --git a/sysdeps/aarch64/fpu/tanh_sve.c b/sysdeps/aarch64/fpu/tanh_sve.c +index d25e011cea305094..805669845d09e098 100644 +--- a/sysdeps/aarch64/fpu/tanh_sve.c ++++ b/sysdeps/aarch64/fpu/tanh_sve.c +@@ -18,83 +18,117 @@ + . */ + + #include "sv_math.h" +-#include "poly_sve_f64.h" + + static const struct data + { +- float64_t poly[11]; +- float64_t inv_ln2, ln2_hi, ln2_lo, shift; +- uint64_t thresh, tiny_bound; ++ double ln2_hi, ln2_lo; ++ double c2, c4; ++ double c0, c1, c3; ++ double two_over_ln2, shift; ++ uint64_t tiny_bound; ++ double large_bound, fexpa_bound; ++ uint64_t e2xm1_data[20]; + } data = { +- /* Generated using Remez, deg=12 in [-log(2)/2, log(2)/2]. */ +- .poly = { 0x1p-1, 0x1.5555555555559p-3, 0x1.555555555554bp-5, +- 0x1.111111110f663p-7, 0x1.6c16c16c1b5f3p-10, +- 0x1.a01a01affa35dp-13, 0x1.a01a018b4ecbbp-16, +- 0x1.71ddf82db5bb4p-19, 0x1.27e517fc0d54bp-22, +- 0x1.af5eedae67435p-26, 0x1.1f143d060a28ap-29, }, +- +- .inv_ln2 = 0x1.71547652b82fep0, +- .ln2_hi = -0x1.62e42fefa39efp-1, +- .ln2_lo = -0x1.abc9e3b39803fp-56, +- .shift = 0x1.8p52, +- ++ /* Generated using Remez, in [-log(2)/128, log(2)/128]. */ ++ .c0 = 0x1p-1, ++ .c1 = 0x1.55555555548f9p-3, ++ .c2 = 0x1.5555555554c22p-5, ++ .c3 = 0x1.111123aaa2fb2p-7, ++ .c4 = 0x1.6c16d77d98e5bp-10, ++ .ln2_hi = 0x1.62e42fefa3800p-1, ++ .ln2_lo = 0x1.ef35793c76730p-45, ++ .two_over_ln2 = 0x1.71547652b82fep+1, ++ .shift = 0x1.800000000ffc0p+46, /* 1.5*2^46+1023. */ + .tiny_bound = 0x3e40000000000000, /* asuint64 (0x1p-27). */ +- /* asuint64(0x1.241bf835f9d5fp+4) - asuint64(tiny_bound). */ +- .thresh = 0x01f241bf835f9d5f, ++ .large_bound = 0x1.30fc1931f09cap+4, /* arctanh(1 - 2^-54). */ ++ .fexpa_bound = 0x1.a56ef8ec924ccp-4, /* 19/64 * ln2/2. */ ++ /* Table lookup of 2^(i/64) - 1, for values of i from 0..19. */ ++ .e2xm1_data = { ++ 0x0000000000000000, 0x3f864d1f3bc03077, 0x3f966c34c5615d0f, 0x3fa0e8a30eb37901, ++ 0x3fa6ab0d9f3121ec, 0x3fac7d865a7a3440, 0x3fb1301d0125b50a, 0x3fb429aaea92ddfb, ++ 0x3fb72b83c7d517ae, 0x3fba35beb6fcb754, 0x3fbd4873168b9aa8, 0x3fc031dc431466b2, ++ 0x3fc1c3d373ab11c3, 0x3fc35a2b2f13e6e9, 0x3fc4f4efa8fef709, 0x3fc6942d3720185a, ++ 0x3fc837f0518db8a9, 0x3fc9e0459320b7fa, 0x3fcb8d39b9d54e55, 0x3fcd3ed9a72cffb7, ++ }, + }; + ++/* An expm1 inspired, FEXPA based helper function that returns an ++ accurate estimate for e^2x - 1. With no special case or support for ++ negative inputs of x. */ + static inline svfloat64_t +-expm1_inline (svfloat64_t x, const svbool_t pg, const struct data *d) +-{ +- /* Helper routine for calculating exp(x) - 1. Vector port of the helper from +- the scalar variant of tanh. */ +- +- /* Reduce argument: f in [-ln2/2, ln2/2], i is exact. */ +- svfloat64_t j +- = svsub_x (pg, svmla_x (pg, sv_f64 (d->shift), x, d->inv_ln2), d->shift); +- svint64_t i = svcvt_s64_x (pg, j); +- svfloat64_t f = svmla_x (pg, x, j, d->ln2_hi); +- f = svmla_x (pg, f, j, d->ln2_lo); +- +- /* Approximate expm1(f) using polynomial. */ +- svfloat64_t f2 = svmul_x (pg, f, f); +- svfloat64_t f4 = svmul_x (pg, f2, f2); +- svfloat64_t p = svmla_x ( +- pg, f, f2, +- sv_estrin_10_f64_x (pg, f, f2, f4, svmul_x (pg, f4, f4), d->poly)); +- +- /* t = 2 ^ i. */ +- svfloat64_t t = svscale_x (pg, sv_f64 (1), i); +- /* expm1(x) = p * t + (t - 1). */ +- return svmla_x (pg, svsub_x (pg, t, 1), p, t); +-} +- +-static svfloat64_t NOINLINE +-special_case (svfloat64_t x, svfloat64_t y, svbool_t special) ++e2xm1_inline (const svbool_t pg, svfloat64_t x, const struct data *d) + { +- return sv_call_f64 (tanh, x, y, special); ++ svfloat64_t z = svmla_x (pg, sv_f64 (d->shift), x, d->two_over_ln2); ++ svuint64_t u = svreinterpret_u64 (z); ++ svfloat64_t n = svsub_x (pg, z, d->shift); ++ ++ /* r = x - n * ln2/2, r is in [-ln2/(2N), ln2/(2N)]. */ ++ svfloat64_t ln2 = svld1rq (svptrue_b64 (), &d->ln2_hi); ++ svfloat64_t r = svadd_x (pg, x, x); ++ r = svmls_lane (r, n, ln2, 0); ++ r = svmls_lane (r, n, ln2, 1); ++ ++ /* y = exp(r) - 1 ~= r + C0 r^2 + C1 r^3 + C2 r^4 + C3 r^5 + C4 r^6. */ ++ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r); ++ svfloat64_t c24 = svld1rq (svptrue_b64 (), &d->c2); ++ ++ svfloat64_t p; ++ svfloat64_t c12 = svmla_lane (sv_f64 (d->c1), r, c24, 0); ++ svfloat64_t c34 = svmla_lane (sv_f64 (d->c3), r, c24, 1); ++ p = svmad_x (pg, c34, r2, c12); ++ p = svmad_x (pg, p, r, sv_f64 (d->c0)); ++ p = svmad_x (pg, p, r2, r); ++ ++ svfloat64_t scale = svexpa (u); ++ ++ /* We want to construct e2xm1(x) = (scale - 1) + scale * poly. ++ However, for values of scale close to 1, scale-1 causes large ULP errors ++ due to cancellation. ++ ++ This can be circumvented by using a small lookup for scale-1 ++ when our input is below a certain bound, otherwise we can use FEXPA. */ ++ svbool_t is_small = svaclt (pg, x, d->fexpa_bound); ++ ++ /* Index via the input of FEXPA, but we only care about the lower 5 bits. */ ++ svuint64_t base_idx = svand_x (pg, u, 0x1f); ++ ++ /* Compute scale - 1 from FEXPA, and lookup values where this fails. */ ++ svfloat64_t scalem1_estimate = svsub_x (pg, scale, sv_f64 (1.0)); ++ svuint64_t scalem1_lookup ++ = svld1_gather_index (is_small, d->e2xm1_data, base_idx); ++ ++ /* Select the appropriate scale - 1 value based on x. */ ++ svfloat64_t scalem1 ++ = svsel (is_small, svreinterpret_f64 (scalem1_lookup), scalem1_estimate); ++ return svmla_x (pg, scalem1, scale, p); + } + +-/* SVE approximation for double-precision tanh(x), using a simplified +- version of expm1. The greatest observed error is 2.77 ULP: +- _ZGVsMxv_tanh(-0x1.c4a4ca0f9f3b7p-3) got -0x1.bd6a21a163627p-3 +- want -0x1.bd6a21a163624p-3. */ ++/* SVE approximation for double-precision tanh(x), using a modified version of ++ FEXPA expm1 to calculate e^2x - 1. ++ The greatest observed error is 2.79 + 0.5 ULP: ++ _ZGVsMxv_tanh (0x1.fff868eb3c223p-9) got 0x1.fff7be486cae6p-9 ++ want 0x1.fff7be486cae9p-9. */ + svfloat64_t SV_NAME_D1 (tanh) (svfloat64_t x, svbool_t pg) + { + const struct data *d = ptr_barrier (&data); + +- svuint64_t ia = svreinterpret_u64 (svabs_x (pg, x)); ++ svbool_t large = svacge (pg, x, d->large_bound); + +- /* Trigger special-cases for tiny, boring and infinity/NaN. */ +- svbool_t special = svcmpgt (pg, svsub_x (pg, ia, d->tiny_bound), d->thresh); ++ /* We can use tanh(x) = (e^2x - 1) / (e^2x + 1) to approximate tanh. ++ As an additional optimisation, we can ensure more accurate values of e^x ++ by only using positive inputs. So we calculate tanh(|x|), and restore the ++ sign of the input before returning. */ ++ svfloat64_t ax = svabs_x (pg, x); ++ svuint64_t sign_bit ++ = sveor_x (pg, svreinterpret_u64 (x), svreinterpret_u64 (ax)); + +- svfloat64_t u = svadd_x (pg, x, x); ++ svfloat64_t p = e2xm1_inline (pg, ax, d); ++ svfloat64_t q = svadd_x (pg, p, 2); + +- /* tanh(x) = (e^2x - 1) / (e^2x + 1). */ +- svfloat64_t q = expm1_inline (u, pg, d); +- svfloat64_t qp2 = svadd_x (pg, q, 2); ++ /* For sufficiently high inputs, the result of tanh(|x|) is 1 when correctly ++ rounded, at this point we can return 1 directly, with sign correction. ++ This will also act as a guard against our approximation overflowing. */ ++ svfloat64_t y = svsel (large, sv_f64 (1.0), svdiv_x (pg, p, q)); + +- if (__glibc_unlikely (svptest_any (pg, special))) +- return special_case (x, svdiv_x (pg, q, qp2), special); +- return svdiv_x (pg, q, qp2); ++ return svreinterpret_f64 (svorr_x (pg, sign_bit, svreinterpret_u64 (y))); + } diff --git a/glibc-RHEL-118273-4.patch b/glibc-RHEL-118273-4.patch new file mode 100644 index 0000000..e10d584 --- /dev/null +++ b/glibc-RHEL-118273-4.patch @@ -0,0 +1,673 @@ +commit 81406ea3c5b5ad19e307302c13dd642785b47948 +Author: Joe Ramsay +Date: Tue Feb 20 16:59:41 2024 +0000 + + aarch64/fpu: Add vector variants of asinh + + Reviewed-by: Szabolcs Nagy + +diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile +index 2e5bbb5a07f4c9b0..d474f2969dd05c26 100644 +--- a/sysdeps/aarch64/fpu/Makefile ++++ b/sysdeps/aarch64/fpu/Makefile +@@ -1,6 +1,7 @@ + libmvec-supported-funcs = acos \ + acosh \ + asin \ ++ asinh \ + atan \ + atan2 \ + cos \ +diff --git a/sysdeps/aarch64/fpu/Versions b/sysdeps/aarch64/fpu/Versions +index 60e1cdeacec3f77e..08ea15efaec959fb 100644 +--- a/sysdeps/aarch64/fpu/Versions ++++ b/sysdeps/aarch64/fpu/Versions +@@ -84,6 +84,11 @@ libmvec { + _ZGVnN4v_acoshf; + _ZGVsMxv_acosh; + _ZGVsMxv_acoshf; ++ _ZGVnN2v_asinh; ++ _ZGVnN2v_asinhf; ++ _ZGVnN4v_asinhf; ++ _ZGVsMxv_asinh; ++ _ZGVsMxv_asinhf; + _ZGVnN2v_cosh; + _ZGVnN2v_coshf; + _ZGVnN4v_coshf; +diff --git a/sysdeps/aarch64/fpu/advsimd_f32_protos.h b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +index 22fec4de77395e60..1e80721c9f73ba12 100644 +--- a/sysdeps/aarch64/fpu/advsimd_f32_protos.h ++++ b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +@@ -20,6 +20,7 @@ + libmvec_hidden_proto (V_NAME_F1(acos)); + libmvec_hidden_proto (V_NAME_F1(acosh)); + libmvec_hidden_proto (V_NAME_F1(asin)); ++libmvec_hidden_proto (V_NAME_F1(asinh)); + libmvec_hidden_proto (V_NAME_F1(atan)); + libmvec_hidden_proto (V_NAME_F1(cos)); + libmvec_hidden_proto (V_NAME_F1(cosh)); +diff --git a/sysdeps/aarch64/fpu/asinh_advsimd.c b/sysdeps/aarch64/fpu/asinh_advsimd.c +new file mode 100644 +index 0000000000000000..544a52f6515d3201 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/asinh_advsimd.c +@@ -0,0 +1,171 @@ ++/* Double-precision vector (Advanced SIMD) asinh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_math.h" ++#include "poly_advsimd_f64.h" ++ ++#define A(i) v_f64 (__v_log_data.poly[i]) ++#define N (1 << V_LOG_TABLE_BITS) ++ ++const static struct data ++{ ++ float64x2_t poly[18]; ++ uint64x2_t off, huge_bound, abs_mask; ++ float64x2_t ln2, tiny_bound; ++} data = { ++ .off = V2 (0x3fe6900900000000), ++ .ln2 = V2 (0x1.62e42fefa39efp-1), ++ .huge_bound = V2 (0x5fe0000000000000), ++ .tiny_bound = V2 (0x1p-26), ++ .abs_mask = V2 (0x7fffffffffffffff), ++ /* Even terms of polynomial s.t. asinh(x) is approximated by ++ asinh(x) ~= x + x^3 * (C0 + C1 * x + C2 * x^2 + C3 * x^3 + ...). ++ Generated using Remez, f = (asinh(sqrt(x)) - sqrt(x))/x^(3/2). */ ++ .poly = { V2 (-0x1.55555555554a7p-3), V2 (0x1.3333333326c7p-4), ++ V2 (-0x1.6db6db68332e6p-5), V2 (0x1.f1c71b26fb40dp-6), ++ V2 (-0x1.6e8b8b654a621p-6), V2 (0x1.1c4daa9e67871p-6), ++ V2 (-0x1.c9871d10885afp-7), V2 (0x1.7a16e8d9d2ecfp-7), ++ V2 (-0x1.3ddca533e9f54p-7), V2 (0x1.0becef748dafcp-7), ++ V2 (-0x1.b90c7099dd397p-8), V2 (0x1.541f2bb1ffe51p-8), ++ V2 (-0x1.d217026a669ecp-9), V2 (0x1.0b5c7977aaf7p-9), ++ V2 (-0x1.e0f37daef9127p-11), V2 (0x1.388b5fe542a6p-12), ++ V2 (-0x1.021a48685e287p-14), V2 (0x1.93d4ba83d34dap-18) }, ++}; ++ ++static float64x2_t NOINLINE VPCS_ATTR ++special_case (float64x2_t x, float64x2_t y, uint64x2_t special) ++{ ++ return v_call_f64 (asinh, x, y, special); ++} ++ ++struct entry ++{ ++ float64x2_t invc; ++ float64x2_t logc; ++}; ++ ++static inline struct entry ++lookup (uint64x2_t i) ++{ ++ float64x2_t e0 = vld1q_f64 ( ++ &__v_log_data.table[(i[0] >> (52 - V_LOG_TABLE_BITS)) & (N - 1)].invc); ++ float64x2_t e1 = vld1q_f64 ( ++ &__v_log_data.table[(i[1] >> (52 - V_LOG_TABLE_BITS)) & (N - 1)].invc); ++ return (struct entry){ vuzp1q_f64 (e0, e1), vuzp2q_f64 (e0, e1) }; ++} ++ ++static inline float64x2_t ++log_inline (float64x2_t x, const struct data *d) ++{ ++ /* Double-precision vector log, copied from ordinary vector log with some ++ cosmetic modification and special-cases removed. */ ++ uint64x2_t ix = vreinterpretq_u64_f64 (x); ++ uint64x2_t tmp = vsubq_u64 (ix, d->off); ++ int64x2_t k = vshrq_n_s64 (vreinterpretq_s64_u64 (tmp), 52); ++ uint64x2_t iz ++ = vsubq_u64 (ix, vandq_u64 (tmp, vdupq_n_u64 (0xfffULL << 52))); ++ float64x2_t z = vreinterpretq_f64_u64 (iz); ++ struct entry e = lookup (tmp); ++ float64x2_t r = vfmaq_f64 (v_f64 (-1.0), z, e.invc); ++ float64x2_t kd = vcvtq_f64_s64 (k); ++ float64x2_t hi = vfmaq_f64 (vaddq_f64 (e.logc, r), kd, d->ln2); ++ float64x2_t r2 = vmulq_f64 (r, r); ++ float64x2_t y = vfmaq_f64 (A (2), A (3), r); ++ float64x2_t p = vfmaq_f64 (A (0), A (1), r); ++ y = vfmaq_f64 (y, A (4), r2); ++ y = vfmaq_f64 (p, y, r2); ++ y = vfmaq_f64 (hi, y, r2); ++ return y; ++} ++ ++/* Double-precision implementation of vector asinh(x). ++ asinh is very sensitive around 1, so it is impractical to devise a single ++ low-cost algorithm which is sufficiently accurate on a wide range of input. ++ Instead we use two different algorithms: ++ asinh(x) = sign(x) * log(|x| + sqrt(x^2 + 1) if |x| >= 1 ++ = sign(x) * (|x| + |x|^3 * P(x^2)) otherwise ++ where log(x) is an optimized log approximation, and P(x) is a polynomial ++ shared with the scalar routine. The greatest observed error 3.29 ULP, in ++ |x| >= 1: ++ __v_asinh(0x1.2cd9d717e2c9bp+0) got 0x1.ffffcfd0e234fp-1 ++ want 0x1.ffffcfd0e2352p-1. */ ++VPCS_ATTR float64x2_t V_NAME_D1 (asinh) (float64x2_t x) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ float64x2_t ax = vabsq_f64 (x); ++ uint64x2_t iax = vreinterpretq_u64_f64 (ax); ++ ++ uint64x2_t gt1 = vcgeq_f64 (ax, v_f64 (1)); ++ uint64x2_t special = vcgeq_u64 (iax, d->huge_bound); ++ ++#if WANT_SIMD_EXCEPT ++ uint64x2_t tiny = vcltq_f64 (ax, d->tiny_bound); ++ special = vorrq_u64 (special, tiny); ++#endif ++ ++ /* Option 1: |x| >= 1. ++ Compute asinh(x) according by asinh(x) = log(x + sqrt(x^2 + 1)). ++ If WANT_SIMD_EXCEPT is enabled, sidestep special values, which will ++ overflow, by setting special lanes to 1. These will be fixed later. */ ++ float64x2_t option_1 = v_f64 (0); ++ if (__glibc_likely (v_any_u64 (gt1))) ++ { ++#if WANT_SIMD_EXCEPT ++ float64x2_t xm = v_zerofy_f64 (ax, special); ++#else ++ float64x2_t xm = ax; ++#endif ++ option_1 = log_inline ( ++ vaddq_f64 (xm, vsqrtq_f64 (vfmaq_f64 (v_f64 (1), xm, xm))), d); ++ } ++ ++ /* Option 2: |x| < 1. ++ Compute asinh(x) using a polynomial. ++ If WANT_SIMD_EXCEPT is enabled, sidestep special lanes, which will ++ overflow, and tiny lanes, which will underflow, by setting them to 0. They ++ will be fixed later, either by selecting x or falling back to the scalar ++ special-case. The largest observed error in this region is 1.47 ULPs: ++ __v_asinh(0x1.fdfcd00cc1e6ap-1) got 0x1.c1d6bf874019bp-1 ++ want 0x1.c1d6bf874019cp-1. */ ++ float64x2_t option_2 = v_f64 (0); ++ if (__glibc_likely (v_any_u64 (vceqzq_u64 (gt1)))) ++ { ++#if WANT_SIMD_EXCEPT ++ ax = v_zerofy_f64 (ax, vorrq_u64 (tiny, gt1)); ++#endif ++ float64x2_t x2 = vmulq_f64 (ax, ax), x3 = vmulq_f64 (ax, x2), ++ z2 = vmulq_f64 (x2, x2), z4 = vmulq_f64 (z2, z2), ++ z8 = vmulq_f64 (z4, z4), z16 = vmulq_f64 (z8, z8); ++ float64x2_t p = v_estrin_17_f64 (x2, z2, z4, z8, z16, d->poly); ++ option_2 = vfmaq_f64 (ax, p, x3); ++#if WANT_SIMD_EXCEPT ++ option_2 = vbslq_f64 (tiny, x, option_2); ++#endif ++ } ++ ++ /* Choose the right option for each lane. */ ++ float64x2_t y = vbslq_f64 (gt1, option_1, option_2); ++ /* Copy sign. */ ++ y = vbslq_f64 (d->abs_mask, y, x); ++ ++ if (__glibc_unlikely (v_any_u64 (special))) ++ return special_case (x, y, special); ++ return y; ++} +diff --git a/sysdeps/aarch64/fpu/asinh_sve.c b/sysdeps/aarch64/fpu/asinh_sve.c +new file mode 100644 +index 0000000000000000..28dc5c458750bac4 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/asinh_sve.c +@@ -0,0 +1,150 @@ ++/* Double-precision vector (SVE) asinh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "sv_math.h" ++#include "poly_sve_f64.h" ++ ++#define SignMask (0x8000000000000000) ++#define One (0x3ff0000000000000) ++#define Thres (0x5fe0000000000000) /* asuint64 (0x1p511). */ ++ ++static const struct data ++{ ++ double poly[18]; ++ double ln2, p3, p1, p4, p0, p2; ++ uint64_t n; ++ uint64_t off; ++ ++} data = { ++ /* Polynomial generated using Remez on [2^-26, 1]. */ ++ .poly ++ = { -0x1.55555555554a7p-3, 0x1.3333333326c7p-4, -0x1.6db6db68332e6p-5, ++ 0x1.f1c71b26fb40dp-6, -0x1.6e8b8b654a621p-6, 0x1.1c4daa9e67871p-6, ++ -0x1.c9871d10885afp-7, 0x1.7a16e8d9d2ecfp-7, -0x1.3ddca533e9f54p-7, ++ 0x1.0becef748dafcp-7, -0x1.b90c7099dd397p-8, 0x1.541f2bb1ffe51p-8, ++ -0x1.d217026a669ecp-9, 0x1.0b5c7977aaf7p-9, -0x1.e0f37daef9127p-11, ++ 0x1.388b5fe542a6p-12, -0x1.021a48685e287p-14, 0x1.93d4ba83d34dap-18 }, ++ .ln2 = 0x1.62e42fefa39efp-1, ++ .p0 = -0x1.ffffffffffff7p-2, ++ .p1 = 0x1.55555555170d4p-2, ++ .p2 = -0x1.0000000399c27p-2, ++ .p3 = 0x1.999b2e90e94cap-3, ++ .p4 = -0x1.554e550bd501ep-3, ++ .n = 1 << V_LOG_TABLE_BITS, ++ .off = 0x3fe6900900000000 ++}; ++ ++static svfloat64_t NOINLINE ++special_case (svfloat64_t x, svfloat64_t y, svbool_t special) ++{ ++ return sv_call_f64 (asinh, x, y, special); ++} ++ ++static inline svfloat64_t ++__sv_log_inline (svfloat64_t x, const struct data *d, const svbool_t pg) ++{ ++ /* Double-precision SVE log, copied from SVE log implementation with some ++ cosmetic modification and special-cases removed. See that file for details ++ of the algorithm used. */ ++ ++ svuint64_t ix = svreinterpret_u64 (x); ++ svuint64_t tmp = svsub_x (pg, ix, d->off); ++ svuint64_t i = svand_x (pg, svlsr_x (pg, tmp, (51 - V_LOG_TABLE_BITS)), ++ (d->n - 1) << 1); ++ svint64_t k = svasr_x (pg, svreinterpret_s64 (tmp), 52); ++ svuint64_t iz = svsub_x (pg, ix, svand_x (pg, tmp, 0xfffULL << 52)); ++ svfloat64_t z = svreinterpret_f64 (iz); ++ ++ svfloat64_t invc = svld1_gather_index (pg, &__v_log_data.table[0].invc, i); ++ svfloat64_t logc = svld1_gather_index (pg, &__v_log_data.table[0].logc, i); ++ ++ svfloat64_t ln2_p3 = svld1rq (svptrue_b64 (), &d->ln2); ++ svfloat64_t p1_p4 = svld1rq (svptrue_b64 (), &d->p1); ++ ++ svfloat64_t r = svmla_x (pg, sv_f64 (-1.0), invc, z); ++ svfloat64_t kd = svcvt_f64_x (pg, k); ++ ++ svfloat64_t hi = svmla_lane (svadd_x (pg, logc, r), kd, ln2_p3, 0); ++ svfloat64_t r2 = svmul_x (pg, r, r); ++ ++ svfloat64_t y = svmla_lane (sv_f64 (d->p2), r, ln2_p3, 1); ++ ++ svfloat64_t p = svmla_lane (sv_f64 (d->p0), r, p1_p4, 0); ++ y = svmla_lane (y, r2, p1_p4, 1); ++ y = svmla_x (pg, p, r2, y); ++ y = svmla_x (pg, hi, r2, y); ++ return y; ++} ++ ++/* Double-precision implementation of SVE asinh(x). ++ asinh is very sensitive around 1, so it is impractical to devise a single ++ low-cost algorithm which is sufficiently accurate on a wide range of input. ++ Instead we use two different algorithms: ++ asinh(x) = sign(x) * log(|x| + sqrt(x^2 + 1) if |x| >= 1 ++ = sign(x) * (|x| + |x|^3 * P(x^2)) otherwise ++ where log(x) is an optimized log approximation, and P(x) is a polynomial ++ shared with the scalar routine. The greatest observed error 2.51 ULP, in ++ |x| >= 1: ++ _ZGVsMxv_asinh(0x1.170469d024505p+0) got 0x1.e3181c43b0f36p-1 ++ want 0x1.e3181c43b0f39p-1. */ ++svfloat64_t SV_NAME_D1 (asinh) (svfloat64_t x, const svbool_t pg) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ svuint64_t ix = svreinterpret_u64 (x); ++ svuint64_t iax = svbic_x (pg, ix, SignMask); ++ svuint64_t sign = svand_x (pg, ix, SignMask); ++ svfloat64_t ax = svreinterpret_f64 (iax); ++ ++ svbool_t ge1 = svcmpge (pg, iax, One); ++ svbool_t special = svcmpge (pg, iax, Thres); ++ ++ /* Option 1: |x| >= 1. ++ Compute asinh(x) according by asinh(x) = log(x + sqrt(x^2 + 1)). */ ++ svfloat64_t option_1 = sv_f64 (0); ++ if (__glibc_likely (svptest_any (pg, ge1))) ++ { ++ svfloat64_t x2 = svmul_x (pg, ax, ax); ++ option_1 = __sv_log_inline ( ++ svadd_x (pg, ax, svsqrt_x (pg, svadd_x (pg, x2, 1))), d, pg); ++ } ++ ++ /* Option 2: |x| < 1. ++ Compute asinh(x) using a polynomial. ++ The largest observed error in this region is 1.51 ULPs: ++ _ZGVsMxv_asinh(0x1.fe12bf8c616a2p-1) got 0x1.c1e649ee2681bp-1 ++ want 0x1.c1e649ee2681dp-1. */ ++ svfloat64_t option_2 = sv_f64 (0); ++ if (__glibc_likely (svptest_any (pg, svnot_z (pg, ge1)))) ++ { ++ svfloat64_t x2 = svmul_x (pg, ax, ax); ++ svfloat64_t x4 = svmul_x (pg, x2, x2); ++ svfloat64_t p = sv_pw_horner_17_f64_x (pg, x2, x4, d->poly); ++ option_2 = svmla_x (pg, ax, p, svmul_x (pg, x2, ax)); ++ } ++ ++ /* Choose the right option for each lane. */ ++ svfloat64_t y = svsel (ge1, option_1, option_2); ++ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ return special_case ( ++ x, svreinterpret_f64 (sveor_x (pg, svreinterpret_u64 (y), sign)), ++ special); ++ return svreinterpret_f64 (sveor_x (pg, svreinterpret_u64 (y), sign)); ++} +diff --git a/sysdeps/aarch64/fpu/asinhf_advsimd.c b/sysdeps/aarch64/fpu/asinhf_advsimd.c +new file mode 100644 +index 0000000000000000..09fd8a614305563d +--- /dev/null ++++ b/sysdeps/aarch64/fpu/asinhf_advsimd.c +@@ -0,0 +1,80 @@ ++/* Single-precision vector (Advanced SIMD) asinh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_math.h" ++#include "v_log1pf_inline.h" ++ ++#define SignMask v_u32 (0x80000000) ++ ++const static struct data ++{ ++ struct v_log1pf_data log1pf_consts; ++ uint32x4_t big_bound; ++#if WANT_SIMD_EXCEPT ++ uint32x4_t tiny_bound; ++#endif ++} data = { ++ .log1pf_consts = V_LOG1PF_CONSTANTS_TABLE, ++ .big_bound = V4 (0x5f800000), /* asuint(0x1p64). */ ++#if WANT_SIMD_EXCEPT ++ .tiny_bound = V4 (0x30800000) /* asuint(0x1p-30). */ ++#endif ++}; ++ ++static float32x4_t NOINLINE VPCS_ATTR ++special_case (float32x4_t x, float32x4_t y, uint32x4_t special) ++{ ++ return v_call_f32 (asinhf, x, y, special); ++} ++ ++/* Single-precision implementation of vector asinh(x), using vector log1p. ++ Worst-case error is 2.66 ULP, at roughly +/-0.25: ++ __v_asinhf(0x1.01b04p-2) got 0x1.fe163ep-3 want 0x1.fe1638p-3. */ ++VPCS_ATTR float32x4_t NOINLINE V_NAME_F1 (asinh) (float32x4_t x) ++{ ++ const struct data *dat = ptr_barrier (&data); ++ uint32x4_t iax = vbicq_u32 (vreinterpretq_u32_f32 (x), SignMask); ++ float32x4_t ax = vreinterpretq_f32_u32 (iax); ++ uint32x4_t special = vcgeq_u32 (iax, dat->big_bound); ++ float32x4_t special_arg = x; ++ ++#if WANT_SIMD_EXCEPT ++ /* Sidestep tiny and large values to avoid inadvertently triggering ++ under/overflow. */ ++ special = vorrq_u32 (special, vcltq_u32 (iax, dat->tiny_bound)); ++ if (__glibc_unlikely (v_any_u32 (special))) ++ { ++ ax = v_zerofy_f32 (ax, special); ++ x = v_zerofy_f32 (x, special); ++ } ++#endif ++ ++ /* asinh(x) = log(x + sqrt(x * x + 1)). ++ For positive x, asinh(x) = log1p(x + x * x / (1 + sqrt(x * x + 1))). */ ++ float32x4_t d ++ = vaddq_f32 (v_f32 (1), vsqrtq_f32 (vfmaq_f32 (v_f32 (1), x, x))); ++ float32x4_t y = log1pf_inline ( ++ vaddq_f32 (ax, vdivq_f32 (vmulq_f32 (ax, ax), d)), dat->log1pf_consts); ++ ++ if (__glibc_unlikely (v_any_u32 (special))) ++ return special_case (special_arg, vbslq_f32 (SignMask, x, y), special); ++ return vbslq_f32 (SignMask, x, y); ++} ++libmvec_hidden_def (V_NAME_F1 (asinh)) ++HALF_WIDTH_ALIAS_F1 (asinh) +diff --git a/sysdeps/aarch64/fpu/asinhf_sve.c b/sysdeps/aarch64/fpu/asinhf_sve.c +new file mode 100644 +index 0000000000000000..d85c3a685c0b83ff +--- /dev/null ++++ b/sysdeps/aarch64/fpu/asinhf_sve.c +@@ -0,0 +1,56 @@ ++/* Single-precision vector (SVE) asinh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "sv_math.h" ++#include "sv_log1pf_inline.h" ++ ++#define BigBound (0x5f800000) /* asuint(0x1p64). */ ++ ++static svfloat32_t NOINLINE ++special_case (svfloat32_t x, svfloat32_t y, svbool_t special) ++{ ++ return sv_call_f32 (asinhf, x, y, special); ++} ++ ++/* Single-precision SVE asinh(x) routine. Implements the same algorithm as ++ vector asinhf and log1p. ++ ++ Maximum error is 2.48 ULPs: ++ SV_NAME_F1 (asinh) (0x1.008864p-3) got 0x1.ffbbbcp-4 ++ want 0x1.ffbbb8p-4. */ ++svfloat32_t SV_NAME_F1 (asinh) (svfloat32_t x, const svbool_t pg) ++{ ++ svfloat32_t ax = svabs_x (pg, x); ++ svuint32_t iax = svreinterpret_u32 (ax); ++ svuint32_t sign = sveor_x (pg, svreinterpret_u32 (x), iax); ++ svbool_t special = svcmpge (pg, iax, BigBound); ++ ++ /* asinh(x) = log(x + sqrt(x * x + 1)). ++ For positive x, asinh(x) = log1p(x + x * x / (1 + sqrt(x * x + 1))). */ ++ svfloat32_t ax2 = svmul_x (pg, ax, ax); ++ svfloat32_t d = svadd_x (pg, svsqrt_x (pg, svadd_x (pg, ax2, 1.0f)), 1.0f); ++ svfloat32_t y ++ = sv_log1pf_inline (svadd_x (pg, ax, svdiv_x (pg, ax2, d)), pg); ++ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ return special_case ( ++ x, svreinterpret_f32 (svorr_x (pg, sign, svreinterpret_u32 (y))), ++ special); ++ return svreinterpret_f32 (svorr_x (pg, sign, svreinterpret_u32 (y))); ++} +diff --git a/sysdeps/aarch64/fpu/bits/math-vector.h b/sysdeps/aarch64/fpu/bits/math-vector.h +index 841330956c102ff1..eb2af35b27757fc6 100644 +--- a/sysdeps/aarch64/fpu/bits/math-vector.h ++++ b/sysdeps/aarch64/fpu/bits/math-vector.h +@@ -41,6 +41,10 @@ + # define __DECL_SIMD_asin __DECL_SIMD_aarch64 + # undef __DECL_SIMD_asinf + # define __DECL_SIMD_asinf __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_asinh ++# define __DECL_SIMD_asinh __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_asinhf ++# define __DECL_SIMD_asinhf __DECL_SIMD_aarch64 + # undef __DECL_SIMD_atan + # define __DECL_SIMD_atan __DECL_SIMD_aarch64 + # undef __DECL_SIMD_atanf +@@ -131,6 +135,7 @@ __vpcs __f32x4_t _ZGVnN4vv_atan2f (__f32x4_t, __f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_acosf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_acoshf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_asinf (__f32x4_t); ++__vpcs __f32x4_t _ZGVnN4v_asinhf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_atanf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_cosf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_coshf (__f32x4_t); +@@ -150,6 +155,7 @@ __vpcs __f64x2_t _ZGVnN2vv_atan2 (__f64x2_t, __f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_acos (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_acosh (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_asin (__f64x2_t); ++__vpcs __f64x2_t _ZGVnN2v_asinh (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_atan (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_cos (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_cosh (__f64x2_t); +@@ -174,6 +180,7 @@ __sv_f32_t _ZGVsMxvv_atan2f (__sv_f32_t, __sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_acosf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_acoshf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_asinf (__sv_f32_t, __sv_bool_t); ++__sv_f32_t _ZGVsMxv_asinhf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_atanf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_cosf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_coshf (__sv_f32_t, __sv_bool_t); +@@ -193,6 +200,7 @@ __sv_f64_t _ZGVsMxvv_atan2 (__sv_f64_t, __sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_acos (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_acosh (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_asin (__sv_f64_t, __sv_bool_t); ++__sv_f64_t _ZGVsMxv_asinh (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_atan (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_cos (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_cosh (__sv_f64_t, __sv_bool_t); +diff --git a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +index f4ce1d70096888aa..3d7177c32dcd77a6 100644 +--- a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +@@ -26,6 +26,7 @@ + VPCS_VECTOR_WRAPPER (acos_advsimd, _ZGVnN2v_acos) + VPCS_VECTOR_WRAPPER (acosh_advsimd, _ZGVnN2v_acosh) + VPCS_VECTOR_WRAPPER (asin_advsimd, _ZGVnN2v_asin) ++VPCS_VECTOR_WRAPPER (asinh_advsimd, _ZGVnN2v_asinh) + VPCS_VECTOR_WRAPPER (atan_advsimd, _ZGVnN2v_atan) + VPCS_VECTOR_WRAPPER_ff (atan2_advsimd, _ZGVnN2vv_atan2) + VPCS_VECTOR_WRAPPER (cos_advsimd, _ZGVnN2v_cos) +diff --git a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +index 0e973cc9d7ade813..b88a2afe5c1198c0 100644 +--- a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +@@ -45,6 +45,7 @@ + SVE_VECTOR_WRAPPER (acos_sve, _ZGVsMxv_acos) + SVE_VECTOR_WRAPPER (acosh_sve, _ZGVsMxv_acosh) + SVE_VECTOR_WRAPPER (asin_sve, _ZGVsMxv_asin) ++SVE_VECTOR_WRAPPER (asinh_sve, _ZGVsMxv_asinh) + SVE_VECTOR_WRAPPER (atan_sve, _ZGVsMxv_atan) + SVE_VECTOR_WRAPPER_ff (atan2_sve, _ZGVsMxvv_atan2) + SVE_VECTOR_WRAPPER (cos_sve, _ZGVsMxv_cos) +diff --git a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +index 0ce026b5ea96a064..533655402d3f3737 100644 +--- a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +@@ -26,6 +26,7 @@ + VPCS_VECTOR_WRAPPER (acosf_advsimd, _ZGVnN4v_acosf) + VPCS_VECTOR_WRAPPER (acoshf_advsimd, _ZGVnN4v_acoshf) + VPCS_VECTOR_WRAPPER (asinf_advsimd, _ZGVnN4v_asinf) ++VPCS_VECTOR_WRAPPER (asinhf_advsimd, _ZGVnN4v_asinhf) + VPCS_VECTOR_WRAPPER (atanf_advsimd, _ZGVnN4v_atanf) + VPCS_VECTOR_WRAPPER_ff (atan2f_advsimd, _ZGVnN4vv_atan2f) + VPCS_VECTOR_WRAPPER (cosf_advsimd, _ZGVnN4v_cosf) +diff --git a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +index 398b7373e800cd5b..f7b673e3358e7d82 100644 +--- a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +@@ -45,6 +45,7 @@ + SVE_VECTOR_WRAPPER (acosf_sve, _ZGVsMxv_acosf) + SVE_VECTOR_WRAPPER (acoshf_sve, _ZGVsMxv_acoshf) + SVE_VECTOR_WRAPPER (asinf_sve, _ZGVsMxv_asinf) ++SVE_VECTOR_WRAPPER (asinhf_sve, _ZGVsMxv_asinhf) + SVE_VECTOR_WRAPPER (atanf_sve, _ZGVsMxv_atanf) + SVE_VECTOR_WRAPPER_ff (atan2f_sve, _ZGVsMxvv_atan2f) + SVE_VECTOR_WRAPPER (cosf_sve, _ZGVsMxv_cosf) +diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps +index 1646cdbdd22d93d9..b916e422432014c2 100644 +--- a/sysdeps/aarch64/libm-test-ulps ++++ b/sysdeps/aarch64/libm-test-ulps +@@ -90,11 +90,19 @@ double: 2 + float: 2 + ldouble: 4 + ++Function: "asinh_advsimd": ++double: 1 ++float: 2 ++ + Function: "asinh_downward": + double: 3 + float: 3 + ldouble: 4 + ++Function: "asinh_sve": ++double: 1 ++float: 2 ++ + Function: "asinh_towardzero": + double: 2 + float: 2 +diff --git a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +index f5aaa519f2c8663e..f288afdfdd9c8757 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist ++++ b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +@@ -75,15 +75,20 @@ GLIBC_2.39 _ZGVsMxvv_atan2 F + GLIBC_2.39 _ZGVsMxvv_atan2f F + GLIBC_2.40 _ZGVnN2v_acosh F + GLIBC_2.40 _ZGVnN2v_acoshf F ++GLIBC_2.40 _ZGVnN2v_asinh F ++GLIBC_2.40 _ZGVnN2v_asinhf F + GLIBC_2.40 _ZGVnN2v_cosh F + GLIBC_2.40 _ZGVnN2v_coshf F + GLIBC_2.40 _ZGVnN2v_erf F + GLIBC_2.40 _ZGVnN2v_erff F + GLIBC_2.40 _ZGVnN4v_acoshf F ++GLIBC_2.40 _ZGVnN4v_asinhf F + GLIBC_2.40 _ZGVnN4v_coshf F + GLIBC_2.40 _ZGVnN4v_erff F + GLIBC_2.40 _ZGVsMxv_acosh F + GLIBC_2.40 _ZGVsMxv_acoshf F ++GLIBC_2.40 _ZGVsMxv_asinh F ++GLIBC_2.40 _ZGVsMxv_asinhf F + GLIBC_2.40 _ZGVsMxv_cosh F + GLIBC_2.40 _ZGVsMxv_coshf F + GLIBC_2.40 _ZGVsMxv_erf F diff --git a/glibc-RHEL-118273-40.patch b/glibc-RHEL-118273-40.patch new file mode 100644 index 0000000..15ae781 --- /dev/null +++ b/glibc-RHEL-118273-40.patch @@ -0,0 +1,521 @@ +commit 1e3d1ddf977ecd653de8d0d10eb083d80ac21cf3 +Author: Dylan Fleming +Date: Wed Jun 18 16:17:12 2025 +0000 + + AArch64: Optimize SVE exp functions + + Improve performance of SVE exps by making better use + of the SVE FEXPA instruction. + + Performance improvement on Neoverse V1: + exp2_sve: 21% + exp2f_sve: 24% + exp10f_sve: 23% + expm1_sve: 25% + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/fpu/exp10f_sve.c b/sysdeps/aarch64/fpu/exp10f_sve.c +index 8aa3fa9c4335cfb8..0a4c26450601a1db 100644 +--- a/sysdeps/aarch64/fpu/exp10f_sve.c ++++ b/sysdeps/aarch64/fpu/exp10f_sve.c +@@ -19,26 +19,19 @@ + + #include "sv_math.h" + +-/* For x < -Thres, the result is subnormal and not handled correctly by +- FEXPA. */ +-#define Thres 37.9 ++/* For x < -Thres (-log10(2^126)), the result is subnormal and not handled ++ correctly by FEXPA. */ ++#define Thres 0x1.2f702p+5 + + static const struct data + { +- float log2_10_lo, c0, c2, c4; +- float c1, c3, log10_2; +- float shift, log2_10_hi, thres; ++ float log10_2, log2_10_hi, log2_10_lo, c1; ++ float c0, shift, thres; + } data = { + /* Coefficients generated using Remez algorithm with minimisation of relative +- error. +- rel error: 0x1.89dafa3p-24 +- abs error: 0x1.167d55p-23 in [-log10(2)/2, log10(2)/2] +- maxerr: 0.52 +0.5 ulp. */ +- .c0 = 0x1.26bb16p+1f, +- .c1 = 0x1.5350d2p+1f, +- .c2 = 0x1.04744ap+1f, +- .c3 = 0x1.2d8176p+0f, +- .c4 = 0x1.12b41ap-1f, ++ error. */ ++ .c0 = 0x1.26bb62p1, ++ .c1 = 0x1.53524cp1, + /* 1.5*2^17 + 127, a shift value suitable for FEXPA. */ + .shift = 0x1.803f8p17f, + .log10_2 = 0x1.a934fp+1, +@@ -53,28 +46,23 @@ sv_exp10f_inline (svfloat32_t x, const svbool_t pg, const struct data *d) + /* exp10(x) = 2^(n/N) * 10^r = 2^n * (1 + poly (r)), + with poly(r) in [1/sqrt(2), sqrt(2)] and + x = r + n * log10(2) / N, with r in [-log10(2)/2N, log10(2)/2N]. */ +- +- svfloat32_t lane_consts = svld1rq (svptrue_b32 (), &d->log2_10_lo); ++ svfloat32_t lane_consts = svld1rq (svptrue_b32 (), &d->log10_2); + + /* n = round(x/(log10(2)/N)). */ + svfloat32_t shift = sv_f32 (d->shift); +- svfloat32_t z = svmad_x (pg, sv_f32 (d->log10_2), x, shift); +- svfloat32_t n = svsub_x (svptrue_b32 (), z, shift); ++ svfloat32_t z = svmla_lane (shift, x, lane_consts, 0); ++ svfloat32_t n = svsub_x (pg, z, shift); + + /* r = x - n*log10(2)/N. */ +- svfloat32_t r = svmsb_x (pg, sv_f32 (d->log2_10_hi), n, x); +- r = svmls_lane (r, n, lane_consts, 0); ++ svfloat32_t r = x; ++ r = svmls_lane (r, n, lane_consts, 1); ++ r = svmls_lane (r, n, lane_consts, 2); + + svfloat32_t scale = svexpa (svreinterpret_u32 (z)); + + /* Polynomial evaluation: poly(r) ~ exp10(r)-1. */ +- svfloat32_t p12 = svmla_lane (sv_f32 (d->c1), r, lane_consts, 2); +- svfloat32_t p34 = svmla_lane (sv_f32 (d->c3), r, lane_consts, 3); +- svfloat32_t r2 = svmul_x (svptrue_b32 (), r, r); +- svfloat32_t p14 = svmla_x (pg, p12, p34, r2); +- svfloat32_t p0 = svmul_lane (r, lane_consts, 1); +- svfloat32_t poly = svmla_x (pg, p0, r2, p14); +- ++ svfloat32_t poly = svmla_lane (sv_f32 (d->c0), r, lane_consts, 3); ++ poly = svmul_x (pg, poly, r); + return svmla_x (pg, scale, scale, poly); + } + +@@ -85,11 +73,10 @@ special_case (svfloat32_t x, svbool_t special, const struct data *d) + special); + } + +-/* Single-precision SVE exp10f routine. Implements the same algorithm +- as AdvSIMD exp10f. +- Worst case error is 1.02 ULPs. +- _ZGVsMxv_exp10f(-0x1.040488p-4) got 0x1.ba5f9ep-1 +- want 0x1.ba5f9cp-1. */ ++/* Single-precision SVE exp10f routine. Based on the FEXPA instruction. ++ Worst case error is 1.10 ULP. ++ _ZGVsMxv_exp10f (0x1.cc76dep+3) got 0x1.be0172p+47 ++ want 0x1.be017p+47. */ + svfloat32_t SV_NAME_F1 (exp10) (svfloat32_t x, const svbool_t pg) + { + const struct data *d = ptr_barrier (&data); +diff --git a/sysdeps/aarch64/fpu/exp2_sve.c b/sysdeps/aarch64/fpu/exp2_sve.c +index 5dfb77cdbc2f6a51..ed11423e45059133 100644 +--- a/sysdeps/aarch64/fpu/exp2_sve.c ++++ b/sysdeps/aarch64/fpu/exp2_sve.c +@@ -19,23 +19,21 @@ + + #include "sv_math.h" + +-#define N (1 << V_EXP_TABLE_BITS) +- + #define BigBound 1022 + #define UOFlowBound 1280 + + static const struct data + { +- double c0, c2; +- double c1, c3; ++ double c2, c4; ++ double c0, c1, c3; + double shift, big_bound, uoflow_bound; + } data = { + /* Coefficients are computed using Remez algorithm with + minimisation of the absolute error. */ +- .c0 = 0x1.62e42fefa3686p-1, .c1 = 0x1.ebfbdff82c241p-3, +- .c2 = 0x1.c6b09b16de99ap-5, .c3 = 0x1.3b2abf5571ad8p-7, +- .shift = 0x1.8p52 / N, .uoflow_bound = UOFlowBound, +- .big_bound = BigBound, ++ .c0 = 0x1.62e42fefa39efp-1, .c1 = 0x1.ebfbdff82a31bp-3, ++ .c2 = 0x1.c6b08d706c8a5p-5, .c3 = 0x1.3b2ad2ff7d2f3p-7, ++ .c4 = 0x1.5d8761184beb3p-10, .shift = 0x1.800000000ffc0p+46, ++ .uoflow_bound = UOFlowBound, .big_bound = BigBound, + }; + + #define SpecialOffset 0x6000000000000000 /* 0x1p513. */ +@@ -64,50 +62,52 @@ special_case (svbool_t pg, svfloat64_t s, svfloat64_t y, svfloat64_t n, + svadd_x (pg, svsub_x (pg, svreinterpret_u64 (s), SpecialBias2), b)); + + /* |n| > 1280 => 2^(n) overflows. */ +- svbool_t p_cmp = svacgt (pg, n, d->uoflow_bound); ++ svbool_t p_cmp = svacle (pg, n, d->uoflow_bound); + + svfloat64_t r1 = svmul_x (svptrue_b64 (), s1, s1); + svfloat64_t r2 = svmla_x (pg, s2, s2, y); + svfloat64_t r0 = svmul_x (svptrue_b64 (), r2, s1); + +- return svsel (p_cmp, r1, r0); ++ return svsel (p_cmp, r0, r1); + } + + /* Fast vector implementation of exp2. +- Maximum measured error is 1.65 ulp. +- _ZGVsMxv_exp2(-0x1.4c264ab5b559bp-6) got 0x1.f8db0d4df721fp-1 +- want 0x1.f8db0d4df721dp-1. */ ++ Maximum measured error is 0.52 + 0.5 ulp. ++ _ZGVsMxv_exp2 (0x1.3b72ad5b701bfp-1) got 0x1.8861641b49e08p+0 ++ want 0x1.8861641b49e07p+0. */ + svfloat64_t SV_NAME_D1 (exp2) (svfloat64_t x, svbool_t pg) + { + const struct data *d = ptr_barrier (&data); +- svbool_t no_big_scale = svacle (pg, x, d->big_bound); +- svbool_t special = svnot_z (pg, no_big_scale); +- +- /* Reduce x to k/N + r, where k is integer and r in [-1/2N, 1/2N]. */ +- svfloat64_t shift = sv_f64 (d->shift); +- svfloat64_t kd = svadd_x (pg, x, shift); +- svuint64_t ki = svreinterpret_u64 (kd); +- /* kd = k/N. */ +- kd = svsub_x (pg, kd, shift); +- svfloat64_t r = svsub_x (pg, x, kd); +- +- /* scale ~= 2^(k/N). */ +- svuint64_t idx = svand_x (pg, ki, N - 1); +- svuint64_t sbits = svld1_gather_index (pg, __v_exp_data, idx); +- /* This is only a valid scale when -1023*N < k < 1024*N. */ +- svuint64_t top = svlsl_x (pg, ki, 52 - V_EXP_TABLE_BITS); +- svfloat64_t scale = svreinterpret_f64 (svadd_x (pg, sbits, top)); +- +- svfloat64_t c13 = svld1rq (svptrue_b64 (), &d->c1); +- /* Approximate exp2(r) using polynomial. */ +- /* y = exp2(r) - 1 ~= C0 r + C1 r^2 + C2 r^3 + C3 r^4. */ ++ svbool_t special = svacge (pg, x, d->big_bound); ++ ++ svfloat64_t z = svadd_x (svptrue_b64 (), x, d->shift); ++ svfloat64_t n = svsub_x (svptrue_b64 (), z, d->shift); ++ svfloat64_t r = svsub_x (svptrue_b64 (), x, n); ++ ++ svfloat64_t scale = svexpa (svreinterpret_u64 (z)); ++ + svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r); +- svfloat64_t p01 = svmla_lane (sv_f64 (d->c0), r, c13, 0); +- svfloat64_t p23 = svmla_lane (sv_f64 (d->c2), r, c13, 1); +- svfloat64_t p = svmla_x (pg, p01, p23, r2); ++ svfloat64_t c24 = svld1rq (svptrue_b64 (), &d->c2); ++ ++ /* Approximate exp2(r) using polynomial. */ ++ /* y = exp2(r) - 1 ~= r * (C0 + C1 r + C2 r^2 + C3 r^3 + C4 r^4). */ ++ svfloat64_t p12 = svmla_lane (sv_f64 (d->c1), r, c24, 0); ++ svfloat64_t p34 = svmla_lane (sv_f64 (d->c3), r, c24, 1); ++ svfloat64_t p = svmla_x (pg, p12, p34, r2); ++ p = svmad_x (pg, p, r, d->c0); + svfloat64_t y = svmul_x (svptrue_b64 (), r, p); ++ + /* Assemble exp2(x) = exp2(r) * scale. */ + if (__glibc_unlikely (svptest_any (pg, special))) +- return special_case (pg, scale, y, kd, d); ++ { ++ /* FEXPA zeroes the sign bit, however the sign is meaningful to the ++ special case function so needs to be copied. ++ e = sign bit of u << 46. */ ++ svuint64_t e = svand_x (pg, svlsl_x (pg, svreinterpret_u64 (z), 46), ++ 0x8000000000000000); ++ scale = svreinterpret_f64 (svadd_x (pg, e, svreinterpret_u64 (scale))); ++ return special_case (pg, scale, y, n, d); ++ } ++ + return svmla_x (pg, scale, scale, y); + } +diff --git a/sysdeps/aarch64/fpu/exp2f_sve.c b/sysdeps/aarch64/fpu/exp2f_sve.c +index c6216bed9e9e7538..cf01820288f1855c 100644 +--- a/sysdeps/aarch64/fpu/exp2f_sve.c ++++ b/sysdeps/aarch64/fpu/exp2f_sve.c +@@ -18,21 +18,17 @@ + . */ + + #include "sv_math.h" +-#include "poly_sve_f32.h" + + #define Thres 0x1.5d5e2ap+6f + + static const struct data + { +- float c0, c2, c4, c1, c3; +- float shift, thres; ++ float c0, c1, shift, thres; + } data = { +- /* Coefficients copied from the polynomial in AdvSIMD variant. */ +- .c0 = 0x1.62e422p-1f, +- .c1 = 0x1.ebf9bcp-3f, +- .c2 = 0x1.c6bd32p-5f, +- .c3 = 0x1.3ce9e4p-7f, +- .c4 = 0x1.59977ap-10f, ++ /* Coefficients generated using Remez algorithm with minimisation of relative ++ error. */ ++ .c0 = 0x1.62e485p-1, ++ .c1 = 0x1.ebfbe0p-3, + /* 1.5*2^17 + 127. */ + .shift = 0x1.803f8p17f, + /* Roughly 87.3. For x < -Thres, the result is subnormal and not handled +@@ -51,16 +47,8 @@ sv_exp2f_inline (svfloat32_t x, const svbool_t pg, const struct data *d) + + svfloat32_t scale = svexpa (svreinterpret_u32 (z)); + +- /* Polynomial evaluation: poly(r) ~ exp2(r)-1. +- Evaluate polynomial use hybrid scheme - offset ESTRIN by 1 for +- coefficients 1 to 4, and apply most significant coefficient directly. */ +- svfloat32_t even_coeffs = svld1rq (svptrue_b32 (), &d->c0); +- svfloat32_t r2 = svmul_x (svptrue_b32 (), r, r); +- svfloat32_t p12 = svmla_lane (sv_f32 (d->c1), r, even_coeffs, 1); +- svfloat32_t p34 = svmla_lane (sv_f32 (d->c3), r, even_coeffs, 2); +- svfloat32_t p14 = svmla_x (pg, p12, r2, p34); +- svfloat32_t p0 = svmul_lane (r, even_coeffs, 0); +- svfloat32_t poly = svmla_x (pg, p0, r2, p14); ++ svfloat32_t poly = svmla_x (pg, sv_f32 (d->c0), r, sv_f32 (d->c1)); ++ poly = svmul_x (svptrue_b32 (), poly, r); + + return svmla_x (pg, scale, scale, poly); + } +@@ -72,11 +60,10 @@ special_case (svfloat32_t x, svbool_t special, const struct data *d) + special); + } + +-/* Single-precision SVE exp2f routine. Implements the same algorithm +- as AdvSIMD exp2f. +- Worst case error is 1.04 ULPs. +- _ZGVsMxv_exp2f(-0x1.af994ap-3) got 0x1.ba6a66p-1 +- want 0x1.ba6a64p-1. */ ++/* Single-precision SVE exp2f routine, based on the FEXPA instruction. ++ Worst case error is 1.09 ULPs. ++ _ZGVsMxv_exp2f (0x1.9a2a94p-1) got 0x1.be1054p+0 ++ want 0x1.be1052p+0. */ + svfloat32_t SV_NAME_F1 (exp2) (svfloat32_t x, const svbool_t pg) + { + const struct data *d = ptr_barrier (&data); +diff --git a/sysdeps/aarch64/fpu/expm1_sve.c b/sysdeps/aarch64/fpu/expm1_sve.c +index c933cf9c0eb2406b..4c35e0341d34aee0 100644 +--- a/sysdeps/aarch64/fpu/expm1_sve.c ++++ b/sysdeps/aarch64/fpu/expm1_sve.c +@@ -18,82 +18,164 @@ + . */ + + #include "sv_math.h" +-#include "poly_sve_f64.h" + +-#define SpecialBound 0x1.62b7d369a5aa9p+9 +-#define ExponentBias 0x3ff0000000000000 ++#define FexpaBound 0x1.4cb5ecef28adap-3 /* 15*ln2/64. */ ++#define SpecialBound 0x1.628c2855bfaddp+9 /* ln(2^(1023 + 1/128)). */ + + static const struct data + { +- double poly[11]; +- double shift, inv_ln2, special_bound; +- /* To be loaded in one quad-word. */ ++ double c2, c4; ++ double inv_ln2; + double ln2_hi, ln2_lo; ++ double c0, c1, c3; ++ double shift, thres; ++ uint64_t expm1_data[32]; + } data = { +- /* Generated using fpminimax. */ +- .poly = { 0x1p-1, 0x1.5555555555559p-3, 0x1.555555555554bp-5, +- 0x1.111111110f663p-7, 0x1.6c16c16c1b5f3p-10, 0x1.a01a01affa35dp-13, +- 0x1.a01a018b4ecbbp-16, 0x1.71ddf82db5bb4p-19, 0x1.27e517fc0d54bp-22, +- 0x1.af5eedae67435p-26, 0x1.1f143d060a28ap-29, }, +- +- .special_bound = SpecialBound, +- .inv_ln2 = 0x1.71547652b82fep0, +- .ln2_hi = 0x1.62e42fefa39efp-1, +- .ln2_lo = 0x1.abc9e3b39803fp-56, +- .shift = 0x1.8p52, ++ /* Table emulating FEXPA - 1, for values of FEXPA close to 1. ++ The table holds values of 2^(i/64) - 1, computed in arbitrary precision. ++ The first half of the table stores values associated to i from 0 to 15. ++ The second half of the table stores values associated to i from 0 to -15. */ ++ .expm1_data = { ++ 0x0000000000000000, 0x3f864d1f3bc03077, 0x3f966c34c5615d0f, 0x3fa0e8a30eb37901, ++ 0x3fa6ab0d9f3121ec, 0x3fac7d865a7a3440, 0x3fb1301d0125b50a, 0x3fb429aaea92ddfb, ++ 0x3fb72b83c7d517ae, 0x3fba35beb6fcb754, 0x3fbd4873168b9aa8, 0x3fc031dc431466b2, ++ 0x3fc1c3d373ab11c3, 0x3fc35a2b2f13e6e9, 0x3fc4f4efa8fef709, 0x3fc6942d3720185a, ++ 0x0000000000000000, 0xbfc331751ec3a814, 0xbfc20224341286e4, 0xbfc0cf85bed0f8b7, ++ 0xbfbf332113d56b1f, 0xbfbcc0768d4175a6, 0xbfba46f918837cb7, 0xbfb7c695afc3b424, ++ 0xbfb53f391822dbc7, 0xbfb2b0cfe1266bd4, 0xbfb01b466423250a, 0xbfaafd11874c009e, ++ 0xbfa5b505d5b6f268, 0xbfa05e4119ea5d89, 0xbf95f134923757f3, 0xbf860f9f985bc9f4, ++ }, ++ ++ /* Generated using Remez, in [-log(2)/128, log(2)/128]. */ ++ .c0 = 0x1p-1, ++ .c1 = 0x1.55555555548f9p-3, ++ .c2 = 0x1.5555555554c22p-5, ++ .c3 = 0x1.111123aaa2fb2p-7, ++ .c4 = 0x1.6c16d77d98e5bp-10, ++ .ln2_hi = 0x1.62e42fefa3800p-1, ++ .ln2_lo = 0x1.ef35793c76730p-45, ++ .inv_ln2 = 0x1.71547652b82fep+0, ++ .shift = 0x1.800000000ffc0p+46, /* 1.5*2^46+1023. */ ++ .thres = SpecialBound, + }; + +-static svfloat64_t NOINLINE +-special_case (svfloat64_t x, svfloat64_t y, svbool_t pg) ++#define SpecialOffset 0x6000000000000000 /* 0x1p513. */ ++/* SpecialBias1 + SpecialBias1 = asuint(1.0). */ ++#define SpecialBias1 0x7000000000000000 /* 0x1p769. */ ++#define SpecialBias2 0x3010000000000000 /* 0x1p-254. */ ++ ++static NOINLINE svfloat64_t ++special_case (svbool_t pg, svfloat64_t y, svfloat64_t s, svfloat64_t p, ++ svfloat64_t n) + { +- return sv_call_f64 (expm1, x, y, pg); ++ /* s=2^n may overflow, break it up into s=s1*s2, ++ such that exp = s + s*y can be computed as s1*(s2+s2*y) ++ and s1*s1 overflows only if n>0. */ ++ ++ /* If n<=0 then set b to 0x6, 0 otherwise. */ ++ svbool_t p_sign = svcmple (pg, n, 0.0); /* n <= 0. */ ++ svuint64_t b ++ = svdup_u64_z (p_sign, SpecialOffset); /* Inactive lanes set to 0. */ ++ ++ /* Set s1 to generate overflow depending on sign of exponent n, ++ ie. s1 = 0x70...0 - b. */ ++ svfloat64_t s1 = svreinterpret_f64 (svsubr_x (pg, b, SpecialBias1)); ++ /* Offset s to avoid overflow in final result if n is below threshold. ++ ie. s2 = as_u64 (s) - 0x3010...0 + b. */ ++ svfloat64_t s2 = svreinterpret_f64 ( ++ svadd_x (pg, svsub_x (pg, svreinterpret_u64 (s), SpecialBias2), b)); ++ ++ /* |n| > 1280 => 2^(n) overflows. */ ++ svbool_t p_cmp = svacgt (pg, n, 1280.0); ++ ++ svfloat64_t r1 = svmul_x (svptrue_b64 (), s1, s1); ++ svfloat64_t r2 = svmla_x (pg, s2, s2, p); ++ svfloat64_t r0 = svmul_x (svptrue_b64 (), r2, s1); ++ ++ svbool_t is_safe = svacle (pg, n, 1023); /* Only correct special lanes. */ ++ return svsel (is_safe, y, svsub_x (pg, svsel (p_cmp, r1, r0), 1.0)); + } + +-/* Double-precision vector exp(x) - 1 function. +- The maximum error observed error is 2.18 ULP: +- _ZGVsMxv_expm1(0x1.634ba0c237d7bp-2) got 0x1.a8b9ea8d66e22p-2 +- want 0x1.a8b9ea8d66e2p-2. */ ++/* FEXPA based SVE expm1 algorithm. ++ Maximum measured error is 2.81 + 0.5 ULP: ++ _ZGVsMxv_expm1 (0x1.974060e619bfp-3) got 0x1.c290e5858bb53p-3 ++ want 0x1.c290e5858bb5p-3. */ + svfloat64_t SV_NAME_D1 (expm1) (svfloat64_t x, svbool_t pg) + { + const struct data *d = ptr_barrier (&data); + +- /* Large, Nan/Inf. */ +- svbool_t special = svnot_z (pg, svaclt (pg, x, d->special_bound)); +- +- /* Reduce argument to smaller range: +- Let i = round(x / ln2) +- and f = x - i * ln2, then f is in [-ln2/2, ln2/2]. +- exp(x) - 1 = 2^i * (expm1(f) + 1) - 1 +- where 2^i is exact because i is an integer. */ +- svfloat64_t shift = sv_f64 (d->shift); +- svfloat64_t n = svsub_x (pg, svmla_x (pg, shift, x, d->inv_ln2), shift); +- svint64_t i = svcvt_s64_x (pg, n); +- svfloat64_t ln2 = svld1rq (svptrue_b64 (), &d->ln2_hi); +- svfloat64_t f = svmls_lane (x, n, ln2, 0); +- f = svmls_lane (f, n, ln2, 1); +- +- /* Approximate expm1(f) using polynomial. +- Taylor expansion for expm1(x) has the form: +- x + ax^2 + bx^3 + cx^4 .... +- So we calculate the polynomial P(f) = a + bf + cf^2 + ... +- and assemble the approximation expm1(f) ~= f + f^2 * P(f). */ +- svfloat64_t f2 = svmul_x (pg, f, f); +- svfloat64_t f4 = svmul_x (pg, f2, f2); +- svfloat64_t f8 = svmul_x (pg, f4, f4); +- svfloat64_t p +- = svmla_x (pg, f, f2, sv_estrin_10_f64_x (pg, f, f2, f4, f8, d->poly)); +- +- /* Assemble the result. +- expm1(x) ~= 2^i * (p + 1) - 1 +- Let t = 2^i. */ +- svint64_t u = svadd_x (pg, svlsl_x (pg, i, 52), ExponentBias); +- svfloat64_t t = svreinterpret_f64 (u); +- +- /* expm1(x) ~= p * t + (t - 1). */ +- svfloat64_t y = svmla_x (pg, svsub_x (pg, t, 1), p, t); ++ svbool_t special = svacgt (pg, x, d->thres); + +- if (__glibc_unlikely (svptest_any (pg, special))) +- return special_case (x, y, special); ++ svfloat64_t z = svmla_x (pg, sv_f64 (d->shift), x, d->inv_ln2); ++ svuint64_t u = svreinterpret_u64 (z); ++ svfloat64_t n = svsub_x (pg, z, d->shift); + ++ /* r = x - n * ln2, r is in [-ln2/128, ln2/128]. */ ++ svfloat64_t ln2 = svld1rq (svptrue_b64 (), &d->ln2_hi); ++ svfloat64_t r = x; ++ r = svmls_lane (r, n, ln2, 0); ++ r = svmls_lane (r, n, ln2, 1); ++ ++ /* y = exp(r) - 1 ~= r + C0 r^2 + C1 r^3 + C2 r^4 + C3 r^5 + C4 r^6. */ ++ svfloat64_t r2 = svmul_x (svptrue_b64 (), r, r); ++ svfloat64_t c24 = svld1rq (svptrue_b64 (), &d->c2); ++ ++ svfloat64_t p; ++ svfloat64_t c12 = svmla_lane (sv_f64 (d->c1), r, c24, 0); ++ svfloat64_t c34 = svmla_lane (sv_f64 (d->c3), r, c24, 1); ++ p = svmad_x (pg, c34, r2, c12); ++ p = svmad_x (pg, p, r, sv_f64 (d->c0)); ++ p = svmad_x (pg, p, r2, r); ++ ++ svfloat64_t scale = svexpa (u); ++ svfloat64_t scalem1 = svsub_x (pg, scale, sv_f64 (1.0)); ++ ++ /* We want to construct expm1(x) = (scale - 1) + scale * poly. ++ However, for values of scale close to 1, scale-1 causes large ULP errors ++ due to cancellation. ++ ++ This can be circumvented by using a small lookup for scale-1 ++ when our input is below a certain bound, otherwise we can use FEXPA. ++ ++ This bound is based upon the table size: ++ Bound = (TableSize-1/64) * ln2. ++ The current bound is based upon a table size of 16. */ ++ svbool_t is_small = svaclt (pg, x, FexpaBound); ++ ++ if (svptest_any (pg, is_small)) ++ { ++ /* Index via the input of FEXPA, but we only care about the lower 4 bits. ++ */ ++ svuint64_t base_idx = svand_x (pg, u, 0xf); ++ ++ /* We can use the sign of x as a fifth bit to account for the asymmetry ++ of e^x around 0. */ ++ svuint64_t signBit ++ = svlsl_x (pg, svlsr_x (pg, svreinterpret_u64 (x), 63), 4); ++ svuint64_t idx = svorr_x (pg, base_idx, signBit); ++ ++ /* Lookup values for scale - 1 for small x. */ ++ svfloat64_t lookup = svreinterpret_f64 ( ++ svld1_gather_index (is_small, d->expm1_data, idx)); ++ ++ /* Select the appropriate scale - 1 value based on x. */ ++ scalem1 = svsel (is_small, lookup, scalem1); ++ } ++ ++ svfloat64_t y = svmla_x (pg, scalem1, scale, p); ++ ++ /* FEXPA returns nan for large inputs so we special case those. */ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ { ++ /* FEXPA zeroes the sign bit, however the sign is meaningful to the ++ special case function so needs to be copied. ++ e = sign bit of u << 46. */ ++ svuint64_t e = svand_x (pg, svlsl_x (pg, u, 46), 0x8000000000000000); ++ /* Copy sign to s. */ ++ scale = svreinterpret_f64 (svadd_x (pg, e, svreinterpret_u64 (scale))); ++ return special_case (pg, y, scale, p, n); ++ } ++ ++ /* return expm1 = (scale - 1) + (scale * poly). */ + return y; + } diff --git a/glibc-RHEL-118273-41.patch b/glibc-RHEL-118273-41.patch new file mode 100644 index 0000000..92e969e --- /dev/null +++ b/glibc-RHEL-118273-41.patch @@ -0,0 +1,49 @@ +commit aac077645a645bba0d67f3250e82017c539d0f4b +Author: Pierre Blanchard +Date: Wed Aug 20 17:41:50 2025 +0000 + + AArch64: Fix SVE powf routine [BZ #33299] + + Fix a bug in predicate logic introduced in last change. + A slight performance improvement from relying on all true + predicates during conversion from single to double. + This fixes BZ #33299. + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/fpu/powf_sve.c b/sysdeps/aarch64/fpu/powf_sve.c +index 08d7019a1855ff3c..33bba96054cf4cc8 100644 +--- a/sysdeps/aarch64/fpu/powf_sve.c ++++ b/sysdeps/aarch64/fpu/powf_sve.c +@@ -223,15 +223,15 @@ sv_powf_core (const svbool_t pg, svuint32_t i, svuint32_t iz, svint32_t k, + const svbool_t ptrue = svptrue_b64 (); + + /* Unpack and promote input vectors (pg, y, z, i, k and sign_bias) into two +- * in order to perform core computation in double precision. */ ++ in order to perform core computation in double precision. */ + const svbool_t pg_lo = svunpklo (pg); + const svbool_t pg_hi = svunpkhi (pg); +- svfloat64_t y_lo +- = svcvt_f64_x (pg, svreinterpret_f32 (svunpklo (svreinterpret_u32 (y)))); +- svfloat64_t y_hi +- = svcvt_f64_x (pg, svreinterpret_f32 (svunpkhi (svreinterpret_u32 (y)))); +- svfloat64_t z_lo = svcvt_f64_x (pg, svreinterpret_f32 (svunpklo (iz))); +- svfloat64_t z_hi = svcvt_f64_x (pg, svreinterpret_f32 (svunpkhi (iz))); ++ svfloat64_t y_lo = svcvt_f64_x ( ++ ptrue, svreinterpret_f32 (svunpklo (svreinterpret_u32 (y)))); ++ svfloat64_t y_hi = svcvt_f64_x ( ++ ptrue, svreinterpret_f32 (svunpkhi (svreinterpret_u32 (y)))); ++ svfloat64_t z_lo = svcvt_f64_x (ptrue, svreinterpret_f32 (svunpklo (iz))); ++ svfloat64_t z_hi = svcvt_f64_x (ptrue, svreinterpret_f32 (svunpkhi (iz))); + svuint64_t i_lo = svunpklo (i); + svuint64_t i_hi = svunpkhi (i); + svint64_t k_lo = svunpklo (k); +@@ -312,7 +312,7 @@ svfloat32_t SV_NAME_F2 (pow) (svfloat32_t x, svfloat32_t y, const svbool_t pg) + (23 - V_POWF_EXP2_TABLE_BITS)); + + /* Compute core in extended precision and return intermediate ylogx results +- * to handle cases of underflow and underflow in exp. */ ++ to handle cases of underflow and overflow in exp. */ + svfloat32_t ylogx; + svfloat32_t ret + = sv_powf_core (yint_or_xpos, i, iz, k, y, sign_bias, &ylogx, d); diff --git a/glibc-RHEL-118273-42.patch b/glibc-RHEL-118273-42.patch new file mode 100644 index 0000000..4f54c8f --- /dev/null +++ b/glibc-RHEL-118273-42.patch @@ -0,0 +1,174 @@ +commit e20ca759af46fbb7eae20c52b857e7636eb50e1b +Author: remph +Date: Thu Sep 4 12:53:56 2025 +0000 + + AArch64: add optimised strspn/strcspn + + Requires Neon (aka. Advanced SIMD). Looks up 16 characters at a time, + for a 2-3x perfomance improvement, and a ~30% speedup on the strtok & + strsep benchtests, as tested on Cortex A-{53,72}. + + Signed-off-by: remph + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/strcspn.S b/sysdeps/aarch64/strcspn.S +new file mode 100644 +index 0000000000000000..f2a69e9856cba04c +--- /dev/null ++++ b/sysdeps/aarch64/strcspn.S +@@ -0,0 +1,2 @@ ++#define USE_AS_STRCSPN 1 ++#include "strspn.S" +diff --git a/sysdeps/aarch64/strspn.S b/sysdeps/aarch64/strspn.S +new file mode 100644 +index 0000000000000000..edbb705b15991e39 +--- /dev/null ++++ b/sysdeps/aarch64/strspn.S +@@ -0,0 +1,146 @@ ++/* Copyright (C) 2025 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 ++ . */ ++ ++#include ++ ++#ifdef USE_AS_STRCSPN ++# define STRSPN strcspn ++# define SBT orr /* SBT -- `set bit' */ ++#else ++# define STRSPN strspn ++# define SBT bic ++#endif ++ ++#ifdef __AARCH64EB__ ++# define LS_FW lsl ++# define LS_BK lsr ++#else ++# define LS_FW lsr ++# define LS_BK lsl ++#endif ++ ++#define og_s x0 ++#define set x1 /* ACCEPT for strspn, REJECT for strcspn */ ++ ++#define byte_i x3 ++#define bits_i x4 ++#define one x6 ++ ++#define syndrome x5 ++#define s x6 ++ ++#define vbyte_i v1.16b ++#define vbits_i v2.16b ++#define table v4.16b-v5.16b ++#define table_a v4 ++#define table_b v5 ++#define sevens v7.16b ++ ++ENTRY(STRSPN) ++ ldrb w2, [set] ++ cbz w2, L(early) ++#ifdef USE_AS_STRCSPN ++ ldrb w3, [set, 1] ++ cbz w3, L(early) ++#endif ++ ++ /* Table has ones for bytes to reject and zeros for bytes to accept */ ++ mov one, 1 ++#ifdef USE_AS_STRCSPN ++ stp one, xzr, [sp, -32]! ++ .cfi_def_cfa_offset 32 ++ stp xzr, xzr, [sp, 16] ++#else ++ mvni v0.4s, 0 ++ stp q0, q0, [sp, -32]! ++ .cfi_def_cfa_offset 32 ++#endif ++ ++ .p2align 4 ++L(fill_table): ++ lsr byte_i, x2, 6 /* x2 / 64 */ ++ lsl bits_i, one, x2 /* x2 % 64 implicitly */ ++ ldrb w2, [set, 1]! ++ ldr x5, [sp, byte_i, lsl 3] ++ SBT x5, x5, bits_i ++ str x5, [sp, byte_i, lsl 3] ++ cbnz w2, L(fill_table) ++ ++ ld1 {table_a.2d-table_b.2d}, [sp], 32 ++ .cfi_def_cfa_offset 0 ++ ubfiz syndrome, og_s, 2, 4 /* Bottom 4 bits, times 4 to count nibbles */ ++ and s, og_s, -16 /* Round S down to 16-byte boundary */ ++ movi sevens, 7 ++ /* Bias the syndrome to mask off these nibbles */ ++ mov x8, -1 ++ LS_BK syndrome, x8, syndrome ++ mvn syndrome, syndrome ++ ++L(loop): ++ ldr q0, [s], 16 ++ ushr vbyte_i, v0.16b, 3 ++ bic vbits_i, sevens, v0.16b ++ tbl v0.16b, {table}, vbyte_i ++ /* Bring the relevant bit to the MSB of each byte */ ++ sshl v0.16b, v0.16b, vbits_i ++ /* Set every bit of each byte to its MSB */ ++ cmlt v0.16b, v0.16b, 0 ++ /* Bytes->nibbles */ ++ shrn v0.8b, v0.8h, 4 ++ fmov x2, d0 ++ bic syndrome, x2, syndrome ++ cbz syndrome, L(loop) ++ ++#ifndef __AARCH64EB__ ++ rbit syndrome, syndrome ++#endif ++ sub s, s, 16 ++ clz syndrome, syndrome ++ sub x0, s, og_s ++ add x0, x0, syndrome, lsr 2 ++ ret ++ ++ .balign 8 /* For strspn, which has only 2 instructions here */ ++L(early): ++#ifdef USE_AS_STRCSPN ++ /* strlen(set) < 2: call strchrnul(s, *set) and get its offset from S */ ++ stp fp, lr, [sp, -32]! ++ .cfi_def_cfa_offset 32 ++ .cfi_offset fp, -32 ++ .cfi_offset lr, -24 ++ str x19, [sp, 16] ++ .cfi_offset 19, -16 ++ mov w1, w2 ++ mov fp, sp ++ mov x19, x0 ++ bl __strchrnul ++ sub x0, x0, x19 ++ ldr x19, [sp, 16] ++ ldp fp, lr, [sp], 32 ++ .cfi_restore lr ++ .cfi_restore fp ++ .cfi_restore 19 ++ .cfi_def_cfa_offset 0 ++#else ++ mov w0, 0 ++#endif ++ ret ++END(STRSPN) ++ ++#undef set ++libc_hidden_def(STRSPN) diff --git a/glibc-RHEL-118273-43.patch b/glibc-RHEL-118273-43.patch new file mode 100644 index 0000000..c9c00ae --- /dev/null +++ b/glibc-RHEL-118273-43.patch @@ -0,0 +1,93 @@ +commit aebaeb2c330482171340e966f7f33fac884a27f4 +Author: Wilco Dijkstra +Date: Thu Sep 18 14:24:47 2025 +0000 + + AArch64: Update math-vector-fortran.h + + Update math-vector-fortran.h with the latest set of math functions + and sort by name. + + Reviewed-by: Yury Khrustalev + +diff --git a/sysdeps/aarch64/fpu/finclude/math-vector-fortran.h b/sysdeps/aarch64/fpu/finclude/math-vector-fortran.h +index 92e15f0d6a758258..161f43d20c51e252 100644 +--- a/sysdeps/aarch64/fpu/finclude/math-vector-fortran.h ++++ b/sysdeps/aarch64/fpu/finclude/math-vector-fortran.h +@@ -15,33 +15,74 @@ + ! You should have received a copy of the GNU Lesser General Public + ! License along with the GNU C Library; if not, see + ! . ++ + !GCC$ builtin (acos) attributes simd (notinbranch) + !GCC$ builtin (acosf) attributes simd (notinbranch) ++!GCC$ builtin (acosh) attributes simd (notinbranch) ++!GCC$ builtin (acoshf) attributes simd (notinbranch) ++!GCC$ builtin (acospi) attributes simd (notinbranch) ++!GCC$ builtin (acospif) attributes simd (notinbranch) + !GCC$ builtin (asin) attributes simd (notinbranch) + !GCC$ builtin (asinf) attributes simd (notinbranch) ++!GCC$ builtin (asinh) attributes simd (notinbranch) ++!GCC$ builtin (asinhf) attributes simd (notinbranch) ++!GCC$ builtin (asinpi) attributes simd (notinbranch) ++!GCC$ builtin (asinpif) attributes simd (notinbranch) + !GCC$ builtin (atan) attributes simd (notinbranch) +-!GCC$ builtin (atanf) attributes simd (notinbranch) + !GCC$ builtin (atan2) attributes simd (notinbranch) + !GCC$ builtin (atan2f) attributes simd (notinbranch) ++!GCC$ builtin (atan2pi) attributes simd (notinbranch) ++!GCC$ builtin (atan2pif) attributes simd (notinbranch) ++!GCC$ builtin (atanf) attributes simd (notinbranch) ++!GCC$ builtin (atanh) attributes simd (notinbranch) ++!GCC$ builtin (atanhf) attributes simd (notinbranch) ++!GCC$ builtin (atanpi) attributes simd (notinbranch) ++!GCC$ builtin (atanpif) attributes simd (notinbranch) ++!GCC$ builtin (cbrt) attributes simd (notinbranch) ++!GCC$ builtin (cbrtf) attributes simd (notinbranch) + !GCC$ builtin (cos) attributes simd (notinbranch) + !GCC$ builtin (cosf) attributes simd (notinbranch) ++!GCC$ builtin (cosh) attributes simd (notinbranch) ++!GCC$ builtin (coshf) attributes simd (notinbranch) ++!GCC$ builtin (cospi) attributes simd (notinbranch) ++!GCC$ builtin (cospif) attributes simd (notinbranch) ++!GCC$ builtin (erf) attributes simd (notinbranch) ++!GCC$ builtin (erfc) attributes simd (notinbranch) ++!GCC$ builtin (erfcf) attributes simd (notinbranch) ++!GCC$ builtin (erff) attributes simd (notinbranch) + !GCC$ builtin (exp) attributes simd (notinbranch) +-!GCC$ builtin (expf) attributes simd (notinbranch) + !GCC$ builtin (exp10) attributes simd (notinbranch) + !GCC$ builtin (exp10f) attributes simd (notinbranch) ++!GCC$ builtin (exp10m1) attributes simd (notinbranch) ++!GCC$ builtin (exp10m1f) attributes simd (notinbranch) + !GCC$ builtin (exp2) attributes simd (notinbranch) + !GCC$ builtin (exp2f) attributes simd (notinbranch) ++!GCC$ builtin (exp2m1) attributes simd (notinbranch) ++!GCC$ builtin (exp2m1f) attributes simd (notinbranch) ++!GCC$ builtin (expf) attributes simd (notinbranch) + !GCC$ builtin (expm1) attributes simd (notinbranch) + !GCC$ builtin (expm1f) attributes simd (notinbranch) ++!GCC$ builtin (hypot) attributes simd (notinbranch) ++!GCC$ builtin (hypotf) attributes simd (notinbranch) + !GCC$ builtin (log) attributes simd (notinbranch) +-!GCC$ builtin (logf) attributes simd (notinbranch) + !GCC$ builtin (log10) attributes simd (notinbranch) + !GCC$ builtin (log10f) attributes simd (notinbranch) + !GCC$ builtin (log1p) attributes simd (notinbranch) + !GCC$ builtin (log1pf) attributes simd (notinbranch) + !GCC$ builtin (log2) attributes simd (notinbranch) + !GCC$ builtin (log2f) attributes simd (notinbranch) ++!GCC$ builtin (logf) attributes simd (notinbranch) ++!GCC$ builtin (pow) attributes simd (notinbranch) ++!GCC$ builtin (powf) attributes simd (notinbranch) + !GCC$ builtin (sin) attributes simd (notinbranch) + !GCC$ builtin (sinf) attributes simd (notinbranch) ++!GCC$ builtin (sinh) attributes simd (notinbranch) ++!GCC$ builtin (sinhf) attributes simd (notinbranch) ++!GCC$ builtin (sinpi) attributes simd (notinbranch) ++!GCC$ builtin (sinpif) attributes simd (notinbranch) + !GCC$ builtin (tan) attributes simd (notinbranch) + !GCC$ builtin (tanf) attributes simd (notinbranch) ++!GCC$ builtin (tanh) attributes simd (notinbranch) ++!GCC$ builtin (tanhf) attributes simd (notinbranch) ++!GCC$ builtin (tanpi) attributes simd (notinbranch) ++!GCC$ builtin (tanpif) attributes simd (notinbranch) diff --git a/glibc-RHEL-118273-44.patch b/glibc-RHEL-118273-44.patch new file mode 100644 index 0000000..3f2a0be --- /dev/null +++ b/glibc-RHEL-118273-44.patch @@ -0,0 +1,97 @@ +commit 6c22823da57aa5218f717f569c04c9573c0448c5 +Author: Joe Ramsay +Date: Thu Nov 6 18:26:54 2025 +0000 + + AArch64: Fix instability in AdvSIMD tan + + Previously presence of special-cases in one lane could affect the + results in other lanes due to unconditional scalar fallback. The old + WANT_SIMD_EXCEPT option (which has never been enabled in libmvec) has + been removed from AOR, making it easier to spot and fix this. 4% + improvement in throughput with GCC 14 on Neoverse V1. This bug is + present as far back as 2.39 (where tan was first introduced). + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/fpu/tan_advsimd.c b/sysdeps/aarch64/fpu/tan_advsimd.c +index d56a102dd17a3463..c6a5a17126674d7d 100644 +--- a/sysdeps/aarch64/fpu/tan_advsimd.c ++++ b/sysdeps/aarch64/fpu/tan_advsimd.c +@@ -25,9 +25,7 @@ static const struct data + float64x2_t poly[9]; + double half_pi[2]; + float64x2_t two_over_pi, shift; +-#if !WANT_SIMD_EXCEPT + float64x2_t range_val; +-#endif + } data = { + /* Coefficients generated using FPMinimax. */ + .poly = { V2 (0x1.5555555555556p-2), V2 (0x1.1111111110a63p-3), +@@ -38,20 +36,17 @@ static const struct data + .half_pi = { 0x1.921fb54442d18p0, 0x1.1a62633145c07p-54 }, + .two_over_pi = V2 (0x1.45f306dc9c883p-1), + .shift = V2 (0x1.8p52), +-#if !WANT_SIMD_EXCEPT + .range_val = V2 (0x1p23), +-#endif + }; + + #define RangeVal 0x4160000000000000 /* asuint64(0x1p23). */ + #define TinyBound 0x3e50000000000000 /* asuint64(2^-26). */ +-#define Thresh 0x310000000000000 /* RangeVal - TinyBound. */ + + /* Special cases (fall back to scalar calls). */ + static float64x2_t VPCS_ATTR NOINLINE +-special_case (float64x2_t x) ++special_case (float64x2_t x, float64x2_t n, float64x2_t d, uint64x2_t special) + { +- return v_call_f64 (tan, x, x, v_u64 (-1)); ++ return v_call_f64 (tan, x, vdivq_f64 (n, d), special); + } + + /* Vector approximation for double-precision tan. +@@ -65,14 +60,6 @@ float64x2_t VPCS_ATTR V_NAME_D1 (tan) (float64x2_t x) + very large inputs. Fall back to scalar routine for all lanes if any are + too large, or Inf/NaN. If fenv exceptions are expected, also fall back for + tiny input to avoid underflow. */ +-#if WANT_SIMD_EXCEPT +- uint64x2_t iax = vreinterpretq_u64_f64 (vabsq_f64 (x)); +- /* iax - tiny_bound > range_val - tiny_bound. */ +- uint64x2_t special +- = vcgtq_u64 (vsubq_u64 (iax, v_u64 (TinyBound)), v_u64 (Thresh)); +- if (__glibc_unlikely (v_any_u64 (special))) +- return special_case (x); +-#endif + + /* q = nearest integer to 2 * x / pi. */ + float64x2_t q +@@ -81,9 +68,8 @@ float64x2_t VPCS_ATTR V_NAME_D1 (tan) (float64x2_t x) + + /* Use q to reduce x to r in [-pi/4, pi/4], by: + r = x - q * pi/2, in extended precision. */ +- float64x2_t r = x; + float64x2_t half_pi = vld1q_f64 (dat->half_pi); +- r = vfmsq_laneq_f64 (r, q, half_pi, 0); ++ float64x2_t r = vfmsq_laneq_f64 (x, q, half_pi, 0); + r = vfmsq_laneq_f64 (r, q, half_pi, 1); + /* Further reduce r to [-pi/8, pi/8], to be reconstructed using double angle + formula. */ +@@ -114,12 +100,13 @@ float64x2_t VPCS_ATTR V_NAME_D1 (tan) (float64x2_t x) + + uint64x2_t no_recip = vtstq_u64 (vreinterpretq_u64_s64 (qi), v_u64 (1)); + +-#if !WANT_SIMD_EXCEPT + uint64x2_t special = vcageq_f64 (x, dat->range_val); ++ float64x2_t swap = vbslq_f64 (no_recip, n, vnegq_f64 (d)); ++ d = vbslq_f64 (no_recip, d, n); ++ n = swap; ++ + if (__glibc_unlikely (v_any_u64 (special))) +- return special_case (x); +-#endif ++ return special_case (x, n, d, special); + +- return vdivq_f64 (vbslq_f64 (no_recip, n, vnegq_f64 (d)), +- vbslq_f64 (no_recip, d, n)); ++ return vdivq_f64 (n, d); + } diff --git a/glibc-RHEL-118273-45.patch b/glibc-RHEL-118273-45.patch new file mode 100644 index 0000000..a872304 --- /dev/null +++ b/glibc-RHEL-118273-45.patch @@ -0,0 +1,88 @@ +commit e45af510bc816e860c8e2e1d4a652b4fe15c4b34 +Author: Joe Ramsay +Date: Thu Nov 6 18:29:33 2025 +0000 + + AArch64: Fix instability in AdvSIMD sinh + + Previously presence of special-cases in one lane could affect the + results in other lanes due to unconditional scalar fallback. The old + WANT_SIMD_EXCEPT option (which has never been enabled in libmvec) has + been removed from AOR, making it easier to spot and fix + this. No measured change in performance. This patch applies cleanly as + far back as 2.41, however there are conflicts with 2.40 where sinh was + first introduced. + + Reviewed-by: Wilco Dijkstra + +diff --git a/sysdeps/aarch64/fpu/sinh_advsimd.c b/sysdeps/aarch64/fpu/sinh_advsimd.c +index 7adf771517de2507..66504cdee84ee77e 100644 +--- a/sysdeps/aarch64/fpu/sinh_advsimd.c ++++ b/sysdeps/aarch64/fpu/sinh_advsimd.c +@@ -24,36 +24,26 @@ static const struct data + { + struct v_expm1_data d; + uint64x2_t halff; +-#if WANT_SIMD_EXCEPT +- uint64x2_t tiny_bound, thresh; +-#else + float64x2_t large_bound; +-#endif + } data = { + .d = V_EXPM1_DATA, + .halff = V2 (0x3fe0000000000000), +-#if WANT_SIMD_EXCEPT +- /* 2^-26, below which sinh(x) rounds to x. */ +- .tiny_bound = V2 (0x3e50000000000000), +- /* asuint(large_bound) - asuint(tiny_bound). */ +- .thresh = V2 (0x0230000000000000), +-#else + /* 2^9. expm1 helper overflows for large input. */ + .large_bound = V2 (0x1p+9), +-#endif + }; + + static float64x2_t NOINLINE VPCS_ATTR +-special_case (float64x2_t x) ++special_case (float64x2_t x, float64x2_t t, float64x2_t halfsign, ++ uint64x2_t special) + { +- return v_call_f64 (sinh, x, x, v_u64 (-1)); ++ return v_call_f64 (sinh, x, vmulq_f64 (t, halfsign), special); + } + + /* Approximation for vector double-precision sinh(x) using expm1. + sinh(x) = (exp(x) - exp(-x)) / 2. + The greatest observed error is 2.52 ULP: +- _ZGVnN2v_sinh(-0x1.a098a2177a2b9p-2) got -0x1.ac2f05bb66fccp-2 +- want -0x1.ac2f05bb66fc9p-2. */ ++ _ZGVnN2v_sinh(0x1.9f6ff2ab6fb19p-2) got 0x1.aaed83a3153ccp-2 ++ want 0x1.aaed83a3153c9p-2. */ + float64x2_t VPCS_ATTR V_NAME_D1 (sinh) (float64x2_t x) + { + const struct data *d = ptr_barrier (&data); +@@ -63,21 +53,16 @@ float64x2_t VPCS_ATTR V_NAME_D1 (sinh) (float64x2_t x) + float64x2_t halfsign = vreinterpretq_f64_u64 ( + vbslq_u64 (v_u64 (0x8000000000000000), ix, d->halff)); + +-#if WANT_SIMD_EXCEPT +- uint64x2_t special = vcgeq_u64 ( +- vsubq_u64 (vreinterpretq_u64_f64 (ax), d->tiny_bound), d->thresh); +-#else + uint64x2_t special = vcageq_f64 (x, d->large_bound); +-#endif +- +- /* Fall back to scalar variant for all lanes if any of them are special. */ +- if (__glibc_unlikely (v_any_u64 (special))) +- return special_case (x); + + /* Up to the point that expm1 overflows, we can use it to calculate sinh + using a slight rearrangement of the definition of sinh. This allows us to + retain acceptable accuracy for very small inputs. */ + float64x2_t t = expm1_inline (ax, &d->d); + t = vaddq_f64 (t, vdivq_f64 (t, vaddq_f64 (t, v_f64 (1.0)))); ++ ++ if (__glibc_unlikely (v_any_u64 (special))) ++ return special_case (x, t, halfsign, special); ++ + return vmulq_f64 (t, halfsign); + } diff --git a/glibc-RHEL-118273-5.patch b/glibc-RHEL-118273-5.patch new file mode 100644 index 0000000..ab3eeb8 --- /dev/null +++ b/glibc-RHEL-118273-5.patch @@ -0,0 +1,475 @@ +commit 8b679205286e7874f0b04187c0bc787632168aa2 +Author: Joe Ramsay +Date: Wed Apr 3 12:13:53 2024 +0100 + + aarch64/fpu: Add vector variants of atanh + + Reviewed-by: Szabolcs Nagy + +diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile +index d474f2969dd05c26..4c878e590681becc 100644 +--- a/sysdeps/aarch64/fpu/Makefile ++++ b/sysdeps/aarch64/fpu/Makefile +@@ -3,6 +3,7 @@ libmvec-supported-funcs = acos \ + asin \ + asinh \ + atan \ ++ atanh \ + atan2 \ + cos \ + cosh \ +diff --git a/sysdeps/aarch64/fpu/Versions b/sysdeps/aarch64/fpu/Versions +index 08ea15efaec959fb..092949dc96d55624 100644 +--- a/sysdeps/aarch64/fpu/Versions ++++ b/sysdeps/aarch64/fpu/Versions +@@ -89,6 +89,11 @@ libmvec { + _ZGVnN4v_asinhf; + _ZGVsMxv_asinh; + _ZGVsMxv_asinhf; ++ _ZGVnN2v_atanh; ++ _ZGVnN2v_atanhf; ++ _ZGVnN4v_atanhf; ++ _ZGVsMxv_atanh; ++ _ZGVsMxv_atanhf; + _ZGVnN2v_cosh; + _ZGVnN2v_coshf; + _ZGVnN4v_coshf; +diff --git a/sysdeps/aarch64/fpu/advsimd_f32_protos.h b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +index 1e80721c9f73ba12..afbb01e191b917a4 100644 +--- a/sysdeps/aarch64/fpu/advsimd_f32_protos.h ++++ b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +@@ -22,6 +22,7 @@ libmvec_hidden_proto (V_NAME_F1(acosh)); + libmvec_hidden_proto (V_NAME_F1(asin)); + libmvec_hidden_proto (V_NAME_F1(asinh)); + libmvec_hidden_proto (V_NAME_F1(atan)); ++libmvec_hidden_proto (V_NAME_F1(atanh)); + libmvec_hidden_proto (V_NAME_F1(cos)); + libmvec_hidden_proto (V_NAME_F1(cosh)); + libmvec_hidden_proto (V_NAME_F1(erf)); +diff --git a/sysdeps/aarch64/fpu/atanh_advsimd.c b/sysdeps/aarch64/fpu/atanh_advsimd.c +new file mode 100644 +index 0000000000000000..3c3d0bd6ad41396d +--- /dev/null ++++ b/sysdeps/aarch64/fpu/atanh_advsimd.c +@@ -0,0 +1,64 @@ ++/* Double-precision vector (Advanced SIMD) atanh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#define WANT_V_LOG1P_K0_SHORTCUT 0 ++#include "v_log1p_inline.h" ++ ++const static struct data ++{ ++ struct v_log1p_data log1p_consts; ++ uint64x2_t one, half; ++} data = { .log1p_consts = V_LOG1P_CONSTANTS_TABLE, ++ .one = V2 (0x3ff0000000000000), ++ .half = V2 (0x3fe0000000000000) }; ++ ++static float64x2_t VPCS_ATTR NOINLINE ++special_case (float64x2_t x, float64x2_t y, uint64x2_t special) ++{ ++ return v_call_f64 (atanh, x, y, special); ++} ++ ++/* Approximation for vector double-precision atanh(x) using modified log1p. ++ The greatest observed error is 3.31 ULP: ++ _ZGVnN2v_atanh(0x1.ffae6288b601p-6) got 0x1.ffd8ff31b5019p-6 ++ want 0x1.ffd8ff31b501cp-6. */ ++VPCS_ATTR ++float64x2_t V_NAME_D1 (atanh) (float64x2_t x) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ float64x2_t ax = vabsq_f64 (x); ++ uint64x2_t ia = vreinterpretq_u64_f64 (ax); ++ uint64x2_t sign = veorq_u64 (vreinterpretq_u64_f64 (x), ia); ++ uint64x2_t special = vcgeq_u64 (ia, d->one); ++ float64x2_t halfsign = vreinterpretq_f64_u64 (vorrq_u64 (sign, d->half)); ++ ++#if WANT_SIMD_EXCEPT ++ ax = v_zerofy_f64 (ax, special); ++#endif ++ ++ float64x2_t y; ++ y = vaddq_f64 (ax, ax); ++ y = vdivq_f64 (y, vsubq_f64 (v_f64 (1), ax)); ++ y = log1p_inline (y, &d->log1p_consts); ++ ++ if (__glibc_unlikely (v_any_u64 (special))) ++ return special_case (x, vmulq_f64 (y, halfsign), special); ++ return vmulq_f64 (y, halfsign); ++} +diff --git a/sysdeps/aarch64/fpu/atanh_sve.c b/sysdeps/aarch64/fpu/atanh_sve.c +new file mode 100644 +index 0000000000000000..7a52728d70f6d226 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/atanh_sve.c +@@ -0,0 +1,59 @@ ++/* Double-precision vector (SVE) atanh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#define WANT_SV_LOG1P_K0_SHORTCUT 0 ++#include "sv_log1p_inline.h" ++ ++#define One (0x3ff0000000000000) ++#define Half (0x3fe0000000000000) ++ ++static svfloat64_t NOINLINE ++special_case (svfloat64_t x, svfloat64_t y, svbool_t special) ++{ ++ return sv_call_f64 (atanh, x, y, special); ++} ++ ++/* SVE approximation for double-precision atanh, based on log1p. ++ The greatest observed error is 2.81 ULP: ++ _ZGVsMxv_atanh(0x1.ffae6288b601p-6) got 0x1.ffd8ff31b5019p-6 ++ want 0x1.ffd8ff31b501cp-6. */ ++svfloat64_t SV_NAME_D1 (atanh) (svfloat64_t x, const svbool_t pg) ++{ ++ ++ svfloat64_t ax = svabs_x (pg, x); ++ svuint64_t iax = svreinterpret_u64 (ax); ++ svuint64_t sign = sveor_x (pg, svreinterpret_u64 (x), iax); ++ svfloat64_t halfsign = svreinterpret_f64 (svorr_x (pg, sign, Half)); ++ ++ /* It is special if iax >= 1. */ ++// svbool_t special = svcmpge (pg, iax, One); ++ svbool_t special = svacge (pg, x, 1.0); ++ ++ /* Computation is performed based on the following sequence of equality: ++ (1+x)/(1-x) = 1 + 2x/(1-x). */ ++ svfloat64_t y; ++ y = svadd_x (pg, ax, ax); ++ y = svdiv_x (pg, y, svsub_x (pg, sv_f64 (1), ax)); ++ /* ln((1+x)/(1-x)) = ln(1+2x/(1-x)) = ln(1 + y). */ ++ y = sv_log1p_inline (y, pg); ++ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ return special_case (x, svmul_x (pg, halfsign, y), special); ++ return svmul_x (pg, halfsign, y); ++} +diff --git a/sysdeps/aarch64/fpu/atanhf_advsimd.c b/sysdeps/aarch64/fpu/atanhf_advsimd.c +new file mode 100644 +index 0000000000000000..ae488f7b54ddce26 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/atanhf_advsimd.c +@@ -0,0 +1,79 @@ ++/* Single-precision vector (Advanced SIMD) atanh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_math.h" ++#include "v_log1pf_inline.h" ++ ++const static struct data ++{ ++ struct v_log1pf_data log1pf_consts; ++ uint32x4_t one; ++#if WANT_SIMD_EXCEPT ++ uint32x4_t tiny_bound; ++#endif ++} data = { ++ .log1pf_consts = V_LOG1PF_CONSTANTS_TABLE, ++ .one = V4 (0x3f800000), ++#if WANT_SIMD_EXCEPT ++ /* 0x1p-12, below which atanhf(x) rounds to x. */ ++ .tiny_bound = V4 (0x39800000), ++#endif ++}; ++ ++#define AbsMask v_u32 (0x7fffffff) ++#define Half v_u32 (0x3f000000) ++ ++static float32x4_t NOINLINE VPCS_ATTR ++special_case (float32x4_t x, float32x4_t y, uint32x4_t special) ++{ ++ return v_call_f32 (atanhf, x, y, special); ++} ++ ++/* Approximation for vector single-precision atanh(x) using modified log1p. ++ The maximum error is 3.08 ULP: ++ __v_atanhf(0x1.ff215p-5) got 0x1.ffcb7cp-5 ++ want 0x1.ffcb82p-5. */ ++VPCS_ATTR float32x4_t NOINLINE V_NAME_F1 (atanh) (float32x4_t x) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ float32x4_t halfsign = vbslq_f32 (AbsMask, v_f32 (0.5), x); ++ float32x4_t ax = vabsq_f32 (x); ++ uint32x4_t iax = vreinterpretq_u32_f32 (ax); ++ ++#if WANT_SIMD_EXCEPT ++ uint32x4_t special ++ = vorrq_u32 (vcgeq_u32 (iax, d->one), vcltq_u32 (iax, d->tiny_bound)); ++ /* Side-step special cases by setting those lanes to 0, which will trigger no ++ exceptions. These will be fixed up later. */ ++ if (__glibc_unlikely (v_any_u32 (special))) ++ ax = v_zerofy_f32 (ax, special); ++#else ++ uint32x4_t special = vcgeq_u32 (iax, d->one); ++#endif ++ ++ float32x4_t y = vdivq_f32 (vaddq_f32 (ax, ax), vsubq_f32 (v_f32 (1), ax)); ++ y = log1pf_inline (y, d->log1pf_consts); ++ ++ if (__glibc_unlikely (v_any_u32 (special))) ++ return special_case (x, vmulq_f32 (halfsign, y), special); ++ return vmulq_f32 (halfsign, y); ++} ++libmvec_hidden_def (V_NAME_F1 (atanh)) ++HALF_WIDTH_ALIAS_F1 (atanh) +diff --git a/sysdeps/aarch64/fpu/atanhf_sve.c b/sysdeps/aarch64/fpu/atanhf_sve.c +new file mode 100644 +index 0000000000000000..dae83041ef7157f0 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/atanhf_sve.c +@@ -0,0 +1,54 @@ ++/* Single-precision vector (SVE) atanh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "sv_log1pf_inline.h" ++ ++#define One (0x3f800000) ++#define Half (0x3f000000) ++ ++static svfloat32_t NOINLINE ++special_case (svfloat32_t x, svfloat32_t y, svbool_t special) ++{ ++ return sv_call_f32 (atanhf, x, y, special); ++} ++ ++/* Approximation for vector single-precision atanh(x) using modified log1p. ++ The maximum error is 2.28 ULP: ++ _ZGVsMxv_atanhf(0x1.ff1194p-5) got 0x1.ffbbbcp-5 ++ want 0x1.ffbbb6p-5. */ ++svfloat32_t SV_NAME_F1 (atanh) (svfloat32_t x, const svbool_t pg) ++{ ++ svfloat32_t ax = svabs_x (pg, x); ++ svuint32_t iax = svreinterpret_u32 (ax); ++ svuint32_t sign = sveor_x (pg, svreinterpret_u32 (x), iax); ++ svfloat32_t halfsign = svreinterpret_f32 (svorr_x (pg, sign, Half)); ++ svbool_t special = svcmpge (pg, iax, One); ++ ++ /* Computation is performed based on the following sequence of equality: ++ * (1+x)/(1-x) = 1 + 2x/(1-x). */ ++ svfloat32_t y = svadd_x (pg, ax, ax); ++ y = svdiv_x (pg, y, svsub_x (pg, sv_f32 (1), ax)); ++ /* ln((1+x)/(1-x)) = ln(1+2x/(1-x)) = ln(1 + y). */ ++ y = sv_log1pf_inline (y, pg); ++ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ return special_case (x, svmul_x (pg, halfsign, y), special); ++ ++ return svmul_x (pg, halfsign, y); ++} +diff --git a/sysdeps/aarch64/fpu/bits/math-vector.h b/sysdeps/aarch64/fpu/bits/math-vector.h +index eb2af35b27757fc6..ab7a8f74548854b9 100644 +--- a/sysdeps/aarch64/fpu/bits/math-vector.h ++++ b/sysdeps/aarch64/fpu/bits/math-vector.h +@@ -49,6 +49,10 @@ + # define __DECL_SIMD_atan __DECL_SIMD_aarch64 + # undef __DECL_SIMD_atanf + # define __DECL_SIMD_atanf __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_atanh ++# define __DECL_SIMD_atanh __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_atanhf ++# define __DECL_SIMD_atanhf __DECL_SIMD_aarch64 + # undef __DECL_SIMD_atan2 + # define __DECL_SIMD_atan2 __DECL_SIMD_aarch64 + # undef __DECL_SIMD_atan2f +@@ -137,6 +141,7 @@ __vpcs __f32x4_t _ZGVnN4v_acoshf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_asinf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_asinhf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_atanf (__f32x4_t); ++__vpcs __f32x4_t _ZGVnN4v_atanhf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_cosf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_coshf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_erff (__f32x4_t); +@@ -157,6 +162,7 @@ __vpcs __f64x2_t _ZGVnN2v_acosh (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_asin (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_asinh (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_atan (__f64x2_t); ++__vpcs __f64x2_t _ZGVnN2v_atanh (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_cos (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_cosh (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_erf (__f64x2_t); +@@ -182,6 +188,7 @@ __sv_f32_t _ZGVsMxv_acoshf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_asinf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_asinhf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_atanf (__sv_f32_t, __sv_bool_t); ++__sv_f32_t _ZGVsMxv_atanhf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_cosf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_coshf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_erff (__sv_f32_t, __sv_bool_t); +@@ -202,6 +209,7 @@ __sv_f64_t _ZGVsMxv_acosh (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_asin (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_asinh (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_atan (__sv_f64_t, __sv_bool_t); ++__sv_f64_t _ZGVsMxv_atanh (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_cos (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_cosh (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_erf (__sv_f64_t, __sv_bool_t); +diff --git a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +index 3d7177c32dcd77a6..a01aa99c16740631 100644 +--- a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +@@ -28,6 +28,7 @@ VPCS_VECTOR_WRAPPER (acosh_advsimd, _ZGVnN2v_acosh) + VPCS_VECTOR_WRAPPER (asin_advsimd, _ZGVnN2v_asin) + VPCS_VECTOR_WRAPPER (asinh_advsimd, _ZGVnN2v_asinh) + VPCS_VECTOR_WRAPPER (atan_advsimd, _ZGVnN2v_atan) ++VPCS_VECTOR_WRAPPER (atanh_advsimd, _ZGVnN2v_atanh) + VPCS_VECTOR_WRAPPER_ff (atan2_advsimd, _ZGVnN2vv_atan2) + VPCS_VECTOR_WRAPPER (cos_advsimd, _ZGVnN2v_cos) + VPCS_VECTOR_WRAPPER (cosh_advsimd, _ZGVnN2v_cosh) +diff --git a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +index b88a2afe5c1198c0..83cb3ad5d0e4d056 100644 +--- a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +@@ -47,6 +47,7 @@ SVE_VECTOR_WRAPPER (acosh_sve, _ZGVsMxv_acosh) + SVE_VECTOR_WRAPPER (asin_sve, _ZGVsMxv_asin) + SVE_VECTOR_WRAPPER (asinh_sve, _ZGVsMxv_asinh) + SVE_VECTOR_WRAPPER (atan_sve, _ZGVsMxv_atan) ++SVE_VECTOR_WRAPPER (atanh_sve, _ZGVsMxv_atanh) + SVE_VECTOR_WRAPPER_ff (atan2_sve, _ZGVsMxvv_atan2) + SVE_VECTOR_WRAPPER (cos_sve, _ZGVsMxv_cos) + SVE_VECTOR_WRAPPER (cosh_sve, _ZGVsMxv_cosh) +diff --git a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +index 533655402d3f3737..831d4d755272d616 100644 +--- a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +@@ -28,6 +28,7 @@ VPCS_VECTOR_WRAPPER (acoshf_advsimd, _ZGVnN4v_acoshf) + VPCS_VECTOR_WRAPPER (asinf_advsimd, _ZGVnN4v_asinf) + VPCS_VECTOR_WRAPPER (asinhf_advsimd, _ZGVnN4v_asinhf) + VPCS_VECTOR_WRAPPER (atanf_advsimd, _ZGVnN4v_atanf) ++VPCS_VECTOR_WRAPPER (atanhf_advsimd, _ZGVnN4v_atanhf) + VPCS_VECTOR_WRAPPER_ff (atan2f_advsimd, _ZGVnN4vv_atan2f) + VPCS_VECTOR_WRAPPER (cosf_advsimd, _ZGVnN4v_cosf) + VPCS_VECTOR_WRAPPER (coshf_advsimd, _ZGVnN4v_coshf) +diff --git a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +index f7b673e3358e7d82..96fd612c3e76f6dc 100644 +--- a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +@@ -47,6 +47,7 @@ SVE_VECTOR_WRAPPER (acoshf_sve, _ZGVsMxv_acoshf) + SVE_VECTOR_WRAPPER (asinf_sve, _ZGVsMxv_asinf) + SVE_VECTOR_WRAPPER (asinhf_sve, _ZGVsMxv_asinhf) + SVE_VECTOR_WRAPPER (atanf_sve, _ZGVsMxv_atanf) ++SVE_VECTOR_WRAPPER (atanhf_sve, _ZGVsMxv_atanhf) + SVE_VECTOR_WRAPPER_ff (atan2f_sve, _ZGVsMxvv_atan2f) + SVE_VECTOR_WRAPPER (cosf_sve, _ZGVsMxv_cosf) + SVE_VECTOR_WRAPPER (coshf_sve, _ZGVsMxv_coshf) +diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps +index b916e422432014c2..7c2e43d3dc5bbc13 100644 +--- a/sysdeps/aarch64/libm-test-ulps ++++ b/sysdeps/aarch64/libm-test-ulps +@@ -173,11 +173,19 @@ double: 2 + float: 2 + ldouble: 4 + ++Function: "atanh_advsimd": ++double: 1 ++float: 1 ++ + Function: "atanh_downward": + double: 3 + float: 3 + ldouble: 4 + ++Function: "atanh_sve": ++double: 2 ++float: 1 ++ + Function: "atanh_towardzero": + double: 2 + float: 2 +diff --git a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +index f288afdfdd9c8757..ce42372a3a276832 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist ++++ b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +@@ -77,18 +77,23 @@ GLIBC_2.40 _ZGVnN2v_acosh F + GLIBC_2.40 _ZGVnN2v_acoshf F + GLIBC_2.40 _ZGVnN2v_asinh F + GLIBC_2.40 _ZGVnN2v_asinhf F ++GLIBC_2.40 _ZGVnN2v_atanh F ++GLIBC_2.40 _ZGVnN2v_atanhf F + GLIBC_2.40 _ZGVnN2v_cosh F + GLIBC_2.40 _ZGVnN2v_coshf F + GLIBC_2.40 _ZGVnN2v_erf F + GLIBC_2.40 _ZGVnN2v_erff F + GLIBC_2.40 _ZGVnN4v_acoshf F + GLIBC_2.40 _ZGVnN4v_asinhf F ++GLIBC_2.40 _ZGVnN4v_atanhf F + GLIBC_2.40 _ZGVnN4v_coshf F + GLIBC_2.40 _ZGVnN4v_erff F + GLIBC_2.40 _ZGVsMxv_acosh F + GLIBC_2.40 _ZGVsMxv_acoshf F + GLIBC_2.40 _ZGVsMxv_asinh F + GLIBC_2.40 _ZGVsMxv_asinhf F ++GLIBC_2.40 _ZGVsMxv_atanh F ++GLIBC_2.40 _ZGVsMxv_atanhf F + GLIBC_2.40 _ZGVsMxv_cosh F + GLIBC_2.40 _ZGVsMxv_coshf F + GLIBC_2.40 _ZGVsMxv_erf F diff --git a/glibc-RHEL-118273-6.patch b/glibc-RHEL-118273-6.patch new file mode 100644 index 0000000..8cf84cb --- /dev/null +++ b/glibc-RHEL-118273-6.patch @@ -0,0 +1,758 @@ +commit eedbbca0bf3adf3c45aff6c4e128bae3a5562675 +Author: Joe Ramsay +Date: Wed Apr 3 12:15:41 2024 +0100 + + aarch64/fpu: Add vector variants of sinh + + Reviewed-by: Szabolcs Nagy + +diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile +index 4c878e590681becc..fb5f3a365b27fdf3 100644 +--- a/sysdeps/aarch64/fpu/Makefile ++++ b/sysdeps/aarch64/fpu/Makefile +@@ -17,6 +17,7 @@ libmvec-supported-funcs = acos \ + log1p \ + log2 \ + sin \ ++ sinh \ + tan + + float-advsimd-funcs = $(libmvec-supported-funcs) +diff --git a/sysdeps/aarch64/fpu/Versions b/sysdeps/aarch64/fpu/Versions +index 092949dc96d55624..4774b3efeacf59fb 100644 +--- a/sysdeps/aarch64/fpu/Versions ++++ b/sysdeps/aarch64/fpu/Versions +@@ -104,5 +104,10 @@ libmvec { + _ZGVnN4v_erff; + _ZGVsMxv_erf; + _ZGVsMxv_erff; ++ _ZGVnN2v_sinh; ++ _ZGVnN2v_sinhf; ++ _ZGVnN4v_sinhf; ++ _ZGVsMxv_sinh; ++ _ZGVsMxv_sinhf; + } + } +diff --git a/sysdeps/aarch64/fpu/advsimd_f32_protos.h b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +index afbb01e191b917a4..7d9445d5c0c0c2a8 100644 +--- a/sysdeps/aarch64/fpu/advsimd_f32_protos.h ++++ b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +@@ -35,5 +35,6 @@ libmvec_hidden_proto (V_NAME_F1(log1p)); + libmvec_hidden_proto (V_NAME_F1(log2)); + libmvec_hidden_proto (V_NAME_F1(log)); + libmvec_hidden_proto (V_NAME_F1(sin)); ++libmvec_hidden_proto (V_NAME_F1(sinh)); + libmvec_hidden_proto (V_NAME_F1(tan)); + libmvec_hidden_proto (V_NAME_F2(atan2)); +diff --git a/sysdeps/aarch64/fpu/bits/math-vector.h b/sysdeps/aarch64/fpu/bits/math-vector.h +index ab7a8f74548854b9..1e9b76cf41916365 100644 +--- a/sysdeps/aarch64/fpu/bits/math-vector.h ++++ b/sysdeps/aarch64/fpu/bits/math-vector.h +@@ -105,6 +105,10 @@ + # define __DECL_SIMD_sin __DECL_SIMD_aarch64 + # undef __DECL_SIMD_sinf + # define __DECL_SIMD_sinf __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_sinh ++# define __DECL_SIMD_sinh __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_sinhf ++# define __DECL_SIMD_sinhf __DECL_SIMD_aarch64 + # undef __DECL_SIMD_tan + # define __DECL_SIMD_tan __DECL_SIMD_aarch64 + # undef __DECL_SIMD_tanf +@@ -154,6 +158,7 @@ __vpcs __f32x4_t _ZGVnN4v_log10f (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_log1pf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_log2f (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_sinf (__f32x4_t); ++__vpcs __f32x4_t _ZGVnN4v_sinhf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_tanf (__f32x4_t); + + __vpcs __f64x2_t _ZGVnN2vv_atan2 (__f64x2_t, __f64x2_t); +@@ -175,6 +180,7 @@ __vpcs __f64x2_t _ZGVnN2v_log10 (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_log1p (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_log2 (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_sin (__f64x2_t); ++__vpcs __f64x2_t _ZGVnN2v_sinh (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_tan (__f64x2_t); + + # undef __ADVSIMD_VEC_MATH_SUPPORTED +@@ -201,6 +207,7 @@ __sv_f32_t _ZGVsMxv_log10f (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_log1pf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_log2f (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_sinf (__sv_f32_t, __sv_bool_t); ++__sv_f32_t _ZGVsMxv_sinhf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_tanf (__sv_f32_t, __sv_bool_t); + + __sv_f64_t _ZGVsMxvv_atan2 (__sv_f64_t, __sv_f64_t, __sv_bool_t); +@@ -222,6 +229,7 @@ __sv_f64_t _ZGVsMxv_log10 (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_log1p (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_log2 (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_sin (__sv_f64_t, __sv_bool_t); ++__sv_f64_t _ZGVsMxv_sinh (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_tan (__sv_f64_t, __sv_bool_t); + + # undef __SVE_VEC_MATH_SUPPORTED +diff --git a/sysdeps/aarch64/fpu/sinh_advsimd.c b/sysdeps/aarch64/fpu/sinh_advsimd.c +new file mode 100644 +index 0000000000000000..fa3723b10c15eb29 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/sinh_advsimd.c +@@ -0,0 +1,121 @@ ++/* Double-precision vector (Advanced SIMD) sinh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_math.h" ++#include "poly_advsimd_f64.h" ++ ++static const struct data ++{ ++ float64x2_t poly[11]; ++ float64x2_t inv_ln2, m_ln2, shift; ++ uint64x2_t halff; ++ int64x2_t onef; ++#if WANT_SIMD_EXCEPT ++ uint64x2_t tiny_bound, thresh; ++#else ++ uint64x2_t large_bound; ++#endif ++} data = { ++ /* Generated using Remez, deg=12 in [-log(2)/2, log(2)/2]. */ ++ .poly = { V2 (0x1p-1), V2 (0x1.5555555555559p-3), V2 (0x1.555555555554bp-5), ++ V2 (0x1.111111110f663p-7), V2 (0x1.6c16c16c1b5f3p-10), ++ V2 (0x1.a01a01affa35dp-13), V2 (0x1.a01a018b4ecbbp-16), ++ V2 (0x1.71ddf82db5bb4p-19), V2 (0x1.27e517fc0d54bp-22), ++ V2 (0x1.af5eedae67435p-26), V2 (0x1.1f143d060a28ap-29), }, ++ ++ .inv_ln2 = V2 (0x1.71547652b82fep0), ++ .m_ln2 = (float64x2_t) {-0x1.62e42fefa39efp-1, -0x1.abc9e3b39803fp-56}, ++ .shift = V2 (0x1.8p52), ++ ++ .halff = V2 (0x3fe0000000000000), ++ .onef = V2 (0x3ff0000000000000), ++#if WANT_SIMD_EXCEPT ++ /* 2^-26, below which sinh(x) rounds to x. */ ++ .tiny_bound = V2 (0x3e50000000000000), ++ /* asuint(large_bound) - asuint(tiny_bound). */ ++ .thresh = V2 (0x0230000000000000), ++#else ++/* 2^9. expm1 helper overflows for large input. */ ++ .large_bound = V2 (0x4080000000000000), ++#endif ++}; ++ ++static inline float64x2_t ++expm1_inline (float64x2_t x) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ /* Reduce argument: ++ exp(x) - 1 = 2^i * (expm1(f) + 1) - 1 ++ where i = round(x / ln2) ++ and f = x - i * ln2 (f in [-ln2/2, ln2/2]). */ ++ float64x2_t j = vsubq_f64 (vfmaq_f64 (d->shift, d->inv_ln2, x), d->shift); ++ int64x2_t i = vcvtq_s64_f64 (j); ++ float64x2_t f = vfmaq_laneq_f64 (x, j, d->m_ln2, 0); ++ f = vfmaq_laneq_f64 (f, j, d->m_ln2, 1); ++ /* Approximate expm1(f) using polynomial. */ ++ float64x2_t f2 = vmulq_f64 (f, f); ++ float64x2_t f4 = vmulq_f64 (f2, f2); ++ float64x2_t f8 = vmulq_f64 (f4, f4); ++ float64x2_t p = vfmaq_f64 (f, f2, v_estrin_10_f64 (f, f2, f4, f8, d->poly)); ++ /* t = 2^i. */ ++ float64x2_t t = vreinterpretq_f64_u64 ( ++ vreinterpretq_u64_s64 (vaddq_s64 (vshlq_n_s64 (i, 52), d->onef))); ++ /* expm1(x) ~= p * t + (t - 1). */ ++ return vfmaq_f64 (vsubq_f64 (t, v_f64 (1.0)), p, t); ++} ++ ++static float64x2_t NOINLINE VPCS_ATTR ++special_case (float64x2_t x) ++{ ++ return v_call_f64 (sinh, x, x, v_u64 (-1)); ++} ++ ++/* Approximation for vector double-precision sinh(x) using expm1. ++ sinh(x) = (exp(x) - exp(-x)) / 2. ++ The greatest observed error is 2.57 ULP: ++ _ZGVnN2v_sinh (0x1.9fb1d49d1d58bp-2) got 0x1.ab34e59d678dcp-2 ++ want 0x1.ab34e59d678d9p-2. */ ++float64x2_t VPCS_ATTR V_NAME_D1 (sinh) (float64x2_t x) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ float64x2_t ax = vabsq_f64 (x); ++ uint64x2_t sign ++ = veorq_u64 (vreinterpretq_u64_f64 (x), vreinterpretq_u64_f64 (ax)); ++ float64x2_t halfsign = vreinterpretq_f64_u64 (vorrq_u64 (sign, d->halff)); ++ ++#if WANT_SIMD_EXCEPT ++ uint64x2_t special = vcgeq_u64 ( ++ vsubq_u64 (vreinterpretq_u64_f64 (ax), d->tiny_bound), d->thresh); ++#else ++ uint64x2_t special = vcgeq_u64 (vreinterpretq_u64_f64 (ax), d->large_bound); ++#endif ++ ++ /* Fall back to scalar variant for all lanes if any of them are special. */ ++ if (__glibc_unlikely (v_any_u64 (special))) ++ return special_case (x); ++ ++ /* Up to the point that expm1 overflows, we can use it to calculate sinh ++ using a slight rearrangement of the definition of sinh. This allows us to ++ retain acceptable accuracy for very small inputs. */ ++ float64x2_t t = expm1_inline (ax); ++ t = vaddq_f64 (t, vdivq_f64 (t, vaddq_f64 (t, v_f64 (1.0)))); ++ return vmulq_f64 (t, halfsign); ++} +diff --git a/sysdeps/aarch64/fpu/sinh_sve.c b/sysdeps/aarch64/fpu/sinh_sve.c +new file mode 100644 +index 0000000000000000..df5f6c8c06e5b173 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/sinh_sve.c +@@ -0,0 +1,107 @@ ++/* Double-precision vector (SVE) atanh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "sv_math.h" ++#include "poly_sve_f64.h" ++ ++static const struct data ++{ ++ float64_t poly[11]; ++ float64_t inv_ln2, m_ln2_hi, m_ln2_lo, shift; ++ uint64_t halff; ++ int64_t onef; ++ uint64_t large_bound; ++} data = { ++ /* Generated using Remez, deg=12 in [-log(2)/2, log(2)/2]. */ ++ .poly = { 0x1p-1, 0x1.5555555555559p-3, 0x1.555555555554bp-5, ++ 0x1.111111110f663p-7, 0x1.6c16c16c1b5f3p-10, ++ 0x1.a01a01affa35dp-13, 0x1.a01a018b4ecbbp-16, ++ 0x1.71ddf82db5bb4p-19, 0x1.27e517fc0d54bp-22, ++ 0x1.af5eedae67435p-26, 0x1.1f143d060a28ap-29, }, ++ ++ .inv_ln2 = 0x1.71547652b82fep0, ++ .m_ln2_hi = -0x1.62e42fefa39efp-1, ++ .m_ln2_lo = -0x1.abc9e3b39803fp-56, ++ .shift = 0x1.8p52, ++ ++ .halff = 0x3fe0000000000000, ++ .onef = 0x3ff0000000000000, ++ /* 2^9. expm1 helper overflows for large input. */ ++ .large_bound = 0x4080000000000000, ++}; ++ ++static inline svfloat64_t ++expm1_inline (svfloat64_t x, svbool_t pg) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ /* Reduce argument: ++ exp(x) - 1 = 2^i * (expm1(f) + 1) - 1 ++ where i = round(x / ln2) ++ and f = x - i * ln2 (f in [-ln2/2, ln2/2]). */ ++ svfloat64_t j ++ = svsub_x (pg, svmla_x (pg, sv_f64 (d->shift), x, d->inv_ln2), d->shift); ++ svint64_t i = svcvt_s64_x (pg, j); ++ svfloat64_t f = svmla_x (pg, x, j, d->m_ln2_hi); ++ f = svmla_x (pg, f, j, d->m_ln2_lo); ++ /* Approximate expm1(f) using polynomial. */ ++ svfloat64_t f2 = svmul_x (pg, f, f); ++ svfloat64_t f4 = svmul_x (pg, f2, f2); ++ svfloat64_t f8 = svmul_x (pg, f4, f4); ++ svfloat64_t p ++ = svmla_x (pg, f, f2, sv_estrin_10_f64_x (pg, f, f2, f4, f8, d->poly)); ++ /* t = 2^i. */ ++ svfloat64_t t = svscale_x (pg, sv_f64 (1), i); ++ /* expm1(x) ~= p * t + (t - 1). */ ++ return svmla_x (pg, svsub_x (pg, t, 1.0), p, t); ++} ++ ++static svfloat64_t NOINLINE ++special_case (svfloat64_t x, svbool_t pg) ++{ ++ return sv_call_f64 (sinh, x, x, pg); ++} ++ ++/* Approximation for SVE double-precision sinh(x) using expm1. ++ sinh(x) = (exp(x) - exp(-x)) / 2. ++ The greatest observed error is 2.57 ULP: ++ _ZGVsMxv_sinh (0x1.a008538399931p-2) got 0x1.ab929fc64bd66p-2 ++ want 0x1.ab929fc64bd63p-2. */ ++svfloat64_t SV_NAME_D1 (sinh) (svfloat64_t x, svbool_t pg) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ svfloat64_t ax = svabs_x (pg, x); ++ svuint64_t sign ++ = sveor_x (pg, svreinterpret_u64 (x), svreinterpret_u64 (ax)); ++ svfloat64_t halfsign = svreinterpret_f64 (svorr_x (pg, sign, d->halff)); ++ ++ svbool_t special = svcmpge (pg, svreinterpret_u64 (ax), d->large_bound); ++ ++ /* Fall back to scalar variant for all lanes if any are special. */ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ return special_case (x, pg); ++ ++ /* Up to the point that expm1 overflows, we can use it to calculate sinh ++ using a slight rearrangement of the definition of sinh. This allows us to ++ retain acceptable accuracy for very small inputs. */ ++ svfloat64_t t = expm1_inline (ax, pg); ++ t = svadd_x (pg, t, svdiv_x (pg, t, svadd_x (pg, t, 1.0))); ++ return svmul_x (pg, t, halfsign); ++} +diff --git a/sysdeps/aarch64/fpu/sinhf_advsimd.c b/sysdeps/aarch64/fpu/sinhf_advsimd.c +new file mode 100644 +index 0000000000000000..6bb7482dc28795c1 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/sinhf_advsimd.c +@@ -0,0 +1,88 @@ ++/* Single-precision vector (Advanced SIMD) sinh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_math.h" ++#include "v_expm1f_inline.h" ++ ++static const struct data ++{ ++ struct v_expm1f_data expm1f_consts; ++ uint32x4_t halff; ++#if WANT_SIMD_EXCEPT ++ uint32x4_t tiny_bound, thresh; ++#else ++ uint32x4_t oflow_bound; ++#endif ++} data = { ++ .expm1f_consts = V_EXPM1F_DATA, ++ .halff = V4 (0x3f000000), ++#if WANT_SIMD_EXCEPT ++ /* 0x1.6a09e8p-32, below which expm1f underflows. */ ++ .tiny_bound = V4 (0x2fb504f4), ++ /* asuint(oflow_bound) - asuint(tiny_bound). */ ++ .thresh = V4 (0x12fbbbb3), ++#else ++ /* 0x1.61814ep+6, above which expm1f helper overflows. */ ++ .oflow_bound = V4 (0x42b0c0a7), ++#endif ++}; ++ ++static float32x4_t NOINLINE VPCS_ATTR ++special_case (float32x4_t x, float32x4_t y, uint32x4_t special) ++{ ++ return v_call_f32 (sinhf, x, y, special); ++} ++ ++/* Approximation for vector single-precision sinh(x) using expm1. ++ sinh(x) = (exp(x) - exp(-x)) / 2. ++ The maximum error is 2.26 ULP: ++ _ZGVnN4v_sinhf (0x1.e34a9ep-4) got 0x1.e469ep-4 ++ want 0x1.e469e4p-4. */ ++float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (sinh) (float32x4_t x) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ uint32x4_t ix = vreinterpretq_u32_f32 (x); ++ float32x4_t ax = vabsq_f32 (x); ++ uint32x4_t iax = vreinterpretq_u32_f32 (ax); ++ uint32x4_t sign = veorq_u32 (ix, iax); ++ float32x4_t halfsign = vreinterpretq_f32_u32 (vorrq_u32 (sign, d->halff)); ++ ++#if WANT_SIMD_EXCEPT ++ uint32x4_t special = vcgeq_u32 (vsubq_u32 (iax, d->tiny_bound), d->thresh); ++ ax = v_zerofy_f32 (ax, special); ++#else ++ uint32x4_t special = vcgeq_u32 (iax, d->oflow_bound); ++#endif ++ ++ /* Up to the point that expm1f overflows, we can use it to calculate sinhf ++ using a slight rearrangement of the definition of asinh. This allows us ++ to retain acceptable accuracy for very small inputs. */ ++ float32x4_t t = expm1f_inline (ax, &d->expm1f_consts); ++ t = vaddq_f32 (t, vdivq_f32 (t, vaddq_f32 (t, v_f32 (1.0)))); ++ ++ /* Fall back to the scalar variant for any lanes that should trigger an ++ exception. */ ++ if (__glibc_unlikely (v_any_u32 (special))) ++ return special_case (x, vmulq_f32 (t, halfsign), special); ++ ++ return vmulq_f32 (t, halfsign); ++} ++libmvec_hidden_def (V_NAME_F1 (sinh)) ++HALF_WIDTH_ALIAS_F1 (sinh) +diff --git a/sysdeps/aarch64/fpu/sinhf_sve.c b/sysdeps/aarch64/fpu/sinhf_sve.c +new file mode 100644 +index 0000000000000000..6c204b57a2aa18d3 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/sinhf_sve.c +@@ -0,0 +1,67 @@ ++/* Single-precision vector (SVE) sinh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "sv_expm1f_inline.h" ++#include "sv_math.h" ++ ++static const struct data ++{ ++ struct sv_expm1f_data expm1f_consts; ++ uint32_t halff, large_bound; ++} data = { ++ .expm1f_consts = SV_EXPM1F_DATA, ++ .halff = 0x3f000000, ++ /* 0x1.61814ep+6, above which expm1f helper overflows. */ ++ .large_bound = 0x42b0c0a7, ++}; ++ ++static svfloat32_t NOINLINE ++special_case (svfloat32_t x, svfloat32_t y, svbool_t pg) ++{ ++ return sv_call_f32 (sinhf, x, y, pg); ++} ++ ++/* Approximation for SVE single-precision sinh(x) using expm1. ++ sinh(x) = (exp(x) - exp(-x)) / 2. ++ The maximum error is 2.26 ULP: ++ _ZGVsMxv_sinhf (0x1.e34a9ep-4) got 0x1.e469ep-4 ++ want 0x1.e469e4p-4. */ ++svfloat32_t SV_NAME_F1 (sinh) (svfloat32_t x, const svbool_t pg) ++{ ++ const struct data *d = ptr_barrier (&data); ++ svfloat32_t ax = svabs_x (pg, x); ++ svuint32_t sign ++ = sveor_x (pg, svreinterpret_u32 (x), svreinterpret_u32 (ax)); ++ svfloat32_t halfsign = svreinterpret_f32 (svorr_x (pg, sign, d->halff)); ++ ++ svbool_t special = svcmpge (pg, svreinterpret_u32 (ax), d->large_bound); ++ ++ /* Up to the point that expm1f overflows, we can use it to calculate sinhf ++ using a slight rearrangement of the definition of asinh. This allows us to ++ retain acceptable accuracy for very small inputs. */ ++ svfloat32_t t = expm1f_inline (ax, pg, &d->expm1f_consts); ++ t = svadd_x (pg, t, svdiv_x (pg, t, svadd_x (pg, t, 1.0))); ++ ++ /* Fall back to the scalar variant for any lanes which would cause ++ expm1f to overflow. */ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ return special_case (x, svmul_x (pg, t, halfsign), special); ++ ++ return svmul_x (pg, t, halfsign); ++} +diff --git a/sysdeps/aarch64/fpu/sv_expm1f_inline.h b/sysdeps/aarch64/fpu/sv_expm1f_inline.h +new file mode 100644 +index 0000000000000000..5b7245122294e1b4 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/sv_expm1f_inline.h +@@ -0,0 +1,84 @@ ++/* Single-precision inline helper for vector (SVE) expm1 function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#ifndef AARCH64_FPU_SV_EXPM1F_INLINE_H ++#define AARCH64_FPU_SV_EXPM1F_INLINE_H ++ ++#include "sv_math.h" ++ ++struct sv_expm1f_data ++{ ++ /* These 4 are grouped together so they can be loaded as one quadword, then ++ used with _lane forms of svmla/svmls. */ ++ float32_t c2, c4, ln2_hi, ln2_lo; ++ float32_t c0, c1, c3, inv_ln2, shift; ++}; ++ ++/* Coefficients generated using fpminimax. */ ++#define SV_EXPM1F_DATA \ ++ { \ ++ .c0 = 0x1.fffffep-2, .c1 = 0x1.5554aep-3, .c2 = 0x1.555736p-5, \ ++ .c3 = 0x1.12287cp-7, .c4 = 0x1.6b55a2p-10, \ ++ \ ++ .shift = 0x1.8p23f, .inv_ln2 = 0x1.715476p+0f, .ln2_hi = 0x1.62e4p-1f, \ ++ .ln2_lo = 0x1.7f7d1cp-20f, \ ++ } ++ ++#define C(i) sv_f32 (d->c##i) ++ ++static inline svfloat32_t ++expm1f_inline (svfloat32_t x, svbool_t pg, const struct sv_expm1f_data *d) ++{ ++ /* This vector is reliant on layout of data - it contains constants ++ that can be used with _lane forms of svmla/svmls. Values are: ++ [ coeff_2, coeff_4, ln2_hi, ln2_lo ]. */ ++ svfloat32_t lane_constants = svld1rq (svptrue_b32 (), &d->c2); ++ ++ /* Reduce argument to smaller range: ++ Let i = round(x / ln2) ++ and f = x - i * ln2, then f is in [-ln2/2, ln2/2]. ++ exp(x) - 1 = 2^i * (expm1(f) + 1) - 1 ++ where 2^i is exact because i is an integer. */ ++ svfloat32_t j = svmla_x (pg, sv_f32 (d->shift), x, d->inv_ln2); ++ j = svsub_x (pg, j, d->shift); ++ svint32_t i = svcvt_s32_x (pg, j); ++ ++ svfloat32_t f = svmls_lane (x, j, lane_constants, 2); ++ f = svmls_lane (f, j, lane_constants, 3); ++ ++ /* Approximate expm1(f) using polynomial. ++ Taylor expansion for expm1(x) has the form: ++ x + ax^2 + bx^3 + cx^4 .... ++ So we calculate the polynomial P(f) = a + bf + cf^2 + ... ++ and assemble the approximation expm1(f) ~= f + f^2 * P(f). */ ++ svfloat32_t p12 = svmla_lane (C (1), f, lane_constants, 0); ++ svfloat32_t p34 = svmla_lane (C (3), f, lane_constants, 1); ++ svfloat32_t f2 = svmul_x (pg, f, f); ++ svfloat32_t p = svmla_x (pg, p12, f2, p34); ++ p = svmla_x (pg, C (0), f, p); ++ p = svmla_x (pg, f, f2, p); ++ ++ /* Assemble the result. ++ expm1(x) ~= 2^i * (p + 1) - 1 ++ Let t = 2^i. */ ++ svfloat32_t t = svscale_x (pg, sv_f32 (1), i); ++ return svmla_x (pg, svsub_x (pg, t, 1), p, t); ++} ++ ++#endif +diff --git a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +index a01aa99c16740631..1a57b22c3a92f1e1 100644 +--- a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +@@ -42,4 +42,5 @@ VPCS_VECTOR_WRAPPER (log10_advsimd, _ZGVnN2v_log10) + VPCS_VECTOR_WRAPPER (log1p_advsimd, _ZGVnN2v_log1p) + VPCS_VECTOR_WRAPPER (log2_advsimd, _ZGVnN2v_log2) + VPCS_VECTOR_WRAPPER (sin_advsimd, _ZGVnN2v_sin) ++VPCS_VECTOR_WRAPPER (sinh_advsimd, _ZGVnN2v_sinh) + VPCS_VECTOR_WRAPPER (tan_advsimd, _ZGVnN2v_tan) +diff --git a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +index 83cb3ad5d0e4d056..0c9858f6b74aaef6 100644 +--- a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +@@ -61,4 +61,5 @@ SVE_VECTOR_WRAPPER (log10_sve, _ZGVsMxv_log10) + SVE_VECTOR_WRAPPER (log1p_sve, _ZGVsMxv_log1p) + SVE_VECTOR_WRAPPER (log2_sve, _ZGVsMxv_log2) + SVE_VECTOR_WRAPPER (sin_sve, _ZGVsMxv_sin) ++SVE_VECTOR_WRAPPER (sinh_sve, _ZGVsMxv_sinh) + SVE_VECTOR_WRAPPER (tan_sve, _ZGVsMxv_tan) +diff --git a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +index 831d4d755272d616..4758490c6fc40fda 100644 +--- a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +@@ -42,4 +42,5 @@ VPCS_VECTOR_WRAPPER (log10f_advsimd, _ZGVnN4v_log10f) + VPCS_VECTOR_WRAPPER (log1pf_advsimd, _ZGVnN4v_log1pf) + VPCS_VECTOR_WRAPPER (log2f_advsimd, _ZGVnN4v_log2f) + VPCS_VECTOR_WRAPPER (sinf_advsimd, _ZGVnN4v_sinf) ++VPCS_VECTOR_WRAPPER (sinhf_advsimd, _ZGVnN4v_sinhf) + VPCS_VECTOR_WRAPPER (tanf_advsimd, _ZGVnN4v_tanf) +diff --git a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +index 96fd612c3e76f6dc..7c04f07bbee84777 100644 +--- a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +@@ -61,4 +61,5 @@ SVE_VECTOR_WRAPPER (log10f_sve, _ZGVsMxv_log10f) + SVE_VECTOR_WRAPPER (log1pf_sve, _ZGVsMxv_log1pf) + SVE_VECTOR_WRAPPER (log2f_sve, _ZGVsMxv_log2f) + SVE_VECTOR_WRAPPER (sinf_sve, _ZGVsMxv_sinf) ++SVE_VECTOR_WRAPPER (sinhf_sve, _ZGVsMxv_sinhf) + SVE_VECTOR_WRAPPER (tanf_sve, _ZGVsMxv_tanf) +diff --git a/sysdeps/aarch64/fpu/v_expm1f_inline.h b/sysdeps/aarch64/fpu/v_expm1f_inline.h +new file mode 100644 +index 0000000000000000..337ccfbfab555c97 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/v_expm1f_inline.h +@@ -0,0 +1,73 @@ ++/* Single-precision inline helper for vector (Advanced SIMD) expm1 function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#ifndef AARCH64_FPU_V_EXPM1F_INLINE_H ++#define AARCH64_FPU_V_EXPM1F_INLINE_H ++ ++#include "v_math.h" ++#include "poly_advsimd_f32.h" ++ ++struct v_expm1f_data ++{ ++ float32x4_t poly[5]; ++ float32x4_t invln2_and_ln2, shift; ++ int32x4_t exponent_bias; ++}; ++ ++/* Coefficients generated using fpminimax with degree=5 in [-log(2)/2, ++ log(2)/2]. Exponent bias is asuint(1.0f). ++ invln2_and_ln2 Stores constants: invln2, ln2_lo, ln2_hi, 0. */ ++#define V_EXPM1F_DATA \ ++ { \ ++ .poly = { V4 (0x1.fffffep-2), V4 (0x1.5554aep-3), V4 (0x1.555736p-5), \ ++ V4 (0x1.12287cp-7), V4 (0x1.6b55a2p-10) }, \ ++ .shift = V4 (0x1.8p23f), .exponent_bias = V4 (0x3f800000), \ ++ .invln2_and_ln2 = { 0x1.715476p+0f, 0x1.62e4p-1f, 0x1.7f7d1cp-20f, 0 }, \ ++ } ++ ++static inline float32x4_t ++expm1f_inline (float32x4_t x, const struct v_expm1f_data *d) ++{ ++ /* Helper routine for calculating exp(x) - 1. ++ Copied from v_expm1f_1u6.c, with all special-case handling removed - the ++ calling routine should handle special values if required. */ ++ ++ /* Reduce argument: f in [-ln2/2, ln2/2], i is exact. */ ++ float32x4_t j = vsubq_f32 ( ++ vfmaq_laneq_f32 (d->shift, x, d->invln2_and_ln2, 0), d->shift); ++ int32x4_t i = vcvtq_s32_f32 (j); ++ float32x4_t f = vfmsq_laneq_f32 (x, j, d->invln2_and_ln2, 1); ++ f = vfmsq_laneq_f32 (f, j, d->invln2_and_ln2, 2); ++ ++ /* Approximate expm1(f) with polynomial P, expm1(f) ~= f + f^2 * P(f). ++ Uses Estrin scheme, where the main _ZGVnN4v_expm1f routine uses ++ Horner. */ ++ float32x4_t f2 = vmulq_f32 (f, f); ++ float32x4_t f4 = vmulq_f32 (f2, f2); ++ float32x4_t p = v_estrin_4_f32 (f, f2, f4, d->poly); ++ p = vfmaq_f32 (f, f2, p); ++ ++ /* t = 2^i. */ ++ int32x4_t u = vaddq_s32 (vshlq_n_s32 (i, 23), d->exponent_bias); ++ float32x4_t t = vreinterpretq_f32_s32 (u); ++ /* expm1(x) ~= p * t + (t - 1). */ ++ return vfmaq_f32 (vsubq_f32 (t, v_f32 (1.0f)), p, t); ++} ++ ++#endif +diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps +index 7c2e43d3dc5bbc13..fec0972081af734a 100644 +--- a/sysdeps/aarch64/libm-test-ulps ++++ b/sysdeps/aarch64/libm-test-ulps +@@ -1441,11 +1441,19 @@ double: 2 + float: 2 + ldouble: 2 + ++Function: "sinh_advsimd": ++double: 2 ++float: 1 ++ + Function: "sinh_downward": + double: 3 + float: 3 + ldouble: 3 + ++Function: "sinh_sve": ++double: 2 ++float: 1 ++ + Function: "sinh_towardzero": + double: 3 + float: 2 +diff --git a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +index ce42372a3a276832..1db5ba61d64067a2 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist ++++ b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +@@ -83,11 +83,14 @@ GLIBC_2.40 _ZGVnN2v_cosh F + GLIBC_2.40 _ZGVnN2v_coshf F + GLIBC_2.40 _ZGVnN2v_erf F + GLIBC_2.40 _ZGVnN2v_erff F ++GLIBC_2.40 _ZGVnN2v_sinh F ++GLIBC_2.40 _ZGVnN2v_sinhf F + GLIBC_2.40 _ZGVnN4v_acoshf F + GLIBC_2.40 _ZGVnN4v_asinhf F + GLIBC_2.40 _ZGVnN4v_atanhf F + GLIBC_2.40 _ZGVnN4v_coshf F + GLIBC_2.40 _ZGVnN4v_erff F ++GLIBC_2.40 _ZGVnN4v_sinhf F + GLIBC_2.40 _ZGVsMxv_acosh F + GLIBC_2.40 _ZGVsMxv_acoshf F + GLIBC_2.40 _ZGVsMxv_asinh F +@@ -98,3 +101,5 @@ GLIBC_2.40 _ZGVsMxv_cosh F + GLIBC_2.40 _ZGVsMxv_coshf F + GLIBC_2.40 _ZGVsMxv_erf F + GLIBC_2.40 _ZGVsMxv_erff F ++GLIBC_2.40 _ZGVsMxv_sinh F ++GLIBC_2.40 _ZGVsMxv_sinhf F diff --git a/glibc-RHEL-118273-7.patch b/glibc-RHEL-118273-7.patch new file mode 100644 index 0000000..dd77eb9 --- /dev/null +++ b/glibc-RHEL-118273-7.patch @@ -0,0 +1,624 @@ +commit 3d3a4fb8e4fe854a0bbb3df9c26ba482c10a7e22 +Author: Joe Ramsay +Date: Tue Feb 20 16:59:44 2024 +0000 + + aarch64/fpu: Add vector variants of tanh + + Reviewed-by: Szabolcs Nagy + +diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in +index 5a690023e9a675cb..4584c5e498ab7194 100644 +--- a/math/auto-libm-test-in ++++ b/math/auto-libm-test-in +@@ -7747,7 +7747,7 @@ tan min_subnorm + tan -min_subnorm + + tanh 0 +-tanh -0 ++tanh -0 no-mathvec + tanh 0.75 + tanh -0.75 + tanh 1.0 +diff --git a/math/auto-libm-test-out-tanh b/math/auto-libm-test-out-tanh +index 8b9427c917f3b388..19ce2e7b9355963d 100644 +--- a/math/auto-libm-test-out-tanh ++++ b/math/auto-libm-test-out-tanh +@@ -23,31 +23,31 @@ tanh 0 + = tanh tonearest ibm128 0x0p+0 : 0x0p+0 : inexact-ok + = tanh towardzero ibm128 0x0p+0 : 0x0p+0 : inexact-ok + = tanh upward ibm128 0x0p+0 : 0x0p+0 : inexact-ok +-tanh -0 +-= tanh downward binary32 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh tonearest binary32 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh towardzero binary32 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh upward binary32 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh downward binary64 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh tonearest binary64 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh towardzero binary64 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh upward binary64 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh downward intel96 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh tonearest intel96 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh towardzero intel96 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh upward intel96 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh downward m68k96 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh tonearest m68k96 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh towardzero m68k96 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh upward m68k96 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh downward binary128 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh tonearest binary128 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh towardzero binary128 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh upward binary128 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh downward ibm128 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh tonearest ibm128 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh towardzero ibm128 -0x0p+0 : -0x0p+0 : inexact-ok +-= tanh upward ibm128 -0x0p+0 : -0x0p+0 : inexact-ok ++tanh -0 no-mathvec ++= tanh downward binary32 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh tonearest binary32 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh towardzero binary32 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh upward binary32 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh downward binary64 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh tonearest binary64 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh towardzero binary64 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh upward binary64 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh downward intel96 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh tonearest intel96 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh towardzero intel96 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh upward intel96 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh downward m68k96 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh tonearest m68k96 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh towardzero m68k96 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh upward m68k96 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh downward binary128 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh tonearest binary128 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh towardzero binary128 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh upward binary128 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh downward ibm128 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh tonearest ibm128 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh towardzero ibm128 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok ++= tanh upward ibm128 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok + tanh 0.75 + = tanh downward binary32 0xcp-4 : 0xa.2991fp-4 : inexact-ok + = tanh tonearest binary32 0xcp-4 : 0xa.2991fp-4 : inexact-ok +diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile +index fb5f3a365b27fdf3..e5f418ae4274edb2 100644 +--- a/sysdeps/aarch64/fpu/Makefile ++++ b/sysdeps/aarch64/fpu/Makefile +@@ -18,7 +18,8 @@ libmvec-supported-funcs = acos \ + log2 \ + sin \ + sinh \ +- tan ++ tan \ ++ tanh + + float-advsimd-funcs = $(libmvec-supported-funcs) + double-advsimd-funcs = $(libmvec-supported-funcs) +diff --git a/sysdeps/aarch64/fpu/Versions b/sysdeps/aarch64/fpu/Versions +index 4774b3efeacf59fb..4dbf3d32441dd43a 100644 +--- a/sysdeps/aarch64/fpu/Versions ++++ b/sysdeps/aarch64/fpu/Versions +@@ -109,5 +109,10 @@ libmvec { + _ZGVnN4v_sinhf; + _ZGVsMxv_sinh; + _ZGVsMxv_sinhf; ++ _ZGVnN2v_tanh; ++ _ZGVnN2v_tanhf; ++ _ZGVnN4v_tanhf; ++ _ZGVsMxv_tanh; ++ _ZGVsMxv_tanhf; + } + } +diff --git a/sysdeps/aarch64/fpu/advsimd_f32_protos.h b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +index 7d9445d5c0c0c2a8..4ff191c324050b42 100644 +--- a/sysdeps/aarch64/fpu/advsimd_f32_protos.h ++++ b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +@@ -37,4 +37,5 @@ libmvec_hidden_proto (V_NAME_F1(log)); + libmvec_hidden_proto (V_NAME_F1(sin)); + libmvec_hidden_proto (V_NAME_F1(sinh)); + libmvec_hidden_proto (V_NAME_F1(tan)); ++libmvec_hidden_proto (V_NAME_F1(tanh)); + libmvec_hidden_proto (V_NAME_F2(atan2)); +diff --git a/sysdeps/aarch64/fpu/bits/math-vector.h b/sysdeps/aarch64/fpu/bits/math-vector.h +index 1e9b76cf41916365..585e022082d62a5d 100644 +--- a/sysdeps/aarch64/fpu/bits/math-vector.h ++++ b/sysdeps/aarch64/fpu/bits/math-vector.h +@@ -113,6 +113,10 @@ + # define __DECL_SIMD_tan __DECL_SIMD_aarch64 + # undef __DECL_SIMD_tanf + # define __DECL_SIMD_tanf __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_tanh ++# define __DECL_SIMD_tanh __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_tanhf ++# define __DECL_SIMD_tanhf __DECL_SIMD_aarch64 + #endif + + #if __GNUC_PREREQ(9, 0) +@@ -160,6 +164,7 @@ __vpcs __f32x4_t _ZGVnN4v_log2f (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_sinf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_sinhf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_tanf (__f32x4_t); ++__vpcs __f32x4_t _ZGVnN4v_tanhf (__f32x4_t); + + __vpcs __f64x2_t _ZGVnN2vv_atan2 (__f64x2_t, __f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_acos (__f64x2_t); +@@ -182,6 +187,7 @@ __vpcs __f64x2_t _ZGVnN2v_log2 (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_sin (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_sinh (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_tan (__f64x2_t); ++__vpcs __f64x2_t _ZGVnN2v_tanh (__f64x2_t); + + # undef __ADVSIMD_VEC_MATH_SUPPORTED + #endif /* __ADVSIMD_VEC_MATH_SUPPORTED */ +@@ -209,6 +215,7 @@ __sv_f32_t _ZGVsMxv_log2f (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_sinf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_sinhf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_tanf (__sv_f32_t, __sv_bool_t); ++__sv_f32_t _ZGVsMxv_tanhf (__sv_f32_t, __sv_bool_t); + + __sv_f64_t _ZGVsMxvv_atan2 (__sv_f64_t, __sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_acos (__sv_f64_t, __sv_bool_t); +@@ -231,6 +238,7 @@ __sv_f64_t _ZGVsMxv_log2 (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_sin (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_sinh (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_tan (__sv_f64_t, __sv_bool_t); ++__sv_f64_t _ZGVsMxv_tanh (__sv_f64_t, __sv_bool_t); + + # undef __SVE_VEC_MATH_SUPPORTED + #endif /* __SVE_VEC_MATH_SUPPORTED */ +diff --git a/sysdeps/aarch64/fpu/tanh_advsimd.c b/sysdeps/aarch64/fpu/tanh_advsimd.c +new file mode 100644 +index 0000000000000000..1da1dfa5dbe418b6 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/tanh_advsimd.c +@@ -0,0 +1,109 @@ ++/* Double-precision vector (Advanced SIMD) tanh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_math.h" ++#include "poly_advsimd_f64.h" ++ ++static const struct data ++{ ++ float64x2_t poly[11]; ++ float64x2_t inv_ln2, ln2_hi, ln2_lo, shift; ++ uint64x2_t onef; ++ uint64x2_t thresh, tiny_bound; ++} data = { ++ /* Generated using Remez, deg=12 in [-log(2)/2, log(2)/2]. */ ++ .poly = { V2 (0x1p-1), V2 (0x1.5555555555559p-3), V2 (0x1.555555555554bp-5), ++ V2 (0x1.111111110f663p-7), V2 (0x1.6c16c16c1b5f3p-10), ++ V2 (0x1.a01a01affa35dp-13), V2 (0x1.a01a018b4ecbbp-16), ++ V2 (0x1.71ddf82db5bb4p-19), V2 (0x1.27e517fc0d54bp-22), ++ V2 (0x1.af5eedae67435p-26), V2 (0x1.1f143d060a28ap-29), }, ++ ++ .inv_ln2 = V2 (0x1.71547652b82fep0), ++ .ln2_hi = V2 (-0x1.62e42fefa39efp-1), ++ .ln2_lo = V2 (-0x1.abc9e3b39803fp-56), ++ .shift = V2 (0x1.8p52), ++ ++ .onef = V2 (0x3ff0000000000000), ++ .tiny_bound = V2 (0x3e40000000000000), /* asuint64 (0x1p-27). */ ++ /* asuint64(0x1.241bf835f9d5fp+4) - asuint64(tiny_bound). */ ++ .thresh = V2 (0x01f241bf835f9d5f), ++}; ++ ++static inline float64x2_t ++expm1_inline (float64x2_t x, const struct data *d) ++{ ++ /* Helper routine for calculating exp(x) - 1. Vector port of the helper from ++ the scalar variant of tanh. */ ++ ++ /* Reduce argument: f in [-ln2/2, ln2/2], i is exact. */ ++ float64x2_t j = vsubq_f64 (vfmaq_f64 (d->shift, d->inv_ln2, x), d->shift); ++ int64x2_t i = vcvtq_s64_f64 (j); ++ float64x2_t f = vfmaq_f64 (x, j, d->ln2_hi); ++ f = vfmaq_f64 (f, j, d->ln2_lo); ++ ++ /* Approximate expm1(f) using polynomial. */ ++ float64x2_t f2 = vmulq_f64 (f, f); ++ float64x2_t f4 = vmulq_f64 (f2, f2); ++ float64x2_t p = vfmaq_f64 ( ++ f, f2, v_estrin_10_f64 (f, f2, f4, vmulq_f64 (f4, f4), d->poly)); ++ ++ /* t = 2 ^ i. */ ++ float64x2_t t = vreinterpretq_f64_u64 ( ++ vaddq_u64 (vreinterpretq_u64_s64 (i << 52), d->onef)); ++ /* expm1(x) = p * t + (t - 1). */ ++ return vfmaq_f64 (vsubq_f64 (t, v_f64 (1)), p, t); ++} ++ ++static float64x2_t NOINLINE VPCS_ATTR ++special_case (float64x2_t x, float64x2_t y, uint64x2_t special) ++{ ++ return v_call_f64 (tanh, x, y, special); ++} ++ ++/* Vector approximation for double-precision tanh(x), using a simplified ++ version of expm1. The greatest observed error is 2.77 ULP: ++ _ZGVnN2v_tanh(-0x1.c4a4ca0f9f3b7p-3) got -0x1.bd6a21a163627p-3 ++ want -0x1.bd6a21a163624p-3. */ ++float64x2_t VPCS_ATTR V_NAME_D1 (tanh) (float64x2_t x) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ uint64x2_t ia = vreinterpretq_u64_f64 (vabsq_f64 (x)); ++ ++ float64x2_t u = x; ++ ++ /* Trigger special-cases for tiny, boring and infinity/NaN. */ ++ uint64x2_t special = vcgtq_u64 (vsubq_u64 (ia, d->tiny_bound), d->thresh); ++#if WANT_SIMD_EXCEPT ++ /* To trigger fp exceptions correctly, set special lanes to a neutral value. ++ They will be fixed up later by the special-case handler. */ ++ if (__glibc_unlikely (v_any_u64 (special))) ++ u = v_zerofy_f64 (u, special); ++#endif ++ ++ u = vaddq_f64 (u, u); ++ ++ /* tanh(x) = (e^2x - 1) / (e^2x + 1). */ ++ float64x2_t q = expm1_inline (u, d); ++ float64x2_t qp2 = vaddq_f64 (q, v_f64 (2)); ++ ++ if (__glibc_unlikely (v_any_u64 (special))) ++ return special_case (x, vdivq_f64 (q, qp2), special); ++ return vdivq_f64 (q, qp2); ++} +diff --git a/sysdeps/aarch64/fpu/tanh_sve.c b/sysdeps/aarch64/fpu/tanh_sve.c +new file mode 100644 +index 0000000000000000..d25e011cea305094 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/tanh_sve.c +@@ -0,0 +1,100 @@ ++/* Double-precision vector (SVE) tanh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "sv_math.h" ++#include "poly_sve_f64.h" ++ ++static const struct data ++{ ++ float64_t poly[11]; ++ float64_t inv_ln2, ln2_hi, ln2_lo, shift; ++ uint64_t thresh, tiny_bound; ++} data = { ++ /* Generated using Remez, deg=12 in [-log(2)/2, log(2)/2]. */ ++ .poly = { 0x1p-1, 0x1.5555555555559p-3, 0x1.555555555554bp-5, ++ 0x1.111111110f663p-7, 0x1.6c16c16c1b5f3p-10, ++ 0x1.a01a01affa35dp-13, 0x1.a01a018b4ecbbp-16, ++ 0x1.71ddf82db5bb4p-19, 0x1.27e517fc0d54bp-22, ++ 0x1.af5eedae67435p-26, 0x1.1f143d060a28ap-29, }, ++ ++ .inv_ln2 = 0x1.71547652b82fep0, ++ .ln2_hi = -0x1.62e42fefa39efp-1, ++ .ln2_lo = -0x1.abc9e3b39803fp-56, ++ .shift = 0x1.8p52, ++ ++ .tiny_bound = 0x3e40000000000000, /* asuint64 (0x1p-27). */ ++ /* asuint64(0x1.241bf835f9d5fp+4) - asuint64(tiny_bound). */ ++ .thresh = 0x01f241bf835f9d5f, ++}; ++ ++static inline svfloat64_t ++expm1_inline (svfloat64_t x, const svbool_t pg, const struct data *d) ++{ ++ /* Helper routine for calculating exp(x) - 1. Vector port of the helper from ++ the scalar variant of tanh. */ ++ ++ /* Reduce argument: f in [-ln2/2, ln2/2], i is exact. */ ++ svfloat64_t j ++ = svsub_x (pg, svmla_x (pg, sv_f64 (d->shift), x, d->inv_ln2), d->shift); ++ svint64_t i = svcvt_s64_x (pg, j); ++ svfloat64_t f = svmla_x (pg, x, j, d->ln2_hi); ++ f = svmla_x (pg, f, j, d->ln2_lo); ++ ++ /* Approximate expm1(f) using polynomial. */ ++ svfloat64_t f2 = svmul_x (pg, f, f); ++ svfloat64_t f4 = svmul_x (pg, f2, f2); ++ svfloat64_t p = svmla_x ( ++ pg, f, f2, ++ sv_estrin_10_f64_x (pg, f, f2, f4, svmul_x (pg, f4, f4), d->poly)); ++ ++ /* t = 2 ^ i. */ ++ svfloat64_t t = svscale_x (pg, sv_f64 (1), i); ++ /* expm1(x) = p * t + (t - 1). */ ++ return svmla_x (pg, svsub_x (pg, t, 1), p, t); ++} ++ ++static svfloat64_t NOINLINE ++special_case (svfloat64_t x, svfloat64_t y, svbool_t special) ++{ ++ return sv_call_f64 (tanh, x, y, special); ++} ++ ++/* SVE approximation for double-precision tanh(x), using a simplified ++ version of expm1. The greatest observed error is 2.77 ULP: ++ _ZGVsMxv_tanh(-0x1.c4a4ca0f9f3b7p-3) got -0x1.bd6a21a163627p-3 ++ want -0x1.bd6a21a163624p-3. */ ++svfloat64_t SV_NAME_D1 (tanh) (svfloat64_t x, svbool_t pg) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ svuint64_t ia = svreinterpret_u64 (svabs_x (pg, x)); ++ ++ /* Trigger special-cases for tiny, boring and infinity/NaN. */ ++ svbool_t special = svcmpgt (pg, svsub_x (pg, ia, d->tiny_bound), d->thresh); ++ ++ svfloat64_t u = svadd_x (pg, x, x); ++ ++ /* tanh(x) = (e^2x - 1) / (e^2x + 1). */ ++ svfloat64_t q = expm1_inline (u, pg, d); ++ svfloat64_t qp2 = svadd_x (pg, q, 2); ++ ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ return special_case (x, svdiv_x (pg, q, qp2), special); ++ return svdiv_x (pg, q, qp2); ++} +diff --git a/sysdeps/aarch64/fpu/tanhf_advsimd.c b/sysdeps/aarch64/fpu/tanhf_advsimd.c +new file mode 100644 +index 0000000000000000..50defd6ef03926f4 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/tanhf_advsimd.c +@@ -0,0 +1,76 @@ ++/* Single-precision vector (Advanced SIMD) tanh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_expm1f_inline.h" ++ ++static const struct data ++{ ++ struct v_expm1f_data expm1f_consts; ++ uint32x4_t boring_bound, large_bound, onef; ++} data = { ++ .expm1f_consts = V_EXPM1F_DATA, ++ /* 0x1.205966p+3, above which tanhf rounds to 1 (or -1 for negative). */ ++ .boring_bound = V4 (0x41102cb3), ++ .large_bound = V4 (0x7f800000), ++ .onef = V4 (0x3f800000), ++}; ++ ++static float32x4_t NOINLINE VPCS_ATTR ++special_case (float32x4_t x, float32x4_t y, uint32x4_t special) ++{ ++ return v_call_f32 (tanhf, x, y, special); ++} ++ ++/* Approximation for single-precision vector tanh(x), using a simplified ++ version of expm1f. The maximum error is 2.58 ULP: ++ _ZGVnN4v_tanhf (0x1.fa5eep-5) got 0x1.f9ba02p-5 ++ want 0x1.f9ba08p-5. */ ++float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (tanh) (float32x4_t x) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ uint32x4_t ix = vreinterpretq_u32_f32 (x); ++ float32x4_t ax = vabsq_f32 (x); ++ uint32x4_t iax = vreinterpretq_u32_f32 (ax); ++ uint32x4_t sign = veorq_u32 (ix, iax); ++ uint32x4_t is_boring = vcgtq_u32 (iax, d->boring_bound); ++ float32x4_t boring = vreinterpretq_f32_u32 (vorrq_u32 (sign, d->onef)); ++ ++#if WANT_SIMD_EXCEPT ++ /* If fp exceptions are to be triggered properly, set all special and boring ++ lanes to 0, which will trigger no exceptions, and fix them up later. */ ++ uint32x4_t special = vorrq_u32 (vcgtq_u32 (iax, d->large_bound), ++ vcltq_u32 (iax, v_u32 (0x34000000))); ++ x = v_zerofy_f32 (x, is_boring); ++ if (__glibc_unlikely (v_any_u32 (special))) ++ x = v_zerofy_f32 (x, special); ++#else ++ uint32x4_t special = vcgtq_u32 (iax, d->large_bound); ++#endif ++ ++ /* tanh(x) = (e^2x - 1) / (e^2x + 1). */ ++ float32x4_t q = expm1f_inline (vmulq_n_f32 (x, 2), &d->expm1f_consts); ++ float32x4_t y = vdivq_f32 (q, vaddq_f32 (q, v_f32 (2.0))); ++ if (__glibc_unlikely (v_any_u32 (special))) ++ return special_case (vreinterpretq_f32_u32 (ix), ++ vbslq_f32 (is_boring, boring, y), special); ++ return vbslq_f32 (is_boring, boring, y); ++} ++libmvec_hidden_def (V_NAME_F1 (tanh)) ++HALF_WIDTH_ALIAS_F1 (tanh) +diff --git a/sysdeps/aarch64/fpu/tanhf_sve.c b/sysdeps/aarch64/fpu/tanhf_sve.c +new file mode 100644 +index 0000000000000000..0b94523cf5074200 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/tanhf_sve.c +@@ -0,0 +1,61 @@ ++/* Single-precision vector (SVE) tanh function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "sv_expm1f_inline.h" ++ ++static const struct data ++{ ++ struct sv_expm1f_data expm1f_consts; ++ uint32_t boring_bound, onef; ++} data = { ++ .expm1f_consts = SV_EXPM1F_DATA, ++ /* 0x1.205966p+3, above which tanhf rounds to 1 (or -1 for negative). */ ++ .boring_bound = 0x41102cb3, ++ .onef = 0x3f800000, ++}; ++ ++static svfloat32_t NOINLINE ++special_case (svfloat32_t x, svfloat32_t y, svbool_t special) ++{ ++ return sv_call_f32 (tanhf, x, y, special); ++} ++ ++/* Approximation for single-precision SVE tanh(x), using a simplified ++ version of expm1f. The maximum error is 2.57 ULP: ++ _ZGVsMxv_tanhf (0x1.fc1832p-5) got 0x1.fb71a4p-5 ++ want 0x1.fb71aap-5. */ ++svfloat32_t SV_NAME_F1 (tanh) (svfloat32_t x, const svbool_t pg) ++{ ++ const struct data *d = ptr_barrier (&data); ++ ++ svfloat32_t ax = svabs_x (pg, x); ++ svuint32_t iax = svreinterpret_u32 (ax); ++ svuint32_t sign = sveor_x (pg, svreinterpret_u32 (x), iax); ++ svbool_t is_boring = svcmpgt (pg, iax, d->boring_bound); ++ svfloat32_t boring = svreinterpret_f32 (svorr_x (pg, sign, d->onef)); ++ ++ svbool_t special = svcmpgt (pg, iax, 0x7f800000); ++ ++ /* tanh(x) = (e^2x - 1) / (e^2x + 1). */ ++ svfloat32_t q = expm1f_inline (svmul_x (pg, x, 2.0), pg, &d->expm1f_consts); ++ svfloat32_t y = svdiv_x (pg, q, svadd_x (pg, q, 2.0)); ++ if (__glibc_unlikely (svptest_any (pg, special))) ++ return special_case (x, svsel_f32 (is_boring, boring, y), special); ++ return svsel_f32 (is_boring, boring, y); ++} +diff --git a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +index 1a57b22c3a92f1e1..7aeda880bd885ce5 100644 +--- a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +@@ -44,3 +44,4 @@ VPCS_VECTOR_WRAPPER (log2_advsimd, _ZGVnN2v_log2) + VPCS_VECTOR_WRAPPER (sin_advsimd, _ZGVnN2v_sin) + VPCS_VECTOR_WRAPPER (sinh_advsimd, _ZGVnN2v_sinh) + VPCS_VECTOR_WRAPPER (tan_advsimd, _ZGVnN2v_tan) ++VPCS_VECTOR_WRAPPER (tanh_advsimd, _ZGVnN2v_tanh) +diff --git a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +index 0c9858f6b74aaef6..95f1ec52221ba626 100644 +--- a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +@@ -63,3 +63,4 @@ SVE_VECTOR_WRAPPER (log2_sve, _ZGVsMxv_log2) + SVE_VECTOR_WRAPPER (sin_sve, _ZGVsMxv_sin) + SVE_VECTOR_WRAPPER (sinh_sve, _ZGVsMxv_sinh) + SVE_VECTOR_WRAPPER (tan_sve, _ZGVsMxv_tan) ++SVE_VECTOR_WRAPPER (tanh_sve, _ZGVsMxv_tanh) +diff --git a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +index 4758490c6fc40fda..bd6800e91c64136f 100644 +--- a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +@@ -44,3 +44,4 @@ VPCS_VECTOR_WRAPPER (log2f_advsimd, _ZGVnN4v_log2f) + VPCS_VECTOR_WRAPPER (sinf_advsimd, _ZGVnN4v_sinf) + VPCS_VECTOR_WRAPPER (sinhf_advsimd, _ZGVnN4v_sinhf) + VPCS_VECTOR_WRAPPER (tanf_advsimd, _ZGVnN4v_tanf) ++VPCS_VECTOR_WRAPPER (tanhf_advsimd, _ZGVnN4v_tanhf) +diff --git a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +index 7c04f07bbee84777..35ca305fddb7366c 100644 +--- a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +@@ -63,3 +63,4 @@ SVE_VECTOR_WRAPPER (log2f_sve, _ZGVsMxv_log2f) + SVE_VECTOR_WRAPPER (sinf_sve, _ZGVsMxv_sinf) + SVE_VECTOR_WRAPPER (sinhf_sve, _ZGVsMxv_sinhf) + SVE_VECTOR_WRAPPER (tanf_sve, _ZGVsMxv_tanf) ++SVE_VECTOR_WRAPPER (tanhf_sve, _ZGVsMxv_tanhf) +diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps +index fec0972081af734a..8398b7bc7749808d 100644 +--- a/sysdeps/aarch64/libm-test-ulps ++++ b/sysdeps/aarch64/libm-test-ulps +@@ -1496,11 +1496,19 @@ double: 2 + float: 2 + ldouble: 2 + ++Function: "tanh_advsimd": ++double: 2 ++float: 2 ++ + Function: "tanh_downward": + double: 3 + float: 3 + ldouble: 4 + ++Function: "tanh_sve": ++double: 2 ++float: 2 ++ + Function: "tanh_towardzero": + double: 2 + float: 2 +diff --git a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +index 1db5ba61d64067a2..396082f6a7981686 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist ++++ b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +@@ -85,12 +85,15 @@ GLIBC_2.40 _ZGVnN2v_erf F + GLIBC_2.40 _ZGVnN2v_erff F + GLIBC_2.40 _ZGVnN2v_sinh F + GLIBC_2.40 _ZGVnN2v_sinhf F ++GLIBC_2.40 _ZGVnN2v_tanh F ++GLIBC_2.40 _ZGVnN2v_tanhf F + GLIBC_2.40 _ZGVnN4v_acoshf F + GLIBC_2.40 _ZGVnN4v_asinhf F + GLIBC_2.40 _ZGVnN4v_atanhf F + GLIBC_2.40 _ZGVnN4v_coshf F + GLIBC_2.40 _ZGVnN4v_erff F + GLIBC_2.40 _ZGVnN4v_sinhf F ++GLIBC_2.40 _ZGVnN4v_tanhf F + GLIBC_2.40 _ZGVsMxv_acosh F + GLIBC_2.40 _ZGVsMxv_acoshf F + GLIBC_2.40 _ZGVsMxv_asinh F +@@ -103,3 +106,5 @@ GLIBC_2.40 _ZGVsMxv_erf F + GLIBC_2.40 _ZGVsMxv_erff F + GLIBC_2.40 _ZGVsMxv_sinh F + GLIBC_2.40 _ZGVsMxv_sinhf F ++GLIBC_2.40 _ZGVsMxv_tanh F ++GLIBC_2.40 _ZGVsMxv_tanhf F diff --git a/glibc-RHEL-118273-8.patch b/glibc-RHEL-118273-8.patch new file mode 100644 index 0000000..cc3ac64 --- /dev/null +++ b/glibc-RHEL-118273-8.patch @@ -0,0 +1,5115 @@ +commit 87cb1dfcd6d1acbcd695279d7abd9163a0cc64fc +Author: Joe Ramsay +Date: Tue Feb 20 16:59:45 2024 +0000 + + aarch64/fpu: Add vector variants of erfc + + Reviewed-by: Szabolcs Nagy + +diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile +index e5f418ae4274edb2..e8af35099d7b9f8f 100644 +--- a/sysdeps/aarch64/fpu/Makefile ++++ b/sysdeps/aarch64/fpu/Makefile +@@ -8,6 +8,7 @@ libmvec-supported-funcs = acos \ + cos \ + cosh \ + erf \ ++ erfc \ + exp \ + exp10 \ + exp2 \ +@@ -39,7 +40,9 @@ libmvec-support = $(addsuffix f_advsimd,$(float-advsimd-funcs)) \ + erff_data \ + sv_erf_data \ + sv_erff_data \ +- v_exp_tail_data ++ v_exp_tail_data \ ++ erfc_data \ ++ erfcf_data + endif + + sve-cflags = -march=armv8-a+sve +diff --git a/sysdeps/aarch64/fpu/Versions b/sysdeps/aarch64/fpu/Versions +index 4dbf3d32441dd43a..3cb1b82bd2785a4b 100644 +--- a/sysdeps/aarch64/fpu/Versions ++++ b/sysdeps/aarch64/fpu/Versions +@@ -104,6 +104,11 @@ libmvec { + _ZGVnN4v_erff; + _ZGVsMxv_erf; + _ZGVsMxv_erff; ++ _ZGVnN2v_erfc; ++ _ZGVnN2v_erfcf; ++ _ZGVnN4v_erfcf; ++ _ZGVsMxv_erfc; ++ _ZGVsMxv_erfcf; + _ZGVnN2v_sinh; + _ZGVnN2v_sinhf; + _ZGVnN4v_sinhf; +diff --git a/sysdeps/aarch64/fpu/advsimd_f32_protos.h b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +index 4ff191c324050b42..383c4369729a3452 100644 +--- a/sysdeps/aarch64/fpu/advsimd_f32_protos.h ++++ b/sysdeps/aarch64/fpu/advsimd_f32_protos.h +@@ -26,6 +26,7 @@ libmvec_hidden_proto (V_NAME_F1(atanh)); + libmvec_hidden_proto (V_NAME_F1(cos)); + libmvec_hidden_proto (V_NAME_F1(cosh)); + libmvec_hidden_proto (V_NAME_F1(erf)); ++libmvec_hidden_proto (V_NAME_F1(erfc)); + libmvec_hidden_proto (V_NAME_F1(exp10)); + libmvec_hidden_proto (V_NAME_F1(exp2)); + libmvec_hidden_proto (V_NAME_F1(exp)); +diff --git a/sysdeps/aarch64/fpu/bits/math-vector.h b/sysdeps/aarch64/fpu/bits/math-vector.h +index 585e022082d62a5d..e29b2d1c09273969 100644 +--- a/sysdeps/aarch64/fpu/bits/math-vector.h ++++ b/sysdeps/aarch64/fpu/bits/math-vector.h +@@ -69,6 +69,10 @@ + # define __DECL_SIMD_erf __DECL_SIMD_aarch64 + # undef __DECL_SIMD_erff + # define __DECL_SIMD_erff __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_erfc ++# define __DECL_SIMD_erfc __DECL_SIMD_aarch64 ++# undef __DECL_SIMD_erfcf ++# define __DECL_SIMD_erfcf __DECL_SIMD_aarch64 + # undef __DECL_SIMD_exp + # define __DECL_SIMD_exp __DECL_SIMD_aarch64 + # undef __DECL_SIMD_expf +@@ -153,6 +157,7 @@ __vpcs __f32x4_t _ZGVnN4v_atanhf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_cosf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_coshf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_erff (__f32x4_t); ++__vpcs __f32x4_t _ZGVnN4v_erfcf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_expf (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_exp10f (__f32x4_t); + __vpcs __f32x4_t _ZGVnN4v_exp2f (__f32x4_t); +@@ -176,6 +181,7 @@ __vpcs __f64x2_t _ZGVnN2v_atanh (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_cos (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_cosh (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_erf (__f64x2_t); ++__vpcs __f64x2_t _ZGVnN2v_erfc (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_exp (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_exp10 (__f64x2_t); + __vpcs __f64x2_t _ZGVnN2v_exp2 (__f64x2_t); +@@ -204,6 +210,7 @@ __sv_f32_t _ZGVsMxv_atanhf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_cosf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_coshf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_erff (__sv_f32_t, __sv_bool_t); ++__sv_f32_t _ZGVsMxv_erfcf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_expf (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_exp10f (__sv_f32_t, __sv_bool_t); + __sv_f32_t _ZGVsMxv_exp2f (__sv_f32_t, __sv_bool_t); +@@ -227,6 +234,7 @@ __sv_f64_t _ZGVsMxv_atanh (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_cos (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_cosh (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_erf (__sv_f64_t, __sv_bool_t); ++__sv_f64_t _ZGVsMxv_erfc (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_exp (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_exp10 (__sv_f64_t, __sv_bool_t); + __sv_f64_t _ZGVsMxv_exp2 (__sv_f64_t, __sv_bool_t); +diff --git a/sysdeps/aarch64/fpu/erfc_advsimd.c b/sysdeps/aarch64/fpu/erfc_advsimd.c +new file mode 100644 +index 0000000000000000..548f21a3d68d68d2 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/erfc_advsimd.c +@@ -0,0 +1,201 @@ ++/* Double-precision vector (Advanced SIMD) erfc function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_math.h" ++#include "vecmath_config.h" ++ ++static const struct data ++{ ++ uint64x2_t offset, table_scale; ++ float64x2_t max, shift; ++ float64x2_t p20, p40, p41, p42; ++ float64x2_t p51, p52; ++ float64x2_t qr5, qr6, qr7, qr8, qr9; ++#if WANT_SIMD_EXCEPT ++ float64x2_t uflow_bound; ++#endif ++} data = { ++ /* Set an offset so the range of the index used for lookup is 3487, and it ++ can be clamped using a saturated add on an offset index. ++ Index offset is 0xffffffffffffffff - asuint64(shift) - 3487. */ ++ .offset = V2 (0xbd3ffffffffff260), ++ .table_scale = V2 (0x37f0000000000000 << 1), /* asuint64 (2^-128) << 1. */ ++ .max = V2 (0x1.b3ep+4), /* 3487/128. */ ++ .shift = V2 (0x1p45), ++ .p20 = V2 (0x1.5555555555555p-2), /* 1/3, used to compute 2/3 and 1/6. */ ++ .p40 = V2 (-0x1.999999999999ap-4), /* 1/10. */ ++ .p41 = V2 (-0x1.999999999999ap-2), /* 2/5. */ ++ .p42 = V2 (0x1.1111111111111p-3), /* 2/15. */ ++ .p51 = V2 (-0x1.c71c71c71c71cp-3), /* 2/9. */ ++ .p52 = V2 (0x1.6c16c16c16c17p-5), /* 2/45. */ ++ /* Qi = (i+1) / i, Ri = -2 * i / ((i+1)*(i+2)), for i = 5, ..., 9. */ ++ .qr5 = { 0x1.3333333333333p0, -0x1.e79e79e79e79ep-3 }, ++ .qr6 = { 0x1.2aaaaaaaaaaabp0, -0x1.b6db6db6db6dbp-3 }, ++ .qr7 = { 0x1.2492492492492p0, -0x1.8e38e38e38e39p-3 }, ++ .qr8 = { 0x1.2p0, -0x1.6c16c16c16c17p-3 }, ++ .qr9 = { 0x1.1c71c71c71c72p0, -0x1.4f2094f2094f2p-3 }, ++#if WANT_SIMD_EXCEPT ++ .uflow_bound = V2 (0x1.a8b12fc6e4892p+4), ++#endif ++}; ++ ++#define TinyBound 0x4000000000000000 /* 0x1p-511 << 1. */ ++#define Off 0xfffffffffffff260 /* 0xffffffffffffffff - 3487. */ ++ ++struct entry ++{ ++ float64x2_t erfc; ++ float64x2_t scale; ++}; ++ ++static inline struct entry ++lookup (uint64x2_t i) ++{ ++ struct entry e; ++ float64x2_t e1 = vld1q_f64 ((float64_t *) (__erfc_data.tab - Off + i[0])), ++ e2 = vld1q_f64 ((float64_t *) (__erfc_data.tab - Off + i[1])); ++ e.erfc = vuzp1q_f64 (e1, e2); ++ e.scale = vuzp2q_f64 (e1, e2); ++ return e; ++} ++ ++#if WANT_SIMD_EXCEPT ++static float64x2_t VPCS_ATTR NOINLINE ++special_case (float64x2_t x, float64x2_t y, uint64x2_t cmp) ++{ ++ return v_call_f64 (erfc, x, y, cmp); ++} ++#endif ++ ++/* Optimized double-precision vector erfc(x). ++ Approximation based on series expansion near x rounded to ++ nearest multiple of 1/128. ++ ++ Let d = x - r, and scale = 2 / sqrt(pi) * exp(-r^2). For x near r, ++ ++ erfc(x) ~ erfc(r) - scale * d * poly(r, d), with ++ ++ poly(r, d) = 1 - r d + (2/3 r^2 - 1/3) d^2 - r (1/3 r^2 - 1/2) d^3 ++ + (2/15 r^4 - 2/5 r^2 + 1/10) d^4 ++ - r * (2/45 r^4 - 2/9 r^2 + 1/6) d^5 ++ + p6(r) d^6 + ... + p10(r) d^10 ++ ++ Polynomials p6(r) to p10(r) are computed using recurrence relation ++ ++ 2(i+1)p_i + 2r(i+2)p_{i+1} + (i+2)(i+3)p_{i+2} = 0, ++ with p0 = 1, and p1(r) = -r. ++ ++ Values of erfc(r) and scale are read from lookup tables. Stored values ++ are scaled to avoid hitting the subnormal range. ++ ++ Note that for x < 0, erfc(x) = 2.0 - erfc(-x). ++ ++ Maximum measured error: 1.71 ULP ++ V_NAME_D1 (erfc)(0x1.46cfe976733p+4) got 0x1.e15fcbea3e7afp-608 ++ want 0x1.e15fcbea3e7adp-608. */ ++VPCS_ATTR ++float64x2_t V_NAME_D1 (erfc) (float64x2_t x) ++{ ++ const struct data *dat = ptr_barrier (&data); ++ ++#if WANT_SIMD_EXCEPT ++ /* |x| < 2^-511. Avoid fabs by left-shifting by 1. */ ++ uint64x2_t ix = vreinterpretq_u64_f64 (x); ++ uint64x2_t cmp = vcltq_u64 (vaddq_u64 (ix, ix), v_u64 (TinyBound)); ++ /* x >= ~26.54 (into subnormal case and uflow case). Comparison is done in ++ integer domain to avoid raising exceptions in presence of nans. */ ++ uint64x2_t uflow = vcgeq_s64 (vreinterpretq_s64_f64 (x), ++ vreinterpretq_s64_f64 (dat->uflow_bound)); ++ cmp = vorrq_u64 (cmp, uflow); ++ float64x2_t xm = x; ++ /* If any lanes are special, mask them with 0 and retain a copy of x to allow ++ special case handler to fix special lanes later. This is only necessary if ++ fenv exceptions are to be triggered correctly. */ ++ if (__glibc_unlikely (v_any_u64 (cmp))) ++ x = v_zerofy_f64 (x, cmp); ++#endif ++ ++ float64x2_t a = vabsq_f64 (x); ++ a = vminq_f64 (a, dat->max); ++ ++ /* Lookup erfc(r) and scale(r) in tables, e.g. set erfc(r) to 0 and scale to ++ 2/sqrt(pi), when x reduced to r = 0. */ ++ float64x2_t shift = dat->shift; ++ float64x2_t z = vaddq_f64 (a, shift); ++ ++ /* Clamp index to a range of 3487. A naive approach would use a subtract and ++ min. Instead we offset the table address and the index, then use a ++ saturating add. */ ++ uint64x2_t i = vqaddq_u64 (vreinterpretq_u64_f64 (z), dat->offset); ++ ++ struct entry e = lookup (i); ++ ++ /* erfc(x) ~ erfc(r) - scale * d * poly(r, d). */ ++ float64x2_t r = vsubq_f64 (z, shift); ++ float64x2_t d = vsubq_f64 (a, r); ++ float64x2_t d2 = vmulq_f64 (d, d); ++ float64x2_t r2 = vmulq_f64 (r, r); ++ ++ float64x2_t p1 = r; ++ float64x2_t p2 = vfmsq_f64 (dat->p20, r2, vaddq_f64 (dat->p20, dat->p20)); ++ float64x2_t p3 = vmulq_f64 (r, vfmaq_f64 (v_f64 (-0.5), r2, dat->p20)); ++ float64x2_t p4 = vfmaq_f64 (dat->p41, r2, dat->p42); ++ p4 = vfmsq_f64 (dat->p40, r2, p4); ++ float64x2_t p5 = vfmaq_f64 (dat->p51, r2, dat->p52); ++ p5 = vmulq_f64 (r, vfmaq_f64 (vmulq_f64 (v_f64 (0.5), dat->p20), r2, p5)); ++ /* Compute p_i using recurrence relation: ++ p_{i+2} = (p_i + r * Q_{i+1} * p_{i+1}) * R_{i+1}. */ ++ float64x2_t p6 = vfmaq_f64 (p4, p5, vmulq_laneq_f64 (r, dat->qr5, 0)); ++ p6 = vmulq_laneq_f64 (p6, dat->qr5, 1); ++ float64x2_t p7 = vfmaq_f64 (p5, p6, vmulq_laneq_f64 (r, dat->qr6, 0)); ++ p7 = vmulq_laneq_f64 (p7, dat->qr6, 1); ++ float64x2_t p8 = vfmaq_f64 (p6, p7, vmulq_laneq_f64 (r, dat->qr7, 0)); ++ p8 = vmulq_laneq_f64 (p8, dat->qr7, 1); ++ float64x2_t p9 = vfmaq_f64 (p7, p8, vmulq_laneq_f64 (r, dat->qr8, 0)); ++ p9 = vmulq_laneq_f64 (p9, dat->qr8, 1); ++ float64x2_t p10 = vfmaq_f64 (p8, p9, vmulq_laneq_f64 (r, dat->qr9, 0)); ++ p10 = vmulq_laneq_f64 (p10, dat->qr9, 1); ++ /* Compute polynomial in d using pairwise Horner scheme. */ ++ float64x2_t p90 = vfmaq_f64 (p9, d, p10); ++ float64x2_t p78 = vfmaq_f64 (p7, d, p8); ++ float64x2_t p56 = vfmaq_f64 (p5, d, p6); ++ float64x2_t p34 = vfmaq_f64 (p3, d, p4); ++ float64x2_t p12 = vfmaq_f64 (p1, d, p2); ++ float64x2_t y = vfmaq_f64 (p78, d2, p90); ++ y = vfmaq_f64 (p56, d2, y); ++ y = vfmaq_f64 (p34, d2, y); ++ y = vfmaq_f64 (p12, d2, y); ++ ++ y = vfmsq_f64 (e.erfc, e.scale, vfmsq_f64 (d, d2, y)); ++ ++ /* Offset equals 2.0 if sign, else 0.0. */ ++ uint64x2_t sign = vshrq_n_u64 (vreinterpretq_u64_f64 (x), 63); ++ float64x2_t off = vreinterpretq_f64_u64 (vshlq_n_u64 (sign, 62)); ++ /* Copy sign and scale back in a single fma. Since the bit patterns do not ++ overlap, then logical or and addition are equivalent here. */ ++ float64x2_t fac = vreinterpretq_f64_u64 ( ++ vsraq_n_u64 (vshlq_n_u64 (sign, 63), dat->table_scale, 1)); ++ ++#if WANT_SIMD_EXCEPT ++ if (__glibc_unlikely (v_any_u64 (cmp))) ++ return special_case (xm, vfmaq_f64 (off, fac, y), cmp); ++#endif ++ ++ return vfmaq_f64 (off, fac, y); ++} +diff --git a/sysdeps/aarch64/fpu/erfc_data.c b/sysdeps/aarch64/fpu/erfc_data.c +new file mode 100644 +index 0000000000000000..76a94e4681665cc1 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/erfc_data.c +@@ -0,0 +1,3519 @@ ++/* Table for Advanced SIMD erfc ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "vecmath_config.h" ++ ++/* Lookup table used in erfc. ++ For each possible rounded input r (multiples of 1/128), between ++ r = 0.0 and r = ~27.0 (3488 values): ++ - the first entry __erfc_data.tab.erfc contains the values of erfc(r), ++ - the second entry __erfc_data.tab.scale contains the values of ++ 2/sqrt(pi)*exp(-r^2). Both values may go into subnormal range, therefore ++ they are scaled by a large enough value 2^128 (fits in 8bit). */ ++const struct erfc_data __erfc_data = { ++ .tab = { { 0x1p128, 0x1.20dd750429b6dp128 }, ++ { 0x1.fb7c9030853b3p127, 0x1.20d8f1975c85dp128 }, ++ { 0x1.f6f9447be0743p127, 0x1.20cb67bd452c7p128 }, ++ { 0x1.f27640f9853d9p127, 0x1.20b4d8bac36c1p128 }, ++ { 0x1.edf3a9ba22dadp127, 0x1.209546ad13ccfp128 }, ++ { 0x1.e971a2c4436aep127, 0x1.206cb4897b148p128 }, ++ { 0x1.e4f05010eca8cp127, 0x1.203b261cd0053p128 }, ++ { 0x1.e06fd58842c7ep127, 0x1.2000a00ae3804p128 }, ++ { 0x1.dbf056fe2df35p127, 0x1.1fbd27cdc72d3p128 }, ++ { 0x1.d771f82f02f4ep127, 0x1.1f70c3b4f2cc8p128 }, ++ { 0x1.d2f4dcbc2f894p127, 0x1.1f1b7ae44867fp128 }, ++ { 0x1.ce792828eae5cp127, 0x1.1ebd5552f795bp128 }, ++ { 0x1.c9fefdd6eaf19p127, 0x1.1e565bca400d4p128 }, ++ { 0x1.c58681031eb6ap127, 0x1.1de697e413d29p128 }, ++ { 0x1.c10fd4c26e896p127, 0x1.1d6e14099944ap128 }, ++ { 0x1.bc9b1bfe82687p127, 0x1.1cecdb718d61cp128 }, ++ { 0x1.b82879728f11ep127, 0x1.1c62fa1e869b6p128 }, ++ { 0x1.b3b80fa82a4bbp127, 0x1.1bd07cdd189acp128 }, ++ { 0x1.af4a00f426daap127, 0x1.1b357141d95d5p128 }, ++ { 0x1.aade6f7378a0ep127, 0x1.1a91e5a748165p128 }, ++ { 0x1.a6757d08215d8p127, 0x1.19e5e92b964abp128 }, ++ { 0x1.a20f4b5626818p127, 0x1.19318bae53a04p128 }, ++ { 0x1.9dabfbc090901p127, 0x1.1874ddcdfce24p128 }, ++ { 0x1.994baf66747adp127, 0x1.17aff0e56ec1p128 }, ++ { 0x1.94ee8720076b6p127, 0x1.16e2d7093cd8cp128 }, ++ { 0x1.9094a37bbd66ep127, 0x1.160da304ed92fp128 }, ++ { 0x1.8c3e24bb73372p127, 0x1.153068581b781p128 }, ++ { 0x1.87eb2ad1a4032p127, 0x1.144b3b337c90cp128 }, ++ { 0x1.839bd55eaafc8p127, 0x1.135e3075d076bp128 }, ++ { 0x1.7f5043ae11862p127, 0x1.12695da8b5bdep128 }, ++ { 0x1.7b0894b3ea35cp127, 0x1.116cd8fd67618p128 }, ++ { 0x1.76c4e70a390e7p127, 0x1.1068b94962e5ep128 }, ++ { 0x1.728558ee694fcp127, 0x1.0f5d1602f7e41p128 }, ++ { 0x1.6e4a083ed132fp127, 0x1.0e4a073dc1b91p128 }, ++ { 0x1.6a13127843ec1p127, 0x1.0d2fa5a70c168p128 }, ++ { 0x1.65e094b3b2413p127, 0x1.0c0e0a8223359p128 }, ++ { 0x1.61b2aba3da093p127, 0x1.0ae54fa490723p128 }, ++ { 0x1.5d89739304dcfp127, 0x1.09b58f724416bp128 }, ++ { 0x1.59650860d6469p127, 0x1.087ee4d9ad247p128 }, ++ { 0x1.5545858029b39p127, 0x1.07416b4fbfe7cp128 }, ++ { 0x1.512b05f5006e1p127, 0x1.05fd3ecbec298p128 }, ++ { 0x1.4d15a4527fdc7p127, 0x1.04b27bc403d3p128 }, ++ { 0x1.49057ab900447p127, 0x1.03613f2812dafp128 }, ++ { 0x1.44faa2d42c4ap127, 0x1.0209a65e29545p128 }, ++ { 0x1.40f535d93160ep127, 0x1.00abcf3e187a9p128 }, ++ { 0x1.3cf54c850162p127, 0x1.fe8fb01a47307p127 }, ++ { 0x1.38faff1aa574ap127, 0x1.fbbbbef34b4b2p127 }, ++ { 0x1.35066561a275dp127, 0x1.f8dc092d58ff8p127 }, ++ { 0x1.311796a46f064p127, 0x1.f5f0cdaf15313p127 }, ++ { 0x1.2d2ea9aefb636p127, 0x1.f2fa4c16c0019p127 }, ++ { 0x1.294bb4cd4b2bdp127, 0x1.eff8c4b1375dbp127 }, ++ { 0x1.256ecdca212ccp127, 0x1.ecec7870ebca8p127 }, ++ { 0x1.219809edbd524p127, 0x1.e9d5a8e4c934ep127 }, ++ { 0x1.1dc77dfcacd02p127, 0x1.e6b4982f158b9p127 }, ++ { 0x1.19fd3e36ac96ap127, 0x1.e38988fc46e72p127 }, ++ { 0x1.16395e559e218p127, 0x1.e054be79d3042p127 }, ++ { 0x1.127bf18c8eadcp127, 0x1.dd167c4cf9d2ap127 }, ++ { 0x1.0ec50a86d0dd4p127, 0x1.d9cf06898cdafp127 }, ++ { 0x1.0b14bb6728cd8p127, 0x1.d67ea1a8b5368p127 }, ++ { 0x1.076b15c70aa28p127, 0x1.d325927fb9d89p127 }, ++ { 0x1.03c82ab5eb831p127, 0x1.cfc41e36c7df9p127 }, ++ { 0x1.002c0ab8a5018p127, 0x1.cc5a8a3fbea4p127 }, ++ { 0x1.f92d8b91d5cc7p126, 0x1.c8e91c4d01368p127 }, ++ { 0x1.f210d6a9a6a31p126, 0x1.c5701a484ef9dp127 }, ++ { 0x1.eb02147ce245cp126, 0x1.c1efca49a5011p127 }, ++ { 0x1.e40161b701275p126, 0x1.be68728e29d5ep127 }, ++ { 0x1.dd0ed9ea4bdd6p126, 0x1.bada596f25436p127 }, ++ { 0x1.d62a978f7c957p126, 0x1.b745c55905bf8p127 }, ++ { 0x1.cf54b4058455fp126, 0x1.b3aafcc27502ep127 }, ++ { 0x1.c88d479173ccep126, 0x1.b00a46237d5bep127 }, ++ { 0x1.c1d4695e87644p126, 0x1.ac63e7ecc1411p127 }, ++ { 0x1.bb2a2f7e5652p126, 0x1.a8b8287ec6a09p127 }, ++ { 0x1.b48eaee924501p126, 0x1.a5074e215762p127 }, ++ { 0x1.ae01fb7e55a66p126, 0x1.a1519efaf889ep127 }, ++ { 0x1.a78428050527ep126, 0x1.9d97610879642p127 }, ++ { 0x1.a115462cbbc17p126, 0x1.99d8da149c13fp127 }, ++ { 0x1.9ab5668e4930ap126, 0x1.96164fafd8de3p127 }, ++ { 0x1.946498acbd766p126, 0x1.925007283d7aap127 }, ++ { 0x1.8e22eaf68291ep126, 0x1.8e86458169af8p127 }, ++ { 0x1.87f06ac6960c4p126, 0x1.8ab94f6caa71dp127 }, ++ { 0x1.81cd2465e1d96p126, 0x1.86e9694134b9ep127 }, ++ { 0x1.7bb9230cb40b4p126, 0x1.8316d6f48133dp127 }, ++ { 0x1.75b470e454d35p126, 0x1.7f41dc12c9e89p127 }, ++ { 0x1.6fbf1708ba47cp126, 0x1.7b6abbb7aaf19p127 }, ++ { 0x1.69d91d8a595dap126, 0x1.7791b886e7403p127 }, ++ { 0x1.64028b7013867p126, 0x1.73b714a552763p127 }, ++ { 0x1.5e3b66b9405a9p126, 0x1.6fdb11b1e0c34p127 }, ++ { 0x1.5883b45fd2b63p126, 0x1.6bfdf0beddaf5p127 }, ++ { 0x1.52db785a98acap126, 0x1.681ff24b4ab04p127 }, ++ { 0x1.4d42b59f95afap126, 0x1.6441563c665d4p127 }, ++ { 0x1.47b96e267647ap126, 0x1.60625bd75d07bp127 }, ++ { 0x1.423fa2eb1cb59p126, 0x1.5c8341bb23767p127 }, ++ { 0x1.3cd553f045d45p126, 0x1.58a445da7c74cp127 }, ++ { 0x1.377a8042458d1p126, 0x1.54c5a57629dbp127 }, ++ { 0x1.322f25f9da2fdp126, 0x1.50e79d1749ac9p127 }, ++ { 0x1.2cf3423f15fdfp126, 0x1.4d0a6889dfd9fp127 }, ++ { 0x1.27c6d14c5e341p126, 0x1.492e42d78d2c5p127 }, ++ { 0x1.22a9ce717edcbp126, 0x1.4553664273d24p127 }, ++ { 0x1.1d9c3416d2b4bp126, 0x1.417a0c4049fdp127 }, ++ { 0x1.189dfbc07e69p126, 0x1.3da26d759aef5p127 }, ++ { 0x1.13af1e11be721p126, 0x1.39ccc1b136d5ap127 }, ++ { 0x1.0ecf92d046d22p126, 0x1.35f93fe7d1b3dp127 }, ++ { 0x1.09ff50e7b3f93p126, 0x1.32281e2fd1a92p127 }, ++ { 0x1.053e4e6d0c10bp126, 0x1.2e5991bd4cbfcp127 }, ++ { 0x1.008c80a24ff1p126, 0x1.2a8dcede3673bp127 }, ++ { 0x1.f7d3b7f436013p125, 0x1.26c508f6bd0ffp127 }, ++ { 0x1.eeaca836a27ccp125, 0x1.22ff727dd6f7bp127 }, ++ { 0x1.e5a3b7c9b56dap125, 0x1.1f3d3cf9ffe5ap127 }, ++ { 0x1.dcb8cae2d747fp125, 0x1.1b7e98fe26217p127 }, ++ { 0x1.d3ebc436b0f26p125, 0x1.17c3b626c7a12p127 }, ++ { 0x1.cb3c8500ea349p125, 0x1.140cc3173f007p127 }, ++ { 0x1.c2aaed0bfcfeep125, 0x1.1059ed7740313p127 }, ++ { 0x1.ba36dab91c0e9p125, 0x1.0cab61f084b93p127 }, ++ { 0x1.b1e02b082b72p125, 0x1.09014c2ca74dap127 }, ++ { 0x1.a9a6b99fc973bp125, 0x1.055bd6d32e8d7p127 }, ++ { 0x1.a18a60d56673ep125, 0x1.01bb2b87c6968p127 }, ++ { 0x1.998af9b56a3aep125, 0x1.fc3ee5d1524bp126 }, ++ { 0x1.91a85c0b65519p125, 0x1.f511a91a67d2ap126 }, ++ { 0x1.89e25e6a4cef9p125, 0x1.edeeee0959518p126 }, ++ { 0x1.8238d634c0127p125, 0x1.e6d6ffaa65a25p126 }, ++ { 0x1.7aab97a554544p125, 0x1.dfca26f5bbf88p126 }, ++ { 0x1.733a75d6e91b8p125, 0x1.d8c8aace11e63p126 }, ++ { 0x1.6be542ccffc2fp125, 0x1.d1d2cfff91594p126 }, ++ { 0x1.64abcf7c175b4p125, 0x1.cae8d93f1d7b7p126 }, ++ { 0x1.5d8debd20aacep125, 0x1.c40b0729ed548p126 }, ++ { 0x1.568b66be6f268p125, 0x1.bd3998457afdbp126 }, ++ { 0x1.4fa40e3af3674p125, 0x1.b674c8ffc6283p126 }, ++ { 0x1.48d7af53bc19fp125, 0x1.afbcd3afe8ab6p126 }, ++ { 0x1.4226162fbddd5p125, 0x1.a911f096fbc26p126 }, ++ { 0x1.3b8f0e1912f7p125, 0x1.a27455e14c93cp126 }, ++ { 0x1.351261854b991p125, 0x1.9be437a7de946p126 }, ++ { 0x1.2eafda1db784ap125, 0x1.9561c7f23a47bp126 }, ++ { 0x1.286740c7a7dabp125, 0x1.8eed36b886d93p126 }, ++ { 0x1.22385daca7f47p125, 0x1.8886b1e5ecfd1p126 }, ++ { 0x1.1c22f842ac1f2p125, 0x1.822e655b417e7p126 }, ++ { 0x1.1626d7543522p125, 0x1.7be47af1f5d89p126 }, ++ { 0x1.1043c1086777dp125, 0x1.75a91a7f4d2edp126 }, ++ { 0x1.0a797aeb152f2p125, 0x1.6f7c69d7d3ef8p126 }, ++ { 0x1.04c7c9f4b969p125, 0x1.695e8cd31867ep126 }, ++ { 0x1.fe5ce524c8ee5p124, 0x1.634fa54fa285fp126 }, ++ { 0x1.f35a715b2f3e1p124, 0x1.5d4fd33729015p126 }, ++ { 0x1.e887bf681f218p124, 0x1.575f3483021c3p126 }, ++ { 0x1.dde4553ef94dep124, 0x1.517de540ce2a3p126 }, ++ { 0x1.d36fb7fa50177p124, 0x1.4babff975a04cp126 }, ++ { 0x1.c9296beb09cf1p124, 0x1.45e99bcbb7915p126 }, ++ { 0x1.bf10f4a759889p124, 0x1.4036d0468a7a2p126 }, ++ { 0x1.b525d5198cb1cp124, 0x1.3a93b1998736cp126 }, ++ { 0x1.ab678f8eabedbp124, 0x1.35005285227f1p126 }, ++ { 0x1.a1d5a5c4edb96p124, 0x1.2f7cc3fe6f423p126 }, ++ { 0x1.986f98f9f96c8p124, 0x1.2a09153529381p126 }, ++ { 0x1.8f34e9f8f93a6p124, 0x1.24a55399ea239p126 }, ++ { 0x1.8625192879e39p124, 0x1.1f518ae487dc8p126 }, ++ { 0x1.7d3fa69816db5p124, 0x1.1a0dc51a9934dp126 }, ++ { 0x1.7484120df1b01p124, 0x1.14da0a961fd14p126 }, ++ { 0x1.6bf1db13f3983p124, 0x1.0fb6620c550afp126 }, ++ { 0x1.63888104d811ap124, 0x1.0aa2d09497f2bp126 }, ++ { 0x1.5b478318ff939p124, 0x1.059f59af7a906p126 }, ++ { 0x1.532e6073095f2p124, 0x1.00abff4dec7a3p126 }, ++ { 0x1.4b3c982c338c7p124, 0x1.f79183b101c5bp125 }, ++ { 0x1.4371a960807f8p124, 0x1.edeb406d9c825p125 }, ++ { 0x1.3bcd133aa0ffcp124, 0x1.e4652fadcb6b2p125 }, ++ { 0x1.344e54ffa23b9p124, 0x1.daff4969c0b04p125 }, ++ { 0x1.2cf4ee1a5f0fcp124, 0x1.d1b982c50137p125 }, ++ { 0x1.25c05e26b3f99p124, 0x1.c893ce1dcbef7p125 }, ++ { 0x1.1eb024fc75285p124, 0x1.bf8e1b1ca2279p125 }, ++ { 0x1.17c3c2ba26319p124, 0x1.b6a856c3ed54fp125 }, ++ { 0x1.10fab7cf72f94p124, 0x1.ade26b7fbed95p125 }, ++ { 0x1.0a548507696cp124, 0x1.a53c4135a6526p125 }, ++ { 0x1.03d0ab9273b94p124, 0x1.9cb5bd549b111p125 }, ++ { 0x1.fadd5a20258d3p123, 0x1.944ec2e4f563p125 }, ++ { 0x1.ee5c1730b147cp123, 0x1.8c07329874652p125 }, ++ { 0x1.e21c938a45a83p123, 0x1.83deeada4d25ap125 }, ++ { 0x1.d61dd57628999p123, 0x1.7bd5c7df3fe9cp125 }, ++ { 0x1.ca5ee4649e31fp123, 0x1.73eba3b5b07b7p125 }, ++ { 0x1.bedec8fddb34p123, 0x1.6c205655be72p125 }, ++ { 0x1.b39c8d3276d8ap123, 0x1.6473b5b15a7a1p125 }, ++ { 0x1.a8973c4b5c03ep123, 0x1.5ce595c455b0ap125 }, ++ { 0x1.9dcde2f93a207p123, 0x1.5575c8a468362p125 }, ++ { 0x1.933f8f6375f2cp123, 0x1.4e241e912c305p125 }, ++ { 0x1.88eb51369acb9p123, 0x1.46f066040a832p125 }, ++ { 0x1.7ed039b24c96bp123, 0x1.3fda6bc016994p125 }, ++ { 0x1.74ed5bb6bb581p123, 0x1.38e1fae1d6a9dp125 }, ++ { 0x1.6b41cbd198bc8p123, 0x1.3206dceef5f87p125 }, ++ { 0x1.61cca04a90795p123, 0x1.2b48d9e5dea1cp125 }, ++ { 0x1.588cf12f4446bp123, 0x1.24a7b84d38971p125 }, ++ { 0x1.4f81d85ecc55bp123, 0x1.1e233d434b813p125 }, ++ { 0x1.46aa7194bd324p123, 0x1.17bb2c8d41535p125 }, ++ { 0x1.3e05da73b4159p123, 0x1.116f48a6476ccp125 }, ++ { 0x1.3593328f6abbep123, 0x1.0b3f52ce8c383p125 }, ++ { 0x1.2d519b7653e1ep123, 0x1.052b0b1a174eap125 }, ++ { 0x1.254038bac19d6p123, 0x1.fe6460fef468p124 }, ++ { 0x1.1d5e2ffb96d4p123, 0x1.f2a901ccafb37p124 }, ++ { 0x1.15aaa8ec85205p123, 0x1.e723726b824a9p124 }, ++ { 0x1.0e24cd5dd8846p123, 0x1.dbd32ac4c99bp124 }, ++ { 0x1.06cbc943d255ap123, 0x1.d0b7a0f921e7cp124 }, ++ { 0x1.ff3d957b29b39p122, 0x1.c5d0497c09e74p124 }, ++ { 0x1.f13a043742333p122, 0x1.bb1c972f23e5p124 }, ++ { 0x1.e38b43cbd0f0fp122, 0x1.b09bfb7d11a84p124 }, ++ { 0x1.d62fbdc2e756bp122, 0x1.a64de673e8837p124 }, ++ { 0x1.c925e02b41668p122, 0x1.9c31c6df3b1b8p124 }, ++ { 0x1.bc6c1da1f3121p122, 0x1.92470a61b6965p124 }, ++ { 0x1.b000ed5b4a626p122, 0x1.888d1d8e510a3p124 }, ++ { 0x1.a3e2cb2ae9edbp122, 0x1.7f036c0107294p124 }, ++ { 0x1.9810378b1f299p122, 0x1.75a96077274bap124 }, ++ { 0x1.8c87b7a37834fp122, 0x1.6c7e64e7281cbp124 }, ++ { 0x1.8147d54e9cc33p122, 0x1.6381e2980956bp124 }, ++ { 0x1.764f1f1f6ddeap122, 0x1.5ab342383d178p124 }, ++ { 0x1.6b9c28657041ap122, 0x1.5211ebf41880bp124 }, ++ { 0x1.612d893085125p122, 0x1.499d478bca735p124 }, ++ { 0x1.5701de53f4d2ep122, 0x1.4154bc68d75c3p124 }, ++ { 0x1.4d17c968d062bp122, 0x1.3937b1b31925ap124 }, ++ { 0x1.436df0cfabf1dp122, 0x1.31458e6542847p124 }, ++ { 0x1.3a02ffb1b7ceep122, 0x1.297db960e4f63p124 }, ++ { 0x1.30d5a6013afc5p122, 0x1.21df9981f8e53p124 }, ++ { 0x1.27e49879737d3p122, 0x1.1a6a95b1e786fp124 }, ++ { 0x1.1f2e909de04d2p122, 0x1.131e14fa1625dp124 }, ++ { 0x1.16b24cb8f8f92p122, 0x1.0bf97e95f2a64p124 }, ++ { 0x1.0e6e8fda56cf7p122, 0x1.04fc3a0481321p124 }, ++ { 0x1.066221d4539d8p122, 0x1.fc4b5e32d6259p123 }, ++ { 0x1.fd179e7243e3cp121, 0x1.eeea8c1b1db94p123 }, ++ { 0x1.edd4d2aec5adbp121, 0x1.e1d4cf1e2450ap123 }, ++ { 0x1.def98c6c79efap121, 0x1.d508f9a1ea64fp123 }, ++ { 0x1.d0838121f2418p121, 0x1.c885df3451a07p123 }, ++ { 0x1.c2706fa45005ep121, 0x1.bc4a54a84e834p123 }, ++ { 0x1.b4be201caa4b4p121, 0x1.b055303221015p123 }, ++ { 0x1.a76a63fc95c79p121, 0x1.a4a549829587ep123 }, ++ { 0x1.9a7315f1d6a55p121, 0x1.993979e14fffep123 }, ++ { 0x1.8dd619d943ca1p121, 0x1.8e109c4622913p123 }, ++ { 0x1.81915cb0e3323p121, 0x1.83298d717210ep123 }, ++ { 0x1.75a2d48946eb1p121, 0x1.78832c03aa2b1p123 }, ++ { 0x1.6a08807632262p121, 0x1.6e1c5893c380bp123 }, ++ { 0x1.5ec0687e8dcb2p121, 0x1.63f3f5c4de13bp123 }, ++ { 0x1.53c89d8bb3ddbp121, 0x1.5a08e85af27ep123 }, ++ { 0x1.491f395818f54p121, 0x1.505a174e9c929p123 }, ++ { 0x1.3ec25e5d5af12p121, 0x1.46e66be00224p123 }, ++ { 0x1.34b037c1bbfc5p121, 0x1.3dacd1a8d8ccep123 }, ++ { 0x1.2ae6f94510dd8p121, 0x1.34ac36ad8dafep123 }, ++ { 0x1.2164df2d29765p121, 0x1.2be38b6d92415p123 }, ++ { 0x1.18282e31ba3e8p121, 0x1.2351c2f2d1449p123 }, ++ { 0x1.0f2f3367cd6aap121, 0x1.1af5d2e04f3f6p123 }, ++ { 0x1.0678442cc256fp121, 0x1.12ceb37ff9bc3p123 }, ++ { 0x1.fc037c21c3622p120, 0x1.0adb5fcfa8c75p123 }, ++ { 0x1.eb940d8319831p120, 0x1.031ad58d56279p123 }, ++ { 0x1.db9f17e61c31p120, 0x1.f7182a851bca2p122 }, ++ { 0x1.cc218694238a2p120, 0x1.e85c449e377f3p122 }, ++ { 0x1.bd18548996419p120, 0x1.da0005e5f28dfp122 }, ++ { 0x1.ae808c479c371p120, 0x1.cc0180af00a8bp122 }, ++ { 0x1.a05747a543aa7p120, 0x1.be5ecd2fcb5f9p122 }, ++ { 0x1.9299afa0246a6p120, 0x1.b1160991ff737p122 }, ++ { 0x1.8544fc2c8c1dap120, 0x1.a4255a00b9f03p122 }, ++ { 0x1.785674053e8b9p120, 0x1.978ae8b55ce1bp122 }, ++ { 0x1.6bcb6c7ad4854p120, 0x1.8b44e6031383ep122 }, ++ { 0x1.5fa14942c3d54p120, 0x1.7f5188610ddc8p122 }, ++ { 0x1.53d57c461a5a7p120, 0x1.73af0c737bb45p122 }, ++ { 0x1.4865856ff632ap120, 0x1.685bb5134ef13p122 }, ++ { 0x1.3d4ef27bc49a6p120, 0x1.5d55cb54cd53ap122 }, ++ { 0x1.328f5ec350e67p120, 0x1.529b9e8cf9a1ep122 }, ++ { 0x1.2824730cacbb4p120, 0x1.482b8455dc491p122 }, ++ { 0x1.1e0be557fa673p120, 0x1.3e03d891b37dep122 }, ++ { 0x1.144378ad22027p120, 0x1.3422fd6d12e2bp122 }, ++ { 0x1.0ac8fce979b96p120, 0x1.2a875b5ffab56p122 }, ++ { 0x1.019a4e8d69649p120, 0x1.212f612dee7fbp122 }, ++ { 0x1.f16aad1422a55p119, 0x1.181983e5133ddp122 }, ++ { 0x1.e030141df7d25p119, 0x1.0f443edc5ce49p122 }, ++ { 0x1.cf80d4afc3019p119, 0x1.06ae13b0d3255p122 }, ++ { 0x1.bf5908f50b4ap119, 0x1.fcab1483ea7fcp121 }, ++ { 0x1.afb4e269693dfp119, 0x1.ec72615a894c4p121 }, ++ { 0x1.a090a974cfebep119, 0x1.dcaf3691fc448p121 }, ++ { 0x1.91e8bd0830a74p119, 0x1.cd5ec93c12432p121 }, ++ { 0x1.83b9923a85f7bp119, 0x1.be7e5ac24963bp121 }, ++ { 0x1.75ffb3e6519ap119, 0x1.b00b38d6b3575p121 }, ++ { 0x1.68b7c2479902dp119, 0x1.a202bd6372dcep121 }, ++ { 0x1.5bde729a6b60fp119, 0x1.94624e78e0fafp121 }, ++ { 0x1.4f708eb9fba63p119, 0x1.87275e3a6869ep121 }, ++ { 0x1.436af4c058acbp119, 0x1.7a4f6aca256cbp121 }, ++ { 0x1.37ca96a6cd1d4p119, 0x1.6dd7fe335823p121 }, ++ { 0x1.2c8c79e6f04a3p119, 0x1.61beae53b72b7p121 }, ++ { 0x1.21adb71c70c75p119, 0x1.56011cc3b036dp121 }, ++ { 0x1.172b79a7a1181p119, 0x1.4a9cf6bda3f4cp121 }, ++ { 0x1.0d02ff50ce651p119, 0x1.3f8ff5042a88ep121 }, ++ { 0x1.033197ec68c0ep119, 0x1.34d7dbc76d7e5p121 }, ++ { 0x1.f3694a0008381p118, 0x1.2a727a89a3f14p121 }, ++ { 0x1.e11332d0714c5p118, 0x1.205dac02bd6b9p121 }, ++ { 0x1.cf5bf1fed1e7p118, 0x1.1697560347b26p121 }, ++ { 0x1.be3eb08ae7c2p118, 0x1.0d1d69569b82dp121 }, ++ { 0x1.adb6b810af9e2p118, 0x1.03ede1a45bfeep121 }, ++ { 0x1.9dbf721b98dfap118, 0x1.f60d8aa2a88f2p120 }, ++ { 0x1.8e54677bb0151p118, 0x1.e4cc4abf7d065p120 }, ++ { 0x1.7f713f9cc9784p118, 0x1.d4143a9dfe965p120 }, ++ { 0x1.7111bfdfb3cep118, 0x1.c3e1a5f5c077cp120 }, ++ { 0x1.6331caf57b5dbp118, 0x1.b430ecf4a83a8p120 }, ++ { 0x1.55cd603cc415p118, 0x1.a4fe83fb9db25p120 }, ++ { 0x1.48e09b21414bfp118, 0x1.9646f35a76624p120 }, ++ { 0x1.3c67b27d50fe7p118, 0x1.8806d70b2fc36p120 }, ++ { 0x1.305ef7fdbfb95p118, 0x1.7a3ade6c8b3e5p120 }, ++ { 0x1.24c2d787b9e37p118, 0x1.6cdfcbfc1e263p120 }, ++ { 0x1.198fd6a0ee7bdp118, 0x1.5ff2750fe782p120 }, ++ { 0x1.0ec293d9e6d85p118, 0x1.536fc18f7ce5cp120 }, ++ { 0x1.0457c63a9669p118, 0x1.4754abacdf1dcp120 }, ++ { 0x1.f49879624a021p117, 0x1.3b9e3f9d06e3fp120 }, ++ { 0x1.e139bb05eb49ep117, 0x1.30499b503957fp120 }, ++ { 0x1.ce8d4b7fd6c7p117, 0x1.2553ee2a336bfp120 }, ++ { 0x1.bc8d516fda8bap117, 0x1.1aba78ba3af89p120 }, ++ { 0x1.ab341ee553e25p117, 0x1.107a8c7323a6ep120 }, ++ { 0x1.9a7c305336484p117, 0x1.06918b6355624p120 }, ++ { 0x1.8a602b88919cp117, 0x1.f9f9cfd9c3035p119 }, ++ { 0x1.7adadead962edp117, 0x1.e77448fb66bb9p119 }, ++ { 0x1.6be73f45149fbp117, 0x1.d58da68fd117p119 }, ++ { 0x1.5d80693276a6dp117, 0x1.c4412bf4b8f0bp119 }, ++ { 0x1.4fa19dc42d409p117, 0x1.b38a3af2e55b4p119 }, ++ { 0x1.424642c28ff75p117, 0x1.a3645330550ffp119 }, ++ { 0x1.3569e18328604p117, 0x1.93cb11a30d765p119 }, ++ { 0x1.29082600643fdp117, 0x1.84ba3004a50dp119 }, ++ { 0x1.1d1cddf5a82dep117, 0x1.762d84469c18fp119 }, ++ { 0x1.11a3f7ffbbfeap117, 0x1.6821000795a03p119 }, ++ { 0x1.069982c189a9ep117, 0x1.5a90b00981d93p119 }, ++ { 0x1.f7f3581a4dc2cp116, 0x1.4d78bba8ca5fdp119 }, ++ { 0x1.e381802242163p116, 0x1.40d564548fad7p119 }, ++ { 0x1.cfd6511405b2dp116, 0x1.34a305080681fp119 }, ++ { 0x1.bcead7f01492fp116, 0x1.28de11c5031ebp119 }, ++ { 0x1.aab859b20ac9ep116, 0x1.1d83170fbf6fbp119 }, ++ { 0x1.993851cc9779ap116, 0x1.128eb96be8798p119 }, ++ { 0x1.886470ad946a7p116, 0x1.07fdb4dafea5fp119 }, ++ { 0x1.78369a4a2cbd6p116, 0x1.fb99b8b8279e1p118 }, ++ { 0x1.68a8e4b2fc8c2p116, 0x1.e7f232d9e263p118 }, ++ { 0x1.59b596b012aaap116, 0x1.d4fed7195d7e8p118 }, ++ { 0x1.4b572664bd2dcp116, 0x1.c2b9cf7f893bfp118 }, ++ { 0x1.3d8837fb08d1dp116, 0x1.b11d702b3deb2p118 }, ++ { 0x1.30439c56dadf6p116, 0x1.a024365f771bdp118 }, ++ { 0x1.23844fd08cb93p116, 0x1.8fc8c794b03b5p118 }, ++ { 0x1.174578f6efd5dp116, 0x1.8005f08d6f1efp118 }, ++ { 0x1.0b826758a086bp116, 0x1.70d6a46e07ddap118 }, ++ { 0x1.003692548d98bp116, 0x1.6235fbd7a4345p118 }, ++ { 0x1.eabb2fe335196p115, 0x1.541f340697987p118 }, ++ { 0x1.d5e6777a83c2ap115, 0x1.468dadf4080abp118 }, ++ { 0x1.c1e6cb6239574p115, 0x1.397ced7af2b15p118 }, ++ { 0x1.aeb4423e690e7p115, 0x1.2ce898809244ep118 }, ++ { 0x1.9c47374a0974ep115, 0x1.20cc76202c5fbp118 }, ++ { 0x1.8a98484a1e8d3p115, 0x1.15246dda49d47p118 }, ++ { 0x1.79a0538dd4fc7p115, 0x1.09ec86c75d497p118 }, ++ { 0x1.695875fb574ap115, 0x1.fe41cd9bb4eeep117 }, ++ { 0x1.59ba0929261c5p115, 0x1.e97ba3b77f306p117 }, ++ { 0x1.4abea183bc47p115, 0x1.d57f524723822p117 }, ++ { 0x1.3c600c7f477c5p115, 0x1.c245d4b99847ap117 }, ++ { 0x1.2e984ed53e777p115, 0x1.afc85e0f82e12p117 }, ++ { 0x1.2161a2cd9d894p115, 0x1.9e005769dbc1dp117 }, ++ { 0x1.14b67693928cfp115, 0x1.8ce75e9f6f8ap117 }, ++ { 0x1.08916a956172p115, 0x1.7c7744d9378f7p117 }, ++ { 0x1.f9da9fde95755p114, 0x1.6caa0d3582fe9p117 }, ++ { 0x1.e38a4dc27b11bp114, 0x1.5d79eb71e893bp117 }, ++ { 0x1.ce283a9e3e33p114, 0x1.4ee1429bf7ccp117 }, ++ { 0x1.b9ab1a96e3b3ep114, 0x1.40daa3c89f5b6p117 }, ++ { 0x1.a609f7584d32bp114, 0x1.3360ccd23db3ap117 }, ++ { 0x1.933c2d52c56c9p114, 0x1.266ea71d4f71ap117 }, ++ { 0x1.8139690c0d187p114, 0x1.19ff4663ae9dfp117 }, ++ { 0x1.6ff9a4837fa43p114, 0x1.0e0de78654d1ep117 }, ++ { 0x1.5f7524a8e81a2p114, 0x1.0295ef6591848p117 }, ++ { 0x1.4fa476e59f668p114, 0x1.ef25d37f49fe1p116 }, ++ { 0x1.40806eb78e353p114, 0x1.da01102b5f851p116 }, ++ { 0x1.3202235dada5p114, 0x1.c5b5412dcafadp116 }, ++ { 0x1.2422ed95a3235p114, 0x1.b23a5a23e421p116 }, ++ { 0x1.16dc656a14df6p114, 0x1.9f8893d8fd1c1p116 }, ++ { 0x1.0a2860115569cp114, 0x1.8d986a4187285p116 }, ++ { 0x1.fc01dbb80c841p113, 0x1.7c629a822bc9ep116 }, ++ { 0x1.e4c0b066a497p113, 0x1.6be02102b352p116 }, ++ { 0x1.ce823f4cc4badp113, 0x1.5c0a378c90bcap116 }, ++ { 0x1.b93bf40d5eccbp113, 0x1.4cda5374ea275p116 }, ++ { 0x1.a4e3a125adc76p113, 0x1.3e4a23d1f4703p116 }, ++ { 0x1.916f7c5f2f764p113, 0x1.30538fbb77ecdp116 }, ++ { 0x1.7ed61b5d3db0ap113, 0x1.22f0b496539bep116 }, ++ { 0x1.6d0e7045988cbp113, 0x1.161be46ad3b5p116 }, ++ { 0x1.5c0fc68335b0cp113, 0x1.09cfa445b00ffp116 }, ++ { 0x1.4bd1bfa2aba3dp113, 0x1.fc0d55470cf51p115 }, ++ { 0x1.3c4c504792bf8p113, 0x1.e577bbcd49935p115 }, ++ { 0x1.2d77bd3a382bcp113, 0x1.cfd4a5adec5cp115 }, ++ { 0x1.1f4c988d02149p113, 0x1.bb1a9657ce465p115 }, ++ { 0x1.11c3bed8e716ap113, 0x1.a740684026555p115 }, ++ { 0x1.04d654905dadp113, 0x1.943d4a1d1ed39p115 }, ++ { 0x1.f0fb86d056745p112, 0x1.8208bc334a6a5p115 }, ++ { 0x1.d9676faafa27fp112, 0x1.709a8db59f25cp115 }, ++ { 0x1.c2e43d417197bp112, 0x1.5feada379d8b7p115 }, ++ { 0x1.ad664518e771bp112, 0x1.4ff207314a102p115 }, ++ { 0x1.98e25420092dap112, 0x1.40a8c1949f75ep115 }, ++ { 0x1.854daa4a49b0fp112, 0x1.3207fb7420eb9p115 }, ++ { 0x1.729df6503422ap112, 0x1.2408e9ba3327fp115 }, ++ { 0x1.60c95193c542dp112, 0x1.16a501f0e42cap115 }, ++ { 0x1.4fc63c27c71aep112, 0x1.09d5f819c9e29p115 }, ++ { 0x1.3f8b98f93052ap112, 0x1.fb2b792b40a22p114 }, ++ { 0x1.3010aa198de78p112, 0x1.e3bcf436a1a95p114 }, ++ { 0x1.214d0d298365p112, 0x1.cd55277c18d05p114 }, ++ { 0x1.1338b7e273194p112, 0x1.b7e94604479dcp114 }, ++ { 0x1.05cbf4be650abp112, 0x1.a36eec00926ddp114 }, ++ { 0x1.f1febf7a916aap111, 0x1.8fdc1b2dcf7b9p114 }, ++ { 0x1.d997c68d65936p111, 0x1.7d2737527c3f9p114 }, ++ { 0x1.c2556a4e7a90fp111, 0x1.6b4702d7d5849p114 }, ++ { 0x1.ac2aa7516ade4p111, 0x1.5a329b7d30748p114 }, ++ { 0x1.970b05888fda2p111, 0x1.49e17724f4d41p114 }, ++ { 0x1.82ea92dbc1a27p111, 0x1.3a4b60ba9aa4ep114 }, ++ { 0x1.6fbdddeff308fp111, 0x1.2b6875310f785p114 }, ++ { 0x1.5d79f11e27f6bp111, 0x1.1d312098e9dbap114 }, ++ { 0x1.4c144d984e1b8p111, 0x1.0f9e1b4dd36dfp114 }, ++ { 0x1.3b82e6ba892a4p111, 0x1.02a8673a94692p114 }, ++ { 0x1.2bbc1d878d272p111, 0x1.ec929a665b449p113 }, ++ { 0x1.1cb6bc4eaa678p111, 0x1.d4f4b4c8e09edp113 }, ++ { 0x1.0e69f27a37df3p111, 0x1.be6abbb10a5aap113 }, ++ { 0x1.00cd508511266p111, 0x1.a8e8cc1fadef6p113 }, ++ { 0x1.e7b1882bccac5p110, 0x1.94637d5bacfdbp113 }, ++ { 0x1.cf09287e48bb9p110, 0x1.80cfdc72220cfp113 }, ++ { 0x1.b792bbc489b04p110, 0x1.6e2367dc27f95p113 }, ++ { 0x1.a140206ab945p110, 0x1.5c540b4936fd2p113 }, ++ { 0x1.8c03d2d39119bp110, 0x1.4b581b8d170fcp113 }, ++ { 0x1.77d0e6e5bed21p110, 0x1.3b2652b06c2b2p113 }, ++ { 0x1.649b01d73110ap110, 0x1.2bb5cc22e5db6p113 }, ++ { 0x1.525654343aad2p110, 0x1.1cfe010e2052dp113 }, ++ { 0x1.40f79420887c7p110, 0x1.0ef6c4c84a0fep113 }, ++ { 0x1.3073f7cff4a85p110, 0x1.01984165a5f36p113 }, ++ { 0x1.20c1303550f0ep110, 0x1.e9b5e8d00ce77p112 }, ++ { 0x1.11d563e54f40ep110, 0x1.d16f5716c6c1ap112 }, ++ { 0x1.03a72a2bbdc06p110, 0x1.ba4f035d60e03p112 }, ++ { 0x1.ec5b0ca2b20f5p109, 0x1.a447b7b03f045p112 }, ++ { 0x1.d2bfc6210880ap109, 0x1.8f4ccca7fc90dp112 }, ++ { 0x1.ba6c1c6e87c4p109, 0x1.7b5223dac7336p112 }, ++ { 0x1.a35068e9c89cfp109, 0x1.684c227fcacefp112 }, ++ { 0x1.8d5dbaa383b98p109, 0x1.562fac4329b48p112 }, ++ { 0x1.7885ce9f67cdbp109, 0x1.44f21e49054f2p112 }, ++ { 0x1.64bb0863504ddp109, 0x1.34894a5e24657p112 }, ++ { 0x1.51f06ad20e4c3p109, 0x1.24eb7254ccf83p112 }, ++ { 0x1.4019914f0b53ap109, 0x1.160f438c70913p112 }, ++ { 0x1.2f2aa92823e8p109, 0x1.07ebd2a2d2844p112 }, ++ { 0x1.1f186b432c98bp109, 0x1.f4f12e9ab070ap111 }, ++ { 0x1.0fd8160ca94ap109, 0x1.db5ad0b27805cp111 }, ++ { 0x1.015f67a552924p109, 0x1.c304efa2c6f4ep111 }, ++ { 0x1.e749309831666p108, 0x1.abe09e9144b5ep111 }, ++ { 0x1.cd3caa04cdd1bp108, 0x1.95df988e76644p111 }, ++ { 0x1.b48774d0f8e45p108, 0x1.80f439b4ee04bp111 }, ++ { 0x1.9d189f9f85cbfp108, 0x1.6d11788a69c64p111 }, ++ { 0x1.86e0050236315p108, 0x1.5a2adfa0b4bc4p111 }, ++ { 0x1.71ce426a561d3p108, 0x1.4834877429b8fp111 }, ++ { 0x1.5dd4af79906a9p108, 0x1.37231085c7d9ap111 }, ++ { 0x1.4ae555af52cdfp108, 0x1.26eb9daed6f7ep111 }, ++ { 0x1.38f2e86f38216p108, 0x1.1783ceac2891p111 }, ++ { 0x1.27f0bd5d0e6b1p108, 0x1.08e1badf0fcedp111 }, ++ { 0x1.17d2c50b2bfafp108, 0x1.f5f7d88472604p110 }, ++ { 0x1.088d83f7e4069p108, 0x1.db92b5212fb8dp110 }, ++ { 0x1.f42c17ae0ebf6p107, 0x1.c282cd3957edap110 }, ++ { 0x1.d8c3ea48f2889p107, 0x1.aab7abace48dcp110 }, ++ { 0x1.beceb1f9f5b3dp107, 0x1.94219bfcb4928p110 }, ++ { 0x1.a6399674d366bp107, 0x1.7eb1a2075864ep110 }, ++ { 0x1.8ef2a9a18d857p107, 0x1.6a597219a93dap110 }, ++ { 0x1.78e8dcd2e6bfdp107, 0x1.570b69502f313p110 }, ++ { 0x1.640bf6745325ep107, 0x1.44ba864670882p110 }, ++ { 0x1.504c882a97424p107, 0x1.335a62115bce2p110 }, ++ { 0x1.3d9be56279ee9p107, 0x1.22df298214423p110 }, ++ { 0x1.2bec1a4917edbp107, 0x1.133d96ae7e0ddp110 }, ++ { 0x1.1b2fe32991d5cp107, 0x1.046aeabcfcdecp110 }, ++ { 0x1.0b5aa42bf5054p107, 0x1.ecb9cfe1d8642p109 }, ++ { 0x1.f8c0c2e2ce8dep106, 0x1.d21397ead99cbp109 }, ++ { 0x1.dc6b6f1384e18p106, 0x1.b8d094c86d374p109 }, ++ { 0x1.c19fa87de37fbp106, 0x1.a0df0f0c626dcp109 }, ++ { 0x1.a848df650bea7p106, 0x1.8a2e269750a39p109 }, ++ { 0x1.90538b942ea7cp106, 0x1.74adc8f4064d3p109 }, ++ { 0x1.79ad1fce5b3d8p106, 0x1.604ea819f007cp109 }, ++ { 0x1.6443fdcf0c327p106, 0x1.4d0231928c6f9p109 }, ++ { 0x1.50076ad55cc39p106, 0x1.3aba85fe22e2p109 }, ++ { 0x1.3ce784b411931p106, 0x1.296a70f414053p109 }, ++ { 0x1.2ad53760d7287p106, 0x1.1905613b3abf2p109 }, ++ { 0x1.19c232fd50b88p106, 0x1.097f6156f32c5p109 }, ++ { 0x1.09a0e254c75ep106, 0x1.f59a20caf6695p108 }, ++ { 0x1.f4c8c392fb944p105, 0x1.d9c73698fb1dcp108 }, ++ { 0x1.d800ed59bd026p105, 0x1.bf716c6168baep108 }, ++ { 0x1.bcd30dfbd611bp105, 0x1.a6852c6b58392p108 }, ++ { 0x1.a32923130213fp105, 0x1.8eefd70594a89p108 }, ++ { 0x1.8aee4cd06ec1bp105, 0x1.789fb715aae95p108 }, ++ { 0x1.740ebfab80eb4p105, 0x1.6383f726a8e04p108 }, ++ { 0x1.5e77b6bbd2127p105, 0x1.4f8c96f26a26ap108 }, ++ { 0x1.4a1766b6e5e8ap105, 0x1.3caa61607f92p108 }, ++ { 0x1.36dcf18a6465cp105, 0x1.2acee2f5ecdb8p108 }, ++ { 0x1.24b85a8bf0124p105, 0x1.19ec60b1242edp108 }, ++ { 0x1.139a7b37f8475p105, 0x1.09f5cf4dd2877p108 }, ++ { 0x1.0374f8792ca97p105, 0x1.f5bd95d8730d8p107 }, ++ { 0x1.e87470e4f4246p104, 0x1.d9371e2ff7c35p107 }, ++ { 0x1.cbbab18b73217p104, 0x1.be41de54d155ap107 }, ++ { 0x1.b0a44aa2f067ep104, 0x1.a4c89e08ef4f3p107 }, ++ { 0x1.971a1ec0f40c7p104, 0x1.8cb738399b12cp107 }, ++ { 0x1.7f064a8ba8323p104, 0x1.75fa8dbc84becp107 }, ++ { 0x1.685414c16188ep104, 0x1.608078a70dcbcp107 }, ++ { 0x1.52efdf060cd2p104, 0x1.4c37c0394d094p107 }, ++ { 0x1.3ec7176d784b5p104, 0x1.39100d5687bfep107 }, ++ { 0x1.2bc82ab9d2302p104, 0x1.26f9df8519bd7p107 }, ++ { 0x1.19e277461404p104, 0x1.15e6827001f18p107 }, ++ { 0x1.090640946d2d5p104, 0x1.05c803e4831c1p107 }, ++ { 0x1.f24946f22d5aep103, 0x1.ed22548cffd35p106 }, ++ { 0x1.d45f15b49b35ep103, 0x1.d06ad6ecdf971p106 }, ++ { 0x1.b83349fd05191p103, 0x1.b551c847fbc96p106 }, ++ { 0x1.9dacb2c432ef4p103, 0x1.9bc09f112b494p106 }, ++ { 0x1.84b37e1cbf8ebp103, 0x1.83a1ff0aa239dp106 }, ++ { 0x1.6d3126d74b6ccp103, 0x1.6ce1aa3fd7bddp106 }, ++ { 0x1.5710631158bffp103, 0x1.576c72b514859p106 }, ++ { 0x1.423d13a3b73e1p103, 0x1.43302cc4a0da8p106 }, ++ { 0x1.2ea43465e3995p103, 0x1.301ba221dc9bbp106 }, ++ { 0x1.1c33cd3c37addp103, 0x1.1e1e857adc568p106 }, ++ { 0x1.0adae3e73c2b5p103, 0x1.0d2966b1746f7p106 }, ++ { 0x1.f512dd15b73b7p102, 0x1.fa5b4f49cc6b2p105 }, ++ { 0x1.d6608dc942687p102, 0x1.dc3ae30b55c16p105 }, ++ { 0x1.b9823c51276e1p102, 0x1.bfd7555a3bd68p105 }, ++ { 0x1.9e5ce2f93dd76p102, 0x1.a517d9e61628ap105 }, ++ { 0x1.84d6fe15b6b93p102, 0x1.8be4f8f6c951fp105 }, ++ { 0x1.6cd87746bc76bp102, 0x1.74287ded49339p105 }, ++ { 0x1.564a91cd221fp102, 0x1.5dcd669f2cd34p105 }, ++ { 0x1.4117d7e2c667dp102, 0x1.48bfd38302871p105 }, ++ { 0x1.2d2c0909ebeb9p102, 0x1.34ecf8a3c124ap105 }, ++ { 0x1.1a7409475f2f9p102, 0x1.22430f521cbcfp105 }, ++ { 0x1.08ddd13bd35e7p102, 0x1.10b1488aeb235p105 }, ++ { 0x1.f0b0be22d18e8p101, 0x1.0027c00a263a6p105 }, ++ { 0x1.d1a75065a8c74p101, 0x1.e12ee004efc37p104 }, ++ { 0x1.b48117843c1c7p101, 0x1.c3e44ae32b16bp104 }, ++ { 0x1.99218b8ac7f8ep101, 0x1.a854ea14102a8p104 }, ++ { 0x1.7f6dc6010b4adp101, 0x1.8e6761569f45dp104 }, ++ { 0x1.674c6ae60d852p101, 0x1.7603bac345f65p104 }, ++ { 0x1.50a592e3c968ep101, 0x1.5f1353cdad001p104 }, ++ { 0x1.3b62b6aafb0c8p101, 0x1.4980cb3c80949p104 }, ++ { 0x1.276e9b681072fp101, 0x1.3537f00b6ad4dp104 }, ++ { 0x1.14b54042f445bp101, 0x1.2225b12bffc68p104 }, ++ { 0x1.0323ccdc1a3dcp101, 0x1.10380e1adb7e9p104 }, ++ { 0x1.e5510173b9a5p100, 0x1.febc107d5efaap103 }, ++ { 0x1.c6654733b86adp100, 0x1.df0f2a0ee6947p103 }, ++ { 0x1.a964ed354f984p100, 0x1.c14b2188bcee4p103 }, ++ { 0x1.8e324c651b064p100, 0x1.a553644f7f07dp103 }, ++ { 0x1.74b179d1eba81p100, 0x1.8b0cfce0579ep103 }, ++ { 0x1.5cc82d9070d95p100, 0x1.725e7c5dd20f7p103 }, ++ { 0x1.465daafca8b1dp100, 0x1.5b2fe547a134p103 }, ++ { 0x1.315aaa46df48ep100, 0x1.456a974e92e93p103 }, ++ { 0x1.1da9433aebbcfp100, 0x1.30f93c3699078p103 }, ++ { 0x1.0b34d93135fcp100, 0x1.1dc7b5b978cf8p103 }, ++ { 0x1.f3d41033c44ccp99, 0x1.0bc30c5d52f15p103 }, ++ { 0x1.d36d25268cd2bp99, 0x1.f5b2be65a0c7fp102 }, ++ { 0x1.b512a1fb1d8fcp99, 0x1.d5f3a8dea7357p102 }, ++ { 0x1.98a442fc4fc15p99, 0x1.b82915b03515bp102 }, ++ { 0x1.7e03b1cc6d738p99, 0x1.9c3517e789488p102 }, ++ { 0x1.651468e010b8ap99, 0x1.81fb7df06136ep102 }, ++ { 0x1.4dbb989001d84p99, 0x1.6961b8d641d06p102 }, ++ { 0x1.37e00dac4e8b5p99, 0x1.524ec4d916caep102 }, ++ { 0x1.236a197bf0b9ap99, 0x1.3cab1343d18d1p102 }, ++ { 0x1.10437b1569d7ep99, 0x1.2860757487a01p102 }, ++ { 0x1.fcae93fb7323cp98, 0x1.155a09065d4f7p102 }, ++ { 0x1.db23c3f816f92p98, 0x1.0384250e4c9fcp102 }, ++ { 0x1.bbc1a022c14d4p98, 0x1.e59890b926c78p101 }, ++ { 0x1.9e658108af2ep98, 0x1.c642116a8a9e3p101 }, ++ { 0x1.82eedbe410407p98, 0x1.a8e405e651ab6p101 }, ++ { 0x1.693f22ab61ce9p98, 0x1.8d5f98114f872p101 }, ++ { 0x1.5139a5f3661fbp98, 0x1.7397c5a66e307p101 }, ++ { 0x1.3ac3788a1b429p98, 0x1.5b71456c5a4c4p101 }, ++ { 0x1.25c354b26cb4ep98, 0x1.44d26de513197p101 }, ++ { 0x1.122182e9a270fp98, 0x1.2fa31d6371537p101 }, ++ { 0x1.ff8f84418d51p97, 0x1.1bcca373b7b43p101 }, ++ { 0x1.dd4262aac53e8p97, 0x1.0939ab853339fp101 }, ++ { 0x1.bd3474ec16ca5p97, 0x1.efac5187b2863p100 }, ++ { 0x1.9f40fd0082b72p97, 0x1.cf1e86235d0e7p100 }, ++ { 0x1.8345858c4438dp97, 0x1.b0a68a2128babp100 }, ++ { 0x1.6921be96b86b1p97, 0x1.9423165bc4444p100 }, ++ { 0x1.50b75c536f927p97, 0x1.7974e743dea3dp100 }, ++ { 0x1.39e9f7dcbe479p97, 0x1.607e9eacd105p100 }, ++ { 0x1.249ef1c3be817p97, 0x1.4924a74dec729p100 }, ++ { 0x1.10bd565b35393p97, 0x1.334d19e0c216p100 }, ++ { 0x1.fc5b8748842b2p96, 0x1.1edfa3c5f5ccap100 }, ++ { 0x1.d9b4a18a38642p96, 0x1.0bc56f1b54701p100 }, ++ { 0x1.b95cede6d524bp96, 0x1.f3d2185e047d9p99 }, ++ { 0x1.9b2df77a02225p96, 0x1.d26cb87945e87p99 }, ++ { 0x1.7f03b935e8e3ap96, 0x1.b334fac4b9f99p99 }, ++ { 0x1.64bc777824f0ep96, 0x1.96076f7918d1cp99 }, ++ { 0x1.4c389be9acb83p96, 0x1.7ac2d72fc2c63p99 }, ++ { 0x1.355a9387de78cp96, 0x1.614801550319ep99 }, ++ { 0x1.2006aeb6bc768p96, 0x1.4979ac8b28927p99 }, ++ { 0x1.0c23033e2a376p96, 0x1.333c68e2d0548p99 }, ++ { 0x1.f32ea02b55d23p95, 0x1.1e767bce37dd7p99 }, ++ { 0x1.d099c5c770f5ap95, 0x1.0b0fc5b6d05ap99 }, ++ { 0x1.b05cfe2e99435p95, 0x1.f1e3523b41d7dp98 }, ++ { 0x1.92508d0743fc9p95, 0x1.d00de6608effep98 }, ++ { 0x1.764f46cf19f9cp95, 0x1.b0778b7b3301bp98 }, ++ { 0x1.5c36679625a01p95, 0x1.92fb04ec0f6cfp98 }, ++ { 0x1.43e56c3e340a7p95, 0x1.77756ec9f78fap98 }, ++ { 0x1.2d3dee1869201p95, 0x1.5dc61922d5a06p98 }, ++ { 0x1.182380bd2f494p95, 0x1.45ce65699ff6dp98 }, ++ { 0x1.047b91fcb6491p95, 0x1.2f71a5f15997p98 }, ++ { 0x1.e45a9790460c1p94, 0x1.1a94ff571654fp98 }, ++ { 0x1.c242efeaca76p94, 0x1.071f4bbea09ecp98 }, ++ { 0x1.a284cb82c31cep94, 0x1.e9f1ff8ddd774p97 }, ++ { 0x1.84f7a1eb7f7f3p94, 0x1.c818223a202c7p97 }, ++ { 0x1.697595326d7dcp94, 0x1.a887bd2b4404dp97 }, ++ { 0x1.4fdb462549af1p94, 0x1.8b1a336c5eb6bp97 }, ++ { 0x1.3807ab51436a8p94, 0x1.6fab63324088ap97 }, ++ { 0x1.21dbea9108398p94, 0x1.56197e30205bap97 }, ++ { 0x1.0d3b35021d695p94, 0x1.3e44e45301b92p97 }, ++ { 0x1.f4154a787cc1bp93, 0x1.281000bfe4c3fp97 }, ++ { 0x1.d0623f4f4a28fp93, 0x1.135f28f2d50b4p97 }, ++ { 0x1.af2e69a26261p93, 0x1.00187dded5975p97 }, ++ { 0x1.904e0b3aa82a3p93, 0x1.dc479de0ef001p96 }, ++ { 0x1.73985278fa30ep93, 0x1.bad4fdad3caa1p96 }, ++ { 0x1.58e7298af87d9p93, 0x1.9baed3ed27ab8p96 }, ++ { 0x1.401708b7e64c6p93, 0x1.7ead9ce4285bbp96 }, ++ { 0x1.2906cb94eb40dp93, 0x1.63ac6b4edc88ep96 }, ++ { 0x1.139788f2dd663p93, 0x1.4a88be2a6390cp96 }, ++ { 0x1.ff58dab4f2a79p92, 0x1.332259185f1ap96 }, ++ { 0x1.da552fdd03043p92, 0x1.1d5b1f3793044p96 }, ++ { 0x1.b7f1f31b571b6p92, 0x1.0916f04b6e18bp96 }, ++ { 0x1.98006c2117e39p92, 0x1.ec77101de6926p95 }, ++ { 0x1.7a550f03b145bp92, 0x1.c960bf23153ep95 }, ++ { 0x1.5ec74662c5961p92, 0x1.a8bd20fc65ef7p95 }, ++ { 0x1.453141082302ap92, 0x1.8a61745ec7d1dp95 }, ++ { 0x1.2d6fc2c9e8bcp92, 0x1.6e25d0e756261p95 }, ++ { 0x1.1761f87a6dc3dp92, 0x1.53e4f7d1666cbp95 }, ++ { 0x1.02e94eb4ac8a5p92, 0x1.3b7c27a7ddb0ep95 }, ++ { 0x1.dfd296adef82ap91, 0x1.24caf2c32af14p95 }, ++ { 0x1.bc8ed301215ebp91, 0x1.0fb3186804d0fp95 }, ++ { 0x1.9bd5efd2c0f15p91, 0x1.f830c0bb41fd7p94 }, ++ { 0x1.7d79f2db2d4a5p91, 0x1.d3c0f1a91c846p94 }, ++ { 0x1.61500f5293f06p91, 0x1.b1e5acf351d87p94 }, ++ { 0x1.47306f04df3d6p91, 0x1.92712d259ce66p94 }, ++ { 0x1.2ef5ff0323b28p91, 0x1.7538c60a04476p94 }, ++ { 0x1.187e3fb74914dp91, 0x1.5a14b04b47879p94 }, ++ { 0x1.03a918225a966p91, 0x1.40dfd87456f4cp94 }, ++ { 0x1.e0b15822be4ep90, 0x1.2977b1172b9d5p94 }, ++ { 0x1.bce26a2fb7176p90, 0x1.13bc07e891491p94 }, ++ { 0x1.9bb1bc445c3c6p90, 0x1.ff1dbb4300811p93 }, ++ { 0x1.7cef42e9a617dp90, 0x1.d9a880f306bd8p93 }, ++ { 0x1.606e51e0a4963p90, 0x1.b6e45220b55ep93 }, ++ { 0x1.460560e841d79p90, 0x1.96a0b33f2c4dap93 }, ++ { 0x1.2d8dd47a40ad8p90, 0x1.78b07e9e924acp93 }, ++ { 0x1.16e3ca3d4393fp90, 0x1.5ce9ab1670dd2p93 }, ++ { 0x1.01e5e8edda47bp90, 0x1.4325167006bbp93 }, ++ { 0x1.dcea670907819p89, 0x1.2b3e53538ff3fp93 }, ++ { 0x1.b8e9bec48816dp89, 0x1.15137a7f44864p93 }, ++ { 0x1.97945aa1c9c35p89, 0x1.0084ff125639dp93 }, ++ { 0x1.78b88a4e7107bp89, 0x1.daeb0b7311ec7p92 }, ++ { 0x1.5c2827c986b62p89, 0x1.b7937d1c40c53p92 }, ++ { 0x1.41b858361b0fep89, 0x1.96d082f59ab06p92 }, ++ { 0x1.294150fb19119p89, 0x1.7872d9fa10aadp92 }, ++ { 0x1.129e20e732adcp89, 0x1.5c4e8e37bc7dp92 }, ++ { 0x1.fb58fa290d436p88, 0x1.423ac0df49a4p92 }, ++ { 0x1.d499229819bc6p88, 0x1.2a117230ad284p92 }, ++ { 0x1.b0c1a759f7739p88, 0x1.13af4f04f9998p92 }, ++ { 0x1.8f9bb6c075486p88, 0x1.fde703724e56p91 }, ++ { 0x1.70f4744735c2bp88, 0x1.d77f0c82e7641p91 }, ++ { 0x1.549cb0f7ef8e2p88, 0x1.b3ee02611d7ddp91 }, ++ { 0x1.3a68a8c1234e1p88, 0x1.92ff33023d5bdp91 }, ++ { 0x1.222fc469e8b8cp88, 0x1.7481a9e69f53fp91 }, ++ { 0x1.0bcc5fd30f1ddp88, 0x1.5847eda620959p91 }, ++ { 0x1.ee3728761897bp87, 0x1.3e27c1fcc74bdp91 }, ++ { 0x1.c7fa0c7e3bac7p87, 0x1.25f9ee0b923dcp91 }, ++ { 0x1.a4a56eb132a54p87, 0x1.0f9a0686532p91 }, ++ { 0x1.8401b5336a8ap87, 0x1.f5cc7718082bp90 }, ++ { 0x1.65db58e2358c1p87, 0x1.cf7e53d6a2ca5p90 }, ++ { 0x1.4a029a7ea7cd1p87, 0x1.ac0f5f3229372p90 }, ++ { 0x1.304b3d1961171p87, 0x1.8b498644847eap90 }, ++ { 0x1.188c45630dc53p87, 0x1.6cfa9bcca59dcp90 }, ++ { 0x1.029fbd8b92835p87, 0x1.50f411d4fd2cdp90 }, ++ { 0x1.dcc4fabf32f1cp86, 0x1.370ab8327af5ep90 }, ++ { 0x1.b767ecb334a7ep86, 0x1.1f167f88c6b6ep90 }, ++ { 0x1.94ec06c0ff29fp86, 0x1.08f24085d4597p90 }, ++ { 0x1.751977e5803d3p86, 0x1.e8f70e181d61ap89 }, ++ { 0x1.57bc950253825p86, 0x1.c324c20e337dcp89 }, ++ { 0x1.3ca58b816a87fp86, 0x1.a03261574b54ep89 }, ++ { 0x1.23a8197d2607ep86, 0x1.7fe903cdf5855p89 }, ++ { 0x1.0c9b4b0a6a16fp86, 0x1.6215c58da345p89 }, ++ { 0x1.eeb27891d2bb3p85, 0x1.46897d4b69fc6p89 }, ++ { 0x1.c77dbfc848866p85, 0x1.2d1877d731b7bp89 }, ++ { 0x1.a357936adf17bp85, 0x1.159a386b11517p89 }, ++ { 0x1.8203fa7992554p85, 0x1.ffd27ae9393cep88 }, ++ { 0x1.634b7f56b0a5cp85, 0x1.d7c593130dd0bp88 }, ++ { 0x1.46fada7e6a5fep85, 0x1.b2cd607c79bcfp88 }, ++ { 0x1.2ce2a3690576bp85, 0x1.90ae4d3405651p88 }, ++ { 0x1.14d707280e6cfp85, 0x1.71312dd1759e2p88 }, ++ { 0x1.fd5f08ad2b29ap84, 0x1.5422ef5d8949dp88 }, ++ { 0x1.d48d57f7718b7p84, 0x1.39544b0ecc957p88 }, ++ { 0x1.aef3ce0add578p84, 0x1.20997f73e73ddp88 }, ++ { 0x1.8c52800f939c8p84, 0x1.09ca0eaacd277p88 }, ++ { 0x1.6c6e61e57bf9bp84, 0x1.e9810295890ecp87 }, ++ { 0x1.4f10e8ebc44a9p84, 0x1.c2b45b5aa4a1dp87 }, ++ { 0x1.3407b59d72a5bp84, 0x1.9eee068fa7596p87 }, ++ { 0x1.1b2443858c0a1p84, 0x1.7df2b399c10a8p87 }, ++ { 0x1.043b9f1621ff3p84, 0x1.5f8b87a31bd85p87 }, ++ { 0x1.de4c41eb96b45p83, 0x1.4385c96e9a2d9p87 }, ++ { 0x1.b77e5cbd5d147p83, 0x1.29b2933ef4cbcp87 }, ++ { 0x1.93c9fc62bfb11p83, 0x1.11e68a6378f8ap87 }, ++ { 0x1.72f0c4c8e9bffp83, 0x1.f7f338086a86bp86 }, ++ { 0x1.54b92affb11afp83, 0x1.cf8d7d9ce040ap86 }, ++ { 0x1.38ee17b150182p83, 0x1.aa577251ae485p86 }, ++ { 0x1.1f5e908f70e0cp83, 0x1.8811d739efb5fp86 }, ++ { 0x1.07dd6833bb38p83, 0x1.68823e52970bep86 }, ++ { 0x1.e481e7f6ac4bcp82, 0x1.4b72ae68e8b4cp86 }, ++ { 0x1.bcc58edad5559p82, 0x1.30b14dbe876bcp86 }, ++ { 0x1.983ee9896d582p82, 0x1.181012ef8661p86 }, ++ { 0x1.76aca47764427p82, 0x1.01647ba798745p86 }, ++ { 0x1.57d287836bd3dp82, 0x1.d90e917701675p85 }, ++ { 0x1.3b79118c097a1p82, 0x1.b2a87e86d0c8ap85 }, ++ { 0x1.216d1b97279a9p82, 0x1.8f53dcb377293p85 }, ++ { 0x1.097f82fc04025p82, 0x1.6ed2f2515e933p85 }, ++ { 0x1.e709b415656dp81, 0x1.50ecc9ed47f19p85 }, ++ { 0x1.beaa3d6c15504p81, 0x1.356cd5ce7799ep85 }, ++ { 0x1.9996ed9b83967p81, 0x1.1c229a587ab78p85 }, ++ { 0x1.778be2bd9795bp81, 0x1.04e15ecc7f3f6p85 }, ++ { 0x1.584a99af8a842p81, 0x1.deffc7e6a6017p84 }, ++ { 0x1.3b99832cbefddp81, 0x1.b7b040832f31p84 }, ++ { 0x1.2143a112d0466p81, 0x1.938e021f36d76p84 }, ++ { 0x1.09182b326b229p81, 0x1.7258610b3b233p84 }, ++ { 0x1.e5d47637f5db5p80, 0x1.53d3bfc82a909p84 }, ++ { 0x1.bd20fcc3b76d7p80, 0x1.37c92babdc2fdp84 }, ++ { 0x1.97c9dda748fc7p80, 0x1.1e06010120f6ap84 }, ++ { 0x1.7589207e91ad1p80, 0x1.065b9616170d4p84 }, ++ { 0x1.561e669aa7fdbp80, 0x1.e13dd96b3753bp83 }, ++ { 0x1.394e7a2ac9fc7p80, 0x1.b950d32467392p83 }, ++ { 0x1.1ee2e61eccc99p80, 0x1.94a72263259a5p83 }, ++ { 0x1.06a996198f06fp80, 0x1.72fd93e036cdcp83 }, ++ { 0x1.e0e8fbad2703ep79, 0x1.54164576929abp83 }, ++ { 0x1.b8328ee330ae9p79, 0x1.37b83c521fe96p83 }, ++ { 0x1.92e21013a767p79, 0x1.1daf033182e96p83 }, ++ { 0x1.70aff489136ebp79, 0x1.05ca50205d26ap83 }, ++ { 0x1.515a7c77fab48p79, 0x1.dfbb6235639fap82 }, ++ { 0x1.34a53ce0bbb6fp79, 0x1.b7807e294781fp82 }, ++ { 0x1.1a58b2b09fdcbp79, 0x1.9298add70a734p82 }, ++ { 0x1.0241de6c31e5bp79, 0x1.70beaf9c7ffb6p82 }, ++ { 0x1.d863cf753825cp78, 0x1.51b2cd6709222p82 }, ++ { 0x1.affb906d0ae09p78, 0x1.353a6cf7f7fffp82 }, ++ { 0x1.8afbf9e9520c2p78, 0x1.1b1fa8cbe84a7p82 }, ++ { 0x1.691c7c768becep78, 0x1.0330f0fd69921p82 }, ++ { 0x1.4a1a79df39cdep78, 0x1.da81670f96f9bp81 }, ++ { 0x1.2db8ca9009091p78, 0x1.b24a16b4d09aap81 }, ++ { 0x1.13bf4cb384e4ap78, 0x1.8d6eeb6efdbd6p81 }, ++ { 0x1.f7f4f88751db4p77, 0x1.6ba91ac734786p81 }, ++ { 0x1.cc7626bced452p77, 0x1.4cb7966770ab5p81 }, ++ { 0x1.a4ab6470c1c5cp77, 0x1.305e9721d0981p81 }, ++ { 0x1.80451c2811052p77, 0x1.1667311fff70ap81 }, ++ { 0x1.5efa4d64f59f6p77, 0x1.fd3de10d62855p80 }, ++ { 0x1.40880373ed74p77, 0x1.d1aefbcd48d0cp80 }, ++ { 0x1.24b0d7368076ep77, 0x1.a9cc93c25aca9p80 }, ++ { 0x1.0b3c7b0d960fp77, 0x1.85487ee3ea735p80 }, ++ { 0x1.e7eea02e4ed88p76, 0x1.63daf8b4b1e0cp80 }, ++ { 0x1.bd6408059b696p76, 0x1.45421e69a6ca1p80 }, ++ { 0x1.96826d9e90341p76, 0x1.294175802d99ap80 }, ++ { 0x1.72fa4fa12d516p76, 0x1.0fa17bf41068fp80 }, ++ { 0x1.5282d2d5803fep76, 0x1.f05e82aae2bb9p79 }, ++ { 0x1.34d935f1be064p76, 0x1.c578101b29058p79 }, ++ { 0x1.19c050c56d0d7p76, 0x1.9e39dc5dd2f7cp79 }, ++ { 0x1.01001dd9c7ccep76, 0x1.7a553a728bbf2p79 }, ++ { 0x1.d4ca9b634ecbap75, 0x1.5982008db1304p79 }, ++ { 0x1.ab81c5c80cf39p75, 0x1.3b7e00422e51bp79 }, ++ { 0x1.85cfacb7477f2p75, 0x1.200c898d9ee3ep79 }, ++ { 0x1.6365862923eb9p75, 0x1.06f5f7eb65a56p79 }, ++ { 0x1.43fb317b5dc37p75, 0x1.e00e9148a1d25p78 }, ++ { 0x1.274ea96044bd7p75, 0x1.b623734024e92p78 }, ++ { 0x1.0d23817479c67p75, 0x1.8fd4e01891bf8p78 }, ++ { 0x1.ea84dd159259p74, 0x1.6cd44c7470d89p78 }, ++ { 0x1.bef1b1a12823ep74, 0x1.4cd9c04158cd7p78 }, ++ { 0x1.9730edfda64acp74, 0x1.2fa34bf5c8344p78 }, ++ { 0x1.72ede3b7eaa25p74, 0x1.14f4890ff2461p78 }, ++ { 0x1.51db1ec3a3087p74, 0x1.f92c49dfa4df5p77 }, ++ { 0x1.33b1c9d1576ecp74, 0x1.ccaaea71ab0dfp77 }, ++ { 0x1.18311f8a03acap74, 0x1.a40829f001197p77 }, ++ { 0x1.fe3bcf4629feap73, 0x1.7eef13b59e96cp77 }, ++ { 0x1.d083fda665164p73, 0x1.5d11e1a252bf5p77 }, ++ { 0x1.a6d7d18831888p73, 0x1.3e296303b2297p77 }, ++ { 0x1.80dcd6603df1bp73, 0x1.21f47009f43cep77 }, ++ { 0x1.5e4062d5b6a4ep73, 0x1.083768c5e4542p77 }, ++ { 0x1.3eb6ef47c2758p73, 0x1.e1777d831265fp76 }, ++ { 0x1.21fb7a81c5444p73, 0x1.b69f10b0191b5p76 }, ++ { 0x1.07cefb734d68bp73, 0x1.8f8a3a05b5b53p76 }, ++ { 0x1.dfefbdb19ac7ep72, 0x1.6be573c40c8e7p76 }, ++ { 0x1.b4831fb12344p72, 0x1.4b645ba991fdbp76 }, ++ { 0x1.8cf81557d20b6p72, 0x1.2dc119095729fp76 }, ++ { 0x1.68f6f0feb4755p72, 0x1.12bbcfa4d62dep76 }, ++ { 0x1.482fa78c40635p72, 0x1.f4343c7d504b9p75 }, ++ { 0x1.2a59289a484fbp72, 0x1.c74d4fe1e0e8bp75 }, ++ { 0x1.0f30c4d0be5cp72, 0x1.9e614ecbf4af6p75 }, ++ { 0x1.ecf3428c48d4fp71, 0x1.791716475420cp75 }, ++ { 0x1.bff86d9ec8499p71, 0x1.571d34563050ap75 }, ++ { 0x1.970bb87f4ae14p71, 0x1.3829407a207d8p75 }, ++ { 0x1.71d0b55b79b86p71, 0x1.1bf74244aed5ap75 }, ++ { 0x1.4ff315d036fbdp71, 0x1.024924c7520d1p75 }, ++ { 0x1.3125f6a3d257p71, 0x1.d5cc6ba567f29p74 }, ++ { 0x1.15233ae8815f2p71, 0x1.ab3560167ccaap74 }, ++ { 0x1.f755ea760487dp70, 0x1.846e9dda7a163p74 }, ++ { 0x1.c905bbd9ab5a6p70, 0x1.6121d7db32bddp74 }, ++ { 0x1.9eebaa0589b4ep70, 0x1.410047ead6894p74 }, ++ { 0x1.78a6de0f41b89p70, 0x1.23c2090cdde78p74 }, ++ { 0x1.55df1790f2f61p70, 0x1.09257fca001cp74 }, ++ { 0x1.3643ec463a3cfp70, 0x1.e1dd9ec677783p73 }, ++ { 0x1.198c18435598dp70, 0x1.b5ceb5a13221bp73 }, ++ { 0x1.fee9bab9f4e14p69, 0x1.8dbaa11de2037p73 }, ++ { 0x1.cf82e0eb6196bp69, 0x1.694680a9a3ee6p73 }, ++ { 0x1.a474e7029a919p69, 0x1.481f73b3778e8p73 }, ++ { 0x1.7d5af6513e2bep69, 0x1.29f9e7d8fd094p73 }, ++ { 0x1.59d93e1d8f57dp69, 0x1.0e90f64b5b103p73 }, ++ { 0x1.399c279e4699ap69, 0x1.eb4b9e47b58c9p72 }, ++ { 0x1.1c579bbca6885p69, 0x1.bdfe62f60dd7p72 }, ++ { 0x1.01c659160612dp69, 0x1.94d1de5c4576fp72 }, ++ { 0x1.d352b1ae2694p68, 0x1.6f66f6ab90c3cp72 }, ++ { 0x1.a78e8252c204dp68, 0x1.4d67050b31c2ap72 }, ++ { 0x1.7fd7c80f3410ep68, 0x1.2e8318008cf89p72 }, ++ { 0x1.5bcf92cc55d86p68, 0x1.1273463a1589bp72 }, ++ { 0x1.3b1f876b10da7p68, 0x1.f1ec20afad0e2p71 }, ++ { 0x1.1d791bb1324a1p68, 0x1.c39fa0d4a5a2bp71 }, ++ { 0x1.0294e37abcee8p68, 0x1.99946bf7e02a1p71 }, ++ { 0x1.d463db5fa3c13p67, 0x1.73679b24aeb9bp71 }, ++ { 0x1.a82a5f4047a5bp67, 0x1.50bf2558ab78fp71 }, ++ { 0x1.8011fb05fe09p67, 0x1.314916abfa1eap71 }, ++ { 0x1.5bb91decf8a58p67, 0x1.14bad9006f53bp71 }, ++ { 0x1.3ac71ce35c1d3p67, 0x1.f5a1196b5bb2ep70 }, ++ { 0x1.1ceb656955c59p67, 0x1.c698e001f6d3p70 }, ++ { 0x1.01dcc2acf7755p67, 0x1.9beca74b0f147p70 }, ++ { 0x1.d2b166911c178p66, 0x1.753637caac6d9p70 }, ++ { 0x1.a6459c5b11342p66, 0x1.5218993857afcp70 }, ++ { 0x1.7e086accc805dp66, 0x1.323f3f19cff3ep70 }, ++ { 0x1.59962aef547b3p66, 0x1.155d47fdb9c94p70 }, ++ { 0x1.3894608650edep66, 0x1.f6599b70323cap69 }, ++ { 0x1.1ab0e4d284f44p66, 0x1.c6dc8a4bb3ba6p69 }, ++ { 0x1.ff4248ebb8299p65, 0x1.9bcfd83a431e9p69 }, ++ { 0x1.ce42dd8e4fa23p65, 0x1.74ca889bbacd5p69 }, ++ { 0x1.a1e8aa1400997p65, 0x1.516d33e26c04p69 }, ++ { 0x1.79c430435a7fcp65, 0x1.31612a7ef535fp69 }, ++ { 0x1.557046eb39249p65, 0x1.1457ab75c2489p69 }, ++ { 0x1.349127b59b217p65, 0x1.f41259c9550cp68 }, ++ { 0x1.16d392dff5104p65, 0x1.c46969ca99a2ep68 }, ++ { 0x1.f7d80dc993f2fp64, 0x1.993e82b76e726p68 }, ++ { 0x1.c72c149cb214bp64, 0x1.72267ac1b25ap68 }, ++ { 0x1.9b270c24cc8fap64, 0x1.4ec0062aeeb78p68 }, ++ { 0x1.73585df7b6643p64, 0x1.2eb2d18a2081bp68 }, ++ { 0x1.4f59f9910367ep64, 0x1.11aeb0b11d1a1p68 }, ++ { 0x1.2ecf5b7f6abe3p64, 0x1.eed5c0bbf1061p67 }, ++ { 0x1.1164ab45aa235p64, 0x1.bf4ab21b4f3fp67 }, ++ { 0x1.ed9bdbc6f1b0ap63, 0x1.944462d4d5991p67 }, ++ { 0x1.bd8c96533b39bp63, 0x1.6d561de54f6a1p67 }, ++ { 0x1.921ec84d5860ep63, 0x1.4a1d472804fc8p67 }, ++ { 0x1.6ae172414cebap63, 0x1.2a406e25fcb44p67 }, ++ { 0x1.476e3b661be8cp63, 0x1.0d6e7662dda9dp67 }, ++ { 0x1.276873924f0b4p63, 0x1.e6bba6770e22dp66 }, ++ { 0x1.0a7c2c9322f59p63, 0x1.b797ab2ba22d2p66 }, ++ { 0x1.e0bad18c4e37dp62, 0x1.8cf813910fdcdp66 }, ++ { 0x1.b18eba0be4d24p62, 0x1.666f488db6e0ap66 }, ++ { 0x1.86f7884e1caadp62, 0x1.4399f7770045fp66 }, ++ { 0x1.608484d592328p62, 0x1.241e1ebbbf4ecp66 }, ++ { 0x1.3dcfaee52a8f5p62, 0x1.07aa30ce6a5ap66 }, ++ { 0x1.1e7cbac093f27p62, 0x1.dbe8969a24c6fp65 }, ++ { 0x1.023827dc88ed9p62, 0x1.ad7301258d788p65 }, ++ { 0x1.d16cd999791c3p61, 0x1.837a640fa9d3dp65 }, ++ { 0x1.a3666de0788bp61, 0x1.5d90f358d61f6p65 }, ++ { 0x1.79e17816df1e8p61, 0x1.3b5342f7be9cp65 }, ++ { 0x1.546e385224d1p61, 0x1.1c674ecd152d3p65 }, ++ { 0x1.32a7a483e977bp61, 0x1.007b997a0b531p65 }, ++ { 0x1.1432649c86c4dp61, 0x1.ce8cc007a6432p64 }, ++ { 0x1.f177ce0bd5836p60, 0x1.a109c0bccbc39p64 }, ++ { 0x1.bff3166bc36eep60, 0x1.77f5624913c3ap64 }, ++ { 0x1.934fc0975fb3p60, 0x1.52e251d5d3b1fp64 }, ++ { 0x1.6b13ebb9a5ad4p60, 0x1.316da780bc4d9p64 }, ++ { 0x1.46d17a80cc174p60, 0x1.133deb1d3526p64 }, ++ { 0x1.2624f3a0a887p60, 0x1.f00460b24acf8p63 }, ++ { 0x1.08b47d7733cb6p60, 0x1.bee2903d584f9p63 }, ++ { 0x1.dc5de496b181p59, 0x1.92920a7c80e26p63 }, ++ { 0x1.ac9615b3c9fd7p59, 0x1.6a9b25345c773p63 }, ++ { 0x1.818d3a356669ep59, 0x1.4691b26b9c82fp63 }, ++ { 0x1.5acbdab2ed713p59, 0x1.2613e9610f6d1p63 }, ++ { 0x1.37e61fd4c0fep59, 0x1.08c969adf0beap63 }, ++ { 0x1.187ab3d71db11p59, 0x1.dcc4ac4f59be5p62 }, ++ { 0x1.f8637ea4e52acp58, 0x1.ad2d0a9a18288p62 }, ++ { 0x1.c577fd709b099p58, 0x1.82498a7cc94b9p62 }, ++ { 0x1.97a3dc62119c8p58, 0x1.5ba462dee8a02p62 }, ++ { 0x1.6e66137bb7ccap58, 0x1.38d330d8806ap62 }, ++ { 0x1.494a3f6a9a70ep58, 0x1.1975e0627306cp62 }, ++ { 0x1.27e767bb79ea2p58, 0x1.fa6b5ee8f3088p61 }, ++ { 0x1.09dee32687729p58, 0x1.c78892308bd9p61 }, ++ { 0x1.ddb6ae2f39381p57, 0x1.99b5ec6741cb3p61 }, ++ { 0x1.ad1f9fba4b2abp57, 0x1.7073c400e10dcp61 }, ++ { 0x1.816dde4c11ca3p57, 0x1.4b4ee0b3a84d6p61 }, ++ { 0x1.5a245d5e5289cp57, 0x1.29df4862ac231p61 }, ++ { 0x1.36d26a686daafp57, 0x1.0bc7294e0cbafp61 }, ++ { 0x1.171277cbbce9cp57, 0x1.e163bd8df864p60 }, ++ { 0x1.f5120b45c00e6p56, 0x1.b0a61bce91993p60 }, ++ { 0x1.c1c74b30d0bbp56, 0x1.84cbb00f925fp60 }, ++ { 0x1.93b02e5cf0324p56, 0x1.5d5841ce6cb73p60 }, ++ { 0x1.6a46f43f3118cp56, 0x1.39dbcd485dd07p60 }, ++ { 0x1.45132973bb79bp56, 0x1.19f153b38a108p60 }, ++ { 0x1.23a85891dc72bp56, 0x1.fa7b9159fc471p59 }, ++ { 0x1.05a4dba466c4ep56, 0x1.c6de3429e31fap59 }, ++ { 0x1.d561964307dc4p55, 0x1.98769faac8a1bp59 }, ++ { 0x1.a4fa0f13737e8p55, 0x1.6ebf82977acfp59 }, ++ { 0x1.7984b636ad1bep55, 0x1.4940bc89fa5aap59 }, ++ { 0x1.5281628cb373ap55, 0x1.278e135bcf0a4p59 }, ++ { 0x1.2f7cc38bc628dp55, 0x1.0946088b6f8edp59 }, ++ { 0x1.100f1aef8eaf5p55, 0x1.dc21972b9e9f4p58 }, ++ { 0x1.e7b62ce66acdep54, 0x1.ab3e8cfada51ap58 }, ++ { 0x1.b5198cf325114p54, 0x1.7f5483f729c27p58 }, ++ { 0x1.87b15da6677afp54, 0x1.57e33e2b1c6dap58 }, ++ { 0x1.5ef5de2e68985p54, 0x1.3477480d89e25p58 }, ++ { 0x1.3a6d00852a688p54, 0x1.14a8b54629fb2p58 }, ++ { 0x1.19a90b14f53afp54, 0x1.f033fa073d52p57 }, ++ { 0x1.f88eba04114cbp53, 0x1.bcede5acc0d4p57 }, ++ { 0x1.c3dea36b87937p53, 0x1.8ee7b29d0b081p57 }, ++ { 0x1.94a28136fa731p53, 0x1.659917bbb6632p57 }, ++ { 0x1.6a4b2c9663fa1p53, 0x1.40877b79cd868p57 }, ++ { 0x1.44580945b8452p53, 0x1.1f44979177348p57 }, ++ { 0x1.22558f1aa9f03p53, 0x1.016d3f035816p57 }, ++ { 0x1.03dbf8db89298p53, 0x1.cd508600d0ba8p56 }, ++ { 0x1.d11c2965639f6p52, 0x1.9d4ae77a21604p56 }, ++ { 0x1.a03065db54a4bp52, 0x1.723974e9529d8p56 }, ++ { 0x1.745e6013d8cf3p52, 0x1.4b9a944f57915p56 }, ++ { 0x1.4d1f2eb8531p52, 0x1.28f9c9b769ee3p56 }, ++ { 0x1.29f9b7c4f56dfp52, 0x1.09ee66b6e99e9p56 }, ++ { 0x1.0a814a1dfc5edp52, 0x1.dc34b6999ff72p55 }, ++ { 0x1.dca8b63e38fa9p51, 0x1.aa5249b4cca57p55 }, ++ { 0x1.aa36c9242f8bcp51, 0x1.7d9db080918bap55 }, ++ { 0x1.7d0fbfa6c3c19p51, 0x1.558e88e8945efp55 }, ++ { 0x1.54a6b679dd96fp51, 0x1.31aa564e92066p55 }, ++ { 0x1.307d4e71272d7p51, 0x1.11831a9c3763dp55 }, ++ { 0x1.1022313b11381p51, 0x1.e96c265c21fbfp54 }, ++ { 0x1.e65f78e13edcdp50, 0x1.b5d52c19374fep54 }, ++ { 0x1.b2959e487c93fp50, 0x1.87a2188252d5fp54 }, ++ { 0x1.84436cf62b6f8p50, 0x1.5e440cc8caaf9p54 }, ++ { 0x1.5ad66c67f3f63p50, 0x1.393ad199301dep54 }, ++ { 0x1.35cb549c616ebp50, 0x1.18135a0647102p54 }, ++ { 0x1.14ac7e9322a1ap50, 0x1.f4ccd98eab06bp53 }, ++ { 0x1.ee20fae75a2c5p49, 0x1.bfaedff2748c1p53 }, ++ { 0x1.b931b883c77f2p49, 0x1.9026a7e3c9538p53 }, ++ { 0x1.89e1f8e1d4be6p49, 0x1.659f3419269eep53 }, ++ { 0x1.5f9a24050e89fp49, 0x1.3f92e9472ca4cp53 }, ++ { 0x1.39d2746cbe57fp49, 0x1.1d89fb6602df9p53 }, ++ { 0x1.18115431b6c4ap49, 0x1.fe32077e095c4p52 }, ++ { 0x1.f3d3ca19edf64p48, 0x1.c7bf775863df5p52 }, ++ { 0x1.bdf55dd9bdcep48, 0x1.970fb0b5580dcp52 }, ++ { 0x1.8dd8e25d2255dp48, 0x1.6b88087e4af9fp52 }, ++ { 0x1.62e225ebca19p48, 0x1.449de67f2c6b2p52 }, ++ { 0x1.3c855ef212badp48, 0x1.21d51dc348d4dp52 }, ++ { 0x1.1a4576cd5cddcp48, 0x1.02be7023a443ep52 }, ++ { 0x1.f765035c713d8p47, 0x1.cdec7155697e1p51 }, ++ { 0x1.c0d0bdeb46ae2p47, 0x1.9c4671c1a6e3cp51 }, ++ { 0x1.901afbd3819bep47, 0x1.6feb0af26f865p51 }, ++ { 0x1.64a386137b955p47, 0x1.484b1e63b3be4p51 }, ++ { 0x1.3ddb15521ce49p47, 0x1.24e68a1458bd7p51 }, ++ { 0x1.1b418ba2217c6p47, 0x1.054a9a7c2f05ap51 }, ++ { 0x1.f8c8bad8e2a2p46, 0x1.d2214ad33ca5ep50 }, ++ { 0x1.c1ba4950b8f4fp46, 0x1.9fb9933adac68p50 }, ++ { 0x1.90a0b40dd690cp46, 0x1.72b99eccc462ep50 }, ++ { 0x1.64d860502b279p46, 0x1.4a8e4dbe3539cp50 }, ++ { 0x1.3dcf1aadc099dp46, 0x1.26b4018ef81f7p50 }, ++ { 0x1.1b02414a73357p46, 0x1.06b4fe82cc6aep50 }, ++ { 0x1.f7fa3e4bec2aep45, 0x1.d44feffb34893p49 }, ++ { 0x1.c0aee6d6b1406p45, 0x1.a15d86bb23572p49 }, ++ { 0x1.8f684065398bfp45, 0x1.73ea5ac0d71a9p49 }, ++ { 0x1.637ff9397e989p45, 0x1.4b5fdd0f567fap49 }, ++ { 0x1.3c618d3c706ebp45, 0x1.2737769828878p49 }, ++ { 0x1.1988625955723p45, 0x1.06f8da87263cep49 }, ++ { 0x1.f4fc2f6d50e41p44, 0x1.d4710a9e149edp48 }, ++ { 0x1.bdb204ff1cda3p44, 0x1.a12cc7b1bf616p48 }, ++ { 0x1.8c75a6fa17116p44, 0x1.73793d6253bd7p48 }, ++ { 0x1.609ec277b8703p44, 0x1.4abd0af44c7f8p48 }, ++ { 0x1.399725d96eb63p44, 0x1.266f2e981ccfbp48 }, ++ { 0x1.16d8d1241b86bp44, 0x1.06154a07d21a2p48 }, ++ { 0x1.efd875a51d28dp43, 0x1.d2842b40e25fp47 }, ++ { 0x1.b8cd873c4de72p43, 0x1.9f27fa465d061p47 }, ++ { 0x1.87d2a89e5ac65p43, 0x1.7167c3937ded9p47 }, ++ { 0x1.5c3e42539c769p43, 0x1.48a7fb96552cap47 }, ++ { 0x1.35791e04cd29fp43, 0x1.245dcbaa25b1bp47 }, ++ { 0x1.12fc6cdafd10dp43, 0x1.040d4ab2de626p47 }, ++ { 0x1.e8a0077a1ed47p42, 0x1.ce8fcb8dadc2cp46 }, ++ { 0x1.b2118f75a4eb7p42, 0x1.9b55e7c11d9e6p46 }, ++ { 0x1.818e8b1c2616fp42, 0x1.6dbce02ec5c77p46 }, ++ { 0x1.566cdf4525ebp42, 0x1.4527acab6dfebp46 }, ++ { 0x1.3014fd204bc71p42, 0x1.210a3ddcb4706p46 }, ++ { 0x1.0dffe0bfc0c74p42, 0x1.00e7aba6527c9p46 }, ++ { 0x1.df6a8d5e14f11p41, 0x1.c8a12a152d814p45 }, ++ { 0x1.a9942579915cdp41, 0x1.95c35893651c9p45 }, ++ { 0x1.79bdc576e403ap41, 0x1.6884d52cc9914p45 }, ++ { 0x1.4f3d9114d799bp41, 0x1.4047ce663f641p45 }, ++ { 0x1.297c4e6eb62fcp41, 0x1.1c7f9c74f3e7cp45 }, ++ { 0x1.07f35ef1a4fcp41, 0x1.f95dcee779f74p44 }, ++ { 0x1.d455e0a3b0d94p40, 0x1.c0cc007cc808ep44 }, ++ { 0x1.9f70bf04a77cep40, 0x1.8e82cd2a6133cp44 }, ++ { 0x1.707990a8defefp40, 0x1.61d0ef76712e4p44 }, ++ { 0x1.46c779ebb14aep40, 0x1.3a1882865d26ep44 }, ++ { 0x1.21c4420bc9879p40, 0x1.16cce86450b2p44 }, ++ { 0x1.00ea48df1e7fbp40, 0x1.eee1d41e1e516p43 }, ++ { 0x1.c7856a7693627p39, 0x1.b72a1658393d4p43 }, ++ { 0x1.93c7abef59a2cp39, 0x1.85ac17b553c4fp43 }, ++ { 0x1.65df602b1e0ffp39, 0x1.59b72775450f3p43 }, ++ { 0x1.3d256a5ee461dp39, 0x1.32ae03812fcp43 }, ++ { 0x1.19053bac5f645p39, 0x1.1004b9cd4bae6p43 }, ++ { 0x1.f1f58fe66e142p38, 0x1.e27d88d5289bfp42 }, ++ { 0x1.b9216793da422p38, 0x1.abdab3fb224cep42 }, ++ { 0x1.86bd6adace04ep38, 0x1.7b5bd9f52a89ep42 }, ++ { 0x1.5a104640aeb74p38, 0x1.5051a941eb13p42 }, ++ { 0x1.32755417b50ddp38, 0x1.2a20366f6a0dep42 }, ++ { 0x1.0f5a5274f5c45p38, 0x1.083cdb1163405p42 }, ++ { 0x1.e07ab300dc4b9p37, 0x1.d458a013d18b4p41 }, ++ { 0x1.a956163a49613p37, 0x1.9f01f97b2e043p41 }, ++ { 0x1.7879eb52380edp37, 0x1.6fb2eaf7d8102p41 }, ++ { 0x1.4d30488394e18p37, 0x1.45be480207b14p41 }, ++ { 0x1.26d7af2869fc5p37, 0x1.208a2b041836ep41 }, ++ { 0x1.04e0c593552f5p37, 0x1.ff1ba8cbc9c8dp40 }, ++ { 0x1.cd98a274acae3p36, 0x1.c49f8a8ec4aebp40 }, ++ { 0x1.9852d44d7528bp36, 0x1.90c81ede57558p40 }, ++ { 0x1.6927c2c3e497p36, 0x1.62d5a948b6358p40 }, ++ { 0x1.3f65a98c177c9p36, 0x1.3a1de0952fd2bp40 }, ++ { 0x1.1a6ed66936eeap36, 0x1.16098d4b94692p40 }, ++ { 0x1.f36ed3084aa81p35, 0x1.ec24d6a8bc072p39 }, ++ { 0x1.b986ab7ebdd54p35, 0x1.b3828ebcc128bp39 }, ++ { 0x1.864933f3c0573p35, 0x1.8158a3038115ep39 }, ++ { 0x1.58f359f0c4e8fp35, 0x1.54eb3e9a3e72bp39 }, ++ { 0x1.30d82cb8a968cp35, 0x1.2d93b0174f61ap39 }, ++ { 0x1.0d5e5f59de7c1p35, 0x1.0abe0d45fd5c2p39 }, ++ { 0x1.dbfc240ab5f81p34, 0x1.d7ce33a39bd89p38 }, ++ { 0x1.a47db588b15cfp34, 0x1.a134d30d655e4p38 }, ++ { 0x1.736c0d0a31187p34, 0x1.70e16f315ef4p38 }, ++ { 0x1.480a1879e8f57p34, 0x1.461cda38e2783p38 }, ++ { 0x1.21b0591ce1cfdp34, 0x1.2044a2faebb7bp38 }, ++ { 0x1.ff94e3fca1752p33, 0x1.fd91813f8cc8cp37 }, ++ { 0x1.c3a9f9558ffap33, 0x1.c2530177987fep37 }, ++ { 0x1.8eb738c76b2f2p33, 0x1.8deb61106f334p37 }, ++ { 0x1.5fee91a43fef1p33, 0x1.5f91f55e86346p37 }, ++ { 0x1.3699940a6a811p33, 0x1.3694e7b13691bp37 }, ++ { 0x1.1216c07263dep33, 0x1.1256a18de488bp37 }, ++ { 0x1.e3ae49fef5535p32, 0x1.e49705a5ebd5fp36 }, ++ { 0x1.aab87fb8e4441p32, 0x1.abefb3186e784p36 }, ++ { 0x1.786c3dca158c4p32, 0x1.79dc285401b7dp36 }, ++ { 0x1.4c036b7451223p32, 0x1.4d9a4f359ba1ep36 }, ++ { 0x1.24cec8453db03p32, 0x1.267e46fd85893p36 }, ++ { 0x1.02334e92993b9p32, 0x1.03efdea0a0506p36 }, ++ { 0x1.c74fc41217dfbp31, 0x1.cad0afbb569b1p35 }, ++ { 0x1.9166837399532p31, 0x1.94e0d5e7a8744p35 }, ++ { 0x1.61d46c11dd916p31, 0x1.653d077d9eefp35 }, ++ { 0x1.37dbe7711fcd4p31, 0x1.3b2a639494566p35 }, ++ { 0x1.12d55c1e73c65p31, 0x1.16038b4af0a0ep35 }, ++ { 0x1.e4594b115943bp30, 0x1.ea6c598920c48p34 }, ++ { 0x1.aabdabdb93484p30, 0x1.b081aaf25ade1p34 }, ++ { 0x1.77f073eb945dfp30, 0x1.7d62079a4e4a6p34 }, ++ { 0x1.4b252d0bc8bebp30, 0x1.5042e1a8664edp34 }, ++ { 0x1.23a7345c57ccap30, 0x1.287117d29a9e6p34 }, ++ { 0x1.00d6f8a57f06ep30, 0x1.054e44f8ee735p34 }, ++ { 0x1.c44f136cf3bd8p29, 0x1.cc9cbc5fe04a8p33 }, ++ { 0x1.8e38df2790b7ap29, 0x1.95eb2cb828067p33 }, ++ { 0x1.5e8f828661e21p29, 0x1.65acfefcd0029p33 }, ++ { 0x1.3490e7e2bc31cp29, 0x1.3b20c56ad84f5p33 }, ++ { 0x1.0f91b7ff9bb2ap29, 0x1.159b917beb87ap33 }, ++ { 0x1.ddf56913a541ep28, 0x1.e90cb5cac7057p32 }, ++ { 0x1.a48cc1b8a7bc7p28, 0x1.aeb7659e5f7efp32 }, ++ { 0x1.71fde01e2ca8cp28, 0x1.7b4b752e86e5fp32 }, ++ { 0x1.4578e0b906b32p28, 0x1.4df8ace15322ep32 }, ++ { 0x1.1e4659a2a2156p28, 0x1.26072a17961ap32 }, ++ { 0x1.f788fc218597bp27, 0x1.02d48c75e7d9bp32 }, ++ { 0x1.bac92daac0b9dp27, 0x1.c7a2ecd5f05ap31 }, ++ { 0x1.85518c3484796p27, 0x1.90feaede7f2aep31 }, ++ { 0x1.56441b55bfff1p27, 0x1.60dcef1cedc3ap31 }, ++ { 0x1.2cdd203ab43a1p27, 0x1.36787980e7387p31 }, ++ { 0x1.08700c199ad4fp27, 0x1.112346e13dd7ep31 }, ++ { 0x1.d0c9857c390f3p26, 0x1.e087915129a98p30 }, ++ { 0x1.986a650394095p26, 0x1.a6a5096da5b7dp30 }, ++ { 0x1.66d6688315ad6p26, 0x1.73aff07c7874ep30 }, ++ { 0x1.3b3d55ebd8547p26, 0x1.46d572e10e216p30 }, ++ { 0x1.14e7b714e7093p26, 0x1.1f5ba17e5a90bp30 }, ++ { 0x1.e667d9a8bcd9ep25, 0x1.f93d0d186fbcdp29 }, ++ { 0x1.ab2733e383ad8p25, 0x1.bc1b22cec72bp29 }, ++ { 0x1.7712b76c8c7f6p25, 0x1.86529e9df069cp29 }, ++ { 0x1.494d8e1d4fc61p25, 0x1.5702d052bf73ap29 }, ++ { 0x1.2115447c6627dp25, 0x1.2d65aee08874cp29 }, ++ { 0x1.fb7d503fc65c8p24, 0x1.08ccb49580d43p29 }, ++ { 0x1.bd660913b938cp24, 0x1.d13c32a98512bp28 }, ++ { 0x1.86db66e158524p24, 0x1.98a4bfd5a5fadp28 }, ++ { 0x1.56f3ed5aa4222p24, 0x1.66e459a7794f4p28 }, ++ { 0x1.2ce2265a96befp24, 0x1.3b28bbce3c1c6p28 }, ++ { 0x1.07f14a8d0c116p24, 0x1.14b8b6b67144ep28 }, ++ { 0x1.cf049ebedf60dp23, 0x1.e5e26dbef0e28p27 }, ++ { 0x1.96129ca292f7ep23, 0x1.aa854b5c4f131p27 }, ++ { 0x1.6416763f6b3bcp23, 0x1.765d329106241p27 }, ++ { 0x1.3837bf030f4a8p23, 0x1.488b9479ee1c4p27 }, ++ { 0x1.11b82880134f9p23, 0x1.204c8d940530bp27 }, ++ { 0x1.dfe0c1b8af1f3p22, 0x1.f9e77238e0031p26 }, ++ { 0x1.a49aa1651cfcap22, 0x1.bbd2c8fd7e193p26 }, ++ { 0x1.709b5a3a79128p22, 0x1.85502f16a0f8dp26 }, ++ { 0x1.42ffa7e9ace3fp22, 0x1.5574ceffe3945p26 }, ++ { 0x1.1affd2eccd616p22, 0x1.2b72182c97af5p26 }, ++ { 0x1.efd8be43ac9a9p21, 0x1.06925da53a0fcp26 }, ++ { 0x1.b2564005de7e5p21, 0x1.cc6bb6d71090dp25 }, ++ { 0x1.7c694cd2b4ffdp21, 0x1.93a02d0c97221p25 }, ++ { 0x1.4d23fa69bd814p21, 0x1.61cb1a027e057p25 }, ++ { 0x1.23b556e6e918ep21, 0x1.361358dd1f243p25 }, ++ { 0x1.fecbcf04dca9p20, 0x1.0fba0d2660d89p25 }, ++ { 0x1.bf29264dcdc82p20, 0x1.dc2ef387bd0ep24 }, ++ { 0x1.8767d7fc43eb6p20, 0x1.a130711aadcdap24 }, ++ { 0x1.568f9937abc79p20, 0x1.6d758e1ac9659p24 }, ++ { 0x1.2bc67d8c20136p20, 0x1.401abca024479p24 }, ++ { 0x1.064d4616b0094p20, 0x1.185819a7f8c6ap24 }, ++ { 0x1.caf8458ad2a12p19, 0x1.eafc2b00a99b1p23 }, ++ { 0x1.917faff93e54p19, 0x1.ade505ba61e89p23 }, ++ { 0x1.5f2e79283b1cap19, 0x1.785c00b5cb27ep23 }, ++ { 0x1.33220b1da4f59p19, 0x1.4973634932c1ap23 }, ++ { 0x1.0c93ac678b0ccp19, 0x1.205a7d78be568p23 }, ++ { 0x1.d5aa313452daep18, 0x1.f8b4440d68221p22 }, ++ { 0x1.9a9b05368c88bp18, 0x1.b9a31a7b9868cp22 }, ++ { 0x1.66ede7f0c2d55p18, 0x1.826756e1a42e2p22 }, ++ { 0x1.39b7fc18e5891p18, 0x1.5209676e4b424p22 }, ++ { 0x1.122b662569616p18, 0x1.27b019965e362p22 }, ++ { 0x1.df2779ceabfc8p17, 0x1.029ce648133fdp22 }, ++ { 0x1.a2a5d2945d2b7p17, 0x1.c45161cd95fe8p21 }, ++ { 0x1.6dbccf848794ap17, 0x1.8b81d680cdfc5p21 }, ++ { 0x1.3f79bf21caa96p17, 0x1.59ca24a7521ddp21 }, ++ { 0x1.17080ae674896p17, 0x1.2e48f266999cfp21 }, ++ { 0x1.e75b024885f54p16, 0x1.0838b13324d03p21 }, ++ { 0x1.a98e26924c6c8p16, 0x1.cdd86b83e679dp20 }, ++ { 0x1.738bf4bc8d296p16, 0x1.93977456406ddp20 }, ++ { 0x1.445a6a9a273c6p16, 0x1.60a47aca18e96p20 }, ++ { 0x1.1b1eabeffc3a5p16, 0x1.341669953fe1cp20 }, ++ { 0x1.ee324e1fde417p15, 0x1.0d210b765b3d6p20 }, ++ { 0x1.af4465e9c5668p15, 0x1.d622fa53c02cep19 }, ++ { 0x1.784e3008fb46bp15, 0x1.9a961d6383ef7p19 }, ++ { 0x1.484eecd2f1383p15, 0x1.66890cd0bf55fp19 }, ++ { 0x1.1e65fd1ef2701p15, 0x1.390b73f2a4fbp19 }, ++ { 0x1.f39dc6baaccd7p14, 0x1.114ae59581395p19 }, ++ { 0x1.b3bb863d26278p14, 0x1.dd1e5296953a3p18 }, ++ { 0x1.7bf89f052b591p14, 0x1.a06dfa21b6c59p18 }, ++ { 0x1.4b4e35dbe0cddp14, 0x1.6b6a7a27c9005p18 }, ++ { 0x1.20d6781986167p14, 0x1.3d1cca3d4f6d8p18 }, ++ { 0x1.f790f6877f51ep13, 0x1.14acc164c64fep18 }, ++ { 0x1.b6e93fa7299b3p13, 0x1.e2ba80b9c3a1bp17 }, ++ { 0x1.7e82cde922833p13, 0x1.a511aa3827999p17 }, ++ { 0x1.4d515a14a6132p13, 0x1.6f3d9139319edp17 }, ++ { 0x1.226a790f97768p13, 0x1.404113d7d18e6p17 }, ++ { 0x1.fa02b8ac73416p12, 0x1.173ed60fcd6fap17 }, ++ { 0x1.b8c634233722p12, 0x1.e6ea95e92c624p16 }, ++ { 0x1.7fe6d7fbcef2cp12, 0x1.a8767775dd309p16 }, ++ { 0x1.4e53acc7531b1p12, 0x1.71f97a2983044p16 }, ++ { 0x1.231e547065724p12, 0x1.42710a88aab19p16 }, ++ { 0x1.faed5c4559717p11, 0x1.18fb2ded8ebb1p16 }, ++ { 0x1.b94e0bfb59934p11, 0x1.e9a4d9b21386ep15 }, ++ { 0x1.80217e57d8a3fp11, 0x1.aa947efe69879p15 }, ++ { 0x1.4e52d23cf50bp11, 0x1.7397d8e2bd385p15 }, ++ { 0x1.22f0652094ae6p11, 0x1.43a79684f6ef6p15 }, ++ { 0x1.fa4eba730bf6p10, 0x1.19ddbd8138a9p15 }, ++ { 0x1.b87f86a26fad7p10, 0x1.eae2ef93df996p14 }, ++ { 0x1.7f323487ff94ap10, 0x1.ab66cfccafb75p14 }, ++ { 0x1.4d4ec8ea8ee67p10, 0x1.7414e5b5ca43cp14 }, ++ { 0x1.21e112e39bf18p10, 0x1.43e1e22ebfdb4p14 }, ++ { 0x1.f8283ec45f117p9, 0x1.19e4732be2ffp14 }, ++ { 0x1.b65c7f9f1fbedp9, 0x1.eaa1efb3b003ep13 }, ++ { 0x1.7d1b22b6810f6p9, 0x1.aaeb7de6855e2p13 }, ++ { 0x1.4b49e984886ep9, 0x1.736f7c0d13f06p13 }, ++ { 0x1.1ff2d0d5a2649p9, 0x1.431f651be2ff4p13 }, ++ { 0x1.f47ee1cab73ddp8, 0x1.190f3f39e9af4p13 }, ++ { 0x1.b2e9e76c8d9f9p8, 0x1.e8e2722ca46cfp12 }, ++ { 0x1.79e11d635b9a7p8, 0x1.a923a9d8d5019p12 }, ++ { 0x1.4848ddf7dfffep8, 0x1.71a91ee04e82cp12 }, ++ { 0x1.1d2a13fdd2709p8, 0x1.4161e6298ed3ap12 }, ++ { 0x1.ef5b15f73200ap7, 0x1.176014201ab17p12 }, ++ { 0x1.ae2fb07705cc3p7, 0x1.e5a88cbf394e4p11 }, ++ { 0x1.758b92cdfdc64p7, 0x1.a6137c537bf6dp11 }, ++ { 0x1.44528f79b1b51p7, 0x1.6ec5f2d1367f4p11 }, ++ { 0x1.198d422be3f8cp7, 0x1.3ead7491061afp11 }, ++ { 0x1.e8c8a7276c93p6, 0x1.14dadee76975ap11 }, ++ { 0x1.a838b09afcf62p6, 0x1.e0fbc2ec572b9p10 }, ++ { 0x1.70246e766d2f3p6, 0x1.a1c215fcd0beap10 }, ++ { 0x1.3f700c0d99876p6, 0x1.6accae115453ep10 }, ++ { 0x1.1524997d01ap6, 0x1.3b08582357e32p10 }, ++ { 0x1.e0d68d9047f7ap5, 0x1.118577f06b2f2p10 }, ++ { 0x1.a11277ca2bd3fp5, 0x1.dae6e8d292a1ep9 }, ++ { 0x1.69b7f34ec048ep5, 0x1.9c3973d4c9b08p9 }, ++ { 0x1.39ac6410ceb63p5, 0x1.65c67e684d1e6p9 }, ++ { 0x1.0ffa110b113fp5, 0x1.367af901b137p9 }, ++ { 0x1.d796b4f7aaf7fp4, 0x1.0d678c614f535p9 }, ++ { 0x1.98cd1cb38dccp4, 0x1.d377f96b9fd62p8 }, ++ { 0x1.62548d6675835p4, 0x1.958648bd6035p8 }, ++ { 0x1.331480815e7cdp4, 0x1.5fbee5e7590f4p8 }, ++ { 0x1.0a19336cc73a1p4, 0x1.310fbf558eca2p8 }, ++ { 0x1.cd1db96a6c6efp3, 0x1.088a80b837328p8 }, ++ { 0x1.8f7b007e1de49p3, 0x1.cabfe10b3371ap7 }, ++ { 0x1.5a0a9c047e3c7p3, 0x1.8db7ccf7600f4p7 }, ++ { 0x1.2bb6f2dd8e254p3, 0x1.58c38f07b7c3bp7 }, ++ { 0x1.038ef3cbdc1c7p3, 0x1.2ad2ebb6268bdp7 }, ++ { 0x1.c1829acfb62b3p2, 0x1.02f94d1fb1ba4p7 }, ++ { 0x1.85308ad209551p2, 0x1.c0d23d3daadadp6 }, ++ { 0x1.50ec3549a202dp2, 0x1.84df8496cc3aep6 }, ++ { 0x1.23a3bf963c1ebp2, 0x1.50e4191e1b76cp6 }, ++ { 0x1.f8d2fce0ebb41p1, 0x1.23d2690dc7344p6 }, ++ { 0x1.b4de68e608347p1, 0x1.f980a88588961p5 }, ++ { 0x1.7a03df8f9f479p1, 0x1.b5c5135a44acbp5 }, ++ { 0x1.470ce4924af72p1, 0x1.7b10fe1f0aeaap5 }, ++ { 0x1.1aec242758b4fp1, 0x1.4831de32e25bdp5 }, ++ { 0x1.e9700b697ec96p0, 0x1.1c1d98f1b1f71p5 }, ++ { 0x1.a74be9568f922p0, 0x1.ebda6af103d07p4 }, ++ { 0x1.6e0c8fadbb05p0, 0x1.a9b07f491a273p4 }, ++ { 0x1.3c8164e42f29cp0, 0x1.70618a9c019dap4 }, ++ { 0x1.11a259faba91ep0, 0x1.3ebfb36da371bp4 }, ++ { 0x1.d91518c2acaf6p-1, 0x1.13c51b7852ecp4 }, ++ { 0x1.98e739a118b5ep-1, 0x1.dd1d36683753bp3 }, ++ { 0x1.616346ca3be0ep-1, 0x1.9cae5c1f5de61p3 }, ++ { 0x1.315f58c13df9cp-1, 0x1.64e7f0a95542fp3 }, ++ { 0x1.07d957435b8c4p-1, 0x1.34a1a5595e9cbp3 }, ++ { 0x1.c7e35cf4db634p-2, 0x1.0ada93ac2688ep3 }, ++ { 0x1.89cd6ead31b71p-2, 0x1.cd680d6a376d2p2 }, ++ { 0x1.542176fe1c2b2p-2, 0x1.8ed9e84be9bacp2 }, ++ { 0x1.25bd00bd97eddp-2, 0x1.58bc1beb8e117p2 }, ++ { 0x1.fb491e02b7c15p-3, 0x1.29ecb15514182p2 }, ++ { 0x1.b5fcd30c7e1f6p-3, 0x1.017069c4b54cfp2 }, ++ { 0x1.7a1c33cc1922bp-3, 0x1.bcdb33f7b88f9p1 }, ++ { 0x1.46610483f2395p-3, 0x1.804f671a7a35cp1 }, ++ { 0x1.19b0f23241b88p-3, 0x1.4bf6ca87a4707p1 }, ++ { 0x1.e62f62b4555dcp-4, 0x1.1eb67d8a75351p1 }, ++ { 0x1.a383ca9f98a0fp-4, 0x1.ef3318a5788dep0 }, ++ { 0x1.69f16aeb3677p-4, 0x1.ab97c2106c4d2p0 }, ++ { 0x1.383bf2b37a037p-4, 0x1.712bc1550fb6ap0 }, ++ { 0x1.0d51cf5a16254p-4, 0x1.3eb13a24821e2p0 }, ++ { 0x1.d08cdac87dce6p-5, 0x1.131510c1da6adp0 }, ++ { 0x1.909a7c3ac6f99p-5, 0x1.dad26311e9efp-1 }, ++ { 0x1.596acfa0bcc8fp-5, 0x1.99bf36c7ef068p-1 }, ++ { 0x1.29cc13bfd53ap-5, 0x1.618c26c1169a6p-1 }, ++ { 0x1.00b60212cf113p-5, 0x1.3104d5f799552p-1 }, ++ { 0x1.ba886ae6e40ep-6, 0x1.071e8b6003b16p-1 }, ++ { 0x1.7d62a282a4851p-6, 0x1.c5e5338097f6bp-2 }, ++ { 0x1.48a59e9cb1eb1p-6, 0x1.87730de08c821p-2 }, ++ { 0x1.1b2abc895a771p-6, 0x1.518db221cf8bap-2 }, ++ { 0x1.e7e6f4c33ededp-7, 0x1.230ae74a714aap-2 }, ++ { 0x1.a4480db60fe17p-7, 0x1.f5d1c58fdc6acp-3 }, ++ { 0x1.69fd19aacb90ap-7, 0x1.b091a88a72f08p-3 }, ++ { 0x1.37be42e1159e7p-7, 0x1.74d459ba38afep-3 }, ++ { 0x1.0c707db025298p-7, 0x1.414d114bdcde1p-3 }, ++ { 0x1.ce3ee3757dbe5p-8, 0x1.14dc49cbc0c3p-3 }, ++ { 0x1.8df06bfb34f6dp-8, 0x1.dd13408401cdcp-4 }, ++ { 0x1.568986affafc5p-8, 0x1.9afd0eca1593dp-4 }, ++ { 0x1.26d009f5af049p-8, 0x1.6203633a6814ap-4 }, ++ { 0x1.fb69c5d6b524ep-9, 0x1.30e632b0008c9p-4 }, ++ { 0x1.b49c67cd1611fp-9, 0x1.069124dc6eaefp-4 }, ++ { 0x1.77a47ec4e9fa1p-9, 0x1.c42b48d5cfe42p-5 }, ++ { 0x1.43260788f0a1fp-9, 0x1.854b792c33d4ap-5 }, ++ { 0x1.15f4e018a09eep-9, 0x1.4f1f511f7b2d7p-5 }, ++ { 0x1.de1c72f739a49p-10, 0x1.2073f996519cp-5 }, ++ { 0x1.9b25dc6d6642ep-10, 0x1.f08155c194aadp-6 }, ++ { 0x1.61853cc8eddacp-10, 0x1.ab41e011814e5p-6 }, ++ { 0x1.2feeed430b87bp-10, 0x1.6f9f62ec4193ap-6 }, ++ { 0x1.05451535e8102p-10, 0x1.3c45d7f9e2fbp-6 }, ++ { 0x1.c122bcbda7f8ep-11, 0x1.100ffa10ff0f3p-6 }, ++ { 0x1.81ff0b26f3b6ap-11, 0x1.d401bee3a7787p-7 }, ++ { 0x1.4bb153d2d0728p-11, 0x1.927ce5fbbe352p-7 }, ++ { 0x1.1cfe80beb05a4p-11, 0x1.5a195c6e2a08ep-7 }, ++ { 0x1.e9ae566e02486p-12, 0x1.2992f3c7d2ce7p-7 }, ++ { 0x1.a4a3297375461p-12, 0x1.ffa47aef63bd2p-8 }, ++ { 0x1.6948e77b6c537p-12, 0x1.b7ccca35ce88ep-8 }, ++ { 0x1.3644eed5b1126p-12, 0x1.79ffc3cd6bc92p-8 }, ++ { 0x1.0a6cd27d913d7p-12, 0x1.44d7c3dca9cc8p-8 }, ++ { 0x1.c97f5c053e775p-13, 0x1.1720abf01aa9bp-8 }, ++ { 0x1.88c0c973b68fcp-13, 0x1.dfa22008cf2c8p-9 }, ++ { 0x1.512157ee1d8bep-13, 0x1.9c08a63df00dcp-9 }, ++ { 0x1.215988e86b086p-13, 0x1.61eb258af5a93p-9 }, ++ { 0x1.f09f2b684fb31p-14, 0x1.2ff68a28f7dc4p-9 }, ++ { 0x1.aa222a98ba953p-14, 0x1.0506e21782262p-9 }, ++ { 0x1.6d9b06046eb66p-14, 0x1.c041afe3a1ad2p-10 }, ++ { 0x1.39a30e3030664p-14, 0x1.80d8271e40929p-10 }, ++ { 0x1.0d05cd2b64652p-14, 0x1.4a5cc1e67b046p-10 }, ++ { 0x1.cd740d2318d4dp-15, 0x1.1b8f04bdfa1bfp-10 }, ++ { 0x1.8bb7603d9828p-15, 0x1.e6b65816f0ff1p-11 }, ++ { 0x1.534d810db5377p-15, 0x1.a1a7ec86c94fbp-11 }, ++ { 0x1.22e56de90dc1ap-15, 0x1.665a9398034f1p-11 }, ++ { 0x1.f2bb06a7069e2p-16, 0x1.336f30c8d3345p-11 }, ++ { 0x1.ab79b6edb04e1p-16, 0x1.07b7cbf13abf4p-11 }, ++ { 0x1.6e5b33b150249p-16, 0x1.c461717dacbd8p-12 }, ++ { 0x1.39f005226a7dbp-16, 0x1.83f56253c12f1p-12 }, ++ { 0x1.0cfc8192e69bdp-16, 0x1.4cab82baddd6cp-12 }, ++ { 0x1.cce310b024fd4p-17, 0x1.1d39d04e50424p-12 }, ++ { 0x1.8acc81455f971p-17, 0x1.e9094beff3587p-13 }, ++ { 0x1.522570529739fp-17, 0x1.a3308036822dbp-13 }, ++ { 0x1.219685023e1bep-17, 0x1.67464f8a36affp-13 }, ++ { 0x1.eff1f945e7f7bp-18, 0x1.33e2c9c277148p-13 }, ++ { 0x1.a89fa515a2b44p-18, 0x1.07d0b7bb52fc7p-13 }, ++ { 0x1.6b83bb4ee4348p-18, 0x1.c40cfbd11fd1p-14 }, ++ { 0x1.372982e2fde1dp-18, 0x1.833ffa698fa8bp-14 }, ++ { 0x1.0a51297b20ab7p-18, 0x1.4bb29dadf3acp-14 }, ++ { 0x1.c7d093fb7e463p-19, 0x1.1c147957723bdp-14 }, ++ { 0x1.8607006600009p-19, 0x1.e6896f5762306p-15 }, ++ { 0x1.4db1c7b733812p-19, 0x1.a096cc3260668p-15 }, ++ { 0x1.1d76959a6b622p-19, 0x1.64a7647d3f88ap-15 }, ++ { 0x1.e858d8b3acc8p-20, 0x1.314deba7bab37p-15 }, ++ { 0x1.a1a94b14e3d7fp-20, 0x1.0550e92636252p-15 }, ++ { 0x1.6529df3d1cf1cp-20, 0x1.bf46cd0f972c3p-16 }, ++ { 0x1.316449a955429p-20, 0x1.7ebd49fbb30eep-16 }, ++ { 0x1.0517b9e1f89dep-20, 0x1.47796af08285bp-16 }, ++ { 0x1.be627dddb55d7p-21, 0x1.1827a73755ec7p-16 }, ++ { 0x1.7d8a7f2a8a2dp-21, 0x1.df49a10ccc568p-17 }, ++ { 0x1.4613bf000c71dp-21, 0x1.99ee7037b652bp-17 }, ++ { 0x1.16a45fcb7b882p-21, 0x1.5e9197017791dp-17 }, ++ { 0x1.dc283bcbe780fp-22, 0x1.2bc40c543e36bp-17 }, ++ { 0x1.96ca751cac37fp-22, 0x1.004b34180a4a9p-17 }, ++ { 0x1.5b7cd13179ddep-22, 0x1.b632d58444fadp-18 }, ++ { 0x1.28cb2cb8b4015p-22, 0x1.768f3e13d3bdcp-18 }, ++ { 0x1.faedd62dabd96p-23, 0x1.401fa7657909ep-18 }, ++ { 0x1.b0de982dbf111p-23, 0x1.1190d162109abp-18 }, ++ { 0x1.7195b2becea19p-23, 0x1.d3803e22a78e4p-19 }, ++ { 0x1.3b8387eea3f9dp-23, 0x1.8f694ad8ac632p-19 }, ++ { 0x1.0d521f8291cd6p-23, 0x1.55326d6aac6fap-19 }, ++ { 0x1.cbb9be9cbac1ep-24, 0x1.236e8d3a9e0e7p-19 }, ++ { 0x1.8852e54d26542p-24, 0x1.f1ca221c0b98bp-20 }, ++ { 0x1.4ec36b8fdf428p-24, 0x1.a914b62872bc3p-20 }, ++ { 0x1.1d9d0055d11dp-24, 0x1.6af2ae42db58p-20 }, ++ { 0x1.e74cb7ebdea0ap-25, 0x1.35dbe86ed95c7p-20 }, ++ { 0x1.9fa735b03463ap-25, 0x1.0880cfe68041ep-20 }, ++ { 0x1.627f6220ca6a9p-25, 0x1.c3847cbf78a3bp-21 }, ++ { 0x1.2e4d9d8b5b22fp-25, 0x1.81550cf271bfdp-21 }, ++ { 0x1.01c325e8bb3cp-25, 0x1.48cefa0aac509p-21 }, ++ { 0x1.b783bc148fcefp-26, 0x1.188ab9ce5fdddp-21 }, ++ { 0x1.76aa8791eba33p-26, 0x1.dea9996bf1c0fp-22 }, ++ { 0x1.3f58d390caeecp-26, 0x1.984c7bb9c53ffp-22 }, ++ { 0x1.10299f255a2cap-26, 0x1.5c3c6ce5f2f75p-22 }, ++ { 0x1.cfd7e08a13b2p-27, 0x1.28f8faa7c3202p-22 }, ++ { 0x1.8b368e0429dacp-27, 0x1.fa7304087353p-23 }, ++ { 0x1.50b2501707be6p-27, 0x1.afca3c464e1d5p-23 }, ++ { 0x1.1ecf2c897b782p-27, 0x1.701780b38d71ap-23 }, ++ { 0x1.e891642306feep-28, 0x1.39c08dab159ep-23 }, ++ { 0x1.a013c6709bdd5p-28, 0x1.0b66dac93672bp-23 }, ++ { 0x1.624c9a2f2f8fcp-28, 0x1.c7bde43ebd873p-24 }, ++ { 0x1.2da83d59392f5p-28, 0x1.84520ec5eb55ap-24 }, ++ { 0x1.00ce3767b77a8p-28, 0x1.4ad54236cf6b4p-24 }, ++ { 0x1.b5312d520a3f4p-29, 0x1.19d258cf47194p-24 }, ++ { 0x1.74191dcab90bcp-29, 0x1.e015665e4efbdp-25 }, ++ { 0x1.3ca855a30dad5p-29, 0x1.98dc92b26aeap-25 }, ++ { 0x1.0d71d1069e44fp-29, 0x1.5c29c3e79c162p-25 }, ++ { 0x1.ca7c7b61a5357p-30, 0x1.28708aaed4d7p-25 }, ++ { 0x1.86083aaabaf73p-30, 0x1.f8bd2046619b5p-26 }, ++ { 0x1.4bc21b880f9dep-30, 0x1.ada636f165959p-26 }, ++ { 0x1.1a28183b0e32p-30, 0x1.6dafa60f704a1p-26 }, ++ { 0x1.dfe23a6ad4f8bp-31, 0x1.37351629c53cp-26 }, ++ { 0x1.980956bea8ccp-31, 0x1.08cff68f5874cp-26 }, ++ { 0x1.5ae767663002ep-31, 0x1.c29ce58c1fc1p-27 }, ++ { 0x1.26e4fd1165b76p-31, 0x1.7f5772973d16cp-27 }, ++ { 0x1.f54dde2ba8f56p-32, 0x1.4612c5674eed9p-27 }, ++ { 0x1.aa0af3e698b26p-32, 0x1.15539e864d70fp-27 }, ++ { 0x1.6a0956d7d1b63p-32, 0x1.d7ad5cdc3741ep-28 }, ++ { 0x1.339bd6e517d44p-32, 0x1.9110bc4b50f8cp-28 }, ++ { 0x1.0554f0943ba8cp-32, 0x1.54fb970dbe54ep-28 }, ++ { 0x1.bbfac9007ec07p-33, 0x1.21dd98bc7de87p-28 }, ++ { 0x1.791862715d02fp-33, 0x1.ecc34851c9763p-29 }, ++ { 0x1.403f77382e654p-33, 0x1.a2ca34863bfcbp-29 }, ++ { 0x1.0feff2a4fc49p-33, 0x1.63e0d12d4d288p-29 }, ++ { 0x1.cdc5de1ae8c09p-34, 0x1.2e615f0543e41p-29 }, ++ { 0x1.8804761a993c4p-34, 0x1.00e4ae934cb56p-29 }, ++ { 0x1.4cc23eb3b5ffap-34, 0x1.b471c42165f4ap-30 }, ++ { 0x1.1a6c6c06ea18bp-34, 0x1.72b316e47cc93p-30 }, ++ { 0x1.df58ab9ae4fcbp-35, 0x1.3ad1e7143aa75p-30 }, ++ { 0x1.96bd0bd6c9a31p-35, 0x1.0b54bd6a9e23fp-30 }, ++ { 0x1.59163428fb3a6p-35, 0x1.c5f4a785a88d1p-31 }, ++ { 0x1.24be8d0138113p-35, 0x1.8162809b8dff6p-31 }, ++ { 0x1.f09f3c1618809p-36, 0x1.4721b76389525p-31 }, ++ { 0x1.a53148c3fc482p-36, 0x1.15a6678e0082cp-31 }, ++ { 0x1.652d1d62b45e1p-36, 0x1.d73f8da963966p-32 }, ++ { 0x1.2eda549c16ee8p-36, 0x1.8fdeb6a9e8ebcp-32 }, ++ { 0x1.00c2a84aed164p-36, 0x1.5342fe16e83a5p-32 }, ++ { 0x1.b3501c0fdbbcfp-37, 0x1.1fcdfea216d16p-32 }, ++ { 0x1.70f8998ccf075p-37, 0x1.e83eb9bce31c4p-33 }, ++ { 0x1.38b3a7222dd33p-37, 0x1.9e170e2dbff8cp-33 }, ++ { 0x1.08fb437656229p-37, 0x1.5f27a9aa5f66p-33 }, ++ { 0x1.c1085f96d9feep-38, 0x1.29bfa42bc7b76p-33 }, ++ { 0x1.7c6a3cf1c9dcfp-38, 0x1.f8de2739c95a9p-34 }, ++ { 0x1.423e65b2a3a8cp-38, 0x1.abfaa7d4233fap-34 }, ++ { 0x1.10ef40de709bcp-38, 0x1.6ac1833360c58p-34 }, ++ { 0x1.ce48f9d9e5928p-39, 0x1.336f5ff042b88p-34 }, ++ { 0x1.8773adc5703cep-39, 0x1.0484d7ff5f6bdp-34 }, ++ { 0x1.4b6e86a5aa9d8p-39, 0x1.b978904649f57p-35 }, ++ { 0x1.189488e2e9743p-39, 0x1.760249f31a968p-35 }, ++ { 0x1.db0100ef385d3p-40, 0x1.3cd13761f1731p-35 }, ++ { 0x1.9206c1ae9fb29p-40, 0x1.0c569a0b1627cp-35 }, ++ { 0x1.54382e8081943p-40, 0x1.c67fe1e83e91p-36 }, ++ { 0x1.1fe13002859cap-40, 0x1.80dbcff1d72cfp-36 }, ++ { 0x1.e71fde0c5e218p-41, 0x1.45d945dc4844dp-36 }, ++ { 0x1.9c159bbc9900ap-41, 0x1.13da615eb6c5fp-36 }, ++ { 0x1.5c8fc931c6d94p-41, 0x1.d2ffe78d87996p-37 }, ++ { 0x1.26cb8c1920344p-41, 0x1.8b4017551e03bp-37 }, ++ { 0x1.f295714275bc3p-42, 0x1.4e7bd56b77338p-37 }, ++ { 0x1.a592ca70605e5p-42, 0x1.1b06621cfb60ep-37 }, ++ { 0x1.646a234bddd88p-42, 0x1.dee83fc205fc8p-38 }, ++ { 0x1.2d4a498c21371p-42, 0x1.9521701d324dap-38 }, ++ { 0x1.fd5235020e009p-43, 0x1.56ad77d8efe38p-38 }, ++ { 0x1.ae71657ff542ep-43, 0x1.21d11201bfbcfp-38 }, ++ { 0x1.6bbc82f12468ap-43, 0x1.ea290040397f4p-39 }, ++ { 0x1.3354802504d9ep-43, 0x1.9e7295f29cf91p-39 }, ++ { 0x1.03a3b07cf84bp-43, 0x1.5e631fb2a96dbp-39 }, ++ { 0x1.b6a52af7c7202p-44, 0x1.28313d62cbf4fp-39 }, ++ { 0x1.727cc024d462ap-44, 0x1.f4b2d92a8da6ap-40 }, ++ { 0x1.38e1c7590edafp-44, 0x1.a726cda9c5fc4p-40 }, ++ { 0x1.083385f1e344cp-44, 0x1.6592390114765p-40 }, ++ { 0x1.be229b5ed10ebp-45, 0x1.2e1e1bdc1cff3p-40 }, ++ { 0x1.78a15c33bf0d1p-45, 0x1.fe77379b5869ap-41 }, ++ { 0x1.3dea49bdca04dp-45, 0x1.af3202215009fp-41 }, ++ { 0x1.0c5225e967ce3p-45, 0x1.6c30c15ee186bp-41 }, ++ { 0x1.c4df14833b32ep-46, 0x1.338f646703f05p-41 }, ++ { 0x1.7e2197e99732ep-46, 0x1.03b4338f71d3bp-41 }, ++ { 0x1.4266d76b7e9efp-46, 0x1.b688e02001605p-42 }, ++ { 0x1.0ff9aa4df55cbp-46, 0x1.72355f261c90fp-42 }, ++ { 0x1.cad0ea9847218p-47, 0x1.387d609c076c8p-42 }, ++ { 0x1.82f5884a3c4ffp-47, 0x1.07bcd8d61f54dp-42 }, ++ { 0x1.4650f71159187p-47, 0x1.bd20f0d88c869p-43 }, ++ { 0x1.1324c9f973607p-47, 0x1.77977767b819cp-43 }, ++ { 0x1.cfef7f529f1bfp-48, 0x1.3ce0fee10ae91p-43 }, ++ { 0x1.8716298a66d68p-48, 0x1.0b4fbeda58aa9p-43 }, ++ { 0x1.49a2f582864b8p-48, 0x1.c2f0b2bc85943p-44 }, ++ { 0x1.15cee56fb8f8p-48, 0x1.7c4f426570458p-44 }, ++ { 0x1.d43356b5d1bc3p-49, 0x1.40b3e347db73ap-44 }, ++ { 0x1.8a7d700826ce3p-49, 0x1.0e67b4f33d066p-44 }, ++ { 0x1.4c57f38808af9p-49, 0x1.c7efb04c36011p-45 }, ++ { 0x1.17f41219f6e6ep-49, 0x1.8055de49eb405p-45 }, ++ { 0x1.d796294cc09e7p-50, 0x1.43f076e4dac86p-45 }, ++ { 0x1.8d265709c8b81p-50, 0x1.11003322f9f2ap-45 }, ++ { 0x1.4e6bf1c869176p-50, 0x1.cc169496c493bp-46 }, ++ { 0x1.199123dce7f7cp-50, 0x1.83a55fe01c77fp-46 }, ++ { 0x1.da12f38ef6065p-51, 0x1.4691f56a0b9d1p-46 }, ++ { 0x1.8f0ced10d0db4p-51, 0x1.131565242338p-46 }, ++ { 0x1.4fdbda9c9106cp-51, 0x1.cf5f3d25346p-47 }, ++ { 0x1.1aa3b4e8f3caap-51, 0x1.8638e1112031dp-47 }, ++ { 0x1.dba6023e1257ap-52, 0x1.489478d82c425p-47 }, ++ { 0x1.902e5d96b5dc7p-52, 0x1.14a433d21a4e2p-47 }, ++ { 0x1.50a589affacc9p-52, 0x1.d1c4c912f9acbp-48 }, ++ { 0x1.1b2a2ba958505p-52, 0x1.880c8cf6ecf16p-48 }, ++ { 0x1.dc4cfb90a7ce5p-53, 0x1.49f5031dc194p-48 }, ++ { 0x1.9088f811b7254p-53, 0x1.15aa4ccc2f79bp-48 }, ++ { 0x1.50c7d151d73dp-53, 0x1.d343a5202c7c4p-49 }, ++ { 0x1.1b23bebdcda6dp-53, 0x1.891da95a3a6f5p-49 }, ++ { 0x1.dc06e50abd949p-54, 0x1.4ab18582d9df2p-49 }, ++ { 0x1.901c34297491p-54, 0x1.1626283914e64p-49 }, ++ { 0x1.50427d64b1c7dp-54, 0x1.d3d994938f3adp-50 }, ++ { 0x1.1a9076f0d2e24p-54, 0x1.896a9d7ab89b1p-50 }, ++ { 0x1.dad425efa38efp-55, 0x1.4ac8e5c7c8723p-50 }, ++ { 0x1.8ee8b30ca2586p-55, 0x1.16170c969f828p-50 }, ++ { 0x1.4f1653e256f41p-55, 0x1.d385b6cd88b32p-51 }, ++ { 0x1.19712f23cae3dp-55, 0x1.88f2f609fe4d3p-51 }, ++ { 0x1.d8b686448b5afp-56, 0x1.4a3b00e506616p-51 }, ++ { 0x1.8cf03de32b406p-56, 0x1.157d10888e2f3p-51 }, ++ { 0x1.4d4512f22a65dp-56, 0x1.d2488978a2f74p-52 }, ++ { 0x1.17c7923127a39p-56, 0x1.87b7664b4e00cp-52 }, ++ { 0x1.d5b12a674c804p-57, 0x1.4908ab62a09acp-52 }, ++ { 0x1.8a35c1621f2ccp-57, 0x1.14591aa0080cap-52 }, ++ { 0x1.4ad16c988b007p-57, 0x1.d023e74fea7e1p-53 }, ++ { 0x1.159616cbf8a0cp-57, 0x1.85b9c65443c51p-53 }, ++ { 0x1.d1c88b489c5c3p-58, 0x1.4733af4601fe1p-53 }, ++ { 0x1.86bd4690c0845p-58, 0x1.12acdf1c9738cp-53 }, ++ { 0x1.47bf000e37ae9p-58, 0x1.cd1b037f7490bp-54 }, ++ { 0x1.12dff96b26d81p-58, 0x1.82fd0e7486194p-54 }, ++ { 0x1.cd026b64a0ca8p-59, 0x1.44bec79d5416cp-54 }, ++ { 0x1.828be8d7b2e74p-59, 0x1.107adbae7661dp-54 }, ++ { 0x1.441250d6b8cc7p-59, 0x1.c93261af2cd0dp-55 }, ++ { 0x1.0fa934555eb5ap-59, 0x1.7f854fd47e7d3p-55 }, ++ { 0x1.c765c89feb632p-60, 0x1.41ad99b7fc9ebp-55 }, ++ { 0x1.7da7c97c8ea4bp-60, 0x1.0dc65148f57fcp-55 }, ++ { 0x1.3fd0bbb47d67cp-60, 0x1.c46fcad39a071p-56 }, ++ { 0x1.0bf675e9015a3p-60, 0x1.7b57aa64c1e42p-56 }, ++ { 0x1.c0facb396944ap-61, 0x1.3e04ac23c3f11p-56 }, ++ { 0x1.781800b4c5862p-61, 0x1.0a933c1a65e31p-56 }, ++ { 0x1.3b0069a07f02dp-61, 0x1.beda3eeb5f0a2p-57 }, ++ { 0x1.07cd15415698ap-61, 0x1.767a404101f5ap-57 }, ++ { 0x1.b9cab20b7b4acp-62, 0x1.39c95b8dcd835p-57 }, ++ { 0x1.71e48c82b190ap-62, 0x1.06e649c54a11dp-57 }, ++ { 0x1.35a840f1bb9bfp-62, 0x1.b879e3daa485dp-58 }, ++ { 0x1.0333055f872d1p-62, 0x1.70f426b1f5c67p-58 }, ++ { 0x1.b1dfbc5f13465p-63, 0x1.3501cdad9df5bp-58 }, ++ { 0x1.6b163d96b3dd9p-63, 0x1.02c4cdfc5722cp-58 }, ++ { 0x1.2fcfd4e6913cap-63, 0x1.b157f19f267eap-59 }, ++ { 0x1.fc5d8e0519af3p-64, 0x1.6acd55017e4e2p-59 }, ++ { 0x1.a945119b38a65p-64, 0x1.2fb4e266d3e9fp-59 }, ++ { 0x1.63b6a2745bde1p-64, 0x1.fc696b5025168p-60 }, ++ { 0x1.297f53c6e927fp-64, 0x1.a97e9c202c067p-60 }, ++ { 0x1.f18eb2ba6357fp-65, 0x1.640e915b3f3eap-60 }, ++ { 0x1.a006a7219c6a4p-65, 0x1.29ea2353deb28p-60 }, ++ { 0x1.5bcff1208eb99p-65, 0x1.f278f182d5ccep-61 }, ++ { 0x1.22bf73da1838dp-65, 0x1.a0f8fae51588p-61 }, ++ { 0x1.e60853b8b4b65p-66, 0x1.5cc15bf9dbbbbp-61 }, ++ { 0x1.963124add21cp-66, 0x1.23a9b1f0c9515p-61 }, ++ { 0x1.536cefa1810b4p-66, 0x1.e7c6162103b4ep-62 }, ++ { 0x1.1b995f6e584afp-66, 0x1.97d2ef035140ap-62 }, ++ { 0x1.d9da06644bc9dp-67, 0x1.54efd8e5e8a15p-62 }, ++ { 0x1.8bd1c79049ec2p-67, 0x1.1cfc34a10ee47p-62 }, ++ { 0x1.4a98db9bff0e8p-67, 0x1.dc5f9803d5324p-63 }, ++ { 0x1.1416a031bacf2p-67, 0x1.8e1907994f8d3p-63 }, ++ { 0x1.cd13f7b7c3414p-68, 0x1.4ca4b88f6234cp-63 }, ++ { 0x1.80f645203dff7p-68, 0x1.15eac2ce52257p-63 }, ++ { 0x1.415f515af2672p-68, 0x1.d054eb8db2ad5p-64 }, ++ { 0x1.0c410a1d6b3cap-68, 0x1.83d8652f7235cp-64 }, ++ { 0x1.bfc6c8b2d1c95p-69, 0x1.43eb1f8cfdcf1p-64 }, ++ { 0x1.75acacc068ebep-69, 0x1.0e7ed05fb3af3p-64 }, ++ { 0x1.37cc328e513e5p-69, 0x1.c3b617ec3cfd6p-65 }, ++ { 0x1.0422a6340a512p-69, 0x1.791e9c59e2b42p-65 }, ++ { 0x1.b2036a988beadp-70, 0x1.3ace8dce03fbdp-65 }, ++ { 0x1.6a0349d192d1ap-70, 0x1.06c218ca5f25ap-65 }, ++ { 0x1.2deb8d0dae905p-70, 0x1.b69393c895b87p-66 }, ++ { 0x1.f78b3aa5bebbep-71, 0x1.6df997f6bab1bp-66 }, ++ { 0x1.a3dafb67a96cfp-71, 0x1.315ac58b7d6b7p-66 }, ++ { 0x1.5e0885ebd9cc3p-71, 0x1.fd7d13f78002dp-67 }, ++ { 0x1.23c981e88b022p-71, 0x1.a8fe21d205ebp-67 }, ++ { 0x1.e66846a73c925p-72, 0x1.62777b62fde0cp-67 }, ++ { 0x1.955ea2f392221p-72, 0x1.279bb2446baf4p-67 }, ++ { 0x1.51cacbb42476ep-72, 0x1.ecfc5eb955129p-68 }, ++ { 0x1.19722d0b598a4p-72, 0x1.9b06ad8cbcafbp-68 }, ++ { 0x1.d4f0c5733dbc9p-73, 0x1.56a684fe99fcap-68 }, ++ { 0x1.869f70ffc1fcbp-73, 0x1.1d9d500e92622p-68 }, ++ { 0x1.45586a9e82938p-73, 0x1.dc163a555fefbp-69 }, ++ { 0x1.0ef18dbc017ffp-73, 0x1.8cbe28ca7c426p-69 }, ++ { 0x1.c338d2435fb4bp-74, 0x1.4a94f1540c9eap-69 }, ++ { 0x1.77ae3cb88b469p-74, 0x1.136b93820fc76p-69 }, ++ { 0x1.38bf7be87e681p-74, 0x1.cadeb8c3bba05p-70 }, ++ { 0x1.0453702b9a5bbp-74, 0x1.7e356a2db5e15p-70 }, ++ { 0x1.b154294e891dap-75, 0x1.3e50df3387f95p-70 }, ++ { 0x1.689b85dc875b1p-75, 0x1.09125281c373ap-70 }, ++ { 0x1.2c0dc90fab5bap-75, 0x1.b969aedac7779p-71 }, ++ { 0x1.f346b0aa94647p-76, 0x1.6f7d0d10edd84p-71 }, ++ { 0x1.9f5604d9610bp-76, 0x1.31e8350b95daep-71 }, ++ { 0x1.597757e14e4e8p-76, 0x1.fd3a5c3ac18bbp-72 }, ++ { 0x1.1f50b401397f7p-76, 0x1.a7ca8fa24018p-72 }, ++ { 0x1.ddd8dcb76e388p-77, 0x1.60a5532471804p-72 }, ++ { 0x1.8d50fcdd2a012p-77, 0x1.256887c26e498p-72 }, ++ { 0x1.4a512f5483d32p-77, 0x1.e82efb884fa7p-73 }, ++ { 0x1.129521372a709p-77, 0x1.961449f1f5f93p-73 }, ++ { 0x1.c872d91eff745p-78, 0x1.51be080b9d49dp-73 }, ++ { 0x1.7b56e9895b756p-78, 0x1.18df034ba2c47p-73 }, ++ { 0x1.3b37e1b01d1bdp-78, 0x1.d31877f1753bap-74 }, ++ { 0x1.05e763ef1c6e1p-78, 0x1.845928aac023dp-74 }, ++ { 0x1.b3291e83a6ddap-79, 0x1.42d6673958cf7p-74 }, ++ { 0x1.6978c8d7d61b8p-79, 0x1.0c58552d896bdp-74 }, ++ { 0x1.2c3987ce2b431p-79, 0x1.be0be95f0126ep-75 }, ++ { 0x1.f2a6593b4ee39p-80, 0x1.72aab5cc51918p-75 }, ++ { 0x1.9e0f0cfd57ab4p-80, 0x1.33fd04413c4e8p-75 }, ++ { 0x1.57c6a75ebbd36p-80, 0x1.ffc132424c87ap-76 }, ++ { 0x1.1d636b1da2b46p-80, 0x1.a91d6af35687bp-76 }, ++ { 0x1.d9c6f3705063cp-81, 0x1.6119a09e14fe5p-76 }, ++ { 0x1.8936d384f421ap-81, 0x1.253fb5c838ba6p-76 }, ++ { 0x1.464f8c7e074fcp-81, 0x1.e7068fdcaeb4ep-77 }, ++ { 0x1.0ec1f5aebc21fp-81, 0x1.945fff2eb1b17p-77 }, ++ { 0x1.c14515cb6f8fp-82, 0x1.4fb5a7146299ap-77 }, ++ { 0x1.74b15b6eeceb1p-82, 0x1.16ab8334ccb0ap-77 }, ++ { 0x1.352169fa33216p-82, 0x1.ce965139dad89p-78 }, ++ { 0x1.0060a522d6818p-82, 0x1.7fe578074e0c8p-78 }, ++ { 0x1.a933ad3e37ea3p-83, 0x1.3e8d828e807b4p-78 }, ++ { 0x1.608e37fe916b7p-83, 0x1.084c9533fea9dp-78 }, ++ { 0x1.24490f08ca22dp-83, 0x1.b68488148e38cp-79 }, ++ { 0x1.e4940102c0a26p-84, 0x1.6bbe630bdc58cp-79 }, ++ { 0x1.91a40479b1837p-84, 0x1.2daed7fd23569p-79 }, ++ { 0x1.4cdb9a0d20ef7p-84, 0x1.f45c523b5ec4ep-80 }, ++ { 0x1.13d21ec7ce7a5p-84, 0x1.9ee3b5d440d2p-80 }, ++ { 0x1.c90f21d2d475fp-85, 0x1.57f9f997e1f52p-80 }, ++ { 0x1.7aa5b8d4b4359p-85, 0x1.1d262b74c69e4p-80 }, ++ { 0x1.39a647b21bed6p-85, 0x1.d8b50e711660ap-81 }, ++ { 0x1.03c70a0dadb1dp-85, 0x1.87c4bc616ed3dp-81 }, ++ { 0x1.ae43ba1c85bb1p-86, 0x1.44a615135e868p-81 }, ++ { 0x1.6446b3db12c58p-86, 0x1.0cfed72363bb7p-81 }, ++ { 0x1.26f997cdc041dp-86, 0x1.bdb5f7a82d0f4p-82 }, ++ { 0x1.e86218ea3e6acp-87, 0x1.7136d3b897e11p-82 }, ++ { 0x1.9440cec9f5e3ap-87, 0x1.31cf2729ac24dp-82 }, ++ { 0x1.4e93295651e9bp-87, 0x1.fa860b2bf75f8p-83 }, ++ { 0x1.14df714b2cc27p-87, 0x1.a36fa64c5b19fp-83 }, ++ { 0x1.ca3058fde005fp-88, 0x1.5b478418ed951p-83 }, ++ { 0x1.7b135dc219792p-88, 0x1.1f8035d726d41p-83 }, ++ { 0x1.3995999427ba7p-88, 0x1.dbf75e60682c2p-84 }, ++ { 0x1.03604de581436p-88, 0x1.89f0afa1deecap-84 }, ++ { 0x1.ad067d36fa2c8p-89, 0x1.4602a49df0a52p-84 }, ++ { 0x1.62c6642f5d4b9p-89, 0x1.0dc2db21eaf21p-84 }, ++ { 0x1.2556d7a42568ap-89, 0x1.be61355e30a98p-85 }, ++ { 0x1.e5068065139bep-90, 0x1.7145a7dd1cf8cp-85 }, ++ { 0x1.90efd5cd13c3p-90, 0x1.31725e0702649p-85 }, ++ { 0x1.4b62e9374c452p-90, 0x1.f93e90900fd6bp-86 }, ++ { 0x1.11de133cc6916p-90, 0x1.a1d0c10ff74dfp-86 }, ++ { 0x1.c49bf95c5f745p-91, 0x1.597928f3e0c7p-86 }, ++ { 0x1.75f56ab48bd89p-91, 0x1.1d9f316556fccp-86 }, ++ { 0x1.34f00cbd8ea42p-91, 0x1.d8389849eaf01p-87 }, ++ { 0x1.fe61cbe17950dp-92, 0x1.8650e1db268ebp-87 }, ++ { 0x1.a589caf82618cp-92, 0x1.4293ddcb013c1p-87 }, ++ { 0x1.5c1e107375834p-92, 0x1.0a90025fd130cp-87 }, ++ { 0x1.1f7319c565581p-92, 0x1.b87eb911fc5efp-88 }, ++ { 0x1.daa6c6af5c17fp-93, 0x1.6bea387f6b0ap-88 }, ++ { 0x1.87d63120a742cp-93, 0x1.2c9c915a28ddap-88 }, ++ { 0x1.436e80df031fp-93, 0x1.f094496a5e827p-89 }, ++ { 0x1.0aef9bffa708dp-93, 0x1.9a19446f657ccp-89 }, ++ { 0x1.b890579385cdcp-94, 0x1.52a33b4b8094cp-89 }, ++ { 0x1.6b84ffdb5d885p-94, 0x1.179841589cdp-89 }, ++ { 0x1.2be9773700384p-94, 0x1.cda2d93f291abp-90 }, ++ { 0x1.eecef0206652cp-95, 0x1.7d0e0e7cac5bp-90 }, ++ { 0x1.9821029662ccfp-95, 0x1.3a804f20fd2f4p-90 }, ++ { 0x1.5097c74b3d08ep-95, 0x1.038a34010e13fp-90 }, ++ { 0x1.158fcf12f6c8ep-95, 0x1.ac508371be502p-91 }, ++ { 0x1.c9b60c296975dp-96, 0x1.61608ea10db83p-91 }, ++ { 0x1.7958bc88e6006p-96, 0x1.2383e3bce375p-91 }, ++ { 0x1.370dfa8e149d1p-96, 0x1.e0e820ef7463p-92 }, ++ { 0x1.0060a594f59c7p-96, 0x1.8c9f67fa9c048p-92 }, ++ { 0x1.a6925bee98d74p-97, 0x1.471203b047e85p-92 }, ++ { 0x1.5c351b499632p-97, 0x1.0dae92b93887p-92 }, ++ { 0x1.1ee518d278c58p-97, 0x1.bcabf2ba981bfp-93 }, ++ { 0x1.d8b2f8b0b2924p-98, 0x1.6e8f25135d13fp-93 }, ++ { 0x1.855f0a34582a6p-98, 0x1.2e219acb023aep-93 }, ++ { 0x1.40b1881e58e3p-98, 0x1.f1fe817902cebp-94 }, ++ { 0x1.0818d80634105p-98, 0x1.9a5d5233d8e13p-94 }, ++ { 0x1.b2ecbb2e8d76cp-99, 0x1.521d0766f8b85p-94 }, ++ { 0x1.6614d9da549fbp-99, 0x1.168c985c93c95p-94 }, ++ { 0x1.26c7736a63e7fp-99, 0x1.cae6809d7d445p-95 }, ++ { 0x1.e546a107b57d5p-100, 0x1.79f71edd3cb51p-95 }, ++ { 0x1.8f64020effd9cp-100, 0x1.37443c37e4835p-95 }, ++ { 0x1.48aa64075b15p-100, 0x1.004e8297ce819p-95 }, ++ { 0x1.0e6e891142764p-100, 0x1.a60ceba01346ap-96 }, ++ { 0x1.bcfa525d16889p-101, 0x1.5b71dfbe662f9p-96 }, ++ { 0x1.6e0be1ed4e4ccp-101, 0x1.1dfe04c5b884ap-96 }, ++ { 0x1.2d14568fa3103p-101, 0x1.d6c299b6b03dep-97 }, ++ { 0x1.ef39c9c67da7p-102, 0x1.8366f8264d161p-97 }, ++ { 0x1.973b86e9a718fp-102, 0x1.3ec401194be5fp-97 }, ++ { 0x1.4ed55e6d4d5dfp-102, 0x1.0641ea45be131p-97 }, ++ { 0x1.1345b1de4a541p-102, 0x1.af7b06dd7c2fap-98 }, ++ { 0x1.c48e8cf8e20edp-103, 0x1.62e7924beab28p-98 }, ++ { 0x1.73f6cd7db5a56p-103, 0x1.23e2123cac1dcp-98 }, ++ { 0x1.31afb2e91937bp-103, 0x1.e00be39adba8fp-99 }, ++ { 0x1.f6600b76754fcp-104, 0x1.8ab4ee2717624p-99 }, ++ { 0x1.9cc2881babafp-104, 0x1.447fa5b4e25fep-99 }, ++ { 0x1.5316d5b010b17p-104, 0x1.0abf02c055867p-99 }, ++ { 0x1.1688993cfebe3p-104, 0x1.b67d9f35f4de8p-100 }, ++ { 0x1.c98758b0a4ebap-105, 0x1.685ccfe1e2ab5p-100 }, ++ { 0x1.77baf72da4868p-105, 0x1.281e65593d67p-100 }, ++ { 0x1.3484c1e2418cbp-105, 0x1.e698bd1000fd2p-101 }, ++ { 0x1.fa991c211034p-106, 0x1.8fc0326c87b11p-101 }, ++ { 0x1.9fe006460b912p-106, 0x1.485d5ed97243ep-101 }, ++ { 0x1.555b844a27ecdp-106, 0x1.0db191585c5a2p-101 }, ++ { 0x1.182875c9f3984p-106, 0x1.baf50ff65044dp-102 }, ++ { 0x1.cbce2423a80acp-107, 0x1.6bb8ebe73c54ap-102 }, ++ { 0x1.794741d4d28c6p-107, 0x1.2a9fd1221e357p-102 }, ++ { 0x1.3586a18110b0ep-107, 0x1.ea4b746dbeae3p-103 }, ++ { 0x1.fbd1c1dcb3991p-108, 0x1.9271dfe5687e7p-103 }, ++ { 0x1.a085cf5d6c87ep-108, 0x1.4a4b9ae2c857dp-103 }, ++ { 0x1.559911f8b7812p-108, 0x1.0f0c2d578f06ap-103 }, ++ { 0x1.181ddd71c27fbp-108, 0x1.bccd0201398bap-104 }, ++ { 0x1.cb5889458c00ep-109, 0x1.6cec95dfef21ap-104 }, ++ { 0x1.789499da6bff1p-109, 0x1.2b5ae7721763fp-104 }, ++ { 0x1.34b0b5ddf82c6p-109, 0x1.eb1327842cc63p-105 }, ++ { 0x1.fa04646636ebep-110, 0x1.92bda7bca05b7p-105 }, ++ { 0x1.9eb0ea42d451ep-110, 0x1.4a4186866270ap-105 }, ++ { 0x1.53ce6234f7db7p-110, 0x1.0ec8a57831ec5p-105 }, ++ { 0x1.1668fdbb007d5p-110, 0x1.bbfd05e1b64f3p-106 }, ++ { 0x1.c8289c5fd0187p-111, 0x1.6bf24d893426cp-106 }, ++ { 0x1.75a62b0407aefp-111, 0x1.2a4c4fb42b862p-106 }, ++ { 0x1.3206cc37b0e4ap-111, 0x1.e8ec43d273fbap-107 }, ++ { 0x1.f53937c26236ep-112, 0x1.90a22ee0d506ep-107 }, ++ { 0x1.9a69ad7793258p-112, 0x1.483f4fee6553cp-107 }, ++ { 0x1.50039cbf56e41p-112, 0x1.0ce82f0139653p-107 }, ++ { 0x1.13119a81ee824p-112, 0x1.b888d3fea2a71p-108 }, ++ { 0x1.c24cdc6a6909bp-113, 0x1.68ce8cbb7eaebp-108 }, ++ { 0x1.7089487e1182ep-113, 0x1.2778e05f0f826p-108 }, ++ { 0x1.2d94fe2dcd5a4p-113, 0x1.e3e0a1bcb7b9p-109 }, ++ { 0x1.ed85fe218f015p-114, 0x1.8c29185861611p-109 }, ++ { 0x1.93c37ffa2be3p-114, 0x1.444e2559eb861p-109 }, ++ { 0x1.4a49efe08b764p-114, 0x1.09735c9244f77p-109 }, ++ { 0x1.0e26d33274acdp-114, 0x1.b28030446d467p-110 }, ++ { 0x1.b9dfc560135fp-115, 0x1.638fa554a9791p-110 }, ++ { 0x1.6955081ac80b2p-115, 0x1.22ed7a20d2031p-110 }, ++ { 0x1.276f565251c73p-115, 0x1.dc07399fb9ebdp-111 }, ++ { 0x1.e30d639687648p-116, 0x1.8566bbf3afdccp-111 }, ++ { 0x1.8adc46e842374p-116, 0x1.3e7fef514c8f7p-111 }, ++ { 0x1.42bb0eedd3fb2p-116, 0x1.0479dd0162987p-111 }, ++ { 0x1.07beb0edff1b8p-116, 0x1.a9fe7272a642bp-112 }, ++ { 0x1.af070915be74ep-117, 0x1.5c4d5495043b3p-112 }, ++ { 0x1.602994f04daa5p-117, 0x1.1cbea64272b5fp-112 }, ++ { 0x1.1fb139d7ad13p-117, 0x1.d18375dee0b86p-113 }, ++ { 0x1.d5fdfa65dd70dp-118, 0x1.7c798c690caf6p-113 }, ++ { 0x1.7fdb85ec65bd4p-118, 0x1.36eec953c25e3p-113 }, ++ { 0x1.39787263ebbcap-118, 0x1.fc2409fc1812ep-114 }, ++ { 0x1.ffeb0495cc103p-119, 0x1.9f29b80329143p-114 }, ++ { 0x1.a1f276c1aeb71p-119, 0x1.5328106ecc8f8p-114 }, ++ { 0x1.552f40714fe54p-119, 0x1.1507fc4d2f4bap-114 }, ++ { 0x1.167c9d827337cp-119, 0x1.c484291d11ffp-115 }, ++ { 0x1.c690e28b6a9bfp-120, 0x1.7189333483e3bp-115 }, ++ { 0x1.72f13b97db104p-120, 0x1.2dbc3e931f24dp-115 }, ++ { 0x1.2eaa616a9b21cp-120, 0x1.ecb050b3055ap-116 }, ++ { 0x1.edda16b7edc87p-121, 0x1.9231c8255bcdbp-116 }, ++ { 0x1.92da9c960076ap-121, 0x1.4848161f4e509p-116 }, ++ { 0x1.48955baf138afp-121, 0x1.0beb55467080ap-116 }, ++ { 0x1.0bf90e157d9dap-121, 0x1.b542338309321p-117 }, ++ { 0x1.b5082a5d8de09p-122, 0x1.64c56b8fb3cecp-117 }, ++ { 0x1.6454856772fedp-122, 0x1.231052b5f7dd6p-117 }, ++ { 0x1.227ecea87251dp-122, 0x1.dadb937ed07ebp-118 }, ++ { 0x1.d99724acabf71p-123, 0x1.834eb55a1d18ep-118 }, ++ { 0x1.81ff31715569ap-123, 0x1.3bdc43dd8955fp-118 }, ++ { 0x1.3a90e48619574p-123, 0x1.018fd4cd15479p-118 }, ++ { 0x1.005296113b586p-123, 0x1.a3fee5158c03fp-119 }, ++ { 0x1.a1acf8c750894p-124, 0x1.5664a8518a142p-119 }, ++ { 0x1.54421936100c1p-124, 0x1.171860917e7c8p-119 }, ++ { 0x1.152813e135602p-124, 0x1.c6f152728fb8fp-120 }, ++ { 0x1.c375a4cba7b23p-125, 0x1.72bf4ab4db677p-120 }, ++ { 0x1.6fa5568fa20f3p-125, 0x1.2e18c95c4bfb1p-120 }, ++ { 0x1.2b5b13ef0805cp-125, 0x1.ec41a3d4cf576p-121 }, ++ { 0x1.e77117811a7d2p-126, 0x1.91022d83bf8f5p-121 }, ++ { 0x1.8ccd934db2cbp-126, 0x1.46a292659269ep-121 }, ++ { 0x1.42faa33070d2ap-126, 0x1.0a05da41d6048p-121 }, ++ { 0x1.06db98d7f6125p-126, 0x1.b14375f322de2p-122 }, ++ { 0x1.abcdbdfcc9f7cp-127, 0x1.60c75486158bp-122 }, ++ { 0x1.5c15c23fbb403p-127, 0x1.1f35bc35fb59fp-122 }, ++ { 0x1.1b2fdb7cab6dfp-127, 0x1.d39954e0a9d3dp-123 }, ++ { 0x1.ccb8a64624f6cp-128, 0x1.7c98ab66270f5p-123 }, ++ { 0x1.76bb52e82b59ap-128, 0x1.35be6eb898758p-123 }, ++ { 0x1.30c117f001ac3p-128, 0x1.f819edd38db9cp-124 }, ++ { 0x1.efa0e49e3feccp-129, 0x1.9a2821242ebdp-124 }, ++ { 0x1.92fa046d58d4ep-129, 0x1.4dadd528d6ea9p-124 }, ++ { 0x1.479ae4e865feep-129, 0x1.0f6d9e092345cp-124 }, ++ { 0x1.0a4c603089f16p-129, 0x1.b987187720ae4p-125 }, ++ { 0x1.b0e03e96a5485p-130, 0x1.6711ad9310ce1p-125 }, ++ { 0x1.5fc89a9e03199p-130, 0x1.23f97aea9f29fp-125 }, ++ { 0x1.1dd90a3522c75p-130, 0x1.dac6b554960ffp-126 }, ++ { 0x1.d07c0b8b30398p-131, 0x1.81f77dc55f2bdp-126 }, ++ { 0x1.795540ea5dda7p-131, 0x1.39bb36d1a51dap-126 }, ++ { 0x1.327f191dd6247p-131, 0x1.fdf7c425dfb89p-127 }, ++ { 0x1.f1db008e061d6p-132, 0x1.9e6c7f42ee3ap-127 }, ++ { 0x1.944b7c8850269p-132, 0x1.50bd38f4b0e14p-127 }, ++ { 0x1.4846e1e475567p-132, 0x1.11954fcd9d596p-127 }, ++ { 0x1.0a8512d6deebp-132, 0x1.bc7d8a23288e1p-128 }, ++ { 0x1.b0b57b848dfd5p-133, 0x1.69099571fea27p-128 }, ++ { 0x1.5f385601a1095p-133, 0x1.25378a982372p-128 }, ++ { 0x1.1d0aee3f21eaep-133, 0x1.dc36feecfa2bap-129 }, ++ { 0x1.ce9ce0f1b56b8p-134, 0x1.82a9fb7ad076bp-129 }, ++ { 0x1.775af322a6fb6p-134, 0x1.39ea243c7bf71p-129 }, ++ { 0x1.3084e2fb958e5p-134, 0x1.fda4af81b306ap-130 }, ++ { 0x1.ee0aaff5c7275p-135, 0x1.9da7a2c5ab52cp-130 }, ++ { 0x1.90b5b261712acp-135, 0x1.4fb44aa933f5cp-130 }, ++ { 0x1.44f853ca3d2a1p-135, 0x1.1068e39733d5fp-130 }, ++ { 0x1.07839b24e2329p-135, 0x1.ba0b385a9673fp-131 }, ++ { 0x1.ab4ef712ea53cp-136, 0x1.669cb88b98bb4p-131 }, ++ { 0x1.5a6a27edc2aafp-136, 0x1.22e458ff074e2p-131 }, ++ { 0x1.18ccfb2383c0dp-136, 0x1.d7dccacf16bdfp-132 }, ++ { 0x1.c72c7d427b5c7p-137, 0x1.7ea9a57d9c3fdp-132 }, ++ { 0x1.70debd3477d7cp-137, 0x1.364981b4fcaccp-132 }, ++ { 0x1.2ae4c8505c4dcp-137, 0x1.f723b60a4c45ap-133 }, ++ { 0x1.e45347f37826dp-138, 0x1.97e0b5db827a8p-133 }, ++ { 0x1.8859d9d834871p-138, 0x1.4a9cae44d02aap-133 }, ++ { 0x1.3dcdd6f53a761p-138, 0x1.0bf347561e06fp-133 }, ++ { 0x1.0163c7a1b8ce3p-138, 0x1.b246ea577dcd5p-134 }, ++ { 0x1.a0de9e4d0326ap-139, 0x1.5fe1a8f2ffd47p-134 }, ++ { 0x1.518a7407eb90ep-139, 0x1.1d15869af1a46p-134 }, ++ { 0x1.1146574533e59p-139, 0x1.cde08f63664fdp-135 }, ++ { 0x1.ba6f77161f191p-140, 0x1.761ba88bf6eedp-135 }, ++ { 0x1.661c59f17faep-140, 0x1.2efafc89163c3p-135 }, ++ { 0x1.21d2894bdd4c7p-140, 0x1.eab12c8aa7e5p-136 }, ++ { 0x1.d50e0eba3e44dp-141, 0x1.8d4d432dee077p-136 }, ++ { 0x1.7b84a5753cf1fp-141, 0x1.41a589d11cb19p-136 }, ++ { 0x1.33091416396dbp-141, 0x1.045db9ec2ba81p-136 }, ++ { 0x1.f0bb3ff173143p-142, 0x1.a57861242277fp-137 }, ++ { 0x1.91c3cacc75aaap-142, 0x1.551681b8d361p-137 }, ++ { 0x1.44ea256a84bbp-142, 0x1.140098b38820cp-137 }, ++ { 0x1.06bb841410434p-142, 0x1.be9e2feb561ep-138 }, ++ { 0x1.a8d98b0d5771p-143, 0x1.694e9fdcb7be5p-138 }, ++ { 0x1.57755a2313bdfp-143, 0x1.24419d9ce37ffp-138 }, ++ { 0x1.15a03d39bca43p-143, 0x1.d8bf1578b3aacp-139 }, ++ { 0x1.c0c4e9f387792p-144, 0x1.7e4dfe2cee6a2p-139 }, ++ { 0x1.6aa9b63079411p-144, 0x1.3520b0bf08a51p-139 }, ++ { 0x1.250ad98a67e4fp-144, 0x1.f3daa3dd37f3ap-140 }, ++ { 0x1.d9842421f4af1p-145, 0x1.94140b3abb78ep-140 }, ++ { 0x1.7e859d0226582p-145, 0x1.469d2facc66f7p-140 }, ++ { 0x1.34f9e5d4c96d3p-145, 0x1.07f7c6b04c092p-140 }, ++ { 0x1.f314a5f5af6d7p-146, 0x1.aa9f80ec12e52p-141 }, ++ { 0x1.9306ca687d568p-146, 0x1.58b5e63278412p-141 }, ++ { 0x1.456b681315dafp-146, 0x1.167dcc97a0fd3p-141 }, ++ { 0x1.06b98180e66fp-146, 0x1.c1ee5bab4ede7p-142 }, ++ { 0x1.a82a4c036e3f3p-147, 0x1.6b69077bfc3c7p-142 }, ++ { 0x1.565cda5d05a6ap-147, 0x1.257dcc5bc2717p-142 }, ++ { 0x1.144d77262f022p-147, 0x1.d9fdd2296338fp-143 }, ++ { 0x1.bdec7b50a66cp-148, 0x1.7eb427b4ddd71p-143 }, ++ { 0x1.67cb265d8483ap-148, 0x1.34f5aee91217p-143 }, ++ { 0x1.224399b226996p-148, 0x1.f2ca4dc8ff69fp-144 }, ++ { 0x1.d448f86c23d12p-149, 0x1.92943634830d2p-144 }, ++ { 0x1.79b2a15ae0faap-149, 0x1.44e2d8e947442p-144 }, ++ { 0x1.3098d833c2dap-149, 0x1.0627b1e47c261p-144 }, ++ { 0x1.eb3aa595948f3p-150, 0x1.a705784809825p-145 }, ++ { 0x1.8c0f08dff4e68p-150, 0x1.554226cd542efp-145 }, ++ { 0x1.3f49a8880f6adp-150, 0x1.1343e7a202e9p-145 }, ++ { 0x1.015dd1c62a082p-150, 0x1.bc0384ab3550dp-146 }, ++ { 0x1.9edb80143a705p-151, 0x1.660fe966c4e28p-146 }, ++ { 0x1.4e52056f2dec4p-151, 0x1.20b6b60dae611p-146 }, ++ { 0x1.0d62a769875ep-151, 0x1.d1893fc15ba16p-147 }, ++ { 0x1.b2128dd015485p-152, 0x1.7747e31ddd25cp-147 }, ++ { 0x1.5dad6d3a16694p-152, 0x1.2e7c997078049p-147 }, ++ { 0x1.19a81ef58dfc6p-152, 0x1.e790d89e8e564p-148 }, ++ { 0x1.c5ae1b79c4ee8p-153, 0x1.88e545d12ba57p-148 }, ++ { 0x1.6d56e11abc8a7p-153, 0x1.3c919aea9787p-148 }, ++ { 0x1.262a204b39df1p-153, 0x1.fe13c6f07b6aep-149 }, ++ { 0x1.d9a774b67b183p-154, 0x1.9ae2b16a9550ap-149 }, ++ { 0x1.7d48e51f6d6edp-154, 0x1.4af14f857334ep-149 }, ++ { 0x1.32e43016e50e4p-154, 0x1.0a8564eab8ff5p-149 }, ++ { 0x1.edf747f9f14f1p-155, 0x1.ad3a33350402p-150 }, ++ { 0x1.8d7d80e14b91p-155, 0x1.5996d7e13f467p-150 }, ++ { 0x1.3fd1708b687cbp-155, 0x1.1636f3d76858ap-150 }, ++ { 0x1.014ad3fec9ec4p-155, 0x1.bfe545fce7a55p-151 }, ++ { 0x1.9dee40ecc2982p-156, 0x1.687ce08618977p-151 }, ++ { 0x1.4ceca2b27454p-156, 0x1.221a377d62eb4p-151 }, ++ { 0x1.0bbd071377b87p-156, 0x1.d2dcd30499eb7p-152 }, ++ { 0x1.ae9438e9a5c0bp-157, 0x1.779da2df7a30cp-152 }, ++ { 0x1.5a30285652adp-157, 0x1.2e2a7c1fe1c5fp-152 }, ++ { 0x1.164daef1c2b15p-157, 0x1.e61933d473856p-153 }, ++ { 0x1.bf6806876a635p-158, 0x1.86f2e6e7e582ap-153 }, ++ { 0x1.67960688424efp-158, 0x1.3a62b4892ce6ep-153 }, ++ { 0x1.20f7f47f404a7p-158, 0x1.f99234ed0089ep-154 }, ++ { 0x1.d061d530972c5p-159, 0x1.9676058974913p-154 }, ++ { 0x1.7517e8c57f622p-159, 0x1.46bd7c1e28efp-154 }, ++ { 0x1.2bb6ba79809edp-159, 0x1.069f8cb02119fp-154 }, ++ { 0x1.e17962871247p-160, 0x1.a61febb6d574dp-155 }, ++ { 0x1.82af24bbe81ddp-160, 0x1.53351984f5d61p-155 }, ++ { 0x1.3684a09debb18p-160, 0x1.108b4faaa8971p-155 }, ++ { 0x1.f2a603a977e7cp-161, 0x1.b5e91e3ee196dp-156 }, ++ { 0x1.9054beadf5a51p-161, 0x1.5fc381e001854p-156 }, ++ { 0x1.415c074fc9065p-161, 0x1.1a8782bc000bep-156 }, ++ { 0x1.01ef55a0092e3p-161, 0x1.c5c9be5ba37d4p-157 }, ++ { 0x1.9e016e74801cbp-162, 0x1.6c625c9dd5c05p-157 }, ++ { 0x1.4c3713bae315dp-162, 0x1.248f08aa2a9f5p-157 }, ++ { 0x1.0a8cf82738469p-162, 0x1.d5b98efc2e8d5p-158 }, ++ { 0x1.abada51b7b47ep-163, 0x1.790b07dcc17ddp-158 }, ++ { 0x1.570fb47030aa8p-163, 0x1.2e9c8b4dec3dep-158 }, ++ { 0x1.13270ae279a57p-163, 0x1.e5affac730013p-159 }, ++ { 0x1.b951931589ad6p-164, 0x1.85b69d604d483p-159 }, ++ { 0x1.61dfa678e3296p-164, 0x1.38aa7fa8655e3p-159 }, ++ { 0x1.1bb88966006c4p-164, 0x1.f5a41ad29abd6p-160 }, ++ { 0x1.c6e52f00f28e6p-165, 0x1.925df815332e1p-160 }, ++ { 0x1.6ca07adb2cabep-165, 0x1.42b32a68b6433p-160 }, ++ { 0x1.243c4de072741p-165, 0x1.02c65f05a223cp-160 }, ++ { 0x1.d4603cf73627ep-166, 0x1.9ef9ba1f58105p-161 }, ++ { 0x1.774b9c8b0652p-166, 0x1.4cb0a4ddc2264p-161 }, ++ { 0x1.2cad15ed5f00dp-166, 0x1.0ab038a2ddd17p-161 }, ++ { 0x1.e1ba565f2f2dap-167, 0x1.ab82536c08c11p-162 }, ++ { 0x1.81da56c03901cp-167, 0x1.569ce24f30cadp-162 }, ++ { 0x1.350587b61e2e7p-167, 0x1.128ac3f80b9acp-162 }, ++ { 0x1.eeeaf2386ba73p-168, 0x1.b7f008c184953p-163 }, ++ { 0x1.8c45dba9ebaffp-168, 0x1.6071b5b7d5f0bp-163 }, ++ { 0x1.3d40375ab2fc9p-168, 0x1.1a5112ad78884p-163 }, ++ { 0x1.fbe96dd52dd2ap-169, 0x1.c43afb43abf3ap-164 }, ++ { 0x1.96874b77050b3p-169, 0x1.6a28d7dab475p-164 }, ++ { 0x1.4557ac9b8a4ffp-169, 0x1.21fe234726979p-164 }, ++ { 0x1.04568afbad70bp-169, 0x1.d05b30647f5b6p-165 }, ++ { 0x1.a097bba9c5bbap-170, 0x1.73bbedaae952fp-165 }, ++ { 0x1.4d4668bc3c638p-170, 0x1.298ce64edbc52p-165 }, ++ { 0x1.0a969821c25d4p-170, 0x1.dc489a35fd89p-166 }, ++ { 0x1.aa703eac27071p-171, 0x1.7d248efdebaf1p-166 }, ++ { 0x1.5506ec96ce1d8p-171, 0x1.30f843b6c62b7p-166 }, ++ { 0x1.10b0827e1c59fp-171, 0x1.e7fb2011e1175p-167 }, ++ { 0x1.b409eb99c2287p-172, 0x1.865c4d7ebd336p-167 }, ++ { 0x1.5c93bed6568e9p-172, 0x1.383b206d0bb99p-167 }, ++ { 0x1.169ff47b694c6p-172, 0x1.f36aa78ac249dp-168 }, ++ { 0x1.bd5de633517f7p-173, 0x1.8f5cbbd7e3bd9p-168 }, ++ { 0x1.63e7724f64774p-173, 0x1.3f5064180659dp-168 }, ++ { 0x1.1c60a3dd2224ep-173, 0x1.fe8f1d993bb19p-169 }, ++ { 0x1.c66566ef40333p-174, 0x1.981f750955121p-169 }, ++ { 0x1.6afcac6c09d1ap-174, 0x1.4632fef2669ecp-169 }, ++ { 0x1.21ee56dbc8c6ap-174, 0x1.04b03ffb7174ap-169 }, ++ { 0x1.cf19c31a391acp-175, 0x1.a09e23dee12dbp-170 }, ++ { 0x1.71ce2ba111a68p-175, 0x1.4cddefbe00daep-170 }, ++ { 0x1.2744e94597dfp-175, 0x1.09eb734c1a314p-170 }, ++ { 0x1.d77474fa3c96fp-176, 0x1.a8d28a7b21f9ep-171 }, ++ { 0x1.7856cde19858bp-176, 0x1.534c49c3a48ap-171 }, ++ { 0x1.2c60519b06073p-176, 0x1.0ef5469afe541p-171 }, ++ { 0x1.df6f23e67822ep-177, 0x1.b0b689ea896fp-172 }, ++ { 0x1.7e9197060941ap-177, 0x1.59793ad60d8abp-172 }, ++ { 0x1.313ca61e59763p-177, 0x1.13c9ee6b2a529p-172 }, ++ { 0x1.e703ac45eb1a5p-178, 0x1.b84429b1d33d8p-173 }, ++ { 0x1.8479b71b66ff2p-178, 0x1.5f60114dc317ap-173 }, ++ { 0x1.35d621cd7892fp-178, 0x1.1865baa279b03p-173 }, ++ { 0x1.ee2c2766d39aep-179, 0x1.bf759f4ae6481p-174 }, ++ { 0x1.8a0a908fbee34p-179, 0x1.64fc41f392bcdp-174 }, ++ { 0x1.3a29293d26666p-179, 0x1.1cc51b3533d1bp-174 }, ++ { 0x1.f4e2f320ed2f5p-180, 0x1.c645558315ad7p-175 }, ++ { 0x1.8f3fbe30bc1d8p-180, 0x1.6a496dcf4682p-175 }, ++ { 0x1.3e324f4cf0981p-180, 0x1.20e4a4b8e031ep-175 }, ++ { 0x1.fb22b934b993p-181, 0x1.ccadf3adb1afp-176 }, ++ { 0x1.941518f17ca26p-181, 0x1.6f4367d03dbd8p-176 }, ++ { 0x1.41ee59ab3f625p-181, 0x1.24c114d62226p-176 }, ++ { 0x1.00733b2d2d2a7p-181, 0x1.d2aa649df6e65p-177 }, ++ { 0x1.9886bd6d1085bp-182, 0x1.73e63a45afd4dp-177 }, ++ { 0x1.455a452136a6p-182, 0x1.285756918be22p-177 }, ++ { 0x1.0314c07978175p-182, 0x1.d835dd5ba6335p-178 }, ++ { 0x1.9c91111b6c15fp-183, 0x1.782e2c1c97a81p-178 }, ++ { 0x1.4873499e69a71p-183, 0x1.2ba486638ab1ep-178 }, ++ { 0x1.0573c7a800f18p-183, 0x1.dd4be385e972p-179 }, ++ { 0x1.a030c72f0cf33p-184, 0x1.7c17c5d99552cp-179 }, ++ { 0x1.4b36ddfcc8743p-184, 0x1.2ea5f617d321fp-179 }, ++ { 0x1.078e5ec28bafdp-184, 0x1.e1e853589fe15p-180 }, ++ { 0x1.a362e51221b9fp-185, 0x1.7f9fd64579e1ap-180 }, ++ { 0x1.4da2bb75a5c65p-185, 0x1.3159306d0abdp-180 }, ++ { 0x1.0962c95c3eb5p-185, 0x1.e6076548c0765p-181 }, ++ { 0x1.a624c67aa97dfp-186, 0x1.82c376c3acddfp-181 }, ++ { 0x1.4fb4e0c13d49p-186, 0x1.33bbfc6dd55a6p-181 }, ++ { 0x1.0aef82f484486p-186, 0x1.e9a5b32d2ef52p-182 }, ++ { 0x1.a874210dbadcfp-187, 0x1.85800f4a2d262p-182 }, ++ { 0x1.516b94dabb86dp-187, 0x1.35cc607ce4fd8p-182 }, ++ { 0x1.0c33410fd4c56p-187, 0x1.ecc03cea2935dp-183 }, ++ { 0x1.aa4f078af0321p-188, 0x1.87d359f39448ep-183 }, ++ { 0x1.52c5696370c9dp-188, 0x1.3788a50e33e44p-183 }, ++ { 0x1.0d2cf5025ba2dp-188, 0x1.ef546c9652b0ap-184 }, ++ { 0x1.abb3ec79d594dp-189, 0x1.89bb66243bfd5p-184 }, ++ { 0x1.53c13ca08d951p-189, 0x1.38ef570827673p-184 }, ++ { 0x1.0ddbcd68fc943p-189, 0x1.f1601a115b514p-185 }, ++ { 0x1.aca1a45423b35p-190, 0x1.8b369b3c6ec4fp-185 }, ++ { 0x1.545e3b0f8838ap-190, 0x1.39ff49c7fe5e8p-185 }, ++ { 0x1.0e3f374dd9d68p-190, 0x1.f2e18e05495b4p-186 }, ++ { 0x1.ad1767288e013p-191, 0x1.8c43bad265564p-186 }, ++ { 0x1.549be08e15927p-191, 0x1.3ab798c59d4c2p-186 }, ++ { 0x1.0e56def61fbc4p-191, 0x1.f3d7844c8a592p-187 }, ++ { 0x1.ad14d1b2f0b5fp-192, 0x1.8ce1e26fb8214p-187 }, ++ { 0x1.5479f9137160bp-192, 0x1.3b17a8d383f04p-187 }, ++ { 0x1.0e22b05782284p-192, 0x1.f4412db819edfp-188 }, ++ { 0x1.ac99e5e7b9269p-193, 0x1.8d108ccedcd75p-188 }, ++ { 0x1.53f8a0f98a8b8p-193, 0x1.3b1f28f8795cap-188 }, ++ { 0x1.0da2d734853ffp-193, 0x1.f41e3132440dap-189 }, ++ { 0x1.aba70af1767bp-194, 0x1.8ccf9296410aep-189 }, ++ { 0x1.531844d58365ep-194, 0x1.3ace12e143377p-189 }, ++ { 0x1.0cd7bedf59779p-194, 0x1.f36eac3bc78c2p-190 }, ++ { 0x1.aa3d0ca096eedp-195, 0x1.8c1f2a8f92477p-190 }, ++ { 0x1.51d9a0dfd2e93p-195, 0x1.3a24aae988ae7p-190 }, ++ { 0x1.0bc211a3c2859p-195, 0x1.f23332c263066p-191 }, ++ { 0x1.a85d1a4e6bedcp-196, 0x1.8affe95ac6f2ap-191 }, ++ { 0x1.503dbfed30324p-196, 0x1.39237fbbcfa18p-191 }, ++ { 0x1.0a62b7d92f095p-196, 0x1.f06cce511da3ep-192 }, ++ { 0x1.a608c535a2ba1p-197, 0x1.8972c09d7f45cp-192 }, ++ { 0x1.4e45f9fa4adffp-197, 0x1.37cb698950bdap-192 }, ++ { 0x1.08bad69ed20a4p-197, 0x1.ee1cfc9be3df9p-193 }, ++ { 0x1.a341fe436d2d7p-198, 0x1.8778fdb058321p-193 }, ++ { 0x1.4bf3f24d273a5p-198, 0x1.361d88db2b95bp-193 }, ++ { 0x1.06cbce44363ecp-198, 0x1.eb45ad695330ap-194 }, ++ { 0x1.a00b13659be7cp-199, 0x1.851447ccc879bp-194 }, ++ { 0x1.4949952fc2371p-199, 0x1.341b44ff4c3c6p-194 }, ++ { 0x1.0497386163a39p-199, 0x1.e7e93fdecaep-195 }, ++ { 0x1.9c66ac5ae65b3p-200, 0x1.82469dbf1833ep-195 }, ++ { 0x1.464915486577bp-200, 0x1.31c64a141680ep-195 }, ++ { 0x1.021ee5a248c7fp-200, 0x1.e40a7f340982ap-196 }, ++ { 0x1.9857c70b8b2bcp-201, 0x1.7f125320f1e94p-196 }, ++ { 0x1.42f4e894cc71ap-201, 0x1.2f2086b6a5cf4p-196 }, ++ { 0x1.fec9b69351b7p-202, 0x1.dfac9ed4c27cep-197 }, ++ { 0x1.93e1b371520a1p-202, 0x1.7b7a0d21f0262p-197 }, ++ { 0x1.3f4fc50de840ap-202, 0x1.2c2c295822108p-197 }, ++ { 0x1.f8d6a0e0a9508p-203, 0x1.dad335f7aacdbp-198 }, ++ { 0x1.8f080f16c57cp-203, 0x1.7780bee4609a1p-198 }, ++ { 0x1.3b5c9cfaada16p-203, 0x1.28eb9d3f5000ap-198 }, ++ { 0x1.f269560bdbf92p-204, 0x1.d5823ab37d92ep-199 }, ++ { 0x1.89cec0363502dp-204, 0x1.7329a5753ca24p-199 }, ++ { 0x1.371e9af8e6ccfp-204, 0x1.2561873c1cc7ap-199 }, ++ { 0x1.eb86f931c309dp-205, 0x1.cfbdfc9b64d6ep-200 }, ++ { 0x1.8439f081b525ap-205, 0x1.6e7843670c8d2p-200 }, ++ { 0x1.32991dc38028ep-205, 0x1.2190c2136fc76p-200 }, ++ { 0x1.e434fdd743954p-206, 0x1.c98b1eed08258p-201 }, ++ { 0x1.7e4e079de1a2ep-206, 0x1.69705c180d6c1p-201 }, ++ { 0x1.2dcfb3be31ebdp-206, 0x1.1d7c5aaa0949p-201 }, ++ { 0x1.dc7920bafc5dcp-207, 0x1.c2ee925b3e3f6p-202 }, ++ { 0x1.780fa5599d558p-207, 0x1.6415eeac7f744p-202 }, ++ { 0x1.28c6164ec1235p-207, 0x1.19278bf59ff34p-202 }, ++ { 0x1.d459605b63623p-208, 0x1.bbed8e8100752p-203 }, ++ { 0x1.71839bad6a45bp-208, 0x1.5e6d30c67b96bp-203 }, ++ { 0x1.2380250c57526p-208, 0x1.1495babbc8d8ep-203 }, ++ { 0x1.cbdbf53eed588p-209, 0x1.b48d8b08c37b5p-204 }, ++ { 0x1.6aaee88d3a5e6p-209, 0x1.587a8905112ebp-204 }, ++ { 0x1.1e01e0cda0c0ep-209, 0x1.0fca71267dd26p-204 }, ++ { 0x1.c3074a0c1c67dp-210, 0x1.acd43894c1f06p-205 }, ++ { 0x1.6396af97c5f7fp-210, 0x1.52428954b7c2fp-205 }, ++ { 0x1.184f669e7e645p-210, 0x1.0ac95a364b406p-205 }, ++ { 0x1.b9e1f37f768c9p-211, 0x1.a4c779750fb77p-206 }, ++ { 0x1.5c4033ae88d94p-211, 0x1.4bc9e91b546a8p-206 }, ++ { 0x1.126ceaa621095p-211, 0x1.05963d1a5105bp-206 }, ++ { 0x1.b072a84d6770bp-212, 0x1.9c6d5a387a6d7p-207 }, ++ { 0x1.54b0d08180ac6p-212, 0x1.45157f4a2e598p-207 }, ++ { 0x1.0c5eb30658611p-212, 0x1.0034f87652744p-207 }, ++ { 0x1.a6c038fdf5aedp-213, 0x1.93cc0a254a9f5p-208 }, ++ { 0x1.4cedf419a9b38p-213, 0x1.3e2a3c60327aap-208 }, ++ { 0x1.062912bcc23f9p-213, 0x1.f552fb3e1c70bp-209 }, ++ { 0x1.9cd187cff951cp-214, 0x1.8ae9d3a6eb66fp-209 }, ++ { 0x1.44fd186d008c2p-214, 0x1.370d2466d3327p-209 }, ++ { 0x1.ffa0c91caab55p-215, 0x1.e9ef97aa04b46p-210 }, ++ { 0x1.92ad80b12a09bp-215, 0x1.81cd14bd535bbp-210 }, ++ { 0x1.3ce3bd0683046p-215, 0x1.2fc348f3a8121p-210 }, ++ { 0x1.f2b20c0b002abp-216, 0x1.de47d70b3398cp-211 }, ++ { 0x1.885b1157e885cp-216, 0x1.787c377ac34cdp-211 }, ++ { 0x1.34a760cc47acap-216, 0x1.2851c338b22e4p-211 }, ++ { 0x1.e58ea51580badp-217, 0x1.d263d33512bb6p-212 }, ++ { 0x1.7de1218b19542p-217, 0x1.6efdaa9c0e45ep-212 }, ++ { 0x1.2c4d7bed4d522p-217, 0x1.20bdae2cd61c6p-212 }, ++ { 0x1.d83f3d3e6d15p-218, 0x1.c64ba5bdb46dep-213 }, ++ { 0x1.73468ba3c29b8p-218, 0x1.6557da47246f7p-213 }, ++ { 0x1.23db7a001a935p-218, 0x1.190c20d5b5808p-213 }, ++ { 0x1.cacc668087b83p-219, 0x1.ba075f0192b6p-214 }, ++ { 0x1.689215536317fp-219, 0x1.5b9128fb09361p-214 }, ++ { 0x1.1b56b45aac06fp-219, 0x1.114228bb99133p-214 }, ++ { 0x1.bd3e92f58e3aep-220, 0x1.ad9efd6e7e35p-215 }, ++ { 0x1.5dca68b92a62fp-220, 0x1.51afe8bbb6b6cp-215 }, ++ { 0x1.12c46cab86e91p-220, 0x1.0964c48f92b05p-215 }, ++ { 0x1.af9e0c680145ap-221, 0x1.a11a652260dp-216 }, ++ { 0x1.52f60dcf5b39p-221, 0x1.47ba5483b6e8fp-216 }, ++ { 0x1.0a29c7db10f7p-221, 0x1.0178df0b67157p-216 }, ++ { 0x1.a1f2ec5b27de2p-222, 0x1.948157e97fbd7p-217 }, ++ { 0x1.481b643932becp-222, 0x1.3db68a0470a4fp-217 }, ++ { 0x1.018bc93b8e2e5p-222, 0x1.f306942454ae6p-218 }, ++ { 0x1.9445149305037p-223, 0x1.87db6da6dd3cap-218 }, ++ { 0x1.3d409d78b6819p-223, 0x1.33aa83bd4deabp-218 }, ++ { 0x1.f1de9c1ab95aap-224, 0x1.e311742f9561bp-219 }, ++ { 0x1.869c2824b4b6bp-224, 0x1.7b300d303ed2cp-219 }, ++ { 0x1.326bb792c8c5bp-224, 0x1.299c1370fc2d1p-219 }, ++ { 0x1.e0b212b870715p-225, 0x1.d31b83aa1a53bp-220 }, ++ { 0x1.78ff85165ac91p-225, 0x1.6e8665a634affp-220 }, ++ { 0x1.27a27826da7a5p-225, 0x1.1f90dcff1976ep-220 }, ++ { 0x1.cf9b0072f8176p-226, 0x1.c32d9c998168ap-221 }, ++ { 0x1.6b763e947db08p-226, 0x1.61e5684f4d137p-221 }, ++ { 0x1.1cea67fe8699cp-226, 0x1.158e51a7ac97ep-221 }, ++ { 0x1.bea20cad09b1fp-227, 0x1.b350464c51c99p-222 }, ++ { 0x1.5e0717c155a1cp-227, 0x1.5553c2fc66728p-222 }, ++ { 0x1.1248cf18568a2p-227, 0x1.0b99abbccdbb1p-222 }, ++ { 0x1.adcf760300963p-228, 0x1.a38baebfb68e4p-223 }, ++ { 0x1.50b87f214792dp-228, 0x1.48d7dafad7ffep-223 }, ++ { 0x1.07c2b12fe4dbap-228, 0x1.01b7eac5ea688p-223 }, ++ { 0x1.9d2b0d0c4a0b1p-229, 0x1.93e7a4bb0743p-224 }, ++ { 0x1.43908aa677d25p-229, 0x1.3c77c897ed254p-224 }, ++ { 0x1.fab995891c153p-230, 0x1.efdba02e2ceffp-225 }, ++ { 0x1.8cbc2fe600108p-230, 0x1.846b92a47c343p-225 }, ++ { 0x1.3694f45c1b92fp-230, 0x1.30395337f89bbp-225 }, ++ { 0x1.e6371d3dc0233p-231, 0x1.dc7fb7bbca8adp-226 }, ++ { 0x1.7c89c6867890ep-231, 0x1.751e7a10e8264p-226 }, ++ { 0x1.29cb17b0f706bp-231, 0x1.2421ee0211f87p-226 }, ++ { 0x1.d20647a807a0cp-232, 0x1.c9649548abac7p-227 }, ++ { 0x1.6c9a3fd812077p-232, 0x1.6606f00ed6d5dp-227 }, ++ { 0x1.1d37ef5f490cdp-232, 0x1.1836b52067807p-227 }, ++ { 0x1.be2ec88ae1479p-233, 0x1.b6922692e74d4p-228 }, ++ { 0x1.5cf38f9818abfp-233, 0x1.572b1a2c0293ap-228 }, ++ { 0x1.10e013ef486f7p-233, 0x1.0c7c6b93f06a1p-228 }, ++ { 0x1.aab7b734b99f6p-234, 0x1.a40fcadcdd133p-229 }, ++ { 0x1.4d9b2cf546b09p-234, 0x1.4890ac32b69b5p-229 }, ++ { 0x1.04c7bad04b57cp-234, 0x1.00f779993bbc1p-229 }, ++ { 0x1.97a78d5f1c6dbp-235, 0x1.91e450ac30542p-230 }, ++ { 0x1.3e9611e8218p-235, 0x1.3a3ce69b6a143p-230 }, ++ { 0x1.f1e56c0773bb7p-236, 0x1.eb57d7362f984p-231 }, ++ { 0x1.850426f2df55dp-236, 0x1.8015f467ddd4p-231 }, ++ { 0x1.2fe8bb3e4f4d8p-236, 0x1.2c3495adab7d8p-231 }, ++ { 0x1.dac8e8a813f1fp-237, 0x1.d53ae35dbfa26p-232 }, ++ { 0x1.72d2c2a7422abp-237, 0x1.6eaa5fce4af3ap-232 }, ++ { 0x1.21972950f570dp-237, 0x1.1e7c114a57a33p-232 }, ++ { 0x1.c44004226dc17p-238, 0x1.bf9ebf2ac34cfp-233 }, ++ { 0x1.6118037139874p-238, 0x1.5da6aa3adb7a3p-233 }, ++ { 0x1.13a4e15d42467p-238, 0x1.11173d5813f4dp-233 }, ++ { 0x1.ae501496e23f2p-239, 0x1.aa895a750e0f6p-234 }, ++ { 0x1.4fd7f2b705e64p-239, 0x1.4d0f59b16ac32p-234 }, ++ { 0x1.0614ef7575b09p-239, 0x1.04098aca1b898p-234 }, ++ { 0x1.98fdb1084fd1cp-240, 0x1.95ffef5a788b3p-235 }, ++ { 0x1.3f16033b4da17p-240, 0x1.3ce864a4f75bbp-235 }, ++ { 0x1.f1d3d20014dd3p-241, 0x1.eeabf27142ccbp-236 }, ++ { 0x1.844cb59a101a9p-241, 0x1.82070510e6e91p-236 }, ++ { 0x1.2ed514b22b68bp-241, 0x1.2d35346de60f3p-236 }, ++ { 0x1.d84bdf7421499p-242, 0x1.d5fe3202b4d44p-237 }, ++ { 0x1.7040489842ad7p-242, 0x1.6ea2738b3dbebp-237 }, ++ { 0x1.1f1777f205012p-242, 0x1.1df8a8637ba9cp-237 }, ++ { 0x1.bf956a62adf73p-243, 0x1.be0e1bcc5bf2bp-238 }, ++ { 0x1.5cdae0381ff94p-243, 0x1.5bd567e120a1cp-238 }, ++ { 0x1.0fdef3b187063p-243, 0x1.0f35198b8b7f7p-238 }, ++ { 0x1.a7b2fd5556b6ap-244, 0x1.a6df243f2c6f4p-239 }, ++ { 0x1.4a1e48fd99b8ep-244, 0x1.49a26968a8fd1p-239 }, ++ { 0x1.012cc9c3d142ap-244, 0x1.00ec5ed2dbe3ep-239 }, ++ { 0x1.90a652d08b6ecp-245, 0x1.9073f3afbdfebp-240 }, ++ { 0x1.380bacb3471d9p-245, 0x1.380b5f70c487dp-240 }, ++ { 0x1.e603798765b0ap-246, 0x1.e63fa380d130bp-241 }, ++ { 0x1.7a705e88ab4c8p-246, 0x1.7ace6e086aab7p-241 }, ++ { 0x1.26a399e180e7cp-246, 0x1.2711978a97cf7p-241 }, ++ { 0x1.cabc2c3d98d7cp-247, 0x1.cba0a72ae9c08p-242 }, ++ { 0x1.651157275ac6fp-247, 0x1.65efbb20adf2dp-242 }, ++ { 0x1.15e60bb1a2bacp-247, 0x1.16b5cc5019368p-242 }, ++ { 0x1.b08358e30e1b1p-248, 0x1.b1fca598944c3p-243 }, ++ { 0x1.5088c08941b89p-248, 0x1.51d84fa353951p-243 }, ++ { 0x1.05d2722aa0abep-248, 0x1.06f82c9619b9p-243 }, ++ { 0x1.9757d44a0d5d1p-249, 0x1.9953a1cf16aadp-244 }, ++ { 0x1.3cd5765cc7b51p-249, 0x1.3e87f66d27bbp-244 }, ++ { 0x1.eccf7568ff3afp-250, 0x1.efb0c5f0312cdp-245 }, ++ { 0x1.7f37a88128933p-250, 0x1.81a4d1085cfd1p-245 }, ++ { 0x1.29f5b70afae6ep-250, 0x1.2bfdda4e2b20cp-245 }, ++ { 0x1.cf48b1a182cb9p-251, 0x1.d2ab3b59164a6p-246 }, ++ { 0x1.682022c0d8296p-251, 0x1.6aeea740e7e26p-246 }, ++ { 0x1.17e72ed48d1c2p-251, 0x1.1a389017ca93cp-246 }, ++ { 0x1.b30c9decefa86p-252, 0x1.b6dd2d215fccfp-247 }, ++ { 0x1.520de188c8ff4p-252, 0x1.552ee415230cdp-247 }, ++ { 0x1.06a7030db71fbp-252, 0x1.093620e33d9f9p-247 }, ++ { 0x1.98166f02e00aap-253, 0x1.9c4336b720df7p-248 }, ++ { 0x1.3cfce2d301755p-253, 0x1.40629fd47fda6p-248 }, ++ { 0x1.ec63bac9af50ap-254, 0x1.f1e828f7f1e6ep-249 }, ++ { 0x1.7e609b497d4bfp-254, 0x1.82d92bd0fbc5bp-249 }, ++ { 0x1.28e89244647b5p-254, 0x1.2c8658b1c7fabp-249 }, ++ { 0x1.cd07ee41894f6p-255, 0x1.d2def7b6139fbp-250 }, ++ { 0x1.65e4eca3c47cep-255, 0x1.6a9a29142865ap-250 }, ++ { 0x1.15cbd7439af48p-255, 0x1.1995fff959855p-250 }, ++ { 0x1.af324889fe32ep-256, 0x1.b549f742691f7p-251 }, ++ { 0x1.4e9c920d5db05p-256, 0x1.5380a4af4c2e9p-251 }, ++ { 0x1.03a122e1077b7p-256, 0x1.078d07375b0bp-251 }, ++ { 0x1.92d9bd168c63p-257, 0x1.9921acfd99f39p-252 }, ++ { 0x1.388030ea8589cp-257, 0x1.3d867ecfb60a5p-252 }, ++ { 0x1.e4c4faf832008p-258, 0x1.ecccda72dba49p-253 }, ++ { 0x1.77f4a046c515ep-258, 0x1.7e5deef2de87bp-253 }, ++ { 0x1.2387f5f4b712ep-258, 0x1.28a511d87ce7dp-253 }, ++ { 0x1.c413282821079p-259, 0x1.cc3995b1e2c4p-254 }, ++ { 0x1.5e78bc56d0fbbp-259, 0x1.64f5f80200f46p-254 }, ++ { 0x1.0faba5af01355p-259, 0x1.14d5424501d7ep-254 }, ++ { 0x1.a51f8a6830159p-260, 0x1.ad54bef9112dp-255 }, ++ { 0x1.465b65a83bdbbp-260, 0x1.4ce07b8d50856p-255 }, ++ { 0x1.f9c5589e7201fp-261, 0x1.020f8e226943ep-255 }, ++ { 0x1.87dc5ad8af9ecp-261, 0x1.90123a8271991p-256 }, ++ { 0x1.2f918e4d3f95cp-261, 0x1.3613b89391a8fp-256 }, ++ { 0x1.d6485a170413ap-262, 0x1.e098381b76cd3p-257 }, ++ { 0x1.6c3b66970be3dp-262, 0x1.7465697a54c64p-257 }, ++ { 0x1.1a0fd8c3a4e6fp-262, 0x1.20858c20a1795p-257 }, ++ { 0x1.b4ce217bd5e55p-263, 0x1.bf05934cfa1ccp-258 }, ++ { 0x1.522e259c7017ap-263, 0x1.5a41409f84e49p-258 }, ++ { 0x1.05caa9cf257c4p-263, 0x1.0c2b83023243dp-258 }, ++ { 0x1.954427a430b11p-264, 0x1.9f5672cf62a4fp-259 }, ++ { 0x1.39a5d07601e71p-264, 0x1.41985de8f7a14p-259 }, ++ { 0x1.e56c72cc01fccp-265, 0x1.f1f5d5615d783p-260 }, ++ { 0x1.7797a6e64ddc9p-265, 0x1.8179bfb69c631p-260 }, ++ { 0x1.229374c83806p-265, 0x1.2a5d1d1f1ae5cp-260 }, ++ { 0x1.c18d454a503aep-266, 0x1.cdd1c2bddbb9ep-261 }, ++ { 0x1.5bb5b3e414ad3p-266, 0x1.655e203c78adp-261 }, ++ { 0x1.0ce808921de57p-266, 0x1.1481ab5a1469ap-261 }, ++ { 0x1.9fdfe587f056ap-267, 0x1.abd4ca4bd8884p-262 }, ++ { 0x1.418b54bd6a895p-267, 0x1.4af20f59f283dp-262 }, ++ { 0x1.f128f851039d9p-268, 0x1.fff032b2dbde7p-263 }, ++ { 0x1.804c6e03f60cbp-268, 0x1.8be8c488684b4p-263 }, ++ { 0x1.290596a08a94fp-268, 0x1.3223f2e5be0fp-263 }, ++ { 0x1.cb1395c8187f6p-269, 0x1.d964d959533d1p-264 }, ++ { 0x1.62bb1316ec5fcp-269, 0x1.6df780d5ecc43p-264 }, ++ { 0x1.1211a1b47d3aep-269, 0x1.1ae2302fd4bcdp-264 }, ++ { 0x1.a772150026811p-270, 0x1.b5455f4e2ce45p-265 }, ++ { 0x1.47143aa78b5fep-270, 0x1.51eade2a24279p-265 }, ++ { 0x1.f93996ba5e93dp-271, 0x1.051b3f15282e5p-265 }, ++ { 0x1.8626f2553e204p-271, 0x1.93760037df87ap-266 }, ++ { 0x1.2d4091cd12adcp-271, 0x1.37ace1ccc1a8dp-266 }, ++ { 0x1.d1294db79df79p-272, 0x1.e17b7713cf17fp-267 }, ++ { 0x1.6715149108678p-272, 0x1.73db39c4b278bp-267 }, ++ { 0x1.1529206516167p-272, 0x1.1f27cc2724f9p-267 }, ++ { 0x1.abce28a1f17f2p-273, 0x1.bb70eb3792a1cp-268 }, ++ { 0x1.4a1fe3e55f964p-273, 0x1.5659e4463ddd1p-268 }, ++ { 0x1.fd6eb54be7326p-274, 0x1.08462ba9624dbp-268 }, ++ { 0x1.89049c51b8388p-274, 0x1.97f4ffe1284a1p-269 }, ++ { 0x1.2f2b5e6789756p-274, 0x1.3ad748e88c53fp-269 }, ++ { 0x1.d3aa617478594p-275, 0x1.e5e5db98318a5p-270 }, ++ { 0x1.68a9e9f7b2f9ap-275, 0x1.76e6798f53e9ap-270 }, ++ { 0x1.161c2a1de488ep-275, 0x1.21393590da64bp-270 }, ++ { 0x1.acda38e82463bp-276, 0x1.be32dc731f12cp-271 }, ++ { 0x1.4a9c33e05809ap-276, 0x1.5824d30f3fce1p-271 }, ++ { 0x1.fdaf4969fc45p-277, 0x1.09660e736b8bdp-271 }, ++ { 0x1.88d45a53c41c5p-277, 0x1.994b0856743cbp-272 }, ++ { 0x1.2eba8f55fe897p-277, 0x1.3b9051c5e7679p-272 }, ++ { 0x1.d287e1e77c85ap-278, 0x1.e689bae600601p-273 }, ++ { 0x1.6770239fc87e6p-278, 0x1.77071c1633b26p-273 }, ++ { 0x1.14e513c1b20dcp-278, 0x1.210a174166fcdp-273 }, ++ { 0x1.aa90041143186p-279, 0x1.bd7abebe480e6p-274 }, ++ { 0x1.488642c71cfa6p-279, 0x1.5740f6d4ed277p-274 }, ++ { 0x1.f9f9ce5a157bbp-280, 0x1.0874302ee34fdp-274 }, ++ { 0x1.85974997b931fp-280, 0x1.97701e51a6bfep-275 }, ++ { 0x1.2bf0c37efc00bp-280, 0x1.39d3aac239fe2p-275 }, ++ { 0x1.cdc89092e43c3p-281, 0x1.e36341a88ea0cp-276 }, ++ { 0x1.636f0e2785c54p-281, 0x1.743c5e4db43f9p-276 }, ++ { 0x1.118b19def65f8p-281, 0x1.1e9b8ad36fd99p-276 }, ++ { 0x1.a4fd2c459c71p-282, 0x1.b94cde5e4fc3p-277 }, ++ { 0x1.43ea7a73d5cfp-282, 0x1.53b3a109a94aep-277 }, ++ { 0x1.f26454740b953p-283, 0x1.057635a1ed1dfp-277 }, ++ { 0x1.7f60ab495565cp-283, 0x1.926f55b776f91p-278 }, ++ { 0x1.26de8be09d876p-283, 0x1.35abb1f1cadefp-278 }, ++ { 0x1.c5889cb51dbb9p-284, 0x1.dc853b381e5ap-279 }, ++ { 0x1.5cbe6a335189cp-284, 0x1.6e96e5d005f5dp-279 }, ++ { 0x1.0c22190c33c65p-284, 0x1.19fc0dba0e848p-279 }, ++ { 0x1.9c42b0a7816acp-285, 0x1.b1c21d6e11086p-280 }, ++ { 0x1.3ce41b9a97542p-285, 0x1.4d91f3701143cp-280 }, ++ { 0x1.e71ba6efe048bp-286, 0x1.007de792cfd6ep-280 }, ++ { 0x1.76552635a3b27p-286, 0x1.8a6663a0ececbp-281 }, ++ { 0x1.1fa1c7f04e719p-286, 0x1.2f310e41037d6p-281 }, ++ { 0x1.b9f88d1e59fb3p-287, 0x1.d2185735c5ad9p-282 }, ++ { 0x1.538582347c59ep-287, 0x1.66381bdd98a02p-282 }, ++ { 0x1.04c9ca3c242adp-287, 0x1.1346f1ba5a69ap-282 }, ++ { 0x1.9093a8968bba5p-288, 0x1.a706fd9470fb8p-283 }, ++ { 0x1.339c31e0d51b7p-288, 0x1.45000f1eec014p-283 }, ++ { 0x1.d8619415342d3p-289, 0x1.f3510620184eap-284 }, ++ { 0x1.6aa95f63dd017p-289, 0x1.7f84791f6fdbbp-284 }, ++ { 0x1.16648113f6ec6p-289, 0x1.2689bc620188bp-284 }, ++ { 0x1.ab5b65b277be7p-290, 0x1.c45998d7521aep-285 }, ++ { 0x1.47f9aad3382fep-290, 0x1.5b50e4b7d6356p-285 }, ++ { 0x1.f7591b1b1c875p-291, 0x1.0aa3508d5dbp-285 }, ++ { 0x1.82335294ba26p-291, 0x1.9959eb6f64db6p-286 }, ++ { 0x1.2848053b7dfb1p-291, 0x1.3a2fb2a16d1ccp-286 }, ++ { 0x1.c68a6f5a8ef62p-292, 0x1.e23b370697cbbp-287 }, ++ { 0x1.5c9ffcce7e5fdp-292, 0x1.720876851d9fbp-287 }, ++ { 0x1.0b5b54d487d35p-292, 0x1.1be79c992aff6p-287 }, ++ { 0x1.9a0421e5c5d71p-293, 0x1.b3980569c43a5p-288 }, ++ { 0x1.3a5c4268d4e27p-293, 0x1.4e1fc4f822568p-288 }, ++ { 0x1.e1fba80d34a41p-294, 0x1.0042910b94342p-288 }, ++ { 0x1.7172912ec21f8p-294, 0x1.8908e30f7a1b3p-289 }, ++ { 0x1.1b271db151968p-294, 0x1.2d5e5a1b8288ep-289 }, ++ { 0x1.b1f9ef2d6b135p-295, 0x1.ce1b3b9ea6267p-290 }, ++ { 0x1.4c872d1af92bcp-295, 0x1.623e8fb994f23p-290 }, ++ { 0x1.fd87064e02a6fp-296, 0x1.0f8695160ca38p-290 }, ++ { 0x1.8652a61cdcd3bp-296, 0x1.a031b186be289p-291 }, ++ { 0x1.2af84a660968dp-296, 0x1.3eee8e04dc3ap-291 }, ++ { 0x1.c9f07af149226p-297, 0x1.e8bd23cc416fp-292 }, ++ { 0x1.5eacf76fffc0cp-297, 0x1.766e8d5583265p-292 }, ++ { 0x1.0c80f3efbbf3fp-297, 0x1.1ed2fab014c43p-292 }, ++ { 0x1.9b1f8ffd8f3c8p-298, 0x1.b76010ebb6c6ap-293 }, ++ { 0x1.3ab5d5023fe4ap-298, 0x1.507d813502ab7p-293 }, ++ { 0x1.e1c174ea2aaa6p-299, 0x1.01aa61c90eaccp-293 }, ++ { 0x1.70b05029068dap-299, 0x1.8a90544ab274dp-294 }, ++ { 0x1.1a1fba21de5fp-299, 0x1.2e0fb0911dd84p-294 }, ++ { 0x1.afb70654af059p-300, 0x1.ce6f24739f7c7p-295 }, ++ { 0x1.4a458b53b2a84p-300, 0x1.61eefc532711fp-295 }, ++ { 0x1.f944d95c81983p-301, 0x1.0edb77098a96p-295 }, ++ { 0x1.8272ab43f7156p-301, 0x1.9e82e04d9025fp-296 }, ++ { 0x1.278886c5a4d73p-301, 0x1.3d237a2e0f859p-296 }, ++ { 0x1.c3f57b512a1f2p-302, 0x1.e5385c7d0efep-297 }, ++ { 0x1.598c52c5d1746p-302, 0x1.73258d0b919ebp-297 }, ++ { 0x1.0828ad1da0983p-302, 0x1.1bdb57d01ceccp-297 }, ++ { 0x1.93d4935512f54p-303, 0x1.b223e5e67d24ap-298 }, ++ { 0x1.34a3670d3cd59p-303, 0x1.4bf43098a2ef1p-298 }, ++ { 0x1.d7b67cefff216p-304, 0x1.fb93db1e39a21p-299 }, ++ { 0x1.686e7356020d2p-304, 0x1.8402d3eada60ap-299 }, ++ { 0x1.135e695d6d4f8p-304, 0x1.2892e3159736p-299 }, ++ { 0x1.a4b6028e1ae52p-305, 0x1.c5502f868f04bp-300 }, ++ { 0x1.415808da66669p-305, 0x1.5a670a5d83e0ep-300 }, ++ { 0x1.ead51e60a821dp-306, 0x1.08ac71830fd4ep-300 }, ++ { 0x1.76cfe88ffbfa7p-306, 0x1.9467d9d3bce7dp-301 }, ++ { 0x1.1e2e61d740a91p-306, 0x1.34ea92731d6fp-301 }, ++ { 0x1.b4f6c22875415p-307, 0x1.d7e402cf49a21p-302 }, ++ { 0x1.4d8e03e448998p-307, 0x1.6860e96265ba8p-302 }, ++ { 0x1.fd2c6816f010bp-308, 0x1.132f279000564p-302 }, ++ { 0x1.8494b75728df1p-308, 0x1.a4356bd52863ep-303 }, ++ { 0x1.28836b62851b4p-308, 0x1.40cac092d16a6p-303 }, ++ { 0x1.c476ceb4ce0a6p-309, 0x1.e9bb8c8c45eaap-304 }, ++ { 0x1.592d26553a529p-309, 0x1.75c6ad9777c96p-304 }, ++ { 0x1.074be65f60432p-309, 0x1.1d3d889242361p-304 }, ++ { 0x1.91a14719373e5p-310, 0x1.b34c7bf3e0108p-305 }, ++ { 0x1.3248b33f78dd9p-310, 0x1.4c1bf325b5886p-305 }, ++ { 0x1.d316bfa6ecf07p-311, 0x1.fab351a6d7271p-306 }, ++ { 0x1.641dc398561efp-311, 0x1.827d8b273a859p-306 }, ++ { 0x1.0f79d08c027e2p-311, 0x1.26c35a8453a6ep-306 }, ++ { 0x1.9ddabce45ff88p-312, 0x1.c18e854f7a653p-307 }, ++ { 0x1.3b6a0443345f1p-312, 0x1.56c727238c10ep-307 }, ++ { 0x1.e0b830517633fp-313, 0x1.05545196af9e3p-307 }, ++ { 0x1.6e4903f595976p-313, 0x1.8e6b62ae03487p-308 }, ++ { 0x1.170eca4e7a4cap-313, 0x1.2facf384d3a3bp-308 }, ++ { 0x1.a92756c27d93ap-314, 0x1.ceddf1e753b81p-309 }, ++ { 0x1.43d40bf74392dp-314, 0x1.60b61e0028436p-309 }, ++ { 0x1.ed3e286c4c0dep-315, 0x1.0cbd09b1e5e1p-309 }, ++ { 0x1.77993389df313p-315, 0x1.997719e8b73a8p-310 }, ++ { 0x1.1dfa945eaae99p-315, 0x1.37e77cf85ca37p-310 }, ++ { 0x1.b36ec5aa0588p-316, 0x1.db1e802a6c81fp-311 }, ++ { 0x1.4b749e64b35f5p-316, 0x1.69d3aa6fccfd9p-311 }, ++ { 0x1.f88d823260c9ep-317, 0x1.1383f4dd09079p-311 }, ++ { 0x1.7ffa0f1fabb65p-317, 0x1.a388f33976b7bp-312 }, ++ { 0x1.242e12375b352p-317, 0x1.3f613589599c6p-312 }, ++ { 0x1.bc9a844ffd2b5p-318, 0x1.e635a66e3ebe7p-313 }, ++ { 0x1.523af73f84783p-318, 0x1.720bfb4a981d7p-313 }, ++ { 0x1.0146a610e0588p-318, 0x1.199a49bcc51p-313 }, ++ { 0x1.87590d6d36008p-319, 0x1.ac8ae259e160cp-314 }, ++ { 0x1.299b80ea6bb7fp-319, 0x1.4609b0c4183cap-314 }, ++ { 0x1.c496292aa266bp-320, 0x1.f00af26520f9dp-315 }, ++ { 0x1.5817f72c95e4cp-320, 0x1.794ce31e24c7bp-315 }, ++ { 0x1.059392396d038p-320, 0x1.1ef2877dbfcadp-315 }, ++ { 0x1.8da5a346cbb3fp-321, 0x1.b468dc95cb829p-316 }, ++ { 0x1.2e36a9eb80d32p-321, 0x1.4bd213115ac94p-316 }, ++ { 0x1.cb4fb203e18ap-322, 0x1.f88862b544527p-317 }, ++ { 0x1.5cfe5be9615c7p-322, 0x1.7f861b04cbe3ap-317 }, ++ { 0x1.0923c6394f695p-322, 0x1.2380a7a548a2fp-317 }, ++ { 0x1.92d18166ccd51p-323, 0x1.bb1122f6e5762p-318 }, ++ { 0x1.31f510cb3f507p-323, 0x1.50ad48dd9b3a6p-318 }, ++ { 0x1.d0b7c794af438p-324, 0x1.ff9ab8e5d6631p-319 }, ++ { 0x1.60e2f23228dedp-324, 0x1.84a97f6b3e853p-319 }, ++ { 0x1.0bef1906dac58p-324, 0x1.273a4b16ba84fp-319 }, ++ { 0x1.96d0ca88e4fcp-325, 0x1.c07484e1da469p-320 }, ++ { 0x1.34ce1af3c1b6p-325, 0x1.549037ceef1fep-320 }, ++ { 0x1.d4c1f7c67dd18p-326, 0x1.0298e0fc06037p-320 }, ++ { 0x1.63bcc0600e3b1p-326, 0x1.88ab45875f419p-321 }, ++ { 0x1.0def17046c37ep-326, 0x1.2a16e161fa35fp-321 }, ++ { 0x1.999a40ba75f42p-327, 0x1.c48699c75f345p-322 }, ++ { 0x1.36bb3093bcf7fp-327, 0x1.5771e906a9978p-322 }, ++ { 0x1.d764e5657aa2p-328, 0x1.04a04a1699caap-322 }, ++ { 0x1.658528dc53bd5p-328, 0x1.8b822865b44e6p-323 }, ++ { 0x1.0f1f1acd583cp-328, 0x1.2c0fc98ac934cp-323 }, ++ { 0x1.9b2768ee2e28p-329, 0x1.c73df0b6d4334p-324 }, ++ { 0x1.37b7d60833afbp-329, 0x1.594bab8ddacb1p-324 }, ++ { 0x1.d89a6c43f4c1p-330, 0x1.05dee05833b3cp-324 }, ++ { 0x1.663803afd90e2p-330, 0x1.8d278c9cbfc58p-325 }, ++ { 0x1.0f7c5f2e4265p-330, 0x1.2d206b997c2ccp-325 }, ++ { 0x1.9b74a41343d69p-331, 0x1.c89434d36542fp-326 }, ++ { 0x1.37c1bd3bb9cfep-331, 0x1.5a192e33cf627p-326 }, ++ { 0x1.d85fb90bdf218p-332, 0x1.0651bc0c61b2p-326 }, ++ { 0x1.65d3aea4b609ep-332, 0x1.8d9799e5f2521p-327 }, ++ { 0x1.0f0609e7aa674p-332, 0x1.2d464a6b30dc2p-327 }, ++ { 0x1.9a813d2878f74p-333, 0x1.c88645e6c88eep-328 }, ++ { 0x1.36d8ce9d2217bp-333, 0x1.59d89052b0525p-328 }, ++ { 0x1.d6b5543d3c94p-334, 0x1.05f7d07f3fb02p-328 }, ++ { 0x1.645913a262a36p-334, 0x1.8cd14a1185c8dp-329 }, ++ { 0x1.0dbd2f003b6a5p-334, 0x1.2c810d60e767ep-329 }, ++ { 0x1.984f6bfe6778p-335, 0x1.c714448c370a6p-330 }, ++ { 0x1.34ff297cd534dp-335, 0x1.588a691f2cd1fp-330 }, ++ { 0x1.d39f201da2255p-336, 0x1.04d1f01416963p-330 }, ++ { 0x1.61cba521cabb4p-336, 0x1.8ad66d03eba59p-331 }, ++ { 0x1.0ba4cc94c45b3p-336, 0x1.2ad281b8cc2ap-331 }, ++ { 0x1.94e44c9a075e7p-337, 0x1.c44191b160ec2p-332 }, ++ { 0x1.32391bcecdc03p-337, 0x1.5631c55b5d22cp-332 }, ++ { 0x1.cf2449a3fda4bp-338, 0x1.02e2c911c7929p-332 }, ++ { 0x1.5e3150cc8eda4p-338, 0x1.87aba1a7120bfp-333 }, ++ { 0x1.08c1bf3c985fap-338, 0x1.283e938a586f7p-333 }, ++ { 0x1.9047cb663bb8cp-339, 0x1.c014c17012593p-334 }, ++ { 0x1.2e8d117dfdd44p-339, 0x1.52d41b7968429p-334 }, ++ { 0x1.c94f2cb2815a8p-340, 0x1.002edb3674f27p-334 }, ++ { 0x1.599268900e7bcp-340, 0x1.835843f5f0b0cp-335 }, ++ { 0x1.051aaf415041dp-340, 0x1.24cb3e8b7d756p-335 }, ++ { 0x1.8a84869fc8267p-341, 0x1.ba9781881c8a9p-336 }, ++ { 0x1.2a037bab743e1p-341, 0x1.4e79366e7a47p-336 }, ++ { 0x1.c22d2c350e306p-342, 0x1.f978cc962d426p-337 }, ++ { 0x1.53f982a03a248p-342, 0x1.7de65083f0e21p-337 }, ++ { 0x1.00b7f70f68972p-342, 0x1.208076f18ea3p-337 }, ++ { 0x1.83a7a5a0b9d4dp-343, 0x1.b3d6740403453p-338 }, ++ { 0x1.24a6b05eb3edap-343, 0x1.492b17a8d9ad4p-338 }, ++ { 0x1.b9ce7efad864cp-344, 0x1.f126a42ab2a64p-339 }, ++ { 0x1.4d7351162fad8p-344, 0x1.77623e1a3ca2fp-339 }, ++ { 0x1.f74706d1f613cp-345, 0x1.1b680aeae0c3cp-339 }, ++ { 0x1.7bc0a6e57fbc5p-345, 0x1.abe0fed214bcap-340 }, ++ { 0x1.1e82c35430e3dp-345, 0x1.42f5d0cb0afebp-340 }, ++ { 0x1.b045f25c98b4bp-346, 0x1.e77a20528f8f5p-341 }, ++ { 0x1.460e7202036c7p-346, 0x1.6fdace394b03cp-341 }, ++ { 0x1.ebd15c07c2acdp-347, 0x1.158d7d54f1681p-341 }, ++ { 0x1.72e125d540295p-347, 0x1.a2c9115542385p-342 }, ++ { 0x1.17a558b9c184fp-347, 0x1.3be755f8b210cp-342 }, ++ { 0x1.a5a8a3f3de092p-348, 0x1.dc88f077bd369p-343 }, ++ { 0x1.3ddb38ecb5b52p-348, 0x1.6760d57bb9982p-343 }, ++ { 0x1.df2826b036578p-349, 0x1.0efdda755dbb3p-343 }, ++ { 0x1.691c997f37f0ep-349, 0x1.98a2e123c782ep-344 }, ++ { 0x1.101d72c627ff7p-349, 0x1.340f49a72211p-344 }, ++ { 0x1.9a0db3d2b8dacp-350, 0x1.d06b3f65f6fdp-345 }, ++ { 0x1.34eb72e63e592p-350, 0x1.5e06fcff790f4p-345 }, ++ { 0x1.d166c8f34fca4p-351, 0x1.07c787991a68p-345 }, ++ { 0x1.5e880d9f1fe43p-351, 0x1.8d849f54265f7p-346 }, ++ { 0x1.07fb3b2ff1602p-351, 0x1.2b7ec30262d2bp-346 }, ++ { 0x1.8d8df0cbffd52p-352, 0x1.c33b5a8ad639fp-347 }, ++ { 0x1.2b52265317648p-352, 0x1.53e17e1a8afadp-347 }, ++ { 0x1.c2aa6bd34f17bp-353, 0x1.fff41d2913dabp-348 }, ++ { 0x1.5339d751ff2a1p-353, 0x1.818627da2e9e4p-348 }, ++ { 0x1.fe9f93308c405p-354, 0x1.2248100f21115p-348 }, ++ { 0x1.80438073219dep-354, 0x1.b515531d535ebp-349 }, ++ { 0x1.21234fbc4a127p-354, 0x1.4905d9b84e0cbp-349 }, ++ { 0x1.b31198aa5f8abp-355, 0x1.ef4bcc5f71a72p-350 }, ++ { 0x1.474946f304456p-355, 0x1.74c0ac8d03b2bp-350 }, ++ { 0x1.ec59d00f3fe38p-356, 0x1.187e74c209a91p-350 }, ++ { 0x1.7249848679fa9p-356, 0x1.a6169b09c4411p-351 }, ++ { 0x1.16739cec78bd4p-356, 0x1.3d8a8ccb26cd9p-351 }, ++ { 0x1.a2bbd0795adeep-357, 0x1.ddb87127c2076p-352 }, ++ { 0x1.3ace589cd3352p-357, 0x1.674e5d7be735cp-352 }, ++ { 0x1.d949ad392f075p-358, 0x1.0e35e84d33d3fp-352 }, ++ { 0x1.63bbbf78651ccp-358, 0x1.965d9f895d99cp-353 }, ++ { 0x1.0b5827a3ba382p-358, 0x1.3186c3440696p-353 }, ++ { 0x1.91c922f9ee4cp-359, 0x1.cb5d51a48d7d4p-354 }, ++ { 0x1.2de164c74e725p-359, 0x1.594a1039f0199p-354 }, ++ { 0x1.c5941f108d9d1p-360, 0x1.0382d1e479246p-354 }, ++ { 0x1.54b639c219649p-360, 0x1.8609634a384ccp-355 }, ++ { 0x1.ffcc62473097ap-361, 0x1.25120afe02122p-355 }, ++ { 0x1.8059c757355aep-361, 0x1.b85e31314f4b4p-356 }, ++ { 0x1.209ad26ca18d9p-361, 0x1.4acee7c0fcbafp-356 }, ++ { 0x1.b15e18d0d2d12p-362, 0x1.f0f38c6449ad9p-357 }, ++ { 0x1.4554e9983b016p-362, 0x1.753919ff4b182p-357 }, ++ { 0x1.e865bf893f8f4p-363, 0x1.1844080030d76p-357 }, ++ { 0x1.6e8db855aac9ap-363, 0x1.a4dede3a3eb93p-358 }, ++ { 0x1.1312cc0ae5d04p-363, 0x1.3bf7fe7aa33ap-358 }, ++ { 0x1.9ccc1bfbf7ecbp-364, 0x1.da5e8d4d639edp-359 }, ++ { 0x1.35b35e7d0088ep-364, 0x1.640bc7176cda7p-359 }, ++ { 0x1.d0a5ff60b92cfp-365, 0x1.0b342b640cc13p-359 }, ++ { 0x1.5c84558f35d95p-365, 0x1.9102c47629cb9p-360 }, ++ { 0x1.0560f8bafb2c7p-365, 0x1.2ce013e375d0fp-360 }, ++ { 0x1.8801ce509ea26p-366, 0x1.c36f07720a932p-361 }, ++ { 0x1.25ec7207b3c64p-366, 0x1.529fe13854ed9p-361 }, ++ { 0x1.b8b58f7c67c36p-367, 0x1.fbf2dc269c35dp-362 }, ++ { 0x1.4a5c0b3b7424dp-367, 0x1.7cec854a40ddcp-362 }, ++ { 0x1.ef3874e46141bp-368, 0x1.1da13f1aaaee6p-362 }, ++ { 0x1.732197e24d857p-368, 0x1.ac4c46230c45cp-363 }, ++ { 0x1.1619ff0ea7ec6p-368, 0x1.4112fbeff8a1fp-363 }, ++ { 0x1.a0bb46a0a2c53p-369, 0x1.e15420dda8758p-364 }, ++ { 0x1.383201c8ba71ap-369, 0x1.68bd97eb5b05dp-364 }, ++ { 0x1.d3b4e4b894768p-370, 0x1.0e54a78756b6bp-364 }, ++ { 0x1.5e4c4aaef013p-370, 0x1.951c14f527745p-365 }, ++ { 0x1.0654a030d3e7p-370, 0x1.2f8178dd14a04p-365 }, ++ { 0x1.88dc03d1ca801p-371, 0x1.c6b6bf9361ee4p-366 }, ++ { 0x1.2621d65152a67p-371, 0x1.5495f2949c65ep-366 }, ++ { 0x1.b860981f4834ap-372, 0x1.fe24891c8ca0cp-367 }, ++ { 0x1.49a0d4c97c281p-372, 0x1.7e02609a87253p-367 }, ++ { 0x1.ed66ed1143993p-373, 0x1.1e064158c947bp-367 }, ++ { 0x1.713a5a10cc9bp-373, 0x1.ac4304f253262p-368 }, ++ { 0x1.14455cbbff469p-373, 0x1.4093bdea6e36fp-368 }, ++ { 0x1.9d62205df47a6p-374, 0x1.dfe14a435c3c2p-369 }, ++ { 0x1.353bfdeb15aa4p-374, 0x1.6720e3d624fdcp-369 }, ++ { 0x1.ce97f23783a55p-375, 0x1.0cba8970a9d66p-369 }, ++ { 0x1.59f649793ea9ap-375, 0x1.921e961b81171p-370 }, ++ { 0x1.02b46c188f22dp-375, 0x1.2cd3135c626d1p-370 }, ++ { 0x1.82dcfdba2d59cp-376, 0x1.c2097f7f7c953p-371 }, ++ { 0x1.213830f44d648p-376, 0x1.5096e15b063dbp-371 }, ++ { 0x1.b0639acae41c7p-377, 0x1.f76b39886a20dp-372 }, ++ { 0x1.432d063e4cc5ap-377, 0x1.786c2636e4e2ap-372 }, ++ { 0x1.e3096b161ade1p-378, 0x1.196dc712e8651p-372 }, ++ { 0x1.68f1646f450ccp-378, 0x1.a4c39680abb0bp-373 }, ++ { 0x1.0dad51a121c5fp-378, 0x1.3a80eb1934625p-373 }, ++ { 0x1.92ed52465cf13p-379, 0x1.d6196b3830612p-374 }, ++ { 0x1.2cf8cdb32b26dp-379, 0x1.5f4b3b930a91ap-374 }, ++ { 0x1.c1934bb7035c1p-380, 0x1.067b3db09279ep-374 }, ++ { 0x1.4fbc11c19c0b7p-380, 0x1.8832413bcb6f5p-375 }, ++ { 0x1.f5613cdc1ad52p-381, 0x1.24f8b72bbd6eep-375 }, ++ { 0x1.76547ab0f816ap-381, 0x1.b5a5bcacf14ddp-376 }, ++ { 0x1.1770c93ef3136p-381, 0x1.46d8046ba690cp-376 }, ++ { 0x1.a128a30d837ebp-382, 0x1.e8209bd7c6d4dp-377 }, ++ { 0x1.375630e92b79p-382, 0x1.6c744b66f6406p-377 }, ++ { 0x1.d0a93cd8add1ep-383, 0x1.1015024fefc8dp-377 }, ++ { 0x1.5ab4549d6cf15p-383, 0x1.9631ba1694964p-378 }, ++ { 0x1.02a8fed4a1944p-383, 0x1.2f2b3b1ae197dp-378 }, ++ { 0x1.81e6d5efc2ecep-384, 0x1.c47e5b8f9de0cp-379 }, ++ { 0x1.1fd54f3e20bfcp-384, 0x1.51a481761d265p-379 }, ++ { 0x1.ad523512d80aep-385, 0x1.f7d2ff106229cp-380 }, ++ { 0x1.4023f854f9c86p-385, 0x1.77da522f79ec5p-380 }, ++ { 0x1.dd649c8fad0d5p-386, 0x1.185a192bd02b4p-380 }, ++ { 0x1.63e684c4d4572p-386, 0x1.a22ed5ef67f83p-381 }, ++ { 0x1.094b5ecc6e29p-386, 0x1.37d9a85948033p-381 }, ++ { 0x1.8b7643330549ep-387, 0x1.d10da89b8212ap-382 }, ++ { 0x1.26b65f14cd4dap-387, 0x1.5ab7d4224f7e2p-382 }, ++ { 0x1.b734f53e57228p-388, 0x1.0276587fa1c2p-382 }, ++ { 0x1.473b9d1931175p-388, 0x1.814bdb918424dp-383 }, ++ { 0x1.e78d8c6e84fddp-389, 0x1.1f2684f2af658p-383 }, ++ { 0x1.6b2a2c93cd65ap-389, 0x1.abf540fb4e1a1p-384 }, ++ { 0x1.0e7a7b055d281p-389, 0x1.3eddfeeed0dd2p-384 }, ++ { 0x1.92d87cacce695p-390, 0x1.db1c82f79707dp-385 }, ++ { 0x1.2bf57b6e0d98dp-390, 0x1.61ea0b7eb4c3cp-385 }, ++ { 0x1.bea4f9488e121p-391, 0x1.0799f1fb897d8p-385 }, ++ { 0x1.4c7d8bf7bdc41p-391, 0x1.889f21fdb1d69p-386 }, ++ { 0x1.eef6b8bfa9225p-392, 0x1.245c20ba28a39p-386 }, ++ { 0x1.705ed2bbfd521p-392, 0x1.b3598a0d5984p-387 }, ++ { 0x1.121f1b69882ebp-392, 0x1.4418fde75923ep-387 }, ++ { 0x1.97ec608197c79p-393, 0x1.e27e05b6c31f9p-388 }, ++ { 0x1.2f7b0edc74f1cp-393, 0x1.671af7f5d8858p-388 }, ++ { 0x1.c380c41f7503p-394, 0x1.0b3d4442eda68p-388 }, ++ { 0x1.4fd20f15083b3p-394, 0x1.8db341e4d4306p-389 }, ++ { 0x1.f37ea8d01e9c5p-395, 0x1.27e37e3bc73c9p-389 }, ++ { 0x1.736cebb19a201p-395, 0x1.b83a639f29a8p-390 }, ++ { 0x1.1428c012e2c57p-395, 0x1.47730acf38edcp-390 }, ++ { 0x1.9a9ae80c06018p-396, 0x1.e710d5155d028p-391 }, ++ { 0x1.31371c2b63b8p-396, 0x1.6a331ab64b688p-391 }, ++ { 0x1.c5b240b14f4d6p-397, 0x1.0d4fd25f7f52ep-391 }, ++ { 0x1.5129ffd17a136p-397, 0x1.90712f4e38e37p-392 }, ++ { 0x1.f510ba62354a5p-398, 0x1.29ac951c1e60bp-392 }, ++ { 0x1.74468acd1611cp-398, 0x1.ba819d5f14678p-393 }, ++ { 0x1.148e1d96c299ep-398, 0x1.48dce2dc3ecd5p-393 }, ++ { 0x1.9ad7d58aaba44p-399, 0x1.e8c0193d16d55p-394 }, ++ { 0x1.3121b71d77179p-399, 0x1.6b2456938b866p-394 }, ++ { 0x1.c52f68dd90e64p-400, 0x1.0dc826696c76cp-394 }, ++ { 0x1.507f397188496p-400, 0x1.90cc63cdbf2a2p-395 }, ++ { 0x1.f3a5bdf92c388p-401, 0x1.29af3c144f8cp-395 }, ++ { 0x1.72e7cbdbb95dbp-401, 0x1.ba24cc0f4c8e2p-396 }, ++ { 0x1.134d638b07143p-401, 0x1.48500e815d897p-396 }, ++ { 0x1.98a2111174d79p-402, 0x1.e7841c45926dp-397 }, ++ { 0x1.2f3b409e1b7b6p-402, 0x1.69ea5b1b71301p-397 }, ++ { 0x1.c1fa91a869695p-403, 0x1.0ca4195cda6d3p-397 }, ++ { 0x1.4dd4c7d7ec9fap-403, 0x1.8ec33daf13649p-398 }, ++ { 0x1.ef442d8796795p-404, 0x1.27eb66fea5e85p-398 }, ++ { 0x1.6f56f0c0f22b9p-404, 0x1.b72598c77c448p-399 }, ++ { 0x1.106c4a594a047p-404, 0x1.45cf12a60cb9ap-399 }, ++ { 0x1.9403b0e4bd1b9p-405, 0x1.e36284e81b5ffp-400 }, ++ { 0x1.2b8c63e7468c1p-405, 0x1.668ac570f2fc8p-400 }, ++ { 0x1.bc22598793379p-406, 0x1.09e8e37ef2488p-400 }, ++ { 0x1.4936d06178106p-406, 0x1.8a5f0c63b5c24p-401 }, ++ { 0x1.e7fffb3b16a7dp-407, 0x1.2469273320bdap-401 }, ++ { 0x1.69a431ed205ap-407, 0x1.b191b44e70edfp-402 }, ++ { 0x1.0bf7e7cce4d07p-407, 0x1.41655d7606103p-402 }, ++ { 0x1.8d11ace4d8996p-408, 0x1.dc6e2b76185d5p-403 }, ++ { 0x1.2625d4b960a47p-408, 0x1.6114f58eab906p-403 }, ++ { 0x1.b3c139841a735p-409, 0x1.05a2f4a403a4dp-403 }, ++ { 0x1.42ba35d81be5cp-409, 0x1.83b3c9af7ee45p-404 }, ++ { 0x1.ddf9fa6fc513ap-410, 0x1.1f386e3013e68p-404 }, ++ { 0x1.61e943a26f542p-410, 0x1.a9826f127d04dp-405 }, ++ { 0x1.06044c28d2704p-410, 0x1.3b26ef9596f74p-405 }, ++ { 0x1.83eb403668f94p-411, 0x1.d2c68adc24dd3p-406 }, ++ { 0x1.1f1fd15ed30fep-411, 0x1.59a199b7c8167p-406 }, ++ { 0x1.a8fcbdc7eab51p-412, 0x1.ffcb2bfa5b8dap-407 }, ++ { 0x1.3a7bfb4be9962p-412, 0x1.7adf828472cfdp-407 }, ++ { 0x1.d15ee90987618p-413, 0x1.1870951a86a79p-407 }, ++ { 0x1.584895194492p-413, 0x1.9f1bfa110cbbap-408 }, ++ { 0x1.fd57d7b45b3cap-414, 0x1.332fc55367264p-408 }, ++ { 0x1.78b8ffae32bfp-414, 0x1.c696d39db75f3p-409 }, ++ { 0x1.16996dab0cd1ep-414, 0x1.5051f4ea04fdfp-409 }, ++ { 0x1.9c046dcaa75a4p-415, 0x1.f194b2a4cb97p-410 }, ++ { 0x1.30a06c462f23ep-415, 0x1.700975cbb46aap-410 }, ++ { 0x1.c2662350ce7fap-416, 0x1.102fae0ec7794p-410 }, ++ { 0x1.4cec5169fb931p-416, 0x1.928c588cfb6d9p-411 }, ++ { 0x1.ec1db7d8e44b5p-417, 0x1.29a3060c44f3ap-411 }, ++ { 0x1.6babae8929706p-417, 0x1.b814aa869e0e4p-412 }, ++ { 0x1.0cb7ae5506e7ep-417, 0x1.454ee7edd0063p-412 }, ++ { 0x1.8d106f7f4047ep-418, 0x1.e0e0b72e6ef2ep-413 }, ++ { 0x1.255213192c405p-418, 0x1.6360f251c2f1fp-413 }, ++ { 0x1.b1500fc71b69ap-419, 0x1.0699a6631f93fp-413 }, ++ { 0x1.40052c8ba04b4p-419, 0x1.840a0d97bb129p-414 }, ++ { 0x1.d8a3d24511c07p-420, 0x1.1eaa023d58a69p-414 }, ++ { 0x1.5cfadd7b9716p-420, 0x1.a77ea01d8b821p-415 }, ++ { 0x1.01a47ddad3ea8p-420, 0x1.38c7c7057a652p-415 }, ++ { 0x1.7c5ff3799c35bp-421, 0x1.cdf6c504a93e5p-416 }, ++ { 0x1.18c087e86a1f3p-421, 0x1.551bff88c1175p-416 }, ++ { 0x1.9e64530b957f4p-422, 0x1.f7ae8590bb8p-417 }, ++ { 0x1.31c908986e1a8p-422, 0x1.73d293026bc2ap-417 }, ++ { 0x1.c33b25da2082ep-423, 0x1.12730a9790f69p-417 }, ++ { 0x1.4ce362055227ep-423, 0x1.951a7082f394ap-418 }, ++ { 0x1.eb1b0ae0a386ap-424, 0x1.2af1081b22794p-418 }, ++ { 0x1.6a3779e1ff3bp-424, 0x1.b925bc48353ep-419 }, ++ { 0x1.0b1f245435eeap-424, 0x1.4575deb5305a2p-419 }, ++ { 0x1.89efddb97fd18p-425, 0x1.e029ff0fc8645p-420 }, ++ { 0x1.227180cb0a8cap-425, 0x1.6228a92a17423p-420 }, ++ { 0x1.ac39e8a7de062p-426, 0x1.05302bb5e3a1ap-420 }, ++ { 0x1.3ba5b5279aa24p-426, 0x1.81331d3a2cc81p-421 }, ++ { 0x1.d145ea8ff6403p-427, 0x1.1c02d69097c72p-421 }, ++ { 0x1.56df011e743b9p-427, 0x1.a2c1b0ae83a64p-422 }, ++ { 0x1.f94750d0f9308p-428, 0x1.34ad734ae6135p-422 }, ++ { 0x1.7442e7172840ap-428, 0x1.c703bfdc748cdp-423 }, ++ { 0x1.123a683e9b9d5p-428, 0x1.4f5290291de6ep-423 }, ++ { 0x1.93f94a8e393e5p-429, 0x1.ee2bb5a2a447p-424 }, ++ { 0x1.298449094a08p-429, 0x1.6c16f34d9525ep-424 }, ++ { 0x1.b62c8f87855a8p-430, 0x1.0c379a70923bcp-424 }, ++ { 0x1.42a02f59d51efp-430, 0x1.8b21b8919710fp-425 }, ++ { 0x1.db09bb0ffb21fp-431, 0x1.2303a1b68b2dep-425 }, ++ { 0x1.5daee76f997a8p-431, 0x1.ac9c706a79cfcp-426 }, ++ { 0x1.01604a662bf4cp-431, 0x1.3b983b3f72fb5p-426 }, ++ { 0x1.7ad33d50dacdp-432, 0x1.d0b33fd9b6e85p-427 }, ++ { 0x1.16c1e4c8c451ap-432, 0x1.5615904c6373ap-427 }, ++ { 0x1.9a32159dea0d8p-433, 0x1.f7950165d693dp-428 }, ++ { 0x1.2dc48781056c9p-433, 0x1.729dc070c926ap-428 }, ++ { 0x1.bbf2871addffbp-434, 0x1.10b9b38c6e833p-428 }, ++ { 0x1.4684a4152d4ep-434, 0x1.9154f9f73ee5fp-429 }, ++ { 0x1.e03df4eb2c204p-435, 0x1.27418ebfd96bep-429 }, ++ { 0x1.6120558a89b12p-435, 0x1.b26192fa2f36ep-430 }, ++ { 0x1.03a014bcb5352p-435, 0x1.3f7df7d25b3e6p-430 }, ++ { 0x1.7db773a6f6623p-436, 0x1.d5ec232ba3385p-431 }, ++ { 0x1.1893b9023690dp-436, 0x1.598c75ff21ea4p-431 }, ++ { 0x1.9c6ba6a49465ap-437, 0x1.fc1f9e46a53e2p-432 }, ++ { 0x1.2f125d64e7642p-437, 0x1.758c452444076p-432 }, ++ { 0x1.bd607b51aff83p-438, 0x1.1294b791c6529p-432 }, ++ { 0x1.4735d5e25dd32p-438, 0x1.939e692035be7p-433 }, ++ { 0x1.e0bb7795ebab2p-439, 0x1.289cc9b3b4107p-433 }, ++ { 0x1.611962fb4b008p-439, 0x1.b3e5c199dc217p-434 }, ++ { 0x1.035217aa6e0adp-439, 0x1.40415be2c6028p-434 }, ++ { 0x1.7cd9c096da3b3p-440, 0x1.d6871e2c76342p-435 }, ++ { 0x1.17a22cd2a508fp-440, 0x1.599d2a64857abp-435 }, ++ { 0x1.9a95351e8c9f1p-441, 0x1.fba952efabe51p-436 }, ++ { 0x1.2d63f329a8bcbp-441, 0x1.74cc660d4897ap-436 }, ++ { 0x1.ba6ba0cb47e2bp-442, 0x1.11baa6a990cd8p-436 }, ++ { 0x1.44ae89d144108p-442, 0x1.91ecc31adec4ep-437 }, ++ { 0x1.dc7e8d1b8f556p-443, 0x1.270b14a1f9816p-437 }, ++ { 0x1.5d9a42222275cp-443, 0x1.b11d883fd3ec1p-438 }, ++ { 0x1.00789e350bd1ap-443, 0x1.3ddca348b8e79p-438 }, ++ { 0x1.7840aaba80c98p-444, 0x1.d27f9dd765764p-439 }, ++ { 0x1.13f45ccd8c935p-444, 0x1.56472f42babf3p-439 }, ++ { 0x1.94bc9a9955f26p-445, 0x1.f6359d3980ea5p-440 }, ++ { 0x1.28c5f3eaf8eddp-445, 0x1.7063ccd1b83c6p-440 }, ++ { 0x1.b32a3c3e46a35p-446, 0x1.0e31f012ad2b3p-440 }, ++ { 0x1.3f01c91fe7f47p-446, 0x1.8c4cd2c02ec2dp-441 }, ++ { 0x1.d3a718c61d154p-447, 0x1.2298481c2ca0dp-441 }, ++ { 0x1.56bd3dd5a05c1p-447, 0x1.aa1de55237abcp-442 }, ++ { 0x1.f65222fadfcp-448, 0x1.3861db33230bp-442 }, ++ { 0x1.700eb717cfb77p-448, 0x1.c9f401331dbf6p-443 }, ++ { 0x1.0da5e12700c8dp-448, 0x1.4fa3a533642f6p-443 }, ++ { 0x1.8b0da54d3c71fp-449, 0x1.ebed8656f1a7bp-444 }, ++ { 0x1.215aeed941b43p-449, 0x1.6873a105b43c2p-444 }, ++ { 0x1.a7d28bd609e5p-450, 0x1.081521636047p-444 }, ++ { 0x1.3659f3261d19p-450, 0x1.82e8d038330cap-445 }, ++ { 0x1.c6770887b13f6p-451, 0x1.1b65bea6b7e6ap-445 }, ++ { 0x1.4cb570f463d9dp-451, 0x1.9f1b427ce89a2p-446 }, ++ { 0x1.e715dafe5cd6p-452, 0x1.2ff9fffd4f5f9p-446 }, ++ { 0x1.6480ba9b1723cp-452, 0x1.bd241d06b6757p-447 }, ++ { 0x1.04e575dd6f2ebp-452, 0x1.45e411382662bp-447 }, ++ { 0x1.7dcff6d521467p-453, 0x1.dd1da1bc7ec85p-448 }, ++ { 0x1.1759a98201ff3p-453, 0x1.5d36e9f7af39cp-448 }, ++ { 0x1.98b82586ccf2dp-454, 0x1.ff233639de02ap-449 }, ++ { 0x1.2af6afc0ce651p-454, 0x1.7606528b3cf28p-449 }, ++ { 0x1.b54f244df93dfp-455, 0x1.11a8b54a30c34p-449 }, ++ { 0x1.3fcc4e4385b18p-455, 0x1.9066e8a3084adp-450 }, ++ { 0x1.d3abb2d5b9282p-456, 0x1.24e2ffedd9f78p-450 }, ++ { 0x1.55eaec016b2b5p-456, 0x1.ac6e23cde6ac9p-451 }, ++ { 0x1.f3e576e5bfb2cp-457, 0x1.394ff72563c26p-451 }, ++ { 0x1.6d6394041cb01p-457, 0x1.ca3259bb8013ep-452 }, ++ { 0x1.0b0a8012d71fbp-457, 0x1.4effb58fcce2p-452 }, ++ { 0x1.8647f7f3a91dep-458, 0x1.e9cac23b8427ep-453 }, ++ { 0x1.1d29e5c60946bp-458, 0x1.6602f707600f3p-453 }, ++ { 0x1.a0aa72640fd47p-459, 0x1.05a7bd790a4bcp-453 }, ++ { 0x1.305e23384e58ap-459, 0x1.7e6b1b23c38f4p-454 }, ++ { 0x1.bc9e08de1532fp-460, 0x1.176cc55ca9b8p-454 }, ++ { 0x1.44b4e89c6a35fp-460, 0x1.984a277e8539ap-455 }, ++ { 0x1.da366d9d2b975p-461, 0x1.2a417253e014bp-455 }, ++ { 0x1.5a3c60cb2c6b1p-461, 0x1.b3b2c9b4277c6p-456 }, ++ { 0x1.f98800fc076dbp-462, 0x1.3e333559670c8p-456 }, ++ { 0x1.71033226bf0afp-462, 0x1.d0b8591b88278p-457 }, ++ { 0x1.0d53e944a7e18p-462, 0x1.534ff7f271b4dp-457 }, ++ { 0x1.89187f3d75a14p-463, 0x1.ef6ed82d51675p-458 }, ++ { 0x1.1ed5d0deddfb7p-463, 0x1.69a61d0edc9d2p-458 }, ++ { 0x1.a28be72757b85p-464, 0x1.07f57aca805f1p-458 }, ++ { 0x1.3154ef266983dp-464, 0x1.814481a9f253cp-459 }, ++ { 0x1.bd6d859990532p-465, 0x1.1921067277b5dp-459 }, ++ { 0x1.44dcd404b4fcdp-465, 0x1.9a3a7d2712f82p-460 }, ++ { 0x1.d9cdf2aadd6a6p-466, 0x1.2b45137355f77p-460 }, ++ { 0x1.5979672b76b96p-466, 0x1.b497e1657b91bp-461 }, ++ { 0x1.f7be424410479p-467, 0x1.3e6cfcc06ed27p-461 }, ++ { 0x1.6f36e7903ba4fp-467, 0x1.d06cfa865bc4ep-462 }, ++ { 0x1.0ba8019bd4e86p-467, 0x1.52a47395ed2aep-462 }, ++ { 0x1.8621eaa755f34p-468, 0x1.edca8e605e67ap-463 }, ++ { 0x1.1c4a9efdce654p-468, 0x1.67f77ef705254p-463 }, ++ { 0x1.9e475b5aaea97p-469, 0x1.0660edcde1e02p-463 }, ++ { 0x1.2dd03980220acp-469, 0x1.7e727aec99554p-464 }, ++ { 0x1.b7b478b8fda1cp-470, 0x1.16b24c391593bp-464 }, ++ { 0x1.40424c4fd21f7p-470, 0x1.96221780dfe95p-465 }, ++ { 0x1.d276d459f43c7p-471, 0x1.27e2788696d86p-465 }, ++ { 0x1.53aa8c500f5dp-471, 0x1.af1357749947cp-466 }, ++ { 0x1.ee9c5073f397ep-472, 0x1.39fac2bf7a531p-466 }, ++ { 0x1.6812e6a2e8fcp-472, 0x1.c9538eaa71fbp-467 }, ++ { 0x1.06198ecffc0ep-472, 0x1.4d04b3a802aeep-467 }, ++ { 0x1.7d857ef6fe55ap-473, 0x1.e4f0604536408p-468 }, ++ { 0x1.15a4dc243cc5fp-473, 0x1.610a0b4ec8401p-468 }, ++ { 0x1.940cad97ee071p-474, 0x1.00fbde3ac71c6p-468 }, ++ { 0x1.25f772e00c70ap-474, 0x1.7614bf61d6bfap-469 }, ++ { 0x1.abb2fd3f529efp-475, 0x1.103beefa0765p-469 }, ++ { 0x1.3718d87e8a0afp-475, 0x1.8c2ef94786008p-470 }, ++ { 0x1.c48328a4346ebp-476, 0x1.203fa39242793p-470 }, ++ { 0x1.4910b37b4de72p-476, 0x1.a36313f8e64ecp-471 }, ++ { 0x1.de8817c6f33b9p-477, 0x1.310e5f6fbfd44p-471 }, ++ { 0x1.5be6c950a7e6fp-477, 0x1.bbbb999bb060ap-472 }, ++ { 0x1.f9ccdcf7c94fep-478, 0x1.42afa66f9fdc1p-472 }, ++ { 0x1.6fa2fc442a9d3p-478, 0x1.d54340d9c375dp-473 }, ++ { 0x1.0b2e58cb15f5cp-478, 0x1.552b1ae6aeaa2p-473 }, ++ { 0x1.844d490056942p-479, 0x1.f004e9f45a94bp-474 }, ++ { 0x1.1a217943b9ac7p-479, 0x1.68887b7750462p-474 }, ++ { 0x1.99edc3fa555f4p-480, 0x1.0605cdc8a1e5ep-474 }, ++ { 0x1.29c58e31af831p-480, 0x1.7ccfa0b55e3f7p-475 }, ++ { 0x1.b08c96a2d341cp-481, 0x1.14b13fa04509fp-475 }, ++ { 0x1.3a2063aa9bfc9p-481, 0x1.92087a96ea8f4p-476 }, ++ { 0x1.c831fc61280f7p-482, 0x1.240a6edc95f53p-476 }, ++ { 0x1.4b37d15842e1dp-482, 0x1.a83b0db0fa5b6p-477 }, ++ { 0x1.e0e63f582488bp-483, 0x1.34170d65d2fe5p-477 }, ++ { 0x1.5d11b81c3fea7p-483, 0x1.bf6f703f6c8b1p-478 }, ++ { 0x1.fab1b4f400c2ep-484, 0x1.44dcd884a52dcp-478 }, ++ { 0x1.6fb3ff8ccf41cp-484, 0x1.d7adc6f76430fp-479 }, ++ { 0x1.0ace5d20891a2p-484, 0x1.5661968fc8c68p-479 }, ++ { 0x1.8324934a763f4p-485, 0x1.f0fe41a3b588bp-480 }, ++ { 0x1.18d7d8058e531p-485, 0x1.68ab147365bffp-480 }, ++ { 0x1.9769602e7d2c4p-486, 0x1.05b48bc57ed71p-480 }, ++ { 0x1.27797b62a04a4p-486, 0x1.7bbf2311e9661p-481 }, ++ { 0x1.ac8851524d431p-487, 0x1.137b41cf9c9a4p-481 }, ++ { 0x1.36b7751d5da7fp-487, 0x1.8fa3947e525d9p-482 }, ++ { 0x1.c2874cefea298p-488, 0x1.21d7603b6e2ccp-482 }, ++ { 0x1.4695ee8470b66p-488, 0x1.a45e3910021acp-483 }, ++ { 0x1.d96c311be3eb3p-489, 0x1.30cd0207d04edp-483 }, ++ { 0x1.571909f179506p-489, 0x1.b9f4dc504a668p-484 }, ++ { 0x1.f13cd05945d89p-490, 0x1.40603dadb780ap-484 }, ++ { 0x1.6844e0504f766p-490, 0x1.d06d41c212c13p-485 }, ++ { 0x1.04ff770417c7ep-490, 0x1.509522cc01f2fp-485 }, ++ { 0x1.7a1d7e8c27e5p-491, 0x1.e7cd2184183ebp-486 }, ++ { 0x1.11dc1d57f7df8p-491, 0x1.616fb7b910c11p-486 }, ++ { 0x1.8ca6e2e342651p-492, 0x1.000d1267395e3p-486 }, ++ { 0x1.1f372812d1e14p-492, 0x1.72f3f6faafe57p-487 }, ++ { 0x1.9fe4fa21e8c98p-493, 0x1.0cacf12619fe1p-487 }, ++ { 0x1.2d1356c845fd1p-493, 0x1.8525cca4f244dp-488 }, ++ { 0x1.b3db9cc5a58f3p-494, 0x1.19c8ed29100e2p-488 }, ++ { 0x1.3b7359a6b9391p-494, 0x1.980913a0c5f1ep-489 }, ++ { 0x1.c88e8c09b9bb2p-495, 0x1.2763b979d57b5p-489 }, ++ { 0x1.4a59cf5958098p-495, 0x1.aba192db244fdp-490 }, ++ { 0x1.de016eddfacadp-496, 0x1.357ff9fbc97f4p-490 }, ++ { 0x1.59c942db45eaep-496, 0x1.bff2fa5de1e9dp-491 }, ++ { 0x1.f437cec9632b8p-497, 0x1.44204156d00fcp-491 }, ++ { 0x1.69c4293cefa3fp-497, 0x1.d500e0534289dp-492 }, ++ { 0x1.059a8a5ce0ce7p-497, 0x1.53470ed39dd97p-492 }, ++ { 0x1.7a4cdf5c8de47p-498, 0x1.eacebdf5973c2p-493 }, ++ { 0x1.117e42e10afc5p-498, 0x1.62f6cc2a62dbdp-493 }, ++ { 0x1.8b65a792fe14p-499, 0x1.00aff63626acfp-493 }, ++ { 0x1.1dc89fe4a5f8ap-499, 0x1.7331cb44dd6ecp-494 }, ++ { 0x1.9d10a7562f377p-500, 0x1.0c5bd0cbfba3p-494 }, ++ { 0x1.2a7b1b1593291p-500, 0x1.83fa43f4f73d5p-495 }, ++ { 0x1.af4fe4d278bf9p-501, 0x1.186c76677c8f7p-495 }, ++ { 0x1.37971726a776ep-501, 0x1.955251a12574cp-496 }, ++ { 0x1.c225447c48b85p-502, 0x1.24e359c6528bbp-496 }, ++ { 0x1.451dde15504ecp-502, 0x1.a73bf0e7dcf7bp-497 }, ++ { 0x1.d592869bae136p-503, 0x1.31c1d70a5a26cp-497 }, ++ { 0x1.53109f6b70a02p-503, 0x1.b9b8fd3b82acep-498 }, ++ { 0x1.e99944d35a898p-504, 0x1.3f09320694d4p-498 }, ++ { 0x1.61706e7ea0b42p-504, 0x1.cccb2e7856e93p-499 }, ++ { 0x1.fe3aefa4cdaa2p-505, 0x1.4cba948866255p-499 }, ++ { 0x1.703e40ae0b133p-505, 0x1.e0741675f15a5p-500 }, ++ { 0x1.09bc65f9b8064p-505, 0x1.5ad70c9e433d4p-500 }, ++ { 0x1.7f7aeba02f7efp-506, 0x1.f4b51e95f89d5p-501 }, ++ { 0x1.14a9f8443d058p-506, 0x1.695f8add0a062p-501 }, ++ { 0x1.8f272381e3222p-507, 0x1.04c7c2a8ead79p-501 }, ++ { 0x1.1fe6a1ccca721p-507, 0x1.7854e0a5444cfp-502 }, ++ { 0x1.9f437947f2743p-508, 0x1.0f822de49bc54p-502 }, ++ { 0x1.2b72bc2a1bb29p-508, 0x1.87b7be69a8c26p-503 }, ++ { 0x1.afd058f4d5cb9p-509, 0x1.1a8a41a9a734p-503 }, ++ { 0x1.374e8637e822fp-509, 0x1.9788b1f83908ep-504 }, ++ { 0x1.c0ce07e3f5247p-510, 0x1.25e0558a5c077p-504 }, ++ { 0x1.437a22e46ffc9p-510, 0x1.a7c824c7683f1p-505 }, ++ { 0x1.d23ca31c0220cp-511, 0x1.3184a6ce13b46p-505 }, ++ { 0x1.4ff5980398e02p-511, 0x1.b8765a48c0cf1p-506 }, ++ { 0x1.e41c1da9f8a5fp-512, 0x1.3d775743f06aep-506 }, ++ { 0x1.5cc0cd28b81e5p-512, 0x1.c9936e428a9d9p-507 }, ++ { 0x1.f66c3f065ea05p-513, 0x1.49b86c1b194cep-507 }, ++ { 0x1.69db8a882e29p-513, 0x1.db1f5331fbe71p-508 }, ++ { 0x1.049650c331274p-513, 0x1.5647ccc18e717p-508 }, ++ { 0x1.774577e1faf4fp-514, 0x1.ed19d0b78718cp-509 }, ++ { 0x1.0e2e586d3df5cp-514, 0x1.632541cab3acp-509 }, ++ { 0x1.84fe1b767669bp-515, 0x1.ff82820edeaabp-510 }, ++ { 0x1.17fdd44e1dc6cp-515, 0x1.705073deb552ap-510 }, ++ { 0x1.9304d9065a4b9p-516, 0x1.092c6a4a26abfp-510 }, ++ { 0x1.220449767742ap-516, 0x1.7dc8eab3ed87ap-511 }, ++ { 0x1.a158f0df4c356p-517, 0x1.12ce032c827cep-511 }, ++ { 0x1.2c4123936432bp-517, 0x1.8b8e0c1372c25p-512 }, ++ { 0x1.aff97ef6163edp-518, 0x1.1ca5926404568p-512 }, ++ { 0x1.36b3b4511d82bp-518, 0x1.999f1ae9f978bp-513 }, ++ { 0x1.bee57a0fbbbdcp-519, 0x1.26b285aeabdbep-513 }, ++ { 0x1.415b32c89327cp-519, 0x1.a7fb366632c72p-514 }, ++ { 0x1.ce1bb2fa9523ep-520, 0x1.30f431387ee69p-514 }, ++ { 0x1.4c36baf8c2285p-520, 0x1.b6a15925d0c25p-515 }, ++ { 0x1.dd9ad3d89a4a5p-521, 0x1.3b69cf0bd5608p-515 }, ++ { 0x1.57454d4c97f21p-521, 0x1.c590587256b75p-516 }, ++ { 0x1.ed615f7bfd7d2p-522, 0x1.46127e8d37ba7p-516 }, ++ { 0x1.6285ce2e2e29bp-522, 0x1.d4c6e38ed7f06p-517 }, ++ { 0x1.fd6db0d73348ep-523, 0x1.50ed44039bd53p-517 }, ++ { 0x1.6df705a8252f7p-523, 0x1.e4438317c2a1ep-518 }, ++ { 0x1.06defd40bdb09p-523, 0x1.5bf9082dc8412p-518 }, ++ { 0x1.79979f15ddb0dp-524, 0x1.f4049875ce63p-519 }, ++ { 0x1.0f2823287afb6p-524, 0x1.673497e5a0d03p-519 }, ++ { 0x1.856628e34ac2cp-525, 0x1.02042eb28efefp-519 }, ++ { 0x1.17913a85a33a7p-525, 0x1.729ea3d219a53p-520 }, ++ { 0x1.9161145d0e326p-526, 0x1.0a2671c8cdbeep-520 }, ++ { 0x1.20191f16dc709p-526, 0x1.7e35c0288722ep-521 }, ++ { 0x1.9d86b59187f4ep-527, 0x1.12680a24c58f5p-521 }, ++ { 0x1.28be97e6e9065p-527, 0x1.89f8647df9662p-522 }, ++ { 0x1.a9d5434377e7bp-528, 0x1.1ac7d823a316cp-522 }, ++ { 0x1.31805749922c3p-528, 0x1.95e4eba9494cap-523 }, ++ { 0x1.b64ad6eec66d3p-529, 0x1.2344a7c981006p-523 }, ++ { 0x1.3a5cfae5998ecp-529, 0x1.a1f993b67371dp-524 }, ++ { 0x1.c2e56cdffce02p-530, 0x1.2bdd30bebc795p-524 }, ++ { 0x1.43530bcc0ee3ap-530, 0x1.ae347debd307p-525 }, ++ { 0x1.cfa2e45eea63dp-531, 0x1.3490165a1de5p-525 }, ++ { 0x1.4c60fe9d5cbc1p-531, 0x1.ba93aee1c301fp-526 }, ++ { 0x1.dc80ffece4451p-532, 0x1.3d5be7b8309a9p-526 }, ++ { 0x1.558533bc564e3p-532, 0x1.c7150ead1fd0ep-527 }, ++ { 0x1.e97d659702f92p-533, 0x1.463f1fe01b7dap-527 }, ++ { 0x1.5ebdf78f85a03p-533, 0x1.d3b6691d169e3p-528 }, ++ { 0x1.f6959f5cadd73p-534, 0x1.4f3825f642bp-528 }, ++ { 0x1.680982d0eea8ap-534, 0x1.e0756e0ca137bp-529 }, ++ { 0x1.01e38dd55bfc7p-534, 0x1.58454d7cf072p-529 }, ++ { 0x1.7165faec70a1p-535, 0x1.ed4fb1c7fef16p-530 }, ++ { 0x1.088796f5a026p-535, 0x1.6164d6a338985p-530 }, ++ { 0x1.7ad1726ce2f3cp-536, 0x1.fa42ad866b6p-531 }, ++ { 0x1.0f3587953aeb5p-536, 0x1.6a94eea23ecd2p-531 }, ++ { 0x1.8449e977fef01p-537, 0x1.03a5dffc21d0dp-531 }, ++ { 0x1.15ebef6827c9dp-537, 0x1.73d3b028fc2cfp-532 }, ++ { 0x1.8dcd4e591ac76p-538, 0x1.0a3416f4dd0f1p-532 }, ++ { 0x1.1ca951b79a938p-538, 0x1.7d1f23d694b62p-533 }, ++ { 0x1.97597e1aad586p-539, 0x1.10ca917d13a59p-533 }, ++ { 0x1.236c25d3c18a2p-539, 0x1.867540c340902p-534 }, ++ { 0x1.a0ec452e85047p-540, 0x1.1767d933fa0f7p-534 }, ++ { 0x1.2a32d78fe110fp-540, 0x1.8fd3ed17c059fp-535 }, ++ { 0x1.aa8360248e3edp-541, 0x1.1e0a6bf884441p-535 }, ++ { 0x1.30fbc7c8ab284p-541, 0x1.9938feb3469d1p-536 }, ++ { 0x1.b41c7c6ff8cc6p-542, 0x1.24b0bc63cac6bp-536 }, ++ { 0x1.37c54cf4ab1fcp-542, 0x1.a2a23bdfb3241p-537 }, ++ { 0x1.bdb5393a7ccd2p-543, 0x1.2b59324d7fd9bp-537 }, ++ { 0x1.3e8db3be9418cp-543, 0x1.ac0d5c13ef72ap-538 }, ++ { 0x1.c74b284572b4cp-544, 0x1.32022b5a4d882p-538 }, ++ { 0x1.45533fa93710cp-544, 0x1.b57808c42df0bp-539 }, ++ { 0x1.d0dbced86364cp-545, 0x1.38a9fb93eb86p-539 }, ++ { 0x1.4c142bbcdb51bp-545, 0x1.bedfde3fbf9f1p-540 }, ++ { 0x1.da64a6bca7adp-546, 0x1.3f4eee0ab230dp-540 }, ++ { 0x1.52ceab3daa53bp-546, 0x1.c8426c9c266d4p-541 }, ++ { 0x1.e3e31f45a0a96p-547, 0x1.45ef458066425p-541 }, ++ { 0x1.5980ea6ad6692p-547, 0x1.d19d38acfc932p-542 }, ++ { 0x1.ed549e6504cf2p-548, 0x1.4c893d1bef1fep-542 }, ++ { 0x1.60290f4619f98p-548, 0x1.daedbd083bb8ep-543 }, ++ { 0x1.f6b681cab013bp-549, 0x1.531b0925a021ep-543 }, ++ { 0x1.66c53a6323b06p-549, 0x1.e4316b16614afp-544 }, ++ { 0x1.00031007ac3e3p-549, 0x1.59a2d7cbb3c39p-544 }, ++ { 0x1.6d5387be7adf6p-550, 0x1.ed65ac2de0264p-545 }, ++ { 0x1.04a064f4bdd38p-550, 0x1.601ed1ee8e719p-545 }, ++ { 0x1.73d20f9b5e73bp-551, 0x1.f687e2b942e41p-546 }, ++ { 0x1.0931e5b5e6c43p-551, 0x1.668d1bf455ad8p-546 }, ++ { 0x1.7a3ee7681856fp-552, 0x1.ff956b675583bp-547 }, ++ { 0x1.0db636a632668p-552, 0x1.6cebd6a35f863p-547 }, ++ { 0x1.809822a836e1fp-553, 0x1.0445cf3250898p-547 }, ++ { 0x1.122bfb19eafe7p-553, 0x1.73392002f5fc2p-548 }, ++ { 0x1.86dbd3e416493p-554, 0x1.08b3e84ebc2b9p-548 }, ++ { 0x1.1691d609b1ec9p-554, 0x1.79731441e1e21p-549 }, ++ { 0x1.8d080d9d1c96dp-555, 0x1.0d13aa83e4b01p-549 }, ++ { 0x1.1ae66ac0b0b6ap-555, 0x1.7f97cea22928bp-550 }, ++ { 0x1.931ae34603f62p-556, 0x1.1163bef9eebc1p-550 }, ++ { 0x1.1f285d8d6c817p-556, 0x1.85a56a6965552p-551 }, ++ { 0x1.99126a3e88ca5p-557, 0x1.15a2cf3193875p-551 }, ++ { 0x1.23565474c154ep-557, 0x1.8b9a03d510324p-552 }, ++ { 0x1.9eecbad1cb519p-558, 0x1.19cf85b21a11fp-552 }, ++ { 0x1.276ef7e686addp-558, 0x1.9173b9121e9f7p-553 }, ++ { 0x1.a4a7f136af77ep-559, 0x1.1de88eb969b39p-553 }, ++ { 0x1.2b70f3735b79fp-559, 0x1.9730ab373bc61p-554 }, ++ { 0x1.aa422e918100dp-560, 0x1.21ec98edb9593p-554 }, ++ { 0x1.2f5af68314ac2p-560, 0x1.9cceff40f1fb1p-555 }, ++ { 0x1.afb999f61e5d4p-561, 0x1.25da56105b758p-555 }, ++ { 0x1.332bb50b471fbp-561, 0x1.a24cdf0f0a2e7p-556 }, ++ { 0x1.b50c6169e961bp-562, 0x1.29b07bb123c75p-556 }, ++ { 0x1.36e1e845638bbp-562, 0x1.a7a87a6267113p-557 }, ++ { 0x1.ba38bae4baa67p-563, 0x1.2d6dc3e1e1b47p-557 }, ++ { 0x1.3a7c4f63d9d53p-563, 0x1.ace007da9e0c8p-558 }, ++ { 0x1.bf3ce55012ad1p-564, 0x1.3110ede9680cep-558 }, ++ { 0x1.3df9b045b81fcp-564, 0x1.b1f1c5f28dcc9p-559 }, ++ { 0x1.c4172983c2f7ep-565, 0x1.3498bef599a58p-559 }, ++ { 0x1.4158d828399aep-565, 0x1.b6dbfbfb30836p-560 }, ++ { 0x1.c8c5db3f49157p-566, 0x1.380402cbf1542p-560 }, ++ { 0x1.44989c55b9312p-566, 0x1.bb9cfb13e7262p-561 }, ++ { 0x1.cd475a1f163eep-567, 0x1.3b518c77fb7d2p-561 }, ++ { 0x1.47b7dad17cf31p-567, 0x1.c0331f1f7ac71p-562 }, ++ { 0x1.d19a128cff8a4p-568, 0x1.3e8036f737914p-562 }, ++ { 0x1.4ab57affd05a9p-568, 0x1.c49ccfb511d2cp-563 }, ++ { 0x1.d5bc7eab14dfbp-569, 0x1.418ee5e1d890ep-563 }, ++ { 0x1.4d906e49e5535p-569, 0x1.c8d8810c585d4p-564 }, ++ { 0x1.d9ad27381fd3dp-570, 0x1.447c860fdcf2cp-564 }, ++ { 0x1.5047b0bcf6527p-570, 0x1.cce4b4e41cdcap-565 }, ++ { 0x1.dd6aa46d0f45cp-571, 0x1.47480e39f8181p-565 }, ++ { 0x1.52da49a426b16p-571, 0x1.d0bffb62a59f5p-566 }, ++ { 0x1.e0f39ed2991f9p-572, 0x1.49f07f95c9d66p-566 }, ++ { 0x1.55474c1ca1f2bp-572, 0x1.d468f3ef07049p-567 }, ++ { 0x1.e446d00e60d84p-573, 0x1.4c74e66ce3841p-567 }, ++ { 0x1.578dd7a37e92bp-573, 0x1.d7de4e02c6f6fp-568 }, ++ { 0x1.e76303a6f7572p-574, 0x1.4ed45aae1d60cp-568 }, ++ { 0x1.59ad189ced845p-574, 0x1.db1ec9f31f5e1p-569 }, ++ { 0x1.ea4717be0f8c8p-575, 0x1.510e0078c325ep-569 }, ++ { 0x1.5ba448d444792p-575, 0x1.de2939b1372f7p-570 }, ++ { 0x1.ecf1fdc04a7dbp-576, 0x1.532108a122ff3p-570 }, ++ { 0x1.5d72aff4768dap-576, 0x1.e0fc8180b06b8p-571 }, ++ { 0x1.ef62bb0a0594ap-577, 0x1.550cb12e0f1dbp-571 }, ++ { 0x1.5f17a3f894e1dp-577, 0x1.e39798a3f0a89p-572 }, ++ { 0x1.f19869809eb8ap-578, 0x1.56d045cee7811p-572 }, ++ { 0x1.60928993f7077p-578, 0x1.e5f989fd91cadp-573 }, ++ { 0x1.f392381fab056p-579, 0x1.586b2049c7737p-573 }, ++ { 0x1.61e2d491b1f68p-579, 0x1.e82174a67122fp-574 }, ++ { 0x1.f54f6b79a6d5fp-580, 0x1.59dca8e17880fp-574 }, ++ { 0x1.6308082b0b65cp-580, 0x1.ea0e8c77dc629p-575 }, ++ { 0x1.f6cf5e2bb03dcp-581, 0x1.5b2456b2d3672p-575 }, ++ { 0x1.6401b7549eebbp-581, 0x1.ebc01a8965943p-576 }, ++ { 0x1.f8118143e7ebp-582, 0x1.5c41b0093e8e9p-576 }, ++ { 0x1.64cf8501f223bp-582, 0x1.ed357da1f18bap-577 }, ++ { 0x1.f9155c9a1fbd1p-583, 0x1.5d344aaa010f1p-577 }, ++ { 0x1.6571245f3d39ap-583, 0x1.ee6e2a9b9efdp-578 }, ++ { 0x1.f9da8f1a8a0ccp-584, 0x1.5dfbcc1628fd2p-578 }, ++ { 0x1.65e6590135ap-584, 0x1.ef69acba2f951p-579 }, ++ { 0x1.fa60cf0228aadp-585, 0x1.5e97e9c2cbc7fp-579 }, ++ { 0x1.662ef70ab154bp-585, 0x1.f027a5f3a7f56p-580 }, ++ { 0x1.faa7ea0cc6ecbp-586, 0x1.5f0869476fb64p-580 }, ++ { 0x1.664ae34801e0ep-586, 0x1.f0a7cf2ae7563p-581 }, ++ { 0x1.faafc59456a8cp-587, 0x1.5f4d2082760f5p-581 }, ++ { 0x1.663a133fef35p-587, 0x1.f0e9f85c03b41p-582 }, ++ { 0x1.fa785ea194bf2p-588, 0x1.5f65f5b366281p-582 }, ++ { 0x1.65fc8d3a43882p-588, 0x1.f0ee08ba43cd5p-583 }, ++ { 0x1.fa01c9ede6a16p-589, 0x1.5f52df8b025d3p-583 }, ++ { 0x1.6592683be2829p-589, 0x1.f0b3febf9cbcdp-584 }, ++ { 0x1.f94c33d66f35bp-590, 0x1.5f13e53118eaap-584 }, ++ { 0x1.64fbcbf86f1abp-590, 0x1.f03bf02da5a7ap-585 }, ++ { 0x1.f857e040665ap-591, 0x1.5ea91e400b8afp-585 }, ++ { 0x1.6438f0b98cabp-591, 0x1.ef860a0000a7ap-586 }, ++ { 0x1.f7252a6ecb2bbp-592, 0x1.5e12b2b611c72p-586 }, ++ { 0x1.634a1f3bd0d7ep-592, 0x1.ee92905044d53p-587 }, ++ { 0x1.f5b484c995f72p-593, 0x1.5d50dadc42d9dp-587 }, ++ { 0x1.622fb08184d56p-593, 0x1.ed61de2b81fc4p-588 }, ++ { 0x1.f40678969b4f4p-594, 0x1.5c63df237cf4dp-588 }, ++ { 0x1.60ea0d9b5d711p-594, 0x1.ebf4655983167p-589 }, ++ { 0x1.f21ba5a45e2afp-595, 0x1.5b4c17f7488b1p-589 }, ++ { 0x1.5f79af6759efdp-595, 0x1.ea4aae160108ap-590 }, ++ { 0x1.eff4c1e71b057p-596, 0x1.5a09ed86def16p-590 }, ++ { 0x1.5ddf1e460242cp-596, 0x1.e86556bc034fep-591 }, ++ { 0x1.ed92990861c73p-597, 0x1.589dd784842fp-591 }, ++ { 0x1.5c1af1c6454bep-597, 0x1.e6451363b8311p-592 }, ++ { 0x1.eaf60be99fa59p-598, 0x1.57085cdb6c23ep-592 }, ++ { 0x1.5a2dd0483fd76p-598, 0x1.e3eaad7319948p-593 }, ++ { 0x1.e820101a05296p-599, 0x1.554a135c6b3d2p-593 }, ++ { 0x1.58186e973c8cbp-599, 0x1.e1570321beee3p-594 }, ++ { 0x1.e511af403f0e1p-600, 0x1.53639f61bab8bp-594 }, ++ { 0x1.55db8f7b445c6p-600, 0x1.de8b06f0475d8p-595 }, ++ { 0x1.e1cc067882b19p-601, 0x1.5155b36a1ff17p-595 }, ++ { 0x1.537803429dd3dp-601, 0x1.db87bf13d1856p-596 }, ++ { 0x1.de5045a77840fp-602, 0x1.4f210fabcd4fep-596 }, ++ { 0x1.50eea743a03bp-602, 0x1.d84e44d6006fdp-597 }, ++ { 0x1.da9faec295ac1p-603, 0x1.4cc6819f5a3a9p-597 }, ++ { 0x1.4e406557456e3p-603, 0x1.d4dfc3ea1615fp-598 }, ++ { 0x1.d6bb950e85a76p-604, 0x1.4a46e38335bf7p-598 }, ++ { 0x1.4b6e334ceafc3p-604, 0x1.d13d79b7b4d75p-599 }, ++ { 0x1.d2a55c543d97bp-605, 0x1.47a31bd7fd98ap-599 }, ++ { 0x1.48791257b832ep-605, 0x1.cd68b49be13bdp-600 }, ++ { 0x1.ce5e780d6c294p-606, 0x1.44dc1cd628aecp-600 }, ++ { 0x1.45620e7623619p-606, 0x1.c962d320e4c77p-601 }, ++ { 0x1.c9e86a88f07ffp-607, 0x1.41f2e3dd79383p-601 }, ++ { 0x1.422a3dd414b5ep-607, 0x1.c52d432db963cp-602 }, ++ { 0x1.c544c4080f626p-608, 0x1.3ee878deaf1c1p-602 }, ++ { 0x1.3ed2c02828af5p-608, 0x1.c0c9812daaed1p-603 }, ++ { 0x1.c07521d52071ep-609, 0x1.3bbdedbff743p-603 }, ++ { 0x1.3b5cbe0c97302p-609, 0x1.bc391730e1bf4p-604 }, ++ { 0x1.bb7b2d547171ap-610, 0x1.38745dbc97fd1p-604 }, ++ { 0x1.37c9685446b6bp-610, 0x1.b77d9c068db21p-605 }, ++ { 0x1.b6589b1020c3ep-611, 0x1.350cecc05d9cfp-605 }, ++ { 0x1.3419f75c953bcp-611, 0x1.b298b2516cc35p-606 }, ++ { 0x1.b10f29bfb2a68p-612, 0x1.3188c6bf4cd49p-606 }, ++ { 0x1.304faa5c619afp-612, 0x1.ad8c07976bbcp-607 }, ++ { 0x1.aba0a14c264ccp-613, 0x1.2de91f0a22435p-607 }, ++ { 0x1.2c6bc6b0e1424p-613, 0x1.a859534d21642p-608 }, ++ { 0x1.a60ed1d150c44p-614, 0x1.2a2f2fa027fc3p-608 }, ++ { 0x1.286f9728ce321p-614, 0x1.a30255dde65bep-609 }, ++ { 0x1.a05b929d439abp-615, 0x1.265c387eea954p-609 }, ++ { 0x1.245c6b4e79163p-615, 0x1.9d88d7b14c6d3p-610 }, ++ { 0x1.9a88c12e847c2p-616, 0x1.22717ef05792fp-610 }, ++ { 0x1.203396b14a77p-616, 0x1.97eea82eb8229p-611 }, ++ { 0x1.94984031d9858p-617, 0x1.1e704cd7ceb7cp-611 }, ++ { 0x1.1bf6702f3caf4p-617, 0x1.92359cbfdea74p-612 }, ++ { 0x1.8e8bf6806bcabp-618, 0x1.1a59effeaeef1p-612 }, ++ { 0x1.17a6513ed67fap-618, 0x1.8c5f8fd2e86f6p-613 }, ++ { 0x1.8865ce1efe9b6p-619, 0x1.162fb960e6361p-613 }, ++ { 0x1.1344953a2bc16p-619, 0x1.866e5fdcf6e5cp-614 }, ++ { 0x1.8227b33ef66f4p-620, 0x1.11f2fc7a0a0a9p-614 }, ++ { 0x1.0ed298ab66e97p-620, 0x1.8063ee5dc8676p-615 }, ++ { 0x1.7bd39341e60d2p-621, 0x1.0da50e937b941p-615 }, ++ { 0x1.0a51b89b5ac38p-621, 0x1.7a421ee53231bp-616 }, ++ { 0x1.756b5bc0538cfp-622, 0x1.0947461417eb2p-616 }, ++ { 0x1.05c351e298147p-622, 0x1.740ad61b23997p-617 }, ++ { 0x1.6ef0f9946142ep-623, 0x1.04daf9d1f19dp-617 }, ++ { 0x1.0128c07d7eac9p-623, 0x1.6dbff8cae0f32p-618 }, ++ { 0x1.686657e900799p-624, 0x1.006180668cd93p-618 }, ++ { 0x1.f906bdc779cfcp-625, 0x1.67636af21f0cbp-619 }, ++ { 0x1.61cd5f4e4d33cp-625, 0x1.f7b85f0c272bbp-620 }, ++ { 0x1.efa90ac757637p-626, 0x1.60f70ed4a200ep-620 }, ++ { 0x1.5b27f4d3aafafp-626, 0x1.ee98b6b3e4f34p-621 }, ++ { 0x1.e63b1303dfbfbp-627, 0x1.5a7cc414fb8aap-621 }, ++ { 0x1.5477f92833195p-627, 0x1.e566abbe94f87p-622 }, ++ { 0x1.dcbf7abb88524p-628, 0x1.53f666d2fde17p-622 }, ++ { 0x1.4dbf47c1fc8ap-628, 0x1.dc24dc933bf6dp-623 }, ++ { 0x1.d338de3492428p-629, 0x1.4d65ced070949p-623 }, ++ { 0x1.46ffb60cbd76p-629, 0x1.d2d5e0d43505p-624 }, ++ { 0x1.c9a9d09a6515fp-630, 0x1.46ccce9c8cdf5p-624 }, ++ { 0x1.403b12a03d499p-630, 0x1.c97c4837b573ep-625 }, ++ { 0x1.c014dae645fc3p-631, 0x1.402d32c6be96dp-625 }, ++ { 0x1.3973247f05596p-631, 0x1.c01a996aebdb3p-626 }, ++ { 0x1.b67c7ad400b86p-632, 0x1.3988c1191e211p-626 }, ++ { 0x1.32a9aa5db4bb3p-632, 0x1.b6b3510058b7ap-627 }, ++ { 0x1.ace321e309c7bp-633, 0x1.32e137db0ef23p-627 }, ++ { 0x1.2be059f3526f7p-633, 0x1.ad48e069f2207p-628 }, ++ { 0x1.a34b346493cc3p-634, 0x1.2c384d1c64d5bp-628 }, ++ { 0x1.2518df52ef492p-634, 0x1.a3ddacff96f65p-629 }, ++ { 0x1.99b70897047dcp-635, 0x1.258fae0968e74p-629 }, ++ { 0x1.1e54dc4edf3a3p-635, 0x1.9a740f1248851p-630 }, ++ { 0x1.9028e5cf277c7p-636, 0x1.1ee8fe480d92cp-630 }, ++ { 0x1.1795e7e5c7ccap-636, 0x1.910e510c93fe1p-631 }, ++ { 0x1.86a303af6f699p-637, 0x1.1845d75e974c6p-631 }, ++ { 0x1.10dd8db9b7b2p-637, 0x1.87aeaea087811p-632 }, ++ { 0x1.7d27896d87b8ep-638, 0x1.11a7c823f5ff5p-632 }, ++ { 0x1.0a2d4d917179ap-638, 0x1.7e57540380a9p-633 }, ++ { 0x1.73b88d266bc5ap-639, 0x1.0b10543a01766p-633 }, ++ { 0x1.03869ae409b27p-639, 0x1.750a5d3814d59p-634 }, ++ { 0x1.6a58134129f18p-640, 0x1.0480f391c14fcp-634 }, ++ { 0x1.f9d5b8ddde221p-641, 0x1.6bc9d56645be6p-635 }, ++ { 0x1.61080de06bfbp-641, 0x1.fbf623f3bedbap-636 }, ++ { 0x1.ecb6d7acd34f7p-642, 0x1.6297b642274f2p-636 }, ++ { 0x1.57ca5c62d05ddp-642, 0x1.ef001d6eb49dfp-637 }, ++ { 0x1.dfb32aa129cc6p-643, 0x1.5975e7810e7p-637 }, ++ { 0x1.4ea0caf213789p-643, 0x1.e222785106b16p-638 }, ++ { 0x1.d2cd2eb59de4cp-644, 0x1.50663e5d53392p-638 }, ++ { 0x1.458d1220fa79dp-644, 0x1.d55fbee497ep-639 }, ++ { 0x1.c60744f31e198p-645, 0x1.476a7d28a437bp-639 }, ++ { 0x1.3c90d697e5b5dp-645, 0x1.c8ba606fb6833p-640 }, ++ { 0x1.b963b20518321p-646, 0x1.3e8452ecdbe84p-640 }, ++ { 0x1.33ada8cfe418fp-646, 0x1.bc34b0b8bbc6p-641 }, ++ { 0x1.ace49de2283aep-647, 0x1.35b55b1b3d652p-641 }, ++ { 0x1.2ae504dc15f24p-647, 0x1.afd0e79df00ebp-642 }, ++ { 0x1.a08c1388db34fp-648, 0x1.2cff1d49f192cp-642 }, ++ { 0x1.223852412258p-648, 0x1.a39120c175c51p-643 }, ++ { 0x1.945c00d028182p-649, 0x1.24630cff92d39p-643 }, ++ { 0x1.19a8e3da77fbep-649, 0x1.97775b48ec1aap-644 }, ++ { 0x1.8856364b336c5p-650, 0x1.1be2898c8a8a4p-644 }, ++ { 0x1.1137f7cd08642p-650, 0x1.8b8579b06ca2cp-645 }, ++ { 0x1.7c7c673fe436ep-651, 0x1.137eddf1f97aep-645 }, ++ { 0x1.08e6b787233bap-651, 0x1.7fbd41b078795p-646 }, ++ { 0x1.70d029afc4472p-652, 0x1.0b3940d5da6fcp-646 }, ++ { 0x1.00b637cd0ec0bp-652, 0x1.74205c365c73ep-647 }, ++ { 0x1.6552f6729a259p-653, 0x1.0312d48405757p-647 }, ++ { 0x1.f14ef1a3e4ac2p-654, 0x1.68b0556e87723p-648 }, ++ { 0x1.5a06296220023p-654, 0x1.f6194df7630e5p-649 }, ++ { 0x1.e176ccb941b53p-655, 0x1.5d6e9ce0425a7p-649 }, ++ { 0x1.4eeb0196310cdp-655, 0x1.e64f64121563ep-650 }, ++ { 0x1.d1e5afef936dap-656, 0x1.525c859a2ea9ap-650 }, ++ { 0x1.4402a1b0bd9dfp-656, 0x1.d6c9b6d4d6fc5p-651 }, ++ { 0x1.c29d225a230e3p-657, 0x1.477b466ee6cc1p-651 }, ++ { 0x1.394e1038ce88ep-657, 0x1.c789ea0183d02p-652 }, ++ { 0x1.b39e83951bdaap-658, 0x1.3ccbfa4112a58p-652 }, ++ { 0x1.2ece3803d8d68p-658, 0x1.b8917a154498bp-653 }, ++ { 0x1.a4eb0c6436cf4p-659, 0x1.324fa05e3adc4p-653 }, ++ { 0x1.2483e8ac9d061p-659, 0x1.a9e1bcd30af1fp-654 }, ++ { 0x1.9683cf6400112p-660, 0x1.28071ce79e917p-654 }, ++ { 0x1.1a6fd716c7c18p-660, 0x1.9b7be1e1550cbp-655 }, ++ { 0x1.8869b9cc95345p-661, 0x1.1df33948493fap-655 }, ++ { 0x1.10929dfe85b79p-661, 0x1.8d60f37a227b9p-656 }, ++ { 0x1.7a9d9444b613ep-662, 0x1.1414a4b7a1729p-656 }, ++ { 0x1.06ecbe9338febp-662, 0x1.7f91d72bfd333p-657 }, ++ { 0x1.6d2003c3fdf54p-663, 0x1.0a6bf4c7a4f95p-657 }, ++ { 0x1.fafd4238f8063p-664, 0x1.720f4eaaf4bbbp-658 }, ++ { 0x1.5ff18a8317f0ap-664, 0x1.00f9a5fe04069p-658 }, ++ { 0x1.e8912b5139031p-665, 0x1.64d9f8b065b73p-659 }, ++ { 0x1.531288f8c01c7p-665, 0x1.ef7c38ee94e41p-660 }, ++ { 0x1.d695a98770e4bp-666, 0x1.57f251e86550ep-660 }, ++ { 0x1.46833ee262b1p-666, 0x1.dd73492689d2p-661 }, ++ { 0x1.c50b006d4e015p-667, 0x1.4b58b5eba6cc7p-661 }, ++ { 0x1.3a43cc572b3d3p-667, 0x1.cbd8e7539eac7p-662 }, ++ { 0x1.b3f14799b1616p-668, 0x1.3f0d6044b145dp-662 }, ++ { 0x1.2e5432e458097p-668, 0x1.baad518e7426ep-663 }, ++ { 0x1.a3486c40b74f1p-669, 0x1.33106d7f3cac9p-663 }, ++ { 0x1.22b456b1a8db7p-669, 0x1.a9f09adee91e3p-664 }, ++ { 0x1.931032d667261p-670, 0x1.2761dc408f1efp-664 }, ++ { 0x1.1763ffacc46acp-670, 0x1.99a2acce5bd7fp-665 }, ++ { 0x1.834838ba6fe3dp-671, 0x1.1c018e67b6eaep-665 }, ++ { 0x1.0c62daba74e7cp-671, 0x1.89c349043d67ep-666 }, ++ { 0x1.73eff5eb5eca5p-672, 0x1.10ef4a3481a29p-666 }, ++ { 0x1.01b07aeca1f42p-672, 0x1.7a520aeb63faep-667 }, ++ { 0x1.6506bebfc67bdp-673, 0x1.062abb7415c63p-667 }, ++ { 0x1.ee98b577ea7cap-674, 0x1.6b4e695e9099fp-668 }, ++ { 0x1.568bc5a3d72eep-674, 0x1.f766e96435041p-669 }, ++ { 0x1.da6bba883d22ap-675, 0x1.5cb7b85aa6067p-669 }, ++ { 0x1.487e1cd9f3e43p-675, 0x1.e311e0dabf963p-670 }, ++ { 0x1.c6d89f0368fc1p-676, 0x1.4e8d2ab5187d6p-670 }, ++ { 0x1.3adcb83cdccc3p-676, 0x1.cf55249e0172ap-671 }, ++ { 0x1.b3ddd3216f86ep-677, 0x1.40cdd3d52967cp-671 }, ++ { 0x1.2da66f0214306p-677, 0x1.bc2f50c60488ep-672 }, ++ { 0x1.a1799fd5925f4p-678, 0x1.3378a96e8e29ap-672 }, ++ { 0x1.20d9fd7b31257p-678, 0x1.a99ed8a2f2e6bp-673 }, ++ { 0x1.8faa294857a39p-679, 0x1.268c853c2e48dp-673 }, ++ { 0x1.147606d4e1ee3p-679, 0x1.97a2092e9b19dp-674 }, ++ { 0x1.7e6d714d6fce7p-680, 0x1.1a0826b9b2f1ep-674 }, ++ { 0x1.087916d26f37cp-680, 0x1.86370b7b69b46p-675 }, ++ { 0x1.6dc159d3dbce3p-681, 0x1.0dea34dab05c3p-675 }, ++ { 0x1.f9c3470942341p-682, 0x1.755be71f29feap-676 }, ++ { 0x1.5da3a74ec8bc7p-682, 0x1.02313fbe40a01p-676 }, ++ { 0x1.e35c1df5edf07p-683, 0x1.650e8497f58cdp-677 }, ++ { 0x1.4e120315adc06p-683, 0x1.edb784bbee452p-678 }, ++ { 0x1.cdb951dc67cbfp-684, 0x1.554cafa9d0c34p-678 }, ++ { 0x1.3f09fdba5037ep-684, 0x1.d7d0486e476ccp-679 }, ++ { 0x1.b8d760c6a3faap-685, 0x1.461419b3892c2p-679 }, ++ { 0x1.308911536a23dp-685, 0x1.c2a975dad9bep-680 }, ++ { 0x1.a4b2aa8c000cap-686, 0x1.37625bf981bdbp-680 }, ++ { 0x1.228ca3bac6e07p-686, 0x1.ae3f97cbb25cep-681 }, ++ { 0x1.914773f3bbbacp-687, 0x1.2934f9e530badp-681 }, ++ { 0x1.151208bdc254ep-687, 0x1.9a8f1bb2e0d78p-682 }, ++ { 0x1.7e91e9c37a26bp-688, 0x1.1b8963382a86p-682 }, ++ { 0x1.0816843f2edd8p-688, 0x1.879454bd5bf1ap-683 }, ++ { 0x1.6c8e23b87885fp-689, 0x1.0e5cf631ac83bp-683 }, ++ { 0x1.f72e98937c4f8p-690, 0x1.754b7ed21d736p-684 }, ++ { 0x1.5b38276a48eap-690, 0x1.01ad01a5b2ddp-684 }, ++ { 0x1.df23162441e8bp-691, 0x1.63b0c17c2afp-685 }, ++ { 0x1.4a8beb16012edp-691, 0x1.eaed8e09770edp-686 }, ++ { 0x1.c804c1d0522ebp-692, 0x1.52c032be62aabp-686 }, ++ { 0x1.3a855850eeeeap-692, 0x1.d36ef8a6e08fap-687 }, ++ { 0x1.b1cdcc2ca0214p-693, 0x1.4275d9d00481dp-687 }, ++ { 0x1.2b204ea20186ep-693, 0x1.bcd89c2310d59p-688 }, ++ { 0x1.9c78595e362cep-694, 0x1.32cdb1c10f0eep-688 }, ++ { 0x1.1c58a6013aaeep-694, 0x1.a724c21e93002p-689 }, ++ { 0x1.87fe848fd6bffp-695, 0x1.23c3ac05a8c19p-689 }, ++ { 0x1.0e2a313c94bb5p-695, 0x1.924da8624908p-690 }, ++ { 0x1.745a6341bd9d3p-696, 0x1.1553b2e7eba16p-690 }, ++ { 0x1.0090c041eb55fp-696, 0x1.7e4d844204d5fp-691 }, ++ { 0x1.61860872f36c7p-697, 0x1.0779abdf88654p-691 }, ++ { 0x1.e710449b20327p-698, 0x1.6b1e85d9cfdc3p-692 }, ++ { 0x1.4f7b87a3ccd22p-698, 0x1.f462f39da55f5p-693 }, ++ { 0x1.ce184ffaa0275p-699, 0x1.58badb2559681p-693 }, ++ { 0x1.3e34f7b15484dp-699, 0x1.daedfe49c8a9fp-694 }, ++ { 0x1.b6314a8f93441p-700, 0x1.471cb2f12adecp-694 }, ++ { 0x1.2dac75898461p-700, 0x1.c28c3fc94131bp-695 }, ++ { 0x1.9f52e6b0168fbp-701, 0x1.363e3fa56683p-695 }, ++ { 0x1.1ddc26b854422p-701, 0x1.ab358720f461fp-696 }, ++ { 0x1.8974e49b18481p-702, 0x1.2619b9e9f9276p-696 }, ++ { 0x1.0ebe3bcdc6652p-702, 0x1.94e1adf5ef17ap-697 }, ++ { 0x1.748f15c14a99p-703, 0x1.16a96324493c1p-697 }, ++ { 0x1.004cf29d383afp-703, 0x1.7f889bf8109c7p-698 }, ++ { 0x1.60995fd7916b4p-704, 0x1.07e787ce8decbp-698 }, ++ { 0x1.e50530acb7a2bp-705, 0x1.6b224a16aa4ep-699 }, ++ { 0x1.4d8bbfb38c98p-705, 0x1.f39d03522ee6ep-700 }, ++ { 0x1.cab316f0b29dep-706, 0x1.57a6c57f8fed2p-700 }, ++ { 0x1.3b5e4bf3051bbp-706, 0x1.d8b1738bdcb74p-701 }, ++ { 0x1.b1987b3f62cd2p-707, 0x1.450e32693ba8dp-701 }, ++ { 0x1.2a09376f26716p-707, 0x1.bf0154de94403p-702 }, ++ { 0x1.99aa6a5f22416p-708, 0x1.3350cea8cd61ap-702 }, ++ { 0x1.1984d37c8d151p-708, 0x1.a681c1d2f0b94p-703 }, ++ { 0x1.82de1daeb9c47p-709, 0x1.2266f414ce57bp-703 }, ++ { 0x1.09c991f950457p-709, 0x1.8f27fe21c9591p-704 }, ++ { 0x1.6d28fdea9871ap-710, 0x1.12491ab5c17d9p-704 }, ++ { 0x1.f5a00e548f085p-711, 0x1.78e979aa0c9bep-705 }, ++ { 0x1.5880a5ae03598p-711, 0x1.02efdac5a4ff4p-705 }, ++ { 0x1.d921d6d1c821bp-712, 0x1.63bbd32217718p-706 }, ++ { 0x1.44dae3b23367bp-712, 0x1.e8a7dcff4677cp-707 }, ++ { 0x1.be0a394617721p-713, 0x1.4f94da865b2a3p-707 }, ++ { 0x1.322dbccd73cabp-713, 0x1.ccdc67829105bp-708 }, ++ { 0x1.a44b3f5ce9c8bp-714, 0x1.3c6a934743c05p-708 }, ++ { 0x1.206f6db46b93p-714, 0x1.b26f5afd4ebc9p-709 }, ++ { 0x1.8bd742e227a38p-715, 0x1.2a3336386b4d7p-709 }, ++ { 0x1.0f966c7fd2396p-715, 0x1.99530a15ce61ap-710 }, ++ { 0x1.74a0efc06d36ep-716, 0x1.18e533433f227p-710 }, ++ { 0x1.ff32d3f1c0a49p-717, 0x1.817a166d90dbdp-711 }, ++ { 0x1.5e9b45aff1bep-717, 0x1.087732df4f3abp-711 }, ++ { 0x1.e0dea55db81c4p-718, 0x1.6ad7728d6db01p-712 }, ++ { 0x1.49b9999981d6cp-718, 0x1.f1c02ea5235f3p-713 }, ++ { 0x1.c41e9fb058b1ep-719, 0x1.555e63841a093p-713 }, ++ { 0x1.35ef96b0fe655p-719, 0x1.d42dfb77e321ep-714 }, ++ { 0x1.a8e19002cb47fp-720, 0x1.4102823a6a0a2p-714 }, ++ { 0x1.23313f4adb099p-720, 0x1.b8267dd51660dp-715 }, ++ { 0x1.8f16bf19917acp-721, 0x1.2db7bc80b123ep-715 }, ++ { 0x1.1172ed701cd4p-721, 0x1.9d98e007ff597p-716 }, ++ { 0x1.76adf2095d808p-722, 0x1.1b7255d8af1cep-716 }, ++ { 0x1.00a953345bce4p-722, 0x1.8474c5f89cf1fp-717 }, ++ { 0x1.5f976a86ba7a3p-723, 0x1.0a26e7ff7c8ap-717 }, ++ { 0x1.e192f5a290a0dp-724, 0x1.6caa4dc34bcc6p-718 }, ++ { 0x1.49c3e6e576cf8p-724, 0x1.f394c675d5da1p-719 }, ++ { 0x1.c3918d16606afp-725, 0x1.562a0ffd36fefp-719 }, ++ { 0x1.3524a1ccb90cep-725, 0x1.d4a41cdb95576p-720 }, ++ { 0x1.a739e0c3f00b3p-726, 0x1.40e51faa74ee4p-720 }, ++ { 0x1.21ab51a49a64p-726, 0x1.b7670ded07be7p-721 }, ++ { 0x1.8c781323e2b8bp-727, 0x1.2ccd09eaa341p-721 }, ++ { 0x1.0f4a27c210b83p-727, 0x1.9bc980b6cd88bp-722 }, ++ { 0x1.7338f3cfd4b18p-728, 0x1.19d3d560c7458p-722 }, ++ { 0x1.fbe79eabbab8bp-729, 0x1.81b807901b2ddp-723 }, ++ { 0x1.5b69fdd784131p-729, 0x1.07ec015b26bbfp-723 }, ++ { 0x1.db36d8463b3e1p-730, 0x1.691fdebe382bep-724 }, ++ { 0x1.44f955c9776f6p-730, 0x1.ee11097f70374p-725 }, ++ { 0x1.bc693203fe92cp-731, 0x1.51eeeac7320bep-725 }, ++ { 0x1.2fd5c7756dd24p-731, 0x1.ce39998362bf9p-726 }, ++ { 0x1.9f66cc65fb2cbp-732, 0x1.3c13b67a17ff2p-726 }, ++ { 0x1.1beec36eb8502p-732, 0x1.b03976c943068p-727 }, ++ { 0x1.8418af0dd65edp-733, 0x1.277d70b2ebc6fp-727 }, ++ { 0x1.09345c546e7cdp-733, 0x1.93f94ba2c6b6ap-728 }, ++ { 0x1.6a68c4bfd764bp-734, 0x1.141be9e049453p-728 }, ++ { 0x1.ef2e87ca7b717p-735, 0x1.7962a50231832p-729 }, ++ { 0x1.5241d71eb6e19p-735, 0x1.01df915097b64p-729 }, ++ { 0x1.ce118fc8beeeap-736, 0x1.605fee84767fp-730 }, ++ { 0x1.3b8f8a28fd848p-736, 0x1.e172e498cd2fcp-731 }, ++ { 0x1.aef59daa19c93p-737, 0x1.48dc6e3757e71p-731 }, ++ { 0x1.263e577f574dp-737, 0x1.c1366206ca036p-732 }, ++ { 0x1.91bfa9231de5cp-738, 0x1.32c440230ef3ap-732 }, ++ { 0x1.123b897af1af4p-738, 0x1.a2ee0ea25a216p-733 }, ++ { 0x1.7655cd85a2773p-739, 0x1.1e04519eb8f87p-733 }, ++ { 0x1.feea6c3554149p-740, 0x1.867f82bdccb8fp-734 }, ++ { 0x1.5c9f427a491a4p-740, 0x1.0a8a5c7678dffp-734 }, ++ { 0x1.dbb4739afff2ep-741, 0x1.6bd1744d1513ep-735 }, ++ { 0x1.4484548d479a3p-741, 0x1.f089c3d3d8b6fp-736 }, ++ { 0x1.bab46440d8e4bp-742, 0x1.52cbafb8bc99fp-736 }, ++ { 0x1.2dee5d96e696ep-742, 0x1.ce464b1286c0dp-737 }, ++ { 0x1.9bcaf0aad775cp-743, 0x1.3b571085ef9dbp-737 }, ++ { 0x1.18c7bd07b007fp-743, 0x1.ae2a4fedee59cp-738 }, ++ { 0x1.7eda37d26ae66p-744, 0x1.255d79dbe3905p-738 }, ++ { 0x1.04fbd01fd3b9ap-744, 0x1.9017432798e26p-739 }, ++ { 0x1.63c5ba199716fp-745, 0x1.10c9ceee61d28p-739 }, ++ { 0x1.e4edd431a7a4p-746, 0x1.73effa34f57abp-740 }, ++ { 0x1.4a724e2f6eadep-746, 0x1.fb0fd6a99ec28p-741 }, ++ { 0x1.c24c9890314cdp-747, 0x1.5998a4600495bp-741 }, ++ { 0x1.32c615eef6a3dp-747, 0x1.d70936a92f04ap-742 }, ++ { 0x1.a1f03c81340fdp-748, 0x1.40f6bfdad1f14p-742 }, ++ { 0x1.1ca87340e1c39p-748, 0x1.b55b284add8c1p-743 }, ++ { 0x1.83b6cbf2ba29fp-749, 0x1.29f10ece9036ep-743 }, ++ { 0x1.0801fd07f7284p-749, 0x1.95e2d86ae92c8p-744 }, ++ { 0x1.677ffffc31b92p-750, 0x1.146f8c6e8dc57p-744 }, ++ { 0x1.e978e83ebd95dp-751, 0x1.787f26e598ebbp-745 }, ++ { 0x1.4d2d2f5dd4096p-751, 0x1.005b6216a17eap-745 }, ++ { 0x1.c58570e2f641dp-752, 0x1.5d10973fbab06p-746 }, ++ { 0x1.34a13f272cdfap-752, 0x1.db3db8f832a58p-747 }, ++ { 0x1.a4017c5ace0dep-753, 0x1.4379416dfac63p-747 }, ++ { 0x1.1dc0938cfb932p-753, 0x1.b84ac1ef46255p-748 }, ++ { 0x1.84c7064147f81p-754, 0x1.2b9cc2c3d6738p-748 }, ++ { 0x1.087100f5e6429p-754, 0x1.97b6c5dc3637ap-749 }, ++ { 0x1.67b20873fc995p-755, 0x1.15602f1227af8p-749 }, ++ { 0x1.e9337a8979dap-756, 0x1.795cb2bb480b6p-750 }, ++ { 0x1.4ca0667456eb8p-756, 0x1.00aa01fc8a73ep-750 }, ++ { 0x1.c446a2ccade1cp-757, 0x1.5d196927cdaccp-751 }, ++ { 0x1.3371d92c55c69p-757, 0x1.dac421184af19p-752 }, ++ { 0x1.a1ef1650d3562p-758, 0x1.42cba823b93cbp-752 }, ++ { 0x1.1c07db1df4cf6p-758, 0x1.b6e2f60b615c1p-753 }, ++ { 0x1.8202debc2593cp-759, 0x1.2a53f94211ba9p-753 }, ++ { 0x1.064595037ce7bp-759, 0x1.95853e0fd75adp-754 }, ++ { 0x1.645a58ac6913cp-760, 0x1.13949d3b2fbd2p-754 }, ++ { 0x1.e41f95cc492cep-761, 0x1.768213ee2ba9cp-755 }, ++ { 0x1.48d0194e5b153p-761, 0x1.fce2f1e195a7ap-756 }, ++ { 0x1.be99935f38c42p-762, 0x1.59b2d772c1b04p-756 }, ++ { 0x1.2f40d4a5d287p-762, 0x1.d5a005ce1b15dp-757 }, ++ { 0x1.9bc8aa74c3805p-763, 0x1.3ef3138f8ae58p-757 }, ++ { 0x1.178b448b82b16p-763, 0x1.b12e626e3c8a1p-758 }, ++ { 0x1.7b7f2dc7fa066p-764, 0x1.2620652c3102cp-758 }, ++ { 0x1.0190106456396p-764, 0x1.8f5ecffd9c995p-759 }, ++ { 0x1.5d92194746ef2p-765, 0x1.0f1a62a97a48ep-759 }, ++ { 0x1.da636b2add63ap-766, 0x1.7004d0a0dd3fcp-760 }, ++ { 0x1.41d8f14e2d235p-766, 0x1.f38508375a815p-761 }, ++ { 0x1.b4a8e16df3a2ep-767, 0x1.52f67f4a45dbdp-761 }, ++ { 0x1.282da2ee06e9fp-767, 0x1.cbf8187da97p-762 }, ++ { 0x1.91bc4f0e82a1p-768, 0x1.380c6fa6ddd1bp-762 }, ++ { 0x1.106c65473611bp-768, 0x1.a757e44dde4fbp-763 }, ++ { 0x1.716ca73d3a1dcp-769, 0x1.1f218f165083cp-763 }, ++ { 0x1.f4e737e667fe6p-770, 0x1.8571975a9ba0cp-764 }, ++ { 0x1.538bdbc88035p-770, 0x1.081306aee058bp-764 }, ++ { 0x1.cc4774fe05a13p-771, 0x1.661571375ee31p-765 }, ++ { 0x1.37eeb586702afp-771, 0x1.e5803c9b677cp-766 }, ++ { 0x1.a6be51e94d2c3p-772, 0x1.49169d29f057fp-766 }, ++ { 0x1.1e6cae3cc5ce4p-772, 0x1.be144165bfdadp-767 }, ++ { 0x1.841452e30c6ecp-773, 0x1.2e4b0b7596d86p-767 }, ++ { 0x1.06dfcc0330324p-773, 0x1.99a8814f82396p-768 }, ++ { 0x1.64157d8dbcaa1p-774, 0x1.158b4c1d7aa61p-768 }, ++ { 0x1.e248fc3725278p-775, 0x1.7806fe5adc0dep-769 }, ++ { 0x1.4691284199248p-775, 0x1.fd64d63539ac4p-770 }, ++ { 0x1.ba32f675bcca1p-776, 0x1.58fd2560c98e3p-770 }, ++ { 0x1.2b59cb5fcd07p-776, 0x1.d33b9c01b8858p-771 }, ++ { 0x1.953f4278d9771p-777, 0x1.3c5b9e7be019ep-771 }, ++ { 0x1.1244d4a198783p-777, 0x1.ac5a261b57bd2p-772 }, ++ { 0x1.7333ac721d353p-778, 0x1.21f61f6e6a3a5p-772 }, ++ { 0x1.f654f8b2c9938p-779, 0x1.8883e334bf813p-773 }, ++ { 0x1.53d9d5f4e3889p-779, 0x1.09a33ffab8174p-773 }, ++ { 0x1.cbcb3935e8707p-780, 0x1.678037d69a88ap-774 }, ++ { 0x1.36fefd85e37f7p-780, 0x1.e678a0474dd4dp-775 }, ++ { 0x1.a4a7147e53789p-781, 0x1.491a44a8cc267p-775 }, ++ { 0x1.1c73c8c2f3143p-781, 0x1.bd3a60953bab8p-776 }, ++ { 0x1.80a7df6e9e4abp-782, 0x1.2d20af56e98e4p-776 }, ++ { 0x1.040c111171b21p-782, 0x1.9748563f2a02cp-777 }, ++ { 0x1.5f9153468350dp-783, 0x1.13656dff66048p-777 }, ++ { 0x1.db3d65827b6f1p-784, 0x1.7463a2ae57157p-778 }, ++ { 0x1.412b4a3b0b6bbp-784, 0x1.f77b2a384d071p-779 }, ++ { 0x1.b20abd232bd72p-785, 0x1.5451ae34b02aep-779 }, ++ { 0x1.25417f5fe18aap-785, 0x1.cc024fa52d21ep-780 }, ++ { 0x1.8c38db09c3d68p-786, 0x1.36dbe645ba702p-780 }, ++ { 0x1.0ba351c6b2c44p-786, 0x1.a415d531b6e85p-781 }, ++ { 0x1.69856de02317p-787, 0x1.1bcf7eeeba2f5p-781 }, ++ { 0x1.e847157246bfcp-788, 0x1.7f70703ac5558p-782 }, ++ { 0x1.49b2d16422141p-788, 0x1.02fd377359b1p-782 }, ++ { 0x1.bd304de355d85p-789, 0x1.5dd1b0bb84b26p-783 }, ++ { 0x1.2c87c2ff697dcp-789, 0x1.d87243e77ecadp-784 }, ++ { 0x1.95b4456f24a66p-790, 0x1.3efdb3b369292p-784 }, ++ { 0x1.11cf1a60f1d84p-790, 0x1.aeb4dc01a4631p-785 }, ++ { 0x1.718a9184a8678p-791, 0x1.22bcd99dbdb06p-785 }, ++ { 0x1.f2af0be1fde49p-792, 0x1.88766c06b0833p-786 }, ++ { 0x1.507007917e3d9p-792, 0x1.08db80d427d79p-786 }, ++ { 0x1.c5e695f15072bp-793, 0x1.65709eb54bf5ep-787 }, ++ { 0x1.32266540e08c2p-793, 0x1.e253876b38acep-788 }, ++ { 0x1.9cf012acb820bp-794, 0x1.45623a2f6a451p-788 }, ++ { 0x1.1673fda512b46p-794, 0x1.b6f674d703273p-789 }, ++ { 0x1.777d05328bd26p-795, 0x1.280eca736b4b1p-789 }, ++ { 0x1.fa46d62b8e57dp-796, 0x1.8f4d804e3ad6fp-790 }, ++ { 0x1.5544c8bc23e1cp-796, 0x1.0d3e50a2eecdcp-790 }, ++ { 0x1.cc068b1dc8ab2p-797, 0x1.6b0c7763ce52bp-791 }, ++ { 0x1.36042b906571p-797, 0x1.e979edc5b3767p-792 }, ++ { 0x1.a1cbbab815b4cp-798, 0x1.49ecd657d5dd6p-792 }, ++ { 0x1.197d0fe71564cp-798, 0x1.bcb59141dc715p-793 }, ++ { 0x1.7b41f3bcb1869p-799, 0x1.2bad65a82bb23p-793 }, ++ { 0x1.feec24eca8006p-800, 0x1.93d6de18ac6bfp-794 }, ++ { 0x1.581b387627669p-800, 0x1.1011dd6dfecf6p-794 }, ++ { 0x1.cf746ccaba032p-801, 0x1.6e8be31f2fe24p-795 }, ++ { 0x1.380f8b864e1acp-801, 0x1.edc51c8649aaap-796 }, ++ { 0x1.a4312cc2f816ap-802, 0x1.4c88f43732a1p-796 }, ++ { 0x1.1adc83c96accfp-802, 0x1.bfd81ed74f1cdp-797 }, ++ { 0x1.7cc835281bbf3p-803, 0x1.2d883a292df3bp-797 }, ++ { 0x1.0044e6f2b903fp-803, 0x1.95fde403b5724p-798 }, ++ { 0x1.58e66674c0f82p-804, 0x1.11494966870b7p-798 }, ++ { 0x1.d0209514d613dp-805, 0x1.6fdef1ca550b3p-799 }, ++ { 0x1.383f2f4495aedp-805, 0x1.ef217eb67d36dp-800 }, ++ { 0x1.a41575f0363d6p-806, 0x1.4d2aaa5b8e28ap-800 }, ++ { 0x1.1a8c12a0cae91p-806, 0x1.c04fcbf1fddd8p-801 }, ++ { 0x1.7c08d08f2ccbbp-807, 0x1.2d96cdd2a30b8p-801 }, ++ { 0x1.ff186c5b90604p-808, 0x1.95b8ba50a2687p-802 }, ++ { 0x1.57a2b0b1c4c86p-808, 0x1.10df03cd711e3p-802 }, ++ { 0x1.ce07ef98af2aep-809, 0x1.6eff939f51c8fp-803 }, ++ { 0x1.36923c5eb270bp-809, 0x1.ed88d96607fb4p-804 }, ++ { 0x1.a1791489717bfp-810, 0x1.4bcf1445c1d61p-804 }, ++ { 0x1.188d2c2d680a3p-810, 0x1.be1a747b458c8p-805 }, ++ { 0x1.7907312c7e255p-811, 0x1.2bd8dde16ba8ap-805 }, ++ { 0x1.fa9e995f4c414p-812, 0x1.93089dc23e417p-806 }, ++ { 0x1.5455df149c7b5p-812, 0x1.0ed4f34d6e965p-806 }, ++ { 0x1.c93410e8142f8p-813, 0x1.6bf1c754a3325p-807 }, ++ { 0x1.33105a5b594f7p-813, 0x1.e9027b1c5a4abp-808 }, ++ { 0x1.9c67f441e11b3p-814, 0x1.487c687197597p-808 }, ++ { 0x1.14e8ebae7496ep-814, 0x1.b942323a72767p-809 }, ++ { 0x1.73d10c597b774p-815, 0x1.285660efb3e9ap-809 }, ++ { 0x1.f330b99c7f9e7p-816, 0x1.8df9d62fb9c5ep-810 }, ++ { 0x1.4f0ef77c81a6fp-816, 0x1.0b34677fe9486p-810 }, ++ { 0x1.c1baedb5f2e65p-817, 0x1.66c37bb05de1ep-811 }, ++ { 0x1.2dc9788ad9864p-817, 0x1.e1a30436bcde5p-812 }, ++ { 0x1.94f913add4907p-818, 0x1.4341c90c553e7p-812 }, ++ { 0x1.0fafd2c40ba27p-818, 0x1.b1dd0ffc5d04bp-813 }, ++ { 0x1.6c7df995241d1p-819, 0x1.231f4a6757469p-813 }, ++ { 0x1.e8f062cc963cep-820, 0x1.86a35930ed5e1p-814 }, ++ { 0x1.47e5cbff0d92ep-820, 0x1.060dd236f49a3p-814 }, ++ { 0x1.b7be34be4e18dp-821, 0x1.5f8c25cd122d7p-815 }, ++ { 0x1.26d5559b935e7p-821, 0x1.d78bca82e9f37p-816 }, ++ { 0x1.8b4dd6af9c05dp-822, 0x1.3c36d15093021p-816 }, ++ { 0x1.08f94cfc79158p-822, 0x1.a80c62c44a65bp-817 }, ++ { 0x1.632ec0e0d009cp-823, 0x1.1c4b11ed6627ap-817 }, ++ { 0x1.dc0b5f2e40ea4p-824, 0x1.7d261cc2edf72p-818 }, ++ { 0x1.3efa480ea698bp-824, 0x1.fef096f5252fp-819 }, ++ { 0x1.ab6a5245de9e5p-825, 0x1.566c107178d1fp-819 }, ++ { 0x1.1e52cde409267p-825, 0x1.cae9de8f00c0bp-820 }, ++ { 0x1.7f910d0084829p-826, 0x1.337ae444bd293p-820 }, ++ { 0x1.00e3012bd4171p-826, 0x1.9bfbcfe9dc1e8p-821 }, ++ { 0x1.580c66bfc7cf5p-827, 0x1.13f803c0631d9p-821 }, ++ { 0x1.ccba595fe34b5p-828, 0x1.71ac2109d33c9p-822 }, ++ { 0x1.347383dcf4a9bp-828, 0x1.ef21caa7d80c3p-823 }, ++ { 0x1.9cf52785fcd1fp-829, 0x1.4b8b6bbdb7a4fp-823 }, ++ { 0x1.1466f7a4ba4b3p-829, 0x1.bbf4bcf8ca0c3p-824 }, ++ { 0x1.71f5b701cb667p-830, 0x1.2934441fdae8bp-824 }, ++ { 0x1.ef1fef5338f87p-831, 0x1.8de00a5d4cff3p-825 }, ++ { 0x1.4b46ffc2e70ccp-831, 0x1.0a4a61359d63ap-825 }, ++ { 0x1.bb3f3e667d5e5p-832, 0x1.64673b39bdd54p-826 }, ++ { 0x1.287ea78b8278fp-832, 0x1.dcf3acd0cc1f4p-827 }, ++ { 0x1.8c9c8347a2863p-833, 0x1.3f1926f0c2aa4p-827 }, ++ { 0x1.093c166d47d9p-833, 0x1.aaecb94ca24e1p-828 }, ++ { 0x1.62b5957e6b822p-834, 0x1.1d8efbbc88d6cp-828 }, ++ { 0x1.da4f3c5b8c56fp-835, 0x1.7df554174928cp-829 }, ++ { 0x1.3d1457a1afdaep-835, 0x1.fed6b4a9440a8p-830 }, ++ { 0x1.a7e3665ffae25p-836, 0x1.558fae0fed7aap-830 }, ++ { 0x1.1b4da97b89113p-836, 0x1.c8b307e047613p-831 }, ++ { 0x1.7aa46b2ec675cp-837, 0x1.3149a005e5984p-831 }, ++ { 0x1.fa00e080e536p-838, 0x1.9819329634547p-832 }, ++ { 0x1.520f92dcad4a2p-838, 0x1.10bba52994e8ep-832 }, ++ { 0x1.c3a9666328faap-839, 0x1.6c7dd2d93c0f9p-833 }, ++ { 0x1.2dae795ce73b6p-839, 0x1.e70fd5d6d806dp-834 }, ++ { 0x1.92f5963d343cfp-840, 0x1.45629dffe1fa7p-834 }, ++ { 0x1.0d15f439254bep-840, 0x1.b2b2e959996bp-835 }, ++ { 0x1.675546ac2c967p-841, 0x1.2255364dfcfd7p-835 }, ++ { 0x1.dfca1ff236f02p-842, 0x1.83c6a3841fccap-836 }, ++ { 0x1.4046155930cfbp-842, 0x1.02ee197efc99dp-836 }, ++ { 0x1.ab8846c89a496p-843, 0x1.59bfc8bdbfffep-837 }, ++ { 0x1.1d5226b496f7ep-843, 0x1.cd9f4c973304p-838 }, ++ { 0x1.7cc7edd2bedd1p-844, 0x1.3420703d360eap-838 }, ++ { 0x1.fc1e021531b11p-845, 0x1.9b4a6e4580455p-839 }, ++ { 0x1.52f9fd29afa7bp-845, 0x1.1276cde31355ep-839 }, ++ { 0x1.c439018f9e7bp-846, 0x1.6e44a0da72dedp-840 }, ++ { 0x1.2d9d4a3bfacfap-846, 0x1.e8b82d35e9882p-841 }, ++ { 0x1.9247c7d6b7109p-847, 0x1.4603c1a2de688p-841 }, ++ { 0x1.0c3d4d5746632p-847, 0x1.b2e6fa531d555p-842 }, ++ { 0x1.65add59367765p-848, 0x1.220b241172407p-842 }, ++ { 0x1.dce1e8301e6efp-849, 0x1.82d28ae825549p-843 }, ++ { 0x1.3dde18cb97a8dp-849, 0x1.01ea51e3f541cp-843 }, ++ { 0x1.a7b31ccb0b2f4p-850, 0x1.57e3d8e31e749p-844 }, ++ { 0x1.1a59798dd7aa2p-850, 0x1.ca77ce984ce61p-845 }, ++ { 0x1.7843a7981f8e3p-851, 0x1.3192c63185ef2p-845 }, ++ { 0x1.f55b0f3ffe463p-852, 0x1.974911a73b1a7p-846 }, ++ { 0x1.4df9fe655b0fbp-852, 0x1.0f64b579273f6p-846 }, ++ { 0x1.bce68ce6bcfedp-853, 0x1.69a3e1bad13dap-847 }, ++ { 0x1.284bfe1cdea24p-853, 0x1.e1d6859c11527p-848 }, ++ { 0x1.8a9c29acbf47dp-854, 0x1.40f425a16dca3p-848 }, ++ { 0x1.06bd70b72892bp-854, 0x1.ab8633790b1e2p-849 }, ++ { 0x1.5dd55c1a48477p-855, 0x1.1cb4a43b9229fp-849 }, ++ { 0x1.d1bd6b173b9f2p-856, 0x1.7b25cc6523c3bp-850 }, ++ { 0x1.35fc8451ff49ep-856, 0x1.f8db2dc70232bp-851 }, ++ { 0x1.9c9712232f548p-857, 0x1.5014bc06e7f91p-851 }, ++ { 0x1.128b47439dcd5p-857, 0x1.bf66ba3b9066cp-852 }, ++ { 0x1.6d53d2be0a0b6p-858, 0x1.29c2c1dc958dbp-852 }, ++ { 0x1.e6122171333dfp-859, 0x1.8c4a9d76af90fp-853 }, ++ { 0x1.435229d0cc681p-859, 0x1.07ae5a7347d0bp-853 }, ++ { 0x1.ae1371b74ea2dp-860, 0x1.5ed9539dfd0c9p-854 }, ++ { 0x1.1e01427183001p-860, 0x1.d2c69c7599edcp-855 }, ++ { 0x1.7c589442700ecp-861, 0x1.3677341a98a13p-855 }, ++ { 0x1.f9be9e1d7b4e4p-862, 0x1.9cf2c5625685ep-856 }, ++ { 0x1.5033c96eb757p-862, 0x1.1298aebe8af0fp-856 }, ++ { 0x1.bef014f36ffa9p-863, 0x1.6d2655c8560ebp-857 }, ++ { 0x1.290979be09b3bp-863, 0x1.e58166789d0bcp-858 }, ++ { 0x1.8ac6ba86dcc3cp-864, 0x1.42b9e90b536b6p-858 }, ++ { 0x1.064e638fb2517p-864, 0x1.acfe7e64002b1p-859 }, ++ { 0x1.5c884857d8adep-865, 0x1.1d179e12ade6ep-859 }, ++ { 0x1.cf0beaeb1b319p-866, 0x1.7ae01eb0f55cbp-860 }, ++ { 0x1.338e29511ffcdp-866, 0x1.f772a9e0423a1p-861 }, ++ { 0x1.9881a23b2ff9bp-867, 0x1.4e72e15f0f016p-861 }, ++ { 0x1.0f43798c4f845p-867, 0x1.bc4e2f5a8c9afp-862 }, ++ { 0x1.6836e63bd7d88p-868, 0x1.27165d875ec78p-862 }, ++ { 0x1.de466f9c32fdap-869, 0x1.87eb54ae1860dp-863 }, ++ { 0x1.3d79f883687bfp-869, 0x1.043b38d103ec9p-863 }, ++ { 0x1.a56d48500b8a3p-870, 0x1.598a7d65e3b67p-864 }, ++ { 0x1.17ac327f9b5e5p-870, 0x1.cac2d1ee89db1p-865 }, ++ { 0x1.73278f241bb95p-871, 0x1.308090afcd9f3p-865 }, ++ { 0x1.ec801820c3f3dp-872, 0x1.942d41e7bf2a3p-866 }, ++ { 0x1.46b841565ab3ep-872, 0x1.0c34dc595f4bfp-866 }, ++ { 0x1.b16ea850bfa34p-873, 0x1.63e9cb83e74b2p-867 }, ++ { 0x1.1f76e44abf0ecp-873, 0x1.d83e5a3ffd7adp-868 }, ++ { 0x1.7d432d7dd0ca1p-874, 0x1.39428e0fd00c5p-868 }, ++ { 0x1.f99abec00b682p-875, 0x1.9f8c2eadfb109p-869 }, ++ { 0x1.4f35579392d4bp-875, 0x1.13957092e7741p-869 }, ++ { 0x1.bc6c19eee10e8p-876, 0x1.6d7ad6ac744f9p-870 }, ++ { 0x1.2692d6adc530fp-876, 0x1.e4a41e3c393c2p-871 }, ++ { 0x1.8673fad41c337p-877, 0x1.4149a31665d1ep-871 }, ++ { 0x1.02bd066e6e446p-877, 0x1.a9efbad7c9909p-872 }, ++ { 0x1.56dece3f159c3p-878, 0x1.1a4d14ca40e6p-872 }, ++ { 0x1.c64dabfd6babdp-879, 0x1.7628f37011dc7p-873 }, ++ { 0x1.2cf07ed3ac7cap-879, 0x1.efd93aae49244p-874 }, ++ { 0x1.8ea5cdb1b77f8p-880, 0x1.4884565714d83p-874 }, ++ { 0x1.0801f05da3babp-880, 0x1.b341347ab9d2ep-875 }, ++ { 0x1.5da3ba0723cbcp-881, 0x1.204d0f497ca7dp-875 }, ++ { 0x1.cefd7b19fc691p-882, 0x1.7de10a24a9be3p-876 }, ++ { 0x1.3281b7ca3d771p-882, 0x1.f9c4f419d97b9p-877 }, ++ { 0x1.95c663259c5d8p-883, 0x1.4ee2a6bb63f1dp-877 }, ++ { 0x1.0c90568fe453bp-883, 0x1.bb6bea4d790c6p-878 }, ++ { 0x1.6374ef6370a23p-884, 0x1.258802fee3a1bp-878 }, ++ { 0x1.d668024e6e773p-885, 0x1.8491dcb50d65p-879 }, ++ { 0x1.3739f6c74a992p-885, 0x1.012888bcf5e1bp-879 }, ++ { 0x1.9bc5a2748239p-886, 0x1.5456466d99824p-880 }, ++ { 0x1.105de86fb726ep-886, 0x1.c25d7813e5a28p-881 }, ++ { 0x1.68453b252f9afp-887, 0x1.29f220ff323bdp-881 }, ++ { 0x1.dc7c640bf856fp-888, 0x1.8a2c46b36447dp-882 }, ++ { 0x1.3b0e7a2d8004dp-888, 0x1.04b5178932d9ep-882 }, ++ { 0x1.a095d99893beap-889, 0x1.58d2d04dcdef9p-883 }, ++ { 0x1.1361f24d04a1ep-889, 0x1.c8060b8a624d8p-884 }, ++ { 0x1.6c0994513d45bp-890, 0x1.2d8154e3020f5p-884 }, ++ { 0x1.e12caa0268707p-891, 0x1.8ea37661d565fp-885 }, ++ { 0x1.3df6725a60cf5p-891, 0x1.078003d294269p-885 }, ++ { 0x1.a42bf15180a09p-892, 0x1.5c4df6da1a5fp-886 }, ++ { 0x1.15957e82800c6p-892, 0x1.cc58a0676d26ep-887 }, ++ { 0x1.6eb9463d29a0dp-893, 0x1.302d6b1661efp-887 }, ++ { 0x1.e46dfa81a2018p-894, 0x1.91ed1d851d1ddp-888 }, ++ { 0x1.3feb236502138p-894, 0x1.0982d94421652p-888 }, ++ { 0x1.a67f97b02e026p-895, 0x1.5ebfab91b4a2bp-889 }, ++ { 0x1.16f37032d6085p-895, 0x1.cf4b3235443f5p-890 }, ++ { 0x1.704e120e656fdp-896, 0x1.31f0304f01ddbp-890 }, ++ { 0x1.e638c247f445dp-897, 0x1.940198fd0e1c2p-891 }, ++ { 0x1.40e7ff18c854cp-897, 0x1.0ab8eaa8fae67p-891 }, ++ { 0x1.a78b6039c7039p-898, 0x1.60223e0067b2cp-892 }, ++ { 0x1.1778970df4481p-898, 0x1.d0d6e2f89dd66p-893 }, ++ { 0x1.70c446e7535ccp-899, 0x1.32c589802b4bap-893 }, ++ { 0x1.e688d1dc06742p-900, 0x1.94dc0e4e3bd62p-894 }, ++ { 0x1.40eab69ffb357p-900, 0x1.0b1f64079cf15p-894 }, ++ { 0x1.a74cd8f49285bp-901, 0x1.607271cb1c23p-895 }, ++ { 0x1.1723bbb37e71p-901, 0x1.d0f815d3e30e4p-896 }, ++ { 0x1.701ad03f5aba2p-902, 0x1.32ab83cb1b9aap-896 }, ++ { 0x1.e55d6dd34aeb5p-903, 0x1.947a7e7d08e62p-897 }, ++ { 0x1.3ff3437e5e592p-903, 0x1.0ab555a059592p-897 }, ++ { 0x1.a5c493ec4b75bp-904, 0x1.5faf8b45ee11cp-898 }, ++ { 0x1.15f5a46f2a8c5p-904, 0x1.cfae7d166a387p-899 }, ++ { 0x1.6e533a1804da5p-905, 0x1.31a25c153692fp-899 }, ++ { 0x1.e2b951ac76b4bp-906, 0x1.92ddcdd3a585ap-900 }, ++ { 0x1.3e03e7aaf4a23p-906, 0x1.097bb793410b5p-900 }, ++ { 0x1.a2f624fa2da41p-907, 0x1.5ddb524f58124p-901 }, ++ { 0x1.13f112353b2e2p-907, 0x1.ccfd1b6b2b0d1p-902 }, ++ { 0x1.6b71aaf8395acp-908, 0x1.2fac7e1ac1a55p-902 }, ++ { 0x1.dea2a52e6f8d6p-909, 0x1.9009c068a7447p-903 }, ++ { 0x1.3b2124c85eb7dp-909, 0x1.077566199da13p-903 }, ++ { 0x1.9ee813dcc82f4p-910, 0x1.5afa0b60e30adp-904 }, ++ { 0x1.111ab5ef7d9cep-910, 0x1.c8ea38207b48cp-905 }, ++ { 0x1.677cd3ce598a2p-911, 0x1.2cce7b0334e93p-905 }, ++ { 0x1.d922e485849dfp-912, 0x1.8c04eb792831bp-906 }, ++ { 0x1.3751aaab95803p-912, 0x1.04a716678c7d9p-906 }, ++ { 0x1.99a3c2eb312dfp-913, 0x1.571266fb205e7p-907 }, ++ { 0x1.0d791e54efc95p-913, 0x1.c37f46c8a36cep-908 }, ++ { 0x1.627dd610c1f2fp-914, 0x1.290ef7aa6784ep-908 }, ++ { 0x1.d246bba093dddp-915, 0x1.86d89be61c44fp-909 }, ++ { 0x1.329e3d8fc35e5p-915, 0x1.011744722e8f8p-909 }, ++ { 0x1.93354aecb0f91p-916, 0x1.522d67c700dd9p-910 }, ++ { 0x1.09149eae599f4p-916, 0x1.bcc8c2b79e5e6p-911 }, ++ { 0x1.5c8020a89d6a7p-917, 0x1.247692feaf7c7p-911 }, ++ { 0x1.ca1dd59404578p-918, 0x1.8090b25f1fb1cp-912 }, ++ { 0x1.2d1194826d1d9p-918, 0x1.f99c33fa36826p-913 }, ++ { 0x1.8bab4cd7bc185p-919, 0x1.4c563ff8738edp-913 }, ++ { 0x1.03f72f0fa181cp-919, 0x1.b4d5ff233ee8bp-914 }, ++ { 0x1.559144638d7d2p-920, 0x1.1f0fc4fe41aefp-914 }, ++ { 0x1.c0baa10766979p-921, 0x1.793b75fbd2367p-915 }, ++ { 0x1.26b830bbc4f33p-921, 0x1.efaa9eeaa4992p-916 }, ++ { 0x1.8316ba6f8ef74p-922, 0x1.459a26ac43fcfp-916 }, ++ { 0x1.fc588d5eeb3p-923, 0x1.abb8ece685efep-917 }, ++ { 0x1.4dc0c0d42f863p-923, 0x1.18e6b704952c1p-917 }, ++ { 0x1.b6320aea7077ap-924, 0x1.70e95e366ca95p-918 }, ++ { 0x1.1fa02ebad6485p-924, 0x1.e4700e7fab75ep-919 }, ++ { 0x1.798a96e59845bp-925, 0x1.3e0826243926dp-919 }, ++ { 0x1.ef81624855ca5p-926, 0x1.a185d71d9ae78p-920 }, ++ { 0x1.451fcaaed5e7p-926, 0x1.1209163a43d8ap-920 }, ++ { 0x1.aa9b30dd7b333p-927, 0x1.67acd56555624p-921 }, ++ { 0x1.17d9121b4ff43p-927, 0x1.d805487b20ec2p-922 }, ++ { 0x1.6f1bb0c9eff18p-928, 0x1.35b0e3e76f72ap-922 }, ++ { 0x1.e184bec96bcc5p-929, 0x1.965317fc3f8ebp-923 }, ++ { 0x1.3bc10ccdff1d7p-929, 0x1.0a85e11600392p-923 }, ++ { 0x1.9e0f0cdf83a76p-930, 0x1.5d99f4f4fa7a2p-924 }, ++ { 0x1.0f738d3253e75p-930, 0x1.ca8538b911cc2p-925 }, ++ { 0x1.63e056b37b486p-931, 0x1.2ca663e8f6c6ep-925 }, ++ { 0x1.d2806afda0512p-932, 0x1.8a38c763ae5p-926 }, ++ { 0x1.31b865207923bp-932, 0x1.026d30f31261ep-926 }, ++ { 0x1.90a81bef15367p-933, 0x1.52c63cbe5201dp-927 }, ++ { 0x1.068145905baddp-933, 0x1.bc0c903e2dd51p-928 }, ++ { 0x1.57f0081c7461bp-934, 0x1.22fbc7eb40c8ep-928 }, ++ { 0x1.c293abfeb81c1p-935, 0x1.7d5064d5d2e6ap-929 }, ++ { 0x1.271a9ed146425p-935, 0x1.f3a001a1da12ap-930 }, ++ { 0x1.8282015bfd093p-936, 0x1.474846e880b8p-930 }, ++ { 0x1.fa292d1f4b615p-937, 0x1.acb96019278e3p-931 }, ++ { 0x1.4b6323fa7fafcp-937, 0x1.18c50c637e437p-931 }, ++ { 0x1.b1ded81f6cf48p-938, 0x1.6fb47e7243b1p-932 }, ++ { 0x1.1bfd2aff12d23p-938, 0x1.e17fe4af1cdcdp-933 }, ++ { 0x1.73b9288cf980bp-939, 0x1.3b3779cd081bcp-933 }, ++ { 0x1.e680a6315c8f9p-940, 0x1.9caab20737c4bp-934 }, ++ { 0x1.3e52969a46a03p-940, 0x1.0e16c42489121p-934 }, ++ { 0x1.a082ea93d471fp-941, 0x1.618056ad2fa0dp-935 }, ++ { 0x1.1075d9566cab2p-941, 0x1.ce9e247afa7efp-936 }, ++ { 0x1.646a66f6fb197p-942, 0x1.2eabb9557e4c3p-936 }, ++ { 0x1.d22f0f82317a8p-943, 0x1.8c0020c90fd02p-937 }, ++ { 0x1.30d7883df3e07p-943, 0x1.0305d4157bdecp-937 }, ++ { 0x1.8ea1187daf8b3p-944, 0x1.52cf8a69cbdeep-938 }, ++ { 0x1.049a91d747c02p-944, 0x1.bb1f3a4ce848cp-939 }, ++ { 0x1.54b29ff375e83p-945, 0x1.21bd19407d3a8p-939 }, ++ { 0x1.bd5a7cbaf896dp-946, 0x1.7ad97206eb3e9p-940 }, ++ { 0x1.230b0dec754dap-946, 0x1.ef4e6059f1fe4p-941 }, ++ { 0x1.7c5a693980a4p-947, 0x1.43bdb9112e65bp-941 }, ++ { 0x1.f10221f87a1cap-948, 0x1.a7278c0b2c815p-942 }, ++ { 0x1.44ae6c097e3b8p-948, 0x1.148391a9b5b7p-942 }, ++ { 0x1.a8288818abb4p-949, 0x1.69563388e87eep-943 }, ++}, ++}; +diff --git a/sysdeps/aarch64/fpu/erfc_sve.c b/sysdeps/aarch64/fpu/erfc_sve.c +new file mode 100644 +index 0000000000000000..c17d3e448457b41c +--- /dev/null ++++ b/sysdeps/aarch64/fpu/erfc_sve.c +@@ -0,0 +1,167 @@ ++/* Double-precision vector (SVE) erfc function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "sv_math.h" ++#include "vecmath_config.h" ++ ++static const struct data ++{ ++ uint64_t off_idx, off_arr; ++ double max, shift; ++ double p20, p40, p41, p42; ++ double p51, p52; ++ double q5, r5; ++ double q6, r6; ++ double q7, r7; ++ double q8, r8; ++ double q9, r9; ++ uint64_t table_scale; ++} data = { ++ /* Set an offset so the range of the index used for lookup is 3487, and it ++ can be clamped using a saturated add on an offset index. ++ Index offset is 0xffffffffffffffff - asuint64(shift) - 3487. */ ++ .off_idx = 0xbd3ffffffffff260, ++ .off_arr = 0xfffffffffffff260, /* 0xffffffffffffffff - 3487. */ ++ .max = 0x1.b3ep+4, /* 3487/128. */ ++ .shift = 0x1p45, ++ .table_scale = 0x37f0000000000000, /* asuint64(0x1p-128). */ ++ .p20 = 0x1.5555555555555p-2, /* 1/3, used to compute 2/3 and 1/6. */ ++ .p40 = -0x1.999999999999ap-4, /* 1/10. */ ++ .p41 = -0x1.999999999999ap-2, /* 2/5. */ ++ .p42 = 0x1.1111111111111p-3, /* 2/15. */ ++ .p51 = -0x1.c71c71c71c71cp-3, /* 2/9. */ ++ .p52 = 0x1.6c16c16c16c17p-5, /* 2/45. */ ++ /* Qi = (i+1) / i, for i = 5, ..., 9. */ ++ .q5 = 0x1.3333333333333p0, ++ .q6 = 0x1.2aaaaaaaaaaabp0, ++ .q7 = 0x1.2492492492492p0, ++ .q8 = 0x1.2p0, ++ .q9 = 0x1.1c71c71c71c72p0, ++ /* Ri = -2 * i / ((i+1)*(i+2)), for i = 5, ..., 9. */ ++ .r5 = -0x1.e79e79e79e79ep-3, ++ .r6 = -0x1.b6db6db6db6dbp-3, ++ .r7 = -0x1.8e38e38e38e39p-3, ++ .r8 = -0x1.6c16c16c16c17p-3, ++ .r9 = -0x1.4f2094f2094f2p-3, ++}; ++ ++/* Optimized double-precision vector erfc(x). ++ Approximation based on series expansion near x rounded to ++ nearest multiple of 1/128. ++ Let d = x - r, and scale = 2 / sqrt(pi) * exp(-r^2). For x near r, ++ ++ erfc(x) ~ erfc(r) - scale * d * poly(r, d), with ++ ++ poly(r, d) = 1 - r d + (2/3 r^2 - 1/3) d^2 - r (1/3 r^2 - 1/2) d^3 ++ + (2/15 r^4 - 2/5 r^2 + 1/10) d^4 ++ - r * (2/45 r^4 - 2/9 r^2 + 1/6) d^5 ++ + p6(r) d^6 + ... + p10(r) d^10 ++ ++ Polynomials p6(r) to p10(r) are computed using recurrence relation ++ ++ 2(i+1)p_i + 2r(i+2)p_{i+1} + (i+2)(i+3)p_{i+2} = 0, ++ with p0 = 1, and p1(r) = -r. ++ ++ Values of erfc(r) and scale are read from lookup tables. Stored values ++ are scaled to avoid hitting the subnormal range. ++ ++ Note that for x < 0, erfc(x) = 2.0 - erfc(-x). ++ ++ Maximum measured error: 1.71 ULP ++ _ZGVsMxv_erfc(0x1.46cfe976733p+4) got 0x1.e15fcbea3e7afp-608 ++ want 0x1.e15fcbea3e7adp-608. */ ++svfloat64_t SV_NAME_D1 (erfc) (svfloat64_t x, const svbool_t pg) ++{ ++ const struct data *dat = ptr_barrier (&data); ++ ++ svfloat64_t a = svabs_x (pg, x); ++ ++ /* Clamp input at |x| <= 3487/128. */ ++ a = svmin_x (pg, a, dat->max); ++ ++ /* Reduce x to the nearest multiple of 1/128. */ ++ svfloat64_t shift = sv_f64 (dat->shift); ++ svfloat64_t z = svadd_x (pg, a, shift); ++ ++ /* Saturate index for the NaN case. */ ++ svuint64_t i = svqadd (svreinterpret_u64 (z), dat->off_idx); ++ ++ /* Lookup erfc(r) and 2/sqrt(pi)*exp(-r^2) in tables. */ ++ i = svadd_x (pg, i, i); ++ const float64_t *p = &__erfc_data.tab[0].erfc - 2 * dat->off_arr; ++ svfloat64_t erfcr = svld1_gather_index (pg, p, i); ++ svfloat64_t scale = svld1_gather_index (pg, p + 1, i); ++ ++ /* erfc(x) ~ erfc(r) - scale * d * poly(r, d). */ ++ svfloat64_t r = svsub_x (pg, z, shift); ++ svfloat64_t d = svsub_x (pg, a, r); ++ svfloat64_t d2 = svmul_x (pg, d, d); ++ svfloat64_t r2 = svmul_x (pg, r, r); ++ ++ /* poly (d, r) = 1 + p1(r) * d + p2(r) * d^2 + ... + p9(r) * d^9. */ ++ svfloat64_t p1 = r; ++ svfloat64_t third = sv_f64 (dat->p20); ++ svfloat64_t twothird = svmul_x (pg, third, 2.0); ++ svfloat64_t sixth = svmul_x (pg, third, 0.5); ++ svfloat64_t p2 = svmls_x (pg, third, r2, twothird); ++ svfloat64_t p3 = svmad_x (pg, r2, third, -0.5); ++ p3 = svmul_x (pg, r, p3); ++ svfloat64_t p4 = svmla_x (pg, sv_f64 (dat->p41), r2, dat->p42); ++ p4 = svmls_x (pg, sv_f64 (dat->p40), r2, p4); ++ svfloat64_t p5 = svmla_x (pg, sv_f64 (dat->p51), r2, dat->p52); ++ p5 = svmla_x (pg, sixth, r2, p5); ++ p5 = svmul_x (pg, r, p5); ++ /* Compute p_i using recurrence relation: ++ p_{i+2} = (p_i + r * Q_{i+1} * p_{i+1}) * R_{i+1}. */ ++ svfloat64_t qr5 = svld1rq (svptrue_b64 (), &dat->q5); ++ svfloat64_t qr6 = svld1rq (svptrue_b64 (), &dat->q6); ++ svfloat64_t qr7 = svld1rq (svptrue_b64 (), &dat->q7); ++ svfloat64_t qr8 = svld1rq (svptrue_b64 (), &dat->q8); ++ svfloat64_t qr9 = svld1rq (svptrue_b64 (), &dat->q9); ++ svfloat64_t p6 = svmla_x (pg, p4, p5, svmul_lane (r, qr5, 0)); ++ p6 = svmul_lane (p6, qr5, 1); ++ svfloat64_t p7 = svmla_x (pg, p5, p6, svmul_lane (r, qr6, 0)); ++ p7 = svmul_lane (p7, qr6, 1); ++ svfloat64_t p8 = svmla_x (pg, p6, p7, svmul_lane (r, qr7, 0)); ++ p8 = svmul_lane (p8, qr7, 1); ++ svfloat64_t p9 = svmla_x (pg, p7, p8, svmul_lane (r, qr8, 0)); ++ p9 = svmul_lane (p9, qr8, 1); ++ svfloat64_t p10 = svmla_x (pg, p8, p9, svmul_lane (r, qr9, 0)); ++ p10 = svmul_lane (p10, qr9, 1); ++ /* Compute polynomial in d using pairwise Horner scheme. */ ++ svfloat64_t p90 = svmla_x (pg, p9, d, p10); ++ svfloat64_t p78 = svmla_x (pg, p7, d, p8); ++ svfloat64_t p56 = svmla_x (pg, p5, d, p6); ++ svfloat64_t p34 = svmla_x (pg, p3, d, p4); ++ svfloat64_t p12 = svmla_x (pg, p1, d, p2); ++ svfloat64_t y = svmla_x (pg, p78, d2, p90); ++ y = svmla_x (pg, p56, d2, y); ++ y = svmla_x (pg, p34, d2, y); ++ y = svmla_x (pg, p12, d2, y); ++ ++ y = svmls_x (pg, erfcr, scale, svmls_x (pg, d, d2, y)); ++ ++ /* Offset equals 2.0 if sign, else 0.0. */ ++ svuint64_t sign = svand_x (pg, svreinterpret_u64 (x), 0x8000000000000000); ++ svfloat64_t off = svreinterpret_f64 (svlsr_x (pg, sign, 1)); ++ /* Handle sign and scale back in a single fma. */ ++ svfloat64_t fac = svreinterpret_f64 (svorr_x (pg, sign, dat->table_scale)); ++ ++ return svmla_x (pg, off, fac, y); ++} +diff --git a/sysdeps/aarch64/fpu/erfcf_advsimd.c b/sysdeps/aarch64/fpu/erfcf_advsimd.c +new file mode 100644 +index 0000000000000000..30b9e48dd40d80a0 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/erfcf_advsimd.c +@@ -0,0 +1,170 @@ ++/* Single-precision vector (Advanced SIMD) erfc function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "v_math.h" ++ ++static const struct data ++{ ++ uint32x4_t offset, table_scale; ++ float32x4_t max, shift; ++ float32x4_t coeffs, third, two_over_five, tenth; ++#if WANT_SIMD_EXCEPT ++ float32x4_t uflow_bound; ++#endif ++ ++} data = { ++ /* Set an offset so the range of the index used for lookup is 644, and it can ++ be clamped using a saturated add. */ ++ .offset = V4 (0xb7fffd7b), /* 0xffffffff - asuint(shift) - 644. */ ++ .table_scale = V4 (0x28000000 << 1), /* asuint (2^-47) << 1. */ ++ .max = V4 (10.0625f), /* 10 + 1/16 = 644/64. */ ++ .shift = V4 (0x1p17f), ++ /* Store 1/3, 2/3 and 2/15 in a single register for use with indexed muls and ++ fmas. */ ++ .coeffs = (float32x4_t){ 0x1.555556p-2f, 0x1.555556p-1f, 0x1.111112p-3f, 0 }, ++ .third = V4 (0x1.555556p-2f), ++ .two_over_five = V4 (-0x1.99999ap-2f), ++ .tenth = V4 (-0x1.99999ap-4f), ++#if WANT_SIMD_EXCEPT ++ .uflow_bound = V4 (0x1.2639cp+3f), ++#endif ++}; ++ ++#define TinyBound 0x41000000 /* 0x1p-62f << 1. */ ++#define Thres 0xbe000000 /* asuint(infinity) << 1 - TinyBound. */ ++#define Off 0xfffffd7b /* 0xffffffff - 644. */ ++ ++struct entry ++{ ++ float32x4_t erfc; ++ float32x4_t scale; ++}; ++ ++static inline struct entry ++lookup (uint32x4_t i) ++{ ++ struct entry e; ++ float64_t t0 = *((float64_t *) (__erfcf_data.tab - Off + i[0])); ++ float64_t t1 = *((float64_t *) (__erfcf_data.tab - Off + i[1])); ++ float64_t t2 = *((float64_t *) (__erfcf_data.tab - Off + i[2])); ++ float64_t t3 = *((float64_t *) (__erfcf_data.tab - Off + i[3])); ++ float32x4_t e1 = vreinterpretq_f32_f64 ((float64x2_t){ t0, t1 }); ++ float32x4_t e2 = vreinterpretq_f32_f64 ((float64x2_t){ t2, t3 }); ++ e.erfc = vuzp1q_f32 (e1, e2); ++ e.scale = vuzp2q_f32 (e1, e2); ++ return e; ++} ++ ++#if WANT_SIMD_EXCEPT ++static float32x4_t VPCS_ATTR NOINLINE ++special_case (float32x4_t x, float32x4_t y, uint32x4_t cmp) ++{ ++ return v_call_f32 (erfcf, x, y, cmp); ++} ++#endif ++ ++/* Optimized single-precision vector erfcf(x). ++ Approximation based on series expansion near x rounded to ++ nearest multiple of 1/64. ++ Let d = x - r, and scale = 2 / sqrt(pi) * exp(-r^2). For x near r, ++ ++ erfc(x) ~ erfc(r) - scale * d * poly(r, d), with ++ ++ poly(r, d) = 1 - r d + (2/3 r^2 - 1/3) d^2 - r (1/3 r^2 - 1/2) d^3 ++ + (2/15 r^4 - 2/5 r^2 + 1/10) d^4 ++ ++ Values of erfc(r) and scale are read from lookup tables. Stored values ++ are scaled to avoid hitting the subnormal range. ++ ++ Note that for x < 0, erfc(x) = 2.0 - erfc(-x). ++ Maximum error: 1.63 ULP (~1.0 ULP for x < 0.0). ++ _ZGVnN4v_erfcf(0x1.1dbf7ap+3) got 0x1.f51212p-120 ++ want 0x1.f51216p-120. */ ++VPCS_ATTR ++float32x4_t NOINLINE V_NAME_F1 (erfc) (float32x4_t x) ++{ ++ const struct data *dat = ptr_barrier (&data); ++ ++#if WANT_SIMD_EXCEPT ++ /* |x| < 2^-62. Avoid fabs by left-shifting by 1. */ ++ uint32x4_t ix = vreinterpretq_u32_f32 (x); ++ uint32x4_t cmp = vcltq_u32 (vaddq_u32 (ix, ix), v_u32 (TinyBound)); ++ /* x >= ~9.19 (into subnormal case and uflow case). Comparison is done in ++ integer domain to avoid raising exceptions in presence of nans. */ ++ uint32x4_t uflow = vcgeq_s32 (vreinterpretq_s32_f32 (x), ++ vreinterpretq_s32_f32 (dat->uflow_bound)); ++ cmp = vorrq_u32 (cmp, uflow); ++ float32x4_t xm = x; ++ /* If any lanes are special, mask them with 0 and retain a copy of x to allow ++ special case handler to fix special lanes later. This is only necessary if ++ fenv exceptions are to be triggered correctly. */ ++ if (__glibc_unlikely (v_any_u32 (cmp))) ++ x = v_zerofy_f32 (x, cmp); ++#endif ++ ++ float32x4_t a = vabsq_f32 (x); ++ a = vminq_f32 (a, dat->max); ++ ++ /* Lookup erfc(r) and scale(r) in tables, e.g. set erfc(r) to 0 and scale to ++ 2/sqrt(pi), when x reduced to r = 0. */ ++ float32x4_t shift = dat->shift; ++ float32x4_t z = vaddq_f32 (a, shift); ++ ++ /* Clamp index to a range of 644. A naive approach would use a subtract and ++ min. Instead we offset the table address and the index, then use a ++ saturating add. */ ++ uint32x4_t i = vqaddq_u32 (vreinterpretq_u32_f32 (z), dat->offset); ++ ++ struct entry e = lookup (i); ++ ++ /* erfc(x) ~ erfc(r) - scale * d * poly(r, d). */ ++ float32x4_t r = vsubq_f32 (z, shift); ++ float32x4_t d = vsubq_f32 (a, r); ++ float32x4_t d2 = vmulq_f32 (d, d); ++ float32x4_t r2 = vmulq_f32 (r, r); ++ ++ float32x4_t p1 = r; ++ float32x4_t p2 = vfmsq_laneq_f32 (dat->third, r2, dat->coeffs, 1); ++ float32x4_t p3 ++ = vmulq_f32 (r, vfmaq_laneq_f32 (v_f32 (-0.5), r2, dat->coeffs, 0)); ++ float32x4_t p4 = vfmaq_laneq_f32 (dat->two_over_five, r2, dat->coeffs, 2); ++ p4 = vfmsq_f32 (dat->tenth, r2, p4); ++ ++ float32x4_t y = vfmaq_f32 (p3, d, p4); ++ y = vfmaq_f32 (p2, d, y); ++ y = vfmaq_f32 (p1, d, y); ++ y = vfmsq_f32 (e.erfc, e.scale, vfmsq_f32 (d, d2, y)); ++ ++ /* Offset equals 2.0f if sign, else 0.0f. */ ++ uint32x4_t sign = vshrq_n_u32 (vreinterpretq_u32_f32 (x), 31); ++ float32x4_t off = vreinterpretq_f32_u32 (vshlq_n_u32 (sign, 30)); ++ /* Copy sign and scale back in a single fma. Since the bit patterns do not ++ overlap, then logical or and addition are equivalent here. */ ++ float32x4_t fac = vreinterpretq_f32_u32 ( ++ vsraq_n_u32 (vshlq_n_u32 (sign, 31), dat->table_scale, 1)); ++ ++#if WANT_SIMD_EXCEPT ++ if (__glibc_unlikely (v_any_u32 (cmp))) ++ return special_case (xm, vfmaq_f32 (off, fac, y), cmp); ++#endif ++ ++ return vfmaq_f32 (off, fac, y); ++} ++libmvec_hidden_def (V_NAME_F1 (erfc)) ++HALF_WIDTH_ALIAS_F1 (erfc) +diff --git a/sysdeps/aarch64/fpu/erfcf_data.c b/sysdeps/aarch64/fpu/erfcf_data.c +new file mode 100644 +index 0000000000000000..77fb889a788345ad +--- /dev/null ++++ b/sysdeps/aarch64/fpu/erfcf_data.c +@@ -0,0 +1,676 @@ ++/* Table for Advanced SIMD erfcf ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "vecmath_config.h" ++ ++/* Lookup table used in erfcf. ++ For each possible rounded input r (multiples of 1/64), between ++ r = 0.0 and r = 10.0625 (645 values): ++ - the first entry __erfcf_data.tab.erfc contains the values of erfc(r), ++ - the second entry __erfcf_data.tab.scale contains the values of ++ 2/sqrt(pi)*exp(-r^2). Both values may go into subnormal range, therefore ++ they are scaled by a large enough value 2^47 (fits in 8 bits). */ ++const struct erfcf_data __erfcf_data = { ++ .tab = { { 0x1p47, 0x1.20dd76p47 }, ++ { 0x1.f6f944p46, 0x1.20cb68p47 }, ++ { 0x1.edf3aap46, 0x1.209546p47 }, ++ { 0x1.e4f05p46, 0x1.203b26p47 }, ++ { 0x1.dbf056p46, 0x1.1fbd28p47 }, ++ { 0x1.d2f4dcp46, 0x1.1f1b7ap47 }, ++ { 0x1.c9fefep46, 0x1.1e565cp47 }, ++ { 0x1.c10fd4p46, 0x1.1d6e14p47 }, ++ { 0x1.b8287ap46, 0x1.1c62fap47 }, ++ { 0x1.af4ap46, 0x1.1b3572p47 }, ++ { 0x1.a6757ep46, 0x1.19e5eap47 }, ++ { 0x1.9dabfcp46, 0x1.1874dep47 }, ++ { 0x1.94ee88p46, 0x1.16e2d8p47 }, ++ { 0x1.8c3e24p46, 0x1.153068p47 }, ++ { 0x1.839bd6p46, 0x1.135e3p47 }, ++ { 0x1.7b0894p46, 0x1.116cd8p47 }, ++ { 0x1.728558p46, 0x1.0f5d16p47 }, ++ { 0x1.6a1312p46, 0x1.0d2fa6p47 }, ++ { 0x1.61b2acp46, 0x1.0ae55p47 }, ++ { 0x1.596508p46, 0x1.087ee4p47 }, ++ { 0x1.512b06p46, 0x1.05fd3ep47 }, ++ { 0x1.49057ap46, 0x1.03614p47 }, ++ { 0x1.40f536p46, 0x1.00abdp47 }, ++ { 0x1.38fbp46, 0x1.fbbbbep46 }, ++ { 0x1.311796p46, 0x1.f5f0cep46 }, ++ { 0x1.294bb4p46, 0x1.eff8c4p46 }, ++ { 0x1.21980ap46, 0x1.e9d5a8p46 }, ++ { 0x1.19fd3ep46, 0x1.e38988p46 }, ++ { 0x1.127bf2p46, 0x1.dd167cp46 }, ++ { 0x1.0b14bcp46, 0x1.d67ea2p46 }, ++ { 0x1.03c82ap46, 0x1.cfc41ep46 }, ++ { 0x1.f92d8cp45, 0x1.c8e91cp46 }, ++ { 0x1.eb0214p45, 0x1.c1efcap46 }, ++ { 0x1.dd0edap45, 0x1.bada5ap46 }, ++ { 0x1.cf54b4p45, 0x1.b3aafcp46 }, ++ { 0x1.c1d46ap45, 0x1.ac63e8p46 }, ++ { 0x1.b48eaep45, 0x1.a5074ep46 }, ++ { 0x1.a78428p45, 0x1.9d9762p46 }, ++ { 0x1.9ab566p45, 0x1.96165p46 }, ++ { 0x1.8e22eap45, 0x1.8e8646p46 }, ++ { 0x1.81cd24p45, 0x1.86e96ap46 }, ++ { 0x1.75b47p45, 0x1.7f41dcp46 }, ++ { 0x1.69d91ep45, 0x1.7791b8p46 }, ++ { 0x1.5e3b66p45, 0x1.6fdb12p46 }, ++ { 0x1.52db78p45, 0x1.681ff2p46 }, ++ { 0x1.47b96ep45, 0x1.60625cp46 }, ++ { 0x1.3cd554p45, 0x1.58a446p46 }, ++ { 0x1.322f26p45, 0x1.50e79ep46 }, ++ { 0x1.27c6d2p45, 0x1.492e42p46 }, ++ { 0x1.1d9c34p45, 0x1.417a0cp46 }, ++ { 0x1.13af1ep45, 0x1.39ccc2p46 }, ++ { 0x1.09ff5p45, 0x1.32281ep46 }, ++ { 0x1.008c8p45, 0x1.2a8dcep46 }, ++ { 0x1.eeaca8p44, 0x1.22ff72p46 }, ++ { 0x1.dcb8cap44, 0x1.1b7e98p46 }, ++ { 0x1.cb3c86p44, 0x1.140cc4p46 }, ++ { 0x1.ba36dap44, 0x1.0cab62p46 }, ++ { 0x1.a9a6bap44, 0x1.055bd6p46 }, ++ { 0x1.998afap44, 0x1.fc3ee6p45 }, ++ { 0x1.89e25ep44, 0x1.edeeeep45 }, ++ { 0x1.7aab98p44, 0x1.dfca26p45 }, ++ { 0x1.6be542p44, 0x1.d1d2dp45 }, ++ { 0x1.5d8decp44, 0x1.c40b08p45 }, ++ { 0x1.4fa40ep44, 0x1.b674c8p45 }, ++ { 0x1.422616p44, 0x1.a911fp45 }, ++ { 0x1.351262p44, 0x1.9be438p45 }, ++ { 0x1.28674p44, 0x1.8eed36p45 }, ++ { 0x1.1c22f8p44, 0x1.822e66p45 }, ++ { 0x1.1043c2p44, 0x1.75a91ap45 }, ++ { 0x1.04c7cap44, 0x1.695e8cp45 }, ++ { 0x1.f35a72p43, 0x1.5d4fd4p45 }, ++ { 0x1.dde456p43, 0x1.517de6p45 }, ++ { 0x1.c9296cp43, 0x1.45e99cp45 }, ++ { 0x1.b525d6p43, 0x1.3a93b2p45 }, ++ { 0x1.a1d5a6p43, 0x1.2f7cc4p45 }, ++ { 0x1.8f34eap43, 0x1.24a554p45 }, ++ { 0x1.7d3fa6p43, 0x1.1a0dc6p45 }, ++ { 0x1.6bf1dcp43, 0x1.0fb662p45 }, ++ { 0x1.5b4784p43, 0x1.059f5ap45 }, ++ { 0x1.4b3c98p43, 0x1.f79184p44 }, ++ { 0x1.3bcd14p43, 0x1.e4653p44 }, ++ { 0x1.2cf4eep43, 0x1.d1b982p44 }, ++ { 0x1.1eb024p43, 0x1.bf8e1cp44 }, ++ { 0x1.10fab8p43, 0x1.ade26cp44 }, ++ { 0x1.03d0acp43, 0x1.9cb5bep44 }, ++ { 0x1.ee5c18p42, 0x1.8c0732p44 }, ++ { 0x1.d61dd6p42, 0x1.7bd5c8p44 }, ++ { 0x1.bedec8p42, 0x1.6c2056p44 }, ++ { 0x1.a8973cp42, 0x1.5ce596p44 }, ++ { 0x1.933f9p42, 0x1.4e241ep44 }, ++ { 0x1.7ed03ap42, 0x1.3fda6cp44 }, ++ { 0x1.6b41ccp42, 0x1.3206dcp44 }, ++ { 0x1.588cf2p42, 0x1.24a7b8p44 }, ++ { 0x1.46aa72p42, 0x1.17bb2cp44 }, ++ { 0x1.359332p42, 0x1.0b3f52p44 }, ++ { 0x1.254038p42, 0x1.fe646p43 }, ++ { 0x1.15aaa8p42, 0x1.e72372p43 }, ++ { 0x1.06cbcap42, 0x1.d0b7ap43 }, ++ { 0x1.f13a04p41, 0x1.bb1c98p43 }, ++ { 0x1.d62fbep41, 0x1.a64de6p43 }, ++ { 0x1.bc6c1ep41, 0x1.92470ap43 }, ++ { 0x1.a3e2ccp41, 0x1.7f036cp43 }, ++ { 0x1.8c87b8p41, 0x1.6c7e64p43 }, ++ { 0x1.764f2p41, 0x1.5ab342p43 }, ++ { 0x1.612d8ap41, 0x1.499d48p43 }, ++ { 0x1.4d17cap41, 0x1.3937b2p43 }, ++ { 0x1.3a03p41, 0x1.297dbap43 }, ++ { 0x1.27e498p41, 0x1.1a6a96p43 }, ++ { 0x1.16b24cp41, 0x1.0bf97ep43 }, ++ { 0x1.066222p41, 0x1.fc4b5ep42 }, ++ { 0x1.edd4d2p40, 0x1.e1d4dp42 }, ++ { 0x1.d08382p40, 0x1.c885ep42 }, ++ { 0x1.b4be2p40, 0x1.b0553p42 }, ++ { 0x1.9a7316p40, 0x1.99397ap42 }, ++ { 0x1.81915cp40, 0x1.83298ep42 }, ++ { 0x1.6a088p40, 0x1.6e1c58p42 }, ++ { 0x1.53c89ep40, 0x1.5a08e8p42 }, ++ { 0x1.3ec25ep40, 0x1.46e66cp42 }, ++ { 0x1.2ae6fap40, 0x1.34ac36p42 }, ++ { 0x1.18282ep40, 0x1.2351c2p42 }, ++ { 0x1.067844p40, 0x1.12ceb4p42 }, ++ { 0x1.eb940ep39, 0x1.031ad6p42 }, ++ { 0x1.cc2186p39, 0x1.e85c44p41 }, ++ { 0x1.ae808cp39, 0x1.cc018p41 }, ++ { 0x1.9299bp39, 0x1.b1160ap41 }, ++ { 0x1.785674p39, 0x1.978ae8p41 }, ++ { 0x1.5fa14ap39, 0x1.7f5188p41 }, ++ { 0x1.486586p39, 0x1.685bb6p41 }, ++ { 0x1.328f5ep39, 0x1.529b9ep41 }, ++ { 0x1.1e0be6p39, 0x1.3e03d8p41 }, ++ { 0x1.0ac8fcp39, 0x1.2a875cp41 }, ++ { 0x1.f16aaep38, 0x1.181984p41 }, ++ { 0x1.cf80d4p38, 0x1.06ae14p41 }, ++ { 0x1.afb4e2p38, 0x1.ec7262p40 }, ++ { 0x1.91e8bep38, 0x1.cd5ecap40 }, ++ { 0x1.75ffb4p38, 0x1.b00b38p40 }, ++ { 0x1.5bde72p38, 0x1.94624ep40 }, ++ { 0x1.436af4p38, 0x1.7a4f6ap40 }, ++ { 0x1.2c8c7ap38, 0x1.61beaep40 }, ++ { 0x1.172b7ap38, 0x1.4a9cf6p40 }, ++ { 0x1.033198p38, 0x1.34d7dcp40 }, ++ { 0x1.e11332p37, 0x1.205dacp40 }, ++ { 0x1.be3ebp37, 0x1.0d1d6ap40 }, ++ { 0x1.9dbf72p37, 0x1.f60d8ap39 }, ++ { 0x1.7f714p37, 0x1.d4143ap39 }, ++ { 0x1.6331cap37, 0x1.b430ecp39 }, ++ { 0x1.48e09cp37, 0x1.9646f4p39 }, ++ { 0x1.305ef8p37, 0x1.7a3adep39 }, ++ { 0x1.198fd6p37, 0x1.5ff276p39 }, ++ { 0x1.0457c6p37, 0x1.4754acp39 }, ++ { 0x1.e139bcp36, 0x1.30499cp39 }, ++ { 0x1.bc8d52p36, 0x1.1aba78p39 }, ++ { 0x1.9a7c3p36, 0x1.06918cp39 }, ++ { 0x1.7adadep36, 0x1.e77448p38 }, ++ { 0x1.5d806ap36, 0x1.c4412cp38 }, ++ { 0x1.424642p36, 0x1.a36454p38 }, ++ { 0x1.290826p36, 0x1.84ba3p38 }, ++ { 0x1.11a3f8p36, 0x1.6821p38 }, ++ { 0x1.f7f358p35, 0x1.4d78bcp38 }, ++ { 0x1.cfd652p35, 0x1.34a306p38 }, ++ { 0x1.aab85ap35, 0x1.1d8318p38 }, ++ { 0x1.88647p35, 0x1.07fdb4p38 }, ++ { 0x1.68a8e4p35, 0x1.e7f232p37 }, ++ { 0x1.4b5726p35, 0x1.c2b9dp37 }, ++ { 0x1.30439cp35, 0x1.a02436p37 }, ++ { 0x1.174578p35, 0x1.8005fp37 }, ++ { 0x1.003692p35, 0x1.6235fcp37 }, ++ { 0x1.d5e678p34, 0x1.468daep37 }, ++ { 0x1.aeb442p34, 0x1.2ce898p37 }, ++ { 0x1.8a9848p34, 0x1.15246ep37 }, ++ { 0x1.695876p34, 0x1.fe41cep36 }, ++ { 0x1.4abea2p34, 0x1.d57f52p36 }, ++ { 0x1.2e984ep34, 0x1.afc85ep36 }, ++ { 0x1.14b676p34, 0x1.8ce75ep36 }, ++ { 0x1.f9daap33, 0x1.6caa0ep36 }, ++ { 0x1.ce283ap33, 0x1.4ee142p36 }, ++ { 0x1.a609f8p33, 0x1.3360ccp36 }, ++ { 0x1.81396ap33, 0x1.19ff46p36 }, ++ { 0x1.5f7524p33, 0x1.0295fp36 }, ++ { 0x1.40806ep33, 0x1.da011p35 }, ++ { 0x1.2422eep33, 0x1.b23a5ap35 }, ++ { 0x1.0a286p33, 0x1.8d986ap35 }, ++ { 0x1.e4c0bp32, 0x1.6be022p35 }, ++ { 0x1.b93bf4p32, 0x1.4cda54p35 }, ++ { 0x1.916f7cp32, 0x1.30539p35 }, ++ { 0x1.6d0e7p32, 0x1.161be4p35 }, ++ { 0x1.4bd1cp32, 0x1.fc0d56p34 }, ++ { 0x1.2d77bep32, 0x1.cfd4a6p34 }, ++ { 0x1.11c3bep32, 0x1.a74068p34 }, ++ { 0x1.f0fb86p31, 0x1.8208bcp34 }, ++ { 0x1.c2e43ep31, 0x1.5feadap34 }, ++ { 0x1.98e254p31, 0x1.40a8c2p34 }, ++ { 0x1.729df6p31, 0x1.2408eap34 }, ++ { 0x1.4fc63cp31, 0x1.09d5f8p34 }, ++ { 0x1.3010aap31, 0x1.e3bcf4p33 }, ++ { 0x1.1338b8p31, 0x1.b7e946p33 }, ++ { 0x1.f1fecp30, 0x1.8fdc1cp33 }, ++ { 0x1.c2556ap30, 0x1.6b4702p33 }, ++ { 0x1.970b06p30, 0x1.49e178p33 }, ++ { 0x1.6fbddep30, 0x1.2b6876p33 }, ++ { 0x1.4c144ep30, 0x1.0f9e1cp33 }, ++ { 0x1.2bbc1ep30, 0x1.ec929ap32 }, ++ { 0x1.0e69f2p30, 0x1.be6abcp32 }, ++ { 0x1.e7b188p29, 0x1.94637ep32 }, ++ { 0x1.b792bcp29, 0x1.6e2368p32 }, ++ { 0x1.8c03d2p29, 0x1.4b581cp32 }, ++ { 0x1.649b02p29, 0x1.2bb5ccp32 }, ++ { 0x1.40f794p29, 0x1.0ef6c4p32 }, ++ { 0x1.20c13p29, 0x1.e9b5e8p31 }, ++ { 0x1.03a72ap29, 0x1.ba4f04p31 }, ++ { 0x1.d2bfc6p28, 0x1.8f4cccp31 }, ++ { 0x1.a35068p28, 0x1.684c22p31 }, ++ { 0x1.7885cep28, 0x1.44f21ep31 }, ++ { 0x1.51f06ap28, 0x1.24eb72p31 }, ++ { 0x1.2f2aaap28, 0x1.07ebd2p31 }, ++ { 0x1.0fd816p28, 0x1.db5adp30 }, ++ { 0x1.e7493p27, 0x1.abe09ep30 }, ++ { 0x1.b48774p27, 0x1.80f43ap30 }, ++ { 0x1.86e006p27, 0x1.5a2aep30 }, ++ { 0x1.5dd4bp27, 0x1.37231p30 }, ++ { 0x1.38f2e8p27, 0x1.1783cep30 }, ++ { 0x1.17d2c6p27, 0x1.f5f7d8p29 }, ++ { 0x1.f42c18p26, 0x1.c282cep29 }, ++ { 0x1.beceb2p26, 0x1.94219cp29 }, ++ { 0x1.8ef2aap26, 0x1.6a5972p29 }, ++ { 0x1.640bf6p26, 0x1.44ba86p29 }, ++ { 0x1.3d9be6p26, 0x1.22df2ap29 }, ++ { 0x1.1b2fe4p26, 0x1.046aeap29 }, ++ { 0x1.f8c0c2p25, 0x1.d21398p28 }, ++ { 0x1.c19fa8p25, 0x1.a0df1p28 }, ++ { 0x1.90538cp25, 0x1.74adc8p28 }, ++ { 0x1.6443fep25, 0x1.4d0232p28 }, ++ { 0x1.3ce784p25, 0x1.296a7p28 }, ++ { 0x1.19c232p25, 0x1.097f62p28 }, ++ { 0x1.f4c8c4p24, 0x1.d9c736p27 }, ++ { 0x1.bcd30ep24, 0x1.a6852cp27 }, ++ { 0x1.8aee4cp24, 0x1.789fb8p27 }, ++ { 0x1.5e77b6p24, 0x1.4f8c96p27 }, ++ { 0x1.36dcf2p24, 0x1.2acee2p27 }, ++ { 0x1.139a7cp24, 0x1.09f5dp27 }, ++ { 0x1.e8747p23, 0x1.d9371ep26 }, ++ { 0x1.b0a44ap23, 0x1.a4c89ep26 }, ++ { 0x1.7f064ap23, 0x1.75fa8ep26 }, ++ { 0x1.52efep23, 0x1.4c37cp26 }, ++ { 0x1.2bc82ap23, 0x1.26f9ep26 }, ++ { 0x1.09064p23, 0x1.05c804p26 }, ++ { 0x1.d45f16p22, 0x1.d06ad6p25 }, ++ { 0x1.9dacb2p22, 0x1.9bc0ap25 }, ++ { 0x1.6d3126p22, 0x1.6ce1aap25 }, ++ { 0x1.423d14p22, 0x1.43302cp25 }, ++ { 0x1.1c33cep22, 0x1.1e1e86p25 }, ++ { 0x1.f512dep21, 0x1.fa5b5p24 }, ++ { 0x1.b9823cp21, 0x1.bfd756p24 }, ++ { 0x1.84d6fep21, 0x1.8be4f8p24 }, ++ { 0x1.564a92p21, 0x1.5dcd66p24 }, ++ { 0x1.2d2c0ap21, 0x1.34ecf8p24 }, ++ { 0x1.08ddd2p21, 0x1.10b148p24 }, ++ { 0x1.d1a75p20, 0x1.e12eep23 }, ++ { 0x1.99218cp20, 0x1.a854eap23 }, ++ { 0x1.674c6ap20, 0x1.7603bap23 }, ++ { 0x1.3b62b6p20, 0x1.4980ccp23 }, ++ { 0x1.14b54p20, 0x1.2225b2p23 }, ++ { 0x1.e55102p19, 0x1.febc1p22 }, ++ { 0x1.a964eep19, 0x1.c14b22p22 }, ++ { 0x1.74b17ap19, 0x1.8b0cfcp22 }, ++ { 0x1.465daap19, 0x1.5b2fe6p22 }, ++ { 0x1.1da944p19, 0x1.30f93cp22 }, ++ { 0x1.f3d41p18, 0x1.0bc30cp22 }, ++ { 0x1.b512a2p18, 0x1.d5f3a8p21 }, ++ { 0x1.7e03b2p18, 0x1.9c3518p21 }, ++ { 0x1.4dbb98p18, 0x1.6961b8p21 }, ++ { 0x1.236a1ap18, 0x1.3cab14p21 }, ++ { 0x1.fcae94p17, 0x1.155a0ap21 }, ++ { 0x1.bbc1ap17, 0x1.e5989p20 }, ++ { 0x1.82eedcp17, 0x1.a8e406p20 }, ++ { 0x1.5139a6p17, 0x1.7397c6p20 }, ++ { 0x1.25c354p17, 0x1.44d26ep20 }, ++ { 0x1.ff8f84p16, 0x1.1bcca4p20 }, ++ { 0x1.bd3474p16, 0x1.efac52p19 }, ++ { 0x1.834586p16, 0x1.b0a68ap19 }, ++ { 0x1.50b75cp16, 0x1.7974e8p19 }, ++ { 0x1.249ef2p16, 0x1.4924a8p19 }, ++ { 0x1.fc5b88p15, 0x1.1edfa4p19 }, ++ { 0x1.b95ceep15, 0x1.f3d218p18 }, ++ { 0x1.7f03bap15, 0x1.b334fap18 }, ++ { 0x1.4c389cp15, 0x1.7ac2d8p18 }, ++ { 0x1.2006aep15, 0x1.4979acp18 }, ++ { 0x1.f32eap14, 0x1.1e767cp18 }, ++ { 0x1.b05cfep14, 0x1.f1e352p17 }, ++ { 0x1.764f46p14, 0x1.b0778cp17 }, ++ { 0x1.43e56cp14, 0x1.77756ep17 }, ++ { 0x1.18238p14, 0x1.45ce66p17 }, ++ { 0x1.e45a98p13, 0x1.1a95p17 }, ++ { 0x1.a284ccp13, 0x1.e9f2p16 }, ++ { 0x1.697596p13, 0x1.a887bep16 }, ++ { 0x1.3807acp13, 0x1.6fab64p16 }, ++ { 0x1.0d3b36p13, 0x1.3e44e4p16 }, ++ { 0x1.d0624p12, 0x1.135f28p16 }, ++ { 0x1.904e0cp12, 0x1.dc479ep15 }, ++ { 0x1.58e72ap12, 0x1.9baed4p15 }, ++ { 0x1.2906ccp12, 0x1.63ac6cp15 }, ++ { 0x1.ff58dap11, 0x1.33225ap15 }, ++ { 0x1.b7f1f4p11, 0x1.0916fp15 }, ++ { 0x1.7a551p11, 0x1.c960cp14 }, ++ { 0x1.453142p11, 0x1.8a6174p14 }, ++ { 0x1.1761f8p11, 0x1.53e4f8p14 }, ++ { 0x1.dfd296p10, 0x1.24caf2p14 }, ++ { 0x1.9bd5fp10, 0x1.f830cp13 }, ++ { 0x1.61501p10, 0x1.b1e5acp13 }, ++ { 0x1.2ef6p10, 0x1.7538c6p13 }, ++ { 0x1.03a918p10, 0x1.40dfd8p13 }, ++ { 0x1.bce26ap9, 0x1.13bc08p13 }, ++ { 0x1.7cef42p9, 0x1.d9a88p12 }, ++ { 0x1.46056p9, 0x1.96a0b4p12 }, ++ { 0x1.16e3cap9, 0x1.5ce9acp12 }, ++ { 0x1.dcea68p8, 0x1.2b3e54p12 }, ++ { 0x1.97945ap8, 0x1.0085p12 }, ++ { 0x1.5c2828p8, 0x1.b7937ep11 }, ++ { 0x1.29415p8, 0x1.7872dap11 }, ++ { 0x1.fb58fap7, 0x1.423acp11 }, ++ { 0x1.b0c1a8p7, 0x1.13af5p11 }, ++ { 0x1.70f474p7, 0x1.d77f0cp10 }, ++ { 0x1.3a68a8p7, 0x1.92ff34p10 }, ++ { 0x1.0bcc6p7, 0x1.5847eep10 }, ++ { 0x1.c7fa0cp6, 0x1.25f9eep10 }, ++ { 0x1.8401b6p6, 0x1.f5cc78p9 }, ++ { 0x1.4a029ap6, 0x1.ac0f6p9 }, ++ { 0x1.188c46p6, 0x1.6cfa9cp9 }, ++ { 0x1.dcc4fap5, 0x1.370ab8p9 }, ++ { 0x1.94ec06p5, 0x1.08f24p9 }, ++ { 0x1.57bc96p5, 0x1.c324c2p8 }, ++ { 0x1.23a81ap5, 0x1.7fe904p8 }, ++ { 0x1.eeb278p4, 0x1.46897ep8 }, ++ { 0x1.a35794p4, 0x1.159a38p8 }, ++ { 0x1.634b8p4, 0x1.d7c594p7 }, ++ { 0x1.2ce2a4p4, 0x1.90ae4ep7 }, ++ { 0x1.fd5f08p3, 0x1.5422fp7 }, ++ { 0x1.aef3cep3, 0x1.20998p7 }, ++ { 0x1.6c6e62p3, 0x1.e98102p6 }, ++ { 0x1.3407b6p3, 0x1.9eee06p6 }, ++ { 0x1.043bap3, 0x1.5f8b88p6 }, ++ { 0x1.b77e5cp2, 0x1.29b294p6 }, ++ { 0x1.72f0c4p2, 0x1.f7f338p5 }, ++ { 0x1.38ee18p2, 0x1.aa5772p5 }, ++ { 0x1.07dd68p2, 0x1.68823ep5 }, ++ { 0x1.bcc58ep1, 0x1.30b14ep5 }, ++ { 0x1.76aca4p1, 0x1.01647cp5 }, ++ { 0x1.3b7912p1, 0x1.b2a87ep4 }, ++ { 0x1.097f82p1, 0x1.6ed2f2p4 }, ++ { 0x1.beaa3ep0, 0x1.356cd6p4 }, ++ { 0x1.778be2p0, 0x1.04e15ep4 }, ++ { 0x1.3b9984p0, 0x1.b7b04p3 }, ++ { 0x1.09182cp0, 0x1.725862p3 }, ++ { 0x1.bd20fcp-1, 0x1.37c92cp3 }, ++ { 0x1.75892p-1, 0x1.065b96p3 }, ++ { 0x1.394e7ap-1, 0x1.b950d4p2 }, ++ { 0x1.06a996p-1, 0x1.72fd94p2 }, ++ { 0x1.b8328ep-2, 0x1.37b83cp2 }, ++ { 0x1.70aff4p-2, 0x1.05ca5p2 }, ++ { 0x1.34a53cp-2, 0x1.b7807ep1 }, ++ { 0x1.0241dep-2, 0x1.70bebp1 }, ++ { 0x1.affb9p-3, 0x1.353a6cp1 }, ++ { 0x1.691c7cp-3, 0x1.0330fp1 }, ++ { 0x1.2db8cap-3, 0x1.b24a16p0 }, ++ { 0x1.f7f4f8p-4, 0x1.6ba91ap0 }, ++ { 0x1.a4ab64p-4, 0x1.305e98p0 }, ++ { 0x1.5efa4ep-4, 0x1.fd3de2p-1 }, ++ { 0x1.24b0d8p-4, 0x1.a9cc94p-1 }, ++ { 0x1.e7eeap-5, 0x1.63daf8p-1 }, ++ { 0x1.96826ep-5, 0x1.294176p-1 }, ++ { 0x1.5282d2p-5, 0x1.f05e82p-2 }, ++ { 0x1.19c05p-5, 0x1.9e39dcp-2 }, ++ { 0x1.d4ca9cp-6, 0x1.5982p-2 }, ++ { 0x1.85cfacp-6, 0x1.200c8ap-2 }, ++ { 0x1.43fb32p-6, 0x1.e00e92p-3 }, ++ { 0x1.0d2382p-6, 0x1.8fd4ep-3 }, ++ { 0x1.bef1b2p-7, 0x1.4cd9cp-3 }, ++ { 0x1.72ede4p-7, 0x1.14f48ap-3 }, ++ { 0x1.33b1cap-7, 0x1.ccaaeap-4 }, ++ { 0x1.fe3bdp-8, 0x1.7eef14p-4 }, ++ { 0x1.a6d7d2p-8, 0x1.3e2964p-4 }, ++ { 0x1.5e4062p-8, 0x1.083768p-4 }, ++ { 0x1.21fb7ap-8, 0x1.b69f1p-5 }, ++ { 0x1.dfefbep-9, 0x1.6be574p-5 }, ++ { 0x1.8cf816p-9, 0x1.2dc11ap-5 }, ++ { 0x1.482fa8p-9, 0x1.f4343cp-6 }, ++ { 0x1.0f30c4p-9, 0x1.9e614ep-6 }, ++ { 0x1.bff86ep-10, 0x1.571d34p-6 }, ++ { 0x1.71d0b6p-10, 0x1.1bf742p-6 }, ++ { 0x1.3125f6p-10, 0x1.d5cc6cp-7 }, ++ { 0x1.f755eap-11, 0x1.846e9ep-7 }, ++ { 0x1.9eebaap-11, 0x1.410048p-7 }, ++ { 0x1.55df18p-11, 0x1.09258p-7 }, ++ { 0x1.198c18p-11, 0x1.b5ceb6p-8 }, ++ { 0x1.cf82ep-12, 0x1.69468p-8 }, ++ { 0x1.7d5af6p-12, 0x1.29f9e8p-8 }, ++ { 0x1.399c28p-12, 0x1.eb4b9ep-9 }, ++ { 0x1.01c65ap-12, 0x1.94d1dep-9 }, ++ { 0x1.a78e82p-13, 0x1.4d6706p-9 }, ++ { 0x1.5bcf92p-13, 0x1.127346p-9 }, ++ { 0x1.1d791cp-13, 0x1.c39fap-10 }, ++ { 0x1.d463dcp-14, 0x1.73679cp-10 }, ++ { 0x1.8011fcp-14, 0x1.314916p-10 }, ++ { 0x1.3ac71cp-14, 0x1.f5a11ap-11 }, ++ { 0x1.01dcc2p-14, 0x1.9beca8p-11 }, ++ { 0x1.a6459cp-15, 0x1.52189ap-11 }, ++ { 0x1.59962ap-15, 0x1.155d48p-11 }, ++ { 0x1.1ab0e4p-15, 0x1.c6dc8ap-12 }, ++ { 0x1.ce42dep-16, 0x1.74ca88p-12 }, ++ { 0x1.79c43p-16, 0x1.31612ap-12 }, ++ { 0x1.349128p-16, 0x1.f4125ap-13 }, ++ { 0x1.f7d80ep-17, 0x1.993e82p-13 }, ++ { 0x1.9b270cp-17, 0x1.4ec006p-13 }, ++ { 0x1.4f59fap-17, 0x1.11aebp-13 }, ++ { 0x1.1164acp-17, 0x1.bf4ab2p-14 }, ++ { 0x1.bd8c96p-18, 0x1.6d561ep-14 }, ++ { 0x1.6ae172p-18, 0x1.2a406ep-14 }, ++ { 0x1.276874p-18, 0x1.e6bba6p-15 }, ++ { 0x1.e0bad2p-19, 0x1.8cf814p-15 }, ++ { 0x1.86f788p-19, 0x1.4399f8p-15 }, ++ { 0x1.3dcfaep-19, 0x1.07aa3p-15 }, ++ { 0x1.023828p-19, 0x1.ad7302p-16 }, ++ { 0x1.a3666ep-20, 0x1.5d90f4p-16 }, ++ { 0x1.546e38p-20, 0x1.1c674ep-16 }, ++ { 0x1.143264p-20, 0x1.ce8ccp-17 }, ++ { 0x1.bff316p-21, 0x1.77f562p-17 }, ++ { 0x1.6b13ecp-21, 0x1.316da8p-17 }, ++ { 0x1.2624f4p-21, 0x1.f0046p-18 }, ++ { 0x1.dc5de4p-22, 0x1.92920ap-18 }, ++ { 0x1.818d3ap-22, 0x1.4691b2p-18 }, ++ { 0x1.37e62p-22, 0x1.08c96ap-18 }, ++ { 0x1.f8637ep-23, 0x1.ad2d0ap-19 }, ++ { 0x1.97a3dcp-23, 0x1.5ba462p-19 }, ++ { 0x1.494a4p-23, 0x1.1975ep-19 }, ++ { 0x1.09dee4p-23, 0x1.c78892p-20 }, ++ { 0x1.ad1fap-24, 0x1.7073c4p-20 }, ++ { 0x1.5a245ep-24, 0x1.29df48p-20 }, ++ { 0x1.171278p-24, 0x1.e163bep-21 }, ++ { 0x1.c1c74cp-25, 0x1.84cbbp-21 }, ++ { 0x1.6a46f4p-25, 0x1.39dbcep-21 }, ++ { 0x1.23a858p-25, 0x1.fa7b92p-22 }, ++ { 0x1.d56196p-26, 0x1.9876ap-22 }, ++ { 0x1.7984b6p-26, 0x1.4940bcp-22 }, ++ { 0x1.2f7cc4p-26, 0x1.094608p-22 }, ++ { 0x1.e7b62cp-27, 0x1.ab3e8cp-23 }, ++ { 0x1.87b15ep-27, 0x1.57e33ep-23 }, ++ { 0x1.3a6dp-27, 0x1.14a8b6p-23 }, ++ { 0x1.f88ebap-28, 0x1.bcede6p-24 }, ++ { 0x1.94a282p-28, 0x1.659918p-24 }, ++ { 0x1.44580ap-28, 0x1.1f4498p-24 }, ++ { 0x1.03dbf8p-28, 0x1.cd5086p-25 }, ++ { 0x1.a03066p-29, 0x1.723974p-25 }, ++ { 0x1.4d1f2ep-29, 0x1.28f9cap-25 }, ++ { 0x1.0a814ap-29, 0x1.dc34b6p-26 }, ++ { 0x1.aa36cap-30, 0x1.7d9dbp-26 }, ++ { 0x1.54a6b6p-30, 0x1.31aa56p-26 }, ++ { 0x1.102232p-30, 0x1.e96c26p-27 }, ++ { 0x1.b2959ep-31, 0x1.87a218p-27 }, ++ { 0x1.5ad66cp-31, 0x1.393ad2p-27 }, ++ { 0x1.14ac7ep-31, 0x1.f4ccdap-28 }, ++ { 0x1.b931b8p-32, 0x1.9026a8p-28 }, ++ { 0x1.5f9a24p-32, 0x1.3f92eap-28 }, ++ { 0x1.181154p-32, 0x1.fe3208p-29 }, ++ { 0x1.bdf55ep-33, 0x1.970fbp-29 }, ++ { 0x1.62e226p-33, 0x1.449de6p-29 }, ++ { 0x1.1a4576p-33, 0x1.02be7p-29 }, ++ { 0x1.c0d0bep-34, 0x1.9c4672p-30 }, ++ { 0x1.64a386p-34, 0x1.484b1ep-30 }, ++ { 0x1.1b418cp-34, 0x1.054a9ap-30 }, ++ { 0x1.c1ba4ap-35, 0x1.9fb994p-31 }, ++ { 0x1.64d86p-35, 0x1.4a8e4ep-31 }, ++ { 0x1.1b0242p-35, 0x1.06b4fep-31 }, ++ { 0x1.c0aee6p-36, 0x1.a15d86p-32 }, ++ { 0x1.637ffap-36, 0x1.4b5fdep-32 }, ++ { 0x1.198862p-36, 0x1.06f8dap-32 }, ++ { 0x1.bdb204p-37, 0x1.a12cc8p-33 }, ++ { 0x1.609ec2p-37, 0x1.4abd0ap-33 }, ++ { 0x1.16d8d2p-37, 0x1.06154ap-33 }, ++ { 0x1.b8cd88p-38, 0x1.9f27fap-34 }, ++ { 0x1.5c3e42p-38, 0x1.48a7fcp-34 }, ++ { 0x1.12fc6cp-38, 0x1.040d4ap-34 }, ++ { 0x1.b2119p-39, 0x1.9b55e8p-35 }, ++ { 0x1.566cep-39, 0x1.4527acp-35 }, ++ { 0x1.0dffep-39, 0x1.00e7acp-35 }, ++ { 0x1.a99426p-40, 0x1.95c358p-36 }, ++ { 0x1.4f3d92p-40, 0x1.4047cep-36 }, ++ { 0x1.07f35ep-40, 0x1.f95dcep-37 }, ++ { 0x1.9f70cp-41, 0x1.8e82cep-37 }, ++ { 0x1.46c77ap-41, 0x1.3a1882p-37 }, ++ { 0x1.00ea48p-41, 0x1.eee1d4p-38 }, ++ { 0x1.93c7acp-42, 0x1.85ac18p-38 }, ++ { 0x1.3d256ap-42, 0x1.32ae04p-38 }, ++ { 0x1.f1f59p-43, 0x1.e27d88p-39 }, ++ { 0x1.86bd6ap-43, 0x1.7b5bdap-39 }, ++ { 0x1.327554p-43, 0x1.2a2036p-39 }, ++ { 0x1.e07ab4p-44, 0x1.d458ap-40 }, ++ { 0x1.7879ecp-44, 0x1.6fb2eap-40 }, ++ { 0x1.26d7bp-44, 0x1.208a2cp-40 }, ++ { 0x1.cd98a2p-45, 0x1.c49f8ap-41 }, ++ { 0x1.6927c2p-45, 0x1.62d5aap-41 }, ++ { 0x1.1a6ed6p-45, 0x1.16098ep-41 }, ++ { 0x1.b986acp-46, 0x1.b3828ep-42 }, ++ { 0x1.58f35ap-46, 0x1.54eb3ep-42 }, ++ { 0x1.0d5e6p-46, 0x1.0abe0ep-42 }, ++ { 0x1.a47db6p-47, 0x1.a134d4p-43 }, ++ { 0x1.480a18p-47, 0x1.461cdap-43 }, ++ { 0x1.ff94e4p-48, 0x1.fd9182p-44 }, ++ { 0x1.8eb738p-48, 0x1.8deb62p-44 }, ++ { 0x1.369994p-48, 0x1.3694e8p-44 }, ++ { 0x1.e3ae4ap-49, 0x1.e49706p-45 }, ++ { 0x1.786c3ep-49, 0x1.79dc28p-45 }, ++ { 0x1.24cec8p-49, 0x1.267e46p-45 }, ++ { 0x1.c74fc4p-50, 0x1.cad0bp-46 }, ++ { 0x1.61d46cp-50, 0x1.653d08p-46 }, ++ { 0x1.12d55cp-50, 0x1.16038cp-46 }, ++ { 0x1.aabdacp-51, 0x1.b081aap-47 }, ++ { 0x1.4b252ep-51, 0x1.5042e2p-47 }, ++ { 0x1.00d6f8p-51, 0x1.054e44p-47 }, ++ { 0x1.8e38ep-52, 0x1.95eb2cp-48 }, ++ { 0x1.3490e8p-52, 0x1.3b20c6p-48 }, ++ { 0x1.ddf56ap-53, 0x1.e90cb6p-49 }, ++ { 0x1.71fdep-53, 0x1.7b4b76p-49 }, ++ { 0x1.1e465ap-53, 0x1.26072ap-49 }, ++ { 0x1.bac92ep-54, 0x1.c7a2ecp-50 }, ++ { 0x1.56441cp-54, 0x1.60dcfp-50 }, ++ { 0x1.08700cp-54, 0x1.112346p-50 }, ++ { 0x1.986a66p-55, 0x1.a6a50ap-51 }, ++ { 0x1.3b3d56p-55, 0x1.46d572p-51 }, ++ { 0x1.e667dap-56, 0x1.f93d0ep-52 }, ++ { 0x1.7712b8p-56, 0x1.86529ep-52 }, ++ { 0x1.211544p-56, 0x1.2d65aep-52 }, ++ { 0x1.bd660ap-57, 0x1.d13c32p-53 }, ++ { 0x1.56f3eep-57, 0x1.66e45ap-53 }, ++ { 0x1.07f14ap-57, 0x1.14b8b6p-53 }, ++ { 0x1.96129cp-58, 0x1.aa854cp-54 }, ++ { 0x1.3837cp-58, 0x1.488b94p-54 }, ++ { 0x1.dfe0c2p-59, 0x1.f9e772p-55 }, ++ { 0x1.709b5ap-59, 0x1.85503p-55 }, ++ { 0x1.1affd2p-59, 0x1.2b7218p-55 }, ++ { 0x1.b2564p-60, 0x1.cc6bb6p-56 }, ++ { 0x1.4d23fap-60, 0x1.61cb1ap-56 }, ++ { 0x1.fecbdp-61, 0x1.0fba0ep-56 }, ++ { 0x1.8767d8p-61, 0x1.a13072p-57 }, ++ { 0x1.2bc67ep-61, 0x1.401abcp-57 }, ++ { 0x1.caf846p-62, 0x1.eafc2cp-58 }, ++ { 0x1.5f2e7ap-62, 0x1.785cp-58 }, ++ { 0x1.0c93acp-62, 0x1.205a7ep-58 }, ++ { 0x1.9a9b06p-63, 0x1.b9a31ap-59 }, ++ { 0x1.39b7fcp-63, 0x1.520968p-59 }, ++ { 0x1.df277ap-64, 0x1.029ce6p-59 }, ++ { 0x1.6dbcdp-64, 0x1.8b81d6p-60 }, ++ { 0x1.17080ap-64, 0x1.2e48f2p-60 }, ++ { 0x1.a98e26p-65, 0x1.cdd86cp-61 }, ++ { 0x1.445a6ap-65, 0x1.60a47ap-61 }, ++ { 0x1.ee324ep-66, 0x1.0d210cp-61 }, ++ { 0x1.784e3p-66, 0x1.9a961ep-62 }, ++ { 0x1.1e65fep-66, 0x1.390b74p-62 }, ++ { 0x1.b3bb86p-67, 0x1.dd1e52p-63 }, ++ { 0x1.4b4e36p-67, 0x1.6b6a7ap-63 }, ++ { 0x1.f790f6p-68, 0x1.14acc2p-63 }, ++ { 0x1.7e82cep-68, 0x1.a511aap-64 }, ++ { 0x1.226a7ap-68, 0x1.404114p-64 }, ++ { 0x1.b8c634p-69, 0x1.e6ea96p-65 }, ++ { 0x1.4e53acp-69, 0x1.71f97ap-65 }, ++ { 0x1.faed5cp-70, 0x1.18fb2ep-65 }, ++ { 0x1.80217ep-70, 0x1.aa947ep-66 }, ++ { 0x1.22f066p-70, 0x1.43a796p-66 }, ++ { 0x1.b87f86p-71, 0x1.eae2fp-67 }, ++ { 0x1.4d4ec8p-71, 0x1.7414e6p-67 }, ++ { 0x1.f8283ep-72, 0x1.19e474p-67 }, ++ { 0x1.7d1b22p-72, 0x1.aaeb7ep-68 }, ++ { 0x1.1ff2dp-72, 0x1.431f66p-68 }, ++ { 0x1.b2e9e8p-73, 0x1.e8e272p-69 }, ++ { 0x1.4848dep-73, 0x1.71a91ep-69 }, ++ { 0x1.ef5b16p-74, 0x1.176014p-69 }, ++ { 0x1.758b92p-74, 0x1.a6137cp-70 }, ++ { 0x1.198d42p-74, 0x1.3ead74p-70 }, ++ { 0x1.a838bp-75, 0x1.e0fbc2p-71 }, ++ { 0x1.3f700cp-75, 0x1.6accaep-71 }, ++ { 0x1.e0d68ep-76, 0x1.118578p-71 }, ++ { 0x1.69b7f4p-76, 0x1.9c3974p-72 }, ++ { 0x1.0ffa12p-76, 0x1.367afap-72 }, ++ { 0x1.98cd1cp-77, 0x1.d377fap-73 }, ++ { 0x1.33148p-77, 0x1.5fbee6p-73 }, ++ { 0x1.cd1dbap-78, 0x1.088a8p-73 }, ++ { 0x1.5a0a9cp-78, 0x1.8db7ccp-74 }, ++ { 0x1.038ef4p-78, 0x1.2ad2ecp-74 }, ++ { 0x1.85308ap-79, 0x1.c0d23ep-75 }, ++ { 0x1.23a3cp-79, 0x1.50e41ap-75 }, ++ { 0x1.b4de68p-80, 0x1.f980a8p-76 }, ++ { 0x1.470ce4p-80, 0x1.7b10fep-76 }, ++ { 0x1.e9700cp-81, 0x1.1c1d98p-76 }, ++ { 0x1.6e0c9p-81, 0x1.a9b08p-77 }, ++ { 0x1.11a25ap-81, 0x1.3ebfb4p-77 }, ++ { 0x1.98e73ap-82, 0x1.dd1d36p-78 }, ++ { 0x1.315f58p-82, 0x1.64e7fp-78 }, ++ { 0x1.c7e35cp-83, 0x1.0ada94p-78 }, ++ { 0x1.542176p-83, 0x1.8ed9e8p-79 }, ++ { 0x1.fb491ep-84, 0x1.29ecb2p-79 }, ++ { 0x1.7a1c34p-84, 0x1.bcdb34p-80 }, ++ { 0x1.19b0f2p-84, 0x1.4bf6cap-80 }, ++ { 0x1.a383cap-85, 0x1.ef3318p-81 }, ++ { 0x1.383bf2p-85, 0x1.712bc2p-81 }, ++ { 0x1.d08cdap-86, 0x1.13151p-81 }, ++ { 0x1.596adp-86, 0x1.99bf36p-82 }, ++ { 0x1.00b602p-86, 0x1.3104d6p-82 }, ++ { 0x1.7d62a2p-87, 0x1.c5e534p-83 }, ++ { 0x1.1b2abcp-87, 0x1.518db2p-83 }, ++ { 0x1.a4480ep-88, 0x1.f5d1c6p-84 }, ++ { 0x1.37be42p-88, 0x1.74d45ap-84 }, ++ { 0x1.ce3ee4p-89, 0x1.14dc4ap-84 }, ++ { 0x1.568986p-89, 0x1.9afd0ep-85 }, ++ { 0x1.fb69c6p-90, 0x1.30e632p-85 }, ++ { 0x1.77a47ep-90, 0x1.c42b48p-86 }, ++ { 0x1.15f4ep-90, 0x1.4f1f52p-86 }, ++ { 0x1.9b25dcp-91, 0x1.f08156p-87 }, ++ { 0x1.2feeeep-91, 0x1.6f9f62p-87 }, ++ { 0x1.c122bcp-92, 0x1.100ffap-87 }, ++ { 0x1.4bb154p-92, 0x1.927ce6p-88 }, ++ { 0x1.e9ae56p-93, 0x1.2992f4p-88 }, ++ { 0x1.6948e8p-93, 0x1.b7cccap-89 }, ++ { 0x1.0a6cd2p-93, 0x1.44d7c4p-89 }, ++ { 0x1.88c0cap-94, 0x1.dfa22p-90 }, ++ { 0x1.215988p-94, 0x1.61eb26p-90 }, ++ { 0x1.aa222ap-95, 0x1.0506e2p-90 }, ++ { 0x1.39a30ep-95, 0x1.80d828p-91 }, ++ { 0x1.cd740ep-96, 0x1.1b8f04p-91 }, ++ { 0x1.534d82p-96, 0x1.a1a7ecp-92 }, ++ { 0x1.f2bb06p-97, 0x1.336f3p-92 }, ++ { 0x1.6e5b34p-97, 0x1.c46172p-93 }, ++ { 0x1.0cfc82p-97, 0x1.4cab82p-93 }, ++ { 0x1.8acc82p-98, 0x1.e9094cp-94 }, ++ { 0x1.219686p-98, 0x1.67465p-94 }, ++ { 0x1.a89fa6p-99, 0x1.07d0b8p-94 }, ++ { 0x1.372982p-99, 0x1.833ffap-95 }, ++ { 0x1.c7d094p-100, 0x1.1c147ap-95 }, ++ { 0x1.4db1c8p-100, 0x1.a096ccp-96 }, ++ { 0x1.e858d8p-101, 0x1.314decp-96 }, ++ { 0x1.6529ep-101, 0x1.bf46cep-97 }, ++ { 0x1.0517bap-101, 0x1.47796ap-97 }, ++ { 0x1.7d8a8p-102, 0x1.df49a2p-98 }, ++ { 0x1.16a46p-102, 0x1.5e9198p-98 }, ++ { 0x1.96ca76p-103, 0x1.004b34p-98 }, ++ { 0x1.28cb2cp-103, 0x1.768f3ep-99 }, ++ { 0x1.b0de98p-104, 0x1.1190d2p-99 }, ++ }, ++ }; +diff --git a/sysdeps/aarch64/fpu/erfcf_sve.c b/sysdeps/aarch64/fpu/erfcf_sve.c +new file mode 100644 +index 0000000000000000..48d1677eb4e0b677 +--- /dev/null ++++ b/sysdeps/aarch64/fpu/erfcf_sve.c +@@ -0,0 +1,113 @@ ++/* Single-precision vector (SVE) erfc function ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "sv_math.h" ++ ++static const struct data ++{ ++ uint32_t off_idx, off_arr; ++ float max, shift; ++ float third, two_thirds, two_over_fifteen, two_over_five, tenth; ++} data = { ++ /* Set an offset so the range of the index used for lookup is 644, and it can ++ be clamped using a saturated add. */ ++ .off_idx = 0xb7fffd7b, /* 0xffffffff - asuint(shift) - 644. */ ++ .off_arr = 0xfffffd7b, /* 0xffffffff - 644. */ ++ .max = 10.0625f, /* 644/64. */ ++ .shift = 0x1p17f, ++ .third = 0x1.555556p-2f, ++ .two_thirds = 0x1.555556p-1f, ++ .two_over_fifteen = 0x1.111112p-3f, ++ .two_over_five = -0x1.99999ap-2f, ++ .tenth = -0x1.99999ap-4f, ++}; ++ ++#define SignMask 0x80000000 ++#define TableScale 0x28000000 /* 0x1p-47. */ ++ ++/* Optimized single-precision vector erfcf(x). ++ Approximation based on series expansion near x rounded to ++ nearest multiple of 1/64. ++ Let d = x - r, and scale = 2 / sqrt(pi) * exp(-r^2). For x near r, ++ ++ erfc(x) ~ erfc(r) - scale * d * poly(r, d), with ++ ++ poly(r, d) = 1 - r d + (2/3 r^2 - 1/3) d^2 - r (1/3 r^2 - 1/2) d^3 ++ + (2/15 r^4 - 2/5 r^2 + 1/10) d^4 ++ ++ Values of erfc(r) and scale are read from lookup tables. Stored values ++ are scaled to avoid hitting the subnormal range. ++ ++ Note that for x < 0, erfc(x) = 2.0 - erfc(-x). ++ ++ Maximum error: 1.63 ULP (~1.0 ULP for x < 0.0). ++ _ZGVsMxv_erfcf(0x1.1dbf7ap+3) got 0x1.f51212p-120 ++ want 0x1.f51216p-120. */ ++svfloat32_t SV_NAME_F1 (erfc) (svfloat32_t x, const svbool_t pg) ++{ ++ const struct data *dat = ptr_barrier (&data); ++ ++ svfloat32_t a = svabs_x (pg, x); ++ ++ /* Clamp input at |x| <= 10.0 + 4/64. */ ++ a = svmin_x (pg, a, dat->max); ++ ++ /* Reduce x to the nearest multiple of 1/64. */ ++ svfloat32_t shift = sv_f32 (dat->shift); ++ svfloat32_t z = svadd_x (pg, a, shift); ++ ++ /* Saturate index for the NaN case. */ ++ svuint32_t i = svqadd (svreinterpret_u32 (z), dat->off_idx); ++ ++ /* Lookup erfc(r) and 2/sqrt(pi)*exp(-r^2) in tables. */ ++ i = svmul_x (pg, i, 2); ++ const float32_t *p = &__erfcf_data.tab[0].erfc - 2 * dat->off_arr; ++ svfloat32_t erfcr = svld1_gather_index (pg, p, i); ++ svfloat32_t scale = svld1_gather_index (pg, p + 1, i); ++ ++ /* erfc(x) ~ erfc(r) - scale * d * poly(r, d). */ ++ svfloat32_t r = svsub_x (pg, z, shift); ++ svfloat32_t d = svsub_x (pg, a, r); ++ svfloat32_t d2 = svmul_x (pg, d, d); ++ svfloat32_t r2 = svmul_x (pg, r, r); ++ ++ svfloat32_t coeffs = svld1rq (svptrue_b32 (), &dat->third); ++ svfloat32_t third = svdup_lane (coeffs, 0); ++ ++ svfloat32_t p1 = r; ++ svfloat32_t p2 = svmls_lane (third, r2, coeffs, 1); ++ svfloat32_t p3 = svmul_x (pg, r, svmla_lane (sv_f32 (-0.5), r2, coeffs, 0)); ++ svfloat32_t p4 = svmla_lane (sv_f32 (dat->two_over_five), r2, coeffs, 2); ++ p4 = svmls_x (pg, sv_f32 (dat->tenth), r2, p4); ++ ++ svfloat32_t y = svmla_x (pg, p3, d, p4); ++ y = svmla_x (pg, p2, d, y); ++ y = svmla_x (pg, p1, d, y); ++ ++ /* Solves the |x| = inf/nan case. */ ++ y = svmls_x (pg, erfcr, scale, svmls_x (pg, d, d2, y)); ++ ++ /* Offset equals 2.0f if sign, else 0.0f. */ ++ svuint32_t sign = svand_x (pg, svreinterpret_u32 (x), SignMask); ++ svfloat32_t off = svreinterpret_f32 (svlsr_x (pg, sign, 1)); ++ /* Handle sign and scale back in a single fma. */ ++ svfloat32_t fac = svreinterpret_f32 (svorr_x (pg, sign, TableScale)); ++ ++ return svmla_x (pg, off, fac, y); ++} +diff --git a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +index 7aeda880bd885ce5..f2d8714075ab99b8 100644 +--- a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +@@ -33,6 +33,7 @@ VPCS_VECTOR_WRAPPER_ff (atan2_advsimd, _ZGVnN2vv_atan2) + VPCS_VECTOR_WRAPPER (cos_advsimd, _ZGVnN2v_cos) + VPCS_VECTOR_WRAPPER (cosh_advsimd, _ZGVnN2v_cosh) + VPCS_VECTOR_WRAPPER (erf_advsimd, _ZGVnN2v_erf) ++VPCS_VECTOR_WRAPPER (erfc_advsimd, _ZGVnN2v_erfc) + VPCS_VECTOR_WRAPPER (exp_advsimd, _ZGVnN2v_exp) + VPCS_VECTOR_WRAPPER (exp10_advsimd, _ZGVnN2v_exp10) + VPCS_VECTOR_WRAPPER (exp2_advsimd, _ZGVnN2v_exp2) +diff --git a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +index 95f1ec52221ba626..37873d5e432ae9e8 100644 +--- a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +@@ -52,6 +52,7 @@ SVE_VECTOR_WRAPPER_ff (atan2_sve, _ZGVsMxvv_atan2) + SVE_VECTOR_WRAPPER (cos_sve, _ZGVsMxv_cos) + SVE_VECTOR_WRAPPER (cosh_sve, _ZGVsMxv_cosh) + SVE_VECTOR_WRAPPER (erf_sve, _ZGVsMxv_erf) ++SVE_VECTOR_WRAPPER (erfc_sve, _ZGVsMxv_erfc) + SVE_VECTOR_WRAPPER (exp_sve, _ZGVsMxv_exp) + SVE_VECTOR_WRAPPER (exp10_sve, _ZGVsMxv_exp10) + SVE_VECTOR_WRAPPER (exp2_sve, _ZGVsMxv_exp2) +diff --git a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +index bd6800e91c64136f..08e33115b9dc6f5e 100644 +--- a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +@@ -33,6 +33,7 @@ VPCS_VECTOR_WRAPPER_ff (atan2f_advsimd, _ZGVnN4vv_atan2f) + VPCS_VECTOR_WRAPPER (cosf_advsimd, _ZGVnN4v_cosf) + VPCS_VECTOR_WRAPPER (coshf_advsimd, _ZGVnN4v_coshf) + VPCS_VECTOR_WRAPPER (erff_advsimd, _ZGVnN4v_erff) ++VPCS_VECTOR_WRAPPER (erfcf_advsimd, _ZGVnN4v_erfcf) + VPCS_VECTOR_WRAPPER (expf_advsimd, _ZGVnN4v_expf) + VPCS_VECTOR_WRAPPER (exp10f_advsimd, _ZGVnN4v_exp10f) + VPCS_VECTOR_WRAPPER (exp2f_advsimd, _ZGVnN4v_exp2f) +diff --git a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +index 35ca305fddb7366c..025daa662efd6f7f 100644 +--- a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c ++++ b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +@@ -52,6 +52,7 @@ SVE_VECTOR_WRAPPER_ff (atan2f_sve, _ZGVsMxvv_atan2f) + SVE_VECTOR_WRAPPER (cosf_sve, _ZGVsMxv_cosf) + SVE_VECTOR_WRAPPER (coshf_sve, _ZGVsMxv_coshf) + SVE_VECTOR_WRAPPER (erff_sve, _ZGVsMxv_erff) ++SVE_VECTOR_WRAPPER (erfcf_sve, _ZGVsMxv_erfcf) + SVE_VECTOR_WRAPPER (expf_sve, _ZGVsMxv_expf) + SVE_VECTOR_WRAPPER (exp10f_sve, _ZGVsMxv_exp10f) + SVE_VECTOR_WRAPPER (exp2f_sve, _ZGVsMxv_exp2f) +diff --git a/sysdeps/aarch64/fpu/vecmath_config.h b/sysdeps/aarch64/fpu/vecmath_config.h +index 3f0b5f476433ca06..c8cfc03bc0b949e9 100644 +--- a/sysdeps/aarch64/fpu/vecmath_config.h ++++ b/sysdeps/aarch64/fpu/vecmath_config.h +@@ -114,4 +114,20 @@ extern const struct sv_erf_data + double scale[769]; + } __sv_erf_data attribute_hidden; + ++extern const struct erfc_data ++{ ++ struct ++ { ++ double erfc, scale; ++ } tab[3488]; ++} __erfc_data attribute_hidden; ++ ++extern const struct erfcf_data ++{ ++ struct ++ { ++ float erfc, scale; ++ } tab[645]; ++} __erfcf_data attribute_hidden; ++ + #endif +diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps +index 8398b7bc7749808d..055da83d639a2430 100644 +--- a/sysdeps/aarch64/libm-test-ulps ++++ b/sysdeps/aarch64/libm-test-ulps +@@ -1017,11 +1017,19 @@ double: 2 + float: 2 + ldouble: 4 + ++Function: "erfc_advsimd": ++double: 1 ++float: 1 ++ + Function: "erfc_downward": + double: 4 + float: 4 + ldouble: 5 + ++Function: "erfc_sve": ++double: 1 ++float: 1 ++ + Function: "erfc_towardzero": + double: 3 + float: 3 +diff --git a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +index 396082f6a7981686..26c3fbf18b2f12a9 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist ++++ b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +@@ -82,6 +82,8 @@ GLIBC_2.40 _ZGVnN2v_atanhf F + GLIBC_2.40 _ZGVnN2v_cosh F + GLIBC_2.40 _ZGVnN2v_coshf F + GLIBC_2.40 _ZGVnN2v_erf F ++GLIBC_2.40 _ZGVnN2v_erfc F ++GLIBC_2.40 _ZGVnN2v_erfcf F + GLIBC_2.40 _ZGVnN2v_erff F + GLIBC_2.40 _ZGVnN2v_sinh F + GLIBC_2.40 _ZGVnN2v_sinhf F +@@ -91,6 +93,7 @@ GLIBC_2.40 _ZGVnN4v_acoshf F + GLIBC_2.40 _ZGVnN4v_asinhf F + GLIBC_2.40 _ZGVnN4v_atanhf F + GLIBC_2.40 _ZGVnN4v_coshf F ++GLIBC_2.40 _ZGVnN4v_erfcf F + GLIBC_2.40 _ZGVnN4v_erff F + GLIBC_2.40 _ZGVnN4v_sinhf F + GLIBC_2.40 _ZGVnN4v_tanhf F +@@ -103,6 +106,8 @@ GLIBC_2.40 _ZGVsMxv_atanhf F + GLIBC_2.40 _ZGVsMxv_cosh F + GLIBC_2.40 _ZGVsMxv_coshf F + GLIBC_2.40 _ZGVsMxv_erf F ++GLIBC_2.40 _ZGVsMxv_erfc F ++GLIBC_2.40 _ZGVsMxv_erfcf F + GLIBC_2.40 _ZGVsMxv_erff F + GLIBC_2.40 _ZGVsMxv_sinh F + GLIBC_2.40 _ZGVsMxv_sinhf F diff --git a/glibc-RHEL-118273-9.patch b/glibc-RHEL-118273-9.patch new file mode 100644 index 0000000..bd36048 --- /dev/null +++ b/glibc-RHEL-118273-9.patch @@ -0,0 +1,348 @@ +commit 90a6ca8b28bf34e361e577e526e1b0f4c39a32a5 +Author: Joe Ramsay +Date: Thu May 2 16:43:13 2024 +0100 + + aarch64: Fix AdvSIMD libmvec routines for big-endian + + Previously many routines used * to load from vector types stored + in the data table. This is emitted as ldr, which byte-swaps the + entire vector register, and causes bugs for big-endian when not + all lanes contain the same value. When a vector is to be used + this way, it has been replaced with an array and the load with an + explicit ld1 intrinsic, which byte-swaps only within lanes. + + As well, many routines previously used non-standard GCC syntax + for vector operations such as indexing into vectors types with [] + and assembling vectors using {}. This syntax should not be mixed + with ACLE, as the former does not respect endianness whereas the + latter does. Such examples have been replaced with, for instance, + vcombine_* and vgetq_lane* intrinsics. Helpers which only use the + GCC syntax, such as the v_call helpers, do not need changing as + they do not use intrinsics. + + Reviewed-by: Szabolcs Nagy + +Conflicts: + sysdeps/aarch64/fpu/exp10f_advsimd.c + sysdeps/aarch64/fpu/expm1_advsimd.c + sysdeps/aarch64/fpu/expm1f_advsimd.c + sysdeps/aarch64/fpu/log10_advsimd.c + sysdeps/aarch64/fpu/log2_advsimd.c + sysdeps/aarch64/fpu/log_advsimd.c + sysdeps/aarch64/fpu/tan_advsimd.c + sysdeps/aarch64/fpu/tanf_advsimd.c + (Already backported by glibc-upstream-2.39-151.patch) + +diff --git a/sysdeps/aarch64/fpu/asinh_advsimd.c b/sysdeps/aarch64/fpu/asinh_advsimd.c +index 544a52f6515d3201..6207e7da9531f48d 100644 +--- a/sysdeps/aarch64/fpu/asinh_advsimd.c ++++ b/sysdeps/aarch64/fpu/asinh_advsimd.c +@@ -22,6 +22,7 @@ + + #define A(i) v_f64 (__v_log_data.poly[i]) + #define N (1 << V_LOG_TABLE_BITS) ++#define IndexMask (N - 1) + + const static struct data + { +@@ -63,11 +64,15 @@ struct entry + static inline struct entry + lookup (uint64x2_t i) + { +- float64x2_t e0 = vld1q_f64 ( +- &__v_log_data.table[(i[0] >> (52 - V_LOG_TABLE_BITS)) & (N - 1)].invc); +- float64x2_t e1 = vld1q_f64 ( +- &__v_log_data.table[(i[1] >> (52 - V_LOG_TABLE_BITS)) & (N - 1)].invc); +- return (struct entry){ vuzp1q_f64 (e0, e1), vuzp2q_f64 (e0, e1) }; ++ /* Since N is a power of 2, n % N = n & (N - 1). */ ++ struct entry e; ++ uint64_t i0 = (vgetq_lane_u64 (i, 0) >> (52 - V_LOG_TABLE_BITS)) & IndexMask; ++ uint64_t i1 = (vgetq_lane_u64 (i, 1) >> (52 - V_LOG_TABLE_BITS)) & IndexMask; ++ float64x2_t e0 = vld1q_f64 (&__v_log_data.table[i0].invc); ++ float64x2_t e1 = vld1q_f64 (&__v_log_data.table[i1].invc); ++ e.invc = vuzp1q_f64 (e0, e1); ++ e.logc = vuzp2q_f64 (e0, e1); ++ return e; + } + + static inline float64x2_t +diff --git a/sysdeps/aarch64/fpu/cosh_advsimd.c b/sysdeps/aarch64/fpu/cosh_advsimd.c +index ec7b59637e973da9..4bee734f00bd6a9b 100644 +--- a/sysdeps/aarch64/fpu/cosh_advsimd.c ++++ b/sysdeps/aarch64/fpu/cosh_advsimd.c +@@ -22,7 +22,9 @@ + static const struct data + { + float64x2_t poly[3]; +- float64x2_t inv_ln2, ln2, shift, thres; ++ float64x2_t inv_ln2; ++ double ln2[2]; ++ float64x2_t shift, thres; + uint64x2_t index_mask, special_bound; + } data = { + .poly = { V2 (0x1.fffffffffffd4p-2), V2 (0x1.5555571d6b68cp-3), +@@ -58,8 +60,9 @@ exp_inline (float64x2_t x) + float64x2_t n = vsubq_f64 (z, d->shift); + + /* r = x - n*ln2/N. */ +- float64x2_t r = vfmaq_laneq_f64 (x, n, d->ln2, 0); +- r = vfmaq_laneq_f64 (r, n, d->ln2, 1); ++ float64x2_t ln2 = vld1q_f64 (d->ln2); ++ float64x2_t r = vfmaq_laneq_f64 (x, n, ln2, 0); ++ r = vfmaq_laneq_f64 (r, n, ln2, 1); + + uint64x2_t e = vshlq_n_u64 (u, 52 - V_EXP_TAIL_TABLE_BITS); + uint64x2_t i = vandq_u64 (u, d->index_mask); +diff --git a/sysdeps/aarch64/fpu/erf_advsimd.c b/sysdeps/aarch64/fpu/erf_advsimd.c +index 3e70cbc025248a05..19cbb7d0f42eb4e2 100644 +--- a/sysdeps/aarch64/fpu/erf_advsimd.c ++++ b/sysdeps/aarch64/fpu/erf_advsimd.c +@@ -56,8 +56,8 @@ static inline struct entry + lookup (uint64x2_t i) + { + struct entry e; +- float64x2_t e1 = vld1q_f64 ((float64_t *) (__erf_data.tab + i[0])), +- e2 = vld1q_f64 ((float64_t *) (__erf_data.tab + i[1])); ++ float64x2_t e1 = vld1q_f64 (&__erf_data.tab[vgetq_lane_u64 (i, 0)].erf), ++ e2 = vld1q_f64 (&__erf_data.tab[vgetq_lane_u64 (i, 1)].erf); + e.erf = vuzp1q_f64 (e1, e2); + e.scale = vuzp2q_f64 (e1, e2); + return e; +diff --git a/sysdeps/aarch64/fpu/erfc_advsimd.c b/sysdeps/aarch64/fpu/erfc_advsimd.c +index 548f21a3d68d68d2..f1b3bfe8304c73b5 100644 +--- a/sysdeps/aarch64/fpu/erfc_advsimd.c ++++ b/sysdeps/aarch64/fpu/erfc_advsimd.c +@@ -26,7 +26,7 @@ static const struct data + float64x2_t max, shift; + float64x2_t p20, p40, p41, p42; + float64x2_t p51, p52; +- float64x2_t qr5, qr6, qr7, qr8, qr9; ++ double qr5[2], qr6[2], qr7[2], qr8[2], qr9[2]; + #if WANT_SIMD_EXCEPT + float64x2_t uflow_bound; + #endif +@@ -68,8 +68,10 @@ static inline struct entry + lookup (uint64x2_t i) + { + struct entry e; +- float64x2_t e1 = vld1q_f64 ((float64_t *) (__erfc_data.tab - Off + i[0])), +- e2 = vld1q_f64 ((float64_t *) (__erfc_data.tab - Off + i[1])); ++ float64x2_t e1 ++ = vld1q_f64 (&__erfc_data.tab[vgetq_lane_u64 (i, 0) - Off].erfc); ++ float64x2_t e2 ++ = vld1q_f64 (&__erfc_data.tab[vgetq_lane_u64 (i, 1) - Off].erfc); + e.erfc = vuzp1q_f64 (e1, e2); + e.scale = vuzp2q_f64 (e1, e2); + return e; +@@ -161,16 +163,19 @@ float64x2_t V_NAME_D1 (erfc) (float64x2_t x) + p5 = vmulq_f64 (r, vfmaq_f64 (vmulq_f64 (v_f64 (0.5), dat->p20), r2, p5)); + /* Compute p_i using recurrence relation: + p_{i+2} = (p_i + r * Q_{i+1} * p_{i+1}) * R_{i+1}. */ +- float64x2_t p6 = vfmaq_f64 (p4, p5, vmulq_laneq_f64 (r, dat->qr5, 0)); +- p6 = vmulq_laneq_f64 (p6, dat->qr5, 1); +- float64x2_t p7 = vfmaq_f64 (p5, p6, vmulq_laneq_f64 (r, dat->qr6, 0)); +- p7 = vmulq_laneq_f64 (p7, dat->qr6, 1); +- float64x2_t p8 = vfmaq_f64 (p6, p7, vmulq_laneq_f64 (r, dat->qr7, 0)); +- p8 = vmulq_laneq_f64 (p8, dat->qr7, 1); +- float64x2_t p9 = vfmaq_f64 (p7, p8, vmulq_laneq_f64 (r, dat->qr8, 0)); +- p9 = vmulq_laneq_f64 (p9, dat->qr8, 1); +- float64x2_t p10 = vfmaq_f64 (p8, p9, vmulq_laneq_f64 (r, dat->qr9, 0)); +- p10 = vmulq_laneq_f64 (p10, dat->qr9, 1); ++ float64x2_t qr5 = vld1q_f64 (dat->qr5), qr6 = vld1q_f64 (dat->qr6), ++ qr7 = vld1q_f64 (dat->qr7), qr8 = vld1q_f64 (dat->qr8), ++ qr9 = vld1q_f64 (dat->qr9); ++ float64x2_t p6 = vfmaq_f64 (p4, p5, vmulq_laneq_f64 (r, qr5, 0)); ++ p6 = vmulq_laneq_f64 (p6, qr5, 1); ++ float64x2_t p7 = vfmaq_f64 (p5, p6, vmulq_laneq_f64 (r, qr6, 0)); ++ p7 = vmulq_laneq_f64 (p7, qr6, 1); ++ float64x2_t p8 = vfmaq_f64 (p6, p7, vmulq_laneq_f64 (r, qr7, 0)); ++ p8 = vmulq_laneq_f64 (p8, qr7, 1); ++ float64x2_t p9 = vfmaq_f64 (p7, p8, vmulq_laneq_f64 (r, qr8, 0)); ++ p9 = vmulq_laneq_f64 (p9, qr8, 1); ++ float64x2_t p10 = vfmaq_f64 (p8, p9, vmulq_laneq_f64 (r, qr9, 0)); ++ p10 = vmulq_laneq_f64 (p10, qr9, 1); + /* Compute polynomial in d using pairwise Horner scheme. */ + float64x2_t p90 = vfmaq_f64 (p9, d, p10); + float64x2_t p78 = vfmaq_f64 (p7, d, p8); +diff --git a/sysdeps/aarch64/fpu/erfcf_advsimd.c b/sysdeps/aarch64/fpu/erfcf_advsimd.c +index 30b9e48dd40d80a0..ca5bc3ab33c92f83 100644 +--- a/sysdeps/aarch64/fpu/erfcf_advsimd.c ++++ b/sysdeps/aarch64/fpu/erfcf_advsimd.c +@@ -23,7 +23,8 @@ static const struct data + { + uint32x4_t offset, table_scale; + float32x4_t max, shift; +- float32x4_t coeffs, third, two_over_five, tenth; ++ float coeffs[4]; ++ float32x4_t third, two_over_five, tenth; + #if WANT_SIMD_EXCEPT + float32x4_t uflow_bound; + #endif +@@ -37,7 +38,7 @@ static const struct data + .shift = V4 (0x1p17f), + /* Store 1/3, 2/3 and 2/15 in a single register for use with indexed muls and + fmas. */ +- .coeffs = (float32x4_t){ 0x1.555556p-2f, 0x1.555556p-1f, 0x1.111112p-3f, 0 }, ++ .coeffs = { 0x1.555556p-2f, 0x1.555556p-1f, 0x1.111112p-3f, 0 }, + .third = V4 (0x1.555556p-2f), + .two_over_five = V4 (-0x1.99999ap-2f), + .tenth = V4 (-0x1.99999ap-4f), +@@ -60,12 +61,16 @@ static inline struct entry + lookup (uint32x4_t i) + { + struct entry e; +- float64_t t0 = *((float64_t *) (__erfcf_data.tab - Off + i[0])); +- float64_t t1 = *((float64_t *) (__erfcf_data.tab - Off + i[1])); +- float64_t t2 = *((float64_t *) (__erfcf_data.tab - Off + i[2])); +- float64_t t3 = *((float64_t *) (__erfcf_data.tab - Off + i[3])); +- float32x4_t e1 = vreinterpretq_f32_f64 ((float64x2_t){ t0, t1 }); +- float32x4_t e2 = vreinterpretq_f32_f64 ((float64x2_t){ t2, t3 }); ++ float32x2_t t0 ++ = vld1_f32 (&__erfcf_data.tab[vgetq_lane_u32 (i, 0) - Off].erfc); ++ float32x2_t t1 ++ = vld1_f32 (&__erfcf_data.tab[vgetq_lane_u32 (i, 1) - Off].erfc); ++ float32x2_t t2 ++ = vld1_f32 (&__erfcf_data.tab[vgetq_lane_u32 (i, 2) - Off].erfc); ++ float32x2_t t3 ++ = vld1_f32 (&__erfcf_data.tab[vgetq_lane_u32 (i, 3) - Off].erfc); ++ float32x4_t e1 = vcombine_f32 (t0, t1); ++ float32x4_t e2 = vcombine_f32 (t2, t3); + e.erfc = vuzp1q_f32 (e1, e2); + e.scale = vuzp2q_f32 (e1, e2); + return e; +@@ -140,10 +145,11 @@ float32x4_t NOINLINE V_NAME_F1 (erfc) (float32x4_t x) + float32x4_t r2 = vmulq_f32 (r, r); + + float32x4_t p1 = r; +- float32x4_t p2 = vfmsq_laneq_f32 (dat->third, r2, dat->coeffs, 1); ++ float32x4_t coeffs = vld1q_f32 (dat->coeffs); ++ float32x4_t p2 = vfmsq_laneq_f32 (dat->third, r2, coeffs, 1); + float32x4_t p3 +- = vmulq_f32 (r, vfmaq_laneq_f32 (v_f32 (-0.5), r2, dat->coeffs, 0)); +- float32x4_t p4 = vfmaq_laneq_f32 (dat->two_over_five, r2, dat->coeffs, 2); ++ = vmulq_f32 (r, vfmaq_laneq_f32 (v_f32 (-0.5), r2, coeffs, 0)); ++ float32x4_t p4 = vfmaq_laneq_f32 (dat->two_over_five, r2, coeffs, 2); + p4 = vfmsq_f32 (dat->tenth, r2, p4); + + float32x4_t y = vfmaq_f32 (p3, d, p4); +diff --git a/sysdeps/aarch64/fpu/erff_advsimd.c b/sysdeps/aarch64/fpu/erff_advsimd.c +index c44644a71cffbb62..f2fe6ff236a6ec07 100644 +--- a/sysdeps/aarch64/fpu/erff_advsimd.c ++++ b/sysdeps/aarch64/fpu/erff_advsimd.c +@@ -47,12 +47,12 @@ static inline struct entry + lookup (uint32x4_t i) + { + struct entry e; +- float64_t t0 = *((float64_t *) (__erff_data.tab + i[0])); +- float64_t t1 = *((float64_t *) (__erff_data.tab + i[1])); +- float64_t t2 = *((float64_t *) (__erff_data.tab + i[2])); +- float64_t t3 = *((float64_t *) (__erff_data.tab + i[3])); +- float32x4_t e1 = vreinterpretq_f32_f64 ((float64x2_t){ t0, t1 }); +- float32x4_t e2 = vreinterpretq_f32_f64 ((float64x2_t){ t2, t3 }); ++ float32x2_t t0 = vld1_f32 (&__erff_data.tab[vgetq_lane_u32 (i, 0)].erf); ++ float32x2_t t1 = vld1_f32 (&__erff_data.tab[vgetq_lane_u32 (i, 1)].erf); ++ float32x2_t t2 = vld1_f32 (&__erff_data.tab[vgetq_lane_u32 (i, 2)].erf); ++ float32x2_t t3 = vld1_f32 (&__erff_data.tab[vgetq_lane_u32 (i, 3)].erf); ++ float32x4_t e1 = vcombine_f32 (t0, t1); ++ float32x4_t e2 = vcombine_f32 (t2, t3); + e.erf = vuzp1q_f32 (e1, e2); + e.scale = vuzp2q_f32 (e1, e2); + return e; +diff --git a/sysdeps/aarch64/fpu/sinh_advsimd.c b/sysdeps/aarch64/fpu/sinh_advsimd.c +index fa3723b10c15eb29..3e3b76c502b01e16 100644 +--- a/sysdeps/aarch64/fpu/sinh_advsimd.c ++++ b/sysdeps/aarch64/fpu/sinh_advsimd.c +@@ -22,8 +22,9 @@ + + static const struct data + { +- float64x2_t poly[11]; +- float64x2_t inv_ln2, m_ln2, shift; ++ float64x2_t poly[11], inv_ln2; ++ double m_ln2[2]; ++ float64x2_t shift; + uint64x2_t halff; + int64x2_t onef; + #if WANT_SIMD_EXCEPT +@@ -40,7 +41,7 @@ static const struct data + V2 (0x1.af5eedae67435p-26), V2 (0x1.1f143d060a28ap-29), }, + + .inv_ln2 = V2 (0x1.71547652b82fep0), +- .m_ln2 = (float64x2_t) {-0x1.62e42fefa39efp-1, -0x1.abc9e3b39803fp-56}, ++ .m_ln2 = {-0x1.62e42fefa39efp-1, -0x1.abc9e3b39803fp-56}, + .shift = V2 (0x1.8p52), + + .halff = V2 (0x3fe0000000000000), +@@ -67,8 +68,10 @@ expm1_inline (float64x2_t x) + and f = x - i * ln2 (f in [-ln2/2, ln2/2]). */ + float64x2_t j = vsubq_f64 (vfmaq_f64 (d->shift, d->inv_ln2, x), d->shift); + int64x2_t i = vcvtq_s64_f64 (j); +- float64x2_t f = vfmaq_laneq_f64 (x, j, d->m_ln2, 0); +- f = vfmaq_laneq_f64 (f, j, d->m_ln2, 1); ++ ++ float64x2_t m_ln2 = vld1q_f64 (d->m_ln2); ++ float64x2_t f = vfmaq_laneq_f64 (x, j, m_ln2, 0); ++ f = vfmaq_laneq_f64 (f, j, m_ln2, 1); + /* Approximate expm1(f) using polynomial. */ + float64x2_t f2 = vmulq_f64 (f, f); + float64x2_t f4 = vmulq_f64 (f2, f2); +diff --git a/sysdeps/aarch64/fpu/v_expf_inline.h b/sysdeps/aarch64/fpu/v_expf_inline.h +index a3b0e32f9eb42021..08b06e0a6b34b4f4 100644 +--- a/sysdeps/aarch64/fpu/v_expf_inline.h ++++ b/sysdeps/aarch64/fpu/v_expf_inline.h +@@ -25,7 +25,8 @@ + struct v_expf_data + { + float32x4_t poly[5]; +- float32x4_t shift, invln2_and_ln2; ++ float32x4_t shift; ++ float invln2_and_ln2[4]; + }; + + /* maxerr: 1.45358 +0.5 ulp. */ +@@ -50,10 +51,11 @@ v_expf_inline (float32x4_t x, const struct v_expf_data *d) + /* exp(x) = 2^n (1 + poly(r)), with 1 + poly(r) in [1/sqrt(2),sqrt(2)] + x = ln2*n + r, with r in [-ln2/2, ln2/2]. */ + float32x4_t n, r, z; +- z = vfmaq_laneq_f32 (d->shift, x, d->invln2_and_ln2, 0); ++ float32x4_t invln2_and_ln2 = vld1q_f32 (d->invln2_and_ln2); ++ z = vfmaq_laneq_f32 (d->shift, x, invln2_and_ln2, 0); + n = vsubq_f32 (z, d->shift); +- r = vfmsq_laneq_f32 (x, n, d->invln2_and_ln2, 1); +- r = vfmsq_laneq_f32 (r, n, d->invln2_and_ln2, 2); ++ r = vfmsq_laneq_f32 (x, n, invln2_and_ln2, 1); ++ r = vfmsq_laneq_f32 (r, n, invln2_and_ln2, 2); + uint32x4_t e = vshlq_n_u32 (vreinterpretq_u32_f32 (z), 23); + float32x4_t scale = vreinterpretq_f32_u32 (vaddq_u32 (e, ExponentBias)); + +diff --git a/sysdeps/aarch64/fpu/v_expm1f_inline.h b/sysdeps/aarch64/fpu/v_expm1f_inline.h +index 337ccfbfab555c97..59b552da6b74785e 100644 +--- a/sysdeps/aarch64/fpu/v_expm1f_inline.h ++++ b/sysdeps/aarch64/fpu/v_expm1f_inline.h +@@ -26,7 +26,8 @@ + struct v_expm1f_data + { + float32x4_t poly[5]; +- float32x4_t invln2_and_ln2, shift; ++ float invln2_and_ln2[4]; ++ float32x4_t shift; + int32x4_t exponent_bias; + }; + +@@ -49,11 +50,12 @@ expm1f_inline (float32x4_t x, const struct v_expm1f_data *d) + calling routine should handle special values if required. */ + + /* Reduce argument: f in [-ln2/2, ln2/2], i is exact. */ +- float32x4_t j = vsubq_f32 ( +- vfmaq_laneq_f32 (d->shift, x, d->invln2_and_ln2, 0), d->shift); ++ float32x4_t invln2_and_ln2 = vld1q_f32 (d->invln2_and_ln2); ++ float32x4_t j ++ = vsubq_f32 (vfmaq_laneq_f32 (d->shift, x, invln2_and_ln2, 0), d->shift); + int32x4_t i = vcvtq_s32_f32 (j); +- float32x4_t f = vfmsq_laneq_f32 (x, j, d->invln2_and_ln2, 1); +- f = vfmsq_laneq_f32 (f, j, d->invln2_and_ln2, 2); ++ float32x4_t f = vfmsq_laneq_f32 (x, j, invln2_and_ln2, 1); ++ f = vfmsq_laneq_f32 (f, j, invln2_and_ln2, 2); + + /* Approximate expm1(f) with polynomial P, expm1(f) ~= f + f^2 * P(f). + Uses Estrin scheme, where the main _ZGVnN4v_expm1f routine uses diff --git a/glibc-RHEL-119386-1.patch b/glibc-RHEL-119386-1.patch new file mode 100644 index 0000000..359be3f --- /dev/null +++ b/glibc-RHEL-119386-1.patch @@ -0,0 +1,70 @@ +commit 255df9299f544ad9e027e0c8d6b65b0635c59f8c +Author: Samuel Dobron +Date: Thu Jul 11 05:31:11 2024 +0200 + + time/Makefile: Split and sort tests + + Reviewed-by: Adhemerval Zanella + +diff --git a/time/Makefile b/time/Makefile +index 5b541fb9d3be1c28..059d85c151401587 100644 +--- a/time/Makefile ++++ b/time/Makefile +@@ -42,15 +42,48 @@ routines := offtime asctime clock ctime ctime_r difftime \ + + aux := era alt_digit lc-time-cleanup + +-tests := test_time clocktest tst-posixtz tst-strptime tst_wcsftime \ +- tst-getdate tst-mktime tst-mktime2 tst-ftime_l tst-strftime \ +- tst-mktime3 tst-strptime2 bug-asctime bug-asctime_r bug-mktime1 \ +- tst-strptime3 bug-getdate1 tst-strptime-whitespace tst-ftime \ +- tst-tzname tst-y2039 bug-mktime4 tst-strftime2 tst-strftime3 \ +- tst-clock tst-clock2 tst-clock_nanosleep tst-cpuclock1 \ +- tst-adjtime tst-ctime tst-difftime tst-mktime4 tst-clock_settime \ +- tst-settimeofday tst-itimer tst-gmtime tst-timegm \ +- tst-timespec_get tst-timespec_getres tst-strftime4 ++tests := \ ++ bug-asctime \ ++ bug-asctime_r \ ++ bug-getdate1 \ ++ bug-mktime1 \ ++ bug-mktime4 \ ++ clocktest \ ++ test_time \ ++ tst-adjtime \ ++ tst-clock \ ++ tst-clock2 \ ++ tst-clock_nanosleep \ ++ tst-clock_settime \ ++ tst-cpuclock1 \ ++ tst-ctime \ ++ tst-difftime \ ++ tst-ftime \ ++ tst-ftime_l \ ++ tst-getdate \ ++ tst-gmtime \ ++ tst-itimer \ ++ tst-mktime \ ++ tst-mktime2 \ ++ tst-mktime3 \ ++ tst-mktime4 \ ++ tst-posixtz \ ++ tst-settimeofday \ ++ tst-strftime \ ++ tst-strftime2 \ ++ tst-strftime3 \ ++ tst-strftime4 \ ++ tst-strptime \ ++ tst-strptime-whitespace \ ++ tst-strptime2 \ ++ tst-strptime3 \ ++ tst-timegm \ ++ tst-timespec_get \ ++ tst-timespec_getres \ ++ tst-tzname \ ++ tst-y2039 \ ++ tst_wcsftime \ ++ # tests + + tests-time64 := \ + tst-adjtime-time64 \ diff --git a/glibc-RHEL-119386-2.patch b/glibc-RHEL-119386-2.patch new file mode 100644 index 0000000..6c39662 --- /dev/null +++ b/glibc-RHEL-119386-2.patch @@ -0,0 +1,428 @@ +commit e5ea9aef5468404eecc8c990e6852315b7d1a0e3 +Author: Joseph Myers +Date: Wed Oct 30 16:48:38 2024 +0000 + + Add tests of time, gettimeofday, clock_gettime + + There are no tests specifically focused on the functions time, + gettimeofday and clock_gettime, although there are some incidental + uses in tests of other functions. Add tests specifically for these + three functions. + + Tested for x86_64 and x86. + +diff --git a/time/Makefile b/time/Makefile +index 059d85c151401587..b57963c1c6443770 100644 +--- a/time/Makefile ++++ b/time/Makefile +@@ -53,6 +53,7 @@ tests := \ + tst-adjtime \ + tst-clock \ + tst-clock2 \ ++ tst-clock_gettime \ + tst-clock_nanosleep \ + tst-clock_settime \ + tst-cpuclock1 \ +@@ -61,6 +62,7 @@ tests := \ + tst-ftime \ + tst-ftime_l \ + tst-getdate \ ++ tst-gettimeofday \ + tst-gmtime \ + tst-itimer \ + tst-mktime \ +@@ -77,6 +79,7 @@ tests := \ + tst-strptime-whitespace \ + tst-strptime2 \ + tst-strptime3 \ ++ tst-time \ + tst-timegm \ + tst-timespec_get \ + tst-timespec_getres \ +@@ -89,16 +92,19 @@ tests-time64 := \ + tst-adjtime-time64 \ + tst-clock-time64 \ + tst-clock2-time64 \ ++ tst-clock_gettime-time64 \ + tst-clock_nanosleep-time64 \ + tst-clock_settime-time64 \ + tst-cpuclock1-time64 \ + tst-ctime-time64 \ + tst-difftime-time64 \ ++ tst-gettimeofday-time64 \ + tst-gmtime-time64 \ + tst-itimer-time64 \ + tst-mktime4-time64 \ + tst-settimeofday-time64 \ + tst-strftime4-time64 \ ++ tst-time-time64 \ + tst-timegm-time64 \ + tst-timespec_get-time64 \ + tst-timespec_getres-time64 \ +diff --git a/time/tst-clock_gettime-time64.c b/time/tst-clock_gettime-time64.c +new file mode 100644 +index 0000000000000000..5b215d11f8a0a424 +--- /dev/null ++++ b/time/tst-clock_gettime-time64.c +@@ -0,0 +1 @@ ++#include "tst-clock_gettime.c" +diff --git a/time/tst-clock_gettime.c b/time/tst-clock_gettime.c +new file mode 100644 +index 0000000000000000..51f24c0be2084a91 +--- /dev/null ++++ b/time/tst-clock_gettime.c +@@ -0,0 +1,184 @@ ++/* Test clock_gettime function. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++/* Compare two struct timespec values, returning a value -1, 0 or 1. */ ++ ++int ++compare_timespec (const struct timespec *tv1, const struct timespec *tv2) ++{ ++ if (tv1->tv_sec < tv2->tv_sec) ++ return -1; ++ if (tv1->tv_sec > tv2->tv_sec) ++ return 1; ++ if (tv1->tv_nsec < tv2->tv_nsec) ++ return -1; ++ if (tv1->tv_nsec > tv2->tv_nsec) ++ return 1; ++ return 0; ++} ++ ++struct test_clockid ++{ ++ clockid_t clockid; ++ const char *name; ++ bool is_cputime; ++ bool fail_ok; ++}; ++ ++#define CLOCK(clockid) { clockid, # clockid, false, false } ++#define CLOCK_CPU(clockid) { clockid, # clockid, true, false } ++#define CLOCK_FAIL_OK(clockid) { clockid, # clockid, false, true } ++ ++static const struct test_clockid clocks[] = ++ { ++ CLOCK (CLOCK_REALTIME), ++#ifdef CLOCK_MONOTONIC ++ CLOCK (CLOCK_MONOTONIC), ++#endif ++#ifdef CLOCK_PROCESS_CPUTIME_ID ++ CLOCK_CPU (CLOCK_PROCESS_CPUTIME_ID), ++#endif ++#ifdef CLOCK_THREAD_CPUTIME_ID ++ CLOCK_CPU (CLOCK_THREAD_CPUTIME_ID), ++#endif ++#ifdef CLOCK_MONOTONIC_RAW ++ CLOCK (CLOCK_MONOTONIC_RAW), ++#endif ++#ifdef CLOCK_REALTIME_COARSE ++ CLOCK (CLOCK_REALTIME_COARSE), ++#endif ++#ifdef CLOCK_MONOTONIC_COARSE ++ CLOCK (CLOCK_MONOTONIC_COARSE), ++#endif ++#ifdef CLOCK_BOOTTIME ++ CLOCK (CLOCK_BOOTTIME), ++#endif ++#ifdef CLOCK_REALTIME_ALARM ++ CLOCK_FAIL_OK (CLOCK_REALTIME_ALARM), ++#endif ++#ifdef CLOCK_BOOTTIME_ALARM ++ CLOCK_FAIL_OK (CLOCK_BOOTTIME_ALARM), ++#endif ++#ifdef CLOCK_TAI ++ CLOCK (CLOCK_TAI), ++#endif ++ }; ++ ++ ++volatile int sigalrm_received; ++ ++void ++handle_sigalrm (int sig) ++{ ++ sigalrm_received = 1; ++} ++ ++int ++do_test (void) ++{ ++ /* Verify that the calls to clock_gettime succeed, that the time does ++ not decrease, and that time returns a truncated (not rounded) ++ version of the time. */ ++ for (size_t i = 0; i < sizeof clocks / sizeof clocks[0]; i++) ++ { ++ printf ("testing %s\n", clocks[i].name); ++ struct timespec ts1, ts2, ts3; ++ int ret; ++ time_t t1; ++ t1 = time (NULL); ++ TEST_VERIFY_EXIT (t1 != (time_t) -1); ++ ret = clock_gettime (clocks[i].clockid, &ts1); ++ if (clocks[i].fail_ok && ret == -1) ++ { ++ printf ("failed (OK for this clock): %m\n"); ++ continue; ++ } ++ TEST_VERIFY_EXIT (ret == 0); ++ if (clocks[i].clockid == CLOCK_REALTIME) ++ TEST_VERIFY (t1 <= ts1.tv_sec); ++ TEST_VERIFY (ts1.tv_nsec >= 0); ++ TEST_VERIFY (ts1.tv_nsec < 1000000000); ++ ret = clock_gettime (clocks[i].clockid, &ts2); ++ TEST_VERIFY_EXIT (ret == 0); ++ TEST_VERIFY (compare_timespec (&ts1, &ts2) <= 0); ++ TEST_VERIFY (ts2.tv_nsec >= 0); ++ TEST_VERIFY (ts2.tv_nsec < 1000000000); ++ /* Also verify that after sleeping, the time returned has ++ increased. Repeat several times to verify that each time, ++ the time from the time function is truncated not rounded. ++ For CPU time clocks, the time spent spinning on the CPU, and ++ so whether we end in the later half of a second, is not ++ predictable; thus, only test once for those clocks. */ ++ const struct timespec duration = { .tv_nsec = 100000000 }; ++ for (int j = 0; j < 5; j++) ++ { ++ if (clocks[i].is_cputime) ++ { ++ timer_t timer; ++ ret = timer_create (CLOCK_PROCESS_CPUTIME_ID, NULL, &timer); ++ TEST_VERIFY_EXIT (ret == 0); ++ sigalrm_received = 0; ++ xsignal (SIGALRM, handle_sigalrm); ++ struct itimerspec t = ++ { .it_value = ++ { ++ .tv_sec = 0, ++ .tv_nsec = 200000000 ++ } ++ }; ++ ret = timer_settime (timer, 0, &t, NULL); ++ TEST_VERIFY_EXIT (ret == 0); ++ while (sigalrm_received == 0) ++ ; ++ xsignal (SIGALRM, SIG_DFL); ++ ret = timer_delete (timer); ++ TEST_VERIFY_EXIT (ret == 0); ++ } ++ else ++ { ++ ret = nanosleep (&duration, NULL); ++ TEST_VERIFY_EXIT (ret == 0); ++ } ++ t1 = time (NULL); ++ TEST_VERIFY_EXIT (t1 != (time_t) -1); ++ ret = clock_gettime (clocks[i].clockid, &ts3); ++ TEST_VERIFY_EXIT (ret == 0); ++ TEST_VERIFY (compare_timespec (&ts2, &ts3) < 0); ++ if (clocks[i].clockid == CLOCK_REALTIME) ++ TEST_VERIFY (t1 <= ts3.tv_sec); ++ TEST_VERIFY (ts3.tv_nsec >= 0); ++ TEST_VERIFY (ts3.tv_nsec < 1000000000); ++ ts2 = ts3; ++ if (clocks[i].is_cputime) ++ break; ++ } ++ } ++ return 0; ++} ++ ++#define TIMEOUT 60 ++ ++#include +diff --git a/time/tst-gettimeofday-time64.c b/time/tst-gettimeofday-time64.c +new file mode 100644 +index 0000000000000000..6c08761ef995ce7c +--- /dev/null ++++ b/time/tst-gettimeofday-time64.c +@@ -0,0 +1 @@ ++#include "tst-gettimeofday.c" +diff --git a/time/tst-gettimeofday.c b/time/tst-gettimeofday.c +new file mode 100644 +index 0000000000000000..978ae28587d486f2 +--- /dev/null ++++ b/time/tst-gettimeofday.c +@@ -0,0 +1,93 @@ ++/* Test gettimeofday function. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++ ++#include ++#include ++ ++/* Compare two struct timeval values, returning a value -1, 0 or 1. */ ++ ++int ++compare_timeval (const struct timeval *tv1, const struct timeval *tv2) ++{ ++ if (tv1->tv_sec < tv2->tv_sec) ++ return -1; ++ if (tv1->tv_sec > tv2->tv_sec) ++ return 1; ++ if (tv1->tv_usec < tv2->tv_usec) ++ return -1; ++ if (tv1->tv_usec > tv2->tv_usec) ++ return 1; ++ return 0; ++} ++ ++int ++do_test (void) ++{ ++ struct timeval tv1, tv2, tv3; ++ int ret; ++ time_t t1; ++ /* Verify that the calls to gettimeofday succeed, that the time does ++ not decrease, and that time returns a truncated (not rounded) ++ version of the time. */ ++ t1 = time (NULL); ++ TEST_VERIFY_EXIT (t1 != (time_t) -1); ++ ret = gettimeofday (&tv1, NULL); ++ TEST_VERIFY_EXIT (ret == 0); ++ TEST_VERIFY (t1 <= tv1.tv_sec); ++ TEST_VERIFY (tv1.tv_usec >= 0); ++ TEST_VERIFY (tv1.tv_usec < 1000000); ++ ret = gettimeofday (&tv2, NULL); ++ TEST_VERIFY_EXIT (ret == 0); ++ TEST_VERIFY (compare_timeval (&tv1, &tv2) <= 0); ++ TEST_VERIFY (tv2.tv_usec >= 0); ++ TEST_VERIFY (tv2.tv_usec < 1000000); ++ /* Also verify that after sleeping, the time returned has increased. ++ Repeat several times to verify that each time, the time from the ++ time function is truncated not rounded. */ ++ const struct timespec duration = { .tv_nsec = 100000000 }; ++ for (int i = 0; i < 10; i++) ++ { ++ ret = nanosleep (&duration, NULL); ++ TEST_VERIFY_EXIT (ret == 0); ++ t1 = time (NULL); ++ TEST_VERIFY_EXIT (t1 != (time_t) -1); ++ ret = gettimeofday (&tv3, NULL); ++ TEST_VERIFY_EXIT (ret == 0); ++ TEST_VERIFY (compare_timeval (&tv2, &tv3) < 0); ++ TEST_VERIFY (t1 <= tv3.tv_sec); ++ TEST_VERIFY (tv3.tv_usec >= 0); ++ TEST_VERIFY (tv3.tv_usec < 1000000); ++ tv2 = tv3; ++ } ++ /* Also test with the obsolete tz argument not being NULL. */ ++ struct timezone tz = { 0 }; ++ t1 = time (NULL); ++ TEST_VERIFY_EXIT (t1 != (time_t) -1); ++ ret = gettimeofday (&tv3, &tz); ++ TEST_VERIFY_EXIT (ret == 0); ++ TEST_VERIFY (t1 <= tv3.tv_sec); ++ TEST_VERIFY (compare_timeval (&tv2, &tv3) <= 0); ++ TEST_VERIFY (tv3.tv_usec >= 0); ++ TEST_VERIFY (tv3.tv_usec < 1000000); ++ return 0; ++} ++ ++#include +diff --git a/time/tst-time-time64.c b/time/tst-time-time64.c +new file mode 100644 +index 0000000000000000..30e8d3c86ef973cc +--- /dev/null ++++ b/time/tst-time-time64.c +@@ -0,0 +1 @@ ++#include "tst-time.c" +diff --git a/time/tst-time.c b/time/tst-time.c +new file mode 100644 +index 0000000000000000..7f24bed3530e1c1e +--- /dev/null ++++ b/time/tst-time.c +@@ -0,0 +1,51 @@ ++/* Test time function. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++ ++#include ++#include ++ ++int ++do_test (void) ++{ ++ time_t t1, t2, t3, t4, t5, t6; ++ /* Verify that the calls to time succeed, that the value returned ++ directly equals that returned through the pointer passed, and ++ that the time does not decrease. */ ++ t1 = time (&t2); ++ TEST_VERIFY_EXIT (t1 != (time_t) -1); ++ TEST_VERIFY (t1 == t2); ++ t3 = time (NULL); ++ TEST_VERIFY_EXIT (t3 != (time_t) -1); ++ TEST_VERIFY (t3 >= t1); ++ /* Also verify that after sleeping, the time returned has ++ increased. */ ++ sleep (2); ++ t4 = time (&t5); ++ TEST_VERIFY_EXIT (t4 != (time_t) -1); ++ TEST_VERIFY (t4 == t5); ++ TEST_VERIFY (t4 > t3); ++ t6 = time (NULL); ++ TEST_VERIFY_EXIT (t6 != (time_t) -1); ++ TEST_VERIFY (t6 >= t4); ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119386-3.patch b/glibc-RHEL-119386-3.patch new file mode 100644 index 0000000..a7f3320 --- /dev/null +++ b/glibc-RHEL-119386-3.patch @@ -0,0 +1,24 @@ +commit 9c0903fb7388f645d23b26160ed3669a116189fe +Author: Joseph Myers +Date: Thu Oct 31 17:43:52 2024 +0000 + + Link tst-clock_gettime with $(librt) + + This is needed to avoid link failures for the timer_* functions on + Hurd. + + Tested with build-many-glibcs.py for i686-gnu. + +diff --git a/time/Makefile b/time/Makefile +index b57963c1c6443770..77a6ded3a5028746 100644 +--- a/time/Makefile ++++ b/time/Makefile +@@ -126,6 +126,8 @@ $(objpfx)tst-strftime2.out: $(gen-locales) + $(objpfx)tst-strftime3.out: $(gen-locales) + endif + ++$(objpfx)tst-clock_gettime: $(librt) ++$(objpfx)tst-clock_gettime-time64: $(librt) + $(objpfx)tst-clock_nanosleep: $(librt) + $(objpfx)tst-clock_nanosleep-time64: $(librt) + diff --git a/glibc-RHEL-119390-1.patch b/glibc-RHEL-119390-1.patch new file mode 100644 index 0000000..93437f8 --- /dev/null +++ b/glibc-RHEL-119390-1.patch @@ -0,0 +1,2531 @@ +commit 7ec4d7e3d1c0c6da11dbad1292fd9d94124c57ca +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted printf output specifiers + + This is a collection of tests for formatted printf output specifiers + covering the d, i, o, u, x, and X integer conversions, the e, E, f, F, + g, and G floating-point conversions, the c character conversion, and the + s string conversion. Also the hh, h, l, and ll length modifiers are + covered with the integer conversions as is the L length modifier with + the floating-point conversions. + + The -, +, space, #, and 0 flags are iterated over, as permitted by the + conversion handled, in tuples of 1..5, including tuples with repetitions + of 2, and combined with field width and/or precision, again as permitted + by the conversion. The resulting format string is then used to produce + output from respective sets of input data corresponding to the specific + conversion under test. POSIX extensions beyond ISO C are not used. + + Output is produced in the form of records which include both the format + string (and width and/or precision where given in the form of separate + arguments) and the conversion result, and is verified with GNU AWK using + the format obtained from each such record against the reference value + also supplied, relying on the fact that GNU AWK has its own independent + implementation of format processing, striving to be ISO C compatible. + + In the course of implementation I have determined that in the non-bignum + mode GNU AWK uses system sprintf(3) for the floating-point conversions, + defeating the objective of doing the verification against an independent + implementation. Additionally the bignum mode (using MPFR) is required + to correctly output wider integer and floating-point data. Therefore + for the conversions affected the relevant shell scripts sanity-check AWK + and terminate with unsupported status if the bignum mode is unavailable + for floating-point data or where data is output incorrectly. + + The f and F floating-point conversions are build-time options for GNU + AWK, depending on the environment, so they are probed for before being + used. Similarly the a and A floating-point conversions, however they + are currently not used, see below. Also GNU AWK does not handle the b + or B integer conversions at all at the moment, as at 5.3.0. Support for + the a, A, b, and B conversions can however be easily added following the + approach taken for the f and F conversions. + + Output produced by gawk for the a and A floating-point conversions does + not match one produced by us: insufficient precision is used where one + hasn't been explicitly given, e.g. for the negated maximum finite IEEE + 754 64-bit value of -1.79769313486231570814527423731704357e+308 and "%a" + format we produce -0x1.fffffffffffffp+1023 vs gawk's -0x1.000000p+1024 + and a different exponent is chosen otherwise, such as with "%.a" where + we output -0x2p+1023 vs gawk's -0x1p+1024 for the same value, or "%.20a" + where -0x1.fffffffffffff0000000p+1023 is our output, but gawk produces + -0xf.ffffffffffff80000000p+1020 instead. Consequently I chose not to + include a and A conversions in testing at this time. + + And last but not least there are numerous corner cases that GNU AWK does + not handle correctly, which are worked around by explicit handling in + the AWK script. These are in particular: + + - extraneous leading 0 produced for the alternative form with the o + conversion, e.g. { printf "%#.2o", 1 } produces "001" rather than + "01", + + - unexpected 0 produced where no characters are expected for the input + of 0 and the alternative form with the precision of 0 and the integer + hexadecimal conversions, e.g. { printf "%#.x", 0 } produces "0" rather + than "", + + - missing + character in the non-bignum mode only for the input of 0 + with the + flag, precision of 0 and the signed integer conversions, + e.g. { printf "%+.i", 0 } produces "" rather than "+", + + - missing space character in the non-bignum mode only for the input of 0 + with the space flag, precision of 0 and the signed integer + conversions, e.g. { printf "% .i", 0 } produces "" rather than " ", + + - for released gawk versions of up to 4.2.1 missing - character for the + input of -NaN with the floating-point conversions, e.g. { printf "%e", + "-nan" }' produces "nan" rather than "-nan", + + - for released gawk versions from 5.0.0 onwards + character output for + the input of -NaN with the floating-point conversions, e.g. { printf + "%e", "-nan" }' produces "+nan" rather than "-nan", + + - for released gawk versions from 5.0.0 onwards + character output for + the input of Inf or NaN in the absence of the + or space flags with + the floating-point conversions, e.g. { printf "%e", "inf" }' produces + "+inf" rather than "inf", + + - for released gawk versions of up to 4.2.1 missing + character for the + input of Inf or NaN with the + flag and the floating-point + conversions, e.g. { printf "%+e", "inf" }' produces "inf" rather than + "+inf", + + - for released gawk versions of up to 4.2.1 missing space character for + the input of Inf or NaN with the space flag and the floating-point + conversions, e.g. { printf "% e", "nan" }' produces "nan" rather than + " nan", + + - for released gawk versions from 5.0.0 onwards + character output for + the input of Inf or NaN with the space flag and the floating-point + conversions, e.g. { printf "% e", "inf" }' produces "+inf" rather than + " inf", + + - for released gawk versions from 5.0.0 onwards the field width is + ignored for the input of Inf or NaN and the floating-point + conversions, e.g. { printf "%20e", "-inf" }' produces "-inf" rather + than " -inf", + + NB for released gawk versions of up to 4.2.1 floating-point conversion + issues apply to the bignum mode only, as in the non-bignum mode system + sprintf(3) is used. As from version 5.0.0 specialized handling has been + added for [-]Inf and [-]NaN inputs and the issues listed apply to both + modes. The '--posix' flag makes gawk versions from 5.0.0 onwards avoid + the issue with field width and the + character unconditionally output + for the input of Inf or NaN, however not the remaining issues and then + the 'gensub' function is not supported in the POSIX mode, so to go this + path I deemed not worth it. + + Each test completes within single seconds except for the long double + one. There the F/f formats produce a large number of digits, which + appears to be computationally intensive and CPU-bound. Standalone + execution time for 'tst-printf-format-p-ldouble --direct f' is in the + range of 00m36s for POWER9@2.166GHz and 09m52s for FU740@1.2GHz and + output redirected locally to /dev/null, and 10m11s for FU740 and output + redirected over 100Mbps network via SSH to /dev/null, so the throughput + of the network adds very little (~3.2% in this case) to the processing + time. This is with IEEE 754 quad. + + So I have scaled the timeout for 'tst-printf-format-skeleton-ldouble' + accordingly. Regardless, following recent practice the test has been + added to the standard rather than extended set. However, unlike most + of the remaining tests it has been split by the conversion specifier, + so as to allow better parallelization of this long-running test. As + a side effect this lets the test report the unsupported status for the + F/f conversions where applicable, so 'tst-printf-format-p-double' has + been split for consistency as well. + + Only printf itself is handled at the moment, but the infrastructure + provides for all the printf family functions to be verified, changes + for which to be supplied separately. The complication around having + some tests iterating over all the relevant conversion specifiers and + other verifying conversion specifiers individually combined with + iterating over printf family functions has hit a peculiarity in GNU + make where the use of multiple targets with a pattern rule is handled + differently from such use with an ordinary rule. Consequently it + seems impossible to bulk-define a pattern rule using '$(foreach ...)', + where each target would simply trigger the recipe according to the + pattern and matching dependencies individually (such a rule does work, + but implies all targets to be updated with a single recipe execution). + + Therefore as a compromise a single single-target pattern rule has been + defined that has listed all the conversion-specific scripts and all the + test executables as dependencies. Consequently tests will be rerun in + the absence of changes to their actual sources or scripts whenever an + unrelated file has changed that has been listed. Also all the formatted + printf output tests will always be built whenever any single one is to + be run. This only affects test development and not test runs in the + field, though it does change the order of execution of the individual + steps and also acts as a Makefile barrier in parallel runs. As the + execution time dominates the compilation time for these tests it is not + seen as a serious shortcoming. + + As pointed out by Florian Weimer the malloc tracing + facility can take a substantial amount of time in calling dladdr(3) to + determine the caller's location. This is not needed by the verification + made with these tests, so I chose to interpose the symbol with a stub + implementation that always fails in the shared skeleton. We have total + control over the test environment, so I think it is a safe and minimal + impact approach. If there's ever anything else added to the tests that + would actually rely on dladdr(3) returning usable results, only then we + can think of a different approach. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 4c39b9d9fb3d029f..3e50c5a20ed7e679 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -23,6 +23,34 @@ subdir := stdio-common + + include ../Makeconfig + ++# List of markers for printf family function tests. ++xprintf-funcs := p ++ ++# List of data types and formats for individual per-conversion printf tests. ++fmt-convs := double ldouble ++fmts := E e F f G g ++ ++# List of data types grouping all conversions in single printf tests. ++nonfmt-convs := c char int llong long s short ++nonfmt-convs += uchar uint ullong ulong ushort ++ ++convs := $(sort $(fmt-convs) $(nonfmt-convs)) ++ ++xprintf-srcs := \ ++ $(foreach p,$(xprintf-funcs), \ ++ $(foreach c,$(convs),tst-printf-format-$(p)-$(c))) ++ ++fmt-xprintf-stems := \ ++ $(foreach f,$(fmts), \ ++ $(foreach p,$(xprintf-funcs), \ ++ $(foreach c,$(fmt-convs), \ ++ tst-printf-format-$(p)-$(c)-$(f)))) ++nonfmt-xprintf-stems := \ ++ $(foreach p,$(xprintf-funcs), \ ++ $(foreach c,$(nonfmt-convs),tst-printf-format-$(p)-$(c))) ++ ++xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) ++ + headers := \ + bits/printf-ldbl.h \ + bits/stdio_lim.h \ +@@ -326,6 +354,7 @@ tests-internal = \ + # tests-internal + + test-srcs = \ ++ $(xprintf-srcs) \ + tst-printf \ + tst-printfsz-islongdouble \ + tst-unbputc \ +@@ -333,6 +362,7 @@ test-srcs = \ + + ifeq ($(run-built-tests),yes) + tests-special += \ ++ $(foreach f,$(xprintf-stems),$(objpfx)$(f).out) \ + $(objpfx)tst-printf.out \ + $(objpfx)tst-printfsz-islongdouble.out \ + $(objpfx)tst-setvbuf1-cmp.out \ +@@ -342,6 +372,7 @@ tests-special += \ + ifeq (yes,$(build-shared)) + ifneq ($(PERL),no) + tests-special += \ ++ $(foreach f,$(xprintf-stems),$(objpfx)$(f)-mem.out) \ + $(objpfx)tst-freopen2-mem.out \ + $(objpfx)tst-freopen3-mem.out \ + $(objpfx)tst-freopen4-mem.out \ +@@ -362,6 +393,8 @@ tests-special += \ + # tests-special + + generated += \ ++ $(foreach f,$(xprintf-stems),$(f)-mem.out) \ ++ $(foreach f,$(xprintf-stems),$(f).mtrace) \ + tst-freopen2-mem.out \ + tst-freopen2.mtrace \ + tst-freopen3-mem.out \ +@@ -535,6 +568,21 @@ $(objpfx)tst-printf.out: tst-printf.sh $(objpfx)tst-printf + $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \ + $(evaluate-test) + ++# We can't split a quoted recipe line, so do it via an auxiliary variable. ++make-tst-printf-format-out = \ ++ AWK='$(AWK)' BASH='$(BASH)' \ ++ $(BASH) $< $@ $(common-objpfx) \ ++ '$(run-program-prefix-before-env) \ ++ $(run-program-env) \ ++ MALLOC_TRACE=$(@:.out=.mtrace) \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so \ ++ $(run-program-prefix-after-env)' ++$(objpfx)tst-printf-format-%.out: \ ++ tst-printf-format.sh $(foreach c,$(convs),tst-printf-format-$(c).sh) \ ++ $(foreach f,$(xprintf-srcs),$(objpfx)$(f)) tst-printf-format.awk ++ $(make-tst-printf-format-out) > $@; \ ++ $(evaluate-test) ++ + $(objpfx)tst-printfsz-islongdouble.out: \ + tst-printfsz-islongdouble.sh $(objpfx)tst-printfsz-islongdouble + $(SHELL) $^ '$(test-program-prefix)' $@; \ +@@ -548,6 +596,10 @@ $(objpfx)tst-printf-bz18872.c: tst-printf-bz18872.sh + $(objpfx)tst-%-mem.out: $(objpfx)tst-%.out + $(common-objpfx)malloc/mtrace $(objpfx)tst-$*.mtrace > $@; \ + $(evaluate-test) ++$(objpfx)tst-printf-format-%-mem.out: $(objpfx)tst-printf-format-%.out ++ $(common-objpfx)malloc/mtrace \ ++ $(objpfx)tst-printf-format-$*.mtrace > $@; \ ++ $(evaluate-test) + + errlist-h = $(firstword $(wildcard $(addsuffix /errlist.h,$(sysdirs) .))) + +diff --git a/stdio-common/tst-printf-format-c.sh b/stdio-common/tst-printf-format-c.sh +new file mode 100644 +index 0000000000000000..2b8d72050f670fd6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-c.sh +@@ -0,0 +1,34 @@ ++#!/bin/bash ++# Testing of the 'c' printf conversion. ++# Copyright (C) 2024 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 ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++echo Verifying c ++(set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-c c | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion c output error, first line:\n/") 2>&1 || ++ exit 1 +diff --git a/stdio-common/tst-printf-format-char.sh b/stdio-common/tst-printf-format-char.sh +new file mode 100644 +index 0000000000000000..99219679df2ddfb7 +--- /dev/null ++++ b/stdio-common/tst-printf-format-char.sh +@@ -0,0 +1,40 @@ ++#!/bin/bash ++# Testing of signed char printf conversions. ++# Copyright (C) 2024 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 ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=0 ++ ++for f in d i; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-char $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-double.sh b/stdio-common/tst-printf-format-double.sh +new file mode 100644 +index 0000000000000000..b4e61acfdc615c22 +--- /dev/null ++++ b/stdio-common/tst-printf-format-double.sh +@@ -0,0 +1,74 @@ ++#!/bin/bash ++# Testing of double printf conversions. ++# Copyright (C) 2024 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 ++# . ++ ++set -e ++ ++xprintf=$1; shift ++format=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++# For floating-point formats we need to use the bignum mode even if the ++# regular mode would do, because GAWK in the latter mode uses sprintf(3) ++# internally to process the conversion requested, so any bug in our code ++# would then be verified against itself, defeating the objective of doing ++# the verification against an independent implementation. ++AWK="${AWK:-awk} -M" ++ ++status=77 ++ ++# Verify that AWK can handle the range required. It also catches: ++# "gawk: warning: -M ignored: MPFR/GMP support not compiled in" ++# message produced where bignum support is not there, which is the ++# only indication as the use of '-M' does not affect the exit status ++# in this case. ++ref="-1.79769313486231570814527423731704357e+308" ++val=$(echo "$ref" | $AWK '{ printf "%.35e\n", $1 }' 2>&1) && ++ test "$val" = "$ref" && status=0 ++ ++test $status -eq 0 || { echo "No working AWK found" && exit $status; } ++ ++# Check for any additional conversions that AWK handles conditionally ++# according to its version and/or the environment it has been built in. ++# The 'A' and 'a' conversions are not suitable to use at this point, as ++# output produced by AWK is different apparently due to a subtlety in ++# rounding, so do not try them. ++declare -A conversion_disabled ++ref="-inf" ++for f in f F; do ++ conversion_disabled[$f]=true ++ val=$(echo "$ref" | $AWK '{ printf "%'$f'\n", $1 }' 2>&1) && ++ test "${val^^}" = "${ref^^}" && unset conversion_disabled[$f] ++done ++ ++if test "${conversion_disabled[$format]+set}" = set; then ++ echo Unsupported $format ++ status=77 ++else ++ echo Verifying $format ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-double $format | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | ++ sed "s/^/Conversion $format output error, first line:\n/") 2>&1 || ++ status=1 ++fi ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-int.sh b/stdio-common/tst-printf-format-int.sh +new file mode 100644 +index 0000000000000000..32dcfb160a3ab5e9 +--- /dev/null ++++ b/stdio-common/tst-printf-format-int.sh +@@ -0,0 +1,53 @@ ++#!/bin/bash ++# Testing of int printf conversions. ++# Copyright (C) 2024 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 ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=77 ++ ++# Verify that AWK can handle the range required. It also catches: ++# "gawk: warning: -M ignored: MPFR/GMP support not compiled in" ++# message produced where bignum support is not there, which is the ++# only indication as the use of '-M' does not affect the exit status ++# in this case. ++ref="-2147483648" ++for AWK in "$AWK -M" "$AWK"; do ++ val=$(echo "$ref" | $AWK '{ printf "%d\n", $1 }' 2>&1) || continue ++ test "$val" = "$ref" && status=0 && break ++done ++ ++test $status -eq 0 || { echo "No working AWK found" && exit $status; } ++ ++for f in d i; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-int $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-ldouble.sh b/stdio-common/tst-printf-format-ldouble.sh +new file mode 100644 +index 0000000000000000..4bfecadea9d7fe80 +--- /dev/null ++++ b/stdio-common/tst-printf-format-ldouble.sh +@@ -0,0 +1,74 @@ ++#!/bin/bash ++# Testing of long double printf conversions. ++# Copyright (C) 2024 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 ++# . ++ ++set -e ++ ++xprintf=$1; shift ++format=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++# For floating-point formats we need to use the bignum mode even if the ++# regular mode would do, because GAWK in the latter mode uses sprintf(3) ++# internally to process the conversion requested, so any bug in our code ++# would then be verified against itself, defeating the objective of doing ++# the verification against an independent implementation. ++AWK="${AWK:-awk} -M" ++ ++status=77 ++ ++# Verify that AWK can handle the range required. It also catches: ++# "gawk: warning: -M ignored: MPFR/GMP support not compiled in" ++# message produced where bignum support is not there, which is the ++# only indication as the use of '-M' does not affect the exit status ++# in this case. ++ref="-1.18973149535723176508575932662800702e+4932" ++val=$(echo "$ref" | $AWK '{ PREC=113; printf "%.35e\n", $1 }' 2>&1) && ++ test "$val" = "$ref" && status=0 ++ ++test $status -eq 0 || { echo "No working AWK found" && exit $status; } ++ ++# Check for any additional conversions that AWK handles conditionally ++# according to its version and/or the environment it has been built in. ++# The 'A' and 'a' conversions are not suitable to use at this point, as ++# output produced by AWK is different apparently due to a subtlety in ++# rounding, so do not try them. ++declare -A conversion_disabled ++ref="-inf" ++for f in f F; do ++ conversion_disabled[$f]=true ++ val=$(echo "$ref" | $AWK '{ printf "%'$f'\n", $1 }' 2>&1) && ++ test "${val^^}" = "${ref^^}" && unset conversion_disabled[$f] ++done ++ ++if test "${conversion_disabled[$format]+set}" = set; then ++ echo Unsupported $format ++ status=77 ++else ++ echo Verifying $format ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-ldouble $format | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | ++ sed "s/^/Conversion $format output error, first line:\n/") 2>&1 || ++ status=1 ++fi ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-llong.sh b/stdio-common/tst-printf-format-llong.sh +new file mode 100644 +index 0000000000000000..b028a2c89b30a9b6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-llong.sh +@@ -0,0 +1,53 @@ ++#!/bin/bash ++# Testing of long long int printf conversions. ++# Copyright (C) 2024 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 ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=77 ++ ++# Verify that AWK can handle the range required. It also catches: ++# "gawk: warning: -M ignored: MPFR/GMP support not compiled in" ++# message produced where bignum support is not there, which is the ++# only indication as the use of '-M' does not affect the exit status ++# in this case. ++ref="9223372036854775807" ++for AWK in "$AWK -M" "$AWK"; do ++ val=$(echo "$ref" | $AWK '{ printf "%d\n", $1 }' 2>&1) || continue ++ test "$val" = "$ref" && status=0 && break ++done ++ ++test $status -eq 0 || { echo "No working AWK found" && exit $status; } ++ ++for f in d i; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-llong $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-long.sh b/stdio-common/tst-printf-format-long.sh +new file mode 100644 +index 0000000000000000..77c67ea5bff12c05 +--- /dev/null ++++ b/stdio-common/tst-printf-format-long.sh +@@ -0,0 +1,53 @@ ++#!/bin/bash ++# Testing of long int printf conversions. ++# Copyright (C) 2024 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 ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=77 ++ ++# Verify that AWK can handle the range required. It also catches: ++# "gawk: warning: -M ignored: MPFR/GMP support not compiled in" ++# message produced where bignum support is not there, which is the ++# only indication as the use of '-M' does not affect the exit status ++# in this case. ++ref="9223372036854775807" ++for AWK in "$AWK -M" "$AWK"; do ++ val=$(echo "$ref" | $AWK '{ printf "%d\n", $1 }' 2>&1) || continue ++ test "$val" = "$ref" && status=0 && break ++done ++ ++test $status -eq 0 || { echo "No working AWK found" && exit $status; } ++ ++for f in d i; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-long $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-p-c.c b/stdio-common/tst-printf-format-p-c.c +new file mode 100644 +index 0000000000000000..ba46f55431aa59c1 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for the 'c' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-p-char.c b/stdio-common/tst-printf-format-p-char.c +new file mode 100644 +index 0000000000000000..7640bf8f662e3515 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for signed char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-p-double.c b/stdio-common/tst-printf-format-p-double.c +new file mode 100644 +index 0000000000000000..8271ec7beaa9e57d +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-p-int.c b/stdio-common/tst-printf-format-p-int.c +new file mode 100644 +index 0000000000000000..cdfaaacc34772cc9 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-p-ldouble.c b/stdio-common/tst-printf-format-p-ldouble.c +new file mode 100644 +index 0000000000000000..266989db32a848bb +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for long double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-p-llong.c b/stdio-common/tst-printf-format-p-llong.c +new file mode 100644 +index 0000000000000000..936f626a45e76211 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-p-long.c b/stdio-common/tst-printf-format-p-long.c +new file mode 100644 +index 0000000000000000..c82c3cac0957a1a3 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-p-s.c b/stdio-common/tst-printf-format-p-s.c +new file mode 100644 +index 0000000000000000..4b0201ae9465a6a8 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for the 's' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-p-short.c b/stdio-common/tst-printf-format-p-short.c +new file mode 100644 +index 0000000000000000..2bf17f1b2522f5ed +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-p-uchar.c b/stdio-common/tst-printf-format-p-uchar.c +new file mode 100644 +index 0000000000000000..02a70c3f1546c422 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for unsigned char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-p-uint.c b/stdio-common/tst-printf-format-p-uint.c +new file mode 100644 +index 0000000000000000..e61455e01013aba0 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for unsigned int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-p-ullong.c b/stdio-common/tst-printf-format-p-ullong.c +new file mode 100644 +index 0000000000000000..16b2541acd66299f +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for unsigned long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-p-ulong.c b/stdio-common/tst-printf-format-p-ulong.c +new file mode 100644 +index 0000000000000000..0b3a7fd2568f763b +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for unsigned long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-p-ushort.c b/stdio-common/tst-printf-format-p-ushort.c +new file mode 100644 +index 0000000000000000..fa62f500ab00cbb3 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'printf' output for unsigned short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-p.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-p.h b/stdio-common/tst-printf-format-p.h +new file mode 100644 +index 0000000000000000..a9ffbb0d0e76a485 +--- /dev/null ++++ b/stdio-common/tst-printf-format-p.h +@@ -0,0 +1,29 @@ ++/* Test feature wrapper for formatted 'printf' output. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#define printf_under_test(...) \ ++({ \ ++ int result; \ ++ \ ++ result = printf (__VA_ARGS__); \ ++ if (result < 0) \ ++ perror ("printf"); \ ++ result; \ ++}) +diff --git a/stdio-common/tst-printf-format-s.sh b/stdio-common/tst-printf-format-s.sh +new file mode 100644 +index 0000000000000000..fa0690f9800a60ce +--- /dev/null ++++ b/stdio-common/tst-printf-format-s.sh +@@ -0,0 +1,34 @@ ++#!/bin/bash ++# Testing of the 's' printf conversion. ++# Copyright (C) 2024 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 ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++echo Verifying s ++(set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-s s | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion s output error, first line:\n/") 2>&1 || ++ exit 1 +diff --git a/stdio-common/tst-printf-format-short.sh b/stdio-common/tst-printf-format-short.sh +new file mode 100644 +index 0000000000000000..a610a15fa1f6e96a +--- /dev/null ++++ b/stdio-common/tst-printf-format-short.sh +@@ -0,0 +1,40 @@ ++#!/bin/bash ++# Testing of short int printf conversions. ++# Copyright (C) 2024 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 ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=0 ++ ++for f in d i; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-short $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-skeleton-c.c b/stdio-common/tst-printf-format-skeleton-c.c +new file mode 100644 +index 0000000000000000..3f9bbc91e3a58e59 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-c.c +@@ -0,0 +1,29 @@ ++/* Test skeleton for formatted printf output for the 'c' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#define MID_WIDTH 3 ++#define HUGE_WIDTH 4 ++#define REF_FMT "c" ++#define REF_VAL(v) (v) ++typedef unsigned char type_t; ++static const type_t vals[] = { 0, 42, UCHAR_MAX }; ++static const char length[] = ""; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-char.c b/stdio-common/tst-printf-format-skeleton-char.c +new file mode 100644 +index 0000000000000000..8c7b44b061f69cb6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-char.c +@@ -0,0 +1,31 @@ ++/* Test skeleton for formatted printf output for signed char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#define MID_WIDTH 3 ++#define HUGE_WIDTH 5 ++#define REF_FMT "i" ++#define REF_VAL(v) ((((v) & 0xff) ^ 0x80) - 0x80) ++typedef int type_t; ++static const type_t vals[] = ++ { SCHAR_MIN - 123, SCHAR_MIN - 1, SCHAR_MIN, -123, -1, 0, 1, 42, SCHAR_MAX, ++ SCHAR_MAX + 1, SCHAR_MAX + 42 }; ++static const char length[] = "hh"; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-double.c b/stdio-common/tst-printf-format-skeleton-double.c +new file mode 100644 +index 0000000000000000..03ac594736fd352f +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-double.c +@@ -0,0 +1,33 @@ ++/* Test skeleton for formatted printf output for double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++ ++#define MID_WIDTH 20 ++#define HUGE_WIDTH 320 ++#define REF_FMT ".35e" ++#define REF_VAL(v) (v) ++#define PREC DBL_MANT_DIG ++typedef double type_t; ++static const type_t vals[] = ++ { -HUGE_VAL, -DBL_MAX, -DBL_MIN, copysign (0, -1), -NAN, NAN, 0, DBL_MIN, ++ DBL_MAX, HUGE_VAL }; ++static const char length[] = ""; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-int.c b/stdio-common/tst-printf-format-skeleton-int.c +new file mode 100644 +index 0000000000000000..5d2076c53f6bbc2d +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-int.c +@@ -0,0 +1,29 @@ ++/* Test skeleton for formatted printf output for int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#define MID_WIDTH 8 ++#define HUGE_WIDTH 15 ++#define REF_FMT "i" ++#define REF_VAL(v) (v) ++typedef int type_t; ++static const type_t vals[] = { INT_MIN, -123, -1, 0, 1, 42, INT_MAX }; ++static const char length[] = ""; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-ldouble.c b/stdio-common/tst-printf-format-skeleton-ldouble.c +new file mode 100644 +index 0000000000000000..ed47e7796390ecaf +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-ldouble.c +@@ -0,0 +1,38 @@ ++/* Test skeleton for formatted printf output for long double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++ ++#define MID_WIDTH 20 ++#define HUGE_WIDTH 4950 ++#define REF_FMT ".35Le" ++#define REF_VAL(v) (v) ++#define PREC LDBL_MANT_DIG ++typedef long double type_t; ++static const type_t vals[] = ++ { -HUGE_VAL, -LDBL_MAX, -LDBL_MIN, copysign (0, -1), -NAN, NAN, 0, LDBL_MIN, ++ LDBL_MAX, HUGE_VAL }; ++static const char length[] = "L"; ++ ++#ifndef TIMEOUT ++# define TIMEOUT (DEFAULT_TIMEOUT * 64) ++#endif ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-llong.c b/stdio-common/tst-printf-format-skeleton-llong.c +new file mode 100644 +index 0000000000000000..9a4b7a39af660ba3 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-llong.c +@@ -0,0 +1,29 @@ ++/* Test skeleton for formatted printf output for long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#define MID_WIDTH 15 ++#define HUGE_WIDTH 25 ++#define REF_FMT "lli" ++#define REF_VAL(v) (v) ++typedef long long int type_t; ++static const type_t vals[] = { LLONG_MIN, -123, -1, 0, 1, 42, LLONG_MAX }; ++static const char length[] = "ll"; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-long.c b/stdio-common/tst-printf-format-skeleton-long.c +new file mode 100644 +index 0000000000000000..bf011b7fdb375fc6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-long.c +@@ -0,0 +1,29 @@ ++/* Test skeleton for formatted printf output for long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#define MID_WIDTH 15 ++#define HUGE_WIDTH 25 ++#define REF_FMT "li" ++#define REF_VAL(v) (v) ++typedef long int type_t; ++static const type_t vals[] = { LONG_MIN, -123, -1, 0, 1, 42, LONG_MAX }; ++static const char length[] = "l"; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-s.c b/stdio-common/tst-printf-format-skeleton-s.c +new file mode 100644 +index 0000000000000000..59aab9fc89836ec6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-s.c +@@ -0,0 +1,30 @@ ++/* Test skeleton for formatted printf output for the 's' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#define MID_WIDTH 5 ++#define HUGE_WIDTH 10 ++#define REF_FMT "s" ++#define REF_VAL(v) (v) ++typedef const char *type_t; ++static const type_t vals[] = ++ { "", "The", "quick", "brown fox", "jumps over the lazy dog" }; ++static const char length[] = ""; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-short.c b/stdio-common/tst-printf-format-skeleton-short.c +new file mode 100644 +index 0000000000000000..1b7c8c09d71df95a +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-short.c +@@ -0,0 +1,31 @@ ++/* Test skeleton for formatted printf output for short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#define MID_WIDTH 4 ++#define HUGE_WIDTH 7 ++#define REF_FMT "i" ++#define REF_VAL(v) ((((v) & 0xffff) ^ 0x8000) - 0x8000) ++typedef int type_t; ++static const type_t vals[] = ++ { SHRT_MIN - 123, SHRT_MIN - 1, SHRT_MIN, -123, -1, 0, 1, 42, SHRT_MAX, ++ SHRT_MAX + 1, SHRT_MAX + 42 }; ++static const char length[] = "h"; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-uchar.c b/stdio-common/tst-printf-format-skeleton-uchar.c +new file mode 100644 +index 0000000000000000..389188d746ffc508 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-uchar.c +@@ -0,0 +1,30 @@ ++/* Test skeleton for formatted printf output for unsigned char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#define MID_WIDTH 3 ++#define HUGE_WIDTH 4 ++#define REF_FMT "u" ++#define REF_VAL(v) ((v) & 0xff) ++typedef unsigned int type_t; ++static const type_t vals[] = ++ { 0, 1, 42, UCHAR_MAX, UCHAR_MAX + 1, UCHAR_MAX + 42 }; ++static const char length[] = "hh"; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-uint.c b/stdio-common/tst-printf-format-skeleton-uint.c +new file mode 100644 +index 0000000000000000..6a4159111402c467 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-uint.c +@@ -0,0 +1,29 @@ ++/* Test skeleton for formatted printf output for unsigned int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#define MID_WIDTH 7 ++#define HUGE_WIDTH 14 ++#define REF_FMT "u" ++#define REF_VAL(v) (v) ++typedef unsigned int type_t; ++static const type_t vals[] = { 0, 1, 42, UINT_MAX }; ++static const char length[] = ""; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-ullong.c b/stdio-common/tst-printf-format-skeleton-ullong.c +new file mode 100644 +index 0000000000000000..a2ad7893cfec8b11 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-ullong.c +@@ -0,0 +1,29 @@ ++/* Test skeleton for formatted printf output for unsigned long long int convs. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#define MID_WIDTH 14 ++#define HUGE_WIDTH 24 ++#define REF_FMT "llu" ++#define REF_VAL(v) (v) ++typedef unsigned long long int type_t; ++static const type_t vals[] = { 0, 1, 42, UINT_MAX, ULLONG_MAX }; ++static const char length[] = "ll"; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-ulong.c b/stdio-common/tst-printf-format-skeleton-ulong.c +new file mode 100644 +index 0000000000000000..05cd4e0efcc657e1 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-ulong.c +@@ -0,0 +1,29 @@ ++/* Test skeleton for formatted printf output for unsigned long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#define MID_WIDTH 14 ++#define HUGE_WIDTH 24 ++#define REF_FMT "lu" ++#define REF_VAL(v) (v) ++typedef unsigned long int type_t; ++static const type_t vals[] = { 0, 1, 42, ULONG_MAX }; ++static const char length[] = "l"; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton-ushort.c b/stdio-common/tst-printf-format-skeleton-ushort.c +new file mode 100644 +index 0000000000000000..5cc2e0283a54fa04 +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton-ushort.c +@@ -0,0 +1,30 @@ ++/* Test skeleton for formatted printf output for unsigned short int convs. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#define MID_WIDTH 3 ++#define HUGE_WIDTH 6 ++#define REF_FMT "u" ++#define REF_VAL(v) ((v) & 0xffff) ++typedef unsigned int type_t; ++static const type_t vals[] = ++ { 0, 1, 42, USHRT_MAX, USHRT_MAX + 1, USHRT_MAX + 42 }; ++static const char length[] = "h"; ++ ++#include "tst-printf-format-skeleton.c" +diff --git a/stdio-common/tst-printf-format-skeleton.c b/stdio-common/tst-printf-format-skeleton.c +new file mode 100644 +index 0000000000000000..e564d3a85395507e +--- /dev/null ++++ b/stdio-common/tst-printf-format-skeleton.c +@@ -0,0 +1,380 @@ ++/* Test skeleton for formatted printf output. ++ Copyright (C) 2024 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 ++ . */ ++ ++/* The following definitions have to be supplied by the source including ++ this skeleton: ++ ++ Macros: ++ MID_WIDTH Medium width/precision positive integer constant. Choose ++ such as to cause some, but not all the strings produced ++ to be truncated for the conversions handled. ++ HUGE_WIDTH Large width/precision positive integer constant. Choose ++ such as to cause none of the strings produced to be ++ truncated for the conversions handled. ++ REF_FMT Reference output format string. Use no flags and such ++ a precision and length modifier, where applicable, and ++ a conversion as to make sure the output produced allows ++ the original value to be reproduced. ++ REF_VAL(v) Reference value V transformation. For conversions with ++ a truncating length modifier define such as to reproduce ++ the truncation operation, otherwise let V pass through. ++ PREC [optional] Working precision positive integer constant. ++ Set to the number of binary digits in the significand for ++ the argument type handled; usually for floating-point ++ conversions only, but it may be required for 128-bit or ++ wider integer data types as well. ++ ++ Typedefs: ++ type_t Variadic function argument type. Define to the promoted ++ type corresponding to the conversion argument type ++ handled. ++ ++ Variables: ++ vals Array of TYPE_T values. Choose such as to cover boundary ++ and any special cases. ++ length Length modifier string. Define according to the ++ conversion argument type handled. ++ ++ The feature to be tested is wrapped into 'printf_under_test'. It is up ++ to the source including this skeleton if this is going to be a macro ++ or an actual function. ++ ++ See tst-*printf-format-*.c for usage examples. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Set to nonzero to select all possible tuples with repetitions of 1..n ++ elements from the set of flags as defined in FLAGS array below; n is ++ the length of FLAGS array. Otherwise select all possible tuples with ++ repetitions of 1..2 elements, followed by tuples of 3..n elements where ++ the index of each element k; k = 2..n in FLAGS is lower than the index ++ of element k-1 in FLAGS. */ ++#ifndef TST_PRINTF_DUPS ++# define TST_PRINTF_DUPS 0 ++#endif ++/* Set to nonzero to report the precision (number of significand digits) ++ required for floating-point calculations. */ ++#ifndef PREC ++# define PREC 0 ++#endif ++ ++/* The list of conversions permitted for the '#' flag, the '0' flag, ++ and precision respectively. */ ++#define HASH_FORMATS "boxXaAeEfFgG" ++#define ZERO_FORMATS "bdiouxXaAeEfFgG" ++#define PREC_FORMATS "bdiouxXaAeEfFgGs" ++ ++/* Output format conversion flags. */ ++static struct ++{ ++ /* Flag character. */ ++ char f; ++ /* List of conversion specifiers the flag is valid for; NULL if all. */ ++ const char *s; ++} const flags[] = ++ { {'-'}, {'+'}, {' '}, {'#', HASH_FORMATS}, {'0', ZERO_FORMATS} }; ++ ++/* Helper to initialize elements of the PW array for the width and ++ precision to be specified as a positive integer directly in the ++ format, and then as both a negative and a positive argument to '*'. */ ++#define STR(v) #v ++#define WPINIT(v) {0, STR (v)}, {v, NULL}, {-v, NULL} ++ ++/* Width and precision settings to iterate over; zero is initialized ++ directly as it has no corresponding negated value and other values ++ use the helper above. */ ++static struct wp ++{ ++ /* Integer argument to '*', used if S is NULL. */ ++ int i; ++ /* String denoting an integer to use in the format, or NULL to use '*'. */ ++ const char *s; ++} const wp[] = ++ { {0, "0"}, {0, NULL}, WPINIT (1), WPINIT (2), ++ WPINIT (MID_WIDTH), WPINIT (HUGE_WIDTH) }; ++ ++/* Produce a record according to '%' and zero or more output format flags ++ already provided in FMT at indices 0..IDX-1, width W if non-NULL, '.' ++ precision specifier if POINT set to true, precision P if non-NULL, ++ any length modifiers L, conversion C, and value VAL. ++ ++ Record formats produced: ++ ++ %:: ++ %.:: ++ %:: ++ %.:: ++ %.

:: ++ %.

:: ++ %*::: ++ %*.::: ++ %.*:

:: ++ %*.*::

:: ++ ++ Return 0 on success, -1 on failure. */ ++ ++static int ++do_printf (char *fmt, size_t idx, ++ const struct wp *w, bool point, const struct wp *p, ++ const char *l, char c, type_t val) ++{ ++ int wpval[2] = { 0 }; ++ size_t nint = 0; ++ int result; ++ size_t i; ++ ++ if (w != NULL) ++ { ++ if (w->s == NULL) ++ { ++ fmt[idx++] = '*'; ++ wpval[nint++] = w->i; ++ } ++ else ++ for (i = 0; w->s[i] != '\0'; i++) ++ fmt[idx++] = w->s[i]; ++ } ++ if (point) ++ fmt[idx++] = '.'; ++ if (p != NULL) ++ { ++ if (p->s == NULL) ++ { ++ fmt[idx++] = '*'; ++ wpval[nint++] = p->i; ++ } ++ else ++ for (i = 0; p->s[i] != '\0'; i++) ++ fmt[idx++] = p->s[i]; ++ } ++ for (i = 0; length[i] != '\0'; i++) ++ fmt[idx++] = length[i]; ++ fmt[idx++] = c; ++ fmt[idx] = ':'; ++ fmt[idx + 1] = '\0'; ++ if (fputs (fmt, stdout) == EOF) ++ { ++ perror ("fputs"); ++ return -1; ++ } ++ fmt[idx++] = '\0'; ++ if (nint > 0) ++ { ++ result = printf ("%i:", wpval[0]); ++ if (result < 0) ++ { ++ perror ("printf"); ++ return -1; ++ } ++ if (nint > 1) ++ { ++ result = printf ("%i:", wpval[1]); ++ if (result < 0) ++ { ++ perror ("printf"); ++ return -1; ++ } ++ } ++ } ++ switch (nint) ++ { ++ case 0: ++ result = printf_under_test (fmt, val); ++ break; ++ case 1: ++ result = printf_under_test (fmt, wpval[0], val); ++ break; ++ case 2: ++ result = printf_under_test (fmt, wpval[0], wpval[1], val); ++ break; ++ default: ++ fputs ("Broken test, nint > 2\n", stderr); ++ return -1; ++ } ++ if (result < 0) ++ return -1; ++ if (fputs (":\n", stdout) == EOF) ++ { ++ perror ("fputs"); ++ return -1; ++ } ++ return 0; ++} ++ ++/* Produce a list of records according to '%' and zero or more output ++ format flags already provided in FMT at indices 0..IDX-1, iterating ++ over widths and precisions defined in global WP array, any length ++ modifiers L, conversion C, and value VAL. Inline '0' is omitted for ++ the width, as it is a flag already handled among the flags supplied. ++ Precision is omitted where the conversion does not allow it. ++ ++ Return 0 on success, -1 on failure. */ ++ ++static int ++do_printf_flags (char *fmt, size_t idx, const char *l, char c, type_t val) ++{ ++ bool do_prec = strchr (PREC_FORMATS, c) != NULL; ++ size_t i; ++ ++ if (do_printf (fmt, idx, NULL, false, NULL, l, c, val) < 0) ++ return -1; ++ if (do_prec && do_printf (fmt, idx, NULL, true, NULL, l, c, val) < 0) ++ return -1; ++ for (i = 0; i < array_length (wp); i++) ++ { ++ size_t j; ++ ++ if (do_prec && do_printf (fmt, idx, NULL, true, wp + i, l, c, val) < 0) ++ return -1; ++ /* Inline '0' is a flag rather than width and is handled elsewhere. */ ++ if (wp[i].s != NULL && wp[i].s[0] == '0' && wp[i].s[1] == '\0') ++ continue; ++ if (do_printf (fmt, idx, wp + i, false, NULL, l, c, val) < 0) ++ return -1; ++ if (do_prec) ++ { ++ if (do_printf (fmt, idx, wp + i, true, NULL, l, c, val) < 0) ++ return -1; ++ for (j = 0; j < array_length (wp); j++) ++ if (do_printf (fmt, idx, wp + i, true, wp + j, l, c, val) < 0) ++ return -1; ++ } ++ } ++ return 0; ++} ++ ++/* Produce a list of records using the formatted output specifier ++ supplied in ARGV[1] preceded by any length modifier supplied in ++ the global LENGTH variable, iterating over format flags defined ++ in the global FLAGS array, and values supplied in the global VALS ++ array. Note that the output specifier supplied is not verified ++ against TYPE_T, so undefined behavior will result if this is used ++ incorrectly. ++ ++ If PREC is nonzero, then this record: ++ ++ prec: ++ ++ is produced at the beginning. Then for each VAL from VALS a block ++ of records is produced starting with: ++ ++ val: ++ ++ where VAL is formatted according to REF_FMT output format. The ++ block continues with records as shown with DO_PRINTF above using ++ flags iterated over according to TST_PRINTF_DUPS. ++ ++ See the top of this file for the definitions that have to be ++ provided by the source including this skeleton. */ ++ ++static int ++do_test (int argc, char *argv[]) ++{ ++ char fmt[100] = {'%'}; ++ size_t j; ++ size_t v; ++ char c; ++ ++ if (argc < 2 || *argv[1] == '\0') ++ { ++ fprintf (stderr, "Usage: %s \n", basename (argv[0])); ++ return EXIT_FAILURE; ++ } ++ ++ mtrace (); ++ ++ if (PREC && printf ("prec:%i\n", PREC) < 0) ++ { ++ perror ("printf"); ++ return EXIT_FAILURE; ++ } ++ ++ c = *argv[1]; ++ for (v = 0; v < array_length (vals); v++) ++ { ++ if (printf ("val:%" REF_FMT "\n", REF_VAL (vals[v])) < 0) ++ { ++ perror ("printf"); ++ return EXIT_FAILURE; ++ } ++ ++ if (do_printf_flags (fmt, 1, length, c, vals[v]) < 0) ++ return EXIT_FAILURE; ++ for (j = 0; j < array_length (flags); j++) ++ { ++ bool done = false; ++ size_t i[j + 1]; ++ size_t k; ++ ++ memset (i, 0, sizeof (i)); ++ while (!done) ++ { ++ bool skip = false; ++ size_t idx = 1; ++ char f; ++ ++ for (k = 0; k <= j; k++) ++ { ++ const char *s = flags[i[k]].s; ++ ++ if (s && strchr (s, c) == NULL) ++ skip = true; ++ if (!TST_PRINTF_DUPS && j > 1 && k > 0 && i[k] >= i[k - 1]) ++ skip = true; ++ if (skip) ++ break; ++ ++ f = flags[i[k]].f; ++ fmt[idx++] = f; ++ } ++ if (!skip && do_printf_flags (fmt, idx, length, c, vals[v]) < 0) ++ return EXIT_FAILURE; ++ for (k = 0; k <= j; k++) ++ { ++ i[k]++; ++ if (i[k] < array_length (flags)) ++ break; ++ else if (k == j) ++ done = true; ++ else ++ i[k] = 0; ++ } ++ } ++ } ++ } ++ ++ return EXIT_SUCCESS; ++} ++ ++/* Interpose 'dladdr' with a stub to speed up malloc tracing. */ ++ ++int ++dladdr (const void *, Dl_info *) ++{ ++ return 0; ++} ++ ++#define TEST_FUNCTION_ARGV do_test ++#include +diff --git a/stdio-common/tst-printf-format-uchar.sh b/stdio-common/tst-printf-format-uchar.sh +new file mode 100644 +index 0000000000000000..8385d479cccf597f +--- /dev/null ++++ b/stdio-common/tst-printf-format-uchar.sh +@@ -0,0 +1,40 @@ ++#!/bin/bash ++# Testing of unsigned char printf conversions. ++# Copyright (C) 2024 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 ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=0 ++ ++for f in o u x X; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-uchar $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-uint.sh b/stdio-common/tst-printf-format-uint.sh +new file mode 100644 +index 0000000000000000..6806c99ce0470f1a +--- /dev/null ++++ b/stdio-common/tst-printf-format-uint.sh +@@ -0,0 +1,53 @@ ++#!/bin/bash ++# Testing of unsigned int printf conversions. ++# Copyright (C) 2024 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 ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=77 ++ ++# Verify that AWK can handle the range required. It also catches: ++# "gawk: warning: -M ignored: MPFR/GMP support not compiled in" ++# message produced where bignum support is not there, which is the ++# only indication as the use of '-M' does not affect the exit status ++# in this case. ++ref="4294967295" ++for AWK in "$AWK -M" "$AWK"; do ++ val=$(echo "$ref" | $AWK '{ printf "%d\n", $1 }' 2>&1) || continue ++ test "$val" = "$ref" && status=0 && break ++done ++ ++test $status -eq 0 || { echo "No working AWK found" && exit $status; } ++ ++for f in o u x X; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-uint $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-ullong.sh b/stdio-common/tst-printf-format-ullong.sh +new file mode 100644 +index 0000000000000000..c4fa69c2d16f85ce +--- /dev/null ++++ b/stdio-common/tst-printf-format-ullong.sh +@@ -0,0 +1,53 @@ ++#!/bin/bash ++# Testing of unsigned long long int printf conversions. ++# Copyright (C) 2024 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 ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=77 ++ ++# Verify that AWK can handle the range required. It also catches: ++# "gawk: warning: -M ignored: MPFR/GMP support not compiled in" ++# message produced where bignum support is not there, which is the ++# only indication as the use of '-M' does not affect the exit status ++# in this case. ++ref="18446744073709551615" ++for AWK in "$AWK -M" "$AWK"; do ++ val=$(echo "$ref" | $AWK '{ printf "%d\n", $1 }' 2>&1) || continue ++ test "$val" = "$ref" && status=0 && break ++done ++ ++test $status -eq 0 || { echo "No working AWK found" && exit $status; } ++ ++for f in o u x X; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-ullong $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-ulong.sh b/stdio-common/tst-printf-format-ulong.sh +new file mode 100644 +index 0000000000000000..fce881afe3c0be72 +--- /dev/null ++++ b/stdio-common/tst-printf-format-ulong.sh +@@ -0,0 +1,53 @@ ++#!/bin/bash ++# Testing of unsigned long int printf conversions. ++# Copyright (C) 2024 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 ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=77 ++ ++# Verify that AWK can handle the range required. It also catches: ++# "gawk: warning: -M ignored: MPFR/GMP support not compiled in" ++# message produced where bignum support is not there, which is the ++# only indication as the use of '-M' does not affect the exit status ++# in this case. ++ref="18446744073709551615" ++for AWK in "$AWK -M" "$AWK"; do ++ val=$(echo "$ref" | $AWK '{ printf "%d\n", $1 }' 2>&1) || continue ++ test "$val" = "$ref" && status=0 && break ++done ++ ++test $status -eq 0 || { echo "No working AWK found" && exit $status; } ++ ++for f in o u x X; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-ulong $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format-ushort.sh b/stdio-common/tst-printf-format-ushort.sh +new file mode 100644 +index 0000000000000000..2f411b777e67e220 +--- /dev/null ++++ b/stdio-common/tst-printf-format-ushort.sh +@@ -0,0 +1,40 @@ ++#!/bin/bash ++# Testing of unsigned short int printf conversions. ++# Copyright (C) 2024 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 ++# . ++ ++set -e ++ ++xprintf=$1; shift ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++AWK=${AWK:-awk} ++ ++status=0 ++ ++for f in o u x X; do ++ echo Verifying $f ++ (set -o pipefail ++ ${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-printf-format-${xprintf}-ushort $f | ++ $AWK -f tst-printf-format.awk 2>&1 | ++ head -n 1 | sed "s/^/Conversion $f output error, first line:\n/") 2>&1 || ++ status=1 ++done ++ ++exit $status +diff --git a/stdio-common/tst-printf-format.awk b/stdio-common/tst-printf-format.awk +new file mode 100644 +index 0000000000000000..8b4bc7b1e45202eb +--- /dev/null ++++ b/stdio-common/tst-printf-format.awk +@@ -0,0 +1,127 @@ ++# Testing of printf conversions. ++# Copyright (C) 2024 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 ++# . ++ ++BEGIN { ++ FS = ":" ++} ++ ++/^prec:/ { ++ PREC = $2 ++ next ++} ++ ++/^val:/ { ++ val = $2 ++ # Prepend "+" for +Inf or +NaN value lacking a sign, because gawk ++ # interpretes them as strings rather than numeric values in the ++ # non-bignum mode unless a sign has been explicitly given. Keep ++ # original 'val' for reporting. ++ value = gensub(/^(INF|NAN|inf|nan)/, "+\\1", 1, val) ++ next ++} ++ ++/^%/ { ++ # Discard the trailing empty field, used to improve legibility of data. ++ input = $--NF ++ format = $1 ++ width = $2 ++ precision = "." $(NF - 1) ++ # Discard any negative precision, which is to be taken as if omitted. ++ sub(/\.-.*/, "", precision) ++ # Simplify handling and paste the precision and width specified as ++ # arguments to '*' directly into the format. ++ sub(/\.\*/, precision, format) ++ sub(/\*/, width, format) ++ # Discard length modifiers. They are only relevant to C data types. ++ sub(/([DHLjhltz]|wf?[1-9][0-9]*)/, "", format) ++ # Discard the '#' flag with the octal conversion if output starts with ++ # 0 in the absence of this flag. In that case no extra 0 is supposed ++ # to be produced, but gawk prepends it anyway. ++ if (format ~ /#.*o/) ++ { ++ tmpfmt = gensub(/#/, "", "g", format) ++ tmpout = sprintf(tmpfmt, value) ++ if (tmpout ~ /^ *0/) ++ format = tmpfmt ++ } ++ # Likewise with the hexadecimal conversion where zero value with the ++ # precision of zero is supposed to produce no characters, but gawk ++ # outputs 0 instead. ++ else if (format ~ /#.*[Xx]/) ++ { ++ tmpfmt = gensub(/#/, "", "g", format) ++ tmpout = sprintf(tmpfmt, value) ++ if (tmpout ~ /^ *$/) ++ format = tmpfmt ++ } ++ # AWK interpretes input opportunistically as a number, which interferes ++ # with how the 'c' conversion works: "a" input will result in "a" output ++ # however "0" input will result in "^@" output rather than "0". Force ++ # the value to be interpreted as a string then, by appending "". ++ output = sprintf(format, value "") ++ # Make up for various anomalies with the handling of +/-Inf and +/-NaN ++ # values and reprint the output produced using the string conversion, ++ # with the field width carried over and the relevant flags handled by ++ # hand. ++ if (format ~ /[EFGefg]/ && value ~ /(INF|NAN|inf|nan)/) ++ { ++ minus = format ~ /-/ ? "-" : "" ++ sign = value ~ /-/ ? "-" : format ~ /\+/ ? "+" : format ~ / / ? " " : "" ++ if (format ~ /^%[^\.1-9]*[1-9][0-9]*/) ++ width = gensub(/^%[^\.1-9]*([1-9][0-9]*).*$/, "\\1", 1, format) ++ else ++ width = "" ++ output = gensub(/[-+ ]/, "", "g", output) ++ output = sprintf("%" minus width "s", sign output) ++ } ++ # Produce "+" where the '+' flag has been used with a signed integer ++ # conversion for zero value, observing any field width in effect. ++ # In that case "+" is always supposed to be produced, but with the ++ # precision of zero gawk in the non-bignum mode produces any padding ++ # requested only. ++ else if (format ~ /\+.*[di]/ && value == 0) ++ { ++ output = gensub(/^( *) $/, format ~ /-/ ? "+\\1" : "\\1+", 1, output) ++ output = gensub(/^$/, "+", 1, output) ++ } ++ # Produce " " where the space flag has been used with a signed integer ++ # conversion for zero value. In that case at least one " " is ++ # supposed to be produced, but with the precision of zero gawk in the ++ # non-bignum mode produces nothing. ++ else if (format ~ / .*[di]/ && value == 0) ++ { ++ output = gensub(/^$/, " ", 1, output) ++ } ++ if (output != input) ++ { ++ printf "(\"%s\"%s%s, %s) => \"%s\", expected \"%s\"\n", \ ++ $1, (NF > 2 ? ", " $2 : ""), (NF > 3 ? ", " $3 : ""), val, \ ++ input, output > "/dev/stderr" ++ status = 1 ++ } ++ next ++} ++ ++{ ++ printf "unrecognized input: \"%s\"\n", $0 > "/dev/stderr" ++ status = 1 ++} ++ ++END { ++ exit status ++} +diff --git a/stdio-common/tst-printf-format.sh b/stdio-common/tst-printf-format.sh +new file mode 100644 +index 0000000000000000..466c4a5f4feac231 +--- /dev/null ++++ b/stdio-common/tst-printf-format.sh +@@ -0,0 +1,39 @@ ++#!/bin/bash ++# Formatted printf output test script dispatcher. ++# Copyright (C) 2024 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 ++# . ++ ++set -e ++ ++output=${1##*/}; shift ++ ++tmp=${output#tst-printf-format-} ++tmp=${tmp%.out} ++ ++# We are given the name of the make target in $1. With the common prefix ++# and suffix both removed we are left with the inner part, which encodes ++# the function under test, the conversion type, and optionally the format ++# specifier, all separated with hyphens, i.e. F-T-S or F-T. Extract them ++# and call the script corresponding to the conversion type, passing the ++# function under test and any format specifier as arguments. ++ ++xprintf=${tmp%%-*}; tmp=${tmp#*-} ++conv=${tmp%%-*}; tmp=${tmp#${conv}} ++fmt=${tmp#*-} ++script=tst-printf-format-$conv.sh ++ ++exec ${BASH:-bash} $script $xprintf $fmt "$@" diff --git a/glibc-RHEL-119390-10.patch b/glibc-RHEL-119390-10.patch new file mode 100644 index 0000000..f4d19b4 --- /dev/null +++ b/glibc-RHEL-119390-10.patch @@ -0,0 +1,428 @@ +commit 6018ba05c01b1e17d77742a123e8c443f8fc713c +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted vfprintf output specifiers + + Wire vfprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 01018c53b0f4a13f..65f3ddc13141e4d6 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -24,7 +24,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d f s sn v vas vd ++xprintf-funcs := p as d f s sn v vas vd vf + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-vf-c.c b/stdio-common/tst-printf-format-vf-c.c +new file mode 100644 +index 0000000000000000..b31b551327bb4ebe +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for the 'c' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-vf-char.c b/stdio-common/tst-printf-format-vf-char.c +new file mode 100644 +index 0000000000000000..daa2886adb9f1636 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for signed char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-vf-double.c b/stdio-common/tst-printf-format-vf-double.c +new file mode 100644 +index 0000000000000000..63ec8c0cae6c272e +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-vf-int.c b/stdio-common/tst-printf-format-vf-int.c +new file mode 100644 +index 0000000000000000..e687099b1052d040 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-vf-ldouble.c b/stdio-common/tst-printf-format-vf-ldouble.c +new file mode 100644 +index 0000000000000000..801e359dab8ca159 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for long double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-vf-llong.c b/stdio-common/tst-printf-format-vf-llong.c +new file mode 100644 +index 0000000000000000..a1b9ae340c4aa5ff +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-vf-long.c b/stdio-common/tst-printf-format-vf-long.c +new file mode 100644 +index 0000000000000000..7afc127b844d1e10 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-vf-s.c b/stdio-common/tst-printf-format-vf-s.c +new file mode 100644 +index 0000000000000000..6faa6d0dfe4b4132 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for the 's' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-vf-short.c b/stdio-common/tst-printf-format-vf-short.c +new file mode 100644 +index 0000000000000000..c3d17ca501974f83 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-vf-uchar.c b/stdio-common/tst-printf-format-vf-uchar.c +new file mode 100644 +index 0000000000000000..643438c693abf51f +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for unsigned char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-vf-uint.c b/stdio-common/tst-printf-format-vf-uint.c +new file mode 100644 +index 0000000000000000..844192cc9ccf5db8 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for unsigned int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-vf-ullong.c b/stdio-common/tst-printf-format-vf-ullong.c +new file mode 100644 +index 0000000000000000..ab58abd7f8c4e267 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-vf-ulong.c b/stdio-common/tst-printf-format-vf-ulong.c +new file mode 100644 +index 0000000000000000..e76251f9d0e3337f +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-vf-ushort.c b/stdio-common/tst-printf-format-vf-ushort.c +new file mode 100644 +index 0000000000000000..bf78a919a6599054 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vfprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vf.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-vf.h b/stdio-common/tst-printf-format-vf.h +new file mode 100644 +index 0000000000000000..f824364f4c041ab8 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vf.h +@@ -0,0 +1,34 @@ ++/* Test feature wrapper for formatted 'vfprintf' output. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++ ++static int ++printf_under_test (const char *restrict fmt, ...) ++{ ++ va_list ap; ++ int result; ++ ++ va_start (ap, fmt); ++ result = vfprintf (stdout, fmt, ap); ++ va_end (ap); ++ if (result < 0) ++ perror ("vfprintf"); ++ return result; ++} diff --git a/glibc-RHEL-119390-11.patch b/glibc-RHEL-119390-11.patch new file mode 100644 index 0000000..c0023ee --- /dev/null +++ b/glibc-RHEL-119390-11.patch @@ -0,0 +1,458 @@ +commit ac72dd90905e1693c108c9f36f0c7e79d6ad5501 +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted vsprintf output specifiers + + Wire vsprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 65f3ddc13141e4d6..529fc90945524a7b 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -24,7 +24,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d f s sn v vas vd vf ++xprintf-funcs := p as d f s sn v vas vd vf vs + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-vs-c.c b/stdio-common/tst-printf-format-vs-c.c +new file mode 100644 +index 0000000000000000..72bcb5f04957c4ef +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for the 'c' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-vs-char.c b/stdio-common/tst-printf-format-vs-char.c +new file mode 100644 +index 0000000000000000..30135cf1be1616ac +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for signed char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-vs-double.c b/stdio-common/tst-printf-format-vs-double.c +new file mode 100644 +index 0000000000000000..56290d383ebc33c8 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-vs-int.c b/stdio-common/tst-printf-format-vs-int.c +new file mode 100644 +index 0000000000000000..f954e1f4f8277c64 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-vs-ldouble.c b/stdio-common/tst-printf-format-vs-ldouble.c +new file mode 100644 +index 0000000000000000..3088e42813abd537 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for long double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-vs-llong.c b/stdio-common/tst-printf-format-vs-llong.c +new file mode 100644 +index 0000000000000000..348ec2c3d73b8f88 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-vs-long.c b/stdio-common/tst-printf-format-vs-long.c +new file mode 100644 +index 0000000000000000..874e3ba479eda8fb +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-vs-s.c b/stdio-common/tst-printf-format-vs-s.c +new file mode 100644 +index 0000000000000000..051f1b79bf2cb028 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for the 's' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-vs-short.c b/stdio-common/tst-printf-format-vs-short.c +new file mode 100644 +index 0000000000000000..36595a82b445e8a3 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-vs-uchar.c b/stdio-common/tst-printf-format-vs-uchar.c +new file mode 100644 +index 0000000000000000..8e35614110bd7d57 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for unsigned char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-vs-uint.c b/stdio-common/tst-printf-format-vs-uint.c +new file mode 100644 +index 0000000000000000..4a13d6c409ad4245 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for unsigned int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-vs-ullong.c b/stdio-common/tst-printf-format-vs-ullong.c +new file mode 100644 +index 0000000000000000..313dfaf02bda3059 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-vs-ulong.c b/stdio-common/tst-printf-format-vs-ulong.c +new file mode 100644 +index 0000000000000000..5ab7e2e7fe9b237a +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-vs-ushort.c b/stdio-common/tst-printf-format-vs-ushort.c +new file mode 100644 +index 0000000000000000..a4af138a2f8485ab +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vs.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-vs.h b/stdio-common/tst-printf-format-vs.h +new file mode 100644 +index 0000000000000000..e00e1b085bc58150 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vs.h +@@ -0,0 +1,64 @@ ++/* Test feature wrapper for formatted 'vsprintf' output. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++ ++#define SPRINTF_BUFFER_SIZE 65536 ++ ++static struct support_next_to_fault ntf; ++ ++#define PREPARE printf_under_test_init ++static void ++printf_under_test_init (int argc, char **argv) ++{ ++ ntf = support_next_to_fault_allocate (SPRINTF_BUFFER_SIZE); ++} ++ ++static void __attribute__ ((destructor)) ++printf_under_test_fini (void) ++{ ++ support_next_to_fault_free (&ntf); ++} ++ ++static int ++printf_under_test (const char *restrict fmt, ...) ++{ ++ char *str = ntf.buffer; ++ va_list ap; ++ int result; ++ ++ va_start (ap, fmt); ++ result = vsprintf (str, fmt, ap); ++ va_end (ap); ++ if (result < 0) ++ { ++ perror ("vsprintf"); ++ goto out; ++ } ++ if (fwrite (str, sizeof (*str), result, stdout) != result) ++ { ++ perror ("fwrite"); ++ result = -1; ++ } ++out: ++ return result; ++} diff --git a/glibc-RHEL-119390-12.patch b/glibc-RHEL-119390-12.patch new file mode 100644 index 0000000..e610d51 --- /dev/null +++ b/glibc-RHEL-119390-12.patch @@ -0,0 +1,458 @@ +commit 11a2169e4066e6b848f1e6e4c31ec4e2210cecd8 +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted vsnprintf output specifiers + + Wire vsnprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 529fc90945524a7b..cb86a6259ff5823b 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -24,7 +24,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d f s sn v vas vd vf vs ++xprintf-funcs := p as d f s sn v vas vd vf vs vsn + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-vsn-c.c b/stdio-common/tst-printf-format-vsn-c.c +new file mode 100644 +index 0000000000000000..47c8a0f5dfbddb49 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for the 'c' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-vsn-char.c b/stdio-common/tst-printf-format-vsn-char.c +new file mode 100644 +index 0000000000000000..48d4393a46d80e33 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for signed char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-vsn-double.c b/stdio-common/tst-printf-format-vsn-double.c +new file mode 100644 +index 0000000000000000..06c1003fb5fde4b0 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-vsn-int.c b/stdio-common/tst-printf-format-vsn-int.c +new file mode 100644 +index 0000000000000000..2aae92616f2f6007 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-vsn-ldouble.c b/stdio-common/tst-printf-format-vsn-ldouble.c +new file mode 100644 +index 0000000000000000..0b5aafb124307526 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for long double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-vsn-llong.c b/stdio-common/tst-printf-format-vsn-llong.c +new file mode 100644 +index 0000000000000000..8e79b8384f6858c6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-vsn-long.c b/stdio-common/tst-printf-format-vsn-long.c +new file mode 100644 +index 0000000000000000..e94f7dec23ece2ca +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-vsn-s.c b/stdio-common/tst-printf-format-vsn-s.c +new file mode 100644 +index 0000000000000000..efd8a4c23f5f42e6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for the 's' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-vsn-short.c b/stdio-common/tst-printf-format-vsn-short.c +new file mode 100644 +index 0000000000000000..3d375b59e7a990f0 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-vsn-uchar.c b/stdio-common/tst-printf-format-vsn-uchar.c +new file mode 100644 +index 0000000000000000..6d0f396481d3e2d6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for unsigned char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-vsn-uint.c b/stdio-common/tst-printf-format-vsn-uint.c +new file mode 100644 +index 0000000000000000..b637f7bdb11f7913 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for unsigned int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-vsn-ullong.c b/stdio-common/tst-printf-format-vsn-ullong.c +new file mode 100644 +index 0000000000000000..d2442715f087acaf +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-vsn-ulong.c b/stdio-common/tst-printf-format-vsn-ulong.c +new file mode 100644 +index 0000000000000000..67417d174043a605 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-vsn-ushort.c b/stdio-common/tst-printf-format-vsn-ushort.c +new file mode 100644 +index 0000000000000000..396ea43ae7067c86 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vsnprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vsn.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-vsn.h b/stdio-common/tst-printf-format-vsn.h +new file mode 100644 +index 0000000000000000..4f25f1af767dc221 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vsn.h +@@ -0,0 +1,64 @@ ++/* Test feature wrapper for formatted 'vsnprintf' output. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++ ++#define SPRINTF_BUFFER_SIZE 65536 ++ ++static struct support_next_to_fault ntf; ++ ++#define PREPARE printf_under_test_init ++static void ++printf_under_test_init (int argc, char **argv) ++{ ++ ntf = support_next_to_fault_allocate (SPRINTF_BUFFER_SIZE); ++} ++ ++static void __attribute__ ((destructor)) ++printf_under_test_fini (void) ++{ ++ support_next_to_fault_free (&ntf); ++} ++ ++static int ++printf_under_test (const char *restrict fmt, ...) ++{ ++ char *str = ntf.buffer; ++ va_list ap; ++ int result; ++ ++ va_start (ap, fmt); ++ result = vsnprintf (str, ntf.length, fmt, ap); ++ va_end (ap); ++ if (result < 0) ++ { ++ perror ("vsnprintf"); ++ goto out; ++ } ++ if (fwrite (str, sizeof (*str), result, stdout) != result) ++ { ++ perror ("fwrite"); ++ result = -1; ++ } ++out: ++ return result; ++} diff --git a/glibc-RHEL-119390-2.patch b/glibc-RHEL-119390-2.patch new file mode 100644 index 0000000..2758db4 --- /dev/null +++ b/glibc-RHEL-119390-2.patch @@ -0,0 +1,459 @@ +commit b350a60b6ecd77b7ec30c7969de1df8b73642e55 +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted asprintf output specifiers + + Wire asprintf into test infrastructure for formatted printf output + specifiers. + + Owing to mtrace logging of lots of memory allocation calls these tests + take a considerable amount of time to complete, except for the character + conversion, taking from 00m20s for 'tst-printf-format-as-s --direct s', + through 01m10s and 03m53s for 'tst-printf-format-as-char --direct i' and + 'tst-printf-format-as-double --direct f' respectively, to 19m24s for + 'tst-printf-format-as-ldouble --direct f', all in standalone execution + from NFS on a RISC-V FU740@1.2GHz system and with output redirected over + 100Mbps network via SSH. It is with the skeleton's stub implementation + of dladdr(3); execution times with regular dladdr(3) are up to over + twice longer. + + Set timeouts for the tests accordingly then, with a global default for + all the asprintf tests, and then individual higher settings for double + and long double tests each. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 3e50c5a20ed7e679..54fb75e6232ddc2a 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -24,7 +24,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p ++xprintf-funcs := p as + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-as-c.c b/stdio-common/tst-printf-format-as-c.c +new file mode 100644 +index 0000000000000000..9eaf7aec73201b4d +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for the 'c' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-as-char.c b/stdio-common/tst-printf-format-as-char.c +new file mode 100644 +index 0000000000000000..d9266d5760fb8808 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for signed char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-as-double.c b/stdio-common/tst-printf-format-as-double.c +new file mode 100644 +index 0000000000000000..370ce8c11bd94fe8 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'asprintf' output for double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#define TIMEOUT (DEFAULT_TIMEOUT * 32) ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-as-int.c b/stdio-common/tst-printf-format-as-int.c +new file mode 100644 +index 0000000000000000..e6e10a9769f079a4 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-as-ldouble.c b/stdio-common/tst-printf-format-as-ldouble.c +new file mode 100644 +index 0000000000000000..e7f72208cec76078 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'asprintf' output for long double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#define TIMEOUT (DEFAULT_TIMEOUT * 128) ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-as-llong.c b/stdio-common/tst-printf-format-as-llong.c +new file mode 100644 +index 0000000000000000..beaad73c235c344e +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-as-long.c b/stdio-common/tst-printf-format-as-long.c +new file mode 100644 +index 0000000000000000..7d968a873c3b5e29 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-as-s.c b/stdio-common/tst-printf-format-as-s.c +new file mode 100644 +index 0000000000000000..baa883d5316cbf2f +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for the 's' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-as-short.c b/stdio-common/tst-printf-format-as-short.c +new file mode 100644 +index 0000000000000000..8d0b078815f299a6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-as-uchar.c b/stdio-common/tst-printf-format-as-uchar.c +new file mode 100644 +index 0000000000000000..8e46254a2f32b457 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for unsigned char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-as-uint.c b/stdio-common/tst-printf-format-as-uint.c +new file mode 100644 +index 0000000000000000..8cf38d71a2f53358 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for unsigned int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-as-ullong.c b/stdio-common/tst-printf-format-as-ullong.c +new file mode 100644 +index 0000000000000000..30b31ed8f7b36ae1 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-as-ulong.c b/stdio-common/tst-printf-format-as-ulong.c +new file mode 100644 +index 0000000000000000..9b108aa2b5132686 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-as-ushort.c b/stdio-common/tst-printf-format-as-ushort.c +new file mode 100644 +index 0000000000000000..44b912fc38c46d28 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'asprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-as.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-as.h b/stdio-common/tst-printf-format-as.h +new file mode 100644 +index 0000000000000000..c30d2e2c42822f24 +--- /dev/null ++++ b/stdio-common/tst-printf-format-as.h +@@ -0,0 +1,46 @@ ++/* Test feature wrapper for formatted 'asprintf' output. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++ ++#define printf_under_test(...) \ ++({ \ ++ __label__ out; \ ++ int result; \ ++ char *str; \ ++ \ ++ result = asprintf (&str, __VA_ARGS__); \ ++ if (result < 0) \ ++ { \ ++ perror ("asprintf"); \ ++ goto out; \ ++ } \ ++ if (fwrite (str, sizeof (*str), result, stdout) != result) \ ++ { \ ++ perror ("fwrite"); \ ++ result = -1; \ ++ } \ ++ free (str); \ ++out: \ ++ result; \ ++}) ++ ++#ifndef TIMEOUT ++# define TIMEOUT (DEFAULT_TIMEOUT * 12) ++#endif diff --git a/glibc-RHEL-119390-3.patch b/glibc-RHEL-119390-3.patch new file mode 100644 index 0000000..fba5e0f --- /dev/null +++ b/glibc-RHEL-119390-3.patch @@ -0,0 +1,452 @@ +commit b3e8a756ad569fd31181b74b3729d29df3eb55f3 +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted dprintf output specifiers + + Wire dprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 54fb75e6232ddc2a..850bc89517931652 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -24,7 +24,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as ++xprintf-funcs := p as d + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-d-c.c b/stdio-common/tst-printf-format-d-c.c +new file mode 100644 +index 0000000000000000..61fd06654d2a957e +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for the 'c' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-d-char.c b/stdio-common/tst-printf-format-d-char.c +new file mode 100644 +index 0000000000000000..baa6e1683e923841 +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for signed char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-d-double.c b/stdio-common/tst-printf-format-d-double.c +new file mode 100644 +index 0000000000000000..e432a9570d46e776 +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-d-int.c b/stdio-common/tst-printf-format-d-int.c +new file mode 100644 +index 0000000000000000..6d59b23517b54a85 +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-d-ldouble.c b/stdio-common/tst-printf-format-d-ldouble.c +new file mode 100644 +index 0000000000000000..67a2bae1bc4e0301 +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for long double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-d-llong.c b/stdio-common/tst-printf-format-d-llong.c +new file mode 100644 +index 0000000000000000..950a2b84b9fc1abc +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-d-long.c b/stdio-common/tst-printf-format-d-long.c +new file mode 100644 +index 0000000000000000..4fabb41b0b013011 +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-d-s.c b/stdio-common/tst-printf-format-d-s.c +new file mode 100644 +index 0000000000000000..1ef896e6e7d146bc +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for the 's' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-d-short.c b/stdio-common/tst-printf-format-d-short.c +new file mode 100644 +index 0000000000000000..17767bb30d2f0d3e +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-d-uchar.c b/stdio-common/tst-printf-format-d-uchar.c +new file mode 100644 +index 0000000000000000..732479ecab2cdc4e +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for unsigned char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-d-uint.c b/stdio-common/tst-printf-format-d-uint.c +new file mode 100644 +index 0000000000000000..5b68aec803f653ac +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for unsigned int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-d-ullong.c b/stdio-common/tst-printf-format-d-ullong.c +new file mode 100644 +index 0000000000000000..0e20a1dccd58e84b +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-d-ulong.c b/stdio-common/tst-printf-format-d-ulong.c +new file mode 100644 +index 0000000000000000..62085ace806b6d33 +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-d-ushort.c b/stdio-common/tst-printf-format-d-ushort.c +new file mode 100644 +index 0000000000000000..7d8ef76d60b70e2d +--- /dev/null ++++ b/stdio-common/tst-printf-format-d-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'dprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-d.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-d.h b/stdio-common/tst-printf-format-d.h +new file mode 100644 +index 0000000000000000..af7f26c17bde88ea +--- /dev/null ++++ b/stdio-common/tst-printf-format-d.h +@@ -0,0 +1,58 @@ ++/* Test feature wrapper for formatted 'dprintf' output. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++ ++/* We need to go through the POSIX-mandated dance to switch between ++ handles on an open file description. */ ++ ++#define printf_under_test(...) \ ++({ \ ++ __label__ out; \ ++ int result; \ ++ \ ++ result = fflush (stdout); \ ++ if (result == EOF) \ ++ { \ ++ perror ("fflush"); \ ++ goto out; \ ++ } \ ++ result = lseek (STDOUT_FILENO, 0, SEEK_END); \ ++ if (result < 0 && errno == ESPIPE) \ ++ result = 0; \ ++ if (result < 0) \ ++ { \ ++ perror ("lseek"); \ ++ goto out; \ ++ } \ ++ result = dprintf (STDOUT_FILENO, __VA_ARGS__); \ ++ if (result < 0) \ ++ { \ ++ perror ("dprintf"); \ ++ goto out; \ ++ } \ ++ result = fseek (stdout, 0, SEEK_END); \ ++ if (result < 0 && errno == ESPIPE) \ ++ result = 0; \ ++ if (result < 0) \ ++ perror ("fseek"); \ ++out: \ ++ result; \ ++}) diff --git a/glibc-RHEL-119390-4.patch b/glibc-RHEL-119390-4.patch new file mode 100644 index 0000000..511d9c2 --- /dev/null +++ b/glibc-RHEL-119390-4.patch @@ -0,0 +1,423 @@ +commit 1dc5cdc3da19e10d47e50a5ea2ea3ce62ee2fa82 +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted fprintf output specifiers + + Wire fprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 850bc89517931652..a40b4e15e346d170 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -24,7 +24,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d ++xprintf-funcs := p as d f + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-f-c.c b/stdio-common/tst-printf-format-f-c.c +new file mode 100644 +index 0000000000000000..1db9e2b5f3bb2d32 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for the 'c' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-f-char.c b/stdio-common/tst-printf-format-f-char.c +new file mode 100644 +index 0000000000000000..a492f318620bc82e +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for signed char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-f-double.c b/stdio-common/tst-printf-format-f-double.c +new file mode 100644 +index 0000000000000000..906ef0b90b9e7d1d +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-f-int.c b/stdio-common/tst-printf-format-f-int.c +new file mode 100644 +index 0000000000000000..92dc0c919771ae26 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-f-ldouble.c b/stdio-common/tst-printf-format-f-ldouble.c +new file mode 100644 +index 0000000000000000..0a0c88d64c873061 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for long double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-f-llong.c b/stdio-common/tst-printf-format-f-llong.c +new file mode 100644 +index 0000000000000000..ceb8d035faaf0a12 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-f-long.c b/stdio-common/tst-printf-format-f-long.c +new file mode 100644 +index 0000000000000000..a4a5dca5ebd7b3a4 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-f-s.c b/stdio-common/tst-printf-format-f-s.c +new file mode 100644 +index 0000000000000000..da0e0f8bacab6992 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for the 's' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-f-short.c b/stdio-common/tst-printf-format-f-short.c +new file mode 100644 +index 0000000000000000..3abd134d0aeeef87 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-f-uchar.c b/stdio-common/tst-printf-format-f-uchar.c +new file mode 100644 +index 0000000000000000..f104cde37b322b60 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for unsigned char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-f-uint.c b/stdio-common/tst-printf-format-f-uint.c +new file mode 100644 +index 0000000000000000..0e1fdb4b367032a2 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for unsigned int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-f-ullong.c b/stdio-common/tst-printf-format-f-ullong.c +new file mode 100644 +index 0000000000000000..b4669fcbb7dd3282 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-f-ulong.c b/stdio-common/tst-printf-format-f-ulong.c +new file mode 100644 +index 0000000000000000..3f4f900362a153b5 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-f-ushort.c b/stdio-common/tst-printf-format-f-ushort.c +new file mode 100644 +index 0000000000000000..d49c2371403e20a6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'fprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-f.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-f.h b/stdio-common/tst-printf-format-f.h +new file mode 100644 +index 0000000000000000..efb3283a032f44a7 +--- /dev/null ++++ b/stdio-common/tst-printf-format-f.h +@@ -0,0 +1,29 @@ ++/* Test feature wrapper for formatted 'fprintf' output. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#define printf_under_test(...) \ ++({ \ ++ int result; \ ++ \ ++ result = fprintf (stdout, __VA_ARGS__); \ ++ if (result < 0) \ ++ perror ("fprintf"); \ ++ result; \ ++}) diff --git a/glibc-RHEL-119390-5.patch b/glibc-RHEL-119390-5.patch new file mode 100644 index 0000000..ab7c8c0 --- /dev/null +++ b/glibc-RHEL-119390-5.patch @@ -0,0 +1,454 @@ +commit c683ac8520e8064e7be3a22922d80849271290ac +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted sprintf output specifiers + + Wire sprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index a40b4e15e346d170..f4e4a8554319f16e 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -24,7 +24,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d f ++xprintf-funcs := p as d f s + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-s-c.c b/stdio-common/tst-printf-format-s-c.c +new file mode 100644 +index 0000000000000000..87dad077b9c05216 +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for the 'c' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-s-char.c b/stdio-common/tst-printf-format-s-char.c +new file mode 100644 +index 0000000000000000..f67ac94a5dd70cf4 +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for signed char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-s-double.c b/stdio-common/tst-printf-format-s-double.c +new file mode 100644 +index 0000000000000000..16186b5dc55eabaf +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-s-int.c b/stdio-common/tst-printf-format-s-int.c +new file mode 100644 +index 0000000000000000..2ed7b2df471cd96d +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-s-ldouble.c b/stdio-common/tst-printf-format-s-ldouble.c +new file mode 100644 +index 0000000000000000..0362cc50f78ffdfa +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for long double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-s-llong.c b/stdio-common/tst-printf-format-s-llong.c +new file mode 100644 +index 0000000000000000..b49f84998a7e7ca2 +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-s-long.c b/stdio-common/tst-printf-format-s-long.c +new file mode 100644 +index 0000000000000000..49224d7f29d7e65c +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-s-s.c b/stdio-common/tst-printf-format-s-s.c +new file mode 100644 +index 0000000000000000..3a400f8907895db0 +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for the 's' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-s-short.c b/stdio-common/tst-printf-format-s-short.c +new file mode 100644 +index 0000000000000000..c98a808cff51c52a +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-s-uchar.c b/stdio-common/tst-printf-format-s-uchar.c +new file mode 100644 +index 0000000000000000..befc36894975a9a1 +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for unsigned char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-s-uint.c b/stdio-common/tst-printf-format-s-uint.c +new file mode 100644 +index 0000000000000000..f3a4c49632a3be07 +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for unsigned int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-s-ullong.c b/stdio-common/tst-printf-format-s-ullong.c +new file mode 100644 +index 0000000000000000..4ce559037921e01f +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-s-ulong.c b/stdio-common/tst-printf-format-s-ulong.c +new file mode 100644 +index 0000000000000000..81f9eea893c194d2 +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-s-ushort.c b/stdio-common/tst-printf-format-s-ushort.c +new file mode 100644 +index 0000000000000000..4b1cca6e6cf6b342 +--- /dev/null ++++ b/stdio-common/tst-printf-format-s-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'sprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-s.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-s.h b/stdio-common/tst-printf-format-s.h +new file mode 100644 +index 0000000000000000..7d1e72cffb7b20fb +--- /dev/null ++++ b/stdio-common/tst-printf-format-s.h +@@ -0,0 +1,60 @@ ++/* Test feature wrapper for formatted 'sprintf' output. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++ ++#include ++ ++#define SPRINTF_BUFFER_SIZE 65536 ++ ++static struct support_next_to_fault ntf; ++ ++#define PREPARE printf_under_test_init ++static void ++printf_under_test_init (int argc, char **argv) ++{ ++ ntf = support_next_to_fault_allocate (SPRINTF_BUFFER_SIZE); ++} ++ ++static void __attribute__ ((destructor)) ++printf_under_test_fini (void) ++{ ++ support_next_to_fault_free (&ntf); ++} ++ ++#define printf_under_test(...) \ ++({ \ ++ __label__ out; \ ++ char *str = ntf.buffer; \ ++ int result; \ ++ \ ++ result = sprintf (str, __VA_ARGS__); \ ++ if (result < 0) \ ++ { \ ++ perror ("sprintf"); \ ++ goto out; \ ++ } \ ++ if (fwrite (str, sizeof (*str), result, stdout) != result) \ ++ { \ ++ perror ("fwrite"); \ ++ result = -1; \ ++ } \ ++out: \ ++ result; \ ++}) diff --git a/glibc-RHEL-119390-6.patch b/glibc-RHEL-119390-6.patch new file mode 100644 index 0000000..5f05630 --- /dev/null +++ b/glibc-RHEL-119390-6.patch @@ -0,0 +1,454 @@ +commit 0b6379cb98590c28088f017ddcc0edb8ad7d0131 +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted snprintf output specifiers + + Wire snprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index f4e4a8554319f16e..80833d42c24ea899 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -24,7 +24,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d f s ++xprintf-funcs := p as d f s sn + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-sn-c.c b/stdio-common/tst-printf-format-sn-c.c +new file mode 100644 +index 0000000000000000..59f51d635bc46d28 +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for the 'c' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-sn-char.c b/stdio-common/tst-printf-format-sn-char.c +new file mode 100644 +index 0000000000000000..8b682dd2d52f04d2 +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for signed char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-sn-double.c b/stdio-common/tst-printf-format-sn-double.c +new file mode 100644 +index 0000000000000000..4719a58d84bda809 +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-sn-int.c b/stdio-common/tst-printf-format-sn-int.c +new file mode 100644 +index 0000000000000000..94c42f246fc8ce49 +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-sn-ldouble.c b/stdio-common/tst-printf-format-sn-ldouble.c +new file mode 100644 +index 0000000000000000..921f3ffe3b79a05d +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for long double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-sn-llong.c b/stdio-common/tst-printf-format-sn-llong.c +new file mode 100644 +index 0000000000000000..013552791e087d0c +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-sn-long.c b/stdio-common/tst-printf-format-sn-long.c +new file mode 100644 +index 0000000000000000..58c8912746c1108b +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-sn-s.c b/stdio-common/tst-printf-format-sn-s.c +new file mode 100644 +index 0000000000000000..aa3f170c14790926 +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for the 's' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-sn-short.c b/stdio-common/tst-printf-format-sn-short.c +new file mode 100644 +index 0000000000000000..f7baa1211d16e203 +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-sn-uchar.c b/stdio-common/tst-printf-format-sn-uchar.c +new file mode 100644 +index 0000000000000000..6ae5f121bd76ab9d +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for unsigned char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-sn-uint.c b/stdio-common/tst-printf-format-sn-uint.c +new file mode 100644 +index 0000000000000000..f0a0c3063f89781a +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for unsigned int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-sn-ullong.c b/stdio-common/tst-printf-format-sn-ullong.c +new file mode 100644 +index 0000000000000000..0dc0a50c4f2362a2 +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-sn-ulong.c b/stdio-common/tst-printf-format-sn-ulong.c +new file mode 100644 +index 0000000000000000..23ff5a27d7c25c34 +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-sn-ushort.c b/stdio-common/tst-printf-format-sn-ushort.c +new file mode 100644 +index 0000000000000000..1c5cffbeb414048e +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'snprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-sn.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-sn.h b/stdio-common/tst-printf-format-sn.h +new file mode 100644 +index 0000000000000000..ec2645bf57da8bbb +--- /dev/null ++++ b/stdio-common/tst-printf-format-sn.h +@@ -0,0 +1,60 @@ ++/* Test feature wrapper for formatted 'snprintf' output. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++ ++#include ++ ++#define SPRINTF_BUFFER_SIZE 65536 ++ ++static struct support_next_to_fault ntf; ++ ++#define PREPARE printf_under_test_init ++static void ++printf_under_test_init (int argc, char **argv) ++{ ++ ntf = support_next_to_fault_allocate (SPRINTF_BUFFER_SIZE); ++} ++ ++static void __attribute__ ((destructor)) ++printf_under_test_fini (void) ++{ ++ support_next_to_fault_free (&ntf); ++} ++ ++#define printf_under_test(...) \ ++({ \ ++ __label__ out; \ ++ char *str = ntf.buffer; \ ++ int result; \ ++ \ ++ result = snprintf (str, ntf.length, __VA_ARGS__); \ ++ if (result < 0) \ ++ { \ ++ perror ("snprintf"); \ ++ goto out; \ ++ } \ ++ if (fwrite (str, sizeof (*str), result, stdout) != result) \ ++ { \ ++ perror ("fwrite"); \ ++ result = -1; \ ++ } \ ++out: \ ++ result; \ ++}) diff --git a/glibc-RHEL-119390-7.patch b/glibc-RHEL-119390-7.patch new file mode 100644 index 0000000..bc11f0e --- /dev/null +++ b/glibc-RHEL-119390-7.patch @@ -0,0 +1,428 @@ +commit bad554d9b4f10988eb7fdb814fbaa5e89416d781 +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted vprintf output specifiers + + Wire vprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 80833d42c24ea899..bdf99f9ce043566d 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -24,7 +24,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d f s sn ++xprintf-funcs := p as d f s sn v + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-v-c.c b/stdio-common/tst-printf-format-v-c.c +new file mode 100644 +index 0000000000000000..94aa3042aaee6d97 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for the 'c' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-v-char.c b/stdio-common/tst-printf-format-v-char.c +new file mode 100644 +index 0000000000000000..c813d81e53956295 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for signed char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-v-double.c b/stdio-common/tst-printf-format-v-double.c +new file mode 100644 +index 0000000000000000..90cc1704eb3da2f3 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-v-int.c b/stdio-common/tst-printf-format-v-int.c +new file mode 100644 +index 0000000000000000..6529425b263975c8 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-v-ldouble.c b/stdio-common/tst-printf-format-v-ldouble.c +new file mode 100644 +index 0000000000000000..813f4a510dc833cc +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for long double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-v-llong.c b/stdio-common/tst-printf-format-v-llong.c +new file mode 100644 +index 0000000000000000..270ad08bf5e948fd +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-v-long.c b/stdio-common/tst-printf-format-v-long.c +new file mode 100644 +index 0000000000000000..2f5f653fecb25040 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-v-s.c b/stdio-common/tst-printf-format-v-s.c +new file mode 100644 +index 0000000000000000..ebc253b3e83291f2 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for the 's' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-v-short.c b/stdio-common/tst-printf-format-v-short.c +new file mode 100644 +index 0000000000000000..92a59d9fd3972f1e +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-v-uchar.c b/stdio-common/tst-printf-format-v-uchar.c +new file mode 100644 +index 0000000000000000..045ffd2864f8158f +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for unsigned char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-v-uint.c b/stdio-common/tst-printf-format-v-uint.c +new file mode 100644 +index 0000000000000000..17b1ce3aa7780209 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for unsigned int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-v-ullong.c b/stdio-common/tst-printf-format-v-ullong.c +new file mode 100644 +index 0000000000000000..590b04f339e01cf6 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-v-ulong.c b/stdio-common/tst-printf-format-v-ulong.c +new file mode 100644 +index 0000000000000000..6747677a42b38e37 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-v-ushort.c b/stdio-common/tst-printf-format-v-ushort.c +new file mode 100644 +index 0000000000000000..1e782715627f7b77 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-v.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-v.h b/stdio-common/tst-printf-format-v.h +new file mode 100644 +index 0000000000000000..711b290b59df8781 +--- /dev/null ++++ b/stdio-common/tst-printf-format-v.h +@@ -0,0 +1,34 @@ ++/* Test feature wrapper for formatted 'vprintf' output. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++ ++static int ++printf_under_test (const char *restrict fmt, ...) ++{ ++ va_list ap; ++ int result; ++ ++ va_start (ap, fmt); ++ result = vprintf (fmt, ap); ++ va_end (ap); ++ if (result < 0) ++ perror ("vprintf"); ++ return result; ++} diff --git a/glibc-RHEL-119390-8.patch b/glibc-RHEL-119390-8.patch new file mode 100644 index 0000000..7dace85 --- /dev/null +++ b/glibc-RHEL-119390-8.patch @@ -0,0 +1,454 @@ +commit 349670f8093d920d4d683472c88029f6901f7ae7 +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted vasprintf output specifiers + + Wire vasprintf into test infrastructure for formatted printf output + specifiers. + + Owing to mtrace logging these tests take amounts of time to complete + similar to those of corresponding asprintf tests, so set timeouts for + the tests accordingly, with a global default for all the vasprintf + tests, and then individual higher settings for double and long double + tests each. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index bdf99f9ce043566d..40327c698da75a0a 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -24,7 +24,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d f s sn v ++xprintf-funcs := p as d f s sn v vas + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-vas-c.c b/stdio-common/tst-printf-format-vas-c.c +new file mode 100644 +index 0000000000000000..f8cf814c8c3bc293 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for the 'c' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-vas-char.c b/stdio-common/tst-printf-format-vas-char.c +new file mode 100644 +index 0000000000000000..39c6e73977f3f32f +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for signed char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-vas-double.c b/stdio-common/tst-printf-format-vas-double.c +new file mode 100644 +index 0000000000000000..25a21bb0adc2726f +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vasprintf' output for double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#define TIMEOUT (DEFAULT_TIMEOUT * 32) ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-vas-int.c b/stdio-common/tst-printf-format-vas-int.c +new file mode 100644 +index 0000000000000000..9cd70c8fcbae1c03 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-vas-ldouble.c b/stdio-common/tst-printf-format-vas-ldouble.c +new file mode 100644 +index 0000000000000000..60c3933fab1b9216 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vasprintf' output for long double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#define TIMEOUT (DEFAULT_TIMEOUT * 128) ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-vas-llong.c b/stdio-common/tst-printf-format-vas-llong.c +new file mode 100644 +index 0000000000000000..5d5322b8b9dfe0a4 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-vas-long.c b/stdio-common/tst-printf-format-vas-long.c +new file mode 100644 +index 0000000000000000..d9651053f8f14dcd +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-vas-s.c b/stdio-common/tst-printf-format-vas-s.c +new file mode 100644 +index 0000000000000000..6d74ab83e3038b44 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for the 's' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-vas-short.c b/stdio-common/tst-printf-format-vas-short.c +new file mode 100644 +index 0000000000000000..a6d76a97055fbb89 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-vas-uchar.c b/stdio-common/tst-printf-format-vas-uchar.c +new file mode 100644 +index 0000000000000000..c3dee11b7d8092d9 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for unsigned char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-vas-uint.c b/stdio-common/tst-printf-format-vas-uint.c +new file mode 100644 +index 0000000000000000..e56e89374db69c3f +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for unsigned int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-vas-ullong.c b/stdio-common/tst-printf-format-vas-ullong.c +new file mode 100644 +index 0000000000000000..05691bc3181c6d18 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-vas-ulong.c b/stdio-common/tst-printf-format-vas-ulong.c +new file mode 100644 +index 0000000000000000..767d9cb6a6ac64a2 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-vas-ushort.c b/stdio-common/tst-printf-format-vas-ushort.c +new file mode 100644 +index 0000000000000000..284d79f75364504f +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vasprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vas.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-vas.h b/stdio-common/tst-printf-format-vas.h +new file mode 100644 +index 0000000000000000..3e38e729ec97ceed +--- /dev/null ++++ b/stdio-common/tst-printf-format-vas.h +@@ -0,0 +1,50 @@ ++/* Test feature wrapper for formatted 'vasprintf' output. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++ ++static int ++printf_under_test (const char *restrict fmt, ...) ++{ ++ va_list ap; ++ int result; ++ char *str; ++ ++ va_start (ap, fmt); ++ result = vasprintf (&str, fmt, ap); ++ va_end (ap); ++ if (result < 0) ++ { ++ perror ("vasprintf"); ++ goto out; ++ } ++ if (fwrite (str, sizeof (*str), result, stdout) != result) ++ { ++ perror ("fwrite"); ++ result = -1; ++ } ++ free (str); ++out: ++ return result; ++} ++ ++#ifndef TIMEOUT ++# define TIMEOUT (DEFAULT_TIMEOUT * 12) ++#endif diff --git a/glibc-RHEL-119390-9.patch b/glibc-RHEL-119390-9.patch new file mode 100644 index 0000000..a35c862 --- /dev/null +++ b/glibc-RHEL-119390-9.patch @@ -0,0 +1,456 @@ +commit fae4eacae75e4f2767998aca703d6efaae2a747f +Author: Maciej W. Rozycki +Date: Thu Nov 7 06:14:24 2024 +0000 + + stdio-common: Add tests for formatted vdprintf output specifiers + + Wire vdprintf into test infrastructure for formatted printf output + specifiers. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 40327c698da75a0a..01018c53b0f4a13f 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -24,7 +24,7 @@ subdir := stdio-common + include ../Makeconfig + + # List of markers for printf family function tests. +-xprintf-funcs := p as d f s sn v vas ++xprintf-funcs := p as d f s sn v vas vd + + # List of data types and formats for individual per-conversion printf tests. + fmt-convs := double ldouble +diff --git a/stdio-common/tst-printf-format-vd-c.c b/stdio-common/tst-printf-format-vd-c.c +new file mode 100644 +index 0000000000000000..209b1784896a0bfd +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-c.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for the 'c' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-c.c" +diff --git a/stdio-common/tst-printf-format-vd-char.c b/stdio-common/tst-printf-format-vd-char.c +new file mode 100644 +index 0000000000000000..8286b6d5b227e83a +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-char.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for signed char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-char.c" +diff --git a/stdio-common/tst-printf-format-vd-double.c b/stdio-common/tst-printf-format-vd-double.c +new file mode 100644 +index 0000000000000000..e89a2ca5983697ce +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-double.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-double.c" +diff --git a/stdio-common/tst-printf-format-vd-int.c b/stdio-common/tst-printf-format-vd-int.c +new file mode 100644 +index 0000000000000000..598a888b1c937361 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-int.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-int.c" +diff --git a/stdio-common/tst-printf-format-vd-ldouble.c b/stdio-common/tst-printf-format-vd-ldouble.c +new file mode 100644 +index 0000000000000000..d3ada6ff0bcdd9c1 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-ldouble.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for long double conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-printf-format-vd-llong.c b/stdio-common/tst-printf-format-vd-llong.c +new file mode 100644 +index 0000000000000000..ea6ea7b2157dc0c9 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-llong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-printf-format-vd-long.c b/stdio-common/tst-printf-format-vd-long.c +new file mode 100644 +index 0000000000000000..4ee1cdacffb4fe77 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-long.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-long.c" +diff --git a/stdio-common/tst-printf-format-vd-s.c b/stdio-common/tst-printf-format-vd-s.c +new file mode 100644 +index 0000000000000000..df7cf9a6fbf04c9b +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-s.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for the 's' conversion. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-s.c" +diff --git a/stdio-common/tst-printf-format-vd-short.c b/stdio-common/tst-printf-format-vd-short.c +new file mode 100644 +index 0000000000000000..87128c8303b57cd8 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-short.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-short.c" +diff --git a/stdio-common/tst-printf-format-vd-uchar.c b/stdio-common/tst-printf-format-vd-uchar.c +new file mode 100644 +index 0000000000000000..90dea719471dcb30 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-uchar.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for unsigned char conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-printf-format-vd-uint.c b/stdio-common/tst-printf-format-vd-uint.c +new file mode 100644 +index 0000000000000000..feb95dc018ee20fe +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-uint.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for unsigned int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-printf-format-vd-ullong.c b/stdio-common/tst-printf-format-vd-ullong.c +new file mode 100644 +index 0000000000000000..8f62fb0aeeaca3a3 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-ullong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for unsigned long long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-printf-format-vd-ulong.c b/stdio-common/tst-printf-format-vd-ulong.c +new file mode 100644 +index 0000000000000000..59b2015cd33aaede +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-ulong.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for unsigned long int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-printf-format-vd-ushort.c b/stdio-common/tst-printf-format-vd-ushort.c +new file mode 100644 +index 0000000000000000..5d096502d9f44959 +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd-ushort.c +@@ -0,0 +1,20 @@ ++/* Test for formatted 'vdprintf' output for unsigned short int conversions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include "tst-printf-format-vd.h" ++#include "tst-printf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-printf-format-vd.h b/stdio-common/tst-printf-format-vd.h +new file mode 100644 +index 0000000000000000..d721edadc6f7786b +--- /dev/null ++++ b/stdio-common/tst-printf-format-vd.h +@@ -0,0 +1,62 @@ ++/* Test feature wrapper for formatted 'vdprintf' output. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++/* We need to go through the POSIX-mandated dance to switch between ++ handles on an open file description. */ ++ ++static int ++printf_under_test (const char *restrict fmt, ...) ++{ ++ va_list ap; ++ int result; ++ ++ result = fflush (stdout); ++ if (result == EOF) ++ { ++ perror ("fflush"); ++ goto out; ++ } ++ result = lseek (STDOUT_FILENO, 0, SEEK_END); ++ if (result < 0 && errno == ESPIPE) ++ result = 0; ++ if (result < 0) ++ { ++ perror ("lseek"); ++ goto out; ++ } ++ va_start (ap, fmt); ++ result = vdprintf (STDOUT_FILENO, fmt, ap); ++ va_end (ap); ++ if (result < 0) ++ { ++ perror ("vdprintf"); ++ goto out; ++ } ++ result = fseek (stdout, 0, SEEK_END); ++ if (result < 0 && errno == ESPIPE) ++ result = 0; ++ if (result < 0) ++ perror ("fseek"); ++out: ++ return result; ++} diff --git a/glibc-RHEL-119392-1.patch b/glibc-RHEL-119392-1.patch new file mode 100644 index 0000000..8d32df9 --- /dev/null +++ b/glibc-RHEL-119392-1.patch @@ -0,0 +1,84 @@ +commit f745d78e2628cd5b13ca119ae0c0e21d08ad1906 +Author: Joseph Myers +Date: Fri Nov 8 01:53:48 2024 +0000 + + Avoid uninitialized result in sem_open when file does not exist + + A static analyzer apparently reported an uninitialized use of the + variable result in sem_open in the case where the file is required to + exist but does not exist. + + The report appears to be correct; set result to SEM_FAILED in that + case, and add a test for it. + + Note: the test passes for me even without the sem_open fix, I guess + because result happens to get value SEM_FAILED (i.e. 0) when + uninitialized. + + Tested for x86_64. + +diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile +index 0d9e232acec2ed39..449478a847ad2292 100644 +--- a/sysdeps/pthread/Makefile ++++ b/sysdeps/pthread/Makefile +@@ -256,6 +256,7 @@ tests += \ + tst-sem14 \ + tst-sem15 \ + tst-sem16 \ ++ tst-sem17 \ + tst-setuid3 \ + tst-signal1 \ + tst-signal2 \ +diff --git a/sysdeps/pthread/sem_open.c b/sysdeps/pthread/sem_open.c +index e41236157a5d1b0a..dab734191a8ca208 100644 +--- a/sysdeps/pthread/sem_open.c ++++ b/sysdeps/pthread/sem_open.c +@@ -76,6 +76,7 @@ __sem_open (const char *name, int oflag, ...) + goto try_create; + + /* Return. errno is already set. */ ++ result = SEM_FAILED; + } + else + /* Check whether we already have this semaphore mapped and +diff --git a/sysdeps/pthread/tst-sem17.c b/sysdeps/pthread/tst-sem17.c +new file mode 100644 +index 0000000000000000..c3f05d196f4ef17a +--- /dev/null ++++ b/sysdeps/pthread/tst-sem17.c +@@ -0,0 +1,35 @@ ++/* Test sem_open with missing file. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++ ++#include ++ ++int ++do_test (void) ++{ ++ sem_unlink ("/glibc-tst-sem17"); ++ errno = 0; ++ sem_t *s = sem_open ("/glibc-tst-sem17", 0); ++ TEST_VERIFY (s == SEM_FAILED); ++ TEST_COMPARE (errno, ENOENT); ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119392-2.patch b/glibc-RHEL-119392-2.patch new file mode 100644 index 0000000..d72cb62 --- /dev/null +++ b/glibc-RHEL-119392-2.patch @@ -0,0 +1,42 @@ +commit c7dcf594f4c52fa7e2cc76918c8aa9abb98e9625 +Author: Joseph Myers +Date: Fri Nov 8 17:08:09 2024 +0000 + + Rename new tst-sem17 test to tst-sem18 + + As noted by Adhemerval, we already have a tst-sem17 in nptl. + + Tested for x86_64. + +diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile +index 449478a847ad2292..aef323296d7926f6 100644 +--- a/sysdeps/pthread/Makefile ++++ b/sysdeps/pthread/Makefile +@@ -256,7 +256,7 @@ tests += \ + tst-sem14 \ + tst-sem15 \ + tst-sem16 \ +- tst-sem17 \ ++ tst-sem18 \ + tst-setuid3 \ + tst-signal1 \ + tst-signal2 \ +diff --git a/sysdeps/pthread/tst-sem17.c b/sysdeps/pthread/tst-sem18.c +similarity index 92% +rename from sysdeps/pthread/tst-sem17.c +rename to sysdeps/pthread/tst-sem18.c +index c3f05d196f4ef17a..1be207bcbeeb56f1 100644 +--- a/sysdeps/pthread/tst-sem17.c ++++ b/sysdeps/pthread/tst-sem18.c +@@ -24,9 +24,9 @@ + int + do_test (void) + { +- sem_unlink ("/glibc-tst-sem17"); ++ sem_unlink ("/glibc-tst-sem18"); + errno = 0; +- sem_t *s = sem_open ("/glibc-tst-sem17", 0); ++ sem_t *s = sem_open ("/glibc-tst-sem18", 0); + TEST_VERIFY (s == SEM_FAILED); + TEST_COMPARE (errno, ENOENT); + return 0; diff --git a/glibc-RHEL-119398.patch b/glibc-RHEL-119398.patch new file mode 100644 index 0000000..636bd25 --- /dev/null +++ b/glibc-RHEL-119398.patch @@ -0,0 +1,58 @@ +commit 6c915c73d08028987232f6dc718f218c61113240 +Author: Aurelien Jarno +Date: Sun Nov 10 10:50:34 2024 +0100 + + elf: handle addition overflow in _dl_find_object_update_1 [BZ #32245] + + The remaining_to_add variable can be 0 if (current_used + count) wraps, + This is caught by GCC 14+ on hppa, which determines from there that + target_seg could be be NULL when remaining_to_add is zero, which in + turns causes a -Wstringop-overflow warning: + + In file included from ../include/atomic.h:49, + from dl-find_object.c:20: + In function '_dlfo_update_init_seg', + inlined from '_dl_find_object_update_1' at dl-find_object.c:689:30, + inlined from '_dl_find_object_update' at dl-find_object.c:805:13: + ../sysdeps/unix/sysv/linux/hppa/atomic-machine.h:44:4: error: '__atomic_store_4' writing 4 bytes into a region of size 0 overflows the destination [-Werror=stringop-overflow=] + 44 | __atomic_store_n ((mem), (val), __ATOMIC_RELAXED); \ + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + dl-find_object.c:644:3: note: in expansion of macro 'atomic_store_relaxed' + 644 | atomic_store_relaxed (&seg->size, new_seg_size); + | ^~~~~~~~~~~~~~~~~~~~ + In function '_dl_find_object_update': + cc1: note: destination object is likely at address zero + + In practice, this is not possible as it represent counts of link maps. + Link maps have sizes larger than 1 byte, so the sum of any two link map + counts will always fit within a size_t without wrapping around. + + This patch therefore adds a check on remaining_to_add == 0 and tell GCC + that this can not happen using __builtin_unreachable. + + Thanks to Andreas Schwab for the investigation. + + Closes: BZ #32245 + Signed-off-by: Aurelien Jarno + Tested-by: John David Anglin + Reviewed-by: Florian Weimer + +diff --git a/elf/dl-find_object.c b/elf/dl-find_object.c +index 449302eda3..ae18b438d3 100644 +--- a/elf/dl-find_object.c ++++ b/elf/dl-find_object.c +@@ -682,6 +682,14 @@ _dl_find_object_update_1 (struct link_map **loaded, size_t count) + = _dlfo_loaded_mappings[!active_idx]; + size_t remaining_to_add = current_used + count; + ++ /* remaining_to_add can be 0 if (current_used + count) wraps, but in practice ++ this is not possible as it represent counts of link maps. Link maps have ++ sizes larger than 1 byte, so the sum of any two link map counts will ++ always fit within a size_t without wrapping around. This check ensures ++ that target_seg is not erroneously considered potentially NULL by GCC. */ ++ if (remaining_to_add == 0) ++ __builtin_unreachable (); ++ + /* Ensure that the new segment chain has enough space. */ + { + size_t new_allocated diff --git a/glibc-RHEL-119400-1.patch b/glibc-RHEL-119400-1.patch new file mode 100644 index 0000000..32da474 --- /dev/null +++ b/glibc-RHEL-119400-1.patch @@ -0,0 +1,84 @@ +commit 03b8d764109be48a53b18abd4b5050e8cdc2c6da +Author: Siddhesh Poyarekar +Date: Thu Nov 21 17:13:33 2024 -0500 + + nptl: Add smoke test for pthread_getcpuclockid failure + + Exercise the case where an exited thread will cause + pthread_getcpuclockid to fail. + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Florian Weimer + +Conflicts: + nptl/Makefile + (fixup context) + +diff --git a/nptl/Makefile b/nptl/Makefile +index 34c80f6f38261669..7139f76827b5ffe6 100644 +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -318,6 +318,7 @@ tests = \ + tst-pthread-defaultattr-free \ + tst-pthread-gdb-attach \ + tst-pthread-gdb-attach-static \ ++ tst-pthread-getcpuclockid-invalid \ + tst-pthread-timedlock-lockloop \ + tst-pthread_exit-nothreads \ + tst-pthread_exit-nothreads-static \ +diff --git a/nptl/tst-pthread-getcpuclockid-invalid.c b/nptl/tst-pthread-getcpuclockid-invalid.c +new file mode 100644 +index 0000000000000000..e88a56342767a83e +--- /dev/null ++++ b/nptl/tst-pthread-getcpuclockid-invalid.c +@@ -0,0 +1,50 @@ ++/* Smoke test to verify that pthread_getcpuclockid fails with ESRCH when the ++ thread in question has exited. ++ Copyright the GNU Toolchain Authors. ++ 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++void * ++thr (void *in) ++{ ++ return in; ++} ++ ++int ++do_test (void) ++{ ++ clockid_t c; ++ pthread_t t = xpthread_create (NULL, thr, NULL); ++ ++ int ret = 0; ++ while ((ret = pthread_getcpuclockid (t, &c)) == 0) ++ sched_yield (); ++ ++ TEST_COMPARE (ret, ESRCH); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119400-2.patch b/glibc-RHEL-119400-2.patch new file mode 100644 index 0000000..49bee5c --- /dev/null +++ b/glibc-RHEL-119400-2.patch @@ -0,0 +1,51 @@ +commit 19a198f05802fcc05441c364ed75311ef3f6d663 +Author: Siddhesh Poyarekar +Date: Thu Nov 28 06:30:40 2024 -0500 + + pthread_getcpuclockid: Add descriptive comment to smoke test + + Add a descriptive comment to the tst-pthread-cpuclockid-invalid test and + also drop pthread_getcpuclockid from the TODO-testing list since it now + has full coverage. + + Signed-off-by: Siddhesh Poyarekar + +diff --git a/nptl/TODO-testing b/nptl/TODO-testing +index e076e5624f1cfbaa..f50d2ceb51b247c3 100644 +--- a/nptl/TODO-testing ++++ b/nptl/TODO-testing +@@ -10,10 +10,6 @@ pthread_attr_[sg]etstack + + some more tests needed + +-pthread_getcpuclockid +- +- check that value is reset -> rt subdir +- + pthread_getschedparam + pthread_setschedparam + +diff --git a/nptl/tst-pthread-getcpuclockid-invalid.c b/nptl/tst-pthread-getcpuclockid-invalid.c +index e88a56342767a83e..7ac46acad8fe0fd7 100644 +--- a/nptl/tst-pthread-getcpuclockid-invalid.c ++++ b/nptl/tst-pthread-getcpuclockid-invalid.c +@@ -1,5 +1,4 @@ +-/* Smoke test to verify that pthread_getcpuclockid fails with ESRCH when the +- thread in question has exited. ++/* pthread_getcpuclockid should fail with ESRCH when the thread exits. + Copyright the GNU Toolchain Authors. + This file is part of the GNU C Library. + +@@ -17,6 +16,12 @@ + License along with the GNU C Library; if not, see + . */ + ++/* The input thread descriptor to pthread_getcpuclockid needs to be valid when ++ the function is called. For the purposes of this test, this means that the ++ thread should not be detached, have exited, but not joined. This should be ++ good enough to complete coverage for pthread_getcpuclockid alongside ++ tst-clock2. */ ++ + #include + #include + #include diff --git a/glibc-RHEL-119402.patch b/glibc-RHEL-119402.patch new file mode 100644 index 0000000..a32f7e9 --- /dev/null +++ b/glibc-RHEL-119402.patch @@ -0,0 +1,1531 @@ +commit 6ae9836ed24e4dc625b452a1472f1c150f3058cf +Author: Joseph Myers +Date: Fri Nov 29 16:43:56 2024 +0000 + + Add test of ELF hash collisions + + Add tests that the dynamic linker works correctly with symbol names + involving hash collisions, for both choices of hash style (and + --hash-style=both as well). I note that there weren't actually any + previous tests using --hash-style (so tests would only cover the + default linker configuration in that regard). Also test symbol + versions involving hash collisions. + + Tested for x86_64. + +Conflicts: + elf/Makefile + (Fixup context) + +diff --git a/elf/Makefile b/elf/Makefile +index 6fc02315bdb50050..a4f92e681af67154 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -437,6 +437,12 @@ tests += \ + tst-global1 \ + tst-global2 \ + tst-gnu2-tls2 \ ++ tst-hash-collision1 \ ++ tst-hash-collision1-gnu \ ++ tst-hash-collision1-sysv \ ++ tst-hash-collision2 \ ++ tst-hash-collision2-gnu \ ++ tst-hash-collision2-sysv \ + tst-initfinilazyfail \ + tst-initorder \ + tst-initorder2 \ +@@ -526,6 +532,7 @@ tests-internal += \ + tst-dl_find_object \ + tst-dl_find_object-threads \ + tst-dlmopen2 \ ++ tst-hash-collision3 \ + tst-link-map-contiguous-ldso \ + tst-link-map-contiguous-libc \ + tst-ptrguard1 \ +@@ -904,6 +911,16 @@ modules-names += \ + tst-gnu2-tls2mod0 \ + tst-gnu2-tls2mod1 \ + tst-gnu2-tls2mod2 \ ++ tst-hash-collision1-mod \ ++ tst-hash-collision1-mod-gnu \ ++ tst-hash-collision1-mod-sysv \ ++ tst-hash-collision2-mod1 \ ++ tst-hash-collision2-mod1-gnu \ ++ tst-hash-collision2-mod1-sysv \ ++ tst-hash-collision2-mod2 \ ++ tst-hash-collision2-mod2-gnu \ ++ tst-hash-collision2-mod2-sysv \ ++ tst-hash-collision3-mod \ + tst-initlazyfailmod \ + tst-initorder2a \ + tst-initorder2b \ +@@ -1072,7 +1089,8 @@ modules-names += \ + + # Most modules build with _ISOMAC defined, but those filtered out + # depend on internal headers. +-modules-names-tests = $(filter-out ifuncmod% tst-tlsmod%,\ ++modules-names-tests = $(filter-out ifuncmod% tst-tlsmod% \ ++ tst-hash-collision3-mod,\ + $(modules-names)) + + # For +depfiles in Makerules. +@@ -3206,6 +3224,28 @@ tst-rtld-no-malloc-audit-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so + # Any shared object should do. + tst-rtld-no-malloc-preload-ENV = LD_PRELOAD=$(objpfx)tst-auditmod1.so + ++LDFLAGS-tst-hash-collision1-mod.so = -Wl,--hash-style=both ++$(objpfx)tst-hash-collision1: $(objpfx)tst-hash-collision1-mod.so ++LDFLAGS-tst-hash-collision1-mod-gnu.so = -Wl,--hash-style=gnu ++$(objpfx)tst-hash-collision1-gnu: $(objpfx)tst-hash-collision1-mod-gnu.so ++LDFLAGS-tst-hash-collision1-mod-sysv.so = -Wl,--hash-style=sysv ++$(objpfx)tst-hash-collision1-sysv: $(objpfx)tst-hash-collision1-mod-sysv.so ++LDFLAGS-tst-hash-collision2-mod1.so = -Wl,--hash-style=both ++LDFLAGS-tst-hash-collision2-mod2.so = -Wl,--hash-style=both ++$(objpfx)tst-hash-collision2: $(objpfx)tst-hash-collision2-mod1.so \ ++ $(objpfx)tst-hash-collision2-mod2.so ++LDFLAGS-tst-hash-collision2-mod1-gnu.so = -Wl,--hash-style=gnu ++LDFLAGS-tst-hash-collision2-mod2-gnu.so = -Wl,--hash-style=gnu ++$(objpfx)tst-hash-collision2-gnu: $(objpfx)tst-hash-collision2-mod1-gnu.so \ ++ $(objpfx)tst-hash-collision2-mod2-gnu.so ++LDFLAGS-tst-hash-collision2-mod1-sysv.so = -Wl,--hash-style=sysv ++LDFLAGS-tst-hash-collision2-mod2-sysv.so = -Wl,--hash-style=sysv ++$(objpfx)tst-hash-collision2-sysv: $(objpfx)tst-hash-collision2-mod1-sysv.so \ ++ $(objpfx)tst-hash-collision2-mod2-sysv.so ++LDFLAGS-tst-hash-collision3-mod.so = \ ++ -Wl,--version-script=tst-hash-collision3-mod.map ++$(objpfx)tst-hash-collision3: $(objpfx)tst-hash-collision3-mod.so ++ + # These rules link and run the special elf/tst-nolink-libc-* tests if + # a port adds them to the tests variables. Neither test variant is + # linked against libc.so, but tst-nolink-libc-1 is linked against +diff --git a/elf/tst-hash-collision1-gnu.c b/elf/tst-hash-collision1-gnu.c +new file mode 100644 +index 0000000000000000..92f0862e914a9dbe +--- /dev/null ++++ b/elf/tst-hash-collision1-gnu.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision1.c" +diff --git a/elf/tst-hash-collision1-mod-gnu.c b/elf/tst-hash-collision1-mod-gnu.c +new file mode 100644 +index 0000000000000000..e4d03dd9bfd3520f +--- /dev/null ++++ b/elf/tst-hash-collision1-mod-gnu.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision1-mod.c" +diff --git a/elf/tst-hash-collision1-mod-sysv.c b/elf/tst-hash-collision1-mod-sysv.c +new file mode 100644 +index 0000000000000000..e4d03dd9bfd3520f +--- /dev/null ++++ b/elf/tst-hash-collision1-mod-sysv.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision1-mod.c" +diff --git a/elf/tst-hash-collision1-mod.c b/elf/tst-hash-collision1-mod.c +new file mode 100644 +index 0000000000000000..c848af8ae103f8ab +--- /dev/null ++++ b/elf/tst-hash-collision1-mod.c +@@ -0,0 +1,448 @@ ++/* Test ELF hash collisions: shared object. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++/* Names with hash collisions for classic ELF hash. */ ++ ++int ++foo (void) ++{ ++ return 1; ++} ++ ++int ++Hxxxynpfoo (void) ++{ ++ return 2; ++} ++ ++int ++HxxxynpHxxxynpfoo (void) ++{ ++ return 3; ++} ++ ++int ++HxxxynpHxxxynpHxxxynpfoo (void) ++{ ++ return 4; ++} ++ ++int ++HxxxynpHxxxynpHxxxynpHxxxynpfoo (void) ++{ ++ return 5; ++} ++ ++ ++/* Names with hash collisions for GNU hash. */ ++ ++int ++bar (void) ++{ ++ return 10; ++} ++ ++int ++gliinmbar (void) ++{ ++ return 9; ++} ++ ++int ++gliinmgliinmbar (void) ++{ ++ return 8; ++} ++ ++int ++gliinmgliinmgliinmbar (void) ++{ ++ return 7; ++} ++ ++int ++gliinmgliinmgliinmgliinmbar (void) ++{ ++ return 6; ++} ++ ++ ++/* Names with specific hash values for each hash (see ++ tst-hash-collision1.c for details). */ ++ ++int ++Hxxxynp (void) ++{ ++ return 11; ++} ++ ++int ++HxxxypP (void) ++{ ++ return 12; ++} ++ ++int ++Hxxyinp (void) ++{ ++ return 13; ++} ++ ++int ++HxxyipP (void) ++{ ++ return 14; ++} ++ ++int ++HxxykNp (void) ++{ ++ return 15; ++} ++ ++int ++Hxxxyoa (void) ++{ ++ return 16; ++} ++ ++int ++HxxxypQ (void) ++{ ++ return 17; ++} ++ ++int ++HxxxyqA (void) ++{ ++ return 18; ++} ++ ++int ++HxxxzaA (void) ++{ ++ return 19; ++} ++ ++int ++Hxxxz_a (void) ++{ ++ return 20; ++} ++ ++int ++Hxxxyob (void) ++{ ++ return 21; ++} ++ ++int ++HxxxypR (void) ++{ ++ return 22; ++} ++ ++int ++HxxxyqB (void) ++{ ++ return 23; ++} ++ ++int ++HxxxzaB (void) ++{ ++ return 24; ++} ++ ++int ++Hxxxz_b (void) ++{ ++ return 25; ++} ++ ++int ++glidpk (void) ++{ ++ return 26; ++} ++ ++int ++glidqJ (void) ++{ ++ return 27; ++} ++ ++int ++glieOk (void) ++{ ++ return 28; ++} ++ ++int ++gliePJ (void) ++{ ++ return 29; ++} ++ ++int ++gljCpk (void) ++{ ++ return 30; ++} ++ ++int ++glidpl (void) ++{ ++ return 31; ++} ++ ++int ++glidqK (void) ++{ ++ return 32; ++} ++ ++int ++glieOl (void) ++{ ++ return 33; ++} ++ ++int ++gliePK (void) ++{ ++ return 34; ++} ++ ++int ++gljCpl (void) ++{ ++ return 35; ++} ++ ++int ++glidpm (void) ++{ ++ return 36; ++} ++ ++int ++glidqL (void) ++{ ++ return 37; ++} ++ ++int ++glieOm (void) ++{ ++ return 38; ++} ++ ++int ++gliePL (void) ++{ ++ return 39; ++} ++ ++int ++gljCpm (void) ++{ ++ return 40; ++} ++ ++int ++AdfmZru (void) ++{ ++ return 41; ++} ++ ++int ++AdfmZsT (void) ++{ ++ return 42; ++} ++ ++int ++AdfmZt3 (void) ++{ ++ return 43; ++} ++ ++int ++Adfn9ru (void) ++{ ++ return 44; ++} ++ ++int ++Adfn9sT (void) ++{ ++ return 45; ++} ++ ++int ++AdfmZrv (void) ++{ ++ return 46; ++} ++ ++int ++AdfmZsU (void) ++{ ++ return 47; ++} ++ ++int ++AdfmZt4 (void) ++{ ++ return 48; ++} ++ ++int ++Adfn9rv (void) ++{ ++ return 49; ++} ++ ++int ++Adfn9sU (void) ++{ ++ return 50; ++} ++ ++int ++AdfmZrw (void) ++{ ++ return 51; ++} ++ ++int ++AdfmZsV (void) ++{ ++ return 52; ++} ++ ++int ++AdfmZt5 (void) ++{ ++ return 53; ++} ++ ++int ++Adfn9rw (void) ++{ ++ return 54; ++} ++ ++int ++Adfn9sV (void) ++{ ++ return 55; ++} ++ ++int ++AdfmZrx (void) ++{ ++ return 56; ++} ++ ++int ++AdfmZsW (void) ++{ ++ return 57; ++} ++ ++int ++AdfmZt6 (void) ++{ ++ return 58; ++} ++ ++int ++Adfn9rx (void) ++{ ++ return 59; ++} ++ ++int ++Adfn9sW (void) ++{ ++ return 60; ++} ++ ++int ++glidpi (void) ++{ ++ return 61; ++} ++ ++int ++glidqH (void) ++{ ++ return 62; ++} ++ ++int ++glieOi (void) ++{ ++ return 63; ++} ++ ++int ++gliePH (void) ++{ ++ return 64; ++} ++ ++int ++gljCpi (void) ++{ ++ return 65; ++} ++ ++int ++glidpj (void) ++{ ++ return 66; ++} ++ ++int ++glidqI (void) ++{ ++ return 67; ++} ++ ++int ++glieOj (void) ++{ ++ return 68; ++} ++ ++int ++gliePI (void) ++{ ++ return 69; ++} ++ ++int ++gljCpj (void) ++{ ++ return 70; ++} +diff --git a/elf/tst-hash-collision1-sysv.c b/elf/tst-hash-collision1-sysv.c +new file mode 100644 +index 0000000000000000..92f0862e914a9dbe +--- /dev/null ++++ b/elf/tst-hash-collision1-sysv.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision1.c" +diff --git a/elf/tst-hash-collision1.c b/elf/tst-hash-collision1.c +new file mode 100644 +index 0000000000000000..80ab0da8f56ca9a3 +--- /dev/null ++++ b/elf/tst-hash-collision1.c +@@ -0,0 +1,196 @@ ++/* Test ELF hash collisions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++/* Names with hash collisions for classic ELF hash. */ ++extern int foo (void); ++extern int Hxxxynpfoo (void); ++extern int HxxxynpHxxxynpfoo (void); ++extern int HxxxynpHxxxynpHxxxynpfoo (void); ++extern int HxxxynpHxxxynpHxxxynpHxxxynpfoo (void); ++ ++/* Names with hash collisions for GNU hash. */ ++extern int bar (void); ++extern int gliinmbar (void); ++extern int gliinmgliinmbar (void); ++extern int gliinmgliinmgliinmbar (void); ++extern int gliinmgliinmgliinmgliinmbar (void); ++ ++/* Classic ELF hash 0. */ ++extern int Hxxxynp (void); ++extern int HxxxypP (void); ++extern int Hxxyinp (void); ++extern int HxxyipP (void); ++extern int HxxykNp (void); ++ ++/* Classic ELF hash 1. */ ++extern int Hxxxyoa (void); ++extern int HxxxypQ (void); ++extern int HxxxyqA (void); ++extern int HxxxzaA (void); ++extern int Hxxxz_a (void); ++ ++/* Classic ELF hash 2. */ ++extern int Hxxxyob (void); ++extern int HxxxypR (void); ++extern int HxxxyqB (void); ++extern int HxxxzaB (void); ++extern int Hxxxz_b (void); ++ ++/* GNU hash 0. */ ++extern int glidpk (void); ++extern int glidqJ (void); ++extern int glieOk (void); ++extern int gliePJ (void); ++extern int gljCpk (void); ++ ++/* GNU hash 1. */ ++extern int glidpl (void); ++extern int glidqK (void); ++extern int glieOl (void); ++extern int gliePK (void); ++extern int gljCpl (void); ++ ++/* GNU hash 2. */ ++extern int glidpm (void); ++extern int glidqL (void); ++extern int glieOm (void); ++extern int gliePL (void); ++extern int gljCpm (void); ++ ++/* GNU hash 0x7ffffffe. */ ++extern int AdfmZru (void); ++extern int AdfmZsT (void); ++extern int AdfmZt3 (void); ++extern int Adfn9ru (void); ++extern int Adfn9sT (void); ++ ++/* GNU hash 0x7fffffff. */ ++extern int AdfmZrv (void); ++extern int AdfmZsU (void); ++extern int AdfmZt4 (void); ++extern int Adfn9rv (void); ++extern int Adfn9sU (void); ++ ++/* GNU hash 0x80000000. */ ++extern int AdfmZrw (void); ++extern int AdfmZsV (void); ++extern int AdfmZt5 (void); ++extern int Adfn9rw (void); ++extern int Adfn9sV (void); ++ ++/* GNU hash 0x80000001. */ ++extern int AdfmZrx (void); ++extern int AdfmZsW (void); ++extern int AdfmZt6 (void); ++extern int Adfn9rx (void); ++extern int Adfn9sW (void); ++ ++/* GNU hash 0xfffffffe. */ ++extern int glidpi (void); ++extern int glidqH (void); ++extern int glieOi (void); ++extern int gliePH (void); ++extern int gljCpi (void); ++ ++/* GNU hash 0xffffffff. */ ++extern int glidpj (void); ++extern int glidqI (void); ++extern int glieOj (void); ++extern int gliePI (void); ++extern int gljCpj (void); ++ ++ ++int ++do_test (void) ++{ ++ TEST_COMPARE (foo (), 1); ++ TEST_COMPARE (Hxxxynpfoo (), 2); ++ TEST_COMPARE (HxxxynpHxxxynpfoo (), 3); ++ TEST_COMPARE (HxxxynpHxxxynpHxxxynpfoo (), 4); ++ TEST_COMPARE (HxxxynpHxxxynpHxxxynpHxxxynpfoo (), 5); ++ TEST_COMPARE (gliinmgliinmgliinmgliinmbar (), 6); ++ TEST_COMPARE (gliinmgliinmgliinmbar (), 7); ++ TEST_COMPARE (gliinmgliinmbar (), 8); ++ TEST_COMPARE (gliinmbar (), 9); ++ TEST_COMPARE (bar (), 10); ++ TEST_COMPARE (Hxxxynp (), 11); ++ TEST_COMPARE (HxxxypP (), 12); ++ TEST_COMPARE (Hxxyinp (), 13); ++ TEST_COMPARE (HxxyipP (), 14); ++ TEST_COMPARE (HxxykNp (), 15); ++ TEST_COMPARE (Hxxxyoa (), 16); ++ TEST_COMPARE (HxxxypQ (), 17); ++ TEST_COMPARE (HxxxyqA (), 18); ++ TEST_COMPARE (HxxxzaA (), 19); ++ TEST_COMPARE (Hxxxz_a (), 20); ++ TEST_COMPARE (Hxxxyob (), 21); ++ TEST_COMPARE (HxxxypR (), 22); ++ TEST_COMPARE (HxxxyqB (), 23); ++ TEST_COMPARE (HxxxzaB (), 24); ++ TEST_COMPARE (Hxxxz_b (), 25); ++ TEST_COMPARE (glidpk (), 26); ++ TEST_COMPARE (glidqJ (), 27); ++ TEST_COMPARE (glieOk (), 28); ++ TEST_COMPARE (gliePJ (), 29); ++ TEST_COMPARE (gljCpk (), 30); ++ TEST_COMPARE (glidpl (), 31); ++ TEST_COMPARE (glidqK (), 32); ++ TEST_COMPARE (glieOl (), 33); ++ TEST_COMPARE (gliePK (), 34); ++ TEST_COMPARE (gljCpl (), 35); ++ TEST_COMPARE (glidpm (), 36); ++ TEST_COMPARE (glidqL (), 37); ++ TEST_COMPARE (glieOm (), 38); ++ TEST_COMPARE (gliePL (), 39); ++ TEST_COMPARE (gljCpm (), 40); ++ TEST_COMPARE (AdfmZru (), 41); ++ TEST_COMPARE (AdfmZsT (), 42); ++ TEST_COMPARE (AdfmZt3 (), 43); ++ TEST_COMPARE (Adfn9ru (), 44); ++ TEST_COMPARE (Adfn9sT (), 45); ++ TEST_COMPARE (AdfmZrv (), 46); ++ TEST_COMPARE (AdfmZsU (), 47); ++ TEST_COMPARE (AdfmZt4 (), 48); ++ TEST_COMPARE (Adfn9rv (), 49); ++ TEST_COMPARE (Adfn9sU (), 50); ++ TEST_COMPARE (AdfmZrw (), 51); ++ TEST_COMPARE (AdfmZsV (), 52); ++ TEST_COMPARE (AdfmZt5 (), 53); ++ TEST_COMPARE (Adfn9rw (), 54); ++ TEST_COMPARE (Adfn9sV (), 55); ++ TEST_COMPARE (AdfmZrx (), 56); ++ TEST_COMPARE (AdfmZsW (), 57); ++ TEST_COMPARE (AdfmZt6 (), 58); ++ TEST_COMPARE (Adfn9rx (), 59); ++ TEST_COMPARE (Adfn9sW (), 60); ++ TEST_COMPARE (glidpi (), 61); ++ TEST_COMPARE (glidqH (), 62); ++ TEST_COMPARE (glieOi (), 63); ++ TEST_COMPARE (gliePH (), 64); ++ TEST_COMPARE (gljCpi (), 65); ++ TEST_COMPARE (glidpj (), 66); ++ TEST_COMPARE (glidqI (), 67); ++ TEST_COMPARE (glieOj (), 68); ++ TEST_COMPARE (gliePI (), 69); ++ TEST_COMPARE (gljCpj (), 70); ++ return 0; ++} ++ ++#include +diff --git a/elf/tst-hash-collision2-gnu.c b/elf/tst-hash-collision2-gnu.c +new file mode 100644 +index 0000000000000000..92f0862e914a9dbe +--- /dev/null ++++ b/elf/tst-hash-collision2-gnu.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision1.c" +diff --git a/elf/tst-hash-collision2-mod1-gnu.c b/elf/tst-hash-collision2-mod1-gnu.c +new file mode 100644 +index 0000000000000000..9aa5cc1477166c0f +--- /dev/null ++++ b/elf/tst-hash-collision2-mod1-gnu.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision2-mod1.c" +diff --git a/elf/tst-hash-collision2-mod1-sysv.c b/elf/tst-hash-collision2-mod1-sysv.c +new file mode 100644 +index 0000000000000000..9aa5cc1477166c0f +--- /dev/null ++++ b/elf/tst-hash-collision2-mod1-sysv.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision2-mod1.c" +diff --git a/elf/tst-hash-collision2-mod1.c b/elf/tst-hash-collision2-mod1.c +new file mode 100644 +index 0000000000000000..6adf75eb35117d69 +--- /dev/null ++++ b/elf/tst-hash-collision2-mod1.c +@@ -0,0 +1,280 @@ ++/* Test ELF hash collisions: shared object 1. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++/* Names with hash collisions for classic ELF hash. */ ++ ++int ++foo (void) ++{ ++ return 1; ++} ++ ++int ++Hxxxynpfoo (void) ++{ ++ return 2; ++} ++ ++int ++HxxxynpHxxxynpfoo (void) ++{ ++ return 3; ++} ++ ++ ++/* Names with hash collisions for GNU hash. */ ++ ++int ++bar (void) ++{ ++ return 10; ++} ++ ++int ++gliinmbar (void) ++{ ++ return 9; ++} ++ ++int ++gliinmgliinmbar (void) ++{ ++ return 8; ++} ++ ++ ++/* Names with specific hash values for each hash (see ++ tst-hash-collision1.c for details). */ ++ ++int ++Hxxxynp (void) ++{ ++ return 11; ++} ++ ++int ++HxxxypP (void) ++{ ++ return 12; ++} ++ ++int ++Hxxyinp (void) ++{ ++ return 13; ++} ++ ++int ++Hxxxyoa (void) ++{ ++ return 16; ++} ++ ++int ++HxxxypQ (void) ++{ ++ return 17; ++} ++ ++int ++HxxxyqA (void) ++{ ++ return 18; ++} ++ ++int ++Hxxxyob (void) ++{ ++ return 21; ++} ++ ++int ++HxxxypR (void) ++{ ++ return 22; ++} ++ ++int ++HxxxyqB (void) ++{ ++ return 23; ++} ++ ++int ++glidpk (void) ++{ ++ return 26; ++} ++ ++int ++glidqJ (void) ++{ ++ return 27; ++} ++ ++int ++glieOk (void) ++{ ++ return 28; ++} ++ ++int ++glidpl (void) ++{ ++ return 31; ++} ++ ++int ++glidqK (void) ++{ ++ return 32; ++} ++ ++int ++glieOl (void) ++{ ++ return 33; ++} ++ ++int ++glidpm (void) ++{ ++ return 36; ++} ++ ++int ++glidqL (void) ++{ ++ return 37; ++} ++ ++int ++glieOm (void) ++{ ++ return 38; ++} ++ ++int ++AdfmZru (void) ++{ ++ return 41; ++} ++ ++int ++AdfmZsT (void) ++{ ++ return 42; ++} ++ ++int ++AdfmZt3 (void) ++{ ++ return 43; ++} ++ ++int ++AdfmZrv (void) ++{ ++ return 46; ++} ++ ++int ++AdfmZsU (void) ++{ ++ return 47; ++} ++ ++int ++AdfmZt4 (void) ++{ ++ return 48; ++} ++ ++int ++AdfmZrw (void) ++{ ++ return 51; ++} ++ ++int ++AdfmZsV (void) ++{ ++ return 52; ++} ++ ++int ++AdfmZt5 (void) ++{ ++ return 53; ++} ++ ++int ++AdfmZrx (void) ++{ ++ return 56; ++} ++ ++int ++AdfmZsW (void) ++{ ++ return 57; ++} ++ ++int ++AdfmZt6 (void) ++{ ++ return 58; ++} ++ ++int ++glidpi (void) ++{ ++ return 61; ++} ++ ++int ++glidqH (void) ++{ ++ return 62; ++} ++ ++int ++glieOi (void) ++{ ++ return 63; ++} ++ ++int ++glidpj (void) ++{ ++ return 66; ++} ++ ++int ++glidqI (void) ++{ ++ return 67; ++} ++ ++int ++glieOj (void) ++{ ++ return 68; ++} +diff --git a/elf/tst-hash-collision2-mod2-gnu.c b/elf/tst-hash-collision2-mod2-gnu.c +new file mode 100644 +index 0000000000000000..39579f6736fe366d +--- /dev/null ++++ b/elf/tst-hash-collision2-mod2-gnu.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision2-mod2.c" +diff --git a/elf/tst-hash-collision2-mod2-sysv.c b/elf/tst-hash-collision2-mod2-sysv.c +new file mode 100644 +index 0000000000000000..39579f6736fe366d +--- /dev/null ++++ b/elf/tst-hash-collision2-mod2-sysv.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision2-mod2.c" +diff --git a/elf/tst-hash-collision2-mod2.c b/elf/tst-hash-collision2-mod2.c +new file mode 100644 +index 0000000000000000..e0bb90e60bc477b7 +--- /dev/null ++++ b/elf/tst-hash-collision2-mod2.c +@@ -0,0 +1,196 @@ ++/* Test ELF hash collisions: shared object 2. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++/* Names with hash collisions for classic ELF hash. */ ++ ++int ++HxxxynpHxxxynpHxxxynpfoo (void) ++{ ++ return 4; ++} ++ ++int ++HxxxynpHxxxynpHxxxynpHxxxynpfoo (void) ++{ ++ return 5; ++} ++ ++ ++/* Names with hash collisions for GNU hash. */ ++ ++int ++gliinmgliinmgliinmbar (void) ++{ ++ return 7; ++} ++ ++int ++gliinmgliinmgliinmgliinmbar (void) ++{ ++ return 6; ++} ++ ++ ++/* Names with specific hash values for each hash (see ++ tst-hash-collision1.c for details). */ ++ ++int ++HxxyipP (void) ++{ ++ return 14; ++} ++ ++int ++HxxykNp (void) ++{ ++ return 15; ++} ++ ++int ++HxxxzaA (void) ++{ ++ return 19; ++} ++ ++int ++Hxxxz_a (void) ++{ ++ return 20; ++} ++ ++int ++HxxxzaB (void) ++{ ++ return 24; ++} ++ ++int ++Hxxxz_b (void) ++{ ++ return 25; ++} ++ ++int ++gliePJ (void) ++{ ++ return 29; ++} ++ ++int ++gljCpk (void) ++{ ++ return 30; ++} ++ ++int ++gliePK (void) ++{ ++ return 34; ++} ++ ++int ++gljCpl (void) ++{ ++ return 35; ++} ++ ++int ++gliePL (void) ++{ ++ return 39; ++} ++ ++int ++gljCpm (void) ++{ ++ return 40; ++} ++ ++int ++Adfn9ru (void) ++{ ++ return 44; ++} ++ ++int ++Adfn9sT (void) ++{ ++ return 45; ++} ++ ++int ++Adfn9rv (void) ++{ ++ return 49; ++} ++ ++int ++Adfn9sU (void) ++{ ++ return 50; ++} ++ ++int ++Adfn9rw (void) ++{ ++ return 54; ++} ++ ++int ++Adfn9sV (void) ++{ ++ return 55; ++} ++ ++int ++Adfn9rx (void) ++{ ++ return 59; ++} ++ ++int ++Adfn9sW (void) ++{ ++ return 60; ++} ++ ++int ++gliePH (void) ++{ ++ return 64; ++} ++ ++int ++gljCpi (void) ++{ ++ return 65; ++} ++ ++int ++gliePI (void) ++{ ++ return 69; ++} ++ ++int ++gljCpj (void) ++{ ++ return 70; ++} +diff --git a/elf/tst-hash-collision2-sysv.c b/elf/tst-hash-collision2-sysv.c +new file mode 100644 +index 0000000000000000..92f0862e914a9dbe +--- /dev/null ++++ b/elf/tst-hash-collision2-sysv.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision1.c" +diff --git a/elf/tst-hash-collision2.c b/elf/tst-hash-collision2.c +new file mode 100644 +index 0000000000000000..92f0862e914a9dbe +--- /dev/null ++++ b/elf/tst-hash-collision2.c +@@ -0,0 +1 @@ ++#include "tst-hash-collision1.c" +diff --git a/elf/tst-hash-collision3-mod.c b/elf/tst-hash-collision3-mod.c +new file mode 100644 +index 0000000000000000..f24a15c7d3b78aa7 +--- /dev/null ++++ b/elf/tst-hash-collision3-mod.c +@@ -0,0 +1,88 @@ ++/* Test ELF symbol version hash collisions: shared object. ++ Copyright (C) 2024 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 ++ . */ ++ ++int ++foo1 (void) ++{ ++ return 1; ++} ++ ++int ++foo2 (void) ++{ ++ return 2; ++} ++ ++int ++foo3 (void) ++{ ++ return 3; ++} ++ ++int ++foo4 (void) ++{ ++ return 4; ++} ++ ++int ++foo5 (void) ++{ ++ return 5; ++} ++ ++int ++bar1 (void) ++{ ++ return 6; ++} ++ ++int ++bar2 (void) ++{ ++ return 7; ++} ++ ++int ++bar3 (void) ++{ ++ return 8; ++} ++ ++int ++bar4 (void) ++{ ++ return 9; ++} ++ ++int ++bar5 (void) ++{ ++ return 10; ++} ++ ++symbol_version (foo1, foo, Hxxxyoa); ++symbol_version (foo2, foo, HxxxypQ); ++symbol_version (foo3, foo, HxxxyqA); ++symbol_version (foo4, foo, HxxxzaA); ++symbol_version (foo5, foo, Hxxxz_a); ++symbol_version (bar1, bar, Hxxxyob); ++symbol_version (bar2, bar, HxxxypR); ++symbol_version (bar3, bar, HxxxyqB); ++symbol_version (bar4, bar, HxxxzaB); ++symbol_version (bar5, bar, Hxxxz_b); +diff --git a/elf/tst-hash-collision3-mod.map b/elf/tst-hash-collision3-mod.map +new file mode 100644 +index 0000000000000000..1b7d8498309c606b +--- /dev/null ++++ b/elf/tst-hash-collision3-mod.map +@@ -0,0 +1,43 @@ ++Base { ++ local: *; ++}; ++ ++Hxxxyoa { ++ global: foo; ++} Base; ++ ++HxxxypQ { ++ global: foo; ++} Base; ++ ++HxxxyqA { ++ global: foo; ++} Base; ++ ++HxxxzaA { ++ global: foo; ++} Base; ++ ++Hxxxz_a { ++ global: foo; ++} Base; ++ ++Hxxxyob { ++ global: bar; ++} Base; ++ ++HxxxypR { ++ global: bar; ++} Base; ++ ++HxxxyqB { ++ global: bar; ++} Base; ++ ++HxxxzaB { ++ global: bar; ++} Base; ++ ++Hxxxz_b { ++ global: bar; ++} Base; +diff --git a/elf/tst-hash-collision3.c b/elf/tst-hash-collision3.c +new file mode 100644 +index 0000000000000000..309869c3f86d3859 +--- /dev/null ++++ b/elf/tst-hash-collision3.c +@@ -0,0 +1,61 @@ ++/* Test ELF symbol version hash collisions. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++ ++extern int ref_foo1 (void); ++extern int ref_foo2 (void); ++extern int ref_foo3 (void); ++extern int ref_foo4 (void); ++extern int ref_foo5 (void); ++extern int ref_bar1 (void); ++extern int ref_bar2 (void); ++extern int ref_bar3 (void); ++extern int ref_bar4 (void); ++extern int ref_bar5 (void); ++ ++symbol_version_reference (ref_foo1, foo, Hxxxyoa); ++symbol_version_reference (ref_foo2, foo, HxxxypQ); ++symbol_version_reference (ref_foo3, foo, HxxxyqA); ++symbol_version_reference (ref_foo4, foo, HxxxzaA); ++symbol_version_reference (ref_foo5, foo, Hxxxz_a); ++symbol_version_reference (ref_bar1, bar, Hxxxyob); ++symbol_version_reference (ref_bar2, bar, HxxxypR); ++symbol_version_reference (ref_bar3, bar, HxxxyqB); ++symbol_version_reference (ref_bar4, bar, HxxxzaB); ++symbol_version_reference (ref_bar5, bar, Hxxxz_b); ++ ++ ++int ++do_test (void) ++{ ++ TEST_COMPARE (ref_foo1 (), 1); ++ TEST_COMPARE (ref_foo2 (), 2); ++ TEST_COMPARE (ref_foo3 (), 3); ++ TEST_COMPARE (ref_foo4 (), 4); ++ TEST_COMPARE (ref_foo5 (), 5); ++ TEST_COMPARE (ref_bar1 (), 6); ++ TEST_COMPARE (ref_bar2 (), 7); ++ TEST_COMPARE (ref_bar3 (), 8); ++ TEST_COMPARE (ref_bar4 (), 9); ++ TEST_COMPARE (ref_bar5 (), 10); ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119403.patch b/glibc-RHEL-119403.patch new file mode 100644 index 0000000..3633ba3 --- /dev/null +++ b/glibc-RHEL-119403.patch @@ -0,0 +1,106 @@ +commit 3c2b9dc41cd05da055fae6f793a355063156bdf3 +Author: Joseph Myers +Date: Fri Nov 29 20:25:04 2024 +0000 + + Add threaded test of sem_trywait + + All the existing glibc tests of sem_trywait are single-threaded. Add + one that calls sem_trywait and sem_post in separate threads. + + Tested for x86_64. + +diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile +index aef323296d7926f6..93a8534cbf814f27 100644 +--- a/sysdeps/pthread/Makefile ++++ b/sysdeps/pthread/Makefile +@@ -257,6 +257,7 @@ tests += \ + tst-sem15 \ + tst-sem16 \ + tst-sem18 \ ++ tst-sem19 \ + tst-setuid3 \ + tst-signal1 \ + tst-signal2 \ +diff --git a/sysdeps/pthread/tst-sem19.c b/sysdeps/pthread/tst-sem19.c +new file mode 100644 +index 0000000000000000..9ef461e008ab9eab +--- /dev/null ++++ b/sysdeps/pthread/tst-sem19.c +@@ -0,0 +1,77 @@ ++/* Test sem_trywait with threads. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* The test uses two threads, the main thread and a newly created ++ thread to test the operation of sem_trywait in a threaded scenario. ++ The intent is to test sem_trywait when it would return EAGAIN, and ++ then again after the critical section in the new thread has posted ++ to the semaphore and the main thread succeeds in calling ++ sem_trywait. It is possible this test fails with a timeout if the ++ second thread takes longer than the test timeout to acquire the ++ lock, and post. */ ++ ++static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; ++static sem_t sem; ++ ++static void * ++tf (void *arg) ++{ ++ xpthread_mutex_lock (&lock); ++ sem_post (&sem); ++ xpthread_mutex_unlock (&lock); ++ return NULL; ++} ++ ++static int ++do_test (void) ++{ ++ int ret; ++ ++ ret = sem_init (&sem, 0, 0); ++ TEST_VERIFY_EXIT (ret == 0); ++ xpthread_mutex_lock (&lock); ++ pthread_t th = xpthread_create (NULL, tf, NULL); ++ errno = 0; ++ /* The other thread is waiting on the lock before it calls sem_post, ++ so sem_trywait should fail. */ ++ ret = sem_trywait (&sem); ++ TEST_COMPARE (ret, -1); ++ TEST_COMPARE (errno, EAGAIN); ++ xpthread_mutex_unlock (&lock); ++ /* The other thread now takes the lock, calls sem_post and releases ++ the lock. */ ++ for (;;) ++ { ++ errno = 0; ++ ret = sem_trywait (&sem); ++ if (ret == 0) ++ break; ++ TEST_COMPARE (errno, EAGAIN); ++ } ++ xpthread_join (th); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119404-1.patch b/glibc-RHEL-119404-1.patch new file mode 100644 index 0000000..a0fd671 --- /dev/null +++ b/glibc-RHEL-119404-1.patch @@ -0,0 +1,495 @@ +commit 9b5f2eb9fc5d3cf4b984f6002e69aac43296e922 +Author: Joseph Myers +Date: Thu Dec 5 09:53:47 2024 +0000 + + Add further test of TLS + + Add an additional test of TLS variables, with different alignment, + accessed from different modules. The idea of the alignment test is + similar to tst-tlsalign and the same code is shared for setting up + test variables, but unlike the tst-tlsalign code, there are multiple + threads and variables are accessed from multiple objects to verify + that they get a consistent notion of the address of an object within a + thread. Threads are repeatedly created and shut down to verify proper + initialization in each new thread. The test is also repeated with TLS + descriptors when supported. (However, only initial-exec TLS is + covered in this test.) + + Tested for x86_64. + +Conflicts: + elf/Makefile + context +diff --git a/elf/Makefile b/elf/Makefile +index 8f5b39d352..214c6a9f90 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -487,6 +487,8 @@ tests += \ + tst-tls19 \ + tst-tls20 \ + tst-tls21 \ ++ tst-tls22 \ ++ tst-tls22-gnu2 \ + tst-tls23 \ + tst-tlsalign \ + tst-tlsalign-extern \ +@@ -688,9 +690,15 @@ tst-tls-many-dynamic-modules-dep-bad = \ + extra-test-objs += \ + $(tlsmod17a-modules:=.os) \ + $(tlsmod18a-modules:=.os) \ ++ tst-tls22-mod1-vars.os \ ++ tst-tls22-mod2-vars.os \ ++ tst-tls22-vars.o \ + tst-tlsalign-vars.o \ + # extra-test-objs + test-extras += \ ++ tst-tls22-mod1-vars \ ++ tst-tls22-mod2-vars \ ++ tst-tls22-vars \ + tst-tlsalign-vars \ + tst-tlsmod17a \ + tst-tlsmod18a \ +@@ -972,6 +980,10 @@ modules-names += \ + tst-tls19mod3 \ + tst-tls20mod-bad \ + tst-tls21mod \ ++ tst-tls22-mod1 \ ++ tst-tls22-mod1-gnu2 \ ++ tst-tls22-mod2 \ ++ tst-tls22-mod2-gnu2 \ + tst-tls23-mod \ + tst-tlsalign-lib \ + tst-tlsgap-mod0 \ +@@ -3242,3 +3254,27 @@ $(objpfx)tst-hash-collision2-sysv: $(objpfx)tst-hash-collision2-mod1-sysv.so \ + $(objpfx)tst-dlopen-constructor-null-mod2.so + $(objpfx)tst-dlopen-constructor-null-mod2.so: \ + $(objpfx)tst-dlopen-constructor-null-mod1.so ++ ++$(objpfx)tst-tls22: $(objpfx)tst-tls22-vars.o $(objpfx)tst-tls22-mod1.so \ ++ $(objpfx)tst-tls22-mod2.so $(shared-thread-library) ++$(objpfx)tst-tls22-mod1.so: $(objpfx)tst-tls22-mod1.os \ ++ $(objpfx)tst-tls22-mod1-vars.os $(objpfx)tst-tls22-mod2.so ++$(objpfx)tst-tls22-mod2.so: $(objpfx)tst-tls22-mod2.os \ ++ $(objpfx)tst-tls22-mod2-vars.os ++$(objpfx)tst-tls22-gnu2: $(objpfx)tst-tls22-vars.o \ ++ $(objpfx)tst-tls22-mod1-gnu2.so $(objpfx)tst-tls22-mod2-gnu2.so \ ++ $(shared-thread-library) ++$(objpfx)tst-tls22-mod1-gnu2.so: $(objpfx)tst-tls22-mod1-gnu2.os \ ++ $(objpfx)tst-tls22-mod1-vars.os $(objpfx)tst-tls22-mod2-gnu2.so ++$(objpfx)tst-tls22-mod2-gnu2.so: $(objpfx)tst-tls22-mod2-gnu2.os \ ++ $(objpfx)tst-tls22-mod2-vars.os ++ifneq (no,$(have-mtls-descriptor)) ++CFLAGS-tst-tls22-gnu2.c += -mtls-dialect=$(have-mtls-descriptor) ++CFLAGS-tst-tls22-mod1-gnu2.c += -mtls-dialect=$(have-mtls-descriptor) ++CFLAGS-tst-tls22-mod2-gnu2.c += -mtls-dialect=$(have-mtls-descriptor) ++endif ++# These reference symbols from the main executable. ++tst-tls22-mod1.so-no-z-defs = yes ++tst-tls22-mod1-gnu2.so-no-z-defs = yes ++tst-tls22-mod2.so-no-z-defs = yes ++tst-tls22-mod2-gnu2.so-no-z-defs = yes +diff --git a/elf/tst-tls22-gnu2.c b/elf/tst-tls22-gnu2.c +new file mode 100644 +index 0000000000..d9ce6df0b2 +--- /dev/null ++++ b/elf/tst-tls22-gnu2.c +@@ -0,0 +1 @@ ++#include +diff --git a/elf/tst-tls22-mod1-gnu2.c b/elf/tst-tls22-mod1-gnu2.c +new file mode 100644 +index 0000000000..0b085fe175 +--- /dev/null ++++ b/elf/tst-tls22-mod1-gnu2.c +@@ -0,0 +1 @@ ++#include +diff --git a/elf/tst-tls22-mod1-vars.c b/elf/tst-tls22-mod1-vars.c +new file mode 100644 +index 0000000000..bdb7358287 +--- /dev/null ++++ b/elf/tst-tls22-mod1-vars.c +@@ -0,0 +1,9 @@ ++#include ++ ++#define tdata1 mod1_tdata1 ++#define tdata2 mod1_tdata2 ++#define tdata3 mod1_tdata3 ++#define tbss1 mod1_tbss1 ++#define tbss2 mod1_tbss2 ++#define tbss3 mod1_tbss3 ++#include +diff --git a/elf/tst-tls22-mod1.c b/elf/tst-tls22-mod1.c +new file mode 100644 +index 0000000000..3a47d7bbc6 +--- /dev/null ++++ b/elf/tst-tls22-mod1.c +@@ -0,0 +1,27 @@ ++/* Test TLS with varied alignment and multiple modules and threads. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++void ++test_mod1 (struct one_thread_data *data, int base_val) ++{ ++ STORE_ADDRS (&data->mod1_self, mod1); ++ STORE_ADDRS (&data->exe_from_mod1, exe); ++ STORE_ADDRS (&data->mod2_from_mod1, mod2); ++} +diff --git a/elf/tst-tls22-mod2-gnu2.c b/elf/tst-tls22-mod2-gnu2.c +new file mode 100644 +index 0000000000..a5260e0616 +--- /dev/null ++++ b/elf/tst-tls22-mod2-gnu2.c +@@ -0,0 +1 @@ ++#include +diff --git a/elf/tst-tls22-mod2-vars.c b/elf/tst-tls22-mod2-vars.c +new file mode 100644 +index 0000000000..9ef3452bba +--- /dev/null ++++ b/elf/tst-tls22-mod2-vars.c +@@ -0,0 +1,9 @@ ++#include ++ ++#define tdata1 mod2_tdata1 ++#define tdata2 mod2_tdata2 ++#define tdata3 mod2_tdata3 ++#define tbss1 mod2_tbss1 ++#define tbss2 mod2_tbss2 ++#define tbss3 mod2_tbss3 ++#include +diff --git a/elf/tst-tls22-mod2.c b/elf/tst-tls22-mod2.c +new file mode 100644 +index 0000000000..5d26d592b0 +--- /dev/null ++++ b/elf/tst-tls22-mod2.c +@@ -0,0 +1,26 @@ ++/* Test TLS with varied alignment and multiple modules and threads. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++void ++test_mod2 (struct one_thread_data *data, int base_val) ++{ ++ STORE_ADDRS (&data->mod2_self, mod2); ++ STORE_ADDRS (&data->exe_from_mod2, exe); ++} +diff --git a/elf/tst-tls22-vars.c b/elf/tst-tls22-vars.c +new file mode 100644 +index 0000000000..2ad3ee7a3b +--- /dev/null ++++ b/elf/tst-tls22-vars.c +@@ -0,0 +1,9 @@ ++#include ++ ++#define tdata1 exe_tdata1 ++#define tdata2 exe_tdata2 ++#define tdata3 exe_tdata3 ++#define tbss1 exe_tbss1 ++#define tbss2 exe_tbss2 ++#define tbss3 exe_tbss3 ++#include +diff --git a/elf/tst-tls22.c b/elf/tst-tls22.c +new file mode 100644 +index 0000000000..35a8cd82b2 +--- /dev/null ++++ b/elf/tst-tls22.c +@@ -0,0 +1,147 @@ ++/* Test TLS with varied alignment and multiple modules and threads. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++ ++static void ++check_addrs_align (const struct obj_addrs *addrs) ++{ ++ TEST_COMPARE (addrs->addr_tdata1 & (__alignof__ (int) - 1), 0); ++ TEST_COMPARE (addrs->addr_tdata2 & 0xf, 0); ++ TEST_COMPARE (addrs->addr_tdata3 & 0xfff, 0); ++ TEST_COMPARE (addrs->addr_tbss1 & (__alignof__ (int) - 1), 0); ++ TEST_COMPARE (addrs->addr_tbss2 & 0xf, 0); ++ TEST_COMPARE (addrs->addr_tbss3 & 0xfff, 0); ++} ++ ++static void ++check_addrs_same (const struct obj_addrs *addrs1, ++ const struct obj_addrs *addrs2) ++{ ++ TEST_COMPARE (addrs1->addr_tdata1, addrs2->addr_tdata1); ++ TEST_COMPARE (addrs1->addr_tdata2, addrs2->addr_tdata2); ++ TEST_COMPARE (addrs1->addr_tdata3, addrs2->addr_tdata3); ++ TEST_COMPARE (addrs1->addr_tbss1, addrs2->addr_tbss1); ++ TEST_COMPARE (addrs1->addr_tbss2, addrs2->addr_tbss2); ++ TEST_COMPARE (addrs1->addr_tbss3, addrs2->addr_tbss3); ++} ++ ++static void ++check_vals_before (const struct obj_values *vals) ++{ ++ TEST_COMPARE (vals->val_tdata1, 1); ++ TEST_COMPARE (vals->val_tdata2, 2); ++ TEST_COMPARE (vals->val_tdata3, 4); ++ TEST_COMPARE (vals->val_tbss1, 0); ++ TEST_COMPARE (vals->val_tbss2, 0); ++ TEST_COMPARE (vals->val_tbss3, 0); ++} ++ ++static void ++check_vals_after (const struct obj_values *vals, int base_val) ++{ ++ TEST_COMPARE (vals->val_tdata1, base_val); ++ TEST_COMPARE (vals->val_tdata2, base_val + 1); ++ TEST_COMPARE (vals->val_tdata3, base_val + 2); ++ TEST_COMPARE (vals->val_tbss1, base_val + 3); ++ TEST_COMPARE (vals->val_tbss2, base_val + 4); ++ TEST_COMPARE (vals->val_tbss3, base_val + 5); ++} ++ ++static void ++check_one_thread (const struct one_thread_data *data, int base_val) ++{ ++ check_vals_before (&data->exe_before); ++ check_vals_before (&data->mod1_before); ++ check_vals_before (&data->mod2_before); ++ check_vals_after (&data->exe_after, base_val); ++ check_vals_after (&data->mod1_after, base_val); ++ check_vals_after (&data->mod2_after, base_val); ++ check_addrs_align (&data->exe_self); ++ check_addrs_same (&data->exe_self, &data->exe_from_mod1); ++ check_addrs_same (&data->exe_self, &data->exe_from_mod2); ++ check_addrs_align (&data->mod1_self); ++ check_addrs_same (&data->mod1_self, &data->mod1_from_exe); ++ check_addrs_align (&data->mod2_self); ++ check_addrs_same (&data->mod2_self, &data->mod2_from_exe); ++ check_addrs_same (&data->mod2_self, &data->mod2_from_mod1); ++} ++ ++static void * ++thread_func (void *arg) ++{ ++ int base_val = (int) (intptr_t) arg + 10; ++ struct one_thread_data data; ++ /* Record the addresses of variables as seen from the main ++ executable (which should be the same as seen from the other ++ modules), and their initial values. */ ++ STORE_ADDRS (&data.exe_self, exe); ++ STORE_ADDRS (&data.mod1_from_exe, mod1); ++ STORE_ADDRS (&data.mod2_from_exe, mod2); ++ STORE_VALUES (&data.exe_before, exe); ++ STORE_VALUES (&data.mod1_before, mod1); ++ STORE_VALUES (&data.mod2_before, mod2); ++ /* Overwrite the value of variables. */ ++ OVERWRITE_VALUES (exe, base_val); ++ OVERWRITE_VALUES (mod1, base_val); ++ OVERWRITE_VALUES (mod2, base_val); ++ /* Record the addresses of variables as seen from other modules. */ ++ test_mod1 (&data, base_val); ++ test_mod2 (&data, base_val); ++ /* Record the overwritten values (thus making sure that no other ++ thread running in parallel has changed this thread's values). */ ++ STORE_VALUES (&data.exe_after, exe); ++ STORE_VALUES (&data.mod1_after, mod1); ++ STORE_VALUES (&data.mod2_after, mod2); ++ /* Check all the addresses and values recorded. */ ++ check_one_thread (&data, base_val); ++ return NULL; ++} ++ ++#define NUM_ITERS 50 ++#define NUM_THREADS 16 ++ ++/* For NUM_ITERS iterations, repeatedly create NUM_THREADS threads. ++ In each thread, we determine the addresses of TLS objects (both ++ from the module defining those objects and from other modules), and ++ their initial values, and store in values that are then read back; ++ we check that each object's address is the same regardless of the ++ module in which it is determined, that alignment of objects is as ++ required, and that the values of objects are as expected. */ ++ ++static int ++do_test (void) ++{ ++ for (size_t i = 0; i < NUM_ITERS; i++) ++ { ++ pthread_t threads[NUM_THREADS]; ++ for (size_t j = 0; j < NUM_THREADS; j++) ++ threads[j] = xpthread_create (NULL, thread_func, (void *) j); ++ /* Also run checks in the main thread, but only once because ++ those values don't get reinitialized. */ ++ if (i == 0) ++ thread_func ((void *) NUM_THREADS); ++ for (size_t j = 0; j < NUM_THREADS; j++) ++ xpthread_join (threads[j]); ++ } ++ return 0; ++} ++ ++#include +diff --git a/elf/tst-tls22.h b/elf/tst-tls22.h +new file mode 100644 +index 0000000000..24b2e0a0b6 +--- /dev/null ++++ b/elf/tst-tls22.h +@@ -0,0 +1,115 @@ ++/* Test TLS with varied alignment and multiple modules and threads: header. ++ Copyright (C) 2024 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 ++ . */ ++ ++#ifndef TST_TLS22_H ++#define TST_TLS22_H ++ ++#include ++ ++extern __thread int exe_tdata1 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int exe_tdata2 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int exe_tdata3 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int exe_tbss1 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int exe_tbss2 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int exe_tbss3 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod1_tdata1 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod1_tdata2 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod1_tdata3 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod1_tbss1 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod1_tbss2 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod1_tbss3 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod2_tdata1 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod2_tdata2 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod2_tdata3 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod2_tbss1 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod2_tbss2 __attribute__ ((tls_model ("initial-exec"))); ++extern __thread int mod2_tbss3 __attribute__ ((tls_model ("initial-exec"))); ++ ++/* Structure to store the addresses of one set of TLS objects in one ++ thread, as seen by one module in the program. */ ++struct obj_addrs ++{ ++ uintptr_t addr_tdata1, addr_tdata2, addr_tdata3; ++ uintptr_t addr_tbss1, addr_tbss2, addr_tbss3; ++}; ++ ++/* Structure to store the values of one set of TLS objects in one ++ thread. */ ++struct obj_values ++{ ++ uintptr_t val_tdata1, val_tdata2, val_tdata3; ++ uintptr_t val_tbss1, val_tbss2, val_tbss3; ++}; ++ ++/* Structure to store all the data about TLS objects in one ++ thread. */ ++struct one_thread_data ++{ ++ struct obj_addrs exe_self, exe_from_mod1, exe_from_mod2; ++ struct obj_addrs mod1_self, mod1_from_exe; ++ struct obj_addrs mod2_self, mod2_from_exe, mod2_from_mod1; ++ struct obj_values exe_before, mod1_before, mod2_before; ++ struct obj_values exe_after, mod1_after, mod2_after; ++}; ++ ++/* Store the addresses of variables prefixed by PFX in the structure ++ pointed to by DST. */ ++#define STORE_ADDRS(DST, PFX) \ ++ do \ ++ { \ ++ (DST)->addr_tdata1 = (uintptr_t) &PFX ## _tdata1; \ ++ (DST)->addr_tdata2 = (uintptr_t) &PFX ## _tdata2; \ ++ (DST)->addr_tdata3 = (uintptr_t) &PFX ## _tdata3; \ ++ (DST)->addr_tbss1 = (uintptr_t) &PFX ## _tbss1; \ ++ (DST)->addr_tbss2 = (uintptr_t) &PFX ## _tbss2; \ ++ (DST)->addr_tbss3 = (uintptr_t) &PFX ## _tbss3; \ ++ } \ ++ while (0) ++ ++/* Store the values of variables prefixed by PFX in the structure ++ pointed to by DST. */ ++#define STORE_VALUES(DST, PFX) \ ++ do \ ++ { \ ++ (DST)->val_tdata1 = PFX ## _tdata1; \ ++ (DST)->val_tdata2 = PFX ## _tdata2; \ ++ (DST)->val_tdata3 = PFX ## _tdata3; \ ++ (DST)->val_tbss1 = PFX ## _tbss1; \ ++ (DST)->val_tbss2 = PFX ## _tbss2; \ ++ (DST)->val_tbss3 = PFX ## _tbss3; \ ++ } \ ++ while (0) ++ ++/* Overwrite the values of variables prefixed by PFX with values ++ starting with VAL. */ ++#define OVERWRITE_VALUES(PFX, VAL) \ ++ do \ ++ { \ ++ PFX ## _tdata1 = (VAL); \ ++ PFX ## _tdata2 = (VAL) + 1; \ ++ PFX ## _tdata3 = (VAL) + 2; \ ++ PFX ## _tbss1 = (VAL) + 3; \ ++ PFX ## _tbss2 = (VAL) + 4; \ ++ PFX ## _tbss3 = (VAL) + 5; \ ++ } \ ++ while (0) ++ ++void test_mod1 (struct one_thread_data *data, int base_val); ++void test_mod2 (struct one_thread_data *data, int base_val); ++ ++#endif /* TST_TLS22_H */ diff --git a/glibc-RHEL-119409-1.patch b/glibc-RHEL-119409-1.patch new file mode 100644 index 0000000..de415c9 --- /dev/null +++ b/glibc-RHEL-119409-1.patch @@ -0,0 +1,2515 @@ +commit 53fcdf5f743aa9b02972eec658e66f96d6a63386 +Author: Alejandro Colomar +Date: Sat Nov 16 16:51:31 2024 +0100 + + Silence most -Wzero-as-null-pointer-constant diagnostics + + Replace 0 by NULL and {0} by {}. + + Omit a few cases that aren't so trivial to fix. + + Link: + Link: + Signed-off-by: Alejandro Colomar + +Conflicts: + elf/dl-tunables.c + (modified non-existing code downstream) + +diff --git a/argp/argp-fmtstream.c b/argp/argp-fmtstream.c +index eb0a886c723d9010..35b5b1d0fec74d78 100644 +--- a/argp/argp-fmtstream.c ++++ b/argp/argp-fmtstream.c +@@ -74,7 +74,7 @@ __argp_make_fmtstream (FILE *stream, + if (! fs->buf) + { + free (fs); +- fs = 0; ++ fs = NULL; + } + else + { +diff --git a/argp/argp-help.c b/argp/argp-help.c +index cc43f376d438ddb2..5c41fdcd593accd9 100644 +--- a/argp/argp-help.c ++++ b/argp/argp-help.c +@@ -443,7 +443,7 @@ make_hol (const struct argp *argp, struct hol_cluster *cluster) + assert (hol); + + hol->num_entries = 0; +- hol->clusters = 0; ++ hol->clusters = NULL; + + if (opts) + { +@@ -615,7 +615,7 @@ static char + hol_entry_first_short (const struct hol_entry *entry) + { + return hol_entry_short_iterate (entry, until_short, +- entry->argp->argp_domain, 0); ++ entry->argp->argp_domain, NULL); + } + + /* Returns the first valid long option in ENTRY, or NULL if there is none. */ +@@ -627,7 +627,7 @@ hol_entry_first_long (const struct hol_entry *entry) + for (opt = entry->opt, num = entry->num; num > 0; opt++, num--) + if (opt->name && ovisible (opt)) + return opt->name; +- return 0; ++ return NULL; + } + + /* Returns the entry in HOL with the long option name NAME, or NULL if there is +@@ -652,7 +652,7 @@ hol_find_entry (struct hol *hol, const char *name) + entry++; + } + +- return 0; ++ return NULL; + } + + /* If an entry with the long option NAME occurs in HOL, set it's special +@@ -926,7 +926,7 @@ hol_append (struct hol *hol, struct hol *more) + while (*cl_end) + cl_end = &(*cl_end)->next; + *cl_end = more->clusters; +- more->clusters = 0; ++ more->clusters = NULL; + + /* Merge entries. */ + if (more->num_entries > 0) +@@ -1299,7 +1299,7 @@ hol_entry_help (struct hol_entry *entry, const struct argp_state *state, + { + const char *tstr = real->doc ? dgettext (state == NULL ? NULL + : state->root_argp->argp_domain, +- real->doc) : 0; ++ real->doc) : NULL; + const char *fstr = filter_doc (tstr, real->key, entry->argp, state); + if (fstr && *fstr) + { +@@ -1339,7 +1339,7 @@ hol_help (struct hol *hol, const struct argp_state *state, + { + unsigned num; + struct hol_entry *entry; +- struct hol_help_state hhstate = { 0, 0, 0 }; ++ struct hol_help_state hhstate = { NULL, 0, 0 }; + + for (entry = hol->entries, num = hol->num_entries; num > 0; entry++, num--) + hol_entry_help (entry, state, stream, &hhstate); +@@ -1351,7 +1351,7 @@ hol_help (struct hol *hol, const struct argp_state *state, + Mandatory or optional arguments to long options are also mandatory or \ + optional for any corresponding short options."); + const char *fstr = filter_doc (tstr, ARGP_KEY_HELP_DUP_ARGS_NOTE, +- state ? state->root_argp : 0, state); ++ state ? state->root_argp : NULL, state); + if (fstr && *fstr) + { + __argp_fmtstream_putc (stream, '\n'); +@@ -1511,7 +1511,7 @@ argp_args_usage (const struct argp *argp, const struct argp_state *state, + char *our_level = *levels; + int multiple = 0; + const struct argp_child *child = argp->children; +- const char *tdoc = dgettext (argp->argp_domain, argp->args_doc), *nl = 0; ++ const char *tdoc = dgettext (argp->argp_domain, argp->args_doc), *nl = NULL; + const char *fdoc = filter_doc (tdoc, ARGP_KEY_HELP_ARGS_DOC, argp, state); + + if (fdoc) +@@ -1573,7 +1573,7 @@ argp_doc (const struct argp *argp, const struct argp_state *state, + { + const char *text; + const char *inp_text; +- void *input = 0; ++ void *input = NULL; + int anything = 0; + size_t inp_text_limit = 0; + const char *doc = dgettext (argp->argp_domain, argp->doc); +@@ -1582,11 +1582,11 @@ argp_doc (const struct argp *argp, const struct argp_state *state, + if (doc) + { + char *vt = strchr (doc, '\v'); +- inp_text = post ? (vt ? vt + 1 : 0) : doc; ++ inp_text = post ? (vt ? vt + 1 : NULL) : doc; + inp_text_limit = (!post && vt) ? (vt - doc) : 0; + } + else +- inp_text = 0; ++ inp_text = NULL; + + if (argp->help_filter) + /* We have to filter the doc strings. */ +@@ -1628,7 +1628,7 @@ argp_doc (const struct argp *argp, const struct argp_state *state, + if (post && argp->help_filter) + /* Now see if we have to output a ARGP_KEY_HELP_EXTRA text. */ + { +- text = (*argp->help_filter) (ARGP_KEY_HELP_EXTRA, 0, input); ++ text = (*argp->help_filter) (ARGP_KEY_HELP_EXTRA, NULL, input); + if (text) + { + if (anything || pre_blank) +@@ -1661,7 +1661,7 @@ _help (const struct argp *argp, const struct argp_state *state, FILE *stream, + unsigned flags, char *name) + { + int anything = 0; /* Whether we've output anything. */ +- struct hol *hol = 0; ++ struct hol *hol = NULL; + argp_fmtstream_t fs; + + if (! stream) +@@ -1684,7 +1684,7 @@ _help (const struct argp *argp, const struct argp_state *state, FILE *stream, + + if (flags & (ARGP_HELP_USAGE | ARGP_HELP_SHORT_USAGE | ARGP_HELP_LONG)) + { +- hol = argp_hol (argp, 0); ++ hol = argp_hol (argp, NULL); + + /* If present, these options always come last. */ + hol_set_group (hol, "help", -1); +@@ -1801,7 +1801,7 @@ Try `%s --help' or `%s --usage' for more information.\n"), + void __argp_help (const struct argp *argp, FILE *stream, + unsigned flags, char *name) + { +- _help (argp, 0, stream, flags, name); ++ _help (argp, NULL, stream, flags, name); + } + #ifdef weak_alias + weak_alias (__argp_help, argp_help) +@@ -1843,7 +1843,7 @@ __argp_state_help (const struct argp_state *state, FILE *stream, unsigned flags) + if (state && (state->flags & ARGP_LONG_ONLY)) + flags |= ARGP_HELP_LONG_ONLY; + +- _help (state ? state->root_argp : 0, state, stream, flags, ++ _help (state ? state->root_argp : NULL, state, stream, flags, + state ? state->name : __argp_short_program_name ()); + + if (!state || ! (state->flags & ARGP_NO_EXIT)) +diff --git a/argp/argp-parse.c b/argp/argp-parse.c +index 9b7b91f65d9be4bd..7a75fa350615725f 100644 +--- a/argp/argp-parse.c ++++ b/argp/argp-parse.c +@@ -83,13 +83,13 @@ static volatile int _argp_hang; + + static const struct argp_option argp_default_options[] = + { +- {"help", '?', 0, 0, N_("Give this help list"), -1}, +- {"usage", OPT_USAGE, 0, 0, N_("Give a short usage message")}, ++ {"help", '?', NULL, 0, N_("Give this help list"), -1}, ++ {"usage", OPT_USAGE, NULL, 0, N_("Give a short usage message")}, + {"program-name",OPT_PROGNAME, N_("NAME"), OPTION_HIDDEN, + N_("Set the program name")}, + {"HANG", OPT_HANG, N_("SECS"), OPTION_ARG_OPTIONAL | OPTION_HIDDEN, + N_("Hang for SECS seconds (default 3600)")}, +- {0, 0} ++ {NULL, 0} + }; + + static error_t +@@ -149,8 +149,8 @@ static const struct argp argp_default_argp = + + static const struct argp_option argp_version_options[] = + { +- {"version", 'V', 0, 0, N_("Print program version"), -1}, +- {0, 0} ++ {"version", 'V', NULL, 0, N_("Print program version"), -1}, ++ {NULL, 0} + }; + + static error_t +@@ -341,7 +341,7 @@ convert_options (const struct argp *argp, + ? optional_argument + : required_argument) + : no_argument); +- cvt->long_end->flag = 0; ++ cvt->long_end->flag = NULL; + /* we add a disambiguating code to all the user's + values (which is removed before we actually call + the function to parse the value); this means that +@@ -364,9 +364,9 @@ convert_options (const struct argp *argp, + group->args_processed = 0; + group->parent = parent; + group->parent_index = parent_index; +- group->input = 0; +- group->hook = 0; +- group->child_inputs = 0; ++ group->input = NULL; ++ group->hook = NULL; ++ group->child_inputs = NULL; + + if (children) + /* Assign GROUP's CHILD_INPUTS field some space from +@@ -382,7 +382,7 @@ convert_options (const struct argp *argp, + parent = group++; + } + else +- parent = 0; ++ parent = NULL; + + if (children) + { +@@ -417,7 +417,7 @@ parser_convert (struct parser *parser, const struct argp *argp, int flags) + parser->argp = argp; + + if (argp) +- parser->egroup = convert_options (argp, 0, 0, parser->groups, &cvt); ++ parser->egroup = convert_options (argp, NULL, 0, parser->groups, &cvt); + else + parser->egroup = parser->groups; /* No parsers at all! */ + } +@@ -530,7 +530,7 @@ parser_init (struct parser *parser, const struct argp *argp, + makes very simple wrapper argps more convenient). */ + group->child_inputs[0] = group->input; + +- err = group_parse (group, &parser->state, ARGP_KEY_INIT, 0); ++ err = group_parse (group, &parser->state, ARGP_KEY_INIT, NULL); + } + if (err == EBADKEY) + err = 0; /* Some parser didn't understand. */ +@@ -582,11 +582,11 @@ parser_finalize (struct parser *parser, + group < parser->egroup && (!err || err==EBADKEY); + group++) + if (group->args_processed == 0) +- err = group_parse (group, &parser->state, ARGP_KEY_NO_ARGS, 0); ++ err = group_parse (group, &parser->state, ARGP_KEY_NO_ARGS, NULL); + for (group = parser->egroup - 1; + group >= parser->groups && (!err || err==EBADKEY); + group--) +- err = group_parse (group, &parser->state, ARGP_KEY_END, 0); ++ err = group_parse (group, &parser->state, ARGP_KEY_END, NULL); + + if (err == EBADKEY) + err = 0; /* Some parser didn't understand. */ +@@ -625,7 +625,7 @@ parser_finalize (struct parser *parser, + + /* Since we didn't exit, give each parser an error indication. */ + for (group = parser->groups; group < parser->egroup; group++) +- group_parse (group, &parser->state, ARGP_KEY_ERROR, 0); ++ group_parse (group, &parser->state, ARGP_KEY_ERROR, NULL); + } + else + /* Notify parsers of success, and propagate back values from parsers. */ +@@ -636,14 +636,14 @@ parser_finalize (struct parser *parser, + for (group = parser->egroup - 1 + ; group >= parser->groups && (!err || err == EBADKEY) + ; group--) +- err = group_parse (group, &parser->state, ARGP_KEY_SUCCESS, 0); ++ err = group_parse (group, &parser->state, ARGP_KEY_SUCCESS, NULL); + if (err == EBADKEY) + err = 0; /* Some parser didn't understand. */ + } + + /* Call parsers once more, to do any final cleanup. Errors are ignored. */ + for (group = parser->egroup - 1; group >= parser->groups; group--) +- group_parse (group, &parser->state, ARGP_KEY_FINI, 0); ++ group_parse (group, &parser->state, ARGP_KEY_FINI, NULL); + + if (err == EBADKEY) + err = EINVAL; +@@ -682,7 +682,7 @@ parser_parse_arg (struct parser *parser, char *val) + { + parser->state.next--; /* For ARGP_KEY_ARGS, put back the arg. */ + key = ARGP_KEY_ARGS; +- err = group_parse (group, &parser->state, key, 0); ++ err = group_parse (group, &parser->state, key, NULL); + } + } + +@@ -792,11 +792,11 @@ parser_parse_next (struct parser *parser, int *arg_ebadkey) + parser->opt_data.optopt = KEY_END; + if (parser->state.flags & ARGP_LONG_ONLY) + opt = _getopt_long_only_r (parser->state.argc, parser->state.argv, +- parser->short_opts, parser->long_opts, 0, ++ parser->short_opts, parser->long_opts, NULL, + &parser->opt_data); + else + opt = _getopt_long_r (parser->state.argc, parser->state.argv, +- parser->short_opts, parser->long_opts, 0, ++ parser->short_opts, parser->long_opts, NULL, + &parser->opt_data); + /* And see what getopt did. */ + parser->state.next = parser->opt_data.optind; +@@ -893,7 +893,7 @@ __argp_parse (const struct argp *argp, int argc, char **argv, unsigned flags, + child[child_index++].argp = &argp_default_argp; + if (argp_program_version || argp_program_version_hook) + child[child_index++].argp = &argp_version_argp; +- child[child_index].argp = 0; ++ child[child_index].argp = NULL; + + argp = &top_argp; + } +@@ -930,7 +930,7 @@ __argp_input (const struct argp *argp, const struct argp_state *state) + return group->input; + } + +- return 0; ++ return NULL; + } + #ifdef weak_alias + weak_alias (__argp_input, _argp_input) +diff --git a/catgets/gencat.c b/catgets/gencat.c +index 7110970bd519abfe..51700a47259c8fc8 100644 +--- a/catgets/gencat.c ++++ b/catgets/gencat.c +@@ -429,7 +429,7 @@ read_input_file (struct catalog *current, const char *fname) + + /* Test whether the identifier was already used. */ + runp = current->all_sets; +- while (runp != 0) ++ while (runp != NULL) + if (runp->symbol != NULL + && strcmp (runp->symbol, symbol) == 0) + break; +diff --git a/debug/backtracesyms.c b/debug/backtracesyms.c +index c1f6322981ad6548..9a8c9e53a6e41859 100644 +--- a/debug/backtracesyms.c ++++ b/debug/backtracesyms.c +@@ -82,7 +82,7 @@ __backtrace_symbols (void *const *array, int size) + relative to the file. */ + info[cnt].dli_saddr = info[cnt].dli_fbase; + +- if (info[cnt].dli_sname == NULL && info[cnt].dli_saddr == 0) ++ if (info[cnt].dli_sname == NULL && info[cnt].dli_saddr == NULL) + last += 1 + sprintf (last, "%s(%s) [%p]", + info[cnt].dli_fname ?: "", + info[cnt].dli_sname ?: "", +diff --git a/elf/dl-find_object.c b/elf/dl-find_object.c +index 0e45f0af32c9e6b4..b3f947aa15c5c57e 100644 +--- a/elf/dl-find_object.c ++++ b/elf/dl-find_object.c +@@ -872,6 +872,6 @@ _dl_find_object_freeres (void) + seg = previous; + } + /* Stop searching in shared objects. */ +- _dlfo_loaded_mappings[idx] = 0; ++ _dlfo_loaded_mappings[idx] = NULL; + } + } +diff --git a/elf/dl-load.c b/elf/dl-load.c +index 8b0890499d66f67a..6c253a9c352a1d03 100644 +--- a/elf/dl-load.c ++++ b/elf/dl-load.c +@@ -1274,7 +1274,7 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, + } + + /* This check recognizes most separate debuginfo files. */ +- if (__glibc_unlikely ((l->l_ld == 0 && type == ET_DYN) || empty_dynamic)) ++ if (__glibc_unlikely ((l->l_ld == NULL && type == ET_DYN) || empty_dynamic)) + { + errstring = N_("object file has no dynamic section"); + goto lose; +@@ -1297,7 +1297,7 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, + } + } + +- if (l->l_ld != 0) ++ if (l->l_ld != NULL) + l->l_ld = (ElfW(Dyn) *) ((ElfW(Addr)) l->l_ld + l->l_addr); + + elf_get_dynamic_info (l, false, false); +diff --git a/elf/dl-load.h b/elf/dl-load.h +index 656ec229bfae307b..ea6d917710161508 100644 +--- a/elf/dl-load.h ++++ b/elf/dl-load.h +@@ -88,7 +88,7 @@ static __always_inline void + _dl_postprocess_loadcmd (struct link_map *l, const ElfW(Ehdr) *header, + const struct loadcmd *c) + { +- if (l->l_phdr == 0 ++ if (l->l_phdr == NULL + && c->mapoff <= header->e_phoff + && ((size_t) (c->mapend - c->mapstart + c->mapoff) + >= header->e_phoff + header->e_phnum * sizeof (ElfW(Phdr)))) +diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c +index 7a70f1df2d6cf839..ee70bbfc21bf2824 100644 +--- a/elf/dl-lookup.c ++++ b/elf/dl-lookup.c +@@ -824,7 +824,7 @@ _dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map, + _dl_exception_free (&exception); + } + *ref = NULL; +- return 0; ++ return NULL; + } + + int protected = (*ref +diff --git a/elf/dl-minimal-malloc.c b/elf/dl-minimal-malloc.c +index 25d870728d5eb604..69fc19c1b79e7f61 100644 +--- a/elf/dl-minimal-malloc.c ++++ b/elf/dl-minimal-malloc.c +@@ -34,7 +34,7 @@ static void *alloc_ptr, *alloc_end, *alloc_last_block; + void * + __minimal_malloc (size_t n) + { +- if (alloc_end == 0) ++ if (alloc_end == NULL) + { + /* Consume any unused space in the last page of our data segment. */ + extern int _end attribute_hidden; +@@ -57,7 +57,7 @@ __minimal_malloc (size_t n) + if (__glibc_unlikely (nup == 0 && n != 0)) + return NULL; + nup += GLRO(dl_pagesize); +- page = __mmap (0, nup, PROT_READ|PROT_WRITE, ++ page = __mmap (NULL, nup, PROT_READ|PROT_WRITE, + MAP_ANON|MAP_PRIVATE, -1, 0); + if (page == MAP_FAILED) + return NULL; +diff --git a/elf/dl-tunables.c b/elf/dl-tunables.c +index 614ac9c0471c5963..546549065d10c72a 100644 +--- a/elf/dl-tunables.c ++++ b/elf/dl-tunables.c +@@ -236,7 +236,7 @@ parse_tunables_string (const char *valstring, struct tunable_toset_t *tunables) + static void + parse_tunables (const char *valstring) + { +- struct tunable_toset_t tunables[tunables_list_size] = { 0 }; ++ struct tunable_toset_t tunables[tunables_list_size] = {}; + if (parse_tunables_string (valstring, tunables) == -1) + { + _dl_error_printf ( +diff --git a/elf/dynamic-link.h b/elf/dynamic-link.h +index 83d834ecaf609082..370b0e872e4a191f 100644 +--- a/elf/dynamic-link.h ++++ b/elf/dynamic-link.h +@@ -152,7 +152,7 @@ elf_machine_lazy_rel (struct link_map *map, struct r_scope_elem *scope[], + + # define ELF_DYNAMIC_DO_RELR(map) \ + do { \ +- ElfW(Addr) l_addr = (map)->l_addr, *where = 0; \ ++ ElfW(Addr) l_addr = (map)->l_addr, *where = NULL; \ + const ElfW(Relr) *r, *end; \ + if ((map)->l_info[DT_RELR] == NULL) \ + break; \ +diff --git a/elf/readlib.c b/elf/readlib.c +index 32e8b8eb2298c9dd..159345699fc3911e 100644 +--- a/elf/readlib.c ++++ b/elf/readlib.c +@@ -105,7 +105,7 @@ process_file (const char *real_file_name, const char *file_name, + return 1; + } + +- file_contents = mmap (0, statbuf.st_size, PROT_READ, MAP_SHARED, ++ file_contents = mmap (NULL, statbuf.st_size, PROT_READ, MAP_SHARED, + fileno (file), 0); + if (file_contents == MAP_FAILED) + { +diff --git a/elf/tlsdeschtab.h b/elf/tlsdeschtab.h +index 07e109842e582270..0b1b7cedc81c2aac 100644 +--- a/elf/tlsdeschtab.h ++++ b/elf/tlsdeschtab.h +@@ -93,7 +93,7 @@ _dl_make_tlsdesc_dynamic (struct link_map *map, size_t ti_offset) + { + ht = htab_create (); + if (! ht) +- return 0; ++ return NULL; + map->l_mach.tlsdesc_table = ht; + } + +@@ -101,7 +101,7 @@ _dl_make_tlsdesc_dynamic (struct link_map *map, size_t ti_offset) + test.tlsinfo.ti_offset = ti_offset; + entry = htab_find_slot (ht, &test, 1, hash_tlsdesc, eq_tlsdesc); + if (! entry) +- return 0; ++ return NULL; + + if (*entry) + { +@@ -111,7 +111,7 @@ _dl_make_tlsdesc_dynamic (struct link_map *map, size_t ti_offset) + + *entry = td = malloc (sizeof (struct tlsdesc_dynamic_arg)); + if (! td) +- return 0; ++ return NULL; + /* This may be higher than the map's generation, but it doesn't + matter much. Worst case, we'll have one extra DTV update per + thread. */ +diff --git a/hesiod/hesiod.c b/hesiod/hesiod.c +index ee087b0392fb9b72..0354e16ead468b58 100644 +--- a/hesiod/hesiod.c ++++ b/hesiod/hesiod.c +@@ -80,7 +80,7 @@ hesiod_init(void **context) { + char *cp; + + ctx = malloc(sizeof(struct hesiod_p)); +- if (ctx == 0) ++ if (ctx == NULL) + return (-1); + + ctx->LHS = NULL; +@@ -247,7 +247,7 @@ parse_config_file(struct hesiod_p *ctx, const char *filename) { + */ + free(ctx->RHS); + free(ctx->LHS); +- ctx->RHS = ctx->LHS = 0; ++ ctx->RHS = ctx->LHS = NULL; + /* Set default query classes. */ + ctx->classes[0] = C_IN; + ctx->classes[1] = C_HS; +@@ -316,7 +316,7 @@ parse_config_file(struct hesiod_p *ctx, const char *filename) { + fclose(fp); + free(ctx->RHS); + free(ctx->LHS); +- ctx->RHS = ctx->LHS = 0; ++ ctx->RHS = ctx->LHS = NULL; + return (-1); + } + +diff --git a/inet/rcmd.c b/inet/rcmd.c +index dcf4f4ffd119f15c..0abbdc89fe6a2065 100644 +--- a/inet/rcmd.c ++++ b/inet/rcmd.c +@@ -179,7 +179,7 @@ rcmd: socket: All ports in use\n")); + else + __fxprintf(NULL, "rcmd: socket: %m\n"); + +- __sigprocmask (SIG_SETMASK, &omask, 0); ++ __sigprocmask (SIG_SETMASK, &omask, NULL); + freeaddrinfo(res); + return -1; + } +@@ -209,7 +209,7 @@ rcmd: socket: All ports in use\n")); + free (buf); + } + __set_errno (oerrno); +- perror(0); ++ perror(NULL); + ai = ai->ai_next; + getnameinfo(ai->ai_addr, ai->ai_addrlen, + paddr, sizeof(paddr), +@@ -232,11 +232,11 @@ rcmd: socket: All ports in use\n")); + freeaddrinfo(res); + (void)__fxprintf(NULL, "%s: %s\n", *ahost, + __strerror_r(errno, errbuf, sizeof (errbuf))); +- __sigprocmask (SIG_SETMASK, &omask, 0); ++ __sigprocmask (SIG_SETMASK, &omask, NULL); + return -1; + } + lport--; +- if (fd2p == 0) { ++ if (fd2p == NULL) { + __write(s, "", 1); + lport = 0; + } else { +@@ -344,7 +344,7 @@ socket: protocol failure in circuit setup\n")) >= 0) + } + goto bad2; + } +- __sigprocmask (SIG_SETMASK, &omask, 0); ++ __sigprocmask (SIG_SETMASK, &omask, NULL); + freeaddrinfo(res); + return s; + bad2: +@@ -352,7 +352,7 @@ bad2: + (void)__close(*fd2p); + bad: + (void)__close(s); +- __sigprocmask (SIG_SETMASK, &omask, 0); ++ __sigprocmask (SIG_SETMASK, &omask, NULL); + freeaddrinfo(res); + return -1; + } +diff --git a/inet/rexec.c b/inet/rexec.c +index d479753fc2854add..8e8653f30f2499bc 100644 +--- a/inet/rexec.c ++++ b/inet/rexec.c +@@ -103,7 +103,7 @@ retry: + perror(res0->ai_canonname); + goto bad; + } +- if (fd2p == 0) { ++ if (fd2p == NULL) { + (void) __write(s, "", 1); + port = 0; + } else { +diff --git a/inet/ruserpass.c b/inet/ruserpass.c +index 75e2a065524aa1d5..903fc966fdee4857 100644 +--- a/inet/ruserpass.c ++++ b/inet/ruserpass.c +@@ -157,7 +157,7 @@ next: + + case LOGIN: + if (token()) { +- if (*aname == 0) { ++ if (*aname == NULL) { + char *newp; + newp = malloc((unsigned) strlen(tokval) + 1); + if (newp == NULL) +@@ -180,7 +180,7 @@ next: + warnx(_("Remove 'password' line or make file unreadable by others.")); + goto bad; + } +- if (token() && *apass == 0) { ++ if (token() && *apass == NULL) { + char *newp; + newp = malloc((unsigned) strlen(tokval) + 1); + if (newp == NULL) +diff --git a/libio/fileops.c b/libio/fileops.c +index 4db4a76f755b1f3b..759d737ec7eb0e38 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -220,7 +220,7 @@ _IO_new_file_fopen (FILE *fp, const char *filename, const char *mode, + const char *last_recognized; + + if (_IO_file_is_open (fp)) +- return 0; ++ return NULL; + switch (*mode) + { + case 'r': +diff --git a/libio/genops.c b/libio/genops.c +index 02292beed9bc3668..c1db57e6b8bc25ef 100644 +--- a/libio/genops.c ++++ b/libio/genops.c +@@ -462,8 +462,8 @@ _IO_default_setbuf (FILE *fp, char *p, ssize_t len) + fp->_flags &= ~_IO_UNBUFFERED; + _IO_setb (fp, p, p+len, 0); + } +- fp->_IO_write_base = fp->_IO_write_ptr = fp->_IO_write_end = 0; +- fp->_IO_read_base = fp->_IO_read_ptr = fp->_IO_read_end = 0; ++ fp->_IO_write_base = fp->_IO_write_ptr = fp->_IO_write_end = NULL; ++ fp->_IO_read_base = fp->_IO_read_ptr = fp->_IO_read_end = NULL; + return fp; + } + +@@ -944,7 +944,7 @@ _IO_unsave_markers (FILE *fp) + struct _IO_marker *mark = fp->_markers; + if (mark) + { +- fp->_markers = 0; ++ fp->_markers = NULL; + } + + if (_IO_have_backup (fp)) +diff --git a/libio/iopopen.c b/libio/iopopen.c +index 352513a2914a9d36..6bf187e2d5f0ccfc 100644 +--- a/libio/iopopen.c ++++ b/libio/iopopen.c +@@ -106,7 +106,7 @@ spawn_process (posix_spawn_file_actions_t *fa, FILE *fp, const char *command, + } + } + +- err = __posix_spawn (&((_IO_proc_file *) fp)->pid, _PATH_BSHELL, fa, 0, ++ err = __posix_spawn (&((_IO_proc_file *) fp)->pid, _PATH_BSHELL, fa, NULL, + (char *const[]){ (char*) "sh", (char*) "-c", (char*) "--", + (char *) command, NULL }, __environ); + if (err != 0) +diff --git a/libio/libioP.h b/libio/libioP.h +index a83a411fdf7d93c9..34bf91fcd89718bc 100644 +--- a/libio/libioP.h ++++ b/libio/libioP.h +@@ -915,9 +915,10 @@ extern int _IO_vscanf (const char *, va_list) __THROW; + # else + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (FILE *) CHAIN, FD, \ ++ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ ++ NULL, NULL, (FILE *) CHAIN, FD, \ + 0, _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock, _IO_pos_BAD,\ +- NULL, WDP, 0 } ++ NULL, WDP, NULL } + # endif + #else + # ifdef _IO_USE_OLD_IO_FILE +diff --git a/libio/wfileops.c b/libio/wfileops.c +index 6de59683587b40b4..e747d3ed73a6c08c 100644 +--- a/libio/wfileops.c ++++ b/libio/wfileops.c +@@ -416,7 +416,7 @@ _IO_wfile_overflow (FILE *f, wint_t wch) + || f->_wide_data->_IO_write_base == NULL) + { + /* Allocate a buffer if needed. */ +- if (f->_wide_data->_IO_write_base == 0) ++ if (f->_wide_data->_IO_write_base == NULL) + { + _IO_wdoallocbuf (f); + _IO_free_wbackup_area (f); +diff --git a/libio/wgenops.c b/libio/wgenops.c +index adfb97014ff4efcd..f77a2d22f03b6c75 100644 +--- a/libio/wgenops.c ++++ b/libio/wgenops.c +@@ -601,7 +601,7 @@ _IO_unsave_wmarkers (FILE *fp) + struct _IO_marker *mark = fp->_markers; + if (mark) + { +- fp->_markers = 0; ++ fp->_markers = NULL; + } + + if (_IO_have_backup (fp)) +diff --git a/locale/programs/xmalloc.c b/locale/programs/xmalloc.c +index 4ae46b9003cace0a..38f2bc8a2c9f0d96 100644 +--- a/locale/programs/xmalloc.c ++++ b/locale/programs/xmalloc.c +@@ -56,10 +56,10 @@ fixup_null_alloc (size_t n) + { + VOID *p; + +- p = 0; ++ p = NULL; + if (n == 0) + p = malloc ((size_t) 1); +- if (p == 0) ++ if (p == NULL) + error (xmalloc_exit_failure, 0, _("memory exhausted")); + return p; + } +@@ -72,7 +72,7 @@ xmalloc (size_t n) + VOID *p; + + p = malloc (n); +- if (p == 0) ++ if (p == NULL) + p = fixup_null_alloc (n); + return p; + } +@@ -85,7 +85,7 @@ xcalloc (size_t n, size_t s) + VOID *p; + + p = calloc (n, s); +- if (p == 0) ++ if (p == NULL) + p = fixup_null_alloc (n); + return p; + } +@@ -97,10 +97,10 @@ xcalloc (size_t n, size_t s) + VOID * + xrealloc (VOID *p, size_t n) + { +- if (p == 0) ++ if (p == NULL) + return xmalloc (n); + p = realloc (p, n); +- if (p == 0) ++ if (p == NULL) + p = fixup_null_alloc (n); + return p; + } +diff --git a/locale/setlocale.c b/locale/setlocale.c +index 7bd27e5398e7a211..fc5bf5c427c52755 100644 +--- a/locale/setlocale.c ++++ b/locale/setlocale.c +@@ -52,7 +52,7 @@ static char *const _nl_current_used[] = + # undef DEFINE_CATEGORY + }; + +-# define CATEGORY_USED(category) (_nl_current_used[category] != 0) ++# define CATEGORY_USED(category) (_nl_current_used[category] != NULL) + + #else + +diff --git a/locale/uselocale.c b/locale/uselocale.c +index 0b247a77d5f47f81..a2b7a1a522cbd6f5 100644 +--- a/locale/uselocale.c ++++ b/locale/uselocale.c +@@ -54,7 +54,7 @@ __uselocale (locale_t newloc) + extern char _nl_current_##category##_used; \ + weak_extern (_nl_current_##category##_used) \ + weak_extern (_nl_current_##category) \ +- if (&_nl_current_##category##_used != 0) \ ++ if (&_nl_current_##category##_used != NULL) \ + _nl_current_##category = &locobj->__locales[category]; \ + } + # include "categories.def" +diff --git a/malloc/arena.c b/malloc/arena.c +index cfb1ff885450aa78..91a43ee394ac931e 100644 +--- a/malloc/arena.c ++++ b/malloc/arena.c +@@ -389,7 +389,7 @@ alloc_new_heap (size_t size, size_t top_pad, size_t pagesize, + else if (size + top_pad <= max_size) + size += top_pad; + else if (size > max_size) +- return 0; ++ return NULL; + else + size = max_size; + size = ALIGN_UP (size, pagesize); +@@ -411,7 +411,7 @@ alloc_new_heap (size_t size, size_t top_pad, size_t pagesize, + } + if (p2 == MAP_FAILED) + { +- p1 = (char *) MMAP (0, max_size << 1, PROT_NONE, mmap_flags); ++ p1 = (char *) MMAP (NULL, max_size << 1, PROT_NONE, mmap_flags); + if (p1 != MAP_FAILED) + { + p2 = (char *) (((uintptr_t) p1 + (max_size - 1)) +@@ -427,21 +427,21 @@ alloc_new_heap (size_t size, size_t top_pad, size_t pagesize, + { + /* Try to take the chance that an allocation of only max_size + is already aligned. */ +- p2 = (char *) MMAP (0, max_size, PROT_NONE, mmap_flags); ++ p2 = (char *) MMAP (NULL, max_size, PROT_NONE, mmap_flags); + if (p2 == MAP_FAILED) +- return 0; ++ return NULL; + + if ((unsigned long) p2 & (max_size - 1)) + { + __munmap (p2, max_size); +- return 0; ++ return NULL; + } + } + } + if (__mprotect (p2, size, mtag_mmap_flags | PROT_READ | PROT_WRITE) != 0) + { + __munmap (p2, max_size); +- return 0; ++ return NULL; + } + + /* Only considere the actual usable range. */ +@@ -644,7 +644,7 @@ _int_new_arena (size_t size) + to deal with the large request via mmap_chunk(). */ + h = new_heap (sizeof (*h) + sizeof (*a) + MALLOC_ALIGNMENT, mp_.top_pad); + if (!h) +- return 0; ++ return NULL; + } + a = h->ar_ptr = (mstate) (h + 1); + malloc_init_state (a); +diff --git a/malloc/malloc-check.c b/malloc/malloc-check.c +index da1158b33322fc2a..6ac71df5d5879d0f 100644 +--- a/malloc/malloc-check.c ++++ b/malloc/malloc-check.c +@@ -245,7 +245,7 @@ static void * + realloc_check (void *oldmem, size_t bytes) + { + INTERNAL_SIZE_T chnb; +- void *newmem = 0; ++ void *newmem = NULL; + unsigned char *magic_p; + size_t rb; + +@@ -254,7 +254,7 @@ realloc_check (void *oldmem, size_t bytes) + __set_errno (ENOMEM); + return NULL; + } +- if (oldmem == 0) ++ if (oldmem == NULL) + return malloc_check (bytes); + + if (bytes == 0) +diff --git a/malloc/malloc.c b/malloc/malloc.c +index 9e577ab90010a0f1..09dc60bf74c59945 100644 +--- a/malloc/malloc.c ++++ b/malloc/malloc.c +@@ -369,7 +369,7 @@ + #include "morecore.c" + + #define MORECORE (*__glibc_morecore) +-#define MORECORE_FAILURE 0 ++#define MORECORE_FAILURE NULL + + /* Memory tagging. */ + +@@ -2418,7 +2418,7 @@ sysmalloc_mmap (INTERNAL_SIZE_T nb, size_t pagesize, int extra_flags, mstate av) + if ((unsigned long) (size) <= (unsigned long) (nb)) + return MAP_FAILED; + +- char *mm = (char *) MMAP (0, size, ++ char *mm = (char *) MMAP (NULL, size, + mtag_mmap_flags | PROT_READ | PROT_WRITE, + extra_flags); + if (mm == MAP_FAILED) +@@ -2505,7 +2505,7 @@ sysmalloc_mmap_fallback (long int *s, INTERNAL_SIZE_T nb, + if ((unsigned long) (size) <= (unsigned long) (nb)) + return MORECORE_FAILURE; + +- char *mbrk = (char *) (MMAP (0, size, ++ char *mbrk = (char *) (MMAP (NULL, size, + mtag_mmap_flags | PROT_READ | PROT_WRITE, + extra_flags)); + if (mbrk == MAP_FAILED) +@@ -2581,7 +2581,7 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av) + + /* There are no usable arenas and mmap also failed. */ + if (av == NULL) +- return 0; ++ return NULL; + + /* Record incoming configuration of top */ + +@@ -2741,7 +2741,7 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av) + + if (brk != (char *) (MORECORE_FAILURE)) + { +- if (mp_.sbrk_base == 0) ++ if (mp_.sbrk_base == NULL) + mp_.sbrk_base = brk; + av->system_mem += size; + +@@ -2940,7 +2940,7 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av) + + /* catch all failure paths */ + __set_errno (ENOMEM); +- return 0; ++ return NULL; + } + + +@@ -3078,7 +3078,7 @@ mremap_chunk (mchunkptr p, size_t new_size) + MREMAP_MAYMOVE); + + if (cp == MAP_FAILED) +- return 0; ++ return NULL; + + madvise_thp (cp, new_size); + +@@ -3242,7 +3242,7 @@ static void + tcache_init(void) + { + mstate ar_ptr; +- void *victim = 0; ++ void *victim = NULL; + const size_t bytes = sizeof (tcache_perthread_struct); + + if (tcache_shutting_down) +@@ -3360,7 +3360,7 @@ __libc_free (void *mem) + mstate ar_ptr; + mchunkptr p; /* chunk corresponding to mem */ + +- if (mem == 0) /* free(0) has no effect */ ++ if (mem == NULL) /* free(0) has no effect */ + return; + + /* Quickly check that the freed pointer matches the tag for the memory. +@@ -3416,12 +3416,12 @@ __libc_realloc (void *oldmem, size_t bytes) + #if REALLOC_ZERO_BYTES_FREES + if (bytes == 0 && oldmem != NULL) + { +- __libc_free (oldmem); return 0; ++ __libc_free (oldmem); return NULL; + } + #endif + + /* realloc of null is supposed to be same as malloc */ +- if (oldmem == 0) ++ if (oldmem == NULL) + return __libc_malloc (bytes); + + /* Perform a quick check to ensure that the pointer's tag matches the +@@ -3495,8 +3495,8 @@ __libc_realloc (void *oldmem, size_t bytes) + + /* Must alloc, copy, free. */ + newmem = __libc_malloc (bytes); +- if (newmem == 0) +- return 0; /* propagate failure */ ++ if (newmem == NULL) ++ return NULL; /* propagate failure */ + + memcpy (newmem, oldmem, oldsize - CHUNK_HDR_SZ); + munmap_chunk (oldp); +@@ -3564,7 +3564,7 @@ aligned_alloc (size_t alignment, size_t bytes) + if (!powerof2 (alignment) || alignment == 0) + { + __set_errno (EINVAL); +- return 0; ++ return NULL; + } + + void *address = RETURN_ADDRESS (0); +@@ -3590,7 +3590,7 @@ _mid_memalign (size_t alignment, size_t bytes, void *address) + if (alignment > SIZE_MAX / 2 + 1) + { + __set_errno (EINVAL); +- return 0; ++ return NULL; + } + + +@@ -3687,7 +3687,7 @@ __libc_pvalloc (size_t bytes) + &rounded_bytes))) + { + __set_errno (ENOMEM); +- return 0; ++ return NULL; + } + rounded_bytes = rounded_bytes & -(pagesize - 1); + +@@ -3748,7 +3748,7 @@ __libc_calloc (size_t n, size_t elem_size) + else + { + /* No usable arenas. */ +- oldtop = 0; ++ oldtop = NULL; + oldtopsize = 0; + } + mem = _int_malloc (av, sz); +@@ -3758,7 +3758,7 @@ __libc_calloc (size_t n, size_t elem_size) + + if (!SINGLE_THREAD_P) + { +- if (mem == 0 && av != NULL) ++ if (mem == NULL && av != NULL) + { + LIBC_PROBE (memory_calloc_retry, 1, sz); + av = arena_get_retry (av, sz); +@@ -3770,8 +3770,8 @@ __libc_calloc (size_t n, size_t elem_size) + } + + /* Allocation failed even after a retry. */ +- if (mem == 0) +- return 0; ++ if (mem == NULL) ++ return NULL; + + mchunkptr p = mem2chunk (mem); + +@@ -4003,7 +4003,7 @@ _int_malloc (mstate av, size_t bytes) + while (tcache->counts[tc_idx] < mp_.tcache_count + && (tc_victim = last (bin)) != bin) + { +- if (tc_victim != 0) ++ if (tc_victim != NULL) + { + bck = tc_victim->bk; + set_inuse_bit_at_offset (tc_victim, nb); +@@ -4839,7 +4839,7 @@ static void malloc_consolidate(mstate av) + fb = &fastbin (av, 0); + do { + p = atomic_exchange_acquire (fb, NULL); +- if (p != 0) { ++ if (p != NULL) { + do { + { + if (__glibc_unlikely (misaligned_chunk (p))) +@@ -4898,7 +4898,7 @@ static void malloc_consolidate(mstate av) + av->top = p; + } + +- } while ( (p = nextp) != 0); ++ } while ( (p = nextp) != NULL); + + } + } while (fb++ != maxfb); +@@ -4973,8 +4973,8 @@ _int_realloc (mstate av, mchunkptr oldp, INTERNAL_SIZE_T oldsize, + else + { + newmem = _int_malloc (av, nb - MALLOC_ALIGN_MASK); +- if (newmem == 0) +- return 0; /* propagate failure */ ++ if (newmem == NULL) ++ return NULL; /* propagate failure */ + + newp = mem2chunk (newmem); + newsize = chunksize (newp); +@@ -5068,8 +5068,8 @@ _int_memalign (mstate av, size_t alignment, size_t bytes) + /* Call malloc with worst case padding to hit alignment. */ + m = (char *) (_int_malloc (av, nb + alignment + MINSIZE)); + +- if (m == 0) +- return 0; /* propagate failure */ ++ if (m == NULL) ++ return NULL; /* propagate failure */ + + p = mem2chunk (m); + +@@ -5281,7 +5281,7 @@ int_mallinfo (mstate av, struct mallinfo2 *m) + for (i = 0; i < NFASTBINS; ++i) + { + for (p = fastbin (av, i); +- p != 0; ++ p != NULL; + p = REVEAL_PTR (p->fd)) + { + if (__glibc_unlikely (misaligned_chunk (p))) +diff --git a/malloc/obstack.c b/malloc/obstack.c +index 579c693939dc6409..6e8299a73c13836e 100644 +--- a/malloc/obstack.c ++++ b/malloc/obstack.c +@@ -107,7 +107,7 @@ int obstack_exit_failure = EXIT_FAILURE; + /* A looong time ago (before 1994, anyway; we're not sure) this global variable + was used by non-GNU-C macros to avoid multiple evaluation. The GNU C + library still exports it because somebody might use it. */ +-struct obstack *_obstack_compat = 0; ++struct obstack *_obstack_compat = NULL; + compat_symbol (libc, _obstack_compat, _obstack, GLIBC_2_0); + # endif + # endif +@@ -180,7 +180,7 @@ _obstack_begin (struct obstack *h, + alignment - 1); + h->chunk_limit = chunk->limit + = (char *) chunk + h->chunk_size; +- chunk->prev = 0; ++ chunk->prev = NULL; + /* The initial chunk now contains no empty object. */ + h->maybe_empty_object = 0; + h->alloc_failed = 0; +@@ -228,7 +228,7 @@ _obstack_begin_1 (struct obstack *h, int size, int alignment, + alignment - 1); + h->chunk_limit = chunk->limit + = (char *) chunk + h->chunk_size; +- chunk->prev = 0; ++ chunk->prev = NULL; + /* The initial chunk now contains no empty object. */ + h->maybe_empty_object = 0; + h->alloc_failed = 0; +@@ -328,12 +328,12 @@ _obstack_allocated_p (struct obstack *h, void *obj) + /* We use >= rather than > since the object cannot be exactly at + the beginning of the chunk but might be an empty object exactly + at the end of an adjacent chunk. */ +- while (lp != 0 && ((void *) lp >= obj || (void *) (lp)->limit < obj)) ++ while (lp != NULL && ((void *) lp >= obj || (void *) (lp)->limit < obj)) + { + plp = lp->prev; + lp = plp; + } +- return lp != 0; ++ return lp != NULL; + } + + /* Free objects in obstack H, including OBJ and everything allocate +@@ -351,7 +351,7 @@ __obstack_free (struct obstack *h, void *obj) + /* We use >= because there cannot be an object at the beginning of a chunk. + But there can be an empty object at that address + at the end of another chunk. */ +- while (lp != 0 && ((void *) lp >= obj || (void *) (lp)->limit < obj)) ++ while (lp != NULL && ((void *) lp >= obj || (void *) (lp)->limit < obj)) + { + plp = lp->prev; + CALL_FREEFUN (h, lp); +@@ -366,7 +366,7 @@ __obstack_free (struct obstack *h, void *obj) + h->chunk_limit = lp->limit; + h->chunk = lp; + } +- else if (obj != 0) ++ else if (obj != NULL) + /* obj is not in any of the chunks! */ + abort (); + } +@@ -383,7 +383,7 @@ _obstack_memory_used (struct obstack *h) + struct _obstack_chunk *lp; + int nbytes = 0; + +- for (lp = h->chunk; lp != 0; lp = lp->prev) ++ for (lp = h->chunk; lp != NULL; lp = lp->prev) + { + nbytes += lp->limit - (char *) lp; + } +diff --git a/malloc/reallocarray.c b/malloc/reallocarray.c +index 2a5f2a446d9653a6..0118f882539c6469 100644 +--- a/malloc/reallocarray.c ++++ b/malloc/reallocarray.c +@@ -27,7 +27,7 @@ __libc_reallocarray (void *optr, size_t nmemb, size_t elem_size) + if (__builtin_mul_overflow (nmemb, elem_size, &bytes)) + { + __set_errno (ENOMEM); +- return 0; ++ return NULL; + } + return realloc (optr, bytes); + } +diff --git a/misc/getttyent.c b/misc/getttyent.c +index 92d92b026fbf5d0c..0df7c28ce1ca35c7 100644 +--- a/misc/getttyent.c ++++ b/misc/getttyent.c +@@ -126,7 +126,7 @@ __getttyent (void) + ; + tty.ty_comment = p; + if (*p == 0) +- tty.ty_comment = 0; ++ tty.ty_comment = NULL; + if ((p = strchr (p, '\n'))) + *p = '\0'; + return (&tty); +diff --git a/misc/sbrk.c b/misc/sbrk.c +index 8578666ed03699a3..06aa02179d937690 100644 +--- a/misc/sbrk.c ++++ b/misc/sbrk.c +@@ -56,7 +56,7 @@ __sbrk (intptr_t increment) + #endif + + if (update_brk) +- if (__brk (0) < 0) /* Initialize the break. */ ++ if (__brk (NULL) < 0) /* Initialize the break. */ + return (void *) -1; + + if (increment == 0) +diff --git a/nis/nis_server.c b/nis/nis_server.c +index 622204f9b572887c..255b2f85144dbbc9 100644 +--- a/nis/nis_server.c ++++ b/nis/nis_server.c +@@ -29,7 +29,7 @@ nis_servstate (const nis_server *serv, const nis_tag *tags, + nis_taglist taglist; + nis_taglist tagres; + +- *result = 0; ++ *result = NULL; + tagres.tags.tags_len = 0; + tagres.tags.tags_val = NULL; + taglist.tags.tags_len = numtags; +diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c +index ef3ec3329027ac9f..a6254b1204ccfc80 100644 +--- a/nptl/pthread_create.c ++++ b/nptl/pthread_create.c +@@ -239,7 +239,7 @@ static int create_thread (struct pthread *pd, const struct pthread_attr *attr, + stopped since we have to set the scheduling parameters or set the + affinity. */ + bool need_setaffinity = (attr != NULL && attr->extension != NULL +- && attr->extension->cpuset != 0); ++ && attr->extension->cpuset != NULL); + if (attr != NULL + && (__glibc_unlikely (need_setaffinity) + || __glibc_unlikely ((attr->flags & ATTR_FLAG_NOTINHERITSCHED) != 0))) +diff --git a/nptl_db/fetch-value.c b/nptl_db/fetch-value.c +index bdf1f444d6984431..5d7474b18d0c7be5 100644 +--- a/nptl_db/fetch-value.c ++++ b/nptl_db/fetch-value.c +@@ -69,7 +69,7 @@ _td_locate_field (td_thragent_t *ta, + } + } + +- if (idx != 0 && DB_DESC_NELEM (desc) != 0 ++ if (idx != NULL && DB_DESC_NELEM (desc) != 0 + && idx - (psaddr_t) 0 > DB_DESC_NELEM (desc)) + /* This is an internal indicator to callers with nonzero IDX + that the IDX value is too big. */ +diff --git a/nptl_db/td_init.c b/nptl_db/td_init.c +index f47b68d92c079307..b431ea63601b22c3 100644 +--- a/nptl_db/td_init.c ++++ b/nptl_db/td_init.c +@@ -32,7 +32,7 @@ td_init (void) + bool + __td_ta_rtld_global (td_thragent_t *ta) + { +- if (ta->ta_addr__rtld_global == 0) ++ if (ta->ta_addr__rtld_global == NULL) + { + psaddr_t rtldglobalp; + if (DB_GET_VALUE (rtldglobalp, ta, __nptl_rtld_global, 0) == TD_OK) +diff --git a/nptl_db/td_ta_clear_event.c b/nptl_db/td_ta_clear_event.c +index ebba4e83dc7b3c02..6322d800af5712ed 100644 +--- a/nptl_db/td_ta_clear_event.c ++++ b/nptl_db/td_ta_clear_event.c +@@ -25,7 +25,7 @@ td_ta_clear_event (const td_thragent_t *ta_arg, td_thr_events_t *event) + { + td_thragent_t *const ta = (td_thragent_t *) ta_arg; + td_err_e err; +- psaddr_t eventmask = 0; ++ psaddr_t eventmask = NULL; + void *copy = NULL; + + LOG ("td_ta_clear_event"); +diff --git a/nptl_db/td_ta_event_getmsg.c b/nptl_db/td_ta_event_getmsg.c +index 8598716c741a5dae..d199546f597c2733 100644 +--- a/nptl_db/td_ta_event_getmsg.c ++++ b/nptl_db/td_ta_event_getmsg.c +@@ -46,7 +46,7 @@ td_ta_event_getmsg (const td_thragent_t *ta_arg, td_event_msg_t *msg) + if (err != TD_OK) + return err; + +- if (thp == 0) ++ if (thp == NULL) + /* Nothing waiting. */ + return TD_NOMSG; + +@@ -95,9 +95,9 @@ td_ta_event_getmsg (const td_thragent_t *ta_arg, td_event_msg_t *msg) + if (err != TD_OK) + return err; + +- if (next != 0) ++ if (next != NULL) + /* Clear the next pointer in the current descriptor. */ +- err = DB_PUT_FIELD (ta, thp, pthread, nextevent, 0, 0); ++ err = DB_PUT_FIELD (ta, thp, pthread, nextevent, 0, NULL); + + return err; + } +diff --git a/nptl_db/td_ta_map_lwp2thr.c b/nptl_db/td_ta_map_lwp2thr.c +index 1bd1fe9ec7400149..ab16e40119d2b1c5 100644 +--- a/nptl_db/td_ta_map_lwp2thr.c ++++ b/nptl_db/td_ta_map_lwp2thr.c +@@ -119,7 +119,7 @@ __td_ta_lookup_th_unique (const td_thragent_t *ta_arg, + if (ps_lgetregs (ta->ph, lwpid, regs) != PS_OK) + return TD_ERR; + terr = _td_fetch_value_local (ta, ta->ta_howto_data.reg, -1, +- 0, regs, &addr); ++ NULL, regs, &addr); + if (terr != TD_OK) + return terr; + +@@ -149,7 +149,7 @@ __td_ta_lookup_th_unique (const td_thragent_t *ta_arg, + if (ps_lgetregs (ta->ph, lwpid, regs) != PS_OK) + return TD_ERR; + terr = _td_fetch_value_local (ta, ta->ta_howto_data.reg_thread_area, +- -1, 0, regs, &addr); ++ -1, NULL, regs, &addr); + if (terr != TD_OK) + return terr; + /* In this descriptor the nelem word is overloaded as scale factor. */ +@@ -195,12 +195,12 @@ td_ta_map_lwp2thr (const td_thragent_t *ta_arg, + if (err != TD_OK) + return err; + +- if (list == 0) ++ if (list == NULL) + { + if (ps_getpid (ta->ph) != lwpid) + return TD_ERR; + th->th_ta_p = ta; +- th->th_unique = 0; ++ th->th_unique = NULL; + return TD_OK; + } + +diff --git a/nptl_db/td_ta_set_event.c b/nptl_db/td_ta_set_event.c +index ee674b35fc8390a5..ee3d63e4e6d434f4 100644 +--- a/nptl_db/td_ta_set_event.c ++++ b/nptl_db/td_ta_set_event.c +@@ -25,7 +25,7 @@ td_ta_set_event (const td_thragent_t *ta_arg, td_thr_events_t *event) + { + td_thragent_t *const ta = (td_thragent_t *) ta_arg; + td_err_e err; +- psaddr_t eventmask = 0; ++ psaddr_t eventmask = NULL; + void *copy = NULL; + + LOG ("td_ta_set_event"); +diff --git a/nptl_db/td_ta_thr_iter.c b/nptl_db/td_ta_thr_iter.c +index ce0c06cb3a89e845..cb3d8abb6132e92d 100644 +--- a/nptl_db/td_ta_thr_iter.c ++++ b/nptl_db/td_ta_thr_iter.c +@@ -37,19 +37,19 @@ iterate_thread_list (td_thragent_t *ta, td_thr_iter_f *callback, + if (err != TD_OK) + return err; + +- if (next == 0 && fake_empty) ++ if (next == NULL && fake_empty) + { + /* __pthread_initialize_minimal has not run. There is just the main + thread to return. We cannot rely on its thread register. They + sometimes contain garbage that would confuse us, left by the + kernel at exec. So if it looks like initialization is incomplete, + we only fake a special descriptor for the initial thread. */ +- td_thrhandle_t th = { ta, 0 }; ++ td_thrhandle_t th = { ta, NULL }; + return callback (&th, cbdata_p) != 0 ? TD_DBERR : TD_OK; + } + + /* Cache the offset from struct pthread to its list_t member. */ +- err = DB_GET_FIELD_ADDRESS (ofs, ta, 0, pthread, list, 0); ++ err = DB_GET_FIELD_ADDRESS (ofs, ta, NULL, pthread, list, 0); + if (err != TD_OK) + return err; + +@@ -66,7 +66,7 @@ iterate_thread_list (td_thragent_t *ta, td_thr_iter_f *callback, + psaddr_t addr, schedpolicy, schedprio; + + addr = next - (ofs - (psaddr_t) 0); +- if (next == 0 || addr == 0) /* Sanity check. */ ++ if (next == NULL || addr == NULL) /* Sanity check. */ + return TD_DBERR; + + /* Copy the whole descriptor in once so we can access the several +@@ -117,7 +117,7 @@ td_ta_thr_iter (const td_thragent_t *ta_arg, td_thr_iter_f *callback, + { + td_thragent_t *const ta = (td_thragent_t *) ta_arg; + td_err_e err; +- psaddr_t list = 0; ++ psaddr_t list = NULL; + + LOG ("td_ta_thr_iter"); + +diff --git a/nptl_db/td_ta_tsd_iter.c b/nptl_db/td_ta_tsd_iter.c +index 58d68eb871ea4b2e..592d43ecc29beb3b 100644 +--- a/nptl_db/td_ta_tsd_iter.c ++++ b/nptl_db/td_ta_tsd_iter.c +@@ -38,7 +38,7 @@ td_ta_tsd_iter (const td_thragent_t *ta_arg, td_key_iter_f *callback, + return TD_BADTA; + + /* This makes sure we have the size information on hand. */ +- addr = 0; ++ addr = NULL; + err = _td_locate_field (ta, + ta->ta_var___pthread_keys, SYM_DESC___pthread_keys, + (psaddr_t) 0 + 1, &addr); +diff --git a/nptl_db/td_thr_event_enable.c b/nptl_db/td_thr_event_enable.c +index 48c474c6674fd39b..c630722a88402da9 100644 +--- a/nptl_db/td_thr_event_enable.c ++++ b/nptl_db/td_thr_event_enable.c +@@ -24,7 +24,7 @@ td_thr_event_enable (const td_thrhandle_t *th, int onoff) + { + LOG ("td_thr_event_enable"); + +- if (th->th_unique != 0) ++ if (th->th_unique != NULL) + { + /* Write the new value into the thread data structure. */ + td_err_e err = DB_PUT_FIELD (th->th_ta_p, th->th_unique, pthread, +diff --git a/nptl_db/td_thr_event_getmsg.c b/nptl_db/td_thr_event_getmsg.c +index c0db52dd6261221b..aa5f55289138206c 100644 +--- a/nptl_db/td_thr_event_getmsg.c ++++ b/nptl_db/td_thr_event_getmsg.c +@@ -74,7 +74,7 @@ td_thr_event_getmsg (const td_thrhandle_t *th, td_event_msg_t *msg) + if (err != TD_OK) + return err; + +- while (thp != 0) ++ while (thp != NULL) + { + psaddr_t next; + err = DB_GET_FIELD (next, th->th_ta_p, th->th_unique, pthread, +@@ -97,13 +97,13 @@ td_thr_event_getmsg (const td_thrhandle_t *th, td_event_msg_t *msg) + + err = _td_store_value (th->th_ta_p, + th->th_ta_p->ta_var___nptl_last_event, -1, +- 0, prevp, next); ++ NULL, prevp, next); + if (err != TD_OK) + return err; + + /* Now clear this thread's own next pointer so it's not dangling + when the thread resumes and then chains on for its next event. */ +- return DB_PUT_FIELD (th->th_ta_p, thp, pthread, nextevent, 0, 0); ++ return DB_PUT_FIELD (th->th_ta_p, thp, pthread, nextevent, 0, NULL); + } + + err = DB_GET_FIELD_ADDRESS (prevp, th->th_ta_p, thp, pthread, +diff --git a/nptl_db/td_thr_get_info.c b/nptl_db/td_thr_get_info.c +index 84765d7c91d2fa7c..6584a692579b4518 100644 +--- a/nptl_db/td_thr_get_info.c ++++ b/nptl_db/td_thr_get_info.c +@@ -31,21 +31,21 @@ td_thr_get_info (const td_thrhandle_t *th, td_thrinfo_t *infop) + + LOG ("td_thr_get_info"); + +- if (th->th_unique == 0) ++ if (th->th_unique == NULL) + { + /* Special case for the main thread before initialization. */ + copy = NULL; +- tls = 0; +- cancelhandling = 0; ++ tls = NULL; ++ cancelhandling = NULL; + schedpolicy = SCHED_OTHER; +- schedprio = 0; +- tid = 0; ++ schedprio = NULL; ++ tid = NULL; + + /* Ignore errors to obtain the __nptl_initial_report_events + value because GDB no longer uses the events interface, and + other libthread_db consumers hopefully can handle different + libpthread/lds.o load orders. */ +- report_events = 0; ++ report_events = NULL; + (void) DB_GET_VALUE (report_events, th->th_ta_p, + __nptl_initial_report_events, 0); + err = TD_OK; +@@ -105,8 +105,8 @@ td_thr_get_info (const td_thrhandle_t *th, td_thrinfo_t *infop) + + /* Initialization which are the same in both cases. */ + infop->ti_ta_p = th->th_ta_p; +- infop->ti_lid = tid == 0 ? ps_getpid (th->th_ta_p->ph) : (uintptr_t) tid; +- infop->ti_traceme = report_events != 0; ++ infop->ti_lid = tid == NULL ? ps_getpid (th->th_ta_p->ph) : (uintptr_t) tid; ++ infop->ti_traceme = report_events != NULL; + + if (copy != NULL) + err = DB_GET_FIELD_LOCAL (infop->ti_startfunc, th->th_ta_p, copy, pthread, +diff --git a/nptl_db/td_thr_getfpregs.c b/nptl_db/td_thr_getfpregs.c +index 81bbcdffb622d9c8..0af1e44331cb62a6 100644 +--- a/nptl_db/td_thr_getfpregs.c ++++ b/nptl_db/td_thr_getfpregs.c +@@ -27,7 +27,7 @@ td_thr_getfpregs (const td_thrhandle_t *th, prfpregset_t *regset) + + LOG ("td_thr_getfpregs"); + +- if (th->th_unique == 0) ++ if (th->th_unique == NULL) + /* Special case for the main thread before initialization. */ + return ps_lgetfpregs (th->th_ta_p->ph, ps_getpid (th->th_ta_p->ph), + regset) != PS_OK ? TD_ERR : TD_OK; +diff --git a/nptl_db/td_thr_getgregs.c b/nptl_db/td_thr_getgregs.c +index eb075473aa2bf5c8..1dc0ec7063249f55 100644 +--- a/nptl_db/td_thr_getgregs.c ++++ b/nptl_db/td_thr_getgregs.c +@@ -27,7 +27,7 @@ td_thr_getgregs (const td_thrhandle_t *th, prgregset_t regset) + + LOG ("td_thr_getgregs"); + +- if (th->th_unique == 0) ++ if (th->th_unique == NULL) + /* Special case for the main thread before initialization. */ + return ps_lgetregs (th->th_ta_p->ph, ps_getpid (th->th_ta_p->ph), + regset) != PS_OK ? TD_ERR : TD_OK; +diff --git a/nptl_db/td_thr_setfpregs.c b/nptl_db/td_thr_setfpregs.c +index dae133464c0194ff..11b2fa814f73d21c 100644 +--- a/nptl_db/td_thr_setfpregs.c ++++ b/nptl_db/td_thr_setfpregs.c +@@ -27,7 +27,7 @@ td_thr_setfpregs (const td_thrhandle_t *th, const prfpregset_t *fpregs) + + LOG ("td_thr_setfpregs"); + +- if (th->th_unique == 0) ++ if (th->th_unique == NULL) + /* Special case for the main thread before initialization. */ + return ps_lsetfpregs (th->th_ta_p->ph, ps_getpid (th->th_ta_p->ph), + fpregs) != PS_OK ? TD_ERR : TD_OK; +diff --git a/nptl_db/td_thr_setgregs.c b/nptl_db/td_thr_setgregs.c +index aa51885fd32565b5..9f6c3a35479c38e0 100644 +--- a/nptl_db/td_thr_setgregs.c ++++ b/nptl_db/td_thr_setgregs.c +@@ -27,7 +27,7 @@ td_thr_setgregs (const td_thrhandle_t *th, prgregset_t gregs) + + LOG ("td_thr_setgregs"); + +- if (th->th_unique == 0) ++ if (th->th_unique == NULL) + /* Special case for the main thread before initialization. */ + return ps_lsetregs (th->th_ta_p->ph, ps_getpid (th->th_ta_p->ph), + gregs) != PS_OK ? TD_ERR : TD_OK; +diff --git a/nptl_db/td_thr_tlsbase.c b/nptl_db/td_thr_tlsbase.c +index a952eea798004f64..9a3f59aa8044a88d 100644 +--- a/nptl_db/td_thr_tlsbase.c ++++ b/nptl_db/td_thr_tlsbase.c +@@ -37,14 +37,14 @@ dtv_slotinfo_list (td_thragent_t *ta, + } + else + { +- if (ta->ta_addr__dl_tls_dtv_slotinfo_list == 0 ++ if (ta->ta_addr__dl_tls_dtv_slotinfo_list == NULL + && td_mod_lookup (ta->ph, NULL, SYM__dl_tls_dtv_slotinfo_list, + &ta->ta_addr__dl_tls_dtv_slotinfo_list) != PS_OK) + return TD_ERR; + + err = _td_fetch_value (ta, ta->ta_var__dl_tls_dtv_slotinfo_list, +- SYM_DESC__dl_tls_dtv_slotinfo_list, +- 0, ta->ta_addr__dl_tls_dtv_slotinfo_list, &head); ++ SYM_DESC__dl_tls_dtv_slotinfo_list, NULL, ++ ta->ta_addr__dl_tls_dtv_slotinfo_list, &head); + if (err != TD_OK) + return err; + } +@@ -129,7 +129,7 @@ td_thr_tlsbase (const td_thrhandle_t *th, + return TD_NOTLS; + + psaddr_t pd = th->th_unique; +- if (pd == 0) ++ if (pd == NULL) + { + /* This is the fake handle for the main thread before libpthread + initialization. We are using 0 for its th_unique because we can't +@@ -145,7 +145,7 @@ td_thr_tlsbase (const td_thrhandle_t *th, + &main_th); + if (err == 0) + pd = main_th.th_unique; +- if (pd == 0) ++ if (pd == NULL) + return TD_TLSDEFER; + } + +diff --git a/nptl_db/td_thr_tsd.c b/nptl_db/td_thr_tsd.c +index 234e894dbb818d4c..19dc2e7749358c5f 100644 +--- a/nptl_db/td_thr_tsd.c ++++ b/nptl_db/td_thr_tsd.c +@@ -42,8 +42,8 @@ td_thr_tsd (const td_thrhandle_t *th, const thread_key_t tk, void **data) + return TD_BADKEY; + + /* This makes sure we have the size information on hand. */ +- err = DB_GET_FIELD_ADDRESS (level2, th->th_ta_p, 0, pthread_key_data_level2, +- data, 1); ++ err = DB_GET_FIELD_ADDRESS (level2, th->th_ta_p, NULL, ++ pthread_key_data_level2, data, 1); + if (err != TD_OK) + return err; + +@@ -62,7 +62,7 @@ td_thr_tsd (const td_thrhandle_t *th, const thread_key_t tk, void **data) + return err; + + /* Check the pointer to the second level array. */ +- if (level1 == 0) ++ if (level1 == NULL) + return TD_NOTSD; + + /* Locate the element within the second level array. */ +diff --git a/nptl_db/td_thr_validate.c b/nptl_db/td_thr_validate.c +index 0c3afe346f1f2d06..76c4cf547b0f1578 100644 +--- a/nptl_db/td_thr_validate.c ++++ b/nptl_db/td_thr_validate.c +@@ -27,7 +27,7 @@ __td_ta_stack_user (td_thragent_t *ta, psaddr_t *plist) + rtld_global, _dl_stack_user, 0); + else + { +- if (ta->ta_addr__dl_stack_user == 0 ++ if (ta->ta_addr__dl_stack_user == NULL + && td_mod_lookup (ta->ph, NULL, SYM__dl_stack_user, + &ta->ta_addr__dl_stack_user) != PS_OK) + return TD_ERR; +@@ -45,7 +45,7 @@ __td_ta_stack_used (td_thragent_t *ta, psaddr_t *plist) + rtld_global, _dl_stack_used, 0); + else + { +- if (ta->ta_addr__dl_stack_used == 0 ++ if (ta->ta_addr__dl_stack_used == NULL + && td_mod_lookup (ta->ph, NULL, SYM__dl_stack_used, + &ta->ta_addr__dl_stack_used) != PS_OK) + return TD_ERR; +@@ -63,12 +63,12 @@ check_thread_list (const td_thrhandle_t *th, psaddr_t head, bool *uninit) + err = DB_GET_FIELD (next, th->th_ta_p, head, list_t, next, 0); + if (err == TD_OK) + { +- if (next == 0) ++ if (next == NULL) + { + *uninit = true; + return TD_NOTHR; + } +- err = DB_GET_FIELD_ADDRESS (ofs, th->th_ta_p, 0, pthread, list, 0); ++ err = DB_GET_FIELD_ADDRESS (ofs, th->th_ta_p, NULL, pthread, list, 0); + } + + while (err == TD_OK) +@@ -108,7 +108,7 @@ td_thr_validate (const td_thrhandle_t *th) + if (err == TD_OK) + err = check_thread_list (th, list, &uninit); + +- if (err == TD_NOTHR && uninit && th->th_unique == 0) ++ if (err == TD_NOTHR && uninit && th->th_unique == NULL) + /* __pthread_initialize_minimal has not run yet. + There is only the special case thread handle. */ + err = TD_OK; +diff --git a/nptl_db/thread_dbP.h b/nptl_db/thread_dbP.h +index 72d55588457a3a74..24960d048e6b7f03 100644 +--- a/nptl_db/thread_dbP.h ++++ b/nptl_db/thread_dbP.h +@@ -158,7 +158,7 @@ extern ps_err_e td_mod_lookup (struct ps_prochandle *ps, const char *modname, + + /* Store in psaddr_t VAR the address of inferior's symbol NAME. */ + #define DB_GET_SYMBOL(var, ta, name) \ +- (((ta)->ta_addr_##name == 0 \ ++ (((ta)->ta_addr_##name == NULL \ + && td_lookup ((ta)->ph, SYM_##name, &(ta)->ta_addr_##name) != PS_OK) \ + ? TD_ERR : ((var) = (ta)->ta_addr_##name, TD_OK)) + +@@ -199,7 +199,7 @@ extern td_err_e _td_locate_field (td_thragent_t *ta, + /* Store in psaddr_t VAR the value of variable NAME[IDX] in the inferior. + A target value smaller than psaddr_t is zero-extended. */ + #define DB_GET_VALUE(var, ta, name, idx) \ +- (((ta)->ta_addr_##name == 0 \ ++ (((ta)->ta_addr_##name == NULL \ + && td_lookup ((ta)->ph, SYM_##name, &(ta)->ta_addr_##name) != PS_OK) \ + ? TD_ERR \ + : _td_fetch_value ((ta), (ta)->ta_var_##name, SYM_DESC_##name, \ +@@ -231,7 +231,7 @@ extern td_err_e _td_fetch_value_local (td_thragent_t *ta, + /* Store psaddr_t VALUE in variable NAME[IDX] in the inferior. + A target field smaller than psaddr_t is zero-extended. */ + #define DB_PUT_VALUE(ta, name, idx, value) \ +- (((ta)->ta_addr_##name == 0 \ ++ (((ta)->ta_addr_##name == NULL \ + && td_lookup ((ta)->ph, SYM_##name, &(ta)->ta_addr_##name) != PS_OK) \ + ? TD_ERR \ + : _td_store_value ((ta), (ta)->ta_var_##name, SYM_DESC_##name, \ +diff --git a/nss/getaddrinfo.c b/nss/getaddrinfo.c +index 3ccd3905fa0f07c5..78f50954df1cca36 100644 +--- a/nss/getaddrinfo.c ++++ b/nss/getaddrinfo.c +@@ -1144,8 +1144,8 @@ gaih_inet (const char *name, const struct gaih_service *service, + struct gaih_addrtuple *addrmem = NULL; + int result = 0; + +- struct gaih_result res = {0}; +- struct gaih_addrtuple local_at[2] = {0}; ++ struct gaih_result res = {}; ++ struct gaih_addrtuple local_at[2] = {}; + + res.at = local_at; + +diff --git a/posix/getopt.c b/posix/getopt.c +index e2951f746011eceb..66aaeb3cc46409fa 100644 +--- a/posix/getopt.c ++++ b/posix/getopt.c +@@ -729,7 +729,7 @@ _getopt_internal (int argc, char **argv, const char *optstring, + NAME (int argc, char *const *argv, const char *optstring) \ + { \ + return _getopt_internal (argc, (char **)argv, optstring, \ +- 0, 0, 0, POSIXLY_CORRECT); \ ++ NULL, NULL, 0, POSIXLY_CORRECT); \ + } + + #ifdef _LIBC +diff --git a/posix/regcomp.c b/posix/regcomp.c +index 6595bb3c0d01a9f8..393ab0715ed02e7a 100644 +--- a/posix/regcomp.c ++++ b/posix/regcomp.c +@@ -674,7 +674,7 @@ re_comp (const char *s) + { + if (!re_comp_buf.buffer) + return gettext ("No previous regular expression"); +- return 0; ++ return NULL; + } + + if (re_comp_buf.buffer) +diff --git a/posix/regexec.c b/posix/regexec.c +index 180e3bce40ca4f7c..99f49bed62f8edec 100644 +--- a/posix/regexec.c ++++ b/posix/regexec.c +@@ -2277,7 +2277,7 @@ merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, + mctx->state_log[cur_idx] = next_state; + mctx->state_log_top = cur_idx; + } +- else if (mctx->state_log[cur_idx] == 0) ++ else if (mctx->state_log[cur_idx] == NULL) + { + mctx->state_log[cur_idx] = next_state; + } +diff --git a/resolv/base64.c b/resolv/base64.c +index 6237257bb0ce468a..11463235c8d5c475 100644 +--- a/resolv/base64.c ++++ b/resolv/base64.c +@@ -205,7 +205,7 @@ b64_pton (char const *src, u_char *target, size_t targsize) + break; + + pos = strchr(Base64, ch); +- if (pos == 0) /* A non-base64 character. */ ++ if (pos == NULL) /* A non-base64 character. */ + return (-1); + + switch (state) { +diff --git a/resolv/compat-gethnamaddr.c b/resolv/compat-gethnamaddr.c +index 1c630fcb3d63d377..eec68d0b23bb5734 100644 +--- a/resolv/compat-gethnamaddr.c ++++ b/resolv/compat-gethnamaddr.c +@@ -804,7 +804,7 @@ _gethtbyname2 (const char *name, int af) + continue; + if (strcasecmp(p->h_name, name) == 0) + break; +- for (cp = p->h_aliases; *cp != 0; cp++) ++ for (cp = p->h_aliases; *cp != NULL; cp++) + if (strcasecmp(*cp, name) == 0) + goto found; + } +diff --git a/resolv/res_debug.c b/resolv/res_debug.c +index dab5283bbf1ab516..0221c322369a2ccd 100644 +--- a/resolv/res_debug.c ++++ b/resolv/res_debug.c +@@ -502,7 +502,7 @@ const struct res_sym __p_rcode_syms[] attribute_hidden = { + + int + sym_ston(const struct res_sym *syms, const char *name, int *success) { +- for ((void)NULL; syms->name != 0; syms++) { ++ for ((void)NULL; syms->name != NULL; syms++) { + if (strcasecmp (name, syms->name) == 0) { + if (success) + *success = 1; +@@ -518,7 +518,7 @@ const char * + sym_ntos(const struct res_sym *syms, int number, int *success) { + static char unname[20]; + +- for ((void)NULL; syms->name != 0; syms++) { ++ for ((void)NULL; syms->name != NULL; syms++) { + if (number == syms->number) { + if (success) + *success = 1; +@@ -537,7 +537,7 @@ const char * + sym_ntop(const struct res_sym *syms, int number, int *success) { + static char unname[20]; + +- for ((void)NULL; syms->name != 0; syms++) { ++ for ((void)NULL; syms->name != NULL; syms++) { + if (number == syms->number) { + if (success) + *success = 1; +diff --git a/resolv/res_hconf.c b/resolv/res_hconf.c +index e1158943a9457467..1737bce2f9d02ad8 100644 +--- a/resolv/res_hconf.c ++++ b/resolv/res_hconf.c +@@ -118,12 +118,12 @@ arg_trimdomain_list (const char *fname, int line_num, const char *args) + if (__asprintf (&buf, _("\ + %s: line %d: cannot specify more than %d trim domains"), + fname, line_num, TRIMDOMAINS_MAX) < 0) +- return 0; ++ return NULL; + + __fxprintf (NULL, "%s", buf); + + free (buf); +- return 0; ++ return NULL; + } + _res_hconf.trimdomain[_res_hconf.num_trimdomains++] = + __strndup (start, len); +@@ -139,12 +139,12 @@ arg_trimdomain_list (const char *fname, int line_num, const char *args) + if (__asprintf (&buf, _("\ + %s: line %d: list delimiter not followed by domain"), + fname, line_num) < 0) +- return 0; ++ return NULL; + + __fxprintf (NULL, "%s", buf); + + free (buf); +- return 0; ++ return NULL; + } + default: + break; +@@ -175,12 +175,12 @@ arg_bool (const char *fname, int line_num, const char *args, unsigned flag) + if (__asprintf (&buf, + _("%s: line %d: expected `on' or `off', found `%s'\n"), + fname, line_num, args) < 0) +- return 0; ++ return NULL; + + __fxprintf (NULL, "%s", buf); + + free (buf); +- return 0; ++ return NULL; + } + return args; + } +@@ -190,7 +190,7 @@ static void + parse_line (const char *fname, int line_num, const char *str) + { + const char *start; +- const struct cmd *c = 0; ++ const struct cmd *c = NULL; + size_t len; + size_t i; + +diff --git a/stdio-common/iovfscanf.c b/stdio-common/iovfscanf.c +index 43b5c70c3f6e815c..68d0a325f799e0aa 100644 +--- a/stdio-common/iovfscanf.c ++++ b/stdio-common/iovfscanf.c +@@ -29,7 +29,7 @@ attribute_compat_text_section + __IO_vfscanf (FILE *fp, const char *format, va_list ap, int *errp) + { + int rv = __vfscanf_internal (fp, format, ap, 0); +- if (__glibc_unlikely (errp != 0)) ++ if (__glibc_unlikely (errp != NULL)) + *errp = (rv == -1); + return rv; + } +diff --git a/string/argz-delete.c b/string/argz-delete.c +index e513e46d5869993f..879daa9821281a83 100644 +--- a/string/argz-delete.c ++++ b/string/argz-delete.c +@@ -33,7 +33,7 @@ argz_delete (char **argz, size_t *argz_len, char *entry) + if (*argz_len == 0) + { + free (*argz); +- *argz = 0; ++ *argz = NULL; + } + } + } +diff --git a/string/argz-extract.c b/string/argz-extract.c +index e685da57957ea5ba..fd0003965d4c8df7 100644 +--- a/string/argz-extract.c ++++ b/string/argz-extract.c +@@ -30,6 +30,6 @@ __argz_extract (const char *argz, size_t len, char **argv) + argz += part_len + 1; + len -= part_len + 1; + } +- *argv = 0; ++ *argv = NULL; + } + weak_alias (__argz_extract, argz_extract) +diff --git a/string/argz-replace.c b/string/argz-replace.c +index fdd9a8e1c94bb928..d2add630ff664ed0 100644 +--- a/string/argz-replace.c ++++ b/string/argz-replace.c +@@ -38,7 +38,7 @@ str_append (char **to, size_t *to_len, const char *buf, const size_t buf_len) + else + { + free (*to); +- *to = 0; ++ *to = NULL; + } + } + +@@ -53,10 +53,10 @@ __argz_replace (char **argz, size_t *argz_len, const char *str, const char *with + + if (str && *str) + { +- char *arg = 0; ++ char *arg = NULL; + char *src = *argz; + size_t src_len = *argz_len; +- char *dst = 0; ++ char *dst = NULL; + size_t dst_len = 0; + int delayed_copy = 1; /* True while we've avoided copying anything. */ + size_t str_len = strlen (str), with_len = strlen (with); +@@ -84,7 +84,7 @@ __argz_replace (char **argz, size_t *argz_len, const char *str, const char *with + else + { + str_append (&to, &to_len, from, strlen (from)); +- from = 0; ++ from = NULL; + } + } + } +diff --git a/string/argz.h b/string/argz.h +index 49e85a09ec948d7b..b2dd99413225687e 100644 +--- a/string/argz.h ++++ b/string/argz.h +@@ -141,7 +141,7 @@ __NTH (__argz_next (const char *__argz, size_t __argz_len, + return __entry >= __argz + __argz_len ? (char *) NULL : (char *) __entry; + } + else +- return __argz_len > 0 ? (char *) __argz : 0; ++ return __argz_len > 0 ? (char *) __argz : NULL; + } + __extern_inline char * + __NTH (argz_next (const char *__argz, size_t __argz_len, +diff --git a/string/envz.c b/string/envz.c +index cb02b4b338cc9118..4f53dcb2e75dc062 100644 +--- a/string/envz.c ++++ b/string/envz.c +@@ -50,7 +50,7 @@ envz_entry (const char *envz, size_t envz_len, const char *name) + envz++, envz_len--; /* skip '\0' */ + } + +- return 0; ++ return NULL; + } + libc_hidden_def (envz_entry) + +@@ -67,7 +67,7 @@ envz_get (const char *envz, size_t envz_len, const char *name) + if (*entry) + entry++; + else +- entry = 0; /* A null entry. */ ++ entry = NULL; /* A null entry. */ + } + return entry; + } +diff --git a/sunrpc/clnt_raw.c b/sunrpc/clnt_raw.c +index 5b9bd482478760ee..79c0964e7bb0e19b 100644 +--- a/sunrpc/clnt_raw.c ++++ b/sunrpc/clnt_raw.c +@@ -90,11 +90,11 @@ clntraw_create (u_long prog, u_long vers) + XDR *xdrs; + CLIENT *client; + +- if (clp == 0) ++ if (clp == NULL) + { + clp = (struct clntraw_private_s *) calloc (1, sizeof (*clp)); +- if (clp == 0) +- return (0); ++ if (clp == NULL) ++ return NULL; + clntraw_private = clp; + } + xdrs = &clp->xdr_stream; +diff --git a/sunrpc/clnt_simp.c b/sunrpc/clnt_simp.c +index fab61d217003e959..ee77af9cbcf223bf 100644 +--- a/sunrpc/clnt_simp.c ++++ b/sunrpc/clnt_simp.c +@@ -60,10 +60,10 @@ callrpc (const char *host, u_long prognum, u_long versnum, u_long procnum, + enum clnt_stat clnt_stat; + struct timeval timeout, tottimeout; + +- if (crp == 0) ++ if (crp == NULL) + { + crp = (struct callrpc_private_s *) calloc (1, sizeof (*crp)); +- if (crp == 0) ++ if (crp == NULL) + return 0; + callrpc_private = crp; + } +diff --git a/sunrpc/key_call.c b/sunrpc/key_call.c +index b0b29e09a7faa86e..c8e414b1df20773c 100644 +--- a/sunrpc/key_call.c ++++ b/sunrpc/key_call.c +@@ -542,7 +542,7 @@ key_call (u_long proc, xdrproc_t xdr_arg, char *arg, + else if (proc == KEY_GEN && __key_gendes_LOCAL) + { + des_block *res; +- res = (*__key_gendes_LOCAL) (__geteuid (), 0); ++ res = (*__key_gendes_LOCAL) (__geteuid (), NULL); + *(des_block *) rslt = *res; + return 1; + } +diff --git a/sunrpc/svc_raw.c b/sunrpc/svc_raw.c +index f0176311d5cbd9f5..2879ce6f84a818f3 100644 +--- a/sunrpc/svc_raw.c ++++ b/sunrpc/svc_raw.c +@@ -72,10 +72,10 @@ svcraw_create (void) + { + struct svcraw_private_s *srp = svcraw_private; + +- if (srp == 0) ++ if (srp == NULL) + { + srp = (struct svcraw_private_s *) calloc (1, sizeof (*srp)); +- if (srp == 0) ++ if (srp == NULL) + return NULL; + } + srp->server.xp_sock = 0; +@@ -99,7 +99,7 @@ svcraw_recv (SVCXPRT *xprt, struct rpc_msg *msg) + struct svcraw_private_s *srp = svcraw_private; + XDR *xdrs; + +- if (srp == 0) ++ if (srp == NULL) + return FALSE; + xdrs = &srp->xdr_stream; + xdrs->x_op = XDR_DECODE; +@@ -115,7 +115,7 @@ svcraw_reply (SVCXPRT *xprt, struct rpc_msg *msg) + struct svcraw_private_s *srp = svcraw_private; + XDR *xdrs; + +- if (srp == 0) ++ if (srp == NULL) + return FALSE; + xdrs = &srp->xdr_stream; + xdrs->x_op = XDR_ENCODE; +@@ -131,7 +131,7 @@ svcraw_getargs (SVCXPRT *xprt, xdrproc_t xdr_args, caddr_t args_ptr) + { + struct svcraw_private_s *srp = svcraw_private; + +- if (srp == 0) ++ if (srp == NULL) + return FALSE; + return (*xdr_args) (&srp->xdr_stream, args_ptr); + } +@@ -142,7 +142,7 @@ svcraw_freeargs (SVCXPRT *xprt, xdrproc_t xdr_args, caddr_t args_ptr) + struct svcraw_private_s *srp = svcraw_private; + XDR *xdrs; + +- if (srp == 0) ++ if (srp == NULL) + return FALSE; + xdrs = &srp->xdr_stream; + xdrs->x_op = XDR_FREE; +diff --git a/sunrpc/svc_simple.c b/sunrpc/svc_simple.c +index 2f2595c0ffe14ded..5a6dd1fce644fc68 100644 +--- a/sunrpc/svc_simple.c ++++ b/sunrpc/svc_simple.c +@@ -74,7 +74,7 @@ __registerrpc (u_long prognum, u_long versnum, u_long procnum, + buf = NULL; + goto err_out; + } +- if (transp == 0) ++ if (transp == NULL) + { + transp = svcudp_create (RPC_ANYSOCK); + if (transp == NULL) +diff --git a/sunrpc/xdr_mem.c b/sunrpc/xdr_mem.c +index 46a1f6f1903dd961..a5aa93f4378ed93f 100644 +--- a/sunrpc/xdr_mem.c ++++ b/sunrpc/xdr_mem.c +@@ -195,7 +195,7 @@ xdrmem_setpos (XDR *xdrs, u_int pos) + static int32_t * + xdrmem_inline (XDR *xdrs, u_int len) + { +- int32_t *buf = 0; ++ int32_t *buf = NULL; + + if (xdrs->x_handy >= len) + { +diff --git a/sunrpc/xdr_sizeof.c b/sunrpc/xdr_sizeof.c +index 1592406d6462fe6e..03c23cd42b026556 100644 +--- a/sunrpc/xdr_sizeof.c ++++ b/sunrpc/xdr_sizeof.c +@@ -89,7 +89,7 @@ x_inline (XDR *xdrs, u_int len) + free (xdrs->x_private); + if ((xdrs->x_private = (caddr_t) malloc (len)) == NULL) + { +- xdrs->x_base = 0; ++ xdrs->x_base = NULL; + return NULL; + } + xdrs->x_base = (void *) (long) len; +@@ -109,7 +109,7 @@ static void + x_destroy (XDR *xdrs) + { + xdrs->x_handy = 0; +- xdrs->x_base = 0; ++ xdrs->x_base = NULL; + if (xdrs->x_private) + { + free (xdrs->x_private); +diff --git a/sunrpc/xdr_stdio.c b/sunrpc/xdr_stdio.c +index 0c2cbb78ded8a229..204ed599ae2a2f33 100644 +--- a/sunrpc/xdr_stdio.c ++++ b/sunrpc/xdr_stdio.c +@@ -89,7 +89,7 @@ xdrstdio_create (XDR *xdrs, FILE *file, enum xdr_op op) + xdrs->x_ops = (struct xdr_ops *) &xdrstdio_ops; + xdrs->x_private = (caddr_t) file; + xdrs->x_handy = 0; +- xdrs->x_base = 0; ++ xdrs->x_base = NULL; + } + + /* +diff --git a/support/blob_repeat.c b/support/blob_repeat.c +index 693956f436cac916..19c9aaf4446296ef 100644 +--- a/support/blob_repeat.c ++++ b/support/blob_repeat.c +@@ -92,7 +92,7 @@ allocate_malloc (size_t total_size, const void *element, size_t element_size, + { + void *buffer = malloc (total_size); + if (buffer == NULL) +- return (struct support_blob_repeat) { 0 }; ++ return (struct support_blob_repeat) {}; + fill (buffer, element, element_size, count); + return (struct support_blob_repeat) + { +@@ -136,7 +136,7 @@ allocate_big (size_t total_size, const void *element, size_t element_size, + if (stride_size == 0) + { + errno = EOVERFLOW; +- return (struct support_blob_repeat) { 0 }; ++ return (struct support_blob_repeat) {}; + } + + /* Ensure that the stride size is at least maximum_small_size. This +@@ -154,7 +154,7 @@ allocate_big (size_t total_size, const void *element, size_t element_size, + void *target = mmap (NULL, total_size, PROT_NONE, + MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); + if (target == MAP_FAILED) +- return (struct support_blob_repeat) { 0 }; ++ return (struct support_blob_repeat) {}; + + /* Create the backing file for the repeated mapping. Call mkstemp + directly to remove the resources backing the temporary file +@@ -191,7 +191,7 @@ allocate_big (size_t total_size, const void *element, size_t element_size, + xmunmap (target, total_size); + xclose (fd); + errno = saved_errno; +- return (struct support_blob_repeat) { 0 }; ++ return (struct support_blob_repeat) {}; + } + if (ptr != target) + FAIL_EXIT1 ("mapping of %zu bytes moved from %p to %p", +@@ -235,7 +235,7 @@ allocate_big (size_t total_size, const void *element, size_t element_size, + xmunmap (target, total_size); + xclose (fd); + errno = saved_errno; +- return (struct support_blob_repeat) { 0 }; ++ return (struct support_blob_repeat) {}; + } + if (ptr != current) + FAIL_EXIT1 ("MAP_PRIVATE mapping of %zu bytes moved from %p to %p", +@@ -263,7 +263,7 @@ repeat_allocate (const void *element, size_t element_size, + if (__builtin_mul_overflow (element_size, count, &total_size)) + { + errno = EOVERFLOW; +- return (struct support_blob_repeat) { 0 }; ++ return (struct support_blob_repeat) {}; + } + if (total_size <= maximum_small_size) + return allocate_malloc (total_size, element, element_size, count); +@@ -297,5 +297,5 @@ support_blob_repeat_free (struct support_blob_repeat *blob) + xmunmap (blob->start, blob->size); + errno = saved_errno; + } +- *blob = (struct support_blob_repeat) { 0 }; ++ *blob = (struct support_blob_repeat) {}; + } +diff --git a/support/shell-container.c b/support/shell-container.c +index ca833791d5f39289..86f43ab23fb40d03 100644 +--- a/support/shell-container.c ++++ b/support/shell-container.c +@@ -119,7 +119,7 @@ copy_func (char **argv) + goto out; + } + +- if (support_copy_file_range (sfd, 0, dfd, 0, st.st_size, 0) != st.st_size) ++ if (support_copy_file_range (sfd, NULL, dfd, NULL, st.st_size, 0) != st.st_size) + { + fprintf (stderr, "cp: cannot copy file %s to %s: %s\n", + sname, dname, strerror (errno)); +@@ -145,7 +145,7 @@ exit_func (char **argv) + { + int exit_val = 0; + +- if (argv[0] != 0) ++ if (argv[0] != NULL) + exit_val = atoi (argv[0]) & 0xff; + exit (exit_val); + return 0; +diff --git a/support/support_openpty.c b/support/support_openpty.c +index fbf9f71e738e0d38..1d154a9d0ae59529 100644 +--- a/support/support_openpty.c ++++ b/support/support_openpty.c +@@ -57,7 +57,7 @@ support_openpty (int *a_outer, int *a_inner, char **a_name, + const struct winsize *winp) + { + int outer = -1, inner = -1; +- char *namebuf = 0; ++ char *namebuf = NULL; + + outer = posix_openpt (O_RDWR | O_NOCTTY); + if (outer == -1) +diff --git a/support/support_set_vma_name_supported.c b/support/support_set_vma_name_supported.c +index 2de066fbe8390e4f..99350663456b3f5d 100644 +--- a/support/support_set_vma_name_supported.c ++++ b/support/support_set_vma_name_supported.c +@@ -32,7 +32,7 @@ support_set_vma_name_supported (void) + if (size == -1) + FAIL_EXIT1 ("sysconf (_SC_PAGESIZE): %m\n"); + +- void *vma = xmmap (0, ++ void *vma = xmmap (NULL, + size, + PROT_NONE, + MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, +diff --git a/support/support_stack_alloc.c b/support/support_stack_alloc.c +index edf3dbfc21020094..346a46aa2a60cfe9 100644 +--- a/support/support_stack_alloc.c ++++ b/support/support_stack_alloc.c +@@ -58,7 +58,7 @@ support_stack_alloc (size_t size) + /* Use MAP_NORESERVE so that RAM will not be wasted on the guard + bands; touch all the pages of the actual stack before returning, + so we know they are allocated. */ +- void *alloc_base = xmmap (0, ++ void *alloc_base = xmmap (NULL, + alloc_size, + PROT_NONE, + MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE|MAP_STACK, +diff --git a/support/test-container.c b/support/test-container.c +index 1696d676fd101d42..2813b0ddf572fc48 100644 +--- a/support/test-container.c ++++ b/support/test-container.c +@@ -440,7 +440,7 @@ copy_one_file (const char *sname, const char *dname) + if (dfd < 0) + FAIL_EXIT1 ("unable to open %s for writing\n", dname); + +- xcopy_file_range (sfd, 0, dfd, 0, st.st_size, 0); ++ xcopy_file_range (sfd, NULL, dfd, NULL, st.st_size, 0); + + xclose (sfd); + xclose (dfd); +diff --git a/support/xsigstack.c b/support/xsigstack.c +index 415e65976cc2e911..59512a2148eddf2d 100644 +--- a/support/xsigstack.c ++++ b/support/xsigstack.c +@@ -64,7 +64,7 @@ xfree_sigstack (void *stack) + { + struct sigstack_desc *desc = stack; + +- if (sigaltstack (&desc->old_stack, 0)) ++ if (sigaltstack (&desc->old_stack, NULL)) + FAIL_EXIT1 ("sigaltstack (restore old stack: sp=%p, size=%zu, flags=%u): " + "%m\n", desc->old_stack.ss_sp, desc->old_stack.ss_size, + desc->old_stack.ss_flags); +diff --git a/sysdeps/posix/system.c b/sysdeps/posix/system.c +index 01e8bc45215bb289..be3270428092b11b 100644 +--- a/sysdeps/posix/system.c ++++ b/sysdeps/posix/system.c +@@ -144,7 +144,7 @@ do_system (const char *line) + __posix_spawnattr_setflags (&spawn_attr, + POSIX_SPAWN_SETSIGDEF | POSIX_SPAWN_SETSIGMASK); + +- ret = __posix_spawn (&pid, SHELL_PATH, 0, &spawn_attr, ++ ret = __posix_spawn (&pid, SHELL_PATH, NULL, &spawn_attr, + (char *const[]){ (char *) SHELL_NAME, + (char *) "-c", + (char *) "--", +diff --git a/sysdeps/unix/sysv/linux/brk.c b/sysdeps/unix/sysv/linux/brk.c +index a0be43e4f9915297..dbdb8ddd7da32552 100644 +--- a/sysdeps/unix/sysv/linux/brk.c ++++ b/sysdeps/unix/sysv/linux/brk.c +@@ -22,7 +22,7 @@ + #include + + /* This must be initialized data because commons can't have aliases. */ +-void *__curbrk = 0; ++void *__curbrk = NULL; + + #if HAVE_INTERNAL_BRK_ADDR_SYMBOL + /* Old braindamage in GCC's crtstuff.c requires this symbol in an attempt +diff --git a/sysdeps/unix/sysv/linux/dl-early_allocate.c b/sysdeps/unix/sysv/linux/dl-early_allocate.c +index 4d98076ab398cb54..ce5c6b55ffddf3c8 100644 +--- a/sysdeps/unix/sysv/linux/dl-early_allocate.c ++++ b/sysdeps/unix/sysv/linux/dl-early_allocate.c +@@ -51,7 +51,7 @@ _dl_early_allocate (size_t size) + { + /* If brk has not been invoked, there is no need to update + __curbrk. The first call to brk will take care of that. */ +- void *previous = __brk_call (0); ++ void *previous = __brk_call (NULL); + result = __brk_call (previous + size); + if (result == previous) + result = NULL; +diff --git a/sysdeps/unix/sysv/linux/dl-sysdep.c b/sysdeps/unix/sysv/linux/dl-sysdep.c +index a8ec2d7c18cc423e..1a7779a1841b3357 100644 +--- a/sysdeps/unix/sysv/linux/dl-sysdep.c ++++ b/sysdeps/unix/sysv/linux/dl-sysdep.c +@@ -113,7 +113,7 @@ _dl_sysdep_start (void **start_argptr, + /* Initialize DSO sorting algorithm after tunables. */ + _dl_sort_maps_init (); + +- __brk (0); /* Initialize the break. */ ++ __brk (NULL); /* Initialize the break. */ + + #ifdef DL_PLATFORM_INIT + DL_PLATFORM_INIT; +diff --git a/sysdeps/unix/sysv/linux/gettimeofday.c b/sysdeps/unix/sysv/linux/gettimeofday.c +index 7ab147c6143a63cd..15be44b3777d4c21 100644 +--- a/sysdeps/unix/sysv/linux/gettimeofday.c ++++ b/sysdeps/unix/sysv/linux/gettimeofday.c +@@ -31,7 +31,7 @@ + static int + __gettimeofday_syscall (struct timeval *restrict tv, void *restrict tz) + { +- if (__glibc_unlikely (tz != 0)) ++ if (__glibc_unlikely (tz != NULL)) + memset (tz, 0, sizeof *tz); + return INLINE_SYSCALL_CALL (gettimeofday, tv, tz); + } +@@ -47,7 +47,7 @@ libc_ifunc (__gettimeofday, + int + __gettimeofday (struct timeval *restrict tv, void *restrict tz) + { +- if (__glibc_unlikely (tz != 0)) ++ if (__glibc_unlikely (tz != NULL)) + memset (tz, 0, sizeof *tz); + + return INLINE_VSYSCALL (gettimeofday, 2, tv, tz); +diff --git a/sysdeps/unix/sysv/linux/settimeofday.c b/sysdeps/unix/sysv/linux/settimeofday.c +index 4235dc83e6626ee6..4fa1d660153f7d88 100644 +--- a/sysdeps/unix/sysv/linux/settimeofday.c ++++ b/sysdeps/unix/sysv/linux/settimeofday.c +@@ -26,9 +26,9 @@ int + __settimeofday64 (const struct __timeval64 *tv, const struct timezone *tz) + { + /* Backwards compatibility for setting the UTC offset. */ +- if (__glibc_unlikely (tz != 0)) ++ if (__glibc_unlikely (tz != NULL)) + { +- if (tv != 0) ++ if (tv != NULL) + { + __set_errno (EINVAL); + return -1; +diff --git a/sysdeps/unix/sysv/linux/sigwait.c b/sysdeps/unix/sysv/linux/sigwait.c +index 37de8db0dcf403a1..f0dff83dab12fc06 100644 +--- a/sysdeps/unix/sysv/linux/sigwait.c ++++ b/sysdeps/unix/sysv/linux/sigwait.c +@@ -25,7 +25,7 @@ __sigwait (const sigset_t *set, int *sig) + siginfo_t si; + int ret; + do +- ret = __sigtimedwait (set, &si, 0); ++ ret = __sigtimedwait (set, &si, NULL); + /* Applications do not expect sigwait to return with EINTR, and the + error code is not specified by POSIX. */ + while (ret < 0 && errno == EINTR); +diff --git a/sysdeps/unix/sysv/linux/sigwaitinfo.c b/sysdeps/unix/sysv/linux/sigwaitinfo.c +index dba25bdc3b62e6f3..1d48b11b57e26895 100644 +--- a/sysdeps/unix/sysv/linux/sigwaitinfo.c ++++ b/sysdeps/unix/sysv/linux/sigwaitinfo.c +@@ -22,7 +22,7 @@ + int + __sigwaitinfo (const sigset_t *set, siginfo_t *info) + { +- return __sigtimedwait (set, info, 0); ++ return __sigtimedwait (set, info, NULL); + } + + libc_hidden_def (__sigwaitinfo) +diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c +index f57e92815eaf3c7b..fa3494898956f4be 100644 +--- a/sysdeps/unix/sysv/linux/spawni.c ++++ b/sysdeps/unix/sysv/linux/spawni.c +@@ -115,7 +115,7 @@ __spawni_child (void *arguments) + memset (&sa, '\0', sizeof (sa)); + + sigset_t hset; +- __sigprocmask (SIG_BLOCK, 0, &hset); ++ __sigprocmask (SIG_BLOCK, NULL, &hset); + for (int sig = 1; sig < _NSIG; ++sig) + { + if ((attr->__flags & POSIX_SPAWN_SETSIGDEF) +@@ -129,7 +129,7 @@ __spawni_child (void *arguments) + sa.sa_handler = SIG_IGN; + else + { +- __libc_sigaction (sig, 0, &sa); ++ __libc_sigaction (sig, NULL, &sa); + if (sa.sa_handler == SIG_IGN || sa.sa_handler == SIG_DFL) + continue; + sa.sa_handler = SIG_DFL; +@@ -138,7 +138,7 @@ __spawni_child (void *arguments) + else + continue; + +- __libc_sigaction (sig, &sa, 0); ++ __libc_sigaction (sig, &sa, NULL); + } + + #ifdef _POSIX_PRIORITY_SCHEDULING +@@ -172,7 +172,7 @@ __spawni_child (void *arguments) + goto fail; + + /* Execute the file actions. */ +- if (file_actions != 0) ++ if (file_actions != NULL) + { + int cnt; + struct rlimit64 fdlimit; +diff --git a/sysdeps/x86/nptl/bits/struct_mutex.h b/sysdeps/x86/nptl/bits/struct_mutex.h +index b6bb9aa34af2db8a..7a1b8a14b621d085 100644 +--- a/sysdeps/x86/nptl/bits/struct_mutex.h ++++ b/sysdeps/x86/nptl/bits/struct_mutex.h +@@ -54,7 +54,7 @@ struct __pthread_mutex_s + + #ifdef __x86_64__ + # define __PTHREAD_MUTEX_INITIALIZER(__kind) \ +- 0, 0, 0, 0, __kind, 0, 0, { 0, 0 } ++ 0, 0, 0, 0, __kind, 0, 0, { NULL, NULL } + #else + # define __PTHREAD_MUTEX_INITIALIZER(__kind) \ + 0, 0, 0, __kind, 0, { { 0, 0 } } +diff --git a/timezone/zic.c b/timezone/zic.c +index 2875b5544cc97864..b41c0d1cdc86e8b9 100644 +--- a/timezone/zic.c ++++ b/timezone/zic.c +@@ -1452,7 +1452,7 @@ inzsub(char **fields, int nfields, bool iscont) + z.z_filename = filename; + z.z_linenum = linenum; + z.z_stdoff = gethms(fields[i_stdoff], _("invalid UT offset")); +- if ((cp = strchr(fields[i_format], '%')) != 0) { ++ if ((cp = strchr(fields[i_format], '%')) != NULL) { + if ((*++cp != 's' && *cp != 'z') || strchr(cp, '%') + || strchr(fields[i_format], '/')) { + error(_("invalid abbreviation format")); +@@ -1755,9 +1755,9 @@ rulesub(struct rule *rp, const char *loyearp, const char *hiyearp, + rp->r_wday = lp->l_value; + rp->r_dayofmonth = len_months[1][rp->r_month]; + } else { +- if ((ep = strchr(dp, '<')) != 0) ++ if ((ep = strchr(dp, '<')) != NULL) + rp->r_dycode = DC_DOWLEQ; +- else if ((ep = strchr(dp, '>')) != 0) ++ else if ((ep = strchr(dp, '>')) != NULL) + rp->r_dycode = DC_DOWGEQ; + else { + ep = dp; +diff --git a/wctype/wctrans.c b/wctype/wctrans.c +index 9444ed08d81e1ce5..4c484c01b5b1d0b7 100644 +--- a/wctype/wctrans.c ++++ b/wctype/wctrans.c +@@ -39,7 +39,7 @@ __wctrans (const char *property) + } + + if (names[0] == '\0') +- return 0; ++ return NULL; + + i = _NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_OFFSET) + cnt; + return (wctrans_t) _NL_CURRENT_DATA (LC_CTYPE)->values[i].string; +diff --git a/wctype/wctrans_l.c b/wctype/wctrans_l.c +index 96fde935ffb579f0..1a34168b3f87c81a 100644 +--- a/wctype/wctrans_l.c ++++ b/wctype/wctrans_l.c +@@ -39,7 +39,7 @@ __wctrans_l (const char *property, locale_t locale) + } + + if (names[0] == '\0') +- return 0; ++ return NULL; + + i = locale->__locales[LC_CTYPE]->values[_NL_ITEM_INDEX (_NL_CTYPE_MAP_OFFSET)].word + cnt; + return (wctrans_t) locale->__locales[LC_CTYPE]->values[i].string; diff --git a/glibc-RHEL-119409-2.patch b/glibc-RHEL-119409-2.patch new file mode 100644 index 0000000..fa65d58 --- /dev/null +++ b/glibc-RHEL-119409-2.patch @@ -0,0 +1,53 @@ +commit bd0ea9ff7e8d5f7d54112dfa96d541c3c60e36ae +Author: Alejandro Colomar +Date: Tue Dec 17 00:22:19 2024 +0100 + + libio: Use NULL instead of 0 as a null pointer constant + + This was missed in a recent global change. + + Fixes: 53fcdf5f743a (2024-11-25, "Silence most -Wzero-as-null-pointer-constant diagnostics") + Reported-by: "Maciej W. Rozycki" + Cc: Siddhesh Poyarekar + Cc: Bruno Haible + Cc: Martin Uecker + Cc: Xi Ruoyao + Cc: Florian Weimer + Cc: Joseph Myers + Signed-off-by: Alejandro Colomar + Reviewed-by: Maciej W. Rozycki + +diff --git a/libio/libioP.h b/libio/libioP.h +index 34bf91fcd89718bc..70e2bdfc9df426ca 100644 +--- a/libio/libioP.h ++++ b/libio/libioP.h +@@ -910,7 +910,8 @@ extern int _IO_vscanf (const char *, va_list) __THROW; + # ifdef _IO_USE_OLD_IO_FILE + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (FILE *) CHAIN, FD, \ ++ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ ++ NULL, NULL, (FILE *) CHAIN, FD, \ + 0, _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock } + # else + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ +@@ -924,14 +925,16 @@ extern int _IO_vscanf (const char *, va_list) __THROW; + # ifdef _IO_USE_OLD_IO_FILE + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (FILE *) CHAIN, FD, \ ++ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ ++ NULL, NULL, (FILE *) CHAIN, FD, \ + 0, _IO_pos_BAD } + # else + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ +- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (FILE *) CHAIN, FD, \ ++ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ ++ NULL, NULL, (FILE *) CHAIN, FD, \ + 0, _IO_pos_BAD, 0, 0, { 0 }, 0, _IO_pos_BAD, \ +- NULL, WDP, 0 } ++ NULL, WDP, NULL } + # endif + #endif + diff --git a/glibc-RHEL-119409-3.patch b/glibc-RHEL-119409-3.patch new file mode 100644 index 0000000..f281289 --- /dev/null +++ b/glibc-RHEL-119409-3.patch @@ -0,0 +1,22 @@ +commit cfdd9e7aa45cdc575df237e2d2eee3219a06829b +Author: Siddhesh Poyarekar +Date: Tue Dec 17 17:36:36 2024 -0500 + + libio: Fix last NULL-as-0 issue in libioP.h + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Maciej W. Rozycki + +diff --git a/libio/libioP.h b/libio/libioP.h +index 70e2bdfc9df426ca..ad45579e138ca10a 100644 +--- a/libio/libioP.h ++++ b/libio/libioP.h +@@ -933,7 +933,7 @@ extern int _IO_vscanf (const char *, va_list) __THROW; + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ + NULL, NULL, (FILE *) CHAIN, FD, \ +- 0, _IO_pos_BAD, 0, 0, { 0 }, 0, _IO_pos_BAD, \ ++ 0, _IO_pos_BAD, 0, 0, { 0 }, NULL, _IO_pos_BAD, \ + NULL, WDP, NULL } + # endif + #endif diff --git a/glibc-RHEL-119409-4.patch b/glibc-RHEL-119409-4.patch new file mode 100644 index 0000000..de70dfb --- /dev/null +++ b/glibc-RHEL-119409-4.patch @@ -0,0 +1,404 @@ +commit ae5062201d7e9d18fe88bff4bc71088374c394fb +Author: Siddhesh Poyarekar +Date: Thu Nov 7 11:16:04 2024 -0500 + + ungetc: Guarantee single char pushback + + The C standard requires that ungetc guarantees at least one pushback, + but the malloc call to allocate the pushback buffer could fail, thus + violating that requirement. Fix this by adding a single byte pushback + buffer in the FILE struct that the pushback can fall back to if malloc + fails. + + The side-effect is that if the initial malloc fails and the 1-byte + fallback buffer is used, future resizing (if it succeeds) will be + 2-bytes, 4-bytes and so on, which is suboptimal but it's after a malloc + failure, so maybe even desirable. + + A future optimization here could be to have the pushback code use the + single byte buffer first and only fall back to malloc for subsequent + calls. + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Maciej W. Rozycki + +diff --git a/libio/bits/types/struct_FILE.h b/libio/bits/types/struct_FILE.h +index 7cdaae86f83ff4ef..47e5e1f29fa0aa50 100644 +--- a/libio/bits/types/struct_FILE.h ++++ b/libio/bits/types/struct_FILE.h +@@ -1,4 +1,5 @@ + /* Copyright (C) 1991-2024 Free Software Foundation, Inc. ++ Copyright The GNU Toolchain Authors. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -70,7 +71,9 @@ struct _IO_FILE + struct _IO_FILE *_chain; + + int _fileno; +- int _flags2; ++ int _flags2:24; ++ /* Fallback buffer to use when malloc fails to allocate one. */ ++ char _short_backupbuf[1]; + __off_t _old_offset; /* This used to be _offset but it's too small. */ + + /* 1+column number of pbase(); 0 is unknown. */ +diff --git a/libio/fileops.c b/libio/fileops.c +index 759d737ec7eb0e38..d49e489f55d3a283 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -1,4 +1,5 @@ + /* Copyright (C) 1993-2024 Free Software Foundation, Inc. ++ Copyright The GNU Toolchain Authors. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -480,7 +481,7 @@ _IO_new_file_underflow (FILE *fp) + /* Maybe we already have a push back pointer. */ + if (fp->_IO_save_base != NULL) + { +- free (fp->_IO_save_base); ++ _IO_free_backup_buf (fp, fp->_IO_save_base); + fp->_flags &= ~_IO_IN_BACKUP; + } + _IO_doallocbuf (fp); +@@ -932,7 +933,7 @@ _IO_new_file_seekoff (FILE *fp, off64_t offset, int dir, int mode) + /* It could be that we already have a pushback buffer. */ + if (fp->_IO_read_base != NULL) + { +- free (fp->_IO_read_base); ++ _IO_free_backup_buf (fp, fp->_IO_read_base); + fp->_flags &= ~_IO_IN_BACKUP; + } + _IO_doallocbuf (fp); +@@ -1282,7 +1283,7 @@ _IO_file_xsgetn (FILE *fp, void *data, size_t n) + /* Maybe we already have a push back pointer. */ + if (fp->_IO_save_base != NULL) + { +- free (fp->_IO_save_base); ++ _IO_free_backup_buf (fp, fp->_IO_save_base); + fp->_flags &= ~_IO_IN_BACKUP; + } + _IO_doallocbuf (fp); +diff --git a/libio/genops.c b/libio/genops.c +index c1db57e6b8bc25ef..6b2f508f853b8969 100644 +--- a/libio/genops.c ++++ b/libio/genops.c +@@ -1,4 +1,5 @@ + /* Copyright (C) 1993-2024 Free Software Foundation, Inc. ++ Copyright The GNU Toolchain Authors. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -187,7 +188,7 @@ _IO_free_backup_area (FILE *fp) + { + if (_IO_in_backup (fp)) + _IO_switch_to_main_get_area (fp); /* Just in case. */ +- free (fp->_IO_save_base); ++ _IO_free_backup_buf (fp, fp->_IO_save_base); + fp->_IO_save_base = NULL; + fp->_IO_save_end = NULL; + fp->_IO_backup_base = NULL; +@@ -235,7 +236,7 @@ save_for_backup (FILE *fp, char *end_p) + memcpy (new_buffer + avail, + fp->_IO_read_base + least_mark, + needed_size); +- free (fp->_IO_save_base); ++ _IO_free_backup_buf (fp, fp->_IO_save_base); + fp->_IO_save_base = new_buffer; + fp->_IO_save_end = new_buffer + avail + needed_size; + } +@@ -611,7 +612,7 @@ _IO_default_finish (FILE *fp, int dummy) + + if (fp->_IO_save_base) + { +- free (fp->_IO_save_base); ++ _IO_free_backup_buf (fp, fp->_IO_save_base); + fp->_IO_save_base = NULL; + } + +@@ -973,11 +974,14 @@ _IO_default_pbackfail (FILE *fp, int c) + else if (!_IO_have_backup (fp)) + { + /* No backup buffer: allocate one. */ +- /* Use nshort buffer, if unused? (probably not) FIXME */ + int backup_size = 128; + char *bbuf = (char *) malloc (backup_size); + if (bbuf == NULL) +- return EOF; ++ { ++ /* Guarantee a 1-char pushback. */ ++ bbuf = fp->_short_backupbuf; ++ backup_size = 1; ++ } + fp->_IO_save_base = bbuf; + fp->_IO_save_end = fp->_IO_save_base + backup_size; + fp->_IO_backup_base = fp->_IO_save_end; +@@ -997,7 +1001,7 @@ _IO_default_pbackfail (FILE *fp, int c) + return EOF; + memcpy (new_buf + (new_size - old_size), fp->_IO_read_base, + old_size); +- free (fp->_IO_read_base); ++ _IO_free_backup_buf (fp, fp->_IO_read_base); + _IO_setg (fp, new_buf, new_buf + (new_size - old_size), + new_buf + new_size); + fp->_IO_backup_base = fp->_IO_read_ptr; +diff --git a/libio/libioP.h b/libio/libioP.h +index ad45579e138ca10a..714abbd549500b58 100644 +--- a/libio/libioP.h ++++ b/libio/libioP.h +@@ -1,4 +1,5 @@ + /* Copyright (C) 1993-2024 Free Software Foundation, Inc. ++ Copyright The GNU Toolchain Authors. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -911,30 +912,30 @@ extern int _IO_vscanf (const char *, va_list) __THROW; + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ +- NULL, NULL, (FILE *) CHAIN, FD, \ +- 0, _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock } ++ NULL, NULL, (FILE *) CHAIN, FD, 0, { 0 }, \ ++ _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock } + # else + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ +- NULL, NULL, (FILE *) CHAIN, FD, \ +- 0, _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock, _IO_pos_BAD,\ +- NULL, WDP, NULL } ++ NULL, NULL, (FILE *) CHAIN, FD, 0, { 0 }, \ ++ _IO_pos_BAD, 0, 0, { 0 }, &_IO_stdfile_##FD##_lock, \ ++ _IO_pos_BAD, NULL, WDP, NULL } + # endif + #else + # ifdef _IO_USE_OLD_IO_FILE + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ +- NULL, NULL, (FILE *) CHAIN, FD, \ +- 0, _IO_pos_BAD } ++ NULL, NULL, (FILE *) CHAIN, FD, 0, { 0 }, \ ++ _IO_pos_BAD } + # else + # define FILEBUF_LITERAL(CHAIN, FLAGS, FD, WDP) \ + { _IO_MAGIC+_IO_LINKED+_IO_IS_FILEBUF+FLAGS, \ + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, \ +- NULL, NULL, (FILE *) CHAIN, FD, \ +- 0, _IO_pos_BAD, 0, 0, { 0 }, NULL, _IO_pos_BAD, \ +- NULL, WDP, NULL } ++ NULL, NULL, (FILE *) CHAIN, FD, 0, { 0 }, \ ++ _IO_pos_BAD, 0, 0, { 0 }, NULL, \ ++ _IO_pos_BAD, NULL, WDP, NULL } + # endif + #endif + +@@ -1040,6 +1041,15 @@ IO_validate_vtable (const struct _IO_jump_t *vtable) + return vtable; + } + ++/* In case of an allocation failure, we resort to using the fixed buffer ++ _SHORT_BACKUPBUF. Free PTR unless it points to that buffer. */ ++static __always_inline void ++_IO_free_backup_buf (FILE *fp, char *ptr) ++{ ++ if (ptr != fp->_short_backupbuf) ++ free (ptr); ++} ++ + /* Character set conversion. */ + + enum __codecvt_result +diff --git a/libio/oldfileops.c b/libio/oldfileops.c +index 97148dba9b1240e6..7d8863bd7af834e2 100644 +--- a/libio/oldfileops.c ++++ b/libio/oldfileops.c +@@ -1,4 +1,5 @@ + /* Copyright (C) 1993-2024 Free Software Foundation, Inc. ++ Copyright The GNU Toolchain Authors. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -309,7 +310,7 @@ _IO_old_file_underflow (FILE *fp) + /* Maybe we already have a push back pointer. */ + if (fp->_IO_save_base != NULL) + { +- free (fp->_IO_save_base); ++ _IO_free_backup_buf (fp, fp->_IO_save_base); + fp->_flags &= ~_IO_IN_BACKUP; + } + _IO_doallocbuf (fp); +@@ -462,7 +463,7 @@ _IO_old_file_seekoff (FILE *fp, off64_t offset, int dir, int mode) + /* It could be that we already have a pushback buffer. */ + if (fp->_IO_read_base != NULL) + { +- free (fp->_IO_read_base); ++ _IO_free_backup_buf (fp, fp->_IO_read_base); + fp->_flags &= ~_IO_IN_BACKUP; + } + _IO_doallocbuf (fp); +diff --git a/libio/wfileops.c b/libio/wfileops.c +index e747d3ed73a6c08c..0affebbd76c0fd9b 100644 +--- a/libio/wfileops.c ++++ b/libio/wfileops.c +@@ -1,4 +1,5 @@ + /* Copyright (C) 1993-2024 Free Software Foundation, Inc. ++ Copyright The GNU Toolchain Authors. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or +@@ -175,7 +176,7 @@ _IO_wfile_underflow (FILE *fp) + /* Maybe we already have a push back pointer. */ + if (fp->_IO_save_base != NULL) + { +- free (fp->_IO_save_base); ++ _IO_free_backup_buf (fp, fp->_IO_save_base); + fp->_flags &= ~_IO_IN_BACKUP; + } + _IO_doallocbuf (fp); +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 98fcd8a38523b728..2a842488fb69541b 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -1,4 +1,5 @@ + # Copyright (C) 1991-2024 Free Software Foundation, Inc. ++# Copyright The GNU Toolchain Authors. + # This file is part of the GNU C Library. + + # The GNU C Library is free software; you can redistribute it and/or +@@ -260,6 +261,7 @@ tests := \ + tst-tmpnam \ + tst-ungetc \ + tst-ungetc-leak \ ++ tst-ungetc-nomem \ + tst-unlockedio \ + tst-vfprintf-mbs-prec \ + tst-vfprintf-user-type \ +diff --git a/stdio-common/tst-ungetc-nomem.c b/stdio-common/tst-ungetc-nomem.c +new file mode 100644 +index 0000000000000000..0872de60506e970e +--- /dev/null ++++ b/stdio-common/tst-ungetc-nomem.c +@@ -0,0 +1,121 @@ ++/* Test ungetc behavior with malloc failures. ++ Copyright The GNU Toolchain Authors. ++ 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static volatile bool fail = false; ++ ++/* Induce a malloc failure whenever FAIL is set; we use the __LIBC_MALLOC entry ++ point to avoid the other alternative, which is RTLD_NEXT. */ ++void * ++malloc (size_t sz) ++{ ++ if (fail) ++ return NULL; ++ ++ static void *(*real_malloc) (size_t); ++ ++ if (real_malloc == NULL) ++ real_malloc = dlsym (RTLD_NEXT, "malloc"); ++ ++ return real_malloc (sz); ++} ++ ++static int ++do_test (void) ++{ ++ char *filename = NULL; ++ struct stat props = {}; ++ size_t bufsz = 0; ++ ++ create_temp_file ("tst-ungetc-nomem.", &filename); ++ if (stat (filename, &props) != 0) ++ FAIL_EXIT1 ("Could not get file status: %m\n"); ++ ++ FILE *fp = fopen (filename, "w"); ++ ++ /* The libio buffer sizes are the same as block size. This is to ensure that ++ the test runs at the read underflow boundary as well. */ ++ bufsz = props.st_blksize + 2; ++ ++ char *buf = xmalloc (bufsz); ++ memset (buf, 'a', bufsz); ++ ++ if (fwrite (buf, sizeof (char), bufsz, fp) != bufsz) ++ FAIL_EXIT1 ("fwrite failed: %m\n"); ++ xfclose (fp); ++ ++ /* Begin test. */ ++ fp = xfopen (filename, "r"); ++ ++ while (!feof (fp)) ++ { ++ /* Reset the pushback buffer state. */ ++ fseek (fp, 0, SEEK_CUR); ++ ++ fail = true; ++ /* 1: First ungetc should always succeed, as the standard requires. */ ++ TEST_COMPARE (ungetc ('b', fp), 'b'); ++ ++ /* 2: This will result in resizing, which should fail. */ ++ TEST_COMPARE (ungetc ('c', fp), EOF); ++ ++ /* 3: Now allow the resizing, which should immediately fill up the buffer ++ too, since this allocates only double the current buffer, i.e. ++ 2-bytes. */ ++ fail = false; ++ TEST_COMPARE (ungetc ('d', fp), 'd'); ++ ++ /* 4: And fail again because this again forces an alloc, which fails. */ ++ fail = true; ++ TEST_COMPARE (ungetc ('e', fp), EOF); ++ ++ /* 5: Enable allocations again so that we now get a 4-byte buffer. Now ++ both calls should work. */ ++ fail = false; ++ TEST_COMPARE (ungetc ('f', fp), 'f'); ++ fail = true; ++ TEST_COMPARE (ungetc ('g', fp), 'g'); ++ ++ /* Drain out the x's. */ ++ TEST_COMPARE (fgetc (fp), 'g'); ++ TEST_COMPARE (fgetc (fp), 'f'); ++ TEST_COMPARE (fgetc (fp), 'd'); ++ ++ /* Finally, drain out the first char we had pushed back, followed by one ++ more char from the stream, if present. */ ++ TEST_COMPARE (fgetc (fp), 'b'); ++ char c = fgetc (fp); ++ if (!feof (fp)) ++ TEST_COMPARE (c, 'a'); ++ } ++ ++ /* Final sanity check before we're done. */ ++ TEST_COMPARE (ferror (fp), 0); ++ xfclose (fp); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119409-5.patch b/glibc-RHEL-119409-5.patch new file mode 100644 index 0000000..1ce6d10 --- /dev/null +++ b/glibc-RHEL-119409-5.patch @@ -0,0 +1,26 @@ +Downstream-only patch to restore the extern ABI for functions +like fprintf that use the FILE * type. Rebuilds of applications +receive ABI change reports because of this installed header change +(indirect subtype change in libabigail terms), and given that +this part of struct _IO_FILE is strictly internal, there is no +need to expose this change to installed headers. + +diff --git a/libio/bits/types/struct_FILE.h b/libio/bits/types/struct_FILE.h +index 47e5e1f29fa0aa50..e5403039941f58c9 100644 +--- a/libio/bits/types/struct_FILE.h ++++ b/libio/bits/types/struct_FILE.h +@@ -71,9 +71,14 @@ struct _IO_FILE + struct _IO_FILE *_chain; + + int _fileno; ++#ifdef _LIBC + int _flags2:24; + /* Fallback buffer to use when malloc fails to allocate one. */ + char _short_backupbuf[1]; ++#else ++ /* Legacy ABI for ABI checking outside of glibc. */ ++ int _flags2; ++#endif + __off_t _old_offset; /* This used to be _offset but it's too small. */ + + /* 1+column number of pbase(); 0 is unknown. */ diff --git a/glibc-RHEL-119418.patch b/glibc-RHEL-119418.patch new file mode 100644 index 0000000..50df8f3 --- /dev/null +++ b/glibc-RHEL-119418.patch @@ -0,0 +1,332 @@ +commit d7f587398cfda79a48cde94a38c4eee660781d30 +Author: Joseph Myers +Date: Thu Dec 19 18:56:04 2024 +0000 + + Add further DSO dependency sorting tests + + The current DSO dependency sorting tests are for a limited number of + specific cases, including some from particular bug reports. + + Add tests that systematically cover all possible DAGs for an + executable and the shared libraries it depends on, directly or + indirectly, up to four objects (an executable and three shared + libraries). (For this kind of DAG - ones with a single source vertex + from which all others are reachable, and an ordering on the edges from + each vertex - there are 57 DAGs on four vertices, 3399 on five + vertices and 1026944 on six vertices; see + https://arxiv.org/pdf/2303.14710 for more details on this enumeration. + I've tested that the 3399 cases with five vertices do all pass if + enabled.) + + These tests are replicating the sorting logic from the dynamic linker + (thereby, for example, asserting that it doesn't accidentally change); + I'm not claiming that the logic in the dynamic linker is in some + abstract sense optimal. Note that these tests do illustrate how in + some cases the two sorting algorithms produce different results for a + DAG (I think all the existing tests for such differences are ones + involving cycles, and the motivation for the new algorithm was also to + improve the handling of cycles): + + tst-dso-ordering-all4-44: a->[bc];{}->[cba] + output(glibc.rtld.dynamic_sort=1): c>b>a>{}c>a>{}[abc] + output: c>b>a>{}[cb];{}->[cba] + output: c>b>a>{} $@ ++ ++$(objpfx)dso-sort-tests-all3.def: dso-sort-tests-all.py ++ $(PYTHON) $< 3 > $@ ++ ++$(objpfx)dso-sort-tests-all4.def: dso-sort-tests-all.py ++ $(PYTHON) $< 4 > $@ ++ ++$(eval $(call include_dsosort_tests_objpfx,dso-sort-tests-all2.def)) ++$(eval $(call include_dsosort_tests_objpfx,dso-sort-tests-all3.def)) ++$(eval $(call include_dsosort_tests_objpfx,dso-sort-tests-all4.def)) ++ + # BZ15311 is intentionally underlinked. + LDFLAGS-tst-bz15311-b.so += -Wl,-z,lazy + LDFLAGS-tst-bz15311-c.so += -Wl,-z,lazy +diff --git a/elf/dso-sort-tests-all.py b/elf/dso-sort-tests-all.py +new file mode 100755 +index 0000000000000000..703e7d2eddae3482 +--- /dev/null ++++ b/elf/dso-sort-tests-all.py +@@ -0,0 +1,218 @@ ++#!/usr/bin/env python3 ++# Generate all DAGs for dependency ordering of a given number of objects. ++# Copyright (C) 2024 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 ++# . ++ ++import argparse ++import sys ++ ++ ++def print_dag(state, dag, postorder, postorder_new): ++ """Print a DAG in the form used by dso-ordering-test.py.""" ++ out = [] ++ for i in range(len(dag)): ++ if dag[i]: ++ if i == len(dag) - 1: ++ name = '{}' ++ else: ++ name = chr(ord('a') + len(dag) - 2 - i) ++ this_deps = [chr(ord('a') + len(dag) - 2 - j) for j in dag[i]] ++ this_out = ('[%s]' % (''.join(this_deps)) ++ if len(this_deps) > 1 ++ else this_deps[0]) ++ out.append('%s->%s' % (name, this_out)) ++ output_old = ( ++ '%s>{}<%s' % ++ ('>'.join(chr(ord('a') + i) for i in range(len(dag) - 2, -1, -1)), ++ '<'.join(chr(ord('a') + i) for i in range(0, len(dag) - 1)))) ++ if postorder == postorder_new: ++ print('tst-dso-ordering-all%d-%d: %s\n' ++ 'output: %s\n' ++ % (len(dag), state['num_dags'], ';'.join(out), output_old)) ++ else: ++ names_new = [chr(ord('a') + len(dag) - 2 - x) ++ for x in postorder_new[:-1]] ++ output_new = '%s>{}<%s' % ('>'.join(names_new), ++ '<'.join(reversed(names_new))) ++ print('tst-dso-ordering-all%d-%d: %s\n' ++ 'output(glibc.rtld.dynamic_sort=1): %s\n' ++ 'output(glibc.rtld.dynamic_sort=2): %s\n' ++ % (len(dag), state['num_dags'], ';'.join(out), output_old, ++ output_new)) ++ state['num_dags'] += 1 ++ ++ ++def gen_postorder_old(dag, postorder): ++ """Generate a postorder traversal of the vertices of the given ++ DAG, in the particular choice of ordering that corresponds to how ++ the dynamic linker sorts constructor executions (old algorithm).""" ++ # First list all the vertices, breadth-first. ++ postorder.append(len(dag) - 1) ++ for i in range(len(dag)): ++ for v in dag[postorder[i]]: ++ if v not in postorder: ++ postorder.append(v) ++ # Now move any vertex with an edge from a later one to just after ++ # the last vertex with an edge to it (emulating the older dynamic ++ # linker algorithm). ++ changed = True ++ while changed: ++ changed = False ++ i = 0 ++ while i < len(dag): ++ move_past = None ++ for k in range(len(dag) - 1, i, -1): ++ if postorder[i] in dag[postorder[k]]: ++ move_past = k ++ break ++ if move_past is None: ++ i += 1 ++ else: ++ changed = True ++ postorder[i:k+1] = postorder[i+1:k+1] + [postorder[i]] ++ # Finally, reverse the list. ++ postorder.reverse() ++ ++ ++def gen_postorder_dfs(dag, postorder, v): ++ """Traverse the dependencies of a vertex as part of generating a ++ postorder traversal of the given DAG (new algorithm).""" ++ if v in postorder: ++ return ++ for d in dag[v]: ++ gen_postorder_dfs(dag, postorder, d) ++ postorder.append(v) ++ ++ ++def gen_postorder_new(dag, postorder): ++ """Generate a postorder traversal of the vertices of the given ++ DAG, in the particular choice of ordering that corresponds to how ++ the dynamic linker sorts constructor executions (new algorithm).""" ++ # First list all the vertices, breadth-first. ++ tmp = [] ++ tmp.append(len(dag) - 1) ++ for i in range(len(dag)): ++ for v in dag[tmp[i]]: ++ if v not in tmp: ++ tmp.append(v) ++ # Starting at the end of the breadth-first list, do depth-first ++ # traversal of dependencies to add to the final ordering. ++ for v in reversed(tmp): ++ gen_postorder_dfs(dag, postorder, v) ++ ++ ++def gen_orderings_rec_sub(state, dag, num_done, num_swaps_done): ++ """Generate possible orderings for the edges out from each vertex ++ of a DAG and test whether a postorder traversal yields the ++ vertices in order, where orderings have already been generated for ++ some number of vertices and some number of initial edges have been ++ chosen in the ordering for the next vertex.""" ++ if num_swaps_done >= len(dag[num_done]) - 1: ++ gen_orderings_rec(state, dag, num_done + 1) ++ else: ++ for i in range(num_swaps_done, len(dag[num_done])): ++ ndag = dag ++ if i != num_swaps_done: ++ ndag = ndag.copy() ++ ndag[num_done] = ndag[num_done].copy() ++ first = ndag[num_done][num_swaps_done] ++ second = ndag[num_done][i] ++ ndag[num_done][i] = first ++ ndag[num_done][num_swaps_done] = second ++ gen_orderings_rec_sub(state, ndag, num_done, num_swaps_done + 1) ++ ++def gen_orderings_rec(state, dag, num_done): ++ """Generate possible orderings for the edges out from each vertex ++ of a DAG and test whether a postorder traversal yields the ++ vertices in order, where orderings have already been generated for ++ some number of vertices.""" ++ if num_done == len(dag): ++ postorder = [] ++ gen_postorder_old(dag, postorder) ++ if postorder == sorted(postorder): ++ postorder_new = [] ++ gen_postorder_new(dag, postorder_new) ++ print_dag(state, dag, postorder, postorder_new) ++ else: ++ gen_orderings_rec_sub(state, dag, num_done, 0) ++ ++ ++def gen_orderings(state, dag): ++ """Generate possible orderings for the edges out from each vertex ++ of a DAG and test whether a postorder traversal yields the ++ vertices in order.""" ++ gen_orderings_rec(state, dag, 0) ++ ++ ++def gen_dags_rec_sub(state, partial_dag, num_vertices, num_done_last): ++ """Generate DAGs, where a partial DAG for an initial subsequence ++ of the vertices, and partial information about edges from the last ++ vertex, are passed in.""" ++ if num_done_last == len(partial_dag) - 1: ++ gen_dags_rec(state, partial_dag, num_vertices) ++ else: ++ # Recurse with an edge to vertex num_done_last. ++ new_dag = partial_dag.copy() ++ new_dag[-1] = new_dag[-1].copy() ++ new_dag[-1].append(num_done_last) ++ gen_dags_rec_sub(state, new_dag, num_vertices, num_done_last + 1) ++ # Recurse without an edge to vertex num_done_last, unless this is ++ # the last vertex and num_done_last is not otherwise reachable. ++ can_recurse_without = len(partial_dag) < num_vertices ++ if not can_recurse_without: ++ for i in range(num_done_last + 1, len(partial_dag) - 1): ++ if num_done_last in partial_dag[i]: ++ can_recurse_without = True ++ break ++ if can_recurse_without: ++ gen_dags_rec_sub(state, partial_dag, num_vertices, ++ num_done_last + 1) ++ ++ ++def gen_dags_rec(state, partial_dag, num_vertices): ++ """Generate DAGs, where a partial DAG for an initial subsequence ++ of the vertices is passed in.""" ++ if len(partial_dag) == num_vertices: ++ gen_orderings(state, partial_dag) ++ else: ++ partial_dag = partial_dag.copy() ++ partial_dag.append([]) ++ gen_dags_rec_sub(state, partial_dag, num_vertices, 0) ++ ++ ++def gen_dags(state, num_vertices): ++ """Generate DAGs with the given number of vertices, last vertex a ++ distinguished root vertex from which all the others can be ++ reached, order of edges from each vertex considered significant, ++ such that a postorder traversal (corresponding to the order in ++ which DSO dependency constructors are executed) yields the ++ vertices in order.""" ++ gen_dags_rec(state, [[]], num_vertices) ++ ++ ++def main(argv): ++ """The main entry point.""" ++ parser = argparse.ArgumentParser( ++ description='Generate DAGs to test DSO dependency ordering.') ++ parser.add_argument('num_objects', help='number of objects in DAG') ++ print('tunable_option: glibc.rtld.dynamic_sort=1\n' ++ 'tunable_option: glibc.rtld.dynamic_sort=2\n') ++ gen_dags({'num_dags': 0}, int(parser.parse_args(argv).num_objects)) ++ ++ ++if __name__ == '__main__': ++ main(sys.argv[1:]) diff --git a/glibc-RHEL-119419.patch b/glibc-RHEL-119419.patch new file mode 100644 index 0000000..3aa9a4e --- /dev/null +++ b/glibc-RHEL-119419.patch @@ -0,0 +1,89 @@ +commit 70d083630563831e7069ad412cd3ab0b33638e92 +Author: Florian Weimer +Date: Thu Dec 19 20:56:44 2024 +0100 + + Linux: Accept null arguments for utimensat pathname + + This matches kernel behavior. With this change, it is possible + to use utimensat as a replacement for the futimens interface, + similar to what glibc does internally. + + Reviewed-by: Paul Eggert + +diff --git a/io/sys/stat.h b/io/sys/stat.h +index 0e4edb483d..dd96b88d0f 100644 +--- a/io/sys/stat.h ++++ b/io/sys/stat.h +@@ -433,13 +433,13 @@ extern int mkfifoat (int __fd, const char *__path, __mode_t __mode) + extern int utimensat (int __fd, const char *__path, + const struct timespec __times[2], + int __flags) +- __THROW __nonnull ((2)); ++ __THROW; + # else + # ifdef __REDIRECT_NTH + extern int __REDIRECT_NTH (utimensat, (int fd, const char *__path, + const struct timespec __times[2], + int flags), +- __utimensat64) __nonnull ((2)); ++ __utimensat64); + # else + # define utimensat __utimensat64 + # endif +diff --git a/io/tst-utimensat.c b/io/tst-utimensat.c +index 2a756d7b07..43786817b5 100644 +--- a/io/tst-utimensat.c ++++ b/io/tst-utimensat.c +@@ -39,6 +39,38 @@ test_utimesat_helper (const char *testfile, int fd, const char *testlink, + TEST_COMPARE (st.stx_mtime.tv_sec, ts[1].tv_sec); + } + ++ /* Alter the timestamp using a NULL path. */ ++ { ++ struct timespec ts1[2] = {ts[0], ts[1]}; ++ ts1[0].tv_sec ^= 1; ++ ts1[1].tv_sec ^= 1; ++ ++ TEST_VERIFY_EXIT (utimensat (fd, NULL, ts1, 0) == 0); ++ ++ struct statx st; ++ xstatx (fd, "", AT_EMPTY_PATH, STATX_BASIC_STATS, &st); ++ ++ /* Check if seconds for atime match */ ++ TEST_COMPARE (st.stx_atime.tv_sec, ts[0].tv_sec ^ 1); ++ ++ /* Check if seconds for mtime match */ ++ TEST_COMPARE (st.stx_mtime.tv_sec, ts[1].tv_sec ^ 1); ++ } ++ ++ /* And switch it back using a NULL path. */ ++ { ++ TEST_VERIFY_EXIT (utimensat (fd, NULL, ts, 0) == 0); ++ ++ struct statx st; ++ xstatx (fd, "", AT_EMPTY_PATH, STATX_BASIC_STATS, &st); ++ ++ /* Check if seconds for atime match */ ++ TEST_COMPARE (st.stx_atime.tv_sec, ts[0].tv_sec); ++ ++ /* Check if seconds for mtime match */ ++ TEST_COMPARE (st.stx_mtime.tv_sec, ts[1].tv_sec); ++ } ++ + { + struct statx stfile_orig; + xstatx (AT_FDCWD, testfile, AT_SYMLINK_NOFOLLOW, STATX_BASIC_STATS, +diff --git a/sysdeps/unix/sysv/linux/utimensat.c b/sysdeps/unix/sysv/linux/utimensat.c +index 991897f50d..f3ba1aa647 100644 +--- a/sysdeps/unix/sysv/linux/utimensat.c ++++ b/sysdeps/unix/sysv/linux/utimensat.c +@@ -75,9 +75,6 @@ int + __utimensat64 (int fd, const char *file, const struct __timespec64 tsp64[2], + int flags) + { +- if (file == NULL) +- return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL); +- + return __utimensat64_helper (fd, file, &tsp64[0], flags); + } + diff --git a/glibc-RHEL-119422-1.patch b/glibc-RHEL-119422-1.patch new file mode 100644 index 0000000..6e8de49 --- /dev/null +++ b/glibc-RHEL-119422-1.patch @@ -0,0 +1,255 @@ +commit e79e5c4899e82eff1032b1f8e530234c8fcbd8b9 +Author: DJ Delorie +Date: Thu Nov 14 15:12:57 2024 -0500 + + assert: ensure posix compliance, add tests for such + + Fix assert.c so that even the fallback + case conforms to POSIX, although not exactly the same as + the default case so a test can tell the difference. + + Add a test that verifies that abort is called, and that the + message printed to stderr has all the info that POSIX requires. + Verify this even when malloc isn't usable. + + Reviewed-by: Paul Eggert + +Conflicts: + assert/Makefile + context + +diff --git a/assert/Makefile b/assert/Makefile +index 24a9bdb96306ca08..85358fad51367b49 100644 +--- a/assert/Makefile ++++ b/assert/Makefile +@@ -39,6 +39,7 @@ tests := \ + tst-assert-c++ \ + tst-assert-g++ \ + tst-assert-sa-2025-0001 \ ++ test-assert-2 \ + # tests + + ifeq ($(have-cxx-thread_local),yes) +diff --git a/assert/assert.c b/assert/assert.c +index 989126c7e5b6b265..6002cc953cdb2d39 100644 +--- a/assert/assert.c ++++ b/assert/assert.c +@@ -26,6 +26,8 @@ + #include + #include + #include ++#include ++#include + + + extern const char *__progname; +@@ -85,8 +87,35 @@ __assert_fail_base (const char *fmt, const char *assertion, const char *file, + else + { + /* At least print a minimal message. */ +- static const char errstr[] = "Unexpected error.\n"; +- __libc_write (STDERR_FILENO, errstr, sizeof (errstr) - 1); ++ char linebuf[INT_STRLEN_BOUND (int) + sizeof ":: "]; ++ struct iovec v[9]; ++ int i = 0; ++ ++#define WS(s) (v[i].iov_len = strlen (v[i].iov_base = (void *) (s)), i++) ++ ++ if (__progname) ++ { ++ WS (__progname); ++ WS (": "); ++ } ++ ++ WS (file); ++ v[i++] = (struct iovec) {.iov_base = linebuf, ++ .iov_len = sprintf (linebuf, ":%d: ", line)}; ++ ++ if (function) ++ { ++ WS (function); ++ WS (": "); ++ } ++ ++ WS ("Assertion `"); ++ WS (assertion); ++ /* We omit the '.' here so that the assert tests can tell when ++ this code path is taken. */ ++ WS ("' failed\n"); ++ ++ (void) writev (STDERR_FILENO, v, i); + } + + abort (); +diff --git a/assert/test-assert-2.c b/assert/test-assert-2.c +new file mode 100644 +index 0000000000000000..99f8f683e87a0c64 +--- /dev/null ++++ b/assert/test-assert-2.c +@@ -0,0 +1,166 @@ ++/* Test assert's compliance with POSIX requirements. ++ Copyright (C) 2024 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 ++ . */ ++ ++/* This test verifies that a failed assertion acts in accordance with ++ the POSIX requirements, despite any internal failures. We do so by ++ calling test routines via fork() and monitoring their exit codes ++ and stderr, while possibly forcing internal functions (malloc) to ++ fail. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#undef NDEBUG ++#include ++ ++#include ++#include ++#include ++#include ++ ++/* We need to be able to make malloc() "fail" so that __asprintf ++ fails. */ ++ ++void * (*next_malloc)(size_t sz) = 0; ++static volatile bool fail_malloc = 0; ++ ++void * ++malloc (size_t sz) ++{ ++ if (fail_malloc) ++ return NULL; ++ if (next_malloc == 0) ++ next_malloc = dlsym (RTLD_NEXT, "malloc"); ++ if (next_malloc == 0) ++ return NULL; ++ return next_malloc (sz); ++} ++ ++/* We can tell if abort() is called by looking for the custom return ++ value. */ ++ ++void ++abort_handler(int s) ++{ ++ _exit(5); ++} ++ ++static int do_lineno; ++static const char *do_funcname; ++ ++/* Hack to get the line of the assert. */ ++#define GET_INFO_1(l) \ ++ if (closure != NULL) \ ++ { \ ++ do_lineno = l; \ ++ do_funcname = __func__; \ ++ return; \ ++ } ++#define GET_INFO() GET_INFO_1(__LINE__+1) ++ ++/* These are the two test cases. */ ++ ++static void ++test_assert_normal (void *closure) ++{ ++ if (closure == NULL) ++ signal (SIGABRT, abort_handler); ++ ++ GET_INFO (); ++ assert (1 == 2); ++} ++ ++ ++static void ++test_assert_nomalloc (void *closure) ++{ ++ if (closure == NULL) ++ { ++ signal (SIGABRT, abort_handler); ++ fail_malloc = 1; ++ } ++ ++ GET_INFO (); ++ assert (1 == 2); ++} ++ ++static void ++check_posix (const char *buf, int rv, int line, ++ const char *funcname, const char *testarg) ++{ ++ /* POSIX requires that a failed assertion write a diagnostic to ++ stderr and call abort. The diagnostic must include the filename, ++ line number, and function where the assertion failed, along with ++ the text of the assert() argument. ++ */ ++ char linestr[100]; ++ ++ sprintf (linestr, "%d", line); ++ ++ /* If abort is called, our handler will return 5. */ ++ TEST_VERIFY (rv == 5); ++ ++ TEST_VERIFY (strstr (buf, __FILE__) != NULL); ++ TEST_VERIFY (strstr (buf, linestr) != NULL); ++ TEST_VERIFY (strstr (buf, funcname) != NULL); ++ TEST_VERIFY (strstr (buf, testarg) != NULL); ++ ++} ++ ++static void ++one_test (void (*func)(void *), int which_path) ++{ ++ struct support_capture_subprocess sp; ++ int rv; ++ ++ func (&do_lineno); ++ printf("running test for %s, line %d\n", do_funcname, do_lineno); ++ ++ sp = support_capture_subprocess (func, NULL); ++ rv = WEXITSTATUS (sp.status); ++ ++ check_posix (sp.err.buffer, rv, do_lineno, do_funcname, "1 == 2"); ++ ++ /* Look for intentional subtle differences in messages to verify ++ that the intended code path was taken. */ ++ switch (which_path) ++ { ++ case 0: ++ TEST_VERIFY (strstr (sp.err.buffer, "failed.\n") != NULL); ++ break; ++ case 1: ++ TEST_VERIFY (strstr (sp.err.buffer, "failed\n") != NULL); ++ break; ++ } ++ ++ support_capture_subprocess_free (&sp); ++} ++ ++static int ++do_test(void) ++{ ++ one_test (test_assert_normal, 0); ++ one_test (test_assert_nomalloc, 1); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119422-2.patch b/glibc-RHEL-119422-2.patch new file mode 100644 index 0000000..a740b14 --- /dev/null +++ b/glibc-RHEL-119422-2.patch @@ -0,0 +1,23 @@ +commit 3fb895ac88e99201573352b1abc18db4340ecede +Author: DJ Delorie +Date: Sat Dec 21 23:12:41 2024 -0500 + + assert: Use __writev in assert.c [BZ #32492] + + Replace writev with __writev in assert/assert.c. This fixes [BZ #32492]. + + Reviewed-by: H.J. Lu + +diff --git a/assert/assert.c b/assert/assert.c +index 6002cc953cdb2d39..1e9683cf0707b0d3 100644 +--- a/assert/assert.c ++++ b/assert/assert.c +@@ -119,7 +119,7 @@ __assert_fail_base (const char *fmt, const char *assertion, const char *file, + this code path is taken. */ + WS ("' failed\n"); + +- (void) writev (STDERR_FILENO, v, i); ++ (void) __writev (STDERR_FILENO, v, i); + } + + abort (); diff --git a/glibc-RHEL-119422-3.patch b/glibc-RHEL-119422-3.patch new file mode 100644 index 0000000..c1c5f9b --- /dev/null +++ b/glibc-RHEL-119422-3.patch @@ -0,0 +1,20 @@ +commit fd30525eadff6a4b2ac9478bdd6490d0c9c116d9 +Author: Samuel Thibault +Date: Sun Dec 22 23:33:27 2024 +0100 + + assert/test-assert-2.c: Include + + For _exit declaration. + +diff --git a/assert/test-assert-2.c b/assert/test-assert-2.c +index 99f8f683e87a0c64..3288609ab28701ed 100644 +--- a/assert/test-assert-2.c ++++ b/assert/test-assert-2.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + #undef NDEBUG + #include diff --git a/glibc-RHEL-119424-1.patch b/glibc-RHEL-119424-1.patch new file mode 100644 index 0000000..53a3d42 --- /dev/null +++ b/glibc-RHEL-119424-1.patch @@ -0,0 +1,349 @@ +commit e41aabcc93edd6c9a6acb15212b2783d8a7ec5a3 +Author: Siddhesh Poyarekar +Date: Mon Dec 16 08:14:09 2024 -0500 + + tests: Verify inheritance of cpu affinity + + Add a couple of tests to verify that CPU affinity set using + sched_setaffinity and pthread_setaffinity_np are inherited by a child + process and child thread. + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Adhemerval Zanella + +diff --git a/nptl/Makefile b/nptl/Makefile +index 7139f76827b5ffe6..4d3271ba71f0bc65 100644 +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -312,6 +312,7 @@ tests = \ + tst-mutexpi11 \ + tst-mutexpi12 \ + tst-once5 \ ++ tst-pthread-affinity-inheritance \ + tst-pthread-attr-affinity \ + tst-pthread-attr-affinity-fail \ + tst-pthread-attr-sigmask \ +diff --git a/nptl/tst-pthread-affinity-inheritance.c b/nptl/tst-pthread-affinity-inheritance.c +new file mode 100644 +index 0000000000000000..c020530dd916dea1 +--- /dev/null ++++ b/nptl/tst-pthread-affinity-inheritance.c +@@ -0,0 +1,71 @@ ++/* CPU Affinity inheritance test - pthread_{gs}etaffinity_np. ++ Copyright The GNU Toolchain Authors. ++ 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 ++ . */ ++ ++/* See top level comment in nptl/tst-skeleton-affinity-inheritance.c for a ++ description of this test. */ ++#include ++#include ++#include ++#include ++#include ++ ++static void ++set_my_affinity (size_t size, const cpu_set_t *set) ++{ ++ int ret = pthread_setaffinity_np (pthread_self (), size, set); ++ ++ if (ret != 0) ++ FAIL ("pthread_setaffinity_np returned %d (%s)", ret, strerror (ret)); ++} ++ ++static void ++verify_my_affinity (int nproc, size_t size, const cpu_set_t *expected_set) ++{ ++ cpu_set_t *set = CPU_ALLOC (nproc); ++ cpu_set_t *xor_set = CPU_ALLOC (nproc); ++ ++ if (set == NULL || xor_set== NULL) ++ FAIL_EXIT1 ("verify_my_affinity: Failed to allocate cpuset: %m\n"); ++ ++ int ret = pthread_getaffinity_np (pthread_self (), size, set); ++ if (ret != 0) ++ FAIL ("pthread_getaffinity_np returned %d (%s)", ret, strerror (ret)); ++ ++ CPU_XOR_S (size, xor_set, expected_set, set); ++ ++ int cpucount = CPU_COUNT_S (size, xor_set); ++ ++ if (cpucount > 0) ++ { ++ FAIL ("Affinity mask not inherited, " ++ "following %d CPUs mismatched in the expected and actual sets: ", ++ cpucount); ++ for (int cur = 0; cur < nproc && cpucount >= 0; cur++) ++ if (CPU_ISSET_S (size, cur, xor_set)) ++ { ++ printf ("%d ", cur); ++ cpucount--; ++ } ++ printf ("\n"); ++ } ++ ++ CPU_FREE (set); ++ CPU_FREE (xor_set); ++} ++ ++#include "tst-skeleton-affinity-inheritance.c" +diff --git a/nptl/tst-skeleton-affinity-inheritance.c b/nptl/tst-skeleton-affinity-inheritance.c +new file mode 100644 +index 0000000000000000..6de6d9c9428a0c9d +--- /dev/null ++++ b/nptl/tst-skeleton-affinity-inheritance.c +@@ -0,0 +1,152 @@ ++/* CPU Affinity inheritance test - common infrastructure. ++ Copyright The GNU Toolchain Authors. ++ 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 ++ . */ ++ ++/* The general idea of this test is to verify that the set of CPUs assigned to ++ a task gets inherited by a child (thread or process) of that task. This is ++ a framework that is included by specific APIs for the test, e.g. ++ sched_getaffinity/sched_setaffinity and ++ pthread_setaffinity_np/pthread_getaffinity_np. This is a framework, actual ++ tests entry points are in nptl/tst-pthread-affinity-inheritance.c and ++ sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c. ++ ++ There are two levels to the test with two different CPU masks. The first ++ level verifies that the affinity set on the main process is inherited by its ++ children subprocess or thread. The second level verifies that a subprocess ++ or subthread passes on its affinity to their respective subprocess or ++ subthread. We set a slightly different mask in both levels to ensure that ++ they're both inherited. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++struct test_param ++{ ++ int nproc; ++ cpu_set_t *set; ++ size_t size; ++ bool entry; ++}; ++ ++void __attribute__((noinline)) ++set_cpu_mask (struct test_param *param, bool entry) ++{ ++ int cpus = param->nproc; ++ ++ /* Less CPUS for the first level, if that's possible. */ ++ if (entry && cpus > 1) ++ cpus--; ++ ++ CPU_ZERO_S (param->size, param->set); ++ while (cpus > 0) ++ CPU_SET_S (--cpus, param->size, param->set); ++ ++ if (CPU_COUNT_S (param->size, param->set) == 0) ++ FAIL_EXIT1 ("Failed to add any CPUs to the affinity set\n"); ++} ++ ++static void * ++child_test (void *arg) ++{ ++ struct test_param *param = arg; ++ ++ printf ("%d:%d child\n", getpid (), gettid ()); ++ verify_my_affinity (param->nproc, param->size, param->set); ++ return NULL; ++} ++ ++void * ++do_one_test (void *arg) ++{ ++ void *(*child) (void *) = NULL; ++ struct test_param *param = arg; ++ bool entry = param->entry; ++ ++ if (entry) ++ { ++ printf ("%d:%d Start test run\n", getpid (), gettid ()); ++ /* First level: Reenter as a subprocess and then as a subthread. */ ++ child = do_one_test; ++ set_cpu_mask (param, true); ++ set_my_affinity (param->size, param->set); ++ param->entry = false; ++ } ++ else ++ { ++ /* Verification for the first level. */ ++ verify_my_affinity (param->nproc, param->size, param->set); ++ ++ /* Launch the second level test, launching CHILD_TEST as a subprocess and ++ then as a subthread. Use a different mask to see if it gets ++ inherited. */ ++ child = child_test; ++ set_cpu_mask (param, false); ++ set_my_affinity (param->size, param->set); ++ } ++ ++ /* Verify that a child of a thread/process inherits the affinity mask. */ ++ printf ("%d:%d%sdo_one_test: fork\n", getpid (), gettid (), ++ entry ? " " : " "); ++ int pid = xfork (); ++ ++ if (pid == 0) ++ { ++ child (param); ++ return NULL; ++ } ++ ++ xwaitpid (pid, NULL, 0); ++ ++ /* Verify that a subthread of a thread/process inherits the affinity ++ mask. */ ++ printf ("%d:%d%sdo_one_test: thread\n", getpid (), gettid (), ++ entry ? " " : " "); ++ pthread_t t = xpthread_create (NULL, child, param); ++ xpthread_join (t); ++ ++ return NULL; ++} ++ ++static int ++do_test (void) ++{ ++ int num_cpus = get_nprocs (); ++ ++ struct test_param param = ++ { ++ .nproc = num_cpus, ++ .set = CPU_ALLOC (num_cpus), ++ .size = CPU_ALLOC_SIZE (num_cpus), ++ .entry = true, ++ }; ++ ++ if (param.set == NULL) ++ FAIL_EXIT1 ("error: CPU_ALLOC (%d) failed\n", num_cpus); ++ ++ do_one_test (¶m); ++ ++ CPU_FREE (param.set); ++ ++ return 0; ++} ++ ++#include +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index a4b692febb3e87d9..a28b15ea16bc5045 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -231,6 +231,7 @@ tests += \ + tst-process_mrelease \ + tst-quota \ + tst-rlimit-infinity \ ++ tst-sched-affinity-inheritance \ + tst-sched_setattr \ + tst-sched_setattr-thread \ + tst-scm_rights \ +diff --git a/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c b/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c +new file mode 100644 +index 0000000000000000..fe0297f743d55e2f +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c +@@ -0,0 +1,71 @@ ++/* CPU Affinity inheritance test - sched_{gs}etaffinity. ++ Copyright The GNU Toolchain Authors. ++ 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 ++ . */ ++ ++/* See top level comment in nptl/tst-skeleton-affinity-inheritance.c for a ++ description of this test. */ ++ ++#include ++#include ++#include ++#include ++ ++static void ++set_my_affinity (size_t size, const cpu_set_t *set) ++{ ++ int ret = sched_setaffinity (0, size, set); ++ ++ if (ret != 0) ++ FAIL ("sched_setaffinity returned %d (%s)", ret, strerror (ret)); ++} ++ ++static void ++verify_my_affinity (int nproc, size_t size, const cpu_set_t *expected_set) ++{ ++ cpu_set_t *set = CPU_ALLOC (nproc); ++ cpu_set_t *xor_set = CPU_ALLOC (nproc); ++ ++ if (set == NULL || xor_set== NULL) ++ FAIL_EXIT1 ("verify_my_affinity: Failed to allocate cpuset: %m\n"); ++ ++ int ret = sched_getaffinity (0, size, set); ++ if (ret != 0) ++ FAIL ("sched_getaffinity returned %d (%s)", ret, strerror (ret)); ++ ++ CPU_XOR_S (size, xor_set, expected_set, set); ++ ++ int cpucount = CPU_COUNT_S (size, xor_set); ++ ++ if (cpucount > 0) ++ { ++ FAIL ("Affinity mask not inherited, " ++ "following %d CPUs mismatched in the expected and actual sets:\n", ++ cpucount); ++ for (int cur = 0; cur < nproc && cpucount >= 0; cur++) ++ if (CPU_ISSET_S (size, cur, xor_set)) ++ { ++ printf ("%d ", cur); ++ cpucount--; ++ } ++ printf ("\n"); ++ } ++ ++ CPU_FREE (set); ++ CPU_FREE (xor_set); ++} ++ ++#include diff --git a/glibc-RHEL-119424-2.patch b/glibc-RHEL-119424-2.patch new file mode 100644 index 0000000..be715f9 --- /dev/null +++ b/glibc-RHEL-119424-2.patch @@ -0,0 +1,103 @@ +commit 09ea1afec75ed0d41cb0da27a9df1b8c3dd56ddc +Author: Stefan Liebler +Date: Fri Jan 10 12:55:50 2025 -0500 + + affinity-inheritance: Overallocate CPU sets + + Some kernels on S390 appear to return a CPU affinity mask based on + configured processors rather than the ones online. Overallocate the CPU + set to match that, but operate only on the ones online. + + Signed-off-by: Siddhesh Poyarekar + Co-authored-by: Siddhesh Poyarekar + +diff --git a/nptl/tst-pthread-affinity-inheritance.c b/nptl/tst-pthread-affinity-inheritance.c +index c020530dd916dea1..153fc904dfe14c9d 100644 +--- a/nptl/tst-pthread-affinity-inheritance.c ++++ b/nptl/tst-pthread-affinity-inheritance.c +@@ -34,10 +34,11 @@ set_my_affinity (size_t size, const cpu_set_t *set) + } + + static void +-verify_my_affinity (int nproc, size_t size, const cpu_set_t *expected_set) ++verify_my_affinity (int nproc, int nproc_configured, size_t size, ++ const cpu_set_t *expected_set) + { +- cpu_set_t *set = CPU_ALLOC (nproc); +- cpu_set_t *xor_set = CPU_ALLOC (nproc); ++ cpu_set_t *set = CPU_ALLOC (nproc_configured); ++ cpu_set_t *xor_set = CPU_ALLOC (nproc_configured); + + if (set == NULL || xor_set== NULL) + FAIL_EXIT1 ("verify_my_affinity: Failed to allocate cpuset: %m\n"); +diff --git a/nptl/tst-skeleton-affinity-inheritance.c b/nptl/tst-skeleton-affinity-inheritance.c +index 6de6d9c9428a0c9d..926f49622990e9e4 100644 +--- a/nptl/tst-skeleton-affinity-inheritance.c ++++ b/nptl/tst-skeleton-affinity-inheritance.c +@@ -42,6 +42,7 @@ + struct test_param + { + int nproc; ++ int nproc_configured; + cpu_set_t *set; + size_t size; + bool entry; +@@ -70,7 +71,8 @@ child_test (void *arg) + struct test_param *param = arg; + + printf ("%d:%d child\n", getpid (), gettid ()); +- verify_my_affinity (param->nproc, param->size, param->set); ++ verify_my_affinity (param->nproc, param->nproc_configured, param->size, ++ param->set); + return NULL; + } + +@@ -93,7 +95,8 @@ do_one_test (void *arg) + else + { + /* Verification for the first level. */ +- verify_my_affinity (param->nproc, param->size, param->set); ++ verify_my_affinity (param->nproc, param->nproc_configured, param->size, ++ param->set); + + /* Launch the second level test, launching CHILD_TEST as a subprocess and + then as a subthread. Use a different mask to see if it gets +@@ -129,13 +132,17 @@ do_one_test (void *arg) + static int + do_test (void) + { ++ /* Large enough in case the kernel decides to return the larger mask. This ++ seems to happen on some kernels for S390x. */ ++ int num_configured_cpus = get_nprocs_conf (); + int num_cpus = get_nprocs (); + + struct test_param param = + { + .nproc = num_cpus, +- .set = CPU_ALLOC (num_cpus), +- .size = CPU_ALLOC_SIZE (num_cpus), ++ .nproc_configured = num_configured_cpus, ++ .set = CPU_ALLOC (num_configured_cpus), ++ .size = CPU_ALLOC_SIZE (num_configured_cpus), + .entry = true, + }; + +diff --git a/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c b/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c +index fe0297f743d55e2f..8a42d275fce35e84 100644 +--- a/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c ++++ b/sysdeps/unix/sysv/linux/tst-sched-affinity-inheritance.c +@@ -34,10 +34,11 @@ set_my_affinity (size_t size, const cpu_set_t *set) + } + + static void +-verify_my_affinity (int nproc, size_t size, const cpu_set_t *expected_set) ++verify_my_affinity (int nproc, int nproc_configured, size_t size, ++ const cpu_set_t *expected_set) + { +- cpu_set_t *set = CPU_ALLOC (nproc); +- cpu_set_t *xor_set = CPU_ALLOC (nproc); ++ cpu_set_t *set = CPU_ALLOC (nproc_configured); ++ cpu_set_t *xor_set = CPU_ALLOC (nproc_configured); + + if (set == NULL || xor_set== NULL) + FAIL_EXIT1 ("verify_my_affinity: Failed to allocate cpuset: %m\n"); diff --git a/glibc-RHEL-119424-3.patch b/glibc-RHEL-119424-3.patch new file mode 100644 index 0000000..d97c4c0 --- /dev/null +++ b/glibc-RHEL-119424-3.patch @@ -0,0 +1,20 @@ +commit 71b49e299dbe22853095119da5064303e1d6b9ff +Author: Florian Weimer +Date: Tue Jan 21 10:36:58 2025 +0100 + + nptl: Include in tst-skeleton-affinity-inheritance.c + + The file uses the identifiers bool, false, true. + +diff --git a/nptl/tst-skeleton-affinity-inheritance.c b/nptl/tst-skeleton-affinity-inheritance.c +index 926f49622990e9e4..e1f328ae265b2bfb 100644 +--- a/nptl/tst-skeleton-affinity-inheritance.c ++++ b/nptl/tst-skeleton-affinity-inheritance.c +@@ -32,6 +32,7 @@ + they're both inherited. */ + + #include ++#include + #include + #include + #include diff --git a/glibc-RHEL-119425-1.patch b/glibc-RHEL-119425-1.patch new file mode 100644 index 0000000..ca543e8 --- /dev/null +++ b/glibc-RHEL-119425-1.patch @@ -0,0 +1,112 @@ +commit fa53723cdb6f0338558e57a2a0a6459c00a1bc5f +Author: Frédéric Bérat +Date: Fri Nov 29 14:48:43 2024 +0100 + + support: Add support_next_to_fault_before support function + + Refactor the support_next_to_fault and add the + support_next_to_fault_before method returns a buffer with a protected + page before it, to be able to test buffer underflow accesses. + + Reviewed-by: Tulio Magno Quites Machado Filho + +Conflicts: + support/next_to_fault.c + (Copyright line updated) + +diff --git a/support/next_to_fault.c b/support/next_to_fault.c +index 44d5477f6701cade..b60d5a574484f8e7 100644 +--- a/support/next_to_fault.c ++++ b/support/next_to_fault.c +@@ -1,5 +1,5 @@ +-/* Memory allocation next to an unmapped page. +- Copyright (C) 2017-2024 Free Software Foundation, Inc. ++/* Memory allocation either before or after an unmapped page. ++ Copyright (C) 2017-2025 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 +@@ -16,34 +16,58 @@ + License along with the GNU C Library; if not, see + . */ + ++#include + #include + #include + #include + #include + #include + +-struct support_next_to_fault +-support_next_to_fault_allocate (size_t size) ++static struct support_next_to_fault ++support_next_to_fault_allocate_any (size_t size, bool fault_after_alloc) + { + long page_size = sysconf (_SC_PAGE_SIZE); ++ long protect_offset = 0; ++ long buffer_offset = page_size; ++ + TEST_VERIFY_EXIT (page_size > 0); + struct support_next_to_fault result; + result.region_size = roundup (size, page_size) + page_size; + if (size + page_size <= size || result.region_size <= size) +- FAIL_EXIT1 ("support_next_to_fault_allocate (%zu): overflow", size); ++ FAIL_EXIT1 ("%s (%zu): overflow", __func__, size); + result.region_start + = xmmap (NULL, result.region_size, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS, -1); +- /* Unmap the page after the allocation. */ +- xmprotect (result.region_start + (result.region_size - page_size), +- page_size, PROT_NONE); +- /* Align the allocation within the region so that it ends just +- before the PROT_NONE page. */ +- result.buffer = result.region_start + result.region_size - page_size - size; ++ ++ if (fault_after_alloc) ++ { ++ protect_offset = result.region_size - page_size; ++ buffer_offset = protect_offset - size; ++ } ++ ++ /* Unmap the page before or after the allocation. */ ++ xmprotect (result.region_start + protect_offset, page_size, PROT_NONE); ++ /* Align the allocation within the region so that it starts after or ends ++ just before the PROT_NONE page. */ ++ result.buffer = result.region_start + buffer_offset; + result.length = size; + return result; + } + ++/* Unmapped a page after the buffer */ ++struct support_next_to_fault ++support_next_to_fault_allocate (size_t size) ++{ ++ return support_next_to_fault_allocate_any (size, true); ++} ++ ++/* Unmapped a page before the buffer */ ++struct support_next_to_fault ++support_next_to_fault_allocate_before (size_t size) ++{ ++ return support_next_to_fault_allocate_any (size, false); ++} ++ + void + support_next_to_fault_free (struct support_next_to_fault *ntf) + { +diff --git a/support/next_to_fault.h b/support/next_to_fault.h +index c16d3d5a413768e0..d2983be570e035b3 100644 +--- a/support/next_to_fault.h ++++ b/support/next_to_fault.h +@@ -41,6 +41,11 @@ struct support_next_to_fault + fault). */ + struct support_next_to_fault support_next_to_fault_allocate (size_t size); + ++/* Allocate a buffer of SIZE bytes just *after* a page which is mapped ++ with PROT_NONE (so that under-running the buffer will cause a ++ fault). */ ++struct support_next_to_fault support_next_to_fault_allocate_before (size_t size); ++ + /* Deallocate the memory region allocated by + next_to_fault_allocate. */ + void support_next_to_fault_free (struct support_next_to_fault *); diff --git a/glibc-RHEL-119425-2.patch b/glibc-RHEL-119425-2.patch new file mode 100644 index 0000000..287ccc2 --- /dev/null +++ b/glibc-RHEL-119425-2.patch @@ -0,0 +1,381 @@ +commit 8a46bf41e5a61248f626a8213520de499f388122 +Author: Frédéric Bérat +Date: Fri Nov 29 14:50:27 2024 +0100 + + posix: Rewrite cpuset tests + + Rewriting the cpuset macros test to cover more use cases and port the + tests to the new test infrastructure. + + The use cases include bad actor access attempts, before and after the + CPU set structure. + + Reviewed-by: Tulio Magno Quites Machado Filho + +diff --git a/posix/Makefile b/posix/Makefile +index 830278a4233d7234..59cd1dab72acbd54 100644 +--- a/posix/Makefile ++++ b/posix/Makefile +@@ -253,7 +253,8 @@ tests := \ + tst-boost \ + tst-chmod \ + tst-cpucount \ +- tst-cpuset \ ++ tst-cpuset-dynamic \ ++ tst-cpuset-static \ + tst-dir \ + tst-execl1 \ + tst-execl2 \ +diff --git a/posix/tst-cpuset-dynamic.c b/posix/tst-cpuset-dynamic.c +new file mode 100644 +index 0000000000000000..6e0f06dfd810a724 +--- /dev/null ++++ b/posix/tst-cpuset-dynamic.c +@@ -0,0 +1,63 @@ ++/* Test that CPU_* macros comply with their specifications. ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#define LOCAL_NUM_CPUS 2048 ++#define LOCAL_CPU_SETSIZE LOCAL_NUM_CPUS / 8 ++ ++#define PREPARE_CPU_SET(X) \ ++ X = CPU_ALLOC (LOCAL_NUM_CPUS); ++ ++/* Create a mapping so that access to the page before the cpuset generates a ++ fault. The aim is to check the behavior for negative values since the ++ interface accepts signed int. */ ++#define PREPARE_CPU_SET_TO_FAULT_BEFORE(X) \ ++ size_t local_sz_##X = CPU_ALLOC_SIZE(LOCAL_NUM_CPUS); \ ++ struct support_next_to_fault local_##X = support_next_to_fault_allocate_before(local_sz_##X); \ ++ X = (cpu_set_t *) local_##X.buffer; ++ ++/* Create a mapping so that access to the page after the cpuset generates a ++ fault. The aim is to check the behavior for values above CPU count since the ++ interface accepts signed int. */ ++#define PREPARE_CPU_SET_TO_FAULT(X) \ ++ size_t local_sz_##X = CPU_ALLOC_SIZE(LOCAL_NUM_CPUS); \ ++ struct support_next_to_fault local_##X = support_next_to_fault_allocate(local_sz_##X); \ ++ X = (cpu_set_t *) local_##X.buffer; ++ ++#define GET_SIZE() (size_t) CPU_ALLOC_SIZE(LOCAL_NUM_CPUS) ++ ++#define LOCAL_CPU_ZERO(sz, cpusetp) CPU_ZERO_S(sz, cpusetp) ++#define LOCAL_CPU_SET(cpu, sz, cpusetp) CPU_SET_S(cpu, sz, cpusetp) ++#define LOCAL_CPU_CLR(cpu, sz, cpusetp) CPU_CLR_S(cpu, sz, cpusetp) ++#define LOCAL_CPU_ISSET(cpu, sz, cpusetp) CPU_ISSET_S(cpu, sz, cpusetp) ++#define LOCAL_CPU_COUNT(sz, cpusetp) CPU_COUNT_S(sz, cpusetp) ++#define LOCAL_CPU_AND(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_AND_S(sz, destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_OR(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_OR_S(sz, destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_XOR(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_XOR_S(sz, destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_EQUAL(sz, setp1, setp2) CPU_EQUAL_S(sz, setp1, setp2) ++ ++#define CLEAN_CPU_SET(cpusetp) CPU_FREE(cpusetp) ++#define CLEAN_CPU_SET_TO_FAULT_BEFORE(X) support_next_to_fault_free(&local_##X) ++#define CLEAN_CPU_SET_TO_FAULT(X) support_next_to_fault_free(&local_##X) ++ ++#include "tst-cpuset-skeleton.c" +diff --git a/posix/tst-cpuset-skeleton.c b/posix/tst-cpuset-skeleton.c +new file mode 100644 +index 0000000000000000..2c04989c0da502be +--- /dev/null ++++ b/posix/tst-cpuset-skeleton.c +@@ -0,0 +1,123 @@ ++/* Test that CPU_* macros comply with their specifications. ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ cpu_set_t *cpusetp_A = NULL; ++ cpu_set_t *cpusetp_B = NULL; ++ cpu_set_t *cpusetp_C = NULL; ++ ++ size_t setsz __attribute__ ((unused)) = GET_SIZE(); ++ ++ TEST_VERIFY (CPU_ALLOC_SIZE (-1) == 0); ++ TEST_VERIFY (CPU_ALLOC_SIZE (0) == 0); ++ TEST_VERIFY (CPU_ALLOC_SIZE (1) == sizeof (__cpu_mask)); ++ TEST_VERIFY (CPU_ALLOC_SIZE (INT_MAX) > 0); ++ ++ PREPARE_CPU_SET_TO_FAULT_BEFORE(cpusetp_A); ++ PREPARE_CPU_SET_TO_FAULT(cpusetp_B); ++ PREPARE_CPU_SET(cpusetp_C); ++ ++ /* Bad actor access, negative CPU number */ ++ LOCAL_CPU_SET (-1, setsz, cpusetp_A); ++ TEST_VERIFY (!LOCAL_CPU_ISSET (-1, setsz, cpusetp_A)); ++ ++ /* Bad actor access, above CPU number */ ++ LOCAL_CPU_SET (LOCAL_NUM_CPUS, setsz, cpusetp_B); ++ TEST_VERIFY (!LOCAL_CPU_ISSET (LOCAL_NUM_CPUS, setsz, cpusetp_B)); ++ ++ LOCAL_CPU_ZERO (setsz, cpusetp_A); ++ LOCAL_CPU_ZERO (setsz, cpusetp_B); ++ LOCAL_CPU_ZERO (setsz, cpusetp_C); ++ ++ for (int cpu = 0; cpu < LOCAL_NUM_CPUS; cpu += 2) ++ { ++ /* Set A = 0x55..55 */ ++ LOCAL_CPU_SET (cpu, setsz, cpusetp_A); ++ TEST_VERIFY (LOCAL_CPU_ISSET (cpu, setsz, cpusetp_A)); ++ } ++ for (int cpu = 1; cpu < LOCAL_NUM_CPUS; cpu += 2) ++ { ++ /* Set B = 0xAA..AA */ ++ LOCAL_CPU_SET (cpu, setsz, cpusetp_B); ++ TEST_VERIFY (LOCAL_CPU_ISSET (cpu, setsz, cpusetp_B)); ++ } ++ ++ /* Ensure CPU_COUNT matches expected count */ ++ TEST_VERIFY (LOCAL_CPU_COUNT (setsz, cpusetp_A) == LOCAL_CPU_COUNT (setsz, cpusetp_B)); ++ TEST_VERIFY (LOCAL_CPU_COUNT (setsz, cpusetp_A) == LOCAL_NUM_CPUS / 2); ++ ++ LOCAL_CPU_AND (setsz, cpusetp_C, cpusetp_A, cpusetp_B); ++ for (int cpu = 0; cpu < LOCAL_NUM_CPUS; cpu++) ++ { ++ /* A setsz, B == 0 */ ++ TEST_VERIFY (!LOCAL_CPU_ISSET (cpu, setsz, cpusetp_C)); ++ } ++ ++ LOCAL_CPU_OR (setsz, cpusetp_C, cpusetp_A, cpusetp_B); ++ for (int cpu = 0; cpu < LOCAL_NUM_CPUS; cpu++) ++ { ++ /* A | B == 0xFF..FF */ ++ TEST_VERIFY (LOCAL_CPU_ISSET (cpu, setsz, cpusetp_C)); ++ } ++ ++ /* Check that CPU_ZERO actually does something */ ++ TEST_VERIFY (LOCAL_CPU_COUNT (setsz, cpusetp_C) == LOCAL_NUM_CPUS); ++ LOCAL_CPU_ZERO (setsz, cpusetp_C); ++ TEST_VERIFY (LOCAL_CPU_COUNT (setsz, cpusetp_C) == 0); ++ ++ LOCAL_CPU_XOR (setsz, cpusetp_C, cpusetp_A, cpusetp_A); ++ for (int cpu = 0; cpu < LOCAL_NUM_CPUS; cpu++) ++ { ++ /* A ^ A == 0 */ ++ TEST_VERIFY (!LOCAL_CPU_ISSET (cpu, setsz, cpusetp_C)); ++ } ++ ++ LOCAL_CPU_XOR (setsz, cpusetp_C, cpusetp_A, cpusetp_B); ++ for (int cpu = 0; cpu < LOCAL_NUM_CPUS; cpu++) ++ { ++ /* C = A ^ B == 0xFF..FF */ ++ TEST_VERIFY (LOCAL_CPU_ISSET (cpu, setsz, cpusetp_C)); ++ } ++ ++ for (int cpu = 1; cpu < LOCAL_NUM_CPUS; cpu += 2) ++ { ++ /* C = 0x55..55 */ ++ LOCAL_CPU_CLR (cpu, setsz, cpusetp_C); ++ TEST_VERIFY (!LOCAL_CPU_ISSET (cpu, setsz, cpusetp_C)); ++ } ++ ++ TEST_VERIFY (LOCAL_CPU_EQUAL (setsz, cpusetp_A, cpusetp_C)); ++ ++ CLEAN_CPU_SET(cpusetp_C); ++ CLEAN_CPU_SET_TO_FAULT(cpusetp_B); ++ CLEAN_CPU_SET_TO_FAULT_BEFORE(cpusetp_A); ++ ++ return 0; ++} ++ ++#include +diff --git a/posix/tst-cpuset-static.c b/posix/tst-cpuset-static.c +new file mode 100644 +index 0000000000000000..ad4c40e422c50ab8 +--- /dev/null ++++ b/posix/tst-cpuset-static.c +@@ -0,0 +1,61 @@ ++/* Test that CPU_* macros comply with their specifications. ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++ ++#define LOCAL_NUM_CPUS CPU_SETSIZE ++ ++/* Create a mapping so that access to the page before the cpuset generates a ++ fault. The aim is to check the behavior for negative values since the ++ interface accepts signed int. */ ++#define PREPARE_CPU_SET_TO_FAULT_BEFORE(X) \ ++ struct support_next_to_fault local_##X = support_next_to_fault_allocate_before(sizeof(*X)); \ ++ X = (cpu_set_t *) local_##X.buffer; ++ ++/* Create a mapping so that access to the page after the cpuset generates a ++ fault. The aim is to check the behavior for values above CPU count since the ++ interface accepts signed int. */ ++#define PREPARE_CPU_SET_TO_FAULT(X) \ ++ struct support_next_to_fault local_##X = support_next_to_fault_allocate(sizeof(*X)); \ ++ X = (cpu_set_t *) local_##X.buffer; ++ ++#define PREPARE_CPU_SET(X) \ ++ cpu_set_t local_##X = {}; \ ++ X = &local_##X; ++ ++#define GET_SIZE() (size_t) sizeof (cpu_set_t) ++ ++#define LOCAL_CPU_ZERO(sz, cpusetp) CPU_ZERO(cpusetp) ++#define LOCAL_CPU_SET(cpu, sz, cpusetp) CPU_SET(cpu, cpusetp) ++#define LOCAL_CPU_CLR(cpu, sz, cpusetp) CPU_CLR(cpu, cpusetp) ++#define LOCAL_CPU_ISSET(cpu, sz, cpusetp) CPU_ISSET(cpu, cpusetp) ++#define LOCAL_CPU_COUNT(sz, cpusetp) CPU_COUNT(cpusetp) ++#define LOCAL_CPU_AND(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_AND(destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_OR(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_OR(destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_XOR(sz, destsetp, srcsetp1, srcsetp2) \ ++ CPU_XOR(destsetp, srcsetp1, srcsetp2) ++#define LOCAL_CPU_EQUAL(sz, setp1, setp2) CPU_EQUAL(setp1, setp2) ++ ++#define CLEAN_CPU_SET(X) ++#define CLEAN_CPU_SET_TO_FAULT_BEFORE(X) support_next_to_fault_free(&local_##X) ++#define CLEAN_CPU_SET_TO_FAULT(X) support_next_to_fault_free(&local_##X) ++ ++#include "tst-cpuset-skeleton.c" +diff --git a/posix/tst-cpuset.c b/posix/tst-cpuset.c +deleted file mode 100644 +index d736793222af5ec6..0000000000000000 +--- a/posix/tst-cpuset.c ++++ /dev/null +@@ -1,82 +0,0 @@ +-#include +-#include +- +-static int +-do_test (void) +-{ +- int result = 0; +- +- cpu_set_t s1; +- cpu_set_t s2; +- cpu_set_t s3; +- +- CPU_ZERO (&s1); +- CPU_SET (0, &s1); +- +- CPU_ZERO (&s2); +- CPU_SET (0, &s2); +- CPU_SET (1, &s2); +- +- CPU_AND (&s3, &s1, &s2); +- if (! CPU_EQUAL (&s3, &s1)) +- { +- puts ("result of CPU_AND wrong"); +- result = 1; +- } +- +- CPU_OR (&s3, &s1, &s2); +- if (! CPU_EQUAL (&s3, &s2)) +- { +- puts ("result of CPU_OR wrong"); +- result = 1; +- } +- +- CPU_XOR (&s3, &s1, &s2); +- if (CPU_COUNT (&s3) != 1) +- { +- puts ("result of CPU_XOR wrong"); +- result = 1; +- } +- +- cpu_set_t *vs1 = CPU_ALLOC (2048); +- cpu_set_t *vs2 = CPU_ALLOC (2048); +- cpu_set_t *vs3 = CPU_ALLOC (2048); +- size_t vssize = CPU_ALLOC_SIZE (2048); +- +- CPU_ZERO_S (vssize, vs1); +- CPU_SET_S (0, vssize, vs1); +- +- CPU_ZERO_S (vssize, vs2); +- CPU_SET_S (0, vssize, vs2); +- CPU_SET_S (2047, vssize, vs2); +- +- CPU_AND_S (vssize, vs3, vs1, vs2); +- if (! CPU_EQUAL_S (vssize, vs3, vs1)) +- { +- puts ("result of CPU_AND_S wrong"); +- result = 1; +- } +- +- CPU_OR_S (vssize, vs3, vs1, vs2); +- if (! CPU_EQUAL_S (vssize, vs3, vs2)) +- { +- puts ("result of CPU_OR_S wrong"); +- result = 1; +- } +- +- CPU_XOR_S (vssize, vs3, vs1, vs2); +- if (CPU_COUNT_S (vssize, vs3) != 1) +- { +- puts ("result of CPU_XOR_S wrong"); +- result = 1; +- } +- +- CPU_FREE (vs1); +- CPU_FREE (vs2); +- CPU_FREE (vs3); +- +- return result; +-} +- +-#define TEST_FUNCTION do_test () +-#include "../test-skeleton.c" diff --git a/glibc-RHEL-119428-1.patch b/glibc-RHEL-119428-1.patch new file mode 100644 index 0000000..31e366e --- /dev/null +++ b/glibc-RHEL-119428-1.patch @@ -0,0 +1,94 @@ +commit 5d4ab106d4cf7d6e410d6fc3d460b090c9108682 +Author: Tulio Magno Quites Machado Filho +Date: Thu Sep 5 15:34:29 2024 -0300 + + Add a new fwrite test for read-only streams + + Ensure that fwrite() behaves correctly even when the stream is + read-only. + + Reviewed-by: Carlos O'Donell + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 4ef1bf07ff5d63e1..b8c0ac209d12215a 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -266,6 +266,7 @@ tests := \ + tst-fseek \ + tst-fseek-mmap \ + tst-fwrite \ ++ tst-fwrite-ro \ + tst-getline \ + tst-getline-enomem \ + tst-gets \ +diff --git a/stdio-common/tst-fwrite-ro.c b/stdio-common/tst-fwrite-ro.c +new file mode 100644 +index 0000000000000000..7013bee53cc494d0 +--- /dev/null ++++ b/stdio-common/tst-fwrite-ro.c +@@ -0,0 +1,65 @@ ++/* Test fwrite on a read-only stream. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* A small buffer size is enough to run this test. */ ++#define BUFSIZE 4 ++ ++static int ++do_test (void) ++{ ++ int fd; ++ FILE *f; ++ struct stat64 st; ++ ++ /* Create a temporary file and open it in read-only mode. */ ++ fd = create_temp_file ("tst-fwrite-ro", NULL); ++ TEST_VERIFY_EXIT (fd != -1); ++ f = fdopen (fd, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ ++ /* Try to write to the temporary file with nmemb = 0, then check that ++ fwrite returns 0. No errors are expected from this. */ ++ TEST_COMPARE (fwrite ("a", 1, 0, f), 0); ++ TEST_COMPARE (ferror (f), 0); ++ ++ /* Try to write to the temporary file with size = 0, then check that ++ fwrite returns 0. No errors are expected from this. */ ++ TEST_COMPARE (fwrite ("a", 0, 1, f), 0); ++ TEST_COMPARE (ferror (f), 0); ++ ++ /* Try to write a single byte to the temporary file, then check that ++ fwrite returns 0. Check if an error was reported. */ ++ TEST_COMPARE (fwrite ("a", 1, 1, f), 0); ++ TEST_COMPARE (ferror (f), 1); ++ clearerr (f); ++ ++ xfstat64 (fd, &st); ++ TEST_COMPARE (st.st_size, 0); ++ ++ xfclose (f); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119428-10.patch b/glibc-RHEL-119428-10.patch new file mode 100644 index 0000000..3481ce9 --- /dev/null +++ b/glibc-RHEL-119428-10.patch @@ -0,0 +1,35 @@ +Downstream-only patch to restore the extern ABI for functions +like fprintf that use the FILE * type. Rebuilds of applications +receive ABI change reports because of this installed header change +(indirect subtype change in libabigail terms), and given that +this part of struct _IO_FILE is strictly internal, there is no +need to expose this change to installed headers. + +diff --git a/libio/bits/types/struct_FILE.h b/libio/bits/types/struct_FILE.h +index 6154b93cb260385a..ea8826dbe421a1ff 100644 +--- a/libio/bits/types/struct_FILE.h ++++ b/libio/bits/types/struct_FILE.h +@@ -103,15 +103,19 @@ struct _IO_FILE_complete + void *_freeres_buf; + size_t __pad5; + int _mode; +-#if __WORDSIZE == 64 ++#ifdef _LIBC ++# if __WORDSIZE == 64 + int _unused3; +-#endif ++# endif + __uint64_t _total_written; +-#if __WORDSIZE == 32 ++# if __WORDSIZE == 32 + int _unused3; +-#endif ++# endif + /* Make sure we don't get into trouble again. */ + char _unused2[12 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; ++#else ++ char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; ++#endif + }; + + /* These macros are used by bits/stdio.h and internal headers. */ diff --git a/glibc-RHEL-119428-2.patch b/glibc-RHEL-119428-2.patch new file mode 100644 index 0000000..7aa3a12 --- /dev/null +++ b/glibc-RHEL-119428-2.patch @@ -0,0 +1,205 @@ +commit dccc9a5161264d2f98411c24ae22495ca3a09b60 +Author: Tulio Magno Quites Machado Filho +Date: Thu Aug 29 14:12:41 2024 -0300 + + Add a new fwrite test for memory streams + + Ensure that fwrite() behaves correctly when using memory streams. + + Reviewed-by: Carlos O'Donell + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index b8c0ac209d12215a..ffd5425ddc624003 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -266,6 +266,7 @@ tests := \ + tst-fseek \ + tst-fseek-mmap \ + tst-fwrite \ ++ tst-fwrite-memstrm \ + tst-fwrite-ro \ + tst-getline \ + tst-getline-enomem \ +diff --git a/stdio-common/tst-fwrite-memstrm.c b/stdio-common/tst-fwrite-memstrm.c +new file mode 100644 +index 0000000000000000..7ee38314302ba794 +--- /dev/null ++++ b/stdio-common/tst-fwrite-memstrm.c +@@ -0,0 +1,177 @@ ++/* Test fwrite on a memory stream. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++void ++test_ro (void) ++{ ++ FILE *f; ++ char *out; ++ ++ /* Try to allocate a small buffer for this test. */ ++ out = malloc (2); ++ TEST_VERIFY_EXIT (out != NULL); ++ ++ /* Try to open the allocated buffer as a read-only stream. */ ++ f = fmemopen (out, 2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ ++ /* Try to write to the temporary file with nmemb = 0, then check that ++ fwrite returns 0. No errors are expected from this. */ ++ TEST_COMPARE (fwrite ("a", 1, 0, f), 0); ++ TEST_COMPARE (ferror (f), 0); ++ ++ /* Try to write to the temporary file with size = 0, then check that ++ fwrite returns 0. No errors are expected from this. */ ++ TEST_COMPARE (fwrite ("a", 0, 1, f), 0); ++ TEST_COMPARE (ferror (f), 0); ++ ++ /* Try to write a single byte to the temporary file, then check that ++ fwrite returns 0. Check if an error was reported. */ ++ TEST_COMPARE (fwrite ("a", 1, 1, f), 0); ++ TEST_COMPARE (ferror (f), 1); ++ ++ clearerr (f); ++ xfclose (f); ++ free (out); ++} ++ ++/* Length of the output buffer in bytes. */ ++#define RWBUF_SIZE 16 * 1024 ++/* Maximum number of bytes to be written in output buffer. The rest will be ++ used to check against overflow. */ ++#define RWBUF_SIZE_WRITABLE RWBUF_SIZE-2048 ++ ++/* Use the following byte to identify areas that should have not been ++ modified. */ ++#define KNOWN_BYTE 0xaa ++ ++void ++test_one_rw (const char *in, size_t size, size_t nmemb, ++ size_t expected_ret) ++{ ++ FILE *f; ++ char *out, *expected_out; ++ /* Total number of bytes expected to be written. */ ++ size_t expected_bytes = size * nmemb; ++ ++ printf ("Testing with size = %zd, nmemb = %zd\n", size, nmemb); ++ ++ TEST_VERIFY_EXIT (expected_ret <= RWBUF_SIZE_WRITABLE); ++ TEST_VERIFY_EXIT (expected_bytes <= RWBUF_SIZE_WRITABLE); ++ ++ /* Try to allocate a buffer for this test and initialize it with ++ known contents. */ ++ out = malloc (RWBUF_SIZE); ++ TEST_VERIFY_EXIT (out != NULL); ++ memset (out, KNOWN_BYTE, RWBUF_SIZE); ++ ++ /* Try to allocate a buffer and fill it with the contents that are expected ++ to be in memory after flushing/closing the memory stream. */ ++ expected_out = malloc (RWBUF_SIZE); ++ TEST_VERIFY_EXIT (expected_out != NULL); ++ if (expected_bytes > 0) ++ { ++ memcpy (expected_out, in, expected_bytes); ++ expected_out[expected_bytes] = 0; ++ memset (expected_out + expected_bytes + 1, KNOWN_BYTE, ++ RWBUF_SIZE - expected_bytes - 1); ++ } ++ else ++ { ++ /* No changes to the output are expected. */ ++ memset (expected_out, KNOWN_BYTE, RWBUF_SIZE); ++ } ++ ++ /* Try to open the allocated buffer as a read-write stream. */ ++ f = fmemopen (out, RWBUF_SIZE, "w"); ++ TEST_VERIFY_EXIT (f != NULL); ++ ++ /* Try to write to the memory stream. Check if fwrite() returns the ++ expected value. No errors are expected. */ ++ TEST_COMPARE (fwrite (in, size, nmemb, f), expected_ret); ++ TEST_COMPARE (ferror (f), 0); ++ ++ xfclose (f); ++ ++ /* Ensure the output has the expected contents. */ ++ TEST_COMPARE (memcmp (out, expected_out, expected_bytes), 0); ++ ++ free (expected_out); ++ free (out); ++} ++ ++void ++test_rw (void) ++{ ++ char * in; ++ int i, j; ++ size_t size[] = {1, 8, 11, 16, 17, 0}; ++ size_t nmemb[] = {32, 83, 278, 709, 4097, RWBUF_SIZE / 2, ++ RWBUF_SIZE_WRITABLE, 0}; ++ size_t n; ++ ++ /* Try to write to the temporary file with nmemb = 0, then check that ++ fwrite returns 0; */ ++ test_one_rw ("a", 1, 0, 0); ++ ++ /* Try to write to the temporary file with size = 0, then check that ++ fwrite returns 0; */ ++ test_one_rw ("a", 0, 1, 0); ++ ++ /* Try to write a single byte to the temporary file, then check that ++ fwrite returns 1; */ ++ test_one_rw ("a", 1, 2, 2); ++ ++ in = malloc (RWBUF_SIZE); ++ TEST_VERIFY_EXIT (in != NULL); ++ for (i = 0; i < RWBUF_SIZE / 2; i++) ++ in[i] = i % 0xff; ++ ++ /* Test with all posibilities of size[] x nmemb[]. */ ++ for (i = 0; nmemb[i] != 0; i++) ++ { ++ for (j = 0; size[j] != 0; j++) ++ { ++ n = nmemb[i] / size[j]; ++ test_one_rw (in, size[j], n, n); ++ } ++ /* Run the test with a single item of maximum size. */ ++ test_one_rw (in, nmemb[i], 1, 1); ++ } ++ ++ free (in); ++} ++ ++static int ++do_test (void) ++{ ++ test_ro (); ++ test_rw (); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119428-3.patch b/glibc-RHEL-119428-3.patch new file mode 100644 index 0000000..3031c81 --- /dev/null +++ b/glibc-RHEL-119428-3.patch @@ -0,0 +1,166 @@ +commit 97aa92263a151d12286d27d327edc35475fe521c +Author: Tulio Magno Quites Machado Filho +Date: Thu Sep 26 11:30:29 2024 -0300 + + Add a new fwrite test that exercises buffer overflow + + Exercises fwrite's internal buffer when doing a file operation. + The new test, exercises 2 overflow behaviors: + + 1. Call fwrite multiple times making usage of fwrite's internal buffer. + The total number of bytes written is larger than fwrite's internal + buffer, forcing an automatic flush. + + 2. Call fwrite a single time with an amount of data that is larger than + fwrite's internal buffer. + + Reviewed-by: Carlos O'Donell + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index ffd5425ddc624003..9a88483e75965b54 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -267,6 +267,7 @@ tests := \ + tst-fseek-mmap \ + tst-fwrite \ + tst-fwrite-memstrm \ ++ tst-fwrite-overflow \ + tst-fwrite-ro \ + tst-getline \ + tst-getline-enomem \ +diff --git a/stdio-common/tst-fwrite-overflow.c b/stdio-common/tst-fwrite-overflow.c +new file mode 100644 +index 0000000000000000..fe503fd5890a4812 +--- /dev/null ++++ b/stdio-common/tst-fwrite-overflow.c +@@ -0,0 +1,130 @@ ++/* Test the overflow of fwrite's internal buffer. ++ Copyright (C) 2024 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 ++ . */ ++ ++/* stdio.h provides BUFSIZ, which is the size of fwrite's internal buffer. */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Length of the buffers in bytes. */ ++#define RWBUF_SIZE (2 * BUFSIZ) ++ ++void ++test_one_rw (const char *in, size_t size, size_t nmemb, size_t blocks) ++{ ++ int fd; ++ FILE *f; ++ char *out; ++ size_t written, to_write; ++ const size_t requested = size * nmemb; ++ ++ printf ("Testing with size = %zd, nmemb = %zd, blocks = %zd\n", ++ size, nmemb, blocks); ++ ++ TEST_VERIFY_EXIT (requested <= RWBUF_SIZE); ++ /* Ensure fwrite's internal buffer will overflow. */ ++ TEST_VERIFY_EXIT (requested > BUFSIZ); ++ ++ /* Create a temporary file and open it for reading and writing. */ ++ fd = create_temp_file ("tst-fwrite-overflow", NULL); ++ TEST_VERIFY_EXIT (fd != -1); ++ f = fdopen (fd, "w+"); ++ TEST_VERIFY_EXIT (f != NULL); ++ ++ /* Call fwrite() as many times as needed, until all data is written, ++ limiting the amount of data written per call to block items. */ ++ for (written = 0; written < nmemb; written += to_write) ++ { ++ if (written + blocks <= nmemb) ++ to_write = blocks; ++ else ++ to_write = nmemb - written; ++ /* Check if fwrite() returns the expected value. No errors are ++ expected. */ ++ TEST_COMPARE (fwrite (in + size * written, size, to_write, f), ++ to_write); ++ TEST_COMPARE (ferror (f), 0); ++ } ++ TEST_VERIFY_EXIT (written == nmemb); ++ ++ /* Ensure all the data is flushed to file. */ ++ TEST_COMPARE (fflush (f), 0); ++ ++ /* We have to check if the contents in the file are correct. Go back to ++ the beginning of the file. */ ++ rewind (f); ++ /* Try to allocate a buffer and save the contents of the generated file to ++ it. */ ++ out = xmalloc (RWBUF_SIZE); ++ TEST_COMPARE (fread (out, size, nmemb, f), nmemb); ++ ++ /* Ensure the output has the expected contents. */ ++ TEST_COMPARE (memcmp (out, in, requested), 0); ++ ++ xfclose (f); ++ free (out); ++} ++ ++static int ++do_test (void) ++{ ++ char * in; ++ int i, j; ++ size_t nmemb[] = {BUFSIZ + 1, RWBUF_SIZE, 0}; ++ /* Maximum number of items written for each fwrite call. */ ++ size_t block[] = {100, 1024, 2047, 0}; ++ /* The largest block must fit entirely in fwrite's buffer. */ ++ _Static_assert (2047 < BUFSIZ, ++ "a block must fit in fwrite's internal buffer"); ++ ++ in = xmalloc (RWBUF_SIZE); ++ for (i = 0; i < RWBUF_SIZE; i++) ++ in[i] = i % 0xff; ++ ++ for (i = 0; nmemb[i] != 0; i++) ++ for (j = 0; block[j] != 0; j++) ++ { ++ /* Run a test with an array of nmemb bytes. Write at most block ++ items per fwrite call. */ ++ test_one_rw (in, 1, nmemb[i], block[j]); ++ /* Run a test that overflows fwrite's internal buffer in a single call ++ by writting a single item of nmemb bytes. ++ This call should not use the buffer and should be written directly ++ to the file. */ ++ test_one_rw (in, nmemb[i], 1, nmemb[i]); ++ } ++ ++ for (j = 0; block[j] != 0; j++) ++ { ++ /* Run a test with size=2 and the minimum nmemb value that still ++ overflows the buffer. Write at most block items per fwrite call. */ ++ test_one_rw (in, 2, BUFSIZ / 2 + 1, block[j]); ++ /* Likewise, but size=3. */ ++ test_one_rw (in, 3, BUFSIZ / 3 + 1, block[j]); ++ } ++ ++ free (in); ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119428-4.patch b/glibc-RHEL-119428-4.patch new file mode 100644 index 0000000..2a2323e --- /dev/null +++ b/glibc-RHEL-119428-4.patch @@ -0,0 +1,445 @@ +commit 596a61cf6b51ce2d58b8ca4e1d1f4fdfe1440dbc +Author: Tulio Magno Quites Machado Filho +Date: Tue Jan 28 15:37:44 2025 -0300 + + libio: Start to return errors when flushing fwrite's buffer [BZ #29459] + + When an error happens, fwrite is expected to return a value that is less + than nmemb. If this error happens while flushing its internal buffer, + fwrite is in a complex scenario: all the data might have been written to + the buffer, indicating a successful copy, but the buffer is expected to + be flushed and it was not. + + POSIX.1-2024 states the following about errors on fwrite: + + If an error occurs, the resulting value of the file-position indicator + for the stream is unspecified. + + The fwrite() function shall return the number of elements successfully + written, which may be less than nitems if a write error is encountered. + + With that in mind, this commit modifies _IO_new_file_write in order to + return the total number of bytes written via the file pointer. It also + modifies fwrite in order to use the new information and return the + correct number of bytes written even when sputn returns EOF. + + Add 2 tests: + + 1. tst-fwrite-bz29459: This test is based on the reproducer attached to + bug 29459. In order to work, it requires to pipe stdout to another + process making it hard to reuse test-driver.c. This code is more + specific to the issue reported. + 2. tst-fwrite-pipe: Recreates the issue by creating a pipe that is shared + with a child process. Reuses test-driver.c. Evaluates a more generic + scenario. + + Co-authored-by: Florian Weimer + Reviewed-by: DJ Delorie + +Conflicts: + libio/bits/types/struct_FILE.h + (Downstream is missing commit 2a99e2398d9d717c034e915f7846a49e623f5450) + +diff --git a/libio/bits/types/struct_FILE.h b/libio/bits/types/struct_FILE.h +index e5403039941f58c9..87d0efb94cfa2ae1 100644 +--- a/libio/bits/types/struct_FILE.h ++++ b/libio/bits/types/struct_FILE.h +@@ -102,8 +102,15 @@ struct _IO_FILE_complete + void *_freeres_buf; + size_t __pad5; + int _mode; ++#ifdef __LP64__ ++ int _unused3; ++#endif ++ __uint64_t _total_written; ++#ifndef __LP64__ ++ int _unused3; ++#endif + /* Make sure we don't get into trouble again. */ +- char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; ++ char _unused2[12 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; + }; + + /* These macros are used by bits/stdio.h and internal headers. */ +diff --git a/libio/fileops.c b/libio/fileops.c +index cca52c09beb11747..3470c12f78defa35 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -113,6 +113,7 @@ _IO_new_file_init_internal (struct _IO_FILE_plus *fp) + + _IO_link_in (fp); + fp->file._fileno = -1; ++ fp->file._total_written = 0; + } + + /* External version of _IO_new_file_init_internal which switches off +@@ -1244,6 +1245,7 @@ _IO_new_file_write (FILE *f, const void *data, ssize_t n) + f->_flags |= _IO_ERR_SEEN; + break; + } ++ f->_total_written += count; + to_do -= count; + data = (void *) ((char *) data + count); + } +diff --git a/libio/iofwrite.c b/libio/iofwrite.c +index af2e2070aff404d4..f36d21c72840f04f 100644 +--- a/libio/iofwrite.c ++++ b/libio/iofwrite.c +@@ -36,13 +36,42 @@ _IO_fwrite (const void *buf, size_t size, size_t count, FILE *fp) + return 0; + _IO_acquire_lock (fp); + if (_IO_vtable_offset (fp) != 0 || _IO_fwide (fp, -1) == -1) +- written = _IO_sputn (fp, (const char *) buf, request); ++ { ++ /* Compute actually written bytes plus pending buffer ++ contents. */ ++ uint64_t original_total_written ++ = fp->_total_written + (fp->_IO_write_ptr - fp->_IO_write_base); ++ written = _IO_sputn (fp, (const char *) buf, request); ++ if (written == EOF) ++ { ++ /* An error happened and we need to find the appropriate return ++ value. There 3 possible scenarios: ++ 1. If the number of bytes written is between 0..[buffer content], ++ we need to return 0 because none of the bytes from this ++ request have been written; ++ 2. If the number of bytes written is between ++ [buffer content]+1..request-1, that means we managed to write ++ data requested in this fwrite call; ++ 3. We might have written all the requested data and got an error ++ anyway. We can't return success, which means we still have to ++ return less than request. */ ++ if (fp->_total_written > original_total_written) ++ { ++ written = fp->_total_written - original_total_written; ++ /* If everything was reported as written and somehow an ++ error occurred afterwards, avoid reporting success. */ ++ if (written == request) ++ --written; ++ } ++ else ++ /* Only already-pending buffer contents was written. */ ++ written = 0; ++ } ++ } + _IO_release_lock (fp); + /* We have written all of the input in case the return value indicates +- this or EOF is returned. The latter is a special case where we +- simply did not manage to flush the buffer. But the data is in the +- buffer and therefore written as far as fwrite is concerned. */ +- if (written == request || written == EOF) ++ this. */ ++ if (written == request) + return count; + else + return written / size; +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 9a88483e75965b54..d2a8b95e895d23b6 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -268,6 +268,7 @@ tests := \ + tst-fwrite \ + tst-fwrite-memstrm \ + tst-fwrite-overflow \ ++ tst-fwrite-pipe \ + tst-fwrite-ro \ + tst-getline \ + tst-getline-enomem \ +@@ -358,6 +359,7 @@ tests-internal = \ + + test-srcs = \ + $(xprintf-srcs) \ ++ tst-fwrite-bz29459 \ + tst-printf \ + tst-printfsz-islongdouble \ + tst-unbputc \ +@@ -366,6 +368,7 @@ test-srcs = \ + ifeq ($(run-built-tests),yes) + tests-special += \ + $(foreach f,$(xprintf-stems),$(objpfx)$(f).out) \ ++ $(objpfx)tst-fwrite-bz29459.out \ + $(objpfx)tst-printf.out \ + $(objpfx)tst-printfsz-islongdouble.out \ + $(objpfx)tst-setvbuf1-cmp.out \ +@@ -563,6 +566,10 @@ tst-freopen64-6-ENV = \ + MALLOC_TRACE=$(objpfx)tst-freopen64-6.mtrace \ + LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so + ++$(objpfx)tst-fwrite-bz29459.out: tst-fwrite-bz29459.sh $(objpfx)tst-fwrite-bz29459 ++ $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \ ++ $(evaluate-test) ++ + $(objpfx)tst-unbputc.out: tst-unbputc.sh $(objpfx)tst-unbputc + $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \ + $(evaluate-test) +diff --git a/stdio-common/tst-fwrite-bz29459.c b/stdio-common/tst-fwrite-bz29459.c +new file mode 100644 +index 0000000000000000..0640faac0c3823ef +--- /dev/null ++++ b/stdio-common/tst-fwrite-bz29459.c +@@ -0,0 +1,89 @@ ++/* Test fwrite against bug 29459. ++ Copyright (C) 2025 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 ++ . */ ++ ++/* This test is based on the code attached to bug 29459. ++ It depends on stdout being redirected to a specific process via a script ++ with the same name. Because of this, we cannot use the features from ++ test_driver.c. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Usually this test reproduces in a few iterations. However, keep a high ++ number of iterations in order to avoid return false-positives due to an ++ overwhelmed/slow system. */ ++#define ITERATIONS 5000 ++ ++/* The goal of this test is to use fwrite () on a redirected and closed ++ stdout. A script will guarantee that stdout is redirected to another ++ process that closes it during the execution. The process reading from ++ the pipe must read at least the first line in order to guarantee that ++ flag _IO_CURRENTLY_PUTTING is set in the write end of the pipe, triggering ++ important parts of the code that flushes lines from fwrite's internal ++ buffer. The underlying write () returns EPIPE, which fwrite () must ++ propagate. */ ++ ++int ++main (void) ++{ ++ int i; ++ size_t rc; ++ /* Ensure the string we send has a new line because we're dealing ++ with a lined-buffered stream. */ ++ const char *s = "hello\n"; ++ const size_t len = strlen(s); ++ ++ /* Ensure that fwrite buffers the output before writing to stdout. */ ++ setlinebuf(stdout); ++ /* Ignore SIGPIPE in order to catch the EPIPE returned by the ++ underlying call to write(). */ ++ xsignal(SIGPIPE, SIG_IGN); ++ ++ for (i = 1; i <= ITERATIONS; i++) ++ { ++ /* Keep writing to stdout. The test succeeds if fwrite () returns an ++ error. */ ++ if ((rc = fwrite(s, 1, len, stdout)) < len) ++ { ++ /* An error happened. Check if ferror () does return an error ++ and that it is indeed EPIPE. */ ++ TEST_COMPARE (ferror (stdout), 1); ++ TEST_COMPARE (errno, EPIPE); ++ fprintf(stderr, "Success: i=%d. fwrite returned %zu < %zu " ++ "and errno=EPIPE\n", ++ i, rc, len); ++ /* The test succeeded! */ ++ return 0; ++ } ++ else ++ { ++ /* fwrite () was able to write all the contents. Check if no errors ++ have been reported and try again. */ ++ TEST_COMPARE (ferror (stdout), 0); ++ TEST_COMPARE (errno, 0); ++ } ++ } ++ ++ fprintf(stderr, "Error: fwrite did not return an error\n"); ++ return 1; ++} +diff --git a/stdio-common/tst-fwrite-bz29459.sh b/stdio-common/tst-fwrite-bz29459.sh +new file mode 100755 +index 0000000000000000..164313532b91cb56 +--- /dev/null ++++ b/stdio-common/tst-fwrite-bz29459.sh +@@ -0,0 +1,34 @@ ++#!/bin/sh ++# Test fwrite for bug 29459. ++# Copyright (C) 2025 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 ++# . ++ ++set -e ++ ++common_objpfx=$1; shift ++test_program_prefix=$1; shift ++ ++status=0 ++ ++${test_program_prefix} \ ++ ${common_objpfx}stdio-common/tst-fwrite-bz29459 \ ++ 2> ${common_objpfx}stdio-common/tst-fwrite-bz29459.out \ ++ | head -n1 > /dev/null ++ ++grep -q Success ${common_objpfx}stdio-common/tst-fwrite-bz29459.out || status=1 ++ ++exit $status +diff --git a/stdio-common/tst-fwrite-pipe.c b/stdio-common/tst-fwrite-pipe.c +new file mode 100644 +index 0000000000000000..a6119125b25eeddb +--- /dev/null ++++ b/stdio-common/tst-fwrite-pipe.c +@@ -0,0 +1,130 @@ ++/* Test if fwrite returns EPIPE. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Usually this test reproduces in a few iterations. However, keep a high ++ number of iterations in order to avoid return false-positives due to an ++ overwhelmed/slow system. */ ++#define ITERATIONS 5000 ++ ++#define BUFFERSIZE 20 ++ ++/* When the underlying write () fails with EPIPE, fwrite () is expected to ++ return an error by returning < nmemb and keeping errno=EPIPE. */ ++ ++static int ++do_test (void) ++{ ++ int fd[2]; ++ pid_t p; ++ FILE *f; ++ size_t written; ++ int ret = 1; /* Return failure by default. */ ++ ++ /* Try to create a pipe. */ ++ xpipe (fd); ++ ++ p = xfork (); ++ if (p == 0) ++ { ++ char b[BUFFERSIZE]; ++ size_t bytes; ++ ++ /* Read at least the first line from the pipe before closing it. ++ This is important because it guarantees the file stream will have ++ flag _IO_CURRENTLY_PUTTING set, which triggers important parts of ++ the code that flushes lines from fwrite's internal buffer. */ ++ do { ++ bytes = read (fd[0], b, BUFFERSIZE); ++ } while(bytes > 0 && memrchr (b, '\n', bytes) == NULL); ++ ++ /* Child closes both ends of the pipe in order to trigger an EPIPE ++ error on the parent. */ ++ xclose (fd[0]); ++ xclose (fd[1]); ++ ++ return 0; ++ } ++ else ++ { ++ /* Ensure the string we send has a new line because we're dealing ++ with a lined-buffered stream. */ ++ const char *s = "hello\n"; ++ size_t len = strlen (s); ++ int i; ++ ++ /* Parent only writes to pipe. ++ Close the unused read end of the pipe. */ ++ xclose (fd[0]); ++ ++ /* Ignore SIGPIPE in order to catch the EPIPE returned by the ++ underlying call to write(). */ ++ xsignal(SIGPIPE, SIG_IGN); ++ ++ /* Create a file stream associated with the write end of the pipe. */ ++ f = fdopen (fd[1], "w"); ++ TEST_VERIFY_EXIT (f != NULL); ++ /* Ensure that fwrite buffers the output before writing to the pipe. */ ++ setlinebuf (f); ++ ++ /* Ensure errno is not set before starting. */ ++ errno = 0; ++ for (i = 1; i <= ITERATIONS; i++) ++ { ++ /* Try to write to the pipe. The first calls are expected to ++ suceeded until the child process closes the read end. ++ After that, fwrite () is expected to fail and errno should be ++ set to EPIPE. */ ++ written = fwrite (s, 1, len, f); ++ ++ if (written == len) ++ { ++ TEST_VERIFY_EXIT (ferror (f) == 0); ++ TEST_VERIFY_EXIT (errno == 0); ++ } ++ else ++ { ++ /* An error happened. Check if ferror () does return an error ++ and that it is indeed EPIPE. */ ++ TEST_COMPARE (ferror (f), 1); ++ TEST_COMPARE (errno, EPIPE); ++ /* The test succeeded! Clear the error from the file stream and ++ return success. */ ++ clearerr (f); ++ ret = 0; ++ break; ++ } ++ } ++ ++ xfclose (f); ++ } ++ ++ if (ret) ++ FAIL_RET ("fwrite should have returned an error, but it didn't.\n"); ++ ++ return ret; ++} ++ ++#include diff --git a/glibc-RHEL-119428-5.patch b/glibc-RHEL-119428-5.patch new file mode 100644 index 0000000..79dbe6f --- /dev/null +++ b/glibc-RHEL-119428-5.patch @@ -0,0 +1,262 @@ +commit 1515f74fd81035a79861cd9fa12053fa9450ec65 +Author: Tulio Magno Quites Machado Filho +Date: Tue Jan 28 15:37:44 2025 -0300 + + libio: Add a new fwrite test that evaluates partial writes + + Test if the file-position is correctly updated when fwrite tries to + flush its internal cache but is not able to completely write all items. + + Reviewed-by: DJ Delorie + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index d2a8b95e895d23b6..b90a343b6d2f619c 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -269,6 +269,7 @@ tests := \ + tst-fwrite-memstrm \ + tst-fwrite-overflow \ + tst-fwrite-pipe \ ++ tst-fwrite-pos \ + tst-fwrite-ro \ + tst-getline \ + tst-getline-enomem \ +diff --git a/stdio-common/tst-fwrite-pos.c b/stdio-common/tst-fwrite-pos.c +new file mode 100644 +index 0000000000000000..3923490d5923b4b4 +--- /dev/null ++++ b/stdio-common/tst-fwrite-pos.c +@@ -0,0 +1,233 @@ ++/* Test if fwrite returns consistent values on partial writes. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++/* stdio.h provides BUFSIZ, which is the size of fwrite's internal buffer. */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Length of the buffer in bytes. */ ++#define INBUF_SIZE (BUFSIZ) ++ ++/* Amount of bytes written to fwrite's internal cache that trigger a ++ flush. */ ++#define CACHE_THRESHOLD (BUFSIZ / 2) ++ ++#define ITERATIONS 1000 ++ ++/* Maximum number of bytes written during a partial write. */ ++#define PARTIAL_BYTES 4 ++ ++#define EXPECT_EVENT(opcode, state, expected_state) \ ++ { \ ++ if (state != expected_state) \ ++ { \ ++ char *s = support_fuse_opcode (opcode); \ ++ FAIL ("unexpected event %s at state %d", s, state); \ ++ free (s); \ ++ } \ ++ } ++ ++/* The goal of this test is to check that file position of a file stream is ++ correctly updated when write () returns a partial write. ++ The file system simulates pseudorandom partial writes while the test is ++ running. ++ Meanwhile the main thread calls fwrite () with a large object first and ++ small objects later. The usage of a large enough object ensures that ++ fwrite's internal cache is full enough, without triggering a write to file. ++ Subsequent calls to fwrite are guaranteed to trigger a write to file. */ ++ ++static void ++fuse_thread (struct support_fuse *f, void *closure) ++{ ++ struct fuse_in_header *inh; ++ int state = 0; ++ while ((inh = support_fuse_next (f)) != NULL) ++ { ++ { ++ char *opcode = support_fuse_opcode (inh->opcode); ++ printf ("info: (T) event %s(%llu) len=%u nodeid=%llu\n", ++ opcode, (unsigned long long int) inh->unique, inh->len, ++ (unsigned long long int) inh->nodeid); ++ free (opcode); ++ } ++ ++ /* Handle mountpoint and basic directory operation for the root (1). */ ++ if (support_fuse_handle_mountpoint (f) ++ || (inh->nodeid == 1 && support_fuse_handle_directory (f))) ++ continue; ++ ++ switch (inh->opcode) ++ { ++ case FUSE_LOOKUP: ++ EXPECT_EVENT (inh->nodeid, state, 0); ++ state++; ++ support_fuse_reply_error (f, ENOENT); ++ break; ++ case FUSE_CREATE: ++ EXPECT_EVENT (inh->nodeid, state, 1); ++ state++; ++ struct fuse_entry_out *entry; ++ struct fuse_open_out *open; ++ support_fuse_prepare_create (f, 2, &entry, &open); ++ entry->attr.mode = S_IFREG | 0600; ++ support_fuse_reply_prepared (f); ++ break; ++ case FUSE_GETXATTR: ++ /* We don't need to support extended attributes in this test. */ ++ support_fuse_reply_error (f, ENOSYS); ++ break; ++ case FUSE_GETATTR: ++ /* Happens after open. */ ++ if (inh->nodeid == 2) ++ { ++ struct fuse_attr_out *out = support_fuse_prepare_attr (f); ++ out->attr.mode = S_IFREG | 0600; ++ out->attr.size = 0; ++ support_fuse_reply_prepared (f); ++ } ++ else ++ support_fuse_reply_error (f, ENOENT); ++ break; ++ case FUSE_WRITE: ++ if (inh->nodeid == 2) ++ { ++ struct fuse_write_out out; ++ if (state > 1 && state < ITERATIONS + 2) ++ { ++ /* The 2nd and subsequent calls to fwrite () trigger a ++ flush of fwrite's internal cache. Simulate a partial ++ write of up to PARTIAL_BYTES bytes. */ ++ out.padding = 0; ++ out.size = 1 + rand () % PARTIAL_BYTES, ++ state++; ++ support_fuse_reply (f, &out, sizeof (out)); ++ } ++ else if (state >= ITERATIONS + 2) ++ { ++ /* This request is expected to come from fflush (). Copy ++ all the data successfully. This may be executed more ++ than once. */ ++ struct fuse_write_in *p = support_fuse_cast (WRITE, inh); ++ out.padding = 0; ++ out.size = p->size, ++ state++; ++ support_fuse_reply (f, &out, sizeof (out)); ++ } ++ else ++ support_fuse_reply_error (f, EIO); ++ } ++ else ++ support_fuse_reply_error (f, EIO); ++ break; ++ case FUSE_FLUSH: ++ case FUSE_RELEASE: ++ TEST_COMPARE (inh->nodeid, 2); ++ support_fuse_reply_empty (f); ++ break; ++ default: ++ FAIL ("unexpected event %s", support_fuse_opcode (inh->opcode)); ++ support_fuse_reply_error (f, EIO); ++ } ++ } ++} ++ ++static int ++do_test (void) ++{ ++ char *in; ++ int i; ++ size_t written; ++ ++ _Static_assert (CACHE_THRESHOLD <= INBUF_SIZE, ++ "the input buffer must be larger than the cache threshold"); ++ /* Avoid filling up fwrite's cache. */ ++ _Static_assert (CACHE_THRESHOLD - 1 + PARTIAL_BYTES * ITERATIONS <= BUFSIZ, ++ "fwrite's cache must fit all data written"); ++ ++ support_fuse_init (); ++ struct support_fuse *fs = support_fuse_mount (fuse_thread, NULL); ++ ++ /* Create and open a temporary file in the fuse mount point. */ ++ char *fname = xasprintf ("%s/%sXXXXXX", support_fuse_mountpoint (fs), ++ "tst-fwrite-fuse"); ++ int fd = mkstemp (fname); ++ TEST_VERIFY_EXIT (fd != -1); ++ FILE *f = fdopen (fd, "w"); ++ TEST_VERIFY_EXIT (f != NULL); ++ ++ /* Allocate an input array that will be written to the temporary file. */ ++ in = xmalloc (INBUF_SIZE); ++ for (i = 0; i < INBUF_SIZE; i++) ++ in[i] = i % 0xff; ++ ++ /* Ensure the file position indicator is at the beginning of the stream. */ ++ TEST_COMPARE (ftell (f), 0); ++ ++ /* Try to fill as most data to the cache of the file stream as possible ++ with a single large object. ++ All data is expected to be written to the cache. ++ No errors are expected from this. */ ++ TEST_COMPARE (fwrite (in, CACHE_THRESHOLD - 1, 1, f), 1); ++ TEST_COMPARE (ferror (f), 0); ++ written = CACHE_THRESHOLD - 1; ++ ++ /* Ensure the file position indicator advanced correctly. */ ++ TEST_COMPARE (ftell (f), written); ++ ++ for (i = 0; i < ITERATIONS; i++) ++ { ++ /* Write an extra object of size PARTIAL_BYTES that triggers a write to ++ disk. Our FS will write at most PARTIAL_BYTES bytes to the file ++ instead of all the data. By writting PARTIAL_BYTES, we guarantee ++ the amount of data in the cache will never decrease below ++ CACHE_THRESHOLD. ++ No errors are expected. */ ++ TEST_COMPARE (fwrite (in, PARTIAL_BYTES, 1, f), 1); ++ TEST_COMPARE (ferror (f), 0); ++ written += PARTIAL_BYTES; ++ ++ /* Ensure the file position indicator advanced correctly. */ ++ TEST_COMPARE (ftell (f), written); ++ } ++ ++ /* Flush the rest of the data. */ ++ TEST_COMPARE (fflush (f), 0); ++ TEST_COMPARE (ferror (f), 0); ++ ++ /* Ensure the file position indicator was not modified. */ ++ TEST_COMPARE (ftell (f), written); ++ ++ /* In case an unexpected error happened, clear it before exiting. */ ++ if (ferror (f)) ++ clearerr (f); ++ ++ xfclose (f); ++ free (fname); ++ free (in); ++ support_fuse_unmount (fs); ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119428-6.patch b/glibc-RHEL-119428-6.patch new file mode 100644 index 0000000..c314c5b --- /dev/null +++ b/glibc-RHEL-119428-6.patch @@ -0,0 +1,39 @@ +commit cdb0800022110bc68a033944f09e501be5bd72d7 +Author: Tulio Magno Quites Machado Filho +Date: Thu Jan 30 15:51:01 2025 -0300 + + libio: Replace __LP64__ with __WORDSIZE + + __LP64__ is a GCC extension and shouldn't be used in an installed + header. + + Fixes: 596a61cf6b (libio: Start to return errors when flushing fwrite's buffer [BZ #29459], 2025-01-28) + Reported-by: Florian Weimer + Reviewed-by: Arjun Shankar + +diff --git a/libio/bits/types/struct_FILE.h b/libio/bits/types/struct_FILE.h +index 87d0efb94cfa2ae1..6154b93cb260385a 100644 +--- a/libio/bits/types/struct_FILE.h ++++ b/libio/bits/types/struct_FILE.h +@@ -32,6 +32,7 @@ + #endif + + #include ++#include + + struct _IO_FILE; + struct _IO_marker; +@@ -102,11 +103,11 @@ struct _IO_FILE_complete + void *_freeres_buf; + size_t __pad5; + int _mode; +-#ifdef __LP64__ ++#if __WORDSIZE == 64 + int _unused3; + #endif + __uint64_t _total_written; +-#ifndef __LP64__ ++#if __WORDSIZE == 32 + int _unused3; + #endif + /* Make sure we don't get into trouble again. */ diff --git a/glibc-RHEL-119428-7.patch b/glibc-RHEL-119428-7.patch new file mode 100644 index 0000000..9185fd5 --- /dev/null +++ b/glibc-RHEL-119428-7.patch @@ -0,0 +1,37 @@ +commit 88f7ef881d1b9507aa934104c338b958c37821d7 +Author: Tulio Magno Quites Machado Filho +Date: Fri Jan 31 10:26:22 2025 -0300 + + libio: Initialize _total_written for all kinds of streams + + Move the initialization code to a general place instead of keeping it + specific to file-backed streams. + + Fixes: 596a61cf6b (libio: Start to return errors when flushing fwrite's buffer [BZ #29459], 2025-01-28) + Reported-by: Florian Weimer + Reviewed-by: Arjun Shankar + +diff --git a/libio/fileops.c b/libio/fileops.c +index 3470c12f78defa35..7e2d05e0fb548250 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -113,7 +113,6 @@ _IO_new_file_init_internal (struct _IO_FILE_plus *fp) + + _IO_link_in (fp); + fp->file._fileno = -1; +- fp->file._total_written = 0; + } + + /* External version of _IO_new_file_init_internal which switches off +diff --git a/libio/genops.c b/libio/genops.c +index 0b5344d4cca4e6d9..24d70a3b08c66a9c 100644 +--- a/libio/genops.c ++++ b/libio/genops.c +@@ -586,6 +586,7 @@ _IO_no_init (FILE *fp, int flags, int orientation, + stream. */ + fp->_wide_data = (struct _IO_wide_data *) -1L; + fp->_freeres_list = NULL; ++ fp->_total_written = 0; + } + + int diff --git a/glibc-RHEL-119428-8.patch b/glibc-RHEL-119428-8.patch new file mode 100644 index 0000000..5224677 --- /dev/null +++ b/glibc-RHEL-119428-8.patch @@ -0,0 +1,34 @@ +commit 1b6f868625403d6b7683af840e87d2b18d5d7731 +Author: Tulio Magno Quites Machado Filho +Date: Wed Feb 5 17:20:34 2025 -0300 + + Increase the amount of data tested in stdio-common/tst-fwrite-bz29459.c + + The number of iterations and the length of the string are not high + enough on some systems causing the test to return false-positives. + + Fixes: 596a61cf6b (libio: Start to return errors when flushing fwrite's buffer [BZ #29459], 2025-01-28) + Reported-by: Florian Weimer + +diff --git a/stdio-common/tst-fwrite-bz29459.c b/stdio-common/tst-fwrite-bz29459.c +index 0640faac0c3823ef..4fcc4c89e21d754d 100644 +--- a/stdio-common/tst-fwrite-bz29459.c ++++ b/stdio-common/tst-fwrite-bz29459.c +@@ -32,7 +32,7 @@ + /* Usually this test reproduces in a few iterations. However, keep a high + number of iterations in order to avoid return false-positives due to an + overwhelmed/slow system. */ +-#define ITERATIONS 5000 ++#define ITERATIONS 500000 + + /* The goal of this test is to use fwrite () on a redirected and closed + stdout. A script will guarantee that stdout is redirected to another +@@ -50,7 +50,7 @@ main (void) + size_t rc; + /* Ensure the string we send has a new line because we're dealing + with a lined-buffered stream. */ +- const char *s = "hello\n"; ++ const char *s = "hello world\n"; + const size_t len = strlen(s); + + /* Ensure that fwrite buffers the output before writing to stdout. */ diff --git a/glibc-RHEL-119428-9.patch b/glibc-RHEL-119428-9.patch new file mode 100644 index 0000000..112aae2 --- /dev/null +++ b/glibc-RHEL-119428-9.patch @@ -0,0 +1,39 @@ +commit 4734d0f8adde573aeafe79ad0c71807833db1cae +Author: Stefan Liebler +Date: Mon Feb 24 14:13:00 2025 +0100 + + Increase the amount of data tested in stdio-common/tst-fwrite-pipe.c + + The number of iterations and the length of the string are not high + enough on some systems causing the test to return false-positives. + + Testcase stdio-common/tst-fwrite-bz29459.c was fixed in the same way in + 1b6f868625403d6b7683af840e87d2b18d5d7731 + (Increase the amount of data tested in stdio-common/tst-fwrite-bz29459.c, 2025-02-14) + + Testcases stdio-common/tst-fwrite-bz29459.c and stdio-common/tst-fwrite-pipe.c + were introcued in 596a61cf6b51ce2d58b8ca4e1d1f4fdfe1440dbc + (libio: Start to return errors when flushing fwrite's buffer [BZ #29459], 2025-01-28) + +diff --git a/stdio-common/tst-fwrite-pipe.c b/stdio-common/tst-fwrite-pipe.c +index a6119125b25eeddb..ce1a92b384279600 100644 +--- a/stdio-common/tst-fwrite-pipe.c ++++ b/stdio-common/tst-fwrite-pipe.c +@@ -27,7 +27,7 @@ + /* Usually this test reproduces in a few iterations. However, keep a high + number of iterations in order to avoid return false-positives due to an + overwhelmed/slow system. */ +-#define ITERATIONS 5000 ++#define ITERATIONS 500000 + + #define BUFFERSIZE 20 + +@@ -71,7 +71,7 @@ do_test (void) + { + /* Ensure the string we send has a new line because we're dealing + with a lined-buffered stream. */ +- const char *s = "hello\n"; ++ const char *s = "hello world\n"; + size_t len = strlen (s); + int i; + diff --git a/glibc-RHEL-119431-1.patch b/glibc-RHEL-119431-1.patch new file mode 100644 index 0000000..5747c2d --- /dev/null +++ b/glibc-RHEL-119431-1.patch @@ -0,0 +1,130 @@ +commit 127cefd84dc551a43d0ac58b4619503d04869042 +Author: Adhemerval Zanella +Date: Tue Sep 10 09:22:17 2024 -0300 + + Do not use -Wp to disable fortify (BZ 31928) + + The -Wp does not work properly if the compiler is configured to enable + fortify by default, since it bypasses the compiler driver (which defines + the fortify flags in this case). + + This patch is similar to the one used on Ubuntu [1]. + + I checked with a build for x86_64-linux-gnu, i686-linux-gnu, + aarch64-linux-gnu, s390x-linux-gnu, and riscv64-linux-gnu with + gcc-13 that enables the fortify by default. + + Co-authored-by: Matthias Klose + + [1] https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/glibc/tree/debian/patches/ubuntu/fix-fortify-source.patch + Reviewed-by: DJ Delorie + +diff --git a/configure b/configure +index ec0b62db36..58bfb2917f 100755 +--- a/configure ++++ b/configure +@@ -7525,7 +7525,7 @@ printf "%s\n" "#define HAVE_LIBCAP 1" >>confdefs.h + fi + + +-no_fortify_source="-Wp,-U_FORTIFY_SOURCE" ++no_fortify_source="-U_FORTIFY_SOURCE" + fortify_source="${no_fortify_source}" + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for maximum supported _FORTIFY_SOURCE level" >&5 +@@ -7577,7 +7577,7 @@ esac + + if test "$libc_cv_fortify_source" = yes + then : +- fortify_source="${fortify_source},-D_FORTIFY_SOURCE=${enable_fortify_source}" ++ fortify_source="${fortify_source} -D_FORTIFY_SOURCE=${enable_fortify_source}" + + fi + +diff --git a/configure.ac b/configure.ac +index 7c9b57789e..5af742ce41 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1537,7 +1537,7 @@ dnl If not, then don't use it. + dnl Note that _FORTIFY_SOURCE may have been set through FLAGS too. + dnl _FORTIFY_SOURCE value will be selectively disabled for function that can't + dnl support it +-no_fortify_source="-Wp,-U_FORTIFY_SOURCE" ++no_fortify_source="-U_FORTIFY_SOURCE" + fortify_source="${no_fortify_source}" + + AC_CACHE_CHECK([for maximum supported _FORTIFY_SOURCE level], +@@ -1556,7 +1556,7 @@ AS_CASE([$enable_fortify_source], + [libc_cv_fortify_source=no]) + + AS_IF([test "$libc_cv_fortify_source" = yes], +- [fortify_source="${fortify_source},-D_FORTIFY_SOURCE=${enable_fortify_source}"] ++ [fortify_source="${fortify_source} -D_FORTIFY_SOURCE=${enable_fortify_source}"] + ) + + AC_SUBST(enable_fortify_source) +diff --git a/debug/Makefile b/debug/Makefile +index 3903cc97a3..89ee80bf4d 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -175,16 +175,16 @@ CFLAGS-recvfrom_chk.c += -fexceptions -fasynchronous-unwind-tables + # set up for us, so keep the CFLAGS/CPPFLAGS split logical as the order is: + # + CFLAGS-tst-longjmp_chk.c += -fexceptions -fasynchronous-unwind-tables +-CPPFLAGS-tst-longjmp_chk.c += $(no-fortify-source),-D_FORTIFY_SOURCE=1 ++CPPFLAGS-tst-longjmp_chk.c += $(no-fortify-source) -D_FORTIFY_SOURCE=1 + CFLAGS-tst-longjmp_chk2.c += -fexceptions -fasynchronous-unwind-tables +-CPPFLAGS-tst-longjmp_chk2.c += $(no-fortify-source),-D_FORTIFY_SOURCE=1 ++CPPFLAGS-tst-longjmp_chk2.c += $(no-fortify-source) -D_FORTIFY_SOURCE=1 + CFLAGS-tst-longjmp_chk3.c += -fexceptions -fasynchronous-unwind-tables +-CPPFLAGS-tst-longjmp_chk3.c += $(no-fortify-source),-D_FORTIFY_SOURCE=1 +-CPPFLAGS-tst-realpath-chk.c += $(no-fortify-source),-D_FORTIFY_SOURCE=2 +-CPPFLAGS-tst-chk-cancel.c += $(no-fortify-source),-D_FORTIFY_SOURCE=2 +-CFLAGS-tst-sprintf-fortify-rdonly.c += $(no-fortify-source),-D_FORTIFY_SOURCE=2 +-CFLAGS-tst-fortify-syslog.c += $(no-fortify-source),-D_FORTIFY_SOURCE=2 +-CFLAGS-tst-fortify-wide.c += $(no-fortify-source),-D_FORTIFY_SOURCE=2 ++CPPFLAGS-tst-longjmp_chk3.c += $(no-fortify-source) -D_FORTIFY_SOURCE=1 ++CPPFLAGS-tst-realpath-chk.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 ++CPPFLAGS-tst-chk-cancel.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 ++CFLAGS-tst-sprintf-fortify-rdonly.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 ++CFLAGS-tst-fortify-syslog.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 ++CFLAGS-tst-fortify-wide.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + + # _FORTIFY_SOURCE tests. + # Auto-generate tests for _FORTIFY_SOURCE for different levels, compilers and +@@ -222,7 +222,8 @@ src-chk-nongnu = \#undef _GNU_SOURCE + # cannot be disabled via pragmas, so require -Wno-error to be used. + define gen-chk-test + tests-$(1)-$(4)-chk += tst-fortify-$(1)-$(2)-$(3)-$(4) +-CFLAGS-tst-fortify-$(1)-$(2)-$(3)-$(4).$(1) += $(no-fortify-source),-D_FORTIFY_SOURCE=$(3) -Wno-format \ ++CFLAGS-tst-fortify-$(1)-$(2)-$(3)-$(4).$(1) += $(no-fortify-source) -D_FORTIFY_SOURCE=$(3) \ ++ -Wno-format \ + -Wno-deprecated-declarations \ + -Wno-error + $(eval $(call cflags-$(2),$(1),$(3),$(4))) +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index a1db859684..44165a9c59 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -662,7 +662,7 @@ CFLAGS-tst-gets.c += -Wno-deprecated-declarations + + # BZ #11319 was first fixed for regular vdprintf, then reopened because + # the fortified version had the same bug. +-CFLAGS-tst-bz11319-fortify2.c += $(no-fortify-source),-D_FORTIFY_SOURCE=2 ++CFLAGS-tst-bz11319-fortify2.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + + CFLAGS-tst-memstream-string.c += -fno-builtin-fprintf + +diff --git a/wcsmbs/Makefile b/wcsmbs/Makefile +index 63adf0e8ef..37a44e62c3 100644 +--- a/wcsmbs/Makefile ++++ b/wcsmbs/Makefile +@@ -263,7 +263,7 @@ CFLAGS-wcstod_l.c += $(strtox-CFLAGS) $(config-cflags-wno-ignored-attributes) + CFLAGS-wcstold_l.c += $(strtox-CFLAGS) $(config-cflags-wno-ignored-attributes) + CFLAGS-wcstof128_l.c += $(strtox-CFLAGS) + CFLAGS-wcstof_l.c += $(strtox-CFLAGS) $(config-cflags-wno-ignored-attributes) +-CPPFLAGS-tst-wchar-h.c += $(no-fortify-source),-D_FORTIFY_SOURCE=2 ++CPPFLAGS-tst-wchar-h.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + + CFLAGS-wcschr.c += $(config-cflags-wno-ignored-attributes) + CFLAGS-wmemchr.c += $(config-cflags-wno-ignored-attributes) diff --git a/glibc-RHEL-119431-2.patch b/glibc-RHEL-119431-2.patch new file mode 100644 index 0000000..599adc9 --- /dev/null +++ b/glibc-RHEL-119431-2.patch @@ -0,0 +1,696 @@ +commit ed6a68bac7cd056abda9008019c71b167f0362dc +Author: Adhemerval Zanella +Date: Fri Mar 14 16:09:57 2025 -0300 + + debug: Improve '%n' fortify detection (BZ 30932) + + The 7bb8045ec0 path made the '%n' fortify check ignore EMFILE errors + while trying to open /proc/self/maps, and this added a security + issue where EMFILE can be attacker-controlled thus making it + ineffective for some cases. + + The EMFILE failure is reinstated but with a different error + message. Also, to improve the false positive of the hardening for + the cases where no new files can be opened, the + _dl_readonly_area now uses _dl_find_object to check if the + memory area is within a writable ELF segment. The procfs method is + still used as fallback. + + Checked on x86_64-linux-gnu and i686-linux-gnu. + Reviewed-by: Arjun Shankar + +diff --git a/Makeconfig b/Makeconfig +index aa547a443f..bf50406656 100644 +--- a/Makeconfig ++++ b/Makeconfig +@@ -633,7 +633,7 @@ link-libc-printers-tests = $(link-libc-rpath) \ + $(link-libc-tests-after-rpath-link) + + # This is how to find at build-time things that will be installed there. +-rpath-dirs = math elf dlfcn nss nis rt resolv mathvec support ++rpath-dirs = math elf dlfcn nss nis rt resolv mathvec support debug + rpath-link = \ + $(common-objdir):$(subst $(empty) ,:,$(patsubst ../$(subdir),.,$(rpath-dirs:%=$(common-objpfx)%))) + else # build-static +diff --git a/debug/Makefile b/debug/Makefile +index 905f2bf7e0..2484580cd2 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -74,6 +74,7 @@ routines = \ + readlink_chk \ + readlinkat_chk \ + readonly-area \ ++ readonly-area-fallback \ + realpath_chk \ + recv_chk \ + recvfrom_chk \ +@@ -183,9 +184,15 @@ CPPFLAGS-tst-longjmp_chk3.c += $(no-fortify-source) -D_FORTIFY_SOURCE=1 + CPPFLAGS-tst-realpath-chk.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + CPPFLAGS-tst-chk-cancel.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + CFLAGS-tst-sprintf-fortify-rdonly.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 ++CFLAGS-tst-sprintf-fortify-rdonly-mod.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 ++CFLAGS-tst-sprintf-fortify-rdonly-dlopen.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + CFLAGS-tst-fortify-syslog.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + CFLAGS-tst-fortify-wide.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + ++$(objpfx)tst-sprintf-fortify-rdonly: \ ++ $(objpfx)tst-sprintf-fortify-rdonly-mod.so \ ++ $(objpfx)tst-sprintf-fortify-rdonly-dlopen.so ++ + # _FORTIFY_SOURCE tests. + # Auto-generate tests for _FORTIFY_SOURCE for different levels, compilers and + # preprocessor conditions based on tst-fortify.c. +@@ -305,6 +312,11 @@ tests-container += \ + tst-fortify-syslog \ + # tests-container + ++modules-names += \ ++ tst-sprintf-fortify-rdonly-dlopen \ ++ tst-sprintf-fortify-rdonly-mod \ ++ # modules-names ++ + ifeq ($(have-ssp),yes) + tests += tst-ssp-1 + endif +diff --git a/debug/readonly-area.c b/debug/readonly-area.c +index 04b437ed8d..4311b8214a 100644 +--- a/debug/readonly-area.c ++++ b/debug/readonly-area.c +@@ -16,18 +16,19 @@ + . */ + + #include ++#include + +-/* Return 1 if the whole area PTR .. PTR+SIZE is not writable. +- Return -1 if it is writable. */ +- +-int ++enum readonly_error_type + __readonly_area (const void *ptr, size_t size) + { +- /* We cannot determine in general whether memory is writable or not. +- This must be handled in a system-dependent manner. to not +- unconditionally break code we need to return here a positive +- answer. This disables this security measure but that is the +- price people have to pay for using systems without a real +- implementation of this interface. */ +- return 1; ++ switch (GLRO(dl_readonly_area (ptr, size))) ++ { ++ case dl_readonly_area_rdonly: ++ return readonly_noerror; ++ case dl_readonly_area_writable: ++ return readonly_area_writable; ++ default: ++ break; ++ } ++ return __readonly_area_fallback (ptr, size); + } +diff --git a/debug/tst-sprintf-fortify-rdonly-dlopen.c b/debug/tst-sprintf-fortify-rdonly-dlopen.c +new file mode 100644 +index 0000000000..7da3f51f16 +--- /dev/null ++++ b/debug/tst-sprintf-fortify-rdonly-dlopen.c +@@ -0,0 +1 @@ ++#include "tst-sprintf-fortify-rdonly-mod.c" +diff --git a/debug/tst-sprintf-fortify-rdonly-mod.c b/debug/tst-sprintf-fortify-rdonly-mod.c +new file mode 100644 +index 0000000000..3655f27b32 +--- /dev/null ++++ b/debug/tst-sprintf-fortify-rdonly-mod.c +@@ -0,0 +1,56 @@ ++/* Testcase for BZ 30932. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++ ++static const char *str2 = "F"; ++static char writeable_format[10] = "%s"; ++static char relro_format[10] __attribute__ ((section (".data.rel.ro"))) = ++ "%s%n%s%n"; ++ ++void ++init_writable (void) ++{ ++ strcpy (writeable_format + 2, "%n%s%n"); ++} ++ ++int ++sprintf_writable (int *n1, int *n2) ++{ ++ char buf[128]; ++ return sprintf (buf, writeable_format, str2, n1, str2, n2); ++} ++ ++int ++sprintf_relro (int *n1, int *n2) ++{ ++ char buf[128]; ++ return sprintf (buf, relro_format, str2, n1, str2, n2); ++} ++ ++int ++sprintf_writable_malloc (int *n1, int *n2) ++{ ++ char buf[128]; ++ char *buf2_malloc = strdup (writeable_format); ++ if (buf2_malloc == NULL) ++ abort (); ++ return sprintf (buf, buf2_malloc, str2, n1, str2, n2); ++} +diff --git a/debug/tst-sprintf-fortify-rdonly.c b/debug/tst-sprintf-fortify-rdonly.c +index ba5a791020..fafc8340ea 100644 +--- a/debug/tst-sprintf-fortify-rdonly.c ++++ b/debug/tst-sprintf-fortify-rdonly.c +@@ -27,16 +27,64 @@ + #include + #include + #include ++#include + +-jmp_buf chk_fail_buf; +-bool chk_fail_ok; ++static sigjmp_buf chk_fail_buf; ++static volatile int ret; ++static bool chk_fail_ok; + +-const char *str2 = "F"; +-char buf2[10] = "%s"; ++static void ++handler (int sig) ++{ ++ if (chk_fail_ok) ++ { ++ chk_fail_ok = false; ++ longjmp (chk_fail_buf, 1); ++ } ++ else ++ _exit (127); ++} ++ ++#define FORTIFY_FAIL \ ++ do { printf ("Failure on line %d\n", __LINE__); ret = 1; } while (0) ++#define CHK_FAIL_START \ ++ chk_fail_ok = true; \ ++ if (! sigsetjmp (chk_fail_buf, 1)) \ ++ { ++#define CHK_FAIL_END \ ++ chk_fail_ok = false; \ ++ FORTIFY_FAIL; \ ++ } ++ ++static const char *str2 = "F"; ++static char writeable_format[10] = "%s"; ++static char relro_format[10] __attribute__ ((section (".data.rel.ro"))) = ++ "%s%n%s%n"; ++ ++extern void init_writable (void); ++extern int sprintf_writable (int *, int *); ++extern int sprintf_relro (int *, int *); ++extern int sprintf_writable_malloc (int *, int *); ++ ++#define str(__x) # __x ++void (*init_writable_dlopen)(void); ++int (*sprintf_writable_dlopen)(int *, int *); ++int (*sprintf_rdonly_dlopen)(int *, int *); ++int (*sprintf_writable_malloc_dlopen)(int *, int *); + + static int + do_test (void) + { ++ set_fortify_handler (handler); ++ ++ { ++ void *h = xdlopen ("tst-sprintf-fortify-rdonly-dlopen.so", RTLD_NOW); ++ init_writable_dlopen = xdlsym (h, str(init_writable)); ++ sprintf_writable_dlopen = xdlsym (h, str(sprintf_writable)); ++ sprintf_rdonly_dlopen = xdlsym (h, str(sprintf_relro)); ++ sprintf_writable_malloc_dlopen = xdlsym (h, str(sprintf_writable_malloc)); ++ } ++ + struct rlimit rl; + int max_fd = 24; + +@@ -63,20 +111,94 @@ do_test (void) + } + TEST_VERIFY_EXIT (nfiles != 0); + +- /* When the format string is writable and contains %n, +- with -D_FORTIFY_SOURCE=2 it causes __chk_fail. However, if libc can not +- open procfs to check if the input format string in within a writable +- memory segment, the fortify version can not perform the check. */ +- char buf[128]; +- int n1; +- int n2; +- +- strcpy (buf2 + 2, "%n%s%n"); +- if (sprintf (buf, buf2, str2, &n1, str2, &n2) != 2 +- || n1 != 1 || n2 != 2) +- FAIL_EXIT1 ("sprintf failed: %s %d %d", buf, n1, n2); +- +- return 0; ++ strcpy (writeable_format + 2, "%n%s%n"); ++ init_writable (); ++ init_writable_dlopen (); ++ ++ /* writeable_format is at a writable part of .bss segment, so libc should be ++ able to check it without resorting to procfs. */ ++ { ++ char buf[128]; ++ int n1; ++ int n2; ++ CHK_FAIL_START ++ sprintf (buf, writeable_format, str2, &n1, str2, &n2); ++ CHK_FAIL_END ++ } ++ ++ /* Same as before, but from an library. */ ++ { ++ int n1; ++ int n2; ++ CHK_FAIL_START ++ sprintf_writable (&n1, &n2); ++ CHK_FAIL_END ++ } ++ ++ { ++ int n1; ++ int n2; ++ CHK_FAIL_START ++ sprintf_writable_dlopen (&n1, &n2); ++ CHK_FAIL_END ++ } ++ ++ /* relro_format is at a readonly part of .bss segment, so '%n' in format input ++ should not trigger a fortify failure. */ ++ { ++ char buf[128]; ++ int n1; ++ int n2; ++ if (sprintf (buf, relro_format, str2, &n1, str2, &n2) != 2 ++ || n1 != 1 || n2 != 2) ++ FAIL_EXIT1 ("sprintf failed: %s %d %d", buf, n1, n2); ++ } ++ ++ /* Same as before, but from an library. */ ++ { ++ int n1; ++ int n2; ++ if (sprintf_relro (&n1, &n2) != 2 || n1 != 1 || n2 != 2) ++ FAIL_EXIT1 ("sprintf failed: %d %d", n1, n2); ++ } ++ ++ { ++ int n1; ++ int n2; ++ if (sprintf_rdonly_dlopen (&n1, &n2) != 2 || n1 != 1 || n2 != 2) ++ FAIL_EXIT1 ("sprintf failed: %d %d", n1, n2); ++ } ++ ++ /* However if the format string is placed on a writable memory not covered ++ by ELF segments, libc needs to resort to procfs. */ ++ { ++ char buf[128]; ++ int n1; ++ int n2; ++ char *buf2_malloc = xstrdup (writeable_format); ++ CHK_FAIL_START ++ sprintf (buf, buf2_malloc, str2, &n1, str2, &n2); ++ CHK_FAIL_END ++ } ++ ++ /* Same as before, but from an library. */ ++ { ++ int n1; ++ int n2; ++ CHK_FAIL_START ++ sprintf_writable_malloc (&n1, &n2); ++ CHK_FAIL_END ++ } ++ ++ { ++ int n1; ++ int n2; ++ CHK_FAIL_START ++ sprintf_writable_malloc_dlopen (&n1, &n2); ++ CHK_FAIL_END ++ } ++ ++ return ret; + } + + #include +diff --git a/elf/Makefile b/elf/Makefile +index 3d60000ec9..5566d39dac 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -73,6 +73,7 @@ dl-routines = \ + dl-open \ + dl-origin \ + dl-printf \ ++ dl-readonly-area \ + dl-reloc \ + dl-runtime \ + dl-scope \ +diff --git a/elf/dl-readonly-area.c b/elf/dl-readonly-area.c +new file mode 100644 +index 0000000000..22769ec9d9 +--- /dev/null ++++ b/elf/dl-readonly-area.c +@@ -0,0 +1,86 @@ ++/* Check if range is within a read-only from a loaded ELF object. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++ ++static bool ++check_relro (const struct link_map *l, uintptr_t start, uintptr_t end) ++{ ++ if (l->l_relro_addr != 0) ++ { ++ uintptr_t relro_start = ALIGN_DOWN (l->l_addr + l->l_relro_addr, ++ GLRO(dl_pagesize)); ++ uintptr_t relro_end = ALIGN_DOWN (l->l_addr + l->l_relro_addr ++ + l->l_relro_size, ++ GLRO(dl_pagesize)); ++ /* RELRO is caved out from a RW segment, so the next range is either ++ RW or nonexistent. */ ++ return relro_start <= start && end <= relro_end ++ ? dl_readonly_area_rdonly : dl_readonly_area_writable; ++ ++ } ++ return dl_readonly_area_writable; ++} ++ ++enum dl_readonly_area_error_type ++_dl_readonly_area (const void *ptr, size_t size) ++{ ++ struct dl_find_object dlfo; ++ if (_dl_find_object ((void *)ptr, &dlfo) != 0) ++ return dl_readonly_area_not_found; ++ ++ const struct link_map *l = dlfo.dlfo_link_map; ++ uintptr_t ptr_start = (uintptr_t) ptr; ++ uintptr_t ptr_end = ptr_start + size; ++ ++ for (const ElfW(Phdr) *ph = l->l_phdr; ph < &l->l_phdr[l->l_phnum]; ++ph) ++ if (ph->p_type == PT_LOAD) ++ { ++ /* For segments with alignment larger than the page size, ++ _dl_map_segment allocates additional space that is mark as ++ PROT_NONE (so we can ignore). */ ++ uintptr_t from = l->l_addr ++ + ALIGN_DOWN (ph->p_vaddr, GLRO(dl_pagesize)); ++ uintptr_t to = l->l_addr ++ + ALIGN_UP (ph->p_vaddr + ph->p_filesz, GLRO(dl_pagesize)); ++ ++ /* Found an entry that at least partially covers the area. */ ++ if (from < ptr_end && to > ptr_start) ++ { ++ if (ph->p_flags & PF_W) ++ return check_relro (l, ptr_start, ptr_end); ++ ++ if ((ph->p_flags & PF_R) == 0) ++ return dl_readonly_area_writable; ++ ++ if (from <= ptr_start && to >= ptr_end) ++ return dl_readonly_area_rdonly; ++ else if (from <= ptr_start) ++ size -= to - ptr_start; ++ else if (to >= ptr_end) ++ size -= ptr_end - from; ++ else ++ size -= to - from; ++ ++ if (size == 0) ++ break; ++ } ++ } ++ ++ return size == 0 ? dl_readonly_area_rdonly : dl_readonly_area_not_found; ++} +diff --git a/elf/rtld.c b/elf/rtld.c +index 00b25c1a73..099c447e80 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -372,6 +372,7 @@ struct rtld_global_ro _rtld_global_ro attribute_relro = + ._dl_error_free = _dl_error_free, + ._dl_tls_get_addr_soft = _dl_tls_get_addr_soft, + ._dl_libc_freeres = __rtld_libc_freeres, ++ ._dl_readonly_area = _dl_readonly_area, + }; + /* If we would use strong_alias here the compiler would see a + non-hidden definition. This would undo the effect of the previous +diff --git a/include/stdlib.h b/include/stdlib.h +index 57f4ab8545..b7147ba590 100644 +--- a/include/stdlib.h ++++ b/include/stdlib.h +@@ -361,6 +361,21 @@ struct abort_msg_s + extern struct abort_msg_s *__abort_msg; + libc_hidden_proto (__abort_msg) + ++enum readonly_error_type ++{ ++ readonly_noerror, ++ readonly_area_writable, ++ readonly_procfs_inaccessible, ++ readonly_procfs_open_fail, ++}; ++ ++extern enum readonly_error_type __readonly_area (const void *ptr, ++ size_t size) ++ attribute_hidden; ++extern enum readonly_error_type __readonly_area_fallback (const void *ptr, ++ size_t size) ++ attribute_hidden; ++ + # if IS_IN (rtld) + extern __typeof (unsetenv) unsetenv attribute_hidden; + extern __typeof (__strtoul_internal) __strtoul_internal attribute_hidden; +diff --git a/stdio-common/vfprintf-internal.c b/stdio-common/vfprintf-internal.c +index aa9708bff5..fa41e1b242 100644 +--- a/stdio-common/vfprintf-internal.c ++++ b/stdio-common/vfprintf-internal.c +@@ -576,7 +576,8 @@ static const uint8_t jump_table[] = + + /* Handle positional format specifiers. */ + static void printf_positional (struct Xprintf_buffer *buf, +- const CHAR_T *format, int readonly_format, ++ const CHAR_T *format, ++ enum readonly_error_type readonly_format, + va_list ap, va_list *ap_savep, + int nspecs_done, const UCHAR_T *lead_str_end, + CHAR_T *work_buffer, int save_errno, +@@ -626,9 +627,7 @@ Xprintf_buffer (struct Xprintf_buffer *buf, const CHAR_T *format, + /* For the %m format we may need the current `errno' value. */ + int save_errno = errno; + +- /* 1 if format is in read-only memory, -1 if it is in writable memory, +- 0 if unknown. */ +- int readonly_format = 0; ++ enum readonly_error_type readonly_format = readonly_noerror; + + /* Initialize local variables. */ + grouping = (const char *) -1; +@@ -1045,7 +1044,7 @@ do_positional: + + static void + printf_positional (struct Xprintf_buffer * buf, const CHAR_T *format, +- int readonly_format, ++ enum readonly_error_type readonly_format, + va_list ap, va_list *ap_savep, int nspecs_done, + const UCHAR_T *lead_str_end, + CHAR_T *work_buffer, int save_errno, +diff --git a/stdio-common/vfprintf-process-arg.c b/stdio-common/vfprintf-process-arg.c +index 8d20493766..90b5e61ceb 100644 +--- a/stdio-common/vfprintf-process-arg.c ++++ b/stdio-common/vfprintf-process-arg.c +@@ -324,16 +324,24 @@ LABEL (form_pointer): + LABEL (form_number): + if ((mode_flags & PRINTF_FORTIFY) != 0) + { +- if (! readonly_format) +- { +- extern int __readonly_area (const void *, size_t) +- attribute_hidden; +- readonly_format +- = __readonly_area (format, ((STR_LEN (format) + 1) +- * sizeof (CHAR_T))); +- } +- if (readonly_format < 0) +- __libc_fatal ("*** %n in writable segment detected ***\n"); ++ if (readonly_format == readonly_noerror) ++ readonly_format = __readonly_area (format, ((STR_LEN (format) + 1) ++ * sizeof (CHAR_T))); ++ switch (readonly_format) ++ { ++ case readonly_area_writable: ++ __libc_fatal ("*** %n in writable segments detected ***\n"); ++ /* The format is not within ELF segments and opening /proc/self/maps ++ failed because there are too many files. */ ++ case readonly_procfs_open_fail: ++ __libc_fatal ("*** procfs could not open ***\n"); ++ /* The /proc/self/maps can not be opened either because it is not ++ available or the process does not have the right permission. Since ++ it should not be attacker-controlled we can avoid failure. */ ++ case readonly_procfs_inaccessible: ++ case readonly_noerror: ++ break; ++ } + } + /* Answer the count of characters written. */ + void *ptrptr = process_arg_pointer (); +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index 19494b82ee..5b12a41a18 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -264,6 +264,12 @@ struct audit_ifaces + struct audit_ifaces *next; + }; + ++enum dl_readonly_area_error_type ++{ ++ dl_readonly_area_rdonly, ++ dl_readonly_area_writable, ++ dl_readonly_area_not_found, ++}; + + /* Test whether given NAME matches any of the names of the given object. */ + extern int _dl_name_match_p (const char *__name, const struct link_map *__map) +@@ -685,6 +691,10 @@ struct rtld_global_ro + dlopen. */ + int (*_dl_find_object) (void *, struct dl_find_object *); + ++ /* Implementation of _dl_readonly_area, used in fortify routines to check ++ if memory area is within a read-only ELF segment. */ ++ enum dl_readonly_area_error_type (*_dl_readonly_area) (const void *, size_t); ++ + /* Dynamic linker operations used after static dlopen. */ + const struct dlfcn_hook *_dl_dlfcn_hook; + +@@ -1297,6 +1307,10 @@ extern void _dl_show_scope (struct link_map *new, int from) + extern struct link_map *_dl_find_dso_for_object (const ElfW(Addr) addr); + rtld_hidden_proto (_dl_find_dso_for_object) + ++extern enum dl_readonly_area_error_type _dl_readonly_area (const void *ptr, ++ size_t size) ++ attribute_hidden; ++ + /* Initialization which is normally done by the dynamic linker. */ + extern void _dl_non_dynamic_init (void) + attribute_hidden; +diff --git a/sysdeps/mach/readonly-area.c b/sysdeps/mach/readonly-area-fallback.c +similarity index 90% +rename from sysdeps/mach/readonly-area.c +rename to sysdeps/mach/readonly-area-fallback.c +index fb89413fe6..3fb873298b 100644 +--- a/sysdeps/mach/readonly-area.c ++++ b/sysdeps/mach/readonly-area-fallback.c +@@ -20,11 +20,8 @@ + #include + #include + +-/* Return 1 if the whole area PTR .. PTR+SIZE is not writable. +- Return -1 if it is writable. */ +- +-int +-__readonly_area (const char *ptr, size_t size) ++enum readonly_error_type ++__readonly_area_fallback (const void *ptr, size_t size) + { + vm_address_t region_address = (uintptr_t) ptr; + vm_size_t region_length = size; +@@ -46,11 +43,11 @@ __readonly_area (const char *ptr, size_t size) + continue; + + if (protection & VM_PROT_WRITE) +- return -1; ++ return readonly_area_writable; + + if (region_address - (uintptr_t) ptr >= size) + break; + } + +- return 1; ++ return readonly_noerror; + } +diff --git a/sysdeps/unix/sysv/linux/readonly-area.c b/sysdeps/unix/sysv/linux/readonly-area-fallback.c +similarity index 84% +rename from sysdeps/unix/sysv/linux/readonly-area.c +rename to sysdeps/unix/sysv/linux/readonly-area-fallback.c +index 62d2070c72..c93ad2a598 100644 +--- a/sysdeps/unix/sysv/linux/readonly-area.c ++++ b/sysdeps/unix/sysv/linux/readonly-area-fallback.c +@@ -23,11 +23,8 @@ + #include + #include "libio/libioP.h" + +-/* Return 1 if the whole area PTR .. PTR+SIZE is not writable. +- Return -1 if it is writable. */ +- +-int +-__readonly_area (const char *ptr, size_t size) ++enum readonly_error_type ++__readonly_area_fallback (const void *ptr, size_t size) + { + const void *ptr_end = ptr + size; + +@@ -42,11 +39,11 @@ __readonly_area (const char *ptr, size_t size) + to the /proc filesystem if it is set[ug]id. There has + been no willingness to change this in the kernel so + far. */ +- || errno == EACCES +- /* Process has reached the maximum number of open files. */ +- || errno == EMFILE) +- return 1; +- return -1; ++ || errno == EACCES) ++ return readonly_procfs_inaccessible; ++ /* Process has reached the maximum number of open files or another ++ unusual error. */ ++ return readonly_procfs_open_fail; + } + + /* We need no locking. */ +@@ -98,7 +95,5 @@ __readonly_area (const char *ptr, size_t size) + fclose (fp); + free (line); + +- /* If the whole area between ptr and ptr_end is covered by read-only +- VMAs, return 1. Otherwise return -1. */ +- return size == 0 ? 1 : -1; ++ return size == 0 ? readonly_noerror : readonly_area_writable; + } diff --git a/glibc-RHEL-119431-3.patch b/glibc-RHEL-119431-3.patch new file mode 100644 index 0000000..795c67e --- /dev/null +++ b/glibc-RHEL-119431-3.patch @@ -0,0 +1,28 @@ +commit 3a9c1497e320d77b2453ee88d7d6b40e162e85d4 +Author: Florian Weimer +Date: Fri Jul 18 19:58:56 2025 +0200 + + debug: Do not link tst-sprintf-fortify-rdonly against the dlopen module + + The test intends to load tst-sprintf-fortify-rdonly-dlopen.so via + dlopen, and directly linking against it prevents that. + + Reviewed-by: Adhemerval Zanella Netto + +diff --git a/debug/Makefile b/debug/Makefile +index f29bd20b97..13f638e344 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -189,9 +189,9 @@ CFLAGS-tst-sprintf-fortify-rdonly-dlopen.c += $(no-fortify-source) -D_FORTIFY_SO + CFLAGS-tst-fortify-syslog.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + CFLAGS-tst-fortify-wide.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + +-$(objpfx)tst-sprintf-fortify-rdonly: \ +- $(objpfx)tst-sprintf-fortify-rdonly-mod.so \ +- $(objpfx)tst-sprintf-fortify-rdonly-dlopen.so ++$(objpfx)tst-sprintf-fortify-rdonly: $(objpfx)tst-sprintf-fortify-rdonly-mod.so ++$(objpfx)tst-sprintf-fortify-rdonly.out: \ ++ $(objpfx)tst-sprintf-fortify-rdonly-dlopen.so + + # _FORTIFY_SOURCE tests. + # Auto-generate tests for _FORTIFY_SOURCE for different levels, compilers and diff --git a/glibc-RHEL-119431-4.patch b/glibc-RHEL-119431-4.patch new file mode 100644 index 0000000..1e78d36 --- /dev/null +++ b/glibc-RHEL-119431-4.patch @@ -0,0 +1,93 @@ +commit 01196393c257c59f63e0e14fa1bfe8d2a699bf2d +Author: Florian Weimer +Date: Fri Jul 18 19:58:59 2025 +0200 + + elf: Initialize GLRO (dl_read_only_area) after static dlopen (bug 33139) + + The _dl_read_only_area function in the uninitialized ld.so after + static dlopen is not able to find anything. Instead, we need to + redirect to the code from the statically linked main program. + + Fixes commit d60fffe28a46b2a41fc308c1804ff02375d27408 ("debug: + Improve '%n' fortify detection (BZ 30932)"). + + Reviewed-by: Adhemerval Zanella Netto + +diff --git a/debug/Makefile b/debug/Makefile +index 13f638e344..919bf91c42 100644 +--- a/debug/Makefile ++++ b/debug/Makefile +@@ -186,12 +186,19 @@ CPPFLAGS-tst-chk-cancel.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + CFLAGS-tst-sprintf-fortify-rdonly.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + CFLAGS-tst-sprintf-fortify-rdonly-mod.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + CFLAGS-tst-sprintf-fortify-rdonly-dlopen.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 ++CFLAGS-tst-sprintf-fortify-rdonly-static.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + CFLAGS-tst-fortify-syslog.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + CFLAGS-tst-fortify-wide.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + + $(objpfx)tst-sprintf-fortify-rdonly: $(objpfx)tst-sprintf-fortify-rdonly-mod.so + $(objpfx)tst-sprintf-fortify-rdonly.out: \ + $(objpfx)tst-sprintf-fortify-rdonly-dlopen.so ++$(objpfx)tst-sprintf-fortify-rdonly-static: \ ++ $(objpfx)tst-sprintf-fortify-rdonly-dlopen.o ++$(objpfx)tst-sprintf-fortify-rdonly-static.out: \ ++ $(objpfx)tst-sprintf-fortify-rdonly-dlopen.so ++tst-sprintf-fortify-rdonly-static-ENV = \ ++ LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)/elf + + # _FORTIFY_SOURCE tests. + # Auto-generate tests for _FORTIFY_SOURCE for different levels, compilers and +@@ -302,9 +309,14 @@ tests = \ + tst-longjmp_chk3 \ + tst-realpath-chk \ + tst-sprintf-fortify-rdonly \ ++ tst-sprintf-fortify-rdonly-static \ + tst-sprintf-fortify-unchecked \ + # tests + ++tests-static = \ ++ tst-sprintf-fortify-rdonly-static \ ++ # tests-static ++ + tests-time64 += \ + $(tests-all-time64-chk) \ + # tests-time64 +diff --git a/debug/tst-sprintf-fortify-rdonly-static.c b/debug/tst-sprintf-fortify-rdonly-static.c +new file mode 100644 +index 0000000000..ca5bbd5aff +--- /dev/null ++++ b/debug/tst-sprintf-fortify-rdonly-static.c +@@ -0,0 +1 @@ ++#include "tst-sprintf-fortify-rdonly.c" +diff --git a/elf/rtld.c b/elf/rtld.c +index f889f01b4a..493f9696ea 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -372,7 +372,6 @@ struct rtld_global_ro _rtld_global_ro attribute_relro = + ._dl_error_free = _dl_error_free, + ._dl_tls_get_addr_soft = _dl_tls_get_addr_soft, + ._dl_libc_freeres = __rtld_libc_freeres, +- ._dl_readonly_area = _dl_readonly_area, + }; + /* If we would use strong_alias here the compiler would see a + non-hidden definition. This would undo the effect of the previous +@@ -457,6 +456,7 @@ _dl_start_final (void *arg, struct dl_start_final_info *info) + /* Do not use an initializer for these members because it would + interfere with __rtld_static_init. */ + GLRO (dl_find_object) = &_dl_find_object; ++ GLRO (dl_readonly_area) = &_dl_readonly_area; + + /* If it hasn't happen yet record the startup time. */ + rtld_timer_start (&start_time); +diff --git a/elf/rtld_static_init.c b/elf/rtld_static_init.c +index 642379076b..9c56180f88 100644 +--- a/elf/rtld_static_init.c ++++ b/elf/rtld_static_init.c +@@ -79,6 +79,7 @@ __rtld_static_init (struct link_map *map) + attribute_hidden; + dl->_dl_tls_static_size = _dl_tls_static_size; + dl->_dl_find_object = _dl_find_object; ++ dl->_dl_readonly_area = _dl_readonly_area; + + __rtld_static_init_arch (map, dl); + } diff --git a/glibc-RHEL-119431-5.patch b/glibc-RHEL-119431-5.patch new file mode 100644 index 0000000..96e22fe --- /dev/null +++ b/glibc-RHEL-119431-5.patch @@ -0,0 +1,93 @@ +Downstream-only patch to restore internal GLIBC_PRIVATE ABI change due +to glibc-RHEL-119431-2.patch. Adding an entry to rtld_global_ro struct +changes offsets. This patch corrects that. + +RHEL does not support fortify inside shared objects loaded from +statically linked programs, so that test is xfail'd. + +diff --git a/debug/readonly-area.c b/debug/readonly-area.c +index 0648121846cdd5d1..86e3e9b9c3b03958 100644 +--- a/debug/readonly-area.c ++++ b/debug/readonly-area.c +@@ -21,7 +21,7 @@ + enum readonly_error_type + __readonly_area (const void *ptr, size_t size) + { +- switch (GLRO(dl_readonly_area (ptr, size))) ++ switch (_dl_readonly_area (ptr, size)) + { + case dl_readonly_area_rdonly: + return readonly_noerror; +diff --git a/elf/Versions b/elf/Versions +index 4b8b155d8e2bef70..17834c7d1c371e1d 100644 +--- a/elf/Versions ++++ b/elf/Versions +@@ -79,5 +70,8 @@ ld { + # Set value of a tunable. + __tunable_is_initialized; + __tunable_get_val; ++ ++ # Check if an address range within a loaded ELF object is read-only. ++ _dl_readonly_area; + } + } +diff --git a/elf/rtld.c b/elf/rtld.c +index d421750734e113e6..d02ecc834c9a4d43 100644 +--- a/elf/rtld.c ++++ b/elf/rtld.c +@@ -456,7 +456,6 @@ _dl_start_final (void *arg, struct dl_st + /* Do not use an initializer for these members because it would + interfere with __rtld_static_init. */ + GLRO (dl_find_object) = &_dl_find_object; +- GLRO (dl_readonly_area) = &_dl_readonly_area; + + /* If it hasn't happen yet record the startup time. */ + rtld_timer_start (&start_time); +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index 15c21491a291d1ae..537d1293c7b5543b 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -691,10 +691,6 @@ struct rtld_global_ro + dlopen. */ + int (*_dl_find_object) (void *, struct dl_find_object *); + +- /* Implementation of _dl_readonly_area, used in fortify routines to check +- if memory area is within a read-only ELF segment. */ +- enum dl_readonly_area_error_type (*_dl_readonly_area) (const void *, size_t); +- + /* Dynamic linker operations used after static dlopen. */ + const struct dlfcn_hook *_dl_dlfcn_hook; + +@@ -1308,8 +1304,7 @@ extern struct link_map *_dl_find_dso_for_object (const ElfW(Addr) addr); + rtld_hidden_proto (_dl_find_dso_for_object) + + extern enum dl_readonly_area_error_type _dl_readonly_area (const void *ptr, +- size_t size) +- attribute_hidden; ++ size_t size); + + /* Initialization which is normally done by the dynamic linker. */ + extern void _dl_non_dynamic_init (void) +diff -rup a/debug/Makefile b/debug/Makefile +--- a/debug/Makefile 2025-11-13 15:43:52.493437313 -0500 ++++ b/debug/Makefile 2025-11-18 14:18:05.311656186 -0500 +@@ -190,6 +190,8 @@ CFLAGS-tst-sprintf-fortify-rdonly-static + CFLAGS-tst-fortify-syslog.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + CFLAGS-tst-fortify-wide.c += $(no-fortify-source) -D_FORTIFY_SOURCE=2 + ++test-xfail-tst-sprintf-fortify-rdonly-static = yes ++ + $(objpfx)tst-sprintf-fortify-rdonly: $(objpfx)tst-sprintf-fortify-rdonly-mod.so + $(objpfx)tst-sprintf-fortify-rdonly.out: \ + $(objpfx)tst-sprintf-fortify-rdonly-dlopen.so +diff -rup a/elf/rtld_static_init.c b/elf/rtld_static_init.c +--- a/elf/rtld_static_init.c 2025-11-18 15:48:15.355621059 -0500 ++++ b/elf/rtld_static_init.c 2025-11-18 17:35:21.427465597 -0500 +@@ -79,7 +79,6 @@ __rtld_static_init (struct link_map *map + attribute_hidden; + dl->_dl_tls_static_size = _dl_tls_static_size; + dl->_dl_find_object = _dl_find_object; +- dl->_dl_readonly_area = _dl_readonly_area; + + __rtld_static_init_arch (map, dl); + } diff --git a/glibc-RHEL-119431-6.patch b/glibc-RHEL-119431-6.patch new file mode 100644 index 0000000..5e366b6 --- /dev/null +++ b/glibc-RHEL-119431-6.patch @@ -0,0 +1,35 @@ +Downstream-only patch to deal more gracefully with upgrades on +live systems. Without it, a newer libc.so will fail to load +if the process was started with an older ld.so. + +diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h +index f2d62fa2ccbb479d..5512c83d536874cb 100644 +--- a/sysdeps/generic/ldsodefs.h ++++ b/sysdeps/generic/ldsodefs.h +@@ -1303,8 +1303,26 @@ extern void _dl_show_scope (struct link_map *new, int from) + extern struct link_map *_dl_find_dso_for_object (const ElfW(Addr) addr); + rtld_hidden_proto (_dl_find_dso_for_object) + ++#if !IS_IN (libc) || !defined SHARED + extern enum dl_readonly_area_error_type _dl_readonly_area (const void *ptr, + size_t size); ++#else ++/* In libc, only use _dl_readonly_area if it is available, so that ++ loadling libc does not fail with an undefined symbol reference to ++ _dl_readonly_area. */ ++static inline enum dl_readonly_area_error_type ++_dl_readonly_area (const void *ptr, size_t size) ++{ ++ extern __typeof (_dl_readonly_area) _dl_readonly_area_real ++ __asm__ ("_dl_readonly_area") __attribute__ ((weak)); ++ if (_dl_readonly_area_real != NULL) ++ return _dl_readonly_area_real (ptr, size); ++ else ++ /* This triggers the fallback to __readonly_area_fallback (using ++ /proc/self/maps). */ ++ return dl_readonly_area_not_found; ++} ++#endif + + /* Initialization which is normally done by the dynamic linker. */ + extern void _dl_non_dynamic_init (void) diff --git a/glibc-RHEL-119433-1.patch b/glibc-RHEL-119433-1.patch new file mode 100644 index 0000000..1f4f0c2 --- /dev/null +++ b/glibc-RHEL-119433-1.patch @@ -0,0 +1,15927 @@ +commit d1a621b735247ba0f7bf288e35a1b172cb6803f6 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add tests for formatted scanf input specifiers + + Add a collection of tests for formatted scanf input specifiers covering + the b, d, i, o, u, x, and X integer conversions, the a, A, e, E, f, F, + g, and G floating-point conversions, and the [, c, and s character + conversions. Also the hh, h, l, and ll length modifiers are covered + with the integer conversions as are the l and L length modifier with the + floating-point conversions. The tests cover assignment suppressing and + the field width as well, verifying the number of assignments made, the + number of characters consumed and the value assigned. + + Add the common test code here as well as test cases for scanf, and then + base Makefile infrastructure plus target-agnostic input data, for the + character conversions and the `char', `short', and `long long' integer + ones, signed and unsigned, with remaining input data and other functions + from the scanf family deferred to subsequent additions. + + Keep input data disabled and referring to BZ #12701 for entries that are + currently incorrectly accepted as valid data, such as '0b' or '0x' with + the relevant integer conversions or sequences of an insufficient number + of characters with the c conversion. + + Reviewed-by: Joseph Myers + +diff --git a/Makerules b/Makerules +index 00365bc58be119bb..088dfee9ab86f0fb 100644 +--- a/Makerules ++++ b/Makerules +@@ -1181,6 +1181,9 @@ check: tests + .PHONY: xcheck + xcheck: xtests + ++# Also handle test inputs in sysdeps. ++vpath %.input $(sysdirs) ++ + # Handle tests-time64 and xtests-time64 that should built with LFS + # and 64-bit time support. + include $(o-iterator) +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index b90a343b6d2f619c..4804f4d73dd15d60 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -51,6 +51,33 @@ nonfmt-xprintf-stems := \ + + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + ++# List of markers for scanf family function tests. ++xscanf-funcs := s ++ ++# List of data types and formats for individual per-conversion scanf tests. ++# Further conversions are provided by sysdeps. ++xscanf-kinds := char int real uint ++fmt-xscanf-char-convs := c ++fmts-xscanf-char := b c s ++fmt-xscanf-int-convs := char llong short ++fmts-xscanf-int := d i ++fmt-xscanf-real-convs := ++fmts-xscanf-real := aa a ee e ff f gg g ++fmt-xscanf-uint-convs := uchar ullong ushort ++fmts-xscanf-uint := b o u xx x ++ ++xscanf-convs = $(sort $(fmt-xscanf-char-convs) $(fmt-xscanf-int-convs) \ ++ $(fmt-xscanf-real-convs) $(fmt-xscanf-uint-convs)) ++ ++xscanf-srcs = $(foreach p,$(xscanf-funcs), \ ++ $(foreach c,$(xscanf-convs),tst-scanf-format-$(p)-$(c))) ++ ++xscanf-stems = $(sort $(foreach k,$(xscanf-kinds), \ ++ $(foreach f,$(fmts-xscanf-$(k)), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(foreach c,$(fmt-xscanf-$(k)-convs), \ ++ tst-scanf-format-$(p)-$(c)-$(f)))))) ++ + headers := \ + bits/printf-ldbl.h \ + bits/stdio_lim.h \ +@@ -360,6 +387,7 @@ tests-internal = \ + + test-srcs = \ + $(xprintf-srcs) \ ++ $(xscanf-srcs) \ + tst-fwrite-bz29459 \ + tst-printf \ + tst-printfsz-islongdouble \ +@@ -369,6 +397,7 @@ test-srcs = \ + ifeq ($(run-built-tests),yes) + tests-special += \ + $(foreach f,$(xprintf-stems),$(objpfx)$(f).out) \ ++ $(foreach f,$(xscanf-stems),$(objpfx)$(f).out) \ + $(objpfx)tst-fwrite-bz29459.out \ + $(objpfx)tst-printf.out \ + $(objpfx)tst-printfsz-islongdouble.out \ +@@ -380,6 +409,7 @@ ifeq (yes,$(build-shared)) + ifneq ($(PERL),no) + tests-special += \ + $(foreach f,$(xprintf-stems),$(objpfx)$(f)-mem.out) \ ++ $(foreach f,$(xscanf-stems),$(objpfx)$(f)-mem.out) \ + $(objpfx)tst-freopen2-mem.out \ + $(objpfx)tst-freopen3-mem.out \ + $(objpfx)tst-freopen4-mem.out \ +@@ -402,6 +432,8 @@ tests-special += \ + generated += \ + $(foreach f,$(xprintf-stems),$(f)-mem.out) \ + $(foreach f,$(xprintf-stems),$(f).mtrace) \ ++ $(foreach f,$(xscanf-stems),$(f)-mem.out) \ ++ $(foreach f,$(xscanf-stems),$(f).mtrace) \ + tst-freopen2-mem.out \ + tst-freopen2.mtrace \ + tst-freopen3-mem.out \ +@@ -594,6 +626,26 @@ $(objpfx)tst-printf-format-%.out: \ + $(make-tst-printf-format-out) > $@; \ + $(evaluate-test) + ++# With scanf format tests reuse the same executable for all the inputs ++# of the same data type that use a different conversion specifier each. ++define tst-scanf-format-rule ++$$(objpfx)tst-scanf-format-$(1)-$(2)-$(3).out: \ ++ tst-scanf-format-$(2)-$(3).input $$(objpfx)tst-scanf-format-$(1)-$(2) ++ $$(make-tst-scanf-format-out) > $$@ < $$<; \ ++ $$(evaluate-test) ++endef ++make-tst-scanf-format-out = \ ++ $(test-wrapper-env) \ ++ $(run-program-env) \ ++ MALLOC_TRACE=$(@:.out=.mtrace) \ ++ LD_PRELOAD=$(common-objpfx)malloc/libc_malloc_debug.so \ ++ $(host-test-program-cmd) ++$(foreach k,$(xscanf-kinds), \ ++ $(foreach f,$(fmts-xscanf-$(k)), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(foreach c,$(fmt-xscanf-$(k)-convs), \ ++ $(eval $(call tst-scanf-format-rule,$(p),$(c),$(f))))))) ++ + $(objpfx)tst-printfsz-islongdouble.out: \ + tst-printfsz-islongdouble.sh $(objpfx)tst-printfsz-islongdouble + $(SHELL) $^ '$(test-program-prefix)' $@; \ +@@ -702,5 +754,13 @@ $(objpfx)tst-setvbuf2.out: $(objpfx)tst-setvbuf2-ind + $(objpfx)tst-printf-round: $(libm) + $(objpfx)tst-scanf-round: $(libm) + ++# With scanf format tests real conversions depend on libm. ++define tst-scanf-format-libm-dep ++$$(objpfx)tst-scanf-format-$(1)-$(2): $$(libm) ++endef ++$(foreach p,$(xscanf-funcs), \ ++ $(foreach c,$(fmt-xscanf-real-convs), \ ++ $(eval $(call tst-scanf-format-libm-dep,$(p),$(c))))) ++ + $(objpfx)tst-freopen7: $(shared-thread-library) + $(objpfx)tst-freopen64-7: $(shared-thread-library) +diff --git a/stdio-common/tst-scanf-format-c-b.input b/stdio-common/tst-scanf-format-c-b.input +new file mode 100644 +index 0000000000000000..52b2dc1a4c9b7f7a +--- /dev/null ++++ b/stdio-common/tst-scanf-format-c-b.input +@@ -0,0 +1,90 @@ ++%[bcdefghijklmnopqrstuvw]::0:-1: ++%*[bcdefghijklmnopqrstuvw]::0:-1: ++%[bcdefghijklmnopqrstuvw]:The:0:-1: ++%*[bcdefghijklmnopqrstuvw]:The:0:-1: ++%[bcdefghijklmnopqrstuvw]:quick:1:5:quick: ++%*[bcdefghijklmnopqrstuvw]:quick:0:5: ++%[bcdefghijklmnopqrstuvw]:brown fox:1:5:brown: ++%*[bcdefghijklmnopqrstuvw]:brown fox:0:5: ++%[bcdefghijklmnopqrstuvw]:jumps over the lazy dog:1:5:jumps: ++%*[bcdefghijklmnopqrstuvw]:jumps over the lazy dog:0:5: ++%[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%[ Tabcdefghijklmnopqrstuvwxyz]:The:1:3:The: ++%*[ Tabcdefghijklmnopqrstuvwxyz]:The:0:3: ++%[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:5:quick: ++%*[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:5: ++%[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:9:brown fox: ++%*[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:9: ++%[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:23:jumps over the lazy dog: ++%*[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:23: ++%1[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*1[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%1[ Tabcdefghijklmnopqrstuvwxyz]:The:1:1:T: ++%*1[ Tabcdefghijklmnopqrstuvwxyz]:The:0:1: ++%1[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:1:q: ++%*1[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:1: ++%1[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:1:b: ++%*1[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:1: ++%1[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:1:j: ++%*1[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:1: ++%2[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*2[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%2[ Tabcdefghijklmnopqrstuvwxyz]:The:1:2:Th: ++%*2[ Tabcdefghijklmnopqrstuvwxyz]:The:0:2: ++%2[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:2:qu: ++%*2[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:2: ++%2[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:2:br: ++%*2[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:2: ++%2[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:2:ju: ++%*2[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:2: ++%5[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%5[ Tabcdefghijklmnopqrstuvwxyz]:The:1:3:The: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]:The:0:3: ++%5[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:5:quick: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:5: ++%5[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:5:brown: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:5: ++%5[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:5:jumps: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:5: ++%10[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*10[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%10[ Tabcdefghijklmnopqrstuvwxyz]:The:1:3:The: ++%*10[ Tabcdefghijklmnopqrstuvwxyz]:The:0:3: ++%10[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:5:quick: ++%*10[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:5: ++%10[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:9:brown fox: ++%*10[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:9: ++%10[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:10:jumps over: ++%*10[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:10: ++%25[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%*25[ Tabcdefghijklmnopqrstuvwxyz]::0:-1: ++%25[ Tabcdefghijklmnopqrstuvwxyz]:The:1:3:The: ++%*25[ Tabcdefghijklmnopqrstuvwxyz]:The:0:3: ++%25[ Tabcdefghijklmnopqrstuvwxyz]:quick:1:5:quick: ++%*25[ Tabcdefghijklmnopqrstuvwxyz]:quick:0:5: ++%25[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:1:9:brown fox: ++%*25[ Tabcdefghijklmnopqrstuvwxyz]:brown fox:0:9: ++%25[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:1:23:jumps over the lazy dog: ++%*25[ Tabcdefghijklmnopqrstuvwxyz]:jumps over the lazy dog:0:23: ++%5[ Tabcdefghijklmnopqrstuvwxyz]: :1:1: : ++%*5[ Tabcdefghijklmnopqrstuvwxyz]: :0:1: ++%5[ Tabcdefghijklmnopqrstuvwxyz]: The :1:5: The : ++%*5[ Tabcdefghijklmnopqrstuvwxyz]: The :0:5: ++%5[ Tabcdefghijklmnopqrstuvwxyz]: quick :1:5: quic: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]: quick :0:5: ++%5[ Tabcdefghijklmnopqrstuvwxyz]: brown fox :1:5: brow: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]: brown fox :0:5: ++%5[ Tabcdefghijklmnopqrstuvwxyz]: jumps over the lazy dog :1:5: jump: ++%*5[ Tabcdefghijklmnopqrstuvwxyz]: jumps over the lazy dog :0:5: ++%25[ Tabcdefghijklmnopqrstuvwxyz]: :1:1: : ++%*25[ Tabcdefghijklmnopqrstuvwxyz]: :0:1: ++%25[ Tabcdefghijklmnopqrstuvwxyz]: The :1:5: The : ++%*25[ Tabcdefghijklmnopqrstuvwxyz]: The :0:5: ++%25[ Tabcdefghijklmnopqrstuvwxyz]: quick :1:7: quick : ++%*25[ Tabcdefghijklmnopqrstuvwxyz]: quick :0:7: ++%25[ Tabcdefghijklmnopqrstuvwxyz]: brown fox :1:11: brown fox : ++%*25[ Tabcdefghijklmnopqrstuvwxyz]: brown fox :0:11: ++%25[ Tabcdefghijklmnopqrstuvwxyz]: jumps over the lazy dog :1:25: jumps over the lazy dog : ++%*25[ Tabcdefghijklmnopqrstuvwxyz]: jumps over the lazy dog :0:25: +diff --git a/stdio-common/tst-scanf-format-c-c.input b/stdio-common/tst-scanf-format-c-c.input +new file mode 100644 +index 0000000000000000..a3a6ee26af755dec +--- /dev/null ++++ b/stdio-common/tst-scanf-format-c-c.input +@@ -0,0 +1,64 @@ ++%c:The:1:1:T: ++%*c:The:0:1: ++%c:quick:1:1:q: ++%*c:quick:0:1: ++%c:brown fox:1:1:b: ++%*c:brown fox:0:1: ++%c:jumps over the lazy dog:1:1:j: ++%*c:jumps over the lazy dog:0:1: ++%1c:The:1:1:T: ++%*1c:The:0:1: ++%1c:quick:1:1:q: ++%*1c:quick:0:1: ++%1c:brown fox:1:1:b: ++%*1c:brown fox:0:1: ++%1c:jumps over the lazy dog:1:1:j: ++%*1c:jumps over the lazy dog:0:1: ++%2c:The:1:2:Th: ++%*2c:The:0:2: ++%2c:quick:1:2:qu: ++%*2c:quick:0:2: ++%2c:brown fox:1:2:br: ++%*2c:brown fox:0:2: ++%2c:jumps over the lazy dog:1:2:ju: ++%*2c:jumps over the lazy dog:0:2: ++# BZ12701 %5c:The:0:-1: ++# BZ12701 %*5c:The:0:-1: ++%5c:quick:1:5:quick: ++%*5c:quick:0:5: ++%5c:brown fox:1:5:brown: ++%*5c:brown fox:0:5: ++%5c:jumps over the lazy dog:1:5:jumps: ++%*5c:jumps over the lazy dog:0:5: ++# BZ12701 %10c:The:0:-1: ++# BZ12701 %*10c:The:0:-1: ++# BZ12701 %10c:quick:0:-1: ++# BZ12701 %*10c:quick:0:-1: ++# BZ12701 %10c:brown fox:0:-1: ++# BZ12701 %*10c:brown fox:0:-1: ++%10c:jumps over the lazy dog:1:10:jumps over: ++%*10c:jumps over the lazy dog:0:10: ++# BZ12701 %25c:The:0:-1: ++# BZ12701 %*25c:The:0:-1: ++# BZ12701 %25c:quick:0:-1: ++# BZ12701 %*25c:quick:0:-1: ++# BZ12701 %25c:brown fox:0:-1: ++# BZ12701 %*25c:brown fox:0:-1: ++# BZ12701 %25c:jumps over the lazy dog:0:-1: ++# BZ12701 %*25c:jumps over the lazy dog:0:-1: ++%5c: The :1:5: The : ++%*5c: The :0:5: ++%5c: quick :1:5: quic: ++%*5c: quick :0:5: ++%5c: brown fox :1:5: brow: ++%*5c: brown fox :0:5: ++%5c: jumps over the lazy dog :1:5: jump: ++%*5c: jumps over the lazy dog :0:5: ++# BZ12701 %25c: The :0:-1: ++# BZ12701 %*25c: The :0:-1: ++# BZ12701 %25c: quick :0:-1: ++# BZ12701 %*25c: quick :0:-1: ++# BZ12701 %25c: brown fox :0:-1: ++# BZ12701 %*25c: brown fox :0:-1: ++%25c: jumps over the lazy dog :1:25: jumps over the lazy dog : ++%*25c: jumps over the lazy dog :0:25: +diff --git a/stdio-common/tst-scanf-format-c-s.input b/stdio-common/tst-scanf-format-c-s.input +new file mode 100644 +index 0000000000000000..52c992f190c7eec5 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-c-s.input +@@ -0,0 +1,64 @@ ++%s:The :1:3:The: ++%*s:The :0:3: ++%s:quick :1:5:quick: ++%*s:quick :0:5: ++%s:brown fox :1:5:brown: ++%*s:brown fox :0:5: ++%s:jumps over the lazy dog :1:5:jumps: ++%*s:jumps over the lazy dog :0:5: ++%1s:The :1:1:T: ++%*1s:The :0:1: ++%1s:quick :1:1:q: ++%*1s:quick :0:1: ++%1s:brown fox :1:1:b: ++%*1s:brown fox :0:1: ++%1s:jumps over the lazy dog :1:1:j: ++%*1s:jumps over the lazy dog :0:1: ++%2s:The :1:2:Th: ++%*2s:The :0:2: ++%2s:quick :1:2:qu: ++%*2s:quick :0:2: ++%2s:brown fox :1:2:br: ++%*2s:brown fox :0:2: ++%2s:jumps over the lazy dog :1:2:ju: ++%*2s:jumps over the lazy dog :0:2: ++%5s:The :1:3:The: ++%*5s:The :0:3: ++%5s:quick :1:5:quick: ++%*5s:quick :0:5: ++%5s:brown fox :1:5:brown: ++%*5s:brown fox :0:5: ++%5s:jumps over the lazy dog :1:5:jumps: ++%*5s:jumps over the lazy dog :0:5: ++%10s:The :1:3:The: ++%*10s:The :0:3: ++%10s:quick :1:5:quick: ++%*10s:quick :0:5: ++%10s:brown fox :1:5:brown: ++%*10s:brown fox :0:5: ++%10s:jumps over the lazy dog :1:5:jumps: ++%*10s:jumps over the lazy dog :0:5: ++%25s:The :1:3:The: ++%*25s:The :0:3: ++%25s:quick :1:5:quick: ++%*25s:quick :0:5: ++%25s:brown fox :1:5:brown: ++%*25s:brown fox :0:5: ++%25s:jumps over the lazy dog :1:5:jumps: ++%*25s:jumps over the lazy dog :0:5: ++%5s: The :1:4:The: ++%*5s: The :0:4: ++%5s: quick :1:6:quick: ++%*5s: quick :0:6: ++%5s: brown fox :1:6:brown: ++%*5s: brown fox :0:6: ++%5s: jumps over the lazy dog :1:6:jumps: ++%*5s: jumps over the lazy dog :0:6: ++%25s: The :1:4:The: ++%*25s: The :0:4: ++%25s: quick :1:6:quick: ++%*25s: quick :0:6: ++%25s: brown fox :1:6:brown: ++%*25s: brown fox :0:6: ++%25s: jumps over the lazy dog :1:6:jumps: ++%*25s: jumps over the lazy dog :0:6: +diff --git a/stdio-common/tst-scanf-format-char-d.input b/stdio-common/tst-scanf-format-char-d.input +new file mode 100644 +index 0000000000000000..eeb6920c705323f9 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-char-d.input +@@ -0,0 +1,266 @@ ++%hhd::0:-1: ++%*hhd::0:-1: ++%hhd:-251:1:4:5: ++%*hhd:-251:0:4: ++%hhd:-129:1:4:127: ++%*hhd:-129:0:4: ++%hhd:-128:1:4:-128: ++%*hhd:-128:0:4: ++%hhd:-123:1:4:-123: ++%*hhd:-123:0:4: ++%hhd:-1:1:2:-1: ++%*hhd:-1:0:2: ++%hhd:-0:1:2:0: ++%*hhd:-0:0:2: ++%hhd:0:1:1:0: ++%*hhd:0:0:1: ++%hhd:1:1:1:1: ++%*hhd:1:0:1: ++%hhd:42:1:2:42: ++%*hhd:42:0:2: ++%hhd:127:1:3:127: ++%*hhd:127:0:3: ++%hhd:128:1:3:-128: ++%*hhd:128:0:3: ++%hhd:169:1:3:-87: ++%*hhd:169:0:3: ++%hhd:+0:1:2:0: ++%*hhd:+0:0:2: ++%hhd:+1:1:2:1: ++%*hhd:+1:0:2: ++%hhd:+42:1:3:42: ++%*hhd:+42:0:3: ++%hhd:+127:1:4:127: ++%*hhd:+127:0:4: ++%hhd:+128:1:4:-128: ++%*hhd:+128:0:4: ++%hhd:+169:1:4:-87: ++%*hhd:+169:0:4: ++%1hhd::0:-1: ++%*1hhd::0:-1: ++%1hhd:-251:0:-1: ++%*1hhd:-251:0:-1: ++%1hhd:-129:0:-1: ++%*1hhd:-129:0:-1: ++%1hhd:-128:0:-1: ++%*1hhd:-128:0:-1: ++%1hhd:-123:0:-1: ++%*1hhd:-123:0:-1: ++%1hhd:-1:0:-1: ++%*1hhd:-1:0:-1: ++%1hhd:-0:0:-1: ++%*1hhd:-0:0:-1: ++%1hhd:0:1:1:0: ++%*1hhd:0:0:1: ++%1hhd:1:1:1:1: ++%*1hhd:1:0:1: ++%1hhd:42:1:1:4: ++%*1hhd:42:0:1: ++%1hhd:127:1:1:1: ++%*1hhd:127:0:1: ++%1hhd:128:1:1:1: ++%*1hhd:128:0:1: ++%1hhd:169:1:1:1: ++%*1hhd:169:0:1: ++%1hhd:+0:0:-1: ++%*1hhd:+0:0:-1: ++%1hhd:+1:0:-1: ++%*1hhd:+1:0:-1: ++%1hhd:+42:0:-1: ++%*1hhd:+42:0:-1: ++%1hhd:+127:0:-1: ++%*1hhd:+127:0:-1: ++%1hhd:+128:0:-1: ++%*1hhd:+128:0:-1: ++%1hhd:+169:0:-1: ++%*1hhd:+169:0:-1: ++%2hhd::0:-1: ++%*2hhd::0:-1: ++%2hhd:-251:1:2:-2: ++%*2hhd:-251:0:2: ++%2hhd:-129:1:2:-1: ++%*2hhd:-129:0:2: ++%2hhd:-128:1:2:-1: ++%*2hhd:-128:0:2: ++%2hhd:-123:1:2:-1: ++%*2hhd:-123:0:2: ++%2hhd:-1:1:2:-1: ++%*2hhd:-1:0:2: ++%2hhd:-0:1:2:0: ++%*2hhd:-0:0:2: ++%2hhd:0:1:1:0: ++%*2hhd:0:0:1: ++%2hhd:1:1:1:1: ++%*2hhd:1:0:1: ++%2hhd:42:1:2:42: ++%*2hhd:42:0:2: ++%2hhd:127:1:2:12: ++%*2hhd:127:0:2: ++%2hhd:128:1:2:12: ++%*2hhd:128:0:2: ++%2hhd:169:1:2:16: ++%*2hhd:169:0:2: ++%2hhd:+0:1:2:0: ++%*2hhd:+0:0:2: ++%2hhd:+1:1:2:1: ++%*2hhd:+1:0:2: ++%2hhd:+42:1:2:4: ++%*2hhd:+42:0:2: ++%2hhd:+127:1:2:1: ++%*2hhd:+127:0:2: ++%2hhd:+128:1:2:1: ++%*2hhd:+128:0:2: ++%2hhd:+169:1:2:1: ++%*2hhd:+169:0:2: ++%3hhd::0:-1: ++%*3hhd::0:-1: ++%3hhd:-251:1:3:-25: ++%*3hhd:-251:0:3: ++%3hhd:-129:1:3:-12: ++%*3hhd:-129:0:3: ++%3hhd:-128:1:3:-12: ++%*3hhd:-128:0:3: ++%3hhd:-123:1:3:-12: ++%*3hhd:-123:0:3: ++%3hhd:-1:1:2:-1: ++%*3hhd:-1:0:2: ++%3hhd:-0:1:2:0: ++%*3hhd:-0:0:2: ++%3hhd:0:1:1:0: ++%*3hhd:0:0:1: ++%3hhd:1:1:1:1: ++%*3hhd:1:0:1: ++%3hhd:42:1:2:42: ++%*3hhd:42:0:2: ++%3hhd:127:1:3:127: ++%*3hhd:127:0:3: ++%3hhd:128:1:3:-128: ++%*3hhd:128:0:3: ++%3hhd:169:1:3:-87: ++%*3hhd:169:0:3: ++%3hhd:+0:1:2:0: ++%*3hhd:+0:0:2: ++%3hhd:+1:1:2:1: ++%*3hhd:+1:0:2: ++%3hhd:+42:1:3:42: ++%*3hhd:+42:0:3: ++%3hhd:+127:1:3:12: ++%*3hhd:+127:0:3: ++%3hhd:+128:1:3:12: ++%*3hhd:+128:0:3: ++%3hhd:+169:1:3:16: ++%*3hhd:+169:0:3: ++%5hhd::0:-1: ++%*5hhd::0:-1: ++%5hhd:-251:1:4:5: ++%*5hhd:-251:0:4: ++%5hhd:-129:1:4:127: ++%*5hhd:-129:0:4: ++%5hhd:-128:1:4:-128: ++%*5hhd:-128:0:4: ++%5hhd:-123:1:4:-123: ++%*5hhd:-123:0:4: ++%5hhd:-1:1:2:-1: ++%*5hhd:-1:0:2: ++%5hhd:-0:1:2:0: ++%*5hhd:-0:0:2: ++%5hhd:0:1:1:0: ++%*5hhd:0:0:1: ++%5hhd:1:1:1:1: ++%*5hhd:1:0:1: ++%5hhd:42:1:2:42: ++%*5hhd:42:0:2: ++%5hhd:127:1:3:127: ++%*5hhd:127:0:3: ++%5hhd:128:1:3:-128: ++%*5hhd:128:0:3: ++%5hhd:169:1:3:-87: ++%*5hhd:169:0:3: ++%5hhd:+0:1:2:0: ++%*5hhd:+0:0:2: ++%5hhd:+1:1:2:1: ++%*5hhd:+1:0:2: ++%5hhd:+42:1:3:42: ++%*5hhd:+42:0:3: ++%5hhd:+127:1:4:127: ++%*5hhd:+127:0:4: ++%5hhd:+128:1:4:-128: ++%*5hhd:+128:0:4: ++%5hhd:+169:1:4:-87: ++%*5hhd:+169:0:4: ++%2hhd: :0:-1: ++%*2hhd: :0:-1: ++%2hhd: -251:1:3:-2: ++%*2hhd: -251:0:3: ++%2hhd: -129:1:3:-1: ++%*2hhd: -129:0:3: ++%2hhd: -128:1:3:-1: ++%*2hhd: -128:0:3: ++%2hhd: -123:1:3:-1: ++%*2hhd: -123:0:3: ++%2hhd: -1:1:3:-1: ++%*2hhd: -1:0:3: ++%2hhd: -0:1:3:0: ++%*2hhd: -0:0:3: ++%2hhd: 0:1:2:0: ++%*2hhd: 0:0:2: ++%2hhd: 1:1:2:1: ++%*2hhd: 1:0:2: ++%2hhd: 42:1:3:42: ++%*2hhd: 42:0:3: ++%2hhd: 127:1:3:12: ++%*2hhd: 127:0:3: ++%2hhd: 128:1:3:12: ++%*2hhd: 128:0:3: ++%2hhd: 169:1:3:16: ++%*2hhd: 169:0:3: ++%2hhd: +0:1:3:0: ++%*2hhd: +0:0:3: ++%2hhd: +1:1:3:1: ++%*2hhd: +1:0:3: ++%2hhd: +42:1:3:4: ++%*2hhd: +42:0:3: ++%2hhd: +127:1:3:1: ++%*2hhd: +127:0:3: ++%2hhd: +128:1:3:1: ++%*2hhd: +128:0:3: ++%2hhd: +169:1:3:1: ++%*2hhd: +169:0:3: ++%5hhd: :0:-1: ++%*5hhd: :0:-1: ++%5hhd: -251:1:5:5: ++%*5hhd: -251:0:5: ++%5hhd: -129:1:5:127: ++%*5hhd: -129:0:5: ++%5hhd: -128:1:5:-128: ++%*5hhd: -128:0:5: ++%5hhd: -123:1:5:-123: ++%*5hhd: -123:0:5: ++%5hhd: -1:1:3:-1: ++%*5hhd: -1:0:3: ++%5hhd: -0:1:3:0: ++%*5hhd: -0:0:3: ++%5hhd: 0:1:2:0: ++%*5hhd: 0:0:2: ++%5hhd: 1:1:2:1: ++%*5hhd: 1:0:2: ++%5hhd: 42:1:3:42: ++%*5hhd: 42:0:3: ++%5hhd: 127:1:4:127: ++%*5hhd: 127:0:4: ++%5hhd: 128:1:4:-128: ++%*5hhd: 128:0:4: ++%5hhd: 169:1:4:-87: ++%*5hhd: 169:0:4: ++%5hhd: +0:1:3:0: ++%*5hhd: +0:0:3: ++%5hhd: +1:1:3:1: ++%*5hhd: +1:0:3: ++%5hhd: +42:1:4:42: ++%*5hhd: +42:0:4: ++%5hhd: +127:1:5:127: ++%*5hhd: +127:0:5: ++%5hhd: +128:1:5:-128: ++%*5hhd: +128:0:5: ++%5hhd: +169:1:5:-87: ++%*5hhd: +169:0:5: +diff --git a/stdio-common/tst-scanf-format-char-i.input b/stdio-common/tst-scanf-format-char-i.input +new file mode 100644 +index 0000000000000000..31f7ff0508c73c00 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-char-i.input +@@ -0,0 +1,1526 @@ ++%hhi::0:-1: ++%*hhi::0:-1: ++%hhi:-251:1:4:5: ++%*hhi:-251:0:4: ++%hhi:-0Xfb:1:5:5: ++%*hhi:-0Xfb:0:5: ++%hhi:-0xFB:1:5:5: ++%*hhi:-0xFB:0:5: ++%hhi:-0373:1:5:5: ++%*hhi:-0373:0:5: ++%hhi:-0B11111011:1:11:5: ++%*hhi:-0B11111011:0:11: ++%hhi:-0b11111011:1:11:5: ++%*hhi:-0b11111011:0:11: ++%hhi:-129:1:4:127: ++%*hhi:-129:0:4: ++%hhi:-0X81:1:5:127: ++%*hhi:-0X81:0:5: ++%hhi:-0x81:1:5:127: ++%*hhi:-0x81:0:5: ++%hhi:-0201:1:5:127: ++%*hhi:-0201:0:5: ++%hhi:-0B10000001:1:11:127: ++%*hhi:-0B10000001:0:11: ++%hhi:-0b10000001:1:11:127: ++%*hhi:-0b10000001:0:11: ++%hhi:-128:1:4:-128: ++%*hhi:-128:0:4: ++%hhi:-0X80:1:5:-128: ++%*hhi:-0X80:0:5: ++%hhi:-0x80:1:5:-128: ++%*hhi:-0x80:0:5: ++%hhi:-0200:1:5:-128: ++%*hhi:-0200:0:5: ++%hhi:-0B10000000:1:11:-128: ++%*hhi:-0B10000000:0:11: ++%hhi:-0b10000000:1:11:-128: ++%*hhi:-0b10000000:0:11: ++%hhi:-123:1:4:-123: ++%*hhi:-123:0:4: ++%hhi:-0X7b:1:5:-123: ++%*hhi:-0X7b:0:5: ++%hhi:-0x7B:1:5:-123: ++%*hhi:-0x7B:0:5: ++%hhi:-0173:1:5:-123: ++%*hhi:-0173:0:5: ++%hhi:-0B1111011:1:10:-123: ++%*hhi:-0B1111011:0:10: ++%hhi:-0b1111011:1:10:-123: ++%*hhi:-0b1111011:0:10: ++%hhi:-1:1:2:-1: ++%*hhi:-1:0:2: ++%hhi:-0X1:1:4:-1: ++%*hhi:-0X1:0:4: ++%hhi:-0x1:1:4:-1: ++%*hhi:-0x1:0:4: ++%hhi:-01:1:3:-1: ++%*hhi:-01:0:3: ++%hhi:-0B1:1:4:-1: ++%*hhi:-0B1:0:4: ++%hhi:-0b1:1:4:-1: ++%*hhi:-0b1:0:4: ++%hhi:-0:1:2:0: ++%*hhi:-0:0:2: ++%hhi:-0X0:1:4:0: ++%*hhi:-0X0:0:4: ++%hhi:-0x0:1:4:0: ++%*hhi:-0x0:0:4: ++%hhi:-00:1:3:0: ++%*hhi:-00:0:3: ++%hhi:-0B0:1:4:0: ++%*hhi:-0B0:0:4: ++%hhi:-0b0:1:4:0: ++%*hhi:-0b0:0:4: ++%hhi:0:1:1:0: ++%*hhi:0:0:1: ++%hhi:0X0:1:3:0: ++%*hhi:0X0:0:3: ++%hhi:0x0:1:3:0: ++%*hhi:0x0:0:3: ++%hhi:00:1:2:0: ++%*hhi:00:0:2: ++%hhi:0B0:1:3:0: ++%*hhi:0B0:0:3: ++%hhi:0b0:1:3:0: ++%*hhi:0b0:0:3: ++%hhi:1:1:1:1: ++%*hhi:1:0:1: ++%hhi:0X1:1:3:1: ++%*hhi:0X1:0:3: ++%hhi:0x1:1:3:1: ++%*hhi:0x1:0:3: ++%hhi:01:1:2:1: ++%*hhi:01:0:2: ++%hhi:0B1:1:3:1: ++%*hhi:0B1:0:3: ++%hhi:0b1:1:3:1: ++%*hhi:0b1:0:3: ++%hhi:42:1:2:42: ++%*hhi:42:0:2: ++%hhi:0X2a:1:4:42: ++%*hhi:0X2a:0:4: ++%hhi:0x2A:1:4:42: ++%*hhi:0x2A:0:4: ++%hhi:052:1:3:42: ++%*hhi:052:0:3: ++%hhi:0B101010:1:8:42: ++%*hhi:0B101010:0:8: ++%hhi:0b101010:1:8:42: ++%*hhi:0b101010:0:8: ++%hhi:127:1:3:127: ++%*hhi:127:0:3: ++%hhi:0X7f:1:4:127: ++%*hhi:0X7f:0:4: ++%hhi:0x7F:1:4:127: ++%*hhi:0x7F:0:4: ++%hhi:0177:1:4:127: ++%*hhi:0177:0:4: ++%hhi:0B1111111:1:9:127: ++%*hhi:0B1111111:0:9: ++%hhi:0b1111111:1:9:127: ++%*hhi:0b1111111:0:9: ++%hhi:128:1:3:-128: ++%*hhi:128:0:3: ++%hhi:0X80:1:4:-128: ++%*hhi:0X80:0:4: ++%hhi:0x80:1:4:-128: ++%*hhi:0x80:0:4: ++%hhi:0200:1:4:-128: ++%*hhi:0200:0:4: ++%hhi:0B10000000:1:10:-128: ++%*hhi:0B10000000:0:10: ++%hhi:0b10000000:1:10:-128: ++%*hhi:0b10000000:0:10: ++%hhi:169:1:3:-87: ++%*hhi:169:0:3: ++%hhi:0Xa9:1:4:-87: ++%*hhi:0Xa9:0:4: ++%hhi:0xA9:1:4:-87: ++%*hhi:0xA9:0:4: ++%hhi:0251:1:4:-87: ++%*hhi:0251:0:4: ++%hhi:0B10101001:1:10:-87: ++%*hhi:0B10101001:0:10: ++%hhi:0b10101001:1:10:-87: ++%*hhi:0b10101001:0:10: ++%hhi:+0:1:2:0: ++%*hhi:+0:0:2: ++%hhi:+0X0:1:4:0: ++%*hhi:+0X0:0:4: ++%hhi:+0x0:1:4:0: ++%*hhi:+0x0:0:4: ++%hhi:+00:1:3:0: ++%*hhi:+00:0:3: ++%hhi:+0B0:1:4:0: ++%*hhi:+0B0:0:4: ++%hhi:+0b0:1:4:0: ++%*hhi:+0b0:0:4: ++%hhi:+1:1:2:1: ++%*hhi:+1:0:2: ++%hhi:+0X1:1:4:1: ++%*hhi:+0X1:0:4: ++%hhi:+0x1:1:4:1: ++%*hhi:+0x1:0:4: ++%hhi:+01:1:3:1: ++%*hhi:+01:0:3: ++%hhi:+0B1:1:4:1: ++%*hhi:+0B1:0:4: ++%hhi:+0b1:1:4:1: ++%*hhi:+0b1:0:4: ++%hhi:+42:1:3:42: ++%*hhi:+42:0:3: ++%hhi:+0X2a:1:5:42: ++%*hhi:+0X2a:0:5: ++%hhi:+0x2A:1:5:42: ++%*hhi:+0x2A:0:5: ++%hhi:+052:1:4:42: ++%*hhi:+052:0:4: ++%hhi:+0B101010:1:9:42: ++%*hhi:+0B101010:0:9: ++%hhi:+0b101010:1:9:42: ++%*hhi:+0b101010:0:9: ++%hhi:+127:1:4:127: ++%*hhi:+127:0:4: ++%hhi:+0X7f:1:5:127: ++%*hhi:+0X7f:0:5: ++%hhi:+0x7F:1:5:127: ++%*hhi:+0x7F:0:5: ++%hhi:+0177:1:5:127: ++%*hhi:+0177:0:5: ++%hhi:+0B1111111:1:10:127: ++%*hhi:+0B1111111:0:10: ++%hhi:+0b1111111:1:10:127: ++%*hhi:+0b1111111:0:10: ++%hhi:+128:1:4:-128: ++%*hhi:+128:0:4: ++%hhi:+0X80:1:5:-128: ++%*hhi:+0X80:0:5: ++%hhi:+0x80:1:5:-128: ++%*hhi:+0x80:0:5: ++%hhi:+0200:1:5:-128: ++%*hhi:+0200:0:5: ++%hhi:+0B10000000:1:11:-128: ++%*hhi:+0B10000000:0:11: ++%hhi:+0b10000000:1:11:-128: ++%*hhi:+0b10000000:0:11: ++%hhi:+169:1:4:-87: ++%*hhi:+169:0:4: ++%hhi:+0Xa9:1:5:-87: ++%*hhi:+0Xa9:0:5: ++%hhi:+0xA9:1:5:-87: ++%*hhi:+0xA9:0:5: ++%hhi:+0251:1:5:-87: ++%*hhi:+0251:0:5: ++%hhi:+0B10101001:1:11:-87: ++%*hhi:+0B10101001:0:11: ++%hhi:+0b10101001:1:11:-87: ++%*hhi:+0b10101001:0:11: ++%1hhi::0:-1: ++%*1hhi::0:-1: ++%1hhi:-251:0:-1: ++%*1hhi:-251:0:-1: ++%1hhi:-0Xfb:0:-1: ++%*1hhi:-0Xfb:0:-1: ++%1hhi:-0xFB:0:-1: ++%*1hhi:-0xFB:0:-1: ++%1hhi:-0373:0:-1: ++%*1hhi:-0373:0:-1: ++%1hhi:-0B11111011:0:-1: ++%*1hhi:-0B11111011:0:-1: ++%1hhi:-0b11111011:0:-1: ++%*1hhi:-0b11111011:0:-1: ++%1hhi:-129:0:-1: ++%*1hhi:-129:0:-1: ++%1hhi:-0X81:0:-1: ++%*1hhi:-0X81:0:-1: ++%1hhi:-0x81:0:-1: ++%*1hhi:-0x81:0:-1: ++%1hhi:-0201:0:-1: ++%*1hhi:-0201:0:-1: ++%1hhi:-0B10000001:0:-1: ++%*1hhi:-0B10000001:0:-1: ++%1hhi:-0b10000001:0:-1: ++%*1hhi:-0b10000001:0:-1: ++%1hhi:-128:0:-1: ++%*1hhi:-128:0:-1: ++%1hhi:-0X80:0:-1: ++%*1hhi:-0X80:0:-1: ++%1hhi:-0x80:0:-1: ++%*1hhi:-0x80:0:-1: ++%1hhi:-0200:0:-1: ++%*1hhi:-0200:0:-1: ++%1hhi:-0B10000000:0:-1: ++%*1hhi:-0B10000000:0:-1: ++%1hhi:-0b10000000:0:-1: ++%*1hhi:-0b10000000:0:-1: ++%1hhi:-123:0:-1: ++%*1hhi:-123:0:-1: ++%1hhi:-0X7b:0:-1: ++%*1hhi:-0X7b:0:-1: ++%1hhi:-0x7B:0:-1: ++%*1hhi:-0x7B:0:-1: ++%1hhi:-0173:0:-1: ++%*1hhi:-0173:0:-1: ++%1hhi:-0B1111011:0:-1: ++%*1hhi:-0B1111011:0:-1: ++%1hhi:-0b1111011:0:-1: ++%*1hhi:-0b1111011:0:-1: ++%1hhi:-1:0:-1: ++%*1hhi:-1:0:-1: ++%1hhi:-0X1:0:-1: ++%*1hhi:-0X1:0:-1: ++%1hhi:-0x1:0:-1: ++%*1hhi:-0x1:0:-1: ++%1hhi:-01:0:-1: ++%*1hhi:-01:0:-1: ++%1hhi:-0B1:0:-1: ++%*1hhi:-0B1:0:-1: ++%1hhi:-0b1:0:-1: ++%*1hhi:-0b1:0:-1: ++%1hhi:-0:0:-1: ++%*1hhi:-0:0:-1: ++%1hhi:-0X0:0:-1: ++%*1hhi:-0X0:0:-1: ++%1hhi:-0x0:0:-1: ++%*1hhi:-0x0:0:-1: ++%1hhi:-00:0:-1: ++%*1hhi:-00:0:-1: ++%1hhi:-0B0:0:-1: ++%*1hhi:-0B0:0:-1: ++%1hhi:-0b0:0:-1: ++%*1hhi:-0b0:0:-1: ++%1hhi:0:1:1:0: ++%*1hhi:0:0:1: ++%1hhi:0X0:1:1:0: ++%*1hhi:0X0:0:1: ++%1hhi:0x0:1:1:0: ++%*1hhi:0x0:0:1: ++%1hhi:00:1:1:0: ++%*1hhi:00:0:1: ++%1hhi:0B0:1:1:0: ++%*1hhi:0B0:0:1: ++%1hhi:0b0:1:1:0: ++%*1hhi:0b0:0:1: ++%1hhi:1:1:1:1: ++%*1hhi:1:0:1: ++%1hhi:0X1:1:1:0: ++%*1hhi:0X1:0:1: ++%1hhi:0x1:1:1:0: ++%*1hhi:0x1:0:1: ++%1hhi:01:1:1:0: ++%*1hhi:01:0:1: ++%1hhi:0B1:1:1:0: ++%*1hhi:0B1:0:1: ++%1hhi:0b1:1:1:0: ++%*1hhi:0b1:0:1: ++%1hhi:42:1:1:4: ++%*1hhi:42:0:1: ++%1hhi:0X2a:1:1:0: ++%*1hhi:0X2a:0:1: ++%1hhi:0x2A:1:1:0: ++%*1hhi:0x2A:0:1: ++%1hhi:052:1:1:0: ++%*1hhi:052:0:1: ++%1hhi:0B101010:1:1:0: ++%*1hhi:0B101010:0:1: ++%1hhi:0b101010:1:1:0: ++%*1hhi:0b101010:0:1: ++%1hhi:127:1:1:1: ++%*1hhi:127:0:1: ++%1hhi:0X7f:1:1:0: ++%*1hhi:0X7f:0:1: ++%1hhi:0x7F:1:1:0: ++%*1hhi:0x7F:0:1: ++%1hhi:0177:1:1:0: ++%*1hhi:0177:0:1: ++%1hhi:0B1111111:1:1:0: ++%*1hhi:0B1111111:0:1: ++%1hhi:0b1111111:1:1:0: ++%*1hhi:0b1111111:0:1: ++%1hhi:128:1:1:1: ++%*1hhi:128:0:1: ++%1hhi:0X80:1:1:0: ++%*1hhi:0X80:0:1: ++%1hhi:0x80:1:1:0: ++%*1hhi:0x80:0:1: ++%1hhi:0200:1:1:0: ++%*1hhi:0200:0:1: ++%1hhi:0B10000000:1:1:0: ++%*1hhi:0B10000000:0:1: ++%1hhi:0b10000000:1:1:0: ++%*1hhi:0b10000000:0:1: ++%1hhi:169:1:1:1: ++%*1hhi:169:0:1: ++%1hhi:0Xa9:1:1:0: ++%*1hhi:0Xa9:0:1: ++%1hhi:0xA9:1:1:0: ++%*1hhi:0xA9:0:1: ++%1hhi:0251:1:1:0: ++%*1hhi:0251:0:1: ++%1hhi:0B10101001:1:1:0: ++%*1hhi:0B10101001:0:1: ++%1hhi:0b10101001:1:1:0: ++%*1hhi:0b10101001:0:1: ++%1hhi:+0:0:-1: ++%*1hhi:+0:0:-1: ++%1hhi:+0X0:0:-1: ++%*1hhi:+0X0:0:-1: ++%1hhi:+0x0:0:-1: ++%*1hhi:+0x0:0:-1: ++%1hhi:+00:0:-1: ++%*1hhi:+00:0:-1: ++%1hhi:+0B0:0:-1: ++%*1hhi:+0B0:0:-1: ++%1hhi:+0b0:0:-1: ++%*1hhi:+0b0:0:-1: ++%1hhi:+1:0:-1: ++%*1hhi:+1:0:-1: ++%1hhi:+0X1:0:-1: ++%*1hhi:+0X1:0:-1: ++%1hhi:+0x1:0:-1: ++%*1hhi:+0x1:0:-1: ++%1hhi:+01:0:-1: ++%*1hhi:+01:0:-1: ++%1hhi:+0B1:0:-1: ++%*1hhi:+0B1:0:-1: ++%1hhi:+0b1:0:-1: ++%*1hhi:+0b1:0:-1: ++%1hhi:+42:0:-1: ++%*1hhi:+42:0:-1: ++%1hhi:+0X2a:0:-1: ++%*1hhi:+0X2a:0:-1: ++%1hhi:+0x2A:0:-1: ++%*1hhi:+0x2A:0:-1: ++%1hhi:+052:0:-1: ++%*1hhi:+052:0:-1: ++%1hhi:+0B101010:0:-1: ++%*1hhi:+0B101010:0:-1: ++%1hhi:+0b101010:0:-1: ++%*1hhi:+0b101010:0:-1: ++%1hhi:+127:0:-1: ++%*1hhi:+127:0:-1: ++%1hhi:+0X7f:0:-1: ++%*1hhi:+0X7f:0:-1: ++%1hhi:+0x7F:0:-1: ++%*1hhi:+0x7F:0:-1: ++%1hhi:+0177:0:-1: ++%*1hhi:+0177:0:-1: ++%1hhi:+0B1111111:0:-1: ++%*1hhi:+0B1111111:0:-1: ++%1hhi:+0b1111111:0:-1: ++%*1hhi:+0b1111111:0:-1: ++%1hhi:+128:0:-1: ++%*1hhi:+128:0:-1: ++%1hhi:+0X80:0:-1: ++%*1hhi:+0X80:0:-1: ++%1hhi:+0x80:0:-1: ++%*1hhi:+0x80:0:-1: ++%1hhi:+0200:0:-1: ++%*1hhi:+0200:0:-1: ++%1hhi:+0B10000000:0:-1: ++%*1hhi:+0B10000000:0:-1: ++%1hhi:+0b10000000:0:-1: ++%*1hhi:+0b10000000:0:-1: ++%1hhi:+169:0:-1: ++%*1hhi:+169:0:-1: ++%1hhi:+0Xa9:0:-1: ++%*1hhi:+0Xa9:0:-1: ++%1hhi:+0xA9:0:-1: ++%*1hhi:+0xA9:0:-1: ++%1hhi:+0251:0:-1: ++%*1hhi:+0251:0:-1: ++%1hhi:+0B10101001:0:-1: ++%*1hhi:+0B10101001:0:-1: ++%1hhi:+0b10101001:0:-1: ++%*1hhi:+0b10101001:0:-1: ++%2hhi::0:-1: ++%*2hhi::0:-1: ++%2hhi:-251:1:2:-2: ++%*2hhi:-251:0:2: ++%2hhi:-0Xfb:1:2:0: ++%*2hhi:-0Xfb:0:2: ++%2hhi:-0xFB:1:2:0: ++%*2hhi:-0xFB:0:2: ++%2hhi:-0373:1:2:0: ++%*2hhi:-0373:0:2: ++%2hhi:-0B11111011:1:2:0: ++%*2hhi:-0B11111011:0:2: ++%2hhi:-0b11111011:1:2:0: ++%*2hhi:-0b11111011:0:2: ++%2hhi:-129:1:2:-1: ++%*2hhi:-129:0:2: ++%2hhi:-0X81:1:2:0: ++%*2hhi:-0X81:0:2: ++%2hhi:-0x81:1:2:0: ++%*2hhi:-0x81:0:2: ++%2hhi:-0201:1:2:0: ++%*2hhi:-0201:0:2: ++%2hhi:-0B10000001:1:2:0: ++%*2hhi:-0B10000001:0:2: ++%2hhi:-0b10000001:1:2:0: ++%*2hhi:-0b10000001:0:2: ++%2hhi:-128:1:2:-1: ++%*2hhi:-128:0:2: ++%2hhi:-0X80:1:2:0: ++%*2hhi:-0X80:0:2: ++%2hhi:-0x80:1:2:0: ++%*2hhi:-0x80:0:2: ++%2hhi:-0200:1:2:0: ++%*2hhi:-0200:0:2: ++%2hhi:-0B10000000:1:2:0: ++%*2hhi:-0B10000000:0:2: ++%2hhi:-0b10000000:1:2:0: ++%*2hhi:-0b10000000:0:2: ++%2hhi:-123:1:2:-1: ++%*2hhi:-123:0:2: ++%2hhi:-0X7b:1:2:0: ++%*2hhi:-0X7b:0:2: ++%2hhi:-0x7B:1:2:0: ++%*2hhi:-0x7B:0:2: ++%2hhi:-0173:1:2:0: ++%*2hhi:-0173:0:2: ++%2hhi:-0B1111011:1:2:0: ++%*2hhi:-0B1111011:0:2: ++%2hhi:-0b1111011:1:2:0: ++%*2hhi:-0b1111011:0:2: ++%2hhi:-1:1:2:-1: ++%*2hhi:-1:0:2: ++%2hhi:-0X1:1:2:0: ++%*2hhi:-0X1:0:2: ++%2hhi:-0x1:1:2:0: ++%*2hhi:-0x1:0:2: ++%2hhi:-01:1:2:0: ++%*2hhi:-01:0:2: ++%2hhi:-0B1:1:2:0: ++%*2hhi:-0B1:0:2: ++%2hhi:-0b1:1:2:0: ++%*2hhi:-0b1:0:2: ++%2hhi:-0:1:2:0: ++%*2hhi:-0:0:2: ++%2hhi:-0X0:1:2:0: ++%*2hhi:-0X0:0:2: ++%2hhi:-0x0:1:2:0: ++%*2hhi:-0x0:0:2: ++%2hhi:-00:1:2:0: ++%*2hhi:-00:0:2: ++%2hhi:-0B0:1:2:0: ++%*2hhi:-0B0:0:2: ++%2hhi:-0b0:1:2:0: ++%*2hhi:-0b0:0:2: ++%2hhi:0:1:1:0: ++%*2hhi:0:0:1: ++# BZ12701 %2hhi:0X0:0:-1: ++# BZ12701 %*2hhi:0X0:0:-1: ++# BZ12701 %2hhi:0x0:0:-1: ++# BZ12701 %*2hhi:0x0:0:-1: ++%2hhi:00:1:2:0: ++%*2hhi:00:0:2: ++# BZ12701 %2hhi:0B0:0:-1: ++# BZ12701 %*2hhi:0B0:0:-1: ++# BZ12701 %2hhi:0b0:0:-1: ++# BZ12701 %*2hhi:0b0:0:-1: ++%2hhi:1:1:1:1: ++%*2hhi:1:0:1: ++# BZ12701 %2hhi:0X1:0:-1: ++# BZ12701 %*2hhi:0X1:0:-1: ++# BZ12701 %2hhi:0x1:0:-1: ++# BZ12701 %*2hhi:0x1:0:-1: ++%2hhi:01:1:2:1: ++%*2hhi:01:0:2: ++# BZ12701 %2hhi:0B1:0:-1: ++# BZ12701 %*2hhi:0B1:0:-1: ++# BZ12701 %2hhi:0b1:0:-1: ++# BZ12701 %*2hhi:0b1:0:-1: ++%2hhi:42:1:2:42: ++%*2hhi:42:0:2: ++# BZ12701 %2hhi:0X2a:0:-1: ++# BZ12701 %*2hhi:0X2a:0:-1: ++# BZ12701 %2hhi:0x2A:0:-1: ++# BZ12701 %*2hhi:0x2A:0:-1: ++%2hhi:052:1:2:5: ++%*2hhi:052:0:2: ++# BZ12701 %2hhi:0B101010:0:-1: ++# BZ12701 %*2hhi:0B101010:0:-1: ++# BZ12701 %2hhi:0b101010:0:-1: ++# BZ12701 %*2hhi:0b101010:0:-1: ++%2hhi:127:1:2:12: ++%*2hhi:127:0:2: ++# BZ12701 %2hhi:0X7f:0:-1: ++# BZ12701 %*2hhi:0X7f:0:-1: ++# BZ12701 %2hhi:0x7F:0:-1: ++# BZ12701 %*2hhi:0x7F:0:-1: ++%2hhi:0177:1:2:1: ++%*2hhi:0177:0:2: ++# BZ12701 %2hhi:0B1111111:0:-1: ++# BZ12701 %*2hhi:0B1111111:0:-1: ++# BZ12701 %2hhi:0b1111111:0:-1: ++# BZ12701 %*2hhi:0b1111111:0:-1: ++%2hhi:128:1:2:12: ++%*2hhi:128:0:2: ++# BZ12701 %2hhi:0X80:0:-1: ++# BZ12701 %*2hhi:0X80:0:-1: ++# BZ12701 %2hhi:0x80:0:-1: ++# BZ12701 %*2hhi:0x80:0:-1: ++%2hhi:0200:1:2:2: ++%*2hhi:0200:0:2: ++# BZ12701 %2hhi:0B10000000:0:-1: ++# BZ12701 %*2hhi:0B10000000:0:-1: ++# BZ12701 %2hhi:0b10000000:0:-1: ++# BZ12701 %*2hhi:0b10000000:0:-1: ++%2hhi:169:1:2:16: ++%*2hhi:169:0:2: ++# BZ12701 %2hhi:0Xa9:0:-1: ++# BZ12701 %*2hhi:0Xa9:0:-1: ++# BZ12701 %2hhi:0xA9:0:-1: ++# BZ12701 %*2hhi:0xA9:0:-1: ++%2hhi:0251:1:2:2: ++%*2hhi:0251:0:2: ++# BZ12701 %2hhi:0B10101001:0:-1: ++# BZ12701 %*2hhi:0B10101001:0:-1: ++# BZ12701 %2hhi:0b10101001:0:-1: ++# BZ12701 %*2hhi:0b10101001:0:-1: ++%2hhi:+0:1:2:0: ++%*2hhi:+0:0:2: ++%2hhi:+0X0:1:2:0: ++%*2hhi:+0X0:0:2: ++%2hhi:+0x0:1:2:0: ++%*2hhi:+0x0:0:2: ++%2hhi:+00:1:2:0: ++%*2hhi:+00:0:2: ++%2hhi:+0B0:1:2:0: ++%*2hhi:+0B0:0:2: ++%2hhi:+0b0:1:2:0: ++%*2hhi:+0b0:0:2: ++%2hhi:+1:1:2:1: ++%*2hhi:+1:0:2: ++%2hhi:+0X1:1:2:0: ++%*2hhi:+0X1:0:2: ++%2hhi:+0x1:1:2:0: ++%*2hhi:+0x1:0:2: ++%2hhi:+01:1:2:0: ++%*2hhi:+01:0:2: ++%2hhi:+0B1:1:2:0: ++%*2hhi:+0B1:0:2: ++%2hhi:+0b1:1:2:0: ++%*2hhi:+0b1:0:2: ++%2hhi:+42:1:2:4: ++%*2hhi:+42:0:2: ++%2hhi:+0X2a:1:2:0: ++%*2hhi:+0X2a:0:2: ++%2hhi:+0x2A:1:2:0: ++%*2hhi:+0x2A:0:2: ++%2hhi:+052:1:2:0: ++%*2hhi:+052:0:2: ++%2hhi:+0B101010:1:2:0: ++%*2hhi:+0B101010:0:2: ++%2hhi:+0b101010:1:2:0: ++%*2hhi:+0b101010:0:2: ++%2hhi:+127:1:2:1: ++%*2hhi:+127:0:2: ++%2hhi:+0X7f:1:2:0: ++%*2hhi:+0X7f:0:2: ++%2hhi:+0x7F:1:2:0: ++%*2hhi:+0x7F:0:2: ++%2hhi:+0177:1:2:0: ++%*2hhi:+0177:0:2: ++%2hhi:+0B1111111:1:2:0: ++%*2hhi:+0B1111111:0:2: ++%2hhi:+0b1111111:1:2:0: ++%*2hhi:+0b1111111:0:2: ++%2hhi:+128:1:2:1: ++%*2hhi:+128:0:2: ++%2hhi:+0X80:1:2:0: ++%*2hhi:+0X80:0:2: ++%2hhi:+0x80:1:2:0: ++%*2hhi:+0x80:0:2: ++%2hhi:+0200:1:2:0: ++%*2hhi:+0200:0:2: ++%2hhi:+0B10000000:1:2:0: ++%*2hhi:+0B10000000:0:2: ++%2hhi:+0b10000000:1:2:0: ++%*2hhi:+0b10000000:0:2: ++%2hhi:+169:1:2:1: ++%*2hhi:+169:0:2: ++%2hhi:+0Xa9:1:2:0: ++%*2hhi:+0Xa9:0:2: ++%2hhi:+0xA9:1:2:0: ++%*2hhi:+0xA9:0:2: ++%2hhi:+0251:1:2:0: ++%*2hhi:+0251:0:2: ++%2hhi:+0B10101001:1:2:0: ++%*2hhi:+0B10101001:0:2: ++%2hhi:+0b10101001:1:2:0: ++%*2hhi:+0b10101001:0:2: ++%3hhi::0:-1: ++%*3hhi::0:-1: ++%3hhi:-251:1:3:-25: ++%*3hhi:-251:0:3: ++# BZ12701 %3hhi:-0Xfb:0:-1: ++# BZ12701 %*3hhi:-0Xfb:0:-1: ++# BZ12701 %3hhi:-0xFB:0:-1: ++# BZ12701 %*3hhi:-0xFB:0:-1: ++%3hhi:-0373:1:3:-3: ++%*3hhi:-0373:0:3: ++# BZ12701 %3hhi:-0B11111011:0:-1: ++# BZ12701 %*3hhi:-0B11111011:0:-1: ++# BZ12701 %3hhi:-0b11111011:0:-1: ++# BZ12701 %*3hhi:-0b11111011:0:-1: ++%3hhi:-129:1:3:-12: ++%*3hhi:-129:0:3: ++# BZ12701 %3hhi:-0X81:0:-1: ++# BZ12701 %*3hhi:-0X81:0:-1: ++# BZ12701 %3hhi:-0x81:0:-1: ++# BZ12701 %*3hhi:-0x81:0:-1: ++%3hhi:-0201:1:3:-2: ++%*3hhi:-0201:0:3: ++# BZ12701 %3hhi:-0B10000001:0:-1: ++# BZ12701 %*3hhi:-0B10000001:0:-1: ++# BZ12701 %3hhi:-0b10000001:0:-1: ++# BZ12701 %*3hhi:-0b10000001:0:-1: ++%3hhi:-128:1:3:-12: ++%*3hhi:-128:0:3: ++# BZ12701 %3hhi:-0X80:0:-1: ++# BZ12701 %*3hhi:-0X80:0:-1: ++# BZ12701 %3hhi:-0x80:0:-1: ++# BZ12701 %*3hhi:-0x80:0:-1: ++%3hhi:-0200:1:3:-2: ++%*3hhi:-0200:0:3: ++# BZ12701 %3hhi:-0B10000000:0:-1: ++# BZ12701 %*3hhi:-0B10000000:0:-1: ++# BZ12701 %3hhi:-0b10000000:0:-1: ++# BZ12701 %*3hhi:-0b10000000:0:-1: ++%3hhi:-123:1:3:-12: ++%*3hhi:-123:0:3: ++# BZ12701 %3hhi:-0X7b:0:-1: ++# BZ12701 %*3hhi:-0X7b:0:-1: ++# BZ12701 %3hhi:-0x7B:0:-1: ++# BZ12701 %*3hhi:-0x7B:0:-1: ++%3hhi:-0173:1:3:-1: ++%*3hhi:-0173:0:3: ++# BZ12701 %3hhi:-0B1111011:0:-1: ++# BZ12701 %*3hhi:-0B1111011:0:-1: ++# BZ12701 %3hhi:-0b1111011:0:-1: ++# BZ12701 %*3hhi:-0b1111011:0:-1: ++%3hhi:-1:1:2:-1: ++%*3hhi:-1:0:2: ++# BZ12701 %3hhi:-0X1:0:-1: ++# BZ12701 %*3hhi:-0X1:0:-1: ++# BZ12701 %3hhi:-0x1:0:-1: ++# BZ12701 %*3hhi:-0x1:0:-1: ++%3hhi:-01:1:3:-1: ++%*3hhi:-01:0:3: ++# BZ12701 %3hhi:-0B1:0:-1: ++# BZ12701 %*3hhi:-0B1:0:-1: ++# BZ12701 %3hhi:-0b1:0:-1: ++# BZ12701 %*3hhi:-0b1:0:-1: ++%3hhi:-0:1:2:0: ++%*3hhi:-0:0:2: ++# BZ12701 %3hhi:-0X0:0:-1: ++# BZ12701 %*3hhi:-0X0:0:-1: ++# BZ12701 %3hhi:-0x0:0:-1: ++# BZ12701 %*3hhi:-0x0:0:-1: ++%3hhi:-00:1:3:0: ++%*3hhi:-00:0:3: ++# BZ12701 %3hhi:-0B0:0:-1: ++# BZ12701 %*3hhi:-0B0:0:-1: ++# BZ12701 %3hhi:-0b0:0:-1: ++# BZ12701 %*3hhi:-0b0:0:-1: ++%3hhi:0:1:1:0: ++%*3hhi:0:0:1: ++%3hhi:0X0:1:3:0: ++%*3hhi:0X0:0:3: ++%3hhi:0x0:1:3:0: ++%*3hhi:0x0:0:3: ++%3hhi:00:1:2:0: ++%*3hhi:00:0:2: ++%3hhi:0B0:1:3:0: ++%*3hhi:0B0:0:3: ++%3hhi:0b0:1:3:0: ++%*3hhi:0b0:0:3: ++%3hhi:1:1:1:1: ++%*3hhi:1:0:1: ++%3hhi:0X1:1:3:1: ++%*3hhi:0X1:0:3: ++%3hhi:0x1:1:3:1: ++%*3hhi:0x1:0:3: ++%3hhi:01:1:2:1: ++%*3hhi:01:0:2: ++%3hhi:0B1:1:3:1: ++%*3hhi:0B1:0:3: ++%3hhi:0b1:1:3:1: ++%*3hhi:0b1:0:3: ++%3hhi:42:1:2:42: ++%*3hhi:42:0:2: ++%3hhi:0X2a:1:3:2: ++%*3hhi:0X2a:0:3: ++%3hhi:0x2A:1:3:2: ++%*3hhi:0x2A:0:3: ++%3hhi:052:1:3:42: ++%*3hhi:052:0:3: ++%3hhi:0B101010:1:3:1: ++%*3hhi:0B101010:0:3: ++%3hhi:0b101010:1:3:1: ++%*3hhi:0b101010:0:3: ++%3hhi:127:1:3:127: ++%*3hhi:127:0:3: ++%3hhi:0X7f:1:3:7: ++%*3hhi:0X7f:0:3: ++%3hhi:0x7F:1:3:7: ++%*3hhi:0x7F:0:3: ++%3hhi:0177:1:3:15: ++%*3hhi:0177:0:3: ++%3hhi:0B1111111:1:3:1: ++%*3hhi:0B1111111:0:3: ++%3hhi:0b1111111:1:3:1: ++%*3hhi:0b1111111:0:3: ++%3hhi:128:1:3:-128: ++%*3hhi:128:0:3: ++%3hhi:0X80:1:3:8: ++%*3hhi:0X80:0:3: ++%3hhi:0x80:1:3:8: ++%*3hhi:0x80:0:3: ++%3hhi:0200:1:3:16: ++%*3hhi:0200:0:3: ++%3hhi:0B10000000:1:3:1: ++%*3hhi:0B10000000:0:3: ++%3hhi:0b10000000:1:3:1: ++%*3hhi:0b10000000:0:3: ++%3hhi:169:1:3:-87: ++%*3hhi:169:0:3: ++%3hhi:0Xa9:1:3:10: ++%*3hhi:0Xa9:0:3: ++%3hhi:0xA9:1:3:10: ++%*3hhi:0xA9:0:3: ++%3hhi:0251:1:3:21: ++%*3hhi:0251:0:3: ++%3hhi:0B10101001:1:3:1: ++%*3hhi:0B10101001:0:3: ++%3hhi:0b10101001:1:3:1: ++%*3hhi:0b10101001:0:3: ++%3hhi:+0:1:2:0: ++%*3hhi:+0:0:2: ++# BZ12701 %3hhi:+0X0:0:-1: ++# BZ12701 %*3hhi:+0X0:0:-1: ++# BZ12701 %3hhi:+0x0:0:-1: ++# BZ12701 %*3hhi:+0x0:0:-1: ++%3hhi:+00:1:3:0: ++%*3hhi:+00:0:3: ++# BZ12701 %3hhi:+0B0:0:-1: ++# BZ12701 %*3hhi:+0B0:0:-1: ++# BZ12701 %3hhi:+0b0:0:-1: ++# BZ12701 %*3hhi:+0b0:0:-1: ++%3hhi:+1:1:2:1: ++%*3hhi:+1:0:2: ++# BZ12701 %3hhi:+0X1:0:-1: ++# BZ12701 %*3hhi:+0X1:0:-1: ++# BZ12701 %3hhi:+0x1:0:-1: ++# BZ12701 %*3hhi:+0x1:0:-1: ++%3hhi:+01:1:3:1: ++%*3hhi:+01:0:3: ++# BZ12701 %3hhi:+0B1:0:-1: ++# BZ12701 %*3hhi:+0B1:0:-1: ++# BZ12701 %3hhi:+0b1:0:-1: ++# BZ12701 %*3hhi:+0b1:0:-1: ++%3hhi:+42:1:3:42: ++%*3hhi:+42:0:3: ++# BZ12701 %3hhi:+0X2a:0:-1: ++# BZ12701 %*3hhi:+0X2a:0:-1: ++# BZ12701 %3hhi:+0x2A:0:-1: ++# BZ12701 %*3hhi:+0x2A:0:-1: ++%3hhi:+052:1:3:5: ++%*3hhi:+052:0:3: ++# BZ12701 %3hhi:+0B101010:0:-1: ++# BZ12701 %*3hhi:+0B101010:0:-1: ++# BZ12701 %3hhi:+0b101010:0:-1: ++# BZ12701 %*3hhi:+0b101010:0:-1: ++%3hhi:+127:1:3:12: ++%*3hhi:+127:0:3: ++# BZ12701 %3hhi:+0X7f:0:-1: ++# BZ12701 %*3hhi:+0X7f:0:-1: ++# BZ12701 %3hhi:+0x7F:0:-1: ++# BZ12701 %*3hhi:+0x7F:0:-1: ++%3hhi:+0177:1:3:1: ++%*3hhi:+0177:0:3: ++# BZ12701 %3hhi:+0B1111111:0:-1: ++# BZ12701 %*3hhi:+0B1111111:0:-1: ++# BZ12701 %3hhi:+0b1111111:0:-1: ++# BZ12701 %*3hhi:+0b1111111:0:-1: ++%3hhi:+128:1:3:12: ++%*3hhi:+128:0:3: ++# BZ12701 %3hhi:+0X80:0:-1: ++# BZ12701 %*3hhi:+0X80:0:-1: ++# BZ12701 %3hhi:+0x80:0:-1: ++# BZ12701 %*3hhi:+0x80:0:-1: ++%3hhi:+0200:1:3:2: ++%*3hhi:+0200:0:3: ++# BZ12701 %3hhi:+0B10000000:0:-1: ++# BZ12701 %*3hhi:+0B10000000:0:-1: ++# BZ12701 %3hhi:+0b10000000:0:-1: ++# BZ12701 %*3hhi:+0b10000000:0:-1: ++%3hhi:+169:1:3:16: ++%*3hhi:+169:0:3: ++# BZ12701 %3hhi:+0Xa9:0:-1: ++# BZ12701 %*3hhi:+0Xa9:0:-1: ++# BZ12701 %3hhi:+0xA9:0:-1: ++# BZ12701 %*3hhi:+0xA9:0:-1: ++%3hhi:+0251:1:3:2: ++%*3hhi:+0251:0:3: ++# BZ12701 %3hhi:+0B10101001:0:-1: ++# BZ12701 %*3hhi:+0B10101001:0:-1: ++# BZ12701 %3hhi:+0b10101001:0:-1: ++# BZ12701 %*3hhi:+0b10101001:0:-1: ++%5hhi::0:-1: ++%*5hhi::0:-1: ++%5hhi:-251:1:4:5: ++%*5hhi:-251:0:4: ++%5hhi:-0Xfb:1:5:5: ++%*5hhi:-0Xfb:0:5: ++%5hhi:-0xFB:1:5:5: ++%*5hhi:-0xFB:0:5: ++%5hhi:-0373:1:5:5: ++%*5hhi:-0373:0:5: ++%5hhi:-0B11111011:1:5:-3: ++%*5hhi:-0B11111011:0:5: ++%5hhi:-0b11111011:1:5:-3: ++%*5hhi:-0b11111011:0:5: ++%5hhi:-129:1:4:127: ++%*5hhi:-129:0:4: ++%5hhi:-0X81:1:5:127: ++%*5hhi:-0X81:0:5: ++%5hhi:-0x81:1:5:127: ++%*5hhi:-0x81:0:5: ++%5hhi:-0201:1:5:127: ++%*5hhi:-0201:0:5: ++%5hhi:-0B10000001:1:5:-2: ++%*5hhi:-0B10000001:0:5: ++%5hhi:-0b10000001:1:5:-2: ++%*5hhi:-0b10000001:0:5: ++%5hhi:-128:1:4:-128: ++%*5hhi:-128:0:4: ++%5hhi:-0X80:1:5:-128: ++%*5hhi:-0X80:0:5: ++%5hhi:-0x80:1:5:-128: ++%*5hhi:-0x80:0:5: ++%5hhi:-0200:1:5:-128: ++%*5hhi:-0200:0:5: ++%5hhi:-0B10000000:1:5:-2: ++%*5hhi:-0B10000000:0:5: ++%5hhi:-0b10000000:1:5:-2: ++%*5hhi:-0b10000000:0:5: ++%5hhi:-123:1:4:-123: ++%*5hhi:-123:0:4: ++%5hhi:-0X7b:1:5:-123: ++%*5hhi:-0X7b:0:5: ++%5hhi:-0x7B:1:5:-123: ++%*5hhi:-0x7B:0:5: ++%5hhi:-0173:1:5:-123: ++%*5hhi:-0173:0:5: ++%5hhi:-0B1111011:1:5:-3: ++%*5hhi:-0B1111011:0:5: ++%5hhi:-0b1111011:1:5:-3: ++%*5hhi:-0b1111011:0:5: ++%5hhi:-1:1:2:-1: ++%*5hhi:-1:0:2: ++%5hhi:-0X1:1:4:-1: ++%*5hhi:-0X1:0:4: ++%5hhi:-0x1:1:4:-1: ++%*5hhi:-0x1:0:4: ++%5hhi:-01:1:3:-1: ++%*5hhi:-01:0:3: ++%5hhi:-0B1:1:4:-1: ++%*5hhi:-0B1:0:4: ++%5hhi:-0b1:1:4:-1: ++%*5hhi:-0b1:0:4: ++%5hhi:-0:1:2:0: ++%*5hhi:-0:0:2: ++%5hhi:-0X0:1:4:0: ++%*5hhi:-0X0:0:4: ++%5hhi:-0x0:1:4:0: ++%*5hhi:-0x0:0:4: ++%5hhi:-00:1:3:0: ++%*5hhi:-00:0:3: ++%5hhi:-0B0:1:4:0: ++%*5hhi:-0B0:0:4: ++%5hhi:-0b0:1:4:0: ++%*5hhi:-0b0:0:4: ++%5hhi:0:1:1:0: ++%*5hhi:0:0:1: ++%5hhi:0X0:1:3:0: ++%*5hhi:0X0:0:3: ++%5hhi:0x0:1:3:0: ++%*5hhi:0x0:0:3: ++%5hhi:00:1:2:0: ++%*5hhi:00:0:2: ++%5hhi:0B0:1:3:0: ++%*5hhi:0B0:0:3: ++%5hhi:0b0:1:3:0: ++%*5hhi:0b0:0:3: ++%5hhi:1:1:1:1: ++%*5hhi:1:0:1: ++%5hhi:0X1:1:3:1: ++%*5hhi:0X1:0:3: ++%5hhi:0x1:1:3:1: ++%*5hhi:0x1:0:3: ++%5hhi:01:1:2:1: ++%*5hhi:01:0:2: ++%5hhi:0B1:1:3:1: ++%*5hhi:0B1:0:3: ++%5hhi:0b1:1:3:1: ++%*5hhi:0b1:0:3: ++%5hhi:42:1:2:42: ++%*5hhi:42:0:2: ++%5hhi:0X2a:1:4:42: ++%*5hhi:0X2a:0:4: ++%5hhi:0x2A:1:4:42: ++%*5hhi:0x2A:0:4: ++%5hhi:052:1:3:42: ++%*5hhi:052:0:3: ++%5hhi:0B101010:1:5:5: ++%*5hhi:0B101010:0:5: ++%5hhi:0b101010:1:5:5: ++%*5hhi:0b101010:0:5: ++%5hhi:127:1:3:127: ++%*5hhi:127:0:3: ++%5hhi:0X7f:1:4:127: ++%*5hhi:0X7f:0:4: ++%5hhi:0x7F:1:4:127: ++%*5hhi:0x7F:0:4: ++%5hhi:0177:1:4:127: ++%*5hhi:0177:0:4: ++%5hhi:0B1111111:1:5:7: ++%*5hhi:0B1111111:0:5: ++%5hhi:0b1111111:1:5:7: ++%*5hhi:0b1111111:0:5: ++%5hhi:128:1:3:-128: ++%*5hhi:128:0:3: ++%5hhi:0X80:1:4:-128: ++%*5hhi:0X80:0:4: ++%5hhi:0x80:1:4:-128: ++%*5hhi:0x80:0:4: ++%5hhi:0200:1:4:-128: ++%*5hhi:0200:0:4: ++%5hhi:0B10000000:1:5:4: ++%*5hhi:0B10000000:0:5: ++%5hhi:0b10000000:1:5:4: ++%*5hhi:0b10000000:0:5: ++%5hhi:169:1:3:-87: ++%*5hhi:169:0:3: ++%5hhi:0Xa9:1:4:-87: ++%*5hhi:0Xa9:0:4: ++%5hhi:0xA9:1:4:-87: ++%*5hhi:0xA9:0:4: ++%5hhi:0251:1:4:-87: ++%*5hhi:0251:0:4: ++%5hhi:0B10101001:1:5:5: ++%*5hhi:0B10101001:0:5: ++%5hhi:0b10101001:1:5:5: ++%*5hhi:0b10101001:0:5: ++%5hhi:+0:1:2:0: ++%*5hhi:+0:0:2: ++%5hhi:+0X0:1:4:0: ++%*5hhi:+0X0:0:4: ++%5hhi:+0x0:1:4:0: ++%*5hhi:+0x0:0:4: ++%5hhi:+00:1:3:0: ++%*5hhi:+00:0:3: ++%5hhi:+0B0:1:4:0: ++%*5hhi:+0B0:0:4: ++%5hhi:+0b0:1:4:0: ++%*5hhi:+0b0:0:4: ++%5hhi:+1:1:2:1: ++%*5hhi:+1:0:2: ++%5hhi:+0X1:1:4:1: ++%*5hhi:+0X1:0:4: ++%5hhi:+0x1:1:4:1: ++%*5hhi:+0x1:0:4: ++%5hhi:+01:1:3:1: ++%*5hhi:+01:0:3: ++%5hhi:+0B1:1:4:1: ++%*5hhi:+0B1:0:4: ++%5hhi:+0b1:1:4:1: ++%*5hhi:+0b1:0:4: ++%5hhi:+42:1:3:42: ++%*5hhi:+42:0:3: ++%5hhi:+0X2a:1:5:42: ++%*5hhi:+0X2a:0:5: ++%5hhi:+0x2A:1:5:42: ++%*5hhi:+0x2A:0:5: ++%5hhi:+052:1:4:42: ++%*5hhi:+052:0:4: ++%5hhi:+0B101010:1:5:2: ++%*5hhi:+0B101010:0:5: ++%5hhi:+0b101010:1:5:2: ++%*5hhi:+0b101010:0:5: ++%5hhi:+127:1:4:127: ++%*5hhi:+127:0:4: ++%5hhi:+0X7f:1:5:127: ++%*5hhi:+0X7f:0:5: ++%5hhi:+0x7F:1:5:127: ++%*5hhi:+0x7F:0:5: ++%5hhi:+0177:1:5:127: ++%*5hhi:+0177:0:5: ++%5hhi:+0B1111111:1:5:3: ++%*5hhi:+0B1111111:0:5: ++%5hhi:+0b1111111:1:5:3: ++%*5hhi:+0b1111111:0:5: ++%5hhi:+128:1:4:-128: ++%*5hhi:+128:0:4: ++%5hhi:+0X80:1:5:-128: ++%*5hhi:+0X80:0:5: ++%5hhi:+0x80:1:5:-128: ++%*5hhi:+0x80:0:5: ++%5hhi:+0200:1:5:-128: ++%*5hhi:+0200:0:5: ++%5hhi:+0B10000000:1:5:2: ++%*5hhi:+0B10000000:0:5: ++%5hhi:+0b10000000:1:5:2: ++%*5hhi:+0b10000000:0:5: ++%5hhi:+169:1:4:-87: ++%*5hhi:+169:0:4: ++%5hhi:+0Xa9:1:5:-87: ++%*5hhi:+0Xa9:0:5: ++%5hhi:+0xA9:1:5:-87: ++%*5hhi:+0xA9:0:5: ++%5hhi:+0251:1:5:-87: ++%*5hhi:+0251:0:5: ++%5hhi:+0B10101001:1:5:2: ++%*5hhi:+0B10101001:0:5: ++%5hhi:+0b10101001:1:5:2: ++%*5hhi:+0b10101001:0:5: ++%2hhi: :0:-1: ++%*2hhi: :0:-1: ++%2hhi: -251:1:3:-2: ++%*2hhi: -251:0:3: ++%2hhi: -0Xfb:1:3:0: ++%*2hhi: -0Xfb:0:3: ++%2hhi: -0xFB:1:3:0: ++%*2hhi: -0xFB:0:3: ++%2hhi: -0373:1:3:0: ++%*2hhi: -0373:0:3: ++%2hhi: -0B11111011:1:3:0: ++%*2hhi: -0B11111011:0:3: ++%2hhi: -0b11111011:1:3:0: ++%*2hhi: -0b11111011:0:3: ++%2hhi: -129:1:3:-1: ++%*2hhi: -129:0:3: ++%2hhi: -0X81:1:3:0: ++%*2hhi: -0X81:0:3: ++%2hhi: -0x81:1:3:0: ++%*2hhi: -0x81:0:3: ++%2hhi: -0201:1:3:0: ++%*2hhi: -0201:0:3: ++%2hhi: -0B10000001:1:3:0: ++%*2hhi: -0B10000001:0:3: ++%2hhi: -0b10000001:1:3:0: ++%*2hhi: -0b10000001:0:3: ++%2hhi: -128:1:3:-1: ++%*2hhi: -128:0:3: ++%2hhi: -0X80:1:3:0: ++%*2hhi: -0X80:0:3: ++%2hhi: -0x80:1:3:0: ++%*2hhi: -0x80:0:3: ++%2hhi: -0200:1:3:0: ++%*2hhi: -0200:0:3: ++%2hhi: -0B10000000:1:3:0: ++%*2hhi: -0B10000000:0:3: ++%2hhi: -0b10000000:1:3:0: ++%*2hhi: -0b10000000:0:3: ++%2hhi: -123:1:3:-1: ++%*2hhi: -123:0:3: ++%2hhi: -0X7b:1:3:0: ++%*2hhi: -0X7b:0:3: ++%2hhi: -0x7B:1:3:0: ++%*2hhi: -0x7B:0:3: ++%2hhi: -0173:1:3:0: ++%*2hhi: -0173:0:3: ++%2hhi: -0B1111011:1:3:0: ++%*2hhi: -0B1111011:0:3: ++%2hhi: -0b1111011:1:3:0: ++%*2hhi: -0b1111011:0:3: ++%2hhi: -1:1:3:-1: ++%*2hhi: -1:0:3: ++%2hhi: -0X1:1:3:0: ++%*2hhi: -0X1:0:3: ++%2hhi: -0x1:1:3:0: ++%*2hhi: -0x1:0:3: ++%2hhi: -01:1:3:0: ++%*2hhi: -01:0:3: ++%2hhi: -0B1:1:3:0: ++%*2hhi: -0B1:0:3: ++%2hhi: -0b1:1:3:0: ++%*2hhi: -0b1:0:3: ++%2hhi: -0:1:3:0: ++%*2hhi: -0:0:3: ++%2hhi: -0X0:1:3:0: ++%*2hhi: -0X0:0:3: ++%2hhi: -0x0:1:3:0: ++%*2hhi: -0x0:0:3: ++%2hhi: -00:1:3:0: ++%*2hhi: -00:0:3: ++%2hhi: -0B0:1:3:0: ++%*2hhi: -0B0:0:3: ++%2hhi: -0b0:1:3:0: ++%*2hhi: -0b0:0:3: ++%2hhi: 0:1:2:0: ++%*2hhi: 0:0:2: ++# BZ12701 %2hhi: 0X0:0:-1: ++# BZ12701 %*2hhi: 0X0:0:-1: ++# BZ12701 %2hhi: 0x0:0:-1: ++# BZ12701 %*2hhi: 0x0:0:-1: ++%2hhi: 00:1:3:0: ++%*2hhi: 00:0:3: ++# BZ12701 %2hhi: 0B0:0:-1: ++# BZ12701 %*2hhi: 0B0:0:-1: ++# BZ12701 %2hhi: 0b0:0:-1: ++# BZ12701 %*2hhi: 0b0:0:-1: ++%2hhi: 1:1:2:1: ++%*2hhi: 1:0:2: ++# BZ12701 %2hhi: 0X1:0:-1: ++# BZ12701 %*2hhi: 0X1:0:-1: ++# BZ12701 %2hhi: 0x1:0:-1: ++# BZ12701 %*2hhi: 0x1:0:-1: ++%2hhi: 01:1:3:1: ++%*2hhi: 01:0:3: ++# BZ12701 %2hhi: 0B1:0:-1: ++# BZ12701 %*2hhi: 0B1:0:-1: ++# BZ12701 %2hhi: 0b1:0:-1: ++# BZ12701 %*2hhi: 0b1:0:-1: ++%2hhi: 42:1:3:42: ++%*2hhi: 42:0:3: ++# BZ12701 %2hhi: 0X2a:0:-1: ++# BZ12701 %*2hhi: 0X2a:0:-1: ++# BZ12701 %2hhi: 0x2A:0:-1: ++# BZ12701 %*2hhi: 0x2A:0:-1: ++%2hhi: 052:1:3:5: ++%*2hhi: 052:0:3: ++# BZ12701 %2hhi: 0B101010:0:-1: ++# BZ12701 %*2hhi: 0B101010:0:-1: ++# BZ12701 %2hhi: 0b101010:0:-1: ++# BZ12701 %*2hhi: 0b101010:0:-1: ++%2hhi: 127:1:3:12: ++%*2hhi: 127:0:3: ++# BZ12701 %2hhi: 0X7f:0:-1: ++# BZ12701 %*2hhi: 0X7f:0:-1: ++# BZ12701 %2hhi: 0x7F:0:-1: ++# BZ12701 %*2hhi: 0x7F:0:-1: ++%2hhi: 0177:1:3:1: ++%*2hhi: 0177:0:3: ++# BZ12701 %2hhi: 0B1111111:0:-1: ++# BZ12701 %*2hhi: 0B1111111:0:-1: ++# BZ12701 %2hhi: 0b1111111:0:-1: ++# BZ12701 %*2hhi: 0b1111111:0:-1: ++%2hhi: 128:1:3:12: ++%*2hhi: 128:0:3: ++# BZ12701 %2hhi: 0X80:0:-1: ++# BZ12701 %*2hhi: 0X80:0:-1: ++# BZ12701 %2hhi: 0x80:0:-1: ++# BZ12701 %*2hhi: 0x80:0:-1: ++%2hhi: 0200:1:3:2: ++%*2hhi: 0200:0:3: ++# BZ12701 %2hhi: 0B10000000:0:-1: ++# BZ12701 %*2hhi: 0B10000000:0:-1: ++# BZ12701 %2hhi: 0b10000000:0:-1: ++# BZ12701 %*2hhi: 0b10000000:0:-1: ++%2hhi: 169:1:3:16: ++%*2hhi: 169:0:3: ++# BZ12701 %2hhi: 0Xa9:0:-1: ++# BZ12701 %*2hhi: 0Xa9:0:-1: ++# BZ12701 %2hhi: 0xA9:0:-1: ++# BZ12701 %*2hhi: 0xA9:0:-1: ++%2hhi: 0251:1:3:2: ++%*2hhi: 0251:0:3: ++# BZ12701 %2hhi: 0B10101001:0:-1: ++# BZ12701 %*2hhi: 0B10101001:0:-1: ++# BZ12701 %2hhi: 0b10101001:0:-1: ++# BZ12701 %*2hhi: 0b10101001:0:-1: ++%2hhi: +0:1:3:0: ++%*2hhi: +0:0:3: ++%2hhi: +0X0:1:3:0: ++%*2hhi: +0X0:0:3: ++%2hhi: +0x0:1:3:0: ++%*2hhi: +0x0:0:3: ++%2hhi: +00:1:3:0: ++%*2hhi: +00:0:3: ++%2hhi: +0B0:1:3:0: ++%*2hhi: +0B0:0:3: ++%2hhi: +0b0:1:3:0: ++%*2hhi: +0b0:0:3: ++%2hhi: +1:1:3:1: ++%*2hhi: +1:0:3: ++%2hhi: +0X1:1:3:0: ++%*2hhi: +0X1:0:3: ++%2hhi: +0x1:1:3:0: ++%*2hhi: +0x1:0:3: ++%2hhi: +01:1:3:0: ++%*2hhi: +01:0:3: ++%2hhi: +0B1:1:3:0: ++%*2hhi: +0B1:0:3: ++%2hhi: +0b1:1:3:0: ++%*2hhi: +0b1:0:3: ++%2hhi: +42:1:3:4: ++%*2hhi: +42:0:3: ++%2hhi: +0X2a:1:3:0: ++%*2hhi: +0X2a:0:3: ++%2hhi: +0x2A:1:3:0: ++%*2hhi: +0x2A:0:3: ++%2hhi: +052:1:3:0: ++%*2hhi: +052:0:3: ++%2hhi: +0B101010:1:3:0: ++%*2hhi: +0B101010:0:3: ++%2hhi: +0b101010:1:3:0: ++%*2hhi: +0b101010:0:3: ++%2hhi: +127:1:3:1: ++%*2hhi: +127:0:3: ++%2hhi: +0X7f:1:3:0: ++%*2hhi: +0X7f:0:3: ++%2hhi: +0x7F:1:3:0: ++%*2hhi: +0x7F:0:3: ++%2hhi: +0177:1:3:0: ++%*2hhi: +0177:0:3: ++%2hhi: +0B1111111:1:3:0: ++%*2hhi: +0B1111111:0:3: ++%2hhi: +0b1111111:1:3:0: ++%*2hhi: +0b1111111:0:3: ++%2hhi: +128:1:3:1: ++%*2hhi: +128:0:3: ++%2hhi: +0X80:1:3:0: ++%*2hhi: +0X80:0:3: ++%2hhi: +0x80:1:3:0: ++%*2hhi: +0x80:0:3: ++%2hhi: +0200:1:3:0: ++%*2hhi: +0200:0:3: ++%2hhi: +0B10000000:1:3:0: ++%*2hhi: +0B10000000:0:3: ++%2hhi: +0b10000000:1:3:0: ++%*2hhi: +0b10000000:0:3: ++%2hhi: +169:1:3:1: ++%*2hhi: +169:0:3: ++%2hhi: +0Xa9:1:3:0: ++%*2hhi: +0Xa9:0:3: ++%2hhi: +0xA9:1:3:0: ++%*2hhi: +0xA9:0:3: ++%2hhi: +0251:1:3:0: ++%*2hhi: +0251:0:3: ++%2hhi: +0B10101001:1:3:0: ++%*2hhi: +0B10101001:0:3: ++%2hhi: +0b10101001:1:3:0: ++%*2hhi: +0b10101001:0:3: ++%5hhi: :0:-1: ++%*5hhi: :0:-1: ++%5hhi: -251:1:5:5: ++%*5hhi: -251:0:5: ++%5hhi: -0Xfb:1:6:5: ++%*5hhi: -0Xfb:0:6: ++%5hhi: -0xFB:1:6:5: ++%*5hhi: -0xFB:0:6: ++%5hhi: -0373:1:6:5: ++%*5hhi: -0373:0:6: ++%5hhi: -0B11111011:1:6:-3: ++%*5hhi: -0B11111011:0:6: ++%5hhi: -0b11111011:1:6:-3: ++%*5hhi: -0b11111011:0:6: ++%5hhi: -129:1:5:127: ++%*5hhi: -129:0:5: ++%5hhi: -0X81:1:6:127: ++%*5hhi: -0X81:0:6: ++%5hhi: -0x81:1:6:127: ++%*5hhi: -0x81:0:6: ++%5hhi: -0201:1:6:127: ++%*5hhi: -0201:0:6: ++%5hhi: -0B10000001:1:6:-2: ++%*5hhi: -0B10000001:0:6: ++%5hhi: -0b10000001:1:6:-2: ++%*5hhi: -0b10000001:0:6: ++%5hhi: -128:1:5:-128: ++%*5hhi: -128:0:5: ++%5hhi: -0X80:1:6:-128: ++%*5hhi: -0X80:0:6: ++%5hhi: -0x80:1:6:-128: ++%*5hhi: -0x80:0:6: ++%5hhi: -0200:1:6:-128: ++%*5hhi: -0200:0:6: ++%5hhi: -0B10000000:1:6:-2: ++%*5hhi: -0B10000000:0:6: ++%5hhi: -0b10000000:1:6:-2: ++%*5hhi: -0b10000000:0:6: ++%5hhi: -123:1:5:-123: ++%*5hhi: -123:0:5: ++%5hhi: -0X7b:1:6:-123: ++%*5hhi: -0X7b:0:6: ++%5hhi: -0x7B:1:6:-123: ++%*5hhi: -0x7B:0:6: ++%5hhi: -0173:1:6:-123: ++%*5hhi: -0173:0:6: ++%5hhi: -0B1111011:1:6:-3: ++%*5hhi: -0B1111011:0:6: ++%5hhi: -0b1111011:1:6:-3: ++%*5hhi: -0b1111011:0:6: ++%5hhi: -1:1:3:-1: ++%*5hhi: -1:0:3: ++%5hhi: -0X1:1:5:-1: ++%*5hhi: -0X1:0:5: ++%5hhi: -0x1:1:5:-1: ++%*5hhi: -0x1:0:5: ++%5hhi: -01:1:4:-1: ++%*5hhi: -01:0:4: ++%5hhi: -0B1:1:5:-1: ++%*5hhi: -0B1:0:5: ++%5hhi: -0b1:1:5:-1: ++%*5hhi: -0b1:0:5: ++%5hhi: -0:1:3:0: ++%*5hhi: -0:0:3: ++%5hhi: -0X0:1:5:0: ++%*5hhi: -0X0:0:5: ++%5hhi: -0x0:1:5:0: ++%*5hhi: -0x0:0:5: ++%5hhi: -00:1:4:0: ++%*5hhi: -00:0:4: ++%5hhi: -0B0:1:5:0: ++%*5hhi: -0B0:0:5: ++%5hhi: -0b0:1:5:0: ++%*5hhi: -0b0:0:5: ++%5hhi: 0:1:2:0: ++%*5hhi: 0:0:2: ++%5hhi: 0X0:1:4:0: ++%*5hhi: 0X0:0:4: ++%5hhi: 0x0:1:4:0: ++%*5hhi: 0x0:0:4: ++%5hhi: 00:1:3:0: ++%*5hhi: 00:0:3: ++%5hhi: 0B0:1:4:0: ++%*5hhi: 0B0:0:4: ++%5hhi: 0b0:1:4:0: ++%*5hhi: 0b0:0:4: ++%5hhi: 1:1:2:1: ++%*5hhi: 1:0:2: ++%5hhi: 0X1:1:4:1: ++%*5hhi: 0X1:0:4: ++%5hhi: 0x1:1:4:1: ++%*5hhi: 0x1:0:4: ++%5hhi: 01:1:3:1: ++%*5hhi: 01:0:3: ++%5hhi: 0B1:1:4:1: ++%*5hhi: 0B1:0:4: ++%5hhi: 0b1:1:4:1: ++%*5hhi: 0b1:0:4: ++%5hhi: 42:1:3:42: ++%*5hhi: 42:0:3: ++%5hhi: 0X2a:1:5:42: ++%*5hhi: 0X2a:0:5: ++%5hhi: 0x2A:1:5:42: ++%*5hhi: 0x2A:0:5: ++%5hhi: 052:1:4:42: ++%*5hhi: 052:0:4: ++%5hhi: 0B101010:1:6:5: ++%*5hhi: 0B101010:0:6: ++%5hhi: 0b101010:1:6:5: ++%*5hhi: 0b101010:0:6: ++%5hhi: 127:1:4:127: ++%*5hhi: 127:0:4: ++%5hhi: 0X7f:1:5:127: ++%*5hhi: 0X7f:0:5: ++%5hhi: 0x7F:1:5:127: ++%*5hhi: 0x7F:0:5: ++%5hhi: 0177:1:5:127: ++%*5hhi: 0177:0:5: ++%5hhi: 0B1111111:1:6:7: ++%*5hhi: 0B1111111:0:6: ++%5hhi: 0b1111111:1:6:7: ++%*5hhi: 0b1111111:0:6: ++%5hhi: 128:1:4:-128: ++%*5hhi: 128:0:4: ++%5hhi: 0X80:1:5:-128: ++%*5hhi: 0X80:0:5: ++%5hhi: 0x80:1:5:-128: ++%*5hhi: 0x80:0:5: ++%5hhi: 0200:1:5:-128: ++%*5hhi: 0200:0:5: ++%5hhi: 0B10000000:1:6:4: ++%*5hhi: 0B10000000:0:6: ++%5hhi: 0b10000000:1:6:4: ++%*5hhi: 0b10000000:0:6: ++%5hhi: 169:1:4:-87: ++%*5hhi: 169:0:4: ++%5hhi: 0Xa9:1:5:-87: ++%*5hhi: 0Xa9:0:5: ++%5hhi: 0xA9:1:5:-87: ++%*5hhi: 0xA9:0:5: ++%5hhi: 0251:1:5:-87: ++%*5hhi: 0251:0:5: ++%5hhi: 0B10101001:1:6:5: ++%*5hhi: 0B10101001:0:6: ++%5hhi: 0b10101001:1:6:5: ++%*5hhi: 0b10101001:0:6: ++%5hhi: +0:1:3:0: ++%*5hhi: +0:0:3: ++%5hhi: +0X0:1:5:0: ++%*5hhi: +0X0:0:5: ++%5hhi: +0x0:1:5:0: ++%*5hhi: +0x0:0:5: ++%5hhi: +00:1:4:0: ++%*5hhi: +00:0:4: ++%5hhi: +0B0:1:5:0: ++%*5hhi: +0B0:0:5: ++%5hhi: +0b0:1:5:0: ++%*5hhi: +0b0:0:5: ++%5hhi: +1:1:3:1: ++%*5hhi: +1:0:3: ++%5hhi: +0X1:1:5:1: ++%*5hhi: +0X1:0:5: ++%5hhi: +0x1:1:5:1: ++%*5hhi: +0x1:0:5: ++%5hhi: +01:1:4:1: ++%*5hhi: +01:0:4: ++%5hhi: +0B1:1:5:1: ++%*5hhi: +0B1:0:5: ++%5hhi: +0b1:1:5:1: ++%*5hhi: +0b1:0:5: ++%5hhi: +42:1:4:42: ++%*5hhi: +42:0:4: ++%5hhi: +0X2a:1:6:42: ++%*5hhi: +0X2a:0:6: ++%5hhi: +0x2A:1:6:42: ++%*5hhi: +0x2A:0:6: ++%5hhi: +052:1:5:42: ++%*5hhi: +052:0:5: ++%5hhi: +0B101010:1:6:2: ++%*5hhi: +0B101010:0:6: ++%5hhi: +0b101010:1:6:2: ++%*5hhi: +0b101010:0:6: ++%5hhi: +127:1:5:127: ++%*5hhi: +127:0:5: ++%5hhi: +0X7f:1:6:127: ++%*5hhi: +0X7f:0:6: ++%5hhi: +0x7F:1:6:127: ++%*5hhi: +0x7F:0:6: ++%5hhi: +0177:1:6:127: ++%*5hhi: +0177:0:6: ++%5hhi: +0B1111111:1:6:3: ++%*5hhi: +0B1111111:0:6: ++%5hhi: +0b1111111:1:6:3: ++%*5hhi: +0b1111111:0:6: ++%5hhi: +128:1:5:-128: ++%*5hhi: +128:0:5: ++%5hhi: +0X80:1:6:-128: ++%*5hhi: +0X80:0:6: ++%5hhi: +0x80:1:6:-128: ++%*5hhi: +0x80:0:6: ++%5hhi: +0200:1:6:-128: ++%*5hhi: +0200:0:6: ++%5hhi: +0B10000000:1:6:2: ++%*5hhi: +0B10000000:0:6: ++%5hhi: +0b10000000:1:6:2: ++%*5hhi: +0b10000000:0:6: ++%5hhi: +169:1:5:-87: ++%*5hhi: +169:0:5: ++%5hhi: +0Xa9:1:6:-87: ++%*5hhi: +0Xa9:0:6: ++%5hhi: +0xA9:1:6:-87: ++%*5hhi: +0xA9:0:6: ++%5hhi: +0251:1:6:-87: ++%*5hhi: +0251:0:6: ++%5hhi: +0B10101001:1:6:2: ++%*5hhi: +0B10101001:0:6: ++%5hhi: +0b10101001:1:6:2: ++%*5hhi: +0b10101001:0:6: +diff --git a/stdio-common/tst-scanf-format-character.h b/stdio-common/tst-scanf-format-character.h +new file mode 100644 +index 0000000000000000..b68a5e1f39687294 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-character.h +@@ -0,0 +1,130 @@ ++/* Test feature wrapper for formatted character input. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++ ++#include ++ ++/* Reference data is a sequence of characters to match against ++ byte-wise. ++ ++ For the 's' conversion specifier the number of characters read ++ from input includes any leading white-space characters consumed ++ as well, so we also consider it a successful match when the ':' ++ character following the reference data matches a terminating null ++ character in the output produced by the 'scanf' family function ++ under test while the character count hasn't been exhausted yet. ++ ++ The buffer is preinitialized to contain repeating '\xa5' character ++ so as to catch missing data output. Also no data is expected to be ++ written beyond the character sequence received, which is verified ++ by checking the following character in the buffer to remain '\xa5'. */ ++ ++#define SCANF_BUFFER_SIZE 65536 ++ ++static struct support_next_to_fault ntf; ++ ++#define PREPARE initialize_value_init ++static void ++initialize_value_init (int argc, char **argv) ++{ ++ ntf = support_next_to_fault_allocate (SCANF_BUFFER_SIZE); ++} ++ ++static void __attribute__ ((destructor)) ++initialize_value_fini (void) ++{ ++ support_next_to_fault_free (&ntf); ++} ++ ++#define pointer_to_value(val) (val) ++ ++#define initialize_value(val) \ ++do \ ++ { \ ++ val = ntf.buffer; \ ++ memset (val, 0xa5, SCANF_BUFFER_SIZE); \ ++ } \ ++while (0) ++ ++#define verify_input(f, val, count, errp) \ ++({ \ ++ __label__ out, skip; \ ++ bool match = true; \ ++ int err = 0; \ ++ size_t i; \ ++ int ch; \ ++ \ ++ for (i = 0; i < count; i++) \ ++ { \ ++ ch = read_input (); \ ++ if (ch < 0) \ ++ { \ ++ err = ch; \ ++ goto out; \ ++ } \ ++ if (ch == ':' && val[i] == '\0' && f == 's') \ ++ goto skip; \ ++ if (ch != val[i]) \ ++ { \ ++ match = false; \ ++ goto out; \ ++ } \ ++ } \ ++ ch = read_input (); \ ++ if (ch < 0) \ ++ { \ ++ err = ch; \ ++ goto out; \ ++ } \ ++ \ ++skip: \ ++ if (f != 'c' && val[i++] != '\0') \ ++ { \ ++ err = OUTPUT_TERM; \ ++ goto out; \ ++ } \ ++ if (val[i] != '\xa5') \ ++ { \ ++ err = OUTPUT_OVERRUN; \ ++ goto out; \ ++ } \ ++ \ ++ while (ch != ':') \ ++ { \ ++ ch = read_input (); \ ++ if (ch < 0) \ ++ { \ ++ err = ch; \ ++ goto out; \ ++ } \ ++ match = false; \ ++ } \ ++ \ ++out: \ ++ if (err || !match) \ ++ { \ ++ printf ("error: %s:%d: input buffer: `", __FILE__, __LINE__); \ ++ for (size_t j = 0; j <= i; j++) \ ++ printf ("%c", val[j]); \ ++ printf ("'\n"); \ ++ } \ ++ \ ++ *errp = err; \ ++ match; \ ++}) +diff --git a/stdio-common/tst-scanf-format-integer.h b/stdio-common/tst-scanf-format-integer.h +new file mode 100644 +index 0000000000000000..28f91a431bb1e643 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-integer.h +@@ -0,0 +1,51 @@ ++/* Test feature wrapper for formatted integer input. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++ ++/* Reference data is a signed decimal integer constant to compare against ++ arithmetically. */ ++ ++#define pointer_to_value(val) (&(val)) ++ ++#define initialize_value(val) \ ++ memset (&val, 0xa5, sizeof (val)) ++ ++#define verify_input(f, val, count, errp) \ ++({ \ ++ __label__ out; \ ++ bool match = true; \ ++ int err; \ ++ \ ++ UNSIGNED long long v = read_integer (&err); \ ++ if (err < 0) \ ++ goto out; \ ++ match = val == v; \ ++ \ ++out: \ ++ if (err || !match) \ ++ { \ ++ printf ("error: %s:%d: input: %016llx\n", \ ++ __FILE__, __LINE__, (long long) val); \ ++ printf ("error: %s:%d: value: %016llx\n", \ ++ __FILE__, __LINE__, v); \ ++ } \ ++ \ ++ *errp = err; \ ++ match; \ ++}) +diff --git a/stdio-common/tst-scanf-format-llong-d.input b/stdio-common/tst-scanf-format-llong-d.input +new file mode 100644 +index 0000000000000000..f027d1200d93bcf1 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-llong-d.input +@@ -0,0 +1,266 @@ ++%lld::0:-1: ++%*lld::0:-1: ++%lld:-9223372036867121486:1:20:-9223372036854775808: ++%*lld:-9223372036867121486:0:20: ++%lld:-9223372036854775809:1:20:-9223372036854775808: ++%*lld:-9223372036854775809:0:20: ++%lld:-9223372036854775808:1:20:-9223372036854775808: ++%*lld:-9223372036854775808:0:20: ++%lld:-123:1:4:-123: ++%*lld:-123:0:4: ++%lld:-1:1:2:-1: ++%*lld:-1:0:2: ++%lld:-0:1:2:0: ++%*lld:-0:0:2: ++%lld:0:1:1:0: ++%*lld:0:0:1: ++%lld:1:1:1:1: ++%*lld:1:0:1: ++%lld:42:1:2:42: ++%*lld:42:0:2: ++%lld:9223372036854775807:1:19:9223372036854775807: ++%*lld:9223372036854775807:0:19: ++%lld:9223372036854775808:1:19:9223372036854775807: ++%*lld:9223372036854775808:0:19: ++%lld:9223372036897200049:1:19:9223372036854775807: ++%*lld:9223372036897200049:0:19: ++%lld:+0:1:2:0: ++%*lld:+0:0:2: ++%lld:+1:1:2:1: ++%*lld:+1:0:2: ++%lld:+42:1:3:42: ++%*lld:+42:0:3: ++%lld:+9223372036854775807:1:20:9223372036854775807: ++%*lld:+9223372036854775807:0:20: ++%lld:+9223372036854775808:1:20:9223372036854775807: ++%*lld:+9223372036854775808:0:20: ++%lld:+9223372036897200049:1:20:9223372036854775807: ++%*lld:+9223372036897200049:0:20: ++%1lld::0:-1: ++%*1lld::0:-1: ++%1lld:-9223372036867121486:0:-1: ++%*1lld:-9223372036867121486:0:-1: ++%1lld:-9223372036854775809:0:-1: ++%*1lld:-9223372036854775809:0:-1: ++%1lld:-9223372036854775808:0:-1: ++%*1lld:-9223372036854775808:0:-1: ++%1lld:-123:0:-1: ++%*1lld:-123:0:-1: ++%1lld:-1:0:-1: ++%*1lld:-1:0:-1: ++%1lld:-0:0:-1: ++%*1lld:-0:0:-1: ++%1lld:0:1:1:0: ++%*1lld:0:0:1: ++%1lld:1:1:1:1: ++%*1lld:1:0:1: ++%1lld:42:1:1:4: ++%*1lld:42:0:1: ++%1lld:9223372036854775807:1:1:9: ++%*1lld:9223372036854775807:0:1: ++%1lld:9223372036854775808:1:1:9: ++%*1lld:9223372036854775808:0:1: ++%1lld:9223372036897200049:1:1:9: ++%*1lld:9223372036897200049:0:1: ++%1lld:+0:0:-1: ++%*1lld:+0:0:-1: ++%1lld:+1:0:-1: ++%*1lld:+1:0:-1: ++%1lld:+42:0:-1: ++%*1lld:+42:0:-1: ++%1lld:+9223372036854775807:0:-1: ++%*1lld:+9223372036854775807:0:-1: ++%1lld:+9223372036854775808:0:-1: ++%*1lld:+9223372036854775808:0:-1: ++%1lld:+9223372036897200049:0:-1: ++%*1lld:+9223372036897200049:0:-1: ++%2lld::0:-1: ++%*2lld::0:-1: ++%2lld:-9223372036867121486:1:2:-9: ++%*2lld:-9223372036867121486:0:2: ++%2lld:-9223372036854775809:1:2:-9: ++%*2lld:-9223372036854775809:0:2: ++%2lld:-9223372036854775808:1:2:-9: ++%*2lld:-9223372036854775808:0:2: ++%2lld:-123:1:2:-1: ++%*2lld:-123:0:2: ++%2lld:-1:1:2:-1: ++%*2lld:-1:0:2: ++%2lld:-0:1:2:0: ++%*2lld:-0:0:2: ++%2lld:0:1:1:0: ++%*2lld:0:0:1: ++%2lld:1:1:1:1: ++%*2lld:1:0:1: ++%2lld:42:1:2:42: ++%*2lld:42:0:2: ++%2lld:9223372036854775807:1:2:92: ++%*2lld:9223372036854775807:0:2: ++%2lld:9223372036854775808:1:2:92: ++%*2lld:9223372036854775808:0:2: ++%2lld:9223372036897200049:1:2:92: ++%*2lld:9223372036897200049:0:2: ++%2lld:+0:1:2:0: ++%*2lld:+0:0:2: ++%2lld:+1:1:2:1: ++%*2lld:+1:0:2: ++%2lld:+42:1:2:4: ++%*2lld:+42:0:2: ++%2lld:+9223372036854775807:1:2:9: ++%*2lld:+9223372036854775807:0:2: ++%2lld:+9223372036854775808:1:2:9: ++%*2lld:+9223372036854775808:0:2: ++%2lld:+9223372036897200049:1:2:9: ++%*2lld:+9223372036897200049:0:2: ++%15lld::0:-1: ++%*15lld::0:-1: ++%15lld:-9223372036867121486:1:15:-92233720368671: ++%*15lld:-9223372036867121486:0:15: ++%15lld:-9223372036854775809:1:15:-92233720368547: ++%*15lld:-9223372036854775809:0:15: ++%15lld:-9223372036854775808:1:15:-92233720368547: ++%*15lld:-9223372036854775808:0:15: ++%15lld:-123:1:4:-123: ++%*15lld:-123:0:4: ++%15lld:-1:1:2:-1: ++%*15lld:-1:0:2: ++%15lld:-0:1:2:0: ++%*15lld:-0:0:2: ++%15lld:0:1:1:0: ++%*15lld:0:0:1: ++%15lld:1:1:1:1: ++%*15lld:1:0:1: ++%15lld:42:1:2:42: ++%*15lld:42:0:2: ++%15lld:9223372036854775807:1:15:922337203685477: ++%*15lld:9223372036854775807:0:15: ++%15lld:9223372036854775808:1:15:922337203685477: ++%*15lld:9223372036854775808:0:15: ++%15lld:9223372036897200049:1:15:922337203689720: ++%*15lld:9223372036897200049:0:15: ++%15lld:+0:1:2:0: ++%*15lld:+0:0:2: ++%15lld:+1:1:2:1: ++%*15lld:+1:0:2: ++%15lld:+42:1:3:42: ++%*15lld:+42:0:3: ++%15lld:+9223372036854775807:1:15:92233720368547: ++%*15lld:+9223372036854775807:0:15: ++%15lld:+9223372036854775808:1:15:92233720368547: ++%*15lld:+9223372036854775808:0:15: ++%15lld:+9223372036897200049:1:15:92233720368972: ++%*15lld:+9223372036897200049:0:15: ++%25lld::0:-1: ++%*25lld::0:-1: ++%25lld:-9223372036867121486:1:20:-9223372036854775808: ++%*25lld:-9223372036867121486:0:20: ++%25lld:-9223372036854775809:1:20:-9223372036854775808: ++%*25lld:-9223372036854775809:0:20: ++%25lld:-9223372036854775808:1:20:-9223372036854775808: ++%*25lld:-9223372036854775808:0:20: ++%25lld:-123:1:4:-123: ++%*25lld:-123:0:4: ++%25lld:-1:1:2:-1: ++%*25lld:-1:0:2: ++%25lld:-0:1:2:0: ++%*25lld:-0:0:2: ++%25lld:0:1:1:0: ++%*25lld:0:0:1: ++%25lld:1:1:1:1: ++%*25lld:1:0:1: ++%25lld:42:1:2:42: ++%*25lld:42:0:2: ++%25lld:9223372036854775807:1:19:9223372036854775807: ++%*25lld:9223372036854775807:0:19: ++%25lld:9223372036854775808:1:19:9223372036854775807: ++%*25lld:9223372036854775808:0:19: ++%25lld:9223372036897200049:1:19:9223372036854775807: ++%*25lld:9223372036897200049:0:19: ++%25lld:+0:1:2:0: ++%*25lld:+0:0:2: ++%25lld:+1:1:2:1: ++%*25lld:+1:0:2: ++%25lld:+42:1:3:42: ++%*25lld:+42:0:3: ++%25lld:+9223372036854775807:1:20:9223372036854775807: ++%*25lld:+9223372036854775807:0:20: ++%25lld:+9223372036854775808:1:20:9223372036854775807: ++%*25lld:+9223372036854775808:0:20: ++%25lld:+9223372036897200049:1:20:9223372036854775807: ++%*25lld:+9223372036897200049:0:20: ++%2lld: :0:-1: ++%*2lld: :0:-1: ++%2lld: -9223372036867121486:1:3:-9: ++%*2lld: -9223372036867121486:0:3: ++%2lld: -9223372036854775809:1:3:-9: ++%*2lld: -9223372036854775809:0:3: ++%2lld: -9223372036854775808:1:3:-9: ++%*2lld: -9223372036854775808:0:3: ++%2lld: -123:1:3:-1: ++%*2lld: -123:0:3: ++%2lld: -1:1:3:-1: ++%*2lld: -1:0:3: ++%2lld: -0:1:3:0: ++%*2lld: -0:0:3: ++%2lld: 0:1:2:0: ++%*2lld: 0:0:2: ++%2lld: 1:1:2:1: ++%*2lld: 1:0:2: ++%2lld: 42:1:3:42: ++%*2lld: 42:0:3: ++%2lld: 9223372036854775807:1:3:92: ++%*2lld: 9223372036854775807:0:3: ++%2lld: 9223372036854775808:1:3:92: ++%*2lld: 9223372036854775808:0:3: ++%2lld: 9223372036897200049:1:3:92: ++%*2lld: 9223372036897200049:0:3: ++%2lld: +0:1:3:0: ++%*2lld: +0:0:3: ++%2lld: +1:1:3:1: ++%*2lld: +1:0:3: ++%2lld: +42:1:3:4: ++%*2lld: +42:0:3: ++%2lld: +9223372036854775807:1:3:9: ++%*2lld: +9223372036854775807:0:3: ++%2lld: +9223372036854775808:1:3:9: ++%*2lld: +9223372036854775808:0:3: ++%2lld: +9223372036897200049:1:3:9: ++%*2lld: +9223372036897200049:0:3: ++%25lld: :0:-1: ++%*25lld: :0:-1: ++%25lld: -9223372036867121486:1:21:-9223372036854775808: ++%*25lld: -9223372036867121486:0:21: ++%25lld: -9223372036854775809:1:21:-9223372036854775808: ++%*25lld: -9223372036854775809:0:21: ++%25lld: -9223372036854775808:1:21:-9223372036854775808: ++%*25lld: -9223372036854775808:0:21: ++%25lld: -123:1:5:-123: ++%*25lld: -123:0:5: ++%25lld: -1:1:3:-1: ++%*25lld: -1:0:3: ++%25lld: -0:1:3:0: ++%*25lld: -0:0:3: ++%25lld: 0:1:2:0: ++%*25lld: 0:0:2: ++%25lld: 1:1:2:1: ++%*25lld: 1:0:2: ++%25lld: 42:1:3:42: ++%*25lld: 42:0:3: ++%25lld: 9223372036854775807:1:20:9223372036854775807: ++%*25lld: 9223372036854775807:0:20: ++%25lld: 9223372036854775808:1:20:9223372036854775807: ++%*25lld: 9223372036854775808:0:20: ++%25lld: 9223372036897200049:1:20:9223372036854775807: ++%*25lld: 9223372036897200049:0:20: ++%25lld: +0:1:3:0: ++%*25lld: +0:0:3: ++%25lld: +1:1:3:1: ++%*25lld: +1:0:3: ++%25lld: +42:1:4:42: ++%*25lld: +42:0:4: ++%25lld: +9223372036854775807:1:21:9223372036854775807: ++%*25lld: +9223372036854775807:0:21: ++%25lld: +9223372036854775808:1:21:9223372036854775807: ++%*25lld: +9223372036854775808:0:21: ++%25lld: +9223372036897200049:1:21:9223372036854775807: ++%*25lld: +9223372036897200049:0:21: +diff --git a/stdio-common/tst-scanf-format-llong-i.input b/stdio-common/tst-scanf-format-llong-i.input +new file mode 100644 +index 0000000000000000..f63e35d099c4a330 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-llong-i.input +@@ -0,0 +1,1526 @@ ++%lli::0:-1: ++%*lli::0:-1: ++%lli:-9223372036867121486:1:20:-9223372036854775808: ++%*lli:-9223372036867121486:0:20: ++%lli:-0X8000000000bc614e:1:19:-9223372036854775808: ++%*lli:-0X8000000000bc614e:0:19: ++%lli:-0x8000000000BC614E:1:19:-9223372036854775808: ++%*lli:-0x8000000000BC614E:0:19: ++%lli:-01000000000000057060516:1:24:-9223372036854775808: ++%*lli:-01000000000000057060516:0:24: ++%lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: ++%*lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:67: ++%lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: ++%*lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:67: ++%lli:-9223372036854775809:1:20:-9223372036854775808: ++%*lli:-9223372036854775809:0:20: ++%lli:-0X8000000000000001:1:19:-9223372036854775808: ++%*lli:-0X8000000000000001:0:19: ++%lli:-0x8000000000000001:1:19:-9223372036854775808: ++%*lli:-0x8000000000000001:0:19: ++%lli:-01000000000000000000001:1:24:-9223372036854775808: ++%*lli:-01000000000000000000001:0:24: ++%lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: ++%*lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:67: ++%lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: ++%*lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:67: ++%lli:-9223372036854775808:1:20:-9223372036854775808: ++%*lli:-9223372036854775808:0:20: ++%lli:-0X8000000000000000:1:19:-9223372036854775808: ++%*lli:-0X8000000000000000:0:19: ++%lli:-0x8000000000000000:1:19:-9223372036854775808: ++%*lli:-0x8000000000000000:0:19: ++%lli:-01000000000000000000000:1:24:-9223372036854775808: ++%*lli:-01000000000000000000000:0:24: ++%lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: ++%*lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: ++%*lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lli:-123:1:4:-123: ++%*lli:-123:0:4: ++%lli:-0X7b:1:5:-123: ++%*lli:-0X7b:0:5: ++%lli:-0x7B:1:5:-123: ++%*lli:-0x7B:0:5: ++%lli:-0173:1:5:-123: ++%*lli:-0173:0:5: ++%lli:-0B1111011:1:10:-123: ++%*lli:-0B1111011:0:10: ++%lli:-0b1111011:1:10:-123: ++%*lli:-0b1111011:0:10: ++%lli:-1:1:2:-1: ++%*lli:-1:0:2: ++%lli:-0X1:1:4:-1: ++%*lli:-0X1:0:4: ++%lli:-0x1:1:4:-1: ++%*lli:-0x1:0:4: ++%lli:-01:1:3:-1: ++%*lli:-01:0:3: ++%lli:-0B1:1:4:-1: ++%*lli:-0B1:0:4: ++%lli:-0b1:1:4:-1: ++%*lli:-0b1:0:4: ++%lli:-0:1:2:0: ++%*lli:-0:0:2: ++%lli:-0X0:1:4:0: ++%*lli:-0X0:0:4: ++%lli:-0x0:1:4:0: ++%*lli:-0x0:0:4: ++%lli:-00:1:3:0: ++%*lli:-00:0:3: ++%lli:-0B0:1:4:0: ++%*lli:-0B0:0:4: ++%lli:-0b0:1:4:0: ++%*lli:-0b0:0:4: ++%lli:0:1:1:0: ++%*lli:0:0:1: ++%lli:0X0:1:3:0: ++%*lli:0X0:0:3: ++%lli:0x0:1:3:0: ++%*lli:0x0:0:3: ++%lli:00:1:2:0: ++%*lli:00:0:2: ++%lli:0B0:1:3:0: ++%*lli:0B0:0:3: ++%lli:0b0:1:3:0: ++%*lli:0b0:0:3: ++%lli:1:1:1:1: ++%*lli:1:0:1: ++%lli:0X1:1:3:1: ++%*lli:0X1:0:3: ++%lli:0x1:1:3:1: ++%*lli:0x1:0:3: ++%lli:01:1:2:1: ++%*lli:01:0:2: ++%lli:0B1:1:3:1: ++%*lli:0B1:0:3: ++%lli:0b1:1:3:1: ++%*lli:0b1:0:3: ++%lli:42:1:2:42: ++%*lli:42:0:2: ++%lli:0X2a:1:4:42: ++%*lli:0X2a:0:4: ++%lli:0x2A:1:4:42: ++%*lli:0x2A:0:4: ++%lli:052:1:3:42: ++%*lli:052:0:3: ++%lli:0B101010:1:8:42: ++%*lli:0B101010:0:8: ++%lli:0b101010:1:8:42: ++%*lli:0b101010:0:8: ++%lli:9223372036854775807:1:19:9223372036854775807: ++%*lli:9223372036854775807:0:19: ++%lli:0X7fffffffffffffff:1:18:9223372036854775807: ++%*lli:0X7fffffffffffffff:0:18: ++%lli:0x7FFFFFFFFFFFFFFF:1:18:9223372036854775807: ++%*lli:0x7FFFFFFFFFFFFFFF:0:18: ++%lli:0777777777777777777777:1:22:9223372036854775807: ++%*lli:0777777777777777777777:0:22: ++%lli:0B111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: ++%*lli:0B111111111111111111111111111111111111111111111111111111111111111:0:65: ++%lli:0b111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: ++%*lli:0b111111111111111111111111111111111111111111111111111111111111111:0:65: ++%lli:9223372036854775808:1:19:9223372036854775807: ++%*lli:9223372036854775808:0:19: ++%lli:0X8000000000000000:1:18:9223372036854775807: ++%*lli:0X8000000000000000:0:18: ++%lli:0x8000000000000000:1:18:9223372036854775807: ++%*lli:0x8000000000000000:0:18: ++%lli:01000000000000000000000:1:23:9223372036854775807: ++%*lli:01000000000000000000000:0:23: ++%lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: ++%*lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:66: ++%lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: ++%*lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:66: ++%lli:9223372036897200049:1:19:9223372036854775807: ++%*lli:9223372036897200049:0:19: ++%lli:0X80000000028757b1:1:18:9223372036854775807: ++%*lli:0X80000000028757b1:0:18: ++%lli:0x80000000028757B1:1:18:9223372036854775807: ++%*lli:0x80000000028757B1:0:18: ++%lli:01000000000000241653661:1:23:9223372036854775807: ++%*lli:01000000000000241653661:0:23: ++%lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: ++%*lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:66: ++%lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: ++%*lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:66: ++%lli:+0:1:2:0: ++%*lli:+0:0:2: ++%lli:+0X0:1:4:0: ++%*lli:+0X0:0:4: ++%lli:+0x0:1:4:0: ++%*lli:+0x0:0:4: ++%lli:+00:1:3:0: ++%*lli:+00:0:3: ++%lli:+0B0:1:4:0: ++%*lli:+0B0:0:4: ++%lli:+0b0:1:4:0: ++%*lli:+0b0:0:4: ++%lli:+1:1:2:1: ++%*lli:+1:0:2: ++%lli:+0X1:1:4:1: ++%*lli:+0X1:0:4: ++%lli:+0x1:1:4:1: ++%*lli:+0x1:0:4: ++%lli:+01:1:3:1: ++%*lli:+01:0:3: ++%lli:+0B1:1:4:1: ++%*lli:+0B1:0:4: ++%lli:+0b1:1:4:1: ++%*lli:+0b1:0:4: ++%lli:+42:1:3:42: ++%*lli:+42:0:3: ++%lli:+0X2a:1:5:42: ++%*lli:+0X2a:0:5: ++%lli:+0x2A:1:5:42: ++%*lli:+0x2A:0:5: ++%lli:+052:1:4:42: ++%*lli:+052:0:4: ++%lli:+0B101010:1:9:42: ++%*lli:+0B101010:0:9: ++%lli:+0b101010:1:9:42: ++%*lli:+0b101010:0:9: ++%lli:+9223372036854775807:1:20:9223372036854775807: ++%*lli:+9223372036854775807:0:20: ++%lli:+0X7fffffffffffffff:1:19:9223372036854775807: ++%*lli:+0X7fffffffffffffff:0:19: ++%lli:+0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*lli:+0x7FFFFFFFFFFFFFFF:0:19: ++%lli:+0777777777777777777777:1:23:9223372036854775807: ++%*lli:+0777777777777777777777:0:23: ++%lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: ++%*lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:66: ++%lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: ++%*lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:66: ++%lli:+9223372036854775808:1:20:9223372036854775807: ++%*lli:+9223372036854775808:0:20: ++%lli:+0X8000000000000000:1:19:9223372036854775807: ++%*lli:+0X8000000000000000:0:19: ++%lli:+0x8000000000000000:1:19:9223372036854775807: ++%*lli:+0x8000000000000000:0:19: ++%lli:+01000000000000000000000:1:24:9223372036854775807: ++%*lli:+01000000000000000000000:0:24: ++%lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: ++%*lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: ++%*lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lli:+9223372036897200049:1:20:9223372036854775807: ++%*lli:+9223372036897200049:0:20: ++%lli:+0X80000000028757b1:1:19:9223372036854775807: ++%*lli:+0X80000000028757b1:0:19: ++%lli:+0x80000000028757B1:1:19:9223372036854775807: ++%*lli:+0x80000000028757B1:0:19: ++%lli:+01000000000000241653661:1:24:9223372036854775807: ++%*lli:+01000000000000241653661:0:24: ++%lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: ++%*lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:67: ++%lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: ++%*lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:67: ++%1lli::0:-1: ++%*1lli::0:-1: ++%1lli:-9223372036867121486:0:-1: ++%*1lli:-9223372036867121486:0:-1: ++%1lli:-0X8000000000bc614e:0:-1: ++%*1lli:-0X8000000000bc614e:0:-1: ++%1lli:-0x8000000000BC614E:0:-1: ++%*1lli:-0x8000000000BC614E:0:-1: ++%1lli:-01000000000000057060516:0:-1: ++%*1lli:-01000000000000057060516:0:-1: ++%1lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%*1lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%1lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%*1lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%1lli:-9223372036854775809:0:-1: ++%*1lli:-9223372036854775809:0:-1: ++%1lli:-0X8000000000000001:0:-1: ++%*1lli:-0X8000000000000001:0:-1: ++%1lli:-0x8000000000000001:0:-1: ++%*1lli:-0x8000000000000001:0:-1: ++%1lli:-01000000000000000000001:0:-1: ++%*1lli:-01000000000000000000001:0:-1: ++%1lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%*1lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%1lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%*1lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%1lli:-9223372036854775808:0:-1: ++%*1lli:-9223372036854775808:0:-1: ++%1lli:-0X8000000000000000:0:-1: ++%*1lli:-0X8000000000000000:0:-1: ++%1lli:-0x8000000000000000:0:-1: ++%*1lli:-0x8000000000000000:0:-1: ++%1lli:-01000000000000000000000:0:-1: ++%*1lli:-01000000000000000000000:0:-1: ++%1lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lli:-123:0:-1: ++%*1lli:-123:0:-1: ++%1lli:-0X7b:0:-1: ++%*1lli:-0X7b:0:-1: ++%1lli:-0x7B:0:-1: ++%*1lli:-0x7B:0:-1: ++%1lli:-0173:0:-1: ++%*1lli:-0173:0:-1: ++%1lli:-0B1111011:0:-1: ++%*1lli:-0B1111011:0:-1: ++%1lli:-0b1111011:0:-1: ++%*1lli:-0b1111011:0:-1: ++%1lli:-1:0:-1: ++%*1lli:-1:0:-1: ++%1lli:-0X1:0:-1: ++%*1lli:-0X1:0:-1: ++%1lli:-0x1:0:-1: ++%*1lli:-0x1:0:-1: ++%1lli:-01:0:-1: ++%*1lli:-01:0:-1: ++%1lli:-0B1:0:-1: ++%*1lli:-0B1:0:-1: ++%1lli:-0b1:0:-1: ++%*1lli:-0b1:0:-1: ++%1lli:-0:0:-1: ++%*1lli:-0:0:-1: ++%1lli:-0X0:0:-1: ++%*1lli:-0X0:0:-1: ++%1lli:-0x0:0:-1: ++%*1lli:-0x0:0:-1: ++%1lli:-00:0:-1: ++%*1lli:-00:0:-1: ++%1lli:-0B0:0:-1: ++%*1lli:-0B0:0:-1: ++%1lli:-0b0:0:-1: ++%*1lli:-0b0:0:-1: ++%1lli:0:1:1:0: ++%*1lli:0:0:1: ++%1lli:0X0:1:1:0: ++%*1lli:0X0:0:1: ++%1lli:0x0:1:1:0: ++%*1lli:0x0:0:1: ++%1lli:00:1:1:0: ++%*1lli:00:0:1: ++%1lli:0B0:1:1:0: ++%*1lli:0B0:0:1: ++%1lli:0b0:1:1:0: ++%*1lli:0b0:0:1: ++%1lli:1:1:1:1: ++%*1lli:1:0:1: ++%1lli:0X1:1:1:0: ++%*1lli:0X1:0:1: ++%1lli:0x1:1:1:0: ++%*1lli:0x1:0:1: ++%1lli:01:1:1:0: ++%*1lli:01:0:1: ++%1lli:0B1:1:1:0: ++%*1lli:0B1:0:1: ++%1lli:0b1:1:1:0: ++%*1lli:0b1:0:1: ++%1lli:42:1:1:4: ++%*1lli:42:0:1: ++%1lli:0X2a:1:1:0: ++%*1lli:0X2a:0:1: ++%1lli:0x2A:1:1:0: ++%*1lli:0x2A:0:1: ++%1lli:052:1:1:0: ++%*1lli:052:0:1: ++%1lli:0B101010:1:1:0: ++%*1lli:0B101010:0:1: ++%1lli:0b101010:1:1:0: ++%*1lli:0b101010:0:1: ++%1lli:9223372036854775807:1:1:9: ++%*1lli:9223372036854775807:0:1: ++%1lli:0X7fffffffffffffff:1:1:0: ++%*1lli:0X7fffffffffffffff:0:1: ++%1lli:0x7FFFFFFFFFFFFFFF:1:1:0: ++%*1lli:0x7FFFFFFFFFFFFFFF:0:1: ++%1lli:0777777777777777777777:1:1:0: ++%*1lli:0777777777777777777777:0:1: ++%1lli:0B111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1lli:0B111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1lli:0b111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1lli:0b111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1lli:9223372036854775808:1:1:9: ++%*1lli:9223372036854775808:0:1: ++%1lli:0X8000000000000000:1:1:0: ++%*1lli:0X8000000000000000:0:1: ++%1lli:0x8000000000000000:1:1:0: ++%*1lli:0x8000000000000000:0:1: ++%1lli:01000000000000000000000:1:1:0: ++%*1lli:01000000000000000000000:0:1: ++%1lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1lli:9223372036897200049:1:1:9: ++%*1lli:9223372036897200049:0:1: ++%1lli:0X80000000028757b1:1:1:0: ++%*1lli:0X80000000028757b1:0:1: ++%1lli:0x80000000028757B1:1:1:0: ++%*1lli:0x80000000028757B1:0:1: ++%1lli:01000000000000241653661:1:1:0: ++%*1lli:01000000000000241653661:0:1: ++%1lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1lli:+0:0:-1: ++%*1lli:+0:0:-1: ++%1lli:+0X0:0:-1: ++%*1lli:+0X0:0:-1: ++%1lli:+0x0:0:-1: ++%*1lli:+0x0:0:-1: ++%1lli:+00:0:-1: ++%*1lli:+00:0:-1: ++%1lli:+0B0:0:-1: ++%*1lli:+0B0:0:-1: ++%1lli:+0b0:0:-1: ++%*1lli:+0b0:0:-1: ++%1lli:+1:0:-1: ++%*1lli:+1:0:-1: ++%1lli:+0X1:0:-1: ++%*1lli:+0X1:0:-1: ++%1lli:+0x1:0:-1: ++%*1lli:+0x1:0:-1: ++%1lli:+01:0:-1: ++%*1lli:+01:0:-1: ++%1lli:+0B1:0:-1: ++%*1lli:+0B1:0:-1: ++%1lli:+0b1:0:-1: ++%*1lli:+0b1:0:-1: ++%1lli:+42:0:-1: ++%*1lli:+42:0:-1: ++%1lli:+0X2a:0:-1: ++%*1lli:+0X2a:0:-1: ++%1lli:+0x2A:0:-1: ++%*1lli:+0x2A:0:-1: ++%1lli:+052:0:-1: ++%*1lli:+052:0:-1: ++%1lli:+0B101010:0:-1: ++%*1lli:+0B101010:0:-1: ++%1lli:+0b101010:0:-1: ++%*1lli:+0b101010:0:-1: ++%1lli:+9223372036854775807:0:-1: ++%*1lli:+9223372036854775807:0:-1: ++%1lli:+0X7fffffffffffffff:0:-1: ++%*1lli:+0X7fffffffffffffff:0:-1: ++%1lli:+0x7FFFFFFFFFFFFFFF:0:-1: ++%*1lli:+0x7FFFFFFFFFFFFFFF:0:-1: ++%1lli:+0777777777777777777777:0:-1: ++%*1lli:+0777777777777777777777:0:-1: ++%1lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1lli:+9223372036854775808:0:-1: ++%*1lli:+9223372036854775808:0:-1: ++%1lli:+0X8000000000000000:0:-1: ++%*1lli:+0X8000000000000000:0:-1: ++%1lli:+0x8000000000000000:0:-1: ++%*1lli:+0x8000000000000000:0:-1: ++%1lli:+01000000000000000000000:0:-1: ++%*1lli:+01000000000000000000000:0:-1: ++%1lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lli:+9223372036897200049:0:-1: ++%*1lli:+9223372036897200049:0:-1: ++%1lli:+0X80000000028757b1:0:-1: ++%*1lli:+0X80000000028757b1:0:-1: ++%1lli:+0x80000000028757B1:0:-1: ++%*1lli:+0x80000000028757B1:0:-1: ++%1lli:+01000000000000241653661:0:-1: ++%*1lli:+01000000000000241653661:0:-1: ++%1lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lli::0:-1: ++%*2lli::0:-1: ++%2lli:-9223372036867121486:1:2:-9: ++%*2lli:-9223372036867121486:0:2: ++%2lli:-0X8000000000bc614e:1:2:0: ++%*2lli:-0X8000000000bc614e:0:2: ++%2lli:-0x8000000000BC614E:1:2:0: ++%*2lli:-0x8000000000BC614E:0:2: ++%2lli:-01000000000000057060516:1:2:0: ++%*2lli:-01000000000000057060516:0:2: ++%2lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:2:0: ++%*2lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:2: ++%2lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:2:0: ++%*2lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:2: ++%2lli:-9223372036854775809:1:2:-9: ++%*2lli:-9223372036854775809:0:2: ++%2lli:-0X8000000000000001:1:2:0: ++%*2lli:-0X8000000000000001:0:2: ++%2lli:-0x8000000000000001:1:2:0: ++%*2lli:-0x8000000000000001:0:2: ++%2lli:-01000000000000000000001:1:2:0: ++%*2lli:-01000000000000000000001:0:2: ++%2lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:2:0: ++%*2lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:2: ++%2lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:2:0: ++%*2lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:2: ++%2lli:-9223372036854775808:1:2:-9: ++%*2lli:-9223372036854775808:0:2: ++%2lli:-0X8000000000000000:1:2:0: ++%*2lli:-0X8000000000000000:0:2: ++%2lli:-0x8000000000000000:1:2:0: ++%*2lli:-0x8000000000000000:0:2: ++%2lli:-01000000000000000000000:1:2:0: ++%*2lli:-01000000000000000000000:0:2: ++%2lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lli:-123:1:2:-1: ++%*2lli:-123:0:2: ++%2lli:-0X7b:1:2:0: ++%*2lli:-0X7b:0:2: ++%2lli:-0x7B:1:2:0: ++%*2lli:-0x7B:0:2: ++%2lli:-0173:1:2:0: ++%*2lli:-0173:0:2: ++%2lli:-0B1111011:1:2:0: ++%*2lli:-0B1111011:0:2: ++%2lli:-0b1111011:1:2:0: ++%*2lli:-0b1111011:0:2: ++%2lli:-1:1:2:-1: ++%*2lli:-1:0:2: ++%2lli:-0X1:1:2:0: ++%*2lli:-0X1:0:2: ++%2lli:-0x1:1:2:0: ++%*2lli:-0x1:0:2: ++%2lli:-01:1:2:0: ++%*2lli:-01:0:2: ++%2lli:-0B1:1:2:0: ++%*2lli:-0B1:0:2: ++%2lli:-0b1:1:2:0: ++%*2lli:-0b1:0:2: ++%2lli:-0:1:2:0: ++%*2lli:-0:0:2: ++%2lli:-0X0:1:2:0: ++%*2lli:-0X0:0:2: ++%2lli:-0x0:1:2:0: ++%*2lli:-0x0:0:2: ++%2lli:-00:1:2:0: ++%*2lli:-00:0:2: ++%2lli:-0B0:1:2:0: ++%*2lli:-0B0:0:2: ++%2lli:-0b0:1:2:0: ++%*2lli:-0b0:0:2: ++%2lli:0:1:1:0: ++%*2lli:0:0:1: ++# BZ12701 %2lli:0X0:0:-1: ++# BZ12701 %*2lli:0X0:0:-1: ++# BZ12701 %2lli:0x0:0:-1: ++# BZ12701 %*2lli:0x0:0:-1: ++%2lli:00:1:2:0: ++%*2lli:00:0:2: ++# BZ12701 %2lli:0B0:0:-1: ++# BZ12701 %*2lli:0B0:0:-1: ++# BZ12701 %2lli:0b0:0:-1: ++# BZ12701 %*2lli:0b0:0:-1: ++%2lli:1:1:1:1: ++%*2lli:1:0:1: ++# BZ12701 %2lli:0X1:0:-1: ++# BZ12701 %*2lli:0X1:0:-1: ++# BZ12701 %2lli:0x1:0:-1: ++# BZ12701 %*2lli:0x1:0:-1: ++%2lli:01:1:2:1: ++%*2lli:01:0:2: ++# BZ12701 %2lli:0B1:0:-1: ++# BZ12701 %*2lli:0B1:0:-1: ++# BZ12701 %2lli:0b1:0:-1: ++# BZ12701 %*2lli:0b1:0:-1: ++%2lli:42:1:2:42: ++%*2lli:42:0:2: ++# BZ12701 %2lli:0X2a:0:-1: ++# BZ12701 %*2lli:0X2a:0:-1: ++# BZ12701 %2lli:0x2A:0:-1: ++# BZ12701 %*2lli:0x2A:0:-1: ++%2lli:052:1:2:5: ++%*2lli:052:0:2: ++# BZ12701 %2lli:0B101010:0:-1: ++# BZ12701 %*2lli:0B101010:0:-1: ++# BZ12701 %2lli:0b101010:0:-1: ++# BZ12701 %*2lli:0b101010:0:-1: ++%2lli:9223372036854775807:1:2:92: ++%*2lli:9223372036854775807:0:2: ++# BZ12701 %2lli:0X7fffffffffffffff:0:-1: ++# BZ12701 %*2lli:0X7fffffffffffffff:0:-1: ++# BZ12701 %2lli:0x7FFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lli:0x7FFFFFFFFFFFFFFF:0:-1: ++%2lli:0777777777777777777777:1:2:7: ++%*2lli:0777777777777777777777:0:2: ++# BZ12701 %2lli:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lli:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2lli:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lli:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2lli:9223372036854775808:1:2:92: ++%*2lli:9223372036854775808:0:2: ++# BZ12701 %2lli:0X8000000000000000:0:-1: ++# BZ12701 %*2lli:0X8000000000000000:0:-1: ++# BZ12701 %2lli:0x8000000000000000:0:-1: ++# BZ12701 %*2lli:0x8000000000000000:0:-1: ++%2lli:01000000000000000000000:1:2:1: ++%*2lli:01000000000000000000000:0:2: ++# BZ12701 %2lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2lli:9223372036897200049:1:2:92: ++%*2lli:9223372036897200049:0:2: ++# BZ12701 %2lli:0X80000000028757b1:0:-1: ++# BZ12701 %*2lli:0X80000000028757b1:0:-1: ++# BZ12701 %2lli:0x80000000028757B1:0:-1: ++# BZ12701 %*2lli:0x80000000028757B1:0:-1: ++%2lli:01000000000000241653661:1:2:1: ++%*2lli:01000000000000241653661:0:2: ++# BZ12701 %2lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lli:+0:1:2:0: ++%*2lli:+0:0:2: ++%2lli:+0X0:1:2:0: ++%*2lli:+0X0:0:2: ++%2lli:+0x0:1:2:0: ++%*2lli:+0x0:0:2: ++%2lli:+00:1:2:0: ++%*2lli:+00:0:2: ++%2lli:+0B0:1:2:0: ++%*2lli:+0B0:0:2: ++%2lli:+0b0:1:2:0: ++%*2lli:+0b0:0:2: ++%2lli:+1:1:2:1: ++%*2lli:+1:0:2: ++%2lli:+0X1:1:2:0: ++%*2lli:+0X1:0:2: ++%2lli:+0x1:1:2:0: ++%*2lli:+0x1:0:2: ++%2lli:+01:1:2:0: ++%*2lli:+01:0:2: ++%2lli:+0B1:1:2:0: ++%*2lli:+0B1:0:2: ++%2lli:+0b1:1:2:0: ++%*2lli:+0b1:0:2: ++%2lli:+42:1:2:4: ++%*2lli:+42:0:2: ++%2lli:+0X2a:1:2:0: ++%*2lli:+0X2a:0:2: ++%2lli:+0x2A:1:2:0: ++%*2lli:+0x2A:0:2: ++%2lli:+052:1:2:0: ++%*2lli:+052:0:2: ++%2lli:+0B101010:1:2:0: ++%*2lli:+0B101010:0:2: ++%2lli:+0b101010:1:2:0: ++%*2lli:+0b101010:0:2: ++%2lli:+9223372036854775807:1:2:9: ++%*2lli:+9223372036854775807:0:2: ++%2lli:+0X7fffffffffffffff:1:2:0: ++%*2lli:+0X7fffffffffffffff:0:2: ++%2lli:+0x7FFFFFFFFFFFFFFF:1:2:0: ++%*2lli:+0x7FFFFFFFFFFFFFFF:0:2: ++%2lli:+0777777777777777777777:1:2:0: ++%*2lli:+0777777777777777777777:0:2: ++%2lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2lli:+9223372036854775808:1:2:9: ++%*2lli:+9223372036854775808:0:2: ++%2lli:+0X8000000000000000:1:2:0: ++%*2lli:+0X8000000000000000:0:2: ++%2lli:+0x8000000000000000:1:2:0: ++%*2lli:+0x8000000000000000:0:2: ++%2lli:+01000000000000000000000:1:2:0: ++%*2lli:+01000000000000000000000:0:2: ++%2lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lli:+9223372036897200049:1:2:9: ++%*2lli:+9223372036897200049:0:2: ++%2lli:+0X80000000028757b1:1:2:0: ++%*2lli:+0X80000000028757b1:0:2: ++%2lli:+0x80000000028757B1:1:2:0: ++%*2lli:+0x80000000028757B1:0:2: ++%2lli:+01000000000000241653661:1:2:0: ++%*2lli:+01000000000000241653661:0:2: ++%2lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:2: ++%15lli::0:-1: ++%*15lli::0:-1: ++%15lli:-9223372036867121486:1:15:-92233720368671: ++%*15lli:-9223372036867121486:0:15: ++%15lli:-0X8000000000bc614e:1:15:-140737488355516: ++%*15lli:-0X8000000000bc614e:0:15: ++%15lli:-0x8000000000BC614E:1:15:-140737488355516: ++%*15lli:-0x8000000000BC614E:0:15: ++%15lli:-01000000000000057060516:1:15:-68719476736: ++%*15lli:-01000000000000057060516:0:15: ++%15lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: ++%*15lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:15: ++%15lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: ++%*15lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:15: ++%15lli:-9223372036854775809:1:15:-92233720368547: ++%*15lli:-9223372036854775809:0:15: ++%15lli:-0X8000000000000001:1:15:-140737488355328: ++%*15lli:-0X8000000000000001:0:15: ++%15lli:-0x8000000000000001:1:15:-140737488355328: ++%*15lli:-0x8000000000000001:0:15: ++%15lli:-01000000000000000000001:1:15:-68719476736: ++%*15lli:-01000000000000000000001:0:15: ++%15lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: ++%*15lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:15: ++%15lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: ++%*15lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:15: ++%15lli:-9223372036854775808:1:15:-92233720368547: ++%*15lli:-9223372036854775808:0:15: ++%15lli:-0X8000000000000000:1:15:-140737488355328: ++%*15lli:-0X8000000000000000:0:15: ++%15lli:-0x8000000000000000:1:15:-140737488355328: ++%*15lli:-0x8000000000000000:0:15: ++%15lli:-01000000000000000000000:1:15:-68719476736: ++%*15lli:-01000000000000000000000:0:15: ++%15lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: ++%*15lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: ++%*15lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:-123:1:4:-123: ++%*15lli:-123:0:4: ++%15lli:-0X7b:1:5:-123: ++%*15lli:-0X7b:0:5: ++%15lli:-0x7B:1:5:-123: ++%*15lli:-0x7B:0:5: ++%15lli:-0173:1:5:-123: ++%*15lli:-0173:0:5: ++%15lli:-0B1111011:1:10:-123: ++%*15lli:-0B1111011:0:10: ++%15lli:-0b1111011:1:10:-123: ++%*15lli:-0b1111011:0:10: ++%15lli:-1:1:2:-1: ++%*15lli:-1:0:2: ++%15lli:-0X1:1:4:-1: ++%*15lli:-0X1:0:4: ++%15lli:-0x1:1:4:-1: ++%*15lli:-0x1:0:4: ++%15lli:-01:1:3:-1: ++%*15lli:-01:0:3: ++%15lli:-0B1:1:4:-1: ++%*15lli:-0B1:0:4: ++%15lli:-0b1:1:4:-1: ++%*15lli:-0b1:0:4: ++%15lli:-0:1:2:0: ++%*15lli:-0:0:2: ++%15lli:-0X0:1:4:0: ++%*15lli:-0X0:0:4: ++%15lli:-0x0:1:4:0: ++%*15lli:-0x0:0:4: ++%15lli:-00:1:3:0: ++%*15lli:-00:0:3: ++%15lli:-0B0:1:4:0: ++%*15lli:-0B0:0:4: ++%15lli:-0b0:1:4:0: ++%*15lli:-0b0:0:4: ++%15lli:0:1:1:0: ++%*15lli:0:0:1: ++%15lli:0X0:1:3:0: ++%*15lli:0X0:0:3: ++%15lli:0x0:1:3:0: ++%*15lli:0x0:0:3: ++%15lli:00:1:2:0: ++%*15lli:00:0:2: ++%15lli:0B0:1:3:0: ++%*15lli:0B0:0:3: ++%15lli:0b0:1:3:0: ++%*15lli:0b0:0:3: ++%15lli:1:1:1:1: ++%*15lli:1:0:1: ++%15lli:0X1:1:3:1: ++%*15lli:0X1:0:3: ++%15lli:0x1:1:3:1: ++%*15lli:0x1:0:3: ++%15lli:01:1:2:1: ++%*15lli:01:0:2: ++%15lli:0B1:1:3:1: ++%*15lli:0B1:0:3: ++%15lli:0b1:1:3:1: ++%*15lli:0b1:0:3: ++%15lli:42:1:2:42: ++%*15lli:42:0:2: ++%15lli:0X2a:1:4:42: ++%*15lli:0X2a:0:4: ++%15lli:0x2A:1:4:42: ++%*15lli:0x2A:0:4: ++%15lli:052:1:3:42: ++%*15lli:052:0:3: ++%15lli:0B101010:1:8:42: ++%*15lli:0B101010:0:8: ++%15lli:0b101010:1:8:42: ++%*15lli:0b101010:0:8: ++%15lli:9223372036854775807:1:15:922337203685477: ++%*15lli:9223372036854775807:0:15: ++%15lli:0X7fffffffffffffff:1:15:2251799813685247: ++%*15lli:0X7fffffffffffffff:0:15: ++%15lli:0x7FFFFFFFFFFFFFFF:1:15:2251799813685247: ++%*15lli:0x7FFFFFFFFFFFFFFF:0:15: ++%15lli:0777777777777777777777:1:15:4398046511103: ++%*15lli:0777777777777777777777:0:15: ++%15lli:0B111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15lli:0B111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lli:0b111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15lli:0b111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lli:9223372036854775808:1:15:922337203685477: ++%*15lli:9223372036854775808:0:15: ++%15lli:0X8000000000000000:1:15:2251799813685248: ++%*15lli:0X8000000000000000:0:15: ++%15lli:0x8000000000000000:1:15:2251799813685248: ++%*15lli:0x8000000000000000:0:15: ++%15lli:01000000000000000000000:1:15:549755813888: ++%*15lli:01000000000000000000000:0:15: ++%15lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:9223372036897200049:1:15:922337203689720: ++%*15lli:9223372036897200049:0:15: ++%15lli:0X80000000028757b1:1:15:2251799813695605: ++%*15lli:0X80000000028757b1:0:15: ++%15lli:0x80000000028757B1:1:15:2251799813695605: ++%*15lli:0x80000000028757B1:0:15: ++%15lli:01000000000000241653661:1:15:549755813890: ++%*15lli:01000000000000241653661:0:15: ++%15lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lli:+0:1:2:0: ++%*15lli:+0:0:2: ++%15lli:+0X0:1:4:0: ++%*15lli:+0X0:0:4: ++%15lli:+0x0:1:4:0: ++%*15lli:+0x0:0:4: ++%15lli:+00:1:3:0: ++%*15lli:+00:0:3: ++%15lli:+0B0:1:4:0: ++%*15lli:+0B0:0:4: ++%15lli:+0b0:1:4:0: ++%*15lli:+0b0:0:4: ++%15lli:+1:1:2:1: ++%*15lli:+1:0:2: ++%15lli:+0X1:1:4:1: ++%*15lli:+0X1:0:4: ++%15lli:+0x1:1:4:1: ++%*15lli:+0x1:0:4: ++%15lli:+01:1:3:1: ++%*15lli:+01:0:3: ++%15lli:+0B1:1:4:1: ++%*15lli:+0B1:0:4: ++%15lli:+0b1:1:4:1: ++%*15lli:+0b1:0:4: ++%15lli:+42:1:3:42: ++%*15lli:+42:0:3: ++%15lli:+0X2a:1:5:42: ++%*15lli:+0X2a:0:5: ++%15lli:+0x2A:1:5:42: ++%*15lli:+0x2A:0:5: ++%15lli:+052:1:4:42: ++%*15lli:+052:0:4: ++%15lli:+0B101010:1:9:42: ++%*15lli:+0B101010:0:9: ++%15lli:+0b101010:1:9:42: ++%*15lli:+0b101010:0:9: ++%15lli:+9223372036854775807:1:15:92233720368547: ++%*15lli:+9223372036854775807:0:15: ++%15lli:+0X7fffffffffffffff:1:15:140737488355327: ++%*15lli:+0X7fffffffffffffff:0:15: ++%15lli:+0x7FFFFFFFFFFFFFFF:1:15:140737488355327: ++%*15lli:+0x7FFFFFFFFFFFFFFF:0:15: ++%15lli:+0777777777777777777777:1:15:549755813887: ++%*15lli:+0777777777777777777777:0:15: ++%15lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lli:+9223372036854775808:1:15:92233720368547: ++%*15lli:+9223372036854775808:0:15: ++%15lli:+0X8000000000000000:1:15:140737488355328: ++%*15lli:+0X8000000000000000:0:15: ++%15lli:+0x8000000000000000:1:15:140737488355328: ++%*15lli:+0x8000000000000000:0:15: ++%15lli:+01000000000000000000000:1:15:68719476736: ++%*15lli:+01000000000000000000000:0:15: ++%15lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lli:+9223372036897200049:1:15:92233720368972: ++%*15lli:+9223372036897200049:0:15: ++%15lli:+0X80000000028757b1:1:15:140737488355975: ++%*15lli:+0X80000000028757b1:0:15: ++%15lli:+0x80000000028757B1:1:15:140737488355975: ++%*15lli:+0x80000000028757B1:0:15: ++%15lli:+01000000000000241653661:1:15:68719476736: ++%*15lli:+01000000000000241653661:0:15: ++%15lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%25lli::0:-1: ++%*25lli::0:-1: ++%25lli:-9223372036867121486:1:20:-9223372036854775808: ++%*25lli:-9223372036867121486:0:20: ++%25lli:-0X8000000000bc614e:1:19:-9223372036854775808: ++%*25lli:-0X8000000000bc614e:0:19: ++%25lli:-0x8000000000BC614E:1:19:-9223372036854775808: ++%*25lli:-0x8000000000BC614E:0:19: ++%25lli:-01000000000000057060516:1:24:-9223372036854775808: ++%*25lli:-01000000000000057060516:0:24: ++%25lli:-0B1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: ++%*25lli:-0B1000000000000000000000000000000000000000101111000110000101001110:0:25: ++%25lli:-0b1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: ++%*25lli:-0b1000000000000000000000000000000000000000101111000110000101001110:0:25: ++%25lli:-9223372036854775809:1:20:-9223372036854775808: ++%*25lli:-9223372036854775809:0:20: ++%25lli:-0X8000000000000001:1:19:-9223372036854775808: ++%*25lli:-0X8000000000000001:0:19: ++%25lli:-0x8000000000000001:1:19:-9223372036854775808: ++%*25lli:-0x8000000000000001:0:19: ++%25lli:-01000000000000000000001:1:24:-9223372036854775808: ++%*25lli:-01000000000000000000001:0:24: ++%25lli:-0B1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: ++%*25lli:-0B1000000000000000000000000000000000000000000000000000000000000001:0:25: ++%25lli:-0b1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: ++%*25lli:-0b1000000000000000000000000000000000000000000000000000000000000001:0:25: ++%25lli:-9223372036854775808:1:20:-9223372036854775808: ++%*25lli:-9223372036854775808:0:20: ++%25lli:-0X8000000000000000:1:19:-9223372036854775808: ++%*25lli:-0X8000000000000000:0:19: ++%25lli:-0x8000000000000000:1:19:-9223372036854775808: ++%*25lli:-0x8000000000000000:0:19: ++%25lli:-01000000000000000000000:1:24:-9223372036854775808: ++%*25lli:-01000000000000000000000:0:24: ++%25lli:-0B1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: ++%*25lli:-0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:-0b1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: ++%*25lli:-0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:-123:1:4:-123: ++%*25lli:-123:0:4: ++%25lli:-0X7b:1:5:-123: ++%*25lli:-0X7b:0:5: ++%25lli:-0x7B:1:5:-123: ++%*25lli:-0x7B:0:5: ++%25lli:-0173:1:5:-123: ++%*25lli:-0173:0:5: ++%25lli:-0B1111011:1:10:-123: ++%*25lli:-0B1111011:0:10: ++%25lli:-0b1111011:1:10:-123: ++%*25lli:-0b1111011:0:10: ++%25lli:-1:1:2:-1: ++%*25lli:-1:0:2: ++%25lli:-0X1:1:4:-1: ++%*25lli:-0X1:0:4: ++%25lli:-0x1:1:4:-1: ++%*25lli:-0x1:0:4: ++%25lli:-01:1:3:-1: ++%*25lli:-01:0:3: ++%25lli:-0B1:1:4:-1: ++%*25lli:-0B1:0:4: ++%25lli:-0b1:1:4:-1: ++%*25lli:-0b1:0:4: ++%25lli:-0:1:2:0: ++%*25lli:-0:0:2: ++%25lli:-0X0:1:4:0: ++%*25lli:-0X0:0:4: ++%25lli:-0x0:1:4:0: ++%*25lli:-0x0:0:4: ++%25lli:-00:1:3:0: ++%*25lli:-00:0:3: ++%25lli:-0B0:1:4:0: ++%*25lli:-0B0:0:4: ++%25lli:-0b0:1:4:0: ++%*25lli:-0b0:0:4: ++%25lli:0:1:1:0: ++%*25lli:0:0:1: ++%25lli:0X0:1:3:0: ++%*25lli:0X0:0:3: ++%25lli:0x0:1:3:0: ++%*25lli:0x0:0:3: ++%25lli:00:1:2:0: ++%*25lli:00:0:2: ++%25lli:0B0:1:3:0: ++%*25lli:0B0:0:3: ++%25lli:0b0:1:3:0: ++%*25lli:0b0:0:3: ++%25lli:1:1:1:1: ++%*25lli:1:0:1: ++%25lli:0X1:1:3:1: ++%*25lli:0X1:0:3: ++%25lli:0x1:1:3:1: ++%*25lli:0x1:0:3: ++%25lli:01:1:2:1: ++%*25lli:01:0:2: ++%25lli:0B1:1:3:1: ++%*25lli:0B1:0:3: ++%25lli:0b1:1:3:1: ++%*25lli:0b1:0:3: ++%25lli:42:1:2:42: ++%*25lli:42:0:2: ++%25lli:0X2a:1:4:42: ++%*25lli:0X2a:0:4: ++%25lli:0x2A:1:4:42: ++%*25lli:0x2A:0:4: ++%25lli:052:1:3:42: ++%*25lli:052:0:3: ++%25lli:0B101010:1:8:42: ++%*25lli:0B101010:0:8: ++%25lli:0b101010:1:8:42: ++%*25lli:0b101010:0:8: ++%25lli:9223372036854775807:1:19:9223372036854775807: ++%*25lli:9223372036854775807:0:19: ++%25lli:0X7fffffffffffffff:1:18:9223372036854775807: ++%*25lli:0X7fffffffffffffff:0:18: ++%25lli:0x7FFFFFFFFFFFFFFF:1:18:9223372036854775807: ++%*25lli:0x7FFFFFFFFFFFFFFF:0:18: ++%25lli:0777777777777777777777:1:22:9223372036854775807: ++%*25lli:0777777777777777777777:0:22: ++%25lli:0B111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25lli:0B111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lli:0b111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25lli:0b111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lli:9223372036854775808:1:19:9223372036854775807: ++%*25lli:9223372036854775808:0:19: ++%25lli:0X8000000000000000:1:18:9223372036854775807: ++%*25lli:0X8000000000000000:0:18: ++%25lli:0x8000000000000000:1:18:9223372036854775807: ++%*25lli:0x8000000000000000:0:18: ++%25lli:01000000000000000000000:1:23:9223372036854775807: ++%*25lli:01000000000000000000000:0:23: ++%25lli:0B1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25lli:0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:0b1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25lli:0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:9223372036897200049:1:19:9223372036854775807: ++%*25lli:9223372036897200049:0:19: ++%25lli:0X80000000028757b1:1:18:9223372036854775807: ++%*25lli:0X80000000028757b1:0:18: ++%25lli:0x80000000028757B1:1:18:9223372036854775807: ++%*25lli:0x80000000028757B1:0:18: ++%25lli:01000000000000241653661:1:23:9223372036854775807: ++%*25lli:01000000000000241653661:0:23: ++%25lli:0B1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25lli:0B1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lli:0b1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25lli:0b1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lli:+0:1:2:0: ++%*25lli:+0:0:2: ++%25lli:+0X0:1:4:0: ++%*25lli:+0X0:0:4: ++%25lli:+0x0:1:4:0: ++%*25lli:+0x0:0:4: ++%25lli:+00:1:3:0: ++%*25lli:+00:0:3: ++%25lli:+0B0:1:4:0: ++%*25lli:+0B0:0:4: ++%25lli:+0b0:1:4:0: ++%*25lli:+0b0:0:4: ++%25lli:+1:1:2:1: ++%*25lli:+1:0:2: ++%25lli:+0X1:1:4:1: ++%*25lli:+0X1:0:4: ++%25lli:+0x1:1:4:1: ++%*25lli:+0x1:0:4: ++%25lli:+01:1:3:1: ++%*25lli:+01:0:3: ++%25lli:+0B1:1:4:1: ++%*25lli:+0B1:0:4: ++%25lli:+0b1:1:4:1: ++%*25lli:+0b1:0:4: ++%25lli:+42:1:3:42: ++%*25lli:+42:0:3: ++%25lli:+0X2a:1:5:42: ++%*25lli:+0X2a:0:5: ++%25lli:+0x2A:1:5:42: ++%*25lli:+0x2A:0:5: ++%25lli:+052:1:4:42: ++%*25lli:+052:0:4: ++%25lli:+0B101010:1:9:42: ++%*25lli:+0B101010:0:9: ++%25lli:+0b101010:1:9:42: ++%*25lli:+0b101010:0:9: ++%25lli:+9223372036854775807:1:20:9223372036854775807: ++%*25lli:+9223372036854775807:0:20: ++%25lli:+0X7fffffffffffffff:1:19:9223372036854775807: ++%*25lli:+0X7fffffffffffffff:0:19: ++%25lli:+0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*25lli:+0x7FFFFFFFFFFFFFFF:0:19: ++%25lli:+0777777777777777777777:1:23:9223372036854775807: ++%*25lli:+0777777777777777777777:0:23: ++%25lli:+0B111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25lli:+0B111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lli:+0b111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25lli:+0b111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lli:+9223372036854775808:1:20:9223372036854775807: ++%*25lli:+9223372036854775808:0:20: ++%25lli:+0X8000000000000000:1:19:9223372036854775807: ++%*25lli:+0X8000000000000000:0:19: ++%25lli:+0x8000000000000000:1:19:9223372036854775807: ++%*25lli:+0x8000000000000000:0:19: ++%25lli:+01000000000000000000000:1:24:9223372036854775807: ++%*25lli:+01000000000000000000000:0:24: ++%25lli:+0B1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25lli:+0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:+0b1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25lli:+0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lli:+9223372036897200049:1:20:9223372036854775807: ++%*25lli:+9223372036897200049:0:20: ++%25lli:+0X80000000028757b1:1:19:9223372036854775807: ++%*25lli:+0X80000000028757b1:0:19: ++%25lli:+0x80000000028757B1:1:19:9223372036854775807: ++%*25lli:+0x80000000028757B1:0:19: ++%25lli:+01000000000000241653661:1:24:9223372036854775807: ++%*25lli:+01000000000000241653661:0:24: ++%25lli:+0B1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25lli:+0B1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lli:+0b1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25lli:+0b1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%2lli: :0:-1: ++%*2lli: :0:-1: ++%2lli: -9223372036867121486:1:3:-9: ++%*2lli: -9223372036867121486:0:3: ++%2lli: -0X8000000000bc614e:1:3:0: ++%*2lli: -0X8000000000bc614e:0:3: ++%2lli: -0x8000000000BC614E:1:3:0: ++%*2lli: -0x8000000000BC614E:0:3: ++%2lli: -01000000000000057060516:1:3:0: ++%*2lli: -01000000000000057060516:0:3: ++%2lli: -0B1000000000000000000000000000000000000000101111000110000101001110:1:3:0: ++%*2lli: -0B1000000000000000000000000000000000000000101111000110000101001110:0:3: ++%2lli: -0b1000000000000000000000000000000000000000101111000110000101001110:1:3:0: ++%*2lli: -0b1000000000000000000000000000000000000000101111000110000101001110:0:3: ++%2lli: -9223372036854775809:1:3:-9: ++%*2lli: -9223372036854775809:0:3: ++%2lli: -0X8000000000000001:1:3:0: ++%*2lli: -0X8000000000000001:0:3: ++%2lli: -0x8000000000000001:1:3:0: ++%*2lli: -0x8000000000000001:0:3: ++%2lli: -01000000000000000000001:1:3:0: ++%*2lli: -01000000000000000000001:0:3: ++%2lli: -0B1000000000000000000000000000000000000000000000000000000000000001:1:3:0: ++%*2lli: -0B1000000000000000000000000000000000000000000000000000000000000001:0:3: ++%2lli: -0b1000000000000000000000000000000000000000000000000000000000000001:1:3:0: ++%*2lli: -0b1000000000000000000000000000000000000000000000000000000000000001:0:3: ++%2lli: -9223372036854775808:1:3:-9: ++%*2lli: -9223372036854775808:0:3: ++%2lli: -0X8000000000000000:1:3:0: ++%*2lli: -0X8000000000000000:0:3: ++%2lli: -0x8000000000000000:1:3:0: ++%*2lli: -0x8000000000000000:0:3: ++%2lli: -01000000000000000000000:1:3:0: ++%*2lli: -01000000000000000000000:0:3: ++%2lli: -0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lli: -0B1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lli: -0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lli: -0b1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lli: -123:1:3:-1: ++%*2lli: -123:0:3: ++%2lli: -0X7b:1:3:0: ++%*2lli: -0X7b:0:3: ++%2lli: -0x7B:1:3:0: ++%*2lli: -0x7B:0:3: ++%2lli: -0173:1:3:0: ++%*2lli: -0173:0:3: ++%2lli: -0B1111011:1:3:0: ++%*2lli: -0B1111011:0:3: ++%2lli: -0b1111011:1:3:0: ++%*2lli: -0b1111011:0:3: ++%2lli: -1:1:3:-1: ++%*2lli: -1:0:3: ++%2lli: -0X1:1:3:0: ++%*2lli: -0X1:0:3: ++%2lli: -0x1:1:3:0: ++%*2lli: -0x1:0:3: ++%2lli: -01:1:3:0: ++%*2lli: -01:0:3: ++%2lli: -0B1:1:3:0: ++%*2lli: -0B1:0:3: ++%2lli: -0b1:1:3:0: ++%*2lli: -0b1:0:3: ++%2lli: -0:1:3:0: ++%*2lli: -0:0:3: ++%2lli: -0X0:1:3:0: ++%*2lli: -0X0:0:3: ++%2lli: -0x0:1:3:0: ++%*2lli: -0x0:0:3: ++%2lli: -00:1:3:0: ++%*2lli: -00:0:3: ++%2lli: -0B0:1:3:0: ++%*2lli: -0B0:0:3: ++%2lli: -0b0:1:3:0: ++%*2lli: -0b0:0:3: ++%2lli: 0:1:2:0: ++%*2lli: 0:0:2: ++# BZ12701 %2lli: 0X0:0:-1: ++# BZ12701 %*2lli: 0X0:0:-1: ++# BZ12701 %2lli: 0x0:0:-1: ++# BZ12701 %*2lli: 0x0:0:-1: ++%2lli: 00:1:3:0: ++%*2lli: 00:0:3: ++# BZ12701 %2lli: 0B0:0:-1: ++# BZ12701 %*2lli: 0B0:0:-1: ++# BZ12701 %2lli: 0b0:0:-1: ++# BZ12701 %*2lli: 0b0:0:-1: ++%2lli: 1:1:2:1: ++%*2lli: 1:0:2: ++# BZ12701 %2lli: 0X1:0:-1: ++# BZ12701 %*2lli: 0X1:0:-1: ++# BZ12701 %2lli: 0x1:0:-1: ++# BZ12701 %*2lli: 0x1:0:-1: ++%2lli: 01:1:3:1: ++%*2lli: 01:0:3: ++# BZ12701 %2lli: 0B1:0:-1: ++# BZ12701 %*2lli: 0B1:0:-1: ++# BZ12701 %2lli: 0b1:0:-1: ++# BZ12701 %*2lli: 0b1:0:-1: ++%2lli: 42:1:3:42: ++%*2lli: 42:0:3: ++# BZ12701 %2lli: 0X2a:0:-1: ++# BZ12701 %*2lli: 0X2a:0:-1: ++# BZ12701 %2lli: 0x2A:0:-1: ++# BZ12701 %*2lli: 0x2A:0:-1: ++%2lli: 052:1:3:5: ++%*2lli: 052:0:3: ++# BZ12701 %2lli: 0B101010:0:-1: ++# BZ12701 %*2lli: 0B101010:0:-1: ++# BZ12701 %2lli: 0b101010:0:-1: ++# BZ12701 %*2lli: 0b101010:0:-1: ++%2lli: 9223372036854775807:1:3:92: ++%*2lli: 9223372036854775807:0:3: ++# BZ12701 %2lli: 0X7fffffffffffffff:0:-1: ++# BZ12701 %*2lli: 0X7fffffffffffffff:0:-1: ++# BZ12701 %2lli: 0x7FFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lli: 0x7FFFFFFFFFFFFFFF:0:-1: ++%2lli: 0777777777777777777777:1:3:7: ++%*2lli: 0777777777777777777777:0:3: ++# BZ12701 %2lli: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lli: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2lli: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lli: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2lli: 9223372036854775808:1:3:92: ++%*2lli: 9223372036854775808:0:3: ++# BZ12701 %2lli: 0X8000000000000000:0:-1: ++# BZ12701 %*2lli: 0X8000000000000000:0:-1: ++# BZ12701 %2lli: 0x8000000000000000:0:-1: ++# BZ12701 %*2lli: 0x8000000000000000:0:-1: ++%2lli: 01000000000000000000000:1:3:1: ++%*2lli: 01000000000000000000000:0:3: ++# BZ12701 %2lli: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lli: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2lli: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lli: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2lli: 9223372036897200049:1:3:92: ++%*2lli: 9223372036897200049:0:3: ++# BZ12701 %2lli: 0X80000000028757b1:0:-1: ++# BZ12701 %*2lli: 0X80000000028757b1:0:-1: ++# BZ12701 %2lli: 0x80000000028757B1:0:-1: ++# BZ12701 %*2lli: 0x80000000028757B1:0:-1: ++%2lli: 01000000000000241653661:1:3:1: ++%*2lli: 01000000000000241653661:0:3: ++# BZ12701 %2lli: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lli: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2lli: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lli: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lli: +0:1:3:0: ++%*2lli: +0:0:3: ++%2lli: +0X0:1:3:0: ++%*2lli: +0X0:0:3: ++%2lli: +0x0:1:3:0: ++%*2lli: +0x0:0:3: ++%2lli: +00:1:3:0: ++%*2lli: +00:0:3: ++%2lli: +0B0:1:3:0: ++%*2lli: +0B0:0:3: ++%2lli: +0b0:1:3:0: ++%*2lli: +0b0:0:3: ++%2lli: +1:1:3:1: ++%*2lli: +1:0:3: ++%2lli: +0X1:1:3:0: ++%*2lli: +0X1:0:3: ++%2lli: +0x1:1:3:0: ++%*2lli: +0x1:0:3: ++%2lli: +01:1:3:0: ++%*2lli: +01:0:3: ++%2lli: +0B1:1:3:0: ++%*2lli: +0B1:0:3: ++%2lli: +0b1:1:3:0: ++%*2lli: +0b1:0:3: ++%2lli: +42:1:3:4: ++%*2lli: +42:0:3: ++%2lli: +0X2a:1:3:0: ++%*2lli: +0X2a:0:3: ++%2lli: +0x2A:1:3:0: ++%*2lli: +0x2A:0:3: ++%2lli: +052:1:3:0: ++%*2lli: +052:0:3: ++%2lli: +0B101010:1:3:0: ++%*2lli: +0B101010:0:3: ++%2lli: +0b101010:1:3:0: ++%*2lli: +0b101010:0:3: ++%2lli: +9223372036854775807:1:3:9: ++%*2lli: +9223372036854775807:0:3: ++%2lli: +0X7fffffffffffffff:1:3:0: ++%*2lli: +0X7fffffffffffffff:0:3: ++%2lli: +0x7FFFFFFFFFFFFFFF:1:3:0: ++%*2lli: +0x7FFFFFFFFFFFFFFF:0:3: ++%2lli: +0777777777777777777777:1:3:0: ++%*2lli: +0777777777777777777777:0:3: ++%2lli: +0B111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2lli: +0B111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2lli: +0b111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2lli: +0b111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2lli: +9223372036854775808:1:3:9: ++%*2lli: +9223372036854775808:0:3: ++%2lli: +0X8000000000000000:1:3:0: ++%*2lli: +0X8000000000000000:0:3: ++%2lli: +0x8000000000000000:1:3:0: ++%*2lli: +0x8000000000000000:0:3: ++%2lli: +01000000000000000000000:1:3:0: ++%*2lli: +01000000000000000000000:0:3: ++%2lli: +0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lli: +0B1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lli: +0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lli: +0b1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lli: +9223372036897200049:1:3:9: ++%*2lli: +9223372036897200049:0:3: ++%2lli: +0X80000000028757b1:1:3:0: ++%*2lli: +0X80000000028757b1:0:3: ++%2lli: +0x80000000028757B1:1:3:0: ++%*2lli: +0x80000000028757B1:0:3: ++%2lli: +01000000000000241653661:1:3:0: ++%*2lli: +01000000000000241653661:0:3: ++%2lli: +0B1000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2lli: +0B1000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2lli: +0b1000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2lli: +0b1000000000000000000000000000000000000010100001110101011110110001:0:3: ++%25lli: :0:-1: ++%*25lli: :0:-1: ++%25lli: -9223372036867121486:1:21:-9223372036854775808: ++%*25lli: -9223372036867121486:0:21: ++%25lli: -0X8000000000bc614e:1:20:-9223372036854775808: ++%*25lli: -0X8000000000bc614e:0:20: ++%25lli: -0x8000000000BC614E:1:20:-9223372036854775808: ++%*25lli: -0x8000000000BC614E:0:20: ++%25lli: -01000000000000057060516:1:25:-9223372036854775808: ++%*25lli: -01000000000000057060516:0:25: ++%25lli: -0B1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: ++%*25lli: -0B1000000000000000000000000000000000000000101111000110000101001110:0:26: ++%25lli: -0b1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: ++%*25lli: -0b1000000000000000000000000000000000000000101111000110000101001110:0:26: ++%25lli: -9223372036854775809:1:21:-9223372036854775808: ++%*25lli: -9223372036854775809:0:21: ++%25lli: -0X8000000000000001:1:20:-9223372036854775808: ++%*25lli: -0X8000000000000001:0:20: ++%25lli: -0x8000000000000001:1:20:-9223372036854775808: ++%*25lli: -0x8000000000000001:0:20: ++%25lli: -01000000000000000000001:1:25:-9223372036854775808: ++%*25lli: -01000000000000000000001:0:25: ++%25lli: -0B1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: ++%*25lli: -0B1000000000000000000000000000000000000000000000000000000000000001:0:26: ++%25lli: -0b1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: ++%*25lli: -0b1000000000000000000000000000000000000000000000000000000000000001:0:26: ++%25lli: -9223372036854775808:1:21:-9223372036854775808: ++%*25lli: -9223372036854775808:0:21: ++%25lli: -0X8000000000000000:1:20:-9223372036854775808: ++%*25lli: -0X8000000000000000:0:20: ++%25lli: -0x8000000000000000:1:20:-9223372036854775808: ++%*25lli: -0x8000000000000000:0:20: ++%25lli: -01000000000000000000000:1:25:-9223372036854775808: ++%*25lli: -01000000000000000000000:0:25: ++%25lli: -0B1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: ++%*25lli: -0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: -0b1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: ++%*25lli: -0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: -123:1:5:-123: ++%*25lli: -123:0:5: ++%25lli: -0X7b:1:6:-123: ++%*25lli: -0X7b:0:6: ++%25lli: -0x7B:1:6:-123: ++%*25lli: -0x7B:0:6: ++%25lli: -0173:1:6:-123: ++%*25lli: -0173:0:6: ++%25lli: -0B1111011:1:11:-123: ++%*25lli: -0B1111011:0:11: ++%25lli: -0b1111011:1:11:-123: ++%*25lli: -0b1111011:0:11: ++%25lli: -1:1:3:-1: ++%*25lli: -1:0:3: ++%25lli: -0X1:1:5:-1: ++%*25lli: -0X1:0:5: ++%25lli: -0x1:1:5:-1: ++%*25lli: -0x1:0:5: ++%25lli: -01:1:4:-1: ++%*25lli: -01:0:4: ++%25lli: -0B1:1:5:-1: ++%*25lli: -0B1:0:5: ++%25lli: -0b1:1:5:-1: ++%*25lli: -0b1:0:5: ++%25lli: -0:1:3:0: ++%*25lli: -0:0:3: ++%25lli: -0X0:1:5:0: ++%*25lli: -0X0:0:5: ++%25lli: -0x0:1:5:0: ++%*25lli: -0x0:0:5: ++%25lli: -00:1:4:0: ++%*25lli: -00:0:4: ++%25lli: -0B0:1:5:0: ++%*25lli: -0B0:0:5: ++%25lli: -0b0:1:5:0: ++%*25lli: -0b0:0:5: ++%25lli: 0:1:2:0: ++%*25lli: 0:0:2: ++%25lli: 0X0:1:4:0: ++%*25lli: 0X0:0:4: ++%25lli: 0x0:1:4:0: ++%*25lli: 0x0:0:4: ++%25lli: 00:1:3:0: ++%*25lli: 00:0:3: ++%25lli: 0B0:1:4:0: ++%*25lli: 0B0:0:4: ++%25lli: 0b0:1:4:0: ++%*25lli: 0b0:0:4: ++%25lli: 1:1:2:1: ++%*25lli: 1:0:2: ++%25lli: 0X1:1:4:1: ++%*25lli: 0X1:0:4: ++%25lli: 0x1:1:4:1: ++%*25lli: 0x1:0:4: ++%25lli: 01:1:3:1: ++%*25lli: 01:0:3: ++%25lli: 0B1:1:4:1: ++%*25lli: 0B1:0:4: ++%25lli: 0b1:1:4:1: ++%*25lli: 0b1:0:4: ++%25lli: 42:1:3:42: ++%*25lli: 42:0:3: ++%25lli: 0X2a:1:5:42: ++%*25lli: 0X2a:0:5: ++%25lli: 0x2A:1:5:42: ++%*25lli: 0x2A:0:5: ++%25lli: 052:1:4:42: ++%*25lli: 052:0:4: ++%25lli: 0B101010:1:9:42: ++%*25lli: 0B101010:0:9: ++%25lli: 0b101010:1:9:42: ++%*25lli: 0b101010:0:9: ++%25lli: 9223372036854775807:1:20:9223372036854775807: ++%*25lli: 9223372036854775807:0:20: ++%25lli: 0X7fffffffffffffff:1:19:9223372036854775807: ++%*25lli: 0X7fffffffffffffff:0:19: ++%25lli: 0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*25lli: 0x7FFFFFFFFFFFFFFF:0:19: ++%25lli: 0777777777777777777777:1:23:9223372036854775807: ++%*25lli: 0777777777777777777777:0:23: ++%25lli: 0B111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25lli: 0B111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lli: 0b111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25lli: 0b111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lli: 9223372036854775808:1:20:9223372036854775807: ++%*25lli: 9223372036854775808:0:20: ++%25lli: 0X8000000000000000:1:19:9223372036854775807: ++%*25lli: 0X8000000000000000:0:19: ++%25lli: 0x8000000000000000:1:19:9223372036854775807: ++%*25lli: 0x8000000000000000:0:19: ++%25lli: 01000000000000000000000:1:24:9223372036854775807: ++%*25lli: 01000000000000000000000:0:24: ++%25lli: 0B1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25lli: 0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: 0b1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25lli: 0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: 9223372036897200049:1:20:9223372036854775807: ++%*25lli: 9223372036897200049:0:20: ++%25lli: 0X80000000028757b1:1:19:9223372036854775807: ++%*25lli: 0X80000000028757b1:0:19: ++%25lli: 0x80000000028757B1:1:19:9223372036854775807: ++%*25lli: 0x80000000028757B1:0:19: ++%25lli: 01000000000000241653661:1:24:9223372036854775807: ++%*25lli: 01000000000000241653661:0:24: ++%25lli: 0B1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25lli: 0B1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lli: 0b1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25lli: 0b1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lli: +0:1:3:0: ++%*25lli: +0:0:3: ++%25lli: +0X0:1:5:0: ++%*25lli: +0X0:0:5: ++%25lli: +0x0:1:5:0: ++%*25lli: +0x0:0:5: ++%25lli: +00:1:4:0: ++%*25lli: +00:0:4: ++%25lli: +0B0:1:5:0: ++%*25lli: +0B0:0:5: ++%25lli: +0b0:1:5:0: ++%*25lli: +0b0:0:5: ++%25lli: +1:1:3:1: ++%*25lli: +1:0:3: ++%25lli: +0X1:1:5:1: ++%*25lli: +0X1:0:5: ++%25lli: +0x1:1:5:1: ++%*25lli: +0x1:0:5: ++%25lli: +01:1:4:1: ++%*25lli: +01:0:4: ++%25lli: +0B1:1:5:1: ++%*25lli: +0B1:0:5: ++%25lli: +0b1:1:5:1: ++%*25lli: +0b1:0:5: ++%25lli: +42:1:4:42: ++%*25lli: +42:0:4: ++%25lli: +0X2a:1:6:42: ++%*25lli: +0X2a:0:6: ++%25lli: +0x2A:1:6:42: ++%*25lli: +0x2A:0:6: ++%25lli: +052:1:5:42: ++%*25lli: +052:0:5: ++%25lli: +0B101010:1:10:42: ++%*25lli: +0B101010:0:10: ++%25lli: +0b101010:1:10:42: ++%*25lli: +0b101010:0:10: ++%25lli: +9223372036854775807:1:21:9223372036854775807: ++%*25lli: +9223372036854775807:0:21: ++%25lli: +0X7fffffffffffffff:1:20:9223372036854775807: ++%*25lli: +0X7fffffffffffffff:0:20: ++%25lli: +0x7FFFFFFFFFFFFFFF:1:20:9223372036854775807: ++%*25lli: +0x7FFFFFFFFFFFFFFF:0:20: ++%25lli: +0777777777777777777777:1:24:9223372036854775807: ++%*25lli: +0777777777777777777777:0:24: ++%25lli: +0B111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25lli: +0B111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lli: +0b111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25lli: +0b111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lli: +9223372036854775808:1:21:9223372036854775807: ++%*25lli: +9223372036854775808:0:21: ++%25lli: +0X8000000000000000:1:20:9223372036854775807: ++%*25lli: +0X8000000000000000:0:20: ++%25lli: +0x8000000000000000:1:20:9223372036854775807: ++%*25lli: +0x8000000000000000:0:20: ++%25lli: +01000000000000000000000:1:25:9223372036854775807: ++%*25lli: +01000000000000000000000:0:25: ++%25lli: +0B1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25lli: +0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: +0b1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25lli: +0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lli: +9223372036897200049:1:21:9223372036854775807: ++%*25lli: +9223372036897200049:0:21: ++%25lli: +0X80000000028757b1:1:20:9223372036854775807: ++%*25lli: +0X80000000028757b1:0:20: ++%25lli: +0x80000000028757B1:1:20:9223372036854775807: ++%*25lli: +0x80000000028757B1:0:20: ++%25lli: +01000000000000241653661:1:25:9223372036854775807: ++%*25lli: +01000000000000241653661:0:25: ++%25lli: +0B1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25lli: +0B1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lli: +0b1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25lli: +0b1000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/stdio-common/tst-scanf-format-real.h b/stdio-common/tst-scanf-format-real.h +new file mode 100644 +index 0000000000000000..639ac749735886a2 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-real.h +@@ -0,0 +1,363 @@ ++/* Test feature wrapper for formatted real input. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++/* Reference data is a case-inensitive signed datum, which is either a ++ hexadecimal floating constant or a literal representing infinity or ++ NaN data in any of the forms accepted by 'strtod' family functions, ++ whose binary representation is to match against byte-wise. ++ ++ We need to be careful with parsing reference data in the handling of ++ the sign as with the IBM long double binary format unary negation ++ of a positive value whose lower-magnitude part is zero produces a ++ bit pattern that is different from one produced by initialization or ++ conversions made by functions such as 'scanf' or 'strtod' from the ++ complementing negative value. The difference is in the sign of zero ++ held in the lower-magnitude part and therefore the bit patterns are ++ arithmetically equivalent, but they do not match byte-wise. ++ ++ Therefore we set the sign with the initial value of the significand, ++ either -0.0 or 0.0, which sets the sign of both parts according to ++ what 'scanf' does, and never negate it afterwards. ++ ++ Additionally the Intel long double binary format uses only 80 bits ++ out of 96 that the data type occupies. Therefore preinitialize the ++ reference value with the same 0xa5 bit pattern that the value under ++ test has been so that the byte-wise comparison matches as well for ++ the unused parts of the two data pieces. ++ ++ We use 'ldexp' to assemble the significand with the exponent, which ++ does not compromise verification, because internally this exercises ++ a code path different from one used by 'scanf' family functions for ++ this purpose. Specifically 'ldexp' uses 'scalbn', whereas 'scanf' ++ defers to 'strtod' which uses '__mpn_construct_double'. Analogously ++ for the remaining floating-point data types. */ ++ ++#define nan(v, x) \ ++ _Generic((v), float: nanf, double: nan, long double: nanl) (x) ++ ++#define pointer_to_value(val) (&(val)) ++ ++#define initialize_value(val) \ ++ memset (&val, 0xa5, sizeof (val)) ++ ++#define compare_real(x, y) \ ++ (memcmp (&(x), &(y), sizeof (y)) == 0) ++ ++#define verify_input(f, val, count, errp) \ ++({ \ ++ __label__ out; \ ++ bool match = true; \ ++ int err = 0; \ ++ type_t v; \ ++ \ ++ initialize_value (v); \ ++ /* Make sure it's been committed. */ \ ++ __asm__ ("" : : : "memory"); \ ++ v = read_real (&err); \ ++ if (err < 0) \ ++ goto out; \ ++ match = compare_real (val, v); \ ++ \ ++out: \ ++ if (err || !match) \ ++ { \ ++ union \ ++ { \ ++ type_t v; \ ++ unsigned char x[sizeof (type_t)]; \ ++ } \ ++ uv = { .v = v }, ui = { .v = val }; \ ++ \ ++ printf ("error: %s:%d: input buffer: `", __FILE__, __LINE__); \ ++ for (size_t j = 0; j < sizeof (ui.x); j++) \ ++ printf ("%02hhx", ui.x[j]); \ ++ printf ("'\n"); \ ++ printf ("error: %s:%d: value buffer: `", __FILE__, __LINE__); \ ++ for (size_t j = 0; j < sizeof (uv.x); j++) \ ++ printf ("%02hhx", uv.x[j]); \ ++ printf ("'\n"); \ ++ } \ ++ \ ++ *errp = err; \ ++ match; \ ++}) ++ ++#define read_real(errp) \ ++({ \ ++ __label__ out; \ ++ bool m = false; \ ++ int err = 0; \ ++ type_t v; \ ++ int ch; \ ++ \ ++ ch = read_input (); \ ++ if (ch == '-' || ch == '+') \ ++ { \ ++ m = ch == '-'; \ ++ ch = read_input (); \ ++ } \ ++ \ ++ switch (ch) \ ++ { \ ++ case '0': \ ++ break; \ ++ case 'I': \ ++ case 'i': \ ++ { \ ++ static const char unf[] = { 'N', 'F' }; \ ++ static const char lnf[] = { 'n', 'f' }; \ ++ size_t i; \ ++ \ ++ for (i = 0; i < sizeof (unf); i++) \ ++ { \ ++ ch = read_input (); \ ++ if (ch != unf[i] && ch != lnf[i]) \ ++ { \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ } \ ++ \ ++ ch = read_input (); \ ++ if (ch == ':') \ ++ { \ ++ v = m ? -INFINITY : +INFINITY; \ ++ goto out; \ ++ } \ ++ \ ++ static const char uinity[] = { 'I', 'N', 'I', 'T', 'Y' }; \ ++ static const char linity[] = { 'i', 'n', 'i', 't', 'y' }; \ ++ \ ++ for (i = 0; i < sizeof (uinity); i++) \ ++ { \ ++ if (ch != uinity[i] && ch != linity[i]) \ ++ { \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ ch = read_input (); \ ++ } \ ++ if (ch == ':') \ ++ { \ ++ v = m ? -INFINITY : +INFINITY; \ ++ goto out; \ ++ } \ ++ } \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ \ ++ case 'N': \ ++ case 'n': \ ++ { \ ++ static const char uan[] = { 'A', 'N' }; \ ++ static const char lan[] = { 'a', 'n' }; \ ++ size_t i; \ ++ \ ++ for (i = 0; i < sizeof (uan); i++) \ ++ { \ ++ ch = read_input (); \ ++ if (ch != uan[i] && ch != lan[i]) \ ++ { \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ } \ ++ \ ++ ch = read_input (); \ ++ if (ch == ':') \ ++ { \ ++ v = m ? -nan (v, ".") : nan (v, "."); \ ++ goto out; \ ++ } \ ++ \ ++ size_t seq_size = 0; \ ++ char *seq = NULL; \ ++ i = 0; \ ++ if (ch == '(') \ ++ while (1) \ ++ { \ ++ ch = read_input (); \ ++ if (ch == ')') \ ++ break; \ ++ if (ch != '_' && !isdigit (ch) \ ++ && !(ch >= 'A' && ch <= 'Z') \ ++ && !(ch >= 'a' && ch <= 'z')) \ ++ { \ ++ free (seq); \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ if (i == seq_size) \ ++ { \ ++ seq_size += SIZE_CHUNK; \ ++ seq = xrealloc (seq, seq_size); \ ++ } \ ++ seq[i++] = ch; \ ++ } \ ++ seq[i] = '\0'; \ ++ \ ++ ch = read_input (); \ ++ if (ch == ':') \ ++ { \ ++ v = m ? -nan (v, seq) : nan (v, seq); \ ++ free (seq); \ ++ goto out; \ ++ } \ ++ free (seq); \ ++ } \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ \ ++ default: \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ \ ++ ch = read_input (); \ ++ if (ch != 'X' && ch != 'x') \ ++ { \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ \ ++ type_t f = m ? -1.0 : 1.0; \ ++ v = m ? -0.0 : 0.0; \ ++ int i = 0; \ ++ do \ ++ { \ ++ int d = 0; \ ++ \ ++ ch = read_input (); \ ++ \ ++ if (i == 1) \ ++ switch (ch) \ ++ { \ ++ case '.': \ ++ i++; \ ++ continue; \ ++ \ ++ case ':': \ ++ case 'P': \ ++ case 'p': \ ++ break; \ ++ \ ++ default: \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ \ ++ switch (ch) \ ++ { \ ++ case '0': \ ++ case '1': \ ++ case '2': \ ++ case '3': \ ++ case '4': \ ++ case '5': \ ++ case '6': \ ++ case '7': \ ++ case '8': \ ++ case '9': \ ++ d = ch - '0'; \ ++ break; \ ++ \ ++ case 'A': \ ++ case 'B': \ ++ case 'C': \ ++ case 'D': \ ++ case 'E': \ ++ case 'F': \ ++ d = ch - 'A' + 10; \ ++ break; \ ++ \ ++ case 'a': \ ++ case 'b': \ ++ case 'c': \ ++ case 'd': \ ++ case 'e': \ ++ case 'f': \ ++ d = ch - 'a' + 10; \ ++ break; \ ++ \ ++ case ':': \ ++ case 'P': \ ++ case 'p': \ ++ if (i == 0) \ ++ { \ ++ err = INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ break; \ ++ \ ++ default: \ ++ err = ch < 0 ? ch : INPUT_FORMAT; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ \ ++ v += f * d; \ ++ f /= 16.0l; \ ++ i++; \ ++ } \ ++ while (ch != ':' && ch != 'P' && ch != 'p'); \ ++ \ ++ long long exp = 0; \ ++ if (ch == 'P' || ch == 'p') \ ++ { \ ++ exp = read_integer (&err); \ ++ if (err) \ ++ { \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ } \ ++ \ ++ errno = 0; \ ++ v = ldexp (v, exp); \ ++ if ((v == HUGE_VALL || v == -HUGE_VALL) && errno != 0) \ ++ { \ ++ err = INPUT_OVERFLOW; \ ++ v = NAN; \ ++ goto out; \ ++ } \ ++ \ ++out: \ ++ *errp = err; \ ++ v; \ ++}) +diff --git a/stdio-common/tst-scanf-format-s-c.c b/stdio-common/tst-scanf-format-s-c.c +new file mode 100644 +index 0000000000000000..bbfc0000ff582801 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for the character conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-character.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-char.c b/stdio-common/tst-scanf-format-s-char.c +new file mode 100644 +index 0000000000000000..c13527deb87fe7c9 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for signed char conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-double.c b/stdio-common/tst-scanf-format-s-double.c +new file mode 100644 +index 0000000000000000..4baad01d51cb376f +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for double conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-real.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-float.c b/stdio-common/tst-scanf-format-s-float.c +new file mode 100644 +index 0000000000000000..301b2621e9112e26 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for float conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-real.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-int.c b/stdio-common/tst-scanf-format-s-int.c +new file mode 100644 +index 0000000000000000..e176fe9df4b0464f +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-ldouble.c b/stdio-common/tst-scanf-format-s-ldouble.c +new file mode 100644 +index 0000000000000000..dbb007ce93559ccf +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for long double conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-real.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-llong.c b/stdio-common/tst-scanf-format-s-llong.c +new file mode 100644 +index 0000000000000000..fe3d11a982c319c7 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for long long conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-long.c b/stdio-common/tst-scanf-format-s-long.c +new file mode 100644 +index 0000000000000000..415e5fae2cdf6d58 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for long conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-short.c b/stdio-common/tst-scanf-format-s-short.c +new file mode 100644 +index 0000000000000000..d545ee26d7e8367e +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for short int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-uchar.c b/stdio-common/tst-scanf-format-s-uchar.c +new file mode 100644 +index 0000000000000000..a1a7f73f84efa642 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for unsigned char conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-uint.c b/stdio-common/tst-scanf-format-s-uint.c +new file mode 100644 +index 0000000000000000..27b0f4af5a26ec30 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for unsigned int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-ullong.c b/stdio-common/tst-scanf-format-s-ullong.c +new file mode 100644 +index 0000000000000000..9cc45b4257120ddb +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-ulong.c b/stdio-common/tst-scanf-format-s-ulong.c +new file mode 100644 +index 0000000000000000..9c5543e5edffb1ac +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for unsigned long int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s-ushort.c b/stdio-common/tst-scanf-format-s-ushort.c +new file mode 100644 +index 0000000000000000..052a1caa7b35b495 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'scanf' input for unsigned short int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-s.h" ++#include "tst-scanf-format-integer.h" ++#include +diff --git a/stdio-common/tst-scanf-format-s.h b/stdio-common/tst-scanf-format-s.h +new file mode 100644 +index 0000000000000000..dec38afd11bc26b6 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-s.h +@@ -0,0 +1,29 @@ ++/* Test feature wrapper for formatted 'scanf' input. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++ ++#define scanf_under_test(...) \ ++({ \ ++ int result = scanf (__VA_ARGS__); \ ++ if (ferror (stdin)) \ ++ result = INPUT_ERROR; \ ++ else if (result == EOF) \ ++ result = INPUT_EOF; \ ++ result; \ ++}) +diff --git a/stdio-common/tst-scanf-format-short-d.input b/stdio-common/tst-scanf-format-short-d.input +new file mode 100644 +index 0000000000000000..5d009324926e1f8d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-short-d.input +@@ -0,0 +1,266 @@ ++%hd::0:-1: ++%*hd::0:-1: ++%hd:-32891:1:6:32645: ++%*hd:-32891:0:6: ++%hd:-32769:1:6:32767: ++%*hd:-32769:0:6: ++%hd:-32768:1:6:-32768: ++%*hd:-32768:0:6: ++%hd:-123:1:4:-123: ++%*hd:-123:0:4: ++%hd:-1:1:2:-1: ++%*hd:-1:0:2: ++%hd:-0:1:2:0: ++%*hd:-0:0:2: ++%hd:0:1:1:0: ++%*hd:0:0:1: ++%hd:1:1:1:1: ++%*hd:1:0:1: ++%hd:42:1:2:42: ++%*hd:42:0:2: ++%hd:32767:1:5:32767: ++%*hd:32767:0:5: ++%hd:32768:1:5:-32768: ++%*hd:32768:0:5: ++%hd:32809:1:5:-32727: ++%*hd:32809:0:5: ++%hd:+0:1:2:0: ++%*hd:+0:0:2: ++%hd:+1:1:2:1: ++%*hd:+1:0:2: ++%hd:+42:1:3:42: ++%*hd:+42:0:3: ++%hd:+32767:1:6:32767: ++%*hd:+32767:0:6: ++%hd:+32768:1:6:-32768: ++%*hd:+32768:0:6: ++%hd:+32809:1:6:-32727: ++%*hd:+32809:0:6: ++%1hd::0:-1: ++%*1hd::0:-1: ++%1hd:-32891:0:-1: ++%*1hd:-32891:0:-1: ++%1hd:-32769:0:-1: ++%*1hd:-32769:0:-1: ++%1hd:-32768:0:-1: ++%*1hd:-32768:0:-1: ++%1hd:-123:0:-1: ++%*1hd:-123:0:-1: ++%1hd:-1:0:-1: ++%*1hd:-1:0:-1: ++%1hd:-0:0:-1: ++%*1hd:-0:0:-1: ++%1hd:0:1:1:0: ++%*1hd:0:0:1: ++%1hd:1:1:1:1: ++%*1hd:1:0:1: ++%1hd:42:1:1:4: ++%*1hd:42:0:1: ++%1hd:32767:1:1:3: ++%*1hd:32767:0:1: ++%1hd:32768:1:1:3: ++%*1hd:32768:0:1: ++%1hd:32809:1:1:3: ++%*1hd:32809:0:1: ++%1hd:+0:0:-1: ++%*1hd:+0:0:-1: ++%1hd:+1:0:-1: ++%*1hd:+1:0:-1: ++%1hd:+42:0:-1: ++%*1hd:+42:0:-1: ++%1hd:+32767:0:-1: ++%*1hd:+32767:0:-1: ++%1hd:+32768:0:-1: ++%*1hd:+32768:0:-1: ++%1hd:+32809:0:-1: ++%*1hd:+32809:0:-1: ++%2hd::0:-1: ++%*2hd::0:-1: ++%2hd:-32891:1:2:-3: ++%*2hd:-32891:0:2: ++%2hd:-32769:1:2:-3: ++%*2hd:-32769:0:2: ++%2hd:-32768:1:2:-3: ++%*2hd:-32768:0:2: ++%2hd:-123:1:2:-1: ++%*2hd:-123:0:2: ++%2hd:-1:1:2:-1: ++%*2hd:-1:0:2: ++%2hd:-0:1:2:0: ++%*2hd:-0:0:2: ++%2hd:0:1:1:0: ++%*2hd:0:0:1: ++%2hd:1:1:1:1: ++%*2hd:1:0:1: ++%2hd:42:1:2:42: ++%*2hd:42:0:2: ++%2hd:32767:1:2:32: ++%*2hd:32767:0:2: ++%2hd:32768:1:2:32: ++%*2hd:32768:0:2: ++%2hd:32809:1:2:32: ++%*2hd:32809:0:2: ++%2hd:+0:1:2:0: ++%*2hd:+0:0:2: ++%2hd:+1:1:2:1: ++%*2hd:+1:0:2: ++%2hd:+42:1:2:4: ++%*2hd:+42:0:2: ++%2hd:+32767:1:2:3: ++%*2hd:+32767:0:2: ++%2hd:+32768:1:2:3: ++%*2hd:+32768:0:2: ++%2hd:+32809:1:2:3: ++%*2hd:+32809:0:2: ++%4hd::0:-1: ++%*4hd::0:-1: ++%4hd:-32891:1:4:-328: ++%*4hd:-32891:0:4: ++%4hd:-32769:1:4:-327: ++%*4hd:-32769:0:4: ++%4hd:-32768:1:4:-327: ++%*4hd:-32768:0:4: ++%4hd:-123:1:4:-123: ++%*4hd:-123:0:4: ++%4hd:-1:1:2:-1: ++%*4hd:-1:0:2: ++%4hd:-0:1:2:0: ++%*4hd:-0:0:2: ++%4hd:0:1:1:0: ++%*4hd:0:0:1: ++%4hd:1:1:1:1: ++%*4hd:1:0:1: ++%4hd:42:1:2:42: ++%*4hd:42:0:2: ++%4hd:32767:1:4:3276: ++%*4hd:32767:0:4: ++%4hd:32768:1:4:3276: ++%*4hd:32768:0:4: ++%4hd:32809:1:4:3280: ++%*4hd:32809:0:4: ++%4hd:+0:1:2:0: ++%*4hd:+0:0:2: ++%4hd:+1:1:2:1: ++%*4hd:+1:0:2: ++%4hd:+42:1:3:42: ++%*4hd:+42:0:3: ++%4hd:+32767:1:4:327: ++%*4hd:+32767:0:4: ++%4hd:+32768:1:4:327: ++%*4hd:+32768:0:4: ++%4hd:+32809:1:4:328: ++%*4hd:+32809:0:4: ++%7hd::0:-1: ++%*7hd::0:-1: ++%7hd:-32891:1:6:32645: ++%*7hd:-32891:0:6: ++%7hd:-32769:1:6:32767: ++%*7hd:-32769:0:6: ++%7hd:-32768:1:6:-32768: ++%*7hd:-32768:0:6: ++%7hd:-123:1:4:-123: ++%*7hd:-123:0:4: ++%7hd:-1:1:2:-1: ++%*7hd:-1:0:2: ++%7hd:-0:1:2:0: ++%*7hd:-0:0:2: ++%7hd:0:1:1:0: ++%*7hd:0:0:1: ++%7hd:1:1:1:1: ++%*7hd:1:0:1: ++%7hd:42:1:2:42: ++%*7hd:42:0:2: ++%7hd:32767:1:5:32767: ++%*7hd:32767:0:5: ++%7hd:32768:1:5:-32768: ++%*7hd:32768:0:5: ++%7hd:32809:1:5:-32727: ++%*7hd:32809:0:5: ++%7hd:+0:1:2:0: ++%*7hd:+0:0:2: ++%7hd:+1:1:2:1: ++%*7hd:+1:0:2: ++%7hd:+42:1:3:42: ++%*7hd:+42:0:3: ++%7hd:+32767:1:6:32767: ++%*7hd:+32767:0:6: ++%7hd:+32768:1:6:-32768: ++%*7hd:+32768:0:6: ++%7hd:+32809:1:6:-32727: ++%*7hd:+32809:0:6: ++%2hd: :0:-1: ++%*2hd: :0:-1: ++%2hd: -32891:1:3:-3: ++%*2hd: -32891:0:3: ++%2hd: -32769:1:3:-3: ++%*2hd: -32769:0:3: ++%2hd: -32768:1:3:-3: ++%*2hd: -32768:0:3: ++%2hd: -123:1:3:-1: ++%*2hd: -123:0:3: ++%2hd: -1:1:3:-1: ++%*2hd: -1:0:3: ++%2hd: -0:1:3:0: ++%*2hd: -0:0:3: ++%2hd: 0:1:2:0: ++%*2hd: 0:0:2: ++%2hd: 1:1:2:1: ++%*2hd: 1:0:2: ++%2hd: 42:1:3:42: ++%*2hd: 42:0:3: ++%2hd: 32767:1:3:32: ++%*2hd: 32767:0:3: ++%2hd: 32768:1:3:32: ++%*2hd: 32768:0:3: ++%2hd: 32809:1:3:32: ++%*2hd: 32809:0:3: ++%2hd: +0:1:3:0: ++%*2hd: +0:0:3: ++%2hd: +1:1:3:1: ++%*2hd: +1:0:3: ++%2hd: +42:1:3:4: ++%*2hd: +42:0:3: ++%2hd: +32767:1:3:3: ++%*2hd: +32767:0:3: ++%2hd: +32768:1:3:3: ++%*2hd: +32768:0:3: ++%2hd: +32809:1:3:3: ++%*2hd: +32809:0:3: ++%7hd: :0:-1: ++%*7hd: :0:-1: ++%7hd: -32891:1:7:32645: ++%*7hd: -32891:0:7: ++%7hd: -32769:1:7:32767: ++%*7hd: -32769:0:7: ++%7hd: -32768:1:7:-32768: ++%*7hd: -32768:0:7: ++%7hd: -123:1:5:-123: ++%*7hd: -123:0:5: ++%7hd: -1:1:3:-1: ++%*7hd: -1:0:3: ++%7hd: -0:1:3:0: ++%*7hd: -0:0:3: ++%7hd: 0:1:2:0: ++%*7hd: 0:0:2: ++%7hd: 1:1:2:1: ++%*7hd: 1:0:2: ++%7hd: 42:1:3:42: ++%*7hd: 42:0:3: ++%7hd: 32767:1:6:32767: ++%*7hd: 32767:0:6: ++%7hd: 32768:1:6:-32768: ++%*7hd: 32768:0:6: ++%7hd: 32809:1:6:-32727: ++%*7hd: 32809:0:6: ++%7hd: +0:1:3:0: ++%*7hd: +0:0:3: ++%7hd: +1:1:3:1: ++%*7hd: +1:0:3: ++%7hd: +42:1:4:42: ++%*7hd: +42:0:4: ++%7hd: +32767:1:7:32767: ++%*7hd: +32767:0:7: ++%7hd: +32768:1:7:-32768: ++%*7hd: +32768:0:7: ++%7hd: +32809:1:7:-32727: ++%*7hd: +32809:0:7: +diff --git a/stdio-common/tst-scanf-format-short-i.input b/stdio-common/tst-scanf-format-short-i.input +new file mode 100644 +index 0000000000000000..5beae7bbb4ef0197 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-short-i.input +@@ -0,0 +1,1526 @@ ++%hi::0:-1: ++%*hi::0:-1: ++%hi:-32891:1:6:32645: ++%*hi:-32891:0:6: ++%hi:-0X807b:1:7:32645: ++%*hi:-0X807b:0:7: ++%hi:-0x807B:1:7:32645: ++%*hi:-0x807B:0:7: ++%hi:-0100173:1:8:32645: ++%*hi:-0100173:0:8: ++%hi:-0B1000000001111011:1:19:32645: ++%*hi:-0B1000000001111011:0:19: ++%hi:-0b1000000001111011:1:19:32645: ++%*hi:-0b1000000001111011:0:19: ++%hi:-32769:1:6:32767: ++%*hi:-32769:0:6: ++%hi:-0X8001:1:7:32767: ++%*hi:-0X8001:0:7: ++%hi:-0x8001:1:7:32767: ++%*hi:-0x8001:0:7: ++%hi:-0100001:1:8:32767: ++%*hi:-0100001:0:8: ++%hi:-0B1000000000000001:1:19:32767: ++%*hi:-0B1000000000000001:0:19: ++%hi:-0b1000000000000001:1:19:32767: ++%*hi:-0b1000000000000001:0:19: ++%hi:-32768:1:6:-32768: ++%*hi:-32768:0:6: ++%hi:-0X8000:1:7:-32768: ++%*hi:-0X8000:0:7: ++%hi:-0x8000:1:7:-32768: ++%*hi:-0x8000:0:7: ++%hi:-0100000:1:8:-32768: ++%*hi:-0100000:0:8: ++%hi:-0B1000000000000000:1:19:-32768: ++%*hi:-0B1000000000000000:0:19: ++%hi:-0b1000000000000000:1:19:-32768: ++%*hi:-0b1000000000000000:0:19: ++%hi:-123:1:4:-123: ++%*hi:-123:0:4: ++%hi:-0X7b:1:5:-123: ++%*hi:-0X7b:0:5: ++%hi:-0x7B:1:5:-123: ++%*hi:-0x7B:0:5: ++%hi:-0173:1:5:-123: ++%*hi:-0173:0:5: ++%hi:-0B1111011:1:10:-123: ++%*hi:-0B1111011:0:10: ++%hi:-0b1111011:1:10:-123: ++%*hi:-0b1111011:0:10: ++%hi:-1:1:2:-1: ++%*hi:-1:0:2: ++%hi:-0X1:1:4:-1: ++%*hi:-0X1:0:4: ++%hi:-0x1:1:4:-1: ++%*hi:-0x1:0:4: ++%hi:-01:1:3:-1: ++%*hi:-01:0:3: ++%hi:-0B1:1:4:-1: ++%*hi:-0B1:0:4: ++%hi:-0b1:1:4:-1: ++%*hi:-0b1:0:4: ++%hi:-0:1:2:0: ++%*hi:-0:0:2: ++%hi:-0X0:1:4:0: ++%*hi:-0X0:0:4: ++%hi:-0x0:1:4:0: ++%*hi:-0x0:0:4: ++%hi:-00:1:3:0: ++%*hi:-00:0:3: ++%hi:-0B0:1:4:0: ++%*hi:-0B0:0:4: ++%hi:-0b0:1:4:0: ++%*hi:-0b0:0:4: ++%hi:0:1:1:0: ++%*hi:0:0:1: ++%hi:0X0:1:3:0: ++%*hi:0X0:0:3: ++%hi:0x0:1:3:0: ++%*hi:0x0:0:3: ++%hi:00:1:2:0: ++%*hi:00:0:2: ++%hi:0B0:1:3:0: ++%*hi:0B0:0:3: ++%hi:0b0:1:3:0: ++%*hi:0b0:0:3: ++%hi:1:1:1:1: ++%*hi:1:0:1: ++%hi:0X1:1:3:1: ++%*hi:0X1:0:3: ++%hi:0x1:1:3:1: ++%*hi:0x1:0:3: ++%hi:01:1:2:1: ++%*hi:01:0:2: ++%hi:0B1:1:3:1: ++%*hi:0B1:0:3: ++%hi:0b1:1:3:1: ++%*hi:0b1:0:3: ++%hi:42:1:2:42: ++%*hi:42:0:2: ++%hi:0X2a:1:4:42: ++%*hi:0X2a:0:4: ++%hi:0x2A:1:4:42: ++%*hi:0x2A:0:4: ++%hi:052:1:3:42: ++%*hi:052:0:3: ++%hi:0B101010:1:8:42: ++%*hi:0B101010:0:8: ++%hi:0b101010:1:8:42: ++%*hi:0b101010:0:8: ++%hi:32767:1:5:32767: ++%*hi:32767:0:5: ++%hi:0X7fff:1:6:32767: ++%*hi:0X7fff:0:6: ++%hi:0x7FFF:1:6:32767: ++%*hi:0x7FFF:0:6: ++%hi:077777:1:6:32767: ++%*hi:077777:0:6: ++%hi:0B111111111111111:1:17:32767: ++%*hi:0B111111111111111:0:17: ++%hi:0b111111111111111:1:17:32767: ++%*hi:0b111111111111111:0:17: ++%hi:32768:1:5:-32768: ++%*hi:32768:0:5: ++%hi:0X8000:1:6:-32768: ++%*hi:0X8000:0:6: ++%hi:0x8000:1:6:-32768: ++%*hi:0x8000:0:6: ++%hi:0100000:1:7:-32768: ++%*hi:0100000:0:7: ++%hi:0B1000000000000000:1:18:-32768: ++%*hi:0B1000000000000000:0:18: ++%hi:0b1000000000000000:1:18:-32768: ++%*hi:0b1000000000000000:0:18: ++%hi:32809:1:5:-32727: ++%*hi:32809:0:5: ++%hi:0X8029:1:6:-32727: ++%*hi:0X8029:0:6: ++%hi:0x8029:1:6:-32727: ++%*hi:0x8029:0:6: ++%hi:0100051:1:7:-32727: ++%*hi:0100051:0:7: ++%hi:0B1000000000101001:1:18:-32727: ++%*hi:0B1000000000101001:0:18: ++%hi:0b1000000000101001:1:18:-32727: ++%*hi:0b1000000000101001:0:18: ++%hi:+0:1:2:0: ++%*hi:+0:0:2: ++%hi:+0X0:1:4:0: ++%*hi:+0X0:0:4: ++%hi:+0x0:1:4:0: ++%*hi:+0x0:0:4: ++%hi:+00:1:3:0: ++%*hi:+00:0:3: ++%hi:+0B0:1:4:0: ++%*hi:+0B0:0:4: ++%hi:+0b0:1:4:0: ++%*hi:+0b0:0:4: ++%hi:+1:1:2:1: ++%*hi:+1:0:2: ++%hi:+0X1:1:4:1: ++%*hi:+0X1:0:4: ++%hi:+0x1:1:4:1: ++%*hi:+0x1:0:4: ++%hi:+01:1:3:1: ++%*hi:+01:0:3: ++%hi:+0B1:1:4:1: ++%*hi:+0B1:0:4: ++%hi:+0b1:1:4:1: ++%*hi:+0b1:0:4: ++%hi:+42:1:3:42: ++%*hi:+42:0:3: ++%hi:+0X2a:1:5:42: ++%*hi:+0X2a:0:5: ++%hi:+0x2A:1:5:42: ++%*hi:+0x2A:0:5: ++%hi:+052:1:4:42: ++%*hi:+052:0:4: ++%hi:+0B101010:1:9:42: ++%*hi:+0B101010:0:9: ++%hi:+0b101010:1:9:42: ++%*hi:+0b101010:0:9: ++%hi:+32767:1:6:32767: ++%*hi:+32767:0:6: ++%hi:+0X7fff:1:7:32767: ++%*hi:+0X7fff:0:7: ++%hi:+0x7FFF:1:7:32767: ++%*hi:+0x7FFF:0:7: ++%hi:+077777:1:7:32767: ++%*hi:+077777:0:7: ++%hi:+0B111111111111111:1:18:32767: ++%*hi:+0B111111111111111:0:18: ++%hi:+0b111111111111111:1:18:32767: ++%*hi:+0b111111111111111:0:18: ++%hi:+32768:1:6:-32768: ++%*hi:+32768:0:6: ++%hi:+0X8000:1:7:-32768: ++%*hi:+0X8000:0:7: ++%hi:+0x8000:1:7:-32768: ++%*hi:+0x8000:0:7: ++%hi:+0100000:1:8:-32768: ++%*hi:+0100000:0:8: ++%hi:+0B1000000000000000:1:19:-32768: ++%*hi:+0B1000000000000000:0:19: ++%hi:+0b1000000000000000:1:19:-32768: ++%*hi:+0b1000000000000000:0:19: ++%hi:+32809:1:6:-32727: ++%*hi:+32809:0:6: ++%hi:+0X8029:1:7:-32727: ++%*hi:+0X8029:0:7: ++%hi:+0x8029:1:7:-32727: ++%*hi:+0x8029:0:7: ++%hi:+0100051:1:8:-32727: ++%*hi:+0100051:0:8: ++%hi:+0B1000000000101001:1:19:-32727: ++%*hi:+0B1000000000101001:0:19: ++%hi:+0b1000000000101001:1:19:-32727: ++%*hi:+0b1000000000101001:0:19: ++%1hi::0:-1: ++%*1hi::0:-1: ++%1hi:-32891:0:-1: ++%*1hi:-32891:0:-1: ++%1hi:-0X807b:0:-1: ++%*1hi:-0X807b:0:-1: ++%1hi:-0x807B:0:-1: ++%*1hi:-0x807B:0:-1: ++%1hi:-0100173:0:-1: ++%*1hi:-0100173:0:-1: ++%1hi:-0B1000000001111011:0:-1: ++%*1hi:-0B1000000001111011:0:-1: ++%1hi:-0b1000000001111011:0:-1: ++%*1hi:-0b1000000001111011:0:-1: ++%1hi:-32769:0:-1: ++%*1hi:-32769:0:-1: ++%1hi:-0X8001:0:-1: ++%*1hi:-0X8001:0:-1: ++%1hi:-0x8001:0:-1: ++%*1hi:-0x8001:0:-1: ++%1hi:-0100001:0:-1: ++%*1hi:-0100001:0:-1: ++%1hi:-0B1000000000000001:0:-1: ++%*1hi:-0B1000000000000001:0:-1: ++%1hi:-0b1000000000000001:0:-1: ++%*1hi:-0b1000000000000001:0:-1: ++%1hi:-32768:0:-1: ++%*1hi:-32768:0:-1: ++%1hi:-0X8000:0:-1: ++%*1hi:-0X8000:0:-1: ++%1hi:-0x8000:0:-1: ++%*1hi:-0x8000:0:-1: ++%1hi:-0100000:0:-1: ++%*1hi:-0100000:0:-1: ++%1hi:-0B1000000000000000:0:-1: ++%*1hi:-0B1000000000000000:0:-1: ++%1hi:-0b1000000000000000:0:-1: ++%*1hi:-0b1000000000000000:0:-1: ++%1hi:-123:0:-1: ++%*1hi:-123:0:-1: ++%1hi:-0X7b:0:-1: ++%*1hi:-0X7b:0:-1: ++%1hi:-0x7B:0:-1: ++%*1hi:-0x7B:0:-1: ++%1hi:-0173:0:-1: ++%*1hi:-0173:0:-1: ++%1hi:-0B1111011:0:-1: ++%*1hi:-0B1111011:0:-1: ++%1hi:-0b1111011:0:-1: ++%*1hi:-0b1111011:0:-1: ++%1hi:-1:0:-1: ++%*1hi:-1:0:-1: ++%1hi:-0X1:0:-1: ++%*1hi:-0X1:0:-1: ++%1hi:-0x1:0:-1: ++%*1hi:-0x1:0:-1: ++%1hi:-01:0:-1: ++%*1hi:-01:0:-1: ++%1hi:-0B1:0:-1: ++%*1hi:-0B1:0:-1: ++%1hi:-0b1:0:-1: ++%*1hi:-0b1:0:-1: ++%1hi:-0:0:-1: ++%*1hi:-0:0:-1: ++%1hi:-0X0:0:-1: ++%*1hi:-0X0:0:-1: ++%1hi:-0x0:0:-1: ++%*1hi:-0x0:0:-1: ++%1hi:-00:0:-1: ++%*1hi:-00:0:-1: ++%1hi:-0B0:0:-1: ++%*1hi:-0B0:0:-1: ++%1hi:-0b0:0:-1: ++%*1hi:-0b0:0:-1: ++%1hi:0:1:1:0: ++%*1hi:0:0:1: ++%1hi:0X0:1:1:0: ++%*1hi:0X0:0:1: ++%1hi:0x0:1:1:0: ++%*1hi:0x0:0:1: ++%1hi:00:1:1:0: ++%*1hi:00:0:1: ++%1hi:0B0:1:1:0: ++%*1hi:0B0:0:1: ++%1hi:0b0:1:1:0: ++%*1hi:0b0:0:1: ++%1hi:1:1:1:1: ++%*1hi:1:0:1: ++%1hi:0X1:1:1:0: ++%*1hi:0X1:0:1: ++%1hi:0x1:1:1:0: ++%*1hi:0x1:0:1: ++%1hi:01:1:1:0: ++%*1hi:01:0:1: ++%1hi:0B1:1:1:0: ++%*1hi:0B1:0:1: ++%1hi:0b1:1:1:0: ++%*1hi:0b1:0:1: ++%1hi:42:1:1:4: ++%*1hi:42:0:1: ++%1hi:0X2a:1:1:0: ++%*1hi:0X2a:0:1: ++%1hi:0x2A:1:1:0: ++%*1hi:0x2A:0:1: ++%1hi:052:1:1:0: ++%*1hi:052:0:1: ++%1hi:0B101010:1:1:0: ++%*1hi:0B101010:0:1: ++%1hi:0b101010:1:1:0: ++%*1hi:0b101010:0:1: ++%1hi:32767:1:1:3: ++%*1hi:32767:0:1: ++%1hi:0X7fff:1:1:0: ++%*1hi:0X7fff:0:1: ++%1hi:0x7FFF:1:1:0: ++%*1hi:0x7FFF:0:1: ++%1hi:077777:1:1:0: ++%*1hi:077777:0:1: ++%1hi:0B111111111111111:1:1:0: ++%*1hi:0B111111111111111:0:1: ++%1hi:0b111111111111111:1:1:0: ++%*1hi:0b111111111111111:0:1: ++%1hi:32768:1:1:3: ++%*1hi:32768:0:1: ++%1hi:0X8000:1:1:0: ++%*1hi:0X8000:0:1: ++%1hi:0x8000:1:1:0: ++%*1hi:0x8000:0:1: ++%1hi:0100000:1:1:0: ++%*1hi:0100000:0:1: ++%1hi:0B1000000000000000:1:1:0: ++%*1hi:0B1000000000000000:0:1: ++%1hi:0b1000000000000000:1:1:0: ++%*1hi:0b1000000000000000:0:1: ++%1hi:32809:1:1:3: ++%*1hi:32809:0:1: ++%1hi:0X8029:1:1:0: ++%*1hi:0X8029:0:1: ++%1hi:0x8029:1:1:0: ++%*1hi:0x8029:0:1: ++%1hi:0100051:1:1:0: ++%*1hi:0100051:0:1: ++%1hi:0B1000000000101001:1:1:0: ++%*1hi:0B1000000000101001:0:1: ++%1hi:0b1000000000101001:1:1:0: ++%*1hi:0b1000000000101001:0:1: ++%1hi:+0:0:-1: ++%*1hi:+0:0:-1: ++%1hi:+0X0:0:-1: ++%*1hi:+0X0:0:-1: ++%1hi:+0x0:0:-1: ++%*1hi:+0x0:0:-1: ++%1hi:+00:0:-1: ++%*1hi:+00:0:-1: ++%1hi:+0B0:0:-1: ++%*1hi:+0B0:0:-1: ++%1hi:+0b0:0:-1: ++%*1hi:+0b0:0:-1: ++%1hi:+1:0:-1: ++%*1hi:+1:0:-1: ++%1hi:+0X1:0:-1: ++%*1hi:+0X1:0:-1: ++%1hi:+0x1:0:-1: ++%*1hi:+0x1:0:-1: ++%1hi:+01:0:-1: ++%*1hi:+01:0:-1: ++%1hi:+0B1:0:-1: ++%*1hi:+0B1:0:-1: ++%1hi:+0b1:0:-1: ++%*1hi:+0b1:0:-1: ++%1hi:+42:0:-1: ++%*1hi:+42:0:-1: ++%1hi:+0X2a:0:-1: ++%*1hi:+0X2a:0:-1: ++%1hi:+0x2A:0:-1: ++%*1hi:+0x2A:0:-1: ++%1hi:+052:0:-1: ++%*1hi:+052:0:-1: ++%1hi:+0B101010:0:-1: ++%*1hi:+0B101010:0:-1: ++%1hi:+0b101010:0:-1: ++%*1hi:+0b101010:0:-1: ++%1hi:+32767:0:-1: ++%*1hi:+32767:0:-1: ++%1hi:+0X7fff:0:-1: ++%*1hi:+0X7fff:0:-1: ++%1hi:+0x7FFF:0:-1: ++%*1hi:+0x7FFF:0:-1: ++%1hi:+077777:0:-1: ++%*1hi:+077777:0:-1: ++%1hi:+0B111111111111111:0:-1: ++%*1hi:+0B111111111111111:0:-1: ++%1hi:+0b111111111111111:0:-1: ++%*1hi:+0b111111111111111:0:-1: ++%1hi:+32768:0:-1: ++%*1hi:+32768:0:-1: ++%1hi:+0X8000:0:-1: ++%*1hi:+0X8000:0:-1: ++%1hi:+0x8000:0:-1: ++%*1hi:+0x8000:0:-1: ++%1hi:+0100000:0:-1: ++%*1hi:+0100000:0:-1: ++%1hi:+0B1000000000000000:0:-1: ++%*1hi:+0B1000000000000000:0:-1: ++%1hi:+0b1000000000000000:0:-1: ++%*1hi:+0b1000000000000000:0:-1: ++%1hi:+32809:0:-1: ++%*1hi:+32809:0:-1: ++%1hi:+0X8029:0:-1: ++%*1hi:+0X8029:0:-1: ++%1hi:+0x8029:0:-1: ++%*1hi:+0x8029:0:-1: ++%1hi:+0100051:0:-1: ++%*1hi:+0100051:0:-1: ++%1hi:+0B1000000000101001:0:-1: ++%*1hi:+0B1000000000101001:0:-1: ++%1hi:+0b1000000000101001:0:-1: ++%*1hi:+0b1000000000101001:0:-1: ++%2hi::0:-1: ++%*2hi::0:-1: ++%2hi:-32891:1:2:-3: ++%*2hi:-32891:0:2: ++%2hi:-0X807b:1:2:0: ++%*2hi:-0X807b:0:2: ++%2hi:-0x807B:1:2:0: ++%*2hi:-0x807B:0:2: ++%2hi:-0100173:1:2:0: ++%*2hi:-0100173:0:2: ++%2hi:-0B1000000001111011:1:2:0: ++%*2hi:-0B1000000001111011:0:2: ++%2hi:-0b1000000001111011:1:2:0: ++%*2hi:-0b1000000001111011:0:2: ++%2hi:-32769:1:2:-3: ++%*2hi:-32769:0:2: ++%2hi:-0X8001:1:2:0: ++%*2hi:-0X8001:0:2: ++%2hi:-0x8001:1:2:0: ++%*2hi:-0x8001:0:2: ++%2hi:-0100001:1:2:0: ++%*2hi:-0100001:0:2: ++%2hi:-0B1000000000000001:1:2:0: ++%*2hi:-0B1000000000000001:0:2: ++%2hi:-0b1000000000000001:1:2:0: ++%*2hi:-0b1000000000000001:0:2: ++%2hi:-32768:1:2:-3: ++%*2hi:-32768:0:2: ++%2hi:-0X8000:1:2:0: ++%*2hi:-0X8000:0:2: ++%2hi:-0x8000:1:2:0: ++%*2hi:-0x8000:0:2: ++%2hi:-0100000:1:2:0: ++%*2hi:-0100000:0:2: ++%2hi:-0B1000000000000000:1:2:0: ++%*2hi:-0B1000000000000000:0:2: ++%2hi:-0b1000000000000000:1:2:0: ++%*2hi:-0b1000000000000000:0:2: ++%2hi:-123:1:2:-1: ++%*2hi:-123:0:2: ++%2hi:-0X7b:1:2:0: ++%*2hi:-0X7b:0:2: ++%2hi:-0x7B:1:2:0: ++%*2hi:-0x7B:0:2: ++%2hi:-0173:1:2:0: ++%*2hi:-0173:0:2: ++%2hi:-0B1111011:1:2:0: ++%*2hi:-0B1111011:0:2: ++%2hi:-0b1111011:1:2:0: ++%*2hi:-0b1111011:0:2: ++%2hi:-1:1:2:-1: ++%*2hi:-1:0:2: ++%2hi:-0X1:1:2:0: ++%*2hi:-0X1:0:2: ++%2hi:-0x1:1:2:0: ++%*2hi:-0x1:0:2: ++%2hi:-01:1:2:0: ++%*2hi:-01:0:2: ++%2hi:-0B1:1:2:0: ++%*2hi:-0B1:0:2: ++%2hi:-0b1:1:2:0: ++%*2hi:-0b1:0:2: ++%2hi:-0:1:2:0: ++%*2hi:-0:0:2: ++%2hi:-0X0:1:2:0: ++%*2hi:-0X0:0:2: ++%2hi:-0x0:1:2:0: ++%*2hi:-0x0:0:2: ++%2hi:-00:1:2:0: ++%*2hi:-00:0:2: ++%2hi:-0B0:1:2:0: ++%*2hi:-0B0:0:2: ++%2hi:-0b0:1:2:0: ++%*2hi:-0b0:0:2: ++%2hi:0:1:1:0: ++%*2hi:0:0:1: ++# BZ12701 %2hi:0X0:0:-1: ++# BZ12701 %*2hi:0X0:0:-1: ++# BZ12701 %2hi:0x0:0:-1: ++# BZ12701 %*2hi:0x0:0:-1: ++%2hi:00:1:2:0: ++%*2hi:00:0:2: ++# BZ12701 %2hi:0B0:0:-1: ++# BZ12701 %*2hi:0B0:0:-1: ++# BZ12701 %2hi:0b0:0:-1: ++# BZ12701 %*2hi:0b0:0:-1: ++%2hi:1:1:1:1: ++%*2hi:1:0:1: ++# BZ12701 %2hi:0X1:0:-1: ++# BZ12701 %*2hi:0X1:0:-1: ++# BZ12701 %2hi:0x1:0:-1: ++# BZ12701 %*2hi:0x1:0:-1: ++%2hi:01:1:2:1: ++%*2hi:01:0:2: ++# BZ12701 %2hi:0B1:0:-1: ++# BZ12701 %*2hi:0B1:0:-1: ++# BZ12701 %2hi:0b1:0:-1: ++# BZ12701 %*2hi:0b1:0:-1: ++%2hi:42:1:2:42: ++%*2hi:42:0:2: ++# BZ12701 %2hi:0X2a:0:-1: ++# BZ12701 %*2hi:0X2a:0:-1: ++# BZ12701 %2hi:0x2A:0:-1: ++# BZ12701 %*2hi:0x2A:0:-1: ++%2hi:052:1:2:5: ++%*2hi:052:0:2: ++# BZ12701 %2hi:0B101010:0:-1: ++# BZ12701 %*2hi:0B101010:0:-1: ++# BZ12701 %2hi:0b101010:0:-1: ++# BZ12701 %*2hi:0b101010:0:-1: ++%2hi:32767:1:2:32: ++%*2hi:32767:0:2: ++# BZ12701 %2hi:0X7fff:0:-1: ++# BZ12701 %*2hi:0X7fff:0:-1: ++# BZ12701 %2hi:0x7FFF:0:-1: ++# BZ12701 %*2hi:0x7FFF:0:-1: ++%2hi:077777:1:2:7: ++%*2hi:077777:0:2: ++# BZ12701 %2hi:0B111111111111111:0:-1: ++# BZ12701 %*2hi:0B111111111111111:0:-1: ++# BZ12701 %2hi:0b111111111111111:0:-1: ++# BZ12701 %*2hi:0b111111111111111:0:-1: ++%2hi:32768:1:2:32: ++%*2hi:32768:0:2: ++# BZ12701 %2hi:0X8000:0:-1: ++# BZ12701 %*2hi:0X8000:0:-1: ++# BZ12701 %2hi:0x8000:0:-1: ++# BZ12701 %*2hi:0x8000:0:-1: ++%2hi:0100000:1:2:1: ++%*2hi:0100000:0:2: ++# BZ12701 %2hi:0B1000000000000000:0:-1: ++# BZ12701 %*2hi:0B1000000000000000:0:-1: ++# BZ12701 %2hi:0b1000000000000000:0:-1: ++# BZ12701 %*2hi:0b1000000000000000:0:-1: ++%2hi:32809:1:2:32: ++%*2hi:32809:0:2: ++# BZ12701 %2hi:0X8029:0:-1: ++# BZ12701 %*2hi:0X8029:0:-1: ++# BZ12701 %2hi:0x8029:0:-1: ++# BZ12701 %*2hi:0x8029:0:-1: ++%2hi:0100051:1:2:1: ++%*2hi:0100051:0:2: ++# BZ12701 %2hi:0B1000000000101001:0:-1: ++# BZ12701 %*2hi:0B1000000000101001:0:-1: ++# BZ12701 %2hi:0b1000000000101001:0:-1: ++# BZ12701 %*2hi:0b1000000000101001:0:-1: ++%2hi:+0:1:2:0: ++%*2hi:+0:0:2: ++%2hi:+0X0:1:2:0: ++%*2hi:+0X0:0:2: ++%2hi:+0x0:1:2:0: ++%*2hi:+0x0:0:2: ++%2hi:+00:1:2:0: ++%*2hi:+00:0:2: ++%2hi:+0B0:1:2:0: ++%*2hi:+0B0:0:2: ++%2hi:+0b0:1:2:0: ++%*2hi:+0b0:0:2: ++%2hi:+1:1:2:1: ++%*2hi:+1:0:2: ++%2hi:+0X1:1:2:0: ++%*2hi:+0X1:0:2: ++%2hi:+0x1:1:2:0: ++%*2hi:+0x1:0:2: ++%2hi:+01:1:2:0: ++%*2hi:+01:0:2: ++%2hi:+0B1:1:2:0: ++%*2hi:+0B1:0:2: ++%2hi:+0b1:1:2:0: ++%*2hi:+0b1:0:2: ++%2hi:+42:1:2:4: ++%*2hi:+42:0:2: ++%2hi:+0X2a:1:2:0: ++%*2hi:+0X2a:0:2: ++%2hi:+0x2A:1:2:0: ++%*2hi:+0x2A:0:2: ++%2hi:+052:1:2:0: ++%*2hi:+052:0:2: ++%2hi:+0B101010:1:2:0: ++%*2hi:+0B101010:0:2: ++%2hi:+0b101010:1:2:0: ++%*2hi:+0b101010:0:2: ++%2hi:+32767:1:2:3: ++%*2hi:+32767:0:2: ++%2hi:+0X7fff:1:2:0: ++%*2hi:+0X7fff:0:2: ++%2hi:+0x7FFF:1:2:0: ++%*2hi:+0x7FFF:0:2: ++%2hi:+077777:1:2:0: ++%*2hi:+077777:0:2: ++%2hi:+0B111111111111111:1:2:0: ++%*2hi:+0B111111111111111:0:2: ++%2hi:+0b111111111111111:1:2:0: ++%*2hi:+0b111111111111111:0:2: ++%2hi:+32768:1:2:3: ++%*2hi:+32768:0:2: ++%2hi:+0X8000:1:2:0: ++%*2hi:+0X8000:0:2: ++%2hi:+0x8000:1:2:0: ++%*2hi:+0x8000:0:2: ++%2hi:+0100000:1:2:0: ++%*2hi:+0100000:0:2: ++%2hi:+0B1000000000000000:1:2:0: ++%*2hi:+0B1000000000000000:0:2: ++%2hi:+0b1000000000000000:1:2:0: ++%*2hi:+0b1000000000000000:0:2: ++%2hi:+32809:1:2:3: ++%*2hi:+32809:0:2: ++%2hi:+0X8029:1:2:0: ++%*2hi:+0X8029:0:2: ++%2hi:+0x8029:1:2:0: ++%*2hi:+0x8029:0:2: ++%2hi:+0100051:1:2:0: ++%*2hi:+0100051:0:2: ++%2hi:+0B1000000000101001:1:2:0: ++%*2hi:+0B1000000000101001:0:2: ++%2hi:+0b1000000000101001:1:2:0: ++%*2hi:+0b1000000000101001:0:2: ++%4hi::0:-1: ++%*4hi::0:-1: ++%4hi:-32891:1:4:-328: ++%*4hi:-32891:0:4: ++%4hi:-0X807b:1:4:-8: ++%*4hi:-0X807b:0:4: ++%4hi:-0x807B:1:4:-8: ++%*4hi:-0x807B:0:4: ++%4hi:-0100173:1:4:-8: ++%*4hi:-0100173:0:4: ++%4hi:-0B1000000001111011:1:4:-1: ++%*4hi:-0B1000000001111011:0:4: ++%4hi:-0b1000000001111011:1:4:-1: ++%*4hi:-0b1000000001111011:0:4: ++%4hi:-32769:1:4:-327: ++%*4hi:-32769:0:4: ++%4hi:-0X8001:1:4:-8: ++%*4hi:-0X8001:0:4: ++%4hi:-0x8001:1:4:-8: ++%*4hi:-0x8001:0:4: ++%4hi:-0100001:1:4:-8: ++%*4hi:-0100001:0:4: ++%4hi:-0B1000000000000001:1:4:-1: ++%*4hi:-0B1000000000000001:0:4: ++%4hi:-0b1000000000000001:1:4:-1: ++%*4hi:-0b1000000000000001:0:4: ++%4hi:-32768:1:4:-327: ++%*4hi:-32768:0:4: ++%4hi:-0X8000:1:4:-8: ++%*4hi:-0X8000:0:4: ++%4hi:-0x8000:1:4:-8: ++%*4hi:-0x8000:0:4: ++%4hi:-0100000:1:4:-8: ++%*4hi:-0100000:0:4: ++%4hi:-0B1000000000000000:1:4:-1: ++%*4hi:-0B1000000000000000:0:4: ++%4hi:-0b1000000000000000:1:4:-1: ++%*4hi:-0b1000000000000000:0:4: ++%4hi:-123:1:4:-123: ++%*4hi:-123:0:4: ++%4hi:-0X7b:1:4:-7: ++%*4hi:-0X7b:0:4: ++%4hi:-0x7B:1:4:-7: ++%*4hi:-0x7B:0:4: ++%4hi:-0173:1:4:-15: ++%*4hi:-0173:0:4: ++%4hi:-0B1111011:1:4:-1: ++%*4hi:-0B1111011:0:4: ++%4hi:-0b1111011:1:4:-1: ++%*4hi:-0b1111011:0:4: ++%4hi:-1:1:2:-1: ++%*4hi:-1:0:2: ++%4hi:-0X1:1:4:-1: ++%*4hi:-0X1:0:4: ++%4hi:-0x1:1:4:-1: ++%*4hi:-0x1:0:4: ++%4hi:-01:1:3:-1: ++%*4hi:-01:0:3: ++%4hi:-0B1:1:4:-1: ++%*4hi:-0B1:0:4: ++%4hi:-0b1:1:4:-1: ++%*4hi:-0b1:0:4: ++%4hi:-0:1:2:0: ++%*4hi:-0:0:2: ++%4hi:-0X0:1:4:0: ++%*4hi:-0X0:0:4: ++%4hi:-0x0:1:4:0: ++%*4hi:-0x0:0:4: ++%4hi:-00:1:3:0: ++%*4hi:-00:0:3: ++%4hi:-0B0:1:4:0: ++%*4hi:-0B0:0:4: ++%4hi:-0b0:1:4:0: ++%*4hi:-0b0:0:4: ++%4hi:0:1:1:0: ++%*4hi:0:0:1: ++%4hi:0X0:1:3:0: ++%*4hi:0X0:0:3: ++%4hi:0x0:1:3:0: ++%*4hi:0x0:0:3: ++%4hi:00:1:2:0: ++%*4hi:00:0:2: ++%4hi:0B0:1:3:0: ++%*4hi:0B0:0:3: ++%4hi:0b0:1:3:0: ++%*4hi:0b0:0:3: ++%4hi:1:1:1:1: ++%*4hi:1:0:1: ++%4hi:0X1:1:3:1: ++%*4hi:0X1:0:3: ++%4hi:0x1:1:3:1: ++%*4hi:0x1:0:3: ++%4hi:01:1:2:1: ++%*4hi:01:0:2: ++%4hi:0B1:1:3:1: ++%*4hi:0B1:0:3: ++%4hi:0b1:1:3:1: ++%*4hi:0b1:0:3: ++%4hi:42:1:2:42: ++%*4hi:42:0:2: ++%4hi:0X2a:1:4:42: ++%*4hi:0X2a:0:4: ++%4hi:0x2A:1:4:42: ++%*4hi:0x2A:0:4: ++%4hi:052:1:3:42: ++%*4hi:052:0:3: ++%4hi:0B101010:1:4:2: ++%*4hi:0B101010:0:4: ++%4hi:0b101010:1:4:2: ++%*4hi:0b101010:0:4: ++%4hi:32767:1:4:3276: ++%*4hi:32767:0:4: ++%4hi:0X7fff:1:4:127: ++%*4hi:0X7fff:0:4: ++%4hi:0x7FFF:1:4:127: ++%*4hi:0x7FFF:0:4: ++%4hi:077777:1:4:511: ++%*4hi:077777:0:4: ++%4hi:0B111111111111111:1:4:3: ++%*4hi:0B111111111111111:0:4: ++%4hi:0b111111111111111:1:4:3: ++%*4hi:0b111111111111111:0:4: ++%4hi:32768:1:4:3276: ++%*4hi:32768:0:4: ++%4hi:0X8000:1:4:128: ++%*4hi:0X8000:0:4: ++%4hi:0x8000:1:4:128: ++%*4hi:0x8000:0:4: ++%4hi:0100000:1:4:64: ++%*4hi:0100000:0:4: ++%4hi:0B1000000000000000:1:4:2: ++%*4hi:0B1000000000000000:0:4: ++%4hi:0b1000000000000000:1:4:2: ++%*4hi:0b1000000000000000:0:4: ++%4hi:32809:1:4:3280: ++%*4hi:32809:0:4: ++%4hi:0X8029:1:4:128: ++%*4hi:0X8029:0:4: ++%4hi:0x8029:1:4:128: ++%*4hi:0x8029:0:4: ++%4hi:0100051:1:4:64: ++%*4hi:0100051:0:4: ++%4hi:0B1000000000101001:1:4:2: ++%*4hi:0B1000000000101001:0:4: ++%4hi:0b1000000000101001:1:4:2: ++%*4hi:0b1000000000101001:0:4: ++%4hi:+0:1:2:0: ++%*4hi:+0:0:2: ++%4hi:+0X0:1:4:0: ++%*4hi:+0X0:0:4: ++%4hi:+0x0:1:4:0: ++%*4hi:+0x0:0:4: ++%4hi:+00:1:3:0: ++%*4hi:+00:0:3: ++%4hi:+0B0:1:4:0: ++%*4hi:+0B0:0:4: ++%4hi:+0b0:1:4:0: ++%*4hi:+0b0:0:4: ++%4hi:+1:1:2:1: ++%*4hi:+1:0:2: ++%4hi:+0X1:1:4:1: ++%*4hi:+0X1:0:4: ++%4hi:+0x1:1:4:1: ++%*4hi:+0x1:0:4: ++%4hi:+01:1:3:1: ++%*4hi:+01:0:3: ++%4hi:+0B1:1:4:1: ++%*4hi:+0B1:0:4: ++%4hi:+0b1:1:4:1: ++%*4hi:+0b1:0:4: ++%4hi:+42:1:3:42: ++%*4hi:+42:0:3: ++%4hi:+0X2a:1:4:2: ++%*4hi:+0X2a:0:4: ++%4hi:+0x2A:1:4:2: ++%*4hi:+0x2A:0:4: ++%4hi:+052:1:4:42: ++%*4hi:+052:0:4: ++%4hi:+0B101010:1:4:1: ++%*4hi:+0B101010:0:4: ++%4hi:+0b101010:1:4:1: ++%*4hi:+0b101010:0:4: ++%4hi:+32767:1:4:327: ++%*4hi:+32767:0:4: ++%4hi:+0X7fff:1:4:7: ++%*4hi:+0X7fff:0:4: ++%4hi:+0x7FFF:1:4:7: ++%*4hi:+0x7FFF:0:4: ++%4hi:+077777:1:4:63: ++%*4hi:+077777:0:4: ++%4hi:+0B111111111111111:1:4:1: ++%*4hi:+0B111111111111111:0:4: ++%4hi:+0b111111111111111:1:4:1: ++%*4hi:+0b111111111111111:0:4: ++%4hi:+32768:1:4:327: ++%*4hi:+32768:0:4: ++%4hi:+0X8000:1:4:8: ++%*4hi:+0X8000:0:4: ++%4hi:+0x8000:1:4:8: ++%*4hi:+0x8000:0:4: ++%4hi:+0100000:1:4:8: ++%*4hi:+0100000:0:4: ++%4hi:+0B1000000000000000:1:4:1: ++%*4hi:+0B1000000000000000:0:4: ++%4hi:+0b1000000000000000:1:4:1: ++%*4hi:+0b1000000000000000:0:4: ++%4hi:+32809:1:4:328: ++%*4hi:+32809:0:4: ++%4hi:+0X8029:1:4:8: ++%*4hi:+0X8029:0:4: ++%4hi:+0x8029:1:4:8: ++%*4hi:+0x8029:0:4: ++%4hi:+0100051:1:4:8: ++%*4hi:+0100051:0:4: ++%4hi:+0B1000000000101001:1:4:1: ++%*4hi:+0B1000000000101001:0:4: ++%4hi:+0b1000000000101001:1:4:1: ++%*4hi:+0b1000000000101001:0:4: ++%7hi::0:-1: ++%*7hi::0:-1: ++%7hi:-32891:1:6:32645: ++%*7hi:-32891:0:6: ++%7hi:-0X807b:1:7:32645: ++%*7hi:-0X807b:0:7: ++%7hi:-0x807B:1:7:32645: ++%*7hi:-0x807B:0:7: ++%7hi:-0100173:1:7:-4111: ++%*7hi:-0100173:0:7: ++%7hi:-0B1000000001111011:1:7:-8: ++%*7hi:-0B1000000001111011:0:7: ++%7hi:-0b1000000001111011:1:7:-8: ++%*7hi:-0b1000000001111011:0:7: ++%7hi:-32769:1:6:32767: ++%*7hi:-32769:0:6: ++%7hi:-0X8001:1:7:32767: ++%*7hi:-0X8001:0:7: ++%7hi:-0x8001:1:7:32767: ++%*7hi:-0x8001:0:7: ++%7hi:-0100001:1:7:-4096: ++%*7hi:-0100001:0:7: ++%7hi:-0B1000000000000001:1:7:-8: ++%*7hi:-0B1000000000000001:0:7: ++%7hi:-0b1000000000000001:1:7:-8: ++%*7hi:-0b1000000000000001:0:7: ++%7hi:-32768:1:6:-32768: ++%*7hi:-32768:0:6: ++%7hi:-0X8000:1:7:-32768: ++%*7hi:-0X8000:0:7: ++%7hi:-0x8000:1:7:-32768: ++%*7hi:-0x8000:0:7: ++%7hi:-0100000:1:7:-4096: ++%*7hi:-0100000:0:7: ++%7hi:-0B1000000000000000:1:7:-8: ++%*7hi:-0B1000000000000000:0:7: ++%7hi:-0b1000000000000000:1:7:-8: ++%*7hi:-0b1000000000000000:0:7: ++%7hi:-123:1:4:-123: ++%*7hi:-123:0:4: ++%7hi:-0X7b:1:5:-123: ++%*7hi:-0X7b:0:5: ++%7hi:-0x7B:1:5:-123: ++%*7hi:-0x7B:0:5: ++%7hi:-0173:1:5:-123: ++%*7hi:-0173:0:5: ++%7hi:-0B1111011:1:7:-15: ++%*7hi:-0B1111011:0:7: ++%7hi:-0b1111011:1:7:-15: ++%*7hi:-0b1111011:0:7: ++%7hi:-1:1:2:-1: ++%*7hi:-1:0:2: ++%7hi:-0X1:1:4:-1: ++%*7hi:-0X1:0:4: ++%7hi:-0x1:1:4:-1: ++%*7hi:-0x1:0:4: ++%7hi:-01:1:3:-1: ++%*7hi:-01:0:3: ++%7hi:-0B1:1:4:-1: ++%*7hi:-0B1:0:4: ++%7hi:-0b1:1:4:-1: ++%*7hi:-0b1:0:4: ++%7hi:-0:1:2:0: ++%*7hi:-0:0:2: ++%7hi:-0X0:1:4:0: ++%*7hi:-0X0:0:4: ++%7hi:-0x0:1:4:0: ++%*7hi:-0x0:0:4: ++%7hi:-00:1:3:0: ++%*7hi:-00:0:3: ++%7hi:-0B0:1:4:0: ++%*7hi:-0B0:0:4: ++%7hi:-0b0:1:4:0: ++%*7hi:-0b0:0:4: ++%7hi:0:1:1:0: ++%*7hi:0:0:1: ++%7hi:0X0:1:3:0: ++%*7hi:0X0:0:3: ++%7hi:0x0:1:3:0: ++%*7hi:0x0:0:3: ++%7hi:00:1:2:0: ++%*7hi:00:0:2: ++%7hi:0B0:1:3:0: ++%*7hi:0B0:0:3: ++%7hi:0b0:1:3:0: ++%*7hi:0b0:0:3: ++%7hi:1:1:1:1: ++%*7hi:1:0:1: ++%7hi:0X1:1:3:1: ++%*7hi:0X1:0:3: ++%7hi:0x1:1:3:1: ++%*7hi:0x1:0:3: ++%7hi:01:1:2:1: ++%*7hi:01:0:2: ++%7hi:0B1:1:3:1: ++%*7hi:0B1:0:3: ++%7hi:0b1:1:3:1: ++%*7hi:0b1:0:3: ++%7hi:42:1:2:42: ++%*7hi:42:0:2: ++%7hi:0X2a:1:4:42: ++%*7hi:0X2a:0:4: ++%7hi:0x2A:1:4:42: ++%*7hi:0x2A:0:4: ++%7hi:052:1:3:42: ++%*7hi:052:0:3: ++%7hi:0B101010:1:7:21: ++%*7hi:0B101010:0:7: ++%7hi:0b101010:1:7:21: ++%*7hi:0b101010:0:7: ++%7hi:32767:1:5:32767: ++%*7hi:32767:0:5: ++%7hi:0X7fff:1:6:32767: ++%*7hi:0X7fff:0:6: ++%7hi:0x7FFF:1:6:32767: ++%*7hi:0x7FFF:0:6: ++%7hi:077777:1:6:32767: ++%*7hi:077777:0:6: ++%7hi:0B111111111111111:1:7:31: ++%*7hi:0B111111111111111:0:7: ++%7hi:0b111111111111111:1:7:31: ++%*7hi:0b111111111111111:0:7: ++%7hi:32768:1:5:-32768: ++%*7hi:32768:0:5: ++%7hi:0X8000:1:6:-32768: ++%*7hi:0X8000:0:6: ++%7hi:0x8000:1:6:-32768: ++%*7hi:0x8000:0:6: ++%7hi:0100000:1:7:-32768: ++%*7hi:0100000:0:7: ++%7hi:0B1000000000000000:1:7:16: ++%*7hi:0B1000000000000000:0:7: ++%7hi:0b1000000000000000:1:7:16: ++%*7hi:0b1000000000000000:0:7: ++%7hi:32809:1:5:-32727: ++%*7hi:32809:0:5: ++%7hi:0X8029:1:6:-32727: ++%*7hi:0X8029:0:6: ++%7hi:0x8029:1:6:-32727: ++%*7hi:0x8029:0:6: ++%7hi:0100051:1:7:-32727: ++%*7hi:0100051:0:7: ++%7hi:0B1000000000101001:1:7:16: ++%*7hi:0B1000000000101001:0:7: ++%7hi:0b1000000000101001:1:7:16: ++%*7hi:0b1000000000101001:0:7: ++%7hi:+0:1:2:0: ++%*7hi:+0:0:2: ++%7hi:+0X0:1:4:0: ++%*7hi:+0X0:0:4: ++%7hi:+0x0:1:4:0: ++%*7hi:+0x0:0:4: ++%7hi:+00:1:3:0: ++%*7hi:+00:0:3: ++%7hi:+0B0:1:4:0: ++%*7hi:+0B0:0:4: ++%7hi:+0b0:1:4:0: ++%*7hi:+0b0:0:4: ++%7hi:+1:1:2:1: ++%*7hi:+1:0:2: ++%7hi:+0X1:1:4:1: ++%*7hi:+0X1:0:4: ++%7hi:+0x1:1:4:1: ++%*7hi:+0x1:0:4: ++%7hi:+01:1:3:1: ++%*7hi:+01:0:3: ++%7hi:+0B1:1:4:1: ++%*7hi:+0B1:0:4: ++%7hi:+0b1:1:4:1: ++%*7hi:+0b1:0:4: ++%7hi:+42:1:3:42: ++%*7hi:+42:0:3: ++%7hi:+0X2a:1:5:42: ++%*7hi:+0X2a:0:5: ++%7hi:+0x2A:1:5:42: ++%*7hi:+0x2A:0:5: ++%7hi:+052:1:4:42: ++%*7hi:+052:0:4: ++%7hi:+0B101010:1:7:10: ++%*7hi:+0B101010:0:7: ++%7hi:+0b101010:1:7:10: ++%*7hi:+0b101010:0:7: ++%7hi:+32767:1:6:32767: ++%*7hi:+32767:0:6: ++%7hi:+0X7fff:1:7:32767: ++%*7hi:+0X7fff:0:7: ++%7hi:+0x7FFF:1:7:32767: ++%*7hi:+0x7FFF:0:7: ++%7hi:+077777:1:7:32767: ++%*7hi:+077777:0:7: ++%7hi:+0B111111111111111:1:7:15: ++%*7hi:+0B111111111111111:0:7: ++%7hi:+0b111111111111111:1:7:15: ++%*7hi:+0b111111111111111:0:7: ++%7hi:+32768:1:6:-32768: ++%*7hi:+32768:0:6: ++%7hi:+0X8000:1:7:-32768: ++%*7hi:+0X8000:0:7: ++%7hi:+0x8000:1:7:-32768: ++%*7hi:+0x8000:0:7: ++%7hi:+0100000:1:7:4096: ++%*7hi:+0100000:0:7: ++%7hi:+0B1000000000000000:1:7:8: ++%*7hi:+0B1000000000000000:0:7: ++%7hi:+0b1000000000000000:1:7:8: ++%*7hi:+0b1000000000000000:0:7: ++%7hi:+32809:1:6:-32727: ++%*7hi:+32809:0:6: ++%7hi:+0X8029:1:7:-32727: ++%*7hi:+0X8029:0:7: ++%7hi:+0x8029:1:7:-32727: ++%*7hi:+0x8029:0:7: ++%7hi:+0100051:1:7:4101: ++%*7hi:+0100051:0:7: ++%7hi:+0B1000000000101001:1:7:8: ++%*7hi:+0B1000000000101001:0:7: ++%7hi:+0b1000000000101001:1:7:8: ++%*7hi:+0b1000000000101001:0:7: ++%2hi: :0:-1: ++%*2hi: :0:-1: ++%2hi: -32891:1:3:-3: ++%*2hi: -32891:0:3: ++%2hi: -0X807b:1:3:0: ++%*2hi: -0X807b:0:3: ++%2hi: -0x807B:1:3:0: ++%*2hi: -0x807B:0:3: ++%2hi: -0100173:1:3:0: ++%*2hi: -0100173:0:3: ++%2hi: -0B1000000001111011:1:3:0: ++%*2hi: -0B1000000001111011:0:3: ++%2hi: -0b1000000001111011:1:3:0: ++%*2hi: -0b1000000001111011:0:3: ++%2hi: -32769:1:3:-3: ++%*2hi: -32769:0:3: ++%2hi: -0X8001:1:3:0: ++%*2hi: -0X8001:0:3: ++%2hi: -0x8001:1:3:0: ++%*2hi: -0x8001:0:3: ++%2hi: -0100001:1:3:0: ++%*2hi: -0100001:0:3: ++%2hi: -0B1000000000000001:1:3:0: ++%*2hi: -0B1000000000000001:0:3: ++%2hi: -0b1000000000000001:1:3:0: ++%*2hi: -0b1000000000000001:0:3: ++%2hi: -32768:1:3:-3: ++%*2hi: -32768:0:3: ++%2hi: -0X8000:1:3:0: ++%*2hi: -0X8000:0:3: ++%2hi: -0x8000:1:3:0: ++%*2hi: -0x8000:0:3: ++%2hi: -0100000:1:3:0: ++%*2hi: -0100000:0:3: ++%2hi: -0B1000000000000000:1:3:0: ++%*2hi: -0B1000000000000000:0:3: ++%2hi: -0b1000000000000000:1:3:0: ++%*2hi: -0b1000000000000000:0:3: ++%2hi: -123:1:3:-1: ++%*2hi: -123:0:3: ++%2hi: -0X7b:1:3:0: ++%*2hi: -0X7b:0:3: ++%2hi: -0x7B:1:3:0: ++%*2hi: -0x7B:0:3: ++%2hi: -0173:1:3:0: ++%*2hi: -0173:0:3: ++%2hi: -0B1111011:1:3:0: ++%*2hi: -0B1111011:0:3: ++%2hi: -0b1111011:1:3:0: ++%*2hi: -0b1111011:0:3: ++%2hi: -1:1:3:-1: ++%*2hi: -1:0:3: ++%2hi: -0X1:1:3:0: ++%*2hi: -0X1:0:3: ++%2hi: -0x1:1:3:0: ++%*2hi: -0x1:0:3: ++%2hi: -01:1:3:0: ++%*2hi: -01:0:3: ++%2hi: -0B1:1:3:0: ++%*2hi: -0B1:0:3: ++%2hi: -0b1:1:3:0: ++%*2hi: -0b1:0:3: ++%2hi: -0:1:3:0: ++%*2hi: -0:0:3: ++%2hi: -0X0:1:3:0: ++%*2hi: -0X0:0:3: ++%2hi: -0x0:1:3:0: ++%*2hi: -0x0:0:3: ++%2hi: -00:1:3:0: ++%*2hi: -00:0:3: ++%2hi: -0B0:1:3:0: ++%*2hi: -0B0:0:3: ++%2hi: -0b0:1:3:0: ++%*2hi: -0b0:0:3: ++%2hi: 0:1:2:0: ++%*2hi: 0:0:2: ++# BZ12701 %2hi: 0X0:0:-1: ++# BZ12701 %*2hi: 0X0:0:-1: ++# BZ12701 %2hi: 0x0:0:-1: ++# BZ12701 %*2hi: 0x0:0:-1: ++%2hi: 00:1:3:0: ++%*2hi: 00:0:3: ++# BZ12701 %2hi: 0B0:0:-1: ++# BZ12701 %*2hi: 0B0:0:-1: ++# BZ12701 %2hi: 0b0:0:-1: ++# BZ12701 %*2hi: 0b0:0:-1: ++%2hi: 1:1:2:1: ++%*2hi: 1:0:2: ++# BZ12701 %2hi: 0X1:0:-1: ++# BZ12701 %*2hi: 0X1:0:-1: ++# BZ12701 %2hi: 0x1:0:-1: ++# BZ12701 %*2hi: 0x1:0:-1: ++%2hi: 01:1:3:1: ++%*2hi: 01:0:3: ++# BZ12701 %2hi: 0B1:0:-1: ++# BZ12701 %*2hi: 0B1:0:-1: ++# BZ12701 %2hi: 0b1:0:-1: ++# BZ12701 %*2hi: 0b1:0:-1: ++%2hi: 42:1:3:42: ++%*2hi: 42:0:3: ++# BZ12701 %2hi: 0X2a:0:-1: ++# BZ12701 %*2hi: 0X2a:0:-1: ++# BZ12701 %2hi: 0x2A:0:-1: ++# BZ12701 %*2hi: 0x2A:0:-1: ++%2hi: 052:1:3:5: ++%*2hi: 052:0:3: ++# BZ12701 %2hi: 0B101010:0:-1: ++# BZ12701 %*2hi: 0B101010:0:-1: ++# BZ12701 %2hi: 0b101010:0:-1: ++# BZ12701 %*2hi: 0b101010:0:-1: ++%2hi: 32767:1:3:32: ++%*2hi: 32767:0:3: ++# BZ12701 %2hi: 0X7fff:0:-1: ++# BZ12701 %*2hi: 0X7fff:0:-1: ++# BZ12701 %2hi: 0x7FFF:0:-1: ++# BZ12701 %*2hi: 0x7FFF:0:-1: ++%2hi: 077777:1:3:7: ++%*2hi: 077777:0:3: ++# BZ12701 %2hi: 0B111111111111111:0:-1: ++# BZ12701 %*2hi: 0B111111111111111:0:-1: ++# BZ12701 %2hi: 0b111111111111111:0:-1: ++# BZ12701 %*2hi: 0b111111111111111:0:-1: ++%2hi: 32768:1:3:32: ++%*2hi: 32768:0:3: ++# BZ12701 %2hi: 0X8000:0:-1: ++# BZ12701 %*2hi: 0X8000:0:-1: ++# BZ12701 %2hi: 0x8000:0:-1: ++# BZ12701 %*2hi: 0x8000:0:-1: ++%2hi: 0100000:1:3:1: ++%*2hi: 0100000:0:3: ++# BZ12701 %2hi: 0B1000000000000000:0:-1: ++# BZ12701 %*2hi: 0B1000000000000000:0:-1: ++# BZ12701 %2hi: 0b1000000000000000:0:-1: ++# BZ12701 %*2hi: 0b1000000000000000:0:-1: ++%2hi: 32809:1:3:32: ++%*2hi: 32809:0:3: ++# BZ12701 %2hi: 0X8029:0:-1: ++# BZ12701 %*2hi: 0X8029:0:-1: ++# BZ12701 %2hi: 0x8029:0:-1: ++# BZ12701 %*2hi: 0x8029:0:-1: ++%2hi: 0100051:1:3:1: ++%*2hi: 0100051:0:3: ++# BZ12701 %2hi: 0B1000000000101001:0:-1: ++# BZ12701 %*2hi: 0B1000000000101001:0:-1: ++# BZ12701 %2hi: 0b1000000000101001:0:-1: ++# BZ12701 %*2hi: 0b1000000000101001:0:-1: ++%2hi: +0:1:3:0: ++%*2hi: +0:0:3: ++%2hi: +0X0:1:3:0: ++%*2hi: +0X0:0:3: ++%2hi: +0x0:1:3:0: ++%*2hi: +0x0:0:3: ++%2hi: +00:1:3:0: ++%*2hi: +00:0:3: ++%2hi: +0B0:1:3:0: ++%*2hi: +0B0:0:3: ++%2hi: +0b0:1:3:0: ++%*2hi: +0b0:0:3: ++%2hi: +1:1:3:1: ++%*2hi: +1:0:3: ++%2hi: +0X1:1:3:0: ++%*2hi: +0X1:0:3: ++%2hi: +0x1:1:3:0: ++%*2hi: +0x1:0:3: ++%2hi: +01:1:3:0: ++%*2hi: +01:0:3: ++%2hi: +0B1:1:3:0: ++%*2hi: +0B1:0:3: ++%2hi: +0b1:1:3:0: ++%*2hi: +0b1:0:3: ++%2hi: +42:1:3:4: ++%*2hi: +42:0:3: ++%2hi: +0X2a:1:3:0: ++%*2hi: +0X2a:0:3: ++%2hi: +0x2A:1:3:0: ++%*2hi: +0x2A:0:3: ++%2hi: +052:1:3:0: ++%*2hi: +052:0:3: ++%2hi: +0B101010:1:3:0: ++%*2hi: +0B101010:0:3: ++%2hi: +0b101010:1:3:0: ++%*2hi: +0b101010:0:3: ++%2hi: +32767:1:3:3: ++%*2hi: +32767:0:3: ++%2hi: +0X7fff:1:3:0: ++%*2hi: +0X7fff:0:3: ++%2hi: +0x7FFF:1:3:0: ++%*2hi: +0x7FFF:0:3: ++%2hi: +077777:1:3:0: ++%*2hi: +077777:0:3: ++%2hi: +0B111111111111111:1:3:0: ++%*2hi: +0B111111111111111:0:3: ++%2hi: +0b111111111111111:1:3:0: ++%*2hi: +0b111111111111111:0:3: ++%2hi: +32768:1:3:3: ++%*2hi: +32768:0:3: ++%2hi: +0X8000:1:3:0: ++%*2hi: +0X8000:0:3: ++%2hi: +0x8000:1:3:0: ++%*2hi: +0x8000:0:3: ++%2hi: +0100000:1:3:0: ++%*2hi: +0100000:0:3: ++%2hi: +0B1000000000000000:1:3:0: ++%*2hi: +0B1000000000000000:0:3: ++%2hi: +0b1000000000000000:1:3:0: ++%*2hi: +0b1000000000000000:0:3: ++%2hi: +32809:1:3:3: ++%*2hi: +32809:0:3: ++%2hi: +0X8029:1:3:0: ++%*2hi: +0X8029:0:3: ++%2hi: +0x8029:1:3:0: ++%*2hi: +0x8029:0:3: ++%2hi: +0100051:1:3:0: ++%*2hi: +0100051:0:3: ++%2hi: +0B1000000000101001:1:3:0: ++%*2hi: +0B1000000000101001:0:3: ++%2hi: +0b1000000000101001:1:3:0: ++%*2hi: +0b1000000000101001:0:3: ++%7hi: :0:-1: ++%*7hi: :0:-1: ++%7hi: -32891:1:7:32645: ++%*7hi: -32891:0:7: ++%7hi: -0X807b:1:8:32645: ++%*7hi: -0X807b:0:8: ++%7hi: -0x807B:1:8:32645: ++%*7hi: -0x807B:0:8: ++%7hi: -0100173:1:8:-4111: ++%*7hi: -0100173:0:8: ++%7hi: -0B1000000001111011:1:8:-8: ++%*7hi: -0B1000000001111011:0:8: ++%7hi: -0b1000000001111011:1:8:-8: ++%*7hi: -0b1000000001111011:0:8: ++%7hi: -32769:1:7:32767: ++%*7hi: -32769:0:7: ++%7hi: -0X8001:1:8:32767: ++%*7hi: -0X8001:0:8: ++%7hi: -0x8001:1:8:32767: ++%*7hi: -0x8001:0:8: ++%7hi: -0100001:1:8:-4096: ++%*7hi: -0100001:0:8: ++%7hi: -0B1000000000000001:1:8:-8: ++%*7hi: -0B1000000000000001:0:8: ++%7hi: -0b1000000000000001:1:8:-8: ++%*7hi: -0b1000000000000001:0:8: ++%7hi: -32768:1:7:-32768: ++%*7hi: -32768:0:7: ++%7hi: -0X8000:1:8:-32768: ++%*7hi: -0X8000:0:8: ++%7hi: -0x8000:1:8:-32768: ++%*7hi: -0x8000:0:8: ++%7hi: -0100000:1:8:-4096: ++%*7hi: -0100000:0:8: ++%7hi: -0B1000000000000000:1:8:-8: ++%*7hi: -0B1000000000000000:0:8: ++%7hi: -0b1000000000000000:1:8:-8: ++%*7hi: -0b1000000000000000:0:8: ++%7hi: -123:1:5:-123: ++%*7hi: -123:0:5: ++%7hi: -0X7b:1:6:-123: ++%*7hi: -0X7b:0:6: ++%7hi: -0x7B:1:6:-123: ++%*7hi: -0x7B:0:6: ++%7hi: -0173:1:6:-123: ++%*7hi: -0173:0:6: ++%7hi: -0B1111011:1:8:-15: ++%*7hi: -0B1111011:0:8: ++%7hi: -0b1111011:1:8:-15: ++%*7hi: -0b1111011:0:8: ++%7hi: -1:1:3:-1: ++%*7hi: -1:0:3: ++%7hi: -0X1:1:5:-1: ++%*7hi: -0X1:0:5: ++%7hi: -0x1:1:5:-1: ++%*7hi: -0x1:0:5: ++%7hi: -01:1:4:-1: ++%*7hi: -01:0:4: ++%7hi: -0B1:1:5:-1: ++%*7hi: -0B1:0:5: ++%7hi: -0b1:1:5:-1: ++%*7hi: -0b1:0:5: ++%7hi: -0:1:3:0: ++%*7hi: -0:0:3: ++%7hi: -0X0:1:5:0: ++%*7hi: -0X0:0:5: ++%7hi: -0x0:1:5:0: ++%*7hi: -0x0:0:5: ++%7hi: -00:1:4:0: ++%*7hi: -00:0:4: ++%7hi: -0B0:1:5:0: ++%*7hi: -0B0:0:5: ++%7hi: -0b0:1:5:0: ++%*7hi: -0b0:0:5: ++%7hi: 0:1:2:0: ++%*7hi: 0:0:2: ++%7hi: 0X0:1:4:0: ++%*7hi: 0X0:0:4: ++%7hi: 0x0:1:4:0: ++%*7hi: 0x0:0:4: ++%7hi: 00:1:3:0: ++%*7hi: 00:0:3: ++%7hi: 0B0:1:4:0: ++%*7hi: 0B0:0:4: ++%7hi: 0b0:1:4:0: ++%*7hi: 0b0:0:4: ++%7hi: 1:1:2:1: ++%*7hi: 1:0:2: ++%7hi: 0X1:1:4:1: ++%*7hi: 0X1:0:4: ++%7hi: 0x1:1:4:1: ++%*7hi: 0x1:0:4: ++%7hi: 01:1:3:1: ++%*7hi: 01:0:3: ++%7hi: 0B1:1:4:1: ++%*7hi: 0B1:0:4: ++%7hi: 0b1:1:4:1: ++%*7hi: 0b1:0:4: ++%7hi: 42:1:3:42: ++%*7hi: 42:0:3: ++%7hi: 0X2a:1:5:42: ++%*7hi: 0X2a:0:5: ++%7hi: 0x2A:1:5:42: ++%*7hi: 0x2A:0:5: ++%7hi: 052:1:4:42: ++%*7hi: 052:0:4: ++%7hi: 0B101010:1:8:21: ++%*7hi: 0B101010:0:8: ++%7hi: 0b101010:1:8:21: ++%*7hi: 0b101010:0:8: ++%7hi: 32767:1:6:32767: ++%*7hi: 32767:0:6: ++%7hi: 0X7fff:1:7:32767: ++%*7hi: 0X7fff:0:7: ++%7hi: 0x7FFF:1:7:32767: ++%*7hi: 0x7FFF:0:7: ++%7hi: 077777:1:7:32767: ++%*7hi: 077777:0:7: ++%7hi: 0B111111111111111:1:8:31: ++%*7hi: 0B111111111111111:0:8: ++%7hi: 0b111111111111111:1:8:31: ++%*7hi: 0b111111111111111:0:8: ++%7hi: 32768:1:6:-32768: ++%*7hi: 32768:0:6: ++%7hi: 0X8000:1:7:-32768: ++%*7hi: 0X8000:0:7: ++%7hi: 0x8000:1:7:-32768: ++%*7hi: 0x8000:0:7: ++%7hi: 0100000:1:8:-32768: ++%*7hi: 0100000:0:8: ++%7hi: 0B1000000000000000:1:8:16: ++%*7hi: 0B1000000000000000:0:8: ++%7hi: 0b1000000000000000:1:8:16: ++%*7hi: 0b1000000000000000:0:8: ++%7hi: 32809:1:6:-32727: ++%*7hi: 32809:0:6: ++%7hi: 0X8029:1:7:-32727: ++%*7hi: 0X8029:0:7: ++%7hi: 0x8029:1:7:-32727: ++%*7hi: 0x8029:0:7: ++%7hi: 0100051:1:8:-32727: ++%*7hi: 0100051:0:8: ++%7hi: 0B1000000000101001:1:8:16: ++%*7hi: 0B1000000000101001:0:8: ++%7hi: 0b1000000000101001:1:8:16: ++%*7hi: 0b1000000000101001:0:8: ++%7hi: +0:1:3:0: ++%*7hi: +0:0:3: ++%7hi: +0X0:1:5:0: ++%*7hi: +0X0:0:5: ++%7hi: +0x0:1:5:0: ++%*7hi: +0x0:0:5: ++%7hi: +00:1:4:0: ++%*7hi: +00:0:4: ++%7hi: +0B0:1:5:0: ++%*7hi: +0B0:0:5: ++%7hi: +0b0:1:5:0: ++%*7hi: +0b0:0:5: ++%7hi: +1:1:3:1: ++%*7hi: +1:0:3: ++%7hi: +0X1:1:5:1: ++%*7hi: +0X1:0:5: ++%7hi: +0x1:1:5:1: ++%*7hi: +0x1:0:5: ++%7hi: +01:1:4:1: ++%*7hi: +01:0:4: ++%7hi: +0B1:1:5:1: ++%*7hi: +0B1:0:5: ++%7hi: +0b1:1:5:1: ++%*7hi: +0b1:0:5: ++%7hi: +42:1:4:42: ++%*7hi: +42:0:4: ++%7hi: +0X2a:1:6:42: ++%*7hi: +0X2a:0:6: ++%7hi: +0x2A:1:6:42: ++%*7hi: +0x2A:0:6: ++%7hi: +052:1:5:42: ++%*7hi: +052:0:5: ++%7hi: +0B101010:1:8:10: ++%*7hi: +0B101010:0:8: ++%7hi: +0b101010:1:8:10: ++%*7hi: +0b101010:0:8: ++%7hi: +32767:1:7:32767: ++%*7hi: +32767:0:7: ++%7hi: +0X7fff:1:8:32767: ++%*7hi: +0X7fff:0:8: ++%7hi: +0x7FFF:1:8:32767: ++%*7hi: +0x7FFF:0:8: ++%7hi: +077777:1:8:32767: ++%*7hi: +077777:0:8: ++%7hi: +0B111111111111111:1:8:15: ++%*7hi: +0B111111111111111:0:8: ++%7hi: +0b111111111111111:1:8:15: ++%*7hi: +0b111111111111111:0:8: ++%7hi: +32768:1:7:-32768: ++%*7hi: +32768:0:7: ++%7hi: +0X8000:1:8:-32768: ++%*7hi: +0X8000:0:8: ++%7hi: +0x8000:1:8:-32768: ++%*7hi: +0x8000:0:8: ++%7hi: +0100000:1:8:4096: ++%*7hi: +0100000:0:8: ++%7hi: +0B1000000000000000:1:8:8: ++%*7hi: +0B1000000000000000:0:8: ++%7hi: +0b1000000000000000:1:8:8: ++%*7hi: +0b1000000000000000:0:8: ++%7hi: +32809:1:7:-32727: ++%*7hi: +32809:0:7: ++%7hi: +0X8029:1:8:-32727: ++%*7hi: +0X8029:0:8: ++%7hi: +0x8029:1:8:-32727: ++%*7hi: +0x8029:0:8: ++%7hi: +0100051:1:8:4101: ++%*7hi: +0100051:0:8: ++%7hi: +0B1000000000101001:1:8:8: ++%*7hi: +0B1000000000101001:0:8: ++%7hi: +0b1000000000101001:1:8:8: ++%*7hi: +0b1000000000101001:0:8: +diff --git a/stdio-common/tst-scanf-format-skeleton-c.c b/stdio-common/tst-scanf-format-skeleton-c.c +new file mode 100644 +index 0000000000000000..181077fb38959d2d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-c.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for character conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++typedef char *type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-char.c b/stdio-common/tst-scanf-format-skeleton-char.c +new file mode 100644 +index 0000000000000000..a694de4892396e11 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-char.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for signed char conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++typedef signed char type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-double.c b/stdio-common/tst-scanf-format-skeleton-double.c +new file mode 100644 +index 0000000000000000..502f2ad3f7d1aef2 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-double.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for double conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++typedef double type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-float.c b/stdio-common/tst-scanf-format-skeleton-float.c +new file mode 100644 +index 0000000000000000..2104c0f6c913f502 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-float.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for float conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++typedef float type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-int.c b/stdio-common/tst-scanf-format-skeleton-int.c +new file mode 100644 +index 0000000000000000..eb4e9de2db796311 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-int.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++typedef int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-ldouble.c b/stdio-common/tst-scanf-format-skeleton-ldouble.c +new file mode 100644 +index 0000000000000000..3649110ed36c4ef5 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-ldouble.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for long double conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++typedef long double type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-llong.c b/stdio-common/tst-scanf-format-skeleton-llong.c +new file mode 100644 +index 0000000000000000..8b8324e99fb95121 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-llong.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for long long int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++typedef long long int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-long.c b/stdio-common/tst-scanf-format-skeleton-long.c +new file mode 100644 +index 0000000000000000..91aa0913fdfe77a9 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-long.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for long int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++typedef long int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-short.c b/stdio-common/tst-scanf-format-skeleton-short.c +new file mode 100644 +index 0000000000000000..ca51a2533c7e198e +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-short.c +@@ -0,0 +1,21 @@ ++/* Test skeleton for formatted scanf input for short int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++typedef short int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-uchar.c b/stdio-common/tst-scanf-format-skeleton-uchar.c +new file mode 100644 +index 0000000000000000..6be8917e3bb9edee +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-uchar.c +@@ -0,0 +1,22 @@ ++/* Test skeleton for formatted scanf input for unsigned char conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#define TYPE_T_UNSIGNED_P 1 ++typedef unsigned char type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-uint.c b/stdio-common/tst-scanf-format-skeleton-uint.c +new file mode 100644 +index 0000000000000000..1508dc39198c5464 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-uint.c +@@ -0,0 +1,22 @@ ++/* Test skeleton for formatted scanf input for unsigned int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#define TYPE_T_UNSIGNED_P 1 ++typedef unsigned int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-ullong.c b/stdio-common/tst-scanf-format-skeleton-ullong.c +new file mode 100644 +index 0000000000000000..b0b8050e2d33e195 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-ullong.c +@@ -0,0 +1,22 @@ ++/* Test skeleton for formatted scanf input for unsigned long long int convs. ++ Copyright (C) 2025 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 ++ . */ ++ ++#define TYPE_T_UNSIGNED_P 1 ++typedef unsigned long long int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-ulong.c b/stdio-common/tst-scanf-format-skeleton-ulong.c +new file mode 100644 +index 0000000000000000..319882511e7c7a64 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-ulong.c +@@ -0,0 +1,22 @@ ++/* Test skeleton for formatted scanf input for unsigned long int convs. ++ Copyright (C) 2025 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 ++ . */ ++ ++#define TYPE_T_UNSIGNED_P 1 ++typedef unsigned long int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton-ushort.c b/stdio-common/tst-scanf-format-skeleton-ushort.c +new file mode 100644 +index 0000000000000000..2b710c5eca6d75d0 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton-ushort.c +@@ -0,0 +1,22 @@ ++/* Test skeleton for formatted scanf input for unsigned short int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#define TYPE_T_UNSIGNED_P 1 ++typedef unsigned short int type_t; ++ ++#include "tst-scanf-format-skeleton.c" +diff --git a/stdio-common/tst-scanf-format-skeleton.c b/stdio-common/tst-scanf-format-skeleton.c +new file mode 100644 +index 0000000000000000..bf1129b7f4f217cd +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton.c +@@ -0,0 +1,373 @@ ++/* Test skeleton for formatted scanf input. ++ Copyright (C) 2025 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 ++ . */ ++ ++/* The following definitions have to be supplied by the source including ++ this skeleton: ++ ++ Macros: ++ TYPE_T_UNSIGNED_P [optional] Set to 1 if handling an unsigned ++ integer conversion. ++ ++ Typedefs: ++ type_t Type to hold data produced by the conversion ++ handled. ++ ++ Callable objects: ++ scanf_under_test Wrapper for the 'scanf' family feature to be ++ tested. ++ verify_input Verifier called to determine whether there is a ++ match between the data retrieved by the feature ++ tested and MATCH reference data supplied by input. ++ pointer_to_value Converter making a pointer suitable for the ++ feature tested from the data holding type. ++ initialize_value Initializer for the data holder to use ahead of ++ each call to the feature tested. ++ ++ It is up to the source including this skeleton whether the individual ++ callable objects are going to be macros or actual functions. ++ ++ See tst-*scanf-format-*.c for usage examples. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++/* Tweak our environment according to any TYPE_T_UNSIGNED_P setting ++ supplied by the individual test case. */ ++#ifndef TYPE_T_UNSIGNED_P ++# define TYPE_T_UNSIGNED_P 0 ++#endif ++#if TYPE_T_UNSIGNED_P ++# define UNSIGNED unsigned ++#else ++# define UNSIGNED ++#endif ++ ++/* Read and return a single character from standard input, returning ++ end-of-file or error status indication where applicable. */ ++ ++static int ++read_input (void) ++{ ++ int c = getchar (); ++ if (ferror (stdin)) ++ c = INPUT_ERROR; ++ else if (feof (stdin)) ++ c = INPUT_EOF; ++ return c; ++} ++ ++/* Consume a signed decimal integer supplied by READ_INPUT above, up to ++ the following ':' field separator which is removed from input, making ++ sure the value requested does not overflow the range of the data type ++ according to TYPE_T_UNSIGNED_P. ++ ++ Return the value retrieved and set ERRP to zero on success, otherwise ++ set ERRP to the error code. */ ++ ++static long long ++read_integer (int *errp) ++{ ++ bool m = false; ++ int ch; ++ ++ ch = read_input (); ++ if (ch == '-' || ch == '+') ++ { ++ m = ch == '-'; ++ ch = read_input (); ++ } ++ ++ if (ch == ':') ++ { ++ *errp = INPUT_FORMAT; ++ return 0; ++ } ++ ++ unsigned long long v = 0; ++ while (1) ++ { ++ unsigned long long v0 = v; ++ ++ if (isdigit (ch)) ++ { ++ v = 10 * v + (ch - '0'); ++ if (!(TYPE_T_UNSIGNED_P ++ || (v & ~((~0ULL) >> 1)) == 0 ++ || (m && v == ~((~0ULL) >> 1))) ++ || v < v0) ++ { ++ *errp = INPUT_OVERFLOW; ++ return 0; ++ } ++ } ++ else if (ch < 0) ++ { ++ *errp = ch; ++ return 0; ++ } ++ else if (ch != ':') ++ { ++ *errp = INPUT_FORMAT; ++ return 0; ++ } ++ else ++ break; ++ ++ ch = read_input (); ++ } ++ ++ *errp = 0; ++ return m ? -v : v; ++} ++ ++/* Return an error message corresponding to ERR. */ ++ ++static const char * ++get_error_message (int err) ++{ ++ switch (err) ++ { ++ case INPUT_EOF: ++ return "input line %zi: premature end of input"; ++ case INPUT_ERROR: ++ return "input line %zi: error reading input data: %m"; ++ case INPUT_FORMAT: ++ return "input line %zi: input data format error"; ++ case INPUT_OVERFLOW: ++ return "input line %zi: input data arithmetic overflow"; ++ case OUTPUT_TERM: ++ return "input line %zi: string termination missing from output"; ++ case OUTPUT_OVERRUN: ++ return "input line %zi: output data overrun"; ++ default: ++ return "input line %zi: internal test error"; ++ } ++} ++ ++/* Consume a record supplied by READ_INPUT above, according to '%' and ++ any assignment-suppressing character '*', followed by any width W, ++ any length modifier L, and conversion C, all already provided in FMT ++ (along with trailing "%lln" implicitly appended by the caller) and ++ removed from input along with the following ':' field separator. ++ For convenience the last character of conversion C is supplied as ++ the F parameter. ++ ++ Record formats consumed: ++ ++ %*:::: ++ %*:::: ++ %:::: ++ %:::: ++ %*:::: ++ %*:::: ++ %::::: ++ %::::: ++ ++ Verify that the 'scanf' family function under test returned RESULT, ++ that the "%lln" conversion recorded COUNT characters or has not been ++ executed leaving the value at -1 as applicable, and where executed ++ that the conversion requested produced output matching MATCH. ++ ++ Return 0 on success, -1 on failure. */ ++ ++static int ++do_scanf (char f, char *fmt) ++{ ++ bool value_match = true; ++ bool count_match = true; ++ long long count = -1; ++ bool match = true; ++ long long result; ++ long long r; ++ long long c; ++ type_t val; ++ int err; ++ int ch; ++ ++ initialize_value (val); ++ /* Make sure it's been committed. */ ++ __asm__ ("" : : : "memory"); ++ ++ if (fmt[1] == '*') ++ result = scanf_under_test (fmt, &count); ++ else ++ result = scanf_under_test (fmt, pointer_to_value (val), &count); ++ if (result < 0) ++ FAIL_RET (get_error_message (result), line); ++ ++ do ++ ch = read_input (); ++ while (ch != ':' && ch != INPUT_ERROR && ch != INPUT_EOF); ++ if (ch != ':') ++ FAIL_RET (get_error_message (ch), line); ++ ++ r = read_integer (&err); ++ if (err < 0) ++ FAIL_RET (get_error_message (err), line); ++ match &= r == result; ++ ++ c = read_integer (&err); ++ if (err < 0) ++ FAIL_RET (get_error_message (err), line); ++ match &= (count_match = c == count); ++ ++ if (r > 0) ++ { ++ match &= (value_match = verify_input (f, val, count, &err)); ++ if (err < 0) ++ FAIL_RET (get_error_message (err), line); ++ } ++ ++ ch = read_input (); ++ if (ch != '\n') ++ FAIL_RET (get_error_message (ch == INPUT_ERROR || ch == INPUT_EOF ++ ? ch : INPUT_FORMAT), line); ++ ++ if (!match) ++ { ++ if (r != result) ++ FAIL ("input line %zi: input assignment count mismatch: %lli", ++ line, result); ++ if (!count_match) ++ FAIL ("input line %zi: input character count mismatch: %lli", ++ line, count); ++ if (!value_match) ++ FAIL ("input line %zi: input value mismatch", line); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++/* Consume a list of input records line by line supplied by READ_INPUT ++ above, discarding any that begin with the '#' line comment designator ++ and interpreting the initial part of the remaining ones from leading ++ '%' up to the first ':' field separator, which is removed from input, ++ by appending "%lln" to the part retrieved and handing over along with ++ the rest of input line to read to DO_SCANF above. Terminate upon the ++ end of input or the first processing error encountered. ++ ++ See the top of this file for the definitions that have to be ++ provided by the source including this skeleton. */ ++ ++int ++do_test (void) ++{ ++ size_t fmt_size = 0; ++ char *fmt = NULL; ++ ++ mtrace (); ++ ++ int result = 0; ++ do ++ { ++ size_t i = 0; ++ int ch = 0; ++ char f; ++ ++ line++; ++ do ++ { ++ f = ch; ++ ch = read_input (); ++ if ((i == 0 && ch == '#') || ch == INPUT_EOF || ch == INPUT_ERROR) ++ break; ++ if (i == fmt_size) ++ { ++ fmt_size += SIZE_CHUNK; ++ fmt = xrealloc (fmt, fmt_size); ++ } ++ fmt[i++] = ch; ++ } ++ while (ch != ':'); ++ if (ch == INPUT_EOF && i == 0) ++ { ++ if (line == 1) ++ { ++ FAIL ("input line %zi: empty input", line); ++ result = -1; ++ } ++ break; ++ } ++ if (ch == INPUT_ERROR) ++ { ++ FAIL ("input line %zi: error reading format string: %m", line); ++ result = -1; ++ break; ++ } ++ if (ch == '#') ++ { ++ do ++ ch = read_input (); ++ while (ch != '\n' && ch != INPUT_EOF && ch != INPUT_ERROR); ++ if (ch == '\n') ++ continue; ++ ++ if (ch == INPUT_EOF) ++ FAIL ("input line %zi: premature end of input reading comment", ++ line); ++ else ++ FAIL ("input line %zi: error reading comment: %m", line); ++ result = -1; ++ break; ++ } ++ if (ch != ':' || i < 3 || fmt[0] != '%') ++ { ++ FAIL ("input line %zi: format string format error: \"%.*s\"", line, ++ (int) (i - 1), fmt); ++ result = -1; ++ break; ++ } ++ ++ if (i + 4 > fmt_size) ++ { ++ fmt_size += SIZE_CHUNK; ++ fmt = xrealloc (fmt, fmt_size); ++ } ++ fmt[i - 1] = '%'; ++ fmt[i++] = 'l'; ++ fmt[i++] = 'l'; ++ fmt[i++] = 'n'; ++ fmt[i++] = '\0'; ++ ++ result = do_scanf (f, fmt); ++ } ++ while (result == 0); ++ ++ free (fmt); ++ return result == 0 ? EXIT_SUCCESS : EXIT_FAILURE; ++} ++ ++/* Interpose 'dladdr' with a stub to speed up malloc tracing. */ ++ ++int ++dladdr (const void *addr, Dl_info *info) ++{ ++ return 0; ++} ++ ++#include +diff --git a/stdio-common/tst-scanf-format-skeleton.h b/stdio-common/tst-scanf-format-skeleton.h +new file mode 100644 +index 0000000000000000..a34429f5815488f8 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-skeleton.h +@@ -0,0 +1,40 @@ ++/* Test skeleton declarations for formatted scanf input. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++ ++/* Amount dynamic memory allocations are increased by. */ ++#define SIZE_CHUNK 32 ++ ++/* Error codes for use by the tests. */ ++enum ++{ ++ INPUT_EOF = -1, /* Premature end of input. */ ++ INPUT_ERROR = -2, /* System error reading input data. */ ++ INPUT_FORMAT = -3, /* Input data format error. */ ++ INPUT_OVERFLOW = -4, /* Input data arithmetic overflow. */ ++ OUTPUT_TERM = -5, /* String termination missing from output. */ ++ OUTPUT_OVERRUN = -6 /* Output data overrun. */ ++}; ++ ++/* Input data retrieval handlers made available to individual tests. */ ++static long long read_integer (int *); ++static int read_input (void); ++ ++/* Input data line number tracker. */ ++static size_t line; +diff --git a/stdio-common/tst-scanf-format-uchar-b.input b/stdio-common/tst-scanf-format-uchar-b.input +new file mode 100644 +index 0000000000000000..e4074425ef8f088c +--- /dev/null ++++ b/stdio-common/tst-scanf-format-uchar-b.input +@@ -0,0 +1,644 @@ ++%hhb::0:-1: ++%*hhb::0:-1: ++%hhb:-1111011:1:8:133: ++%*hhb:-1111011:0:8: ++%hhb:-0B1111011:1:10:133: ++%*hhb:-0B1111011:0:10: ++%hhb:-0b1111011:1:10:133: ++%*hhb:-0b1111011:0:10: ++%hhb:-1:1:2:255: ++%*hhb:-1:0:2: ++%hhb:-0B1:1:4:255: ++%*hhb:-0B1:0:4: ++%hhb:-0b1:1:4:255: ++%*hhb:-0b1:0:4: ++%hhb:-0:1:2:0: ++%*hhb:-0:0:2: ++%hhb:-0B0:1:4:0: ++%*hhb:-0B0:0:4: ++%hhb:-0b0:1:4:0: ++%*hhb:-0b0:0:4: ++%hhb:0:1:1:0: ++%*hhb:0:0:1: ++%hhb:0B0:1:3:0: ++%*hhb:0B0:0:3: ++%hhb:0b0:1:3:0: ++%*hhb:0b0:0:3: ++%hhb:1:1:1:1: ++%*hhb:1:0:1: ++%hhb:0B1:1:3:1: ++%*hhb:0B1:0:3: ++%hhb:0b1:1:3:1: ++%*hhb:0b1:0:3: ++%hhb:101010:1:6:42: ++%*hhb:101010:0:6: ++%hhb:0B101010:1:8:42: ++%*hhb:0B101010:0:8: ++%hhb:0b101010:1:8:42: ++%*hhb:0b101010:0:8: ++%hhb:11111111:1:8:255: ++%*hhb:11111111:0:8: ++%hhb:0B11111111:1:10:255: ++%*hhb:0B11111111:0:10: ++%hhb:0b11111111:1:10:255: ++%*hhb:0b11111111:0:10: ++%hhb:100000000:1:9:0: ++%*hhb:100000000:0:9: ++%hhb:0B100000000:1:11:0: ++%*hhb:0B100000000:0:11: ++%hhb:0b100000000:1:11:0: ++%*hhb:0b100000000:0:11: ++%hhb:100101001:1:9:41: ++%*hhb:100101001:0:9: ++%hhb:0B100101001:1:11:41: ++%*hhb:0B100101001:0:11: ++%hhb:0b100101001:1:11:41: ++%*hhb:0b100101001:0:11: ++%hhb:+0:1:2:0: ++%*hhb:+0:0:2: ++%hhb:+0B0:1:4:0: ++%*hhb:+0B0:0:4: ++%hhb:+0b0:1:4:0: ++%*hhb:+0b0:0:4: ++%hhb:+1:1:2:1: ++%*hhb:+1:0:2: ++%hhb:+0B1:1:4:1: ++%*hhb:+0B1:0:4: ++%hhb:+0b1:1:4:1: ++%*hhb:+0b1:0:4: ++%hhb:+101010:1:7:42: ++%*hhb:+101010:0:7: ++%hhb:+0B101010:1:9:42: ++%*hhb:+0B101010:0:9: ++%hhb:+0b101010:1:9:42: ++%*hhb:+0b101010:0:9: ++%hhb:+11111111:1:9:255: ++%*hhb:+11111111:0:9: ++%hhb:+0B11111111:1:11:255: ++%*hhb:+0B11111111:0:11: ++%hhb:+0b11111111:1:11:255: ++%*hhb:+0b11111111:0:11: ++%hhb:+100000000:1:10:0: ++%*hhb:+100000000:0:10: ++%hhb:+0B100000000:1:12:0: ++%*hhb:+0B100000000:0:12: ++%hhb:+0b100000000:1:12:0: ++%*hhb:+0b100000000:0:12: ++%hhb:+100101001:1:10:41: ++%*hhb:+100101001:0:10: ++%hhb:+0B100101001:1:12:41: ++%*hhb:+0B100101001:0:12: ++%hhb:+0b100101001:1:12:41: ++%*hhb:+0b100101001:0:12: ++%1hhb::0:-1: ++%*1hhb::0:-1: ++%1hhb:-1111011:0:-1: ++%*1hhb:-1111011:0:-1: ++%1hhb:-0B1111011:0:-1: ++%*1hhb:-0B1111011:0:-1: ++%1hhb:-0b1111011:0:-1: ++%*1hhb:-0b1111011:0:-1: ++%1hhb:-1:0:-1: ++%*1hhb:-1:0:-1: ++%1hhb:-0B1:0:-1: ++%*1hhb:-0B1:0:-1: ++%1hhb:-0b1:0:-1: ++%*1hhb:-0b1:0:-1: ++%1hhb:-0:0:-1: ++%*1hhb:-0:0:-1: ++%1hhb:-0B0:0:-1: ++%*1hhb:-0B0:0:-1: ++%1hhb:-0b0:0:-1: ++%*1hhb:-0b0:0:-1: ++%1hhb:0:1:1:0: ++%*1hhb:0:0:1: ++%1hhb:0B0:1:1:0: ++%*1hhb:0B0:0:1: ++%1hhb:0b0:1:1:0: ++%*1hhb:0b0:0:1: ++%1hhb:1:1:1:1: ++%*1hhb:1:0:1: ++%1hhb:0B1:1:1:0: ++%*1hhb:0B1:0:1: ++%1hhb:0b1:1:1:0: ++%*1hhb:0b1:0:1: ++%1hhb:101010:1:1:1: ++%*1hhb:101010:0:1: ++%1hhb:0B101010:1:1:0: ++%*1hhb:0B101010:0:1: ++%1hhb:0b101010:1:1:0: ++%*1hhb:0b101010:0:1: ++%1hhb:11111111:1:1:1: ++%*1hhb:11111111:0:1: ++%1hhb:0B11111111:1:1:0: ++%*1hhb:0B11111111:0:1: ++%1hhb:0b11111111:1:1:0: ++%*1hhb:0b11111111:0:1: ++%1hhb:100000000:1:1:1: ++%*1hhb:100000000:0:1: ++%1hhb:0B100000000:1:1:0: ++%*1hhb:0B100000000:0:1: ++%1hhb:0b100000000:1:1:0: ++%*1hhb:0b100000000:0:1: ++%1hhb:100101001:1:1:1: ++%*1hhb:100101001:0:1: ++%1hhb:0B100101001:1:1:0: ++%*1hhb:0B100101001:0:1: ++%1hhb:0b100101001:1:1:0: ++%*1hhb:0b100101001:0:1: ++%1hhb:+0:0:-1: ++%*1hhb:+0:0:-1: ++%1hhb:+0B0:0:-1: ++%*1hhb:+0B0:0:-1: ++%1hhb:+0b0:0:-1: ++%*1hhb:+0b0:0:-1: ++%1hhb:+1:0:-1: ++%*1hhb:+1:0:-1: ++%1hhb:+0B1:0:-1: ++%*1hhb:+0B1:0:-1: ++%1hhb:+0b1:0:-1: ++%*1hhb:+0b1:0:-1: ++%1hhb:+101010:0:-1: ++%*1hhb:+101010:0:-1: ++%1hhb:+0B101010:0:-1: ++%*1hhb:+0B101010:0:-1: ++%1hhb:+0b101010:0:-1: ++%*1hhb:+0b101010:0:-1: ++%1hhb:+11111111:0:-1: ++%*1hhb:+11111111:0:-1: ++%1hhb:+0B11111111:0:-1: ++%*1hhb:+0B11111111:0:-1: ++%1hhb:+0b11111111:0:-1: ++%*1hhb:+0b11111111:0:-1: ++%1hhb:+100000000:0:-1: ++%*1hhb:+100000000:0:-1: ++%1hhb:+0B100000000:0:-1: ++%*1hhb:+0B100000000:0:-1: ++%1hhb:+0b100000000:0:-1: ++%*1hhb:+0b100000000:0:-1: ++%1hhb:+100101001:0:-1: ++%*1hhb:+100101001:0:-1: ++%1hhb:+0B100101001:0:-1: ++%*1hhb:+0B100101001:0:-1: ++%1hhb:+0b100101001:0:-1: ++%*1hhb:+0b100101001:0:-1: ++%2hhb::0:-1: ++%*2hhb::0:-1: ++%2hhb:-1111011:1:2:255: ++%*2hhb:-1111011:0:2: ++%2hhb:-0B1111011:1:2:0: ++%*2hhb:-0B1111011:0:2: ++%2hhb:-0b1111011:1:2:0: ++%*2hhb:-0b1111011:0:2: ++%2hhb:-1:1:2:255: ++%*2hhb:-1:0:2: ++%2hhb:-0B1:1:2:0: ++%*2hhb:-0B1:0:2: ++%2hhb:-0b1:1:2:0: ++%*2hhb:-0b1:0:2: ++%2hhb:-0:1:2:0: ++%*2hhb:-0:0:2: ++%2hhb:-0B0:1:2:0: ++%*2hhb:-0B0:0:2: ++%2hhb:-0b0:1:2:0: ++%*2hhb:-0b0:0:2: ++%2hhb:0:1:1:0: ++%*2hhb:0:0:1: ++# BZ12701 %2hhb:0B0:0:-1: ++# BZ12701 %*2hhb:0B0:0:-1: ++# BZ12701 %2hhb:0b0:0:-1: ++# BZ12701 %*2hhb:0b0:0:-1: ++%2hhb:1:1:1:1: ++%*2hhb:1:0:1: ++# BZ12701 %2hhb:0B1:0:-1: ++# BZ12701 %*2hhb:0B1:0:-1: ++# BZ12701 %2hhb:0b1:0:-1: ++# BZ12701 %*2hhb:0b1:0:-1: ++%2hhb:101010:1:2:2: ++%*2hhb:101010:0:2: ++# BZ12701 %2hhb:0B101010:0:-1: ++# BZ12701 %*2hhb:0B101010:0:-1: ++# BZ12701 %2hhb:0b101010:0:-1: ++# BZ12701 %*2hhb:0b101010:0:-1: ++%2hhb:11111111:1:2:3: ++%*2hhb:11111111:0:2: ++# BZ12701 %2hhb:0B11111111:0:-1: ++# BZ12701 %*2hhb:0B11111111:0:-1: ++# BZ12701 %2hhb:0b11111111:0:-1: ++# BZ12701 %*2hhb:0b11111111:0:-1: ++%2hhb:100000000:1:2:2: ++%*2hhb:100000000:0:2: ++# BZ12701 %2hhb:0B100000000:0:-1: ++# BZ12701 %*2hhb:0B100000000:0:-1: ++# BZ12701 %2hhb:0b100000000:0:-1: ++# BZ12701 %*2hhb:0b100000000:0:-1: ++%2hhb:100101001:1:2:2: ++%*2hhb:100101001:0:2: ++# BZ12701 %2hhb:0B100101001:0:-1: ++# BZ12701 %*2hhb:0B100101001:0:-1: ++# BZ12701 %2hhb:0b100101001:0:-1: ++# BZ12701 %*2hhb:0b100101001:0:-1: ++%2hhb:+0:1:2:0: ++%*2hhb:+0:0:2: ++%2hhb:+0B0:1:2:0: ++%*2hhb:+0B0:0:2: ++%2hhb:+0b0:1:2:0: ++%*2hhb:+0b0:0:2: ++%2hhb:+1:1:2:1: ++%*2hhb:+1:0:2: ++%2hhb:+0B1:1:2:0: ++%*2hhb:+0B1:0:2: ++%2hhb:+0b1:1:2:0: ++%*2hhb:+0b1:0:2: ++%2hhb:+101010:1:2:1: ++%*2hhb:+101010:0:2: ++%2hhb:+0B101010:1:2:0: ++%*2hhb:+0B101010:0:2: ++%2hhb:+0b101010:1:2:0: ++%*2hhb:+0b101010:0:2: ++%2hhb:+11111111:1:2:1: ++%*2hhb:+11111111:0:2: ++%2hhb:+0B11111111:1:2:0: ++%*2hhb:+0B11111111:0:2: ++%2hhb:+0b11111111:1:2:0: ++%*2hhb:+0b11111111:0:2: ++%2hhb:+100000000:1:2:1: ++%*2hhb:+100000000:0:2: ++%2hhb:+0B100000000:1:2:0: ++%*2hhb:+0B100000000:0:2: ++%2hhb:+0b100000000:1:2:0: ++%*2hhb:+0b100000000:0:2: ++%2hhb:+100101001:1:2:1: ++%*2hhb:+100101001:0:2: ++%2hhb:+0B100101001:1:2:0: ++%*2hhb:+0B100101001:0:2: ++%2hhb:+0b100101001:1:2:0: ++%*2hhb:+0b100101001:0:2: ++%3hhb::0:-1: ++%*3hhb::0:-1: ++%3hhb:-1111011:1:3:253: ++%*3hhb:-1111011:0:3: ++# BZ12701 %3hhb:-0B1111011:0:-1: ++# BZ12701 %*3hhb:-0B1111011:0:-1: ++# BZ12701 %3hhb:-0b1111011:0:-1: ++# BZ12701 %*3hhb:-0b1111011:0:-1: ++%3hhb:-1:1:2:255: ++%*3hhb:-1:0:2: ++# BZ12701 %3hhb:-0B1:0:-1: ++# BZ12701 %*3hhb:-0B1:0:-1: ++# BZ12701 %3hhb:-0b1:0:-1: ++# BZ12701 %*3hhb:-0b1:0:-1: ++%3hhb:-0:1:2:0: ++%*3hhb:-0:0:2: ++# BZ12701 %3hhb:-0B0:0:-1: ++# BZ12701 %*3hhb:-0B0:0:-1: ++# BZ12701 %3hhb:-0b0:0:-1: ++# BZ12701 %*3hhb:-0b0:0:-1: ++%3hhb:0:1:1:0: ++%*3hhb:0:0:1: ++%3hhb:0B0:1:3:0: ++%*3hhb:0B0:0:3: ++%3hhb:0b0:1:3:0: ++%*3hhb:0b0:0:3: ++%3hhb:1:1:1:1: ++%*3hhb:1:0:1: ++%3hhb:0B1:1:3:1: ++%*3hhb:0B1:0:3: ++%3hhb:0b1:1:3:1: ++%*3hhb:0b1:0:3: ++%3hhb:101010:1:3:5: ++%*3hhb:101010:0:3: ++%3hhb:0B101010:1:3:1: ++%*3hhb:0B101010:0:3: ++%3hhb:0b101010:1:3:1: ++%*3hhb:0b101010:0:3: ++%3hhb:11111111:1:3:7: ++%*3hhb:11111111:0:3: ++%3hhb:0B11111111:1:3:1: ++%*3hhb:0B11111111:0:3: ++%3hhb:0b11111111:1:3:1: ++%*3hhb:0b11111111:0:3: ++%3hhb:100000000:1:3:4: ++%*3hhb:100000000:0:3: ++%3hhb:0B100000000:1:3:1: ++%*3hhb:0B100000000:0:3: ++%3hhb:0b100000000:1:3:1: ++%*3hhb:0b100000000:0:3: ++%3hhb:100101001:1:3:4: ++%*3hhb:100101001:0:3: ++%3hhb:0B100101001:1:3:1: ++%*3hhb:0B100101001:0:3: ++%3hhb:0b100101001:1:3:1: ++%*3hhb:0b100101001:0:3: ++%3hhb:+0:1:2:0: ++%*3hhb:+0:0:2: ++# BZ12701 %3hhb:+0B0:0:-1: ++# BZ12701 %*3hhb:+0B0:0:-1: ++# BZ12701 %3hhb:+0b0:0:-1: ++# BZ12701 %*3hhb:+0b0:0:-1: ++%3hhb:+1:1:2:1: ++%*3hhb:+1:0:2: ++# BZ12701 %3hhb:+0B1:0:-1: ++# BZ12701 %*3hhb:+0B1:0:-1: ++# BZ12701 %3hhb:+0b1:0:-1: ++# BZ12701 %*3hhb:+0b1:0:-1: ++%3hhb:+101010:1:3:2: ++%*3hhb:+101010:0:3: ++# BZ12701 %3hhb:+0B101010:0:-1: ++# BZ12701 %*3hhb:+0B101010:0:-1: ++# BZ12701 %3hhb:+0b101010:0:-1: ++# BZ12701 %*3hhb:+0b101010:0:-1: ++%3hhb:+11111111:1:3:3: ++%*3hhb:+11111111:0:3: ++# BZ12701 %3hhb:+0B11111111:0:-1: ++# BZ12701 %*3hhb:+0B11111111:0:-1: ++# BZ12701 %3hhb:+0b11111111:0:-1: ++# BZ12701 %*3hhb:+0b11111111:0:-1: ++%3hhb:+100000000:1:3:2: ++%*3hhb:+100000000:0:3: ++# BZ12701 %3hhb:+0B100000000:0:-1: ++# BZ12701 %*3hhb:+0B100000000:0:-1: ++# BZ12701 %3hhb:+0b100000000:0:-1: ++# BZ12701 %*3hhb:+0b100000000:0:-1: ++%3hhb:+100101001:1:3:2: ++%*3hhb:+100101001:0:3: ++# BZ12701 %3hhb:+0B100101001:0:-1: ++# BZ12701 %*3hhb:+0B100101001:0:-1: ++# BZ12701 %3hhb:+0b100101001:0:-1: ++# BZ12701 %*3hhb:+0b100101001:0:-1: ++%5hhb::0:-1: ++%*5hhb::0:-1: ++%5hhb:-1111011:1:5:241: ++%*5hhb:-1111011:0:5: ++%5hhb:-0B1111011:1:5:253: ++%*5hhb:-0B1111011:0:5: ++%5hhb:-0b1111011:1:5:253: ++%*5hhb:-0b1111011:0:5: ++%5hhb:-1:1:2:255: ++%*5hhb:-1:0:2: ++%5hhb:-0B1:1:4:255: ++%*5hhb:-0B1:0:4: ++%5hhb:-0b1:1:4:255: ++%*5hhb:-0b1:0:4: ++%5hhb:-0:1:2:0: ++%*5hhb:-0:0:2: ++%5hhb:-0B0:1:4:0: ++%*5hhb:-0B0:0:4: ++%5hhb:-0b0:1:4:0: ++%*5hhb:-0b0:0:4: ++%5hhb:0:1:1:0: ++%*5hhb:0:0:1: ++%5hhb:0B0:1:3:0: ++%*5hhb:0B0:0:3: ++%5hhb:0b0:1:3:0: ++%*5hhb:0b0:0:3: ++%5hhb:1:1:1:1: ++%*5hhb:1:0:1: ++%5hhb:0B1:1:3:1: ++%*5hhb:0B1:0:3: ++%5hhb:0b1:1:3:1: ++%*5hhb:0b1:0:3: ++%5hhb:101010:1:5:21: ++%*5hhb:101010:0:5: ++%5hhb:0B101010:1:5:5: ++%*5hhb:0B101010:0:5: ++%5hhb:0b101010:1:5:5: ++%*5hhb:0b101010:0:5: ++%5hhb:11111111:1:5:31: ++%*5hhb:11111111:0:5: ++%5hhb:0B11111111:1:5:7: ++%*5hhb:0B11111111:0:5: ++%5hhb:0b11111111:1:5:7: ++%*5hhb:0b11111111:0:5: ++%5hhb:100000000:1:5:16: ++%*5hhb:100000000:0:5: ++%5hhb:0B100000000:1:5:4: ++%*5hhb:0B100000000:0:5: ++%5hhb:0b100000000:1:5:4: ++%*5hhb:0b100000000:0:5: ++%5hhb:100101001:1:5:18: ++%*5hhb:100101001:0:5: ++%5hhb:0B100101001:1:5:4: ++%*5hhb:0B100101001:0:5: ++%5hhb:0b100101001:1:5:4: ++%*5hhb:0b100101001:0:5: ++%5hhb:+0:1:2:0: ++%*5hhb:+0:0:2: ++%5hhb:+0B0:1:4:0: ++%*5hhb:+0B0:0:4: ++%5hhb:+0b0:1:4:0: ++%*5hhb:+0b0:0:4: ++%5hhb:+1:1:2:1: ++%*5hhb:+1:0:2: ++%5hhb:+0B1:1:4:1: ++%*5hhb:+0B1:0:4: ++%5hhb:+0b1:1:4:1: ++%*5hhb:+0b1:0:4: ++%5hhb:+101010:1:5:10: ++%*5hhb:+101010:0:5: ++%5hhb:+0B101010:1:5:2: ++%*5hhb:+0B101010:0:5: ++%5hhb:+0b101010:1:5:2: ++%*5hhb:+0b101010:0:5: ++%5hhb:+11111111:1:5:15: ++%*5hhb:+11111111:0:5: ++%5hhb:+0B11111111:1:5:3: ++%*5hhb:+0B11111111:0:5: ++%5hhb:+0b11111111:1:5:3: ++%*5hhb:+0b11111111:0:5: ++%5hhb:+100000000:1:5:8: ++%*5hhb:+100000000:0:5: ++%5hhb:+0B100000000:1:5:2: ++%*5hhb:+0B100000000:0:5: ++%5hhb:+0b100000000:1:5:2: ++%*5hhb:+0b100000000:0:5: ++%5hhb:+100101001:1:5:9: ++%*5hhb:+100101001:0:5: ++%5hhb:+0B100101001:1:5:2: ++%*5hhb:+0B100101001:0:5: ++%5hhb:+0b100101001:1:5:2: ++%*5hhb:+0b100101001:0:5: ++%2hhb: :0:-1: ++%*2hhb: :0:-1: ++%2hhb: -1111011:1:3:255: ++%*2hhb: -1111011:0:3: ++%2hhb: -0B1111011:1:3:0: ++%*2hhb: -0B1111011:0:3: ++%2hhb: -0b1111011:1:3:0: ++%*2hhb: -0b1111011:0:3: ++%2hhb: -1:1:3:255: ++%*2hhb: -1:0:3: ++%2hhb: -0B1:1:3:0: ++%*2hhb: -0B1:0:3: ++%2hhb: -0b1:1:3:0: ++%*2hhb: -0b1:0:3: ++%2hhb: -0:1:3:0: ++%*2hhb: -0:0:3: ++%2hhb: -0B0:1:3:0: ++%*2hhb: -0B0:0:3: ++%2hhb: -0b0:1:3:0: ++%*2hhb: -0b0:0:3: ++%2hhb: 0:1:2:0: ++%*2hhb: 0:0:2: ++# BZ12701 %2hhb: 0B0:0:-1: ++# BZ12701 %*2hhb: 0B0:0:-1: ++# BZ12701 %2hhb: 0b0:0:-1: ++# BZ12701 %*2hhb: 0b0:0:-1: ++%2hhb: 1:1:2:1: ++%*2hhb: 1:0:2: ++# BZ12701 %2hhb: 0B1:0:-1: ++# BZ12701 %*2hhb: 0B1:0:-1: ++# BZ12701 %2hhb: 0b1:0:-1: ++# BZ12701 %*2hhb: 0b1:0:-1: ++%2hhb: 101010:1:3:2: ++%*2hhb: 101010:0:3: ++# BZ12701 %2hhb: 0B101010:0:-1: ++# BZ12701 %*2hhb: 0B101010:0:-1: ++# BZ12701 %2hhb: 0b101010:0:-1: ++# BZ12701 %*2hhb: 0b101010:0:-1: ++%2hhb: 11111111:1:3:3: ++%*2hhb: 11111111:0:3: ++# BZ12701 %2hhb: 0B11111111:0:-1: ++# BZ12701 %*2hhb: 0B11111111:0:-1: ++# BZ12701 %2hhb: 0b11111111:0:-1: ++# BZ12701 %*2hhb: 0b11111111:0:-1: ++%2hhb: 100000000:1:3:2: ++%*2hhb: 100000000:0:3: ++# BZ12701 %2hhb: 0B100000000:0:-1: ++# BZ12701 %*2hhb: 0B100000000:0:-1: ++# BZ12701 %2hhb: 0b100000000:0:-1: ++# BZ12701 %*2hhb: 0b100000000:0:-1: ++%2hhb: 100101001:1:3:2: ++%*2hhb: 100101001:0:3: ++# BZ12701 %2hhb: 0B100101001:0:-1: ++# BZ12701 %*2hhb: 0B100101001:0:-1: ++# BZ12701 %2hhb: 0b100101001:0:-1: ++# BZ12701 %*2hhb: 0b100101001:0:-1: ++%2hhb: +0:1:3:0: ++%*2hhb: +0:0:3: ++%2hhb: +0B0:1:3:0: ++%*2hhb: +0B0:0:3: ++%2hhb: +0b0:1:3:0: ++%*2hhb: +0b0:0:3: ++%2hhb: +1:1:3:1: ++%*2hhb: +1:0:3: ++%2hhb: +0B1:1:3:0: ++%*2hhb: +0B1:0:3: ++%2hhb: +0b1:1:3:0: ++%*2hhb: +0b1:0:3: ++%2hhb: +101010:1:3:1: ++%*2hhb: +101010:0:3: ++%2hhb: +0B101010:1:3:0: ++%*2hhb: +0B101010:0:3: ++%2hhb: +0b101010:1:3:0: ++%*2hhb: +0b101010:0:3: ++%2hhb: +11111111:1:3:1: ++%*2hhb: +11111111:0:3: ++%2hhb: +0B11111111:1:3:0: ++%*2hhb: +0B11111111:0:3: ++%2hhb: +0b11111111:1:3:0: ++%*2hhb: +0b11111111:0:3: ++%2hhb: +100000000:1:3:1: ++%*2hhb: +100000000:0:3: ++%2hhb: +0B100000000:1:3:0: ++%*2hhb: +0B100000000:0:3: ++%2hhb: +0b100000000:1:3:0: ++%*2hhb: +0b100000000:0:3: ++%2hhb: +100101001:1:3:1: ++%*2hhb: +100101001:0:3: ++%2hhb: +0B100101001:1:3:0: ++%*2hhb: +0B100101001:0:3: ++%2hhb: +0b100101001:1:3:0: ++%*2hhb: +0b100101001:0:3: ++%5hhb: :0:-1: ++%*5hhb: :0:-1: ++%5hhb: -1111011:1:6:241: ++%*5hhb: -1111011:0:6: ++%5hhb: -0B1111011:1:6:253: ++%*5hhb: -0B1111011:0:6: ++%5hhb: -0b1111011:1:6:253: ++%*5hhb: -0b1111011:0:6: ++%5hhb: -1:1:3:255: ++%*5hhb: -1:0:3: ++%5hhb: -0B1:1:5:255: ++%*5hhb: -0B1:0:5: ++%5hhb: -0b1:1:5:255: ++%*5hhb: -0b1:0:5: ++%5hhb: -0:1:3:0: ++%*5hhb: -0:0:3: ++%5hhb: -0B0:1:5:0: ++%*5hhb: -0B0:0:5: ++%5hhb: -0b0:1:5:0: ++%*5hhb: -0b0:0:5: ++%5hhb: 0:1:2:0: ++%*5hhb: 0:0:2: ++%5hhb: 0B0:1:4:0: ++%*5hhb: 0B0:0:4: ++%5hhb: 0b0:1:4:0: ++%*5hhb: 0b0:0:4: ++%5hhb: 1:1:2:1: ++%*5hhb: 1:0:2: ++%5hhb: 0B1:1:4:1: ++%*5hhb: 0B1:0:4: ++%5hhb: 0b1:1:4:1: ++%*5hhb: 0b1:0:4: ++%5hhb: 101010:1:6:21: ++%*5hhb: 101010:0:6: ++%5hhb: 0B101010:1:6:5: ++%*5hhb: 0B101010:0:6: ++%5hhb: 0b101010:1:6:5: ++%*5hhb: 0b101010:0:6: ++%5hhb: 11111111:1:6:31: ++%*5hhb: 11111111:0:6: ++%5hhb: 0B11111111:1:6:7: ++%*5hhb: 0B11111111:0:6: ++%5hhb: 0b11111111:1:6:7: ++%*5hhb: 0b11111111:0:6: ++%5hhb: 100000000:1:6:16: ++%*5hhb: 100000000:0:6: ++%5hhb: 0B100000000:1:6:4: ++%*5hhb: 0B100000000:0:6: ++%5hhb: 0b100000000:1:6:4: ++%*5hhb: 0b100000000:0:6: ++%5hhb: 100101001:1:6:18: ++%*5hhb: 100101001:0:6: ++%5hhb: 0B100101001:1:6:4: ++%*5hhb: 0B100101001:0:6: ++%5hhb: 0b100101001:1:6:4: ++%*5hhb: 0b100101001:0:6: ++%5hhb: +0:1:3:0: ++%*5hhb: +0:0:3: ++%5hhb: +0B0:1:5:0: ++%*5hhb: +0B0:0:5: ++%5hhb: +0b0:1:5:0: ++%*5hhb: +0b0:0:5: ++%5hhb: +1:1:3:1: ++%*5hhb: +1:0:3: ++%5hhb: +0B1:1:5:1: ++%*5hhb: +0B1:0:5: ++%5hhb: +0b1:1:5:1: ++%*5hhb: +0b1:0:5: ++%5hhb: +101010:1:6:10: ++%*5hhb: +101010:0:6: ++%5hhb: +0B101010:1:6:2: ++%*5hhb: +0B101010:0:6: ++%5hhb: +0b101010:1:6:2: ++%*5hhb: +0b101010:0:6: ++%5hhb: +11111111:1:6:15: ++%*5hhb: +11111111:0:6: ++%5hhb: +0B11111111:1:6:3: ++%*5hhb: +0B11111111:0:6: ++%5hhb: +0b11111111:1:6:3: ++%*5hhb: +0b11111111:0:6: ++%5hhb: +100000000:1:6:8: ++%*5hhb: +100000000:0:6: ++%5hhb: +0B100000000:1:6:2: ++%*5hhb: +0B100000000:0:6: ++%5hhb: +0b100000000:1:6:2: ++%*5hhb: +0b100000000:0:6: ++%5hhb: +100101001:1:6:9: ++%*5hhb: +100101001:0:6: ++%5hhb: +0B100101001:1:6:2: ++%*5hhb: +0B100101001:0:6: ++%5hhb: +0b100101001:1:6:2: ++%*5hhb: +0b100101001:0:6: +diff --git a/stdio-common/tst-scanf-format-uchar-o.input b/stdio-common/tst-scanf-format-uchar-o.input +new file mode 100644 +index 0000000000000000..904665f5ef1ca5ec +--- /dev/null ++++ b/stdio-common/tst-scanf-format-uchar-o.input +@@ -0,0 +1,434 @@ ++%hho::0:-1: ++%*hho::0:-1: ++%hho:-173:1:4:133: ++%*hho:-173:0:4: ++%hho:-0173:1:5:133: ++%*hho:-0173:0:5: ++%hho:-1:1:2:255: ++%*hho:-1:0:2: ++%hho:-01:1:3:255: ++%*hho:-01:0:3: ++%hho:-0:1:2:0: ++%*hho:-0:0:2: ++%hho:-00:1:3:0: ++%*hho:-00:0:3: ++%hho:0:1:1:0: ++%*hho:0:0:1: ++%hho:00:1:2:0: ++%*hho:00:0:2: ++%hho:1:1:1:1: ++%*hho:1:0:1: ++%hho:01:1:2:1: ++%*hho:01:0:2: ++%hho:52:1:2:42: ++%*hho:52:0:2: ++%hho:052:1:3:42: ++%*hho:052:0:3: ++%hho:377:1:3:255: ++%*hho:377:0:3: ++%hho:0377:1:4:255: ++%*hho:0377:0:4: ++%hho:400:1:3:0: ++%*hho:400:0:3: ++%hho:0400:1:4:0: ++%*hho:0400:0:4: ++%hho:451:1:3:41: ++%*hho:451:0:3: ++%hho:0451:1:4:41: ++%*hho:0451:0:4: ++%hho:+0:1:2:0: ++%*hho:+0:0:2: ++%hho:+00:1:3:0: ++%*hho:+00:0:3: ++%hho:+1:1:2:1: ++%*hho:+1:0:2: ++%hho:+01:1:3:1: ++%*hho:+01:0:3: ++%hho:+52:1:3:42: ++%*hho:+52:0:3: ++%hho:+052:1:4:42: ++%*hho:+052:0:4: ++%hho:+377:1:4:255: ++%*hho:+377:0:4: ++%hho:+0377:1:5:255: ++%*hho:+0377:0:5: ++%hho:+400:1:4:0: ++%*hho:+400:0:4: ++%hho:+0400:1:5:0: ++%*hho:+0400:0:5: ++%hho:+451:1:4:41: ++%*hho:+451:0:4: ++%hho:+0451:1:5:41: ++%*hho:+0451:0:5: ++%1hho::0:-1: ++%*1hho::0:-1: ++%1hho:-173:0:-1: ++%*1hho:-173:0:-1: ++%1hho:-0173:0:-1: ++%*1hho:-0173:0:-1: ++%1hho:-1:0:-1: ++%*1hho:-1:0:-1: ++%1hho:-01:0:-1: ++%*1hho:-01:0:-1: ++%1hho:-0:0:-1: ++%*1hho:-0:0:-1: ++%1hho:-00:0:-1: ++%*1hho:-00:0:-1: ++%1hho:0:1:1:0: ++%*1hho:0:0:1: ++%1hho:00:1:1:0: ++%*1hho:00:0:1: ++%1hho:1:1:1:1: ++%*1hho:1:0:1: ++%1hho:01:1:1:0: ++%*1hho:01:0:1: ++%1hho:52:1:1:5: ++%*1hho:52:0:1: ++%1hho:052:1:1:0: ++%*1hho:052:0:1: ++%1hho:377:1:1:3: ++%*1hho:377:0:1: ++%1hho:0377:1:1:0: ++%*1hho:0377:0:1: ++%1hho:400:1:1:4: ++%*1hho:400:0:1: ++%1hho:0400:1:1:0: ++%*1hho:0400:0:1: ++%1hho:451:1:1:4: ++%*1hho:451:0:1: ++%1hho:0451:1:1:0: ++%*1hho:0451:0:1: ++%1hho:+0:0:-1: ++%*1hho:+0:0:-1: ++%1hho:+00:0:-1: ++%*1hho:+00:0:-1: ++%1hho:+1:0:-1: ++%*1hho:+1:0:-1: ++%1hho:+01:0:-1: ++%*1hho:+01:0:-1: ++%1hho:+52:0:-1: ++%*1hho:+52:0:-1: ++%1hho:+052:0:-1: ++%*1hho:+052:0:-1: ++%1hho:+377:0:-1: ++%*1hho:+377:0:-1: ++%1hho:+0377:0:-1: ++%*1hho:+0377:0:-1: ++%1hho:+400:0:-1: ++%*1hho:+400:0:-1: ++%1hho:+0400:0:-1: ++%*1hho:+0400:0:-1: ++%1hho:+451:0:-1: ++%*1hho:+451:0:-1: ++%1hho:+0451:0:-1: ++%*1hho:+0451:0:-1: ++%2hho::0:-1: ++%*2hho::0:-1: ++%2hho:-173:1:2:255: ++%*2hho:-173:0:2: ++%2hho:-0173:1:2:0: ++%*2hho:-0173:0:2: ++%2hho:-1:1:2:255: ++%*2hho:-1:0:2: ++%2hho:-01:1:2:0: ++%*2hho:-01:0:2: ++%2hho:-0:1:2:0: ++%*2hho:-0:0:2: ++%2hho:-00:1:2:0: ++%*2hho:-00:0:2: ++%2hho:0:1:1:0: ++%*2hho:0:0:1: ++%2hho:00:1:2:0: ++%*2hho:00:0:2: ++%2hho:1:1:1:1: ++%*2hho:1:0:1: ++%2hho:01:1:2:1: ++%*2hho:01:0:2: ++%2hho:52:1:2:42: ++%*2hho:52:0:2: ++%2hho:052:1:2:5: ++%*2hho:052:0:2: ++%2hho:377:1:2:31: ++%*2hho:377:0:2: ++%2hho:0377:1:2:3: ++%*2hho:0377:0:2: ++%2hho:400:1:2:32: ++%*2hho:400:0:2: ++%2hho:0400:1:2:4: ++%*2hho:0400:0:2: ++%2hho:451:1:2:37: ++%*2hho:451:0:2: ++%2hho:0451:1:2:4: ++%*2hho:0451:0:2: ++%2hho:+0:1:2:0: ++%*2hho:+0:0:2: ++%2hho:+00:1:2:0: ++%*2hho:+00:0:2: ++%2hho:+1:1:2:1: ++%*2hho:+1:0:2: ++%2hho:+01:1:2:0: ++%*2hho:+01:0:2: ++%2hho:+52:1:2:5: ++%*2hho:+52:0:2: ++%2hho:+052:1:2:0: ++%*2hho:+052:0:2: ++%2hho:+377:1:2:3: ++%*2hho:+377:0:2: ++%2hho:+0377:1:2:0: ++%*2hho:+0377:0:2: ++%2hho:+400:1:2:4: ++%*2hho:+400:0:2: ++%2hho:+0400:1:2:0: ++%*2hho:+0400:0:2: ++%2hho:+451:1:2:4: ++%*2hho:+451:0:2: ++%2hho:+0451:1:2:0: ++%*2hho:+0451:0:2: ++%3hho::0:-1: ++%*3hho::0:-1: ++%3hho:-173:1:3:241: ++%*3hho:-173:0:3: ++%3hho:-0173:1:3:255: ++%*3hho:-0173:0:3: ++%3hho:-1:1:2:255: ++%*3hho:-1:0:2: ++%3hho:-01:1:3:255: ++%*3hho:-01:0:3: ++%3hho:-0:1:2:0: ++%*3hho:-0:0:2: ++%3hho:-00:1:3:0: ++%*3hho:-00:0:3: ++%3hho:0:1:1:0: ++%*3hho:0:0:1: ++%3hho:00:1:2:0: ++%*3hho:00:0:2: ++%3hho:1:1:1:1: ++%*3hho:1:0:1: ++%3hho:01:1:2:1: ++%*3hho:01:0:2: ++%3hho:52:1:2:42: ++%*3hho:52:0:2: ++%3hho:052:1:3:42: ++%*3hho:052:0:3: ++%3hho:377:1:3:255: ++%*3hho:377:0:3: ++%3hho:0377:1:3:31: ++%*3hho:0377:0:3: ++%3hho:400:1:3:0: ++%*3hho:400:0:3: ++%3hho:0400:1:3:32: ++%*3hho:0400:0:3: ++%3hho:451:1:3:41: ++%*3hho:451:0:3: ++%3hho:0451:1:3:37: ++%*3hho:0451:0:3: ++%3hho:+0:1:2:0: ++%*3hho:+0:0:2: ++%3hho:+00:1:3:0: ++%*3hho:+00:0:3: ++%3hho:+1:1:2:1: ++%*3hho:+1:0:2: ++%3hho:+01:1:3:1: ++%*3hho:+01:0:3: ++%3hho:+52:1:3:42: ++%*3hho:+52:0:3: ++%3hho:+052:1:3:5: ++%*3hho:+052:0:3: ++%3hho:+377:1:3:31: ++%*3hho:+377:0:3: ++%3hho:+0377:1:3:3: ++%*3hho:+0377:0:3: ++%3hho:+400:1:3:32: ++%*3hho:+400:0:3: ++%3hho:+0400:1:3:4: ++%*3hho:+0400:0:3: ++%3hho:+451:1:3:37: ++%*3hho:+451:0:3: ++%3hho:+0451:1:3:4: ++%*3hho:+0451:0:3: ++%5hho::0:-1: ++%*5hho::0:-1: ++%5hho:-173:1:4:133: ++%*5hho:-173:0:4: ++%5hho:-0173:1:5:133: ++%*5hho:-0173:0:5: ++%5hho:-1:1:2:255: ++%*5hho:-1:0:2: ++%5hho:-01:1:3:255: ++%*5hho:-01:0:3: ++%5hho:-0:1:2:0: ++%*5hho:-0:0:2: ++%5hho:-00:1:3:0: ++%*5hho:-00:0:3: ++%5hho:0:1:1:0: ++%*5hho:0:0:1: ++%5hho:00:1:2:0: ++%*5hho:00:0:2: ++%5hho:1:1:1:1: ++%*5hho:1:0:1: ++%5hho:01:1:2:1: ++%*5hho:01:0:2: ++%5hho:52:1:2:42: ++%*5hho:52:0:2: ++%5hho:052:1:3:42: ++%*5hho:052:0:3: ++%5hho:377:1:3:255: ++%*5hho:377:0:3: ++%5hho:0377:1:4:255: ++%*5hho:0377:0:4: ++%5hho:400:1:3:0: ++%*5hho:400:0:3: ++%5hho:0400:1:4:0: ++%*5hho:0400:0:4: ++%5hho:451:1:3:41: ++%*5hho:451:0:3: ++%5hho:0451:1:4:41: ++%*5hho:0451:0:4: ++%5hho:+0:1:2:0: ++%*5hho:+0:0:2: ++%5hho:+00:1:3:0: ++%*5hho:+00:0:3: ++%5hho:+1:1:2:1: ++%*5hho:+1:0:2: ++%5hho:+01:1:3:1: ++%*5hho:+01:0:3: ++%5hho:+52:1:3:42: ++%*5hho:+52:0:3: ++%5hho:+052:1:4:42: ++%*5hho:+052:0:4: ++%5hho:+377:1:4:255: ++%*5hho:+377:0:4: ++%5hho:+0377:1:5:255: ++%*5hho:+0377:0:5: ++%5hho:+400:1:4:0: ++%*5hho:+400:0:4: ++%5hho:+0400:1:5:0: ++%*5hho:+0400:0:5: ++%5hho:+451:1:4:41: ++%*5hho:+451:0:4: ++%5hho:+0451:1:5:41: ++%*5hho:+0451:0:5: ++%2hho: :0:-1: ++%*2hho: :0:-1: ++%2hho: -173:1:3:255: ++%*2hho: -173:0:3: ++%2hho: -0173:1:3:0: ++%*2hho: -0173:0:3: ++%2hho: -1:1:3:255: ++%*2hho: -1:0:3: ++%2hho: -01:1:3:0: ++%*2hho: -01:0:3: ++%2hho: -0:1:3:0: ++%*2hho: -0:0:3: ++%2hho: -00:1:3:0: ++%*2hho: -00:0:3: ++%2hho: 0:1:2:0: ++%*2hho: 0:0:2: ++%2hho: 00:1:3:0: ++%*2hho: 00:0:3: ++%2hho: 1:1:2:1: ++%*2hho: 1:0:2: ++%2hho: 01:1:3:1: ++%*2hho: 01:0:3: ++%2hho: 52:1:3:42: ++%*2hho: 52:0:3: ++%2hho: 052:1:3:5: ++%*2hho: 052:0:3: ++%2hho: 377:1:3:31: ++%*2hho: 377:0:3: ++%2hho: 0377:1:3:3: ++%*2hho: 0377:0:3: ++%2hho: 400:1:3:32: ++%*2hho: 400:0:3: ++%2hho: 0400:1:3:4: ++%*2hho: 0400:0:3: ++%2hho: 451:1:3:37: ++%*2hho: 451:0:3: ++%2hho: 0451:1:3:4: ++%*2hho: 0451:0:3: ++%2hho: +0:1:3:0: ++%*2hho: +0:0:3: ++%2hho: +00:1:3:0: ++%*2hho: +00:0:3: ++%2hho: +1:1:3:1: ++%*2hho: +1:0:3: ++%2hho: +01:1:3:0: ++%*2hho: +01:0:3: ++%2hho: +52:1:3:5: ++%*2hho: +52:0:3: ++%2hho: +052:1:3:0: ++%*2hho: +052:0:3: ++%2hho: +377:1:3:3: ++%*2hho: +377:0:3: ++%2hho: +0377:1:3:0: ++%*2hho: +0377:0:3: ++%2hho: +400:1:3:4: ++%*2hho: +400:0:3: ++%2hho: +0400:1:3:0: ++%*2hho: +0400:0:3: ++%2hho: +451:1:3:4: ++%*2hho: +451:0:3: ++%2hho: +0451:1:3:0: ++%*2hho: +0451:0:3: ++%5hho: :0:-1: ++%*5hho: :0:-1: ++%5hho: -173:1:5:133: ++%*5hho: -173:0:5: ++%5hho: -0173:1:6:133: ++%*5hho: -0173:0:6: ++%5hho: -1:1:3:255: ++%*5hho: -1:0:3: ++%5hho: -01:1:4:255: ++%*5hho: -01:0:4: ++%5hho: -0:1:3:0: ++%*5hho: -0:0:3: ++%5hho: -00:1:4:0: ++%*5hho: -00:0:4: ++%5hho: 0:1:2:0: ++%*5hho: 0:0:2: ++%5hho: 00:1:3:0: ++%*5hho: 00:0:3: ++%5hho: 1:1:2:1: ++%*5hho: 1:0:2: ++%5hho: 01:1:3:1: ++%*5hho: 01:0:3: ++%5hho: 52:1:3:42: ++%*5hho: 52:0:3: ++%5hho: 052:1:4:42: ++%*5hho: 052:0:4: ++%5hho: 377:1:4:255: ++%*5hho: 377:0:4: ++%5hho: 0377:1:5:255: ++%*5hho: 0377:0:5: ++%5hho: 400:1:4:0: ++%*5hho: 400:0:4: ++%5hho: 0400:1:5:0: ++%*5hho: 0400:0:5: ++%5hho: 451:1:4:41: ++%*5hho: 451:0:4: ++%5hho: 0451:1:5:41: ++%*5hho: 0451:0:5: ++%5hho: +0:1:3:0: ++%*5hho: +0:0:3: ++%5hho: +00:1:4:0: ++%*5hho: +00:0:4: ++%5hho: +1:1:3:1: ++%*5hho: +1:0:3: ++%5hho: +01:1:4:1: ++%*5hho: +01:0:4: ++%5hho: +52:1:4:42: ++%*5hho: +52:0:4: ++%5hho: +052:1:5:42: ++%*5hho: +052:0:5: ++%5hho: +377:1:5:255: ++%*5hho: +377:0:5: ++%5hho: +0377:1:6:255: ++%*5hho: +0377:0:6: ++%5hho: +400:1:5:0: ++%*5hho: +400:0:5: ++%5hho: +0400:1:6:0: ++%*5hho: +0400:0:6: ++%5hho: +451:1:5:41: ++%*5hho: +451:0:5: ++%5hho: +0451:1:6:41: ++%*5hho: +0451:0:6: +diff --git a/stdio-common/tst-scanf-format-uchar-u.input b/stdio-common/tst-scanf-format-uchar-u.input +new file mode 100644 +index 0000000000000000..f392aa55a8c9138d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-uchar-u.input +@@ -0,0 +1,224 @@ ++%hhu::0:-1: ++%*hhu::0:-1: ++%hhu:-123:1:4:133: ++%*hhu:-123:0:4: ++%hhu:-1:1:2:255: ++%*hhu:-1:0:2: ++%hhu:-0:1:2:0: ++%*hhu:-0:0:2: ++%hhu:0:1:1:0: ++%*hhu:0:0:1: ++%hhu:1:1:1:1: ++%*hhu:1:0:1: ++%hhu:42:1:2:42: ++%*hhu:42:0:2: ++%hhu:255:1:3:255: ++%*hhu:255:0:3: ++%hhu:256:1:3:0: ++%*hhu:256:0:3: ++%hhu:297:1:3:41: ++%*hhu:297:0:3: ++%hhu:+0:1:2:0: ++%*hhu:+0:0:2: ++%hhu:+1:1:2:1: ++%*hhu:+1:0:2: ++%hhu:+42:1:3:42: ++%*hhu:+42:0:3: ++%hhu:+255:1:4:255: ++%*hhu:+255:0:4: ++%hhu:+256:1:4:0: ++%*hhu:+256:0:4: ++%hhu:+297:1:4:41: ++%*hhu:+297:0:4: ++%1hhu::0:-1: ++%*1hhu::0:-1: ++%1hhu:-123:0:-1: ++%*1hhu:-123:0:-1: ++%1hhu:-1:0:-1: ++%*1hhu:-1:0:-1: ++%1hhu:-0:0:-1: ++%*1hhu:-0:0:-1: ++%1hhu:0:1:1:0: ++%*1hhu:0:0:1: ++%1hhu:1:1:1:1: ++%*1hhu:1:0:1: ++%1hhu:42:1:1:4: ++%*1hhu:42:0:1: ++%1hhu:255:1:1:2: ++%*1hhu:255:0:1: ++%1hhu:256:1:1:2: ++%*1hhu:256:0:1: ++%1hhu:297:1:1:2: ++%*1hhu:297:0:1: ++%1hhu:+0:0:-1: ++%*1hhu:+0:0:-1: ++%1hhu:+1:0:-1: ++%*1hhu:+1:0:-1: ++%1hhu:+42:0:-1: ++%*1hhu:+42:0:-1: ++%1hhu:+255:0:-1: ++%*1hhu:+255:0:-1: ++%1hhu:+256:0:-1: ++%*1hhu:+256:0:-1: ++%1hhu:+297:0:-1: ++%*1hhu:+297:0:-1: ++%2hhu::0:-1: ++%*2hhu::0:-1: ++%2hhu:-123:1:2:255: ++%*2hhu:-123:0:2: ++%2hhu:-1:1:2:255: ++%*2hhu:-1:0:2: ++%2hhu:-0:1:2:0: ++%*2hhu:-0:0:2: ++%2hhu:0:1:1:0: ++%*2hhu:0:0:1: ++%2hhu:1:1:1:1: ++%*2hhu:1:0:1: ++%2hhu:42:1:2:42: ++%*2hhu:42:0:2: ++%2hhu:255:1:2:25: ++%*2hhu:255:0:2: ++%2hhu:256:1:2:25: ++%*2hhu:256:0:2: ++%2hhu:297:1:2:29: ++%*2hhu:297:0:2: ++%2hhu:+0:1:2:0: ++%*2hhu:+0:0:2: ++%2hhu:+1:1:2:1: ++%*2hhu:+1:0:2: ++%2hhu:+42:1:2:4: ++%*2hhu:+42:0:2: ++%2hhu:+255:1:2:2: ++%*2hhu:+255:0:2: ++%2hhu:+256:1:2:2: ++%*2hhu:+256:0:2: ++%2hhu:+297:1:2:2: ++%*2hhu:+297:0:2: ++%3hhu::0:-1: ++%*3hhu::0:-1: ++%3hhu:-123:1:3:244: ++%*3hhu:-123:0:3: ++%3hhu:-1:1:2:255: ++%*3hhu:-1:0:2: ++%3hhu:-0:1:2:0: ++%*3hhu:-0:0:2: ++%3hhu:0:1:1:0: ++%*3hhu:0:0:1: ++%3hhu:1:1:1:1: ++%*3hhu:1:0:1: ++%3hhu:42:1:2:42: ++%*3hhu:42:0:2: ++%3hhu:255:1:3:255: ++%*3hhu:255:0:3: ++%3hhu:256:1:3:0: ++%*3hhu:256:0:3: ++%3hhu:297:1:3:41: ++%*3hhu:297:0:3: ++%3hhu:+0:1:2:0: ++%*3hhu:+0:0:2: ++%3hhu:+1:1:2:1: ++%*3hhu:+1:0:2: ++%3hhu:+42:1:3:42: ++%*3hhu:+42:0:3: ++%3hhu:+255:1:3:25: ++%*3hhu:+255:0:3: ++%3hhu:+256:1:3:25: ++%*3hhu:+256:0:3: ++%3hhu:+297:1:3:29: ++%*3hhu:+297:0:3: ++%5hhu::0:-1: ++%*5hhu::0:-1: ++%5hhu:-123:1:4:133: ++%*5hhu:-123:0:4: ++%5hhu:-1:1:2:255: ++%*5hhu:-1:0:2: ++%5hhu:-0:1:2:0: ++%*5hhu:-0:0:2: ++%5hhu:0:1:1:0: ++%*5hhu:0:0:1: ++%5hhu:1:1:1:1: ++%*5hhu:1:0:1: ++%5hhu:42:1:2:42: ++%*5hhu:42:0:2: ++%5hhu:255:1:3:255: ++%*5hhu:255:0:3: ++%5hhu:256:1:3:0: ++%*5hhu:256:0:3: ++%5hhu:297:1:3:41: ++%*5hhu:297:0:3: ++%5hhu:+0:1:2:0: ++%*5hhu:+0:0:2: ++%5hhu:+1:1:2:1: ++%*5hhu:+1:0:2: ++%5hhu:+42:1:3:42: ++%*5hhu:+42:0:3: ++%5hhu:+255:1:4:255: ++%*5hhu:+255:0:4: ++%5hhu:+256:1:4:0: ++%*5hhu:+256:0:4: ++%5hhu:+297:1:4:41: ++%*5hhu:+297:0:4: ++%2hhu: :0:-1: ++%*2hhu: :0:-1: ++%2hhu: -123:1:3:255: ++%*2hhu: -123:0:3: ++%2hhu: -1:1:3:255: ++%*2hhu: -1:0:3: ++%2hhu: -0:1:3:0: ++%*2hhu: -0:0:3: ++%2hhu: 0:1:2:0: ++%*2hhu: 0:0:2: ++%2hhu: 1:1:2:1: ++%*2hhu: 1:0:2: ++%2hhu: 42:1:3:42: ++%*2hhu: 42:0:3: ++%2hhu: 255:1:3:25: ++%*2hhu: 255:0:3: ++%2hhu: 256:1:3:25: ++%*2hhu: 256:0:3: ++%2hhu: 297:1:3:29: ++%*2hhu: 297:0:3: ++%2hhu: +0:1:3:0: ++%*2hhu: +0:0:3: ++%2hhu: +1:1:3:1: ++%*2hhu: +1:0:3: ++%2hhu: +42:1:3:4: ++%*2hhu: +42:0:3: ++%2hhu: +255:1:3:2: ++%*2hhu: +255:0:3: ++%2hhu: +256:1:3:2: ++%*2hhu: +256:0:3: ++%2hhu: +297:1:3:2: ++%*2hhu: +297:0:3: ++%5hhu: :0:-1: ++%*5hhu: :0:-1: ++%5hhu: -123:1:5:133: ++%*5hhu: -123:0:5: ++%5hhu: -1:1:3:255: ++%*5hhu: -1:0:3: ++%5hhu: -0:1:3:0: ++%*5hhu: -0:0:3: ++%5hhu: 0:1:2:0: ++%*5hhu: 0:0:2: ++%5hhu: 1:1:2:1: ++%*5hhu: 1:0:2: ++%5hhu: 42:1:3:42: ++%*5hhu: 42:0:3: ++%5hhu: 255:1:4:255: ++%*5hhu: 255:0:4: ++%5hhu: 256:1:4:0: ++%*5hhu: 256:0:4: ++%5hhu: 297:1:4:41: ++%*5hhu: 297:0:4: ++%5hhu: +0:1:3:0: ++%*5hhu: +0:0:3: ++%5hhu: +1:1:3:1: ++%*5hhu: +1:0:3: ++%5hhu: +42:1:4:42: ++%*5hhu: +42:0:4: ++%5hhu: +255:1:5:255: ++%*5hhu: +255:0:5: ++%5hhu: +256:1:5:0: ++%*5hhu: +256:0:5: ++%5hhu: +297:1:5:41: ++%*5hhu: +297:0:5: +diff --git a/stdio-common/tst-scanf-format-uchar-x.input b/stdio-common/tst-scanf-format-uchar-x.input +new file mode 100644 +index 0000000000000000..d4e637c0c919e747 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-uchar-x.input +@@ -0,0 +1,710 @@ ++%hhx::0:-1: ++%*hhx::0:-1: ++%hhx:-7b:1:3:133: ++%*hhx:-7b:0:3: ++%hhx:-7B:1:3:133: ++%*hhx:-7B:0:3: ++%hhx:-0X7b:1:5:133: ++%*hhx:-0X7b:0:5: ++%hhx:-0x7B:1:5:133: ++%*hhx:-0x7B:0:5: ++%hhx:-1:1:2:255: ++%*hhx:-1:0:2: ++%hhx:-0X1:1:4:255: ++%*hhx:-0X1:0:4: ++%hhx:-0x1:1:4:255: ++%*hhx:-0x1:0:4: ++%hhx:-0:1:2:0: ++%*hhx:-0:0:2: ++%hhx:-0X0:1:4:0: ++%*hhx:-0X0:0:4: ++%hhx:-0x0:1:4:0: ++%*hhx:-0x0:0:4: ++%hhx:0:1:1:0: ++%*hhx:0:0:1: ++%hhx:0X0:1:3:0: ++%*hhx:0X0:0:3: ++%hhx:0x0:1:3:0: ++%*hhx:0x0:0:3: ++%hhx:1:1:1:1: ++%*hhx:1:0:1: ++%hhx:0X1:1:3:1: ++%*hhx:0X1:0:3: ++%hhx:0x1:1:3:1: ++%*hhx:0x1:0:3: ++%hhx:2a:1:2:42: ++%*hhx:2a:0:2: ++%hhx:2A:1:2:42: ++%*hhx:2A:0:2: ++%hhx:0X2a:1:4:42: ++%*hhx:0X2a:0:4: ++%hhx:0x2A:1:4:42: ++%*hhx:0x2A:0:4: ++%hhx:ff:1:2:255: ++%*hhx:ff:0:2: ++%hhx:FF:1:2:255: ++%*hhx:FF:0:2: ++%hhx:0xFF:1:4:255: ++%*hhx:0xFF:0:4: ++%hhx:100:1:3:0: ++%*hhx:100:0:3: ++%hhx:0X100:1:5:0: ++%*hhx:0X100:0:5: ++%hhx:0x100:1:5:0: ++%*hhx:0x100:0:5: ++%hhx:129:1:3:41: ++%*hhx:129:0:3: ++%hhx:0X129:1:5:41: ++%*hhx:0X129:0:5: ++%hhx:0x129:1:5:41: ++%*hhx:0x129:0:5: ++%hhx:+0:1:2:0: ++%*hhx:+0:0:2: ++%hhx:+0X0:1:4:0: ++%*hhx:+0X0:0:4: ++%hhx:+0x0:1:4:0: ++%*hhx:+0x0:0:4: ++%hhx:+1:1:2:1: ++%*hhx:+1:0:2: ++%hhx:+0X1:1:4:1: ++%*hhx:+0X1:0:4: ++%hhx:+0x1:1:4:1: ++%*hhx:+0x1:0:4: ++%hhx:+2a:1:3:42: ++%*hhx:+2a:0:3: ++%hhx:+2A:1:3:42: ++%*hhx:+2A:0:3: ++%hhx:+0X2a:1:5:42: ++%*hhx:+0X2a:0:5: ++%hhx:+0x2A:1:5:42: ++%*hhx:+0x2A:0:5: ++%hhx:+ff:1:3:255: ++%*hhx:+ff:0:3: ++%hhx:+FF:1:3:255: ++%*hhx:+FF:0:3: ++%hhx:+0Xff:1:5:255: ++%*hhx:+0Xff:0:5: ++%hhx:+0xFF:1:5:255: ++%*hhx:+0xFF:0:5: ++%hhx:+100:1:4:0: ++%*hhx:+100:0:4: ++%hhx:+0X100:1:6:0: ++%*hhx:+0X100:0:6: ++%hhx:+0x100:1:6:0: ++%*hhx:+0x100:0:6: ++%hhx:+129:1:4:41: ++%*hhx:+129:0:4: ++%hhx:+0X129:1:6:41: ++%*hhx:+0X129:0:6: ++%hhx:+0x129:1:6:41: ++%*hhx:+0x129:0:6: ++%1hhx::0:-1: ++%*1hhx::0:-1: ++%1hhx:-7b:0:-1: ++%*1hhx:-7b:0:-1: ++%1hhx:-7B:0:-1: ++%*1hhx:-7B:0:-1: ++%1hhx:-0X7b:0:-1: ++%*1hhx:-0X7b:0:-1: ++%1hhx:-0x7B:0:-1: ++%*1hhx:-0x7B:0:-1: ++%1hhx:-1:0:-1: ++%*1hhx:-1:0:-1: ++%1hhx:-0X1:0:-1: ++%*1hhx:-0X1:0:-1: ++%1hhx:-0x1:0:-1: ++%*1hhx:-0x1:0:-1: ++%1hhx:-0:0:-1: ++%*1hhx:-0:0:-1: ++%1hhx:-0X0:0:-1: ++%*1hhx:-0X0:0:-1: ++%1hhx:-0x0:0:-1: ++%*1hhx:-0x0:0:-1: ++%1hhx:0:1:1:0: ++%*1hhx:0:0:1: ++%1hhx:0X0:1:1:0: ++%*1hhx:0X0:0:1: ++%1hhx:0x0:1:1:0: ++%*1hhx:0x0:0:1: ++%1hhx:1:1:1:1: ++%*1hhx:1:0:1: ++%1hhx:0X1:1:1:0: ++%*1hhx:0X1:0:1: ++%1hhx:0x1:1:1:0: ++%*1hhx:0x1:0:1: ++%1hhx:2a:1:1:2: ++%*1hhx:2a:0:1: ++%1hhx:2A:1:1:2: ++%*1hhx:2A:0:1: ++%1hhx:0X2a:1:1:0: ++%*1hhx:0X2a:0:1: ++%1hhx:0x2A:1:1:0: ++%*1hhx:0x2A:0:1: ++%1hhx:ff:1:1:15: ++%*1hhx:ff:0:1: ++%1hhx:FF:1:1:15: ++%*1hhx:FF:0:1: ++%1hhx:0xFF:1:1:0: ++%*1hhx:0xFF:0:1: ++%1hhx:100:1:1:1: ++%*1hhx:100:0:1: ++%1hhx:0X100:1:1:0: ++%*1hhx:0X100:0:1: ++%1hhx:0x100:1:1:0: ++%*1hhx:0x100:0:1: ++%1hhx:129:1:1:1: ++%*1hhx:129:0:1: ++%1hhx:0X129:1:1:0: ++%*1hhx:0X129:0:1: ++%1hhx:0x129:1:1:0: ++%*1hhx:0x129:0:1: ++%1hhx:+0:0:-1: ++%*1hhx:+0:0:-1: ++%1hhx:+0X0:0:-1: ++%*1hhx:+0X0:0:-1: ++%1hhx:+0x0:0:-1: ++%*1hhx:+0x0:0:-1: ++%1hhx:+1:0:-1: ++%*1hhx:+1:0:-1: ++%1hhx:+0X1:0:-1: ++%*1hhx:+0X1:0:-1: ++%1hhx:+0x1:0:-1: ++%*1hhx:+0x1:0:-1: ++%1hhx:+2a:0:-1: ++%*1hhx:+2a:0:-1: ++%1hhx:+2A:0:-1: ++%*1hhx:+2A:0:-1: ++%1hhx:+0X2a:0:-1: ++%*1hhx:+0X2a:0:-1: ++%1hhx:+0x2A:0:-1: ++%*1hhx:+0x2A:0:-1: ++%1hhx:+ff:0:-1: ++%*1hhx:+ff:0:-1: ++%1hhx:+FF:0:-1: ++%*1hhx:+FF:0:-1: ++%1hhx:+0Xff:0:-1: ++%*1hhx:+0Xff:0:-1: ++%1hhx:+0xFF:0:-1: ++%*1hhx:+0xFF:0:-1: ++%1hhx:+100:0:-1: ++%*1hhx:+100:0:-1: ++%1hhx:+0X100:0:-1: ++%*1hhx:+0X100:0:-1: ++%1hhx:+0x100:0:-1: ++%*1hhx:+0x100:0:-1: ++%1hhx:+129:0:-1: ++%*1hhx:+129:0:-1: ++%1hhx:+0X129:0:-1: ++%*1hhx:+0X129:0:-1: ++%1hhx:+0x129:0:-1: ++%*1hhx:+0x129:0:-1: ++%2hhx::0:-1: ++%*2hhx::0:-1: ++%2hhx:-7b:1:2:249: ++%*2hhx:-7b:0:2: ++%2hhx:-7B:1:2:249: ++%*2hhx:-7B:0:2: ++%2hhx:-0X7b:1:2:0: ++%*2hhx:-0X7b:0:2: ++%2hhx:-0x7B:1:2:0: ++%*2hhx:-0x7B:0:2: ++%2hhx:-1:1:2:255: ++%*2hhx:-1:0:2: ++%2hhx:-0X1:1:2:0: ++%*2hhx:-0X1:0:2: ++%2hhx:-0x1:1:2:0: ++%*2hhx:-0x1:0:2: ++%2hhx:-0:1:2:0: ++%*2hhx:-0:0:2: ++%2hhx:-0X0:1:2:0: ++%*2hhx:-0X0:0:2: ++%2hhx:-0x0:1:2:0: ++%*2hhx:-0x0:0:2: ++%2hhx:0:1:1:0: ++%*2hhx:0:0:1: ++# BZ12701 %2hhx:0X0:0:-1: ++# BZ12701 %*2hhx:0X0:0:-1: ++# BZ12701 %2hhx:0x0:0:-1: ++# BZ12701 %*2hhx:0x0:0:-1: ++%2hhx:1:1:1:1: ++%*2hhx:1:0:1: ++# BZ12701 %2hhx:0X1:0:-1: ++# BZ12701 %*2hhx:0X1:0:-1: ++# BZ12701 %2hhx:0x1:0:-1: ++# BZ12701 %*2hhx:0x1:0:-1: ++%2hhx:2a:1:2:42: ++%*2hhx:2a:0:2: ++%2hhx:2A:1:2:42: ++%*2hhx:2A:0:2: ++# BZ12701 %2hhx:0X2a:0:-1: ++# BZ12701 %*2hhx:0X2a:0:-1: ++# BZ12701 %2hhx:0x2A:0:-1: ++# BZ12701 %*2hhx:0x2A:0:-1: ++%2hhx:ff:1:2:255: ++%*2hhx:ff:0:2: ++%2hhx:FF:1:2:255: ++%*2hhx:FF:0:2: ++# BZ12701 %2hhx:0Xff:0:-1: ++# BZ12701 %*2hhx:0Xff:0:-1: ++# BZ12701 %2hhx:0xFF:0:-1: ++# BZ12701 %*2hhx:0xFF:0:-1: ++%2hhx:100:1:2:16: ++%*2hhx:100:0:2: ++# BZ12701 %2hhx:0X100:0:-1: ++# BZ12701 %*2hhx:0X100:0:-1: ++# BZ12701 %2hhx:0x100:0:-1: ++# BZ12701 %*2hhx:0x100:0:-1: ++%2hhx:129:1:2:18: ++%*2hhx:129:0:2: ++# BZ12701 %2hhx:0X129:0:-1: ++# BZ12701 %*2hhx:0X129:0:-1: ++# BZ12701 %2hhx:0x129:0:-1: ++# BZ12701 %*2hhx:0x129:0:-1: ++%2hhx:+0:1:2:0: ++%*2hhx:+0:0:2: ++%2hhx:+0X0:1:2:0: ++%*2hhx:+0X0:0:2: ++%2hhx:+0x0:1:2:0: ++%*2hhx:+0x0:0:2: ++%2hhx:+1:1:2:1: ++%*2hhx:+1:0:2: ++%2hhx:+0X1:1:2:0: ++%*2hhx:+0X1:0:2: ++%2hhx:+0x1:1:2:0: ++%*2hhx:+0x1:0:2: ++%2hhx:+2a:1:2:2: ++%*2hhx:+2a:0:2: ++%2hhx:+2A:1:2:2: ++%*2hhx:+2A:0:2: ++%2hhx:+0X2a:1:2:0: ++%*2hhx:+0X2a:0:2: ++%2hhx:+0x2A:1:2:0: ++%*2hhx:+0x2A:0:2: ++%2hhx:+ff:1:2:15: ++%*2hhx:+ff:0:2: ++%2hhx:+FF:1:2:15: ++%*2hhx:+FF:0:2: ++%2hhx:+0Xff:1:2:0: ++%*2hhx:+0Xff:0:2: ++%2hhx:+0xFF:1:2:0: ++%*2hhx:+0xFF:0:2: ++%2hhx:+100:1:2:1: ++%*2hhx:+100:0:2: ++%2hhx:+0X100:1:2:0: ++%*2hhx:+0X100:0:2: ++%2hhx:+0x100:1:2:0: ++%*2hhx:+0x100:0:2: ++%2hhx:+129:1:2:1: ++%*2hhx:+129:0:2: ++%2hhx:+0X129:1:2:0: ++%*2hhx:+0X129:0:2: ++%2hhx:+0x129:1:2:0: ++%*2hhx:+0x129:0:2: ++%3hhx::0:-1: ++%*3hhx::0:-1: ++%3hhx:-7b:1:3:133: ++%*3hhx:-7b:0:3: ++%3hhx:-7B:1:3:133: ++%*3hhx:-7B:0:3: ++# BZ12701 %3hhx:-0X7b:0:-1: ++# BZ12701 %*3hhx:-0X7b:0:-1: ++# BZ12701 %3hhx:-0x7B:0:-1: ++# BZ12701 %*3hhx:-0x7B:0:-1: ++%3hhx:-1:1:2:255: ++%*3hhx:-1:0:2: ++# BZ12701 %3hhx:-0X1:0:-1: ++# BZ12701 %*3hhx:-0X1:0:-1: ++# BZ12701 %3hhx:-0x1:0:-1: ++# BZ12701 %*3hhx:-0x1:0:-1: ++%3hhx:-0:1:2:0: ++%*3hhx:-0:0:2: ++# BZ12701 %3hhx:-0X0:0:-1: ++# BZ12701 %*3hhx:-0X0:0:-1: ++# BZ12701 %3hhx:-0x0:0:-1: ++# BZ12701 %*3hhx:-0x0:0:-1: ++%3hhx:0:1:1:0: ++%*3hhx:0:0:1: ++%3hhx:0X0:1:3:0: ++%*3hhx:0X0:0:3: ++%3hhx:0x0:1:3:0: ++%*3hhx:0x0:0:3: ++%3hhx:1:1:1:1: ++%*3hhx:1:0:1: ++%3hhx:0X1:1:3:1: ++%*3hhx:0X1:0:3: ++%3hhx:0x1:1:3:1: ++%*3hhx:0x1:0:3: ++%3hhx:2a:1:2:42: ++%*3hhx:2a:0:2: ++%3hhx:2A:1:2:42: ++%*3hhx:2A:0:2: ++%3hhx:0X2a:1:3:2: ++%*3hhx:0X2a:0:3: ++%3hhx:0x2A:1:3:2: ++%*3hhx:0x2A:0:3: ++%3hhx:ff:1:2:255: ++%*3hhx:ff:0:2: ++%3hhx:FF:1:2:255: ++%*3hhx:FF:0:2: ++%3hhx:0Xff:1:3:15: ++%*3hhx:0Xff:0:3: ++%3hhx:0xFF:1:3:15: ++%*3hhx:0xFF:0:3: ++%3hhx:100:1:3:0: ++%*3hhx:100:0:3: ++%3hhx:0X100:1:3:1: ++%*3hhx:0X100:0:3: ++%3hhx:0x100:1:3:1: ++%*3hhx:0x100:0:3: ++%3hhx:129:1:3:41: ++%*3hhx:129:0:3: ++%3hhx:0X129:1:3:1: ++%*3hhx:0X129:0:3: ++%3hhx:0x129:1:3:1: ++%*3hhx:0x129:0:3: ++%3hhx:+0:1:2:0: ++%*3hhx:+0:0:2: ++# BZ12701 %3hhx:+0X0:0:-1: ++# BZ12701 %*3hhx:+0X0:0:-1: ++# BZ12701 %3hhx:+0x0:0:-1: ++# BZ12701 %*3hhx:+0x0:0:-1: ++%3hhx:+1:1:2:1: ++%*3hhx:+1:0:2: ++# BZ12701 %3hhx:+0X1:0:-1: ++# BZ12701 %*3hhx:+0X1:0:-1: ++# BZ12701 %3hhx:+0x1:0:-1: ++# BZ12701 %*3hhx:+0x1:0:-1: ++%3hhx:+2a:1:3:42: ++%*3hhx:+2a:0:3: ++%3hhx:+2A:1:3:42: ++%*3hhx:+2A:0:3: ++# BZ12701 %3hhx:+0X2a:0:-1: ++# BZ12701 %*3hhx:+0X2a:0:-1: ++# BZ12701 %3hhx:+0x2A:0:-1: ++# BZ12701 %*3hhx:+0x2A:0:-1: ++%3hhx:+ff:1:3:255: ++%*3hhx:+ff:0:3: ++%3hhx:+FF:1:3:255: ++%*3hhx:+FF:0:3: ++# BZ12701 %3hhx:+0Xff:0:-1: ++# BZ12701 %*3hhx:+0Xff:0:-1: ++# BZ12701 %3hhx:+0xFF:0:-1: ++# BZ12701 %*3hhx:+0xFF:0:-1: ++%3hhx:+100:1:3:16: ++%*3hhx:+100:0:3: ++# BZ12701 %3hhx:+0X100:0:-1: ++# BZ12701 %*3hhx:+0X100:0:-1: ++# BZ12701 %3hhx:+0x100:0:-1: ++# BZ12701 %*3hhx:+0x100:0:-1: ++%3hhx:+129:1:3:18: ++%*3hhx:+129:0:3: ++# BZ12701 %3hhx:+0X129:0:-1: ++# BZ12701 %*3hhx:+0X129:0:-1: ++# BZ12701 %3hhx:+0x129:0:-1: ++# BZ12701 %*3hhx:+0x129:0:-1: ++%5hhx::0:-1: ++%*5hhx::0:-1: ++%5hhx:-7b:1:3:133: ++%*5hhx:-7b:0:3: ++%5hhx:-7B:1:3:133: ++%*5hhx:-7B:0:3: ++%5hhx:-0X7b:1:5:133: ++%*5hhx:-0X7b:0:5: ++%5hhx:-0x7B:1:5:133: ++%*5hhx:-0x7B:0:5: ++%5hhx:-1:1:2:255: ++%*5hhx:-1:0:2: ++%5hhx:-0X1:1:4:255: ++%*5hhx:-0X1:0:4: ++%5hhx:-0x1:1:4:255: ++%*5hhx:-0x1:0:4: ++%5hhx:-0:1:2:0: ++%*5hhx:-0:0:2: ++%5hhx:-0X0:1:4:0: ++%*5hhx:-0X0:0:4: ++%5hhx:-0x0:1:4:0: ++%*5hhx:-0x0:0:4: ++%5hhx:0:1:1:0: ++%*5hhx:0:0:1: ++%5hhx:0X0:1:3:0: ++%*5hhx:0X0:0:3: ++%5hhx:0x0:1:3:0: ++%*5hhx:0x0:0:3: ++%5hhx:1:1:1:1: ++%*5hhx:1:0:1: ++%5hhx:0X1:1:3:1: ++%*5hhx:0X1:0:3: ++%5hhx:0x1:1:3:1: ++%*5hhx:0x1:0:3: ++%5hhx:2a:1:2:42: ++%*5hhx:2a:0:2: ++%5hhx:2A:1:2:42: ++%*5hhx:2A:0:2: ++%5hhx:0X2a:1:4:42: ++%*5hhx:0X2a:0:4: ++%5hhx:0x2A:1:4:42: ++%*5hhx:0x2A:0:4: ++%5hhx:ff:1:2:255: ++%*5hhx:ff:0:2: ++%5hhx:FF:1:2:255: ++%*5hhx:FF:0:2: ++%5hhx:0Xff:1:4:255: ++%*5hhx:0Xff:0:4: ++%5hhx:0xFF:1:4:255: ++%*5hhx:0xFF:0:4: ++%5hhx:100:1:3:0: ++%*5hhx:100:0:3: ++%5hhx:0X100:1:5:0: ++%*5hhx:0X100:0:5: ++%5hhx:0x100:1:5:0: ++%*5hhx:0x100:0:5: ++%5hhx:129:1:3:41: ++%*5hhx:129:0:3: ++%5hhx:0X129:1:5:41: ++%*5hhx:0X129:0:5: ++%5hhx:0x129:1:5:41: ++%*5hhx:0x129:0:5: ++%5hhx:+0:1:2:0: ++%*5hhx:+0:0:2: ++%5hhx:+0X0:1:4:0: ++%*5hhx:+0X0:0:4: ++%5hhx:+0x0:1:4:0: ++%*5hhx:+0x0:0:4: ++%5hhx:+1:1:2:1: ++%*5hhx:+1:0:2: ++%5hhx:+0X1:1:4:1: ++%*5hhx:+0X1:0:4: ++%5hhx:+0x1:1:4:1: ++%*5hhx:+0x1:0:4: ++%5hhx:+2a:1:3:42: ++%*5hhx:+2a:0:3: ++%5hhx:+2A:1:3:42: ++%*5hhx:+2A:0:3: ++%5hhx:+0X2a:1:5:42: ++%*5hhx:+0X2a:0:5: ++%5hhx:+0x2A:1:5:42: ++%*5hhx:+0x2A:0:5: ++%5hhx:+ff:1:3:255: ++%*5hhx:+ff:0:3: ++%5hhx:+FF:1:3:255: ++%*5hhx:+FF:0:3: ++%5hhx:+0Xff:1:5:255: ++%*5hhx:+0Xff:0:5: ++%5hhx:+0xFF:1:5:255: ++%*5hhx:+0xFF:0:5: ++%5hhx:+100:1:4:0: ++%*5hhx:+100:0:4: ++%5hhx:+0X100:1:5:16: ++%*5hhx:+0X100:0:5: ++%5hhx:+0x100:1:5:16: ++%*5hhx:+0x100:0:5: ++%5hhx:+129:1:4:41: ++%*5hhx:+129:0:4: ++%5hhx:+0X129:1:5:18: ++%*5hhx:+0X129:0:5: ++%5hhx:+0x129:1:5:18: ++%*5hhx:+0x129:0:5: ++%2hhx: :0:-1: ++%*2hhx: :0:-1: ++%2hhx: -7b:1:3:249: ++%*2hhx: -7b:0:3: ++%2hhx: -7B:1:3:249: ++%*2hhx: -7B:0:3: ++%2hhx: -0X7b:1:3:0: ++%*2hhx: -0X7b:0:3: ++%2hhx: -0x7B:1:3:0: ++%*2hhx: -0x7B:0:3: ++%2hhx: -1:1:3:255: ++%*2hhx: -1:0:3: ++%2hhx: -0X1:1:3:0: ++%*2hhx: -0X1:0:3: ++%2hhx: -0x1:1:3:0: ++%*2hhx: -0x1:0:3: ++%2hhx: -0:1:3:0: ++%*2hhx: -0:0:3: ++%2hhx: -0X0:1:3:0: ++%*2hhx: -0X0:0:3: ++%2hhx: -0x0:1:3:0: ++%*2hhx: -0x0:0:3: ++%2hhx: 0:1:2:0: ++%*2hhx: 0:0:2: ++# BZ12701 %2hhx: 0X0:0:-1: ++# BZ12701 %*2hhx: 0X0:0:-1: ++# BZ12701 %2hhx: 0x0:0:-1: ++# BZ12701 %*2hhx: 0x0:0:-1: ++%2hhx: 1:1:2:1: ++%*2hhx: 1:0:2: ++# BZ12701 %2hhx: 0X1:0:-1: ++# BZ12701 %*2hhx: 0X1:0:-1: ++# BZ12701 %2hhx: 0x1:0:-1: ++# BZ12701 %*2hhx: 0x1:0:-1: ++%2hhx: 2a:1:3:42: ++%*2hhx: 2a:0:3: ++%2hhx: 2A:1:3:42: ++%*2hhx: 2A:0:3: ++# BZ12701 %2hhx: 0X2a:0:-1: ++# BZ12701 %*2hhx: 0X2a:0:-1: ++# BZ12701 %2hhx: 0x2A:0:-1: ++# BZ12701 %*2hhx: 0x2A:0:-1: ++%2hhx: ff:1:3:255: ++%*2hhx: ff:0:3: ++%2hhx: FF:1:3:255: ++%*2hhx: FF:0:3: ++# BZ12701 %2hhx: 0Xff:0:-1: ++# BZ12701 %*2hhx: 0Xff:0:-1: ++# BZ12701 %2hhx: 0xFF:0:-1: ++# BZ12701 %*2hhx: 0xFF:0:-1: ++%2hhx: 100:1:3:16: ++%*2hhx: 100:0:3: ++# BZ12701 %2hhx: 0X100:0:-1: ++# BZ12701 %*2hhx: 0X100:0:-1: ++# BZ12701 %2hhx: 0x100:0:-1: ++# BZ12701 %*2hhx: 0x100:0:-1: ++%2hhx: 129:1:3:18: ++%*2hhx: 129:0:3: ++# BZ12701 %2hhx: 0X129:0:-1: ++# BZ12701 %*2hhx: 0X129:0:-1: ++# BZ12701 %2hhx: 0x129:0:-1: ++# BZ12701 %*2hhx: 0x129:0:-1: ++%2hhx: +0:1:3:0: ++%*2hhx: +0:0:3: ++%2hhx: +0X0:1:3:0: ++%*2hhx: +0X0:0:3: ++%2hhx: +0x0:1:3:0: ++%*2hhx: +0x0:0:3: ++%2hhx: +1:1:3:1: ++%*2hhx: +1:0:3: ++%2hhx: +0X1:1:3:0: ++%*2hhx: +0X1:0:3: ++%2hhx: +0x1:1:3:0: ++%*2hhx: +0x1:0:3: ++%2hhx: +2a:1:3:2: ++%*2hhx: +2a:0:3: ++%2hhx: +2A:1:3:2: ++%*2hhx: +2A:0:3: ++%2hhx: +0X2a:1:3:0: ++%*2hhx: +0X2a:0:3: ++%2hhx: +0x2A:1:3:0: ++%*2hhx: +0x2A:0:3: ++%2hhx: +ff:1:3:15: ++%*2hhx: +ff:0:3: ++%2hhx: +FF:1:3:15: ++%*2hhx: +FF:0:3: ++%2hhx: +0Xff:1:3:0: ++%*2hhx: +0Xff:0:3: ++%2hhx: +0xFF:1:3:0: ++%*2hhx: +0xFF:0:3: ++%2hhx: +100:1:3:1: ++%*2hhx: +100:0:3: ++%2hhx: +0X100:1:3:0: ++%*2hhx: +0X100:0:3: ++%2hhx: +0x100:1:3:0: ++%*2hhx: +0x100:0:3: ++%2hhx: +129:1:3:1: ++%*2hhx: +129:0:3: ++%2hhx: +0X129:1:3:0: ++%*2hhx: +0X129:0:3: ++%2hhx: +0x129:1:3:0: ++%*2hhx: +0x129:0:3: ++%5hhx: :0:-1: ++%*5hhx: :0:-1: ++%5hhx: -7b:1:4:133: ++%*5hhx: -7b:0:4: ++%5hhx: -7B:1:4:133: ++%*5hhx: -7B:0:4: ++%5hhx: -0X7b:1:6:133: ++%*5hhx: -0X7b:0:6: ++%5hhx: -0x7B:1:6:133: ++%*5hhx: -0x7B:0:6: ++%5hhx: -1:1:3:255: ++%*5hhx: -1:0:3: ++%5hhx: -0X1:1:5:255: ++%*5hhx: -0X1:0:5: ++%5hhx: -0x1:1:5:255: ++%*5hhx: -0x1:0:5: ++%5hhx: -0:1:3:0: ++%*5hhx: -0:0:3: ++%5hhx: -0X0:1:5:0: ++%*5hhx: -0X0:0:5: ++%5hhx: -0x0:1:5:0: ++%*5hhx: -0x0:0:5: ++%5hhx: 0:1:2:0: ++%*5hhx: 0:0:2: ++%5hhx: 0X0:1:4:0: ++%*5hhx: 0X0:0:4: ++%5hhx: 0x0:1:4:0: ++%*5hhx: 0x0:0:4: ++%5hhx: 1:1:2:1: ++%*5hhx: 1:0:2: ++%5hhx: 0X1:1:4:1: ++%*5hhx: 0X1:0:4: ++%5hhx: 0x1:1:4:1: ++%*5hhx: 0x1:0:4: ++%5hhx: 2a:1:3:42: ++%*5hhx: 2a:0:3: ++%5hhx: 2A:1:3:42: ++%*5hhx: 2A:0:3: ++%5hhx: 0X2a:1:5:42: ++%*5hhx: 0X2a:0:5: ++%5hhx: 0x2A:1:5:42: ++%*5hhx: 0x2A:0:5: ++%5hhx: ff:1:3:255: ++%*5hhx: ff:0:3: ++%5hhx: FF:1:3:255: ++%*5hhx: FF:0:3: ++%5hhx: 0Xff:1:5:255: ++%*5hhx: 0Xff:0:5: ++%5hhx: 0xFF:1:5:255: ++%*5hhx: 0xFF:0:5: ++%5hhx: 100:1:4:0: ++%*5hhx: 100:0:4: ++%5hhx: 0X100:1:6:0: ++%*5hhx: 0X100:0:6: ++%5hhx: 0x100:1:6:0: ++%*5hhx: 0x100:0:6: ++%5hhx: 129:1:4:41: ++%*5hhx: 129:0:4: ++%5hhx: 0X129:1:6:41: ++%*5hhx: 0X129:0:6: ++%5hhx: 0x129:1:6:41: ++%*5hhx: 0x129:0:6: ++%5hhx: +0:1:3:0: ++%*5hhx: +0:0:3: ++%5hhx: +0X0:1:5:0: ++%*5hhx: +0X0:0:5: ++%5hhx: +0x0:1:5:0: ++%*5hhx: +0x0:0:5: ++%5hhx: +1:1:3:1: ++%*5hhx: +1:0:3: ++%5hhx: +0X1:1:5:1: ++%*5hhx: +0X1:0:5: ++%5hhx: +0x1:1:5:1: ++%*5hhx: +0x1:0:5: ++%5hhx: +2a:1:4:42: ++%*5hhx: +2a:0:4: ++%5hhx: +2A:1:4:42: ++%*5hhx: +2A:0:4: ++%5hhx: +0X2a:1:6:42: ++%*5hhx: +0X2a:0:6: ++%5hhx: +0x2A:1:6:42: ++%*5hhx: +0x2A:0:6: ++%5hhx: +ff:1:4:255: ++%*5hhx: +ff:0:4: ++%5hhx: +FF:1:4:255: ++%*5hhx: +FF:0:4: ++%5hhx: +0Xff:1:6:255: ++%*5hhx: +0Xff:0:6: ++%5hhx: +0xFF:1:6:255: ++%*5hhx: +0xFF:0:6: ++%5hhx: +100:1:5:0: ++%*5hhx: +100:0:5: ++%5hhx: +0X100:1:6:16: ++%*5hhx: +0X100:0:6: ++%5hhx: +0x100:1:6:16: ++%*5hhx: +0x100:0:6: ++%5hhx: +129:1:5:41: ++%*5hhx: +129:0:5: ++%5hhx: +0X129:1:6:18: ++%*5hhx: +0X129:0:6: ++%5hhx: +0x129:1:6:18: ++%*5hhx: +0x129:0:6: +diff --git a/stdio-common/tst-scanf-format-uchar-xx.input b/stdio-common/tst-scanf-format-uchar-xx.input +new file mode 100644 +index 0000000000000000..3e3af63b68918705 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-uchar-xx.input +@@ -0,0 +1,710 @@ ++%hhX::0:-1: ++%*hhX::0:-1: ++%hhX:-7b:1:3:133: ++%*hhX:-7b:0:3: ++%hhX:-7B:1:3:133: ++%*hhX:-7B:0:3: ++%hhX:-0X7b:1:5:133: ++%*hhX:-0X7b:0:5: ++%hhX:-0x7B:1:5:133: ++%*hhX:-0x7B:0:5: ++%hhX:-1:1:2:255: ++%*hhX:-1:0:2: ++%hhX:-0X1:1:4:255: ++%*hhX:-0X1:0:4: ++%hhX:-0x1:1:4:255: ++%*hhX:-0x1:0:4: ++%hhX:-0:1:2:0: ++%*hhX:-0:0:2: ++%hhX:-0X0:1:4:0: ++%*hhX:-0X0:0:4: ++%hhX:-0x0:1:4:0: ++%*hhX:-0x0:0:4: ++%hhX:0:1:1:0: ++%*hhX:0:0:1: ++%hhX:0X0:1:3:0: ++%*hhX:0X0:0:3: ++%hhX:0x0:1:3:0: ++%*hhX:0x0:0:3: ++%hhX:1:1:1:1: ++%*hhX:1:0:1: ++%hhX:0X1:1:3:1: ++%*hhX:0X1:0:3: ++%hhX:0x1:1:3:1: ++%*hhX:0x1:0:3: ++%hhX:2a:1:2:42: ++%*hhX:2a:0:2: ++%hhX:2A:1:2:42: ++%*hhX:2A:0:2: ++%hhX:0X2a:1:4:42: ++%*hhX:0X2a:0:4: ++%hhX:0x2A:1:4:42: ++%*hhX:0x2A:0:4: ++%hhX:ff:1:2:255: ++%*hhX:ff:0:2: ++%hhX:FF:1:2:255: ++%*hhX:FF:0:2: ++%hhX:0xFF:1:4:255: ++%*hhX:0xFF:0:4: ++%hhX:100:1:3:0: ++%*hhX:100:0:3: ++%hhX:0X100:1:5:0: ++%*hhX:0X100:0:5: ++%hhX:0x100:1:5:0: ++%*hhX:0x100:0:5: ++%hhX:129:1:3:41: ++%*hhX:129:0:3: ++%hhX:0X129:1:5:41: ++%*hhX:0X129:0:5: ++%hhX:0x129:1:5:41: ++%*hhX:0x129:0:5: ++%hhX:+0:1:2:0: ++%*hhX:+0:0:2: ++%hhX:+0X0:1:4:0: ++%*hhX:+0X0:0:4: ++%hhX:+0x0:1:4:0: ++%*hhX:+0x0:0:4: ++%hhX:+1:1:2:1: ++%*hhX:+1:0:2: ++%hhX:+0X1:1:4:1: ++%*hhX:+0X1:0:4: ++%hhX:+0x1:1:4:1: ++%*hhX:+0x1:0:4: ++%hhX:+2a:1:3:42: ++%*hhX:+2a:0:3: ++%hhX:+2A:1:3:42: ++%*hhX:+2A:0:3: ++%hhX:+0X2a:1:5:42: ++%*hhX:+0X2a:0:5: ++%hhX:+0x2A:1:5:42: ++%*hhX:+0x2A:0:5: ++%hhX:+ff:1:3:255: ++%*hhX:+ff:0:3: ++%hhX:+FF:1:3:255: ++%*hhX:+FF:0:3: ++%hhX:+0Xff:1:5:255: ++%*hhX:+0Xff:0:5: ++%hhX:+0xFF:1:5:255: ++%*hhX:+0xFF:0:5: ++%hhX:+100:1:4:0: ++%*hhX:+100:0:4: ++%hhX:+0X100:1:6:0: ++%*hhX:+0X100:0:6: ++%hhX:+0x100:1:6:0: ++%*hhX:+0x100:0:6: ++%hhX:+129:1:4:41: ++%*hhX:+129:0:4: ++%hhX:+0X129:1:6:41: ++%*hhX:+0X129:0:6: ++%hhX:+0x129:1:6:41: ++%*hhX:+0x129:0:6: ++%1hhX::0:-1: ++%*1hhX::0:-1: ++%1hhX:-7b:0:-1: ++%*1hhX:-7b:0:-1: ++%1hhX:-7B:0:-1: ++%*1hhX:-7B:0:-1: ++%1hhX:-0X7b:0:-1: ++%*1hhX:-0X7b:0:-1: ++%1hhX:-0x7B:0:-1: ++%*1hhX:-0x7B:0:-1: ++%1hhX:-1:0:-1: ++%*1hhX:-1:0:-1: ++%1hhX:-0X1:0:-1: ++%*1hhX:-0X1:0:-1: ++%1hhX:-0x1:0:-1: ++%*1hhX:-0x1:0:-1: ++%1hhX:-0:0:-1: ++%*1hhX:-0:0:-1: ++%1hhX:-0X0:0:-1: ++%*1hhX:-0X0:0:-1: ++%1hhX:-0x0:0:-1: ++%*1hhX:-0x0:0:-1: ++%1hhX:0:1:1:0: ++%*1hhX:0:0:1: ++%1hhX:0X0:1:1:0: ++%*1hhX:0X0:0:1: ++%1hhX:0x0:1:1:0: ++%*1hhX:0x0:0:1: ++%1hhX:1:1:1:1: ++%*1hhX:1:0:1: ++%1hhX:0X1:1:1:0: ++%*1hhX:0X1:0:1: ++%1hhX:0x1:1:1:0: ++%*1hhX:0x1:0:1: ++%1hhX:2a:1:1:2: ++%*1hhX:2a:0:1: ++%1hhX:2A:1:1:2: ++%*1hhX:2A:0:1: ++%1hhX:0X2a:1:1:0: ++%*1hhX:0X2a:0:1: ++%1hhX:0x2A:1:1:0: ++%*1hhX:0x2A:0:1: ++%1hhX:ff:1:1:15: ++%*1hhX:ff:0:1: ++%1hhX:FF:1:1:15: ++%*1hhX:FF:0:1: ++%1hhX:0xFF:1:1:0: ++%*1hhX:0xFF:0:1: ++%1hhX:100:1:1:1: ++%*1hhX:100:0:1: ++%1hhX:0X100:1:1:0: ++%*1hhX:0X100:0:1: ++%1hhX:0x100:1:1:0: ++%*1hhX:0x100:0:1: ++%1hhX:129:1:1:1: ++%*1hhX:129:0:1: ++%1hhX:0X129:1:1:0: ++%*1hhX:0X129:0:1: ++%1hhX:0x129:1:1:0: ++%*1hhX:0x129:0:1: ++%1hhX:+0:0:-1: ++%*1hhX:+0:0:-1: ++%1hhX:+0X0:0:-1: ++%*1hhX:+0X0:0:-1: ++%1hhX:+0x0:0:-1: ++%*1hhX:+0x0:0:-1: ++%1hhX:+1:0:-1: ++%*1hhX:+1:0:-1: ++%1hhX:+0X1:0:-1: ++%*1hhX:+0X1:0:-1: ++%1hhX:+0x1:0:-1: ++%*1hhX:+0x1:0:-1: ++%1hhX:+2a:0:-1: ++%*1hhX:+2a:0:-1: ++%1hhX:+2A:0:-1: ++%*1hhX:+2A:0:-1: ++%1hhX:+0X2a:0:-1: ++%*1hhX:+0X2a:0:-1: ++%1hhX:+0x2A:0:-1: ++%*1hhX:+0x2A:0:-1: ++%1hhX:+ff:0:-1: ++%*1hhX:+ff:0:-1: ++%1hhX:+FF:0:-1: ++%*1hhX:+FF:0:-1: ++%1hhX:+0Xff:0:-1: ++%*1hhX:+0Xff:0:-1: ++%1hhX:+0xFF:0:-1: ++%*1hhX:+0xFF:0:-1: ++%1hhX:+100:0:-1: ++%*1hhX:+100:0:-1: ++%1hhX:+0X100:0:-1: ++%*1hhX:+0X100:0:-1: ++%1hhX:+0x100:0:-1: ++%*1hhX:+0x100:0:-1: ++%1hhX:+129:0:-1: ++%*1hhX:+129:0:-1: ++%1hhX:+0X129:0:-1: ++%*1hhX:+0X129:0:-1: ++%1hhX:+0x129:0:-1: ++%*1hhX:+0x129:0:-1: ++%2hhX::0:-1: ++%*2hhX::0:-1: ++%2hhX:-7b:1:2:249: ++%*2hhX:-7b:0:2: ++%2hhX:-7B:1:2:249: ++%*2hhX:-7B:0:2: ++%2hhX:-0X7b:1:2:0: ++%*2hhX:-0X7b:0:2: ++%2hhX:-0x7B:1:2:0: ++%*2hhX:-0x7B:0:2: ++%2hhX:-1:1:2:255: ++%*2hhX:-1:0:2: ++%2hhX:-0X1:1:2:0: ++%*2hhX:-0X1:0:2: ++%2hhX:-0x1:1:2:0: ++%*2hhX:-0x1:0:2: ++%2hhX:-0:1:2:0: ++%*2hhX:-0:0:2: ++%2hhX:-0X0:1:2:0: ++%*2hhX:-0X0:0:2: ++%2hhX:-0x0:1:2:0: ++%*2hhX:-0x0:0:2: ++%2hhX:0:1:1:0: ++%*2hhX:0:0:1: ++# BZ12701 %2hhX:0X0:0:-1: ++# BZ12701 %*2hhX:0X0:0:-1: ++# BZ12701 %2hhX:0x0:0:-1: ++# BZ12701 %*2hhX:0x0:0:-1: ++%2hhX:1:1:1:1: ++%*2hhX:1:0:1: ++# BZ12701 %2hhX:0X1:0:-1: ++# BZ12701 %*2hhX:0X1:0:-1: ++# BZ12701 %2hhX:0x1:0:-1: ++# BZ12701 %*2hhX:0x1:0:-1: ++%2hhX:2a:1:2:42: ++%*2hhX:2a:0:2: ++%2hhX:2A:1:2:42: ++%*2hhX:2A:0:2: ++# BZ12701 %2hhX:0X2a:0:-1: ++# BZ12701 %*2hhX:0X2a:0:-1: ++# BZ12701 %2hhX:0x2A:0:-1: ++# BZ12701 %*2hhX:0x2A:0:-1: ++%2hhX:ff:1:2:255: ++%*2hhX:ff:0:2: ++%2hhX:FF:1:2:255: ++%*2hhX:FF:0:2: ++# BZ12701 %2hhX:0Xff:0:-1: ++# BZ12701 %*2hhX:0Xff:0:-1: ++# BZ12701 %2hhX:0xFF:0:-1: ++# BZ12701 %*2hhX:0xFF:0:-1: ++%2hhX:100:1:2:16: ++%*2hhX:100:0:2: ++# BZ12701 %2hhX:0X100:0:-1: ++# BZ12701 %*2hhX:0X100:0:-1: ++# BZ12701 %2hhX:0x100:0:-1: ++# BZ12701 %*2hhX:0x100:0:-1: ++%2hhX:129:1:2:18: ++%*2hhX:129:0:2: ++# BZ12701 %2hhX:0X129:0:-1: ++# BZ12701 %*2hhX:0X129:0:-1: ++# BZ12701 %2hhX:0x129:0:-1: ++# BZ12701 %*2hhX:0x129:0:-1: ++%2hhX:+0:1:2:0: ++%*2hhX:+0:0:2: ++%2hhX:+0X0:1:2:0: ++%*2hhX:+0X0:0:2: ++%2hhX:+0x0:1:2:0: ++%*2hhX:+0x0:0:2: ++%2hhX:+1:1:2:1: ++%*2hhX:+1:0:2: ++%2hhX:+0X1:1:2:0: ++%*2hhX:+0X1:0:2: ++%2hhX:+0x1:1:2:0: ++%*2hhX:+0x1:0:2: ++%2hhX:+2a:1:2:2: ++%*2hhX:+2a:0:2: ++%2hhX:+2A:1:2:2: ++%*2hhX:+2A:0:2: ++%2hhX:+0X2a:1:2:0: ++%*2hhX:+0X2a:0:2: ++%2hhX:+0x2A:1:2:0: ++%*2hhX:+0x2A:0:2: ++%2hhX:+ff:1:2:15: ++%*2hhX:+ff:0:2: ++%2hhX:+FF:1:2:15: ++%*2hhX:+FF:0:2: ++%2hhX:+0Xff:1:2:0: ++%*2hhX:+0Xff:0:2: ++%2hhX:+0xFF:1:2:0: ++%*2hhX:+0xFF:0:2: ++%2hhX:+100:1:2:1: ++%*2hhX:+100:0:2: ++%2hhX:+0X100:1:2:0: ++%*2hhX:+0X100:0:2: ++%2hhX:+0x100:1:2:0: ++%*2hhX:+0x100:0:2: ++%2hhX:+129:1:2:1: ++%*2hhX:+129:0:2: ++%2hhX:+0X129:1:2:0: ++%*2hhX:+0X129:0:2: ++%2hhX:+0x129:1:2:0: ++%*2hhX:+0x129:0:2: ++%3hhX::0:-1: ++%*3hhX::0:-1: ++%3hhX:-7b:1:3:133: ++%*3hhX:-7b:0:3: ++%3hhX:-7B:1:3:133: ++%*3hhX:-7B:0:3: ++# BZ12701 %3hhX:-0X7b:0:-1: ++# BZ12701 %*3hhX:-0X7b:0:-1: ++# BZ12701 %3hhX:-0x7B:0:-1: ++# BZ12701 %*3hhX:-0x7B:0:-1: ++%3hhX:-1:1:2:255: ++%*3hhX:-1:0:2: ++# BZ12701 %3hhX:-0X1:0:-1: ++# BZ12701 %*3hhX:-0X1:0:-1: ++# BZ12701 %3hhX:-0x1:0:-1: ++# BZ12701 %*3hhX:-0x1:0:-1: ++%3hhX:-0:1:2:0: ++%*3hhX:-0:0:2: ++# BZ12701 %3hhX:-0X0:0:-1: ++# BZ12701 %*3hhX:-0X0:0:-1: ++# BZ12701 %3hhX:-0x0:0:-1: ++# BZ12701 %*3hhX:-0x0:0:-1: ++%3hhX:0:1:1:0: ++%*3hhX:0:0:1: ++%3hhX:0X0:1:3:0: ++%*3hhX:0X0:0:3: ++%3hhX:0x0:1:3:0: ++%*3hhX:0x0:0:3: ++%3hhX:1:1:1:1: ++%*3hhX:1:0:1: ++%3hhX:0X1:1:3:1: ++%*3hhX:0X1:0:3: ++%3hhX:0x1:1:3:1: ++%*3hhX:0x1:0:3: ++%3hhX:2a:1:2:42: ++%*3hhX:2a:0:2: ++%3hhX:2A:1:2:42: ++%*3hhX:2A:0:2: ++%3hhX:0X2a:1:3:2: ++%*3hhX:0X2a:0:3: ++%3hhX:0x2A:1:3:2: ++%*3hhX:0x2A:0:3: ++%3hhX:ff:1:2:255: ++%*3hhX:ff:0:2: ++%3hhX:FF:1:2:255: ++%*3hhX:FF:0:2: ++%3hhX:0Xff:1:3:15: ++%*3hhX:0Xff:0:3: ++%3hhX:0xFF:1:3:15: ++%*3hhX:0xFF:0:3: ++%3hhX:100:1:3:0: ++%*3hhX:100:0:3: ++%3hhX:0X100:1:3:1: ++%*3hhX:0X100:0:3: ++%3hhX:0x100:1:3:1: ++%*3hhX:0x100:0:3: ++%3hhX:129:1:3:41: ++%*3hhX:129:0:3: ++%3hhX:0X129:1:3:1: ++%*3hhX:0X129:0:3: ++%3hhX:0x129:1:3:1: ++%*3hhX:0x129:0:3: ++%3hhX:+0:1:2:0: ++%*3hhX:+0:0:2: ++# BZ12701 %3hhX:+0X0:0:-1: ++# BZ12701 %*3hhX:+0X0:0:-1: ++# BZ12701 %3hhX:+0x0:0:-1: ++# BZ12701 %*3hhX:+0x0:0:-1: ++%3hhX:+1:1:2:1: ++%*3hhX:+1:0:2: ++# BZ12701 %3hhX:+0X1:0:-1: ++# BZ12701 %*3hhX:+0X1:0:-1: ++# BZ12701 %3hhX:+0x1:0:-1: ++# BZ12701 %*3hhX:+0x1:0:-1: ++%3hhX:+2a:1:3:42: ++%*3hhX:+2a:0:3: ++%3hhX:+2A:1:3:42: ++%*3hhX:+2A:0:3: ++# BZ12701 %3hhX:+0X2a:0:-1: ++# BZ12701 %*3hhX:+0X2a:0:-1: ++# BZ12701 %3hhX:+0x2A:0:-1: ++# BZ12701 %*3hhX:+0x2A:0:-1: ++%3hhX:+ff:1:3:255: ++%*3hhX:+ff:0:3: ++%3hhX:+FF:1:3:255: ++%*3hhX:+FF:0:3: ++# BZ12701 %3hhX:+0Xff:0:-1: ++# BZ12701 %*3hhX:+0Xff:0:-1: ++# BZ12701 %3hhX:+0xFF:0:-1: ++# BZ12701 %*3hhX:+0xFF:0:-1: ++%3hhX:+100:1:3:16: ++%*3hhX:+100:0:3: ++# BZ12701 %3hhX:+0X100:0:-1: ++# BZ12701 %*3hhX:+0X100:0:-1: ++# BZ12701 %3hhX:+0x100:0:-1: ++# BZ12701 %*3hhX:+0x100:0:-1: ++%3hhX:+129:1:3:18: ++%*3hhX:+129:0:3: ++# BZ12701 %3hhX:+0X129:0:-1: ++# BZ12701 %*3hhX:+0X129:0:-1: ++# BZ12701 %3hhX:+0x129:0:-1: ++# BZ12701 %*3hhX:+0x129:0:-1: ++%5hhX::0:-1: ++%*5hhX::0:-1: ++%5hhX:-7b:1:3:133: ++%*5hhX:-7b:0:3: ++%5hhX:-7B:1:3:133: ++%*5hhX:-7B:0:3: ++%5hhX:-0X7b:1:5:133: ++%*5hhX:-0X7b:0:5: ++%5hhX:-0x7B:1:5:133: ++%*5hhX:-0x7B:0:5: ++%5hhX:-1:1:2:255: ++%*5hhX:-1:0:2: ++%5hhX:-0X1:1:4:255: ++%*5hhX:-0X1:0:4: ++%5hhX:-0x1:1:4:255: ++%*5hhX:-0x1:0:4: ++%5hhX:-0:1:2:0: ++%*5hhX:-0:0:2: ++%5hhX:-0X0:1:4:0: ++%*5hhX:-0X0:0:4: ++%5hhX:-0x0:1:4:0: ++%*5hhX:-0x0:0:4: ++%5hhX:0:1:1:0: ++%*5hhX:0:0:1: ++%5hhX:0X0:1:3:0: ++%*5hhX:0X0:0:3: ++%5hhX:0x0:1:3:0: ++%*5hhX:0x0:0:3: ++%5hhX:1:1:1:1: ++%*5hhX:1:0:1: ++%5hhX:0X1:1:3:1: ++%*5hhX:0X1:0:3: ++%5hhX:0x1:1:3:1: ++%*5hhX:0x1:0:3: ++%5hhX:2a:1:2:42: ++%*5hhX:2a:0:2: ++%5hhX:2A:1:2:42: ++%*5hhX:2A:0:2: ++%5hhX:0X2a:1:4:42: ++%*5hhX:0X2a:0:4: ++%5hhX:0x2A:1:4:42: ++%*5hhX:0x2A:0:4: ++%5hhX:ff:1:2:255: ++%*5hhX:ff:0:2: ++%5hhX:FF:1:2:255: ++%*5hhX:FF:0:2: ++%5hhX:0Xff:1:4:255: ++%*5hhX:0Xff:0:4: ++%5hhX:0xFF:1:4:255: ++%*5hhX:0xFF:0:4: ++%5hhX:100:1:3:0: ++%*5hhX:100:0:3: ++%5hhX:0X100:1:5:0: ++%*5hhX:0X100:0:5: ++%5hhX:0x100:1:5:0: ++%*5hhX:0x100:0:5: ++%5hhX:129:1:3:41: ++%*5hhX:129:0:3: ++%5hhX:0X129:1:5:41: ++%*5hhX:0X129:0:5: ++%5hhX:0x129:1:5:41: ++%*5hhX:0x129:0:5: ++%5hhX:+0:1:2:0: ++%*5hhX:+0:0:2: ++%5hhX:+0X0:1:4:0: ++%*5hhX:+0X0:0:4: ++%5hhX:+0x0:1:4:0: ++%*5hhX:+0x0:0:4: ++%5hhX:+1:1:2:1: ++%*5hhX:+1:0:2: ++%5hhX:+0X1:1:4:1: ++%*5hhX:+0X1:0:4: ++%5hhX:+0x1:1:4:1: ++%*5hhX:+0x1:0:4: ++%5hhX:+2a:1:3:42: ++%*5hhX:+2a:0:3: ++%5hhX:+2A:1:3:42: ++%*5hhX:+2A:0:3: ++%5hhX:+0X2a:1:5:42: ++%*5hhX:+0X2a:0:5: ++%5hhX:+0x2A:1:5:42: ++%*5hhX:+0x2A:0:5: ++%5hhX:+ff:1:3:255: ++%*5hhX:+ff:0:3: ++%5hhX:+FF:1:3:255: ++%*5hhX:+FF:0:3: ++%5hhX:+0Xff:1:5:255: ++%*5hhX:+0Xff:0:5: ++%5hhX:+0xFF:1:5:255: ++%*5hhX:+0xFF:0:5: ++%5hhX:+100:1:4:0: ++%*5hhX:+100:0:4: ++%5hhX:+0X100:1:5:16: ++%*5hhX:+0X100:0:5: ++%5hhX:+0x100:1:5:16: ++%*5hhX:+0x100:0:5: ++%5hhX:+129:1:4:41: ++%*5hhX:+129:0:4: ++%5hhX:+0X129:1:5:18: ++%*5hhX:+0X129:0:5: ++%5hhX:+0x129:1:5:18: ++%*5hhX:+0x129:0:5: ++%2hhX: :0:-1: ++%*2hhX: :0:-1: ++%2hhX: -7b:1:3:249: ++%*2hhX: -7b:0:3: ++%2hhX: -7B:1:3:249: ++%*2hhX: -7B:0:3: ++%2hhX: -0X7b:1:3:0: ++%*2hhX: -0X7b:0:3: ++%2hhX: -0x7B:1:3:0: ++%*2hhX: -0x7B:0:3: ++%2hhX: -1:1:3:255: ++%*2hhX: -1:0:3: ++%2hhX: -0X1:1:3:0: ++%*2hhX: -0X1:0:3: ++%2hhX: -0x1:1:3:0: ++%*2hhX: -0x1:0:3: ++%2hhX: -0:1:3:0: ++%*2hhX: -0:0:3: ++%2hhX: -0X0:1:3:0: ++%*2hhX: -0X0:0:3: ++%2hhX: -0x0:1:3:0: ++%*2hhX: -0x0:0:3: ++%2hhX: 0:1:2:0: ++%*2hhX: 0:0:2: ++# BZ12701 %2hhX: 0X0:0:-1: ++# BZ12701 %*2hhX: 0X0:0:-1: ++# BZ12701 %2hhX: 0x0:0:-1: ++# BZ12701 %*2hhX: 0x0:0:-1: ++%2hhX: 1:1:2:1: ++%*2hhX: 1:0:2: ++# BZ12701 %2hhX: 0X1:0:-1: ++# BZ12701 %*2hhX: 0X1:0:-1: ++# BZ12701 %2hhX: 0x1:0:-1: ++# BZ12701 %*2hhX: 0x1:0:-1: ++%2hhX: 2a:1:3:42: ++%*2hhX: 2a:0:3: ++%2hhX: 2A:1:3:42: ++%*2hhX: 2A:0:3: ++# BZ12701 %2hhX: 0X2a:0:-1: ++# BZ12701 %*2hhX: 0X2a:0:-1: ++# BZ12701 %2hhX: 0x2A:0:-1: ++# BZ12701 %*2hhX: 0x2A:0:-1: ++%2hhX: ff:1:3:255: ++%*2hhX: ff:0:3: ++%2hhX: FF:1:3:255: ++%*2hhX: FF:0:3: ++# BZ12701 %2hhX: 0Xff:0:-1: ++# BZ12701 %*2hhX: 0Xff:0:-1: ++# BZ12701 %2hhX: 0xFF:0:-1: ++# BZ12701 %*2hhX: 0xFF:0:-1: ++%2hhX: 100:1:3:16: ++%*2hhX: 100:0:3: ++# BZ12701 %2hhX: 0X100:0:-1: ++# BZ12701 %*2hhX: 0X100:0:-1: ++# BZ12701 %2hhX: 0x100:0:-1: ++# BZ12701 %*2hhX: 0x100:0:-1: ++%2hhX: 129:1:3:18: ++%*2hhX: 129:0:3: ++# BZ12701 %2hhX: 0X129:0:-1: ++# BZ12701 %*2hhX: 0X129:0:-1: ++# BZ12701 %2hhX: 0x129:0:-1: ++# BZ12701 %*2hhX: 0x129:0:-1: ++%2hhX: +0:1:3:0: ++%*2hhX: +0:0:3: ++%2hhX: +0X0:1:3:0: ++%*2hhX: +0X0:0:3: ++%2hhX: +0x0:1:3:0: ++%*2hhX: +0x0:0:3: ++%2hhX: +1:1:3:1: ++%*2hhX: +1:0:3: ++%2hhX: +0X1:1:3:0: ++%*2hhX: +0X1:0:3: ++%2hhX: +0x1:1:3:0: ++%*2hhX: +0x1:0:3: ++%2hhX: +2a:1:3:2: ++%*2hhX: +2a:0:3: ++%2hhX: +2A:1:3:2: ++%*2hhX: +2A:0:3: ++%2hhX: +0X2a:1:3:0: ++%*2hhX: +0X2a:0:3: ++%2hhX: +0x2A:1:3:0: ++%*2hhX: +0x2A:0:3: ++%2hhX: +ff:1:3:15: ++%*2hhX: +ff:0:3: ++%2hhX: +FF:1:3:15: ++%*2hhX: +FF:0:3: ++%2hhX: +0Xff:1:3:0: ++%*2hhX: +0Xff:0:3: ++%2hhX: +0xFF:1:3:0: ++%*2hhX: +0xFF:0:3: ++%2hhX: +100:1:3:1: ++%*2hhX: +100:0:3: ++%2hhX: +0X100:1:3:0: ++%*2hhX: +0X100:0:3: ++%2hhX: +0x100:1:3:0: ++%*2hhX: +0x100:0:3: ++%2hhX: +129:1:3:1: ++%*2hhX: +129:0:3: ++%2hhX: +0X129:1:3:0: ++%*2hhX: +0X129:0:3: ++%2hhX: +0x129:1:3:0: ++%*2hhX: +0x129:0:3: ++%5hhX: :0:-1: ++%*5hhX: :0:-1: ++%5hhX: -7b:1:4:133: ++%*5hhX: -7b:0:4: ++%5hhX: -7B:1:4:133: ++%*5hhX: -7B:0:4: ++%5hhX: -0X7b:1:6:133: ++%*5hhX: -0X7b:0:6: ++%5hhX: -0x7B:1:6:133: ++%*5hhX: -0x7B:0:6: ++%5hhX: -1:1:3:255: ++%*5hhX: -1:0:3: ++%5hhX: -0X1:1:5:255: ++%*5hhX: -0X1:0:5: ++%5hhX: -0x1:1:5:255: ++%*5hhX: -0x1:0:5: ++%5hhX: -0:1:3:0: ++%*5hhX: -0:0:3: ++%5hhX: -0X0:1:5:0: ++%*5hhX: -0X0:0:5: ++%5hhX: -0x0:1:5:0: ++%*5hhX: -0x0:0:5: ++%5hhX: 0:1:2:0: ++%*5hhX: 0:0:2: ++%5hhX: 0X0:1:4:0: ++%*5hhX: 0X0:0:4: ++%5hhX: 0x0:1:4:0: ++%*5hhX: 0x0:0:4: ++%5hhX: 1:1:2:1: ++%*5hhX: 1:0:2: ++%5hhX: 0X1:1:4:1: ++%*5hhX: 0X1:0:4: ++%5hhX: 0x1:1:4:1: ++%*5hhX: 0x1:0:4: ++%5hhX: 2a:1:3:42: ++%*5hhX: 2a:0:3: ++%5hhX: 2A:1:3:42: ++%*5hhX: 2A:0:3: ++%5hhX: 0X2a:1:5:42: ++%*5hhX: 0X2a:0:5: ++%5hhX: 0x2A:1:5:42: ++%*5hhX: 0x2A:0:5: ++%5hhX: ff:1:3:255: ++%*5hhX: ff:0:3: ++%5hhX: FF:1:3:255: ++%*5hhX: FF:0:3: ++%5hhX: 0Xff:1:5:255: ++%*5hhX: 0Xff:0:5: ++%5hhX: 0xFF:1:5:255: ++%*5hhX: 0xFF:0:5: ++%5hhX: 100:1:4:0: ++%*5hhX: 100:0:4: ++%5hhX: 0X100:1:6:0: ++%*5hhX: 0X100:0:6: ++%5hhX: 0x100:1:6:0: ++%*5hhX: 0x100:0:6: ++%5hhX: 129:1:4:41: ++%*5hhX: 129:0:4: ++%5hhX: 0X129:1:6:41: ++%*5hhX: 0X129:0:6: ++%5hhX: 0x129:1:6:41: ++%*5hhX: 0x129:0:6: ++%5hhX: +0:1:3:0: ++%*5hhX: +0:0:3: ++%5hhX: +0X0:1:5:0: ++%*5hhX: +0X0:0:5: ++%5hhX: +0x0:1:5:0: ++%*5hhX: +0x0:0:5: ++%5hhX: +1:1:3:1: ++%*5hhX: +1:0:3: ++%5hhX: +0X1:1:5:1: ++%*5hhX: +0X1:0:5: ++%5hhX: +0x1:1:5:1: ++%*5hhX: +0x1:0:5: ++%5hhX: +2a:1:4:42: ++%*5hhX: +2a:0:4: ++%5hhX: +2A:1:4:42: ++%*5hhX: +2A:0:4: ++%5hhX: +0X2a:1:6:42: ++%*5hhX: +0X2a:0:6: ++%5hhX: +0x2A:1:6:42: ++%*5hhX: +0x2A:0:6: ++%5hhX: +ff:1:4:255: ++%*5hhX: +ff:0:4: ++%5hhX: +FF:1:4:255: ++%*5hhX: +FF:0:4: ++%5hhX: +0Xff:1:6:255: ++%*5hhX: +0Xff:0:6: ++%5hhX: +0xFF:1:6:255: ++%*5hhX: +0xFF:0:6: ++%5hhX: +100:1:5:0: ++%*5hhX: +100:0:5: ++%5hhX: +0X100:1:6:16: ++%*5hhX: +0X100:0:6: ++%5hhX: +0x100:1:6:16: ++%*5hhX: +0x100:0:6: ++%5hhX: +129:1:5:41: ++%*5hhX: +129:0:5: ++%5hhX: +0X129:1:6:18: ++%*5hhX: +0X129:0:6: ++%5hhX: +0x129:1:6:18: ++%*5hhX: +0x129:0:6: +diff --git a/stdio-common/tst-scanf-format-ullong-b.input b/stdio-common/tst-scanf-format-ullong-b.input +new file mode 100644 +index 0000000000000000..57b83f01c2c91f7a +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ullong-b.input +@@ -0,0 +1,644 @@ ++%llb::0:-1: ++%*llb::0:-1: ++%llb:-1111011:1:8:-123: ++%*llb:-1111011:0:8: ++%llb:-0B1111011:1:10:-123: ++%*llb:-0B1111011:0:10: ++%llb:-0b1111011:1:10:-123: ++%*llb:-0b1111011:0:10: ++%llb:-1:1:2:-1: ++%*llb:-1:0:2: ++%llb:-0B1:1:4:-1: ++%*llb:-0B1:0:4: ++%llb:-0b1:1:4:-1: ++%*llb:-0b1:0:4: ++%llb:-0:1:2:0: ++%*llb:-0:0:2: ++%llb:-0B0:1:4:0: ++%*llb:-0B0:0:4: ++%llb:-0b0:1:4:0: ++%*llb:-0b0:0:4: ++%llb:0:1:1:0: ++%*llb:0:0:1: ++%llb:0B0:1:3:0: ++%*llb:0B0:0:3: ++%llb:0b0:1:3:0: ++%*llb:0b0:0:3: ++%llb:1:1:1:1: ++%*llb:1:0:1: ++%llb:0B1:1:3:1: ++%*llb:0B1:0:3: ++%llb:0b1:1:3:1: ++%*llb:0b1:0:3: ++%llb:101010:1:6:42: ++%*llb:101010:0:6: ++%llb:0B101010:1:8:42: ++%*llb:0B101010:0:8: ++%llb:0b101010:1:8:42: ++%*llb:0b101010:0:8: ++%llb:1111111111111111111111111111111111111111111111111111111111111111:1:64:18446744073709551615: ++%*llb:1111111111111111111111111111111111111111111111111111111111111111:0:64: ++%llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: ++%*llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:66: ++%llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: ++%*llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:66: ++%llb:10000000000000000000000000000000000000000000000000000000000000000:1:65:18446744073709551615: ++%*llb:10000000000000000000000000000000000000000000000000000000000000000:0:65: ++%llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: ++%*llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:67: ++%llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: ++%*llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:67: ++%llb:10000000000000000000000000000000000000010100001110101011110110001:1:65:18446744073709551615: ++%*llb:10000000000000000000000000000000000000010100001110101011110110001:0:65: ++%llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: ++%*llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:67: ++%llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: ++%*llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:67: ++%llb:+0:1:2:0: ++%*llb:+0:0:2: ++%llb:+0B0:1:4:0: ++%*llb:+0B0:0:4: ++%llb:+0b0:1:4:0: ++%*llb:+0b0:0:4: ++%llb:+1:1:2:1: ++%*llb:+1:0:2: ++%llb:+0B1:1:4:1: ++%*llb:+0B1:0:4: ++%llb:+0b1:1:4:1: ++%*llb:+0b1:0:4: ++%llb:+101010:1:7:42: ++%*llb:+101010:0:7: ++%llb:+0B101010:1:9:42: ++%*llb:+0B101010:0:9: ++%llb:+0b101010:1:9:42: ++%*llb:+0b101010:0:9: ++%llb:+1111111111111111111111111111111111111111111111111111111111111111:1:65:18446744073709551615: ++%*llb:+1111111111111111111111111111111111111111111111111111111111111111:0:65: ++%llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: ++%*llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:67: ++%llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: ++%*llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:67: ++%llb:+10000000000000000000000000000000000000000000000000000000000000000:1:66:18446744073709551615: ++%*llb:+10000000000000000000000000000000000000000000000000000000000000000:0:66: ++%llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: ++%*llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:68: ++%llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: ++%*llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:68: ++%llb:+10000000000000000000000000000000000000010100001110101011110110001:1:66:18446744073709551615: ++%*llb:+10000000000000000000000000000000000000010100001110101011110110001:0:66: ++%llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: ++%*llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:68: ++%llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: ++%*llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:68: ++%1llb::0:-1: ++%*1llb::0:-1: ++%1llb:-1111011:0:-1: ++%*1llb:-1111011:0:-1: ++%1llb:-0B1111011:0:-1: ++%*1llb:-0B1111011:0:-1: ++%1llb:-0b1111011:0:-1: ++%*1llb:-0b1111011:0:-1: ++%1llb:-1:0:-1: ++%*1llb:-1:0:-1: ++%1llb:-0B1:0:-1: ++%*1llb:-0B1:0:-1: ++%1llb:-0b1:0:-1: ++%*1llb:-0b1:0:-1: ++%1llb:-0:0:-1: ++%*1llb:-0:0:-1: ++%1llb:-0B0:0:-1: ++%*1llb:-0B0:0:-1: ++%1llb:-0b0:0:-1: ++%*1llb:-0b0:0:-1: ++%1llb:0:1:1:0: ++%*1llb:0:0:1: ++%1llb:0B0:1:1:0: ++%*1llb:0B0:0:1: ++%1llb:0b0:1:1:0: ++%*1llb:0b0:0:1: ++%1llb:1:1:1:1: ++%*1llb:1:0:1: ++%1llb:0B1:1:1:0: ++%*1llb:0B1:0:1: ++%1llb:0b1:1:1:0: ++%*1llb:0b1:0:1: ++%1llb:101010:1:1:1: ++%*1llb:101010:0:1: ++%1llb:0B101010:1:1:0: ++%*1llb:0B101010:0:1: ++%1llb:0b101010:1:1:0: ++%*1llb:0b101010:0:1: ++%1llb:1111111111111111111111111111111111111111111111111111111111111111:1:1:1: ++%*1llb:1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1llb:10000000000000000000000000000000000000000000000000000000000000000:1:1:1: ++%*1llb:10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1llb:10000000000000000000000000000000000000010100001110101011110110001:1:1:1: ++%*1llb:10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1llb:+0:0:-1: ++%*1llb:+0:0:-1: ++%1llb:+0B0:0:-1: ++%*1llb:+0B0:0:-1: ++%1llb:+0b0:0:-1: ++%*1llb:+0b0:0:-1: ++%1llb:+1:0:-1: ++%*1llb:+1:0:-1: ++%1llb:+0B1:0:-1: ++%*1llb:+0B1:0:-1: ++%1llb:+0b1:0:-1: ++%*1llb:+0b1:0:-1: ++%1llb:+101010:0:-1: ++%*1llb:+101010:0:-1: ++%1llb:+0B101010:0:-1: ++%*1llb:+0B101010:0:-1: ++%1llb:+0b101010:0:-1: ++%*1llb:+0b101010:0:-1: ++%1llb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1llb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1llb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1llb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1llb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1llb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2llb::0:-1: ++%*2llb::0:-1: ++%2llb:-1111011:1:2:-1: ++%*2llb:-1111011:0:2: ++%2llb:-0B1111011:1:2:0: ++%*2llb:-0B1111011:0:2: ++%2llb:-0b1111011:1:2:0: ++%*2llb:-0b1111011:0:2: ++%2llb:-1:1:2:-1: ++%*2llb:-1:0:2: ++%2llb:-0B1:1:2:0: ++%*2llb:-0B1:0:2: ++%2llb:-0b1:1:2:0: ++%*2llb:-0b1:0:2: ++%2llb:-0:1:2:0: ++%*2llb:-0:0:2: ++%2llb:-0B0:1:2:0: ++%*2llb:-0B0:0:2: ++%2llb:-0b0:1:2:0: ++%*2llb:-0b0:0:2: ++%2llb:0:1:1:0: ++%*2llb:0:0:1: ++# BZ12701 %2llb:0B0:0:-1: ++# BZ12701 %*2llb:0B0:0:-1: ++# BZ12701 %2llb:0b0:0:-1: ++# BZ12701 %*2llb:0b0:0:-1: ++%2llb:1:1:1:1: ++%*2llb:1:0:1: ++# BZ12701 %2llb:0B1:0:-1: ++# BZ12701 %*2llb:0B1:0:-1: ++# BZ12701 %2llb:0b1:0:-1: ++# BZ12701 %*2llb:0b1:0:-1: ++%2llb:101010:1:2:2: ++%*2llb:101010:0:2: ++# BZ12701 %2llb:0B101010:0:-1: ++# BZ12701 %*2llb:0B101010:0:-1: ++# BZ12701 %2llb:0b101010:0:-1: ++# BZ12701 %*2llb:0b101010:0:-1: ++%2llb:1111111111111111111111111111111111111111111111111111111111111111:1:2:3: ++%*2llb:1111111111111111111111111111111111111111111111111111111111111111:0:2: ++# BZ12701 %2llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2llb:10000000000000000000000000000000000000000000000000000000000000000:1:2:2: ++%*2llb:10000000000000000000000000000000000000000000000000000000000000000:0:2: ++# BZ12701 %2llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2llb:10000000000000000000000000000000000000010100001110101011110110001:1:2:2: ++%*2llb:10000000000000000000000000000000000000010100001110101011110110001:0:2: ++# BZ12701 %2llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2llb:+0:1:2:0: ++%*2llb:+0:0:2: ++%2llb:+0B0:1:2:0: ++%*2llb:+0B0:0:2: ++%2llb:+0b0:1:2:0: ++%*2llb:+0b0:0:2: ++%2llb:+1:1:2:1: ++%*2llb:+1:0:2: ++%2llb:+0B1:1:2:0: ++%*2llb:+0B1:0:2: ++%2llb:+0b1:1:2:0: ++%*2llb:+0b1:0:2: ++%2llb:+101010:1:2:1: ++%*2llb:+101010:0:2: ++%2llb:+0B101010:1:2:0: ++%*2llb:+0B101010:0:2: ++%2llb:+0b101010:1:2:0: ++%*2llb:+0b101010:0:2: ++%2llb:+1111111111111111111111111111111111111111111111111111111111111111:1:2:1: ++%*2llb:+1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2llb:+10000000000000000000000000000000000000000000000000000000000000000:1:2:1: ++%*2llb:+10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2llb:+10000000000000000000000000000000000000010100001110101011110110001:1:2:1: ++%*2llb:+10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%15llb::0:-1: ++%*15llb::0:-1: ++%15llb:-1111011:1:8:-123: ++%*15llb:-1111011:0:8: ++%15llb:-0B1111011:1:10:-123: ++%*15llb:-0B1111011:0:10: ++%15llb:-0b1111011:1:10:-123: ++%*15llb:-0b1111011:0:10: ++%15llb:-1:1:2:-1: ++%*15llb:-1:0:2: ++%15llb:-0B1:1:4:-1: ++%*15llb:-0B1:0:4: ++%15llb:-0b1:1:4:-1: ++%*15llb:-0b1:0:4: ++%15llb:-0:1:2:0: ++%*15llb:-0:0:2: ++%15llb:-0B0:1:4:0: ++%*15llb:-0B0:0:4: ++%15llb:-0b0:1:4:0: ++%*15llb:-0b0:0:4: ++%15llb:0:1:1:0: ++%*15llb:0:0:1: ++%15llb:0B0:1:3:0: ++%*15llb:0B0:0:3: ++%15llb:0b0:1:3:0: ++%*15llb:0b0:0:3: ++%15llb:1:1:1:1: ++%*15llb:1:0:1: ++%15llb:0B1:1:3:1: ++%*15llb:0B1:0:3: ++%15llb:0b1:1:3:1: ++%*15llb:0b1:0:3: ++%15llb:101010:1:6:42: ++%*15llb:101010:0:6: ++%15llb:0B101010:1:8:42: ++%*15llb:0B101010:0:8: ++%15llb:0b101010:1:8:42: ++%*15llb:0b101010:0:8: ++%15llb:1111111111111111111111111111111111111111111111111111111111111111:1:15:32767: ++%*15llb:1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:10000000000000000000000000000000000000000000000000000000000000000:1:15:16384: ++%*15llb:10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:10000000000000000000000000000000000000010100001110101011110110001:1:15:16384: ++%*15llb:10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15llb:+0:1:2:0: ++%*15llb:+0:0:2: ++%15llb:+0B0:1:4:0: ++%*15llb:+0B0:0:4: ++%15llb:+0b0:1:4:0: ++%*15llb:+0b0:0:4: ++%15llb:+1:1:2:1: ++%*15llb:+1:0:2: ++%15llb:+0B1:1:4:1: ++%*15llb:+0B1:0:4: ++%15llb:+0b1:1:4:1: ++%*15llb:+0b1:0:4: ++%15llb:+101010:1:7:42: ++%*15llb:+101010:0:7: ++%15llb:+0B101010:1:9:42: ++%*15llb:+0B101010:0:9: ++%15llb:+0b101010:1:9:42: ++%*15llb:+0b101010:0:9: ++%15llb:+1111111111111111111111111111111111111111111111111111111111111111:1:15:16383: ++%*15llb:+1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15llb:+10000000000000000000000000000000000000000000000000000000000000000:1:15:8192: ++%*15llb:+10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15llb:+10000000000000000000000000000000000000010100001110101011110110001:1:15:8192: ++%*15llb:+10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%25llb::0:-1: ++%*25llb::0:-1: ++%25llb:-1111011:1:8:-123: ++%*25llb:-1111011:0:8: ++%25llb:-0B1111011:1:10:-123: ++%*25llb:-0B1111011:0:10: ++%25llb:-0b1111011:1:10:-123: ++%*25llb:-0b1111011:0:10: ++%25llb:-1:1:2:-1: ++%*25llb:-1:0:2: ++%25llb:-0B1:1:4:-1: ++%*25llb:-0B1:0:4: ++%25llb:-0b1:1:4:-1: ++%*25llb:-0b1:0:4: ++%25llb:-0:1:2:0: ++%*25llb:-0:0:2: ++%25llb:-0B0:1:4:0: ++%*25llb:-0B0:0:4: ++%25llb:-0b0:1:4:0: ++%*25llb:-0b0:0:4: ++%25llb:0:1:1:0: ++%*25llb:0:0:1: ++%25llb:0B0:1:3:0: ++%*25llb:0B0:0:3: ++%25llb:0b0:1:3:0: ++%*25llb:0b0:0:3: ++%25llb:1:1:1:1: ++%*25llb:1:0:1: ++%25llb:0B1:1:3:1: ++%*25llb:0B1:0:3: ++%25llb:0b1:1:3:1: ++%*25llb:0b1:0:3: ++%25llb:101010:1:6:42: ++%*25llb:101010:0:6: ++%25llb:0B101010:1:8:42: ++%*25llb:0B101010:0:8: ++%25llb:0b101010:1:8:42: ++%*25llb:0b101010:0:8: ++%25llb:1111111111111111111111111111111111111111111111111111111111111111:1:25:33554431: ++%*25llb:1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:0B1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25llb:0B1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:0b1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25llb:0b1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:10000000000000000000000000000000000000000000000000000000000000000:1:25:16777216: ++%*25llb:10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:0B10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25llb:0B10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:0b10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25llb:0b10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:10000000000000000000000000000000000000010100001110101011110110001:1:25:16777216: ++%*25llb:10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25llb:0B10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25llb:0B10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25llb:0b10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25llb:0b10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25llb:+0:1:2:0: ++%*25llb:+0:0:2: ++%25llb:+0B0:1:4:0: ++%*25llb:+0B0:0:4: ++%25llb:+0b0:1:4:0: ++%*25llb:+0b0:0:4: ++%25llb:+1:1:2:1: ++%*25llb:+1:0:2: ++%25llb:+0B1:1:4:1: ++%*25llb:+0B1:0:4: ++%25llb:+0b1:1:4:1: ++%*25llb:+0b1:0:4: ++%25llb:+101010:1:7:42: ++%*25llb:+101010:0:7: ++%25llb:+0B101010:1:9:42: ++%*25llb:+0B101010:0:9: ++%25llb:+0b101010:1:9:42: ++%*25llb:+0b101010:0:9: ++%25llb:+1111111111111111111111111111111111111111111111111111111111111111:1:25:16777215: ++%*25llb:+1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25llb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25llb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25llb:+10000000000000000000000000000000000000000000000000000000000000000:1:25:8388608: ++%*25llb:+10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25llb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25llb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25llb:+10000000000000000000000000000000000000010100001110101011110110001:1:25:8388608: ++%*25llb:+10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25llb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25llb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25llb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25llb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%2llb: :0:-1: ++%*2llb: :0:-1: ++%2llb: -1111011:1:3:-1: ++%*2llb: -1111011:0:3: ++%2llb: -0B1111011:1:3:0: ++%*2llb: -0B1111011:0:3: ++%2llb: -0b1111011:1:3:0: ++%*2llb: -0b1111011:0:3: ++%2llb: -1:1:3:-1: ++%*2llb: -1:0:3: ++%2llb: -0B1:1:3:0: ++%*2llb: -0B1:0:3: ++%2llb: -0b1:1:3:0: ++%*2llb: -0b1:0:3: ++%2llb: -0:1:3:0: ++%*2llb: -0:0:3: ++%2llb: -0B0:1:3:0: ++%*2llb: -0B0:0:3: ++%2llb: -0b0:1:3:0: ++%*2llb: -0b0:0:3: ++%2llb: 0:1:2:0: ++%*2llb: 0:0:2: ++# BZ12701 %2llb: 0B0:0:-1: ++# BZ12701 %*2llb: 0B0:0:-1: ++# BZ12701 %2llb: 0b0:0:-1: ++# BZ12701 %*2llb: 0b0:0:-1: ++%2llb: 1:1:2:1: ++%*2llb: 1:0:2: ++# BZ12701 %2llb: 0B1:0:-1: ++# BZ12701 %*2llb: 0B1:0:-1: ++# BZ12701 %2llb: 0b1:0:-1: ++# BZ12701 %*2llb: 0b1:0:-1: ++%2llb: 101010:1:3:2: ++%*2llb: 101010:0:3: ++# BZ12701 %2llb: 0B101010:0:-1: ++# BZ12701 %*2llb: 0B101010:0:-1: ++# BZ12701 %2llb: 0b101010:0:-1: ++# BZ12701 %*2llb: 0b101010:0:-1: ++%2llb: 1111111111111111111111111111111111111111111111111111111111111111:1:3:3: ++%*2llb: 1111111111111111111111111111111111111111111111111111111111111111:0:3: ++# BZ12701 %2llb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2llb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2llb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2llb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2llb: 10000000000000000000000000000000000000000000000000000000000000000:1:3:2: ++%*2llb: 10000000000000000000000000000000000000000000000000000000000000000:0:3: ++# BZ12701 %2llb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2llb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2llb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2llb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2llb: 10000000000000000000000000000000000000010100001110101011110110001:1:3:2: ++%*2llb: 10000000000000000000000000000000000000010100001110101011110110001:0:3: ++# BZ12701 %2llb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2llb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2llb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2llb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2llb: +0:1:3:0: ++%*2llb: +0:0:3: ++%2llb: +0B0:1:3:0: ++%*2llb: +0B0:0:3: ++%2llb: +0b0:1:3:0: ++%*2llb: +0b0:0:3: ++%2llb: +1:1:3:1: ++%*2llb: +1:0:3: ++%2llb: +0B1:1:3:0: ++%*2llb: +0B1:0:3: ++%2llb: +0b1:1:3:0: ++%*2llb: +0b1:0:3: ++%2llb: +101010:1:3:1: ++%*2llb: +101010:0:3: ++%2llb: +0B101010:1:3:0: ++%*2llb: +0B101010:0:3: ++%2llb: +0b101010:1:3:0: ++%*2llb: +0b101010:0:3: ++%2llb: +1111111111111111111111111111111111111111111111111111111111111111:1:3:1: ++%*2llb: +1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2llb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2llb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2llb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2llb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2llb: +10000000000000000000000000000000000000000000000000000000000000000:1:3:1: ++%*2llb: +10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2llb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2llb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2llb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2llb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2llb: +10000000000000000000000000000000000000010100001110101011110110001:1:3:1: ++%*2llb: +10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2llb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2llb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2llb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2llb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%25llb: :0:-1: ++%*25llb: :0:-1: ++%25llb: -1111011:1:9:-123: ++%*25llb: -1111011:0:9: ++%25llb: -0B1111011:1:11:-123: ++%*25llb: -0B1111011:0:11: ++%25llb: -0b1111011:1:11:-123: ++%*25llb: -0b1111011:0:11: ++%25llb: -1:1:3:-1: ++%*25llb: -1:0:3: ++%25llb: -0B1:1:5:-1: ++%*25llb: -0B1:0:5: ++%25llb: -0b1:1:5:-1: ++%*25llb: -0b1:0:5: ++%25llb: -0:1:3:0: ++%*25llb: -0:0:3: ++%25llb: -0B0:1:5:0: ++%*25llb: -0B0:0:5: ++%25llb: -0b0:1:5:0: ++%*25llb: -0b0:0:5: ++%25llb: 0:1:2:0: ++%*25llb: 0:0:2: ++%25llb: 0B0:1:4:0: ++%*25llb: 0B0:0:4: ++%25llb: 0b0:1:4:0: ++%*25llb: 0b0:0:4: ++%25llb: 1:1:2:1: ++%*25llb: 1:0:2: ++%25llb: 0B1:1:4:1: ++%*25llb: 0B1:0:4: ++%25llb: 0b1:1:4:1: ++%*25llb: 0b1:0:4: ++%25llb: 101010:1:7:42: ++%*25llb: 101010:0:7: ++%25llb: 0B101010:1:9:42: ++%*25llb: 0B101010:0:9: ++%25llb: 0b101010:1:9:42: ++%*25llb: 0b101010:0:9: ++%25llb: 1111111111111111111111111111111111111111111111111111111111111111:1:26:33554431: ++%*25llb: 1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: 0B1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25llb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: 0b1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25llb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: 10000000000000000000000000000000000000000000000000000000000000000:1:26:16777216: ++%*25llb: 10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: 0B10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25llb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: 0b10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25llb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: 10000000000000000000000000000000000000010100001110101011110110001:1:26:16777216: ++%*25llb: 10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25llb: 0B10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25llb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25llb: 0b10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25llb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25llb: +0:1:3:0: ++%*25llb: +0:0:3: ++%25llb: +0B0:1:5:0: ++%*25llb: +0B0:0:5: ++%25llb: +0b0:1:5:0: ++%*25llb: +0b0:0:5: ++%25llb: +1:1:3:1: ++%*25llb: +1:0:3: ++%25llb: +0B1:1:5:1: ++%*25llb: +0B1:0:5: ++%25llb: +0b1:1:5:1: ++%*25llb: +0b1:0:5: ++%25llb: +101010:1:8:42: ++%*25llb: +101010:0:8: ++%25llb: +0B101010:1:10:42: ++%*25llb: +0B101010:0:10: ++%25llb: +0b101010:1:10:42: ++%*25llb: +0b101010:0:10: ++%25llb: +1111111111111111111111111111111111111111111111111111111111111111:1:26:16777215: ++%*25llb: +1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25llb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25llb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25llb: +10000000000000000000000000000000000000000000000000000000000000000:1:26:8388608: ++%*25llb: +10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25llb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25llb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25llb: +10000000000000000000000000000000000000010100001110101011110110001:1:26:8388608: ++%*25llb: +10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25llb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25llb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25llb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25llb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/stdio-common/tst-scanf-format-ullong-o.input b/stdio-common/tst-scanf-format-ullong-o.input +new file mode 100644 +index 0000000000000000..98af9ced15bd9285 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ullong-o.input +@@ -0,0 +1,434 @@ ++%llo::0:-1: ++%*llo::0:-1: ++%llo:-173:1:4:-123: ++%*llo:-173:0:4: ++%llo:-0173:1:5:-123: ++%*llo:-0173:0:5: ++%llo:-1:1:2:-1: ++%*llo:-1:0:2: ++%llo:-01:1:3:-1: ++%*llo:-01:0:3: ++%llo:-0:1:2:0: ++%*llo:-0:0:2: ++%llo:-00:1:3:0: ++%*llo:-00:0:3: ++%llo:0:1:1:0: ++%*llo:0:0:1: ++%llo:00:1:2:0: ++%*llo:00:0:2: ++%llo:1:1:1:1: ++%*llo:1:0:1: ++%llo:01:1:2:1: ++%*llo:01:0:2: ++%llo:52:1:2:42: ++%*llo:52:0:2: ++%llo:052:1:3:42: ++%*llo:052:0:3: ++%llo:1777777777777777777777:1:22:18446744073709551615: ++%*llo:1777777777777777777777:0:22: ++%llo:01777777777777777777777:1:23:18446744073709551615: ++%*llo:01777777777777777777777:0:23: ++%llo:2000000000000000000000:1:22:18446744073709551615: ++%*llo:2000000000000000000000:0:22: ++%llo:02000000000000000000000:1:23:18446744073709551615: ++%*llo:02000000000000000000000:0:23: ++%llo:2000000000000241653661:1:22:18446744073709551615: ++%*llo:2000000000000241653661:0:22: ++%llo:02000000000000241653661:1:23:18446744073709551615: ++%*llo:02000000000000241653661:0:23: ++%llo:+0:1:2:0: ++%*llo:+0:0:2: ++%llo:+00:1:3:0: ++%*llo:+00:0:3: ++%llo:+1:1:2:1: ++%*llo:+1:0:2: ++%llo:+01:1:3:1: ++%*llo:+01:0:3: ++%llo:+52:1:3:42: ++%*llo:+52:0:3: ++%llo:+052:1:4:42: ++%*llo:+052:0:4: ++%llo:+1777777777777777777777:1:23:18446744073709551615: ++%*llo:+1777777777777777777777:0:23: ++%llo:+01777777777777777777777:1:24:18446744073709551615: ++%*llo:+01777777777777777777777:0:24: ++%llo:+2000000000000000000000:1:23:18446744073709551615: ++%*llo:+2000000000000000000000:0:23: ++%llo:+02000000000000000000000:1:24:18446744073709551615: ++%*llo:+02000000000000000000000:0:24: ++%llo:+2000000000000241653661:1:23:18446744073709551615: ++%*llo:+2000000000000241653661:0:23: ++%llo:+02000000000000241653661:1:24:18446744073709551615: ++%*llo:+02000000000000241653661:0:24: ++%1llo::0:-1: ++%*1llo::0:-1: ++%1llo:-173:0:-1: ++%*1llo:-173:0:-1: ++%1llo:-0173:0:-1: ++%*1llo:-0173:0:-1: ++%1llo:-1:0:-1: ++%*1llo:-1:0:-1: ++%1llo:-01:0:-1: ++%*1llo:-01:0:-1: ++%1llo:-0:0:-1: ++%*1llo:-0:0:-1: ++%1llo:-00:0:-1: ++%*1llo:-00:0:-1: ++%1llo:0:1:1:0: ++%*1llo:0:0:1: ++%1llo:00:1:1:0: ++%*1llo:00:0:1: ++%1llo:1:1:1:1: ++%*1llo:1:0:1: ++%1llo:01:1:1:0: ++%*1llo:01:0:1: ++%1llo:52:1:1:5: ++%*1llo:52:0:1: ++%1llo:052:1:1:0: ++%*1llo:052:0:1: ++%1llo:1777777777777777777777:1:1:1: ++%*1llo:1777777777777777777777:0:1: ++%1llo:01777777777777777777777:1:1:0: ++%*1llo:01777777777777777777777:0:1: ++%1llo:2000000000000000000000:1:1:2: ++%*1llo:2000000000000000000000:0:1: ++%1llo:02000000000000000000000:1:1:0: ++%*1llo:02000000000000000000000:0:1: ++%1llo:2000000000000241653661:1:1:2: ++%*1llo:2000000000000241653661:0:1: ++%1llo:02000000000000241653661:1:1:0: ++%*1llo:02000000000000241653661:0:1: ++%1llo:+0:0:-1: ++%*1llo:+0:0:-1: ++%1llo:+00:0:-1: ++%*1llo:+00:0:-1: ++%1llo:+1:0:-1: ++%*1llo:+1:0:-1: ++%1llo:+01:0:-1: ++%*1llo:+01:0:-1: ++%1llo:+52:0:-1: ++%*1llo:+52:0:-1: ++%1llo:+052:0:-1: ++%*1llo:+052:0:-1: ++%1llo:+1777777777777777777777:0:-1: ++%*1llo:+1777777777777777777777:0:-1: ++%1llo:+01777777777777777777777:0:-1: ++%*1llo:+01777777777777777777777:0:-1: ++%1llo:+2000000000000000000000:0:-1: ++%*1llo:+2000000000000000000000:0:-1: ++%1llo:+02000000000000000000000:0:-1: ++%*1llo:+02000000000000000000000:0:-1: ++%1llo:+2000000000000241653661:0:-1: ++%*1llo:+2000000000000241653661:0:-1: ++%1llo:+02000000000000241653661:0:-1: ++%*1llo:+02000000000000241653661:0:-1: ++%2llo::0:-1: ++%*2llo::0:-1: ++%2llo:-173:1:2:-1: ++%*2llo:-173:0:2: ++%2llo:-0173:1:2:0: ++%*2llo:-0173:0:2: ++%2llo:-1:1:2:-1: ++%*2llo:-1:0:2: ++%2llo:-01:1:2:0: ++%*2llo:-01:0:2: ++%2llo:-0:1:2:0: ++%*2llo:-0:0:2: ++%2llo:-00:1:2:0: ++%*2llo:-00:0:2: ++%2llo:0:1:1:0: ++%*2llo:0:0:1: ++%2llo:00:1:2:0: ++%*2llo:00:0:2: ++%2llo:1:1:1:1: ++%*2llo:1:0:1: ++%2llo:01:1:2:1: ++%*2llo:01:0:2: ++%2llo:52:1:2:42: ++%*2llo:52:0:2: ++%2llo:052:1:2:5: ++%*2llo:052:0:2: ++%2llo:1777777777777777777777:1:2:15: ++%*2llo:1777777777777777777777:0:2: ++%2llo:01777777777777777777777:1:2:1: ++%*2llo:01777777777777777777777:0:2: ++%2llo:2000000000000000000000:1:2:16: ++%*2llo:2000000000000000000000:0:2: ++%2llo:02000000000000000000000:1:2:2: ++%*2llo:02000000000000000000000:0:2: ++%2llo:2000000000000241653661:1:2:16: ++%*2llo:2000000000000241653661:0:2: ++%2llo:02000000000000241653661:1:2:2: ++%*2llo:02000000000000241653661:0:2: ++%2llo:+0:1:2:0: ++%*2llo:+0:0:2: ++%2llo:+00:1:2:0: ++%*2llo:+00:0:2: ++%2llo:+1:1:2:1: ++%*2llo:+1:0:2: ++%2llo:+01:1:2:0: ++%*2llo:+01:0:2: ++%2llo:+52:1:2:5: ++%*2llo:+52:0:2: ++%2llo:+052:1:2:0: ++%*2llo:+052:0:2: ++%2llo:+1777777777777777777777:1:2:1: ++%*2llo:+1777777777777777777777:0:2: ++%2llo:+01777777777777777777777:1:2:0: ++%*2llo:+01777777777777777777777:0:2: ++%2llo:+2000000000000000000000:1:2:2: ++%*2llo:+2000000000000000000000:0:2: ++%2llo:+02000000000000000000000:1:2:0: ++%*2llo:+02000000000000000000000:0:2: ++%2llo:+2000000000000241653661:1:2:2: ++%*2llo:+2000000000000241653661:0:2: ++%2llo:+02000000000000241653661:1:2:0: ++%*2llo:+02000000000000241653661:0:2: ++%15llo::0:-1: ++%*15llo::0:-1: ++%15llo:-173:1:4:-123: ++%*15llo:-173:0:4: ++%15llo:-0173:1:5:-123: ++%*15llo:-0173:0:5: ++%15llo:-1:1:2:-1: ++%*15llo:-1:0:2: ++%15llo:-01:1:3:-1: ++%*15llo:-01:0:3: ++%15llo:-0:1:2:0: ++%*15llo:-0:0:2: ++%15llo:-00:1:3:0: ++%*15llo:-00:0:3: ++%15llo:0:1:1:0: ++%*15llo:0:0:1: ++%15llo:00:1:2:0: ++%*15llo:00:0:2: ++%15llo:1:1:1:1: ++%*15llo:1:0:1: ++%15llo:01:1:2:1: ++%*15llo:01:0:2: ++%15llo:52:1:2:42: ++%*15llo:52:0:2: ++%15llo:052:1:3:42: ++%*15llo:052:0:3: ++%15llo:1777777777777777777777:1:15:8796093022207: ++%*15llo:1777777777777777777777:0:15: ++%15llo:01777777777777777777777:1:15:1099511627775: ++%*15llo:01777777777777777777777:0:15: ++%15llo:2000000000000000000000:1:15:8796093022208: ++%*15llo:2000000000000000000000:0:15: ++%15llo:02000000000000000000000:1:15:1099511627776: ++%*15llo:02000000000000000000000:0:15: ++%15llo:2000000000000241653661:1:15:8796093022228: ++%*15llo:2000000000000241653661:0:15: ++%15llo:02000000000000241653661:1:15:1099511627778: ++%*15llo:02000000000000241653661:0:15: ++%15llo:+0:1:2:0: ++%*15llo:+0:0:2: ++%15llo:+00:1:3:0: ++%*15llo:+00:0:3: ++%15llo:+1:1:2:1: ++%*15llo:+1:0:2: ++%15llo:+01:1:3:1: ++%*15llo:+01:0:3: ++%15llo:+52:1:3:42: ++%*15llo:+52:0:3: ++%15llo:+052:1:4:42: ++%*15llo:+052:0:4: ++%15llo:+1777777777777777777777:1:15:1099511627775: ++%*15llo:+1777777777777777777777:0:15: ++%15llo:+01777777777777777777777:1:15:137438953471: ++%*15llo:+01777777777777777777777:0:15: ++%15llo:+2000000000000000000000:1:15:1099511627776: ++%*15llo:+2000000000000000000000:0:15: ++%15llo:+02000000000000000000000:1:15:137438953472: ++%*15llo:+02000000000000000000000:0:15: ++%15llo:+2000000000000241653661:1:15:1099511627778: ++%*15llo:+2000000000000241653661:0:15: ++%15llo:+02000000000000241653661:1:15:137438953472: ++%*15llo:+02000000000000241653661:0:15: ++%25llo::0:-1: ++%*25llo::0:-1: ++%25llo:-173:1:4:-123: ++%*25llo:-173:0:4: ++%25llo:-0173:1:5:-123: ++%*25llo:-0173:0:5: ++%25llo:-1:1:2:-1: ++%*25llo:-1:0:2: ++%25llo:-01:1:3:-1: ++%*25llo:-01:0:3: ++%25llo:-0:1:2:0: ++%*25llo:-0:0:2: ++%25llo:-00:1:3:0: ++%*25llo:-00:0:3: ++%25llo:0:1:1:0: ++%*25llo:0:0:1: ++%25llo:00:1:2:0: ++%*25llo:00:0:2: ++%25llo:1:1:1:1: ++%*25llo:1:0:1: ++%25llo:01:1:2:1: ++%*25llo:01:0:2: ++%25llo:52:1:2:42: ++%*25llo:52:0:2: ++%25llo:052:1:3:42: ++%*25llo:052:0:3: ++%25llo:1777777777777777777777:1:22:18446744073709551615: ++%*25llo:1777777777777777777777:0:22: ++%25llo:01777777777777777777777:1:23:18446744073709551615: ++%*25llo:01777777777777777777777:0:23: ++%25llo:2000000000000000000000:1:22:18446744073709551615: ++%*25llo:2000000000000000000000:0:22: ++%25llo:02000000000000000000000:1:23:18446744073709551615: ++%*25llo:02000000000000000000000:0:23: ++%25llo:2000000000000241653661:1:22:18446744073709551615: ++%*25llo:2000000000000241653661:0:22: ++%25llo:02000000000000241653661:1:23:18446744073709551615: ++%*25llo:02000000000000241653661:0:23: ++%25llo:+0:1:2:0: ++%*25llo:+0:0:2: ++%25llo:+00:1:3:0: ++%*25llo:+00:0:3: ++%25llo:+1:1:2:1: ++%*25llo:+1:0:2: ++%25llo:+01:1:3:1: ++%*25llo:+01:0:3: ++%25llo:+52:1:3:42: ++%*25llo:+52:0:3: ++%25llo:+052:1:4:42: ++%*25llo:+052:0:4: ++%25llo:+1777777777777777777777:1:23:18446744073709551615: ++%*25llo:+1777777777777777777777:0:23: ++%25llo:+01777777777777777777777:1:24:18446744073709551615: ++%*25llo:+01777777777777777777777:0:24: ++%25llo:+2000000000000000000000:1:23:18446744073709551615: ++%*25llo:+2000000000000000000000:0:23: ++%25llo:+02000000000000000000000:1:24:18446744073709551615: ++%*25llo:+02000000000000000000000:0:24: ++%25llo:+2000000000000241653661:1:23:18446744073709551615: ++%*25llo:+2000000000000241653661:0:23: ++%25llo:+02000000000000241653661:1:24:18446744073709551615: ++%*25llo:+02000000000000241653661:0:24: ++%2llo: :0:-1: ++%*2llo: :0:-1: ++%2llo: -173:1:3:-1: ++%*2llo: -173:0:3: ++%2llo: -0173:1:3:0: ++%*2llo: -0173:0:3: ++%2llo: -1:1:3:-1: ++%*2llo: -1:0:3: ++%2llo: -01:1:3:0: ++%*2llo: -01:0:3: ++%2llo: -0:1:3:0: ++%*2llo: -0:0:3: ++%2llo: -00:1:3:0: ++%*2llo: -00:0:3: ++%2llo: 0:1:2:0: ++%*2llo: 0:0:2: ++%2llo: 00:1:3:0: ++%*2llo: 00:0:3: ++%2llo: 1:1:2:1: ++%*2llo: 1:0:2: ++%2llo: 01:1:3:1: ++%*2llo: 01:0:3: ++%2llo: 52:1:3:42: ++%*2llo: 52:0:3: ++%2llo: 052:1:3:5: ++%*2llo: 052:0:3: ++%2llo: 1777777777777777777777:1:3:15: ++%*2llo: 1777777777777777777777:0:3: ++%2llo: 01777777777777777777777:1:3:1: ++%*2llo: 01777777777777777777777:0:3: ++%2llo: 2000000000000000000000:1:3:16: ++%*2llo: 2000000000000000000000:0:3: ++%2llo: 02000000000000000000000:1:3:2: ++%*2llo: 02000000000000000000000:0:3: ++%2llo: 2000000000000241653661:1:3:16: ++%*2llo: 2000000000000241653661:0:3: ++%2llo: 02000000000000241653661:1:3:2: ++%*2llo: 02000000000000241653661:0:3: ++%2llo: +0:1:3:0: ++%*2llo: +0:0:3: ++%2llo: +00:1:3:0: ++%*2llo: +00:0:3: ++%2llo: +1:1:3:1: ++%*2llo: +1:0:3: ++%2llo: +01:1:3:0: ++%*2llo: +01:0:3: ++%2llo: +52:1:3:5: ++%*2llo: +52:0:3: ++%2llo: +052:1:3:0: ++%*2llo: +052:0:3: ++%2llo: +1777777777777777777777:1:3:1: ++%*2llo: +1777777777777777777777:0:3: ++%2llo: +01777777777777777777777:1:3:0: ++%*2llo: +01777777777777777777777:0:3: ++%2llo: +2000000000000000000000:1:3:2: ++%*2llo: +2000000000000000000000:0:3: ++%2llo: +02000000000000000000000:1:3:0: ++%*2llo: +02000000000000000000000:0:3: ++%2llo: +2000000000000241653661:1:3:2: ++%*2llo: +2000000000000241653661:0:3: ++%2llo: +02000000000000241653661:1:3:0: ++%*2llo: +02000000000000241653661:0:3: ++%25llo: :0:-1: ++%*25llo: :0:-1: ++%25llo: -173:1:5:-123: ++%*25llo: -173:0:5: ++%25llo: -0173:1:6:-123: ++%*25llo: -0173:0:6: ++%25llo: -1:1:3:-1: ++%*25llo: -1:0:3: ++%25llo: -01:1:4:-1: ++%*25llo: -01:0:4: ++%25llo: -0:1:3:0: ++%*25llo: -0:0:3: ++%25llo: -00:1:4:0: ++%*25llo: -00:0:4: ++%25llo: 0:1:2:0: ++%*25llo: 0:0:2: ++%25llo: 00:1:3:0: ++%*25llo: 00:0:3: ++%25llo: 1:1:2:1: ++%*25llo: 1:0:2: ++%25llo: 01:1:3:1: ++%*25llo: 01:0:3: ++%25llo: 52:1:3:42: ++%*25llo: 52:0:3: ++%25llo: 052:1:4:42: ++%*25llo: 052:0:4: ++%25llo: 1777777777777777777777:1:23:18446744073709551615: ++%*25llo: 1777777777777777777777:0:23: ++%25llo: 01777777777777777777777:1:24:18446744073709551615: ++%*25llo: 01777777777777777777777:0:24: ++%25llo: 2000000000000000000000:1:23:18446744073709551615: ++%*25llo: 2000000000000000000000:0:23: ++%25llo: 02000000000000000000000:1:24:18446744073709551615: ++%*25llo: 02000000000000000000000:0:24: ++%25llo: 2000000000000241653661:1:23:18446744073709551615: ++%*25llo: 2000000000000241653661:0:23: ++%25llo: 02000000000000241653661:1:24:18446744073709551615: ++%*25llo: 02000000000000241653661:0:24: ++%25llo: +0:1:3:0: ++%*25llo: +0:0:3: ++%25llo: +00:1:4:0: ++%*25llo: +00:0:4: ++%25llo: +1:1:3:1: ++%*25llo: +1:0:3: ++%25llo: +01:1:4:1: ++%*25llo: +01:0:4: ++%25llo: +52:1:4:42: ++%*25llo: +52:0:4: ++%25llo: +052:1:5:42: ++%*25llo: +052:0:5: ++%25llo: +1777777777777777777777:1:24:18446744073709551615: ++%*25llo: +1777777777777777777777:0:24: ++%25llo: +01777777777777777777777:1:25:18446744073709551615: ++%*25llo: +01777777777777777777777:0:25: ++%25llo: +2000000000000000000000:1:24:18446744073709551615: ++%*25llo: +2000000000000000000000:0:24: ++%25llo: +02000000000000000000000:1:25:18446744073709551615: ++%*25llo: +02000000000000000000000:0:25: ++%25llo: +2000000000000241653661:1:24:18446744073709551615: ++%*25llo: +2000000000000241653661:0:24: ++%25llo: +02000000000000241653661:1:25:18446744073709551615: ++%*25llo: +02000000000000241653661:0:25: +diff --git a/stdio-common/tst-scanf-format-ullong-u.input b/stdio-common/tst-scanf-format-ullong-u.input +new file mode 100644 +index 0000000000000000..9260e70a5ffc93b7 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ullong-u.input +@@ -0,0 +1,224 @@ ++%llu::0:-1: ++%*llu::0:-1: ++%llu:-123:1:4:18446744073709551493: ++%*llu:-123:0:4: ++%llu:-1:1:2:18446744073709551615: ++%*llu:-1:0:2: ++%llu:-0:1:2:0: ++%*llu:-0:0:2: ++%llu:0:1:1:0: ++%*llu:0:0:1: ++%llu:1:1:1:1: ++%*llu:1:0:1: ++%llu:42:1:2:42: ++%*llu:42:0:2: ++%llu:18446744073709551615:1:20:18446744073709551615: ++%*llu:18446744073709551615:0:20: ++%llu:18446744073709551616:1:20:18446744073709551615: ++%*llu:18446744073709551616:0:20: ++%llu:18446744073751975857:1:20:18446744073709551615: ++%*llu:18446744073751975857:0:20: ++%llu:+0:1:2:0: ++%*llu:+0:0:2: ++%llu:+1:1:2:1: ++%*llu:+1:0:2: ++%llu:+42:1:3:42: ++%*llu:+42:0:3: ++%llu:+18446744073709551615:1:21:18446744073709551615: ++%*llu:+18446744073709551615:0:21: ++%llu:+18446744073709551616:1:21:18446744073709551615: ++%*llu:+18446744073709551616:0:21: ++%llu:+18446744073751975857:1:21:18446744073709551615: ++%*llu:+18446744073751975857:0:21: ++%1llu::0:-1: ++%*1llu::0:-1: ++%1llu:-123:0:-1: ++%*1llu:-123:0:-1: ++%1llu:-1:0:-1: ++%*1llu:-1:0:-1: ++%1llu:-0:0:-1: ++%*1llu:-0:0:-1: ++%1llu:0:1:1:0: ++%*1llu:0:0:1: ++%1llu:1:1:1:1: ++%*1llu:1:0:1: ++%1llu:42:1:1:4: ++%*1llu:42:0:1: ++%1llu:18446744073709551615:1:1:1: ++%*1llu:18446744073709551615:0:1: ++%1llu:18446744073709551616:1:1:1: ++%*1llu:18446744073709551616:0:1: ++%1llu:18446744073751975857:1:1:1: ++%*1llu:18446744073751975857:0:1: ++%1llu:+0:0:-1: ++%*1llu:+0:0:-1: ++%1llu:+1:0:-1: ++%*1llu:+1:0:-1: ++%1llu:+42:0:-1: ++%*1llu:+42:0:-1: ++%1llu:+18446744073709551615:0:-1: ++%*1llu:+18446744073709551615:0:-1: ++%1llu:+18446744073709551616:0:-1: ++%*1llu:+18446744073709551616:0:-1: ++%1llu:+18446744073751975857:0:-1: ++%*1llu:+18446744073751975857:0:-1: ++%2llu::0:-1: ++%*2llu::0:-1: ++%2llu:-123:1:2:18446744073709551615: ++%*2llu:-123:0:2: ++%2llu:-1:1:2:18446744073709551615: ++%*2llu:-1:0:2: ++%2llu:-0:1:2:0: ++%*2llu:-0:0:2: ++%2llu:0:1:1:0: ++%*2llu:0:0:1: ++%2llu:1:1:1:1: ++%*2llu:1:0:1: ++%2llu:42:1:2:42: ++%*2llu:42:0:2: ++%2llu:18446744073709551615:1:2:18: ++%*2llu:18446744073709551615:0:2: ++%2llu:18446744073709551616:1:2:18: ++%*2llu:18446744073709551616:0:2: ++%2llu:18446744073751975857:1:2:18: ++%*2llu:18446744073751975857:0:2: ++%2llu:+0:1:2:0: ++%*2llu:+0:0:2: ++%2llu:+1:1:2:1: ++%*2llu:+1:0:2: ++%2llu:+42:1:2:4: ++%*2llu:+42:0:2: ++%2llu:+18446744073709551615:1:2:1: ++%*2llu:+18446744073709551615:0:2: ++%2llu:+18446744073709551616:1:2:1: ++%*2llu:+18446744073709551616:0:2: ++%2llu:+18446744073751975857:1:2:1: ++%*2llu:+18446744073751975857:0:2: ++%15llu::0:-1: ++%*15llu::0:-1: ++%15llu:-123:1:4:18446744073709551493: ++%*15llu:-123:0:4: ++%15llu:-1:1:2:18446744073709551615: ++%*15llu:-1:0:2: ++%15llu:-0:1:2:0: ++%*15llu:-0:0:2: ++%15llu:0:1:1:0: ++%*15llu:0:0:1: ++%15llu:1:1:1:1: ++%*15llu:1:0:1: ++%15llu:42:1:2:42: ++%*15llu:42:0:2: ++%15llu:18446744073709551615:1:15:184467440737095: ++%*15llu:18446744073709551615:0:15: ++%15llu:18446744073709551616:1:15:184467440737095: ++%*15llu:18446744073709551616:0:15: ++%15llu:18446744073751975857:1:15:184467440737519: ++%*15llu:18446744073751975857:0:15: ++%15llu:+0:1:2:0: ++%*15llu:+0:0:2: ++%15llu:+1:1:2:1: ++%*15llu:+1:0:2: ++%15llu:+42:1:3:42: ++%*15llu:+42:0:3: ++%15llu:+18446744073709551615:1:15:18446744073709: ++%*15llu:+18446744073709551615:0:15: ++%15llu:+18446744073709551616:1:15:18446744073709: ++%*15llu:+18446744073709551616:0:15: ++%15llu:+18446744073751975857:1:15:18446744073751: ++%*15llu:+18446744073751975857:0:15: ++%25llu::0:-1: ++%*25llu::0:-1: ++%25llu:-123:1:4:18446744073709551493: ++%*25llu:-123:0:4: ++%25llu:-1:1:2:18446744073709551615: ++%*25llu:-1:0:2: ++%25llu:-0:1:2:0: ++%*25llu:-0:0:2: ++%25llu:0:1:1:0: ++%*25llu:0:0:1: ++%25llu:1:1:1:1: ++%*25llu:1:0:1: ++%25llu:42:1:2:42: ++%*25llu:42:0:2: ++%25llu:18446744073709551615:1:20:18446744073709551615: ++%*25llu:18446744073709551615:0:20: ++%25llu:18446744073709551616:1:20:18446744073709551615: ++%*25llu:18446744073709551616:0:20: ++%25llu:18446744073751975857:1:20:18446744073709551615: ++%*25llu:18446744073751975857:0:20: ++%25llu:+0:1:2:0: ++%*25llu:+0:0:2: ++%25llu:+1:1:2:1: ++%*25llu:+1:0:2: ++%25llu:+42:1:3:42: ++%*25llu:+42:0:3: ++%25llu:+18446744073709551615:1:21:18446744073709551615: ++%*25llu:+18446744073709551615:0:21: ++%25llu:+18446744073709551616:1:21:18446744073709551615: ++%*25llu:+18446744073709551616:0:21: ++%25llu:+18446744073751975857:1:21:18446744073709551615: ++%*25llu:+18446744073751975857:0:21: ++%2llu: :0:-1: ++%*2llu: :0:-1: ++%2llu: -123:1:3:18446744073709551615: ++%*2llu: -123:0:3: ++%2llu: -1:1:3:18446744073709551615: ++%*2llu: -1:0:3: ++%2llu: -0:1:3:0: ++%*2llu: -0:0:3: ++%2llu: 0:1:2:0: ++%*2llu: 0:0:2: ++%2llu: 1:1:2:1: ++%*2llu: 1:0:2: ++%2llu: 42:1:3:42: ++%*2llu: 42:0:3: ++%2llu: 18446744073709551615:1:3:18: ++%*2llu: 18446744073709551615:0:3: ++%2llu: 18446744073709551616:1:3:18: ++%*2llu: 18446744073709551616:0:3: ++%2llu: 18446744073751975857:1:3:18: ++%*2llu: 18446744073751975857:0:3: ++%2llu: +0:1:3:0: ++%*2llu: +0:0:3: ++%2llu: +1:1:3:1: ++%*2llu: +1:0:3: ++%2llu: +42:1:3:4: ++%*2llu: +42:0:3: ++%2llu: +18446744073709551615:1:3:1: ++%*2llu: +18446744073709551615:0:3: ++%2llu: +18446744073709551616:1:3:1: ++%*2llu: +18446744073709551616:0:3: ++%2llu: +18446744073751975857:1:3:1: ++%*2llu: +18446744073751975857:0:3: ++%25llu: :0:-1: ++%*25llu: :0:-1: ++%25llu: -123:1:5:18446744073709551493: ++%*25llu: -123:0:5: ++%25llu: -1:1:3:18446744073709551615: ++%*25llu: -1:0:3: ++%25llu: -0:1:3:0: ++%*25llu: -0:0:3: ++%25llu: 0:1:2:0: ++%*25llu: 0:0:2: ++%25llu: 1:1:2:1: ++%*25llu: 1:0:2: ++%25llu: 42:1:3:42: ++%*25llu: 42:0:3: ++%25llu: 18446744073709551615:1:21:18446744073709551615: ++%*25llu: 18446744073709551615:0:21: ++%25llu: 18446744073709551616:1:21:18446744073709551615: ++%*25llu: 18446744073709551616:0:21: ++%25llu: 18446744073751975857:1:21:18446744073709551615: ++%*25llu: 18446744073751975857:0:21: ++%25llu: +0:1:3:0: ++%*25llu: +0:0:3: ++%25llu: +1:1:3:1: ++%*25llu: +1:0:3: ++%25llu: +42:1:4:42: ++%*25llu: +42:0:4: ++%25llu: +18446744073709551615:1:22:18446744073709551615: ++%*25llu: +18446744073709551615:0:22: ++%25llu: +18446744073709551616:1:22:18446744073709551615: ++%*25llu: +18446744073709551616:0:22: ++%25llu: +18446744073751975857:1:22:18446744073709551615: ++%*25llu: +18446744073751975857:0:22: +diff --git a/stdio-common/tst-scanf-format-ullong-x.input b/stdio-common/tst-scanf-format-ullong-x.input +new file mode 100644 +index 0000000000000000..5376bb858aa1532d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ullong-x.input +@@ -0,0 +1,742 @@ ++%llx::0:-1: ++%*llx::0:-1: ++%llx:-7b:1:3:18446744073709551493: ++%*llx:-7b:0:3: ++%llx:-7B:1:3:18446744073709551493: ++%*llx:-7B:0:3: ++%llx:-0X7b:1:5:18446744073709551493: ++%*llx:-0X7b:0:5: ++%llx:-0x7B:1:5:18446744073709551493: ++%*llx:-0x7B:0:5: ++%llx:-1:1:2:18446744073709551615: ++%*llx:-1:0:2: ++%llx:-0X1:1:4:18446744073709551615: ++%*llx:-0X1:0:4: ++%llx:-0x1:1:4:18446744073709551615: ++%*llx:-0x1:0:4: ++%llx:-0:1:2:0: ++%*llx:-0:0:2: ++%llx:-0X0:1:4:0: ++%*llx:-0X0:0:4: ++%llx:-0x0:1:4:0: ++%*llx:-0x0:0:4: ++%llx:0:1:1:0: ++%*llx:0:0:1: ++%llx:0X0:1:3:0: ++%*llx:0X0:0:3: ++%llx:0x0:1:3:0: ++%*llx:0x0:0:3: ++%llx:1:1:1:1: ++%*llx:1:0:1: ++%llx:0X1:1:3:1: ++%*llx:0X1:0:3: ++%llx:0x1:1:3:1: ++%*llx:0x1:0:3: ++%llx:2a:1:2:42: ++%*llx:2a:0:2: ++%llx:2A:1:2:42: ++%*llx:2A:0:2: ++%llx:0X2a:1:4:42: ++%*llx:0X2a:0:4: ++%llx:0x2A:1:4:42: ++%*llx:0x2A:0:4: ++%llx:ffffffffffffffff:1:16:18446744073709551615: ++%*llx:ffffffffffffffff:0:16: ++%llx:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*llx:FFFFFFFFFFFFFFFF:0:16: ++%llx:0Xffffffffffffffff:1:18:18446744073709551615: ++%*llx:0Xffffffffffffffff:0:18: ++%llx:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*llx:0xFFFFFFFFFFFFFFFF:0:18: ++%llx:10000000000000000:1:17:18446744073709551615: ++%*llx:10000000000000000:0:17: ++%llx:0X10000000000000000:1:19:18446744073709551615: ++%*llx:0X10000000000000000:0:19: ++%llx:0x10000000000000000:1:19:18446744073709551615: ++%*llx:0x10000000000000000:0:19: ++%llx:100000000028757b1:1:17:18446744073709551615: ++%*llx:100000000028757b1:0:17: ++%llx:100000000028757B1:1:17:18446744073709551615: ++%*llx:100000000028757B1:0:17: ++%llx:0X100000000028757b1:1:19:18446744073709551615: ++%*llx:0X100000000028757b1:0:19: ++%llx:0x100000000028757B1:1:19:18446744073709551615: ++%*llx:0x100000000028757B1:0:19: ++%llx:+0:1:2:0: ++%*llx:+0:0:2: ++%llx:+0X0:1:4:0: ++%*llx:+0X0:0:4: ++%llx:+0x0:1:4:0: ++%*llx:+0x0:0:4: ++%llx:+1:1:2:1: ++%*llx:+1:0:2: ++%llx:+0X1:1:4:1: ++%*llx:+0X1:0:4: ++%llx:+0x1:1:4:1: ++%*llx:+0x1:0:4: ++%llx:+2a:1:3:42: ++%*llx:+2a:0:3: ++%llx:+2A:1:3:42: ++%*llx:+2A:0:3: ++%llx:+0X2a:1:5:42: ++%*llx:+0X2a:0:5: ++%llx:+0x2A:1:5:42: ++%*llx:+0x2A:0:5: ++%llx:+ffffffffffffffff:1:17:18446744073709551615: ++%*llx:+ffffffffffffffff:0:17: ++%llx:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*llx:+FFFFFFFFFFFFFFFF:0:17: ++%llx:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*llx:+0Xffffffffffffffff:0:19: ++%llx:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*llx:+0xFFFFFFFFFFFFFFFF:0:19: ++%llx:+10000000000000000:1:18:18446744073709551615: ++%*llx:+10000000000000000:0:18: ++%llx:+0X10000000000000000:1:20:18446744073709551615: ++%*llx:+0X10000000000000000:0:20: ++%llx:+0x10000000000000000:1:20:18446744073709551615: ++%*llx:+0x10000000000000000:0:20: ++%llx:+100000000028757b1:1:18:18446744073709551615: ++%*llx:+100000000028757b1:0:18: ++%llx:+100000000028757B1:1:18:18446744073709551615: ++%*llx:+100000000028757B1:0:18: ++%llx:+0X100000000028757b1:1:20:18446744073709551615: ++%*llx:+0X100000000028757b1:0:20: ++%llx:+0x100000000028757B1:1:20:18446744073709551615: ++%*llx:+0x100000000028757B1:0:20: ++%1llx::0:-1: ++%*1llx::0:-1: ++%1llx:-7b:0:-1: ++%*1llx:-7b:0:-1: ++%1llx:-7B:0:-1: ++%*1llx:-7B:0:-1: ++%1llx:-0X7b:0:-1: ++%*1llx:-0X7b:0:-1: ++%1llx:-0x7B:0:-1: ++%*1llx:-0x7B:0:-1: ++%1llx:-1:0:-1: ++%*1llx:-1:0:-1: ++%1llx:-0X1:0:-1: ++%*1llx:-0X1:0:-1: ++%1llx:-0x1:0:-1: ++%*1llx:-0x1:0:-1: ++%1llx:-0:0:-1: ++%*1llx:-0:0:-1: ++%1llx:-0X0:0:-1: ++%*1llx:-0X0:0:-1: ++%1llx:-0x0:0:-1: ++%*1llx:-0x0:0:-1: ++%1llx:0:1:1:0: ++%*1llx:0:0:1: ++%1llx:0X0:1:1:0: ++%*1llx:0X0:0:1: ++%1llx:0x0:1:1:0: ++%*1llx:0x0:0:1: ++%1llx:1:1:1:1: ++%*1llx:1:0:1: ++%1llx:0X1:1:1:0: ++%*1llx:0X1:0:1: ++%1llx:0x1:1:1:0: ++%*1llx:0x1:0:1: ++%1llx:2a:1:1:2: ++%*1llx:2a:0:1: ++%1llx:2A:1:1:2: ++%*1llx:2A:0:1: ++%1llx:0X2a:1:1:0: ++%*1llx:0X2a:0:1: ++%1llx:0x2A:1:1:0: ++%*1llx:0x2A:0:1: ++%1llx:ffffffffffffffff:1:1:15: ++%*1llx:ffffffffffffffff:0:1: ++%1llx:FFFFFFFFFFFFFFFF:1:1:15: ++%*1llx:FFFFFFFFFFFFFFFF:0:1: ++%1llx:0Xffffffffffffffff:1:1:0: ++%*1llx:0Xffffffffffffffff:0:1: ++%1llx:0xFFFFFFFFFFFFFFFF:1:1:0: ++%*1llx:0xFFFFFFFFFFFFFFFF:0:1: ++%1llx:10000000000000000:1:1:1: ++%*1llx:10000000000000000:0:1: ++%1llx:0X10000000000000000:1:1:0: ++%*1llx:0X10000000000000000:0:1: ++%1llx:0x10000000000000000:1:1:0: ++%*1llx:0x10000000000000000:0:1: ++%1llx:100000000028757b1:1:1:1: ++%*1llx:100000000028757b1:0:1: ++%1llx:100000000028757B1:1:1:1: ++%*1llx:100000000028757B1:0:1: ++%1llx:0X100000000028757b1:1:1:0: ++%*1llx:0X100000000028757b1:0:1: ++%1llx:0x100000000028757B1:1:1:0: ++%*1llx:0x100000000028757B1:0:1: ++%1llx:+0:0:-1: ++%*1llx:+0:0:-1: ++%1llx:+0X0:0:-1: ++%*1llx:+0X0:0:-1: ++%1llx:+0x0:0:-1: ++%*1llx:+0x0:0:-1: ++%1llx:+1:0:-1: ++%*1llx:+1:0:-1: ++%1llx:+0X1:0:-1: ++%*1llx:+0X1:0:-1: ++%1llx:+0x1:0:-1: ++%*1llx:+0x1:0:-1: ++%1llx:+2a:0:-1: ++%*1llx:+2a:0:-1: ++%1llx:+2A:0:-1: ++%*1llx:+2A:0:-1: ++%1llx:+0X2a:0:-1: ++%*1llx:+0X2a:0:-1: ++%1llx:+0x2A:0:-1: ++%*1llx:+0x2A:0:-1: ++%1llx:+ffffffffffffffff:0:-1: ++%*1llx:+ffffffffffffffff:0:-1: ++%1llx:+FFFFFFFFFFFFFFFF:0:-1: ++%*1llx:+FFFFFFFFFFFFFFFF:0:-1: ++%1llx:+0Xffffffffffffffff:0:-1: ++%*1llx:+0Xffffffffffffffff:0:-1: ++%1llx:+0xFFFFFFFFFFFFFFFF:0:-1: ++%*1llx:+0xFFFFFFFFFFFFFFFF:0:-1: ++%1llx:+10000000000000000:0:-1: ++%*1llx:+10000000000000000:0:-1: ++%1llx:+0X10000000000000000:0:-1: ++%*1llx:+0X10000000000000000:0:-1: ++%1llx:+0x10000000000000000:0:-1: ++%*1llx:+0x10000000000000000:0:-1: ++%1llx:+100000000028757b1:0:-1: ++%*1llx:+100000000028757b1:0:-1: ++%1llx:+100000000028757B1:0:-1: ++%*1llx:+100000000028757B1:0:-1: ++%1llx:+0X100000000028757b1:0:-1: ++%*1llx:+0X100000000028757b1:0:-1: ++%1llx:+0x100000000028757B1:0:-1: ++%*1llx:+0x100000000028757B1:0:-1: ++%2llx::0:-1: ++%*2llx::0:-1: ++%2llx:-7b:1:2:18446744073709551609: ++%*2llx:-7b:0:2: ++%2llx:-7B:1:2:18446744073709551609: ++%*2llx:-7B:0:2: ++%2llx:-0X7b:1:2:0: ++%*2llx:-0X7b:0:2: ++%2llx:-0x7B:1:2:0: ++%*2llx:-0x7B:0:2: ++%2llx:-1:1:2:18446744073709551615: ++%*2llx:-1:0:2: ++%2llx:-0X1:1:2:0: ++%*2llx:-0X1:0:2: ++%2llx:-0x1:1:2:0: ++%*2llx:-0x1:0:2: ++%2llx:-0:1:2:0: ++%*2llx:-0:0:2: ++%2llx:-0X0:1:2:0: ++%*2llx:-0X0:0:2: ++%2llx:-0x0:1:2:0: ++%*2llx:-0x0:0:2: ++%2llx:0:1:1:0: ++%*2llx:0:0:1: ++# BZ12701 %2llx:0X0:0:-1: ++# BZ12701 %*2llx:0X0:0:-1: ++# BZ12701 %2llx:0x0:0:-1: ++# BZ12701 %*2llx:0x0:0:-1: ++%2llx:1:1:1:1: ++%*2llx:1:0:1: ++# BZ12701 %2llx:0X1:0:-1: ++# BZ12701 %*2llx:0X1:0:-1: ++# BZ12701 %2llx:0x1:0:-1: ++# BZ12701 %*2llx:0x1:0:-1: ++%2llx:2a:1:2:42: ++%*2llx:2a:0:2: ++%2llx:2A:1:2:42: ++%*2llx:2A:0:2: ++# BZ12701 %2llx:0X2a:0:-1: ++# BZ12701 %*2llx:0X2a:0:-1: ++# BZ12701 %2llx:0x2A:0:-1: ++# BZ12701 %*2llx:0x2A:0:-1: ++%2llx:ffffffffffffffff:1:2:255: ++%*2llx:ffffffffffffffff:0:2: ++%2llx:FFFFFFFFFFFFFFFF:1:2:255: ++%*2llx:FFFFFFFFFFFFFFFF:0:2: ++# BZ12701 %2llx:0Xffffffffffffffff:0:-1: ++# BZ12701 %*2llx:0Xffffffffffffffff:0:-1: ++# BZ12701 %2llx:0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2llx:0xFFFFFFFFFFFFFFFF:0:-1: ++%2llx:10000000000000000:1:2:16: ++%*2llx:10000000000000000:0:2: ++# BZ12701 %2llx:0X10000000000000000:0:-1: ++# BZ12701 %*2llx:0X10000000000000000:0:-1: ++# BZ12701 %2llx:0x10000000000000000:0:-1: ++# BZ12701 %*2llx:0x10000000000000000:0:-1: ++%2llx:100000000028757b1:1:2:16: ++%*2llx:100000000028757b1:0:2: ++%2llx:100000000028757B1:1:2:16: ++%*2llx:100000000028757B1:0:2: ++# BZ12701 %2llx:0X100000000028757b1:0:-1: ++# BZ12701 %*2llx:0X100000000028757b1:0:-1: ++# BZ12701 %2llx:0x100000000028757B1:0:-1: ++# BZ12701 %*2llx:0x100000000028757B1:0:-1: ++%2llx:+0:1:2:0: ++%*2llx:+0:0:2: ++%2llx:+0X0:1:2:0: ++%*2llx:+0X0:0:2: ++%2llx:+0x0:1:2:0: ++%*2llx:+0x0:0:2: ++%2llx:+1:1:2:1: ++%*2llx:+1:0:2: ++%2llx:+0X1:1:2:0: ++%*2llx:+0X1:0:2: ++%2llx:+0x1:1:2:0: ++%*2llx:+0x1:0:2: ++%2llx:+2a:1:2:2: ++%*2llx:+2a:0:2: ++%2llx:+2A:1:2:2: ++%*2llx:+2A:0:2: ++%2llx:+0X2a:1:2:0: ++%*2llx:+0X2a:0:2: ++%2llx:+0x2A:1:2:0: ++%*2llx:+0x2A:0:2: ++%2llx:+ffffffffffffffff:1:2:15: ++%*2llx:+ffffffffffffffff:0:2: ++%2llx:+FFFFFFFFFFFFFFFF:1:2:15: ++%*2llx:+FFFFFFFFFFFFFFFF:0:2: ++%2llx:+0Xffffffffffffffff:1:2:0: ++%*2llx:+0Xffffffffffffffff:0:2: ++%2llx:+0xFFFFFFFFFFFFFFFF:1:2:0: ++%*2llx:+0xFFFFFFFFFFFFFFFF:0:2: ++%2llx:+10000000000000000:1:2:1: ++%*2llx:+10000000000000000:0:2: ++%2llx:+0X10000000000000000:1:2:0: ++%*2llx:+0X10000000000000000:0:2: ++%2llx:+0x10000000000000000:1:2:0: ++%*2llx:+0x10000000000000000:0:2: ++%2llx:+100000000028757b1:1:2:1: ++%*2llx:+100000000028757b1:0:2: ++%2llx:+100000000028757B1:1:2:1: ++%*2llx:+100000000028757B1:0:2: ++%2llx:+0X100000000028757b1:1:2:0: ++%*2llx:+0X100000000028757b1:0:2: ++%2llx:+0x100000000028757B1:1:2:0: ++%*2llx:+0x100000000028757B1:0:2: ++%15llx::0:-1: ++%*15llx::0:-1: ++%15llx:-7b:1:3:18446744073709551493: ++%*15llx:-7b:0:3: ++%15llx:-7B:1:3:18446744073709551493: ++%*15llx:-7B:0:3: ++%15llx:-0X7b:1:5:18446744073709551493: ++%*15llx:-0X7b:0:5: ++%15llx:-0x7B:1:5:18446744073709551493: ++%*15llx:-0x7B:0:5: ++%15llx:-1:1:2:18446744073709551615: ++%*15llx:-1:0:2: ++%15llx:-0X1:1:4:18446744073709551615: ++%*15llx:-0X1:0:4: ++%15llx:-0x1:1:4:18446744073709551615: ++%*15llx:-0x1:0:4: ++%15llx:-0:1:2:0: ++%*15llx:-0:0:2: ++%15llx:-0X0:1:4:0: ++%*15llx:-0X0:0:4: ++%15llx:-0x0:1:4:0: ++%*15llx:-0x0:0:4: ++%15llx:0:1:1:0: ++%*15llx:0:0:1: ++%15llx:0X0:1:3:0: ++%*15llx:0X0:0:3: ++%15llx:0x0:1:3:0: ++%*15llx:0x0:0:3: ++%15llx:1:1:1:1: ++%*15llx:1:0:1: ++%15llx:0X1:1:3:1: ++%*15llx:0X1:0:3: ++%15llx:0x1:1:3:1: ++%*15llx:0x1:0:3: ++%15llx:2a:1:2:42: ++%*15llx:2a:0:2: ++%15llx:2A:1:2:42: ++%*15llx:2A:0:2: ++%15llx:0X2a:1:4:42: ++%*15llx:0X2a:0:4: ++%15llx:0x2A:1:4:42: ++%*15llx:0x2A:0:4: ++%15llx:ffffffffffffffff:1:15:1152921504606846975: ++%*15llx:ffffffffffffffff:0:15: ++%15llx:FFFFFFFFFFFFFFFF:1:15:1152921504606846975: ++%*15llx:FFFFFFFFFFFFFFFF:0:15: ++%15llx:0Xffffffffffffffff:1:15:4503599627370495: ++%*15llx:0Xffffffffffffffff:0:15: ++%15llx:0xFFFFFFFFFFFFFFFF:1:15:4503599627370495: ++%*15llx:0xFFFFFFFFFFFFFFFF:0:15: ++%15llx:10000000000000000:1:15:72057594037927936: ++%*15llx:10000000000000000:0:15: ++%15llx:0X10000000000000000:1:15:281474976710656: ++%*15llx:0X10000000000000000:0:15: ++%15llx:0x10000000000000000:1:15:281474976710656: ++%*15llx:0x10000000000000000:0:15: ++%15llx:100000000028757b1:1:15:72057594038093655: ++%*15llx:100000000028757b1:0:15: ++%15llx:100000000028757B1:1:15:72057594038093655: ++%*15llx:100000000028757B1:0:15: ++%15llx:0X100000000028757b1:1:15:281474976711303: ++%*15llx:0X100000000028757b1:0:15: ++%15llx:0x100000000028757B1:1:15:281474976711303: ++%*15llx:0x100000000028757B1:0:15: ++%15llx:+0:1:2:0: ++%*15llx:+0:0:2: ++%15llx:+0X0:1:4:0: ++%*15llx:+0X0:0:4: ++%15llx:+0x0:1:4:0: ++%*15llx:+0x0:0:4: ++%15llx:+1:1:2:1: ++%*15llx:+1:0:2: ++%15llx:+0X1:1:4:1: ++%*15llx:+0X1:0:4: ++%15llx:+0x1:1:4:1: ++%*15llx:+0x1:0:4: ++%15llx:+2a:1:3:42: ++%*15llx:+2a:0:3: ++%15llx:+2A:1:3:42: ++%*15llx:+2A:0:3: ++%15llx:+0X2a:1:5:42: ++%*15llx:+0X2a:0:5: ++%15llx:+0x2A:1:5:42: ++%*15llx:+0x2A:0:5: ++%15llx:+ffffffffffffffff:1:15:72057594037927935: ++%*15llx:+ffffffffffffffff:0:15: ++%15llx:+FFFFFFFFFFFFFFFF:1:15:72057594037927935: ++%*15llx:+FFFFFFFFFFFFFFFF:0:15: ++%15llx:+0Xffffffffffffffff:1:15:281474976710655: ++%*15llx:+0Xffffffffffffffff:0:15: ++%15llx:+0xFFFFFFFFFFFFFFFF:1:15:281474976710655: ++%*15llx:+0xFFFFFFFFFFFFFFFF:0:15: ++%15llx:+10000000000000000:1:15:4503599627370496: ++%*15llx:+10000000000000000:0:15: ++%15llx:+0X10000000000000000:1:15:17592186044416: ++%*15llx:+0X10000000000000000:0:15: ++%15llx:+0x10000000000000000:1:15:17592186044416: ++%*15llx:+0x10000000000000000:0:15: ++%15llx:+100000000028757b1:1:15:4503599627380853: ++%*15llx:+100000000028757b1:0:15: ++%15llx:+100000000028757B1:1:15:4503599627380853: ++%*15llx:+100000000028757B1:0:15: ++%15llx:+0X100000000028757b1:1:15:17592186044456: ++%*15llx:+0X100000000028757b1:0:15: ++%15llx:+0x100000000028757B1:1:15:17592186044456: ++%*15llx:+0x100000000028757B1:0:15: ++%25llx::0:-1: ++%*25llx::0:-1: ++%25llx:-7b:1:3:18446744073709551493: ++%*25llx:-7b:0:3: ++%25llx:-7B:1:3:18446744073709551493: ++%*25llx:-7B:0:3: ++%25llx:-0X7b:1:5:18446744073709551493: ++%*25llx:-0X7b:0:5: ++%25llx:-0x7B:1:5:18446744073709551493: ++%*25llx:-0x7B:0:5: ++%25llx:-1:1:2:18446744073709551615: ++%*25llx:-1:0:2: ++%25llx:-0X1:1:4:18446744073709551615: ++%*25llx:-0X1:0:4: ++%25llx:-0x1:1:4:18446744073709551615: ++%*25llx:-0x1:0:4: ++%25llx:-0:1:2:0: ++%*25llx:-0:0:2: ++%25llx:-0X0:1:4:0: ++%*25llx:-0X0:0:4: ++%25llx:-0x0:1:4:0: ++%*25llx:-0x0:0:4: ++%25llx:0:1:1:0: ++%*25llx:0:0:1: ++%25llx:0X0:1:3:0: ++%*25llx:0X0:0:3: ++%25llx:0x0:1:3:0: ++%*25llx:0x0:0:3: ++%25llx:1:1:1:1: ++%*25llx:1:0:1: ++%25llx:0X1:1:3:1: ++%*25llx:0X1:0:3: ++%25llx:0x1:1:3:1: ++%*25llx:0x1:0:3: ++%25llx:2a:1:2:42: ++%*25llx:2a:0:2: ++%25llx:2A:1:2:42: ++%*25llx:2A:0:2: ++%25llx:0X2a:1:4:42: ++%*25llx:0X2a:0:4: ++%25llx:0x2A:1:4:42: ++%*25llx:0x2A:0:4: ++%25llx:ffffffffffffffff:1:16:18446744073709551615: ++%*25llx:ffffffffffffffff:0:16: ++%25llx:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*25llx:FFFFFFFFFFFFFFFF:0:16: ++%25llx:0Xffffffffffffffff:1:18:18446744073709551615: ++%*25llx:0Xffffffffffffffff:0:18: ++%25llx:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25llx:0xFFFFFFFFFFFFFFFF:0:18: ++%25llx:10000000000000000:1:17:18446744073709551615: ++%*25llx:10000000000000000:0:17: ++%25llx:0X10000000000000000:1:19:18446744073709551615: ++%*25llx:0X10000000000000000:0:19: ++%25llx:0x10000000000000000:1:19:18446744073709551615: ++%*25llx:0x10000000000000000:0:19: ++%25llx:100000000028757b1:1:17:18446744073709551615: ++%*25llx:100000000028757b1:0:17: ++%25llx:100000000028757B1:1:17:18446744073709551615: ++%*25llx:100000000028757B1:0:17: ++%25llx:0X100000000028757b1:1:19:18446744073709551615: ++%*25llx:0X100000000028757b1:0:19: ++%25llx:0x100000000028757B1:1:19:18446744073709551615: ++%*25llx:0x100000000028757B1:0:19: ++%25llx:+0:1:2:0: ++%*25llx:+0:0:2: ++%25llx:+0X0:1:4:0: ++%*25llx:+0X0:0:4: ++%25llx:+0x0:1:4:0: ++%*25llx:+0x0:0:4: ++%25llx:+1:1:2:1: ++%*25llx:+1:0:2: ++%25llx:+0X1:1:4:1: ++%*25llx:+0X1:0:4: ++%25llx:+0x1:1:4:1: ++%*25llx:+0x1:0:4: ++%25llx:+2a:1:3:42: ++%*25llx:+2a:0:3: ++%25llx:+2A:1:3:42: ++%*25llx:+2A:0:3: ++%25llx:+0X2a:1:5:42: ++%*25llx:+0X2a:0:5: ++%25llx:+0x2A:1:5:42: ++%*25llx:+0x2A:0:5: ++%25llx:+ffffffffffffffff:1:17:18446744073709551615: ++%*25llx:+ffffffffffffffff:0:17: ++%25llx:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25llx:+FFFFFFFFFFFFFFFF:0:17: ++%25llx:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*25llx:+0Xffffffffffffffff:0:19: ++%25llx:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25llx:+0xFFFFFFFFFFFFFFFF:0:19: ++%25llx:+10000000000000000:1:18:18446744073709551615: ++%*25llx:+10000000000000000:0:18: ++%25llx:+0X10000000000000000:1:20:18446744073709551615: ++%*25llx:+0X10000000000000000:0:20: ++%25llx:+0x10000000000000000:1:20:18446744073709551615: ++%*25llx:+0x10000000000000000:0:20: ++%25llx:+100000000028757b1:1:18:18446744073709551615: ++%*25llx:+100000000028757b1:0:18: ++%25llx:+100000000028757B1:1:18:18446744073709551615: ++%*25llx:+100000000028757B1:0:18: ++%25llx:+0X100000000028757b1:1:20:18446744073709551615: ++%*25llx:+0X100000000028757b1:0:20: ++%25llx:+0x100000000028757B1:1:20:18446744073709551615: ++%*25llx:+0x100000000028757B1:0:20: ++%2llx: :0:-1: ++%*2llx: :0:-1: ++%2llx: -7b:1:3:18446744073709551609: ++%*2llx: -7b:0:3: ++%2llx: -7B:1:3:18446744073709551609: ++%*2llx: -7B:0:3: ++%2llx: -0X7b:1:3:0: ++%*2llx: -0X7b:0:3: ++%2llx: -0x7B:1:3:0: ++%*2llx: -0x7B:0:3: ++%2llx: -1:1:3:18446744073709551615: ++%*2llx: -1:0:3: ++%2llx: -0X1:1:3:0: ++%*2llx: -0X1:0:3: ++%2llx: -0x1:1:3:0: ++%*2llx: -0x1:0:3: ++%2llx: -0:1:3:0: ++%*2llx: -0:0:3: ++%2llx: -0X0:1:3:0: ++%*2llx: -0X0:0:3: ++%2llx: -0x0:1:3:0: ++%*2llx: -0x0:0:3: ++%2llx: 0:1:2:0: ++%*2llx: 0:0:2: ++# BZ12701 %2llx: 0X0:0:-1: ++# BZ12701 %*2llx: 0X0:0:-1: ++# BZ12701 %2llx: 0x0:0:-1: ++# BZ12701 %*2llx: 0x0:0:-1: ++%2llx: 1:1:2:1: ++%*2llx: 1:0:2: ++# BZ12701 %2llx: 0X1:0:-1: ++# BZ12701 %*2llx: 0X1:0:-1: ++# BZ12701 %2llx: 0x1:0:-1: ++# BZ12701 %*2llx: 0x1:0:-1: ++%2llx: 2a:1:3:42: ++%*2llx: 2a:0:3: ++%2llx: 2A:1:3:42: ++%*2llx: 2A:0:3: ++# BZ12701 %2llx: 0X2a:0:-1: ++# BZ12701 %*2llx: 0X2a:0:-1: ++# BZ12701 %2llx: 0x2A:0:-1: ++# BZ12701 %*2llx: 0x2A:0:-1: ++%2llx: ffffffffffffffff:1:3:255: ++%*2llx: ffffffffffffffff:0:3: ++%2llx: FFFFFFFFFFFFFFFF:1:3:255: ++%*2llx: FFFFFFFFFFFFFFFF:0:3: ++# BZ12701 %2llx: 0Xffffffffffffffff:0:-1: ++# BZ12701 %*2llx: 0Xffffffffffffffff:0:-1: ++# BZ12701 %2llx: 0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2llx: 0xFFFFFFFFFFFFFFFF:0:-1: ++%2llx: 10000000000000000:1:3:16: ++%*2llx: 10000000000000000:0:3: ++# BZ12701 %2llx: 0X10000000000000000:0:-1: ++# BZ12701 %*2llx: 0X10000000000000000:0:-1: ++# BZ12701 %2llx: 0x10000000000000000:0:-1: ++# BZ12701 %*2llx: 0x10000000000000000:0:-1: ++%2llx: 100000000028757b1:1:3:16: ++%*2llx: 100000000028757b1:0:3: ++%2llx: 100000000028757B1:1:3:16: ++%*2llx: 100000000028757B1:0:3: ++# BZ12701 %2llx: 0X100000000028757b1:0:-1: ++# BZ12701 %*2llx: 0X100000000028757b1:0:-1: ++# BZ12701 %2llx: 0x100000000028757B1:0:-1: ++# BZ12701 %*2llx: 0x100000000028757B1:0:-1: ++%2llx: +0:1:3:0: ++%*2llx: +0:0:3: ++%2llx: +0X0:1:3:0: ++%*2llx: +0X0:0:3: ++%2llx: +0x0:1:3:0: ++%*2llx: +0x0:0:3: ++%2llx: +1:1:3:1: ++%*2llx: +1:0:3: ++%2llx: +0X1:1:3:0: ++%*2llx: +0X1:0:3: ++%2llx: +0x1:1:3:0: ++%*2llx: +0x1:0:3: ++%2llx: +2a:1:3:2: ++%*2llx: +2a:0:3: ++%2llx: +2A:1:3:2: ++%*2llx: +2A:0:3: ++%2llx: +0X2a:1:3:0: ++%*2llx: +0X2a:0:3: ++%2llx: +0x2A:1:3:0: ++%*2llx: +0x2A:0:3: ++%2llx: +ffffffffffffffff:1:3:15: ++%*2llx: +ffffffffffffffff:0:3: ++%2llx: +FFFFFFFFFFFFFFFF:1:3:15: ++%*2llx: +FFFFFFFFFFFFFFFF:0:3: ++%2llx: +0Xffffffffffffffff:1:3:0: ++%*2llx: +0Xffffffffffffffff:0:3: ++%2llx: +0xFFFFFFFFFFFFFFFF:1:3:0: ++%*2llx: +0xFFFFFFFFFFFFFFFF:0:3: ++%2llx: +10000000000000000:1:3:1: ++%*2llx: +10000000000000000:0:3: ++%2llx: +0X10000000000000000:1:3:0: ++%*2llx: +0X10000000000000000:0:3: ++%2llx: +0x10000000000000000:1:3:0: ++%*2llx: +0x10000000000000000:0:3: ++%2llx: +100000000028757b1:1:3:1: ++%*2llx: +100000000028757b1:0:3: ++%2llx: +100000000028757B1:1:3:1: ++%*2llx: +100000000028757B1:0:3: ++%2llx: +0X100000000028757b1:1:3:0: ++%*2llx: +0X100000000028757b1:0:3: ++%2llx: +0x100000000028757B1:1:3:0: ++%*2llx: +0x100000000028757B1:0:3: ++%25llx: :0:-1: ++%*25llx: :0:-1: ++%25llx: -7b:1:4:18446744073709551493: ++%*25llx: -7b:0:4: ++%25llx: -7B:1:4:18446744073709551493: ++%*25llx: -7B:0:4: ++%25llx: -0X7b:1:6:18446744073709551493: ++%*25llx: -0X7b:0:6: ++%25llx: -0x7B:1:6:18446744073709551493: ++%*25llx: -0x7B:0:6: ++%25llx: -1:1:3:18446744073709551615: ++%*25llx: -1:0:3: ++%25llx: -0X1:1:5:18446744073709551615: ++%*25llx: -0X1:0:5: ++%25llx: -0x1:1:5:18446744073709551615: ++%*25llx: -0x1:0:5: ++%25llx: -0:1:3:0: ++%*25llx: -0:0:3: ++%25llx: -0X0:1:5:0: ++%*25llx: -0X0:0:5: ++%25llx: -0x0:1:5:0: ++%*25llx: -0x0:0:5: ++%25llx: 0:1:2:0: ++%*25llx: 0:0:2: ++%25llx: 0X0:1:4:0: ++%*25llx: 0X0:0:4: ++%25llx: 0x0:1:4:0: ++%*25llx: 0x0:0:4: ++%25llx: 1:1:2:1: ++%*25llx: 1:0:2: ++%25llx: 0X1:1:4:1: ++%*25llx: 0X1:0:4: ++%25llx: 0x1:1:4:1: ++%*25llx: 0x1:0:4: ++%25llx: 2a:1:3:42: ++%*25llx: 2a:0:3: ++%25llx: 2A:1:3:42: ++%*25llx: 2A:0:3: ++%25llx: 0X2a:1:5:42: ++%*25llx: 0X2a:0:5: ++%25llx: 0x2A:1:5:42: ++%*25llx: 0x2A:0:5: ++%25llx: ffffffffffffffff:1:17:18446744073709551615: ++%*25llx: ffffffffffffffff:0:17: ++%25llx: FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25llx: FFFFFFFFFFFFFFFF:0:17: ++%25llx: 0Xffffffffffffffff:1:19:18446744073709551615: ++%*25llx: 0Xffffffffffffffff:0:19: ++%25llx: 0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25llx: 0xFFFFFFFFFFFFFFFF:0:19: ++%25llx: 10000000000000000:1:18:18446744073709551615: ++%*25llx: 10000000000000000:0:18: ++%25llx: 0X10000000000000000:1:20:18446744073709551615: ++%*25llx: 0X10000000000000000:0:20: ++%25llx: 0x10000000000000000:1:20:18446744073709551615: ++%*25llx: 0x10000000000000000:0:20: ++%25llx: 100000000028757b1:1:18:18446744073709551615: ++%*25llx: 100000000028757b1:0:18: ++%25llx: 100000000028757B1:1:18:18446744073709551615: ++%*25llx: 100000000028757B1:0:18: ++%25llx: 0X100000000028757b1:1:20:18446744073709551615: ++%*25llx: 0X100000000028757b1:0:20: ++%25llx: 0x100000000028757B1:1:20:18446744073709551615: ++%*25llx: 0x100000000028757B1:0:20: ++%25llx: +0:1:3:0: ++%*25llx: +0:0:3: ++%25llx: +0X0:1:5:0: ++%*25llx: +0X0:0:5: ++%25llx: +0x0:1:5:0: ++%*25llx: +0x0:0:5: ++%25llx: +1:1:3:1: ++%*25llx: +1:0:3: ++%25llx: +0X1:1:5:1: ++%*25llx: +0X1:0:5: ++%25llx: +0x1:1:5:1: ++%*25llx: +0x1:0:5: ++%25llx: +2a:1:4:42: ++%*25llx: +2a:0:4: ++%25llx: +2A:1:4:42: ++%*25llx: +2A:0:4: ++%25llx: +0X2a:1:6:42: ++%*25llx: +0X2a:0:6: ++%25llx: +0x2A:1:6:42: ++%*25llx: +0x2A:0:6: ++%25llx: +ffffffffffffffff:1:18:18446744073709551615: ++%*25llx: +ffffffffffffffff:0:18: ++%25llx: +FFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25llx: +FFFFFFFFFFFFFFFF:0:18: ++%25llx: +0Xffffffffffffffff:1:20:18446744073709551615: ++%*25llx: +0Xffffffffffffffff:0:20: ++%25llx: +0xFFFFFFFFFFFFFFFF:1:20:18446744073709551615: ++%*25llx: +0xFFFFFFFFFFFFFFFF:0:20: ++%25llx: +10000000000000000:1:19:18446744073709551615: ++%*25llx: +10000000000000000:0:19: ++%25llx: +0X10000000000000000:1:21:18446744073709551615: ++%*25llx: +0X10000000000000000:0:21: ++%25llx: +0x10000000000000000:1:21:18446744073709551615: ++%*25llx: +0x10000000000000000:0:21: ++%25llx: +100000000028757b1:1:19:18446744073709551615: ++%*25llx: +100000000028757b1:0:19: ++%25llx: +100000000028757B1:1:19:18446744073709551615: ++%*25llx: +100000000028757B1:0:19: ++%25llx: +0X100000000028757b1:1:21:18446744073709551615: ++%*25llx: +0X100000000028757b1:0:21: ++%25llx: +0x100000000028757B1:1:21:18446744073709551615: ++%*25llx: +0x100000000028757B1:0:21: +diff --git a/stdio-common/tst-scanf-format-ullong-xx.input b/stdio-common/tst-scanf-format-ullong-xx.input +new file mode 100644 +index 0000000000000000..0964651177a09563 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ullong-xx.input +@@ -0,0 +1,742 @@ ++%llX::0:-1: ++%*llX::0:-1: ++%llX:-7b:1:3:18446744073709551493: ++%*llX:-7b:0:3: ++%llX:-7B:1:3:18446744073709551493: ++%*llX:-7B:0:3: ++%llX:-0X7b:1:5:18446744073709551493: ++%*llX:-0X7b:0:5: ++%llX:-0x7B:1:5:18446744073709551493: ++%*llX:-0x7B:0:5: ++%llX:-1:1:2:18446744073709551615: ++%*llX:-1:0:2: ++%llX:-0X1:1:4:18446744073709551615: ++%*llX:-0X1:0:4: ++%llX:-0x1:1:4:18446744073709551615: ++%*llX:-0x1:0:4: ++%llX:-0:1:2:0: ++%*llX:-0:0:2: ++%llX:-0X0:1:4:0: ++%*llX:-0X0:0:4: ++%llX:-0x0:1:4:0: ++%*llX:-0x0:0:4: ++%llX:0:1:1:0: ++%*llX:0:0:1: ++%llX:0X0:1:3:0: ++%*llX:0X0:0:3: ++%llX:0x0:1:3:0: ++%*llX:0x0:0:3: ++%llX:1:1:1:1: ++%*llX:1:0:1: ++%llX:0X1:1:3:1: ++%*llX:0X1:0:3: ++%llX:0x1:1:3:1: ++%*llX:0x1:0:3: ++%llX:2a:1:2:42: ++%*llX:2a:0:2: ++%llX:2A:1:2:42: ++%*llX:2A:0:2: ++%llX:0X2a:1:4:42: ++%*llX:0X2a:0:4: ++%llX:0x2A:1:4:42: ++%*llX:0x2A:0:4: ++%llX:ffffffffffffffff:1:16:18446744073709551615: ++%*llX:ffffffffffffffff:0:16: ++%llX:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*llX:FFFFFFFFFFFFFFFF:0:16: ++%llX:0Xffffffffffffffff:1:18:18446744073709551615: ++%*llX:0Xffffffffffffffff:0:18: ++%llX:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*llX:0xFFFFFFFFFFFFFFFF:0:18: ++%llX:10000000000000000:1:17:18446744073709551615: ++%*llX:10000000000000000:0:17: ++%llX:0X10000000000000000:1:19:18446744073709551615: ++%*llX:0X10000000000000000:0:19: ++%llX:0x10000000000000000:1:19:18446744073709551615: ++%*llX:0x10000000000000000:0:19: ++%llX:100000000028757b1:1:17:18446744073709551615: ++%*llX:100000000028757b1:0:17: ++%llX:100000000028757B1:1:17:18446744073709551615: ++%*llX:100000000028757B1:0:17: ++%llX:0X100000000028757b1:1:19:18446744073709551615: ++%*llX:0X100000000028757b1:0:19: ++%llX:0x100000000028757B1:1:19:18446744073709551615: ++%*llX:0x100000000028757B1:0:19: ++%llX:+0:1:2:0: ++%*llX:+0:0:2: ++%llX:+0X0:1:4:0: ++%*llX:+0X0:0:4: ++%llX:+0x0:1:4:0: ++%*llX:+0x0:0:4: ++%llX:+1:1:2:1: ++%*llX:+1:0:2: ++%llX:+0X1:1:4:1: ++%*llX:+0X1:0:4: ++%llX:+0x1:1:4:1: ++%*llX:+0x1:0:4: ++%llX:+2a:1:3:42: ++%*llX:+2a:0:3: ++%llX:+2A:1:3:42: ++%*llX:+2A:0:3: ++%llX:+0X2a:1:5:42: ++%*llX:+0X2a:0:5: ++%llX:+0x2A:1:5:42: ++%*llX:+0x2A:0:5: ++%llX:+ffffffffffffffff:1:17:18446744073709551615: ++%*llX:+ffffffffffffffff:0:17: ++%llX:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*llX:+FFFFFFFFFFFFFFFF:0:17: ++%llX:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*llX:+0Xffffffffffffffff:0:19: ++%llX:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*llX:+0xFFFFFFFFFFFFFFFF:0:19: ++%llX:+10000000000000000:1:18:18446744073709551615: ++%*llX:+10000000000000000:0:18: ++%llX:+0X10000000000000000:1:20:18446744073709551615: ++%*llX:+0X10000000000000000:0:20: ++%llX:+0x10000000000000000:1:20:18446744073709551615: ++%*llX:+0x10000000000000000:0:20: ++%llX:+100000000028757b1:1:18:18446744073709551615: ++%*llX:+100000000028757b1:0:18: ++%llX:+100000000028757B1:1:18:18446744073709551615: ++%*llX:+100000000028757B1:0:18: ++%llX:+0X100000000028757b1:1:20:18446744073709551615: ++%*llX:+0X100000000028757b1:0:20: ++%llX:+0x100000000028757B1:1:20:18446744073709551615: ++%*llX:+0x100000000028757B1:0:20: ++%1llX::0:-1: ++%*1llX::0:-1: ++%1llX:-7b:0:-1: ++%*1llX:-7b:0:-1: ++%1llX:-7B:0:-1: ++%*1llX:-7B:0:-1: ++%1llX:-0X7b:0:-1: ++%*1llX:-0X7b:0:-1: ++%1llX:-0x7B:0:-1: ++%*1llX:-0x7B:0:-1: ++%1llX:-1:0:-1: ++%*1llX:-1:0:-1: ++%1llX:-0X1:0:-1: ++%*1llX:-0X1:0:-1: ++%1llX:-0x1:0:-1: ++%*1llX:-0x1:0:-1: ++%1llX:-0:0:-1: ++%*1llX:-0:0:-1: ++%1llX:-0X0:0:-1: ++%*1llX:-0X0:0:-1: ++%1llX:-0x0:0:-1: ++%*1llX:-0x0:0:-1: ++%1llX:0:1:1:0: ++%*1llX:0:0:1: ++%1llX:0X0:1:1:0: ++%*1llX:0X0:0:1: ++%1llX:0x0:1:1:0: ++%*1llX:0x0:0:1: ++%1llX:1:1:1:1: ++%*1llX:1:0:1: ++%1llX:0X1:1:1:0: ++%*1llX:0X1:0:1: ++%1llX:0x1:1:1:0: ++%*1llX:0x1:0:1: ++%1llX:2a:1:1:2: ++%*1llX:2a:0:1: ++%1llX:2A:1:1:2: ++%*1llX:2A:0:1: ++%1llX:0X2a:1:1:0: ++%*1llX:0X2a:0:1: ++%1llX:0x2A:1:1:0: ++%*1llX:0x2A:0:1: ++%1llX:ffffffffffffffff:1:1:15: ++%*1llX:ffffffffffffffff:0:1: ++%1llX:FFFFFFFFFFFFFFFF:1:1:15: ++%*1llX:FFFFFFFFFFFFFFFF:0:1: ++%1llX:0Xffffffffffffffff:1:1:0: ++%*1llX:0Xffffffffffffffff:0:1: ++%1llX:0xFFFFFFFFFFFFFFFF:1:1:0: ++%*1llX:0xFFFFFFFFFFFFFFFF:0:1: ++%1llX:10000000000000000:1:1:1: ++%*1llX:10000000000000000:0:1: ++%1llX:0X10000000000000000:1:1:0: ++%*1llX:0X10000000000000000:0:1: ++%1llX:0x10000000000000000:1:1:0: ++%*1llX:0x10000000000000000:0:1: ++%1llX:100000000028757b1:1:1:1: ++%*1llX:100000000028757b1:0:1: ++%1llX:100000000028757B1:1:1:1: ++%*1llX:100000000028757B1:0:1: ++%1llX:0X100000000028757b1:1:1:0: ++%*1llX:0X100000000028757b1:0:1: ++%1llX:0x100000000028757B1:1:1:0: ++%*1llX:0x100000000028757B1:0:1: ++%1llX:+0:0:-1: ++%*1llX:+0:0:-1: ++%1llX:+0X0:0:-1: ++%*1llX:+0X0:0:-1: ++%1llX:+0x0:0:-1: ++%*1llX:+0x0:0:-1: ++%1llX:+1:0:-1: ++%*1llX:+1:0:-1: ++%1llX:+0X1:0:-1: ++%*1llX:+0X1:0:-1: ++%1llX:+0x1:0:-1: ++%*1llX:+0x1:0:-1: ++%1llX:+2a:0:-1: ++%*1llX:+2a:0:-1: ++%1llX:+2A:0:-1: ++%*1llX:+2A:0:-1: ++%1llX:+0X2a:0:-1: ++%*1llX:+0X2a:0:-1: ++%1llX:+0x2A:0:-1: ++%*1llX:+0x2A:0:-1: ++%1llX:+ffffffffffffffff:0:-1: ++%*1llX:+ffffffffffffffff:0:-1: ++%1llX:+FFFFFFFFFFFFFFFF:0:-1: ++%*1llX:+FFFFFFFFFFFFFFFF:0:-1: ++%1llX:+0Xffffffffffffffff:0:-1: ++%*1llX:+0Xffffffffffffffff:0:-1: ++%1llX:+0xFFFFFFFFFFFFFFFF:0:-1: ++%*1llX:+0xFFFFFFFFFFFFFFFF:0:-1: ++%1llX:+10000000000000000:0:-1: ++%*1llX:+10000000000000000:0:-1: ++%1llX:+0X10000000000000000:0:-1: ++%*1llX:+0X10000000000000000:0:-1: ++%1llX:+0x10000000000000000:0:-1: ++%*1llX:+0x10000000000000000:0:-1: ++%1llX:+100000000028757b1:0:-1: ++%*1llX:+100000000028757b1:0:-1: ++%1llX:+100000000028757B1:0:-1: ++%*1llX:+100000000028757B1:0:-1: ++%1llX:+0X100000000028757b1:0:-1: ++%*1llX:+0X100000000028757b1:0:-1: ++%1llX:+0x100000000028757B1:0:-1: ++%*1llX:+0x100000000028757B1:0:-1: ++%2llX::0:-1: ++%*2llX::0:-1: ++%2llX:-7b:1:2:18446744073709551609: ++%*2llX:-7b:0:2: ++%2llX:-7B:1:2:18446744073709551609: ++%*2llX:-7B:0:2: ++%2llX:-0X7b:1:2:0: ++%*2llX:-0X7b:0:2: ++%2llX:-0x7B:1:2:0: ++%*2llX:-0x7B:0:2: ++%2llX:-1:1:2:18446744073709551615: ++%*2llX:-1:0:2: ++%2llX:-0X1:1:2:0: ++%*2llX:-0X1:0:2: ++%2llX:-0x1:1:2:0: ++%*2llX:-0x1:0:2: ++%2llX:-0:1:2:0: ++%*2llX:-0:0:2: ++%2llX:-0X0:1:2:0: ++%*2llX:-0X0:0:2: ++%2llX:-0x0:1:2:0: ++%*2llX:-0x0:0:2: ++%2llX:0:1:1:0: ++%*2llX:0:0:1: ++# BZ12701 %2llX:0X0:0:-1: ++# BZ12701 %*2llX:0X0:0:-1: ++# BZ12701 %2llX:0x0:0:-1: ++# BZ12701 %*2llX:0x0:0:-1: ++%2llX:1:1:1:1: ++%*2llX:1:0:1: ++# BZ12701 %2llX:0X1:0:-1: ++# BZ12701 %*2llX:0X1:0:-1: ++# BZ12701 %2llX:0x1:0:-1: ++# BZ12701 %*2llX:0x1:0:-1: ++%2llX:2a:1:2:42: ++%*2llX:2a:0:2: ++%2llX:2A:1:2:42: ++%*2llX:2A:0:2: ++# BZ12701 %2llX:0X2a:0:-1: ++# BZ12701 %*2llX:0X2a:0:-1: ++# BZ12701 %2llX:0x2A:0:-1: ++# BZ12701 %*2llX:0x2A:0:-1: ++%2llX:ffffffffffffffff:1:2:255: ++%*2llX:ffffffffffffffff:0:2: ++%2llX:FFFFFFFFFFFFFFFF:1:2:255: ++%*2llX:FFFFFFFFFFFFFFFF:0:2: ++# BZ12701 %2llX:0Xffffffffffffffff:0:-1: ++# BZ12701 %*2llX:0Xffffffffffffffff:0:-1: ++# BZ12701 %2llX:0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2llX:0xFFFFFFFFFFFFFFFF:0:-1: ++%2llX:10000000000000000:1:2:16: ++%*2llX:10000000000000000:0:2: ++# BZ12701 %2llX:0X10000000000000000:0:-1: ++# BZ12701 %*2llX:0X10000000000000000:0:-1: ++# BZ12701 %2llX:0x10000000000000000:0:-1: ++# BZ12701 %*2llX:0x10000000000000000:0:-1: ++%2llX:100000000028757b1:1:2:16: ++%*2llX:100000000028757b1:0:2: ++%2llX:100000000028757B1:1:2:16: ++%*2llX:100000000028757B1:0:2: ++# BZ12701 %2llX:0X100000000028757b1:0:-1: ++# BZ12701 %*2llX:0X100000000028757b1:0:-1: ++# BZ12701 %2llX:0x100000000028757B1:0:-1: ++# BZ12701 %*2llX:0x100000000028757B1:0:-1: ++%2llX:+0:1:2:0: ++%*2llX:+0:0:2: ++%2llX:+0X0:1:2:0: ++%*2llX:+0X0:0:2: ++%2llX:+0x0:1:2:0: ++%*2llX:+0x0:0:2: ++%2llX:+1:1:2:1: ++%*2llX:+1:0:2: ++%2llX:+0X1:1:2:0: ++%*2llX:+0X1:0:2: ++%2llX:+0x1:1:2:0: ++%*2llX:+0x1:0:2: ++%2llX:+2a:1:2:2: ++%*2llX:+2a:0:2: ++%2llX:+2A:1:2:2: ++%*2llX:+2A:0:2: ++%2llX:+0X2a:1:2:0: ++%*2llX:+0X2a:0:2: ++%2llX:+0x2A:1:2:0: ++%*2llX:+0x2A:0:2: ++%2llX:+ffffffffffffffff:1:2:15: ++%*2llX:+ffffffffffffffff:0:2: ++%2llX:+FFFFFFFFFFFFFFFF:1:2:15: ++%*2llX:+FFFFFFFFFFFFFFFF:0:2: ++%2llX:+0Xffffffffffffffff:1:2:0: ++%*2llX:+0Xffffffffffffffff:0:2: ++%2llX:+0xFFFFFFFFFFFFFFFF:1:2:0: ++%*2llX:+0xFFFFFFFFFFFFFFFF:0:2: ++%2llX:+10000000000000000:1:2:1: ++%*2llX:+10000000000000000:0:2: ++%2llX:+0X10000000000000000:1:2:0: ++%*2llX:+0X10000000000000000:0:2: ++%2llX:+0x10000000000000000:1:2:0: ++%*2llX:+0x10000000000000000:0:2: ++%2llX:+100000000028757b1:1:2:1: ++%*2llX:+100000000028757b1:0:2: ++%2llX:+100000000028757B1:1:2:1: ++%*2llX:+100000000028757B1:0:2: ++%2llX:+0X100000000028757b1:1:2:0: ++%*2llX:+0X100000000028757b1:0:2: ++%2llX:+0x100000000028757B1:1:2:0: ++%*2llX:+0x100000000028757B1:0:2: ++%15llX::0:-1: ++%*15llX::0:-1: ++%15llX:-7b:1:3:18446744073709551493: ++%*15llX:-7b:0:3: ++%15llX:-7B:1:3:18446744073709551493: ++%*15llX:-7B:0:3: ++%15llX:-0X7b:1:5:18446744073709551493: ++%*15llX:-0X7b:0:5: ++%15llX:-0x7B:1:5:18446744073709551493: ++%*15llX:-0x7B:0:5: ++%15llX:-1:1:2:18446744073709551615: ++%*15llX:-1:0:2: ++%15llX:-0X1:1:4:18446744073709551615: ++%*15llX:-0X1:0:4: ++%15llX:-0x1:1:4:18446744073709551615: ++%*15llX:-0x1:0:4: ++%15llX:-0:1:2:0: ++%*15llX:-0:0:2: ++%15llX:-0X0:1:4:0: ++%*15llX:-0X0:0:4: ++%15llX:-0x0:1:4:0: ++%*15llX:-0x0:0:4: ++%15llX:0:1:1:0: ++%*15llX:0:0:1: ++%15llX:0X0:1:3:0: ++%*15llX:0X0:0:3: ++%15llX:0x0:1:3:0: ++%*15llX:0x0:0:3: ++%15llX:1:1:1:1: ++%*15llX:1:0:1: ++%15llX:0X1:1:3:1: ++%*15llX:0X1:0:3: ++%15llX:0x1:1:3:1: ++%*15llX:0x1:0:3: ++%15llX:2a:1:2:42: ++%*15llX:2a:0:2: ++%15llX:2A:1:2:42: ++%*15llX:2A:0:2: ++%15llX:0X2a:1:4:42: ++%*15llX:0X2a:0:4: ++%15llX:0x2A:1:4:42: ++%*15llX:0x2A:0:4: ++%15llX:ffffffffffffffff:1:15:1152921504606846975: ++%*15llX:ffffffffffffffff:0:15: ++%15llX:FFFFFFFFFFFFFFFF:1:15:1152921504606846975: ++%*15llX:FFFFFFFFFFFFFFFF:0:15: ++%15llX:0Xffffffffffffffff:1:15:4503599627370495: ++%*15llX:0Xffffffffffffffff:0:15: ++%15llX:0xFFFFFFFFFFFFFFFF:1:15:4503599627370495: ++%*15llX:0xFFFFFFFFFFFFFFFF:0:15: ++%15llX:10000000000000000:1:15:72057594037927936: ++%*15llX:10000000000000000:0:15: ++%15llX:0X10000000000000000:1:15:281474976710656: ++%*15llX:0X10000000000000000:0:15: ++%15llX:0x10000000000000000:1:15:281474976710656: ++%*15llX:0x10000000000000000:0:15: ++%15llX:100000000028757b1:1:15:72057594038093655: ++%*15llX:100000000028757b1:0:15: ++%15llX:100000000028757B1:1:15:72057594038093655: ++%*15llX:100000000028757B1:0:15: ++%15llX:0X100000000028757b1:1:15:281474976711303: ++%*15llX:0X100000000028757b1:0:15: ++%15llX:0x100000000028757B1:1:15:281474976711303: ++%*15llX:0x100000000028757B1:0:15: ++%15llX:+0:1:2:0: ++%*15llX:+0:0:2: ++%15llX:+0X0:1:4:0: ++%*15llX:+0X0:0:4: ++%15llX:+0x0:1:4:0: ++%*15llX:+0x0:0:4: ++%15llX:+1:1:2:1: ++%*15llX:+1:0:2: ++%15llX:+0X1:1:4:1: ++%*15llX:+0X1:0:4: ++%15llX:+0x1:1:4:1: ++%*15llX:+0x1:0:4: ++%15llX:+2a:1:3:42: ++%*15llX:+2a:0:3: ++%15llX:+2A:1:3:42: ++%*15llX:+2A:0:3: ++%15llX:+0X2a:1:5:42: ++%*15llX:+0X2a:0:5: ++%15llX:+0x2A:1:5:42: ++%*15llX:+0x2A:0:5: ++%15llX:+ffffffffffffffff:1:15:72057594037927935: ++%*15llX:+ffffffffffffffff:0:15: ++%15llX:+FFFFFFFFFFFFFFFF:1:15:72057594037927935: ++%*15llX:+FFFFFFFFFFFFFFFF:0:15: ++%15llX:+0Xffffffffffffffff:1:15:281474976710655: ++%*15llX:+0Xffffffffffffffff:0:15: ++%15llX:+0xFFFFFFFFFFFFFFFF:1:15:281474976710655: ++%*15llX:+0xFFFFFFFFFFFFFFFF:0:15: ++%15llX:+10000000000000000:1:15:4503599627370496: ++%*15llX:+10000000000000000:0:15: ++%15llX:+0X10000000000000000:1:15:17592186044416: ++%*15llX:+0X10000000000000000:0:15: ++%15llX:+0x10000000000000000:1:15:17592186044416: ++%*15llX:+0x10000000000000000:0:15: ++%15llX:+100000000028757b1:1:15:4503599627380853: ++%*15llX:+100000000028757b1:0:15: ++%15llX:+100000000028757B1:1:15:4503599627380853: ++%*15llX:+100000000028757B1:0:15: ++%15llX:+0X100000000028757b1:1:15:17592186044456: ++%*15llX:+0X100000000028757b1:0:15: ++%15llX:+0x100000000028757B1:1:15:17592186044456: ++%*15llX:+0x100000000028757B1:0:15: ++%25llX::0:-1: ++%*25llX::0:-1: ++%25llX:-7b:1:3:18446744073709551493: ++%*25llX:-7b:0:3: ++%25llX:-7B:1:3:18446744073709551493: ++%*25llX:-7B:0:3: ++%25llX:-0X7b:1:5:18446744073709551493: ++%*25llX:-0X7b:0:5: ++%25llX:-0x7B:1:5:18446744073709551493: ++%*25llX:-0x7B:0:5: ++%25llX:-1:1:2:18446744073709551615: ++%*25llX:-1:0:2: ++%25llX:-0X1:1:4:18446744073709551615: ++%*25llX:-0X1:0:4: ++%25llX:-0x1:1:4:18446744073709551615: ++%*25llX:-0x1:0:4: ++%25llX:-0:1:2:0: ++%*25llX:-0:0:2: ++%25llX:-0X0:1:4:0: ++%*25llX:-0X0:0:4: ++%25llX:-0x0:1:4:0: ++%*25llX:-0x0:0:4: ++%25llX:0:1:1:0: ++%*25llX:0:0:1: ++%25llX:0X0:1:3:0: ++%*25llX:0X0:0:3: ++%25llX:0x0:1:3:0: ++%*25llX:0x0:0:3: ++%25llX:1:1:1:1: ++%*25llX:1:0:1: ++%25llX:0X1:1:3:1: ++%*25llX:0X1:0:3: ++%25llX:0x1:1:3:1: ++%*25llX:0x1:0:3: ++%25llX:2a:1:2:42: ++%*25llX:2a:0:2: ++%25llX:2A:1:2:42: ++%*25llX:2A:0:2: ++%25llX:0X2a:1:4:42: ++%*25llX:0X2a:0:4: ++%25llX:0x2A:1:4:42: ++%*25llX:0x2A:0:4: ++%25llX:ffffffffffffffff:1:16:18446744073709551615: ++%*25llX:ffffffffffffffff:0:16: ++%25llX:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*25llX:FFFFFFFFFFFFFFFF:0:16: ++%25llX:0Xffffffffffffffff:1:18:18446744073709551615: ++%*25llX:0Xffffffffffffffff:0:18: ++%25llX:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25llX:0xFFFFFFFFFFFFFFFF:0:18: ++%25llX:10000000000000000:1:17:18446744073709551615: ++%*25llX:10000000000000000:0:17: ++%25llX:0X10000000000000000:1:19:18446744073709551615: ++%*25llX:0X10000000000000000:0:19: ++%25llX:0x10000000000000000:1:19:18446744073709551615: ++%*25llX:0x10000000000000000:0:19: ++%25llX:100000000028757b1:1:17:18446744073709551615: ++%*25llX:100000000028757b1:0:17: ++%25llX:100000000028757B1:1:17:18446744073709551615: ++%*25llX:100000000028757B1:0:17: ++%25llX:0X100000000028757b1:1:19:18446744073709551615: ++%*25llX:0X100000000028757b1:0:19: ++%25llX:0x100000000028757B1:1:19:18446744073709551615: ++%*25llX:0x100000000028757B1:0:19: ++%25llX:+0:1:2:0: ++%*25llX:+0:0:2: ++%25llX:+0X0:1:4:0: ++%*25llX:+0X0:0:4: ++%25llX:+0x0:1:4:0: ++%*25llX:+0x0:0:4: ++%25llX:+1:1:2:1: ++%*25llX:+1:0:2: ++%25llX:+0X1:1:4:1: ++%*25llX:+0X1:0:4: ++%25llX:+0x1:1:4:1: ++%*25llX:+0x1:0:4: ++%25llX:+2a:1:3:42: ++%*25llX:+2a:0:3: ++%25llX:+2A:1:3:42: ++%*25llX:+2A:0:3: ++%25llX:+0X2a:1:5:42: ++%*25llX:+0X2a:0:5: ++%25llX:+0x2A:1:5:42: ++%*25llX:+0x2A:0:5: ++%25llX:+ffffffffffffffff:1:17:18446744073709551615: ++%*25llX:+ffffffffffffffff:0:17: ++%25llX:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25llX:+FFFFFFFFFFFFFFFF:0:17: ++%25llX:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*25llX:+0Xffffffffffffffff:0:19: ++%25llX:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25llX:+0xFFFFFFFFFFFFFFFF:0:19: ++%25llX:+10000000000000000:1:18:18446744073709551615: ++%*25llX:+10000000000000000:0:18: ++%25llX:+0X10000000000000000:1:20:18446744073709551615: ++%*25llX:+0X10000000000000000:0:20: ++%25llX:+0x10000000000000000:1:20:18446744073709551615: ++%*25llX:+0x10000000000000000:0:20: ++%25llX:+100000000028757b1:1:18:18446744073709551615: ++%*25llX:+100000000028757b1:0:18: ++%25llX:+100000000028757B1:1:18:18446744073709551615: ++%*25llX:+100000000028757B1:0:18: ++%25llX:+0X100000000028757b1:1:20:18446744073709551615: ++%*25llX:+0X100000000028757b1:0:20: ++%25llX:+0x100000000028757B1:1:20:18446744073709551615: ++%*25llX:+0x100000000028757B1:0:20: ++%2llX: :0:-1: ++%*2llX: :0:-1: ++%2llX: -7b:1:3:18446744073709551609: ++%*2llX: -7b:0:3: ++%2llX: -7B:1:3:18446744073709551609: ++%*2llX: -7B:0:3: ++%2llX: -0X7b:1:3:0: ++%*2llX: -0X7b:0:3: ++%2llX: -0x7B:1:3:0: ++%*2llX: -0x7B:0:3: ++%2llX: -1:1:3:18446744073709551615: ++%*2llX: -1:0:3: ++%2llX: -0X1:1:3:0: ++%*2llX: -0X1:0:3: ++%2llX: -0x1:1:3:0: ++%*2llX: -0x1:0:3: ++%2llX: -0:1:3:0: ++%*2llX: -0:0:3: ++%2llX: -0X0:1:3:0: ++%*2llX: -0X0:0:3: ++%2llX: -0x0:1:3:0: ++%*2llX: -0x0:0:3: ++%2llX: 0:1:2:0: ++%*2llX: 0:0:2: ++# BZ12701 %2llX: 0X0:0:-1: ++# BZ12701 %*2llX: 0X0:0:-1: ++# BZ12701 %2llX: 0x0:0:-1: ++# BZ12701 %*2llX: 0x0:0:-1: ++%2llX: 1:1:2:1: ++%*2llX: 1:0:2: ++# BZ12701 %2llX: 0X1:0:-1: ++# BZ12701 %*2llX: 0X1:0:-1: ++# BZ12701 %2llX: 0x1:0:-1: ++# BZ12701 %*2llX: 0x1:0:-1: ++%2llX: 2a:1:3:42: ++%*2llX: 2a:0:3: ++%2llX: 2A:1:3:42: ++%*2llX: 2A:0:3: ++# BZ12701 %2llX: 0X2a:0:-1: ++# BZ12701 %*2llX: 0X2a:0:-1: ++# BZ12701 %2llX: 0x2A:0:-1: ++# BZ12701 %*2llX: 0x2A:0:-1: ++%2llX: ffffffffffffffff:1:3:255: ++%*2llX: ffffffffffffffff:0:3: ++%2llX: FFFFFFFFFFFFFFFF:1:3:255: ++%*2llX: FFFFFFFFFFFFFFFF:0:3: ++# BZ12701 %2llX: 0Xffffffffffffffff:0:-1: ++# BZ12701 %*2llX: 0Xffffffffffffffff:0:-1: ++# BZ12701 %2llX: 0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2llX: 0xFFFFFFFFFFFFFFFF:0:-1: ++%2llX: 10000000000000000:1:3:16: ++%*2llX: 10000000000000000:0:3: ++# BZ12701 %2llX: 0X10000000000000000:0:-1: ++# BZ12701 %*2llX: 0X10000000000000000:0:-1: ++# BZ12701 %2llX: 0x10000000000000000:0:-1: ++# BZ12701 %*2llX: 0x10000000000000000:0:-1: ++%2llX: 100000000028757b1:1:3:16: ++%*2llX: 100000000028757b1:0:3: ++%2llX: 100000000028757B1:1:3:16: ++%*2llX: 100000000028757B1:0:3: ++# BZ12701 %2llX: 0X100000000028757b1:0:-1: ++# BZ12701 %*2llX: 0X100000000028757b1:0:-1: ++# BZ12701 %2llX: 0x100000000028757B1:0:-1: ++# BZ12701 %*2llX: 0x100000000028757B1:0:-1: ++%2llX: +0:1:3:0: ++%*2llX: +0:0:3: ++%2llX: +0X0:1:3:0: ++%*2llX: +0X0:0:3: ++%2llX: +0x0:1:3:0: ++%*2llX: +0x0:0:3: ++%2llX: +1:1:3:1: ++%*2llX: +1:0:3: ++%2llX: +0X1:1:3:0: ++%*2llX: +0X1:0:3: ++%2llX: +0x1:1:3:0: ++%*2llX: +0x1:0:3: ++%2llX: +2a:1:3:2: ++%*2llX: +2a:0:3: ++%2llX: +2A:1:3:2: ++%*2llX: +2A:0:3: ++%2llX: +0X2a:1:3:0: ++%*2llX: +0X2a:0:3: ++%2llX: +0x2A:1:3:0: ++%*2llX: +0x2A:0:3: ++%2llX: +ffffffffffffffff:1:3:15: ++%*2llX: +ffffffffffffffff:0:3: ++%2llX: +FFFFFFFFFFFFFFFF:1:3:15: ++%*2llX: +FFFFFFFFFFFFFFFF:0:3: ++%2llX: +0Xffffffffffffffff:1:3:0: ++%*2llX: +0Xffffffffffffffff:0:3: ++%2llX: +0xFFFFFFFFFFFFFFFF:1:3:0: ++%*2llX: +0xFFFFFFFFFFFFFFFF:0:3: ++%2llX: +10000000000000000:1:3:1: ++%*2llX: +10000000000000000:0:3: ++%2llX: +0X10000000000000000:1:3:0: ++%*2llX: +0X10000000000000000:0:3: ++%2llX: +0x10000000000000000:1:3:0: ++%*2llX: +0x10000000000000000:0:3: ++%2llX: +100000000028757b1:1:3:1: ++%*2llX: +100000000028757b1:0:3: ++%2llX: +100000000028757B1:1:3:1: ++%*2llX: +100000000028757B1:0:3: ++%2llX: +0X100000000028757b1:1:3:0: ++%*2llX: +0X100000000028757b1:0:3: ++%2llX: +0x100000000028757B1:1:3:0: ++%*2llX: +0x100000000028757B1:0:3: ++%25llX: :0:-1: ++%*25llX: :0:-1: ++%25llX: -7b:1:4:18446744073709551493: ++%*25llX: -7b:0:4: ++%25llX: -7B:1:4:18446744073709551493: ++%*25llX: -7B:0:4: ++%25llX: -0X7b:1:6:18446744073709551493: ++%*25llX: -0X7b:0:6: ++%25llX: -0x7B:1:6:18446744073709551493: ++%*25llX: -0x7B:0:6: ++%25llX: -1:1:3:18446744073709551615: ++%*25llX: -1:0:3: ++%25llX: -0X1:1:5:18446744073709551615: ++%*25llX: -0X1:0:5: ++%25llX: -0x1:1:5:18446744073709551615: ++%*25llX: -0x1:0:5: ++%25llX: -0:1:3:0: ++%*25llX: -0:0:3: ++%25llX: -0X0:1:5:0: ++%*25llX: -0X0:0:5: ++%25llX: -0x0:1:5:0: ++%*25llX: -0x0:0:5: ++%25llX: 0:1:2:0: ++%*25llX: 0:0:2: ++%25llX: 0X0:1:4:0: ++%*25llX: 0X0:0:4: ++%25llX: 0x0:1:4:0: ++%*25llX: 0x0:0:4: ++%25llX: 1:1:2:1: ++%*25llX: 1:0:2: ++%25llX: 0X1:1:4:1: ++%*25llX: 0X1:0:4: ++%25llX: 0x1:1:4:1: ++%*25llX: 0x1:0:4: ++%25llX: 2a:1:3:42: ++%*25llX: 2a:0:3: ++%25llX: 2A:1:3:42: ++%*25llX: 2A:0:3: ++%25llX: 0X2a:1:5:42: ++%*25llX: 0X2a:0:5: ++%25llX: 0x2A:1:5:42: ++%*25llX: 0x2A:0:5: ++%25llX: ffffffffffffffff:1:17:18446744073709551615: ++%*25llX: ffffffffffffffff:0:17: ++%25llX: FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25llX: FFFFFFFFFFFFFFFF:0:17: ++%25llX: 0Xffffffffffffffff:1:19:18446744073709551615: ++%*25llX: 0Xffffffffffffffff:0:19: ++%25llX: 0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25llX: 0xFFFFFFFFFFFFFFFF:0:19: ++%25llX: 10000000000000000:1:18:18446744073709551615: ++%*25llX: 10000000000000000:0:18: ++%25llX: 0X10000000000000000:1:20:18446744073709551615: ++%*25llX: 0X10000000000000000:0:20: ++%25llX: 0x10000000000000000:1:20:18446744073709551615: ++%*25llX: 0x10000000000000000:0:20: ++%25llX: 100000000028757b1:1:18:18446744073709551615: ++%*25llX: 100000000028757b1:0:18: ++%25llX: 100000000028757B1:1:18:18446744073709551615: ++%*25llX: 100000000028757B1:0:18: ++%25llX: 0X100000000028757b1:1:20:18446744073709551615: ++%*25llX: 0X100000000028757b1:0:20: ++%25llX: 0x100000000028757B1:1:20:18446744073709551615: ++%*25llX: 0x100000000028757B1:0:20: ++%25llX: +0:1:3:0: ++%*25llX: +0:0:3: ++%25llX: +0X0:1:5:0: ++%*25llX: +0X0:0:5: ++%25llX: +0x0:1:5:0: ++%*25llX: +0x0:0:5: ++%25llX: +1:1:3:1: ++%*25llX: +1:0:3: ++%25llX: +0X1:1:5:1: ++%*25llX: +0X1:0:5: ++%25llX: +0x1:1:5:1: ++%*25llX: +0x1:0:5: ++%25llX: +2a:1:4:42: ++%*25llX: +2a:0:4: ++%25llX: +2A:1:4:42: ++%*25llX: +2A:0:4: ++%25llX: +0X2a:1:6:42: ++%*25llX: +0X2a:0:6: ++%25llX: +0x2A:1:6:42: ++%*25llX: +0x2A:0:6: ++%25llX: +ffffffffffffffff:1:18:18446744073709551615: ++%*25llX: +ffffffffffffffff:0:18: ++%25llX: +FFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25llX: +FFFFFFFFFFFFFFFF:0:18: ++%25llX: +0Xffffffffffffffff:1:20:18446744073709551615: ++%*25llX: +0Xffffffffffffffff:0:20: ++%25llX: +0xFFFFFFFFFFFFFFFF:1:20:18446744073709551615: ++%*25llX: +0xFFFFFFFFFFFFFFFF:0:20: ++%25llX: +10000000000000000:1:19:18446744073709551615: ++%*25llX: +10000000000000000:0:19: ++%25llX: +0X10000000000000000:1:21:18446744073709551615: ++%*25llX: +0X10000000000000000:0:21: ++%25llX: +0x10000000000000000:1:21:18446744073709551615: ++%*25llX: +0x10000000000000000:0:21: ++%25llX: +100000000028757b1:1:19:18446744073709551615: ++%*25llX: +100000000028757b1:0:19: ++%25llX: +100000000028757B1:1:19:18446744073709551615: ++%*25llX: +100000000028757B1:0:19: ++%25llX: +0X100000000028757b1:1:21:18446744073709551615: ++%*25llX: +0X100000000028757b1:0:21: ++%25llX: +0x100000000028757B1:1:21:18446744073709551615: ++%*25llX: +0x100000000028757B1:0:21: +diff --git a/stdio-common/tst-scanf-format-ushort-b.input b/stdio-common/tst-scanf-format-ushort-b.input +new file mode 100644 +index 0000000000000000..b41a66763a09a962 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ushort-b.input +@@ -0,0 +1,644 @@ ++%hb::0:-1: ++%*hb::0:-1: ++%hb:-1111011:1:8:65413: ++%*hb:-1111011:0:8: ++%hb:-0B1111011:1:10:65413: ++%*hb:-0B1111011:0:10: ++%hb:-0b1111011:1:10:65413: ++%*hb:-0b1111011:0:10: ++%hb:-1:1:2:65535: ++%*hb:-1:0:2: ++%hb:-0B1:1:4:65535: ++%*hb:-0B1:0:4: ++%hb:-0b1:1:4:65535: ++%*hb:-0b1:0:4: ++%hb:-0:1:2:0: ++%*hb:-0:0:2: ++%hb:-0B0:1:4:0: ++%*hb:-0B0:0:4: ++%hb:-0b0:1:4:0: ++%*hb:-0b0:0:4: ++%hb:0:1:1:0: ++%*hb:0:0:1: ++%hb:0B0:1:3:0: ++%*hb:0B0:0:3: ++%hb:0b0:1:3:0: ++%*hb:0b0:0:3: ++%hb:1:1:1:1: ++%*hb:1:0:1: ++%hb:0B1:1:3:1: ++%*hb:0B1:0:3: ++%hb:0b1:1:3:1: ++%*hb:0b1:0:3: ++%hb:101010:1:6:42: ++%*hb:101010:0:6: ++%hb:0B101010:1:8:42: ++%*hb:0B101010:0:8: ++%hb:0b101010:1:8:42: ++%*hb:0b101010:0:8: ++%hb:1111111111111111:1:16:65535: ++%*hb:1111111111111111:0:16: ++%hb:0B1111111111111111:1:18:65535: ++%*hb:0B1111111111111111:0:18: ++%hb:0b1111111111111111:1:18:65535: ++%*hb:0b1111111111111111:0:18: ++%hb:10000000000000000:1:17:0: ++%*hb:10000000000000000:0:17: ++%hb:0B10000000000000000:1:19:0: ++%*hb:0B10000000000000000:0:19: ++%hb:0b10000000000000000:1:19:0: ++%*hb:0b10000000000000000:0:19: ++%hb:10000000000101001:1:17:41: ++%*hb:10000000000101001:0:17: ++%hb:0B10000000000101001:1:19:41: ++%*hb:0B10000000000101001:0:19: ++%hb:0b10000000000101001:1:19:41: ++%*hb:0b10000000000101001:0:19: ++%hb:+0:1:2:0: ++%*hb:+0:0:2: ++%hb:+0B0:1:4:0: ++%*hb:+0B0:0:4: ++%hb:+0b0:1:4:0: ++%*hb:+0b0:0:4: ++%hb:+1:1:2:1: ++%*hb:+1:0:2: ++%hb:+0B1:1:4:1: ++%*hb:+0B1:0:4: ++%hb:+0b1:1:4:1: ++%*hb:+0b1:0:4: ++%hb:+101010:1:7:42: ++%*hb:+101010:0:7: ++%hb:+0B101010:1:9:42: ++%*hb:+0B101010:0:9: ++%hb:+0b101010:1:9:42: ++%*hb:+0b101010:0:9: ++%hb:+1111111111111111:1:17:65535: ++%*hb:+1111111111111111:0:17: ++%hb:+0B1111111111111111:1:19:65535: ++%*hb:+0B1111111111111111:0:19: ++%hb:+0b1111111111111111:1:19:65535: ++%*hb:+0b1111111111111111:0:19: ++%hb:+10000000000000000:1:18:0: ++%*hb:+10000000000000000:0:18: ++%hb:+0B10000000000000000:1:20:0: ++%*hb:+0B10000000000000000:0:20: ++%hb:+0b10000000000000000:1:20:0: ++%*hb:+0b10000000000000000:0:20: ++%hb:+10000000000101001:1:18:41: ++%*hb:+10000000000101001:0:18: ++%hb:+0B10000000000101001:1:20:41: ++%*hb:+0B10000000000101001:0:20: ++%hb:+0b10000000000101001:1:20:41: ++%*hb:+0b10000000000101001:0:20: ++%1hb::0:-1: ++%*1hb::0:-1: ++%1hb:-1111011:0:-1: ++%*1hb:-1111011:0:-1: ++%1hb:-0B1111011:0:-1: ++%*1hb:-0B1111011:0:-1: ++%1hb:-0b1111011:0:-1: ++%*1hb:-0b1111011:0:-1: ++%1hb:-1:0:-1: ++%*1hb:-1:0:-1: ++%1hb:-0B1:0:-1: ++%*1hb:-0B1:0:-1: ++%1hb:-0b1:0:-1: ++%*1hb:-0b1:0:-1: ++%1hb:-0:0:-1: ++%*1hb:-0:0:-1: ++%1hb:-0B0:0:-1: ++%*1hb:-0B0:0:-1: ++%1hb:-0b0:0:-1: ++%*1hb:-0b0:0:-1: ++%1hb:0:1:1:0: ++%*1hb:0:0:1: ++%1hb:0B0:1:1:0: ++%*1hb:0B0:0:1: ++%1hb:0b0:1:1:0: ++%*1hb:0b0:0:1: ++%1hb:1:1:1:1: ++%*1hb:1:0:1: ++%1hb:0B1:1:1:0: ++%*1hb:0B1:0:1: ++%1hb:0b1:1:1:0: ++%*1hb:0b1:0:1: ++%1hb:101010:1:1:1: ++%*1hb:101010:0:1: ++%1hb:0B101010:1:1:0: ++%*1hb:0B101010:0:1: ++%1hb:0b101010:1:1:0: ++%*1hb:0b101010:0:1: ++%1hb:1111111111111111:1:1:1: ++%*1hb:1111111111111111:0:1: ++%1hb:0B1111111111111111:1:1:0: ++%*1hb:0B1111111111111111:0:1: ++%1hb:0b1111111111111111:1:1:0: ++%*1hb:0b1111111111111111:0:1: ++%1hb:10000000000000000:1:1:1: ++%*1hb:10000000000000000:0:1: ++%1hb:0B10000000000000000:1:1:0: ++%*1hb:0B10000000000000000:0:1: ++%1hb:0b10000000000000000:1:1:0: ++%*1hb:0b10000000000000000:0:1: ++%1hb:10000000000101001:1:1:1: ++%*1hb:10000000000101001:0:1: ++%1hb:0B10000000000101001:1:1:0: ++%*1hb:0B10000000000101001:0:1: ++%1hb:0b10000000000101001:1:1:0: ++%*1hb:0b10000000000101001:0:1: ++%1hb:+0:0:-1: ++%*1hb:+0:0:-1: ++%1hb:+0B0:0:-1: ++%*1hb:+0B0:0:-1: ++%1hb:+0b0:0:-1: ++%*1hb:+0b0:0:-1: ++%1hb:+1:0:-1: ++%*1hb:+1:0:-1: ++%1hb:+0B1:0:-1: ++%*1hb:+0B1:0:-1: ++%1hb:+0b1:0:-1: ++%*1hb:+0b1:0:-1: ++%1hb:+101010:0:-1: ++%*1hb:+101010:0:-1: ++%1hb:+0B101010:0:-1: ++%*1hb:+0B101010:0:-1: ++%1hb:+0b101010:0:-1: ++%*1hb:+0b101010:0:-1: ++%1hb:+1111111111111111:0:-1: ++%*1hb:+1111111111111111:0:-1: ++%1hb:+0B1111111111111111:0:-1: ++%*1hb:+0B1111111111111111:0:-1: ++%1hb:+0b1111111111111111:0:-1: ++%*1hb:+0b1111111111111111:0:-1: ++%1hb:+10000000000000000:0:-1: ++%*1hb:+10000000000000000:0:-1: ++%1hb:+0B10000000000000000:0:-1: ++%*1hb:+0B10000000000000000:0:-1: ++%1hb:+0b10000000000000000:0:-1: ++%*1hb:+0b10000000000000000:0:-1: ++%1hb:+10000000000101001:0:-1: ++%*1hb:+10000000000101001:0:-1: ++%1hb:+0B10000000000101001:0:-1: ++%*1hb:+0B10000000000101001:0:-1: ++%1hb:+0b10000000000101001:0:-1: ++%*1hb:+0b10000000000101001:0:-1: ++%2hb::0:-1: ++%*2hb::0:-1: ++%2hb:-1111011:1:2:65535: ++%*2hb:-1111011:0:2: ++%2hb:-0B1111011:1:2:0: ++%*2hb:-0B1111011:0:2: ++%2hb:-0b1111011:1:2:0: ++%*2hb:-0b1111011:0:2: ++%2hb:-1:1:2:65535: ++%*2hb:-1:0:2: ++%2hb:-0B1:1:2:0: ++%*2hb:-0B1:0:2: ++%2hb:-0b1:1:2:0: ++%*2hb:-0b1:0:2: ++%2hb:-0:1:2:0: ++%*2hb:-0:0:2: ++%2hb:-0B0:1:2:0: ++%*2hb:-0B0:0:2: ++%2hb:-0b0:1:2:0: ++%*2hb:-0b0:0:2: ++%2hb:0:1:1:0: ++%*2hb:0:0:1: ++# BZ12701 %2hb:0B0:0:-1: ++# BZ12701 %*2hb:0B0:0:-1: ++# BZ12701 %2hb:0b0:0:-1: ++# BZ12701 %*2hb:0b0:0:-1: ++%2hb:1:1:1:1: ++%*2hb:1:0:1: ++# BZ12701 %2hb:0B1:0:-1: ++# BZ12701 %*2hb:0B1:0:-1: ++# BZ12701 %2hb:0b1:0:-1: ++# BZ12701 %*2hb:0b1:0:-1: ++%2hb:101010:1:2:2: ++%*2hb:101010:0:2: ++# BZ12701 %2hb:0B101010:0:-1: ++# BZ12701 %*2hb:0B101010:0:-1: ++# BZ12701 %2hb:0b101010:0:-1: ++# BZ12701 %*2hb:0b101010:0:-1: ++%2hb:1111111111111111:1:2:3: ++%*2hb:1111111111111111:0:2: ++# BZ12701 %2hb:0B1111111111111111:0:-1: ++# BZ12701 %*2hb:0B1111111111111111:0:-1: ++# BZ12701 %2hb:0b1111111111111111:0:-1: ++# BZ12701 %*2hb:0b1111111111111111:0:-1: ++%2hb:10000000000000000:1:2:2: ++%*2hb:10000000000000000:0:2: ++# BZ12701 %2hb:0B10000000000000000:0:-1: ++# BZ12701 %*2hb:0B10000000000000000:0:-1: ++# BZ12701 %2hb:0b10000000000000000:0:-1: ++# BZ12701 %*2hb:0b10000000000000000:0:-1: ++%2hb:10000000000101001:1:2:2: ++%*2hb:10000000000101001:0:2: ++# BZ12701 %2hb:0B10000000000101001:0:-1: ++# BZ12701 %*2hb:0B10000000000101001:0:-1: ++# BZ12701 %2hb:0b10000000000101001:0:-1: ++# BZ12701 %*2hb:0b10000000000101001:0:-1: ++%2hb:+0:1:2:0: ++%*2hb:+0:0:2: ++%2hb:+0B0:1:2:0: ++%*2hb:+0B0:0:2: ++%2hb:+0b0:1:2:0: ++%*2hb:+0b0:0:2: ++%2hb:+1:1:2:1: ++%*2hb:+1:0:2: ++%2hb:+0B1:1:2:0: ++%*2hb:+0B1:0:2: ++%2hb:+0b1:1:2:0: ++%*2hb:+0b1:0:2: ++%2hb:+101010:1:2:1: ++%*2hb:+101010:0:2: ++%2hb:+0B101010:1:2:0: ++%*2hb:+0B101010:0:2: ++%2hb:+0b101010:1:2:0: ++%*2hb:+0b101010:0:2: ++%2hb:+1111111111111111:1:2:1: ++%*2hb:+1111111111111111:0:2: ++%2hb:+0B1111111111111111:1:2:0: ++%*2hb:+0B1111111111111111:0:2: ++%2hb:+0b1111111111111111:1:2:0: ++%*2hb:+0b1111111111111111:0:2: ++%2hb:+10000000000000000:1:2:1: ++%*2hb:+10000000000000000:0:2: ++%2hb:+0B10000000000000000:1:2:0: ++%*2hb:+0B10000000000000000:0:2: ++%2hb:+0b10000000000000000:1:2:0: ++%*2hb:+0b10000000000000000:0:2: ++%2hb:+10000000000101001:1:2:1: ++%*2hb:+10000000000101001:0:2: ++%2hb:+0B10000000000101001:1:2:0: ++%*2hb:+0B10000000000101001:0:2: ++%2hb:+0b10000000000101001:1:2:0: ++%*2hb:+0b10000000000101001:0:2: ++%4hb::0:-1: ++%*4hb::0:-1: ++%4hb:-1111011:1:4:65529: ++%*4hb:-1111011:0:4: ++%4hb:-0B1111011:1:4:65535: ++%*4hb:-0B1111011:0:4: ++%4hb:-0b1111011:1:4:65535: ++%*4hb:-0b1111011:0:4: ++%4hb:-1:1:2:65535: ++%*4hb:-1:0:2: ++%4hb:-0B1:1:4:65535: ++%*4hb:-0B1:0:4: ++%4hb:-0b1:1:4:65535: ++%*4hb:-0b1:0:4: ++%4hb:-0:1:2:0: ++%*4hb:-0:0:2: ++%4hb:-0B0:1:4:0: ++%*4hb:-0B0:0:4: ++%4hb:-0b0:1:4:0: ++%*4hb:-0b0:0:4: ++%4hb:0:1:1:0: ++%*4hb:0:0:1: ++%4hb:0B0:1:3:0: ++%*4hb:0B0:0:3: ++%4hb:0b0:1:3:0: ++%*4hb:0b0:0:3: ++%4hb:1:1:1:1: ++%*4hb:1:0:1: ++%4hb:0B1:1:3:1: ++%*4hb:0B1:0:3: ++%4hb:0b1:1:3:1: ++%*4hb:0b1:0:3: ++%4hb:101010:1:4:10: ++%*4hb:101010:0:4: ++%4hb:0B101010:1:4:2: ++%*4hb:0B101010:0:4: ++%4hb:0b101010:1:4:2: ++%*4hb:0b101010:0:4: ++%4hb:1111111111111111:1:4:15: ++%*4hb:1111111111111111:0:4: ++%4hb:0B1111111111111111:1:4:3: ++%*4hb:0B1111111111111111:0:4: ++%4hb:0b1111111111111111:1:4:3: ++%*4hb:0b1111111111111111:0:4: ++%4hb:10000000000000000:1:4:8: ++%*4hb:10000000000000000:0:4: ++%4hb:0B10000000000000000:1:4:2: ++%*4hb:0B10000000000000000:0:4: ++%4hb:0b10000000000000000:1:4:2: ++%*4hb:0b10000000000000000:0:4: ++%4hb:10000000000101001:1:4:8: ++%*4hb:10000000000101001:0:4: ++%4hb:0B10000000000101001:1:4:2: ++%*4hb:0B10000000000101001:0:4: ++%4hb:0b10000000000101001:1:4:2: ++%*4hb:0b10000000000101001:0:4: ++%4hb:+0:1:2:0: ++%*4hb:+0:0:2: ++%4hb:+0B0:1:4:0: ++%*4hb:+0B0:0:4: ++%4hb:+0b0:1:4:0: ++%*4hb:+0b0:0:4: ++%4hb:+1:1:2:1: ++%*4hb:+1:0:2: ++%4hb:+0B1:1:4:1: ++%*4hb:+0B1:0:4: ++%4hb:+0b1:1:4:1: ++%*4hb:+0b1:0:4: ++%4hb:+101010:1:4:5: ++%*4hb:+101010:0:4: ++%4hb:+0B101010:1:4:1: ++%*4hb:+0B101010:0:4: ++%4hb:+0b101010:1:4:1: ++%*4hb:+0b101010:0:4: ++%4hb:+1111111111111111:1:4:7: ++%*4hb:+1111111111111111:0:4: ++%4hb:+0B1111111111111111:1:4:1: ++%*4hb:+0B1111111111111111:0:4: ++%4hb:+0b1111111111111111:1:4:1: ++%*4hb:+0b1111111111111111:0:4: ++%4hb:+10000000000000000:1:4:4: ++%*4hb:+10000000000000000:0:4: ++%4hb:+0B10000000000000000:1:4:1: ++%*4hb:+0B10000000000000000:0:4: ++%4hb:+0b10000000000000000:1:4:1: ++%*4hb:+0b10000000000000000:0:4: ++%4hb:+10000000000101001:1:4:4: ++%*4hb:+10000000000101001:0:4: ++%4hb:+0B10000000000101001:1:4:1: ++%*4hb:+0B10000000000101001:0:4: ++%4hb:+0b10000000000101001:1:4:1: ++%*4hb:+0b10000000000101001:0:4: ++%7hb::0:-1: ++%*7hb::0:-1: ++%7hb:-1111011:1:7:65475: ++%*7hb:-1111011:0:7: ++%7hb:-0B1111011:1:7:65521: ++%*7hb:-0B1111011:0:7: ++%7hb:-0b1111011:1:7:65521: ++%*7hb:-0b1111011:0:7: ++%7hb:-1:1:2:65535: ++%*7hb:-1:0:2: ++%7hb:-0B1:1:4:65535: ++%*7hb:-0B1:0:4: ++%7hb:-0b1:1:4:65535: ++%*7hb:-0b1:0:4: ++%7hb:-0:1:2:0: ++%*7hb:-0:0:2: ++%7hb:-0B0:1:4:0: ++%*7hb:-0B0:0:4: ++%7hb:-0b0:1:4:0: ++%*7hb:-0b0:0:4: ++%7hb:0:1:1:0: ++%*7hb:0:0:1: ++%7hb:0B0:1:3:0: ++%*7hb:0B0:0:3: ++%7hb:0b0:1:3:0: ++%*7hb:0b0:0:3: ++%7hb:1:1:1:1: ++%*7hb:1:0:1: ++%7hb:0B1:1:3:1: ++%*7hb:0B1:0:3: ++%7hb:0b1:1:3:1: ++%*7hb:0b1:0:3: ++%7hb:101010:1:6:42: ++%*7hb:101010:0:6: ++%7hb:0B101010:1:7:21: ++%*7hb:0B101010:0:7: ++%7hb:0b101010:1:7:21: ++%*7hb:0b101010:0:7: ++%7hb:1111111111111111:1:7:127: ++%*7hb:1111111111111111:0:7: ++%7hb:0B1111111111111111:1:7:31: ++%*7hb:0B1111111111111111:0:7: ++%7hb:0b1111111111111111:1:7:31: ++%*7hb:0b1111111111111111:0:7: ++%7hb:10000000000000000:1:7:64: ++%*7hb:10000000000000000:0:7: ++%7hb:0B10000000000000000:1:7:16: ++%*7hb:0B10000000000000000:0:7: ++%7hb:0b10000000000000000:1:7:16: ++%*7hb:0b10000000000000000:0:7: ++%7hb:10000000000101001:1:7:64: ++%*7hb:10000000000101001:0:7: ++%7hb:0B10000000000101001:1:7:16: ++%*7hb:0B10000000000101001:0:7: ++%7hb:0b10000000000101001:1:7:16: ++%*7hb:0b10000000000101001:0:7: ++%7hb:+0:1:2:0: ++%*7hb:+0:0:2: ++%7hb:+0B0:1:4:0: ++%*7hb:+0B0:0:4: ++%7hb:+0b0:1:4:0: ++%*7hb:+0b0:0:4: ++%7hb:+1:1:2:1: ++%*7hb:+1:0:2: ++%7hb:+0B1:1:4:1: ++%*7hb:+0B1:0:4: ++%7hb:+0b1:1:4:1: ++%*7hb:+0b1:0:4: ++%7hb:+101010:1:7:42: ++%*7hb:+101010:0:7: ++%7hb:+0B101010:1:7:10: ++%*7hb:+0B101010:0:7: ++%7hb:+0b101010:1:7:10: ++%*7hb:+0b101010:0:7: ++%7hb:+1111111111111111:1:7:63: ++%*7hb:+1111111111111111:0:7: ++%7hb:+0B1111111111111111:1:7:15: ++%*7hb:+0B1111111111111111:0:7: ++%7hb:+0b1111111111111111:1:7:15: ++%*7hb:+0b1111111111111111:0:7: ++%7hb:+10000000000000000:1:7:32: ++%*7hb:+10000000000000000:0:7: ++%7hb:+0B10000000000000000:1:7:8: ++%*7hb:+0B10000000000000000:0:7: ++%7hb:+0b10000000000000000:1:7:8: ++%*7hb:+0b10000000000000000:0:7: ++%7hb:+10000000000101001:1:7:32: ++%*7hb:+10000000000101001:0:7: ++%7hb:+0B10000000000101001:1:7:8: ++%*7hb:+0B10000000000101001:0:7: ++%7hb:+0b10000000000101001:1:7:8: ++%*7hb:+0b10000000000101001:0:7: ++%2hb: :0:-1: ++%*2hb: :0:-1: ++%2hb: -1111011:1:3:65535: ++%*2hb: -1111011:0:3: ++%2hb: -0B1111011:1:3:0: ++%*2hb: -0B1111011:0:3: ++%2hb: -0b1111011:1:3:0: ++%*2hb: -0b1111011:0:3: ++%2hb: -1:1:3:65535: ++%*2hb: -1:0:3: ++%2hb: -0B1:1:3:0: ++%*2hb: -0B1:0:3: ++%2hb: -0b1:1:3:0: ++%*2hb: -0b1:0:3: ++%2hb: -0:1:3:0: ++%*2hb: -0:0:3: ++%2hb: -0B0:1:3:0: ++%*2hb: -0B0:0:3: ++%2hb: -0b0:1:3:0: ++%*2hb: -0b0:0:3: ++%2hb: 0:1:2:0: ++%*2hb: 0:0:2: ++# BZ12701 %2hb: 0B0:0:-1: ++# BZ12701 %*2hb: 0B0:0:-1: ++# BZ12701 %2hb: 0b0:0:-1: ++# BZ12701 %*2hb: 0b0:0:-1: ++%2hb: 1:1:2:1: ++%*2hb: 1:0:2: ++# BZ12701 %2hb: 0B1:0:-1: ++# BZ12701 %*2hb: 0B1:0:-1: ++# BZ12701 %2hb: 0b1:0:-1: ++# BZ12701 %*2hb: 0b1:0:-1: ++%2hb: 101010:1:3:2: ++%*2hb: 101010:0:3: ++# BZ12701 %2hb: 0B101010:0:-1: ++# BZ12701 %*2hb: 0B101010:0:-1: ++# BZ12701 %2hb: 0b101010:0:-1: ++# BZ12701 %*2hb: 0b101010:0:-1: ++%2hb: 1111111111111111:1:3:3: ++%*2hb: 1111111111111111:0:3: ++# BZ12701 %2hb: 0B1111111111111111:0:-1: ++# BZ12701 %*2hb: 0B1111111111111111:0:-1: ++# BZ12701 %2hb: 0b1111111111111111:0:-1: ++# BZ12701 %*2hb: 0b1111111111111111:0:-1: ++%2hb: 10000000000000000:1:3:2: ++%*2hb: 10000000000000000:0:3: ++# BZ12701 %2hb: 0B10000000000000000:0:-1: ++# BZ12701 %*2hb: 0B10000000000000000:0:-1: ++# BZ12701 %2hb: 0b10000000000000000:0:-1: ++# BZ12701 %*2hb: 0b10000000000000000:0:-1: ++%2hb: 10000000000101001:1:3:2: ++%*2hb: 10000000000101001:0:3: ++# BZ12701 %2hb: 0B10000000000101001:0:-1: ++# BZ12701 %*2hb: 0B10000000000101001:0:-1: ++# BZ12701 %2hb: 0b10000000000101001:0:-1: ++# BZ12701 %*2hb: 0b10000000000101001:0:-1: ++%2hb: +0:1:3:0: ++%*2hb: +0:0:3: ++%2hb: +0B0:1:3:0: ++%*2hb: +0B0:0:3: ++%2hb: +0b0:1:3:0: ++%*2hb: +0b0:0:3: ++%2hb: +1:1:3:1: ++%*2hb: +1:0:3: ++%2hb: +0B1:1:3:0: ++%*2hb: +0B1:0:3: ++%2hb: +0b1:1:3:0: ++%*2hb: +0b1:0:3: ++%2hb: +101010:1:3:1: ++%*2hb: +101010:0:3: ++%2hb: +0B101010:1:3:0: ++%*2hb: +0B101010:0:3: ++%2hb: +0b101010:1:3:0: ++%*2hb: +0b101010:0:3: ++%2hb: +1111111111111111:1:3:1: ++%*2hb: +1111111111111111:0:3: ++%2hb: +0B1111111111111111:1:3:0: ++%*2hb: +0B1111111111111111:0:3: ++%2hb: +0b1111111111111111:1:3:0: ++%*2hb: +0b1111111111111111:0:3: ++%2hb: +10000000000000000:1:3:1: ++%*2hb: +10000000000000000:0:3: ++%2hb: +0B10000000000000000:1:3:0: ++%*2hb: +0B10000000000000000:0:3: ++%2hb: +0b10000000000000000:1:3:0: ++%*2hb: +0b10000000000000000:0:3: ++%2hb: +10000000000101001:1:3:1: ++%*2hb: +10000000000101001:0:3: ++%2hb: +0B10000000000101001:1:3:0: ++%*2hb: +0B10000000000101001:0:3: ++%2hb: +0b10000000000101001:1:3:0: ++%*2hb: +0b10000000000101001:0:3: ++%7hb: :0:-1: ++%*7hb: :0:-1: ++%7hb: -1111011:1:8:65475: ++%*7hb: -1111011:0:8: ++%7hb: -0B1111011:1:8:65521: ++%*7hb: -0B1111011:0:8: ++%7hb: -0b1111011:1:8:65521: ++%*7hb: -0b1111011:0:8: ++%7hb: -1:1:3:65535: ++%*7hb: -1:0:3: ++%7hb: -0B1:1:5:65535: ++%*7hb: -0B1:0:5: ++%7hb: -0b1:1:5:65535: ++%*7hb: -0b1:0:5: ++%7hb: -0:1:3:0: ++%*7hb: -0:0:3: ++%7hb: -0B0:1:5:0: ++%*7hb: -0B0:0:5: ++%7hb: -0b0:1:5:0: ++%*7hb: -0b0:0:5: ++%7hb: 0:1:2:0: ++%*7hb: 0:0:2: ++%7hb: 0B0:1:4:0: ++%*7hb: 0B0:0:4: ++%7hb: 0b0:1:4:0: ++%*7hb: 0b0:0:4: ++%7hb: 1:1:2:1: ++%*7hb: 1:0:2: ++%7hb: 0B1:1:4:1: ++%*7hb: 0B1:0:4: ++%7hb: 0b1:1:4:1: ++%*7hb: 0b1:0:4: ++%7hb: 101010:1:7:42: ++%*7hb: 101010:0:7: ++%7hb: 0B101010:1:8:21: ++%*7hb: 0B101010:0:8: ++%7hb: 0b101010:1:8:21: ++%*7hb: 0b101010:0:8: ++%7hb: 1111111111111111:1:8:127: ++%*7hb: 1111111111111111:0:8: ++%7hb: 0B1111111111111111:1:8:31: ++%*7hb: 0B1111111111111111:0:8: ++%7hb: 0b1111111111111111:1:8:31: ++%*7hb: 0b1111111111111111:0:8: ++%7hb: 10000000000000000:1:8:64: ++%*7hb: 10000000000000000:0:8: ++%7hb: 0B10000000000000000:1:8:16: ++%*7hb: 0B10000000000000000:0:8: ++%7hb: 0b10000000000000000:1:8:16: ++%*7hb: 0b10000000000000000:0:8: ++%7hb: 10000000000101001:1:8:64: ++%*7hb: 10000000000101001:0:8: ++%7hb: 0B10000000000101001:1:8:16: ++%*7hb: 0B10000000000101001:0:8: ++%7hb: 0b10000000000101001:1:8:16: ++%*7hb: 0b10000000000101001:0:8: ++%7hb: +0:1:3:0: ++%*7hb: +0:0:3: ++%7hb: +0B0:1:5:0: ++%*7hb: +0B0:0:5: ++%7hb: +0b0:1:5:0: ++%*7hb: +0b0:0:5: ++%7hb: +1:1:3:1: ++%*7hb: +1:0:3: ++%7hb: +0B1:1:5:1: ++%*7hb: +0B1:0:5: ++%7hb: +0b1:1:5:1: ++%*7hb: +0b1:0:5: ++%7hb: +101010:1:8:42: ++%*7hb: +101010:0:8: ++%7hb: +0B101010:1:8:10: ++%*7hb: +0B101010:0:8: ++%7hb: +0b101010:1:8:10: ++%*7hb: +0b101010:0:8: ++%7hb: +1111111111111111:1:8:63: ++%*7hb: +1111111111111111:0:8: ++%7hb: +0B1111111111111111:1:8:15: ++%*7hb: +0B1111111111111111:0:8: ++%7hb: +0b1111111111111111:1:8:15: ++%*7hb: +0b1111111111111111:0:8: ++%7hb: +10000000000000000:1:8:32: ++%*7hb: +10000000000000000:0:8: ++%7hb: +0B10000000000000000:1:8:8: ++%*7hb: +0B10000000000000000:0:8: ++%7hb: +0b10000000000000000:1:8:8: ++%*7hb: +0b10000000000000000:0:8: ++%7hb: +10000000000101001:1:8:32: ++%*7hb: +10000000000101001:0:8: ++%7hb: +0B10000000000101001:1:8:8: ++%*7hb: +0B10000000000101001:0:8: ++%7hb: +0b10000000000101001:1:8:8: ++%*7hb: +0b10000000000101001:0:8: +diff --git a/stdio-common/tst-scanf-format-ushort-o.input b/stdio-common/tst-scanf-format-ushort-o.input +new file mode 100644 +index 0000000000000000..8276be430ca0843b +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ushort-o.input +@@ -0,0 +1,434 @@ ++%ho::0:-1: ++%*ho::0:-1: ++%ho:-173:1:4:65413: ++%*ho:-173:0:4: ++%ho:-0173:1:5:65413: ++%*ho:-0173:0:5: ++%ho:-1:1:2:65535: ++%*ho:-1:0:2: ++%ho:-01:1:3:65535: ++%*ho:-01:0:3: ++%ho:-0:1:2:0: ++%*ho:-0:0:2: ++%ho:-00:1:3:0: ++%*ho:-00:0:3: ++%ho:0:1:1:0: ++%*ho:0:0:1: ++%ho:00:1:2:0: ++%*ho:00:0:2: ++%ho:1:1:1:1: ++%*ho:1:0:1: ++%ho:01:1:2:1: ++%*ho:01:0:2: ++%ho:52:1:2:42: ++%*ho:52:0:2: ++%ho:052:1:3:42: ++%*ho:052:0:3: ++%ho:177777:1:6:65535: ++%*ho:177777:0:6: ++%ho:0177777:1:7:65535: ++%*ho:0177777:0:7: ++%ho:200000:1:6:0: ++%*ho:200000:0:6: ++%ho:0200000:1:7:0: ++%*ho:0200000:0:7: ++%ho:200051:1:6:41: ++%*ho:200051:0:6: ++%ho:0200051:1:7:41: ++%*ho:0200051:0:7: ++%ho:+0:1:2:0: ++%*ho:+0:0:2: ++%ho:+00:1:3:0: ++%*ho:+00:0:3: ++%ho:+1:1:2:1: ++%*ho:+1:0:2: ++%ho:+01:1:3:1: ++%*ho:+01:0:3: ++%ho:+52:1:3:42: ++%*ho:+52:0:3: ++%ho:+052:1:4:42: ++%*ho:+052:0:4: ++%ho:+177777:1:7:65535: ++%*ho:+177777:0:7: ++%ho:+0177777:1:8:65535: ++%*ho:+0177777:0:8: ++%ho:+200000:1:7:0: ++%*ho:+200000:0:7: ++%ho:+0200000:1:8:0: ++%*ho:+0200000:0:8: ++%ho:+200051:1:7:41: ++%*ho:+200051:0:7: ++%ho:+0200051:1:8:41: ++%*ho:+0200051:0:8: ++%1ho::0:-1: ++%*1ho::0:-1: ++%1ho:-173:0:-1: ++%*1ho:-173:0:-1: ++%1ho:-0173:0:-1: ++%*1ho:-0173:0:-1: ++%1ho:-1:0:-1: ++%*1ho:-1:0:-1: ++%1ho:-01:0:-1: ++%*1ho:-01:0:-1: ++%1ho:-0:0:-1: ++%*1ho:-0:0:-1: ++%1ho:-00:0:-1: ++%*1ho:-00:0:-1: ++%1ho:0:1:1:0: ++%*1ho:0:0:1: ++%1ho:00:1:1:0: ++%*1ho:00:0:1: ++%1ho:1:1:1:1: ++%*1ho:1:0:1: ++%1ho:01:1:1:0: ++%*1ho:01:0:1: ++%1ho:52:1:1:5: ++%*1ho:52:0:1: ++%1ho:052:1:1:0: ++%*1ho:052:0:1: ++%1ho:177777:1:1:1: ++%*1ho:177777:0:1: ++%1ho:0177777:1:1:0: ++%*1ho:0177777:0:1: ++%1ho:200000:1:1:2: ++%*1ho:200000:0:1: ++%1ho:0200000:1:1:0: ++%*1ho:0200000:0:1: ++%1ho:200051:1:1:2: ++%*1ho:200051:0:1: ++%1ho:0200051:1:1:0: ++%*1ho:0200051:0:1: ++%1ho:+0:0:-1: ++%*1ho:+0:0:-1: ++%1ho:+00:0:-1: ++%*1ho:+00:0:-1: ++%1ho:+1:0:-1: ++%*1ho:+1:0:-1: ++%1ho:+01:0:-1: ++%*1ho:+01:0:-1: ++%1ho:+52:0:-1: ++%*1ho:+52:0:-1: ++%1ho:+052:0:-1: ++%*1ho:+052:0:-1: ++%1ho:+177777:0:-1: ++%*1ho:+177777:0:-1: ++%1ho:+0177777:0:-1: ++%*1ho:+0177777:0:-1: ++%1ho:+200000:0:-1: ++%*1ho:+200000:0:-1: ++%1ho:+0200000:0:-1: ++%*1ho:+0200000:0:-1: ++%1ho:+200051:0:-1: ++%*1ho:+200051:0:-1: ++%1ho:+0200051:0:-1: ++%*1ho:+0200051:0:-1: ++%2ho::0:-1: ++%*2ho::0:-1: ++%2ho:-173:1:2:65535: ++%*2ho:-173:0:2: ++%2ho:-0173:1:2:0: ++%*2ho:-0173:0:2: ++%2ho:-1:1:2:65535: ++%*2ho:-1:0:2: ++%2ho:-01:1:2:0: ++%*2ho:-01:0:2: ++%2ho:-0:1:2:0: ++%*2ho:-0:0:2: ++%2ho:-00:1:2:0: ++%*2ho:-00:0:2: ++%2ho:0:1:1:0: ++%*2ho:0:0:1: ++%2ho:00:1:2:0: ++%*2ho:00:0:2: ++%2ho:1:1:1:1: ++%*2ho:1:0:1: ++%2ho:01:1:2:1: ++%*2ho:01:0:2: ++%2ho:52:1:2:42: ++%*2ho:52:0:2: ++%2ho:052:1:2:5: ++%*2ho:052:0:2: ++%2ho:177777:1:2:15: ++%*2ho:177777:0:2: ++%2ho:0177777:1:2:1: ++%*2ho:0177777:0:2: ++%2ho:200000:1:2:16: ++%*2ho:200000:0:2: ++%2ho:0200000:1:2:2: ++%*2ho:0200000:0:2: ++%2ho:200051:1:2:16: ++%*2ho:200051:0:2: ++%2ho:0200051:1:2:2: ++%*2ho:0200051:0:2: ++%2ho:+0:1:2:0: ++%*2ho:+0:0:2: ++%2ho:+00:1:2:0: ++%*2ho:+00:0:2: ++%2ho:+1:1:2:1: ++%*2ho:+1:0:2: ++%2ho:+01:1:2:0: ++%*2ho:+01:0:2: ++%2ho:+52:1:2:5: ++%*2ho:+52:0:2: ++%2ho:+052:1:2:0: ++%*2ho:+052:0:2: ++%2ho:+177777:1:2:1: ++%*2ho:+177777:0:2: ++%2ho:+0177777:1:2:0: ++%*2ho:+0177777:0:2: ++%2ho:+200000:1:2:2: ++%*2ho:+200000:0:2: ++%2ho:+0200000:1:2:0: ++%*2ho:+0200000:0:2: ++%2ho:+200051:1:2:2: ++%*2ho:+200051:0:2: ++%2ho:+0200051:1:2:0: ++%*2ho:+0200051:0:2: ++%4ho::0:-1: ++%*4ho::0:-1: ++%4ho:-173:1:4:65413: ++%*4ho:-173:0:4: ++%4ho:-0173:1:4:65521: ++%*4ho:-0173:0:4: ++%4ho:-1:1:2:65535: ++%*4ho:-1:0:2: ++%4ho:-01:1:3:65535: ++%*4ho:-01:0:3: ++%4ho:-0:1:2:0: ++%*4ho:-0:0:2: ++%4ho:-00:1:3:0: ++%*4ho:-00:0:3: ++%4ho:0:1:1:0: ++%*4ho:0:0:1: ++%4ho:00:1:2:0: ++%*4ho:00:0:2: ++%4ho:1:1:1:1: ++%*4ho:1:0:1: ++%4ho:01:1:2:1: ++%*4ho:01:0:2: ++%4ho:52:1:2:42: ++%*4ho:52:0:2: ++%4ho:052:1:3:42: ++%*4ho:052:0:3: ++%4ho:177777:1:4:1023: ++%*4ho:177777:0:4: ++%4ho:0177777:1:4:127: ++%*4ho:0177777:0:4: ++%4ho:200000:1:4:1024: ++%*4ho:200000:0:4: ++%4ho:0200000:1:4:128: ++%*4ho:0200000:0:4: ++%4ho:200051:1:4:1024: ++%*4ho:200051:0:4: ++%4ho:0200051:1:4:128: ++%*4ho:0200051:0:4: ++%4ho:+0:1:2:0: ++%*4ho:+0:0:2: ++%4ho:+00:1:3:0: ++%*4ho:+00:0:3: ++%4ho:+1:1:2:1: ++%*4ho:+1:0:2: ++%4ho:+01:1:3:1: ++%*4ho:+01:0:3: ++%4ho:+52:1:3:42: ++%*4ho:+52:0:3: ++%4ho:+052:1:4:42: ++%*4ho:+052:0:4: ++%4ho:+177777:1:4:127: ++%*4ho:+177777:0:4: ++%4ho:+0177777:1:4:15: ++%*4ho:+0177777:0:4: ++%4ho:+200000:1:4:128: ++%*4ho:+200000:0:4: ++%4ho:+0200000:1:4:16: ++%*4ho:+0200000:0:4: ++%4ho:+200051:1:4:128: ++%*4ho:+200051:0:4: ++%4ho:+0200051:1:4:16: ++%*4ho:+0200051:0:4: ++%7ho::0:-1: ++%*7ho::0:-1: ++%7ho:-173:1:4:65413: ++%*7ho:-173:0:4: ++%7ho:-0173:1:5:65413: ++%*7ho:-0173:0:5: ++%7ho:-1:1:2:65535: ++%*7ho:-1:0:2: ++%7ho:-01:1:3:65535: ++%*7ho:-01:0:3: ++%7ho:-0:1:2:0: ++%*7ho:-0:0:2: ++%7ho:-00:1:3:0: ++%*7ho:-00:0:3: ++%7ho:0:1:1:0: ++%*7ho:0:0:1: ++%7ho:00:1:2:0: ++%*7ho:00:0:2: ++%7ho:1:1:1:1: ++%*7ho:1:0:1: ++%7ho:01:1:2:1: ++%*7ho:01:0:2: ++%7ho:52:1:2:42: ++%*7ho:52:0:2: ++%7ho:052:1:3:42: ++%*7ho:052:0:3: ++%7ho:177777:1:6:65535: ++%*7ho:177777:0:6: ++%7ho:0177777:1:7:65535: ++%*7ho:0177777:0:7: ++%7ho:200000:1:6:0: ++%*7ho:200000:0:6: ++%7ho:0200000:1:7:0: ++%*7ho:0200000:0:7: ++%7ho:200051:1:6:41: ++%*7ho:200051:0:6: ++%7ho:0200051:1:7:41: ++%*7ho:0200051:0:7: ++%7ho:+0:1:2:0: ++%*7ho:+0:0:2: ++%7ho:+00:1:3:0: ++%*7ho:+00:0:3: ++%7ho:+1:1:2:1: ++%*7ho:+1:0:2: ++%7ho:+01:1:3:1: ++%*7ho:+01:0:3: ++%7ho:+52:1:3:42: ++%*7ho:+52:0:3: ++%7ho:+052:1:4:42: ++%*7ho:+052:0:4: ++%7ho:+177777:1:7:65535: ++%*7ho:+177777:0:7: ++%7ho:+0177777:1:7:8191: ++%*7ho:+0177777:0:7: ++%7ho:+200000:1:7:0: ++%*7ho:+200000:0:7: ++%7ho:+0200000:1:7:8192: ++%*7ho:+0200000:0:7: ++%7ho:+200051:1:7:41: ++%*7ho:+200051:0:7: ++%7ho:+0200051:1:7:8197: ++%*7ho:+0200051:0:7: ++%2ho: :0:-1: ++%*2ho: :0:-1: ++%2ho: -173:1:3:65535: ++%*2ho: -173:0:3: ++%2ho: -0173:1:3:0: ++%*2ho: -0173:0:3: ++%2ho: -1:1:3:65535: ++%*2ho: -1:0:3: ++%2ho: -01:1:3:0: ++%*2ho: -01:0:3: ++%2ho: -0:1:3:0: ++%*2ho: -0:0:3: ++%2ho: -00:1:3:0: ++%*2ho: -00:0:3: ++%2ho: 0:1:2:0: ++%*2ho: 0:0:2: ++%2ho: 00:1:3:0: ++%*2ho: 00:0:3: ++%2ho: 1:1:2:1: ++%*2ho: 1:0:2: ++%2ho: 01:1:3:1: ++%*2ho: 01:0:3: ++%2ho: 52:1:3:42: ++%*2ho: 52:0:3: ++%2ho: 052:1:3:5: ++%*2ho: 052:0:3: ++%2ho: 177777:1:3:15: ++%*2ho: 177777:0:3: ++%2ho: 0177777:1:3:1: ++%*2ho: 0177777:0:3: ++%2ho: 200000:1:3:16: ++%*2ho: 200000:0:3: ++%2ho: 0200000:1:3:2: ++%*2ho: 0200000:0:3: ++%2ho: 200051:1:3:16: ++%*2ho: 200051:0:3: ++%2ho: 0200051:1:3:2: ++%*2ho: 0200051:0:3: ++%2ho: +0:1:3:0: ++%*2ho: +0:0:3: ++%2ho: +00:1:3:0: ++%*2ho: +00:0:3: ++%2ho: +1:1:3:1: ++%*2ho: +1:0:3: ++%2ho: +01:1:3:0: ++%*2ho: +01:0:3: ++%2ho: +52:1:3:5: ++%*2ho: +52:0:3: ++%2ho: +052:1:3:0: ++%*2ho: +052:0:3: ++%2ho: +177777:1:3:1: ++%*2ho: +177777:0:3: ++%2ho: +0177777:1:3:0: ++%*2ho: +0177777:0:3: ++%2ho: +200000:1:3:2: ++%*2ho: +200000:0:3: ++%2ho: +0200000:1:3:0: ++%*2ho: +0200000:0:3: ++%2ho: +200051:1:3:2: ++%*2ho: +200051:0:3: ++%2ho: +0200051:1:3:0: ++%*2ho: +0200051:0:3: ++%7ho: :0:-1: ++%*7ho: :0:-1: ++%7ho: -173:1:5:65413: ++%*7ho: -173:0:5: ++%7ho: -0173:1:6:65413: ++%*7ho: -0173:0:6: ++%7ho: -1:1:3:65535: ++%*7ho: -1:0:3: ++%7ho: -01:1:4:65535: ++%*7ho: -01:0:4: ++%7ho: -0:1:3:0: ++%*7ho: -0:0:3: ++%7ho: -00:1:4:0: ++%*7ho: -00:0:4: ++%7ho: 0:1:2:0: ++%*7ho: 0:0:2: ++%7ho: 00:1:3:0: ++%*7ho: 00:0:3: ++%7ho: 1:1:2:1: ++%*7ho: 1:0:2: ++%7ho: 01:1:3:1: ++%*7ho: 01:0:3: ++%7ho: 52:1:3:42: ++%*7ho: 52:0:3: ++%7ho: 052:1:4:42: ++%*7ho: 052:0:4: ++%7ho: 177777:1:7:65535: ++%*7ho: 177777:0:7: ++%7ho: 0177777:1:8:65535: ++%*7ho: 0177777:0:8: ++%7ho: 200000:1:7:0: ++%*7ho: 200000:0:7: ++%7ho: 0200000:1:8:0: ++%*7ho: 0200000:0:8: ++%7ho: 200051:1:7:41: ++%*7ho: 200051:0:7: ++%7ho: 0200051:1:8:41: ++%*7ho: 0200051:0:8: ++%7ho: +0:1:3:0: ++%*7ho: +0:0:3: ++%7ho: +00:1:4:0: ++%*7ho: +00:0:4: ++%7ho: +1:1:3:1: ++%*7ho: +1:0:3: ++%7ho: +01:1:4:1: ++%*7ho: +01:0:4: ++%7ho: +52:1:4:42: ++%*7ho: +52:0:4: ++%7ho: +052:1:5:42: ++%*7ho: +052:0:5: ++%7ho: +177777:1:8:65535: ++%*7ho: +177777:0:8: ++%7ho: +0177777:1:8:8191: ++%*7ho: +0177777:0:8: ++%7ho: +200000:1:8:0: ++%*7ho: +200000:0:8: ++%7ho: +0200000:1:8:8192: ++%*7ho: +0200000:0:8: ++%7ho: +200051:1:8:41: ++%*7ho: +200051:0:8: ++%7ho: +0200051:1:8:8197: ++%*7ho: +0200051:0:8: +diff --git a/stdio-common/tst-scanf-format-ushort-u.input b/stdio-common/tst-scanf-format-ushort-u.input +new file mode 100644 +index 0000000000000000..56f7da52e168a4a0 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ushort-u.input +@@ -0,0 +1,224 @@ ++%hu::0:-1: ++%*hu::0:-1: ++%hu:-123:1:4:65413: ++%*hu:-123:0:4: ++%hu:-1:1:2:65535: ++%*hu:-1:0:2: ++%hu:-0:1:2:0: ++%*hu:-0:0:2: ++%hu:0:1:1:0: ++%*hu:0:0:1: ++%hu:1:1:1:1: ++%*hu:1:0:1: ++%hu:42:1:2:42: ++%*hu:42:0:2: ++%hu:65535:1:5:65535: ++%*hu:65535:0:5: ++%hu:65536:1:5:0: ++%*hu:65536:0:5: ++%hu:65577:1:5:41: ++%*hu:65577:0:5: ++%hu:+0:1:2:0: ++%*hu:+0:0:2: ++%hu:+1:1:2:1: ++%*hu:+1:0:2: ++%hu:+42:1:3:42: ++%*hu:+42:0:3: ++%hu:+65535:1:6:65535: ++%*hu:+65535:0:6: ++%hu:+65536:1:6:0: ++%*hu:+65536:0:6: ++%hu:+65577:1:6:41: ++%*hu:+65577:0:6: ++%1hu::0:-1: ++%*1hu::0:-1: ++%1hu:-123:0:-1: ++%*1hu:-123:0:-1: ++%1hu:-1:0:-1: ++%*1hu:-1:0:-1: ++%1hu:-0:0:-1: ++%*1hu:-0:0:-1: ++%1hu:0:1:1:0: ++%*1hu:0:0:1: ++%1hu:1:1:1:1: ++%*1hu:1:0:1: ++%1hu:42:1:1:4: ++%*1hu:42:0:1: ++%1hu:65535:1:1:6: ++%*1hu:65535:0:1: ++%1hu:65536:1:1:6: ++%*1hu:65536:0:1: ++%1hu:65577:1:1:6: ++%*1hu:65577:0:1: ++%1hu:+0:0:-1: ++%*1hu:+0:0:-1: ++%1hu:+1:0:-1: ++%*1hu:+1:0:-1: ++%1hu:+42:0:-1: ++%*1hu:+42:0:-1: ++%1hu:+65535:0:-1: ++%*1hu:+65535:0:-1: ++%1hu:+65536:0:-1: ++%*1hu:+65536:0:-1: ++%1hu:+65577:0:-1: ++%*1hu:+65577:0:-1: ++%2hu::0:-1: ++%*2hu::0:-1: ++%2hu:-123:1:2:65535: ++%*2hu:-123:0:2: ++%2hu:-1:1:2:65535: ++%*2hu:-1:0:2: ++%2hu:-0:1:2:0: ++%*2hu:-0:0:2: ++%2hu:0:1:1:0: ++%*2hu:0:0:1: ++%2hu:1:1:1:1: ++%*2hu:1:0:1: ++%2hu:42:1:2:42: ++%*2hu:42:0:2: ++%2hu:65535:1:2:65: ++%*2hu:65535:0:2: ++%2hu:65536:1:2:65: ++%*2hu:65536:0:2: ++%2hu:65577:1:2:65: ++%*2hu:65577:0:2: ++%2hu:+0:1:2:0: ++%*2hu:+0:0:2: ++%2hu:+1:1:2:1: ++%*2hu:+1:0:2: ++%2hu:+42:1:2:4: ++%*2hu:+42:0:2: ++%2hu:+65535:1:2:6: ++%*2hu:+65535:0:2: ++%2hu:+65536:1:2:6: ++%*2hu:+65536:0:2: ++%2hu:+65577:1:2:6: ++%*2hu:+65577:0:2: ++%4hu::0:-1: ++%*4hu::0:-1: ++%4hu:-123:1:4:65413: ++%*4hu:-123:0:4: ++%4hu:-1:1:2:65535: ++%*4hu:-1:0:2: ++%4hu:-0:1:2:0: ++%*4hu:-0:0:2: ++%4hu:0:1:1:0: ++%*4hu:0:0:1: ++%4hu:1:1:1:1: ++%*4hu:1:0:1: ++%4hu:42:1:2:42: ++%*4hu:42:0:2: ++%4hu:65535:1:4:6553: ++%*4hu:65535:0:4: ++%4hu:65536:1:4:6553: ++%*4hu:65536:0:4: ++%4hu:65577:1:4:6557: ++%*4hu:65577:0:4: ++%4hu:+0:1:2:0: ++%*4hu:+0:0:2: ++%4hu:+1:1:2:1: ++%*4hu:+1:0:2: ++%4hu:+42:1:3:42: ++%*4hu:+42:0:3: ++%4hu:+65535:1:4:655: ++%*4hu:+65535:0:4: ++%4hu:+65536:1:4:655: ++%*4hu:+65536:0:4: ++%4hu:+65577:1:4:655: ++%*4hu:+65577:0:4: ++%7hu::0:-1: ++%*7hu::0:-1: ++%7hu:-123:1:4:65413: ++%*7hu:-123:0:4: ++%7hu:-1:1:2:65535: ++%*7hu:-1:0:2: ++%7hu:-0:1:2:0: ++%*7hu:-0:0:2: ++%7hu:0:1:1:0: ++%*7hu:0:0:1: ++%7hu:1:1:1:1: ++%*7hu:1:0:1: ++%7hu:42:1:2:42: ++%*7hu:42:0:2: ++%7hu:65535:1:5:65535: ++%*7hu:65535:0:5: ++%7hu:65536:1:5:0: ++%*7hu:65536:0:5: ++%7hu:65577:1:5:41: ++%*7hu:65577:0:5: ++%7hu:+0:1:2:0: ++%*7hu:+0:0:2: ++%7hu:+1:1:2:1: ++%*7hu:+1:0:2: ++%7hu:+42:1:3:42: ++%*7hu:+42:0:3: ++%7hu:+65535:1:6:65535: ++%*7hu:+65535:0:6: ++%7hu:+65536:1:6:0: ++%*7hu:+65536:0:6: ++%7hu:+65577:1:6:41: ++%*7hu:+65577:0:6: ++%2hu: :0:-1: ++%*2hu: :0:-1: ++%2hu: -123:1:3:65535: ++%*2hu: -123:0:3: ++%2hu: -1:1:3:65535: ++%*2hu: -1:0:3: ++%2hu: -0:1:3:0: ++%*2hu: -0:0:3: ++%2hu: 0:1:2:0: ++%*2hu: 0:0:2: ++%2hu: 1:1:2:1: ++%*2hu: 1:0:2: ++%2hu: 42:1:3:42: ++%*2hu: 42:0:3: ++%2hu: 65535:1:3:65: ++%*2hu: 65535:0:3: ++%2hu: 65536:1:3:65: ++%*2hu: 65536:0:3: ++%2hu: 65577:1:3:65: ++%*2hu: 65577:0:3: ++%2hu: +0:1:3:0: ++%*2hu: +0:0:3: ++%2hu: +1:1:3:1: ++%*2hu: +1:0:3: ++%2hu: +42:1:3:4: ++%*2hu: +42:0:3: ++%2hu: +65535:1:3:6: ++%*2hu: +65535:0:3: ++%2hu: +65536:1:3:6: ++%*2hu: +65536:0:3: ++%2hu: +65577:1:3:6: ++%*2hu: +65577:0:3: ++%7hu: :0:-1: ++%*7hu: :0:-1: ++%7hu: -123:1:5:65413: ++%*7hu: -123:0:5: ++%7hu: -1:1:3:65535: ++%*7hu: -1:0:3: ++%7hu: -0:1:3:0: ++%*7hu: -0:0:3: ++%7hu: 0:1:2:0: ++%*7hu: 0:0:2: ++%7hu: 1:1:2:1: ++%*7hu: 1:0:2: ++%7hu: 42:1:3:42: ++%*7hu: 42:0:3: ++%7hu: 65535:1:6:65535: ++%*7hu: 65535:0:6: ++%7hu: 65536:1:6:0: ++%*7hu: 65536:0:6: ++%7hu: 65577:1:6:41: ++%*7hu: 65577:0:6: ++%7hu: +0:1:3:0: ++%*7hu: +0:0:3: ++%7hu: +1:1:3:1: ++%*7hu: +1:0:3: ++%7hu: +42:1:4:42: ++%*7hu: +42:0:4: ++%7hu: +65535:1:7:65535: ++%*7hu: +65535:0:7: ++%7hu: +65536:1:7:0: ++%*7hu: +65536:0:7: ++%7hu: +65577:1:7:41: ++%*7hu: +65577:0:7: +diff --git a/stdio-common/tst-scanf-format-ushort-x.input b/stdio-common/tst-scanf-format-ushort-x.input +new file mode 100644 +index 0000000000000000..a0ec8846d6d51f85 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ushort-x.input +@@ -0,0 +1,714 @@ ++%hx::0:-1: ++%*hx::0:-1: ++%hx:-7b:1:3:65413: ++%*hx:-7b:0:3: ++%hx:-7B:1:3:65413: ++%*hx:-7B:0:3: ++%hx:-0X7b:1:5:65413: ++%*hx:-0X7b:0:5: ++%hx:-0x7B:1:5:65413: ++%*hx:-0x7B:0:5: ++%hx:-1:1:2:65535: ++%*hx:-1:0:2: ++%hx:-0X1:1:4:65535: ++%*hx:-0X1:0:4: ++%hx:-0x1:1:4:65535: ++%*hx:-0x1:0:4: ++%hx:-0:1:2:0: ++%*hx:-0:0:2: ++%hx:-0X0:1:4:0: ++%*hx:-0X0:0:4: ++%hx:-0x0:1:4:0: ++%*hx:-0x0:0:4: ++%hx:0:1:1:0: ++%*hx:0:0:1: ++%hx:0X0:1:3:0: ++%*hx:0X0:0:3: ++%hx:0x0:1:3:0: ++%*hx:0x0:0:3: ++%hx:1:1:1:1: ++%*hx:1:0:1: ++%hx:0X1:1:3:1: ++%*hx:0X1:0:3: ++%hx:0x1:1:3:1: ++%*hx:0x1:0:3: ++%hx:2a:1:2:42: ++%*hx:2a:0:2: ++%hx:2A:1:2:42: ++%*hx:2A:0:2: ++%hx:0X2a:1:4:42: ++%*hx:0X2a:0:4: ++%hx:0x2A:1:4:42: ++%*hx:0x2A:0:4: ++%hx:ffff:1:4:65535: ++%*hx:ffff:0:4: ++%hx:FFFF:1:4:65535: ++%*hx:FFFF:0:4: ++%hx:0Xffff:1:6:65535: ++%*hx:0Xffff:0:6: ++%hx:0xFFFF:1:6:65535: ++%*hx:0xFFFF:0:6: ++%hx:10000:1:5:0: ++%*hx:10000:0:5: ++%hx:0X10000:1:7:0: ++%*hx:0X10000:0:7: ++%hx:0x10000:1:7:0: ++%*hx:0x10000:0:7: ++%hx:10029:1:5:41: ++%*hx:10029:0:5: ++%hx:0X10029:1:7:41: ++%*hx:0X10029:0:7: ++%hx:0x10029:1:7:41: ++%*hx:0x10029:0:7: ++%hx:+0:1:2:0: ++%*hx:+0:0:2: ++%hx:+0X0:1:4:0: ++%*hx:+0X0:0:4: ++%hx:+0x0:1:4:0: ++%*hx:+0x0:0:4: ++%hx:+1:1:2:1: ++%*hx:+1:0:2: ++%hx:+0X1:1:4:1: ++%*hx:+0X1:0:4: ++%hx:+0x1:1:4:1: ++%*hx:+0x1:0:4: ++%hx:+2a:1:3:42: ++%*hx:+2a:0:3: ++%hx:+2A:1:3:42: ++%*hx:+2A:0:3: ++%hx:+0X2a:1:5:42: ++%*hx:+0X2a:0:5: ++%hx:+0x2A:1:5:42: ++%*hx:+0x2A:0:5: ++%hx:+ffff:1:5:65535: ++%*hx:+ffff:0:5: ++%hx:+FFFF:1:5:65535: ++%*hx:+FFFF:0:5: ++%hx:+0Xffff:1:7:65535: ++%*hx:+0Xffff:0:7: ++%hx:+0xFFFF:1:7:65535: ++%*hx:+0xFFFF:0:7: ++%hx:+10000:1:6:0: ++%*hx:+10000:0:6: ++%hx:+0X10000:1:8:0: ++%*hx:+0X10000:0:8: ++%hx:+0x10000:1:8:0: ++%*hx:+0x10000:0:8: ++%hx:+10029:1:6:41: ++%*hx:+10029:0:6: ++%hx:+0X10029:1:8:41: ++%*hx:+0X10029:0:8: ++%hx:+0x10029:1:8:41: ++%*hx:+0x10029:0:8: ++%1hx::0:-1: ++%*1hx::0:-1: ++%1hx:-7b:0:-1: ++%*1hx:-7b:0:-1: ++%1hx:-7B:0:-1: ++%*1hx:-7B:0:-1: ++%1hx:-0X7b:0:-1: ++%*1hx:-0X7b:0:-1: ++%1hx:-0x7B:0:-1: ++%*1hx:-0x7B:0:-1: ++%1hx:-1:0:-1: ++%*1hx:-1:0:-1: ++%1hx:-0X1:0:-1: ++%*1hx:-0X1:0:-1: ++%1hx:-0x1:0:-1: ++%*1hx:-0x1:0:-1: ++%1hx:-0:0:-1: ++%*1hx:-0:0:-1: ++%1hx:-0X0:0:-1: ++%*1hx:-0X0:0:-1: ++%1hx:-0x0:0:-1: ++%*1hx:-0x0:0:-1: ++%1hx:0:1:1:0: ++%*1hx:0:0:1: ++%1hx:0X0:1:1:0: ++%*1hx:0X0:0:1: ++%1hx:0x0:1:1:0: ++%*1hx:0x0:0:1: ++%1hx:1:1:1:1: ++%*1hx:1:0:1: ++%1hx:0X1:1:1:0: ++%*1hx:0X1:0:1: ++%1hx:0x1:1:1:0: ++%*1hx:0x1:0:1: ++%1hx:2a:1:1:2: ++%*1hx:2a:0:1: ++%1hx:2A:1:1:2: ++%*1hx:2A:0:1: ++%1hx:0X2a:1:1:0: ++%*1hx:0X2a:0:1: ++%1hx:0x2A:1:1:0: ++%*1hx:0x2A:0:1: ++%1hx:ffff:1:1:15: ++%*1hx:ffff:0:1: ++%1hx:FFFF:1:1:15: ++%*1hx:FFFF:0:1: ++%1hx:0Xffff:1:1:0: ++%*1hx:0Xffff:0:1: ++%1hx:0xFFFF:1:1:0: ++%*1hx:0xFFFF:0:1: ++%1hx:10000:1:1:1: ++%*1hx:10000:0:1: ++%1hx:0X10000:1:1:0: ++%*1hx:0X10000:0:1: ++%1hx:0x10000:1:1:0: ++%*1hx:0x10000:0:1: ++%1hx:10029:1:1:1: ++%*1hx:10029:0:1: ++%1hx:0X10029:1:1:0: ++%*1hx:0X10029:0:1: ++%1hx:0x10029:1:1:0: ++%*1hx:0x10029:0:1: ++%1hx:+0:0:-1: ++%*1hx:+0:0:-1: ++%1hx:+0X0:0:-1: ++%*1hx:+0X0:0:-1: ++%1hx:+0x0:0:-1: ++%*1hx:+0x0:0:-1: ++%1hx:+1:0:-1: ++%*1hx:+1:0:-1: ++%1hx:+0X1:0:-1: ++%*1hx:+0X1:0:-1: ++%1hx:+0x1:0:-1: ++%*1hx:+0x1:0:-1: ++%1hx:+2a:0:-1: ++%*1hx:+2a:0:-1: ++%1hx:+2A:0:-1: ++%*1hx:+2A:0:-1: ++%1hx:+0X2a:0:-1: ++%*1hx:+0X2a:0:-1: ++%1hx:+0x2A:0:-1: ++%*1hx:+0x2A:0:-1: ++%1hx:+ffff:0:-1: ++%*1hx:+ffff:0:-1: ++%1hx:+FFFF:0:-1: ++%*1hx:+FFFF:0:-1: ++%1hx:+0Xffff:0:-1: ++%*1hx:+0Xffff:0:-1: ++%1hx:+0xFFFF:0:-1: ++%*1hx:+0xFFFF:0:-1: ++%1hx:+10000:0:-1: ++%*1hx:+10000:0:-1: ++%1hx:+0X10000:0:-1: ++%*1hx:+0X10000:0:-1: ++%1hx:+0x10000:0:-1: ++%*1hx:+0x10000:0:-1: ++%1hx:+10029:0:-1: ++%*1hx:+10029:0:-1: ++%1hx:+0X10029:0:-1: ++%*1hx:+0X10029:0:-1: ++%1hx:+0x10029:0:-1: ++%*1hx:+0x10029:0:-1: ++%2hx::0:-1: ++%*2hx::0:-1: ++%2hx:-7b:1:2:65529: ++%*2hx:-7b:0:2: ++%2hx:-7B:1:2:65529: ++%*2hx:-7B:0:2: ++%2hx:-0X7b:1:2:0: ++%*2hx:-0X7b:0:2: ++%2hx:-0x7B:1:2:0: ++%*2hx:-0x7B:0:2: ++%2hx:-1:1:2:65535: ++%*2hx:-1:0:2: ++%2hx:-0X1:1:2:0: ++%*2hx:-0X1:0:2: ++%2hx:-0x1:1:2:0: ++%*2hx:-0x1:0:2: ++%2hx:-0:1:2:0: ++%*2hx:-0:0:2: ++%2hx:-0X0:1:2:0: ++%*2hx:-0X0:0:2: ++%2hx:-0x0:1:2:0: ++%*2hx:-0x0:0:2: ++%2hx:0:1:1:0: ++%*2hx:0:0:1: ++# BZ12701 %2hx:0X0:0:-1: ++# BZ12701 %*2hx:0X0:0:-1: ++# BZ12701 %2hx:0x0:0:-1: ++# BZ12701 %*2hx:0x0:0:-1: ++%2hx:1:1:1:1: ++%*2hx:1:0:1: ++# BZ12701 %2hx:0X1:0:-1: ++# BZ12701 %*2hx:0X1:0:-1: ++# BZ12701 %2hx:0x1:0:-1: ++# BZ12701 %*2hx:0x1:0:-1: ++%2hx:2a:1:2:42: ++%*2hx:2a:0:2: ++%2hx:2A:1:2:42: ++%*2hx:2A:0:2: ++# BZ12701 %2hx:0X2a:0:-1: ++# BZ12701 %*2hx:0X2a:0:-1: ++# BZ12701 %2hx:0x2A:0:-1: ++# BZ12701 %*2hx:0x2A:0:-1: ++%2hx:ffff:1:2:255: ++%*2hx:ffff:0:2: ++%2hx:FFFF:1:2:255: ++%*2hx:FFFF:0:2: ++# BZ12701 %2hx:0Xffff:0:-1: ++# BZ12701 %*2hx:0Xffff:0:-1: ++# BZ12701 %2hx:0xFFFF:0:-1: ++# BZ12701 %*2hx:0xFFFF:0:-1: ++%2hx:10000:1:2:16: ++%*2hx:10000:0:2: ++# BZ12701 %2hx:0X10000:0:-1: ++# BZ12701 %*2hx:0X10000:0:-1: ++# BZ12701 %2hx:0x10000:0:-1: ++# BZ12701 %*2hx:0x10000:0:-1: ++%2hx:10029:1:2:16: ++%*2hx:10029:0:2: ++# BZ12701 %2hx:0X10029:0:-1: ++# BZ12701 %*2hx:0X10029:0:-1: ++# BZ12701 %2hx:0x10029:0:-1: ++# BZ12701 %*2hx:0x10029:0:-1: ++%2hx:+0:1:2:0: ++%*2hx:+0:0:2: ++%2hx:+0X0:1:2:0: ++%*2hx:+0X0:0:2: ++%2hx:+0x0:1:2:0: ++%*2hx:+0x0:0:2: ++%2hx:+1:1:2:1: ++%*2hx:+1:0:2: ++%2hx:+0X1:1:2:0: ++%*2hx:+0X1:0:2: ++%2hx:+0x1:1:2:0: ++%*2hx:+0x1:0:2: ++%2hx:+2a:1:2:2: ++%*2hx:+2a:0:2: ++%2hx:+2A:1:2:2: ++%*2hx:+2A:0:2: ++%2hx:+0X2a:1:2:0: ++%*2hx:+0X2a:0:2: ++%2hx:+0x2A:1:2:0: ++%*2hx:+0x2A:0:2: ++%2hx:+ffff:1:2:15: ++%*2hx:+ffff:0:2: ++%2hx:+FFFF:1:2:15: ++%*2hx:+FFFF:0:2: ++%2hx:+0Xffff:1:2:0: ++%*2hx:+0Xffff:0:2: ++%2hx:+0xFFFF:1:2:0: ++%*2hx:+0xFFFF:0:2: ++%2hx:+10000:1:2:1: ++%*2hx:+10000:0:2: ++%2hx:+0X10000:1:2:0: ++%*2hx:+0X10000:0:2: ++%2hx:+0x10000:1:2:0: ++%*2hx:+0x10000:0:2: ++%2hx:+10029:1:2:1: ++%*2hx:+10029:0:2: ++%2hx:+0X10029:1:2:0: ++%*2hx:+0X10029:0:2: ++%2hx:+0x10029:1:2:0: ++%*2hx:+0x10029:0:2: ++%4hx::0:-1: ++%*4hx::0:-1: ++%4hx:-7b:1:3:65413: ++%*4hx:-7b:0:3: ++%4hx:-7B:1:3:65413: ++%*4hx:-7B:0:3: ++%4hx:-0X7b:1:4:65529: ++%*4hx:-0X7b:0:4: ++%4hx:-0x7B:1:4:65529: ++%*4hx:-0x7B:0:4: ++%4hx:-1:1:2:65535: ++%*4hx:-1:0:2: ++%4hx:-0X1:1:4:65535: ++%*4hx:-0X1:0:4: ++%4hx:-0x1:1:4:65535: ++%*4hx:-0x1:0:4: ++%4hx:-0:1:2:0: ++%*4hx:-0:0:2: ++%4hx:-0X0:1:4:0: ++%*4hx:-0X0:0:4: ++%4hx:-0x0:1:4:0: ++%*4hx:-0x0:0:4: ++%4hx:0:1:1:0: ++%*4hx:0:0:1: ++%4hx:0X0:1:3:0: ++%*4hx:0X0:0:3: ++%4hx:0x0:1:3:0: ++%*4hx:0x0:0:3: ++%4hx:1:1:1:1: ++%*4hx:1:0:1: ++%4hx:0X1:1:3:1: ++%*4hx:0X1:0:3: ++%4hx:0x1:1:3:1: ++%*4hx:0x1:0:3: ++%4hx:2a:1:2:42: ++%*4hx:2a:0:2: ++%4hx:2A:1:2:42: ++%*4hx:2A:0:2: ++%4hx:0X2a:1:4:42: ++%*4hx:0X2a:0:4: ++%4hx:0x2A:1:4:42: ++%*4hx:0x2A:0:4: ++%4hx:ffff:1:4:65535: ++%*4hx:ffff:0:4: ++%4hx:FFFF:1:4:65535: ++%*4hx:FFFF:0:4: ++%4hx:0Xffff:1:4:255: ++%*4hx:0Xffff:0:4: ++%4hx:0xFFFF:1:4:255: ++%*4hx:0xFFFF:0:4: ++%4hx:10000:1:4:4096: ++%*4hx:10000:0:4: ++%4hx:0X10000:1:4:16: ++%*4hx:0X10000:0:4: ++%4hx:0x10000:1:4:16: ++%*4hx:0x10000:0:4: ++%4hx:10029:1:4:4098: ++%*4hx:10029:0:4: ++%4hx:0X10029:1:4:16: ++%*4hx:0X10029:0:4: ++%4hx:0x10029:1:4:16: ++%*4hx:0x10029:0:4: ++%4hx:+0:1:2:0: ++%*4hx:+0:0:2: ++%4hx:+0X0:1:4:0: ++%*4hx:+0X0:0:4: ++%4hx:+0x0:1:4:0: ++%*4hx:+0x0:0:4: ++%4hx:+1:1:2:1: ++%*4hx:+1:0:2: ++%4hx:+0X1:1:4:1: ++%*4hx:+0X1:0:4: ++%4hx:+0x1:1:4:1: ++%*4hx:+0x1:0:4: ++%4hx:+2a:1:3:42: ++%*4hx:+2a:0:3: ++%4hx:+2A:1:3:42: ++%*4hx:+2A:0:3: ++%4hx:+0X2a:1:4:2: ++%*4hx:+0X2a:0:4: ++%4hx:+0x2A:1:4:2: ++%*4hx:+0x2A:0:4: ++%4hx:+ffff:1:4:4095: ++%*4hx:+ffff:0:4: ++%4hx:+FFFF:1:4:4095: ++%*4hx:+FFFF:0:4: ++%4hx:+0Xffff:1:4:15: ++%*4hx:+0Xffff:0:4: ++%4hx:+0xFFFF:1:4:15: ++%*4hx:+0xFFFF:0:4: ++%4hx:+10000:1:4:256: ++%*4hx:+10000:0:4: ++%4hx:+0X10000:1:4:1: ++%*4hx:+0X10000:0:4: ++%4hx:+0x10000:1:4:1: ++%*4hx:+0x10000:0:4: ++%4hx:+10029:1:4:256: ++%*4hx:+10029:0:4: ++%4hx:+0X10029:1:4:1: ++%*4hx:+0X10029:0:4: ++%4hx:+0x10029:1:4:1: ++%*4hx:+0x10029:0:4: ++%7hx::0:-1: ++%*7hx::0:-1: ++%7hx:-7b:1:3:65413: ++%*7hx:-7b:0:3: ++%7hx:-7B:1:3:65413: ++%*7hx:-7B:0:3: ++%7hx:-0X7b:1:5:65413: ++%*7hx:-0X7b:0:5: ++%7hx:-0x7B:1:5:65413: ++%*7hx:-0x7B:0:5: ++%7hx:-1:1:2:65535: ++%*7hx:-1:0:2: ++%7hx:-0X1:1:4:65535: ++%*7hx:-0X1:0:4: ++%7hx:-0x1:1:4:65535: ++%*7hx:-0x1:0:4: ++%7hx:-0:1:2:0: ++%*7hx:-0:0:2: ++%7hx:-0X0:1:4:0: ++%*7hx:-0X0:0:4: ++%7hx:-0x0:1:4:0: ++%*7hx:-0x0:0:4: ++%7hx:0:1:1:0: ++%*7hx:0:0:1: ++%7hx:0X0:1:3:0: ++%*7hx:0X0:0:3: ++%7hx:0x0:1:3:0: ++%*7hx:0x0:0:3: ++%7hx:1:1:1:1: ++%*7hx:1:0:1: ++%7hx:0X1:1:3:1: ++%*7hx:0X1:0:3: ++%7hx:0x1:1:3:1: ++%*7hx:0x1:0:3: ++%7hx:2a:1:2:42: ++%*7hx:2a:0:2: ++%7hx:2A:1:2:42: ++%*7hx:2A:0:2: ++%7hx:0X2a:1:4:42: ++%*7hx:0X2a:0:4: ++%7hx:0x2A:1:4:42: ++%*7hx:0x2A:0:4: ++%7hx:ffff:1:4:65535: ++%*7hx:ffff:0:4: ++%7hx:FFFF:1:4:65535: ++%*7hx:FFFF:0:4: ++%7hx:0Xffff:1:6:65535: ++%*7hx:0Xffff:0:6: ++%7hx:0xFFFF:1:6:65535: ++%*7hx:0xFFFF:0:6: ++%7hx:10000:1:5:0: ++%*7hx:10000:0:5: ++%7hx:0X10000:1:7:0: ++%*7hx:0X10000:0:7: ++%7hx:0x10000:1:7:0: ++%*7hx:0x10000:0:7: ++%7hx:10029:1:5:41: ++%*7hx:10029:0:5: ++%7hx:0X10029:1:7:41: ++%*7hx:0X10029:0:7: ++%7hx:0x10029:1:7:41: ++%*7hx:0x10029:0:7: ++%7hx:+0:1:2:0: ++%*7hx:+0:0:2: ++%7hx:+0X0:1:4:0: ++%*7hx:+0X0:0:4: ++%7hx:+0x0:1:4:0: ++%*7hx:+0x0:0:4: ++%7hx:+1:1:2:1: ++%*7hx:+1:0:2: ++%7hx:+0X1:1:4:1: ++%*7hx:+0X1:0:4: ++%7hx:+0x1:1:4:1: ++%*7hx:+0x1:0:4: ++%7hx:+2a:1:3:42: ++%*7hx:+2a:0:3: ++%7hx:+2A:1:3:42: ++%*7hx:+2A:0:3: ++%7hx:+0X2a:1:5:42: ++%*7hx:+0X2a:0:5: ++%7hx:+0x2A:1:5:42: ++%*7hx:+0x2A:0:5: ++%7hx:+ffff:1:5:65535: ++%*7hx:+ffff:0:5: ++%7hx:+FFFF:1:5:65535: ++%*7hx:+FFFF:0:5: ++%7hx:+0Xffff:1:7:65535: ++%*7hx:+0Xffff:0:7: ++%7hx:+0xFFFF:1:7:65535: ++%*7hx:+0xFFFF:0:7: ++%7hx:+10000:1:6:0: ++%*7hx:+10000:0:6: ++%7hx:+0X10000:1:7:4096: ++%*7hx:+0X10000:0:7: ++%7hx:+0x10000:1:7:4096: ++%*7hx:+0x10000:0:7: ++%7hx:+10029:1:6:41: ++%*7hx:+10029:0:6: ++%7hx:+0X10029:1:7:4098: ++%*7hx:+0X10029:0:7: ++%7hx:+0x10029:1:7:4098: ++%*7hx:+0x10029:0:7: ++%2hx: :0:-1: ++%*2hx: :0:-1: ++%2hx: -7b:1:3:65529: ++%*2hx: -7b:0:3: ++%2hx: -7B:1:3:65529: ++%*2hx: -7B:0:3: ++%2hx: -0X7b:1:3:0: ++%*2hx: -0X7b:0:3: ++%2hx: -0x7B:1:3:0: ++%*2hx: -0x7B:0:3: ++%2hx: -1:1:3:65535: ++%*2hx: -1:0:3: ++%2hx: -0X1:1:3:0: ++%*2hx: -0X1:0:3: ++%2hx: -0x1:1:3:0: ++%*2hx: -0x1:0:3: ++%2hx: -0:1:3:0: ++%*2hx: -0:0:3: ++%2hx: -0X0:1:3:0: ++%*2hx: -0X0:0:3: ++%2hx: -0x0:1:3:0: ++%*2hx: -0x0:0:3: ++%2hx: 0:1:2:0: ++%*2hx: 0:0:2: ++# BZ12701 %2hx: 0X0:0:-1: ++# BZ12701 %*2hx: 0X0:0:-1: ++# BZ12701 %2hx: 0x0:0:-1: ++# BZ12701 %*2hx: 0x0:0:-1: ++%2hx: 1:1:2:1: ++%*2hx: 1:0:2: ++# BZ12701 %2hx: 0X1:0:-1: ++# BZ12701 %*2hx: 0X1:0:-1: ++# BZ12701 %2hx: 0x1:0:-1: ++# BZ12701 %*2hx: 0x1:0:-1: ++%2hx: 2a:1:3:42: ++%*2hx: 2a:0:3: ++%2hx: 2A:1:3:42: ++%*2hx: 2A:0:3: ++# BZ12701 %2hx: 0X2a:0:-1: ++# BZ12701 %*2hx: 0X2a:0:-1: ++# BZ12701 %2hx: 0x2A:0:-1: ++# BZ12701 %*2hx: 0x2A:0:-1: ++%2hx: ffff:1:3:255: ++%*2hx: ffff:0:3: ++%2hx: FFFF:1:3:255: ++%*2hx: FFFF:0:3: ++# BZ12701 %2hx: 0Xffff:0:-1: ++# BZ12701 %*2hx: 0Xffff:0:-1: ++# BZ12701 %2hx: 0xFFFF:0:-1: ++# BZ12701 %*2hx: 0xFFFF:0:-1: ++%2hx: 10000:1:3:16: ++%*2hx: 10000:0:3: ++# BZ12701 %2hx: 0X10000:0:-1: ++# BZ12701 %*2hx: 0X10000:0:-1: ++# BZ12701 %2hx: 0x10000:0:-1: ++# BZ12701 %*2hx: 0x10000:0:-1: ++%2hx: 10029:1:3:16: ++%*2hx: 10029:0:3: ++# BZ12701 %2hx: 0X10029:0:-1: ++# BZ12701 %*2hx: 0X10029:0:-1: ++# BZ12701 %2hx: 0x10029:0:-1: ++# BZ12701 %*2hx: 0x10029:0:-1: ++%2hx: +0:1:3:0: ++%*2hx: +0:0:3: ++%2hx: +0X0:1:3:0: ++%*2hx: +0X0:0:3: ++%2hx: +0x0:1:3:0: ++%*2hx: +0x0:0:3: ++%2hx: +1:1:3:1: ++%*2hx: +1:0:3: ++%2hx: +0X1:1:3:0: ++%*2hx: +0X1:0:3: ++%2hx: +0x1:1:3:0: ++%*2hx: +0x1:0:3: ++%2hx: +2a:1:3:2: ++%*2hx: +2a:0:3: ++%2hx: +2A:1:3:2: ++%*2hx: +2A:0:3: ++%2hx: +0X2a:1:3:0: ++%*2hx: +0X2a:0:3: ++%2hx: +0x2A:1:3:0: ++%*2hx: +0x2A:0:3: ++%2hx: +ffff:1:3:15: ++%*2hx: +ffff:0:3: ++%2hx: +FFFF:1:3:15: ++%*2hx: +FFFF:0:3: ++%2hx: +0Xffff:1:3:0: ++%*2hx: +0Xffff:0:3: ++%2hx: +0xFFFF:1:3:0: ++%*2hx: +0xFFFF:0:3: ++%2hx: +10000:1:3:1: ++%*2hx: +10000:0:3: ++%2hx: +0X10000:1:3:0: ++%*2hx: +0X10000:0:3: ++%2hx: +0x10000:1:3:0: ++%*2hx: +0x10000:0:3: ++%2hx: +10029:1:3:1: ++%*2hx: +10029:0:3: ++%2hx: +0X10029:1:3:0: ++%*2hx: +0X10029:0:3: ++%2hx: +0x10029:1:3:0: ++%*2hx: +0x10029:0:3: ++%7hx: :0:-1: ++%*7hx: :0:-1: ++%7hx: -7b:1:4:65413: ++%*7hx: -7b:0:4: ++%7hx: -7B:1:4:65413: ++%*7hx: -7B:0:4: ++%7hx: -0X7b:1:6:65413: ++%*7hx: -0X7b:0:6: ++%7hx: -0x7B:1:6:65413: ++%*7hx: -0x7B:0:6: ++%7hx: -1:1:3:65535: ++%*7hx: -1:0:3: ++%7hx: -0X1:1:5:65535: ++%*7hx: -0X1:0:5: ++%7hx: -0x1:1:5:65535: ++%*7hx: -0x1:0:5: ++%7hx: -0:1:3:0: ++%*7hx: -0:0:3: ++%7hx: -0X0:1:5:0: ++%*7hx: -0X0:0:5: ++%7hx: -0x0:1:5:0: ++%*7hx: -0x0:0:5: ++%7hx: 0:1:2:0: ++%*7hx: 0:0:2: ++%7hx: 0X0:1:4:0: ++%*7hx: 0X0:0:4: ++%7hx: 0x0:1:4:0: ++%*7hx: 0x0:0:4: ++%7hx: 1:1:2:1: ++%*7hx: 1:0:2: ++%7hx: 0X1:1:4:1: ++%*7hx: 0X1:0:4: ++%7hx: 0x1:1:4:1: ++%*7hx: 0x1:0:4: ++%7hx: 2a:1:3:42: ++%*7hx: 2a:0:3: ++%7hx: 2A:1:3:42: ++%*7hx: 2A:0:3: ++%7hx: 0X2a:1:5:42: ++%*7hx: 0X2a:0:5: ++%7hx: 0x2A:1:5:42: ++%*7hx: 0x2A:0:5: ++%7hx: ffff:1:5:65535: ++%*7hx: ffff:0:5: ++%7hx: FFFF:1:5:65535: ++%*7hx: FFFF:0:5: ++%7hx: 0Xffff:1:7:65535: ++%*7hx: 0Xffff:0:7: ++%7hx: 0xFFFF:1:7:65535: ++%*7hx: 0xFFFF:0:7: ++%7hx: 10000:1:6:0: ++%*7hx: 10000:0:6: ++%7hx: 0X10000:1:8:0: ++%*7hx: 0X10000:0:8: ++%7hx: 0x10000:1:8:0: ++%*7hx: 0x10000:0:8: ++%7hx: 10029:1:6:41: ++%*7hx: 10029:0:6: ++%7hx: 0X10029:1:8:41: ++%*7hx: 0X10029:0:8: ++%7hx: 0x10029:1:8:41: ++%*7hx: 0x10029:0:8: ++%7hx: +0:1:3:0: ++%*7hx: +0:0:3: ++%7hx: +0X0:1:5:0: ++%*7hx: +0X0:0:5: ++%7hx: +0x0:1:5:0: ++%*7hx: +0x0:0:5: ++%7hx: +1:1:3:1: ++%*7hx: +1:0:3: ++%7hx: +0X1:1:5:1: ++%*7hx: +0X1:0:5: ++%7hx: +0x1:1:5:1: ++%*7hx: +0x1:0:5: ++%7hx: +2a:1:4:42: ++%*7hx: +2a:0:4: ++%7hx: +2A:1:4:42: ++%*7hx: +2A:0:4: ++%7hx: +0X2a:1:6:42: ++%*7hx: +0X2a:0:6: ++%7hx: +0x2A:1:6:42: ++%*7hx: +0x2A:0:6: ++%7hx: +ffff:1:6:65535: ++%*7hx: +ffff:0:6: ++%7hx: +FFFF:1:6:65535: ++%*7hx: +FFFF:0:6: ++%7hx: +0Xffff:1:8:65535: ++%*7hx: +0Xffff:0:8: ++%7hx: +0xFFFF:1:8:65535: ++%*7hx: +0xFFFF:0:8: ++%7hx: +10000:1:7:0: ++%*7hx: +10000:0:7: ++%7hx: +0X10000:1:8:4096: ++%*7hx: +0X10000:0:8: ++%7hx: +0x10000:1:8:4096: ++%*7hx: +0x10000:0:8: ++%7hx: +10029:1:7:41: ++%*7hx: +10029:0:7: ++%7hx: +0X10029:1:8:4098: ++%*7hx: +0X10029:0:8: ++%7hx: +0x10029:1:8:4098: ++%*7hx: +0x10029:0:8: +diff --git a/stdio-common/tst-scanf-format-ushort-xx.input b/stdio-common/tst-scanf-format-ushort-xx.input +new file mode 100644 +index 0000000000000000..c0e52779b7862ac0 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ushort-xx.input +@@ -0,0 +1,714 @@ ++%hX::0:-1: ++%*hX::0:-1: ++%hX:-7b:1:3:65413: ++%*hX:-7b:0:3: ++%hX:-7B:1:3:65413: ++%*hX:-7B:0:3: ++%hX:-0X7b:1:5:65413: ++%*hX:-0X7b:0:5: ++%hX:-0x7B:1:5:65413: ++%*hX:-0x7B:0:5: ++%hX:-1:1:2:65535: ++%*hX:-1:0:2: ++%hX:-0X1:1:4:65535: ++%*hX:-0X1:0:4: ++%hX:-0x1:1:4:65535: ++%*hX:-0x1:0:4: ++%hX:-0:1:2:0: ++%*hX:-0:0:2: ++%hX:-0X0:1:4:0: ++%*hX:-0X0:0:4: ++%hX:-0x0:1:4:0: ++%*hX:-0x0:0:4: ++%hX:0:1:1:0: ++%*hX:0:0:1: ++%hX:0X0:1:3:0: ++%*hX:0X0:0:3: ++%hX:0x0:1:3:0: ++%*hX:0x0:0:3: ++%hX:1:1:1:1: ++%*hX:1:0:1: ++%hX:0X1:1:3:1: ++%*hX:0X1:0:3: ++%hX:0x1:1:3:1: ++%*hX:0x1:0:3: ++%hX:2a:1:2:42: ++%*hX:2a:0:2: ++%hX:2A:1:2:42: ++%*hX:2A:0:2: ++%hX:0X2a:1:4:42: ++%*hX:0X2a:0:4: ++%hX:0x2A:1:4:42: ++%*hX:0x2A:0:4: ++%hX:ffff:1:4:65535: ++%*hX:ffff:0:4: ++%hX:FFFF:1:4:65535: ++%*hX:FFFF:0:4: ++%hX:0Xffff:1:6:65535: ++%*hX:0Xffff:0:6: ++%hX:0xFFFF:1:6:65535: ++%*hX:0xFFFF:0:6: ++%hX:10000:1:5:0: ++%*hX:10000:0:5: ++%hX:0X10000:1:7:0: ++%*hX:0X10000:0:7: ++%hX:0x10000:1:7:0: ++%*hX:0x10000:0:7: ++%hX:10029:1:5:41: ++%*hX:10029:0:5: ++%hX:0X10029:1:7:41: ++%*hX:0X10029:0:7: ++%hX:0x10029:1:7:41: ++%*hX:0x10029:0:7: ++%hX:+0:1:2:0: ++%*hX:+0:0:2: ++%hX:+0X0:1:4:0: ++%*hX:+0X0:0:4: ++%hX:+0x0:1:4:0: ++%*hX:+0x0:0:4: ++%hX:+1:1:2:1: ++%*hX:+1:0:2: ++%hX:+0X1:1:4:1: ++%*hX:+0X1:0:4: ++%hX:+0x1:1:4:1: ++%*hX:+0x1:0:4: ++%hX:+2a:1:3:42: ++%*hX:+2a:0:3: ++%hX:+2A:1:3:42: ++%*hX:+2A:0:3: ++%hX:+0X2a:1:5:42: ++%*hX:+0X2a:0:5: ++%hX:+0x2A:1:5:42: ++%*hX:+0x2A:0:5: ++%hX:+ffff:1:5:65535: ++%*hX:+ffff:0:5: ++%hX:+FFFF:1:5:65535: ++%*hX:+FFFF:0:5: ++%hX:+0Xffff:1:7:65535: ++%*hX:+0Xffff:0:7: ++%hX:+0xFFFF:1:7:65535: ++%*hX:+0xFFFF:0:7: ++%hX:+10000:1:6:0: ++%*hX:+10000:0:6: ++%hX:+0X10000:1:8:0: ++%*hX:+0X10000:0:8: ++%hX:+0x10000:1:8:0: ++%*hX:+0x10000:0:8: ++%hX:+10029:1:6:41: ++%*hX:+10029:0:6: ++%hX:+0X10029:1:8:41: ++%*hX:+0X10029:0:8: ++%hX:+0x10029:1:8:41: ++%*hX:+0x10029:0:8: ++%1hX::0:-1: ++%*1hX::0:-1: ++%1hX:-7b:0:-1: ++%*1hX:-7b:0:-1: ++%1hX:-7B:0:-1: ++%*1hX:-7B:0:-1: ++%1hX:-0X7b:0:-1: ++%*1hX:-0X7b:0:-1: ++%1hX:-0x7B:0:-1: ++%*1hX:-0x7B:0:-1: ++%1hX:-1:0:-1: ++%*1hX:-1:0:-1: ++%1hX:-0X1:0:-1: ++%*1hX:-0X1:0:-1: ++%1hX:-0x1:0:-1: ++%*1hX:-0x1:0:-1: ++%1hX:-0:0:-1: ++%*1hX:-0:0:-1: ++%1hX:-0X0:0:-1: ++%*1hX:-0X0:0:-1: ++%1hX:-0x0:0:-1: ++%*1hX:-0x0:0:-1: ++%1hX:0:1:1:0: ++%*1hX:0:0:1: ++%1hX:0X0:1:1:0: ++%*1hX:0X0:0:1: ++%1hX:0x0:1:1:0: ++%*1hX:0x0:0:1: ++%1hX:1:1:1:1: ++%*1hX:1:0:1: ++%1hX:0X1:1:1:0: ++%*1hX:0X1:0:1: ++%1hX:0x1:1:1:0: ++%*1hX:0x1:0:1: ++%1hX:2a:1:1:2: ++%*1hX:2a:0:1: ++%1hX:2A:1:1:2: ++%*1hX:2A:0:1: ++%1hX:0X2a:1:1:0: ++%*1hX:0X2a:0:1: ++%1hX:0x2A:1:1:0: ++%*1hX:0x2A:0:1: ++%1hX:ffff:1:1:15: ++%*1hX:ffff:0:1: ++%1hX:FFFF:1:1:15: ++%*1hX:FFFF:0:1: ++%1hX:0Xffff:1:1:0: ++%*1hX:0Xffff:0:1: ++%1hX:0xFFFF:1:1:0: ++%*1hX:0xFFFF:0:1: ++%1hX:10000:1:1:1: ++%*1hX:10000:0:1: ++%1hX:0X10000:1:1:0: ++%*1hX:0X10000:0:1: ++%1hX:0x10000:1:1:0: ++%*1hX:0x10000:0:1: ++%1hX:10029:1:1:1: ++%*1hX:10029:0:1: ++%1hX:0X10029:1:1:0: ++%*1hX:0X10029:0:1: ++%1hX:0x10029:1:1:0: ++%*1hX:0x10029:0:1: ++%1hX:+0:0:-1: ++%*1hX:+0:0:-1: ++%1hX:+0X0:0:-1: ++%*1hX:+0X0:0:-1: ++%1hX:+0x0:0:-1: ++%*1hX:+0x0:0:-1: ++%1hX:+1:0:-1: ++%*1hX:+1:0:-1: ++%1hX:+0X1:0:-1: ++%*1hX:+0X1:0:-1: ++%1hX:+0x1:0:-1: ++%*1hX:+0x1:0:-1: ++%1hX:+2a:0:-1: ++%*1hX:+2a:0:-1: ++%1hX:+2A:0:-1: ++%*1hX:+2A:0:-1: ++%1hX:+0X2a:0:-1: ++%*1hX:+0X2a:0:-1: ++%1hX:+0x2A:0:-1: ++%*1hX:+0x2A:0:-1: ++%1hX:+ffff:0:-1: ++%*1hX:+ffff:0:-1: ++%1hX:+FFFF:0:-1: ++%*1hX:+FFFF:0:-1: ++%1hX:+0Xffff:0:-1: ++%*1hX:+0Xffff:0:-1: ++%1hX:+0xFFFF:0:-1: ++%*1hX:+0xFFFF:0:-1: ++%1hX:+10000:0:-1: ++%*1hX:+10000:0:-1: ++%1hX:+0X10000:0:-1: ++%*1hX:+0X10000:0:-1: ++%1hX:+0x10000:0:-1: ++%*1hX:+0x10000:0:-1: ++%1hX:+10029:0:-1: ++%*1hX:+10029:0:-1: ++%1hX:+0X10029:0:-1: ++%*1hX:+0X10029:0:-1: ++%1hX:+0x10029:0:-1: ++%*1hX:+0x10029:0:-1: ++%2hX::0:-1: ++%*2hX::0:-1: ++%2hX:-7b:1:2:65529: ++%*2hX:-7b:0:2: ++%2hX:-7B:1:2:65529: ++%*2hX:-7B:0:2: ++%2hX:-0X7b:1:2:0: ++%*2hX:-0X7b:0:2: ++%2hX:-0x7B:1:2:0: ++%*2hX:-0x7B:0:2: ++%2hX:-1:1:2:65535: ++%*2hX:-1:0:2: ++%2hX:-0X1:1:2:0: ++%*2hX:-0X1:0:2: ++%2hX:-0x1:1:2:0: ++%*2hX:-0x1:0:2: ++%2hX:-0:1:2:0: ++%*2hX:-0:0:2: ++%2hX:-0X0:1:2:0: ++%*2hX:-0X0:0:2: ++%2hX:-0x0:1:2:0: ++%*2hX:-0x0:0:2: ++%2hX:0:1:1:0: ++%*2hX:0:0:1: ++# BZ12701 %2hX:0X0:0:-1: ++# BZ12701 %*2hX:0X0:0:-1: ++# BZ12701 %2hX:0x0:0:-1: ++# BZ12701 %*2hX:0x0:0:-1: ++%2hX:1:1:1:1: ++%*2hX:1:0:1: ++# BZ12701 %2hX:0X1:0:-1: ++# BZ12701 %*2hX:0X1:0:-1: ++# BZ12701 %2hX:0x1:0:-1: ++# BZ12701 %*2hX:0x1:0:-1: ++%2hX:2a:1:2:42: ++%*2hX:2a:0:2: ++%2hX:2A:1:2:42: ++%*2hX:2A:0:2: ++# BZ12701 %2hX:0X2a:0:-1: ++# BZ12701 %*2hX:0X2a:0:-1: ++# BZ12701 %2hX:0x2A:0:-1: ++# BZ12701 %*2hX:0x2A:0:-1: ++%2hX:ffff:1:2:255: ++%*2hX:ffff:0:2: ++%2hX:FFFF:1:2:255: ++%*2hX:FFFF:0:2: ++# BZ12701 %2hX:0Xffff:0:-1: ++# BZ12701 %*2hX:0Xffff:0:-1: ++# BZ12701 %2hX:0xFFFF:0:-1: ++# BZ12701 %*2hX:0xFFFF:0:-1: ++%2hX:10000:1:2:16: ++%*2hX:10000:0:2: ++# BZ12701 %2hX:0X10000:0:-1: ++# BZ12701 %*2hX:0X10000:0:-1: ++# BZ12701 %2hX:0x10000:0:-1: ++# BZ12701 %*2hX:0x10000:0:-1: ++%2hX:10029:1:2:16: ++%*2hX:10029:0:2: ++# BZ12701 %2hX:0X10029:0:-1: ++# BZ12701 %*2hX:0X10029:0:-1: ++# BZ12701 %2hX:0x10029:0:-1: ++# BZ12701 %*2hX:0x10029:0:-1: ++%2hX:+0:1:2:0: ++%*2hX:+0:0:2: ++%2hX:+0X0:1:2:0: ++%*2hX:+0X0:0:2: ++%2hX:+0x0:1:2:0: ++%*2hX:+0x0:0:2: ++%2hX:+1:1:2:1: ++%*2hX:+1:0:2: ++%2hX:+0X1:1:2:0: ++%*2hX:+0X1:0:2: ++%2hX:+0x1:1:2:0: ++%*2hX:+0x1:0:2: ++%2hX:+2a:1:2:2: ++%*2hX:+2a:0:2: ++%2hX:+2A:1:2:2: ++%*2hX:+2A:0:2: ++%2hX:+0X2a:1:2:0: ++%*2hX:+0X2a:0:2: ++%2hX:+0x2A:1:2:0: ++%*2hX:+0x2A:0:2: ++%2hX:+ffff:1:2:15: ++%*2hX:+ffff:0:2: ++%2hX:+FFFF:1:2:15: ++%*2hX:+FFFF:0:2: ++%2hX:+0Xffff:1:2:0: ++%*2hX:+0Xffff:0:2: ++%2hX:+0xFFFF:1:2:0: ++%*2hX:+0xFFFF:0:2: ++%2hX:+10000:1:2:1: ++%*2hX:+10000:0:2: ++%2hX:+0X10000:1:2:0: ++%*2hX:+0X10000:0:2: ++%2hX:+0x10000:1:2:0: ++%*2hX:+0x10000:0:2: ++%2hX:+10029:1:2:1: ++%*2hX:+10029:0:2: ++%2hX:+0X10029:1:2:0: ++%*2hX:+0X10029:0:2: ++%2hX:+0x10029:1:2:0: ++%*2hX:+0x10029:0:2: ++%4hX::0:-1: ++%*4hX::0:-1: ++%4hX:-7b:1:3:65413: ++%*4hX:-7b:0:3: ++%4hX:-7B:1:3:65413: ++%*4hX:-7B:0:3: ++%4hX:-0X7b:1:4:65529: ++%*4hX:-0X7b:0:4: ++%4hX:-0x7B:1:4:65529: ++%*4hX:-0x7B:0:4: ++%4hX:-1:1:2:65535: ++%*4hX:-1:0:2: ++%4hX:-0X1:1:4:65535: ++%*4hX:-0X1:0:4: ++%4hX:-0x1:1:4:65535: ++%*4hX:-0x1:0:4: ++%4hX:-0:1:2:0: ++%*4hX:-0:0:2: ++%4hX:-0X0:1:4:0: ++%*4hX:-0X0:0:4: ++%4hX:-0x0:1:4:0: ++%*4hX:-0x0:0:4: ++%4hX:0:1:1:0: ++%*4hX:0:0:1: ++%4hX:0X0:1:3:0: ++%*4hX:0X0:0:3: ++%4hX:0x0:1:3:0: ++%*4hX:0x0:0:3: ++%4hX:1:1:1:1: ++%*4hX:1:0:1: ++%4hX:0X1:1:3:1: ++%*4hX:0X1:0:3: ++%4hX:0x1:1:3:1: ++%*4hX:0x1:0:3: ++%4hX:2a:1:2:42: ++%*4hX:2a:0:2: ++%4hX:2A:1:2:42: ++%*4hX:2A:0:2: ++%4hX:0X2a:1:4:42: ++%*4hX:0X2a:0:4: ++%4hX:0x2A:1:4:42: ++%*4hX:0x2A:0:4: ++%4hX:ffff:1:4:65535: ++%*4hX:ffff:0:4: ++%4hX:FFFF:1:4:65535: ++%*4hX:FFFF:0:4: ++%4hX:0Xffff:1:4:255: ++%*4hX:0Xffff:0:4: ++%4hX:0xFFFF:1:4:255: ++%*4hX:0xFFFF:0:4: ++%4hX:10000:1:4:4096: ++%*4hX:10000:0:4: ++%4hX:0X10000:1:4:16: ++%*4hX:0X10000:0:4: ++%4hX:0x10000:1:4:16: ++%*4hX:0x10000:0:4: ++%4hX:10029:1:4:4098: ++%*4hX:10029:0:4: ++%4hX:0X10029:1:4:16: ++%*4hX:0X10029:0:4: ++%4hX:0x10029:1:4:16: ++%*4hX:0x10029:0:4: ++%4hX:+0:1:2:0: ++%*4hX:+0:0:2: ++%4hX:+0X0:1:4:0: ++%*4hX:+0X0:0:4: ++%4hX:+0x0:1:4:0: ++%*4hX:+0x0:0:4: ++%4hX:+1:1:2:1: ++%*4hX:+1:0:2: ++%4hX:+0X1:1:4:1: ++%*4hX:+0X1:0:4: ++%4hX:+0x1:1:4:1: ++%*4hX:+0x1:0:4: ++%4hX:+2a:1:3:42: ++%*4hX:+2a:0:3: ++%4hX:+2A:1:3:42: ++%*4hX:+2A:0:3: ++%4hX:+0X2a:1:4:2: ++%*4hX:+0X2a:0:4: ++%4hX:+0x2A:1:4:2: ++%*4hX:+0x2A:0:4: ++%4hX:+ffff:1:4:4095: ++%*4hX:+ffff:0:4: ++%4hX:+FFFF:1:4:4095: ++%*4hX:+FFFF:0:4: ++%4hX:+0Xffff:1:4:15: ++%*4hX:+0Xffff:0:4: ++%4hX:+0xFFFF:1:4:15: ++%*4hX:+0xFFFF:0:4: ++%4hX:+10000:1:4:256: ++%*4hX:+10000:0:4: ++%4hX:+0X10000:1:4:1: ++%*4hX:+0X10000:0:4: ++%4hX:+0x10000:1:4:1: ++%*4hX:+0x10000:0:4: ++%4hX:+10029:1:4:256: ++%*4hX:+10029:0:4: ++%4hX:+0X10029:1:4:1: ++%*4hX:+0X10029:0:4: ++%4hX:+0x10029:1:4:1: ++%*4hX:+0x10029:0:4: ++%7hX::0:-1: ++%*7hX::0:-1: ++%7hX:-7b:1:3:65413: ++%*7hX:-7b:0:3: ++%7hX:-7B:1:3:65413: ++%*7hX:-7B:0:3: ++%7hX:-0X7b:1:5:65413: ++%*7hX:-0X7b:0:5: ++%7hX:-0x7B:1:5:65413: ++%*7hX:-0x7B:0:5: ++%7hX:-1:1:2:65535: ++%*7hX:-1:0:2: ++%7hX:-0X1:1:4:65535: ++%*7hX:-0X1:0:4: ++%7hX:-0x1:1:4:65535: ++%*7hX:-0x1:0:4: ++%7hX:-0:1:2:0: ++%*7hX:-0:0:2: ++%7hX:-0X0:1:4:0: ++%*7hX:-0X0:0:4: ++%7hX:-0x0:1:4:0: ++%*7hX:-0x0:0:4: ++%7hX:0:1:1:0: ++%*7hX:0:0:1: ++%7hX:0X0:1:3:0: ++%*7hX:0X0:0:3: ++%7hX:0x0:1:3:0: ++%*7hX:0x0:0:3: ++%7hX:1:1:1:1: ++%*7hX:1:0:1: ++%7hX:0X1:1:3:1: ++%*7hX:0X1:0:3: ++%7hX:0x1:1:3:1: ++%*7hX:0x1:0:3: ++%7hX:2a:1:2:42: ++%*7hX:2a:0:2: ++%7hX:2A:1:2:42: ++%*7hX:2A:0:2: ++%7hX:0X2a:1:4:42: ++%*7hX:0X2a:0:4: ++%7hX:0x2A:1:4:42: ++%*7hX:0x2A:0:4: ++%7hX:ffff:1:4:65535: ++%*7hX:ffff:0:4: ++%7hX:FFFF:1:4:65535: ++%*7hX:FFFF:0:4: ++%7hX:0Xffff:1:6:65535: ++%*7hX:0Xffff:0:6: ++%7hX:0xFFFF:1:6:65535: ++%*7hX:0xFFFF:0:6: ++%7hX:10000:1:5:0: ++%*7hX:10000:0:5: ++%7hX:0X10000:1:7:0: ++%*7hX:0X10000:0:7: ++%7hX:0x10000:1:7:0: ++%*7hX:0x10000:0:7: ++%7hX:10029:1:5:41: ++%*7hX:10029:0:5: ++%7hX:0X10029:1:7:41: ++%*7hX:0X10029:0:7: ++%7hX:0x10029:1:7:41: ++%*7hX:0x10029:0:7: ++%7hX:+0:1:2:0: ++%*7hX:+0:0:2: ++%7hX:+0X0:1:4:0: ++%*7hX:+0X0:0:4: ++%7hX:+0x0:1:4:0: ++%*7hX:+0x0:0:4: ++%7hX:+1:1:2:1: ++%*7hX:+1:0:2: ++%7hX:+0X1:1:4:1: ++%*7hX:+0X1:0:4: ++%7hX:+0x1:1:4:1: ++%*7hX:+0x1:0:4: ++%7hX:+2a:1:3:42: ++%*7hX:+2a:0:3: ++%7hX:+2A:1:3:42: ++%*7hX:+2A:0:3: ++%7hX:+0X2a:1:5:42: ++%*7hX:+0X2a:0:5: ++%7hX:+0x2A:1:5:42: ++%*7hX:+0x2A:0:5: ++%7hX:+ffff:1:5:65535: ++%*7hX:+ffff:0:5: ++%7hX:+FFFF:1:5:65535: ++%*7hX:+FFFF:0:5: ++%7hX:+0Xffff:1:7:65535: ++%*7hX:+0Xffff:0:7: ++%7hX:+0xFFFF:1:7:65535: ++%*7hX:+0xFFFF:0:7: ++%7hX:+10000:1:6:0: ++%*7hX:+10000:0:6: ++%7hX:+0X10000:1:7:4096: ++%*7hX:+0X10000:0:7: ++%7hX:+0x10000:1:7:4096: ++%*7hX:+0x10000:0:7: ++%7hX:+10029:1:6:41: ++%*7hX:+10029:0:6: ++%7hX:+0X10029:1:7:4098: ++%*7hX:+0X10029:0:7: ++%7hX:+0x10029:1:7:4098: ++%*7hX:+0x10029:0:7: ++%2hX: :0:-1: ++%*2hX: :0:-1: ++%2hX: -7b:1:3:65529: ++%*2hX: -7b:0:3: ++%2hX: -7B:1:3:65529: ++%*2hX: -7B:0:3: ++%2hX: -0X7b:1:3:0: ++%*2hX: -0X7b:0:3: ++%2hX: -0x7B:1:3:0: ++%*2hX: -0x7B:0:3: ++%2hX: -1:1:3:65535: ++%*2hX: -1:0:3: ++%2hX: -0X1:1:3:0: ++%*2hX: -0X1:0:3: ++%2hX: -0x1:1:3:0: ++%*2hX: -0x1:0:3: ++%2hX: -0:1:3:0: ++%*2hX: -0:0:3: ++%2hX: -0X0:1:3:0: ++%*2hX: -0X0:0:3: ++%2hX: -0x0:1:3:0: ++%*2hX: -0x0:0:3: ++%2hX: 0:1:2:0: ++%*2hX: 0:0:2: ++# BZ12701 %2hX: 0X0:0:-1: ++# BZ12701 %*2hX: 0X0:0:-1: ++# BZ12701 %2hX: 0x0:0:-1: ++# BZ12701 %*2hX: 0x0:0:-1: ++%2hX: 1:1:2:1: ++%*2hX: 1:0:2: ++# BZ12701 %2hX: 0X1:0:-1: ++# BZ12701 %*2hX: 0X1:0:-1: ++# BZ12701 %2hX: 0x1:0:-1: ++# BZ12701 %*2hX: 0x1:0:-1: ++%2hX: 2a:1:3:42: ++%*2hX: 2a:0:3: ++%2hX: 2A:1:3:42: ++%*2hX: 2A:0:3: ++# BZ12701 %2hX: 0X2a:0:-1: ++# BZ12701 %*2hX: 0X2a:0:-1: ++# BZ12701 %2hX: 0x2A:0:-1: ++# BZ12701 %*2hX: 0x2A:0:-1: ++%2hX: ffff:1:3:255: ++%*2hX: ffff:0:3: ++%2hX: FFFF:1:3:255: ++%*2hX: FFFF:0:3: ++# BZ12701 %2hX: 0Xffff:0:-1: ++# BZ12701 %*2hX: 0Xffff:0:-1: ++# BZ12701 %2hX: 0xFFFF:0:-1: ++# BZ12701 %*2hX: 0xFFFF:0:-1: ++%2hX: 10000:1:3:16: ++%*2hX: 10000:0:3: ++# BZ12701 %2hX: 0X10000:0:-1: ++# BZ12701 %*2hX: 0X10000:0:-1: ++# BZ12701 %2hX: 0x10000:0:-1: ++# BZ12701 %*2hX: 0x10000:0:-1: ++%2hX: 10029:1:3:16: ++%*2hX: 10029:0:3: ++# BZ12701 %2hX: 0X10029:0:-1: ++# BZ12701 %*2hX: 0X10029:0:-1: ++# BZ12701 %2hX: 0x10029:0:-1: ++# BZ12701 %*2hX: 0x10029:0:-1: ++%2hX: +0:1:3:0: ++%*2hX: +0:0:3: ++%2hX: +0X0:1:3:0: ++%*2hX: +0X0:0:3: ++%2hX: +0x0:1:3:0: ++%*2hX: +0x0:0:3: ++%2hX: +1:1:3:1: ++%*2hX: +1:0:3: ++%2hX: +0X1:1:3:0: ++%*2hX: +0X1:0:3: ++%2hX: +0x1:1:3:0: ++%*2hX: +0x1:0:3: ++%2hX: +2a:1:3:2: ++%*2hX: +2a:0:3: ++%2hX: +2A:1:3:2: ++%*2hX: +2A:0:3: ++%2hX: +0X2a:1:3:0: ++%*2hX: +0X2a:0:3: ++%2hX: +0x2A:1:3:0: ++%*2hX: +0x2A:0:3: ++%2hX: +ffff:1:3:15: ++%*2hX: +ffff:0:3: ++%2hX: +FFFF:1:3:15: ++%*2hX: +FFFF:0:3: ++%2hX: +0Xffff:1:3:0: ++%*2hX: +0Xffff:0:3: ++%2hX: +0xFFFF:1:3:0: ++%*2hX: +0xFFFF:0:3: ++%2hX: +10000:1:3:1: ++%*2hX: +10000:0:3: ++%2hX: +0X10000:1:3:0: ++%*2hX: +0X10000:0:3: ++%2hX: +0x10000:1:3:0: ++%*2hX: +0x10000:0:3: ++%2hX: +10029:1:3:1: ++%*2hX: +10029:0:3: ++%2hX: +0X10029:1:3:0: ++%*2hX: +0X10029:0:3: ++%2hX: +0x10029:1:3:0: ++%*2hX: +0x10029:0:3: ++%7hX: :0:-1: ++%*7hX: :0:-1: ++%7hX: -7b:1:4:65413: ++%*7hX: -7b:0:4: ++%7hX: -7B:1:4:65413: ++%*7hX: -7B:0:4: ++%7hX: -0X7b:1:6:65413: ++%*7hX: -0X7b:0:6: ++%7hX: -0x7B:1:6:65413: ++%*7hX: -0x7B:0:6: ++%7hX: -1:1:3:65535: ++%*7hX: -1:0:3: ++%7hX: -0X1:1:5:65535: ++%*7hX: -0X1:0:5: ++%7hX: -0x1:1:5:65535: ++%*7hX: -0x1:0:5: ++%7hX: -0:1:3:0: ++%*7hX: -0:0:3: ++%7hX: -0X0:1:5:0: ++%*7hX: -0X0:0:5: ++%7hX: -0x0:1:5:0: ++%*7hX: -0x0:0:5: ++%7hX: 0:1:2:0: ++%*7hX: 0:0:2: ++%7hX: 0X0:1:4:0: ++%*7hX: 0X0:0:4: ++%7hX: 0x0:1:4:0: ++%*7hX: 0x0:0:4: ++%7hX: 1:1:2:1: ++%*7hX: 1:0:2: ++%7hX: 0X1:1:4:1: ++%*7hX: 0X1:0:4: ++%7hX: 0x1:1:4:1: ++%*7hX: 0x1:0:4: ++%7hX: 2a:1:3:42: ++%*7hX: 2a:0:3: ++%7hX: 2A:1:3:42: ++%*7hX: 2A:0:3: ++%7hX: 0X2a:1:5:42: ++%*7hX: 0X2a:0:5: ++%7hX: 0x2A:1:5:42: ++%*7hX: 0x2A:0:5: ++%7hX: ffff:1:5:65535: ++%*7hX: ffff:0:5: ++%7hX: FFFF:1:5:65535: ++%*7hX: FFFF:0:5: ++%7hX: 0Xffff:1:7:65535: ++%*7hX: 0Xffff:0:7: ++%7hX: 0xFFFF:1:7:65535: ++%*7hX: 0xFFFF:0:7: ++%7hX: 10000:1:6:0: ++%*7hX: 10000:0:6: ++%7hX: 0X10000:1:8:0: ++%*7hX: 0X10000:0:8: ++%7hX: 0x10000:1:8:0: ++%*7hX: 0x10000:0:8: ++%7hX: 10029:1:6:41: ++%*7hX: 10029:0:6: ++%7hX: 0X10029:1:8:41: ++%*7hX: 0X10029:0:8: ++%7hX: 0x10029:1:8:41: ++%*7hX: 0x10029:0:8: ++%7hX: +0:1:3:0: ++%*7hX: +0:0:3: ++%7hX: +0X0:1:5:0: ++%*7hX: +0X0:0:5: ++%7hX: +0x0:1:5:0: ++%*7hX: +0x0:0:5: ++%7hX: +1:1:3:1: ++%*7hX: +1:0:3: ++%7hX: +0X1:1:5:1: ++%*7hX: +0X1:0:5: ++%7hX: +0x1:1:5:1: ++%*7hX: +0x1:0:5: ++%7hX: +2a:1:4:42: ++%*7hX: +2a:0:4: ++%7hX: +2A:1:4:42: ++%*7hX: +2A:0:4: ++%7hX: +0X2a:1:6:42: ++%*7hX: +0X2a:0:6: ++%7hX: +0x2A:1:6:42: ++%*7hX: +0x2A:0:6: ++%7hX: +ffff:1:6:65535: ++%*7hX: +ffff:0:6: ++%7hX: +FFFF:1:6:65535: ++%*7hX: +FFFF:0:6: ++%7hX: +0Xffff:1:8:65535: ++%*7hX: +0Xffff:0:8: ++%7hX: +0xFFFF:1:8:65535: ++%*7hX: +0xFFFF:0:8: ++%7hX: +10000:1:7:0: ++%*7hX: +10000:0:7: ++%7hX: +0X10000:1:8:4096: ++%*7hX: +0X10000:0:8: ++%7hX: +0x10000:1:8:4096: ++%*7hX: +0x10000:0:8: ++%7hX: +10029:1:7:41: ++%*7hX: +10029:0:7: ++%7hX: +0X10029:1:8:4098: ++%*7hX: +0X10029:0:8: ++%7hX: +0x10029:1:8:4098: ++%*7hX: +0x10029:0:8: diff --git a/glibc-RHEL-119433-10.patch b/glibc-RHEL-119433-10.patch new file mode 100644 index 0000000..9b86e2e --- /dev/null +++ b/glibc-RHEL-119433-10.patch @@ -0,0 +1,451 @@ +commit 50576060c8bf88a3c64c9ab1cdd516974ffb2690 +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:52 2025 +0000 + + stdio-common: Add tests for formatted fscanf input specifiers + + Wire fscanf into test infrastructure for formatted scanf input + specifiers. + + Reviewed-by: Joseph Myers + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 4804f4d73dd15d60..84bcab429a5b5c17 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -52,7 +52,7 @@ nonfmt-xprintf-stems := \ + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + + # List of markers for scanf family function tests. +-xscanf-funcs := s ++xscanf-funcs := s f + + # List of data types and formats for individual per-conversion scanf tests. + # Further conversions are provided by sysdeps. +diff --git a/stdio-common/tst-scanf-format-f-c.c b/stdio-common/tst-scanf-format-f-c.c +new file mode 100644 +index 0000000000000000..75ce3cd7c314faee +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for the character conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-character.h" ++#include "tst-scanf-format-skeleton-c.c" +diff --git a/stdio-common/tst-scanf-format-f-char.c b/stdio-common/tst-scanf-format-f-char.c +new file mode 100644 +index 0000000000000000..ee5fbe9e1fc9c0aa +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for signed char conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-char.c" +diff --git a/stdio-common/tst-scanf-format-f-double.c b/stdio-common/tst-scanf-format-f-double.c +new file mode 100644 +index 0000000000000000..1fb25b56b2d27ce5 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for double conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-double.c" +diff --git a/stdio-common/tst-scanf-format-f-float.c b/stdio-common/tst-scanf-format-f-float.c +new file mode 100644 +index 0000000000000000..b5a6ae4b1e957bd3 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for float conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-float.c" +diff --git a/stdio-common/tst-scanf-format-f-int.c b/stdio-common/tst-scanf-format-f-int.c +new file mode 100644 +index 0000000000000000..961d66bfa0a842b8 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-int.c" +diff --git a/stdio-common/tst-scanf-format-f-ldouble.c b/stdio-common/tst-scanf-format-f-ldouble.c +new file mode 100644 +index 0000000000000000..6198d35041584402 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for long double conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-scanf-format-f-llong.c b/stdio-common/tst-scanf-format-f-llong.c +new file mode 100644 +index 0000000000000000..1af672f9c2e1484c +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for long long conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-scanf-format-f-long.c b/stdio-common/tst-scanf-format-f-long.c +new file mode 100644 +index 0000000000000000..fc908111d973ddfa +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for long conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-long.c" +diff --git a/stdio-common/tst-scanf-format-f-short.c b/stdio-common/tst-scanf-format-f-short.c +new file mode 100644 +index 0000000000000000..61697e25987f6281 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for short int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-short.c" +diff --git a/stdio-common/tst-scanf-format-f-uchar.c b/stdio-common/tst-scanf-format-f-uchar.c +new file mode 100644 +index 0000000000000000..b4b8af38e6124c77 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for unsigned char conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-scanf-format-f-uint.c b/stdio-common/tst-scanf-format-f-uint.c +new file mode 100644 +index 0000000000000000..af226b0d1044cc8b +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for unsigned int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-scanf-format-f-ullong.c b/stdio-common/tst-scanf-format-f-ullong.c +new file mode 100644 +index 0000000000000000..50ea8123bbe52c60 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-scanf-format-f-ulong.c b/stdio-common/tst-scanf-format-f-ulong.c +new file mode 100644 +index 0000000000000000..673e7703264756dd +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for unsigned long int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-scanf-format-f-ushort.c b/stdio-common/tst-scanf-format-f-ushort.c +new file mode 100644 +index 0000000000000000..413ba670e9782984 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'fscanf' input for unsigned short int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-f.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-scanf-format-f.h b/stdio-common/tst-scanf-format-f.h +new file mode 100644 +index 0000000000000000..9a4caeeb16f87801 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-f.h +@@ -0,0 +1,29 @@ ++/* Test feature wrapper for formatted 'fscanf' input. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++ ++#define scanf_under_test(...) \ ++({ \ ++ int result = fscanf (stdin, __VA_ARGS__); \ ++ if (ferror (stdin)) \ ++ result = INPUT_ERROR; \ ++ else if (result == EOF) \ ++ result = INPUT_EOF; \ ++ result; \ ++}) diff --git a/glibc-RHEL-119433-11.patch b/glibc-RHEL-119433-11.patch new file mode 100644 index 0000000..667a913 --- /dev/null +++ b/glibc-RHEL-119433-11.patch @@ -0,0 +1,495 @@ +commit bf6ac302cde4aef55ded7e5340f16e6cd8b8e874 +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:52 2025 +0000 + + stdio-common: Add tests for formatted sscanf input specifiers + + Wire sscanf into test infrastructure for formatted scanf input + specifiers. + + Reviewed-by: Joseph Myers + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 84bcab429a5b5c17..ae2f76ac56a5d91c 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -52,7 +52,7 @@ nonfmt-xprintf-stems := \ + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + + # List of markers for scanf family function tests. +-xscanf-funcs := s f ++xscanf-funcs := s f ss + + # List of data types and formats for individual per-conversion scanf tests. + # Further conversions are provided by sysdeps. +diff --git a/stdio-common/tst-scanf-format-ss-c.c b/stdio-common/tst-scanf-format-ss-c.c +new file mode 100644 +index 0000000000000000..58a7ce8f63398f22 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for the character conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-character.h" ++#include "tst-scanf-format-skeleton-c.c" +diff --git a/stdio-common/tst-scanf-format-ss-char.c b/stdio-common/tst-scanf-format-ss-char.c +new file mode 100644 +index 0000000000000000..66eb04c0d620126d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for signed char conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-char.c" +diff --git a/stdio-common/tst-scanf-format-ss-double.c b/stdio-common/tst-scanf-format-ss-double.c +new file mode 100644 +index 0000000000000000..2a9fd8afb552fa96 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for double conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-double.c" +diff --git a/stdio-common/tst-scanf-format-ss-float.c b/stdio-common/tst-scanf-format-ss-float.c +new file mode 100644 +index 0000000000000000..640e35dbebd2e459 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for float conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-float.c" +diff --git a/stdio-common/tst-scanf-format-ss-int.c b/stdio-common/tst-scanf-format-ss-int.c +new file mode 100644 +index 0000000000000000..c01a0a3f1f1a530d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-int.c" +diff --git a/stdio-common/tst-scanf-format-ss-ldouble.c b/stdio-common/tst-scanf-format-ss-ldouble.c +new file mode 100644 +index 0000000000000000..3e57ab568f45a741 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for long double conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-scanf-format-ss-llong.c b/stdio-common/tst-scanf-format-ss-llong.c +new file mode 100644 +index 0000000000000000..9c1603c869b7f5dc +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for long long conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-scanf-format-ss-long.c b/stdio-common/tst-scanf-format-ss-long.c +new file mode 100644 +index 0000000000000000..003cfac55282b3cc +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for long conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-long.c" +diff --git a/stdio-common/tst-scanf-format-ss-short.c b/stdio-common/tst-scanf-format-ss-short.c +new file mode 100644 +index 0000000000000000..ba1a58289cd7bd1d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for short int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-short.c" +diff --git a/stdio-common/tst-scanf-format-ss-uchar.c b/stdio-common/tst-scanf-format-ss-uchar.c +new file mode 100644 +index 0000000000000000..1db14241dcab6d89 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for unsigned char conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-scanf-format-ss-uint.c b/stdio-common/tst-scanf-format-ss-uint.c +new file mode 100644 +index 0000000000000000..a296fb48c9c9500a +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for unsigned int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-scanf-format-ss-ullong.c b/stdio-common/tst-scanf-format-ss-ullong.c +new file mode 100644 +index 0000000000000000..885d5709be386471 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-scanf-format-ss-ulong.c b/stdio-common/tst-scanf-format-ss-ulong.c +new file mode 100644 +index 0000000000000000..8a2f24dc5ce7d8d8 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for unsigned long int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-scanf-format-ss-ushort.c b/stdio-common/tst-scanf-format-ss-ushort.c +new file mode 100644 +index 0000000000000000..40618889ac34e910 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'sscanf' input for unsigned short int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-ss.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-scanf-format-ss.h b/stdio-common/tst-scanf-format-ss.h +new file mode 100644 +index 0000000000000000..2fb1ca20deb845df +--- /dev/null ++++ b/stdio-common/tst-scanf-format-ss.h +@@ -0,0 +1,73 @@ ++/* Test feature wrapper for formatted 'scanf' input. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++ ++static char *sscanf_buf; ++static size_t sscanf_buf_size; ++ ++static void __attribute__ ((destructor)) ++scanf_under_test_fini (void) ++{ ++ free (sscanf_buf); ++} ++ ++#define scanf_under_test(...) \ ++({ \ ++ __label__ out; \ ++ size_t i = 0; \ ++ int result; \ ++ int ch; \ ++ \ ++ do \ ++ { \ ++ ch = read_input (); \ ++ if (ch < 0) \ ++ { \ ++ result = ch; \ ++ goto out; \ ++ } \ ++ if (i == sscanf_buf_size) \ ++ { \ ++ sscanf_buf_size += SIZE_CHUNK; \ ++ /* Add an extra byte for the terminating null character. */ \ ++ sscanf_buf = xrealloc (sscanf_buf, sscanf_buf_size + 1); \ ++ } \ ++ sscanf_buf[i++] = ch; \ ++ } \ ++ while (ch != ':'); \ ++ sscanf_buf[i++] = '\0'; \ ++ \ ++ ch = ungetc (ch, stdin); \ ++ if (ch == EOF) \ ++ { \ ++ result = INPUT_ERROR; \ ++ goto out; \ ++ } \ ++ \ ++ result = sscanf (sscanf_buf, __VA_ARGS__); \ ++ if (result == EOF) \ ++ result = INPUT_EOF; \ ++ \ ++out: \ ++ result; \ ++}) diff --git a/glibc-RHEL-119433-12.patch b/glibc-RHEL-119433-12.patch new file mode 100644 index 0000000..6da7a99 --- /dev/null +++ b/glibc-RHEL-119433-12.patch @@ -0,0 +1,458 @@ +commit 63c81fa0dbf741b33bbac03bf204d896ee8e4694 +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:52 2025 +0000 + + stdio-common: Add tests for formatted vscanf input specifiers + + Wire vscanf into test infrastructure for formatted scanf input + specifiers. + + Reviewed-by: Joseph Myers + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index ae2f76ac56a5d91c..337c10b445aa8c45 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -52,7 +52,7 @@ nonfmt-xprintf-stems := \ + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + + # List of markers for scanf family function tests. +-xscanf-funcs := s f ss ++xscanf-funcs := s f ss v + + # List of data types and formats for individual per-conversion scanf tests. + # Further conversions are provided by sysdeps. +diff --git a/stdio-common/tst-scanf-format-v-c.c b/stdio-common/tst-scanf-format-v-c.c +new file mode 100644 +index 0000000000000000..0e2c000ce0218e92 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for the character conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-character.h" ++#include "tst-scanf-format-skeleton-c.c" +diff --git a/stdio-common/tst-scanf-format-v-char.c b/stdio-common/tst-scanf-format-v-char.c +new file mode 100644 +index 0000000000000000..be3a56c663b457ee +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for signed char conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-char.c" +diff --git a/stdio-common/tst-scanf-format-v-double.c b/stdio-common/tst-scanf-format-v-double.c +new file mode 100644 +index 0000000000000000..91886318e800f274 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for double conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-double.c" +diff --git a/stdio-common/tst-scanf-format-v-float.c b/stdio-common/tst-scanf-format-v-float.c +new file mode 100644 +index 0000000000000000..5d289d3e8be7a640 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for float conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-float.c" +diff --git a/stdio-common/tst-scanf-format-v-int.c b/stdio-common/tst-scanf-format-v-int.c +new file mode 100644 +index 0000000000000000..770a686bb1a355fa +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-int.c" +diff --git a/stdio-common/tst-scanf-format-v-ldouble.c b/stdio-common/tst-scanf-format-v-ldouble.c +new file mode 100644 +index 0000000000000000..8215ea7ecb4f785a +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for long double conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-scanf-format-v-llong.c b/stdio-common/tst-scanf-format-v-llong.c +new file mode 100644 +index 0000000000000000..2a1ef02844fc7c27 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for long long conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-scanf-format-v-long.c b/stdio-common/tst-scanf-format-v-long.c +new file mode 100644 +index 0000000000000000..8376032bd459d253 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for long conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-long.c" +diff --git a/stdio-common/tst-scanf-format-v-short.c b/stdio-common/tst-scanf-format-v-short.c +new file mode 100644 +index 0000000000000000..23b9c568874d89bb +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for short int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-short.c" +diff --git a/stdio-common/tst-scanf-format-v-uchar.c b/stdio-common/tst-scanf-format-v-uchar.c +new file mode 100644 +index 0000000000000000..861db22fbafe508e +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for unsigned char conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-scanf-format-v-uint.c b/stdio-common/tst-scanf-format-v-uint.c +new file mode 100644 +index 0000000000000000..30e58c591723d719 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for unsigned int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-scanf-format-v-ullong.c b/stdio-common/tst-scanf-format-v-ullong.c +new file mode 100644 +index 0000000000000000..ee2914d3e932e5cf +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-scanf-format-v-ulong.c b/stdio-common/tst-scanf-format-v-ulong.c +new file mode 100644 +index 0000000000000000..f7864dd57636c6b2 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for unsigned long int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-scanf-format-v-ushort.c b/stdio-common/tst-scanf-format-v-ushort.c +new file mode 100644 +index 0000000000000000..79ca16b4e8f953d0 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vscanf' input for unsigned short int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-v.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-scanf-format-v.h b/stdio-common/tst-scanf-format-v.h +new file mode 100644 +index 0000000000000000..bf19877670d7aea3 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-v.h +@@ -0,0 +1,36 @@ ++/* Test feature wrapper for formatted 'vscanf' input. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++ ++static int ++scanf_under_test (const char *restrict fmt, ...) ++{ ++ va_list ap; ++ int result; ++ ++ va_start (ap, fmt); ++ result = vscanf (fmt, ap); ++ va_end (ap); ++ if (ferror (stdin)) ++ result = INPUT_ERROR; ++ else if (result == EOF) ++ result = INPUT_EOF; ++ return result; ++} diff --git a/glibc-RHEL-119433-13.patch b/glibc-RHEL-119433-13.patch new file mode 100644 index 0000000..6eec6ff --- /dev/null +++ b/glibc-RHEL-119433-13.patch @@ -0,0 +1,458 @@ +commit 53ee7ede430b92fcefd31fc00bfd3fa9acec5846 +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:53 2025 +0000 + + stdio-common: Add tests for formatted vfscanf input specifiers + + Wire vfscanf into test infrastructure for formatted scanf input + specifiers. + + Reviewed-by: Joseph Myers + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 337c10b445aa8c45..b64852b1148029bb 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -52,7 +52,7 @@ nonfmt-xprintf-stems := \ + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + + # List of markers for scanf family function tests. +-xscanf-funcs := s f ss v ++xscanf-funcs := s f ss v vf + + # List of data types and formats for individual per-conversion scanf tests. + # Further conversions are provided by sysdeps. +diff --git a/stdio-common/tst-scanf-format-vf-c.c b/stdio-common/tst-scanf-format-vf-c.c +new file mode 100644 +index 0000000000000000..307bfe82c3875245 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for the character conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-character.h" ++#include "tst-scanf-format-skeleton-c.c" +diff --git a/stdio-common/tst-scanf-format-vf-char.c b/stdio-common/tst-scanf-format-vf-char.c +new file mode 100644 +index 0000000000000000..602899b2bcd5b7eb +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for signed char conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-char.c" +diff --git a/stdio-common/tst-scanf-format-vf-double.c b/stdio-common/tst-scanf-format-vf-double.c +new file mode 100644 +index 0000000000000000..8b58bbe10b3e8622 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for double conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-double.c" +diff --git a/stdio-common/tst-scanf-format-vf-float.c b/stdio-common/tst-scanf-format-vf-float.c +new file mode 100644 +index 0000000000000000..81dad06ebe389438 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for float conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-float.c" +diff --git a/stdio-common/tst-scanf-format-vf-int.c b/stdio-common/tst-scanf-format-vf-int.c +new file mode 100644 +index 0000000000000000..8038791f1411d579 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-int.c" +diff --git a/stdio-common/tst-scanf-format-vf-ldouble.c b/stdio-common/tst-scanf-format-vf-ldouble.c +new file mode 100644 +index 0000000000000000..ec9a7c4632968966 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for long double conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-scanf-format-vf-llong.c b/stdio-common/tst-scanf-format-vf-llong.c +new file mode 100644 +index 0000000000000000..adc4b125de23cd3c +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for long long conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-scanf-format-vf-long.c b/stdio-common/tst-scanf-format-vf-long.c +new file mode 100644 +index 0000000000000000..5f26d6c9ce69e08f +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for long conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-long.c" +diff --git a/stdio-common/tst-scanf-format-vf-short.c b/stdio-common/tst-scanf-format-vf-short.c +new file mode 100644 +index 0000000000000000..0e081ead780b6882 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for short int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-short.c" +diff --git a/stdio-common/tst-scanf-format-vf-uchar.c b/stdio-common/tst-scanf-format-vf-uchar.c +new file mode 100644 +index 0000000000000000..2e879f52ce705646 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for unsigned char conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-scanf-format-vf-uint.c b/stdio-common/tst-scanf-format-vf-uint.c +new file mode 100644 +index 0000000000000000..4874f86ef21cf5fe +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for unsigned int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-scanf-format-vf-ullong.c b/stdio-common/tst-scanf-format-vf-ullong.c +new file mode 100644 +index 0000000000000000..dde09018c46128a5 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-scanf-format-vf-ulong.c b/stdio-common/tst-scanf-format-vf-ulong.c +new file mode 100644 +index 0000000000000000..81023061ef66f824 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for unsigned long int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-scanf-format-vf-ushort.c b/stdio-common/tst-scanf-format-vf-ushort.c +new file mode 100644 +index 0000000000000000..cb8eb4bdcf5e3abc +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vfscanf' input for unsigned short int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vf.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-scanf-format-vf.h b/stdio-common/tst-scanf-format-vf.h +new file mode 100644 +index 0000000000000000..6037e63921aa4ba3 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vf.h +@@ -0,0 +1,36 @@ ++/* Test feature wrapper for formatted 'vfscanf' input. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++ ++static int ++scanf_under_test (const char *restrict fmt, ...) ++{ ++ va_list ap; ++ int result; ++ ++ va_start (ap, fmt); ++ result = vfscanf (stdin, fmt, ap); ++ va_end (ap); ++ if (ferror (stdin)) ++ result = INPUT_ERROR; ++ else if (result == EOF) ++ result = INPUT_EOF; ++ return result; ++} diff --git a/glibc-RHEL-119433-14.patch b/glibc-RHEL-119433-14.patch new file mode 100644 index 0000000..e3c1f80 --- /dev/null +++ b/glibc-RHEL-119433-14.patch @@ -0,0 +1,499 @@ +commit 47076b3163ce645f791d5c8f80080e9811733347 +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:53 2025 +0000 + + stdio-common: Add tests for formatted vsscanf input specifiers + + Wire vsscanf into test infrastructure for formatted scanf input + specifiers. + + Reviewed-by: Joseph Myers + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index b64852b1148029bb..114eed6b56e72161 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -52,7 +52,7 @@ nonfmt-xprintf-stems := \ + xprintf-stems := $(sort $(fmt-xprintf-stems) $(nonfmt-xprintf-stems)) + + # List of markers for scanf family function tests. +-xscanf-funcs := s f ss v vf ++xscanf-funcs := s f ss v vf vs + + # List of data types and formats for individual per-conversion scanf tests. + # Further conversions are provided by sysdeps. +diff --git a/stdio-common/tst-scanf-format-vs-c.c b/stdio-common/tst-scanf-format-vs-c.c +new file mode 100644 +index 0000000000000000..2df5aa7acbecf851 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-c.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for the character conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-character.h" ++#include "tst-scanf-format-skeleton-c.c" +diff --git a/stdio-common/tst-scanf-format-vs-char.c b/stdio-common/tst-scanf-format-vs-char.c +new file mode 100644 +index 0000000000000000..ae4d8e0d0a06b549 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-char.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for signed char conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-char.c" +diff --git a/stdio-common/tst-scanf-format-vs-double.c b/stdio-common/tst-scanf-format-vs-double.c +new file mode 100644 +index 0000000000000000..cd459a8506d4a1e1 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-double.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for double conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-double.c" +diff --git a/stdio-common/tst-scanf-format-vs-float.c b/stdio-common/tst-scanf-format-vs-float.c +new file mode 100644 +index 0000000000000000..7872afef5a49c515 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-float.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for float conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-float.c" +diff --git a/stdio-common/tst-scanf-format-vs-int.c b/stdio-common/tst-scanf-format-vs-int.c +new file mode 100644 +index 0000000000000000..e67b4be6c1ffffb4 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-int.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-int.c" +diff --git a/stdio-common/tst-scanf-format-vs-ldouble.c b/stdio-common/tst-scanf-format-vs-ldouble.c +new file mode 100644 +index 0000000000000000..4d299c29eeee5202 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-ldouble.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for long double conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-real.h" ++#include "tst-scanf-format-skeleton-ldouble.c" +diff --git a/stdio-common/tst-scanf-format-vs-llong.c b/stdio-common/tst-scanf-format-vs-llong.c +new file mode 100644 +index 0000000000000000..06c8cc921f40bcab +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-llong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for long long conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-llong.c" +diff --git a/stdio-common/tst-scanf-format-vs-long.c b/stdio-common/tst-scanf-format-vs-long.c +new file mode 100644 +index 0000000000000000..575a6cb36a20385d +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-long.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for long conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-long.c" +diff --git a/stdio-common/tst-scanf-format-vs-short.c b/stdio-common/tst-scanf-format-vs-short.c +new file mode 100644 +index 0000000000000000..5473471996bfad9b +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-short.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for short int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-short.c" +diff --git a/stdio-common/tst-scanf-format-vs-uchar.c b/stdio-common/tst-scanf-format-vs-uchar.c +new file mode 100644 +index 0000000000000000..5a29b9b944f7df31 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-uchar.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for unsigned char conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uchar.c" +diff --git a/stdio-common/tst-scanf-format-vs-uint.c b/stdio-common/tst-scanf-format-vs-uint.c +new file mode 100644 +index 0000000000000000..b9486b1488270d7a +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-uint.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for unsigned int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-uint.c" +diff --git a/stdio-common/tst-scanf-format-vs-ullong.c b/stdio-common/tst-scanf-format-vs-ullong.c +new file mode 100644 +index 0000000000000000..5396a7812fc13c39 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-ullong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for unsigned long long int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ullong.c" +diff --git a/stdio-common/tst-scanf-format-vs-ulong.c b/stdio-common/tst-scanf-format-vs-ulong.c +new file mode 100644 +index 0000000000000000..3dbc14206dea3176 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-ulong.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for unsigned long int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ulong.c" +diff --git a/stdio-common/tst-scanf-format-vs-ushort.c b/stdio-common/tst-scanf-format-vs-ushort.c +new file mode 100644 +index 0000000000000000..0f28b36dee83ddbe +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs-ushort.c +@@ -0,0 +1,22 @@ ++/* Test for formatted 'vsscanf' input for unsigned short int conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-scanf-format-skeleton.h" ++#include "tst-scanf-format-vs.h" ++#include "tst-scanf-format-integer.h" ++#include "tst-scanf-format-skeleton-ushort.c" +diff --git a/stdio-common/tst-scanf-format-vs.h b/stdio-common/tst-scanf-format-vs.h +new file mode 100644 +index 0000000000000000..d49690daa00bb954 +--- /dev/null ++++ b/stdio-common/tst-scanf-format-vs.h +@@ -0,0 +1,77 @@ ++/* Test feature wrapper for formatted 'vsscanf' input. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++ ++static char *sscanf_buf; ++static size_t sscanf_buf_size; ++ ++static void __attribute__ ((destructor)) ++scanf_under_test_fini (void) ++{ ++ free (sscanf_buf); ++} ++ ++static int ++scanf_under_test (const char *restrict fmt, ...) ++{ ++ size_t i = 0; ++ va_list ap; ++ int result; ++ int ch; ++ ++ do ++ { ++ ch = read_input (); ++ if (ch < 0) ++ { ++ result = ch; ++ goto out; ++ } ++ if (i == sscanf_buf_size) ++ { ++ sscanf_buf_size += SIZE_CHUNK; ++ /* Add an extra byte for the terminating null character. */ ++ sscanf_buf = xrealloc (sscanf_buf, sscanf_buf_size + 1); ++ } ++ sscanf_buf[i++] = ch; ++ } ++ while (ch != ':'); ++ sscanf_buf[i++] = '\0'; ++ ++ ch = ungetc (ch, stdin); ++ if (ch == EOF) ++ { ++ result = INPUT_ERROR; ++ goto out; ++ } ++ ++ va_start (ap, fmt); ++ result = vsscanf (sscanf_buf, fmt, ap); ++ va_end (ap); ++ if (result == EOF) ++ result = INPUT_EOF; ++ ++out: ++ return result; ++} diff --git a/glibc-RHEL-119433-15.patch b/glibc-RHEL-119433-15.patch new file mode 100644 index 0000000..a58a8b7 --- /dev/null +++ b/glibc-RHEL-119433-15.patch @@ -0,0 +1,18207 @@ +Downstream-only patch to exclude failing nan(...) floating-point +input patterns because swbz#30647 has not been fixed downstream. + +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input +index 9d50b08b0b7aed3a..f25c8b68fbd2e1f2 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input +@@ -16,14 +16,14 @@ + %*la:-0x0p+0:0:7: + %la:-0x0p0:1:6:-0x0: + %*la:-0x0p0:0:6: +-%la:-nan(09A_Zaz):1:13:-nan: +-%*la:-nan(09A_Zaz):0:13: +-%la:-nan():1:6:-nan: +-%*la:-nan():0:6: +-%la:nan():1:5:nan: +-%*la:nan():0:5: +-%la:nan(09A_Zaz):1:12:nan: +-%*la:nan(09A_Zaz):0:12: ++# BZ30647 %la:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*la:-nan(09A_Zaz):0:13: ++# BZ30647 %la:-nan():1:6:-nan: ++# BZ30647 %*la:-nan():0:6: ++# BZ30647 %la:nan():1:5:nan: ++# BZ30647 %*la:nan():0:5: ++# BZ30647 %la:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*la:nan(09A_Zaz):0:12: + %la:0x0p0:1:5:0x0: + %*la:0x0p0:0:5: + %la:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*la:0xf.ffffffffffff8p+1020:0:23: + %la:infinity:1:8:inf: + %*la:infinity:0:8: +-%la:+nan():1:6:nan: +-%*la:+nan():0:6: +-%la:+nan(09A_Zaz):1:13:nan: +-%*la:+nan(09A_Zaz):0:13: ++# BZ30647 %la:+nan():1:6:nan: ++# BZ30647 %*la:+nan():0:6: ++# BZ30647 %la:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*la:+nan(09A_Zaz):0:13: + %la:+0x0p0:1:6:0x0: + %*la:+0x0p0:0:6: + %la:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1la:-0x0p+0:0:-1: + %1la:-0x0p0:0:-1: + %*1la:-0x0p0:0:-1: +-%1la:-nan(09A_Zaz):0:-1: +-%*1la:-nan(09A_Zaz):0:-1: +-%1la:-nan():0:-1: +-%*1la:-nan():0:-1: +-%1la:nan():0:-1: +-%*1la:nan():0:-1: +-%1la:nan(09A_Zaz):0:-1: +-%*1la:nan(09A_Zaz):0:-1: ++# BZ30647 %1la:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1la:-nan(09A_Zaz):0:-1: ++# BZ30647 %1la:-nan():0:-1: ++# BZ30647 %*1la:-nan():0:-1: ++# BZ30647 %1la:nan():0:-1: ++# BZ30647 %*1la:nan():0:-1: ++# BZ30647 %1la:nan(09A_Zaz):0:-1: ++# BZ30647 %*1la:nan(09A_Zaz):0:-1: + %1la:0x0p0:1:1:0x0: + %*1la:0x0p0:0:1: + %1la:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1la:0xf.ffffffffffff8p+1020:0:1: + %1la:infinity:0:-1: + %*1la:infinity:0:-1: +-%1la:+nan():0:-1: +-%*1la:+nan():0:-1: +-%1la:+nan(09A_Zaz):0:-1: +-%*1la:+nan(09A_Zaz):0:-1: ++# BZ30647 %1la:+nan():0:-1: ++# BZ30647 %*1la:+nan():0:-1: ++# BZ30647 %1la:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1la:+nan(09A_Zaz):0:-1: + %1la:+0x0p0:0:-1: + %*1la:+0x0p0:0:-1: + %1la:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2la:-0x0p+0:0:2: + %2la:-0x0p0:1:2:-0x0: + %*2la:-0x0p0:0:2: +-%2la:-nan(09A_Zaz):0:-1: +-%*2la:-nan(09A_Zaz):0:-1: +-%2la:-nan():0:-1: +-%*2la:-nan():0:-1: +-%2la:nan():0:-1: +-%*2la:nan():0:-1: +-%2la:nan(09A_Zaz):0:-1: +-%*2la:nan(09A_Zaz):0:-1: ++# BZ30647 %2la:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2la:-nan(09A_Zaz):0:-1: ++# BZ30647 %2la:-nan():0:-1: ++# BZ30647 %*2la:-nan():0:-1: ++# BZ30647 %2la:nan():0:-1: ++# BZ30647 %*2la:nan():0:-1: ++# BZ30647 %2la:nan(09A_Zaz):0:-1: ++# BZ30647 %*2la:nan(09A_Zaz):0:-1: + # BZ12701 %2la:0x0p0:0:-1: + # BZ12701 %*2la:0x0p0:0:-1: + # BZ12701 %2la:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2la:0xf.ffffffffffff8p+1020:0:-1: + %2la:infinity:0:-1: + %*2la:infinity:0:-1: +-%2la:+nan():0:-1: +-%*2la:+nan():0:-1: +-%2la:+nan(09A_Zaz):0:-1: +-%*2la:+nan(09A_Zaz):0:-1: ++# BZ30647 %2la:+nan():0:-1: ++# BZ30647 %*2la:+nan():0:-1: ++# BZ30647 %2la:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2la:+nan(09A_Zaz):0:-1: + %2la:+0x0p0:1:2:0x0: + %*2la:+0x0p0:0:2: + %2la:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3la:-0x0p+0:0:-1: + # BZ12701 %3la:-0x0p0:0:-1: + # BZ12701 %*3la:-0x0p0:0:-1: +-%3la:-nan(09A_Zaz):0:-1: +-%*3la:-nan(09A_Zaz):0:-1: +-%3la:-nan():0:-1: +-%*3la:-nan():0:-1: +-%3la:nan():1:3:nan: +-%*3la:nan():0:3: +-%3la:nan(09A_Zaz):1:3:nan: +-%*3la:nan(09A_Zaz):0:3: ++# BZ30647 %3la:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3la:-nan(09A_Zaz):0:-1: ++# BZ30647 %3la:-nan():0:-1: ++# BZ30647 %*3la:-nan():0:-1: ++# BZ30647 %3la:nan():1:3:nan: ++# BZ30647 %*3la:nan():0:3: ++# BZ30647 %3la:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3la:nan(09A_Zaz):0:3: + %3la:0x0p0:1:3:0x0: + %*3la:0x0p0:0:3: + %3la:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3la:0xf.ffffffffffff8p+1020:0:3: + %3la:infinity:1:3:inf: + %*3la:infinity:0:3: +-%3la:+nan():0:-1: +-%*3la:+nan():0:-1: +-%3la:+nan(09A_Zaz):0:-1: +-%*3la:+nan(09A_Zaz):0:-1: ++# BZ30647 %3la:+nan():0:-1: ++# BZ30647 %*3la:+nan():0:-1: ++# BZ30647 %3la:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3la:+nan(09A_Zaz):0:-1: + # BZ12701 %3la:+0x0p0:0:-1: + # BZ12701 %*3la:+0x0p0:0:-1: + # BZ12701 %3la:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4la:-0x0p+0:0:4: + %4la:-0x0p0:1:4:-0x0: + %*4la:-0x0p0:0:4: +-%4la:-nan(09A_Zaz):1:4:-nan: +-%*4la:-nan(09A_Zaz):0:4: +-%4la:-nan():1:4:-nan: +-%*4la:-nan():0:4: +-%4la:nan():0:-1: +-%*4la:nan():0:-1: +-%4la:nan(09A_Zaz):0:-1: +-%*4la:nan(09A_Zaz):0:-1: ++# BZ30647 %4la:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4la:-nan(09A_Zaz):0:4: ++# BZ30647 %4la:-nan():1:4:-nan: ++# BZ30647 %*4la:-nan():0:4: ++# BZ30647 %4la:nan():0:-1: ++# BZ30647 %*4la:nan():0:-1: ++# BZ30647 %4la:nan(09A_Zaz):0:-1: ++# BZ30647 %*4la:nan(09A_Zaz):0:-1: + # BZ12701 %4la:0x0p0:0:-1: + # BZ12701 %*4la:0x0p0:0:-1: + # BZ12701 %4la:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4la:0xf.ffffffffffff8p+1020:0:4: + %4la:infinity:0:-1: + %*4la:infinity:0:-1: +-%4la:+nan():1:4:nan: +-%*4la:+nan():0:4: +-%4la:+nan(09A_Zaz):1:4:nan: +-%*4la:+nan(09A_Zaz):0:4: ++# BZ30647 %4la:+nan():1:4:nan: ++# BZ30647 %*4la:+nan():0:4: ++# BZ30647 %4la:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4la:+nan(09A_Zaz):0:4: + %4la:+0x0p0:1:4:0x0: + %*4la:+0x0p0:0:4: + %4la:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5la:-0x0p+0:0:-1: + # BZ12701 %5la:-0x0p0:0:-1: + # BZ12701 %*5la:-0x0p0:0:-1: +-%5la:-nan(09A_Zaz):0:-1: +-%*5la:-nan(09A_Zaz):0:-1: +-%5la:-nan():0:-1: +-%*5la:-nan():0:-1: +-%5la:nan():1:5:nan: +-%*5la:nan():0:5: +-%5la:nan(09A_Zaz):0:-1: +-%*5la:nan(09A_Zaz):0:-1: ++# BZ30647 %5la:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5la:-nan(09A_Zaz):0:-1: ++# BZ30647 %5la:-nan():0:-1: ++# BZ30647 %*5la:-nan():0:-1: ++# BZ30647 %5la:nan():1:5:nan: ++# BZ30647 %*5la:nan():0:5: ++# BZ30647 %5la:nan(09A_Zaz):0:-1: ++# BZ30647 %*5la:nan(09A_Zaz):0:-1: + %5la:0x0p0:1:5:0x0: + %*5la:0x0p0:0:5: + # BZ12701 %5la:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5la:0xf.ffffffffffff8p+1020:0:5: + %5la:infinity:0:-1: + %*5la:infinity:0:-1: +-%5la:+nan():0:-1: +-%*5la:+nan():0:-1: +-%5la:+nan(09A_Zaz):0:-1: +-%*5la:+nan(09A_Zaz):0:-1: ++# BZ30647 %5la:+nan():0:-1: ++# BZ30647 %*5la:+nan():0:-1: ++# BZ30647 %5la:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5la:+nan(09A_Zaz):0:-1: + # BZ12701 %5la:+0x0p0:0:-1: + # BZ12701 %*5la:+0x0p0:0:-1: + # BZ12701 %5la:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6la:-0x0p+0:0:-1: + %6la:-0x0p0:1:6:-0x0: + %*6la:-0x0p0:0:6: +-%6la:-nan(09A_Zaz):0:-1: +-%*6la:-nan(09A_Zaz):0:-1: +-%6la:-nan():1:6:-nan: +-%*6la:-nan():0:6: +-%6la:nan():1:5:nan: +-%*6la:nan():0:5: +-%6la:nan(09A_Zaz):0:-1: +-%*6la:nan(09A_Zaz):0:-1: ++# BZ30647 %6la:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6la:-nan(09A_Zaz):0:-1: ++# BZ30647 %6la:-nan():1:6:-nan: ++# BZ30647 %*6la:-nan():0:6: ++# BZ30647 %6la:nan():1:5:nan: ++# BZ30647 %*6la:nan():0:5: ++# BZ30647 %6la:nan(09A_Zaz):0:-1: ++# BZ30647 %*6la:nan(09A_Zaz):0:-1: + %6la:0x0p0:1:5:0x0: + %*6la:0x0p0:0:5: + %6la:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6la:0xf.ffffffffffff8p+1020:0:6: + %6la:infinity:0:-1: + %*6la:infinity:0:-1: +-%6la:+nan():1:6:nan: +-%*6la:+nan():0:6: +-%6la:+nan(09A_Zaz):0:-1: +-%*6la:+nan(09A_Zaz):0:-1: ++# BZ30647 %6la:+nan():1:6:nan: ++# BZ30647 %*6la:+nan():0:6: ++# BZ30647 %6la:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6la:+nan(09A_Zaz):0:-1: + %6la:+0x0p0:1:6:0x0: + %*6la:+0x0p0:0:6: + # BZ12701 %6la:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*20la:-0x0p+0:0:7: + %20la:-0x0p0:1:6:-0x0: + %*20la:-0x0p0:0:6: +-%20la:-nan(09A_Zaz):1:13:-nan: +-%*20la:-nan(09A_Zaz):0:13: +-%20la:-nan():1:6:-nan: +-%*20la:-nan():0:6: +-%20la:nan():1:5:nan: +-%*20la:nan():0:5: +-%20la:nan(09A_Zaz):1:12:nan: +-%*20la:nan(09A_Zaz):0:12: ++# BZ30647 %20la:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*20la:-nan(09A_Zaz):0:13: ++# BZ30647 %20la:-nan():1:6:-nan: ++# BZ30647 %*20la:-nan():0:6: ++# BZ30647 %20la:nan():1:5:nan: ++# BZ30647 %*20la:nan():0:5: ++# BZ30647 %20la:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*20la:nan(09A_Zaz):0:12: + %20la:0x0p0:1:5:0x0: + %*20la:0x0p0:0:5: + %20la:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20la:0xf.ffffffffffff8p+1020:0:20: + %20la:infinity:1:8:inf: + %*20la:infinity:0:8: +-%20la:+nan():1:6:nan: +-%*20la:+nan():0:6: +-%20la:+nan(09A_Zaz):1:13:nan: +-%*20la:+nan(09A_Zaz):0:13: ++# BZ30647 %20la:+nan():1:6:nan: ++# BZ30647 %*20la:+nan():0:6: ++# BZ30647 %20la:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*20la:+nan(09A_Zaz):0:13: + %20la:+0x0p0:1:6:0x0: + %*20la:+0x0p0:0:6: + %20la:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32la:-0x0p+0:0:7: + %32la:-0x0p0:1:6:-0x0: + %*32la:-0x0p0:0:6: +-%32la:-nan(09A_Zaz):1:13:-nan: +-%*32la:-nan(09A_Zaz):0:13: +-%32la:-nan():1:6:-nan: +-%*32la:-nan():0:6: +-%32la:nan():1:5:nan: +-%*32la:nan():0:5: +-%32la:nan(09A_Zaz):1:12:nan: +-%*32la:nan(09A_Zaz):0:12: ++# BZ30647 %32la:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*32la:-nan(09A_Zaz):0:13: ++# BZ30647 %32la:-nan():1:6:-nan: ++# BZ30647 %*32la:-nan():0:6: ++# BZ30647 %32la:nan():1:5:nan: ++# BZ30647 %*32la:nan():0:5: ++# BZ30647 %32la:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*32la:nan(09A_Zaz):0:12: + %32la:0x0p0:1:5:0x0: + %*32la:0x0p0:0:5: + %32la:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32la:0xf.ffffffffffff8p+1020:0:23: + %32la:infinity:1:8:inf: + %*32la:infinity:0:8: +-%32la:+nan():1:6:nan: +-%*32la:+nan():0:6: +-%32la:+nan(09A_Zaz):1:13:nan: +-%*32la:+nan(09A_Zaz):0:13: ++# BZ30647 %32la:+nan():1:6:nan: ++# BZ30647 %*32la:+nan():0:6: ++# BZ30647 %32la:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32la:+nan(09A_Zaz):0:13: + %32la:+0x0p0:1:6:0x0: + %*32la:+0x0p0:0:6: + %32la:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5la: -0x0p+0:0:-1: + # BZ12701 %5la: -0x0p0:0:-1: + # BZ12701 %*5la: -0x0p0:0:-1: +-%5la: -nan(09A_Zaz):0:-1: +-%*5la: -nan(09A_Zaz):0:-1: +-%5la: -nan():0:-1: +-%*5la: -nan():0:-1: +-%5la: nan():1:6:nan: +-%*5la: nan():0:6: +-%5la: nan(09A_Zaz):0:-1: +-%*5la: nan(09A_Zaz):0:-1: ++# BZ30647 %5la: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5la: -nan(09A_Zaz):0:-1: ++# BZ30647 %5la: -nan():0:-1: ++# BZ30647 %*5la: -nan():0:-1: ++# BZ30647 %5la: nan():1:6:nan: ++# BZ30647 %*5la: nan():0:6: ++# BZ30647 %5la: nan(09A_Zaz):0:-1: ++# BZ30647 %*5la: nan(09A_Zaz):0:-1: + %5la: 0x0p0:1:6:0x0: + %*5la: 0x0p0:0:6: + # BZ12701 %5la: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5la: 0xf.ffffffffffff8p+1020:0:6: + %5la: infinity:0:-1: + %*5la: infinity:0:-1: +-%5la: +nan():0:-1: +-%*5la: +nan():0:-1: +-%5la: +nan(09A_Zaz):0:-1: +-%*5la: +nan(09A_Zaz):0:-1: ++# BZ30647 %5la: +nan():0:-1: ++# BZ30647 %*5la: +nan():0:-1: ++# BZ30647 %5la: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5la: +nan(09A_Zaz):0:-1: + # BZ12701 %5la: +0x0p0:0:-1: + # BZ12701 %*5la: +0x0p0:0:-1: + # BZ12701 %5la: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*32la: -0x0p+0:0:8: + %32la: -0x0p0:1:7:-0x0: + %*32la: -0x0p0:0:7: +-%32la: -nan(09A_Zaz):1:14:-nan: +-%*32la: -nan(09A_Zaz):0:14: +-%32la: -nan():1:7:-nan: +-%*32la: -nan():0:7: +-%32la: nan():1:6:nan: +-%*32la: nan():0:6: +-%32la: nan(09A_Zaz):1:13:nan: +-%*32la: nan(09A_Zaz):0:13: ++# BZ30647 %32la: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*32la: -nan(09A_Zaz):0:14: ++# BZ30647 %32la: -nan():1:7:-nan: ++# BZ30647 %*32la: -nan():0:7: ++# BZ30647 %32la: nan():1:6:nan: ++# BZ30647 %*32la: nan():0:6: ++# BZ30647 %32la: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32la: nan(09A_Zaz):0:13: + %32la: 0x0p0:1:6:0x0: + %*32la: 0x0p0:0:6: + %32la: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32la: 0xf.ffffffffffff8p+1020:0:24: + %32la: infinity:1:9:inf: + %*32la: infinity:0:9: +-%32la: +nan():1:7:nan: +-%*32la: +nan():0:7: +-%32la: +nan(09A_Zaz):1:14:nan: +-%*32la: +nan(09A_Zaz):0:14: ++# BZ30647 %32la: +nan():1:7:nan: ++# BZ30647 %*32la: +nan():0:7: ++# BZ30647 %32la: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*32la: +nan(09A_Zaz):0:14: + %32la: +0x0p0:1:7:0x0: + %*32la: +0x0p0:0:7: + %32la: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input +index 3b5a4fe81268339e..adf5b3dd4e72e7eb 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input +@@ -16,14 +16,14 @@ + %*lA:-0X0P+0:0:7: + %lA:-0X0P0:1:6:-0x0: + %*lA:-0X0P0:0:6: +-%lA:-NAN(09A_Zaz):1:13:-nan: +-%*lA:-NAN(09A_Zaz):0:13: +-%lA:-NAN():1:6:-nan: +-%*lA:-NAN():0:6: +-%lA:NAN():1:5:nan: +-%*lA:NAN():0:5: +-%lA:NAN(09A_Zaz):1:12:nan: +-%*lA:NAN(09A_Zaz):0:12: ++# BZ30647 %lA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*lA:-NAN(09A_Zaz):0:13: ++# BZ30647 %lA:-NAN():1:6:-nan: ++# BZ30647 %*lA:-NAN():0:6: ++# BZ30647 %lA:NAN():1:5:nan: ++# BZ30647 %*lA:NAN():0:5: ++# BZ30647 %lA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*lA:NAN(09A_Zaz):0:12: + %lA:0X0P0:1:5:0x0: + %*lA:0X0P0:0:5: + %lA:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*lA:0XF.FFFFFFFFFFFF8P+1020:0:23: + %lA:INFINITY:1:8:inf: + %*lA:INFINITY:0:8: +-%lA:+NAN():1:6:nan: +-%*lA:+NAN():0:6: +-%lA:+NAN(09A_Zaz):1:13:nan: +-%*lA:+NAN(09A_Zaz):0:13: ++# BZ30647 %lA:+NAN():1:6:nan: ++# BZ30647 %*lA:+NAN():0:6: ++# BZ30647 %lA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*lA:+NAN(09A_Zaz):0:13: + %lA:+0X0P0:1:6:0x0: + %*lA:+0X0P0:0:6: + %lA:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1lA:-0X0P+0:0:-1: + %1lA:-0X0P0:0:-1: + %*1lA:-0X0P0:0:-1: +-%1lA:-NAN(09A_Zaz):0:-1: +-%*1lA:-NAN(09A_Zaz):0:-1: +-%1lA:-NAN():0:-1: +-%*1lA:-NAN():0:-1: +-%1lA:NAN():0:-1: +-%*1lA:NAN():0:-1: +-%1lA:NAN(09A_Zaz):0:-1: +-%*1lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %1lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1lA:-NAN():0:-1: ++# BZ30647 %*1lA:-NAN():0:-1: ++# BZ30647 %1lA:NAN():0:-1: ++# BZ30647 %*1lA:NAN():0:-1: ++# BZ30647 %1lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lA:NAN(09A_Zaz):0:-1: + %1lA:0X0P0:1:1:0x0: + %*1lA:0X0P0:0:1: + %1lA:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lA:0XF.FFFFFFFFFFFF8P+1020:0:1: + %1lA:INFINITY:0:-1: + %*1lA:INFINITY:0:-1: +-%1lA:+NAN():0:-1: +-%*1lA:+NAN():0:-1: +-%1lA:+NAN(09A_Zaz):0:-1: +-%*1lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1lA:+NAN():0:-1: ++# BZ30647 %*1lA:+NAN():0:-1: ++# BZ30647 %1lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lA:+NAN(09A_Zaz):0:-1: + %1lA:+0X0P0:0:-1: + %*1lA:+0X0P0:0:-1: + %1lA:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2lA:-0X0P+0:0:2: + %2lA:-0X0P0:1:2:-0x0: + %*2lA:-0X0P0:0:2: +-%2lA:-NAN(09A_Zaz):0:-1: +-%*2lA:-NAN(09A_Zaz):0:-1: +-%2lA:-NAN():0:-1: +-%*2lA:-NAN():0:-1: +-%2lA:NAN():0:-1: +-%*2lA:NAN():0:-1: +-%2lA:NAN(09A_Zaz):0:-1: +-%*2lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %2lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2lA:-NAN():0:-1: ++# BZ30647 %*2lA:-NAN():0:-1: ++# BZ30647 %2lA:NAN():0:-1: ++# BZ30647 %*2lA:NAN():0:-1: ++# BZ30647 %2lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lA:NAN(09A_Zaz):0:-1: + # BZ12701 %2lA:0X0P0:0:-1: + # BZ12701 %*2lA:0X0P0:0:-1: + # BZ12701 %2lA:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2lA:0XF.FFFFFFFFFFFF8P+1020:0:-1: + %2lA:INFINITY:0:-1: + %*2lA:INFINITY:0:-1: +-%2lA:+NAN():0:-1: +-%*2lA:+NAN():0:-1: +-%2lA:+NAN(09A_Zaz):0:-1: +-%*2lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2lA:+NAN():0:-1: ++# BZ30647 %*2lA:+NAN():0:-1: ++# BZ30647 %2lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lA:+NAN(09A_Zaz):0:-1: + %2lA:+0X0P0:1:2:0x0: + %*2lA:+0X0P0:0:2: + %2lA:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3lA:-0X0P+0:0:-1: + # BZ12701 %3lA:-0X0P0:0:-1: + # BZ12701 %*3lA:-0X0P0:0:-1: +-%3lA:-NAN(09A_Zaz):0:-1: +-%*3lA:-NAN(09A_Zaz):0:-1: +-%3lA:-NAN():0:-1: +-%*3lA:-NAN():0:-1: +-%3lA:NAN():1:3:nan: +-%*3lA:NAN():0:3: +-%3lA:NAN(09A_Zaz):1:3:nan: +-%*3lA:NAN(09A_Zaz):0:3: ++# BZ30647 %3lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3lA:-NAN():0:-1: ++# BZ30647 %*3lA:-NAN():0:-1: ++# BZ30647 %3lA:NAN():1:3:nan: ++# BZ30647 %*3lA:NAN():0:3: ++# BZ30647 %3lA:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3lA:NAN(09A_Zaz):0:3: + %3lA:0X0P0:1:3:0x0: + %*3lA:0X0P0:0:3: + %3lA:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3lA:0XF.FFFFFFFFFFFF8P+1020:0:3: + %3lA:INFINITY:1:3:inf: + %*3lA:INFINITY:0:3: +-%3lA:+NAN():0:-1: +-%*3lA:+NAN():0:-1: +-%3lA:+NAN(09A_Zaz):0:-1: +-%*3lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3lA:+NAN():0:-1: ++# BZ30647 %*3lA:+NAN():0:-1: ++# BZ30647 %3lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lA:+NAN(09A_Zaz):0:-1: + # BZ12701 %3lA:+0X0P0:0:-1: + # BZ12701 %*3lA:+0X0P0:0:-1: + # BZ12701 %3lA:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4lA:-0X0P+0:0:4: + %4lA:-0X0P0:1:4:-0x0: + %*4lA:-0X0P0:0:4: +-%4lA:-NAN(09A_Zaz):1:4:-nan: +-%*4lA:-NAN(09A_Zaz):0:4: +-%4lA:-NAN():1:4:-nan: +-%*4lA:-NAN():0:4: +-%4lA:NAN():0:-1: +-%*4lA:NAN():0:-1: +-%4lA:NAN(09A_Zaz):0:-1: +-%*4lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %4lA:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lA:-NAN(09A_Zaz):0:4: ++# BZ30647 %4lA:-NAN():1:4:-nan: ++# BZ30647 %*4lA:-NAN():0:4: ++# BZ30647 %4lA:NAN():0:-1: ++# BZ30647 %*4lA:NAN():0:-1: ++# BZ30647 %4lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4lA:NAN(09A_Zaz):0:-1: + # BZ12701 %4lA:0X0P0:0:-1: + # BZ12701 %*4lA:0X0P0:0:-1: + # BZ12701 %4lA:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4lA:0XF.FFFFFFFFFFFF8P+1020:0:4: + %4lA:INFINITY:0:-1: + %*4lA:INFINITY:0:-1: +-%4lA:+NAN():1:4:nan: +-%*4lA:+NAN():0:4: +-%4lA:+NAN(09A_Zaz):1:4:nan: +-%*4lA:+NAN(09A_Zaz):0:4: ++# BZ30647 %4lA:+NAN():1:4:nan: ++# BZ30647 %*4lA:+NAN():0:4: ++# BZ30647 %4lA:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4lA:+NAN(09A_Zaz):0:4: + %4lA:+0X0P0:1:4:0x0: + %*4lA:+0X0P0:0:4: + %4lA:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5lA:-0X0P+0:0:-1: + # BZ12701 %5lA:-0X0P0:0:-1: + # BZ12701 %*5lA:-0X0P0:0:-1: +-%5lA:-NAN(09A_Zaz):0:-1: +-%*5lA:-NAN(09A_Zaz):0:-1: +-%5lA:-NAN():0:-1: +-%*5lA:-NAN():0:-1: +-%5lA:NAN():1:5:nan: +-%*5lA:NAN():0:5: +-%5lA:NAN(09A_Zaz):0:-1: +-%*5lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA:-NAN():0:-1: ++# BZ30647 %*5lA:-NAN():0:-1: ++# BZ30647 %5lA:NAN():1:5:nan: ++# BZ30647 %*5lA:NAN():0:5: ++# BZ30647 %5lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA:NAN(09A_Zaz):0:-1: + %5lA:0X0P0:1:5:0x0: + %*5lA:0X0P0:0:5: + # BZ12701 %5lA:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5lA:0XF.FFFFFFFFFFFF8P+1020:0:5: + %5lA:INFINITY:0:-1: + %*5lA:INFINITY:0:-1: +-%5lA:+NAN():0:-1: +-%*5lA:+NAN():0:-1: +-%5lA:+NAN(09A_Zaz):0:-1: +-%*5lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA:+NAN():0:-1: ++# BZ30647 %*5lA:+NAN():0:-1: ++# BZ30647 %5lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA:+NAN(09A_Zaz):0:-1: + # BZ12701 %5lA:+0X0P0:0:-1: + # BZ12701 %*5lA:+0X0P0:0:-1: + # BZ12701 %5lA:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6lA:-0X0P+0:0:-1: + %6lA:-0X0P0:1:6:-0x0: + %*6lA:-0X0P0:0:6: +-%6lA:-NAN(09A_Zaz):0:-1: +-%*6lA:-NAN(09A_Zaz):0:-1: +-%6lA:-NAN():1:6:-nan: +-%*6lA:-NAN():0:6: +-%6lA:NAN():1:5:nan: +-%*6lA:NAN():0:5: +-%6lA:NAN(09A_Zaz):0:-1: +-%*6lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %6lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6lA:-NAN():1:6:-nan: ++# BZ30647 %*6lA:-NAN():0:6: ++# BZ30647 %6lA:NAN():1:5:nan: ++# BZ30647 %*6lA:NAN():0:5: ++# BZ30647 %6lA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lA:NAN(09A_Zaz):0:-1: + %6lA:0X0P0:1:5:0x0: + %*6lA:0X0P0:0:5: + %6lA:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6lA:0XF.FFFFFFFFFFFF8P+1020:0:6: + %6lA:INFINITY:0:-1: + %*6lA:INFINITY:0:-1: +-%6lA:+NAN():1:6:nan: +-%*6lA:+NAN():0:6: +-%6lA:+NAN(09A_Zaz):0:-1: +-%*6lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6lA:+NAN():1:6:nan: ++# BZ30647 %*6lA:+NAN():0:6: ++# BZ30647 %6lA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lA:+NAN(09A_Zaz):0:-1: + %6lA:+0X0P0:1:6:0x0: + %*6lA:+0X0P0:0:6: + # BZ12701 %6lA:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*20lA:-0X0P+0:0:7: + %20lA:-0X0P0:1:6:-0x0: + %*20lA:-0X0P0:0:6: +-%20lA:-NAN(09A_Zaz):1:13:-nan: +-%*20lA:-NAN(09A_Zaz):0:13: +-%20lA:-NAN():1:6:-nan: +-%*20lA:-NAN():0:6: +-%20lA:NAN():1:5:nan: +-%*20lA:NAN():0:5: +-%20lA:NAN(09A_Zaz):1:12:nan: +-%*20lA:NAN(09A_Zaz):0:12: ++# BZ30647 %20lA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*20lA:-NAN(09A_Zaz):0:13: ++# BZ30647 %20lA:-NAN():1:6:-nan: ++# BZ30647 %*20lA:-NAN():0:6: ++# BZ30647 %20lA:NAN():1:5:nan: ++# BZ30647 %*20lA:NAN():0:5: ++# BZ30647 %20lA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*20lA:NAN(09A_Zaz):0:12: + %20lA:0X0P0:1:5:0x0: + %*20lA:0X0P0:0:5: + %20lA:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20lA:0XF.FFFFFFFFFFFF8P+1020:0:20: + %20lA:INFINITY:1:8:inf: + %*20lA:INFINITY:0:8: +-%20lA:+NAN():1:6:nan: +-%*20lA:+NAN():0:6: +-%20lA:+NAN(09A_Zaz):1:13:nan: +-%*20lA:+NAN(09A_Zaz):0:13: ++# BZ30647 %20lA:+NAN():1:6:nan: ++# BZ30647 %*20lA:+NAN():0:6: ++# BZ30647 %20lA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*20lA:+NAN(09A_Zaz):0:13: + %20lA:+0X0P0:1:6:0x0: + %*20lA:+0X0P0:0:6: + %20lA:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32lA:-0X0P+0:0:7: + %32lA:-0X0P0:1:6:-0x0: + %*32lA:-0X0P0:0:6: +-%32lA:-NAN(09A_Zaz):1:13:-nan: +-%*32lA:-NAN(09A_Zaz):0:13: +-%32lA:-NAN():1:6:-nan: +-%*32lA:-NAN():0:6: +-%32lA:NAN():1:5:nan: +-%*32lA:NAN():0:5: +-%32lA:NAN(09A_Zaz):1:12:nan: +-%*32lA:NAN(09A_Zaz):0:12: ++# BZ30647 %32lA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*32lA:-NAN(09A_Zaz):0:13: ++# BZ30647 %32lA:-NAN():1:6:-nan: ++# BZ30647 %*32lA:-NAN():0:6: ++# BZ30647 %32lA:NAN():1:5:nan: ++# BZ30647 %*32lA:NAN():0:5: ++# BZ30647 %32lA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*32lA:NAN(09A_Zaz):0:12: + %32lA:0X0P0:1:5:0x0: + %*32lA:0X0P0:0:5: + %32lA:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32lA:0XF.FFFFFFFFFFFF8P+1020:0:23: + %32lA:INFINITY:1:8:inf: + %*32lA:INFINITY:0:8: +-%32lA:+NAN():1:6:nan: +-%*32lA:+NAN():0:6: +-%32lA:+NAN(09A_Zaz):1:13:nan: +-%*32lA:+NAN(09A_Zaz):0:13: ++# BZ30647 %32lA:+NAN():1:6:nan: ++# BZ30647 %*32lA:+NAN():0:6: ++# BZ30647 %32lA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32lA:+NAN(09A_Zaz):0:13: + %32lA:+0X0P0:1:6:0x0: + %*32lA:+0X0P0:0:6: + %32lA:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5lA: -0X0P+0:0:-1: + # BZ12701 %5lA: -0X0P0:0:-1: + # BZ12701 %*5lA: -0X0P0:0:-1: +-%5lA: -NAN(09A_Zaz):0:-1: +-%*5lA: -NAN(09A_Zaz):0:-1: +-%5lA: -NAN():0:-1: +-%*5lA: -NAN():0:-1: +-%5lA: NAN():1:6:nan: +-%*5lA: NAN():0:6: +-%5lA: NAN(09A_Zaz):0:-1: +-%*5lA: NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA: -NAN():0:-1: ++# BZ30647 %*5lA: -NAN():0:-1: ++# BZ30647 %5lA: NAN():1:6:nan: ++# BZ30647 %*5lA: NAN():0:6: ++# BZ30647 %5lA: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA: NAN(09A_Zaz):0:-1: + %5lA: 0X0P0:1:6:0x0: + %*5lA: 0X0P0:0:6: + # BZ12701 %5lA: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5lA: 0XF.FFFFFFFFFFFF8P+1020:0:6: + %5lA: INFINITY:0:-1: + %*5lA: INFINITY:0:-1: +-%5lA: +NAN():0:-1: +-%*5lA: +NAN():0:-1: +-%5lA: +NAN(09A_Zaz):0:-1: +-%*5lA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5lA: +NAN():0:-1: ++# BZ30647 %*5lA: +NAN():0:-1: ++# BZ30647 %5lA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lA: +NAN(09A_Zaz):0:-1: + # BZ12701 %5lA: +0X0P0:0:-1: + # BZ12701 %*5lA: +0X0P0:0:-1: + # BZ12701 %5lA: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*32lA: -0X0P+0:0:8: + %32lA: -0X0P0:1:7:-0x0: + %*32lA: -0X0P0:0:7: +-%32lA: -NAN(09A_Zaz):1:14:-nan: +-%*32lA: -NAN(09A_Zaz):0:14: +-%32lA: -NAN():1:7:-nan: +-%*32lA: -NAN():0:7: +-%32lA: NAN():1:6:nan: +-%*32lA: NAN():0:6: +-%32lA: NAN(09A_Zaz):1:13:nan: +-%*32lA: NAN(09A_Zaz):0:13: ++# BZ30647 %32lA: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*32lA: -NAN(09A_Zaz):0:14: ++# BZ30647 %32lA: -NAN():1:7:-nan: ++# BZ30647 %*32lA: -NAN():0:7: ++# BZ30647 %32lA: NAN():1:6:nan: ++# BZ30647 %*32lA: NAN():0:6: ++# BZ30647 %32lA: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32lA: NAN(09A_Zaz):0:13: + %32lA: 0X0P0:1:6:0x0: + %*32lA: 0X0P0:0:6: + %32lA: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32lA: 0XF.FFFFFFFFFFFF8P+1020:0:24: + %32lA: INFINITY:1:9:inf: + %*32lA: INFINITY:0:9: +-%32lA: +NAN():1:7:nan: +-%*32lA: +NAN():0:7: +-%32lA: +NAN(09A_Zaz):1:14:nan: +-%*32lA: +NAN(09A_Zaz):0:14: ++# BZ30647 %32lA: +NAN():1:7:nan: ++# BZ30647 %*32lA: +NAN():0:7: ++# BZ30647 %32lA: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*32lA: +NAN(09A_Zaz):0:14: + %32lA: +0X0P0:1:7:0x0: + %*32lA: +0X0P0:0:7: + %32lA: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input +index cf1ea542c94e4082..703d785642b58e51 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input +@@ -16,14 +16,14 @@ + %*le:-0e+0:0:5: + %le:-0e0:1:4:-0x0: + %*le:-0e0:0:4: +-%le:-nan(09A_Zaz):1:13:-nan: +-%*le:-nan(09A_Zaz):0:13: +-%le:-nan():1:6:-nan: +-%*le:-nan():0:6: +-%le:nan():1:5:nan: +-%*le:nan():0:5: +-%le:nan(09A_Zaz):1:12:nan: +-%*le:nan(09A_Zaz):0:12: ++# BZ30647 %le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*le:-nan(09A_Zaz):0:13: ++# BZ30647 %le:-nan():1:6:-nan: ++# BZ30647 %*le:-nan():0:6: ++# BZ30647 %le:nan():1:5:nan: ++# BZ30647 %*le:nan():0:5: ++# BZ30647 %le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*le:nan(09A_Zaz):0:12: + %le:0e0:1:3:0x0: + %*le:0e0:0:3: + %le:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*le:1.79769313486231570814527423731704357e+308:0:42: + %le:infinity:1:8:inf: + %*le:infinity:0:8: +-%le:+nan():1:6:nan: +-%*le:+nan():0:6: +-%le:+nan(09A_Zaz):1:13:nan: +-%*le:+nan(09A_Zaz):0:13: ++# BZ30647 %le:+nan():1:6:nan: ++# BZ30647 %*le:+nan():0:6: ++# BZ30647 %le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*le:+nan(09A_Zaz):0:13: + %le:+0e0:1:4:0x0: + %*le:+0e0:0:4: + %le:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1le:-0e+0:0:-1: + %1le:-0e0:0:-1: + %*1le:-0e0:0:-1: +-%1le:-nan(09A_Zaz):0:-1: +-%*1le:-nan(09A_Zaz):0:-1: +-%1le:-nan():0:-1: +-%*1le:-nan():0:-1: +-%1le:nan():0:-1: +-%*1le:nan():0:-1: +-%1le:nan(09A_Zaz):0:-1: +-%*1le:nan(09A_Zaz):0:-1: ++# BZ30647 %1le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1le:-nan(09A_Zaz):0:-1: ++# BZ30647 %1le:-nan():0:-1: ++# BZ30647 %*1le:-nan():0:-1: ++# BZ30647 %1le:nan():0:-1: ++# BZ30647 %*1le:nan():0:-1: ++# BZ30647 %1le:nan(09A_Zaz):0:-1: ++# BZ30647 %*1le:nan(09A_Zaz):0:-1: + %1le:0e0:1:1:0x0: + %*1le:0e0:0:1: + %1le:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1le:1.79769313486231570814527423731704357e+308:0:1: + %1le:infinity:0:-1: + %*1le:infinity:0:-1: +-%1le:+nan():0:-1: +-%*1le:+nan():0:-1: +-%1le:+nan(09A_Zaz):0:-1: +-%*1le:+nan(09A_Zaz):0:-1: ++# BZ30647 %1le:+nan():0:-1: ++# BZ30647 %*1le:+nan():0:-1: ++# BZ30647 %1le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1le:+nan(09A_Zaz):0:-1: + %1le:+0e0:0:-1: + %*1le:+0e0:0:-1: + %1le:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2le:-0e+0:0:2: + %2le:-0e0:1:2:-0x0: + %*2le:-0e0:0:2: +-%2le:-nan(09A_Zaz):0:-1: +-%*2le:-nan(09A_Zaz):0:-1: +-%2le:-nan():0:-1: +-%*2le:-nan():0:-1: +-%2le:nan():0:-1: +-%*2le:nan():0:-1: +-%2le:nan(09A_Zaz):0:-1: +-%*2le:nan(09A_Zaz):0:-1: ++# BZ30647 %2le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2le:-nan(09A_Zaz):0:-1: ++# BZ30647 %2le:-nan():0:-1: ++# BZ30647 %*2le:-nan():0:-1: ++# BZ30647 %2le:nan():0:-1: ++# BZ30647 %*2le:nan():0:-1: ++# BZ30647 %2le:nan(09A_Zaz):0:-1: ++# BZ30647 %*2le:nan(09A_Zaz):0:-1: + # BZ12701 %2le:0e0:0:-1: + # BZ12701 %*2le:0e0:0:-1: + # BZ12701 %2le:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2le:1.79769313486231570814527423731704357e+308:0:2: + %2le:infinity:0:-1: + %*2le:infinity:0:-1: +-%2le:+nan():0:-1: +-%*2le:+nan():0:-1: +-%2le:+nan(09A_Zaz):0:-1: +-%*2le:+nan(09A_Zaz):0:-1: ++# BZ30647 %2le:+nan():0:-1: ++# BZ30647 %*2le:+nan():0:-1: ++# BZ30647 %2le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2le:+nan(09A_Zaz):0:-1: + %2le:+0e0:1:2:0x0: + %*2le:+0e0:0:2: + %2le:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3le:-0e+0:0:-1: + # BZ12701 %3le:-0e0:0:-1: + # BZ12701 %*3le:-0e0:0:-1: +-%3le:-nan(09A_Zaz):0:-1: +-%*3le:-nan(09A_Zaz):0:-1: +-%3le:-nan():0:-1: +-%*3le:-nan():0:-1: +-%3le:nan():1:3:nan: +-%*3le:nan():0:3: +-%3le:nan(09A_Zaz):1:3:nan: +-%*3le:nan(09A_Zaz):0:3: ++# BZ30647 %3le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3le:-nan(09A_Zaz):0:-1: ++# BZ30647 %3le:-nan():0:-1: ++# BZ30647 %*3le:-nan():0:-1: ++# BZ30647 %3le:nan():1:3:nan: ++# BZ30647 %*3le:nan():0:3: ++# BZ30647 %3le:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3le:nan(09A_Zaz):0:3: + %3le:0e0:1:3:0x0: + %*3le:0e0:0:3: + # BZ12701 %3le:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3le:1.79769313486231570814527423731704357e+308:0:3: + %3le:infinity:1:3:inf: + %*3le:infinity:0:3: +-%3le:+nan():0:-1: +-%*3le:+nan():0:-1: +-%3le:+nan(09A_Zaz):0:-1: +-%*3le:+nan(09A_Zaz):0:-1: ++# BZ30647 %3le:+nan():0:-1: ++# BZ30647 %*3le:+nan():0:-1: ++# BZ30647 %3le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3le:+nan(09A_Zaz):0:-1: + # BZ12701 %3le:+0e0:0:-1: + # BZ12701 %*3le:+0e0:0:-1: + # BZ12701 %3le:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4le:-0e+0:0:-1: + %4le:-0e0:1:4:-0x0: + %*4le:-0e0:0:4: +-%4le:-nan(09A_Zaz):1:4:-nan: +-%*4le:-nan(09A_Zaz):0:4: +-%4le:-nan():1:4:-nan: +-%*4le:-nan():0:4: +-%4le:nan():0:-1: +-%*4le:nan():0:-1: +-%4le:nan(09A_Zaz):0:-1: +-%*4le:nan(09A_Zaz):0:-1: ++# BZ30647 %4le:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4le:-nan(09A_Zaz):0:4: ++# BZ30647 %4le:-nan():1:4:-nan: ++# BZ30647 %*4le:-nan():0:4: ++# BZ30647 %4le:nan():0:-1: ++# BZ30647 %*4le:nan():0:-1: ++# BZ30647 %4le:nan(09A_Zaz):0:-1: ++# BZ30647 %*4le:nan(09A_Zaz):0:-1: + %4le:0e0:1:3:0x0: + %*4le:0e0:0:3: + %4le:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4le:1.79769313486231570814527423731704357e+308:0:4: + %4le:infinity:0:-1: + %*4le:infinity:0:-1: +-%4le:+nan():1:4:nan: +-%*4le:+nan():0:4: +-%4le:+nan(09A_Zaz):1:4:nan: +-%*4le:+nan(09A_Zaz):0:4: ++# BZ30647 %4le:+nan():1:4:nan: ++# BZ30647 %*4le:+nan():0:4: ++# BZ30647 %4le:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4le:+nan(09A_Zaz):0:4: + %4le:+0e0:1:4:0x0: + %*4le:+0e0:0:4: + # BZ12701 %4le:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40le:-0e+0:0:5: + %40le:-0e0:1:4:-0x0: + %*40le:-0e0:0:4: +-%40le:-nan(09A_Zaz):1:13:-nan: +-%*40le:-nan(09A_Zaz):0:13: +-%40le:-nan():1:6:-nan: +-%*40le:-nan():0:6: +-%40le:nan():1:5:nan: +-%*40le:nan():0:5: +-%40le:nan(09A_Zaz):1:12:nan: +-%*40le:nan(09A_Zaz):0:12: ++# BZ30647 %40le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40le:-nan(09A_Zaz):0:13: ++# BZ30647 %40le:-nan():1:6:-nan: ++# BZ30647 %*40le:-nan():0:6: ++# BZ30647 %40le:nan():1:5:nan: ++# BZ30647 %*40le:nan():0:5: ++# BZ30647 %40le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40le:nan(09A_Zaz):0:12: + %40le:0e0:1:3:0x0: + %*40le:0e0:0:3: + %40le:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40le:1.79769313486231570814527423731704357e+308:0:40: + %40le:infinity:1:8:inf: + %*40le:infinity:0:8: +-%40le:+nan():1:6:nan: +-%*40le:+nan():0:6: +-%40le:+nan(09A_Zaz):1:13:nan: +-%*40le:+nan(09A_Zaz):0:13: ++# BZ30647 %40le:+nan():1:6:nan: ++# BZ30647 %*40le:+nan():0:6: ++# BZ30647 %40le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40le:+nan(09A_Zaz):0:13: + %40le:+0e0:1:4:0x0: + %*40le:+0e0:0:4: + %40le:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48le:-0e+0:0:5: + %48le:-0e0:1:4:-0x0: + %*48le:-0e0:0:4: +-%48le:-nan(09A_Zaz):1:13:-nan: +-%*48le:-nan(09A_Zaz):0:13: +-%48le:-nan():1:6:-nan: +-%*48le:-nan():0:6: +-%48le:nan():1:5:nan: +-%*48le:nan():0:5: +-%48le:nan(09A_Zaz):1:12:nan: +-%*48le:nan(09A_Zaz):0:12: ++# BZ30647 %48le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48le:-nan(09A_Zaz):0:13: ++# BZ30647 %48le:-nan():1:6:-nan: ++# BZ30647 %*48le:-nan():0:6: ++# BZ30647 %48le:nan():1:5:nan: ++# BZ30647 %*48le:nan():0:5: ++# BZ30647 %48le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48le:nan(09A_Zaz):0:12: + %48le:0e0:1:3:0x0: + %*48le:0e0:0:3: + %48le:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48le:1.79769313486231570814527423731704357e+308:0:42: + %48le:infinity:1:8:inf: + %*48le:infinity:0:8: +-%48le:+nan():1:6:nan: +-%*48le:+nan():0:6: +-%48le:+nan(09A_Zaz):1:13:nan: +-%*48le:+nan(09A_Zaz):0:13: ++# BZ30647 %48le:+nan():1:6:nan: ++# BZ30647 %*48le:+nan():0:6: ++# BZ30647 %48le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48le:+nan(09A_Zaz):0:13: + %48le:+0e0:1:4:0x0: + %*48le:+0e0:0:4: + %48le:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3le: -0e+0:0:-1: + # BZ12701 %3le: -0e0:0:-1: + # BZ12701 %*3le: -0e0:0:-1: +-%3le: -nan(09A_Zaz):0:-1: +-%*3le: -nan(09A_Zaz):0:-1: +-%3le: -nan():0:-1: +-%*3le: -nan():0:-1: +-%3le: nan():1:4:nan: +-%*3le: nan():0:4: +-%3le: nan(09A_Zaz):1:4:nan: +-%*3le: nan(09A_Zaz):0:4: ++# BZ30647 %3le: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3le: -nan(09A_Zaz):0:-1: ++# BZ30647 %3le: -nan():0:-1: ++# BZ30647 %*3le: -nan():0:-1: ++# BZ30647 %3le: nan():1:4:nan: ++# BZ30647 %*3le: nan():0:4: ++# BZ30647 %3le: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3le: nan(09A_Zaz):0:4: + %3le: 0e0:1:4:0x0: + %*3le: 0e0:0:4: + # BZ12701 %3le: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3le: 1.79769313486231570814527423731704357e+308:0:4: + %3le: infinity:1:4:inf: + %*3le: infinity:0:4: +-%3le: +nan():0:-1: +-%*3le: +nan():0:-1: +-%3le: +nan(09A_Zaz):0:-1: +-%*3le: +nan(09A_Zaz):0:-1: ++# BZ30647 %3le: +nan():0:-1: ++# BZ30647 %*3le: +nan():0:-1: ++# BZ30647 %3le: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3le: +nan(09A_Zaz):0:-1: + # BZ12701 %3le: +0e0:0:-1: + # BZ12701 %*3le: +0e0:0:-1: + # BZ12701 %3le: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48le: -0e+0:0:6: + %48le: -0e0:1:5:-0x0: + %*48le: -0e0:0:5: +-%48le: -nan(09A_Zaz):1:14:-nan: +-%*48le: -nan(09A_Zaz):0:14: +-%48le: -nan():1:7:-nan: +-%*48le: -nan():0:7: +-%48le: nan():1:6:nan: +-%*48le: nan():0:6: +-%48le: nan(09A_Zaz):1:13:nan: +-%*48le: nan(09A_Zaz):0:13: ++# BZ30647 %48le: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48le: -nan(09A_Zaz):0:14: ++# BZ30647 %48le: -nan():1:7:-nan: ++# BZ30647 %*48le: -nan():0:7: ++# BZ30647 %48le: nan():1:6:nan: ++# BZ30647 %*48le: nan():0:6: ++# BZ30647 %48le: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48le: nan(09A_Zaz):0:13: + %48le: 0e0:1:4:0x0: + %*48le: 0e0:0:4: + %48le: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48le: 1.79769313486231570814527423731704357e+308:0:43: + %48le: infinity:1:9:inf: + %*48le: infinity:0:9: +-%48le: +nan():1:7:nan: +-%*48le: +nan():0:7: +-%48le: +nan(09A_Zaz):1:14:nan: +-%*48le: +nan(09A_Zaz):0:14: ++# BZ30647 %48le: +nan():1:7:nan: ++# BZ30647 %*48le: +nan():0:7: ++# BZ30647 %48le: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48le: +nan(09A_Zaz):0:14: + %48le: +0e0:1:5:0x0: + %*48le: +0e0:0:5: + %48le: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input +index ba9d5cbb45cfb659..e7100e8740954725 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input +@@ -16,14 +16,14 @@ + %*lE:-0E+0:0:5: + %lE:-0E0:1:4:-0x0: + %*lE:-0E0:0:4: +-%lE:-NAN(09A_Zaz):1:13:-nan: +-%*lE:-NAN(09A_Zaz):0:13: +-%lE:-NAN():1:6:-nan: +-%*lE:-NAN():0:6: +-%lE:NAN():1:5:nan: +-%*lE:NAN():0:5: +-%lE:NAN(09A_Zaz):1:12:nan: +-%*lE:NAN(09A_Zaz):0:12: ++# BZ30647 %lE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*lE:-NAN(09A_Zaz):0:13: ++# BZ30647 %lE:-NAN():1:6:-nan: ++# BZ30647 %*lE:-NAN():0:6: ++# BZ30647 %lE:NAN():1:5:nan: ++# BZ30647 %*lE:NAN():0:5: ++# BZ30647 %lE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*lE:NAN(09A_Zaz):0:12: + %lE:0E0:1:3:0x0: + %*lE:0E0:0:3: + %lE:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*lE:1.79769313486231570814527423731704357E+308:0:42: + %lE:INFINITY:1:8:inf: + %*lE:INFINITY:0:8: +-%lE:+NAN():1:6:nan: +-%*lE:+NAN():0:6: +-%lE:+NAN(09A_Zaz):1:13:nan: +-%*lE:+NAN(09A_Zaz):0:13: ++# BZ30647 %lE:+NAN():1:6:nan: ++# BZ30647 %*lE:+NAN():0:6: ++# BZ30647 %lE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*lE:+NAN(09A_Zaz):0:13: + %lE:+0E0:1:4:0x0: + %*lE:+0E0:0:4: + %lE:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1lE:-0E+0:0:-1: + %1lE:-0E0:0:-1: + %*1lE:-0E0:0:-1: +-%1lE:-NAN(09A_Zaz):0:-1: +-%*1lE:-NAN(09A_Zaz):0:-1: +-%1lE:-NAN():0:-1: +-%*1lE:-NAN():0:-1: +-%1lE:NAN():0:-1: +-%*1lE:NAN():0:-1: +-%1lE:NAN(09A_Zaz):0:-1: +-%*1lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %1lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1lE:-NAN():0:-1: ++# BZ30647 %*1lE:-NAN():0:-1: ++# BZ30647 %1lE:NAN():0:-1: ++# BZ30647 %*1lE:NAN():0:-1: ++# BZ30647 %1lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lE:NAN(09A_Zaz):0:-1: + %1lE:0E0:1:1:0x0: + %*1lE:0E0:0:1: + %1lE:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lE:1.79769313486231570814527423731704357E+308:0:1: + %1lE:INFINITY:0:-1: + %*1lE:INFINITY:0:-1: +-%1lE:+NAN():0:-1: +-%*1lE:+NAN():0:-1: +-%1lE:+NAN(09A_Zaz):0:-1: +-%*1lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1lE:+NAN():0:-1: ++# BZ30647 %*1lE:+NAN():0:-1: ++# BZ30647 %1lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lE:+NAN(09A_Zaz):0:-1: + %1lE:+0E0:0:-1: + %*1lE:+0E0:0:-1: + %1lE:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2lE:-0E+0:0:2: + %2lE:-0E0:1:2:-0x0: + %*2lE:-0E0:0:2: +-%2lE:-NAN(09A_Zaz):0:-1: +-%*2lE:-NAN(09A_Zaz):0:-1: +-%2lE:-NAN():0:-1: +-%*2lE:-NAN():0:-1: +-%2lE:NAN():0:-1: +-%*2lE:NAN():0:-1: +-%2lE:NAN(09A_Zaz):0:-1: +-%*2lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %2lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2lE:-NAN():0:-1: ++# BZ30647 %*2lE:-NAN():0:-1: ++# BZ30647 %2lE:NAN():0:-1: ++# BZ30647 %*2lE:NAN():0:-1: ++# BZ30647 %2lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lE:NAN(09A_Zaz):0:-1: + # BZ12701 %2lE:0E0:0:-1: + # BZ12701 %*2lE:0E0:0:-1: + # BZ12701 %2lE:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2lE:1.79769313486231570814527423731704357E+308:0:2: + %2lE:INFINITY:0:-1: + %*2lE:INFINITY:0:-1: +-%2lE:+NAN():0:-1: +-%*2lE:+NAN():0:-1: +-%2lE:+NAN(09A_Zaz):0:-1: +-%*2lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2lE:+NAN():0:-1: ++# BZ30647 %*2lE:+NAN():0:-1: ++# BZ30647 %2lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lE:+NAN(09A_Zaz):0:-1: + %2lE:+0E0:1:2:0x0: + %*2lE:+0E0:0:2: + %2lE:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3lE:-0E+0:0:-1: + # BZ12701 %3lE:-0E0:0:-1: + # BZ12701 %*3lE:-0E0:0:-1: +-%3lE:-NAN(09A_Zaz):0:-1: +-%*3lE:-NAN(09A_Zaz):0:-1: +-%3lE:-NAN():0:-1: +-%*3lE:-NAN():0:-1: +-%3lE:NAN():1:3:nan: +-%*3lE:NAN():0:3: +-%3lE:NAN(09A_Zaz):1:3:nan: +-%*3lE:NAN(09A_Zaz):0:3: ++# BZ30647 %3lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3lE:-NAN():0:-1: ++# BZ30647 %*3lE:-NAN():0:-1: ++# BZ30647 %3lE:NAN():1:3:nan: ++# BZ30647 %*3lE:NAN():0:3: ++# BZ30647 %3lE:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3lE:NAN(09A_Zaz):0:3: + %3lE:0E0:1:3:0x0: + %*3lE:0E0:0:3: + # BZ12701 %3lE:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3lE:1.79769313486231570814527423731704357E+308:0:3: + %3lE:INFINITY:1:3:inf: + %*3lE:INFINITY:0:3: +-%3lE:+NAN():0:-1: +-%*3lE:+NAN():0:-1: +-%3lE:+NAN(09A_Zaz):0:-1: +-%*3lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3lE:+NAN():0:-1: ++# BZ30647 %*3lE:+NAN():0:-1: ++# BZ30647 %3lE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lE:+NAN(09A_Zaz):0:-1: + # BZ12701 %3lE:+0E0:0:-1: + # BZ12701 %*3lE:+0E0:0:-1: + # BZ12701 %3lE:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4lE:-0E+0:0:-1: + %4lE:-0E0:1:4:-0x0: + %*4lE:-0E0:0:4: +-%4lE:-NAN(09A_Zaz):1:4:-nan: +-%*4lE:-NAN(09A_Zaz):0:4: +-%4lE:-NAN():1:4:-nan: +-%*4lE:-NAN():0:4: +-%4lE:NAN():0:-1: +-%*4lE:NAN():0:-1: +-%4lE:NAN(09A_Zaz):0:-1: +-%*4lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %4lE:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lE:-NAN(09A_Zaz):0:4: ++# BZ30647 %4lE:-NAN():1:4:-nan: ++# BZ30647 %*4lE:-NAN():0:4: ++# BZ30647 %4lE:NAN():0:-1: ++# BZ30647 %*4lE:NAN():0:-1: ++# BZ30647 %4lE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4lE:NAN(09A_Zaz):0:-1: + %4lE:0E0:1:3:0x0: + %*4lE:0E0:0:3: + %4lE:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4lE:1.79769313486231570814527423731704357E+308:0:4: + %4lE:INFINITY:0:-1: + %*4lE:INFINITY:0:-1: +-%4lE:+NAN():1:4:nan: +-%*4lE:+NAN():0:4: +-%4lE:+NAN(09A_Zaz):1:4:nan: +-%*4lE:+NAN(09A_Zaz):0:4: ++# BZ30647 %4lE:+NAN():1:4:nan: ++# BZ30647 %*4lE:+NAN():0:4: ++# BZ30647 %4lE:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4lE:+NAN(09A_Zaz):0:4: + %4lE:+0E0:1:4:0x0: + %*4lE:+0E0:0:4: + # BZ12701 %4lE:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40lE:-0E+0:0:5: + %40lE:-0E0:1:4:-0x0: + %*40lE:-0E0:0:4: +-%40lE:-NAN(09A_Zaz):1:13:-nan: +-%*40lE:-NAN(09A_Zaz):0:13: +-%40lE:-NAN():1:6:-nan: +-%*40lE:-NAN():0:6: +-%40lE:NAN():1:5:nan: +-%*40lE:NAN():0:5: +-%40lE:NAN(09A_Zaz):1:12:nan: +-%*40lE:NAN(09A_Zaz):0:12: ++# BZ30647 %40lE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40lE:-NAN(09A_Zaz):0:13: ++# BZ30647 %40lE:-NAN():1:6:-nan: ++# BZ30647 %*40lE:-NAN():0:6: ++# BZ30647 %40lE:NAN():1:5:nan: ++# BZ30647 %*40lE:NAN():0:5: ++# BZ30647 %40lE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40lE:NAN(09A_Zaz):0:12: + %40lE:0E0:1:3:0x0: + %*40lE:0E0:0:3: + %40lE:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40lE:1.79769313486231570814527423731704357E+308:0:40: + %40lE:INFINITY:1:8:inf: + %*40lE:INFINITY:0:8: +-%40lE:+NAN():1:6:nan: +-%*40lE:+NAN():0:6: +-%40lE:+NAN(09A_Zaz):1:13:nan: +-%*40lE:+NAN(09A_Zaz):0:13: ++# BZ30647 %40lE:+NAN():1:6:nan: ++# BZ30647 %*40lE:+NAN():0:6: ++# BZ30647 %40lE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40lE:+NAN(09A_Zaz):0:13: + %40lE:+0E0:1:4:0x0: + %*40lE:+0E0:0:4: + %40lE:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48lE:-0E+0:0:5: + %48lE:-0E0:1:4:-0x0: + %*48lE:-0E0:0:4: +-%48lE:-NAN(09A_Zaz):1:13:-nan: +-%*48lE:-NAN(09A_Zaz):0:13: +-%48lE:-NAN():1:6:-nan: +-%*48lE:-NAN():0:6: +-%48lE:NAN():1:5:nan: +-%*48lE:NAN():0:5: +-%48lE:NAN(09A_Zaz):1:12:nan: +-%*48lE:NAN(09A_Zaz):0:12: ++# BZ30647 %48lE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48lE:-NAN(09A_Zaz):0:13: ++# BZ30647 %48lE:-NAN():1:6:-nan: ++# BZ30647 %*48lE:-NAN():0:6: ++# BZ30647 %48lE:NAN():1:5:nan: ++# BZ30647 %*48lE:NAN():0:5: ++# BZ30647 %48lE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48lE:NAN(09A_Zaz):0:12: + %48lE:0E0:1:3:0x0: + %*48lE:0E0:0:3: + %48lE:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48lE:1.79769313486231570814527423731704357E+308:0:42: + %48lE:INFINITY:1:8:inf: + %*48lE:INFINITY:0:8: +-%48lE:+NAN():1:6:nan: +-%*48lE:+NAN():0:6: +-%48lE:+NAN(09A_Zaz):1:13:nan: +-%*48lE:+NAN(09A_Zaz):0:13: ++# BZ30647 %48lE:+NAN():1:6:nan: ++# BZ30647 %*48lE:+NAN():0:6: ++# BZ30647 %48lE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48lE:+NAN(09A_Zaz):0:13: + %48lE:+0E0:1:4:0x0: + %*48lE:+0E0:0:4: + %48lE:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3lE: -0E+0:0:-1: + # BZ12701 %3lE: -0E0:0:-1: + # BZ12701 %*3lE: -0E0:0:-1: +-%3lE: -NAN(09A_Zaz):0:-1: +-%*3lE: -NAN(09A_Zaz):0:-1: +-%3lE: -NAN():0:-1: +-%*3lE: -NAN():0:-1: +-%3lE: NAN():1:4:nan: +-%*3lE: NAN():0:4: +-%3lE: NAN(09A_Zaz):1:4:nan: +-%*3lE: NAN(09A_Zaz):0:4: ++# BZ30647 %3lE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3lE: -NAN():0:-1: ++# BZ30647 %*3lE: -NAN():0:-1: ++# BZ30647 %3lE: NAN():1:4:nan: ++# BZ30647 %*3lE: NAN():0:4: ++# BZ30647 %3lE: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3lE: NAN(09A_Zaz):0:4: + %3lE: 0E0:1:4:0x0: + %*3lE: 0E0:0:4: + # BZ12701 %3lE: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3lE: 1.79769313486231570814527423731704357E+308:0:4: + %3lE: INFINITY:1:4:inf: + %*3lE: INFINITY:0:4: +-%3lE: +NAN():0:-1: +-%*3lE: +NAN():0:-1: +-%3lE: +NAN(09A_Zaz):0:-1: +-%*3lE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3lE: +NAN():0:-1: ++# BZ30647 %*3lE: +NAN():0:-1: ++# BZ30647 %3lE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lE: +NAN(09A_Zaz):0:-1: + # BZ12701 %3lE: +0E0:0:-1: + # BZ12701 %*3lE: +0E0:0:-1: + # BZ12701 %3lE: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48lE: -0E+0:0:6: + %48lE: -0E0:1:5:-0x0: + %*48lE: -0E0:0:5: +-%48lE: -NAN(09A_Zaz):1:14:-nan: +-%*48lE: -NAN(09A_Zaz):0:14: +-%48lE: -NAN():1:7:-nan: +-%*48lE: -NAN():0:7: +-%48lE: NAN():1:6:nan: +-%*48lE: NAN():0:6: +-%48lE: NAN(09A_Zaz):1:13:nan: +-%*48lE: NAN(09A_Zaz):0:13: ++# BZ30647 %48lE: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48lE: -NAN(09A_Zaz):0:14: ++# BZ30647 %48lE: -NAN():1:7:-nan: ++# BZ30647 %*48lE: -NAN():0:7: ++# BZ30647 %48lE: NAN():1:6:nan: ++# BZ30647 %*48lE: NAN():0:6: ++# BZ30647 %48lE: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48lE: NAN(09A_Zaz):0:13: + %48lE: 0E0:1:4:0x0: + %*48lE: 0E0:0:4: + %48lE: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48lE: 1.79769313486231570814527423731704357E+308:0:43: + %48lE: INFINITY:1:9:inf: + %*48lE: INFINITY:0:9: +-%48lE: +NAN():1:7:nan: +-%*48lE: +NAN():0:7: +-%48lE: +NAN(09A_Zaz):1:14:nan: +-%*48lE: +NAN(09A_Zaz):0:14: ++# BZ30647 %48lE: +NAN():1:7:nan: ++# BZ30647 %*48lE: +NAN():0:7: ++# BZ30647 %48lE: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48lE: +NAN(09A_Zaz):0:14: + %48lE: +0E0:1:5:0x0: + %*48lE: +0E0:0:5: + %48lE: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input +index 22b9fdc4f62cfa08..630437ea49587620 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input +@@ -16,14 +16,14 @@ + %*lf:-0.0:0:4: + %lf:-0:1:2:-0x0: + %*lf:-0:0:2: +-%lf:-nan(09A_Zaz):1:13:-nan: +-%*lf:-nan(09A_Zaz):0:13: +-%lf:-nan():1:6:-nan: +-%*lf:-nan():0:6: +-%lf:nan():1:5:nan: +-%*lf:nan():0:5: +-%lf:nan(09A_Zaz):1:12:nan: +-%*lf:nan(09A_Zaz):0:12: ++# BZ30647 %lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*lf:-nan(09A_Zaz):0:13: ++# BZ30647 %lf:-nan():1:6:-nan: ++# BZ30647 %*lf:-nan():0:6: ++# BZ30647 %lf:nan():1:5:nan: ++# BZ30647 %*lf:nan():0:5: ++# BZ30647 %lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*lf:nan(09A_Zaz):0:12: + %lf:0:1:1:0x0: + %*lf:0:0:1: + %lf:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %lf:infinity:1:8:inf: + %*lf:infinity:0:8: +-%lf:+nan():1:6:nan: +-%*lf:+nan():0:6: +-%lf:+nan(09A_Zaz):1:13:nan: +-%*lf:+nan(09A_Zaz):0:13: ++# BZ30647 %lf:+nan():1:6:nan: ++# BZ30647 %*lf:+nan():0:6: ++# BZ30647 %lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*lf:+nan(09A_Zaz):0:13: + %lf:+0:1:2:0x0: + %*lf:+0:0:2: + %lf:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1lf:-0.0:0:-1: + %1lf:-0:0:-1: + %*1lf:-0:0:-1: +-%1lf:-nan(09A_Zaz):0:-1: +-%*1lf:-nan(09A_Zaz):0:-1: +-%1lf:-nan():0:-1: +-%*1lf:-nan():0:-1: +-%1lf:nan():0:-1: +-%*1lf:nan():0:-1: +-%1lf:nan(09A_Zaz):0:-1: +-%*1lf:nan(09A_Zaz):0:-1: ++# BZ30647 %1lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %1lf:-nan():0:-1: ++# BZ30647 %*1lf:-nan():0:-1: ++# BZ30647 %1lf:nan():0:-1: ++# BZ30647 %*1lf:nan():0:-1: ++# BZ30647 %1lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*1lf:nan(09A_Zaz):0:-1: + %1lf:0:1:1:0x0: + %*1lf:0:0:1: + %1lf:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: + %1lf:infinity:0:-1: + %*1lf:infinity:0:-1: +-%1lf:+nan():0:-1: +-%*1lf:+nan():0:-1: +-%1lf:+nan(09A_Zaz):0:-1: +-%*1lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %1lf:+nan():0:-1: ++# BZ30647 %*1lf:+nan():0:-1: ++# BZ30647 %1lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1lf:+nan(09A_Zaz):0:-1: + %1lf:+0:0:-1: + %*1lf:+0:0:-1: + %1lf:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2lf:-0.0:0:2: + %2lf:-0:1:2:-0x0: + %*2lf:-0:0:2: +-%2lf:-nan(09A_Zaz):0:-1: +-%*2lf:-nan(09A_Zaz):0:-1: +-%2lf:-nan():0:-1: +-%*2lf:-nan():0:-1: +-%2lf:nan():0:-1: +-%*2lf:nan():0:-1: +-%2lf:nan(09A_Zaz):0:-1: +-%*2lf:nan(09A_Zaz):0:-1: ++# BZ30647 %2lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %2lf:-nan():0:-1: ++# BZ30647 %*2lf:-nan():0:-1: ++# BZ30647 %2lf:nan():0:-1: ++# BZ30647 %*2lf:nan():0:-1: ++# BZ30647 %2lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*2lf:nan(09A_Zaz):0:-1: + %2lf:0:1:1:0x0: + %*2lf:0:0:1: + %2lf:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: + %2lf:infinity:0:-1: + %*2lf:infinity:0:-1: +-%2lf:+nan():0:-1: +-%*2lf:+nan():0:-1: +-%2lf:+nan(09A_Zaz):0:-1: +-%*2lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %2lf:+nan():0:-1: ++# BZ30647 %*2lf:+nan():0:-1: ++# BZ30647 %2lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2lf:+nan(09A_Zaz):0:-1: + %2lf:+0:1:2:0x0: + %*2lf:+0:0:2: + %2lf:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3lf:-0.0:0:3: + %3lf:-0:1:2:-0x0: + %*3lf:-0:0:2: +-%3lf:-nan(09A_Zaz):0:-1: +-%*3lf:-nan(09A_Zaz):0:-1: +-%3lf:-nan():0:-1: +-%*3lf:-nan():0:-1: +-%3lf:nan():1:3:nan: +-%*3lf:nan():0:3: +-%3lf:nan(09A_Zaz):1:3:nan: +-%*3lf:nan(09A_Zaz):0:3: ++# BZ30647 %3lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %3lf:-nan():0:-1: ++# BZ30647 %*3lf:-nan():0:-1: ++# BZ30647 %3lf:nan():1:3:nan: ++# BZ30647 %*3lf:nan():0:3: ++# BZ30647 %3lf:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3lf:nan(09A_Zaz):0:3: + %3lf:0:1:1:0x0: + %*3lf:0:0:1: + %3lf:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: + %3lf:infinity:1:3:inf: + %*3lf:infinity:0:3: +-%3lf:+nan():0:-1: +-%*3lf:+nan():0:-1: +-%3lf:+nan(09A_Zaz):0:-1: +-%*3lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %3lf:+nan():0:-1: ++# BZ30647 %*3lf:+nan():0:-1: ++# BZ30647 %3lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3lf:+nan(09A_Zaz):0:-1: + %3lf:+0:1:2:0x0: + %*3lf:+0:0:2: + %3lf:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4lf:-0.0:0:4: + %4lf:-0:1:2:-0x0: + %*4lf:-0:0:2: +-%4lf:-nan(09A_Zaz):1:4:-nan: +-%*4lf:-nan(09A_Zaz):0:4: +-%4lf:-nan():1:4:-nan: +-%*4lf:-nan():0:4: +-%4lf:nan():0:-1: +-%*4lf:nan():0:-1: +-%4lf:nan(09A_Zaz):0:-1: +-%*4lf:nan(09A_Zaz):0:-1: ++# BZ30647 %4lf:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lf:-nan(09A_Zaz):0:4: ++# BZ30647 %4lf:-nan():1:4:-nan: ++# BZ30647 %*4lf:-nan():0:4: ++# BZ30647 %4lf:nan():0:-1: ++# BZ30647 %*4lf:nan():0:-1: ++# BZ30647 %4lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*4lf:nan(09A_Zaz):0:-1: + %4lf:0:1:1:0x0: + %*4lf:0:0:1: + %4lf:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %4lf:infinity:0:-1: + %*4lf:infinity:0:-1: +-%4lf:+nan():1:4:nan: +-%*4lf:+nan():0:4: +-%4lf:+nan(09A_Zaz):1:4:nan: +-%*4lf:+nan(09A_Zaz):0:4: ++# BZ30647 %4lf:+nan():1:4:nan: ++# BZ30647 %*4lf:+nan():0:4: ++# BZ30647 %4lf:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4lf:+nan(09A_Zaz):0:4: + %4lf:+0:1:2:0x0: + %*4lf:+0:0:2: + %4lf:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*311lf:-0.0:0:4: + %311lf:-0:1:2:-0x0: + %*311lf:-0:0:2: +-%311lf:-nan(09A_Zaz):1:13:-nan: +-%*311lf:-nan(09A_Zaz):0:13: +-%311lf:-nan():1:6:-nan: +-%*311lf:-nan():0:6: +-%311lf:nan():1:5:nan: +-%*311lf:nan():0:5: +-%311lf:nan(09A_Zaz):1:12:nan: +-%*311lf:nan(09A_Zaz):0:12: ++# BZ30647 %311lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*311lf:-nan(09A_Zaz):0:13: ++# BZ30647 %311lf:-nan():1:6:-nan: ++# BZ30647 %*311lf:-nan():0:6: ++# BZ30647 %311lf:nan():1:5:nan: ++# BZ30647 %*311lf:nan():0:5: ++# BZ30647 %311lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*311lf:nan(09A_Zaz):0:12: + %311lf:0:1:1:0x0: + %*311lf:0:0:1: + %311lf:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*311lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: + %311lf:infinity:1:8:inf: + %*311lf:infinity:0:8: +-%311lf:+nan():1:6:nan: +-%*311lf:+nan():0:6: +-%311lf:+nan(09A_Zaz):1:13:nan: +-%*311lf:+nan(09A_Zaz):0:13: ++# BZ30647 %311lf:+nan():1:6:nan: ++# BZ30647 %*311lf:+nan():0:6: ++# BZ30647 %311lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*311lf:+nan(09A_Zaz):0:13: + %311lf:+0:1:2:0x0: + %*311lf:+0:0:2: + %311lf:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*350lf:-0.0:0:4: + %350lf:-0:1:2:-0x0: + %*350lf:-0:0:2: +-%350lf:-nan(09A_Zaz):1:13:-nan: +-%*350lf:-nan(09A_Zaz):0:13: +-%350lf:-nan():1:6:-nan: +-%*350lf:-nan():0:6: +-%350lf:nan():1:5:nan: +-%*350lf:nan():0:5: +-%350lf:nan(09A_Zaz):1:12:nan: +-%*350lf:nan(09A_Zaz):0:12: ++# BZ30647 %350lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*350lf:-nan(09A_Zaz):0:13: ++# BZ30647 %350lf:-nan():1:6:-nan: ++# BZ30647 %*350lf:-nan():0:6: ++# BZ30647 %350lf:nan():1:5:nan: ++# BZ30647 %*350lf:nan():0:5: ++# BZ30647 %350lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*350lf:nan(09A_Zaz):0:12: + %350lf:0:1:1:0x0: + %*350lf:0:0:1: + %350lf:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*350lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %350lf:infinity:1:8:inf: + %*350lf:infinity:0:8: +-%350lf:+nan():1:6:nan: +-%*350lf:+nan():0:6: +-%350lf:+nan(09A_Zaz):1:13:nan: +-%*350lf:+nan(09A_Zaz):0:13: ++# BZ30647 %350lf:+nan():1:6:nan: ++# BZ30647 %*350lf:+nan():0:6: ++# BZ30647 %350lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*350lf:+nan(09A_Zaz):0:13: + %350lf:+0:1:2:0x0: + %*350lf:+0:0:2: + %350lf:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3lf: -0.0:0:4: + %3lf: -0:1:3:-0x0: + %*3lf: -0:0:3: +-%3lf: -nan(09A_Zaz):0:-1: +-%*3lf: -nan(09A_Zaz):0:-1: +-%3lf: -nan():0:-1: +-%*3lf: -nan():0:-1: +-%3lf: nan():1:4:nan: +-%*3lf: nan():0:4: +-%3lf: nan(09A_Zaz):1:4:nan: +-%*3lf: nan(09A_Zaz):0:4: ++# BZ30647 %3lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %3lf: -nan():0:-1: ++# BZ30647 %*3lf: -nan():0:-1: ++# BZ30647 %3lf: nan():1:4:nan: ++# BZ30647 %*3lf: nan():0:4: ++# BZ30647 %3lf: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3lf: nan(09A_Zaz):0:4: + %3lf: 0:1:2:0x0: + %*3lf: 0:0:2: + %3lf: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %3lf: infinity:1:4:inf: + %*3lf: infinity:0:4: +-%3lf: +nan():0:-1: +-%*3lf: +nan():0:-1: +-%3lf: +nan(09A_Zaz):0:-1: +-%*3lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %3lf: +nan():0:-1: ++# BZ30647 %*3lf: +nan():0:-1: ++# BZ30647 %3lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3lf: +nan(09A_Zaz):0:-1: + %3lf: +0:1:3:0x0: + %*3lf: +0:0:3: + %3lf: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*350lf: -0.0:0:5: + %350lf: -0:1:3:-0x0: + %*350lf: -0:0:3: +-%350lf: -nan(09A_Zaz):1:14:-nan: +-%*350lf: -nan(09A_Zaz):0:14: +-%350lf: -nan():1:7:-nan: +-%*350lf: -nan():0:7: +-%350lf: nan():1:6:nan: +-%*350lf: nan():0:6: +-%350lf: nan(09A_Zaz):1:13:nan: +-%*350lf: nan(09A_Zaz):0:13: ++# BZ30647 %350lf: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*350lf: -nan(09A_Zaz):0:14: ++# BZ30647 %350lf: -nan():1:7:-nan: ++# BZ30647 %*350lf: -nan():0:7: ++# BZ30647 %350lf: nan():1:6:nan: ++# BZ30647 %*350lf: nan():0:6: ++# BZ30647 %350lf: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*350lf: nan(09A_Zaz):0:13: + %350lf: 0:1:2:0x0: + %*350lf: 0:0:2: + %350lf: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*350lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: + %350lf: infinity:1:9:inf: + %*350lf: infinity:0:9: +-%350lf: +nan():1:7:nan: +-%*350lf: +nan():0:7: +-%350lf: +nan(09A_Zaz):1:14:nan: +-%*350lf: +nan(09A_Zaz):0:14: ++# BZ30647 %350lf: +nan():1:7:nan: ++# BZ30647 %*350lf: +nan():0:7: ++# BZ30647 %350lf: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*350lf: +nan(09A_Zaz):0:14: + %350lf: +0:1:3:0x0: + %*350lf: +0:0:3: + %350lf: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input +index 6168884e133d78d3..ce6599fb1a108899 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input +@@ -16,14 +16,14 @@ + %*lF:-0.0:0:4: + %lF:-0:1:2:-0x0: + %*lF:-0:0:2: +-%lF:-NAN(09A_Zaz):1:13:-nan: +-%*lF:-NAN(09A_Zaz):0:13: +-%lF:-NAN():1:6:-nan: +-%*lF:-NAN():0:6: +-%lF:NAN():1:5:nan: +-%*lF:NAN():0:5: +-%lF:NAN(09A_Zaz):1:12:nan: +-%*lF:NAN(09A_Zaz):0:12: ++# BZ30647 %lF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*lF:-NAN(09A_Zaz):0:13: ++# BZ30647 %lF:-NAN():1:6:-nan: ++# BZ30647 %*lF:-NAN():0:6: ++# BZ30647 %lF:NAN():1:5:nan: ++# BZ30647 %*lF:NAN():0:5: ++# BZ30647 %lF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*lF:NAN(09A_Zaz):0:12: + %lF:0:1:1:0x0: + %*lF:0:0:1: + %lF:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %lF:INFINITY:1:8:inf: + %*lF:INFINITY:0:8: +-%lF:+NAN():1:6:nan: +-%*lF:+NAN():0:6: +-%lF:+NAN(09A_Zaz):1:13:nan: +-%*lF:+NAN(09A_Zaz):0:13: ++# BZ30647 %lF:+NAN():1:6:nan: ++# BZ30647 %*lF:+NAN():0:6: ++# BZ30647 %lF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*lF:+NAN(09A_Zaz):0:13: + %lF:+0:1:2:0x0: + %*lF:+0:0:2: + %lF:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1lF:-0.0:0:-1: + %1lF:-0:0:-1: + %*1lF:-0:0:-1: +-%1lF:-NAN(09A_Zaz):0:-1: +-%*1lF:-NAN(09A_Zaz):0:-1: +-%1lF:-NAN():0:-1: +-%*1lF:-NAN():0:-1: +-%1lF:NAN():0:-1: +-%*1lF:NAN():0:-1: +-%1lF:NAN(09A_Zaz):0:-1: +-%*1lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %1lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1lF:-NAN():0:-1: ++# BZ30647 %*1lF:-NAN():0:-1: ++# BZ30647 %1lF:NAN():0:-1: ++# BZ30647 %*1lF:NAN():0:-1: ++# BZ30647 %1lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lF:NAN(09A_Zaz):0:-1: + %1lF:0:1:1:0x0: + %*1lF:0:0:1: + %1lF:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: + %1lF:INFINITY:0:-1: + %*1lF:INFINITY:0:-1: +-%1lF:+NAN():0:-1: +-%*1lF:+NAN():0:-1: +-%1lF:+NAN(09A_Zaz):0:-1: +-%*1lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1lF:+NAN():0:-1: ++# BZ30647 %*1lF:+NAN():0:-1: ++# BZ30647 %1lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lF:+NAN(09A_Zaz):0:-1: + %1lF:+0:0:-1: + %*1lF:+0:0:-1: + %1lF:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2lF:-0.0:0:2: + %2lF:-0:1:2:-0x0: + %*2lF:-0:0:2: +-%2lF:-NAN(09A_Zaz):0:-1: +-%*2lF:-NAN(09A_Zaz):0:-1: +-%2lF:-NAN():0:-1: +-%*2lF:-NAN():0:-1: +-%2lF:NAN():0:-1: +-%*2lF:NAN():0:-1: +-%2lF:NAN(09A_Zaz):0:-1: +-%*2lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %2lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2lF:-NAN():0:-1: ++# BZ30647 %*2lF:-NAN():0:-1: ++# BZ30647 %2lF:NAN():0:-1: ++# BZ30647 %*2lF:NAN():0:-1: ++# BZ30647 %2lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lF:NAN(09A_Zaz):0:-1: + %2lF:0:1:1:0x0: + %*2lF:0:0:1: + %2lF:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: + %2lF:INFINITY:0:-1: + %*2lF:INFINITY:0:-1: +-%2lF:+NAN():0:-1: +-%*2lF:+NAN():0:-1: +-%2lF:+NAN(09A_Zaz):0:-1: +-%*2lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2lF:+NAN():0:-1: ++# BZ30647 %*2lF:+NAN():0:-1: ++# BZ30647 %2lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lF:+NAN(09A_Zaz):0:-1: + %2lF:+0:1:2:0x0: + %*2lF:+0:0:2: + %2lF:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3lF:-0.0:0:3: + %3lF:-0:1:2:-0x0: + %*3lF:-0:0:2: +-%3lF:-NAN(09A_Zaz):0:-1: +-%*3lF:-NAN(09A_Zaz):0:-1: +-%3lF:-NAN():0:-1: +-%*3lF:-NAN():0:-1: +-%3lF:NAN():1:3:nan: +-%*3lF:NAN():0:3: +-%3lF:NAN(09A_Zaz):1:3:nan: +-%*3lF:NAN(09A_Zaz):0:3: ++# BZ30647 %3lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3lF:-NAN():0:-1: ++# BZ30647 %*3lF:-NAN():0:-1: ++# BZ30647 %3lF:NAN():1:3:nan: ++# BZ30647 %*3lF:NAN():0:3: ++# BZ30647 %3lF:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3lF:NAN(09A_Zaz):0:3: + %3lF:0:1:1:0x0: + %*3lF:0:0:1: + %3lF:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: + %3lF:INFINITY:1:3:inf: + %*3lF:INFINITY:0:3: +-%3lF:+NAN():0:-1: +-%*3lF:+NAN():0:-1: +-%3lF:+NAN(09A_Zaz):0:-1: +-%*3lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3lF:+NAN():0:-1: ++# BZ30647 %*3lF:+NAN():0:-1: ++# BZ30647 %3lF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lF:+NAN(09A_Zaz):0:-1: + %3lF:+0:1:2:0x0: + %*3lF:+0:0:2: + %3lF:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4lF:-0.0:0:4: + %4lF:-0:1:2:-0x0: + %*4lF:-0:0:2: +-%4lF:-NAN(09A_Zaz):1:4:-nan: +-%*4lF:-NAN(09A_Zaz):0:4: +-%4lF:-NAN():1:4:-nan: +-%*4lF:-NAN():0:4: +-%4lF:NAN():0:-1: +-%*4lF:NAN():0:-1: +-%4lF:NAN(09A_Zaz):0:-1: +-%*4lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %4lF:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lF:-NAN(09A_Zaz):0:4: ++# BZ30647 %4lF:-NAN():1:4:-nan: ++# BZ30647 %*4lF:-NAN():0:4: ++# BZ30647 %4lF:NAN():0:-1: ++# BZ30647 %*4lF:NAN():0:-1: ++# BZ30647 %4lF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4lF:NAN(09A_Zaz):0:-1: + %4lF:0:1:1:0x0: + %*4lF:0:0:1: + %4lF:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %4lF:INFINITY:0:-1: + %*4lF:INFINITY:0:-1: +-%4lF:+NAN():1:4:nan: +-%*4lF:+NAN():0:4: +-%4lF:+NAN(09A_Zaz):1:4:nan: +-%*4lF:+NAN(09A_Zaz):0:4: ++# BZ30647 %4lF:+NAN():1:4:nan: ++# BZ30647 %*4lF:+NAN():0:4: ++# BZ30647 %4lF:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4lF:+NAN(09A_Zaz):0:4: + %4lF:+0:1:2:0x0: + %*4lF:+0:0:2: + %4lF:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*311lF:-0.0:0:4: + %311lF:-0:1:2:-0x0: + %*311lF:-0:0:2: +-%311lF:-NAN(09A_Zaz):1:13:-nan: +-%*311lF:-NAN(09A_Zaz):0:13: +-%311lF:-NAN():1:6:-nan: +-%*311lF:-NAN():0:6: +-%311lF:NAN():1:5:nan: +-%*311lF:NAN():0:5: +-%311lF:NAN(09A_Zaz):1:12:nan: +-%*311lF:NAN(09A_Zaz):0:12: ++# BZ30647 %311lF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*311lF:-NAN(09A_Zaz):0:13: ++# BZ30647 %311lF:-NAN():1:6:-nan: ++# BZ30647 %*311lF:-NAN():0:6: ++# BZ30647 %311lF:NAN():1:5:nan: ++# BZ30647 %*311lF:NAN():0:5: ++# BZ30647 %311lF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*311lF:NAN(09A_Zaz):0:12: + %311lF:0:1:1:0x0: + %*311lF:0:0:1: + %311lF:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*311lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: + %311lF:INFINITY:1:8:inf: + %*311lF:INFINITY:0:8: +-%311lF:+NAN():1:6:nan: +-%*311lF:+NAN():0:6: +-%311lF:+NAN(09A_Zaz):1:13:nan: +-%*311lF:+NAN(09A_Zaz):0:13: ++# BZ30647 %311lF:+NAN():1:6:nan: ++# BZ30647 %*311lF:+NAN():0:6: ++# BZ30647 %311lF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*311lF:+NAN(09A_Zaz):0:13: + %311lF:+0:1:2:0x0: + %*311lF:+0:0:2: + %311lF:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*350lF:-0.0:0:4: + %350lF:-0:1:2:-0x0: + %*350lF:-0:0:2: +-%350lF:-NAN(09A_Zaz):1:13:-nan: +-%*350lF:-NAN(09A_Zaz):0:13: +-%350lF:-NAN():1:6:-nan: +-%*350lF:-NAN():0:6: +-%350lF:NAN():1:5:nan: +-%*350lF:NAN():0:5: +-%350lF:NAN(09A_Zaz):1:12:nan: +-%*350lF:NAN(09A_Zaz):0:12: ++# BZ30647 %350lF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*350lF:-NAN(09A_Zaz):0:13: ++# BZ30647 %350lF:-NAN():1:6:-nan: ++# BZ30647 %*350lF:-NAN():0:6: ++# BZ30647 %350lF:NAN():1:5:nan: ++# BZ30647 %*350lF:NAN():0:5: ++# BZ30647 %350lF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*350lF:NAN(09A_Zaz):0:12: + %350lF:0:1:1:0x0: + %*350lF:0:0:1: + %350lF:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*350lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %350lF:INFINITY:1:8:inf: + %*350lF:INFINITY:0:8: +-%350lF:+NAN():1:6:nan: +-%*350lF:+NAN():0:6: +-%350lF:+NAN(09A_Zaz):1:13:nan: +-%*350lF:+NAN(09A_Zaz):0:13: ++# BZ30647 %350lF:+NAN():1:6:nan: ++# BZ30647 %*350lF:+NAN():0:6: ++# BZ30647 %350lF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*350lF:+NAN(09A_Zaz):0:13: + %350lF:+0:1:2:0x0: + %*350lF:+0:0:2: + %350lF:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3lF: -0.0:0:4: + %3lF: -0:1:3:-0x0: + %*3lF: -0:0:3: +-%3lF: -NAN(09A_Zaz):0:-1: +-%*3lF: -NAN(09A_Zaz):0:-1: +-%3lF: -NAN():0:-1: +-%*3lF: -NAN():0:-1: +-%3lF: NAN():1:4:nan: +-%*3lF: NAN():0:4: +-%3lF: NAN(09A_Zaz):1:4:nan: +-%*3lF: NAN(09A_Zaz):0:4: ++# BZ30647 %3lF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3lF: -NAN():0:-1: ++# BZ30647 %*3lF: -NAN():0:-1: ++# BZ30647 %3lF: NAN():1:4:nan: ++# BZ30647 %*3lF: NAN():0:4: ++# BZ30647 %3lF: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3lF: NAN(09A_Zaz):0:4: + %3lF: 0:1:2:0x0: + %*3lF: 0:0:2: + %3lF: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %3lF: INFINITY:1:4:inf: + %*3lF: INFINITY:0:4: +-%3lF: +NAN():0:-1: +-%*3lF: +NAN():0:-1: +-%3lF: +NAN(09A_Zaz):0:-1: +-%*3lF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3lF: +NAN():0:-1: ++# BZ30647 %*3lF: +NAN():0:-1: ++# BZ30647 %3lF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lF: +NAN(09A_Zaz):0:-1: + %3lF: +0:1:3:0x0: + %*3lF: +0:0:3: + %3lF: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*350lF: -0.0:0:5: + %350lF: -0:1:3:-0x0: + %*350lF: -0:0:3: +-%350lF: -NAN(09A_Zaz):1:14:-nan: +-%*350lF: -NAN(09A_Zaz):0:14: +-%350lF: -NAN():1:7:-nan: +-%*350lF: -NAN():0:7: +-%350lF: NAN():1:6:nan: +-%*350lF: NAN():0:6: +-%350lF: NAN(09A_Zaz):1:13:nan: +-%*350lF: NAN(09A_Zaz):0:13: ++# BZ30647 %350lF: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*350lF: -NAN(09A_Zaz):0:14: ++# BZ30647 %350lF: -NAN():1:7:-nan: ++# BZ30647 %*350lF: -NAN():0:7: ++# BZ30647 %350lF: NAN():1:6:nan: ++# BZ30647 %*350lF: NAN():0:6: ++# BZ30647 %350lF: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*350lF: NAN(09A_Zaz):0:13: + %350lF: 0:1:2:0x0: + %*350lF: 0:0:2: + %350lF: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*350lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: + %350lF: INFINITY:1:9:inf: + %*350lF: INFINITY:0:9: +-%350lF: +NAN():1:7:nan: +-%*350lF: +NAN():0:7: +-%350lF: +NAN(09A_Zaz):1:14:nan: +-%*350lF: +NAN(09A_Zaz):0:14: ++# BZ30647 %350lF: +NAN():1:7:nan: ++# BZ30647 %*350lF: +NAN():0:7: ++# BZ30647 %350lF: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*350lF: +NAN(09A_Zaz):0:14: + %350lF: +0:1:3:0x0: + %*350lF: +0:0:3: + %350lF: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input +index d499303451083898..cfbb71ebc4fa9558 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input +@@ -16,14 +16,14 @@ + %*lg:-0x0p+0:0:7: + %lg:-0x0p0:1:6:-0x0: + %*lg:-0x0p0:0:6: +-%lg:-nan(09A_Zaz):1:13:-nan: +-%*lg:-nan(09A_Zaz):0:13: +-%lg:-nan():1:6:-nan: +-%*lg:-nan():0:6: +-%lg:nan():1:5:nan: +-%*lg:nan():0:5: +-%lg:nan(09A_Zaz):1:12:nan: +-%*lg:nan(09A_Zaz):0:12: ++# BZ30647 %lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*lg:-nan(09A_Zaz):0:13: ++# BZ30647 %lg:-nan():1:6:-nan: ++# BZ30647 %*lg:-nan():0:6: ++# BZ30647 %lg:nan():1:5:nan: ++# BZ30647 %*lg:nan():0:5: ++# BZ30647 %lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*lg:nan(09A_Zaz):0:12: + %lg:0x0p0:1:5:0x0: + %*lg:0x0p0:0:5: + %lg:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*lg:0xf.ffffffffffff8p+1020:0:23: + %lg:infinity:1:8:inf: + %*lg:infinity:0:8: +-%lg:+nan():1:6:nan: +-%*lg:+nan():0:6: +-%lg:+nan(09A_Zaz):1:13:nan: +-%*lg:+nan(09A_Zaz):0:13: ++# BZ30647 %lg:+nan():1:6:nan: ++# BZ30647 %*lg:+nan():0:6: ++# BZ30647 %lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*lg:+nan(09A_Zaz):0:13: + %lg:+0x0p0:1:6:0x0: + %*lg:+0x0p0:0:6: + %lg:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1lg:-0x0p+0:0:-1: + %1lg:-0x0p0:0:-1: + %*1lg:-0x0p0:0:-1: +-%1lg:-nan(09A_Zaz):0:-1: +-%*1lg:-nan(09A_Zaz):0:-1: +-%1lg:-nan():0:-1: +-%*1lg:-nan():0:-1: +-%1lg:nan():0:-1: +-%*1lg:nan():0:-1: +-%1lg:nan(09A_Zaz):0:-1: +-%*1lg:nan(09A_Zaz):0:-1: ++# BZ30647 %1lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %1lg:-nan():0:-1: ++# BZ30647 %*1lg:-nan():0:-1: ++# BZ30647 %1lg:nan():0:-1: ++# BZ30647 %*1lg:nan():0:-1: ++# BZ30647 %1lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*1lg:nan(09A_Zaz):0:-1: + %1lg:0x0p0:1:1:0x0: + %*1lg:0x0p0:0:1: + %1lg:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lg:0xf.ffffffffffff8p+1020:0:1: + %1lg:infinity:0:-1: + %*1lg:infinity:0:-1: +-%1lg:+nan():0:-1: +-%*1lg:+nan():0:-1: +-%1lg:+nan(09A_Zaz):0:-1: +-%*1lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %1lg:+nan():0:-1: ++# BZ30647 %*1lg:+nan():0:-1: ++# BZ30647 %1lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1lg:+nan(09A_Zaz):0:-1: + %1lg:+0x0p0:0:-1: + %*1lg:+0x0p0:0:-1: + %1lg:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2lg:-0x0p+0:0:2: + %2lg:-0x0p0:1:2:-0x0: + %*2lg:-0x0p0:0:2: +-%2lg:-nan(09A_Zaz):0:-1: +-%*2lg:-nan(09A_Zaz):0:-1: +-%2lg:-nan():0:-1: +-%*2lg:-nan():0:-1: +-%2lg:nan():0:-1: +-%*2lg:nan():0:-1: +-%2lg:nan(09A_Zaz):0:-1: +-%*2lg:nan(09A_Zaz):0:-1: ++# BZ30647 %2lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %2lg:-nan():0:-1: ++# BZ30647 %*2lg:-nan():0:-1: ++# BZ30647 %2lg:nan():0:-1: ++# BZ30647 %*2lg:nan():0:-1: ++# BZ30647 %2lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*2lg:nan(09A_Zaz):0:-1: + # BZ12701 %2lg:0x0p0:0:-1: + # BZ12701 %*2lg:0x0p0:0:-1: + # BZ12701 %2lg:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2lg:0xf.ffffffffffff8p+1020:0:-1: + %2lg:infinity:0:-1: + %*2lg:infinity:0:-1: +-%2lg:+nan():0:-1: +-%*2lg:+nan():0:-1: +-%2lg:+nan(09A_Zaz):0:-1: +-%*2lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %2lg:+nan():0:-1: ++# BZ30647 %*2lg:+nan():0:-1: ++# BZ30647 %2lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2lg:+nan(09A_Zaz):0:-1: + %2lg:+0x0p0:1:2:0x0: + %*2lg:+0x0p0:0:2: + %2lg:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3lg:-0x0p+0:0:-1: + # BZ12701 %3lg:-0x0p0:0:-1: + # BZ12701 %*3lg:-0x0p0:0:-1: +-%3lg:-nan(09A_Zaz):0:-1: +-%*3lg:-nan(09A_Zaz):0:-1: +-%3lg:-nan():0:-1: +-%*3lg:-nan():0:-1: +-%3lg:nan():1:3:nan: +-%*3lg:nan():0:3: +-%3lg:nan(09A_Zaz):1:3:nan: +-%*3lg:nan(09A_Zaz):0:3: ++# BZ30647 %3lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %3lg:-nan():0:-1: ++# BZ30647 %*3lg:-nan():0:-1: ++# BZ30647 %3lg:nan():1:3:nan: ++# BZ30647 %*3lg:nan():0:3: ++# BZ30647 %3lg:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3lg:nan(09A_Zaz):0:3: + %3lg:0x0p0:1:3:0x0: + %*3lg:0x0p0:0:3: + %3lg:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3lg:0xf.ffffffffffff8p+1020:0:3: + %3lg:infinity:1:3:inf: + %*3lg:infinity:0:3: +-%3lg:+nan():0:-1: +-%*3lg:+nan():0:-1: +-%3lg:+nan(09A_Zaz):0:-1: +-%*3lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %3lg:+nan():0:-1: ++# BZ30647 %*3lg:+nan():0:-1: ++# BZ30647 %3lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3lg:+nan(09A_Zaz):0:-1: + # BZ12701 %3lg:+0x0p0:0:-1: + # BZ12701 %*3lg:+0x0p0:0:-1: + # BZ12701 %3lg:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4lg:-0x0p+0:0:4: + %4lg:-0x0p0:1:4:-0x0: + %*4lg:-0x0p0:0:4: +-%4lg:-nan(09A_Zaz):1:4:-nan: +-%*4lg:-nan(09A_Zaz):0:4: +-%4lg:-nan():1:4:-nan: +-%*4lg:-nan():0:4: +-%4lg:nan():0:-1: +-%*4lg:nan():0:-1: +-%4lg:nan(09A_Zaz):0:-1: +-%*4lg:nan(09A_Zaz):0:-1: ++# BZ30647 %4lg:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lg:-nan(09A_Zaz):0:4: ++# BZ30647 %4lg:-nan():1:4:-nan: ++# BZ30647 %*4lg:-nan():0:4: ++# BZ30647 %4lg:nan():0:-1: ++# BZ30647 %*4lg:nan():0:-1: ++# BZ30647 %4lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*4lg:nan(09A_Zaz):0:-1: + # BZ12701 %4lg:0x0p0:0:-1: + # BZ12701 %*4lg:0x0p0:0:-1: + # BZ12701 %4lg:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4lg:0xf.ffffffffffff8p+1020:0:4: + %4lg:infinity:0:-1: + %*4lg:infinity:0:-1: +-%4lg:+nan():1:4:nan: +-%*4lg:+nan():0:4: +-%4lg:+nan(09A_Zaz):1:4:nan: +-%*4lg:+nan(09A_Zaz):0:4: ++# BZ30647 %4lg:+nan():1:4:nan: ++# BZ30647 %*4lg:+nan():0:4: ++# BZ30647 %4lg:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4lg:+nan(09A_Zaz):0:4: + %4lg:+0x0p0:1:4:0x0: + %*4lg:+0x0p0:0:4: + %4lg:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5lg:-0x0p+0:0:-1: + # BZ12701 %5lg:-0x0p0:0:-1: + # BZ12701 %*5lg:-0x0p0:0:-1: +-%5lg:-nan(09A_Zaz):0:-1: +-%*5lg:-nan(09A_Zaz):0:-1: +-%5lg:-nan():0:-1: +-%*5lg:-nan():0:-1: +-%5lg:nan():1:5:nan: +-%*5lg:nan():0:5: +-%5lg:nan(09A_Zaz):0:-1: +-%*5lg:nan(09A_Zaz):0:-1: ++# BZ30647 %5lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %5lg:-nan():0:-1: ++# BZ30647 %*5lg:-nan():0:-1: ++# BZ30647 %5lg:nan():1:5:nan: ++# BZ30647 %*5lg:nan():0:5: ++# BZ30647 %5lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg:nan(09A_Zaz):0:-1: + %5lg:0x0p0:1:5:0x0: + %*5lg:0x0p0:0:5: + # BZ12701 %5lg:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5lg:0xf.ffffffffffff8p+1020:0:5: + %5lg:infinity:0:-1: + %*5lg:infinity:0:-1: +-%5lg:+nan():0:-1: +-%*5lg:+nan():0:-1: +-%5lg:+nan(09A_Zaz):0:-1: +-%*5lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %5lg:+nan():0:-1: ++# BZ30647 %*5lg:+nan():0:-1: ++# BZ30647 %5lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg:+nan(09A_Zaz):0:-1: + # BZ12701 %5lg:+0x0p0:0:-1: + # BZ12701 %*5lg:+0x0p0:0:-1: + # BZ12701 %5lg:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6lg:-0x0p+0:0:-1: + %6lg:-0x0p0:1:6:-0x0: + %*6lg:-0x0p0:0:6: +-%6lg:-nan(09A_Zaz):0:-1: +-%*6lg:-nan(09A_Zaz):0:-1: +-%6lg:-nan():1:6:-nan: +-%*6lg:-nan():0:6: +-%6lg:nan():1:5:nan: +-%*6lg:nan():0:5: +-%6lg:nan(09A_Zaz):0:-1: +-%*6lg:nan(09A_Zaz):0:-1: ++# BZ30647 %6lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %6lg:-nan():1:6:-nan: ++# BZ30647 %*6lg:-nan():0:6: ++# BZ30647 %6lg:nan():1:5:nan: ++# BZ30647 %*6lg:nan():0:5: ++# BZ30647 %6lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*6lg:nan(09A_Zaz):0:-1: + %6lg:0x0p0:1:5:0x0: + %*6lg:0x0p0:0:5: + %6lg:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6lg:0xf.ffffffffffff8p+1020:0:6: + %6lg:infinity:0:-1: + %*6lg:infinity:0:-1: +-%6lg:+nan():1:6:nan: +-%*6lg:+nan():0:6: +-%6lg:+nan(09A_Zaz):0:-1: +-%*6lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %6lg:+nan():1:6:nan: ++# BZ30647 %*6lg:+nan():0:6: ++# BZ30647 %6lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6lg:+nan(09A_Zaz):0:-1: + %6lg:+0x0p0:1:6:0x0: + %*6lg:+0x0p0:0:6: + # BZ12701 %6lg:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*20lg:-0x0p+0:0:7: + %20lg:-0x0p0:1:6:-0x0: + %*20lg:-0x0p0:0:6: +-%20lg:-nan(09A_Zaz):1:13:-nan: +-%*20lg:-nan(09A_Zaz):0:13: +-%20lg:-nan():1:6:-nan: +-%*20lg:-nan():0:6: +-%20lg:nan():1:5:nan: +-%*20lg:nan():0:5: +-%20lg:nan(09A_Zaz):1:12:nan: +-%*20lg:nan(09A_Zaz):0:12: ++# BZ30647 %20lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*20lg:-nan(09A_Zaz):0:13: ++# BZ30647 %20lg:-nan():1:6:-nan: ++# BZ30647 %*20lg:-nan():0:6: ++# BZ30647 %20lg:nan():1:5:nan: ++# BZ30647 %*20lg:nan():0:5: ++# BZ30647 %20lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*20lg:nan(09A_Zaz):0:12: + %20lg:0x0p0:1:5:0x0: + %*20lg:0x0p0:0:5: + %20lg:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20lg:0xf.ffffffffffff8p+1020:0:20: + %20lg:infinity:1:8:inf: + %*20lg:infinity:0:8: +-%20lg:+nan():1:6:nan: +-%*20lg:+nan():0:6: +-%20lg:+nan(09A_Zaz):1:13:nan: +-%*20lg:+nan(09A_Zaz):0:13: ++# BZ30647 %20lg:+nan():1:6:nan: ++# BZ30647 %*20lg:+nan():0:6: ++# BZ30647 %20lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*20lg:+nan(09A_Zaz):0:13: + %20lg:+0x0p0:1:6:0x0: + %*20lg:+0x0p0:0:6: + %20lg:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32lg:-0x0p+0:0:7: + %32lg:-0x0p0:1:6:-0x0: + %*32lg:-0x0p0:0:6: +-%32lg:-nan(09A_Zaz):1:13:-nan: +-%*32lg:-nan(09A_Zaz):0:13: +-%32lg:-nan():1:6:-nan: +-%*32lg:-nan():0:6: +-%32lg:nan():1:5:nan: +-%*32lg:nan():0:5: +-%32lg:nan(09A_Zaz):1:12:nan: +-%*32lg:nan(09A_Zaz):0:12: ++# BZ30647 %32lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*32lg:-nan(09A_Zaz):0:13: ++# BZ30647 %32lg:-nan():1:6:-nan: ++# BZ30647 %*32lg:-nan():0:6: ++# BZ30647 %32lg:nan():1:5:nan: ++# BZ30647 %*32lg:nan():0:5: ++# BZ30647 %32lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*32lg:nan(09A_Zaz):0:12: + %32lg:0x0p0:1:5:0x0: + %*32lg:0x0p0:0:5: + %32lg:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32lg:0xf.ffffffffffff8p+1020:0:23: + %32lg:infinity:1:8:inf: + %*32lg:infinity:0:8: +-%32lg:+nan():1:6:nan: +-%*32lg:+nan():0:6: +-%32lg:+nan(09A_Zaz):1:13:nan: +-%*32lg:+nan(09A_Zaz):0:13: ++# BZ30647 %32lg:+nan():1:6:nan: ++# BZ30647 %*32lg:+nan():0:6: ++# BZ30647 %32lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32lg:+nan(09A_Zaz):0:13: + %32lg:+0x0p0:1:6:0x0: + %*32lg:+0x0p0:0:6: + %32lg:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5lg: -0x0p+0:0:-1: + # BZ12701 %5lg: -0x0p0:0:-1: + # BZ12701 %*5lg: -0x0p0:0:-1: +-%5lg: -nan(09A_Zaz):0:-1: +-%*5lg: -nan(09A_Zaz):0:-1: +-%5lg: -nan():0:-1: +-%*5lg: -nan():0:-1: +-%5lg: nan():1:6:nan: +-%*5lg: nan():0:6: +-%5lg: nan(09A_Zaz):0:-1: +-%*5lg: nan(09A_Zaz):0:-1: ++# BZ30647 %5lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %5lg: -nan():0:-1: ++# BZ30647 %*5lg: -nan():0:-1: ++# BZ30647 %5lg: nan():1:6:nan: ++# BZ30647 %*5lg: nan():0:6: ++# BZ30647 %5lg: nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg: nan(09A_Zaz):0:-1: + %5lg: 0x0p0:1:6:0x0: + %*5lg: 0x0p0:0:6: + # BZ12701 %5lg: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5lg: 0xf.ffffffffffff8p+1020:0:6: + %5lg: infinity:0:-1: + %*5lg: infinity:0:-1: +-%5lg: +nan():0:-1: +-%*5lg: +nan():0:-1: +-%5lg: +nan(09A_Zaz):0:-1: +-%*5lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %5lg: +nan():0:-1: ++# BZ30647 %*5lg: +nan():0:-1: ++# BZ30647 %5lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5lg: +nan(09A_Zaz):0:-1: + # BZ12701 %5lg: +0x0p0:0:-1: + # BZ12701 %*5lg: +0x0p0:0:-1: + # BZ12701 %5lg: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*32lg: -0x0p+0:0:8: + %32lg: -0x0p0:1:7:-0x0: + %*32lg: -0x0p0:0:7: +-%32lg: -nan(09A_Zaz):1:14:-nan: +-%*32lg: -nan(09A_Zaz):0:14: +-%32lg: -nan():1:7:-nan: +-%*32lg: -nan():0:7: +-%32lg: nan():1:6:nan: +-%*32lg: nan():0:6: +-%32lg: nan(09A_Zaz):1:13:nan: +-%*32lg: nan(09A_Zaz):0:13: ++# BZ30647 %32lg: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*32lg: -nan(09A_Zaz):0:14: ++# BZ30647 %32lg: -nan():1:7:-nan: ++# BZ30647 %*32lg: -nan():0:7: ++# BZ30647 %32lg: nan():1:6:nan: ++# BZ30647 %*32lg: nan():0:6: ++# BZ30647 %32lg: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32lg: nan(09A_Zaz):0:13: + %32lg: 0x0p0:1:6:0x0: + %*32lg: 0x0p0:0:6: + %32lg: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32lg: 0xf.ffffffffffff8p+1020:0:24: + %32lg: infinity:1:9:inf: + %*32lg: infinity:0:9: +-%32lg: +nan():1:7:nan: +-%*32lg: +nan():0:7: +-%32lg: +nan(09A_Zaz):1:14:nan: +-%*32lg: +nan(09A_Zaz):0:14: ++# BZ30647 %32lg: +nan():1:7:nan: ++# BZ30647 %*32lg: +nan():0:7: ++# BZ30647 %32lg: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*32lg: +nan(09A_Zaz):0:14: + %32lg: +0x0p0:1:7:0x0: + %*32lg: +0x0p0:0:7: + %32lg: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input +index eb8bb9f48ebddc7c..04255525e87c3aa3 100644 +--- a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input +@@ -16,14 +16,14 @@ + %*lG:-0X0P+0:0:7: + %lG:-0X0P0:1:6:-0x0: + %*lG:-0X0P0:0:6: +-%lG:-NAN(09A_Zaz):1:13:-nan: +-%*lG:-NAN(09A_Zaz):0:13: +-%lG:-NAN():1:6:-nan: +-%*lG:-NAN():0:6: +-%lG:NAN():1:5:nan: +-%*lG:NAN():0:5: +-%lG:NAN(09A_Zaz):1:12:nan: +-%*lG:NAN(09A_Zaz):0:12: ++# BZ30647 %lG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*lG:-NAN(09A_Zaz):0:13: ++# BZ30647 %lG:-NAN():1:6:-nan: ++# BZ30647 %*lG:-NAN():0:6: ++# BZ30647 %lG:NAN():1:5:nan: ++# BZ30647 %*lG:NAN():0:5: ++# BZ30647 %lG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*lG:NAN(09A_Zaz):0:12: + %lG:0X0P0:1:5:0x0: + %*lG:0X0P0:0:5: + %lG:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*lG:0XF.FFFFFFFFFFFF8P+1020:0:23: + %lG:INFINITY:1:8:inf: + %*lG:INFINITY:0:8: +-%lG:+NAN():1:6:nan: +-%*lG:+NAN():0:6: +-%lG:+NAN(09A_Zaz):1:13:nan: +-%*lG:+NAN(09A_Zaz):0:13: ++# BZ30647 %lG:+NAN():1:6:nan: ++# BZ30647 %*lG:+NAN():0:6: ++# BZ30647 %lG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*lG:+NAN(09A_Zaz):0:13: + %lG:+0X0P0:1:6:0x0: + %*lG:+0X0P0:0:6: + %lG:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1lG:-0X0P+0:0:-1: + %1lG:-0X0P0:0:-1: + %*1lG:-0X0P0:0:-1: +-%1lG:-NAN(09A_Zaz):0:-1: +-%*1lG:-NAN(09A_Zaz):0:-1: +-%1lG:-NAN():0:-1: +-%*1lG:-NAN():0:-1: +-%1lG:NAN():0:-1: +-%*1lG:NAN():0:-1: +-%1lG:NAN(09A_Zaz):0:-1: +-%*1lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %1lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1lG:-NAN():0:-1: ++# BZ30647 %*1lG:-NAN():0:-1: ++# BZ30647 %1lG:NAN():0:-1: ++# BZ30647 %*1lG:NAN():0:-1: ++# BZ30647 %1lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lG:NAN(09A_Zaz):0:-1: + %1lG:0X0P0:1:1:0x0: + %*1lG:0X0P0:0:1: + %1lG:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1lG:0XF.FFFFFFFFFFFF8P+1020:0:1: + %1lG:INFINITY:0:-1: + %*1lG:INFINITY:0:-1: +-%1lG:+NAN():0:-1: +-%*1lG:+NAN():0:-1: +-%1lG:+NAN(09A_Zaz):0:-1: +-%*1lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1lG:+NAN():0:-1: ++# BZ30647 %*1lG:+NAN():0:-1: ++# BZ30647 %1lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1lG:+NAN(09A_Zaz):0:-1: + %1lG:+0X0P0:0:-1: + %*1lG:+0X0P0:0:-1: + %1lG:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2lG:-0X0P+0:0:2: + %2lG:-0X0P0:1:2:-0x0: + %*2lG:-0X0P0:0:2: +-%2lG:-NAN(09A_Zaz):0:-1: +-%*2lG:-NAN(09A_Zaz):0:-1: +-%2lG:-NAN():0:-1: +-%*2lG:-NAN():0:-1: +-%2lG:NAN():0:-1: +-%*2lG:NAN():0:-1: +-%2lG:NAN(09A_Zaz):0:-1: +-%*2lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %2lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2lG:-NAN():0:-1: ++# BZ30647 %*2lG:-NAN():0:-1: ++# BZ30647 %2lG:NAN():0:-1: ++# BZ30647 %*2lG:NAN():0:-1: ++# BZ30647 %2lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lG:NAN(09A_Zaz):0:-1: + # BZ12701 %2lG:0X0P0:0:-1: + # BZ12701 %*2lG:0X0P0:0:-1: + # BZ12701 %2lG:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2lG:0XF.FFFFFFFFFFFF8P+1020:0:-1: + %2lG:INFINITY:0:-1: + %*2lG:INFINITY:0:-1: +-%2lG:+NAN():0:-1: +-%*2lG:+NAN():0:-1: +-%2lG:+NAN(09A_Zaz):0:-1: +-%*2lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2lG:+NAN():0:-1: ++# BZ30647 %*2lG:+NAN():0:-1: ++# BZ30647 %2lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2lG:+NAN(09A_Zaz):0:-1: + %2lG:+0X0P0:1:2:0x0: + %*2lG:+0X0P0:0:2: + %2lG:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3lG:-0X0P+0:0:-1: + # BZ12701 %3lG:-0X0P0:0:-1: + # BZ12701 %*3lG:-0X0P0:0:-1: +-%3lG:-NAN(09A_Zaz):0:-1: +-%*3lG:-NAN(09A_Zaz):0:-1: +-%3lG:-NAN():0:-1: +-%*3lG:-NAN():0:-1: +-%3lG:NAN():1:3:nan: +-%*3lG:NAN():0:3: +-%3lG:NAN(09A_Zaz):1:3:nan: +-%*3lG:NAN(09A_Zaz):0:3: ++# BZ30647 %3lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3lG:-NAN():0:-1: ++# BZ30647 %*3lG:-NAN():0:-1: ++# BZ30647 %3lG:NAN():1:3:nan: ++# BZ30647 %*3lG:NAN():0:3: ++# BZ30647 %3lG:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3lG:NAN(09A_Zaz):0:3: + %3lG:0X0P0:1:3:0x0: + %*3lG:0X0P0:0:3: + %3lG:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3lG:0XF.FFFFFFFFFFFF8P+1020:0:3: + %3lG:INFINITY:1:3:inf: + %*3lG:INFINITY:0:3: +-%3lG:+NAN():0:-1: +-%*3lG:+NAN():0:-1: +-%3lG:+NAN(09A_Zaz):0:-1: +-%*3lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3lG:+NAN():0:-1: ++# BZ30647 %*3lG:+NAN():0:-1: ++# BZ30647 %3lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3lG:+NAN(09A_Zaz):0:-1: + # BZ12701 %3lG:+0X0P0:0:-1: + # BZ12701 %*3lG:+0X0P0:0:-1: + # BZ12701 %3lG:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4lG:-0X0P+0:0:4: + %4lG:-0X0P0:1:4:-0x0: + %*4lG:-0X0P0:0:4: +-%4lG:-NAN(09A_Zaz):1:4:-nan: +-%*4lG:-NAN(09A_Zaz):0:4: +-%4lG:-NAN():1:4:-nan: +-%*4lG:-NAN():0:4: +-%4lG:NAN():0:-1: +-%*4lG:NAN():0:-1: +-%4lG:NAN(09A_Zaz):0:-1: +-%*4lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %4lG:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4lG:-NAN(09A_Zaz):0:4: ++# BZ30647 %4lG:-NAN():1:4:-nan: ++# BZ30647 %*4lG:-NAN():0:4: ++# BZ30647 %4lG:NAN():0:-1: ++# BZ30647 %*4lG:NAN():0:-1: ++# BZ30647 %4lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4lG:NAN(09A_Zaz):0:-1: + # BZ12701 %4lG:0X0P0:0:-1: + # BZ12701 %*4lG:0X0P0:0:-1: + # BZ12701 %4lG:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4lG:0XF.FFFFFFFFFFFF8P+1020:0:4: + %4lG:INFINITY:0:-1: + %*4lG:INFINITY:0:-1: +-%4lG:+NAN():1:4:nan: +-%*4lG:+NAN():0:4: +-%4lG:+NAN(09A_Zaz):1:4:nan: +-%*4lG:+NAN(09A_Zaz):0:4: ++# BZ30647 %4lG:+NAN():1:4:nan: ++# BZ30647 %*4lG:+NAN():0:4: ++# BZ30647 %4lG:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4lG:+NAN(09A_Zaz):0:4: + %4lG:+0X0P0:1:4:0x0: + %*4lG:+0X0P0:0:4: + %4lG:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5lG:-0X0P+0:0:-1: + # BZ12701 %5lG:-0X0P0:0:-1: + # BZ12701 %*5lG:-0X0P0:0:-1: +-%5lG:-NAN(09A_Zaz):0:-1: +-%*5lG:-NAN(09A_Zaz):0:-1: +-%5lG:-NAN():0:-1: +-%*5lG:-NAN():0:-1: +-%5lG:NAN():1:5:nan: +-%*5lG:NAN():0:5: +-%5lG:NAN(09A_Zaz):0:-1: +-%*5lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG:-NAN():0:-1: ++# BZ30647 %*5lG:-NAN():0:-1: ++# BZ30647 %5lG:NAN():1:5:nan: ++# BZ30647 %*5lG:NAN():0:5: ++# BZ30647 %5lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG:NAN(09A_Zaz):0:-1: + %5lG:0X0P0:1:5:0x0: + %*5lG:0X0P0:0:5: + # BZ12701 %5lG:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5lG:0XF.FFFFFFFFFFFF8P+1020:0:5: + %5lG:INFINITY:0:-1: + %*5lG:INFINITY:0:-1: +-%5lG:+NAN():0:-1: +-%*5lG:+NAN():0:-1: +-%5lG:+NAN(09A_Zaz):0:-1: +-%*5lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG:+NAN():0:-1: ++# BZ30647 %*5lG:+NAN():0:-1: ++# BZ30647 %5lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG:+NAN(09A_Zaz):0:-1: + # BZ12701 %5lG:+0X0P0:0:-1: + # BZ12701 %*5lG:+0X0P0:0:-1: + # BZ12701 %5lG:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6lG:-0X0P+0:0:-1: + %6lG:-0X0P0:1:6:-0x0: + %*6lG:-0X0P0:0:6: +-%6lG:-NAN(09A_Zaz):0:-1: +-%*6lG:-NAN(09A_Zaz):0:-1: +-%6lG:-NAN():1:6:-nan: +-%*6lG:-NAN():0:6: +-%6lG:NAN():1:5:nan: +-%*6lG:NAN():0:5: +-%6lG:NAN(09A_Zaz):0:-1: +-%*6lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %6lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6lG:-NAN():1:6:-nan: ++# BZ30647 %*6lG:-NAN():0:6: ++# BZ30647 %6lG:NAN():1:5:nan: ++# BZ30647 %*6lG:NAN():0:5: ++# BZ30647 %6lG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lG:NAN(09A_Zaz):0:-1: + %6lG:0X0P0:1:5:0x0: + %*6lG:0X0P0:0:5: + %6lG:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6lG:0XF.FFFFFFFFFFFF8P+1020:0:6: + %6lG:INFINITY:0:-1: + %*6lG:INFINITY:0:-1: +-%6lG:+NAN():1:6:nan: +-%*6lG:+NAN():0:6: +-%6lG:+NAN(09A_Zaz):0:-1: +-%*6lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6lG:+NAN():1:6:nan: ++# BZ30647 %*6lG:+NAN():0:6: ++# BZ30647 %6lG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6lG:+NAN(09A_Zaz):0:-1: + %6lG:+0X0P0:1:6:0x0: + %*6lG:+0X0P0:0:6: + # BZ12701 %6lG:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*20lG:-0X0P+0:0:7: + %20lG:-0X0P0:1:6:-0x0: + %*20lG:-0X0P0:0:6: +-%20lG:-NAN(09A_Zaz):1:13:-nan: +-%*20lG:-NAN(09A_Zaz):0:13: +-%20lG:-NAN():1:6:-nan: +-%*20lG:-NAN():0:6: +-%20lG:NAN():1:5:nan: +-%*20lG:NAN():0:5: +-%20lG:NAN(09A_Zaz):1:12:nan: +-%*20lG:NAN(09A_Zaz):0:12: ++# BZ30647 %20lG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*20lG:-NAN(09A_Zaz):0:13: ++# BZ30647 %20lG:-NAN():1:6:-nan: ++# BZ30647 %*20lG:-NAN():0:6: ++# BZ30647 %20lG:NAN():1:5:nan: ++# BZ30647 %*20lG:NAN():0:5: ++# BZ30647 %20lG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*20lG:NAN(09A_Zaz):0:12: + %20lG:0X0P0:1:5:0x0: + %*20lG:0X0P0:0:5: + %20lG:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20lG:0XF.FFFFFFFFFFFF8P+1020:0:20: + %20lG:INFINITY:1:8:inf: + %*20lG:INFINITY:0:8: +-%20lG:+NAN():1:6:nan: +-%*20lG:+NAN():0:6: +-%20lG:+NAN(09A_Zaz):1:13:nan: +-%*20lG:+NAN(09A_Zaz):0:13: ++# BZ30647 %20lG:+NAN():1:6:nan: ++# BZ30647 %*20lG:+NAN():0:6: ++# BZ30647 %20lG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*20lG:+NAN(09A_Zaz):0:13: + %20lG:+0X0P0:1:6:0x0: + %*20lG:+0X0P0:0:6: + %20lG:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32lG:-0X0P+0:0:7: + %32lG:-0X0P0:1:6:-0x0: + %*32lG:-0X0P0:0:6: +-%32lG:-NAN(09A_Zaz):1:13:-nan: +-%*32lG:-NAN(09A_Zaz):0:13: +-%32lG:-NAN():1:6:-nan: +-%*32lG:-NAN():0:6: +-%32lG:NAN():1:5:nan: +-%*32lG:NAN():0:5: +-%32lG:NAN(09A_Zaz):1:12:nan: +-%*32lG:NAN(09A_Zaz):0:12: ++# BZ30647 %32lG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*32lG:-NAN(09A_Zaz):0:13: ++# BZ30647 %32lG:-NAN():1:6:-nan: ++# BZ30647 %*32lG:-NAN():0:6: ++# BZ30647 %32lG:NAN():1:5:nan: ++# BZ30647 %*32lG:NAN():0:5: ++# BZ30647 %32lG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*32lG:NAN(09A_Zaz):0:12: + %32lG:0X0P0:1:5:0x0: + %*32lG:0X0P0:0:5: + %32lG:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32lG:0XF.FFFFFFFFFFFF8P+1020:0:23: + %32lG:INFINITY:1:8:inf: + %*32lG:INFINITY:0:8: +-%32lG:+NAN():1:6:nan: +-%*32lG:+NAN():0:6: +-%32lG:+NAN(09A_Zaz):1:13:nan: +-%*32lG:+NAN(09A_Zaz):0:13: ++# BZ30647 %32lG:+NAN():1:6:nan: ++# BZ30647 %*32lG:+NAN():0:6: ++# BZ30647 %32lG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32lG:+NAN(09A_Zaz):0:13: + %32lG:+0X0P0:1:6:0x0: + %*32lG:+0X0P0:0:6: + %32lG:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5lG: -0X0P+0:0:-1: + # BZ12701 %5lG: -0X0P0:0:-1: + # BZ12701 %*5lG: -0X0P0:0:-1: +-%5lG: -NAN(09A_Zaz):0:-1: +-%*5lG: -NAN(09A_Zaz):0:-1: +-%5lG: -NAN():0:-1: +-%*5lG: -NAN():0:-1: +-%5lG: NAN():1:6:nan: +-%*5lG: NAN():0:6: +-%5lG: NAN(09A_Zaz):0:-1: +-%*5lG: NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG: -NAN():0:-1: ++# BZ30647 %*5lG: -NAN():0:-1: ++# BZ30647 %5lG: NAN():1:6:nan: ++# BZ30647 %*5lG: NAN():0:6: ++# BZ30647 %5lG: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG: NAN(09A_Zaz):0:-1: + %5lG: 0X0P0:1:6:0x0: + %*5lG: 0X0P0:0:6: + # BZ12701 %5lG: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5lG: 0XF.FFFFFFFFFFFF8P+1020:0:6: + %5lG: INFINITY:0:-1: + %*5lG: INFINITY:0:-1: +-%5lG: +NAN():0:-1: +-%*5lG: +NAN():0:-1: +-%5lG: +NAN(09A_Zaz):0:-1: +-%*5lG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5lG: +NAN():0:-1: ++# BZ30647 %*5lG: +NAN():0:-1: ++# BZ30647 %5lG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5lG: +NAN(09A_Zaz):0:-1: + # BZ12701 %5lG: +0X0P0:0:-1: + # BZ12701 %*5lG: +0X0P0:0:-1: + # BZ12701 %5lG: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*32lG: -0X0P+0:0:8: + %32lG: -0X0P0:1:7:-0x0: + %*32lG: -0X0P0:0:7: +-%32lG: -NAN(09A_Zaz):1:14:-nan: +-%*32lG: -NAN(09A_Zaz):0:14: +-%32lG: -NAN():1:7:-nan: +-%*32lG: -NAN():0:7: +-%32lG: NAN():1:6:nan: +-%*32lG: NAN():0:6: +-%32lG: NAN(09A_Zaz):1:13:nan: +-%*32lG: NAN(09A_Zaz):0:13: ++# BZ30647 %32lG: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*32lG: -NAN(09A_Zaz):0:14: ++# BZ30647 %32lG: -NAN():1:7:-nan: ++# BZ30647 %*32lG: -NAN():0:7: ++# BZ30647 %32lG: NAN():1:6:nan: ++# BZ30647 %*32lG: NAN():0:6: ++# BZ30647 %32lG: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32lG: NAN(09A_Zaz):0:13: + %32lG: 0X0P0:1:6:0x0: + %*32lG: 0X0P0:0:6: + %32lG: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32lG: 0XF.FFFFFFFFFFFF8P+1020:0:24: + %32lG: INFINITY:1:9:inf: + %*32lG: INFINITY:0:9: +-%32lG: +NAN():1:7:nan: +-%*32lG: +NAN():0:7: +-%32lG: +NAN(09A_Zaz):1:14:nan: +-%*32lG: +NAN(09A_Zaz):0:14: ++# BZ30647 %32lG: +NAN():1:7:nan: ++# BZ30647 %*32lG: +NAN():0:7: ++# BZ30647 %32lG: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*32lG: +NAN(09A_Zaz):0:14: + %32lG: +0X0P0:1:7:0x0: + %*32lG: +0X0P0:0:7: + %32lG: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input +index 196cb734b277653e..6e32c8d4b1390ab0 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input +@@ -16,14 +16,14 @@ + %*a:-0x0p+0:0:7: + %a:-0x0p0:1:6:-0x0: + %*a:-0x0p0:0:6: +-%a:-nan(09A_Zaz):1:13:-nan: +-%*a:-nan(09A_Zaz):0:13: +-%a:-nan():1:6:-nan: +-%*a:-nan():0:6: +-%a:nan():1:5:nan: +-%*a:nan():0:5: +-%a:nan(09A_Zaz):1:12:nan: +-%*a:nan(09A_Zaz):0:12: ++# BZ30647 %a:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*a:-nan(09A_Zaz):0:13: ++# BZ30647 %a:-nan():1:6:-nan: ++# BZ30647 %*a:-nan():0:6: ++# BZ30647 %a:nan():1:5:nan: ++# BZ30647 %*a:nan():0:5: ++# BZ30647 %a:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*a:nan(09A_Zaz):0:12: + %a:0x0p0:1:5:0x0: + %*a:0x0p0:0:5: + %a:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*a:0xf.fffffp+124:0:14: + %a:infinity:1:8:inf: + %*a:infinity:0:8: +-%a:+nan():1:6:nan: +-%*a:+nan():0:6: +-%a:+nan(09A_Zaz):1:13:nan: +-%*a:+nan(09A_Zaz):0:13: ++# BZ30647 %a:+nan():1:6:nan: ++# BZ30647 %*a:+nan():0:6: ++# BZ30647 %a:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*a:+nan(09A_Zaz):0:13: + %a:+0x0p0:1:6:0x0: + %*a:+0x0p0:0:6: + %a:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1a:-0x0p+0:0:-1: + %1a:-0x0p0:0:-1: + %*1a:-0x0p0:0:-1: +-%1a:-nan(09A_Zaz):0:-1: +-%*1a:-nan(09A_Zaz):0:-1: +-%1a:-nan():0:-1: +-%*1a:-nan():0:-1: +-%1a:nan():0:-1: +-%*1a:nan():0:-1: +-%1a:nan(09A_Zaz):0:-1: +-%*1a:nan(09A_Zaz):0:-1: ++# BZ30647 %1a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1a:-nan(09A_Zaz):0:-1: ++# BZ30647 %1a:-nan():0:-1: ++# BZ30647 %*1a:-nan():0:-1: ++# BZ30647 %1a:nan():0:-1: ++# BZ30647 %*1a:nan():0:-1: ++# BZ30647 %1a:nan(09A_Zaz):0:-1: ++# BZ30647 %*1a:nan(09A_Zaz):0:-1: + %1a:0x0p0:1:1:0x0: + %*1a:0x0p0:0:1: + %1a:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1a:0xf.fffffp+124:0:1: + %1a:infinity:0:-1: + %*1a:infinity:0:-1: +-%1a:+nan():0:-1: +-%*1a:+nan():0:-1: +-%1a:+nan(09A_Zaz):0:-1: +-%*1a:+nan(09A_Zaz):0:-1: ++# BZ30647 %1a:+nan():0:-1: ++# BZ30647 %*1a:+nan():0:-1: ++# BZ30647 %1a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1a:+nan(09A_Zaz):0:-1: + %1a:+0x0p0:0:-1: + %*1a:+0x0p0:0:-1: + %1a:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2a:-0x0p+0:0:2: + %2a:-0x0p0:1:2:-0x0: + %*2a:-0x0p0:0:2: +-%2a:-nan(09A_Zaz):0:-1: +-%*2a:-nan(09A_Zaz):0:-1: +-%2a:-nan():0:-1: +-%*2a:-nan():0:-1: +-%2a:nan():0:-1: +-%*2a:nan():0:-1: +-%2a:nan(09A_Zaz):0:-1: +-%*2a:nan(09A_Zaz):0:-1: ++# BZ30647 %2a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2a:-nan(09A_Zaz):0:-1: ++# BZ30647 %2a:-nan():0:-1: ++# BZ30647 %*2a:-nan():0:-1: ++# BZ30647 %2a:nan():0:-1: ++# BZ30647 %*2a:nan():0:-1: ++# BZ30647 %2a:nan(09A_Zaz):0:-1: ++# BZ30647 %*2a:nan(09A_Zaz):0:-1: + # BZ12701 %2a:0x0p0:0:-1: + # BZ12701 %*2a:0x0p0:0:-1: + # BZ12701 %2a:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2a:0xf.fffffp+124:0:-1: + %2a:infinity:0:-1: + %*2a:infinity:0:-1: +-%2a:+nan():0:-1: +-%*2a:+nan():0:-1: +-%2a:+nan(09A_Zaz):0:-1: +-%*2a:+nan(09A_Zaz):0:-1: ++# BZ30647 %2a:+nan():0:-1: ++# BZ30647 %*2a:+nan():0:-1: ++# BZ30647 %2a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2a:+nan(09A_Zaz):0:-1: + %2a:+0x0p0:1:2:0x0: + %*2a:+0x0p0:0:2: + %2a:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3a:-0x0p+0:0:-1: + # BZ12701 %3a:-0x0p0:0:-1: + # BZ12701 %*3a:-0x0p0:0:-1: +-%3a:-nan(09A_Zaz):0:-1: +-%*3a:-nan(09A_Zaz):0:-1: +-%3a:-nan():0:-1: +-%*3a:-nan():0:-1: +-%3a:nan():1:3:nan: +-%*3a:nan():0:3: +-%3a:nan(09A_Zaz):1:3:nan: +-%*3a:nan(09A_Zaz):0:3: ++# BZ30647 %3a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3a:-nan(09A_Zaz):0:-1: ++# BZ30647 %3a:-nan():0:-1: ++# BZ30647 %*3a:-nan():0:-1: ++# BZ30647 %3a:nan():1:3:nan: ++# BZ30647 %*3a:nan():0:3: ++# BZ30647 %3a:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3a:nan(09A_Zaz):0:3: + %3a:0x0p0:1:3:0x0: + %*3a:0x0p0:0:3: + %3a:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3a:0xf.fffffp+124:0:3: + %3a:infinity:1:3:inf: + %*3a:infinity:0:3: +-%3a:+nan():0:-1: +-%*3a:+nan():0:-1: +-%3a:+nan(09A_Zaz):0:-1: +-%*3a:+nan(09A_Zaz):0:-1: ++# BZ30647 %3a:+nan():0:-1: ++# BZ30647 %*3a:+nan():0:-1: ++# BZ30647 %3a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3a:+nan(09A_Zaz):0:-1: + # BZ12701 %3a:+0x0p0:0:-1: + # BZ12701 %*3a:+0x0p0:0:-1: + # BZ12701 %3a:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4a:-0x0p+0:0:4: + %4a:-0x0p0:1:4:-0x0: + %*4a:-0x0p0:0:4: +-%4a:-nan(09A_Zaz):1:4:-nan: +-%*4a:-nan(09A_Zaz):0:4: +-%4a:-nan():1:4:-nan: +-%*4a:-nan():0:4: +-%4a:nan():0:-1: +-%*4a:nan():0:-1: +-%4a:nan(09A_Zaz):0:-1: +-%*4a:nan(09A_Zaz):0:-1: ++# BZ30647 %4a:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4a:-nan(09A_Zaz):0:4: ++# BZ30647 %4a:-nan():1:4:-nan: ++# BZ30647 %*4a:-nan():0:4: ++# BZ30647 %4a:nan():0:-1: ++# BZ30647 %*4a:nan():0:-1: ++# BZ30647 %4a:nan(09A_Zaz):0:-1: ++# BZ30647 %*4a:nan(09A_Zaz):0:-1: + # BZ12701 %4a:0x0p0:0:-1: + # BZ12701 %*4a:0x0p0:0:-1: + # BZ12701 %4a:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4a:0xf.fffffp+124:0:4: + %4a:infinity:0:-1: + %*4a:infinity:0:-1: +-%4a:+nan():1:4:nan: +-%*4a:+nan():0:4: +-%4a:+nan(09A_Zaz):1:4:nan: +-%*4a:+nan(09A_Zaz):0:4: ++# BZ30647 %4a:+nan():1:4:nan: ++# BZ30647 %*4a:+nan():0:4: ++# BZ30647 %4a:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4a:+nan(09A_Zaz):0:4: + %4a:+0x0p0:1:4:0x0: + %*4a:+0x0p0:0:4: + %4a:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5a:-0x0p+0:0:-1: + # BZ12701 %5a:-0x0p0:0:-1: + # BZ12701 %*5a:-0x0p0:0:-1: +-%5a:-nan(09A_Zaz):0:-1: +-%*5a:-nan(09A_Zaz):0:-1: +-%5a:-nan():0:-1: +-%*5a:-nan():0:-1: +-%5a:nan():1:5:nan: +-%*5a:nan():0:5: +-%5a:nan(09A_Zaz):0:-1: +-%*5a:nan(09A_Zaz):0:-1: ++# BZ30647 %5a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5a:-nan(09A_Zaz):0:-1: ++# BZ30647 %5a:-nan():0:-1: ++# BZ30647 %*5a:-nan():0:-1: ++# BZ30647 %5a:nan():1:5:nan: ++# BZ30647 %*5a:nan():0:5: ++# BZ30647 %5a:nan(09A_Zaz):0:-1: ++# BZ30647 %*5a:nan(09A_Zaz):0:-1: + %5a:0x0p0:1:5:0x0: + %*5a:0x0p0:0:5: + # BZ12701 %5a:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5a:0xf.fffffp+124:0:5: + %5a:infinity:0:-1: + %*5a:infinity:0:-1: +-%5a:+nan():0:-1: +-%*5a:+nan():0:-1: +-%5a:+nan(09A_Zaz):0:-1: +-%*5a:+nan(09A_Zaz):0:-1: ++# BZ30647 %5a:+nan():0:-1: ++# BZ30647 %*5a:+nan():0:-1: ++# BZ30647 %5a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5a:+nan(09A_Zaz):0:-1: + # BZ12701 %5a:+0x0p0:0:-1: + # BZ12701 %*5a:+0x0p0:0:-1: + # BZ12701 %5a:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6a:-0x0p+0:0:-1: + %6a:-0x0p0:1:6:-0x0: + %*6a:-0x0p0:0:6: +-%6a:-nan(09A_Zaz):0:-1: +-%*6a:-nan(09A_Zaz):0:-1: +-%6a:-nan():1:6:-nan: +-%*6a:-nan():0:6: +-%6a:nan():1:5:nan: +-%*6a:nan():0:5: +-%6a:nan(09A_Zaz):0:-1: +-%*6a:nan(09A_Zaz):0:-1: ++# BZ30647 %6a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6a:-nan(09A_Zaz):0:-1: ++# BZ30647 %6a:-nan():1:6:-nan: ++# BZ30647 %*6a:-nan():0:6: ++# BZ30647 %6a:nan():1:5:nan: ++# BZ30647 %*6a:nan():0:5: ++# BZ30647 %6a:nan(09A_Zaz):0:-1: ++# BZ30647 %*6a:nan(09A_Zaz):0:-1: + %6a:0x0p0:1:5:0x0: + %*6a:0x0p0:0:5: + %6a:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6a:0xf.fffffp+124:0:6: + %6a:infinity:0:-1: + %*6a:infinity:0:-1: +-%6a:+nan():1:6:nan: +-%*6a:+nan():0:6: +-%6a:+nan(09A_Zaz):0:-1: +-%*6a:+nan(09A_Zaz):0:-1: ++# BZ30647 %6a:+nan():1:6:nan: ++# BZ30647 %*6a:+nan():0:6: ++# BZ30647 %6a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6a:+nan(09A_Zaz):0:-1: + %6a:+0x0p0:1:6:0x0: + %*6a:+0x0p0:0:6: + # BZ12701 %6a:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*12a:-0x0p+0:0:7: + %12a:-0x0p0:1:6:-0x0: + %*12a:-0x0p0:0:6: +-%12a:-nan(09A_Zaz):0:-1: +-%*12a:-nan(09A_Zaz):0:-1: +-%12a:-nan():1:6:-nan: +-%*12a:-nan():0:6: +-%12a:nan():1:5:nan: +-%*12a:nan():0:5: +-%12a:nan(09A_Zaz):1:12:nan: +-%*12a:nan(09A_Zaz):0:12: ++# BZ30647 %12a:-nan(09A_Zaz):0:-1: ++# BZ30647 %*12a:-nan(09A_Zaz):0:-1: ++# BZ30647 %12a:-nan():1:6:-nan: ++# BZ30647 %*12a:-nan():0:6: ++# BZ30647 %12a:nan():1:5:nan: ++# BZ30647 %*12a:nan():0:5: ++# BZ30647 %12a:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*12a:nan(09A_Zaz):0:12: + %12a:0x0p0:1:5:0x0: + %*12a:0x0p0:0:5: + %12a:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*12a:0xf.fffffp+124:0:12: + %12a:infinity:1:8:inf: + %*12a:infinity:0:8: +-%12a:+nan():1:6:nan: +-%*12a:+nan():0:6: +-%12a:+nan(09A_Zaz):0:-1: +-%*12a:+nan(09A_Zaz):0:-1: ++# BZ30647 %12a:+nan():1:6:nan: ++# BZ30647 %*12a:+nan():0:6: ++# BZ30647 %12a:+nan(09A_Zaz):0:-1: ++# BZ30647 %*12a:+nan(09A_Zaz):0:-1: + %12a:+0x0p0:1:6:0x0: + %*12a:+0x0p0:0:6: + %12a:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*18a:-0x0p+0:0:7: + %18a:-0x0p0:1:6:-0x0: + %*18a:-0x0p0:0:6: +-%18a:-nan(09A_Zaz):1:13:-nan: +-%*18a:-nan(09A_Zaz):0:13: +-%18a:-nan():1:6:-nan: +-%*18a:-nan():0:6: +-%18a:nan():1:5:nan: +-%*18a:nan():0:5: +-%18a:nan(09A_Zaz):1:12:nan: +-%*18a:nan(09A_Zaz):0:12: ++# BZ30647 %18a:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*18a:-nan(09A_Zaz):0:13: ++# BZ30647 %18a:-nan():1:6:-nan: ++# BZ30647 %*18a:-nan():0:6: ++# BZ30647 %18a:nan():1:5:nan: ++# BZ30647 %*18a:nan():0:5: ++# BZ30647 %18a:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*18a:nan(09A_Zaz):0:12: + %18a:0x0p0:1:5:0x0: + %*18a:0x0p0:0:5: + %18a:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*18a:0xf.fffffp+124:0:14: + %18a:infinity:1:8:inf: + %*18a:infinity:0:8: +-%18a:+nan():1:6:nan: +-%*18a:+nan():0:6: +-%18a:+nan(09A_Zaz):1:13:nan: +-%*18a:+nan(09A_Zaz):0:13: ++# BZ30647 %18a:+nan():1:6:nan: ++# BZ30647 %*18a:+nan():0:6: ++# BZ30647 %18a:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*18a:+nan(09A_Zaz):0:13: + %18a:+0x0p0:1:6:0x0: + %*18a:+0x0p0:0:6: + %18a:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5a: -0x0p+0:0:-1: + # BZ12701 %5a: -0x0p0:0:-1: + # BZ12701 %*5a: -0x0p0:0:-1: +-%5a: -nan(09A_Zaz):0:-1: +-%*5a: -nan(09A_Zaz):0:-1: +-%5a: -nan():0:-1: +-%*5a: -nan():0:-1: +-%5a: nan():1:6:nan: +-%*5a: nan():0:6: +-%5a: nan(09A_Zaz):0:-1: +-%*5a: nan(09A_Zaz):0:-1: ++# BZ30647 %5a: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5a: -nan(09A_Zaz):0:-1: ++# BZ30647 %5a: -nan():0:-1: ++# BZ30647 %*5a: -nan():0:-1: ++# BZ30647 %5a: nan():1:6:nan: ++# BZ30647 %*5a: nan():0:6: ++# BZ30647 %5a: nan(09A_Zaz):0:-1: ++# BZ30647 %*5a: nan(09A_Zaz):0:-1: + %5a: 0x0p0:1:6:0x0: + %*5a: 0x0p0:0:6: + # BZ12701 %5a: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5a: 0xf.fffffp+124:0:6: + %5a: infinity:0:-1: + %*5a: infinity:0:-1: +-%5a: +nan():0:-1: +-%*5a: +nan():0:-1: +-%5a: +nan(09A_Zaz):0:-1: +-%*5a: +nan(09A_Zaz):0:-1: ++# BZ30647 %5a: +nan():0:-1: ++# BZ30647 %*5a: +nan():0:-1: ++# BZ30647 %5a: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5a: +nan(09A_Zaz):0:-1: + # BZ12701 %5a: +0x0p0:0:-1: + # BZ12701 %*5a: +0x0p0:0:-1: + # BZ12701 %5a: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*18a: -0x0p+0:0:8: + %18a: -0x0p0:1:7:-0x0: + %*18a: -0x0p0:0:7: +-%18a: -nan(09A_Zaz):1:14:-nan: +-%*18a: -nan(09A_Zaz):0:14: +-%18a: -nan():1:7:-nan: +-%*18a: -nan():0:7: +-%18a: nan():1:6:nan: +-%*18a: nan():0:6: +-%18a: nan(09A_Zaz):1:13:nan: +-%*18a: nan(09A_Zaz):0:13: ++# BZ30647 %18a: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*18a: -nan(09A_Zaz):0:14: ++# BZ30647 %18a: -nan():1:7:-nan: ++# BZ30647 %*18a: -nan():0:7: ++# BZ30647 %18a: nan():1:6:nan: ++# BZ30647 %*18a: nan():0:6: ++# BZ30647 %18a: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*18a: nan(09A_Zaz):0:13: + %18a: 0x0p0:1:6:0x0: + %*18a: 0x0p0:0:6: + %18a: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*18a: 0xf.fffffp+124:0:15: + %18a: infinity:1:9:inf: + %*18a: infinity:0:9: +-%18a: +nan():1:7:nan: +-%*18a: +nan():0:7: +-%18a: +nan(09A_Zaz):1:14:nan: +-%*18a: +nan(09A_Zaz):0:14: ++# BZ30647 %18a: +nan():1:7:nan: ++# BZ30647 %*18a: +nan():0:7: ++# BZ30647 %18a: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*18a: +nan(09A_Zaz):0:14: + %18a: +0x0p0:1:7:0x0: + %*18a: +0x0p0:0:7: + %18a: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input +index 9f541217605c0b7a..255d1368c0d844c0 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input +@@ -16,14 +16,14 @@ + %*A:-0X0P+0:0:7: + %A:-0X0P0:1:6:-0x0: + %*A:-0X0P0:0:6: +-%A:-NAN(09A_Zaz):1:13:-nan: +-%*A:-NAN(09A_Zaz):0:13: +-%A:-NAN():1:6:-nan: +-%*A:-NAN():0:6: +-%A:NAN():1:5:nan: +-%*A:NAN():0:5: +-%A:NAN(09A_Zaz):1:12:nan: +-%*A:NAN(09A_Zaz):0:12: ++# BZ30647 %A:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*A:-NAN(09A_Zaz):0:13: ++# BZ30647 %A:-NAN():1:6:-nan: ++# BZ30647 %*A:-NAN():0:6: ++# BZ30647 %A:NAN():1:5:nan: ++# BZ30647 %*A:NAN():0:5: ++# BZ30647 %A:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*A:NAN(09A_Zaz):0:12: + %A:0X0P0:1:5:0x0: + %*A:0X0P0:0:5: + %A:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*A:0XF.FFFFFP+124:0:14: + %A:INFINITY:1:8:inf: + %*A:INFINITY:0:8: +-%A:+NAN():1:6:nan: +-%*A:+NAN():0:6: +-%A:+NAN(09A_Zaz):1:13:nan: +-%*A:+NAN(09A_Zaz):0:13: ++# BZ30647 %A:+NAN():1:6:nan: ++# BZ30647 %*A:+NAN():0:6: ++# BZ30647 %A:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*A:+NAN(09A_Zaz):0:13: + %A:+0X0P0:1:6:0x0: + %*A:+0X0P0:0:6: + %A:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1A:-0X0P+0:0:-1: + %1A:-0X0P0:0:-1: + %*1A:-0X0P0:0:-1: +-%1A:-NAN(09A_Zaz):0:-1: +-%*1A:-NAN(09A_Zaz):0:-1: +-%1A:-NAN():0:-1: +-%*1A:-NAN():0:-1: +-%1A:NAN():0:-1: +-%*1A:NAN():0:-1: +-%1A:NAN(09A_Zaz):0:-1: +-%*1A:NAN(09A_Zaz):0:-1: ++# BZ30647 %1A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1A:-NAN():0:-1: ++# BZ30647 %*1A:-NAN():0:-1: ++# BZ30647 %1A:NAN():0:-1: ++# BZ30647 %*1A:NAN():0:-1: ++# BZ30647 %1A:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1A:NAN(09A_Zaz):0:-1: + %1A:0X0P0:1:1:0x0: + %*1A:0X0P0:0:1: + %1A:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1A:0XF.FFFFFP+124:0:1: + %1A:INFINITY:0:-1: + %*1A:INFINITY:0:-1: +-%1A:+NAN():0:-1: +-%*1A:+NAN():0:-1: +-%1A:+NAN(09A_Zaz):0:-1: +-%*1A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1A:+NAN():0:-1: ++# BZ30647 %*1A:+NAN():0:-1: ++# BZ30647 %1A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1A:+NAN(09A_Zaz):0:-1: + %1A:+0X0P0:0:-1: + %*1A:+0X0P0:0:-1: + %1A:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2A:-0X0P+0:0:2: + %2A:-0X0P0:1:2:-0x0: + %*2A:-0X0P0:0:2: +-%2A:-NAN(09A_Zaz):0:-1: +-%*2A:-NAN(09A_Zaz):0:-1: +-%2A:-NAN():0:-1: +-%*2A:-NAN():0:-1: +-%2A:NAN():0:-1: +-%*2A:NAN():0:-1: +-%2A:NAN(09A_Zaz):0:-1: +-%*2A:NAN(09A_Zaz):0:-1: ++# BZ30647 %2A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2A:-NAN():0:-1: ++# BZ30647 %*2A:-NAN():0:-1: ++# BZ30647 %2A:NAN():0:-1: ++# BZ30647 %*2A:NAN():0:-1: ++# BZ30647 %2A:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2A:NAN(09A_Zaz):0:-1: + # BZ12701 %2A:0X0P0:0:-1: + # BZ12701 %*2A:0X0P0:0:-1: + # BZ12701 %2A:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2A:0XF.FFFFFP+124:0:-1: + %2A:INFINITY:0:-1: + %*2A:INFINITY:0:-1: +-%2A:+NAN():0:-1: +-%*2A:+NAN():0:-1: +-%2A:+NAN(09A_Zaz):0:-1: +-%*2A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2A:+NAN():0:-1: ++# BZ30647 %*2A:+NAN():0:-1: ++# BZ30647 %2A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2A:+NAN(09A_Zaz):0:-1: + %2A:+0X0P0:1:2:0x0: + %*2A:+0X0P0:0:2: + %2A:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3A:-0X0P+0:0:-1: + # BZ12701 %3A:-0X0P0:0:-1: + # BZ12701 %*3A:-0X0P0:0:-1: +-%3A:-NAN(09A_Zaz):0:-1: +-%*3A:-NAN(09A_Zaz):0:-1: +-%3A:-NAN():0:-1: +-%*3A:-NAN():0:-1: +-%3A:NAN():1:3:nan: +-%*3A:NAN():0:3: +-%3A:NAN(09A_Zaz):1:3:nan: +-%*3A:NAN(09A_Zaz):0:3: ++# BZ30647 %3A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3A:-NAN():0:-1: ++# BZ30647 %*3A:-NAN():0:-1: ++# BZ30647 %3A:NAN():1:3:nan: ++# BZ30647 %*3A:NAN():0:3: ++# BZ30647 %3A:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3A:NAN(09A_Zaz):0:3: + %3A:0X0P0:1:3:0x0: + %*3A:0X0P0:0:3: + %3A:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3A:0XF.FFFFFP+124:0:3: + %3A:INFINITY:1:3:inf: + %*3A:INFINITY:0:3: +-%3A:+NAN():0:-1: +-%*3A:+NAN():0:-1: +-%3A:+NAN(09A_Zaz):0:-1: +-%*3A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3A:+NAN():0:-1: ++# BZ30647 %*3A:+NAN():0:-1: ++# BZ30647 %3A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3A:+NAN(09A_Zaz):0:-1: + # BZ12701 %3A:+0X0P0:0:-1: + # BZ12701 %*3A:+0X0P0:0:-1: + # BZ12701 %3A:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4A:-0X0P+0:0:4: + %4A:-0X0P0:1:4:-0x0: + %*4A:-0X0P0:0:4: +-%4A:-NAN(09A_Zaz):1:4:-nan: +-%*4A:-NAN(09A_Zaz):0:4: +-%4A:-NAN():1:4:-nan: +-%*4A:-NAN():0:4: +-%4A:NAN():0:-1: +-%*4A:NAN():0:-1: +-%4A:NAN(09A_Zaz):0:-1: +-%*4A:NAN(09A_Zaz):0:-1: ++# BZ30647 %4A:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4A:-NAN(09A_Zaz):0:4: ++# BZ30647 %4A:-NAN():1:4:-nan: ++# BZ30647 %*4A:-NAN():0:4: ++# BZ30647 %4A:NAN():0:-1: ++# BZ30647 %*4A:NAN():0:-1: ++# BZ30647 %4A:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4A:NAN(09A_Zaz):0:-1: + # BZ12701 %4A:0X0P0:0:-1: + # BZ12701 %*4A:0X0P0:0:-1: + # BZ12701 %4A:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4A:0XF.FFFFFP+124:0:4: + %4A:INFINITY:0:-1: + %*4A:INFINITY:0:-1: +-%4A:+NAN():1:4:nan: +-%*4A:+NAN():0:4: +-%4A:+NAN(09A_Zaz):1:4:nan: +-%*4A:+NAN(09A_Zaz):0:4: ++# BZ30647 %4A:+NAN():1:4:nan: ++# BZ30647 %*4A:+NAN():0:4: ++# BZ30647 %4A:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4A:+NAN(09A_Zaz):0:4: + %4A:+0X0P0:1:4:0x0: + %*4A:+0X0P0:0:4: + %4A:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5A:-0X0P+0:0:-1: + # BZ12701 %5A:-0X0P0:0:-1: + # BZ12701 %*5A:-0X0P0:0:-1: +-%5A:-NAN(09A_Zaz):0:-1: +-%*5A:-NAN(09A_Zaz):0:-1: +-%5A:-NAN():0:-1: +-%*5A:-NAN():0:-1: +-%5A:NAN():1:5:nan: +-%*5A:NAN():0:5: +-%5A:NAN(09A_Zaz):0:-1: +-%*5A:NAN(09A_Zaz):0:-1: ++# BZ30647 %5A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5A:-NAN():0:-1: ++# BZ30647 %*5A:-NAN():0:-1: ++# BZ30647 %5A:NAN():1:5:nan: ++# BZ30647 %*5A:NAN():0:5: ++# BZ30647 %5A:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A:NAN(09A_Zaz):0:-1: + %5A:0X0P0:1:5:0x0: + %*5A:0X0P0:0:5: + # BZ12701 %5A:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5A:0XF.FFFFFP+124:0:5: + %5A:INFINITY:0:-1: + %*5A:INFINITY:0:-1: +-%5A:+NAN():0:-1: +-%*5A:+NAN():0:-1: +-%5A:+NAN(09A_Zaz):0:-1: +-%*5A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5A:+NAN():0:-1: ++# BZ30647 %*5A:+NAN():0:-1: ++# BZ30647 %5A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A:+NAN(09A_Zaz):0:-1: + # BZ12701 %5A:+0X0P0:0:-1: + # BZ12701 %*5A:+0X0P0:0:-1: + # BZ12701 %5A:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6A:-0X0P+0:0:-1: + %6A:-0X0P0:1:6:-0x0: + %*6A:-0X0P0:0:6: +-%6A:-NAN(09A_Zaz):0:-1: +-%*6A:-NAN(09A_Zaz):0:-1: +-%6A:-NAN():1:6:-nan: +-%*6A:-NAN():0:6: +-%6A:NAN():1:5:nan: +-%*6A:NAN():0:5: +-%6A:NAN(09A_Zaz):0:-1: +-%*6A:NAN(09A_Zaz):0:-1: ++# BZ30647 %6A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6A:-NAN():1:6:-nan: ++# BZ30647 %*6A:-NAN():0:6: ++# BZ30647 %6A:NAN():1:5:nan: ++# BZ30647 %*6A:NAN():0:5: ++# BZ30647 %6A:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6A:NAN(09A_Zaz):0:-1: + %6A:0X0P0:1:5:0x0: + %*6A:0X0P0:0:5: + %6A:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6A:0XF.FFFFFP+124:0:6: + %6A:INFINITY:0:-1: + %*6A:INFINITY:0:-1: +-%6A:+NAN():1:6:nan: +-%*6A:+NAN():0:6: +-%6A:+NAN(09A_Zaz):0:-1: +-%*6A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6A:+NAN():1:6:nan: ++# BZ30647 %*6A:+NAN():0:6: ++# BZ30647 %6A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6A:+NAN(09A_Zaz):0:-1: + %6A:+0X0P0:1:6:0x0: + %*6A:+0X0P0:0:6: + # BZ12701 %6A:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*12A:-0X0P+0:0:7: + %12A:-0X0P0:1:6:-0x0: + %*12A:-0X0P0:0:6: +-%12A:-NAN(09A_Zaz):0:-1: +-%*12A:-NAN(09A_Zaz):0:-1: +-%12A:-NAN():1:6:-nan: +-%*12A:-NAN():0:6: +-%12A:NAN():1:5:nan: +-%*12A:NAN():0:5: +-%12A:NAN(09A_Zaz):1:12:nan: +-%*12A:NAN(09A_Zaz):0:12: ++# BZ30647 %12A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*12A:-NAN(09A_Zaz):0:-1: ++# BZ30647 %12A:-NAN():1:6:-nan: ++# BZ30647 %*12A:-NAN():0:6: ++# BZ30647 %12A:NAN():1:5:nan: ++# BZ30647 %*12A:NAN():0:5: ++# BZ30647 %12A:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*12A:NAN(09A_Zaz):0:12: + %12A:0X0P0:1:5:0x0: + %*12A:0X0P0:0:5: + %12A:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*12A:0XF.FFFFFP+124:0:12: + %12A:INFINITY:1:8:inf: + %*12A:INFINITY:0:8: +-%12A:+NAN():1:6:nan: +-%*12A:+NAN():0:6: +-%12A:+NAN(09A_Zaz):0:-1: +-%*12A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %12A:+NAN():1:6:nan: ++# BZ30647 %*12A:+NAN():0:6: ++# BZ30647 %12A:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*12A:+NAN(09A_Zaz):0:-1: + %12A:+0X0P0:1:6:0x0: + %*12A:+0X0P0:0:6: + %12A:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*18A:-0X0P+0:0:7: + %18A:-0X0P0:1:6:-0x0: + %*18A:-0X0P0:0:6: +-%18A:-NAN(09A_Zaz):1:13:-nan: +-%*18A:-NAN(09A_Zaz):0:13: +-%18A:-NAN():1:6:-nan: +-%*18A:-NAN():0:6: +-%18A:NAN():1:5:nan: +-%*18A:NAN():0:5: +-%18A:NAN(09A_Zaz):1:12:nan: +-%*18A:NAN(09A_Zaz):0:12: ++# BZ30647 %18A:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*18A:-NAN(09A_Zaz):0:13: ++# BZ30647 %18A:-NAN():1:6:-nan: ++# BZ30647 %*18A:-NAN():0:6: ++# BZ30647 %18A:NAN():1:5:nan: ++# BZ30647 %*18A:NAN():0:5: ++# BZ30647 %18A:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*18A:NAN(09A_Zaz):0:12: + %18A:0X0P0:1:5:0x0: + %*18A:0X0P0:0:5: + %18A:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*18A:0XF.FFFFFP+124:0:14: + %18A:INFINITY:1:8:inf: + %*18A:INFINITY:0:8: +-%18A:+NAN():1:6:nan: +-%*18A:+NAN():0:6: +-%18A:+NAN(09A_Zaz):1:13:nan: +-%*18A:+NAN(09A_Zaz):0:13: ++# BZ30647 %18A:+NAN():1:6:nan: ++# BZ30647 %*18A:+NAN():0:6: ++# BZ30647 %18A:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*18A:+NAN(09A_Zaz):0:13: + %18A:+0X0P0:1:6:0x0: + %*18A:+0X0P0:0:6: + %18A:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5A: -0X0P+0:0:-1: + # BZ12701 %5A: -0X0P0:0:-1: + # BZ12701 %*5A: -0X0P0:0:-1: +-%5A: -NAN(09A_Zaz):0:-1: +-%*5A: -NAN(09A_Zaz):0:-1: +-%5A: -NAN():0:-1: +-%*5A: -NAN():0:-1: +-%5A: NAN():1:6:nan: +-%*5A: NAN():0:6: +-%5A: NAN(09A_Zaz):0:-1: +-%*5A: NAN(09A_Zaz):0:-1: ++# BZ30647 %5A: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5A: -NAN():0:-1: ++# BZ30647 %*5A: -NAN():0:-1: ++# BZ30647 %5A: NAN():1:6:nan: ++# BZ30647 %*5A: NAN():0:6: ++# BZ30647 %5A: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A: NAN(09A_Zaz):0:-1: + %5A: 0X0P0:1:6:0x0: + %*5A: 0X0P0:0:6: + # BZ12701 %5A: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5A: 0XF.FFFFFP+124:0:6: + %5A: INFINITY:0:-1: + %*5A: INFINITY:0:-1: +-%5A: +NAN():0:-1: +-%*5A: +NAN():0:-1: +-%5A: +NAN(09A_Zaz):0:-1: +-%*5A: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5A: +NAN():0:-1: ++# BZ30647 %*5A: +NAN():0:-1: ++# BZ30647 %5A: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5A: +NAN(09A_Zaz):0:-1: + # BZ12701 %5A: +0X0P0:0:-1: + # BZ12701 %*5A: +0X0P0:0:-1: + # BZ12701 %5A: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*18A: -0X0P+0:0:8: + %18A: -0X0P0:1:7:-0x0: + %*18A: -0X0P0:0:7: +-%18A: -NAN(09A_Zaz):1:14:-nan: +-%*18A: -NAN(09A_Zaz):0:14: +-%18A: -NAN():1:7:-nan: +-%*18A: -NAN():0:7: +-%18A: NAN():1:6:nan: +-%*18A: NAN():0:6: +-%18A: NAN(09A_Zaz):1:13:nan: +-%*18A: NAN(09A_Zaz):0:13: ++# BZ30647 %18A: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*18A: -NAN(09A_Zaz):0:14: ++# BZ30647 %18A: -NAN():1:7:-nan: ++# BZ30647 %*18A: -NAN():0:7: ++# BZ30647 %18A: NAN():1:6:nan: ++# BZ30647 %*18A: NAN():0:6: ++# BZ30647 %18A: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*18A: NAN(09A_Zaz):0:13: + %18A: 0X0P0:1:6:0x0: + %*18A: 0X0P0:0:6: + %18A: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*18A: 0XF.FFFFFP+124:0:15: + %18A: INFINITY:1:9:inf: + %*18A: INFINITY:0:9: +-%18A: +NAN():1:7:nan: +-%*18A: +NAN():0:7: +-%18A: +NAN(09A_Zaz):1:14:nan: +-%*18A: +NAN(09A_Zaz):0:14: ++# BZ30647 %18A: +NAN():1:7:nan: ++# BZ30647 %*18A: +NAN():0:7: ++# BZ30647 %18A: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*18A: +NAN(09A_Zaz):0:14: + %18A: +0X0P0:1:7:0x0: + %*18A: +0X0P0:0:7: + %18A: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input +index e555bb47b9c86bbe..c75034244e7ef86e 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input +@@ -16,14 +16,14 @@ + %*e:-0e+0:0:5: + %e:-0e0:1:4:-0x0: + %*e:-0e0:0:4: +-%e:-nan(09A_Zaz):1:13:-nan: +-%*e:-nan(09A_Zaz):0:13: +-%e:-nan():1:6:-nan: +-%*e:-nan():0:6: +-%e:nan():1:5:nan: +-%*e:nan():0:5: +-%e:nan(09A_Zaz):1:12:nan: +-%*e:nan(09A_Zaz):0:12: ++# BZ30647 %e:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*e:-nan(09A_Zaz):0:13: ++# BZ30647 %e:-nan():1:6:-nan: ++# BZ30647 %*e:-nan():0:6: ++# BZ30647 %e:nan():1:5:nan: ++# BZ30647 %*e:nan():0:5: ++# BZ30647 %e:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*e:nan(09A_Zaz):0:12: + %e:0e0:1:3:0x0: + %*e:0e0:0:3: + %e:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*e:3.40282346638528859811704183484516925e+38:0:41: + %e:infinity:1:8:inf: + %*e:infinity:0:8: +-%e:+nan():1:6:nan: +-%*e:+nan():0:6: +-%e:+nan(09A_Zaz):1:13:nan: +-%*e:+nan(09A_Zaz):0:13: ++# BZ30647 %e:+nan():1:6:nan: ++# BZ30647 %*e:+nan():0:6: ++# BZ30647 %e:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*e:+nan(09A_Zaz):0:13: + %e:+0e0:1:4:0x0: + %*e:+0e0:0:4: + %e:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1e:-0e+0:0:-1: + %1e:-0e0:0:-1: + %*1e:-0e0:0:-1: +-%1e:-nan(09A_Zaz):0:-1: +-%*1e:-nan(09A_Zaz):0:-1: +-%1e:-nan():0:-1: +-%*1e:-nan():0:-1: +-%1e:nan():0:-1: +-%*1e:nan():0:-1: +-%1e:nan(09A_Zaz):0:-1: +-%*1e:nan(09A_Zaz):0:-1: ++# BZ30647 %1e:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1e:-nan(09A_Zaz):0:-1: ++# BZ30647 %1e:-nan():0:-1: ++# BZ30647 %*1e:-nan():0:-1: ++# BZ30647 %1e:nan():0:-1: ++# BZ30647 %*1e:nan():0:-1: ++# BZ30647 %1e:nan(09A_Zaz):0:-1: ++# BZ30647 %*1e:nan(09A_Zaz):0:-1: + %1e:0e0:1:1:0x0: + %*1e:0e0:0:1: + %1e:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1e:3.40282346638528859811704183484516925e+38:0:1: + %1e:infinity:0:-1: + %*1e:infinity:0:-1: +-%1e:+nan():0:-1: +-%*1e:+nan():0:-1: +-%1e:+nan(09A_Zaz):0:-1: +-%*1e:+nan(09A_Zaz):0:-1: ++# BZ30647 %1e:+nan():0:-1: ++# BZ30647 %*1e:+nan():0:-1: ++# BZ30647 %1e:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1e:+nan(09A_Zaz):0:-1: + %1e:+0e0:0:-1: + %*1e:+0e0:0:-1: + %1e:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2e:-0e+0:0:2: + %2e:-0e0:1:2:-0x0: + %*2e:-0e0:0:2: +-%2e:-nan(09A_Zaz):0:-1: +-%*2e:-nan(09A_Zaz):0:-1: +-%2e:-nan():0:-1: +-%*2e:-nan():0:-1: +-%2e:nan():0:-1: +-%*2e:nan():0:-1: +-%2e:nan(09A_Zaz):0:-1: +-%*2e:nan(09A_Zaz):0:-1: ++# BZ30647 %2e:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2e:-nan(09A_Zaz):0:-1: ++# BZ30647 %2e:-nan():0:-1: ++# BZ30647 %*2e:-nan():0:-1: ++# BZ30647 %2e:nan():0:-1: ++# BZ30647 %*2e:nan():0:-1: ++# BZ30647 %2e:nan(09A_Zaz):0:-1: ++# BZ30647 %*2e:nan(09A_Zaz):0:-1: + # BZ12701 %2e:0e0:0:-1: + # BZ12701 %*2e:0e0:0:-1: + # BZ12701 %2e:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2e:3.40282346638528859811704183484516925e+38:0:2: + %2e:infinity:0:-1: + %*2e:infinity:0:-1: +-%2e:+nan():0:-1: +-%*2e:+nan():0:-1: +-%2e:+nan(09A_Zaz):0:-1: +-%*2e:+nan(09A_Zaz):0:-1: ++# BZ30647 %2e:+nan():0:-1: ++# BZ30647 %*2e:+nan():0:-1: ++# BZ30647 %2e:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2e:+nan(09A_Zaz):0:-1: + %2e:+0e0:1:2:0x0: + %*2e:+0e0:0:2: + %2e:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3e:-0e+0:0:-1: + # BZ12701 %3e:-0e0:0:-1: + # BZ12701 %*3e:-0e0:0:-1: +-%3e:-nan(09A_Zaz):0:-1: +-%*3e:-nan(09A_Zaz):0:-1: +-%3e:-nan():0:-1: +-%*3e:-nan():0:-1: +-%3e:nan():1:3:nan: +-%*3e:nan():0:3: +-%3e:nan(09A_Zaz):1:3:nan: +-%*3e:nan(09A_Zaz):0:3: ++# BZ30647 %3e:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3e:-nan(09A_Zaz):0:-1: ++# BZ30647 %3e:-nan():0:-1: ++# BZ30647 %*3e:-nan():0:-1: ++# BZ30647 %3e:nan():1:3:nan: ++# BZ30647 %*3e:nan():0:3: ++# BZ30647 %3e:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3e:nan(09A_Zaz):0:3: + %3e:0e0:1:3:0x0: + %*3e:0e0:0:3: + # BZ12701 %3e:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3e:3.40282346638528859811704183484516925e+38:0:3: + %3e:infinity:1:3:inf: + %*3e:infinity:0:3: +-%3e:+nan():0:-1: +-%*3e:+nan():0:-1: +-%3e:+nan(09A_Zaz):0:-1: +-%*3e:+nan(09A_Zaz):0:-1: ++# BZ30647 %3e:+nan():0:-1: ++# BZ30647 %*3e:+nan():0:-1: ++# BZ30647 %3e:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3e:+nan(09A_Zaz):0:-1: + # BZ12701 %3e:+0e0:0:-1: + # BZ12701 %*3e:+0e0:0:-1: + # BZ12701 %3e:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4e:-0e+0:0:-1: + %4e:-0e0:1:4:-0x0: + %*4e:-0e0:0:4: +-%4e:-nan(09A_Zaz):1:4:-nan: +-%*4e:-nan(09A_Zaz):0:4: +-%4e:-nan():1:4:-nan: +-%*4e:-nan():0:4: +-%4e:nan():0:-1: +-%*4e:nan():0:-1: +-%4e:nan(09A_Zaz):0:-1: +-%*4e:nan(09A_Zaz):0:-1: ++# BZ30647 %4e:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4e:-nan(09A_Zaz):0:4: ++# BZ30647 %4e:-nan():1:4:-nan: ++# BZ30647 %*4e:-nan():0:4: ++# BZ30647 %4e:nan():0:-1: ++# BZ30647 %*4e:nan():0:-1: ++# BZ30647 %4e:nan(09A_Zaz):0:-1: ++# BZ30647 %*4e:nan(09A_Zaz):0:-1: + %4e:0e0:1:3:0x0: + %*4e:0e0:0:3: + %4e:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4e:3.40282346638528859811704183484516925e+38:0:4: + %4e:infinity:0:-1: + %*4e:infinity:0:-1: +-%4e:+nan():1:4:nan: +-%*4e:+nan():0:4: +-%4e:+nan(09A_Zaz):1:4:nan: +-%*4e:+nan(09A_Zaz):0:4: ++# BZ30647 %4e:+nan():1:4:nan: ++# BZ30647 %*4e:+nan():0:4: ++# BZ30647 %4e:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4e:+nan(09A_Zaz):0:4: + %4e:+0e0:1:4:0x0: + %*4e:+0e0:0:4: + # BZ12701 %4e:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40e:-0e+0:0:5: + %40e:-0e0:1:4:-0x0: + %*40e:-0e0:0:4: +-%40e:-nan(09A_Zaz):1:13:-nan: +-%*40e:-nan(09A_Zaz):0:13: +-%40e:-nan():1:6:-nan: +-%*40e:-nan():0:6: +-%40e:nan():1:5:nan: +-%*40e:nan():0:5: +-%40e:nan(09A_Zaz):1:12:nan: +-%*40e:nan(09A_Zaz):0:12: ++# BZ30647 %40e:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40e:-nan(09A_Zaz):0:13: ++# BZ30647 %40e:-nan():1:6:-nan: ++# BZ30647 %*40e:-nan():0:6: ++# BZ30647 %40e:nan():1:5:nan: ++# BZ30647 %*40e:nan():0:5: ++# BZ30647 %40e:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40e:nan(09A_Zaz):0:12: + %40e:0e0:1:3:0x0: + %*40e:0e0:0:3: + %40e:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40e:3.40282346638528859811704183484516925e+38:0:40: + %40e:infinity:1:8:inf: + %*40e:infinity:0:8: +-%40e:+nan():1:6:nan: +-%*40e:+nan():0:6: +-%40e:+nan(09A_Zaz):1:13:nan: +-%*40e:+nan(09A_Zaz):0:13: ++# BZ30647 %40e:+nan():1:6:nan: ++# BZ30647 %*40e:+nan():0:6: ++# BZ30647 %40e:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40e:+nan(09A_Zaz):0:13: + %40e:+0e0:1:4:0x0: + %*40e:+0e0:0:4: + %40e:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48e:-0e+0:0:5: + %48e:-0e0:1:4:-0x0: + %*48e:-0e0:0:4: +-%48e:-nan(09A_Zaz):1:13:-nan: +-%*48e:-nan(09A_Zaz):0:13: +-%48e:-nan():1:6:-nan: +-%*48e:-nan():0:6: +-%48e:nan():1:5:nan: +-%*48e:nan():0:5: +-%48e:nan(09A_Zaz):1:12:nan: +-%*48e:nan(09A_Zaz):0:12: ++# BZ30647 %48e:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48e:-nan(09A_Zaz):0:13: ++# BZ30647 %48e:-nan():1:6:-nan: ++# BZ30647 %*48e:-nan():0:6: ++# BZ30647 %48e:nan():1:5:nan: ++# BZ30647 %*48e:nan():0:5: ++# BZ30647 %48e:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48e:nan(09A_Zaz):0:12: + %48e:0e0:1:3:0x0: + %*48e:0e0:0:3: + %48e:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48e:3.40282346638528859811704183484516925e+38:0:41: + %48e:infinity:1:8:inf: + %*48e:infinity:0:8: +-%48e:+nan():1:6:nan: +-%*48e:+nan():0:6: +-%48e:+nan(09A_Zaz):1:13:nan: +-%*48e:+nan(09A_Zaz):0:13: ++# BZ30647 %48e:+nan():1:6:nan: ++# BZ30647 %*48e:+nan():0:6: ++# BZ30647 %48e:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48e:+nan(09A_Zaz):0:13: + %48e:+0e0:1:4:0x0: + %*48e:+0e0:0:4: + %48e:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3e: -0e+0:0:-1: + # BZ12701 %3e: -0e0:0:-1: + # BZ12701 %*3e: -0e0:0:-1: +-%3e: -nan(09A_Zaz):0:-1: +-%*3e: -nan(09A_Zaz):0:-1: +-%3e: -nan():0:-1: +-%*3e: -nan():0:-1: +-%3e: nan():1:4:nan: +-%*3e: nan():0:4: +-%3e: nan(09A_Zaz):1:4:nan: +-%*3e: nan(09A_Zaz):0:4: ++# BZ30647 %3e: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3e: -nan(09A_Zaz):0:-1: ++# BZ30647 %3e: -nan():0:-1: ++# BZ30647 %*3e: -nan():0:-1: ++# BZ30647 %3e: nan():1:4:nan: ++# BZ30647 %*3e: nan():0:4: ++# BZ30647 %3e: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3e: nan(09A_Zaz):0:4: + %3e: 0e0:1:4:0x0: + %*3e: 0e0:0:4: + # BZ12701 %3e: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3e: 3.40282346638528859811704183484516925e+38:0:4: + %3e: infinity:1:4:inf: + %*3e: infinity:0:4: +-%3e: +nan():0:-1: +-%*3e: +nan():0:-1: +-%3e: +nan(09A_Zaz):0:-1: +-%*3e: +nan(09A_Zaz):0:-1: ++# BZ30647 %3e: +nan():0:-1: ++# BZ30647 %*3e: +nan():0:-1: ++# BZ30647 %3e: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3e: +nan(09A_Zaz):0:-1: + # BZ12701 %3e: +0e0:0:-1: + # BZ12701 %*3e: +0e0:0:-1: + # BZ12701 %3e: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48e: -0e+0:0:6: + %48e: -0e0:1:5:-0x0: + %*48e: -0e0:0:5: +-%48e: -nan(09A_Zaz):1:14:-nan: +-%*48e: -nan(09A_Zaz):0:14: +-%48e: -nan():1:7:-nan: +-%*48e: -nan():0:7: +-%48e: nan():1:6:nan: +-%*48e: nan():0:6: +-%48e: nan(09A_Zaz):1:13:nan: +-%*48e: nan(09A_Zaz):0:13: ++# BZ30647 %48e: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48e: -nan(09A_Zaz):0:14: ++# BZ30647 %48e: -nan():1:7:-nan: ++# BZ30647 %*48e: -nan():0:7: ++# BZ30647 %48e: nan():1:6:nan: ++# BZ30647 %*48e: nan():0:6: ++# BZ30647 %48e: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48e: nan(09A_Zaz):0:13: + %48e: 0e0:1:4:0x0: + %*48e: 0e0:0:4: + %48e: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48e: 3.40282346638528859811704183484516925e+38:0:42: + %48e: infinity:1:9:inf: + %*48e: infinity:0:9: +-%48e: +nan():1:7:nan: +-%*48e: +nan():0:7: +-%48e: +nan(09A_Zaz):1:14:nan: +-%*48e: +nan(09A_Zaz):0:14: ++# BZ30647 %48e: +nan():1:7:nan: ++# BZ30647 %*48e: +nan():0:7: ++# BZ30647 %48e: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48e: +nan(09A_Zaz):0:14: + %48e: +0e0:1:5:0x0: + %*48e: +0e0:0:5: + %48e: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input +index a5aa4175ee0a4641..aa467b9c0ea8a973 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input +@@ -16,14 +16,14 @@ + %*E:-0E+0:0:5: + %E:-0E0:1:4:-0x0: + %*E:-0E0:0:4: +-%E:-NAN(09A_Zaz):1:13:-nan: +-%*E:-NAN(09A_Zaz):0:13: +-%E:-NAN():1:6:-nan: +-%*E:-NAN():0:6: +-%E:NAN():1:5:nan: +-%*E:NAN():0:5: +-%E:NAN(09A_Zaz):1:12:nan: +-%*E:NAN(09A_Zaz):0:12: ++# BZ30647 %E:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*E:-NAN(09A_Zaz):0:13: ++# BZ30647 %E:-NAN():1:6:-nan: ++# BZ30647 %*E:-NAN():0:6: ++# BZ30647 %E:NAN():1:5:nan: ++# BZ30647 %*E:NAN():0:5: ++# BZ30647 %E:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*E:NAN(09A_Zaz):0:12: + %E:0E0:1:3:0x0: + %*E:0E0:0:3: + %E:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*E:3.40282346638528859811704183484516925E+38:0:41: + %E:INFINITY:1:8:inf: + %*E:INFINITY:0:8: +-%E:+NAN():1:6:nan: +-%*E:+NAN():0:6: +-%E:+NAN(09A_Zaz):1:13:nan: +-%*E:+NAN(09A_Zaz):0:13: ++# BZ30647 %E:+NAN():1:6:nan: ++# BZ30647 %*E:+NAN():0:6: ++# BZ30647 %E:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*E:+NAN(09A_Zaz):0:13: + %E:+0E0:1:4:0x0: + %*E:+0E0:0:4: + %E:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1E:-0E+0:0:-1: + %1E:-0E0:0:-1: + %*1E:-0E0:0:-1: +-%1E:-NAN(09A_Zaz):0:-1: +-%*1E:-NAN(09A_Zaz):0:-1: +-%1E:-NAN():0:-1: +-%*1E:-NAN():0:-1: +-%1E:NAN():0:-1: +-%*1E:NAN():0:-1: +-%1E:NAN(09A_Zaz):0:-1: +-%*1E:NAN(09A_Zaz):0:-1: ++# BZ30647 %1E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1E:-NAN():0:-1: ++# BZ30647 %*1E:-NAN():0:-1: ++# BZ30647 %1E:NAN():0:-1: ++# BZ30647 %*1E:NAN():0:-1: ++# BZ30647 %1E:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1E:NAN(09A_Zaz):0:-1: + %1E:0E0:1:1:0x0: + %*1E:0E0:0:1: + %1E:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1E:3.40282346638528859811704183484516925E+38:0:1: + %1E:INFINITY:0:-1: + %*1E:INFINITY:0:-1: +-%1E:+NAN():0:-1: +-%*1E:+NAN():0:-1: +-%1E:+NAN(09A_Zaz):0:-1: +-%*1E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1E:+NAN():0:-1: ++# BZ30647 %*1E:+NAN():0:-1: ++# BZ30647 %1E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1E:+NAN(09A_Zaz):0:-1: + %1E:+0E0:0:-1: + %*1E:+0E0:0:-1: + %1E:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2E:-0E+0:0:2: + %2E:-0E0:1:2:-0x0: + %*2E:-0E0:0:2: +-%2E:-NAN(09A_Zaz):0:-1: +-%*2E:-NAN(09A_Zaz):0:-1: +-%2E:-NAN():0:-1: +-%*2E:-NAN():0:-1: +-%2E:NAN():0:-1: +-%*2E:NAN():0:-1: +-%2E:NAN(09A_Zaz):0:-1: +-%*2E:NAN(09A_Zaz):0:-1: ++# BZ30647 %2E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2E:-NAN():0:-1: ++# BZ30647 %*2E:-NAN():0:-1: ++# BZ30647 %2E:NAN():0:-1: ++# BZ30647 %*2E:NAN():0:-1: ++# BZ30647 %2E:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2E:NAN(09A_Zaz):0:-1: + # BZ12701 %2E:0E0:0:-1: + # BZ12701 %*2E:0E0:0:-1: + # BZ12701 %2E:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2E:3.40282346638528859811704183484516925E+38:0:2: + %2E:INFINITY:0:-1: + %*2E:INFINITY:0:-1: +-%2E:+NAN():0:-1: +-%*2E:+NAN():0:-1: +-%2E:+NAN(09A_Zaz):0:-1: +-%*2E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2E:+NAN():0:-1: ++# BZ30647 %*2E:+NAN():0:-1: ++# BZ30647 %2E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2E:+NAN(09A_Zaz):0:-1: + %2E:+0E0:1:2:0x0: + %*2E:+0E0:0:2: + %2E:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3E:-0E+0:0:-1: + # BZ12701 %3E:-0E0:0:-1: + # BZ12701 %*3E:-0E0:0:-1: +-%3E:-NAN(09A_Zaz):0:-1: +-%*3E:-NAN(09A_Zaz):0:-1: +-%3E:-NAN():0:-1: +-%*3E:-NAN():0:-1: +-%3E:NAN():1:3:nan: +-%*3E:NAN():0:3: +-%3E:NAN(09A_Zaz):1:3:nan: +-%*3E:NAN(09A_Zaz):0:3: ++# BZ30647 %3E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3E:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3E:-NAN():0:-1: ++# BZ30647 %*3E:-NAN():0:-1: ++# BZ30647 %3E:NAN():1:3:nan: ++# BZ30647 %*3E:NAN():0:3: ++# BZ30647 %3E:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3E:NAN(09A_Zaz):0:3: + %3E:0E0:1:3:0x0: + %*3E:0E0:0:3: + # BZ12701 %3E:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3E:3.40282346638528859811704183484516925E+38:0:3: + %3E:INFINITY:1:3:inf: + %*3E:INFINITY:0:3: +-%3E:+NAN():0:-1: +-%*3E:+NAN():0:-1: +-%3E:+NAN(09A_Zaz):0:-1: +-%*3E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3E:+NAN():0:-1: ++# BZ30647 %*3E:+NAN():0:-1: ++# BZ30647 %3E:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3E:+NAN(09A_Zaz):0:-1: + # BZ12701 %3E:+0E0:0:-1: + # BZ12701 %*3E:+0E0:0:-1: + # BZ12701 %3E:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4E:-0E+0:0:-1: + %4E:-0E0:1:4:-0x0: + %*4E:-0E0:0:4: +-%4E:-NAN(09A_Zaz):1:4:-nan: +-%*4E:-NAN(09A_Zaz):0:4: +-%4E:-NAN():1:4:-nan: +-%*4E:-NAN():0:4: +-%4E:NAN():0:-1: +-%*4E:NAN():0:-1: +-%4E:NAN(09A_Zaz):0:-1: +-%*4E:NAN(09A_Zaz):0:-1: ++# BZ30647 %4E:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4E:-NAN(09A_Zaz):0:4: ++# BZ30647 %4E:-NAN():1:4:-nan: ++# BZ30647 %*4E:-NAN():0:4: ++# BZ30647 %4E:NAN():0:-1: ++# BZ30647 %*4E:NAN():0:-1: ++# BZ30647 %4E:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4E:NAN(09A_Zaz):0:-1: + %4E:0E0:1:3:0x0: + %*4E:0E0:0:3: + %4E:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4E:3.40282346638528859811704183484516925E+38:0:4: + %4E:INFINITY:0:-1: + %*4E:INFINITY:0:-1: +-%4E:+NAN():1:4:nan: +-%*4E:+NAN():0:4: +-%4E:+NAN(09A_Zaz):1:4:nan: +-%*4E:+NAN(09A_Zaz):0:4: ++# BZ30647 %4E:+NAN():1:4:nan: ++# BZ30647 %*4E:+NAN():0:4: ++# BZ30647 %4E:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4E:+NAN(09A_Zaz):0:4: + %4E:+0E0:1:4:0x0: + %*4E:+0E0:0:4: + # BZ12701 %4E:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40E:-0E+0:0:5: + %40E:-0E0:1:4:-0x0: + %*40E:-0E0:0:4: +-%40E:-NAN(09A_Zaz):1:13:-nan: +-%*40E:-NAN(09A_Zaz):0:13: +-%40E:-NAN():1:6:-nan: +-%*40E:-NAN():0:6: +-%40E:NAN():1:5:nan: +-%*40E:NAN():0:5: +-%40E:NAN(09A_Zaz):1:12:nan: +-%*40E:NAN(09A_Zaz):0:12: ++# BZ30647 %40E:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40E:-NAN(09A_Zaz):0:13: ++# BZ30647 %40E:-NAN():1:6:-nan: ++# BZ30647 %*40E:-NAN():0:6: ++# BZ30647 %40E:NAN():1:5:nan: ++# BZ30647 %*40E:NAN():0:5: ++# BZ30647 %40E:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40E:NAN(09A_Zaz):0:12: + %40E:0E0:1:3:0x0: + %*40E:0E0:0:3: + %40E:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40E:3.40282346638528859811704183484516925E+38:0:40: + %40E:INFINITY:1:8:inf: + %*40E:INFINITY:0:8: +-%40E:+NAN():1:6:nan: +-%*40E:+NAN():0:6: +-%40E:+NAN(09A_Zaz):1:13:nan: +-%*40E:+NAN(09A_Zaz):0:13: ++# BZ30647 %40E:+NAN():1:6:nan: ++# BZ30647 %*40E:+NAN():0:6: ++# BZ30647 %40E:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40E:+NAN(09A_Zaz):0:13: + %40E:+0E0:1:4:0x0: + %*40E:+0E0:0:4: + %40E:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48E:-0E+0:0:5: + %48E:-0E0:1:4:-0x0: + %*48E:-0E0:0:4: +-%48E:-NAN(09A_Zaz):1:13:-nan: +-%*48E:-NAN(09A_Zaz):0:13: +-%48E:-NAN():1:6:-nan: +-%*48E:-NAN():0:6: +-%48E:NAN():1:5:nan: +-%*48E:NAN():0:5: +-%48E:NAN(09A_Zaz):1:12:nan: +-%*48E:NAN(09A_Zaz):0:12: ++# BZ30647 %48E:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48E:-NAN(09A_Zaz):0:13: ++# BZ30647 %48E:-NAN():1:6:-nan: ++# BZ30647 %*48E:-NAN():0:6: ++# BZ30647 %48E:NAN():1:5:nan: ++# BZ30647 %*48E:NAN():0:5: ++# BZ30647 %48E:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48E:NAN(09A_Zaz):0:12: + %48E:0E0:1:3:0x0: + %*48E:0E0:0:3: + %48E:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48E:3.40282346638528859811704183484516925E+38:0:41: + %48E:INFINITY:1:8:inf: + %*48E:INFINITY:0:8: +-%48E:+NAN():1:6:nan: +-%*48E:+NAN():0:6: +-%48E:+NAN(09A_Zaz):1:13:nan: +-%*48E:+NAN(09A_Zaz):0:13: ++# BZ30647 %48E:+NAN():1:6:nan: ++# BZ30647 %*48E:+NAN():0:6: ++# BZ30647 %48E:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48E:+NAN(09A_Zaz):0:13: + %48E:+0E0:1:4:0x0: + %*48E:+0E0:0:4: + %48E:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3E: -0E+0:0:-1: + # BZ12701 %3E: -0E0:0:-1: + # BZ12701 %*3E: -0E0:0:-1: +-%3E: -NAN(09A_Zaz):0:-1: +-%*3E: -NAN(09A_Zaz):0:-1: +-%3E: -NAN():0:-1: +-%*3E: -NAN():0:-1: +-%3E: NAN():1:4:nan: +-%*3E: NAN():0:4: +-%3E: NAN(09A_Zaz):1:4:nan: +-%*3E: NAN(09A_Zaz):0:4: ++# BZ30647 %3E: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3E: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3E: -NAN():0:-1: ++# BZ30647 %*3E: -NAN():0:-1: ++# BZ30647 %3E: NAN():1:4:nan: ++# BZ30647 %*3E: NAN():0:4: ++# BZ30647 %3E: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3E: NAN(09A_Zaz):0:4: + %3E: 0E0:1:4:0x0: + %*3E: 0E0:0:4: + # BZ12701 %3E: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3E: 3.40282346638528859811704183484516925E+38:0:4: + %3E: INFINITY:1:4:inf: + %*3E: INFINITY:0:4: +-%3E: +NAN():0:-1: +-%*3E: +NAN():0:-1: +-%3E: +NAN(09A_Zaz):0:-1: +-%*3E: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3E: +NAN():0:-1: ++# BZ30647 %*3E: +NAN():0:-1: ++# BZ30647 %3E: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3E: +NAN(09A_Zaz):0:-1: + # BZ12701 %3E: +0E0:0:-1: + # BZ12701 %*3E: +0E0:0:-1: + # BZ12701 %3E: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48E: -0E+0:0:6: + %48E: -0E0:1:5:-0x0: + %*48E: -0E0:0:5: +-%48E: -NAN(09A_Zaz):1:14:-nan: +-%*48E: -NAN(09A_Zaz):0:14: +-%48E: -NAN():1:7:-nan: +-%*48E: -NAN():0:7: +-%48E: NAN():1:6:nan: +-%*48E: NAN():0:6: +-%48E: NAN(09A_Zaz):1:13:nan: +-%*48E: NAN(09A_Zaz):0:13: ++# BZ30647 %48E: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48E: -NAN(09A_Zaz):0:14: ++# BZ30647 %48E: -NAN():1:7:-nan: ++# BZ30647 %*48E: -NAN():0:7: ++# BZ30647 %48E: NAN():1:6:nan: ++# BZ30647 %*48E: NAN():0:6: ++# BZ30647 %48E: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48E: NAN(09A_Zaz):0:13: + %48E: 0E0:1:4:0x0: + %*48E: 0E0:0:4: + %48E: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48E: 3.40282346638528859811704183484516925E+38:0:42: + %48E: INFINITY:1:9:inf: + %*48E: INFINITY:0:9: +-%48E: +NAN():1:7:nan: +-%*48E: +NAN():0:7: +-%48E: +NAN(09A_Zaz):1:14:nan: +-%*48E: +NAN(09A_Zaz):0:14: ++# BZ30647 %48E: +NAN():1:7:nan: ++# BZ30647 %*48E: +NAN():0:7: ++# BZ30647 %48E: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48E: +NAN(09A_Zaz):0:14: + %48E: +0E0:1:5:0x0: + %*48E: +0E0:0:5: + %48E: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input +index 57d9677b1b9650db..18e64459901711db 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input +@@ -16,14 +16,14 @@ + %*f:-0.0:0:4: + %f:-0:1:2:-0x0: + %*f:-0:0:2: +-%f:-nan(09A_Zaz):1:13:-nan: +-%*f:-nan(09A_Zaz):0:13: +-%f:-nan():1:6:-nan: +-%*f:-nan():0:6: +-%f:nan():1:5:nan: +-%*f:nan():0:5: +-%f:nan(09A_Zaz):1:12:nan: +-%*f:nan(09A_Zaz):0:12: ++# BZ30647 %f:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*f:-nan(09A_Zaz):0:13: ++# BZ30647 %f:-nan():1:6:-nan: ++# BZ30647 %*f:-nan():0:6: ++# BZ30647 %f:nan():1:5:nan: ++# BZ30647 %*f:nan():0:5: ++# BZ30647 %f:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*f:nan(09A_Zaz):0:12: + %f:0:1:1:0x0: + %*f:0:0:1: + %f:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*f:0340282346638528859811704183484516925440.0:0:42: + %f:infinity:1:8:inf: + %*f:infinity:0:8: +-%f:+nan():1:6:nan: +-%*f:+nan():0:6: +-%f:+nan(09A_Zaz):1:13:nan: +-%*f:+nan(09A_Zaz):0:13: ++# BZ30647 %f:+nan():1:6:nan: ++# BZ30647 %*f:+nan():0:6: ++# BZ30647 %f:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*f:+nan(09A_Zaz):0:13: + %f:+0:1:2:0x0: + %*f:+0:0:2: + %f:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1f:-0.0:0:-1: + %1f:-0:0:-1: + %*1f:-0:0:-1: +-%1f:-nan(09A_Zaz):0:-1: +-%*1f:-nan(09A_Zaz):0:-1: +-%1f:-nan():0:-1: +-%*1f:-nan():0:-1: +-%1f:nan():0:-1: +-%*1f:nan():0:-1: +-%1f:nan(09A_Zaz):0:-1: +-%*1f:nan(09A_Zaz):0:-1: ++# BZ30647 %1f:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1f:-nan(09A_Zaz):0:-1: ++# BZ30647 %1f:-nan():0:-1: ++# BZ30647 %*1f:-nan():0:-1: ++# BZ30647 %1f:nan():0:-1: ++# BZ30647 %*1f:nan():0:-1: ++# BZ30647 %1f:nan(09A_Zaz):0:-1: ++# BZ30647 %*1f:nan(09A_Zaz):0:-1: + %1f:0:1:1:0x0: + %*1f:0:0:1: + %1f:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1f:0340282346638528859811704183484516925440.0:0:1: + %1f:infinity:0:-1: + %*1f:infinity:0:-1: +-%1f:+nan():0:-1: +-%*1f:+nan():0:-1: +-%1f:+nan(09A_Zaz):0:-1: +-%*1f:+nan(09A_Zaz):0:-1: ++# BZ30647 %1f:+nan():0:-1: ++# BZ30647 %*1f:+nan():0:-1: ++# BZ30647 %1f:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1f:+nan(09A_Zaz):0:-1: + %1f:+0:0:-1: + %*1f:+0:0:-1: + %1f:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2f:-0.0:0:2: + %2f:-0:1:2:-0x0: + %*2f:-0:0:2: +-%2f:-nan(09A_Zaz):0:-1: +-%*2f:-nan(09A_Zaz):0:-1: +-%2f:-nan():0:-1: +-%*2f:-nan():0:-1: +-%2f:nan():0:-1: +-%*2f:nan():0:-1: +-%2f:nan(09A_Zaz):0:-1: +-%*2f:nan(09A_Zaz):0:-1: ++# BZ30647 %2f:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2f:-nan(09A_Zaz):0:-1: ++# BZ30647 %2f:-nan():0:-1: ++# BZ30647 %*2f:-nan():0:-1: ++# BZ30647 %2f:nan():0:-1: ++# BZ30647 %*2f:nan():0:-1: ++# BZ30647 %2f:nan(09A_Zaz):0:-1: ++# BZ30647 %*2f:nan(09A_Zaz):0:-1: + %2f:0:1:1:0x0: + %*2f:0:0:1: + %2f:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2f:0340282346638528859811704183484516925440.0:0:2: + %2f:infinity:0:-1: + %*2f:infinity:0:-1: +-%2f:+nan():0:-1: +-%*2f:+nan():0:-1: +-%2f:+nan(09A_Zaz):0:-1: +-%*2f:+nan(09A_Zaz):0:-1: ++# BZ30647 %2f:+nan():0:-1: ++# BZ30647 %*2f:+nan():0:-1: ++# BZ30647 %2f:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2f:+nan(09A_Zaz):0:-1: + %2f:+0:1:2:0x0: + %*2f:+0:0:2: + %2f:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3f:-0.0:0:3: + %3f:-0:1:2:-0x0: + %*3f:-0:0:2: +-%3f:-nan(09A_Zaz):0:-1: +-%*3f:-nan(09A_Zaz):0:-1: +-%3f:-nan():0:-1: +-%*3f:-nan():0:-1: +-%3f:nan():1:3:nan: +-%*3f:nan():0:3: +-%3f:nan(09A_Zaz):1:3:nan: +-%*3f:nan(09A_Zaz):0:3: ++# BZ30647 %3f:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3f:-nan(09A_Zaz):0:-1: ++# BZ30647 %3f:-nan():0:-1: ++# BZ30647 %*3f:-nan():0:-1: ++# BZ30647 %3f:nan():1:3:nan: ++# BZ30647 %*3f:nan():0:3: ++# BZ30647 %3f:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3f:nan(09A_Zaz):0:3: + %3f:0:1:1:0x0: + %*3f:0:0:1: + %3f:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3f:0340282346638528859811704183484516925440.0:0:3: + %3f:infinity:1:3:inf: + %*3f:infinity:0:3: +-%3f:+nan():0:-1: +-%*3f:+nan():0:-1: +-%3f:+nan(09A_Zaz):0:-1: +-%*3f:+nan(09A_Zaz):0:-1: ++# BZ30647 %3f:+nan():0:-1: ++# BZ30647 %*3f:+nan():0:-1: ++# BZ30647 %3f:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3f:+nan(09A_Zaz):0:-1: + %3f:+0:1:2:0x0: + %*3f:+0:0:2: + %3f:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4f:-0.0:0:4: + %4f:-0:1:2:-0x0: + %*4f:-0:0:2: +-%4f:-nan(09A_Zaz):1:4:-nan: +-%*4f:-nan(09A_Zaz):0:4: +-%4f:-nan():1:4:-nan: +-%*4f:-nan():0:4: +-%4f:nan():0:-1: +-%*4f:nan():0:-1: +-%4f:nan(09A_Zaz):0:-1: +-%*4f:nan(09A_Zaz):0:-1: ++# BZ30647 %4f:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4f:-nan(09A_Zaz):0:4: ++# BZ30647 %4f:-nan():1:4:-nan: ++# BZ30647 %*4f:-nan():0:4: ++# BZ30647 %4f:nan():0:-1: ++# BZ30647 %*4f:nan():0:-1: ++# BZ30647 %4f:nan(09A_Zaz):0:-1: ++# BZ30647 %*4f:nan(09A_Zaz):0:-1: + %4f:0:1:1:0x0: + %*4f:0:0:1: + %4f:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4f:0340282346638528859811704183484516925440.0:0:4: + %4f:infinity:0:-1: + %*4f:infinity:0:-1: +-%4f:+nan():1:4:nan: +-%*4f:+nan():0:4: +-%4f:+nan(09A_Zaz):1:4:nan: +-%*4f:+nan(09A_Zaz):0:4: ++# BZ30647 %4f:+nan():1:4:nan: ++# BZ30647 %*4f:+nan():0:4: ++# BZ30647 %4f:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4f:+nan(09A_Zaz):0:4: + %4f:+0:1:2:0x0: + %*4f:+0:0:2: + %4f:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*41f:-0.0:0:4: + %41f:-0:1:2:-0x0: + %*41f:-0:0:2: +-%41f:-nan(09A_Zaz):1:13:-nan: +-%*41f:-nan(09A_Zaz):0:13: +-%41f:-nan():1:6:-nan: +-%*41f:-nan():0:6: +-%41f:nan():1:5:nan: +-%*41f:nan():0:5: +-%41f:nan(09A_Zaz):1:12:nan: +-%*41f:nan(09A_Zaz):0:12: ++# BZ30647 %41f:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*41f:-nan(09A_Zaz):0:13: ++# BZ30647 %41f:-nan():1:6:-nan: ++# BZ30647 %*41f:-nan():0:6: ++# BZ30647 %41f:nan():1:5:nan: ++# BZ30647 %*41f:nan():0:5: ++# BZ30647 %41f:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*41f:nan(09A_Zaz):0:12: + %41f:0:1:1:0x0: + %*41f:0:0:1: + %41f:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*41f:0340282346638528859811704183484516925440.0:0:41: + %41f:infinity:1:8:inf: + %*41f:infinity:0:8: +-%41f:+nan():1:6:nan: +-%*41f:+nan():0:6: +-%41f:+nan(09A_Zaz):1:13:nan: +-%*41f:+nan(09A_Zaz):0:13: ++# BZ30647 %41f:+nan():1:6:nan: ++# BZ30647 %*41f:+nan():0:6: ++# BZ30647 %41f:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*41f:+nan(09A_Zaz):0:13: + %41f:+0:1:2:0x0: + %*41f:+0:0:2: + %41f:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*80f:-0.0:0:4: + %80f:-0:1:2:-0x0: + %*80f:-0:0:2: +-%80f:-nan(09A_Zaz):1:13:-nan: +-%*80f:-nan(09A_Zaz):0:13: +-%80f:-nan():1:6:-nan: +-%*80f:-nan():0:6: +-%80f:nan():1:5:nan: +-%*80f:nan():0:5: +-%80f:nan(09A_Zaz):1:12:nan: +-%*80f:nan(09A_Zaz):0:12: ++# BZ30647 %80f:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*80f:-nan(09A_Zaz):0:13: ++# BZ30647 %80f:-nan():1:6:-nan: ++# BZ30647 %*80f:-nan():0:6: ++# BZ30647 %80f:nan():1:5:nan: ++# BZ30647 %*80f:nan():0:5: ++# BZ30647 %80f:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*80f:nan(09A_Zaz):0:12: + %80f:0:1:1:0x0: + %*80f:0:0:1: + %80f:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*80f:0340282346638528859811704183484516925440.0:0:42: + %80f:infinity:1:8:inf: + %*80f:infinity:0:8: +-%80f:+nan():1:6:nan: +-%*80f:+nan():0:6: +-%80f:+nan(09A_Zaz):1:13:nan: +-%*80f:+nan(09A_Zaz):0:13: ++# BZ30647 %80f:+nan():1:6:nan: ++# BZ30647 %*80f:+nan():0:6: ++# BZ30647 %80f:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*80f:+nan(09A_Zaz):0:13: + %80f:+0:1:2:0x0: + %*80f:+0:0:2: + %80f:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3f: -0.0:0:4: + %3f: -0:1:3:-0x0: + %*3f: -0:0:3: +-%3f: -nan(09A_Zaz):0:-1: +-%*3f: -nan(09A_Zaz):0:-1: +-%3f: -nan():0:-1: +-%*3f: -nan():0:-1: +-%3f: nan():1:4:nan: +-%*3f: nan():0:4: +-%3f: nan(09A_Zaz):1:4:nan: +-%*3f: nan(09A_Zaz):0:4: ++# BZ30647 %3f: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3f: -nan(09A_Zaz):0:-1: ++# BZ30647 %3f: -nan():0:-1: ++# BZ30647 %*3f: -nan():0:-1: ++# BZ30647 %3f: nan():1:4:nan: ++# BZ30647 %*3f: nan():0:4: ++# BZ30647 %3f: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3f: nan(09A_Zaz):0:4: + %3f: 0:1:2:0x0: + %*3f: 0:0:2: + %3f: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3f: 0340282346638528859811704183484516925440.0:0:4: + %3f: infinity:1:4:inf: + %*3f: infinity:0:4: +-%3f: +nan():0:-1: +-%*3f: +nan():0:-1: +-%3f: +nan(09A_Zaz):0:-1: +-%*3f: +nan(09A_Zaz):0:-1: ++# BZ30647 %3f: +nan():0:-1: ++# BZ30647 %*3f: +nan():0:-1: ++# BZ30647 %3f: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3f: +nan(09A_Zaz):0:-1: + %3f: +0:1:3:0x0: + %*3f: +0:0:3: + %3f: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*80f: -0.0:0:5: + %80f: -0:1:3:-0x0: + %*80f: -0:0:3: +-%80f: -nan(09A_Zaz):1:14:-nan: +-%*80f: -nan(09A_Zaz):0:14: +-%80f: -nan():1:7:-nan: +-%*80f: -nan():0:7: +-%80f: nan():1:6:nan: +-%*80f: nan():0:6: +-%80f: nan(09A_Zaz):1:13:nan: +-%*80f: nan(09A_Zaz):0:13: ++# BZ30647 %80f: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*80f: -nan(09A_Zaz):0:14: ++# BZ30647 %80f: -nan():1:7:-nan: ++# BZ30647 %*80f: -nan():0:7: ++# BZ30647 %80f: nan():1:6:nan: ++# BZ30647 %*80f: nan():0:6: ++# BZ30647 %80f: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*80f: nan(09A_Zaz):0:13: + %80f: 0:1:2:0x0: + %*80f: 0:0:2: + %80f: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*80f: 0340282346638528859811704183484516925440.0:0:43: + %80f: infinity:1:9:inf: + %*80f: infinity:0:9: +-%80f: +nan():1:7:nan: +-%*80f: +nan():0:7: +-%80f: +nan(09A_Zaz):1:14:nan: +-%*80f: +nan(09A_Zaz):0:14: ++# BZ30647 %80f: +nan():1:7:nan: ++# BZ30647 %*80f: +nan():0:7: ++# BZ30647 %80f: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*80f: +nan(09A_Zaz):0:14: + %80f: +0:1:3:0x0: + %*80f: +0:0:3: + %80f: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input +index 3ec8ed0e8f7069be..521ea247b140b17d 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input +@@ -16,14 +16,14 @@ + %*F:-0.0:0:4: + %F:-0:1:2:-0x0: + %*F:-0:0:2: +-%F:-NAN(09A_Zaz):1:13:-nan: +-%*F:-NAN(09A_Zaz):0:13: +-%F:-NAN():1:6:-nan: +-%*F:-NAN():0:6: +-%F:NAN():1:5:nan: +-%*F:NAN():0:5: +-%F:NAN(09A_Zaz):1:12:nan: +-%*F:NAN(09A_Zaz):0:12: ++# BZ30647 %F:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*F:-NAN(09A_Zaz):0:13: ++# BZ30647 %F:-NAN():1:6:-nan: ++# BZ30647 %*F:-NAN():0:6: ++# BZ30647 %F:NAN():1:5:nan: ++# BZ30647 %*F:NAN():0:5: ++# BZ30647 %F:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*F:NAN(09A_Zaz):0:12: + %F:0:1:1:0x0: + %*F:0:0:1: + %F:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*F:0340282346638528859811704183484516925440.0:0:42: + %F:INFINITY:1:8:inf: + %*F:INFINITY:0:8: +-%F:+NAN():1:6:nan: +-%*F:+NAN():0:6: +-%F:+NAN(09A_Zaz):1:13:nan: +-%*F:+NAN(09A_Zaz):0:13: ++# BZ30647 %F:+NAN():1:6:nan: ++# BZ30647 %*F:+NAN():0:6: ++# BZ30647 %F:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*F:+NAN(09A_Zaz):0:13: + %F:+0:1:2:0x0: + %*F:+0:0:2: + %F:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1F:-0.0:0:-1: + %1F:-0:0:-1: + %*1F:-0:0:-1: +-%1F:-NAN(09A_Zaz):0:-1: +-%*1F:-NAN(09A_Zaz):0:-1: +-%1F:-NAN():0:-1: +-%*1F:-NAN():0:-1: +-%1F:NAN():0:-1: +-%*1F:NAN():0:-1: +-%1F:NAN(09A_Zaz):0:-1: +-%*1F:NAN(09A_Zaz):0:-1: ++# BZ30647 %1F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1F:-NAN():0:-1: ++# BZ30647 %*1F:-NAN():0:-1: ++# BZ30647 %1F:NAN():0:-1: ++# BZ30647 %*1F:NAN():0:-1: ++# BZ30647 %1F:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1F:NAN(09A_Zaz):0:-1: + %1F:0:1:1:0x0: + %*1F:0:0:1: + %1F:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1F:0340282346638528859811704183484516925440.0:0:1: + %1F:INFINITY:0:-1: + %*1F:INFINITY:0:-1: +-%1F:+NAN():0:-1: +-%*1F:+NAN():0:-1: +-%1F:+NAN(09A_Zaz):0:-1: +-%*1F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1F:+NAN():0:-1: ++# BZ30647 %*1F:+NAN():0:-1: ++# BZ30647 %1F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1F:+NAN(09A_Zaz):0:-1: + %1F:+0:0:-1: + %*1F:+0:0:-1: + %1F:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2F:-0.0:0:2: + %2F:-0:1:2:-0x0: + %*2F:-0:0:2: +-%2F:-NAN(09A_Zaz):0:-1: +-%*2F:-NAN(09A_Zaz):0:-1: +-%2F:-NAN():0:-1: +-%*2F:-NAN():0:-1: +-%2F:NAN():0:-1: +-%*2F:NAN():0:-1: +-%2F:NAN(09A_Zaz):0:-1: +-%*2F:NAN(09A_Zaz):0:-1: ++# BZ30647 %2F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2F:-NAN():0:-1: ++# BZ30647 %*2F:-NAN():0:-1: ++# BZ30647 %2F:NAN():0:-1: ++# BZ30647 %*2F:NAN():0:-1: ++# BZ30647 %2F:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2F:NAN(09A_Zaz):0:-1: + %2F:0:1:1:0x0: + %*2F:0:0:1: + %2F:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2F:0340282346638528859811704183484516925440.0:0:2: + %2F:INFINITY:0:-1: + %*2F:INFINITY:0:-1: +-%2F:+NAN():0:-1: +-%*2F:+NAN():0:-1: +-%2F:+NAN(09A_Zaz):0:-1: +-%*2F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2F:+NAN():0:-1: ++# BZ30647 %*2F:+NAN():0:-1: ++# BZ30647 %2F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2F:+NAN(09A_Zaz):0:-1: + %2F:+0:1:2:0x0: + %*2F:+0:0:2: + %2F:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3F:-0.0:0:3: + %3F:-0:1:2:-0x0: + %*3F:-0:0:2: +-%3F:-NAN(09A_Zaz):0:-1: +-%*3F:-NAN(09A_Zaz):0:-1: +-%3F:-NAN():0:-1: +-%*3F:-NAN():0:-1: +-%3F:NAN():1:3:nan: +-%*3F:NAN():0:3: +-%3F:NAN(09A_Zaz):1:3:nan: +-%*3F:NAN(09A_Zaz):0:3: ++# BZ30647 %3F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3F:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3F:-NAN():0:-1: ++# BZ30647 %*3F:-NAN():0:-1: ++# BZ30647 %3F:NAN():1:3:nan: ++# BZ30647 %*3F:NAN():0:3: ++# BZ30647 %3F:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3F:NAN(09A_Zaz):0:3: + %3F:0:1:1:0x0: + %*3F:0:0:1: + %3F:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3F:0340282346638528859811704183484516925440.0:0:3: + %3F:INFINITY:1:3:inf: + %*3F:INFINITY:0:3: +-%3F:+NAN():0:-1: +-%*3F:+NAN():0:-1: +-%3F:+NAN(09A_Zaz):0:-1: +-%*3F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3F:+NAN():0:-1: ++# BZ30647 %*3F:+NAN():0:-1: ++# BZ30647 %3F:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3F:+NAN(09A_Zaz):0:-1: + %3F:+0:1:2:0x0: + %*3F:+0:0:2: + %3F:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4F:-0.0:0:4: + %4F:-0:1:2:-0x0: + %*4F:-0:0:2: +-%4F:-NAN(09A_Zaz):1:4:-nan: +-%*4F:-NAN(09A_Zaz):0:4: +-%4F:-NAN():1:4:-nan: +-%*4F:-NAN():0:4: +-%4F:NAN():0:-1: +-%*4F:NAN():0:-1: +-%4F:NAN(09A_Zaz):0:-1: +-%*4F:NAN(09A_Zaz):0:-1: ++# BZ30647 %4F:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4F:-NAN(09A_Zaz):0:4: ++# BZ30647 %4F:-NAN():1:4:-nan: ++# BZ30647 %*4F:-NAN():0:4: ++# BZ30647 %4F:NAN():0:-1: ++# BZ30647 %*4F:NAN():0:-1: ++# BZ30647 %4F:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4F:NAN(09A_Zaz):0:-1: + %4F:0:1:1:0x0: + %*4F:0:0:1: + %4F:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4F:0340282346638528859811704183484516925440.0:0:4: + %4F:INFINITY:0:-1: + %*4F:INFINITY:0:-1: +-%4F:+NAN():1:4:nan: +-%*4F:+NAN():0:4: +-%4F:+NAN(09A_Zaz):1:4:nan: +-%*4F:+NAN(09A_Zaz):0:4: ++# BZ30647 %4F:+NAN():1:4:nan: ++# BZ30647 %*4F:+NAN():0:4: ++# BZ30647 %4F:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4F:+NAN(09A_Zaz):0:4: + %4F:+0:1:2:0x0: + %*4F:+0:0:2: + %4F:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*41F:-0.0:0:4: + %41F:-0:1:2:-0x0: + %*41F:-0:0:2: +-%41F:-NAN(09A_Zaz):1:13:-nan: +-%*41F:-NAN(09A_Zaz):0:13: +-%41F:-NAN():1:6:-nan: +-%*41F:-NAN():0:6: +-%41F:NAN():1:5:nan: +-%*41F:NAN():0:5: +-%41F:NAN(09A_Zaz):1:12:nan: +-%*41F:NAN(09A_Zaz):0:12: ++# BZ30647 %41F:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*41F:-NAN(09A_Zaz):0:13: ++# BZ30647 %41F:-NAN():1:6:-nan: ++# BZ30647 %*41F:-NAN():0:6: ++# BZ30647 %41F:NAN():1:5:nan: ++# BZ30647 %*41F:NAN():0:5: ++# BZ30647 %41F:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*41F:NAN(09A_Zaz):0:12: + %41F:0:1:1:0x0: + %*41F:0:0:1: + %41F:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*41F:0340282346638528859811704183484516925440.0:0:41: + %41F:INFINITY:1:8:inf: + %*41F:INFINITY:0:8: +-%41F:+NAN():1:6:nan: +-%*41F:+NAN():0:6: +-%41F:+NAN(09A_Zaz):1:13:nan: +-%*41F:+NAN(09A_Zaz):0:13: ++# BZ30647 %41F:+NAN():1:6:nan: ++# BZ30647 %*41F:+NAN():0:6: ++# BZ30647 %41F:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*41F:+NAN(09A_Zaz):0:13: + %41F:+0:1:2:0x0: + %*41F:+0:0:2: + %41F:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*80F:-0.0:0:4: + %80F:-0:1:2:-0x0: + %*80F:-0:0:2: +-%80F:-NAN(09A_Zaz):1:13:-nan: +-%*80F:-NAN(09A_Zaz):0:13: +-%80F:-NAN():1:6:-nan: +-%*80F:-NAN():0:6: +-%80F:NAN():1:5:nan: +-%*80F:NAN():0:5: +-%80F:NAN(09A_Zaz):1:12:nan: +-%*80F:NAN(09A_Zaz):0:12: ++# BZ30647 %80F:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*80F:-NAN(09A_Zaz):0:13: ++# BZ30647 %80F:-NAN():1:6:-nan: ++# BZ30647 %*80F:-NAN():0:6: ++# BZ30647 %80F:NAN():1:5:nan: ++# BZ30647 %*80F:NAN():0:5: ++# BZ30647 %80F:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*80F:NAN(09A_Zaz):0:12: + %80F:0:1:1:0x0: + %*80F:0:0:1: + %80F:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*80F:0340282346638528859811704183484516925440.0:0:42: + %80F:INFINITY:1:8:inf: + %*80F:INFINITY:0:8: +-%80F:+NAN():1:6:nan: +-%*80F:+NAN():0:6: +-%80F:+NAN(09A_Zaz):1:13:nan: +-%*80F:+NAN(09A_Zaz):0:13: ++# BZ30647 %80F:+NAN():1:6:nan: ++# BZ30647 %*80F:+NAN():0:6: ++# BZ30647 %80F:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*80F:+NAN(09A_Zaz):0:13: + %80F:+0:1:2:0x0: + %*80F:+0:0:2: + %80F:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3F: -0.0:0:4: + %3F: -0:1:3:-0x0: + %*3F: -0:0:3: +-%3F: -NAN(09A_Zaz):0:-1: +-%*3F: -NAN(09A_Zaz):0:-1: +-%3F: -NAN():0:-1: +-%*3F: -NAN():0:-1: +-%3F: NAN():1:4:nan: +-%*3F: NAN():0:4: +-%3F: NAN(09A_Zaz):1:4:nan: +-%*3F: NAN(09A_Zaz):0:4: ++# BZ30647 %3F: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3F: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3F: -NAN():0:-1: ++# BZ30647 %*3F: -NAN():0:-1: ++# BZ30647 %3F: NAN():1:4:nan: ++# BZ30647 %*3F: NAN():0:4: ++# BZ30647 %3F: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3F: NAN(09A_Zaz):0:4: + %3F: 0:1:2:0x0: + %*3F: 0:0:2: + %3F: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3F: 0340282346638528859811704183484516925440.0:0:4: + %3F: INFINITY:1:4:inf: + %*3F: INFINITY:0:4: +-%3F: +NAN():0:-1: +-%*3F: +NAN():0:-1: +-%3F: +NAN(09A_Zaz):0:-1: +-%*3F: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3F: +NAN():0:-1: ++# BZ30647 %*3F: +NAN():0:-1: ++# BZ30647 %3F: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3F: +NAN(09A_Zaz):0:-1: + %3F: +0:1:3:0x0: + %*3F: +0:0:3: + %3F: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*80F: -0.0:0:5: + %80F: -0:1:3:-0x0: + %*80F: -0:0:3: +-%80F: -NAN(09A_Zaz):1:14:-nan: +-%*80F: -NAN(09A_Zaz):0:14: +-%80F: -NAN():1:7:-nan: +-%*80F: -NAN():0:7: +-%80F: NAN():1:6:nan: +-%*80F: NAN():0:6: +-%80F: NAN(09A_Zaz):1:13:nan: +-%*80F: NAN(09A_Zaz):0:13: ++# BZ30647 %80F: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*80F: -NAN(09A_Zaz):0:14: ++# BZ30647 %80F: -NAN():1:7:-nan: ++# BZ30647 %*80F: -NAN():0:7: ++# BZ30647 %80F: NAN():1:6:nan: ++# BZ30647 %*80F: NAN():0:6: ++# BZ30647 %80F: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*80F: NAN(09A_Zaz):0:13: + %80F: 0:1:2:0x0: + %*80F: 0:0:2: + %80F: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*80F: 0340282346638528859811704183484516925440.0:0:43: + %80F: INFINITY:1:9:inf: + %*80F: INFINITY:0:9: +-%80F: +NAN():1:7:nan: +-%*80F: +NAN():0:7: +-%80F: +NAN(09A_Zaz):1:14:nan: +-%*80F: +NAN(09A_Zaz):0:14: ++# BZ30647 %80F: +NAN():1:7:nan: ++# BZ30647 %*80F: +NAN():0:7: ++# BZ30647 %80F: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*80F: +NAN(09A_Zaz):0:14: + %80F: +0:1:3:0x0: + %*80F: +0:0:3: + %80F: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input +index 81462cd764def99b..5b7b481e2b549682 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input +@@ -16,14 +16,14 @@ + %*g:-0x0p+0:0:7: + %g:-0x0p0:1:6:-0x0: + %*g:-0x0p0:0:6: +-%g:-nan(09A_Zaz):1:13:-nan: +-%*g:-nan(09A_Zaz):0:13: +-%g:-nan():1:6:-nan: +-%*g:-nan():0:6: +-%g:nan():1:5:nan: +-%*g:nan():0:5: +-%g:nan(09A_Zaz):1:12:nan: +-%*g:nan(09A_Zaz):0:12: ++# BZ30647 %g:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*g:-nan(09A_Zaz):0:13: ++# BZ30647 %g:-nan():1:6:-nan: ++# BZ30647 %*g:-nan():0:6: ++# BZ30647 %g:nan():1:5:nan: ++# BZ30647 %*g:nan():0:5: ++# BZ30647 %g:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*g:nan(09A_Zaz):0:12: + %g:0x0p0:1:5:0x0: + %*g:0x0p0:0:5: + %g:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*g:0xf.fffffp+124:0:14: + %g:infinity:1:8:inf: + %*g:infinity:0:8: +-%g:+nan():1:6:nan: +-%*g:+nan():0:6: +-%g:+nan(09A_Zaz):1:13:nan: +-%*g:+nan(09A_Zaz):0:13: ++# BZ30647 %g:+nan():1:6:nan: ++# BZ30647 %*g:+nan():0:6: ++# BZ30647 %g:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*g:+nan(09A_Zaz):0:13: + %g:+0x0p0:1:6:0x0: + %*g:+0x0p0:0:6: + %g:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1g:-0x0p+0:0:-1: + %1g:-0x0p0:0:-1: + %*1g:-0x0p0:0:-1: +-%1g:-nan(09A_Zaz):0:-1: +-%*1g:-nan(09A_Zaz):0:-1: +-%1g:-nan():0:-1: +-%*1g:-nan():0:-1: +-%1g:nan():0:-1: +-%*1g:nan():0:-1: +-%1g:nan(09A_Zaz):0:-1: +-%*1g:nan(09A_Zaz):0:-1: ++# BZ30647 %1g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1g:-nan(09A_Zaz):0:-1: ++# BZ30647 %1g:-nan():0:-1: ++# BZ30647 %*1g:-nan():0:-1: ++# BZ30647 %1g:nan():0:-1: ++# BZ30647 %*1g:nan():0:-1: ++# BZ30647 %1g:nan(09A_Zaz):0:-1: ++# BZ30647 %*1g:nan(09A_Zaz):0:-1: + %1g:0x0p0:1:1:0x0: + %*1g:0x0p0:0:1: + %1g:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1g:0xf.fffffp+124:0:1: + %1g:infinity:0:-1: + %*1g:infinity:0:-1: +-%1g:+nan():0:-1: +-%*1g:+nan():0:-1: +-%1g:+nan(09A_Zaz):0:-1: +-%*1g:+nan(09A_Zaz):0:-1: ++# BZ30647 %1g:+nan():0:-1: ++# BZ30647 %*1g:+nan():0:-1: ++# BZ30647 %1g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1g:+nan(09A_Zaz):0:-1: + %1g:+0x0p0:0:-1: + %*1g:+0x0p0:0:-1: + %1g:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2g:-0x0p+0:0:2: + %2g:-0x0p0:1:2:-0x0: + %*2g:-0x0p0:0:2: +-%2g:-nan(09A_Zaz):0:-1: +-%*2g:-nan(09A_Zaz):0:-1: +-%2g:-nan():0:-1: +-%*2g:-nan():0:-1: +-%2g:nan():0:-1: +-%*2g:nan():0:-1: +-%2g:nan(09A_Zaz):0:-1: +-%*2g:nan(09A_Zaz):0:-1: ++# BZ30647 %2g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2g:-nan(09A_Zaz):0:-1: ++# BZ30647 %2g:-nan():0:-1: ++# BZ30647 %*2g:-nan():0:-1: ++# BZ30647 %2g:nan():0:-1: ++# BZ30647 %*2g:nan():0:-1: ++# BZ30647 %2g:nan(09A_Zaz):0:-1: ++# BZ30647 %*2g:nan(09A_Zaz):0:-1: + # BZ12701 %2g:0x0p0:0:-1: + # BZ12701 %*2g:0x0p0:0:-1: + # BZ12701 %2g:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2g:0xf.fffffp+124:0:-1: + %2g:infinity:0:-1: + %*2g:infinity:0:-1: +-%2g:+nan():0:-1: +-%*2g:+nan():0:-1: +-%2g:+nan(09A_Zaz):0:-1: +-%*2g:+nan(09A_Zaz):0:-1: ++# BZ30647 %2g:+nan():0:-1: ++# BZ30647 %*2g:+nan():0:-1: ++# BZ30647 %2g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2g:+nan(09A_Zaz):0:-1: + %2g:+0x0p0:1:2:0x0: + %*2g:+0x0p0:0:2: + %2g:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3g:-0x0p+0:0:-1: + # BZ12701 %3g:-0x0p0:0:-1: + # BZ12701 %*3g:-0x0p0:0:-1: +-%3g:-nan(09A_Zaz):0:-1: +-%*3g:-nan(09A_Zaz):0:-1: +-%3g:-nan():0:-1: +-%*3g:-nan():0:-1: +-%3g:nan():1:3:nan: +-%*3g:nan():0:3: +-%3g:nan(09A_Zaz):1:3:nan: +-%*3g:nan(09A_Zaz):0:3: ++# BZ30647 %3g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3g:-nan(09A_Zaz):0:-1: ++# BZ30647 %3g:-nan():0:-1: ++# BZ30647 %*3g:-nan():0:-1: ++# BZ30647 %3g:nan():1:3:nan: ++# BZ30647 %*3g:nan():0:3: ++# BZ30647 %3g:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3g:nan(09A_Zaz):0:3: + %3g:0x0p0:1:3:0x0: + %*3g:0x0p0:0:3: + %3g:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3g:0xf.fffffp+124:0:3: + %3g:infinity:1:3:inf: + %*3g:infinity:0:3: +-%3g:+nan():0:-1: +-%*3g:+nan():0:-1: +-%3g:+nan(09A_Zaz):0:-1: +-%*3g:+nan(09A_Zaz):0:-1: ++# BZ30647 %3g:+nan():0:-1: ++# BZ30647 %*3g:+nan():0:-1: ++# BZ30647 %3g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3g:+nan(09A_Zaz):0:-1: + # BZ12701 %3g:+0x0p0:0:-1: + # BZ12701 %*3g:+0x0p0:0:-1: + # BZ12701 %3g:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4g:-0x0p+0:0:4: + %4g:-0x0p0:1:4:-0x0: + %*4g:-0x0p0:0:4: +-%4g:-nan(09A_Zaz):1:4:-nan: +-%*4g:-nan(09A_Zaz):0:4: +-%4g:-nan():1:4:-nan: +-%*4g:-nan():0:4: +-%4g:nan():0:-1: +-%*4g:nan():0:-1: +-%4g:nan(09A_Zaz):0:-1: +-%*4g:nan(09A_Zaz):0:-1: ++# BZ30647 %4g:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4g:-nan(09A_Zaz):0:4: ++# BZ30647 %4g:-nan():1:4:-nan: ++# BZ30647 %*4g:-nan():0:4: ++# BZ30647 %4g:nan():0:-1: ++# BZ30647 %*4g:nan():0:-1: ++# BZ30647 %4g:nan(09A_Zaz):0:-1: ++# BZ30647 %*4g:nan(09A_Zaz):0:-1: + # BZ12701 %4g:0x0p0:0:-1: + # BZ12701 %*4g:0x0p0:0:-1: + # BZ12701 %4g:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4g:0xf.fffffp+124:0:4: + %4g:infinity:0:-1: + %*4g:infinity:0:-1: +-%4g:+nan():1:4:nan: +-%*4g:+nan():0:4: +-%4g:+nan(09A_Zaz):1:4:nan: +-%*4g:+nan(09A_Zaz):0:4: ++# BZ30647 %4g:+nan():1:4:nan: ++# BZ30647 %*4g:+nan():0:4: ++# BZ30647 %4g:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4g:+nan(09A_Zaz):0:4: + %4g:+0x0p0:1:4:0x0: + %*4g:+0x0p0:0:4: + %4g:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5g:-0x0p+0:0:-1: + # BZ12701 %5g:-0x0p0:0:-1: + # BZ12701 %*5g:-0x0p0:0:-1: +-%5g:-nan(09A_Zaz):0:-1: +-%*5g:-nan(09A_Zaz):0:-1: +-%5g:-nan():0:-1: +-%*5g:-nan():0:-1: +-%5g:nan():1:5:nan: +-%*5g:nan():0:5: +-%5g:nan(09A_Zaz):0:-1: +-%*5g:nan(09A_Zaz):0:-1: ++# BZ30647 %5g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5g:-nan(09A_Zaz):0:-1: ++# BZ30647 %5g:-nan():0:-1: ++# BZ30647 %*5g:-nan():0:-1: ++# BZ30647 %5g:nan():1:5:nan: ++# BZ30647 %*5g:nan():0:5: ++# BZ30647 %5g:nan(09A_Zaz):0:-1: ++# BZ30647 %*5g:nan(09A_Zaz):0:-1: + %5g:0x0p0:1:5:0x0: + %*5g:0x0p0:0:5: + # BZ12701 %5g:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5g:0xf.fffffp+124:0:5: + %5g:infinity:0:-1: + %*5g:infinity:0:-1: +-%5g:+nan():0:-1: +-%*5g:+nan():0:-1: +-%5g:+nan(09A_Zaz):0:-1: +-%*5g:+nan(09A_Zaz):0:-1: ++# BZ30647 %5g:+nan():0:-1: ++# BZ30647 %*5g:+nan():0:-1: ++# BZ30647 %5g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5g:+nan(09A_Zaz):0:-1: + # BZ12701 %5g:+0x0p0:0:-1: + # BZ12701 %*5g:+0x0p0:0:-1: + # BZ12701 %5g:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6g:-0x0p+0:0:-1: + %6g:-0x0p0:1:6:-0x0: + %*6g:-0x0p0:0:6: +-%6g:-nan(09A_Zaz):0:-1: +-%*6g:-nan(09A_Zaz):0:-1: +-%6g:-nan():1:6:-nan: +-%*6g:-nan():0:6: +-%6g:nan():1:5:nan: +-%*6g:nan():0:5: +-%6g:nan(09A_Zaz):0:-1: +-%*6g:nan(09A_Zaz):0:-1: ++# BZ30647 %6g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6g:-nan(09A_Zaz):0:-1: ++# BZ30647 %6g:-nan():1:6:-nan: ++# BZ30647 %*6g:-nan():0:6: ++# BZ30647 %6g:nan():1:5:nan: ++# BZ30647 %*6g:nan():0:5: ++# BZ30647 %6g:nan(09A_Zaz):0:-1: ++# BZ30647 %*6g:nan(09A_Zaz):0:-1: + %6g:0x0p0:1:5:0x0: + %*6g:0x0p0:0:5: + %6g:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6g:0xf.fffffp+124:0:6: + %6g:infinity:0:-1: + %*6g:infinity:0:-1: +-%6g:+nan():1:6:nan: +-%*6g:+nan():0:6: +-%6g:+nan(09A_Zaz):0:-1: +-%*6g:+nan(09A_Zaz):0:-1: ++# BZ30647 %6g:+nan():1:6:nan: ++# BZ30647 %*6g:+nan():0:6: ++# BZ30647 %6g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6g:+nan(09A_Zaz):0:-1: + %6g:+0x0p0:1:6:0x0: + %*6g:+0x0p0:0:6: + # BZ12701 %6g:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*12g:-0x0p+0:0:7: + %12g:-0x0p0:1:6:-0x0: + %*12g:-0x0p0:0:6: +-%12g:-nan(09A_Zaz):0:-1: +-%*12g:-nan(09A_Zaz):0:-1: +-%12g:-nan():1:6:-nan: +-%*12g:-nan():0:6: +-%12g:nan():1:5:nan: +-%*12g:nan():0:5: +-%12g:nan(09A_Zaz):1:12:nan: +-%*12g:nan(09A_Zaz):0:12: ++# BZ30647 %12g:-nan(09A_Zaz):0:-1: ++# BZ30647 %*12g:-nan(09A_Zaz):0:-1: ++# BZ30647 %12g:-nan():1:6:-nan: ++# BZ30647 %*12g:-nan():0:6: ++# BZ30647 %12g:nan():1:5:nan: ++# BZ30647 %*12g:nan():0:5: ++# BZ30647 %12g:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*12g:nan(09A_Zaz):0:12: + %12g:0x0p0:1:5:0x0: + %*12g:0x0p0:0:5: + %12g:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*12g:0xf.fffffp+124:0:12: + %12g:infinity:1:8:inf: + %*12g:infinity:0:8: +-%12g:+nan():1:6:nan: +-%*12g:+nan():0:6: +-%12g:+nan(09A_Zaz):0:-1: +-%*12g:+nan(09A_Zaz):0:-1: ++# BZ30647 %12g:+nan():1:6:nan: ++# BZ30647 %*12g:+nan():0:6: ++# BZ30647 %12g:+nan(09A_Zaz):0:-1: ++# BZ30647 %*12g:+nan(09A_Zaz):0:-1: + %12g:+0x0p0:1:6:0x0: + %*12g:+0x0p0:0:6: + %12g:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*18g:-0x0p+0:0:7: + %18g:-0x0p0:1:6:-0x0: + %*18g:-0x0p0:0:6: +-%18g:-nan(09A_Zaz):1:13:-nan: +-%*18g:-nan(09A_Zaz):0:13: +-%18g:-nan():1:6:-nan: +-%*18g:-nan():0:6: +-%18g:nan():1:5:nan: +-%*18g:nan():0:5: +-%18g:nan(09A_Zaz):1:12:nan: +-%*18g:nan(09A_Zaz):0:12: ++# BZ30647 %18g:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*18g:-nan(09A_Zaz):0:13: ++# BZ30647 %18g:-nan():1:6:-nan: ++# BZ30647 %*18g:-nan():0:6: ++# BZ30647 %18g:nan():1:5:nan: ++# BZ30647 %*18g:nan():0:5: ++# BZ30647 %18g:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*18g:nan(09A_Zaz):0:12: + %18g:0x0p0:1:5:0x0: + %*18g:0x0p0:0:5: + %18g:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*18g:0xf.fffffp+124:0:14: + %18g:infinity:1:8:inf: + %*18g:infinity:0:8: +-%18g:+nan():1:6:nan: +-%*18g:+nan():0:6: +-%18g:+nan(09A_Zaz):1:13:nan: +-%*18g:+nan(09A_Zaz):0:13: ++# BZ30647 %18g:+nan():1:6:nan: ++# BZ30647 %*18g:+nan():0:6: ++# BZ30647 %18g:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*18g:+nan(09A_Zaz):0:13: + %18g:+0x0p0:1:6:0x0: + %*18g:+0x0p0:0:6: + %18g:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5g: -0x0p+0:0:-1: + # BZ12701 %5g: -0x0p0:0:-1: + # BZ12701 %*5g: -0x0p0:0:-1: +-%5g: -nan(09A_Zaz):0:-1: +-%*5g: -nan(09A_Zaz):0:-1: +-%5g: -nan():0:-1: +-%*5g: -nan():0:-1: +-%5g: nan():1:6:nan: +-%*5g: nan():0:6: +-%5g: nan(09A_Zaz):0:-1: +-%*5g: nan(09A_Zaz):0:-1: ++# BZ30647 %5g: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5g: -nan(09A_Zaz):0:-1: ++# BZ30647 %5g: -nan():0:-1: ++# BZ30647 %*5g: -nan():0:-1: ++# BZ30647 %5g: nan():1:6:nan: ++# BZ30647 %*5g: nan():0:6: ++# BZ30647 %5g: nan(09A_Zaz):0:-1: ++# BZ30647 %*5g: nan(09A_Zaz):0:-1: + %5g: 0x0p0:1:6:0x0: + %*5g: 0x0p0:0:6: + # BZ12701 %5g: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5g: 0xf.fffffp+124:0:6: + %5g: infinity:0:-1: + %*5g: infinity:0:-1: +-%5g: +nan():0:-1: +-%*5g: +nan():0:-1: +-%5g: +nan(09A_Zaz):0:-1: +-%*5g: +nan(09A_Zaz):0:-1: ++# BZ30647 %5g: +nan():0:-1: ++# BZ30647 %*5g: +nan():0:-1: ++# BZ30647 %5g: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5g: +nan(09A_Zaz):0:-1: + # BZ12701 %5g: +0x0p0:0:-1: + # BZ12701 %*5g: +0x0p0:0:-1: + # BZ12701 %5g: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*18g: -0x0p+0:0:8: + %18g: -0x0p0:1:7:-0x0: + %*18g: -0x0p0:0:7: +-%18g: -nan(09A_Zaz):1:14:-nan: +-%*18g: -nan(09A_Zaz):0:14: +-%18g: -nan():1:7:-nan: +-%*18g: -nan():0:7: +-%18g: nan():1:6:nan: +-%*18g: nan():0:6: +-%18g: nan(09A_Zaz):1:13:nan: +-%*18g: nan(09A_Zaz):0:13: ++# BZ30647 %18g: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*18g: -nan(09A_Zaz):0:14: ++# BZ30647 %18g: -nan():1:7:-nan: ++# BZ30647 %*18g: -nan():0:7: ++# BZ30647 %18g: nan():1:6:nan: ++# BZ30647 %*18g: nan():0:6: ++# BZ30647 %18g: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*18g: nan(09A_Zaz):0:13: + %18g: 0x0p0:1:6:0x0: + %*18g: 0x0p0:0:6: + %18g: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*18g: 0xf.fffffp+124:0:15: + %18g: infinity:1:9:inf: + %*18g: infinity:0:9: +-%18g: +nan():1:7:nan: +-%*18g: +nan():0:7: +-%18g: +nan(09A_Zaz):1:14:nan: +-%*18g: +nan(09A_Zaz):0:14: ++# BZ30647 %18g: +nan():1:7:nan: ++# BZ30647 %*18g: +nan():0:7: ++# BZ30647 %18g: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*18g: +nan(09A_Zaz):0:14: + %18g: +0x0p0:1:7:0x0: + %*18g: +0x0p0:0:7: + %18g: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input +index 4236ea9f247c13cc..1f6f92d1aa6e23ef 100644 +--- a/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input +@@ -16,14 +16,14 @@ + %*G:-0X0P+0:0:7: + %G:-0X0P0:1:6:-0x0: + %*G:-0X0P0:0:6: +-%G:-NAN(09A_Zaz):1:13:-nan: +-%*G:-NAN(09A_Zaz):0:13: +-%G:-NAN():1:6:-nan: +-%*G:-NAN():0:6: +-%G:NAN():1:5:nan: +-%*G:NAN():0:5: +-%G:NAN(09A_Zaz):1:12:nan: +-%*G:NAN(09A_Zaz):0:12: ++# BZ30647 %G:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*G:-NAN(09A_Zaz):0:13: ++# BZ30647 %G:-NAN():1:6:-nan: ++# BZ30647 %*G:-NAN():0:6: ++# BZ30647 %G:NAN():1:5:nan: ++# BZ30647 %*G:NAN():0:5: ++# BZ30647 %G:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*G:NAN(09A_Zaz):0:12: + %G:0X0P0:1:5:0x0: + %*G:0X0P0:0:5: + %G:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*G:0XF.FFFFFP+124:0:14: + %G:INFINITY:1:8:inf: + %*G:INFINITY:0:8: +-%G:+NAN():1:6:nan: +-%*G:+NAN():0:6: +-%G:+NAN(09A_Zaz):1:13:nan: +-%*G:+NAN(09A_Zaz):0:13: ++# BZ30647 %G:+NAN():1:6:nan: ++# BZ30647 %*G:+NAN():0:6: ++# BZ30647 %G:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*G:+NAN(09A_Zaz):0:13: + %G:+0X0P0:1:6:0x0: + %*G:+0X0P0:0:6: + %G:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1G:-0X0P+0:0:-1: + %1G:-0X0P0:0:-1: + %*1G:-0X0P0:0:-1: +-%1G:-NAN(09A_Zaz):0:-1: +-%*1G:-NAN(09A_Zaz):0:-1: +-%1G:-NAN():0:-1: +-%*1G:-NAN():0:-1: +-%1G:NAN():0:-1: +-%*1G:NAN():0:-1: +-%1G:NAN(09A_Zaz):0:-1: +-%*1G:NAN(09A_Zaz):0:-1: ++# BZ30647 %1G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1G:-NAN():0:-1: ++# BZ30647 %*1G:-NAN():0:-1: ++# BZ30647 %1G:NAN():0:-1: ++# BZ30647 %*1G:NAN():0:-1: ++# BZ30647 %1G:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1G:NAN(09A_Zaz):0:-1: + %1G:0X0P0:1:1:0x0: + %*1G:0X0P0:0:1: + %1G:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1G:0XF.FFFFFP+124:0:1: + %1G:INFINITY:0:-1: + %*1G:INFINITY:0:-1: +-%1G:+NAN():0:-1: +-%*1G:+NAN():0:-1: +-%1G:+NAN(09A_Zaz):0:-1: +-%*1G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1G:+NAN():0:-1: ++# BZ30647 %*1G:+NAN():0:-1: ++# BZ30647 %1G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1G:+NAN(09A_Zaz):0:-1: + %1G:+0X0P0:0:-1: + %*1G:+0X0P0:0:-1: + %1G:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2G:-0X0P+0:0:2: + %2G:-0X0P0:1:2:-0x0: + %*2G:-0X0P0:0:2: +-%2G:-NAN(09A_Zaz):0:-1: +-%*2G:-NAN(09A_Zaz):0:-1: +-%2G:-NAN():0:-1: +-%*2G:-NAN():0:-1: +-%2G:NAN():0:-1: +-%*2G:NAN():0:-1: +-%2G:NAN(09A_Zaz):0:-1: +-%*2G:NAN(09A_Zaz):0:-1: ++# BZ30647 %2G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2G:-NAN():0:-1: ++# BZ30647 %*2G:-NAN():0:-1: ++# BZ30647 %2G:NAN():0:-1: ++# BZ30647 %*2G:NAN():0:-1: ++# BZ30647 %2G:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2G:NAN(09A_Zaz):0:-1: + # BZ12701 %2G:0X0P0:0:-1: + # BZ12701 %*2G:0X0P0:0:-1: + # BZ12701 %2G:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2G:0XF.FFFFFP+124:0:-1: + %2G:INFINITY:0:-1: + %*2G:INFINITY:0:-1: +-%2G:+NAN():0:-1: +-%*2G:+NAN():0:-1: +-%2G:+NAN(09A_Zaz):0:-1: +-%*2G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2G:+NAN():0:-1: ++# BZ30647 %*2G:+NAN():0:-1: ++# BZ30647 %2G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2G:+NAN(09A_Zaz):0:-1: + %2G:+0X0P0:1:2:0x0: + %*2G:+0X0P0:0:2: + %2G:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3G:-0X0P+0:0:-1: + # BZ12701 %3G:-0X0P0:0:-1: + # BZ12701 %*3G:-0X0P0:0:-1: +-%3G:-NAN(09A_Zaz):0:-1: +-%*3G:-NAN(09A_Zaz):0:-1: +-%3G:-NAN():0:-1: +-%*3G:-NAN():0:-1: +-%3G:NAN():1:3:nan: +-%*3G:NAN():0:3: +-%3G:NAN(09A_Zaz):1:3:nan: +-%*3G:NAN(09A_Zaz):0:3: ++# BZ30647 %3G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3G:-NAN():0:-1: ++# BZ30647 %*3G:-NAN():0:-1: ++# BZ30647 %3G:NAN():1:3:nan: ++# BZ30647 %*3G:NAN():0:3: ++# BZ30647 %3G:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3G:NAN(09A_Zaz):0:3: + %3G:0X0P0:1:3:0x0: + %*3G:0X0P0:0:3: + %3G:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3G:0XF.FFFFFP+124:0:3: + %3G:INFINITY:1:3:inf: + %*3G:INFINITY:0:3: +-%3G:+NAN():0:-1: +-%*3G:+NAN():0:-1: +-%3G:+NAN(09A_Zaz):0:-1: +-%*3G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3G:+NAN():0:-1: ++# BZ30647 %*3G:+NAN():0:-1: ++# BZ30647 %3G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3G:+NAN(09A_Zaz):0:-1: + # BZ12701 %3G:+0X0P0:0:-1: + # BZ12701 %*3G:+0X0P0:0:-1: + # BZ12701 %3G:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4G:-0X0P+0:0:4: + %4G:-0X0P0:1:4:-0x0: + %*4G:-0X0P0:0:4: +-%4G:-NAN(09A_Zaz):1:4:-nan: +-%*4G:-NAN(09A_Zaz):0:4: +-%4G:-NAN():1:4:-nan: +-%*4G:-NAN():0:4: +-%4G:NAN():0:-1: +-%*4G:NAN():0:-1: +-%4G:NAN(09A_Zaz):0:-1: +-%*4G:NAN(09A_Zaz):0:-1: ++# BZ30647 %4G:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4G:-NAN(09A_Zaz):0:4: ++# BZ30647 %4G:-NAN():1:4:-nan: ++# BZ30647 %*4G:-NAN():0:4: ++# BZ30647 %4G:NAN():0:-1: ++# BZ30647 %*4G:NAN():0:-1: ++# BZ30647 %4G:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4G:NAN(09A_Zaz):0:-1: + # BZ12701 %4G:0X0P0:0:-1: + # BZ12701 %*4G:0X0P0:0:-1: + # BZ12701 %4G:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4G:0XF.FFFFFP+124:0:4: + %4G:INFINITY:0:-1: + %*4G:INFINITY:0:-1: +-%4G:+NAN():1:4:nan: +-%*4G:+NAN():0:4: +-%4G:+NAN(09A_Zaz):1:4:nan: +-%*4G:+NAN(09A_Zaz):0:4: ++# BZ30647 %4G:+NAN():1:4:nan: ++# BZ30647 %*4G:+NAN():0:4: ++# BZ30647 %4G:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4G:+NAN(09A_Zaz):0:4: + %4G:+0X0P0:1:4:0x0: + %*4G:+0X0P0:0:4: + %4G:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5G:-0X0P+0:0:-1: + # BZ12701 %5G:-0X0P0:0:-1: + # BZ12701 %*5G:-0X0P0:0:-1: +-%5G:-NAN(09A_Zaz):0:-1: +-%*5G:-NAN(09A_Zaz):0:-1: +-%5G:-NAN():0:-1: +-%*5G:-NAN():0:-1: +-%5G:NAN():1:5:nan: +-%*5G:NAN():0:5: +-%5G:NAN(09A_Zaz):0:-1: +-%*5G:NAN(09A_Zaz):0:-1: ++# BZ30647 %5G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5G:-NAN():0:-1: ++# BZ30647 %*5G:-NAN():0:-1: ++# BZ30647 %5G:NAN():1:5:nan: ++# BZ30647 %*5G:NAN():0:5: ++# BZ30647 %5G:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G:NAN(09A_Zaz):0:-1: + %5G:0X0P0:1:5:0x0: + %*5G:0X0P0:0:5: + # BZ12701 %5G:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5G:0XF.FFFFFP+124:0:5: + %5G:INFINITY:0:-1: + %*5G:INFINITY:0:-1: +-%5G:+NAN():0:-1: +-%*5G:+NAN():0:-1: +-%5G:+NAN(09A_Zaz):0:-1: +-%*5G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5G:+NAN():0:-1: ++# BZ30647 %*5G:+NAN():0:-1: ++# BZ30647 %5G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G:+NAN(09A_Zaz):0:-1: + # BZ12701 %5G:+0X0P0:0:-1: + # BZ12701 %*5G:+0X0P0:0:-1: + # BZ12701 %5G:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6G:-0X0P+0:0:-1: + %6G:-0X0P0:1:6:-0x0: + %*6G:-0X0P0:0:6: +-%6G:-NAN(09A_Zaz):0:-1: +-%*6G:-NAN(09A_Zaz):0:-1: +-%6G:-NAN():1:6:-nan: +-%*6G:-NAN():0:6: +-%6G:NAN():1:5:nan: +-%*6G:NAN():0:5: +-%6G:NAN(09A_Zaz):0:-1: +-%*6G:NAN(09A_Zaz):0:-1: ++# BZ30647 %6G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6G:-NAN():1:6:-nan: ++# BZ30647 %*6G:-NAN():0:6: ++# BZ30647 %6G:NAN():1:5:nan: ++# BZ30647 %*6G:NAN():0:5: ++# BZ30647 %6G:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6G:NAN(09A_Zaz):0:-1: + %6G:0X0P0:1:5:0x0: + %*6G:0X0P0:0:5: + %6G:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6G:0XF.FFFFFP+124:0:6: + %6G:INFINITY:0:-1: + %*6G:INFINITY:0:-1: +-%6G:+NAN():1:6:nan: +-%*6G:+NAN():0:6: +-%6G:+NAN(09A_Zaz):0:-1: +-%*6G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6G:+NAN():1:6:nan: ++# BZ30647 %*6G:+NAN():0:6: ++# BZ30647 %6G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6G:+NAN(09A_Zaz):0:-1: + %6G:+0X0P0:1:6:0x0: + %*6G:+0X0P0:0:6: + # BZ12701 %6G:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*12G:-0X0P+0:0:7: + %12G:-0X0P0:1:6:-0x0: + %*12G:-0X0P0:0:6: +-%12G:-NAN(09A_Zaz):0:-1: +-%*12G:-NAN(09A_Zaz):0:-1: +-%12G:-NAN():1:6:-nan: +-%*12G:-NAN():0:6: +-%12G:NAN():1:5:nan: +-%*12G:NAN():0:5: +-%12G:NAN(09A_Zaz):1:12:nan: +-%*12G:NAN(09A_Zaz):0:12: ++# BZ30647 %12G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*12G:-NAN(09A_Zaz):0:-1: ++# BZ30647 %12G:-NAN():1:6:-nan: ++# BZ30647 %*12G:-NAN():0:6: ++# BZ30647 %12G:NAN():1:5:nan: ++# BZ30647 %*12G:NAN():0:5: ++# BZ30647 %12G:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*12G:NAN(09A_Zaz):0:12: + %12G:0X0P0:1:5:0x0: + %*12G:0X0P0:0:5: + %12G:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*12G:0XF.FFFFFP+124:0:12: + %12G:INFINITY:1:8:inf: + %*12G:INFINITY:0:8: +-%12G:+NAN():1:6:nan: +-%*12G:+NAN():0:6: +-%12G:+NAN(09A_Zaz):0:-1: +-%*12G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %12G:+NAN():1:6:nan: ++# BZ30647 %*12G:+NAN():0:6: ++# BZ30647 %12G:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*12G:+NAN(09A_Zaz):0:-1: + %12G:+0X0P0:1:6:0x0: + %*12G:+0X0P0:0:6: + %12G:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*18G:-0X0P+0:0:7: + %18G:-0X0P0:1:6:-0x0: + %*18G:-0X0P0:0:6: +-%18G:-NAN(09A_Zaz):1:13:-nan: +-%*18G:-NAN(09A_Zaz):0:13: +-%18G:-NAN():1:6:-nan: +-%*18G:-NAN():0:6: +-%18G:NAN():1:5:nan: +-%*18G:NAN():0:5: +-%18G:NAN(09A_Zaz):1:12:nan: +-%*18G:NAN(09A_Zaz):0:12: ++# BZ30647 %18G:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*18G:-NAN(09A_Zaz):0:13: ++# BZ30647 %18G:-NAN():1:6:-nan: ++# BZ30647 %*18G:-NAN():0:6: ++# BZ30647 %18G:NAN():1:5:nan: ++# BZ30647 %*18G:NAN():0:5: ++# BZ30647 %18G:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*18G:NAN(09A_Zaz):0:12: + %18G:0X0P0:1:5:0x0: + %*18G:0X0P0:0:5: + %18G:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*18G:0XF.FFFFFP+124:0:14: + %18G:INFINITY:1:8:inf: + %*18G:INFINITY:0:8: +-%18G:+NAN():1:6:nan: +-%*18G:+NAN():0:6: +-%18G:+NAN(09A_Zaz):1:13:nan: +-%*18G:+NAN(09A_Zaz):0:13: ++# BZ30647 %18G:+NAN():1:6:nan: ++# BZ30647 %*18G:+NAN():0:6: ++# BZ30647 %18G:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*18G:+NAN(09A_Zaz):0:13: + %18G:+0X0P0:1:6:0x0: + %*18G:+0X0P0:0:6: + %18G:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5G: -0X0P+0:0:-1: + # BZ12701 %5G: -0X0P0:0:-1: + # BZ12701 %*5G: -0X0P0:0:-1: +-%5G: -NAN(09A_Zaz):0:-1: +-%*5G: -NAN(09A_Zaz):0:-1: +-%5G: -NAN():0:-1: +-%*5G: -NAN():0:-1: +-%5G: NAN():1:6:nan: +-%*5G: NAN():0:6: +-%5G: NAN(09A_Zaz):0:-1: +-%*5G: NAN(09A_Zaz):0:-1: ++# BZ30647 %5G: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5G: -NAN():0:-1: ++# BZ30647 %*5G: -NAN():0:-1: ++# BZ30647 %5G: NAN():1:6:nan: ++# BZ30647 %*5G: NAN():0:6: ++# BZ30647 %5G: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G: NAN(09A_Zaz):0:-1: + %5G: 0X0P0:1:6:0x0: + %*5G: 0X0P0:0:6: + # BZ12701 %5G: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5G: 0XF.FFFFFP+124:0:6: + %5G: INFINITY:0:-1: + %*5G: INFINITY:0:-1: +-%5G: +NAN():0:-1: +-%*5G: +NAN():0:-1: +-%5G: +NAN(09A_Zaz):0:-1: +-%*5G: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5G: +NAN():0:-1: ++# BZ30647 %*5G: +NAN():0:-1: ++# BZ30647 %5G: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5G: +NAN(09A_Zaz):0:-1: + # BZ12701 %5G: +0X0P0:0:-1: + # BZ12701 %*5G: +0X0P0:0:-1: + # BZ12701 %5G: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*18G: -0X0P+0:0:8: + %18G: -0X0P0:1:7:-0x0: + %*18G: -0X0P0:0:7: +-%18G: -NAN(09A_Zaz):1:14:-nan: +-%*18G: -NAN(09A_Zaz):0:14: +-%18G: -NAN():1:7:-nan: +-%*18G: -NAN():0:7: +-%18G: NAN():1:6:nan: +-%*18G: NAN():0:6: +-%18G: NAN(09A_Zaz):1:13:nan: +-%*18G: NAN(09A_Zaz):0:13: ++# BZ30647 %18G: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*18G: -NAN(09A_Zaz):0:14: ++# BZ30647 %18G: -NAN():1:7:-nan: ++# BZ30647 %*18G: -NAN():0:7: ++# BZ30647 %18G: NAN():1:6:nan: ++# BZ30647 %*18G: NAN():0:6: ++# BZ30647 %18G: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*18G: NAN(09A_Zaz):0:13: + %18G: 0X0P0:1:6:0x0: + %*18G: 0X0P0:0:6: + %18G: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*18G: 0XF.FFFFFP+124:0:15: + %18G: INFINITY:1:9:inf: + %*18G: INFINITY:0:9: +-%18G: +NAN():1:7:nan: +-%*18G: +NAN():0:7: +-%18G: +NAN(09A_Zaz):1:14:nan: +-%*18G: +NAN(09A_Zaz):0:14: ++# BZ30647 %18G: +NAN():1:7:nan: ++# BZ30647 %*18G: +NAN():0:7: ++# BZ30647 %18G: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*18G: +NAN(09A_Zaz):0:14: + %18G: +0X0P0:1:7:0x0: + %*18G: +0X0P0:0:7: + %18G: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input +index 41fe52ffa0e50613..f6893043b2f0b970 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input +@@ -16,14 +16,14 @@ + %*La:-0x0p+0:0:7: + %La:-0x0p0:1:6:-0x0: + %*La:-0x0p0:0:6: +-%La:-nan(09A_Zaz):1:13:-nan: +-%*La:-nan(09A_Zaz):0:13: +-%La:-nan():1:6:-nan: +-%*La:-nan():0:6: +-%La:nan():1:5:nan: +-%*La:nan():0:5: +-%La:nan(09A_Zaz):1:12:nan: +-%*La:nan(09A_Zaz):0:12: ++# BZ30647 %La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*La:-nan(09A_Zaz):0:13: ++# BZ30647 %La:-nan():1:6:-nan: ++# BZ30647 %*La:-nan():0:6: ++# BZ30647 %La:nan():1:5:nan: ++# BZ30647 %*La:nan():0:5: ++# BZ30647 %La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*La:nan(09A_Zaz):0:12: + %La:0x0p0:1:5:0x0: + %*La:0x0p0:0:5: + %La:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*La:0xf.fffffffffffffffffffffffffff8p+16380:0:39: + %La:infinity:1:8:inf: + %*La:infinity:0:8: +-%La:+nan():1:6:nan: +-%*La:+nan():0:6: +-%La:+nan(09A_Zaz):1:13:nan: +-%*La:+nan(09A_Zaz):0:13: ++# BZ30647 %La:+nan():1:6:nan: ++# BZ30647 %*La:+nan():0:6: ++# BZ30647 %La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*La:+nan(09A_Zaz):0:13: + %La:+0x0p0:1:6:0x0: + %*La:+0x0p0:0:6: + %La:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1La:-0x0p+0:0:-1: + %1La:-0x0p0:0:-1: + %*1La:-0x0p0:0:-1: +-%1La:-nan(09A_Zaz):0:-1: +-%*1La:-nan(09A_Zaz):0:-1: +-%1La:-nan():0:-1: +-%*1La:-nan():0:-1: +-%1La:nan():0:-1: +-%*1La:nan():0:-1: +-%1La:nan(09A_Zaz):0:-1: +-%*1La:nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan():0:-1: ++# BZ30647 %*1La:-nan():0:-1: ++# BZ30647 %1La:nan():0:-1: ++# BZ30647 %*1La:nan():0:-1: ++# BZ30647 %1La:nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:nan(09A_Zaz):0:-1: + %1La:0x0p0:1:1:0x0: + %*1La:0x0p0:0:1: + %1La:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1La:0xf.fffffffffffffffffffffffffff8p+16380:0:1: + %1La:infinity:0:-1: + %*1La:infinity:0:-1: +-%1La:+nan():0:-1: +-%*1La:+nan():0:-1: +-%1La:+nan(09A_Zaz):0:-1: +-%*1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %1La:+nan():0:-1: ++# BZ30647 %*1La:+nan():0:-1: ++# BZ30647 %1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:+nan(09A_Zaz):0:-1: + %1La:+0x0p0:0:-1: + %*1La:+0x0p0:0:-1: + %1La:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2La:-0x0p+0:0:2: + %2La:-0x0p0:1:2:-0x0: + %*2La:-0x0p0:0:2: +-%2La:-nan(09A_Zaz):0:-1: +-%*2La:-nan(09A_Zaz):0:-1: +-%2La:-nan():0:-1: +-%*2La:-nan():0:-1: +-%2La:nan():0:-1: +-%*2La:nan():0:-1: +-%2La:nan(09A_Zaz):0:-1: +-%*2La:nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan():0:-1: ++# BZ30647 %*2La:-nan():0:-1: ++# BZ30647 %2La:nan():0:-1: ++# BZ30647 %*2La:nan():0:-1: ++# BZ30647 %2La:nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:nan(09A_Zaz):0:-1: + # BZ12701 %2La:0x0p0:0:-1: + # BZ12701 %*2La:0x0p0:0:-1: + # BZ12701 %2La:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2La:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: + %2La:infinity:0:-1: + %*2La:infinity:0:-1: +-%2La:+nan():0:-1: +-%*2La:+nan():0:-1: +-%2La:+nan(09A_Zaz):0:-1: +-%*2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %2La:+nan():0:-1: ++# BZ30647 %*2La:+nan():0:-1: ++# BZ30647 %2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:+nan(09A_Zaz):0:-1: + %2La:+0x0p0:1:2:0x0: + %*2La:+0x0p0:0:2: + %2La:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3La:-0x0p+0:0:-1: + # BZ12701 %3La:-0x0p0:0:-1: + # BZ12701 %*3La:-0x0p0:0:-1: +-%3La:-nan(09A_Zaz):0:-1: +-%*3La:-nan(09A_Zaz):0:-1: +-%3La:-nan():0:-1: +-%*3La:-nan():0:-1: +-%3La:nan():1:3:nan: +-%*3La:nan():0:3: +-%3La:nan(09A_Zaz):1:3:nan: +-%*3La:nan(09A_Zaz):0:3: ++# BZ30647 %3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %3La:-nan():0:-1: ++# BZ30647 %*3La:-nan():0:-1: ++# BZ30647 %3La:nan():1:3:nan: ++# BZ30647 %*3La:nan():0:3: ++# BZ30647 %3La:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3La:nan(09A_Zaz):0:3: + %3La:0x0p0:1:3:0x0: + %*3La:0x0p0:0:3: + %3La:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3La:0xf.fffffffffffffffffffffffffff8p+16380:0:3: + %3La:infinity:1:3:inf: + %*3La:infinity:0:3: +-%3La:+nan():0:-1: +-%*3La:+nan():0:-1: +-%3La:+nan(09A_Zaz):0:-1: +-%*3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %3La:+nan():0:-1: ++# BZ30647 %*3La:+nan():0:-1: ++# BZ30647 %3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:+nan(09A_Zaz):0:-1: + # BZ12701 %3La:+0x0p0:0:-1: + # BZ12701 %*3La:+0x0p0:0:-1: + # BZ12701 %3La:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4La:-0x0p+0:0:4: + %4La:-0x0p0:1:4:-0x0: + %*4La:-0x0p0:0:4: +-%4La:-nan(09A_Zaz):1:4:-nan: +-%*4La:-nan(09A_Zaz):0:4: +-%4La:-nan():1:4:-nan: +-%*4La:-nan():0:4: +-%4La:nan():0:-1: +-%*4La:nan():0:-1: +-%4La:nan(09A_Zaz):0:-1: +-%*4La:nan(09A_Zaz):0:-1: ++# BZ30647 %4La:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4La:-nan(09A_Zaz):0:4: ++# BZ30647 %4La:-nan():1:4:-nan: ++# BZ30647 %*4La:-nan():0:4: ++# BZ30647 %4La:nan():0:-1: ++# BZ30647 %*4La:nan():0:-1: ++# BZ30647 %4La:nan(09A_Zaz):0:-1: ++# BZ30647 %*4La:nan(09A_Zaz):0:-1: + # BZ12701 %4La:0x0p0:0:-1: + # BZ12701 %*4La:0x0p0:0:-1: + # BZ12701 %4La:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4La:0xf.fffffffffffffffffffffffffff8p+16380:0:4: + %4La:infinity:0:-1: + %*4La:infinity:0:-1: +-%4La:+nan():1:4:nan: +-%*4La:+nan():0:4: +-%4La:+nan(09A_Zaz):1:4:nan: +-%*4La:+nan(09A_Zaz):0:4: ++# BZ30647 %4La:+nan():1:4:nan: ++# BZ30647 %*4La:+nan():0:4: ++# BZ30647 %4La:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4La:+nan(09A_Zaz):0:4: + %4La:+0x0p0:1:4:0x0: + %*4La:+0x0p0:0:4: + %4La:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5La:-0x0p+0:0:-1: + # BZ12701 %5La:-0x0p0:0:-1: + # BZ12701 %*5La:-0x0p0:0:-1: +-%5La:-nan(09A_Zaz):0:-1: +-%*5La:-nan(09A_Zaz):0:-1: +-%5La:-nan():0:-1: +-%*5La:-nan():0:-1: +-%5La:nan():1:5:nan: +-%*5La:nan():0:5: +-%5La:nan(09A_Zaz):0:-1: +-%*5La:nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan():0:-1: ++# BZ30647 %*5La:-nan():0:-1: ++# BZ30647 %5La:nan():1:5:nan: ++# BZ30647 %*5La:nan():0:5: ++# BZ30647 %5La:nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:nan(09A_Zaz):0:-1: + %5La:0x0p0:1:5:0x0: + %*5La:0x0p0:0:5: + # BZ12701 %5La:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5La:0xf.fffffffffffffffffffffffffff8p+16380:0:5: + %5La:infinity:0:-1: + %*5La:infinity:0:-1: +-%5La:+nan():0:-1: +-%*5La:+nan():0:-1: +-%5La:+nan(09A_Zaz):0:-1: +-%*5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %5La:+nan():0:-1: ++# BZ30647 %*5La:+nan():0:-1: ++# BZ30647 %5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:+nan(09A_Zaz):0:-1: + # BZ12701 %5La:+0x0p0:0:-1: + # BZ12701 %*5La:+0x0p0:0:-1: + # BZ12701 %5La:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6La:-0x0p+0:0:-1: + %6La:-0x0p0:1:6:-0x0: + %*6La:-0x0p0:0:6: +-%6La:-nan(09A_Zaz):0:-1: +-%*6La:-nan(09A_Zaz):0:-1: +-%6La:-nan():1:6:-nan: +-%*6La:-nan():0:6: +-%6La:nan():1:5:nan: +-%*6La:nan():0:5: +-%6La:nan(09A_Zaz):0:-1: +-%*6La:nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan():1:6:-nan: ++# BZ30647 %*6La:-nan():0:6: ++# BZ30647 %6La:nan():1:5:nan: ++# BZ30647 %*6La:nan():0:5: ++# BZ30647 %6La:nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:nan(09A_Zaz):0:-1: + %6La:0x0p0:1:5:0x0: + %*6La:0x0p0:0:5: + %6La:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6La:0xf.fffffffffffffffffffffffffff8p+16380:0:6: + %6La:infinity:0:-1: + %*6La:infinity:0:-1: +-%6La:+nan():1:6:nan: +-%*6La:+nan():0:6: +-%6La:+nan(09A_Zaz):0:-1: +-%*6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %6La:+nan():1:6:nan: ++# BZ30647 %*6La:+nan():0:6: ++# BZ30647 %6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:+nan(09A_Zaz):0:-1: + %6La:+0x0p0:1:6:0x0: + %*6La:+0x0p0:0:6: + # BZ12701 %6La:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*35La:-0x0p+0:0:7: + %35La:-0x0p0:1:6:-0x0: + %*35La:-0x0p0:0:6: +-%35La:-nan(09A_Zaz):1:13:-nan: +-%*35La:-nan(09A_Zaz):0:13: +-%35La:-nan():1:6:-nan: +-%*35La:-nan():0:6: +-%35La:nan():1:5:nan: +-%*35La:nan():0:5: +-%35La:nan(09A_Zaz):1:12:nan: +-%*35La:nan(09A_Zaz):0:12: ++# BZ30647 %35La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*35La:-nan(09A_Zaz):0:13: ++# BZ30647 %35La:-nan():1:6:-nan: ++# BZ30647 %*35La:-nan():0:6: ++# BZ30647 %35La:nan():1:5:nan: ++# BZ30647 %*35La:nan():0:5: ++# BZ30647 %35La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*35La:nan(09A_Zaz):0:12: + %35La:0x0p0:1:5:0x0: + %*35La:0x0p0:0:5: + %35La:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*35La:0xf.fffffffffffffffffffffffffff8p+16380:0:35: + %35La:infinity:1:8:inf: + %*35La:infinity:0:8: +-%35La:+nan():1:6:nan: +-%*35La:+nan():0:6: +-%35La:+nan(09A_Zaz):1:13:nan: +-%*35La:+nan(09A_Zaz):0:13: ++# BZ30647 %35La:+nan():1:6:nan: ++# BZ30647 %*35La:+nan():0:6: ++# BZ30647 %35La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*35La:+nan(09A_Zaz):0:13: + %35La:+0x0p0:1:6:0x0: + %*35La:+0x0p0:0:6: + %35La:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*53La:-0x0p+0:0:7: + %53La:-0x0p0:1:6:-0x0: + %*53La:-0x0p0:0:6: +-%53La:-nan(09A_Zaz):1:13:-nan: +-%*53La:-nan(09A_Zaz):0:13: +-%53La:-nan():1:6:-nan: +-%*53La:-nan():0:6: +-%53La:nan():1:5:nan: +-%*53La:nan():0:5: +-%53La:nan(09A_Zaz):1:12:nan: +-%*53La:nan(09A_Zaz):0:12: ++# BZ30647 %53La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*53La:-nan(09A_Zaz):0:13: ++# BZ30647 %53La:-nan():1:6:-nan: ++# BZ30647 %*53La:-nan():0:6: ++# BZ30647 %53La:nan():1:5:nan: ++# BZ30647 %*53La:nan():0:5: ++# BZ30647 %53La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*53La:nan(09A_Zaz):0:12: + %53La:0x0p0:1:5:0x0: + %*53La:0x0p0:0:5: + %53La:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*53La:0xf.fffffffffffffffffffffffffff8p+16380:0:39: + %53La:infinity:1:8:inf: + %*53La:infinity:0:8: +-%53La:+nan():1:6:nan: +-%*53La:+nan():0:6: +-%53La:+nan(09A_Zaz):1:13:nan: +-%*53La:+nan(09A_Zaz):0:13: ++# BZ30647 %53La:+nan():1:6:nan: ++# BZ30647 %*53La:+nan():0:6: ++# BZ30647 %53La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*53La:+nan(09A_Zaz):0:13: + %53La:+0x0p0:1:6:0x0: + %*53La:+0x0p0:0:6: + %53La:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5La: -0x0p+0:0:-1: + # BZ12701 %5La: -0x0p0:0:-1: + # BZ12701 %*5La: -0x0p0:0:-1: +-%5La: -nan(09A_Zaz):0:-1: +-%*5La: -nan(09A_Zaz):0:-1: +-%5La: -nan():0:-1: +-%*5La: -nan():0:-1: +-%5La: nan():1:6:nan: +-%*5La: nan():0:6: +-%5La: nan(09A_Zaz):0:-1: +-%*5La: nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan():0:-1: ++# BZ30647 %*5La: -nan():0:-1: ++# BZ30647 %5La: nan():1:6:nan: ++# BZ30647 %*5La: nan():0:6: ++# BZ30647 %5La: nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: nan(09A_Zaz):0:-1: + %5La: 0x0p0:1:6:0x0: + %*5La: 0x0p0:0:6: + # BZ12701 %5La: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5La: 0xf.fffffffffffffffffffffffffff8p+16380:0:6: + %5La: infinity:0:-1: + %*5La: infinity:0:-1: +-%5La: +nan():0:-1: +-%*5La: +nan():0:-1: +-%5La: +nan(09A_Zaz):0:-1: +-%*5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %5La: +nan():0:-1: ++# BZ30647 %*5La: +nan():0:-1: ++# BZ30647 %5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: +nan(09A_Zaz):0:-1: + # BZ12701 %5La: +0x0p0:0:-1: + # BZ12701 %*5La: +0x0p0:0:-1: + # BZ12701 %5La: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*53La: -0x0p+0:0:8: + %53La: -0x0p0:1:7:-0x0: + %*53La: -0x0p0:0:7: +-%53La: -nan(09A_Zaz):1:14:-nan: +-%*53La: -nan(09A_Zaz):0:14: +-%53La: -nan():1:7:-nan: +-%*53La: -nan():0:7: +-%53La: nan():1:6:nan: +-%*53La: nan():0:6: +-%53La: nan(09A_Zaz):1:13:nan: +-%*53La: nan(09A_Zaz):0:13: ++# BZ30647 %53La: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*53La: -nan(09A_Zaz):0:14: ++# BZ30647 %53La: -nan():1:7:-nan: ++# BZ30647 %*53La: -nan():0:7: ++# BZ30647 %53La: nan():1:6:nan: ++# BZ30647 %*53La: nan():0:6: ++# BZ30647 %53La: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*53La: nan(09A_Zaz):0:13: + %53La: 0x0p0:1:6:0x0: + %*53La: 0x0p0:0:6: + %53La: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*53La: 0xf.fffffffffffffffffffffffffff8p+16380:0:40: + %53La: infinity:1:9:inf: + %*53La: infinity:0:9: +-%53La: +nan():1:7:nan: +-%*53La: +nan():0:7: +-%53La: +nan(09A_Zaz):1:14:nan: +-%*53La: +nan(09A_Zaz):0:14: ++# BZ30647 %53La: +nan():1:7:nan: ++# BZ30647 %*53La: +nan():0:7: ++# BZ30647 %53La: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*53La: +nan(09A_Zaz):0:14: + %53La: +0x0p0:1:7:0x0: + %*53La: +0x0p0:0:7: + %53La: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input +index 7208c6e37b10942d..ddf7cf5308ecd210 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input +@@ -16,14 +16,14 @@ + %*LA:-0X0P+0:0:7: + %LA:-0X0P0:1:6:-0x0: + %*LA:-0X0P0:0:6: +-%LA:-NAN(09A_Zaz):1:13:-nan: +-%*LA:-NAN(09A_Zaz):0:13: +-%LA:-NAN():1:6:-nan: +-%*LA:-NAN():0:6: +-%LA:NAN():1:5:nan: +-%*LA:NAN():0:5: +-%LA:NAN(09A_Zaz):1:12:nan: +-%*LA:NAN(09A_Zaz):0:12: ++# BZ30647 %LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %LA:-NAN():1:6:-nan: ++# BZ30647 %*LA:-NAN():0:6: ++# BZ30647 %LA:NAN():1:5:nan: ++# BZ30647 %*LA:NAN():0:5: ++# BZ30647 %LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LA:NAN(09A_Zaz):0:12: + %LA:0X0P0:1:5:0x0: + %*LA:0X0P0:0:5: + %LA:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: + %LA:INFINITY:1:8:inf: + %*LA:INFINITY:0:8: +-%LA:+NAN():1:6:nan: +-%*LA:+NAN():0:6: +-%LA:+NAN(09A_Zaz):1:13:nan: +-%*LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %LA:+NAN():1:6:nan: ++# BZ30647 %*LA:+NAN():0:6: ++# BZ30647 %LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LA:+NAN(09A_Zaz):0:13: + %LA:+0X0P0:1:6:0x0: + %*LA:+0X0P0:0:6: + %LA:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LA:-0X0P+0:0:-1: + %1LA:-0X0P0:0:-1: + %*1LA:-0X0P0:0:-1: +-%1LA:-NAN(09A_Zaz):0:-1: +-%*1LA:-NAN(09A_Zaz):0:-1: +-%1LA:-NAN():0:-1: +-%*1LA:-NAN():0:-1: +-%1LA:NAN():0:-1: +-%*1LA:NAN():0:-1: +-%1LA:NAN(09A_Zaz):0:-1: +-%*1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN():0:-1: ++# BZ30647 %*1LA:-NAN():0:-1: ++# BZ30647 %1LA:NAN():0:-1: ++# BZ30647 %*1LA:NAN():0:-1: ++# BZ30647 %1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:NAN(09A_Zaz):0:-1: + %1LA:0X0P0:1:1:0x0: + %*1LA:0X0P0:0:1: + %1LA:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:1: + %1LA:INFINITY:0:-1: + %*1LA:INFINITY:0:-1: +-%1LA:+NAN():0:-1: +-%*1LA:+NAN():0:-1: +-%1LA:+NAN(09A_Zaz):0:-1: +-%*1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:+NAN():0:-1: ++# BZ30647 %*1LA:+NAN():0:-1: ++# BZ30647 %1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:+NAN(09A_Zaz):0:-1: + %1LA:+0X0P0:0:-1: + %*1LA:+0X0P0:0:-1: + %1LA:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LA:-0X0P+0:0:2: + %2LA:-0X0P0:1:2:-0x0: + %*2LA:-0X0P0:0:2: +-%2LA:-NAN(09A_Zaz):0:-1: +-%*2LA:-NAN(09A_Zaz):0:-1: +-%2LA:-NAN():0:-1: +-%*2LA:-NAN():0:-1: +-%2LA:NAN():0:-1: +-%*2LA:NAN():0:-1: +-%2LA:NAN(09A_Zaz):0:-1: +-%*2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN():0:-1: ++# BZ30647 %*2LA:-NAN():0:-1: ++# BZ30647 %2LA:NAN():0:-1: ++# BZ30647 %*2LA:NAN():0:-1: ++# BZ30647 %2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:NAN(09A_Zaz):0:-1: + # BZ12701 %2LA:0X0P0:0:-1: + # BZ12701 %*2LA:0X0P0:0:-1: + # BZ12701 %2LA:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: + %2LA:INFINITY:0:-1: + %*2LA:INFINITY:0:-1: +-%2LA:+NAN():0:-1: +-%*2LA:+NAN():0:-1: +-%2LA:+NAN(09A_Zaz):0:-1: +-%*2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:+NAN():0:-1: ++# BZ30647 %*2LA:+NAN():0:-1: ++# BZ30647 %2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:+NAN(09A_Zaz):0:-1: + %2LA:+0X0P0:1:2:0x0: + %*2LA:+0X0P0:0:2: + %2LA:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LA:-0X0P+0:0:-1: + # BZ12701 %3LA:-0X0P0:0:-1: + # BZ12701 %*3LA:-0X0P0:0:-1: +-%3LA:-NAN(09A_Zaz):0:-1: +-%*3LA:-NAN(09A_Zaz):0:-1: +-%3LA:-NAN():0:-1: +-%*3LA:-NAN():0:-1: +-%3LA:NAN():1:3:nan: +-%*3LA:NAN():0:3: +-%3LA:NAN(09A_Zaz):1:3:nan: +-%*3LA:NAN(09A_Zaz):0:3: ++# BZ30647 %3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:-NAN():0:-1: ++# BZ30647 %*3LA:-NAN():0:-1: ++# BZ30647 %3LA:NAN():1:3:nan: ++# BZ30647 %*3LA:NAN():0:3: ++# BZ30647 %3LA:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LA:NAN(09A_Zaz):0:3: + %3LA:0X0P0:1:3:0x0: + %*3LA:0X0P0:0:3: + %3LA:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:3: + %3LA:INFINITY:1:3:inf: + %*3LA:INFINITY:0:3: +-%3LA:+NAN():0:-1: +-%*3LA:+NAN():0:-1: +-%3LA:+NAN(09A_Zaz):0:-1: +-%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:+NAN():0:-1: ++# BZ30647 %*3LA:+NAN():0:-1: ++# BZ30647 %3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LA:+0X0P0:0:-1: + # BZ12701 %*3LA:+0X0P0:0:-1: + # BZ12701 %3LA:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LA:-0X0P+0:0:4: + %4LA:-0X0P0:1:4:-0x0: + %*4LA:-0X0P0:0:4: +-%4LA:-NAN(09A_Zaz):1:4:-nan: +-%*4LA:-NAN(09A_Zaz):0:4: +-%4LA:-NAN():1:4:-nan: +-%*4LA:-NAN():0:4: +-%4LA:NAN():0:-1: +-%*4LA:NAN():0:-1: +-%4LA:NAN(09A_Zaz):0:-1: +-%*4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LA:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LA:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:-NAN():1:4:-nan: ++# BZ30647 %*4LA:-NAN():0:4: ++# BZ30647 %4LA:NAN():0:-1: ++# BZ30647 %*4LA:NAN():0:-1: ++# BZ30647 %4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LA:NAN(09A_Zaz):0:-1: + # BZ12701 %4LA:0X0P0:0:-1: + # BZ12701 %*4LA:0X0P0:0:-1: + # BZ12701 %4LA:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: + %4LA:INFINITY:0:-1: + %*4LA:INFINITY:0:-1: +-%4LA:+NAN():1:4:nan: +-%*4LA:+NAN():0:4: +-%4LA:+NAN(09A_Zaz):1:4:nan: +-%*4LA:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:+NAN():1:4:nan: ++# BZ30647 %*4LA:+NAN():0:4: ++# BZ30647 %4LA:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LA:+NAN(09A_Zaz):0:4: + %4LA:+0X0P0:1:4:0x0: + %*4LA:+0X0P0:0:4: + %4LA:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LA:-0X0P+0:0:-1: + # BZ12701 %5LA:-0X0P0:0:-1: + # BZ12701 %*5LA:-0X0P0:0:-1: +-%5LA:-NAN(09A_Zaz):0:-1: +-%*5LA:-NAN(09A_Zaz):0:-1: +-%5LA:-NAN():0:-1: +-%*5LA:-NAN():0:-1: +-%5LA:NAN():1:5:nan: +-%*5LA:NAN():0:5: +-%5LA:NAN(09A_Zaz):0:-1: +-%*5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN():0:-1: ++# BZ30647 %*5LA:-NAN():0:-1: ++# BZ30647 %5LA:NAN():1:5:nan: ++# BZ30647 %*5LA:NAN():0:5: ++# BZ30647 %5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:NAN(09A_Zaz):0:-1: + %5LA:0X0P0:1:5:0x0: + %*5LA:0X0P0:0:5: + # BZ12701 %5LA:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: + %5LA:INFINITY:0:-1: + %*5LA:INFINITY:0:-1: +-%5LA:+NAN():0:-1: +-%*5LA:+NAN():0:-1: +-%5LA:+NAN(09A_Zaz):0:-1: +-%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:+NAN():0:-1: ++# BZ30647 %*5LA:+NAN():0:-1: ++# BZ30647 %5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LA:+0X0P0:0:-1: + # BZ12701 %*5LA:+0X0P0:0:-1: + # BZ12701 %5LA:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LA:-0X0P+0:0:-1: + %6LA:-0X0P0:1:6:-0x0: + %*6LA:-0X0P0:0:6: +-%6LA:-NAN(09A_Zaz):0:-1: +-%*6LA:-NAN(09A_Zaz):0:-1: +-%6LA:-NAN():1:6:-nan: +-%*6LA:-NAN():0:6: +-%6LA:NAN():1:5:nan: +-%*6LA:NAN():0:5: +-%6LA:NAN(09A_Zaz):0:-1: +-%*6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN():1:6:-nan: ++# BZ30647 %*6LA:-NAN():0:6: ++# BZ30647 %6LA:NAN():1:5:nan: ++# BZ30647 %*6LA:NAN():0:5: ++# BZ30647 %6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:NAN(09A_Zaz):0:-1: + %6LA:0X0P0:1:5:0x0: + %*6LA:0X0P0:0:5: + %6LA:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: + %6LA:INFINITY:0:-1: + %*6LA:INFINITY:0:-1: +-%6LA:+NAN():1:6:nan: +-%*6LA:+NAN():0:6: +-%6LA:+NAN(09A_Zaz):0:-1: +-%*6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:+NAN():1:6:nan: ++# BZ30647 %*6LA:+NAN():0:6: ++# BZ30647 %6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:+NAN(09A_Zaz):0:-1: + %6LA:+0X0P0:1:6:0x0: + %*6LA:+0X0P0:0:6: + # BZ12701 %6LA:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*35LA:-0X0P+0:0:7: + %35LA:-0X0P0:1:6:-0x0: + %*35LA:-0X0P0:0:6: +-%35LA:-NAN(09A_Zaz):1:13:-nan: +-%*35LA:-NAN(09A_Zaz):0:13: +-%35LA:-NAN():1:6:-nan: +-%*35LA:-NAN():0:6: +-%35LA:NAN():1:5:nan: +-%*35LA:NAN():0:5: +-%35LA:NAN(09A_Zaz):1:12:nan: +-%*35LA:NAN(09A_Zaz):0:12: ++# BZ30647 %35LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*35LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %35LA:-NAN():1:6:-nan: ++# BZ30647 %*35LA:-NAN():0:6: ++# BZ30647 %35LA:NAN():1:5:nan: ++# BZ30647 %*35LA:NAN():0:5: ++# BZ30647 %35LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*35LA:NAN(09A_Zaz):0:12: + %35LA:0X0P0:1:5:0x0: + %*35LA:0X0P0:0:5: + %35LA:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*35LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:35: + %35LA:INFINITY:1:8:inf: + %*35LA:INFINITY:0:8: +-%35LA:+NAN():1:6:nan: +-%*35LA:+NAN():0:6: +-%35LA:+NAN(09A_Zaz):1:13:nan: +-%*35LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %35LA:+NAN():1:6:nan: ++# BZ30647 %*35LA:+NAN():0:6: ++# BZ30647 %35LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*35LA:+NAN(09A_Zaz):0:13: + %35LA:+0X0P0:1:6:0x0: + %*35LA:+0X0P0:0:6: + %35LA:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*53LA:-0X0P+0:0:7: + %53LA:-0X0P0:1:6:-0x0: + %*53LA:-0X0P0:0:6: +-%53LA:-NAN(09A_Zaz):1:13:-nan: +-%*53LA:-NAN(09A_Zaz):0:13: +-%53LA:-NAN():1:6:-nan: +-%*53LA:-NAN():0:6: +-%53LA:NAN():1:5:nan: +-%*53LA:NAN():0:5: +-%53LA:NAN(09A_Zaz):1:12:nan: +-%*53LA:NAN(09A_Zaz):0:12: ++# BZ30647 %53LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*53LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %53LA:-NAN():1:6:-nan: ++# BZ30647 %*53LA:-NAN():0:6: ++# BZ30647 %53LA:NAN():1:5:nan: ++# BZ30647 %*53LA:NAN():0:5: ++# BZ30647 %53LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*53LA:NAN(09A_Zaz):0:12: + %53LA:0X0P0:1:5:0x0: + %*53LA:0X0P0:0:5: + %53LA:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*53LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: + %53LA:INFINITY:1:8:inf: + %*53LA:INFINITY:0:8: +-%53LA:+NAN():1:6:nan: +-%*53LA:+NAN():0:6: +-%53LA:+NAN(09A_Zaz):1:13:nan: +-%*53LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %53LA:+NAN():1:6:nan: ++# BZ30647 %*53LA:+NAN():0:6: ++# BZ30647 %53LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*53LA:+NAN(09A_Zaz):0:13: + %53LA:+0X0P0:1:6:0x0: + %*53LA:+0X0P0:0:6: + %53LA:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LA: -0X0P+0:0:-1: + # BZ12701 %5LA: -0X0P0:0:-1: + # BZ12701 %*5LA: -0X0P0:0:-1: +-%5LA: -NAN(09A_Zaz):0:-1: +-%*5LA: -NAN(09A_Zaz):0:-1: +-%5LA: -NAN():0:-1: +-%*5LA: -NAN():0:-1: +-%5LA: NAN():1:6:nan: +-%*5LA: NAN():0:6: +-%5LA: NAN(09A_Zaz):0:-1: +-%*5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN():0:-1: ++# BZ30647 %*5LA: -NAN():0:-1: ++# BZ30647 %5LA: NAN():1:6:nan: ++# BZ30647 %*5LA: NAN():0:6: ++# BZ30647 %5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: NAN(09A_Zaz):0:-1: + %5LA: 0X0P0:1:6:0x0: + %*5LA: 0X0P0:0:6: + # BZ12701 %5LA: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: + %5LA: INFINITY:0:-1: + %*5LA: INFINITY:0:-1: +-%5LA: +NAN():0:-1: +-%*5LA: +NAN():0:-1: +-%5LA: +NAN(09A_Zaz):0:-1: +-%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: +NAN():0:-1: ++# BZ30647 %*5LA: +NAN():0:-1: ++# BZ30647 %5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LA: +0X0P0:0:-1: + # BZ12701 %*5LA: +0X0P0:0:-1: + # BZ12701 %5LA: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*53LA: -0X0P+0:0:8: + %53LA: -0X0P0:1:7:-0x0: + %*53LA: -0X0P0:0:7: +-%53LA: -NAN(09A_Zaz):1:14:-nan: +-%*53LA: -NAN(09A_Zaz):0:14: +-%53LA: -NAN():1:7:-nan: +-%*53LA: -NAN():0:7: +-%53LA: NAN():1:6:nan: +-%*53LA: NAN():0:6: +-%53LA: NAN(09A_Zaz):1:13:nan: +-%*53LA: NAN(09A_Zaz):0:13: ++# BZ30647 %53LA: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*53LA: -NAN(09A_Zaz):0:14: ++# BZ30647 %53LA: -NAN():1:7:-nan: ++# BZ30647 %*53LA: -NAN():0:7: ++# BZ30647 %53LA: NAN():1:6:nan: ++# BZ30647 %*53LA: NAN():0:6: ++# BZ30647 %53LA: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*53LA: NAN(09A_Zaz):0:13: + %53LA: 0X0P0:1:6:0x0: + %*53LA: 0X0P0:0:6: + %53LA: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*53LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: + %53LA: INFINITY:1:9:inf: + %*53LA: INFINITY:0:9: +-%53LA: +NAN():1:7:nan: +-%*53LA: +NAN():0:7: +-%53LA: +NAN(09A_Zaz):1:14:nan: +-%*53LA: +NAN(09A_Zaz):0:14: ++# BZ30647 %53LA: +NAN():1:7:nan: ++# BZ30647 %*53LA: +NAN():0:7: ++# BZ30647 %53LA: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*53LA: +NAN(09A_Zaz):0:14: + %53LA: +0X0P0:1:7:0x0: + %*53LA: +0X0P0:0:7: + %53LA: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input +index 0e65a3706cce1ce0..53f8cdf609836624 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input +@@ -16,14 +16,14 @@ + %*Le:-0e+0:0:5: + %Le:-0e0:1:4:-0x0: + %*Le:-0e0:0:4: +-%Le:-nan(09A_Zaz):1:13:-nan: +-%*Le:-nan(09A_Zaz):0:13: +-%Le:-nan():1:6:-nan: +-%*Le:-nan():0:6: +-%Le:nan():1:5:nan: +-%*Le:nan():0:5: +-%Le:nan(09A_Zaz):1:12:nan: +-%*Le:nan(09A_Zaz):0:12: ++# BZ30647 %Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Le:-nan(09A_Zaz):0:13: ++# BZ30647 %Le:-nan():1:6:-nan: ++# BZ30647 %*Le:-nan():0:6: ++# BZ30647 %Le:nan():1:5:nan: ++# BZ30647 %*Le:nan():0:5: ++# BZ30647 %Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Le:nan(09A_Zaz):0:12: + %Le:0e0:1:3:0x0: + %*Le:0e0:0:3: + %Le:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*Le:1.18973149535723176508575932662800702e+4932:0:43: + %Le:infinity:1:8:inf: + %*Le:infinity:0:8: +-%Le:+nan():1:6:nan: +-%*Le:+nan():0:6: +-%Le:+nan(09A_Zaz):1:13:nan: +-%*Le:+nan(09A_Zaz):0:13: ++# BZ30647 %Le:+nan():1:6:nan: ++# BZ30647 %*Le:+nan():0:6: ++# BZ30647 %Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Le:+nan(09A_Zaz):0:13: + %Le:+0e0:1:4:0x0: + %*Le:+0e0:0:4: + %Le:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1Le:-0e+0:0:-1: + %1Le:-0e0:0:-1: + %*1Le:-0e0:0:-1: +-%1Le:-nan(09A_Zaz):0:-1: +-%*1Le:-nan(09A_Zaz):0:-1: +-%1Le:-nan():0:-1: +-%*1Le:-nan():0:-1: +-%1Le:nan():0:-1: +-%*1Le:nan():0:-1: +-%1Le:nan(09A_Zaz):0:-1: +-%*1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan():0:-1: ++# BZ30647 %*1Le:-nan():0:-1: ++# BZ30647 %1Le:nan():0:-1: ++# BZ30647 %*1Le:nan():0:-1: ++# BZ30647 %1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:nan(09A_Zaz):0:-1: + %1Le:0e0:1:1:0x0: + %*1Le:0e0:0:1: + %1Le:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Le:1.18973149535723176508575932662800702e+4932:0:1: + %1Le:infinity:0:-1: + %*1Le:infinity:0:-1: +-%1Le:+nan():0:-1: +-%*1Le:+nan():0:-1: +-%1Le:+nan(09A_Zaz):0:-1: +-%*1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:+nan():0:-1: ++# BZ30647 %*1Le:+nan():0:-1: ++# BZ30647 %1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:+nan(09A_Zaz):0:-1: + %1Le:+0e0:0:-1: + %*1Le:+0e0:0:-1: + %1Le:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Le:-0e+0:0:2: + %2Le:-0e0:1:2:-0x0: + %*2Le:-0e0:0:2: +-%2Le:-nan(09A_Zaz):0:-1: +-%*2Le:-nan(09A_Zaz):0:-1: +-%2Le:-nan():0:-1: +-%*2Le:-nan():0:-1: +-%2Le:nan():0:-1: +-%*2Le:nan():0:-1: +-%2Le:nan(09A_Zaz):0:-1: +-%*2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan():0:-1: ++# BZ30647 %*2Le:-nan():0:-1: ++# BZ30647 %2Le:nan():0:-1: ++# BZ30647 %*2Le:nan():0:-1: ++# BZ30647 %2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:nan(09A_Zaz):0:-1: + # BZ12701 %2Le:0e0:0:-1: + # BZ12701 %*2Le:0e0:0:-1: + # BZ12701 %2Le:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2Le:1.18973149535723176508575932662800702e+4932:0:2: + %2Le:infinity:0:-1: + %*2Le:infinity:0:-1: +-%2Le:+nan():0:-1: +-%*2Le:+nan():0:-1: +-%2Le:+nan(09A_Zaz):0:-1: +-%*2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:+nan():0:-1: ++# BZ30647 %*2Le:+nan():0:-1: ++# BZ30647 %2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:+nan(09A_Zaz):0:-1: + %2Le:+0e0:1:2:0x0: + %*2Le:+0e0:0:2: + %2Le:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Le:-0e+0:0:-1: + # BZ12701 %3Le:-0e0:0:-1: + # BZ12701 %*3Le:-0e0:0:-1: +-%3Le:-nan(09A_Zaz):0:-1: +-%*3Le:-nan(09A_Zaz):0:-1: +-%3Le:-nan():0:-1: +-%*3Le:-nan():0:-1: +-%3Le:nan():1:3:nan: +-%*3Le:nan():0:3: +-%3Le:nan(09A_Zaz):1:3:nan: +-%*3Le:nan(09A_Zaz):0:3: ++# BZ30647 %3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:-nan():0:-1: ++# BZ30647 %*3Le:-nan():0:-1: ++# BZ30647 %3Le:nan():1:3:nan: ++# BZ30647 %*3Le:nan():0:3: ++# BZ30647 %3Le:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Le:nan(09A_Zaz):0:3: + %3Le:0e0:1:3:0x0: + %*3Le:0e0:0:3: + # BZ12701 %3Le:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3Le:1.18973149535723176508575932662800702e+4932:0:3: + %3Le:infinity:1:3:inf: + %*3Le:infinity:0:3: +-%3Le:+nan():0:-1: +-%*3Le:+nan():0:-1: +-%3Le:+nan(09A_Zaz):0:-1: +-%*3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:+nan():0:-1: ++# BZ30647 %*3Le:+nan():0:-1: ++# BZ30647 %3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:+nan(09A_Zaz):0:-1: + # BZ12701 %3Le:+0e0:0:-1: + # BZ12701 %*3Le:+0e0:0:-1: + # BZ12701 %3Le:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4Le:-0e+0:0:-1: + %4Le:-0e0:1:4:-0x0: + %*4Le:-0e0:0:4: +-%4Le:-nan(09A_Zaz):1:4:-nan: +-%*4Le:-nan(09A_Zaz):0:4: +-%4Le:-nan():1:4:-nan: +-%*4Le:-nan():0:4: +-%4Le:nan():0:-1: +-%*4Le:nan():0:-1: +-%4Le:nan(09A_Zaz):0:-1: +-%*4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %4Le:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Le:-nan(09A_Zaz):0:4: ++# BZ30647 %4Le:-nan():1:4:-nan: ++# BZ30647 %*4Le:-nan():0:4: ++# BZ30647 %4Le:nan():0:-1: ++# BZ30647 %*4Le:nan():0:-1: ++# BZ30647 %4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Le:nan(09A_Zaz):0:-1: + %4Le:0e0:1:3:0x0: + %*4Le:0e0:0:3: + %4Le:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4Le:1.18973149535723176508575932662800702e+4932:0:4: + %4Le:infinity:0:-1: + %*4Le:infinity:0:-1: +-%4Le:+nan():1:4:nan: +-%*4Le:+nan():0:4: +-%4Le:+nan(09A_Zaz):1:4:nan: +-%*4Le:+nan(09A_Zaz):0:4: ++# BZ30647 %4Le:+nan():1:4:nan: ++# BZ30647 %*4Le:+nan():0:4: ++# BZ30647 %4Le:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Le:+nan(09A_Zaz):0:4: + %4Le:+0e0:1:4:0x0: + %*4Le:+0e0:0:4: + # BZ12701 %4Le:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40Le:-0e+0:0:5: + %40Le:-0e0:1:4:-0x0: + %*40Le:-0e0:0:4: +-%40Le:-nan(09A_Zaz):1:13:-nan: +-%*40Le:-nan(09A_Zaz):0:13: +-%40Le:-nan():1:6:-nan: +-%*40Le:-nan():0:6: +-%40Le:nan():1:5:nan: +-%*40Le:nan():0:5: +-%40Le:nan(09A_Zaz):1:12:nan: +-%*40Le:nan(09A_Zaz):0:12: ++# BZ30647 %40Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40Le:-nan(09A_Zaz):0:13: ++# BZ30647 %40Le:-nan():1:6:-nan: ++# BZ30647 %*40Le:-nan():0:6: ++# BZ30647 %40Le:nan():1:5:nan: ++# BZ30647 %*40Le:nan():0:5: ++# BZ30647 %40Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40Le:nan(09A_Zaz):0:12: + %40Le:0e0:1:3:0x0: + %*40Le:0e0:0:3: + %40Le:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40Le:1.18973149535723176508575932662800702e+4932:0:40: + %40Le:infinity:1:8:inf: + %*40Le:infinity:0:8: +-%40Le:+nan():1:6:nan: +-%*40Le:+nan():0:6: +-%40Le:+nan(09A_Zaz):1:13:nan: +-%*40Le:+nan(09A_Zaz):0:13: ++# BZ30647 %40Le:+nan():1:6:nan: ++# BZ30647 %*40Le:+nan():0:6: ++# BZ30647 %40Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40Le:+nan(09A_Zaz):0:13: + %40Le:+0e0:1:4:0x0: + %*40Le:+0e0:0:4: + %40Le:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48Le:-0e+0:0:5: + %48Le:-0e0:1:4:-0x0: + %*48Le:-0e0:0:4: +-%48Le:-nan(09A_Zaz):1:13:-nan: +-%*48Le:-nan(09A_Zaz):0:13: +-%48Le:-nan():1:6:-nan: +-%*48Le:-nan():0:6: +-%48Le:nan():1:5:nan: +-%*48Le:nan():0:5: +-%48Le:nan(09A_Zaz):1:12:nan: +-%*48Le:nan(09A_Zaz):0:12: ++# BZ30647 %48Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48Le:-nan(09A_Zaz):0:13: ++# BZ30647 %48Le:-nan():1:6:-nan: ++# BZ30647 %*48Le:-nan():0:6: ++# BZ30647 %48Le:nan():1:5:nan: ++# BZ30647 %*48Le:nan():0:5: ++# BZ30647 %48Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48Le:nan(09A_Zaz):0:12: + %48Le:0e0:1:3:0x0: + %*48Le:0e0:0:3: + %48Le:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48Le:1.18973149535723176508575932662800702e+4932:0:43: + %48Le:infinity:1:8:inf: + %*48Le:infinity:0:8: +-%48Le:+nan():1:6:nan: +-%*48Le:+nan():0:6: +-%48Le:+nan(09A_Zaz):1:13:nan: +-%*48Le:+nan(09A_Zaz):0:13: ++# BZ30647 %48Le:+nan():1:6:nan: ++# BZ30647 %*48Le:+nan():0:6: ++# BZ30647 %48Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le:+nan(09A_Zaz):0:13: + %48Le:+0e0:1:4:0x0: + %*48Le:+0e0:0:4: + %48Le:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3Le: -0e+0:0:-1: + # BZ12701 %3Le: -0e0:0:-1: + # BZ12701 %*3Le: -0e0:0:-1: +-%3Le: -nan(09A_Zaz):0:-1: +-%*3Le: -nan(09A_Zaz):0:-1: +-%3Le: -nan():0:-1: +-%*3Le: -nan():0:-1: +-%3Le: nan():1:4:nan: +-%*3Le: nan():0:4: +-%3Le: nan(09A_Zaz):1:4:nan: +-%*3Le: nan(09A_Zaz):0:4: ++# BZ30647 %3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: -nan():0:-1: ++# BZ30647 %*3Le: -nan():0:-1: ++# BZ30647 %3Le: nan():1:4:nan: ++# BZ30647 %*3Le: nan():0:4: ++# BZ30647 %3Le: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Le: nan(09A_Zaz):0:4: + %3Le: 0e0:1:4:0x0: + %*3Le: 0e0:0:4: + # BZ12701 %3Le: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3Le: 1.18973149535723176508575932662800702e+4932:0:4: + %3Le: infinity:1:4:inf: + %*3Le: infinity:0:4: +-%3Le: +nan():0:-1: +-%*3Le: +nan():0:-1: +-%3Le: +nan(09A_Zaz):0:-1: +-%*3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: +nan():0:-1: ++# BZ30647 %*3Le: +nan():0:-1: ++# BZ30647 %3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: +nan(09A_Zaz):0:-1: + # BZ12701 %3Le: +0e0:0:-1: + # BZ12701 %*3Le: +0e0:0:-1: + # BZ12701 %3Le: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48Le: -0e+0:0:6: + %48Le: -0e0:1:5:-0x0: + %*48Le: -0e0:0:5: +-%48Le: -nan(09A_Zaz):1:14:-nan: +-%*48Le: -nan(09A_Zaz):0:14: +-%48Le: -nan():1:7:-nan: +-%*48Le: -nan():0:7: +-%48Le: nan():1:6:nan: +-%*48Le: nan():0:6: +-%48Le: nan(09A_Zaz):1:13:nan: +-%*48Le: nan(09A_Zaz):0:13: ++# BZ30647 %48Le: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48Le: -nan(09A_Zaz):0:14: ++# BZ30647 %48Le: -nan():1:7:-nan: ++# BZ30647 %*48Le: -nan():0:7: ++# BZ30647 %48Le: nan():1:6:nan: ++# BZ30647 %*48Le: nan():0:6: ++# BZ30647 %48Le: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le: nan(09A_Zaz):0:13: + %48Le: 0e0:1:4:0x0: + %*48Le: 0e0:0:4: + %48Le: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48Le: 1.18973149535723176508575932662800702e+4932:0:44: + %48Le: infinity:1:9:inf: + %*48Le: infinity:0:9: +-%48Le: +nan():1:7:nan: +-%*48Le: +nan():0:7: +-%48Le: +nan(09A_Zaz):1:14:nan: +-%*48Le: +nan(09A_Zaz):0:14: ++# BZ30647 %48Le: +nan():1:7:nan: ++# BZ30647 %*48Le: +nan():0:7: ++# BZ30647 %48Le: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48Le: +nan(09A_Zaz):0:14: + %48Le: +0e0:1:5:0x0: + %*48Le: +0e0:0:5: + %48Le: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input +index 8992c73c91384735..9d3882fddff4503b 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input +@@ -16,14 +16,14 @@ + %*LE:-0E+0:0:5: + %LE:-0E0:1:4:-0x0: + %*LE:-0E0:0:4: +-%LE:-NAN(09A_Zaz):1:13:-nan: +-%*LE:-NAN(09A_Zaz):0:13: +-%LE:-NAN():1:6:-nan: +-%*LE:-NAN():0:6: +-%LE:NAN():1:5:nan: +-%*LE:NAN():0:5: +-%LE:NAN(09A_Zaz):1:12:nan: +-%*LE:NAN(09A_Zaz):0:12: ++# BZ30647 %LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %LE:-NAN():1:6:-nan: ++# BZ30647 %*LE:-NAN():0:6: ++# BZ30647 %LE:NAN():1:5:nan: ++# BZ30647 %*LE:NAN():0:5: ++# BZ30647 %LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LE:NAN(09A_Zaz):0:12: + %LE:0E0:1:3:0x0: + %*LE:0E0:0:3: + %LE:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*LE:1.18973149535723176508575932662800702E+4932:0:43: + %LE:INFINITY:1:8:inf: + %*LE:INFINITY:0:8: +-%LE:+NAN():1:6:nan: +-%*LE:+NAN():0:6: +-%LE:+NAN(09A_Zaz):1:13:nan: +-%*LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %LE:+NAN():1:6:nan: ++# BZ30647 %*LE:+NAN():0:6: ++# BZ30647 %LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LE:+NAN(09A_Zaz):0:13: + %LE:+0E0:1:4:0x0: + %*LE:+0E0:0:4: + %LE:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1LE:-0E+0:0:-1: + %1LE:-0E0:0:-1: + %*1LE:-0E0:0:-1: +-%1LE:-NAN(09A_Zaz):0:-1: +-%*1LE:-NAN(09A_Zaz):0:-1: +-%1LE:-NAN():0:-1: +-%*1LE:-NAN():0:-1: +-%1LE:NAN():0:-1: +-%*1LE:NAN():0:-1: +-%1LE:NAN(09A_Zaz):0:-1: +-%*1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN():0:-1: ++# BZ30647 %*1LE:-NAN():0:-1: ++# BZ30647 %1LE:NAN():0:-1: ++# BZ30647 %*1LE:NAN():0:-1: ++# BZ30647 %1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:NAN(09A_Zaz):0:-1: + %1LE:0E0:1:1:0x0: + %*1LE:0E0:0:1: + %1LE:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LE:1.18973149535723176508575932662800702E+4932:0:1: + %1LE:INFINITY:0:-1: + %*1LE:INFINITY:0:-1: +-%1LE:+NAN():0:-1: +-%*1LE:+NAN():0:-1: +-%1LE:+NAN(09A_Zaz):0:-1: +-%*1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:+NAN():0:-1: ++# BZ30647 %*1LE:+NAN():0:-1: ++# BZ30647 %1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:+NAN(09A_Zaz):0:-1: + %1LE:+0E0:0:-1: + %*1LE:+0E0:0:-1: + %1LE:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LE:-0E+0:0:2: + %2LE:-0E0:1:2:-0x0: + %*2LE:-0E0:0:2: +-%2LE:-NAN(09A_Zaz):0:-1: +-%*2LE:-NAN(09A_Zaz):0:-1: +-%2LE:-NAN():0:-1: +-%*2LE:-NAN():0:-1: +-%2LE:NAN():0:-1: +-%*2LE:NAN():0:-1: +-%2LE:NAN(09A_Zaz):0:-1: +-%*2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN():0:-1: ++# BZ30647 %*2LE:-NAN():0:-1: ++# BZ30647 %2LE:NAN():0:-1: ++# BZ30647 %*2LE:NAN():0:-1: ++# BZ30647 %2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:NAN(09A_Zaz):0:-1: + # BZ12701 %2LE:0E0:0:-1: + # BZ12701 %*2LE:0E0:0:-1: + # BZ12701 %2LE:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2LE:1.18973149535723176508575932662800702E+4932:0:2: + %2LE:INFINITY:0:-1: + %*2LE:INFINITY:0:-1: +-%2LE:+NAN():0:-1: +-%*2LE:+NAN():0:-1: +-%2LE:+NAN(09A_Zaz):0:-1: +-%*2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:+NAN():0:-1: ++# BZ30647 %*2LE:+NAN():0:-1: ++# BZ30647 %2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:+NAN(09A_Zaz):0:-1: + %2LE:+0E0:1:2:0x0: + %*2LE:+0E0:0:2: + %2LE:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LE:-0E+0:0:-1: + # BZ12701 %3LE:-0E0:0:-1: + # BZ12701 %*3LE:-0E0:0:-1: +-%3LE:-NAN(09A_Zaz):0:-1: +-%*3LE:-NAN(09A_Zaz):0:-1: +-%3LE:-NAN():0:-1: +-%*3LE:-NAN():0:-1: +-%3LE:NAN():1:3:nan: +-%*3LE:NAN():0:3: +-%3LE:NAN(09A_Zaz):1:3:nan: +-%*3LE:NAN(09A_Zaz):0:3: ++# BZ30647 %3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:-NAN():0:-1: ++# BZ30647 %*3LE:-NAN():0:-1: ++# BZ30647 %3LE:NAN():1:3:nan: ++# BZ30647 %*3LE:NAN():0:3: ++# BZ30647 %3LE:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LE:NAN(09A_Zaz):0:3: + %3LE:0E0:1:3:0x0: + %*3LE:0E0:0:3: + # BZ12701 %3LE:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3LE:1.18973149535723176508575932662800702E+4932:0:3: + %3LE:INFINITY:1:3:inf: + %*3LE:INFINITY:0:3: +-%3LE:+NAN():0:-1: +-%*3LE:+NAN():0:-1: +-%3LE:+NAN(09A_Zaz):0:-1: +-%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:+NAN():0:-1: ++# BZ30647 %*3LE:+NAN():0:-1: ++# BZ30647 %3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LE:+0E0:0:-1: + # BZ12701 %*3LE:+0E0:0:-1: + # BZ12701 %3LE:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4LE:-0E+0:0:-1: + %4LE:-0E0:1:4:-0x0: + %*4LE:-0E0:0:4: +-%4LE:-NAN(09A_Zaz):1:4:-nan: +-%*4LE:-NAN(09A_Zaz):0:4: +-%4LE:-NAN():1:4:-nan: +-%*4LE:-NAN():0:4: +-%4LE:NAN():0:-1: +-%*4LE:NAN():0:-1: +-%4LE:NAN(09A_Zaz):0:-1: +-%*4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LE:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LE:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:-NAN():1:4:-nan: ++# BZ30647 %*4LE:-NAN():0:4: ++# BZ30647 %4LE:NAN():0:-1: ++# BZ30647 %*4LE:NAN():0:-1: ++# BZ30647 %4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LE:NAN(09A_Zaz):0:-1: + %4LE:0E0:1:3:0x0: + %*4LE:0E0:0:3: + %4LE:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4LE:1.18973149535723176508575932662800702E+4932:0:4: + %4LE:INFINITY:0:-1: + %*4LE:INFINITY:0:-1: +-%4LE:+NAN():1:4:nan: +-%*4LE:+NAN():0:4: +-%4LE:+NAN(09A_Zaz):1:4:nan: +-%*4LE:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:+NAN():1:4:nan: ++# BZ30647 %*4LE:+NAN():0:4: ++# BZ30647 %4LE:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LE:+NAN(09A_Zaz):0:4: + %4LE:+0E0:1:4:0x0: + %*4LE:+0E0:0:4: + # BZ12701 %4LE:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40LE:-0E+0:0:5: + %40LE:-0E0:1:4:-0x0: + %*40LE:-0E0:0:4: +-%40LE:-NAN(09A_Zaz):1:13:-nan: +-%*40LE:-NAN(09A_Zaz):0:13: +-%40LE:-NAN():1:6:-nan: +-%*40LE:-NAN():0:6: +-%40LE:NAN():1:5:nan: +-%*40LE:NAN():0:5: +-%40LE:NAN(09A_Zaz):1:12:nan: +-%*40LE:NAN(09A_Zaz):0:12: ++# BZ30647 %40LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:-NAN():1:6:-nan: ++# BZ30647 %*40LE:-NAN():0:6: ++# BZ30647 %40LE:NAN():1:5:nan: ++# BZ30647 %*40LE:NAN():0:5: ++# BZ30647 %40LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40LE:NAN(09A_Zaz):0:12: + %40LE:0E0:1:3:0x0: + %*40LE:0E0:0:3: + %40LE:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40LE:1.18973149535723176508575932662800702E+4932:0:40: + %40LE:INFINITY:1:8:inf: + %*40LE:INFINITY:0:8: +-%40LE:+NAN():1:6:nan: +-%*40LE:+NAN():0:6: +-%40LE:+NAN(09A_Zaz):1:13:nan: +-%*40LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:+NAN():1:6:nan: ++# BZ30647 %*40LE:+NAN():0:6: ++# BZ30647 %40LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40LE:+NAN(09A_Zaz):0:13: + %40LE:+0E0:1:4:0x0: + %*40LE:+0E0:0:4: + %40LE:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48LE:-0E+0:0:5: + %48LE:-0E0:1:4:-0x0: + %*48LE:-0E0:0:4: +-%48LE:-NAN(09A_Zaz):1:13:-nan: +-%*48LE:-NAN(09A_Zaz):0:13: +-%48LE:-NAN():1:6:-nan: +-%*48LE:-NAN():0:6: +-%48LE:NAN():1:5:nan: +-%*48LE:NAN():0:5: +-%48LE:NAN(09A_Zaz):1:12:nan: +-%*48LE:NAN(09A_Zaz):0:12: ++# BZ30647 %48LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:-NAN():1:6:-nan: ++# BZ30647 %*48LE:-NAN():0:6: ++# BZ30647 %48LE:NAN():1:5:nan: ++# BZ30647 %*48LE:NAN():0:5: ++# BZ30647 %48LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48LE:NAN(09A_Zaz):0:12: + %48LE:0E0:1:3:0x0: + %*48LE:0E0:0:3: + %48LE:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48LE:1.18973149535723176508575932662800702E+4932:0:43: + %48LE:INFINITY:1:8:inf: + %*48LE:INFINITY:0:8: +-%48LE:+NAN():1:6:nan: +-%*48LE:+NAN():0:6: +-%48LE:+NAN(09A_Zaz):1:13:nan: +-%*48LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:+NAN():1:6:nan: ++# BZ30647 %*48LE:+NAN():0:6: ++# BZ30647 %48LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE:+NAN(09A_Zaz):0:13: + %48LE:+0E0:1:4:0x0: + %*48LE:+0E0:0:4: + %48LE:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3LE: -0E+0:0:-1: + # BZ12701 %3LE: -0E0:0:-1: + # BZ12701 %*3LE: -0E0:0:-1: +-%3LE: -NAN(09A_Zaz):0:-1: +-%*3LE: -NAN(09A_Zaz):0:-1: +-%3LE: -NAN():0:-1: +-%*3LE: -NAN():0:-1: +-%3LE: NAN():1:4:nan: +-%*3LE: NAN():0:4: +-%3LE: NAN(09A_Zaz):1:4:nan: +-%*3LE: NAN(09A_Zaz):0:4: ++# BZ30647 %3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: -NAN():0:-1: ++# BZ30647 %*3LE: -NAN():0:-1: ++# BZ30647 %3LE: NAN():1:4:nan: ++# BZ30647 %*3LE: NAN():0:4: ++# BZ30647 %3LE: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LE: NAN(09A_Zaz):0:4: + %3LE: 0E0:1:4:0x0: + %*3LE: 0E0:0:4: + # BZ12701 %3LE: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3LE: 1.18973149535723176508575932662800702E+4932:0:4: + %3LE: INFINITY:1:4:inf: + %*3LE: INFINITY:0:4: +-%3LE: +NAN():0:-1: +-%*3LE: +NAN():0:-1: +-%3LE: +NAN(09A_Zaz):0:-1: +-%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: +NAN():0:-1: ++# BZ30647 %*3LE: +NAN():0:-1: ++# BZ30647 %3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: +NAN(09A_Zaz):0:-1: + # BZ12701 %3LE: +0E0:0:-1: + # BZ12701 %*3LE: +0E0:0:-1: + # BZ12701 %3LE: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48LE: -0E+0:0:6: + %48LE: -0E0:1:5:-0x0: + %*48LE: -0E0:0:5: +-%48LE: -NAN(09A_Zaz):1:14:-nan: +-%*48LE: -NAN(09A_Zaz):0:14: +-%48LE: -NAN():1:7:-nan: +-%*48LE: -NAN():0:7: +-%48LE: NAN():1:6:nan: +-%*48LE: NAN():0:6: +-%48LE: NAN(09A_Zaz):1:13:nan: +-%*48LE: NAN(09A_Zaz):0:13: ++# BZ30647 %48LE: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48LE: -NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: -NAN():1:7:-nan: ++# BZ30647 %*48LE: -NAN():0:7: ++# BZ30647 %48LE: NAN():1:6:nan: ++# BZ30647 %*48LE: NAN():0:6: ++# BZ30647 %48LE: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE: NAN(09A_Zaz):0:13: + %48LE: 0E0:1:4:0x0: + %*48LE: 0E0:0:4: + %48LE: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48LE: 1.18973149535723176508575932662800702E+4932:0:44: + %48LE: INFINITY:1:9:inf: + %*48LE: INFINITY:0:9: +-%48LE: +NAN():1:7:nan: +-%*48LE: +NAN():0:7: +-%48LE: +NAN(09A_Zaz):1:14:nan: +-%*48LE: +NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: +NAN():1:7:nan: ++# BZ30647 %*48LE: +NAN():0:7: ++# BZ30647 %48LE: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48LE: +NAN(09A_Zaz):0:14: + %48LE: +0E0:1:5:0x0: + %*48LE: +0E0:0:5: + %48LE: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input +index 955ef173eb417670..23666ef5731ec708 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input +@@ -16,14 +16,14 @@ + %*Lf:-0.0:0:4: + %Lf:-0:1:2:-0x0: + %*Lf:-0:0:2: +-%Lf:-nan(09A_Zaz):1:13:-nan: +-%*Lf:-nan(09A_Zaz):0:13: +-%Lf:-nan():1:6:-nan: +-%*Lf:-nan():0:6: +-%Lf:nan():1:5:nan: +-%*Lf:nan():0:5: +-%Lf:nan(09A_Zaz):1:12:nan: +-%*Lf:nan(09A_Zaz):0:12: ++# BZ30647 %Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %Lf:-nan():1:6:-nan: ++# BZ30647 %*Lf:-nan():0:6: ++# BZ30647 %Lf:nan():1:5:nan: ++# BZ30647 %*Lf:nan():0:5: ++# BZ30647 %Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lf:nan(09A_Zaz):0:12: + %Lf:0:1:1:0x0: + %*Lf:0:0:1: + %Lf:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: + %Lf:infinity:1:8:inf: + %*Lf:infinity:0:8: +-%Lf:+nan():1:6:nan: +-%*Lf:+nan():0:6: +-%Lf:+nan(09A_Zaz):1:13:nan: +-%*Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %Lf:+nan():1:6:nan: ++# BZ30647 %*Lf:+nan():0:6: ++# BZ30647 %Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lf:+nan(09A_Zaz):0:13: + %Lf:+0:1:2:0x0: + %*Lf:+0:0:2: + %Lf:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1Lf:-0.0:0:-1: + %1Lf:-0:0:-1: + %*1Lf:-0:0:-1: +-%1Lf:-nan(09A_Zaz):0:-1: +-%*1Lf:-nan(09A_Zaz):0:-1: +-%1Lf:-nan():0:-1: +-%*1Lf:-nan():0:-1: +-%1Lf:nan():0:-1: +-%*1Lf:nan():0:-1: +-%1Lf:nan(09A_Zaz):0:-1: +-%*1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan():0:-1: ++# BZ30647 %*1Lf:-nan():0:-1: ++# BZ30647 %1Lf:nan():0:-1: ++# BZ30647 %*1Lf:nan():0:-1: ++# BZ30647 %1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:nan(09A_Zaz):0:-1: + %1Lf:0:1:1:0x0: + %*1Lf:0:0:1: + %1Lf:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:1: + %1Lf:infinity:0:-1: + %*1Lf:infinity:0:-1: +-%1Lf:+nan():0:-1: +-%*1Lf:+nan():0:-1: +-%1Lf:+nan(09A_Zaz):0:-1: +-%*1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:+nan():0:-1: ++# BZ30647 %*1Lf:+nan():0:-1: ++# BZ30647 %1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:+nan(09A_Zaz):0:-1: + %1Lf:+0:0:-1: + %*1Lf:+0:0:-1: + %1Lf:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lf:-0.0:0:2: + %2Lf:-0:1:2:-0x0: + %*2Lf:-0:0:2: +-%2Lf:-nan(09A_Zaz):0:-1: +-%*2Lf:-nan(09A_Zaz):0:-1: +-%2Lf:-nan():0:-1: +-%*2Lf:-nan():0:-1: +-%2Lf:nan():0:-1: +-%*2Lf:nan():0:-1: +-%2Lf:nan(09A_Zaz):0:-1: +-%*2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan():0:-1: ++# BZ30647 %*2Lf:-nan():0:-1: ++# BZ30647 %2Lf:nan():0:-1: ++# BZ30647 %*2Lf:nan():0:-1: ++# BZ30647 %2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:nan(09A_Zaz):0:-1: + %2Lf:0:1:1:0x0: + %*2Lf:0:0:1: + %2Lf:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: + %2Lf:infinity:0:-1: + %*2Lf:infinity:0:-1: +-%2Lf:+nan():0:-1: +-%*2Lf:+nan():0:-1: +-%2Lf:+nan(09A_Zaz):0:-1: +-%*2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:+nan():0:-1: ++# BZ30647 %*2Lf:+nan():0:-1: ++# BZ30647 %2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:+nan(09A_Zaz):0:-1: + %2Lf:+0:1:2:0x0: + %*2Lf:+0:0:2: + %2Lf:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3Lf:-0.0:0:3: + %3Lf:-0:1:2:-0x0: + %*3Lf:-0:0:2: +-%3Lf:-nan(09A_Zaz):0:-1: +-%*3Lf:-nan(09A_Zaz):0:-1: +-%3Lf:-nan():0:-1: +-%*3Lf:-nan():0:-1: +-%3Lf:nan():1:3:nan: +-%*3Lf:nan():0:3: +-%3Lf:nan(09A_Zaz):1:3:nan: +-%*3Lf:nan(09A_Zaz):0:3: ++# BZ30647 %3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:-nan():0:-1: ++# BZ30647 %*3Lf:-nan():0:-1: ++# BZ30647 %3Lf:nan():1:3:nan: ++# BZ30647 %*3Lf:nan():0:3: ++# BZ30647 %3Lf:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lf:nan(09A_Zaz):0:3: + %3Lf:0:1:1:0x0: + %*3Lf:0:0:1: + %3Lf:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: + %3Lf:infinity:1:3:inf: + %*3Lf:infinity:0:3: +-%3Lf:+nan():0:-1: +-%*3Lf:+nan():0:-1: +-%3Lf:+nan(09A_Zaz):0:-1: +-%*3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:+nan():0:-1: ++# BZ30647 %*3Lf:+nan():0:-1: ++# BZ30647 %3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:+nan(09A_Zaz):0:-1: + %3Lf:+0:1:2:0x0: + %*3Lf:+0:0:2: + %3Lf:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4935Lf:-0.0:0:4: + %4935Lf:-0:1:2:-0x0: + %*4935Lf:-0:0:2: +-%4935Lf:-nan(09A_Zaz):1:13:-nan: +-%*4935Lf:-nan(09A_Zaz):0:13: +-%4935Lf:-nan():1:6:-nan: +-%*4935Lf:-nan():0:6: +-%4935Lf:nan():1:5:nan: +-%*4935Lf:nan():0:5: +-%4935Lf:nan(09A_Zaz):1:12:nan: +-%*4935Lf:nan(09A_Zaz):0:12: ++# BZ30647 %4935Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*4935Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %4935Lf:-nan():1:6:-nan: ++# BZ30647 %*4935Lf:-nan():0:6: ++# BZ30647 %4935Lf:nan():1:5:nan: ++# BZ30647 %*4935Lf:nan():0:5: ++# BZ30647 %4935Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*4935Lf:nan(09A_Zaz):0:12: + %4935Lf:0:1:1:0x0: + %*4935Lf:0:0:1: + %4935Lf:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4935Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: + %4935Lf:infinity:1:8:inf: + %*4935Lf:infinity:0:8: +-%4935Lf:+nan():1:6:nan: +-%*4935Lf:+nan():0:6: +-%4935Lf:+nan(09A_Zaz):1:13:nan: +-%*4935Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %4935Lf:+nan():1:6:nan: ++# BZ30647 %*4935Lf:+nan():0:6: ++# BZ30647 %4935Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*4935Lf:+nan(09A_Zaz):0:13: + %4935Lf:+0:1:2:0x0: + %*4935Lf:+0:0:2: + %4935Lf:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*5000Lf:-0.0:0:4: + %5000Lf:-0:1:2:-0x0: + %*5000Lf:-0:0:2: +-%5000Lf:-nan(09A_Zaz):1:13:-nan: +-%*5000Lf:-nan(09A_Zaz):0:13: +-%5000Lf:-nan():1:6:-nan: +-%*5000Lf:-nan():0:6: +-%5000Lf:nan():1:5:nan: +-%*5000Lf:nan():0:5: +-%5000Lf:nan(09A_Zaz):1:12:nan: +-%*5000Lf:nan(09A_Zaz):0:12: ++# BZ30647 %5000Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*5000Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf:-nan():1:6:-nan: ++# BZ30647 %*5000Lf:-nan():0:6: ++# BZ30647 %5000Lf:nan():1:5:nan: ++# BZ30647 %*5000Lf:nan():0:5: ++# BZ30647 %5000Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*5000Lf:nan(09A_Zaz):0:12: + %5000Lf:0:1:1:0x0: + %*5000Lf:0:0:1: + %5000Lf:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*5000Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: + %5000Lf:infinity:1:8:inf: + %*5000Lf:infinity:0:8: +-%5000Lf:+nan():1:6:nan: +-%*5000Lf:+nan():0:6: +-%5000Lf:+nan(09A_Zaz):1:13:nan: +-%*5000Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf:+nan():1:6:nan: ++# BZ30647 %*5000Lf:+nan():0:6: ++# BZ30647 %5000Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*5000Lf:+nan(09A_Zaz):0:13: + %5000Lf:+0:1:2:0x0: + %*5000Lf:+0:0:2: + %5000Lf:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3Lf: -0.0:0:4: + %3Lf: -0:1:3:-0x0: + %*3Lf: -0:0:3: +-%3Lf: -nan(09A_Zaz):0:-1: +-%*3Lf: -nan(09A_Zaz):0:-1: +-%3Lf: -nan():0:-1: +-%*3Lf: -nan():0:-1: +-%3Lf: nan():1:4:nan: +-%*3Lf: nan():0:4: +-%3Lf: nan(09A_Zaz):1:4:nan: +-%*3Lf: nan(09A_Zaz):0:4: ++# BZ30647 %3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: -nan():0:-1: ++# BZ30647 %*3Lf: -nan():0:-1: ++# BZ30647 %3Lf: nan():1:4:nan: ++# BZ30647 %*3Lf: nan():0:4: ++# BZ30647 %3Lf: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Lf: nan(09A_Zaz):0:4: + %3Lf: 0:1:2:0x0: + %*3Lf: 0:0:2: + %3Lf: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: + %3Lf: infinity:1:4:inf: + %*3Lf: infinity:0:4: +-%3Lf: +nan():0:-1: +-%*3Lf: +nan():0:-1: +-%3Lf: +nan(09A_Zaz):0:-1: +-%*3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: +nan():0:-1: ++# BZ30647 %*3Lf: +nan():0:-1: ++# BZ30647 %3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: +nan(09A_Zaz):0:-1: + %3Lf: +0:1:3:0x0: + %*3Lf: +0:0:3: + %3Lf: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*5000Lf: -0.0:0:5: + %5000Lf: -0:1:3:-0x0: + %*5000Lf: -0:0:3: +-%5000Lf: -nan(09A_Zaz):1:14:-nan: +-%*5000Lf: -nan(09A_Zaz):0:14: +-%5000Lf: -nan():1:7:-nan: +-%*5000Lf: -nan():0:7: +-%5000Lf: nan():1:6:nan: +-%*5000Lf: nan():0:6: +-%5000Lf: nan(09A_Zaz):1:13:nan: +-%*5000Lf: nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*5000Lf: -nan(09A_Zaz):0:14: ++# BZ30647 %5000Lf: -nan():1:7:-nan: ++# BZ30647 %*5000Lf: -nan():0:7: ++# BZ30647 %5000Lf: nan():1:6:nan: ++# BZ30647 %*5000Lf: nan():0:6: ++# BZ30647 %5000Lf: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*5000Lf: nan(09A_Zaz):0:13: + %5000Lf: 0:1:2:0x0: + %*5000Lf: 0:0:2: + %5000Lf: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*5000Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: + %5000Lf: infinity:1:9:inf: + %*5000Lf: infinity:0:9: +-%5000Lf: +nan():1:7:nan: +-%*5000Lf: +nan():0:7: +-%5000Lf: +nan(09A_Zaz):1:14:nan: +-%*5000Lf: +nan(09A_Zaz):0:14: ++# BZ30647 %5000Lf: +nan():1:7:nan: ++# BZ30647 %*5000Lf: +nan():0:7: ++# BZ30647 %5000Lf: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*5000Lf: +nan(09A_Zaz):0:14: + %5000Lf: +0:1:3:0x0: + %*5000Lf: +0:0:3: + %5000Lf: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input +index b3e73df5d359fca7..b88246dce4da083b 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input +@@ -16,14 +16,14 @@ + %*LF:-0.0:0:4: + %LF:-0:1:2:-0x0: + %*LF:-0:0:2: +-%LF:-NAN(09A_Zaz):1:13:-nan: +-%*LF:-NAN(09A_Zaz):0:13: +-%LF:-NAN():1:6:-nan: +-%*LF:-NAN():0:6: +-%LF:NAN():1:5:nan: +-%*LF:NAN():0:5: +-%LF:NAN(09A_Zaz):1:12:nan: +-%*LF:NAN(09A_Zaz):0:12: ++# BZ30647 %LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %LF:-NAN():1:6:-nan: ++# BZ30647 %*LF:-NAN():0:6: ++# BZ30647 %LF:NAN():1:5:nan: ++# BZ30647 %*LF:NAN():0:5: ++# BZ30647 %LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LF:NAN(09A_Zaz):0:12: + %LF:0:1:1:0x0: + %*LF:0:0:1: + %LF:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: + %LF:INFINITY:1:8:inf: + %*LF:INFINITY:0:8: +-%LF:+NAN():1:6:nan: +-%*LF:+NAN():0:6: +-%LF:+NAN(09A_Zaz):1:13:nan: +-%*LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %LF:+NAN():1:6:nan: ++# BZ30647 %*LF:+NAN():0:6: ++# BZ30647 %LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LF:+NAN(09A_Zaz):0:13: + %LF:+0:1:2:0x0: + %*LF:+0:0:2: + %LF:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1LF:-0.0:0:-1: + %1LF:-0:0:-1: + %*1LF:-0:0:-1: +-%1LF:-NAN(09A_Zaz):0:-1: +-%*1LF:-NAN(09A_Zaz):0:-1: +-%1LF:-NAN():0:-1: +-%*1LF:-NAN():0:-1: +-%1LF:NAN():0:-1: +-%*1LF:NAN():0:-1: +-%1LF:NAN(09A_Zaz):0:-1: +-%*1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN():0:-1: ++# BZ30647 %*1LF:-NAN():0:-1: ++# BZ30647 %1LF:NAN():0:-1: ++# BZ30647 %*1LF:NAN():0:-1: ++# BZ30647 %1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:NAN(09A_Zaz):0:-1: + %1LF:0:1:1:0x0: + %*1LF:0:0:1: + %1LF:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:1: + %1LF:INFINITY:0:-1: + %*1LF:INFINITY:0:-1: +-%1LF:+NAN():0:-1: +-%*1LF:+NAN():0:-1: +-%1LF:+NAN(09A_Zaz):0:-1: +-%*1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:+NAN():0:-1: ++# BZ30647 %*1LF:+NAN():0:-1: ++# BZ30647 %1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:+NAN(09A_Zaz):0:-1: + %1LF:+0:0:-1: + %*1LF:+0:0:-1: + %1LF:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2LF:-0.0:0:2: + %2LF:-0:1:2:-0x0: + %*2LF:-0:0:2: +-%2LF:-NAN(09A_Zaz):0:-1: +-%*2LF:-NAN(09A_Zaz):0:-1: +-%2LF:-NAN():0:-1: +-%*2LF:-NAN():0:-1: +-%2LF:NAN():0:-1: +-%*2LF:NAN():0:-1: +-%2LF:NAN(09A_Zaz):0:-1: +-%*2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN():0:-1: ++# BZ30647 %*2LF:-NAN():0:-1: ++# BZ30647 %2LF:NAN():0:-1: ++# BZ30647 %*2LF:NAN():0:-1: ++# BZ30647 %2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:NAN(09A_Zaz):0:-1: + %2LF:0:1:1:0x0: + %*2LF:0:0:1: + %2LF:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: + %2LF:INFINITY:0:-1: + %*2LF:INFINITY:0:-1: +-%2LF:+NAN():0:-1: +-%*2LF:+NAN():0:-1: +-%2LF:+NAN(09A_Zaz):0:-1: +-%*2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:+NAN():0:-1: ++# BZ30647 %*2LF:+NAN():0:-1: ++# BZ30647 %2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:+NAN(09A_Zaz):0:-1: + %2LF:+0:1:2:0x0: + %*2LF:+0:0:2: + %2LF:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3LF:-0.0:0:3: + %3LF:-0:1:2:-0x0: + %*3LF:-0:0:2: +-%3LF:-NAN(09A_Zaz):0:-1: +-%*3LF:-NAN(09A_Zaz):0:-1: +-%3LF:-NAN():0:-1: +-%*3LF:-NAN():0:-1: +-%3LF:NAN():1:3:nan: +-%*3LF:NAN():0:3: +-%3LF:NAN(09A_Zaz):1:3:nan: +-%*3LF:NAN(09A_Zaz):0:3: ++# BZ30647 %3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:-NAN():0:-1: ++# BZ30647 %*3LF:-NAN():0:-1: ++# BZ30647 %3LF:NAN():1:3:nan: ++# BZ30647 %*3LF:NAN():0:3: ++# BZ30647 %3LF:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LF:NAN(09A_Zaz):0:3: + %3LF:0:1:1:0x0: + %*3LF:0:0:1: + %3LF:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: + %3LF:INFINITY:1:3:inf: + %*3LF:INFINITY:0:3: +-%3LF:+NAN():0:-1: +-%*3LF:+NAN():0:-1: +-%3LF:+NAN(09A_Zaz):0:-1: +-%*3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:+NAN():0:-1: ++# BZ30647 %*3LF:+NAN():0:-1: ++# BZ30647 %3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:+NAN(09A_Zaz):0:-1: + %3LF:+0:1:2:0x0: + %*3LF:+0:0:2: + %3LF:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4935LF:-0.0:0:4: + %4935LF:-0:1:2:-0x0: + %*4935LF:-0:0:2: +-%4935LF:-NAN(09A_Zaz):1:13:-nan: +-%*4935LF:-NAN(09A_Zaz):0:13: +-%4935LF:-NAN():1:6:-nan: +-%*4935LF:-NAN():0:6: +-%4935LF:NAN():1:5:nan: +-%*4935LF:NAN():0:5: +-%4935LF:NAN(09A_Zaz):1:12:nan: +-%*4935LF:NAN(09A_Zaz):0:12: ++# BZ30647 %4935LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*4935LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %4935LF:-NAN():1:6:-nan: ++# BZ30647 %*4935LF:-NAN():0:6: ++# BZ30647 %4935LF:NAN():1:5:nan: ++# BZ30647 %*4935LF:NAN():0:5: ++# BZ30647 %4935LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*4935LF:NAN(09A_Zaz):0:12: + %4935LF:0:1:1:0x0: + %*4935LF:0:0:1: + %4935LF:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4935LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: + %4935LF:INFINITY:1:8:inf: + %*4935LF:INFINITY:0:8: +-%4935LF:+NAN():1:6:nan: +-%*4935LF:+NAN():0:6: +-%4935LF:+NAN(09A_Zaz):1:13:nan: +-%*4935LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %4935LF:+NAN():1:6:nan: ++# BZ30647 %*4935LF:+NAN():0:6: ++# BZ30647 %4935LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*4935LF:+NAN(09A_Zaz):0:13: + %4935LF:+0:1:2:0x0: + %*4935LF:+0:0:2: + %4935LF:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*5000LF:-0.0:0:4: + %5000LF:-0:1:2:-0x0: + %*5000LF:-0:0:2: +-%5000LF:-NAN(09A_Zaz):1:13:-nan: +-%*5000LF:-NAN(09A_Zaz):0:13: +-%5000LF:-NAN():1:6:-nan: +-%*5000LF:-NAN():0:6: +-%5000LF:NAN():1:5:nan: +-%*5000LF:NAN():0:5: +-%5000LF:NAN(09A_Zaz):1:12:nan: +-%*5000LF:NAN(09A_Zaz):0:12: ++# BZ30647 %5000LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*5000LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF:-NAN():1:6:-nan: ++# BZ30647 %*5000LF:-NAN():0:6: ++# BZ30647 %5000LF:NAN():1:5:nan: ++# BZ30647 %*5000LF:NAN():0:5: ++# BZ30647 %5000LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*5000LF:NAN(09A_Zaz):0:12: + %5000LF:0:1:1:0x0: + %*5000LF:0:0:1: + %5000LF:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*5000LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: + %5000LF:INFINITY:1:8:inf: + %*5000LF:INFINITY:0:8: +-%5000LF:+NAN():1:6:nan: +-%*5000LF:+NAN():0:6: +-%5000LF:+NAN(09A_Zaz):1:13:nan: +-%*5000LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF:+NAN():1:6:nan: ++# BZ30647 %*5000LF:+NAN():0:6: ++# BZ30647 %5000LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*5000LF:+NAN(09A_Zaz):0:13: + %5000LF:+0:1:2:0x0: + %*5000LF:+0:0:2: + %5000LF:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3LF: -0.0:0:4: + %3LF: -0:1:3:-0x0: + %*3LF: -0:0:3: +-%3LF: -NAN(09A_Zaz):0:-1: +-%*3LF: -NAN(09A_Zaz):0:-1: +-%3LF: -NAN():0:-1: +-%*3LF: -NAN():0:-1: +-%3LF: NAN():1:4:nan: +-%*3LF: NAN():0:4: +-%3LF: NAN(09A_Zaz):1:4:nan: +-%*3LF: NAN(09A_Zaz):0:4: ++# BZ30647 %3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: -NAN():0:-1: ++# BZ30647 %*3LF: -NAN():0:-1: ++# BZ30647 %3LF: NAN():1:4:nan: ++# BZ30647 %*3LF: NAN():0:4: ++# BZ30647 %3LF: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LF: NAN(09A_Zaz):0:4: + %3LF: 0:1:2:0x0: + %*3LF: 0:0:2: + %3LF: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: + %3LF: INFINITY:1:4:inf: + %*3LF: INFINITY:0:4: +-%3LF: +NAN():0:-1: +-%*3LF: +NAN():0:-1: +-%3LF: +NAN(09A_Zaz):0:-1: +-%*3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: +NAN():0:-1: ++# BZ30647 %*3LF: +NAN():0:-1: ++# BZ30647 %3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: +NAN(09A_Zaz):0:-1: + %3LF: +0:1:3:0x0: + %*3LF: +0:0:3: + %3LF: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*5000LF: -0.0:0:5: + %5000LF: -0:1:3:-0x0: + %*5000LF: -0:0:3: +-%5000LF: -NAN(09A_Zaz):1:14:-nan: +-%*5000LF: -NAN(09A_Zaz):0:14: +-%5000LF: -NAN():1:7:-nan: +-%*5000LF: -NAN():0:7: +-%5000LF: NAN():1:6:nan: +-%*5000LF: NAN():0:6: +-%5000LF: NAN(09A_Zaz):1:13:nan: +-%*5000LF: NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*5000LF: -NAN(09A_Zaz):0:14: ++# BZ30647 %5000LF: -NAN():1:7:-nan: ++# BZ30647 %*5000LF: -NAN():0:7: ++# BZ30647 %5000LF: NAN():1:6:nan: ++# BZ30647 %*5000LF: NAN():0:6: ++# BZ30647 %5000LF: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*5000LF: NAN(09A_Zaz):0:13: + %5000LF: 0:1:2:0x0: + %*5000LF: 0:0:2: + %5000LF: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*5000LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: + %5000LF: INFINITY:1:9:inf: + %*5000LF: INFINITY:0:9: +-%5000LF: +NAN():1:7:nan: +-%*5000LF: +NAN():0:7: +-%5000LF: +NAN(09A_Zaz):1:14:nan: +-%*5000LF: +NAN(09A_Zaz):0:14: ++# BZ30647 %5000LF: +NAN():1:7:nan: ++# BZ30647 %*5000LF: +NAN():0:7: ++# BZ30647 %5000LF: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*5000LF: +NAN(09A_Zaz):0:14: + %5000LF: +0:1:3:0x0: + %*5000LF: +0:0:3: + %5000LF: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input +index 64560b8b9900015b..2ab11b0bd393735c 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input +@@ -16,14 +16,14 @@ + %*Lg:-0x0p+0:0:7: + %Lg:-0x0p0:1:6:-0x0: + %*Lg:-0x0p0:0:6: +-%Lg:-nan(09A_Zaz):1:13:-nan: +-%*Lg:-nan(09A_Zaz):0:13: +-%Lg:-nan():1:6:-nan: +-%*Lg:-nan():0:6: +-%Lg:nan():1:5:nan: +-%*Lg:nan():0:5: +-%Lg:nan(09A_Zaz):1:12:nan: +-%*Lg:nan(09A_Zaz):0:12: ++# BZ30647 %Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %Lg:-nan():1:6:-nan: ++# BZ30647 %*Lg:-nan():0:6: ++# BZ30647 %Lg:nan():1:5:nan: ++# BZ30647 %*Lg:nan():0:5: ++# BZ30647 %Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lg:nan(09A_Zaz):0:12: + %Lg:0x0p0:1:5:0x0: + %*Lg:0x0p0:0:5: + %Lg:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:39: + %Lg:infinity:1:8:inf: + %*Lg:infinity:0:8: +-%Lg:+nan():1:6:nan: +-%*Lg:+nan():0:6: +-%Lg:+nan(09A_Zaz):1:13:nan: +-%*Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %Lg:+nan():1:6:nan: ++# BZ30647 %*Lg:+nan():0:6: ++# BZ30647 %Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lg:+nan(09A_Zaz):0:13: + %Lg:+0x0p0:1:6:0x0: + %*Lg:+0x0p0:0:6: + %Lg:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1Lg:-0x0p+0:0:-1: + %1Lg:-0x0p0:0:-1: + %*1Lg:-0x0p0:0:-1: +-%1Lg:-nan(09A_Zaz):0:-1: +-%*1Lg:-nan(09A_Zaz):0:-1: +-%1Lg:-nan():0:-1: +-%*1Lg:-nan():0:-1: +-%1Lg:nan():0:-1: +-%*1Lg:nan():0:-1: +-%1Lg:nan(09A_Zaz):0:-1: +-%*1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan():0:-1: ++# BZ30647 %*1Lg:-nan():0:-1: ++# BZ30647 %1Lg:nan():0:-1: ++# BZ30647 %*1Lg:nan():0:-1: ++# BZ30647 %1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:nan(09A_Zaz):0:-1: + %1Lg:0x0p0:1:1:0x0: + %*1Lg:0x0p0:0:1: + %1Lg:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:1: + %1Lg:infinity:0:-1: + %*1Lg:infinity:0:-1: +-%1Lg:+nan():0:-1: +-%*1Lg:+nan():0:-1: +-%1Lg:+nan(09A_Zaz):0:-1: +-%*1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:+nan():0:-1: ++# BZ30647 %*1Lg:+nan():0:-1: ++# BZ30647 %1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:+nan(09A_Zaz):0:-1: + %1Lg:+0x0p0:0:-1: + %*1Lg:+0x0p0:0:-1: + %1Lg:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lg:-0x0p+0:0:2: + %2Lg:-0x0p0:1:2:-0x0: + %*2Lg:-0x0p0:0:2: +-%2Lg:-nan(09A_Zaz):0:-1: +-%*2Lg:-nan(09A_Zaz):0:-1: +-%2Lg:-nan():0:-1: +-%*2Lg:-nan():0:-1: +-%2Lg:nan():0:-1: +-%*2Lg:nan():0:-1: +-%2Lg:nan(09A_Zaz):0:-1: +-%*2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan():0:-1: ++# BZ30647 %*2Lg:-nan():0:-1: ++# BZ30647 %2Lg:nan():0:-1: ++# BZ30647 %*2Lg:nan():0:-1: ++# BZ30647 %2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:nan(09A_Zaz):0:-1: + # BZ12701 %2Lg:0x0p0:0:-1: + # BZ12701 %*2Lg:0x0p0:0:-1: + # BZ12701 %2Lg:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: + %2Lg:infinity:0:-1: + %*2Lg:infinity:0:-1: +-%2Lg:+nan():0:-1: +-%*2Lg:+nan():0:-1: +-%2Lg:+nan(09A_Zaz):0:-1: +-%*2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:+nan():0:-1: ++# BZ30647 %*2Lg:+nan():0:-1: ++# BZ30647 %2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:+nan(09A_Zaz):0:-1: + %2Lg:+0x0p0:1:2:0x0: + %*2Lg:+0x0p0:0:2: + %2Lg:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Lg:-0x0p+0:0:-1: + # BZ12701 %3Lg:-0x0p0:0:-1: + # BZ12701 %*3Lg:-0x0p0:0:-1: +-%3Lg:-nan(09A_Zaz):0:-1: +-%*3Lg:-nan(09A_Zaz):0:-1: +-%3Lg:-nan():0:-1: +-%*3Lg:-nan():0:-1: +-%3Lg:nan():1:3:nan: +-%*3Lg:nan():0:3: +-%3Lg:nan(09A_Zaz):1:3:nan: +-%*3Lg:nan(09A_Zaz):0:3: ++# BZ30647 %3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:-nan():0:-1: ++# BZ30647 %*3Lg:-nan():0:-1: ++# BZ30647 %3Lg:nan():1:3:nan: ++# BZ30647 %*3Lg:nan():0:3: ++# BZ30647 %3Lg:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lg:nan(09A_Zaz):0:3: + %3Lg:0x0p0:1:3:0x0: + %*3Lg:0x0p0:0:3: + %3Lg:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:3: + %3Lg:infinity:1:3:inf: + %*3Lg:infinity:0:3: +-%3Lg:+nan():0:-1: +-%*3Lg:+nan():0:-1: +-%3Lg:+nan(09A_Zaz):0:-1: +-%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:+nan():0:-1: ++# BZ30647 %*3Lg:+nan():0:-1: ++# BZ30647 %3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %3Lg:+0x0p0:0:-1: + # BZ12701 %*3Lg:+0x0p0:0:-1: + # BZ12701 %3Lg:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4Lg:-0x0p+0:0:4: + %4Lg:-0x0p0:1:4:-0x0: + %*4Lg:-0x0p0:0:4: +-%4Lg:-nan(09A_Zaz):1:4:-nan: +-%*4Lg:-nan(09A_Zaz):0:4: +-%4Lg:-nan():1:4:-nan: +-%*4Lg:-nan():0:4: +-%4Lg:nan():0:-1: +-%*4Lg:nan():0:-1: +-%4Lg:nan(09A_Zaz):0:-1: +-%*4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %4Lg:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Lg:-nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:-nan():1:4:-nan: ++# BZ30647 %*4Lg:-nan():0:4: ++# BZ30647 %4Lg:nan():0:-1: ++# BZ30647 %*4Lg:nan():0:-1: ++# BZ30647 %4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Lg:nan(09A_Zaz):0:-1: + # BZ12701 %4Lg:0x0p0:0:-1: + # BZ12701 %*4Lg:0x0p0:0:-1: + # BZ12701 %4Lg:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:4: + %4Lg:infinity:0:-1: + %*4Lg:infinity:0:-1: +-%4Lg:+nan():1:4:nan: +-%*4Lg:+nan():0:4: +-%4Lg:+nan(09A_Zaz):1:4:nan: +-%*4Lg:+nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:+nan():1:4:nan: ++# BZ30647 %*4Lg:+nan():0:4: ++# BZ30647 %4Lg:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Lg:+nan(09A_Zaz):0:4: + %4Lg:+0x0p0:1:4:0x0: + %*4Lg:+0x0p0:0:4: + %4Lg:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5Lg:-0x0p+0:0:-1: + # BZ12701 %5Lg:-0x0p0:0:-1: + # BZ12701 %*5Lg:-0x0p0:0:-1: +-%5Lg:-nan(09A_Zaz):0:-1: +-%*5Lg:-nan(09A_Zaz):0:-1: +-%5Lg:-nan():0:-1: +-%*5Lg:-nan():0:-1: +-%5Lg:nan():1:5:nan: +-%*5Lg:nan():0:5: +-%5Lg:nan(09A_Zaz):0:-1: +-%*5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan():0:-1: ++# BZ30647 %*5Lg:-nan():0:-1: ++# BZ30647 %5Lg:nan():1:5:nan: ++# BZ30647 %*5Lg:nan():0:5: ++# BZ30647 %5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:nan(09A_Zaz):0:-1: + %5Lg:0x0p0:1:5:0x0: + %*5Lg:0x0p0:0:5: + # BZ12701 %5Lg:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:5: + %5Lg:infinity:0:-1: + %*5Lg:infinity:0:-1: +-%5Lg:+nan():0:-1: +-%*5Lg:+nan():0:-1: +-%5Lg:+nan(09A_Zaz):0:-1: +-%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:+nan():0:-1: ++# BZ30647 %*5Lg:+nan():0:-1: ++# BZ30647 %5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %5Lg:+0x0p0:0:-1: + # BZ12701 %*5Lg:+0x0p0:0:-1: + # BZ12701 %5Lg:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6Lg:-0x0p+0:0:-1: + %6Lg:-0x0p0:1:6:-0x0: + %*6Lg:-0x0p0:0:6: +-%6Lg:-nan(09A_Zaz):0:-1: +-%*6Lg:-nan(09A_Zaz):0:-1: +-%6Lg:-nan():1:6:-nan: +-%*6Lg:-nan():0:6: +-%6Lg:nan():1:5:nan: +-%*6Lg:nan():0:5: +-%6Lg:nan(09A_Zaz):0:-1: +-%*6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan():1:6:-nan: ++# BZ30647 %*6Lg:-nan():0:6: ++# BZ30647 %6Lg:nan():1:5:nan: ++# BZ30647 %*6Lg:nan():0:5: ++# BZ30647 %6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:nan(09A_Zaz):0:-1: + %6Lg:0x0p0:1:5:0x0: + %*6Lg:0x0p0:0:5: + %6Lg:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:6: + %6Lg:infinity:0:-1: + %*6Lg:infinity:0:-1: +-%6Lg:+nan():1:6:nan: +-%*6Lg:+nan():0:6: +-%6Lg:+nan(09A_Zaz):0:-1: +-%*6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:+nan():1:6:nan: ++# BZ30647 %*6Lg:+nan():0:6: ++# BZ30647 %6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:+nan(09A_Zaz):0:-1: + %6Lg:+0x0p0:1:6:0x0: + %*6Lg:+0x0p0:0:6: + # BZ12701 %6Lg:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*35Lg:-0x0p+0:0:7: + %35Lg:-0x0p0:1:6:-0x0: + %*35Lg:-0x0p0:0:6: +-%35Lg:-nan(09A_Zaz):1:13:-nan: +-%*35Lg:-nan(09A_Zaz):0:13: +-%35Lg:-nan():1:6:-nan: +-%*35Lg:-nan():0:6: +-%35Lg:nan():1:5:nan: +-%*35Lg:nan():0:5: +-%35Lg:nan(09A_Zaz):1:12:nan: +-%*35Lg:nan(09A_Zaz):0:12: ++# BZ30647 %35Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*35Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %35Lg:-nan():1:6:-nan: ++# BZ30647 %*35Lg:-nan():0:6: ++# BZ30647 %35Lg:nan():1:5:nan: ++# BZ30647 %*35Lg:nan():0:5: ++# BZ30647 %35Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*35Lg:nan(09A_Zaz):0:12: + %35Lg:0x0p0:1:5:0x0: + %*35Lg:0x0p0:0:5: + %35Lg:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*35Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:35: + %35Lg:infinity:1:8:inf: + %*35Lg:infinity:0:8: +-%35Lg:+nan():1:6:nan: +-%*35Lg:+nan():0:6: +-%35Lg:+nan(09A_Zaz):1:13:nan: +-%*35Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %35Lg:+nan():1:6:nan: ++# BZ30647 %*35Lg:+nan():0:6: ++# BZ30647 %35Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*35Lg:+nan(09A_Zaz):0:13: + %35Lg:+0x0p0:1:6:0x0: + %*35Lg:+0x0p0:0:6: + %35Lg:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*53Lg:-0x0p+0:0:7: + %53Lg:-0x0p0:1:6:-0x0: + %*53Lg:-0x0p0:0:6: +-%53Lg:-nan(09A_Zaz):1:13:-nan: +-%*53Lg:-nan(09A_Zaz):0:13: +-%53Lg:-nan():1:6:-nan: +-%*53Lg:-nan():0:6: +-%53Lg:nan():1:5:nan: +-%*53Lg:nan():0:5: +-%53Lg:nan(09A_Zaz):1:12:nan: +-%*53Lg:nan(09A_Zaz):0:12: ++# BZ30647 %53Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*53Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %53Lg:-nan():1:6:-nan: ++# BZ30647 %*53Lg:-nan():0:6: ++# BZ30647 %53Lg:nan():1:5:nan: ++# BZ30647 %*53Lg:nan():0:5: ++# BZ30647 %53Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*53Lg:nan(09A_Zaz):0:12: + %53Lg:0x0p0:1:5:0x0: + %*53Lg:0x0p0:0:5: + %53Lg:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*53Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:39: + %53Lg:infinity:1:8:inf: + %*53Lg:infinity:0:8: +-%53Lg:+nan():1:6:nan: +-%*53Lg:+nan():0:6: +-%53Lg:+nan(09A_Zaz):1:13:nan: +-%*53Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %53Lg:+nan():1:6:nan: ++# BZ30647 %*53Lg:+nan():0:6: ++# BZ30647 %53Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*53Lg:+nan(09A_Zaz):0:13: + %53Lg:+0x0p0:1:6:0x0: + %*53Lg:+0x0p0:0:6: + %53Lg:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5Lg: -0x0p+0:0:-1: + # BZ12701 %5Lg: -0x0p0:0:-1: + # BZ12701 %*5Lg: -0x0p0:0:-1: +-%5Lg: -nan(09A_Zaz):0:-1: +-%*5Lg: -nan(09A_Zaz):0:-1: +-%5Lg: -nan():0:-1: +-%*5Lg: -nan():0:-1: +-%5Lg: nan():1:6:nan: +-%*5Lg: nan():0:6: +-%5Lg: nan(09A_Zaz):0:-1: +-%*5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan():0:-1: ++# BZ30647 %*5Lg: -nan():0:-1: ++# BZ30647 %5Lg: nan():1:6:nan: ++# BZ30647 %*5Lg: nan():0:6: ++# BZ30647 %5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: nan(09A_Zaz):0:-1: + %5Lg: 0x0p0:1:6:0x0: + %*5Lg: 0x0p0:0:6: + # BZ12701 %5Lg: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5Lg: 0xf.fffffffffffffffffffffffffff8p+16380:0:6: + %5Lg: infinity:0:-1: + %*5Lg: infinity:0:-1: +-%5Lg: +nan():0:-1: +-%*5Lg: +nan():0:-1: +-%5Lg: +nan(09A_Zaz):0:-1: +-%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: +nan():0:-1: ++# BZ30647 %*5Lg: +nan():0:-1: ++# BZ30647 %5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: +nan(09A_Zaz):0:-1: + # BZ12701 %5Lg: +0x0p0:0:-1: + # BZ12701 %*5Lg: +0x0p0:0:-1: + # BZ12701 %5Lg: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*53Lg: -0x0p+0:0:8: + %53Lg: -0x0p0:1:7:-0x0: + %*53Lg: -0x0p0:0:7: +-%53Lg: -nan(09A_Zaz):1:14:-nan: +-%*53Lg: -nan(09A_Zaz):0:14: +-%53Lg: -nan():1:7:-nan: +-%*53Lg: -nan():0:7: +-%53Lg: nan():1:6:nan: +-%*53Lg: nan():0:6: +-%53Lg: nan(09A_Zaz):1:13:nan: +-%*53Lg: nan(09A_Zaz):0:13: ++# BZ30647 %53Lg: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*53Lg: -nan(09A_Zaz):0:14: ++# BZ30647 %53Lg: -nan():1:7:-nan: ++# BZ30647 %*53Lg: -nan():0:7: ++# BZ30647 %53Lg: nan():1:6:nan: ++# BZ30647 %*53Lg: nan():0:6: ++# BZ30647 %53Lg: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*53Lg: nan(09A_Zaz):0:13: + %53Lg: 0x0p0:1:6:0x0: + %*53Lg: 0x0p0:0:6: + %53Lg: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*53Lg: 0xf.fffffffffffffffffffffffffff8p+16380:0:40: + %53Lg: infinity:1:9:inf: + %*53Lg: infinity:0:9: +-%53Lg: +nan():1:7:nan: +-%*53Lg: +nan():0:7: +-%53Lg: +nan(09A_Zaz):1:14:nan: +-%*53Lg: +nan(09A_Zaz):0:14: ++# BZ30647 %53Lg: +nan():1:7:nan: ++# BZ30647 %*53Lg: +nan():0:7: ++# BZ30647 %53Lg: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*53Lg: +nan(09A_Zaz):0:14: + %53Lg: +0x0p0:1:7:0x0: + %*53Lg: +0x0p0:0:7: + %53Lg: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input +index 7b370c54a727857a..e09c6a51c06d0bb0 100644 +--- a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input +@@ -16,14 +16,14 @@ + %*LG:-0X0P+0:0:7: + %LG:-0X0P0:1:6:-0x0: + %*LG:-0X0P0:0:6: +-%LG:-NAN(09A_Zaz):1:13:-nan: +-%*LG:-NAN(09A_Zaz):0:13: +-%LG:-NAN():1:6:-nan: +-%*LG:-NAN():0:6: +-%LG:NAN():1:5:nan: +-%*LG:NAN():0:5: +-%LG:NAN(09A_Zaz):1:12:nan: +-%*LG:NAN(09A_Zaz):0:12: ++# BZ30647 %LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %LG:-NAN():1:6:-nan: ++# BZ30647 %*LG:-NAN():0:6: ++# BZ30647 %LG:NAN():1:5:nan: ++# BZ30647 %*LG:NAN():0:5: ++# BZ30647 %LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LG:NAN(09A_Zaz):0:12: + %LG:0X0P0:1:5:0x0: + %*LG:0X0P0:0:5: + %LG:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: + %LG:INFINITY:1:8:inf: + %*LG:INFINITY:0:8: +-%LG:+NAN():1:6:nan: +-%*LG:+NAN():0:6: +-%LG:+NAN(09A_Zaz):1:13:nan: +-%*LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %LG:+NAN():1:6:nan: ++# BZ30647 %*LG:+NAN():0:6: ++# BZ30647 %LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LG:+NAN(09A_Zaz):0:13: + %LG:+0X0P0:1:6:0x0: + %*LG:+0X0P0:0:6: + %LG:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LG:-0X0P+0:0:-1: + %1LG:-0X0P0:0:-1: + %*1LG:-0X0P0:0:-1: +-%1LG:-NAN(09A_Zaz):0:-1: +-%*1LG:-NAN(09A_Zaz):0:-1: +-%1LG:-NAN():0:-1: +-%*1LG:-NAN():0:-1: +-%1LG:NAN():0:-1: +-%*1LG:NAN():0:-1: +-%1LG:NAN(09A_Zaz):0:-1: +-%*1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN():0:-1: ++# BZ30647 %*1LG:-NAN():0:-1: ++# BZ30647 %1LG:NAN():0:-1: ++# BZ30647 %*1LG:NAN():0:-1: ++# BZ30647 %1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:NAN(09A_Zaz):0:-1: + %1LG:0X0P0:1:1:0x0: + %*1LG:0X0P0:0:1: + %1LG:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:1: + %1LG:INFINITY:0:-1: + %*1LG:INFINITY:0:-1: +-%1LG:+NAN():0:-1: +-%*1LG:+NAN():0:-1: +-%1LG:+NAN(09A_Zaz):0:-1: +-%*1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:+NAN():0:-1: ++# BZ30647 %*1LG:+NAN():0:-1: ++# BZ30647 %1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:+NAN(09A_Zaz):0:-1: + %1LG:+0X0P0:0:-1: + %*1LG:+0X0P0:0:-1: + %1LG:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LG:-0X0P+0:0:2: + %2LG:-0X0P0:1:2:-0x0: + %*2LG:-0X0P0:0:2: +-%2LG:-NAN(09A_Zaz):0:-1: +-%*2LG:-NAN(09A_Zaz):0:-1: +-%2LG:-NAN():0:-1: +-%*2LG:-NAN():0:-1: +-%2LG:NAN():0:-1: +-%*2LG:NAN():0:-1: +-%2LG:NAN(09A_Zaz):0:-1: +-%*2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN():0:-1: ++# BZ30647 %*2LG:-NAN():0:-1: ++# BZ30647 %2LG:NAN():0:-1: ++# BZ30647 %*2LG:NAN():0:-1: ++# BZ30647 %2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:NAN(09A_Zaz):0:-1: + # BZ12701 %2LG:0X0P0:0:-1: + # BZ12701 %*2LG:0X0P0:0:-1: + # BZ12701 %2LG:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: + %2LG:INFINITY:0:-1: + %*2LG:INFINITY:0:-1: +-%2LG:+NAN():0:-1: +-%*2LG:+NAN():0:-1: +-%2LG:+NAN(09A_Zaz):0:-1: +-%*2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:+NAN():0:-1: ++# BZ30647 %*2LG:+NAN():0:-1: ++# BZ30647 %2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:+NAN(09A_Zaz):0:-1: + %2LG:+0X0P0:1:2:0x0: + %*2LG:+0X0P0:0:2: + %2LG:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LG:-0X0P+0:0:-1: + # BZ12701 %3LG:-0X0P0:0:-1: + # BZ12701 %*3LG:-0X0P0:0:-1: +-%3LG:-NAN(09A_Zaz):0:-1: +-%*3LG:-NAN(09A_Zaz):0:-1: +-%3LG:-NAN():0:-1: +-%*3LG:-NAN():0:-1: +-%3LG:NAN():1:3:nan: +-%*3LG:NAN():0:3: +-%3LG:NAN(09A_Zaz):1:3:nan: +-%*3LG:NAN(09A_Zaz):0:3: ++# BZ30647 %3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:-NAN():0:-1: ++# BZ30647 %*3LG:-NAN():0:-1: ++# BZ30647 %3LG:NAN():1:3:nan: ++# BZ30647 %*3LG:NAN():0:3: ++# BZ30647 %3LG:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LG:NAN(09A_Zaz):0:3: + %3LG:0X0P0:1:3:0x0: + %*3LG:0X0P0:0:3: + %3LG:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:3: + %3LG:INFINITY:1:3:inf: + %*3LG:INFINITY:0:3: +-%3LG:+NAN():0:-1: +-%*3LG:+NAN():0:-1: +-%3LG:+NAN(09A_Zaz):0:-1: +-%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:+NAN():0:-1: ++# BZ30647 %*3LG:+NAN():0:-1: ++# BZ30647 %3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LG:+0X0P0:0:-1: + # BZ12701 %*3LG:+0X0P0:0:-1: + # BZ12701 %3LG:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LG:-0X0P+0:0:4: + %4LG:-0X0P0:1:4:-0x0: + %*4LG:-0X0P0:0:4: +-%4LG:-NAN(09A_Zaz):1:4:-nan: +-%*4LG:-NAN(09A_Zaz):0:4: +-%4LG:-NAN():1:4:-nan: +-%*4LG:-NAN():0:4: +-%4LG:NAN():0:-1: +-%*4LG:NAN():0:-1: +-%4LG:NAN(09A_Zaz):0:-1: +-%*4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LG:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LG:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:-NAN():1:4:-nan: ++# BZ30647 %*4LG:-NAN():0:4: ++# BZ30647 %4LG:NAN():0:-1: ++# BZ30647 %*4LG:NAN():0:-1: ++# BZ30647 %4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LG:NAN(09A_Zaz):0:-1: + # BZ12701 %4LG:0X0P0:0:-1: + # BZ12701 %*4LG:0X0P0:0:-1: + # BZ12701 %4LG:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: + %4LG:INFINITY:0:-1: + %*4LG:INFINITY:0:-1: +-%4LG:+NAN():1:4:nan: +-%*4LG:+NAN():0:4: +-%4LG:+NAN(09A_Zaz):1:4:nan: +-%*4LG:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:+NAN():1:4:nan: ++# BZ30647 %*4LG:+NAN():0:4: ++# BZ30647 %4LG:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LG:+NAN(09A_Zaz):0:4: + %4LG:+0X0P0:1:4:0x0: + %*4LG:+0X0P0:0:4: + %4LG:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LG:-0X0P+0:0:-1: + # BZ12701 %5LG:-0X0P0:0:-1: + # BZ12701 %*5LG:-0X0P0:0:-1: +-%5LG:-NAN(09A_Zaz):0:-1: +-%*5LG:-NAN(09A_Zaz):0:-1: +-%5LG:-NAN():0:-1: +-%*5LG:-NAN():0:-1: +-%5LG:NAN():1:5:nan: +-%*5LG:NAN():0:5: +-%5LG:NAN(09A_Zaz):0:-1: +-%*5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN():0:-1: ++# BZ30647 %*5LG:-NAN():0:-1: ++# BZ30647 %5LG:NAN():1:5:nan: ++# BZ30647 %*5LG:NAN():0:5: ++# BZ30647 %5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:NAN(09A_Zaz):0:-1: + %5LG:0X0P0:1:5:0x0: + %*5LG:0X0P0:0:5: + # BZ12701 %5LG:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: + %5LG:INFINITY:0:-1: + %*5LG:INFINITY:0:-1: +-%5LG:+NAN():0:-1: +-%*5LG:+NAN():0:-1: +-%5LG:+NAN(09A_Zaz):0:-1: +-%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:+NAN():0:-1: ++# BZ30647 %*5LG:+NAN():0:-1: ++# BZ30647 %5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LG:+0X0P0:0:-1: + # BZ12701 %*5LG:+0X0P0:0:-1: + # BZ12701 %5LG:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LG:-0X0P+0:0:-1: + %6LG:-0X0P0:1:6:-0x0: + %*6LG:-0X0P0:0:6: +-%6LG:-NAN(09A_Zaz):0:-1: +-%*6LG:-NAN(09A_Zaz):0:-1: +-%6LG:-NAN():1:6:-nan: +-%*6LG:-NAN():0:6: +-%6LG:NAN():1:5:nan: +-%*6LG:NAN():0:5: +-%6LG:NAN(09A_Zaz):0:-1: +-%*6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN():1:6:-nan: ++# BZ30647 %*6LG:-NAN():0:6: ++# BZ30647 %6LG:NAN():1:5:nan: ++# BZ30647 %*6LG:NAN():0:5: ++# BZ30647 %6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:NAN(09A_Zaz):0:-1: + %6LG:0X0P0:1:5:0x0: + %*6LG:0X0P0:0:5: + %6LG:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: + %6LG:INFINITY:0:-1: + %*6LG:INFINITY:0:-1: +-%6LG:+NAN():1:6:nan: +-%*6LG:+NAN():0:6: +-%6LG:+NAN(09A_Zaz):0:-1: +-%*6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:+NAN():1:6:nan: ++# BZ30647 %*6LG:+NAN():0:6: ++# BZ30647 %6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:+NAN(09A_Zaz):0:-1: + %6LG:+0X0P0:1:6:0x0: + %*6LG:+0X0P0:0:6: + # BZ12701 %6LG:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*35LG:-0X0P+0:0:7: + %35LG:-0X0P0:1:6:-0x0: + %*35LG:-0X0P0:0:6: +-%35LG:-NAN(09A_Zaz):1:13:-nan: +-%*35LG:-NAN(09A_Zaz):0:13: +-%35LG:-NAN():1:6:-nan: +-%*35LG:-NAN():0:6: +-%35LG:NAN():1:5:nan: +-%*35LG:NAN():0:5: +-%35LG:NAN(09A_Zaz):1:12:nan: +-%*35LG:NAN(09A_Zaz):0:12: ++# BZ30647 %35LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*35LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %35LG:-NAN():1:6:-nan: ++# BZ30647 %*35LG:-NAN():0:6: ++# BZ30647 %35LG:NAN():1:5:nan: ++# BZ30647 %*35LG:NAN():0:5: ++# BZ30647 %35LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*35LG:NAN(09A_Zaz):0:12: + %35LG:0X0P0:1:5:0x0: + %*35LG:0X0P0:0:5: + %35LG:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*35LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:35: + %35LG:INFINITY:1:8:inf: + %*35LG:INFINITY:0:8: +-%35LG:+NAN():1:6:nan: +-%*35LG:+NAN():0:6: +-%35LG:+NAN(09A_Zaz):1:13:nan: +-%*35LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %35LG:+NAN():1:6:nan: ++# BZ30647 %*35LG:+NAN():0:6: ++# BZ30647 %35LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*35LG:+NAN(09A_Zaz):0:13: + %35LG:+0X0P0:1:6:0x0: + %*35LG:+0X0P0:0:6: + %35LG:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*53LG:-0X0P+0:0:7: + %53LG:-0X0P0:1:6:-0x0: + %*53LG:-0X0P0:0:6: +-%53LG:-NAN(09A_Zaz):1:13:-nan: +-%*53LG:-NAN(09A_Zaz):0:13: +-%53LG:-NAN():1:6:-nan: +-%*53LG:-NAN():0:6: +-%53LG:NAN():1:5:nan: +-%*53LG:NAN():0:5: +-%53LG:NAN(09A_Zaz):1:12:nan: +-%*53LG:NAN(09A_Zaz):0:12: ++# BZ30647 %53LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*53LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %53LG:-NAN():1:6:-nan: ++# BZ30647 %*53LG:-NAN():0:6: ++# BZ30647 %53LG:NAN():1:5:nan: ++# BZ30647 %*53LG:NAN():0:5: ++# BZ30647 %53LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*53LG:NAN(09A_Zaz):0:12: + %53LG:0X0P0:1:5:0x0: + %*53LG:0X0P0:0:5: + %53LG:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*53LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: + %53LG:INFINITY:1:8:inf: + %*53LG:INFINITY:0:8: +-%53LG:+NAN():1:6:nan: +-%*53LG:+NAN():0:6: +-%53LG:+NAN(09A_Zaz):1:13:nan: +-%*53LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %53LG:+NAN():1:6:nan: ++# BZ30647 %*53LG:+NAN():0:6: ++# BZ30647 %53LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*53LG:+NAN(09A_Zaz):0:13: + %53LG:+0X0P0:1:6:0x0: + %*53LG:+0X0P0:0:6: + %53LG:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LG: -0X0P+0:0:-1: + # BZ12701 %5LG: -0X0P0:0:-1: + # BZ12701 %*5LG: -0X0P0:0:-1: +-%5LG: -NAN(09A_Zaz):0:-1: +-%*5LG: -NAN(09A_Zaz):0:-1: +-%5LG: -NAN():0:-1: +-%*5LG: -NAN():0:-1: +-%5LG: NAN():1:6:nan: +-%*5LG: NAN():0:6: +-%5LG: NAN(09A_Zaz):0:-1: +-%*5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN():0:-1: ++# BZ30647 %*5LG: -NAN():0:-1: ++# BZ30647 %5LG: NAN():1:6:nan: ++# BZ30647 %*5LG: NAN():0:6: ++# BZ30647 %5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: NAN(09A_Zaz):0:-1: + %5LG: 0X0P0:1:6:0x0: + %*5LG: 0X0P0:0:6: + # BZ12701 %5LG: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: + %5LG: INFINITY:0:-1: + %*5LG: INFINITY:0:-1: +-%5LG: +NAN():0:-1: +-%*5LG: +NAN():0:-1: +-%5LG: +NAN(09A_Zaz):0:-1: +-%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: +NAN():0:-1: ++# BZ30647 %*5LG: +NAN():0:-1: ++# BZ30647 %5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LG: +0X0P0:0:-1: + # BZ12701 %*5LG: +0X0P0:0:-1: + # BZ12701 %5LG: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*53LG: -0X0P+0:0:8: + %53LG: -0X0P0:1:7:-0x0: + %*53LG: -0X0P0:0:7: +-%53LG: -NAN(09A_Zaz):1:14:-nan: +-%*53LG: -NAN(09A_Zaz):0:14: +-%53LG: -NAN():1:7:-nan: +-%*53LG: -NAN():0:7: +-%53LG: NAN():1:6:nan: +-%*53LG: NAN():0:6: +-%53LG: NAN(09A_Zaz):1:13:nan: +-%*53LG: NAN(09A_Zaz):0:13: ++# BZ30647 %53LG: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*53LG: -NAN(09A_Zaz):0:14: ++# BZ30647 %53LG: -NAN():1:7:-nan: ++# BZ30647 %*53LG: -NAN():0:7: ++# BZ30647 %53LG: NAN():1:6:nan: ++# BZ30647 %*53LG: NAN():0:6: ++# BZ30647 %53LG: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*53LG: NAN(09A_Zaz):0:13: + %53LG: 0X0P0:1:6:0x0: + %*53LG: 0X0P0:0:6: + %53LG: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*53LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: + %53LG: INFINITY:1:9:inf: + %*53LG: INFINITY:0:9: +-%53LG: +NAN():1:7:nan: +-%*53LG: +NAN():0:7: +-%53LG: +NAN(09A_Zaz):1:14:nan: +-%*53LG: +NAN(09A_Zaz):0:14: ++# BZ30647 %53LG: +NAN():1:7:nan: ++# BZ30647 %*53LG: +NAN():0:7: ++# BZ30647 %53LG: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*53LG: +NAN(09A_Zaz):0:14: + %53LG: +0X0P0:1:7:0x0: + %*53LG: +0X0P0:0:7: + %53LG: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input +index a7377d55575f2d75..b06b73ed4071a7f9 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input +@@ -16,14 +16,14 @@ + %*La:-0x0p+0:0:7: + %La:-0x0p0:1:6:-0x0: + %*La:-0x0p0:0:6: +-%La:-nan(09A_Zaz):1:13:-nan: +-%*La:-nan(09A_Zaz):0:13: +-%La:-nan():1:6:-nan: +-%*La:-nan():0:6: +-%La:nan():1:5:nan: +-%*La:nan():0:5: +-%La:nan(09A_Zaz):1:12:nan: +-%*La:nan(09A_Zaz):0:12: ++# BZ30647 %La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*La:-nan(09A_Zaz):0:13: ++# BZ30647 %La:-nan():1:6:-nan: ++# BZ30647 %*La:-nan():0:6: ++# BZ30647 %La:nan():1:5:nan: ++# BZ30647 %*La:nan():0:5: ++# BZ30647 %La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*La:nan(09A_Zaz):0:12: + %La:0x0p0:1:5:0x0: + %*La:0x0p0:0:5: + %La:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*La:0xf.ffffffffffffbffffffffffffcp+1020:0:36: + %La:infinity:1:8:inf: + %*La:infinity:0:8: +-%La:+nan():1:6:nan: +-%*La:+nan():0:6: +-%La:+nan(09A_Zaz):1:13:nan: +-%*La:+nan(09A_Zaz):0:13: ++# BZ30647 %La:+nan():1:6:nan: ++# BZ30647 %*La:+nan():0:6: ++# BZ30647 %La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*La:+nan(09A_Zaz):0:13: + %La:+0x0p0:1:6:0x0: + %*La:+0x0p0:0:6: + %La:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1La:-0x0p+0:0:-1: + %1La:-0x0p0:0:-1: + %*1La:-0x0p0:0:-1: +-%1La:-nan(09A_Zaz):0:-1: +-%*1La:-nan(09A_Zaz):0:-1: +-%1La:-nan():0:-1: +-%*1La:-nan():0:-1: +-%1La:nan():0:-1: +-%*1La:nan():0:-1: +-%1La:nan(09A_Zaz):0:-1: +-%*1La:nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan():0:-1: ++# BZ30647 %*1La:-nan():0:-1: ++# BZ30647 %1La:nan():0:-1: ++# BZ30647 %*1La:nan():0:-1: ++# BZ30647 %1La:nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:nan(09A_Zaz):0:-1: + %1La:0x0p0:1:1:0x0: + %*1La:0x0p0:0:1: + %1La:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1La:0xf.ffffffffffffbffffffffffffcp+1020:0:1: + %1La:infinity:0:-1: + %*1La:infinity:0:-1: +-%1La:+nan():0:-1: +-%*1La:+nan():0:-1: +-%1La:+nan(09A_Zaz):0:-1: +-%*1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %1La:+nan():0:-1: ++# BZ30647 %*1La:+nan():0:-1: ++# BZ30647 %1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:+nan(09A_Zaz):0:-1: + %1La:+0x0p0:0:-1: + %*1La:+0x0p0:0:-1: + %1La:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2La:-0x0p+0:0:2: + %2La:-0x0p0:1:2:-0x0: + %*2La:-0x0p0:0:2: +-%2La:-nan(09A_Zaz):0:-1: +-%*2La:-nan(09A_Zaz):0:-1: +-%2La:-nan():0:-1: +-%*2La:-nan():0:-1: +-%2La:nan():0:-1: +-%*2La:nan():0:-1: +-%2La:nan(09A_Zaz):0:-1: +-%*2La:nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan():0:-1: ++# BZ30647 %*2La:-nan():0:-1: ++# BZ30647 %2La:nan():0:-1: ++# BZ30647 %*2La:nan():0:-1: ++# BZ30647 %2La:nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:nan(09A_Zaz):0:-1: + # BZ12701 %2La:0x0p0:0:-1: + # BZ12701 %*2La:0x0p0:0:-1: + # BZ12701 %2La:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2La:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: + %2La:infinity:0:-1: + %*2La:infinity:0:-1: +-%2La:+nan():0:-1: +-%*2La:+nan():0:-1: +-%2La:+nan(09A_Zaz):0:-1: +-%*2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %2La:+nan():0:-1: ++# BZ30647 %*2La:+nan():0:-1: ++# BZ30647 %2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:+nan(09A_Zaz):0:-1: + %2La:+0x0p0:1:2:0x0: + %*2La:+0x0p0:0:2: + %2La:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3La:-0x0p+0:0:-1: + # BZ12701 %3La:-0x0p0:0:-1: + # BZ12701 %*3La:-0x0p0:0:-1: +-%3La:-nan(09A_Zaz):0:-1: +-%*3La:-nan(09A_Zaz):0:-1: +-%3La:-nan():0:-1: +-%*3La:-nan():0:-1: +-%3La:nan():1:3:nan: +-%*3La:nan():0:3: +-%3La:nan(09A_Zaz):1:3:nan: +-%*3La:nan(09A_Zaz):0:3: ++# BZ30647 %3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %3La:-nan():0:-1: ++# BZ30647 %*3La:-nan():0:-1: ++# BZ30647 %3La:nan():1:3:nan: ++# BZ30647 %*3La:nan():0:3: ++# BZ30647 %3La:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3La:nan(09A_Zaz):0:3: + %3La:0x0p0:1:3:0x0: + %*3La:0x0p0:0:3: + %3La:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3La:0xf.ffffffffffffbffffffffffffcp+1020:0:3: + %3La:infinity:1:3:inf: + %*3La:infinity:0:3: +-%3La:+nan():0:-1: +-%*3La:+nan():0:-1: +-%3La:+nan(09A_Zaz):0:-1: +-%*3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %3La:+nan():0:-1: ++# BZ30647 %*3La:+nan():0:-1: ++# BZ30647 %3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:+nan(09A_Zaz):0:-1: + # BZ12701 %3La:+0x0p0:0:-1: + # BZ12701 %*3La:+0x0p0:0:-1: + # BZ12701 %3La:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4La:-0x0p+0:0:4: + %4La:-0x0p0:1:4:-0x0: + %*4La:-0x0p0:0:4: +-%4La:-nan(09A_Zaz):1:4:-nan: +-%*4La:-nan(09A_Zaz):0:4: +-%4La:-nan():1:4:-nan: +-%*4La:-nan():0:4: +-%4La:nan():0:-1: +-%*4La:nan():0:-1: +-%4La:nan(09A_Zaz):0:-1: +-%*4La:nan(09A_Zaz):0:-1: ++# BZ30647 %4La:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4La:-nan(09A_Zaz):0:4: ++# BZ30647 %4La:-nan():1:4:-nan: ++# BZ30647 %*4La:-nan():0:4: ++# BZ30647 %4La:nan():0:-1: ++# BZ30647 %*4La:nan():0:-1: ++# BZ30647 %4La:nan(09A_Zaz):0:-1: ++# BZ30647 %*4La:nan(09A_Zaz):0:-1: + # BZ12701 %4La:0x0p0:0:-1: + # BZ12701 %*4La:0x0p0:0:-1: + # BZ12701 %4La:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4La:0xf.ffffffffffffbffffffffffffcp+1020:0:4: + %4La:infinity:0:-1: + %*4La:infinity:0:-1: +-%4La:+nan():1:4:nan: +-%*4La:+nan():0:4: +-%4La:+nan(09A_Zaz):1:4:nan: +-%*4La:+nan(09A_Zaz):0:4: ++# BZ30647 %4La:+nan():1:4:nan: ++# BZ30647 %*4La:+nan():0:4: ++# BZ30647 %4La:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4La:+nan(09A_Zaz):0:4: + %4La:+0x0p0:1:4:0x0: + %*4La:+0x0p0:0:4: + %4La:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5La:-0x0p+0:0:-1: + # BZ12701 %5La:-0x0p0:0:-1: + # BZ12701 %*5La:-0x0p0:0:-1: +-%5La:-nan(09A_Zaz):0:-1: +-%*5La:-nan(09A_Zaz):0:-1: +-%5La:-nan():0:-1: +-%*5La:-nan():0:-1: +-%5La:nan():1:5:nan: +-%*5La:nan():0:5: +-%5La:nan(09A_Zaz):0:-1: +-%*5La:nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan():0:-1: ++# BZ30647 %*5La:-nan():0:-1: ++# BZ30647 %5La:nan():1:5:nan: ++# BZ30647 %*5La:nan():0:5: ++# BZ30647 %5La:nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:nan(09A_Zaz):0:-1: + %5La:0x0p0:1:5:0x0: + %*5La:0x0p0:0:5: + # BZ12701 %5La:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5La:0xf.ffffffffffffbffffffffffffcp+1020:0:5: + %5La:infinity:0:-1: + %*5La:infinity:0:-1: +-%5La:+nan():0:-1: +-%*5La:+nan():0:-1: +-%5La:+nan(09A_Zaz):0:-1: +-%*5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %5La:+nan():0:-1: ++# BZ30647 %*5La:+nan():0:-1: ++# BZ30647 %5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:+nan(09A_Zaz):0:-1: + # BZ12701 %5La:+0x0p0:0:-1: + # BZ12701 %*5La:+0x0p0:0:-1: + # BZ12701 %5La:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6La:-0x0p+0:0:-1: + %6La:-0x0p0:1:6:-0x0: + %*6La:-0x0p0:0:6: +-%6La:-nan(09A_Zaz):0:-1: +-%*6La:-nan(09A_Zaz):0:-1: +-%6La:-nan():1:6:-nan: +-%*6La:-nan():0:6: +-%6La:nan():1:5:nan: +-%*6La:nan():0:5: +-%6La:nan(09A_Zaz):0:-1: +-%*6La:nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan():1:6:-nan: ++# BZ30647 %*6La:-nan():0:6: ++# BZ30647 %6La:nan():1:5:nan: ++# BZ30647 %*6La:nan():0:5: ++# BZ30647 %6La:nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:nan(09A_Zaz):0:-1: + %6La:0x0p0:1:5:0x0: + %*6La:0x0p0:0:5: + %6La:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6La:0xf.ffffffffffffbffffffffffffcp+1020:0:6: + %6La:infinity:0:-1: + %*6La:infinity:0:-1: +-%6La:+nan():1:6:nan: +-%*6La:+nan():0:6: +-%6La:+nan(09A_Zaz):0:-1: +-%*6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %6La:+nan():1:6:nan: ++# BZ30647 %*6La:+nan():0:6: ++# BZ30647 %6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:+nan(09A_Zaz):0:-1: + %6La:+0x0p0:1:6:0x0: + %*6La:+0x0p0:0:6: + # BZ12701 %6La:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*33La:-0x0p+0:0:7: + %33La:-0x0p0:1:6:-0x0: + %*33La:-0x0p0:0:6: +-%33La:-nan(09A_Zaz):1:13:-nan: +-%*33La:-nan(09A_Zaz):0:13: +-%33La:-nan():1:6:-nan: +-%*33La:-nan():0:6: +-%33La:nan():1:5:nan: +-%*33La:nan():0:5: +-%33La:nan(09A_Zaz):1:12:nan: +-%*33La:nan(09A_Zaz):0:12: ++# BZ30647 %33La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*33La:-nan(09A_Zaz):0:13: ++# BZ30647 %33La:-nan():1:6:-nan: ++# BZ30647 %*33La:-nan():0:6: ++# BZ30647 %33La:nan():1:5:nan: ++# BZ30647 %*33La:nan():0:5: ++# BZ30647 %33La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*33La:nan(09A_Zaz):0:12: + %33La:0x0p0:1:5:0x0: + %*33La:0x0p0:0:5: + %33La:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*33La:0xf.ffffffffffffbffffffffffffcp+1020:0:33: + %33La:infinity:1:8:inf: + %*33La:infinity:0:8: +-%33La:+nan():1:6:nan: +-%*33La:+nan():0:6: +-%33La:+nan(09A_Zaz):1:13:nan: +-%*33La:+nan(09A_Zaz):0:13: ++# BZ30647 %33La:+nan():1:6:nan: ++# BZ30647 %*33La:+nan():0:6: ++# BZ30647 %33La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*33La:+nan(09A_Zaz):0:13: + %33La:+0x0p0:1:6:0x0: + %*33La:+0x0p0:0:6: + %33La:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*50La:-0x0p+0:0:7: + %50La:-0x0p0:1:6:-0x0: + %*50La:-0x0p0:0:6: +-%50La:-nan(09A_Zaz):1:13:-nan: +-%*50La:-nan(09A_Zaz):0:13: +-%50La:-nan():1:6:-nan: +-%*50La:-nan():0:6: +-%50La:nan():1:5:nan: +-%*50La:nan():0:5: +-%50La:nan(09A_Zaz):1:12:nan: +-%*50La:nan(09A_Zaz):0:12: ++# BZ30647 %50La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*50La:-nan(09A_Zaz):0:13: ++# BZ30647 %50La:-nan():1:6:-nan: ++# BZ30647 %*50La:-nan():0:6: ++# BZ30647 %50La:nan():1:5:nan: ++# BZ30647 %*50La:nan():0:5: ++# BZ30647 %50La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*50La:nan(09A_Zaz):0:12: + %50La:0x0p0:1:5:0x0: + %*50La:0x0p0:0:5: + %50La:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*50La:0xf.ffffffffffffbffffffffffffcp+1020:0:36: + %50La:infinity:1:8:inf: + %*50La:infinity:0:8: +-%50La:+nan():1:6:nan: +-%*50La:+nan():0:6: +-%50La:+nan(09A_Zaz):1:13:nan: +-%*50La:+nan(09A_Zaz):0:13: ++# BZ30647 %50La:+nan():1:6:nan: ++# BZ30647 %*50La:+nan():0:6: ++# BZ30647 %50La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*50La:+nan(09A_Zaz):0:13: + %50La:+0x0p0:1:6:0x0: + %*50La:+0x0p0:0:6: + %50La:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5La: -0x0p+0:0:-1: + # BZ12701 %5La: -0x0p0:0:-1: + # BZ12701 %*5La: -0x0p0:0:-1: +-%5La: -nan(09A_Zaz):0:-1: +-%*5La: -nan(09A_Zaz):0:-1: +-%5La: -nan():0:-1: +-%*5La: -nan():0:-1: +-%5La: nan():1:6:nan: +-%*5La: nan():0:6: +-%5La: nan(09A_Zaz):0:-1: +-%*5La: nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan():0:-1: ++# BZ30647 %*5La: -nan():0:-1: ++# BZ30647 %5La: nan():1:6:nan: ++# BZ30647 %*5La: nan():0:6: ++# BZ30647 %5La: nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: nan(09A_Zaz):0:-1: + %5La: 0x0p0:1:6:0x0: + %*5La: 0x0p0:0:6: + # BZ12701 %5La: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5La: 0xf.ffffffffffffbffffffffffffcp+1020:0:6: + %5La: infinity:0:-1: + %*5La: infinity:0:-1: +-%5La: +nan():0:-1: +-%*5La: +nan():0:-1: +-%5La: +nan(09A_Zaz):0:-1: +-%*5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %5La: +nan():0:-1: ++# BZ30647 %*5La: +nan():0:-1: ++# BZ30647 %5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: +nan(09A_Zaz):0:-1: + # BZ12701 %5La: +0x0p0:0:-1: + # BZ12701 %*5La: +0x0p0:0:-1: + # BZ12701 %5La: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*50La: -0x0p+0:0:8: + %50La: -0x0p0:1:7:-0x0: + %*50La: -0x0p0:0:7: +-%50La: -nan(09A_Zaz):1:14:-nan: +-%*50La: -nan(09A_Zaz):0:14: +-%50La: -nan():1:7:-nan: +-%*50La: -nan():0:7: +-%50La: nan():1:6:nan: +-%*50La: nan():0:6: +-%50La: nan(09A_Zaz):1:13:nan: +-%*50La: nan(09A_Zaz):0:13: ++# BZ30647 %50La: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*50La: -nan(09A_Zaz):0:14: ++# BZ30647 %50La: -nan():1:7:-nan: ++# BZ30647 %*50La: -nan():0:7: ++# BZ30647 %50La: nan():1:6:nan: ++# BZ30647 %*50La: nan():0:6: ++# BZ30647 %50La: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*50La: nan(09A_Zaz):0:13: + %50La: 0x0p0:1:6:0x0: + %*50La: 0x0p0:0:6: + %50La: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*50La: 0xf.ffffffffffffbffffffffffffcp+1020:0:37: + %50La: infinity:1:9:inf: + %*50La: infinity:0:9: +-%50La: +nan():1:7:nan: +-%*50La: +nan():0:7: +-%50La: +nan(09A_Zaz):1:14:nan: +-%*50La: +nan(09A_Zaz):0:14: ++# BZ30647 %50La: +nan():1:7:nan: ++# BZ30647 %*50La: +nan():0:7: ++# BZ30647 %50La: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*50La: +nan(09A_Zaz):0:14: + %50La: +0x0p0:1:7:0x0: + %*50La: +0x0p0:0:7: + %50La: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input +index 1dc2c558ced97273..19ebaffa122fe5ea 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input +@@ -16,14 +16,14 @@ + %*LA:-0X0P+0:0:7: + %LA:-0X0P0:1:6:-0x0: + %*LA:-0X0P0:0:6: +-%LA:-NAN(09A_Zaz):1:13:-nan: +-%*LA:-NAN(09A_Zaz):0:13: +-%LA:-NAN():1:6:-nan: +-%*LA:-NAN():0:6: +-%LA:NAN():1:5:nan: +-%*LA:NAN():0:5: +-%LA:NAN(09A_Zaz):1:12:nan: +-%*LA:NAN(09A_Zaz):0:12: ++# BZ30647 %LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %LA:-NAN():1:6:-nan: ++# BZ30647 %*LA:-NAN():0:6: ++# BZ30647 %LA:NAN():1:5:nan: ++# BZ30647 %*LA:NAN():0:5: ++# BZ30647 %LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LA:NAN(09A_Zaz):0:12: + %LA:0X0P0:1:5:0x0: + %*LA:0X0P0:0:5: + %LA:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: + %LA:INFINITY:1:8:inf: + %*LA:INFINITY:0:8: +-%LA:+NAN():1:6:nan: +-%*LA:+NAN():0:6: +-%LA:+NAN(09A_Zaz):1:13:nan: +-%*LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %LA:+NAN():1:6:nan: ++# BZ30647 %*LA:+NAN():0:6: ++# BZ30647 %LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LA:+NAN(09A_Zaz):0:13: + %LA:+0X0P0:1:6:0x0: + %*LA:+0X0P0:0:6: + %LA:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LA:-0X0P+0:0:-1: + %1LA:-0X0P0:0:-1: + %*1LA:-0X0P0:0:-1: +-%1LA:-NAN(09A_Zaz):0:-1: +-%*1LA:-NAN(09A_Zaz):0:-1: +-%1LA:-NAN():0:-1: +-%*1LA:-NAN():0:-1: +-%1LA:NAN():0:-1: +-%*1LA:NAN():0:-1: +-%1LA:NAN(09A_Zaz):0:-1: +-%*1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN():0:-1: ++# BZ30647 %*1LA:-NAN():0:-1: ++# BZ30647 %1LA:NAN():0:-1: ++# BZ30647 %*1LA:NAN():0:-1: ++# BZ30647 %1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:NAN(09A_Zaz):0:-1: + %1LA:0X0P0:1:1:0x0: + %*1LA:0X0P0:0:1: + %1LA:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:1: + %1LA:INFINITY:0:-1: + %*1LA:INFINITY:0:-1: +-%1LA:+NAN():0:-1: +-%*1LA:+NAN():0:-1: +-%1LA:+NAN(09A_Zaz):0:-1: +-%*1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:+NAN():0:-1: ++# BZ30647 %*1LA:+NAN():0:-1: ++# BZ30647 %1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:+NAN(09A_Zaz):0:-1: + %1LA:+0X0P0:0:-1: + %*1LA:+0X0P0:0:-1: + %1LA:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LA:-0X0P+0:0:2: + %2LA:-0X0P0:1:2:-0x0: + %*2LA:-0X0P0:0:2: +-%2LA:-NAN(09A_Zaz):0:-1: +-%*2LA:-NAN(09A_Zaz):0:-1: +-%2LA:-NAN():0:-1: +-%*2LA:-NAN():0:-1: +-%2LA:NAN():0:-1: +-%*2LA:NAN():0:-1: +-%2LA:NAN(09A_Zaz):0:-1: +-%*2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN():0:-1: ++# BZ30647 %*2LA:-NAN():0:-1: ++# BZ30647 %2LA:NAN():0:-1: ++# BZ30647 %*2LA:NAN():0:-1: ++# BZ30647 %2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:NAN(09A_Zaz):0:-1: + # BZ12701 %2LA:0X0P0:0:-1: + # BZ12701 %*2LA:0X0P0:0:-1: + # BZ12701 %2LA:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: + %2LA:INFINITY:0:-1: + %*2LA:INFINITY:0:-1: +-%2LA:+NAN():0:-1: +-%*2LA:+NAN():0:-1: +-%2LA:+NAN(09A_Zaz):0:-1: +-%*2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:+NAN():0:-1: ++# BZ30647 %*2LA:+NAN():0:-1: ++# BZ30647 %2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:+NAN(09A_Zaz):0:-1: + %2LA:+0X0P0:1:2:0x0: + %*2LA:+0X0P0:0:2: + %2LA:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LA:-0X0P+0:0:-1: + # BZ12701 %3LA:-0X0P0:0:-1: + # BZ12701 %*3LA:-0X0P0:0:-1: +-%3LA:-NAN(09A_Zaz):0:-1: +-%*3LA:-NAN(09A_Zaz):0:-1: +-%3LA:-NAN():0:-1: +-%*3LA:-NAN():0:-1: +-%3LA:NAN():1:3:nan: +-%*3LA:NAN():0:3: +-%3LA:NAN(09A_Zaz):1:3:nan: +-%*3LA:NAN(09A_Zaz):0:3: ++# BZ30647 %3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:-NAN():0:-1: ++# BZ30647 %*3LA:-NAN():0:-1: ++# BZ30647 %3LA:NAN():1:3:nan: ++# BZ30647 %*3LA:NAN():0:3: ++# BZ30647 %3LA:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LA:NAN(09A_Zaz):0:3: + %3LA:0X0P0:1:3:0x0: + %*3LA:0X0P0:0:3: + %3LA:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:3: + %3LA:INFINITY:1:3:inf: + %*3LA:INFINITY:0:3: +-%3LA:+NAN():0:-1: +-%*3LA:+NAN():0:-1: +-%3LA:+NAN(09A_Zaz):0:-1: +-%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:+NAN():0:-1: ++# BZ30647 %*3LA:+NAN():0:-1: ++# BZ30647 %3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LA:+0X0P0:0:-1: + # BZ12701 %*3LA:+0X0P0:0:-1: + # BZ12701 %3LA:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LA:-0X0P+0:0:4: + %4LA:-0X0P0:1:4:-0x0: + %*4LA:-0X0P0:0:4: +-%4LA:-NAN(09A_Zaz):1:4:-nan: +-%*4LA:-NAN(09A_Zaz):0:4: +-%4LA:-NAN():1:4:-nan: +-%*4LA:-NAN():0:4: +-%4LA:NAN():0:-1: +-%*4LA:NAN():0:-1: +-%4LA:NAN(09A_Zaz):0:-1: +-%*4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LA:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LA:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:-NAN():1:4:-nan: ++# BZ30647 %*4LA:-NAN():0:4: ++# BZ30647 %4LA:NAN():0:-1: ++# BZ30647 %*4LA:NAN():0:-1: ++# BZ30647 %4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LA:NAN(09A_Zaz):0:-1: + # BZ12701 %4LA:0X0P0:0:-1: + # BZ12701 %*4LA:0X0P0:0:-1: + # BZ12701 %4LA:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: + %4LA:INFINITY:0:-1: + %*4LA:INFINITY:0:-1: +-%4LA:+NAN():1:4:nan: +-%*4LA:+NAN():0:4: +-%4LA:+NAN(09A_Zaz):1:4:nan: +-%*4LA:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:+NAN():1:4:nan: ++# BZ30647 %*4LA:+NAN():0:4: ++# BZ30647 %4LA:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LA:+NAN(09A_Zaz):0:4: + %4LA:+0X0P0:1:4:0x0: + %*4LA:+0X0P0:0:4: + %4LA:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LA:-0X0P+0:0:-1: + # BZ12701 %5LA:-0X0P0:0:-1: + # BZ12701 %*5LA:-0X0P0:0:-1: +-%5LA:-NAN(09A_Zaz):0:-1: +-%*5LA:-NAN(09A_Zaz):0:-1: +-%5LA:-NAN():0:-1: +-%*5LA:-NAN():0:-1: +-%5LA:NAN():1:5:nan: +-%*5LA:NAN():0:5: +-%5LA:NAN(09A_Zaz):0:-1: +-%*5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN():0:-1: ++# BZ30647 %*5LA:-NAN():0:-1: ++# BZ30647 %5LA:NAN():1:5:nan: ++# BZ30647 %*5LA:NAN():0:5: ++# BZ30647 %5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:NAN(09A_Zaz):0:-1: + %5LA:0X0P0:1:5:0x0: + %*5LA:0X0P0:0:5: + # BZ12701 %5LA:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: + %5LA:INFINITY:0:-1: + %*5LA:INFINITY:0:-1: +-%5LA:+NAN():0:-1: +-%*5LA:+NAN():0:-1: +-%5LA:+NAN(09A_Zaz):0:-1: +-%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:+NAN():0:-1: ++# BZ30647 %*5LA:+NAN():0:-1: ++# BZ30647 %5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LA:+0X0P0:0:-1: + # BZ12701 %*5LA:+0X0P0:0:-1: + # BZ12701 %5LA:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LA:-0X0P+0:0:-1: + %6LA:-0X0P0:1:6:-0x0: + %*6LA:-0X0P0:0:6: +-%6LA:-NAN(09A_Zaz):0:-1: +-%*6LA:-NAN(09A_Zaz):0:-1: +-%6LA:-NAN():1:6:-nan: +-%*6LA:-NAN():0:6: +-%6LA:NAN():1:5:nan: +-%*6LA:NAN():0:5: +-%6LA:NAN(09A_Zaz):0:-1: +-%*6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN():1:6:-nan: ++# BZ30647 %*6LA:-NAN():0:6: ++# BZ30647 %6LA:NAN():1:5:nan: ++# BZ30647 %*6LA:NAN():0:5: ++# BZ30647 %6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:NAN(09A_Zaz):0:-1: + %6LA:0X0P0:1:5:0x0: + %*6LA:0X0P0:0:5: + %6LA:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: + %6LA:INFINITY:0:-1: + %*6LA:INFINITY:0:-1: +-%6LA:+NAN():1:6:nan: +-%*6LA:+NAN():0:6: +-%6LA:+NAN(09A_Zaz):0:-1: +-%*6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:+NAN():1:6:nan: ++# BZ30647 %*6LA:+NAN():0:6: ++# BZ30647 %6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:+NAN(09A_Zaz):0:-1: + %6LA:+0X0P0:1:6:0x0: + %*6LA:+0X0P0:0:6: + # BZ12701 %6LA:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*33LA:-0X0P+0:0:7: + %33LA:-0X0P0:1:6:-0x0: + %*33LA:-0X0P0:0:6: +-%33LA:-NAN(09A_Zaz):1:13:-nan: +-%*33LA:-NAN(09A_Zaz):0:13: +-%33LA:-NAN():1:6:-nan: +-%*33LA:-NAN():0:6: +-%33LA:NAN():1:5:nan: +-%*33LA:NAN():0:5: +-%33LA:NAN(09A_Zaz):1:12:nan: +-%*33LA:NAN(09A_Zaz):0:12: ++# BZ30647 %33LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*33LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %33LA:-NAN():1:6:-nan: ++# BZ30647 %*33LA:-NAN():0:6: ++# BZ30647 %33LA:NAN():1:5:nan: ++# BZ30647 %*33LA:NAN():0:5: ++# BZ30647 %33LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*33LA:NAN(09A_Zaz):0:12: + %33LA:0X0P0:1:5:0x0: + %*33LA:0X0P0:0:5: + %33LA:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*33LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:33: + %33LA:INFINITY:1:8:inf: + %*33LA:INFINITY:0:8: +-%33LA:+NAN():1:6:nan: +-%*33LA:+NAN():0:6: +-%33LA:+NAN(09A_Zaz):1:13:nan: +-%*33LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %33LA:+NAN():1:6:nan: ++# BZ30647 %*33LA:+NAN():0:6: ++# BZ30647 %33LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*33LA:+NAN(09A_Zaz):0:13: + %33LA:+0X0P0:1:6:0x0: + %*33LA:+0X0P0:0:6: + %33LA:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*50LA:-0X0P+0:0:7: + %50LA:-0X0P0:1:6:-0x0: + %*50LA:-0X0P0:0:6: +-%50LA:-NAN(09A_Zaz):1:13:-nan: +-%*50LA:-NAN(09A_Zaz):0:13: +-%50LA:-NAN():1:6:-nan: +-%*50LA:-NAN():0:6: +-%50LA:NAN():1:5:nan: +-%*50LA:NAN():0:5: +-%50LA:NAN(09A_Zaz):1:12:nan: +-%*50LA:NAN(09A_Zaz):0:12: ++# BZ30647 %50LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*50LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %50LA:-NAN():1:6:-nan: ++# BZ30647 %*50LA:-NAN():0:6: ++# BZ30647 %50LA:NAN():1:5:nan: ++# BZ30647 %*50LA:NAN():0:5: ++# BZ30647 %50LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*50LA:NAN(09A_Zaz):0:12: + %50LA:0X0P0:1:5:0x0: + %*50LA:0X0P0:0:5: + %50LA:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*50LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: + %50LA:INFINITY:1:8:inf: + %*50LA:INFINITY:0:8: +-%50LA:+NAN():1:6:nan: +-%*50LA:+NAN():0:6: +-%50LA:+NAN(09A_Zaz):1:13:nan: +-%*50LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %50LA:+NAN():1:6:nan: ++# BZ30647 %*50LA:+NAN():0:6: ++# BZ30647 %50LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*50LA:+NAN(09A_Zaz):0:13: + %50LA:+0X0P0:1:6:0x0: + %*50LA:+0X0P0:0:6: + %50LA:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LA: -0X0P+0:0:-1: + # BZ12701 %5LA: -0X0P0:0:-1: + # BZ12701 %*5LA: -0X0P0:0:-1: +-%5LA: -NAN(09A_Zaz):0:-1: +-%*5LA: -NAN(09A_Zaz):0:-1: +-%5LA: -NAN():0:-1: +-%*5LA: -NAN():0:-1: +-%5LA: NAN():1:6:nan: +-%*5LA: NAN():0:6: +-%5LA: NAN(09A_Zaz):0:-1: +-%*5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN():0:-1: ++# BZ30647 %*5LA: -NAN():0:-1: ++# BZ30647 %5LA: NAN():1:6:nan: ++# BZ30647 %*5LA: NAN():0:6: ++# BZ30647 %5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: NAN(09A_Zaz):0:-1: + %5LA: 0X0P0:1:6:0x0: + %*5LA: 0X0P0:0:6: + # BZ12701 %5LA: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: + %5LA: INFINITY:0:-1: + %*5LA: INFINITY:0:-1: +-%5LA: +NAN():0:-1: +-%*5LA: +NAN():0:-1: +-%5LA: +NAN(09A_Zaz):0:-1: +-%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: +NAN():0:-1: ++# BZ30647 %*5LA: +NAN():0:-1: ++# BZ30647 %5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LA: +0X0P0:0:-1: + # BZ12701 %*5LA: +0X0P0:0:-1: + # BZ12701 %5LA: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*50LA: -0X0P+0:0:8: + %50LA: -0X0P0:1:7:-0x0: + %*50LA: -0X0P0:0:7: +-%50LA: -NAN(09A_Zaz):1:14:-nan: +-%*50LA: -NAN(09A_Zaz):0:14: +-%50LA: -NAN():1:7:-nan: +-%*50LA: -NAN():0:7: +-%50LA: NAN():1:6:nan: +-%*50LA: NAN():0:6: +-%50LA: NAN(09A_Zaz):1:13:nan: +-%*50LA: NAN(09A_Zaz):0:13: ++# BZ30647 %50LA: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*50LA: -NAN(09A_Zaz):0:14: ++# BZ30647 %50LA: -NAN():1:7:-nan: ++# BZ30647 %*50LA: -NAN():0:7: ++# BZ30647 %50LA: NAN():1:6:nan: ++# BZ30647 %*50LA: NAN():0:6: ++# BZ30647 %50LA: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*50LA: NAN(09A_Zaz):0:13: + %50LA: 0X0P0:1:6:0x0: + %*50LA: 0X0P0:0:6: + %50LA: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*50LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: + %50LA: INFINITY:1:9:inf: + %*50LA: INFINITY:0:9: +-%50LA: +NAN():1:7:nan: +-%*50LA: +NAN():0:7: +-%50LA: +NAN(09A_Zaz):1:14:nan: +-%*50LA: +NAN(09A_Zaz):0:14: ++# BZ30647 %50LA: +NAN():1:7:nan: ++# BZ30647 %*50LA: +NAN():0:7: ++# BZ30647 %50LA: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*50LA: +NAN(09A_Zaz):0:14: + %50LA: +0X0P0:1:7:0x0: + %*50LA: +0X0P0:0:7: + %50LA: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input +index f61b0d0fd382c113..7887d5fa62c09da5 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input +@@ -16,14 +16,14 @@ + %*Le:-0e+0:0:5: + %Le:-0e0:1:4:-0x0: + %*Le:-0e0:0:4: +-%Le:-nan(09A_Zaz):1:13:-nan: +-%*Le:-nan(09A_Zaz):0:13: +-%Le:-nan():1:6:-nan: +-%*Le:-nan():0:6: +-%Le:nan():1:5:nan: +-%*Le:nan():0:5: +-%Le:nan(09A_Zaz):1:12:nan: +-%*Le:nan(09A_Zaz):0:12: ++# BZ30647 %Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Le:-nan(09A_Zaz):0:13: ++# BZ30647 %Le:-nan():1:6:-nan: ++# BZ30647 %*Le:-nan():0:6: ++# BZ30647 %Le:nan():1:5:nan: ++# BZ30647 %*Le:nan():0:5: ++# BZ30647 %Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Le:nan(09A_Zaz):0:12: + %Le:0e0:1:3:0x0: + %*Le:0e0:0:3: + %Le:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*Le:1.79769313486231580793728971405301199e+308:0:42: + %Le:infinity:1:8:inf: + %*Le:infinity:0:8: +-%Le:+nan():1:6:nan: +-%*Le:+nan():0:6: +-%Le:+nan(09A_Zaz):1:13:nan: +-%*Le:+nan(09A_Zaz):0:13: ++# BZ30647 %Le:+nan():1:6:nan: ++# BZ30647 %*Le:+nan():0:6: ++# BZ30647 %Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Le:+nan(09A_Zaz):0:13: + %Le:+0e0:1:4:0x0: + %*Le:+0e0:0:4: + %Le:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1Le:-0e+0:0:-1: + %1Le:-0e0:0:-1: + %*1Le:-0e0:0:-1: +-%1Le:-nan(09A_Zaz):0:-1: +-%*1Le:-nan(09A_Zaz):0:-1: +-%1Le:-nan():0:-1: +-%*1Le:-nan():0:-1: +-%1Le:nan():0:-1: +-%*1Le:nan():0:-1: +-%1Le:nan(09A_Zaz):0:-1: +-%*1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan():0:-1: ++# BZ30647 %*1Le:-nan():0:-1: ++# BZ30647 %1Le:nan():0:-1: ++# BZ30647 %*1Le:nan():0:-1: ++# BZ30647 %1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:nan(09A_Zaz):0:-1: + %1Le:0e0:1:1:0x0: + %*1Le:0e0:0:1: + %1Le:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Le:1.79769313486231580793728971405301199e+308:0:1: + %1Le:infinity:0:-1: + %*1Le:infinity:0:-1: +-%1Le:+nan():0:-1: +-%*1Le:+nan():0:-1: +-%1Le:+nan(09A_Zaz):0:-1: +-%*1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:+nan():0:-1: ++# BZ30647 %*1Le:+nan():0:-1: ++# BZ30647 %1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:+nan(09A_Zaz):0:-1: + %1Le:+0e0:0:-1: + %*1Le:+0e0:0:-1: + %1Le:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Le:-0e+0:0:2: + %2Le:-0e0:1:2:-0x0: + %*2Le:-0e0:0:2: +-%2Le:-nan(09A_Zaz):0:-1: +-%*2Le:-nan(09A_Zaz):0:-1: +-%2Le:-nan():0:-1: +-%*2Le:-nan():0:-1: +-%2Le:nan():0:-1: +-%*2Le:nan():0:-1: +-%2Le:nan(09A_Zaz):0:-1: +-%*2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan():0:-1: ++# BZ30647 %*2Le:-nan():0:-1: ++# BZ30647 %2Le:nan():0:-1: ++# BZ30647 %*2Le:nan():0:-1: ++# BZ30647 %2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:nan(09A_Zaz):0:-1: + # BZ12701 %2Le:0e0:0:-1: + # BZ12701 %*2Le:0e0:0:-1: + # BZ12701 %2Le:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2Le:1.79769313486231580793728971405301199e+308:0:2: + %2Le:infinity:0:-1: + %*2Le:infinity:0:-1: +-%2Le:+nan():0:-1: +-%*2Le:+nan():0:-1: +-%2Le:+nan(09A_Zaz):0:-1: +-%*2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:+nan():0:-1: ++# BZ30647 %*2Le:+nan():0:-1: ++# BZ30647 %2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:+nan(09A_Zaz):0:-1: + %2Le:+0e0:1:2:0x0: + %*2Le:+0e0:0:2: + %2Le:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Le:-0e+0:0:-1: + # BZ12701 %3Le:-0e0:0:-1: + # BZ12701 %*3Le:-0e0:0:-1: +-%3Le:-nan(09A_Zaz):0:-1: +-%*3Le:-nan(09A_Zaz):0:-1: +-%3Le:-nan():0:-1: +-%*3Le:-nan():0:-1: +-%3Le:nan():1:3:nan: +-%*3Le:nan():0:3: +-%3Le:nan(09A_Zaz):1:3:nan: +-%*3Le:nan(09A_Zaz):0:3: ++# BZ30647 %3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:-nan():0:-1: ++# BZ30647 %*3Le:-nan():0:-1: ++# BZ30647 %3Le:nan():1:3:nan: ++# BZ30647 %*3Le:nan():0:3: ++# BZ30647 %3Le:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Le:nan(09A_Zaz):0:3: + %3Le:0e0:1:3:0x0: + %*3Le:0e0:0:3: + # BZ12701 %3Le:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3Le:1.79769313486231580793728971405301199e+308:0:3: + %3Le:infinity:1:3:inf: + %*3Le:infinity:0:3: +-%3Le:+nan():0:-1: +-%*3Le:+nan():0:-1: +-%3Le:+nan(09A_Zaz):0:-1: +-%*3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:+nan():0:-1: ++# BZ30647 %*3Le:+nan():0:-1: ++# BZ30647 %3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:+nan(09A_Zaz):0:-1: + # BZ12701 %3Le:+0e0:0:-1: + # BZ12701 %*3Le:+0e0:0:-1: + # BZ12701 %3Le:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4Le:-0e+0:0:-1: + %4Le:-0e0:1:4:-0x0: + %*4Le:-0e0:0:4: +-%4Le:-nan(09A_Zaz):1:4:-nan: +-%*4Le:-nan(09A_Zaz):0:4: +-%4Le:-nan():1:4:-nan: +-%*4Le:-nan():0:4: +-%4Le:nan():0:-1: +-%*4Le:nan():0:-1: +-%4Le:nan(09A_Zaz):0:-1: +-%*4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %4Le:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Le:-nan(09A_Zaz):0:4: ++# BZ30647 %4Le:-nan():1:4:-nan: ++# BZ30647 %*4Le:-nan():0:4: ++# BZ30647 %4Le:nan():0:-1: ++# BZ30647 %*4Le:nan():0:-1: ++# BZ30647 %4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Le:nan(09A_Zaz):0:-1: + %4Le:0e0:1:3:0x0: + %*4Le:0e0:0:3: + %4Le:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4Le:1.79769313486231580793728971405301199e+308:0:4: + %4Le:infinity:0:-1: + %*4Le:infinity:0:-1: +-%4Le:+nan():1:4:nan: +-%*4Le:+nan():0:4: +-%4Le:+nan(09A_Zaz):1:4:nan: +-%*4Le:+nan(09A_Zaz):0:4: ++# BZ30647 %4Le:+nan():1:4:nan: ++# BZ30647 %*4Le:+nan():0:4: ++# BZ30647 %4Le:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Le:+nan(09A_Zaz):0:4: + %4Le:+0e0:1:4:0x0: + %*4Le:+0e0:0:4: + # BZ12701 %4Le:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40Le:-0e+0:0:5: + %40Le:-0e0:1:4:-0x0: + %*40Le:-0e0:0:4: +-%40Le:-nan(09A_Zaz):1:13:-nan: +-%*40Le:-nan(09A_Zaz):0:13: +-%40Le:-nan():1:6:-nan: +-%*40Le:-nan():0:6: +-%40Le:nan():1:5:nan: +-%*40Le:nan():0:5: +-%40Le:nan(09A_Zaz):1:12:nan: +-%*40Le:nan(09A_Zaz):0:12: ++# BZ30647 %40Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40Le:-nan(09A_Zaz):0:13: ++# BZ30647 %40Le:-nan():1:6:-nan: ++# BZ30647 %*40Le:-nan():0:6: ++# BZ30647 %40Le:nan():1:5:nan: ++# BZ30647 %*40Le:nan():0:5: ++# BZ30647 %40Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40Le:nan(09A_Zaz):0:12: + %40Le:0e0:1:3:0x0: + %*40Le:0e0:0:3: + %40Le:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40Le:1.79769313486231580793728971405301199e+308:0:40: + %40Le:infinity:1:8:inf: + %*40Le:infinity:0:8: +-%40Le:+nan():1:6:nan: +-%*40Le:+nan():0:6: +-%40Le:+nan(09A_Zaz):1:13:nan: +-%*40Le:+nan(09A_Zaz):0:13: ++# BZ30647 %40Le:+nan():1:6:nan: ++# BZ30647 %*40Le:+nan():0:6: ++# BZ30647 %40Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40Le:+nan(09A_Zaz):0:13: + %40Le:+0e0:1:4:0x0: + %*40Le:+0e0:0:4: + %40Le:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48Le:-0e+0:0:5: + %48Le:-0e0:1:4:-0x0: + %*48Le:-0e0:0:4: +-%48Le:-nan(09A_Zaz):1:13:-nan: +-%*48Le:-nan(09A_Zaz):0:13: +-%48Le:-nan():1:6:-nan: +-%*48Le:-nan():0:6: +-%48Le:nan():1:5:nan: +-%*48Le:nan():0:5: +-%48Le:nan(09A_Zaz):1:12:nan: +-%*48Le:nan(09A_Zaz):0:12: ++# BZ30647 %48Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48Le:-nan(09A_Zaz):0:13: ++# BZ30647 %48Le:-nan():1:6:-nan: ++# BZ30647 %*48Le:-nan():0:6: ++# BZ30647 %48Le:nan():1:5:nan: ++# BZ30647 %*48Le:nan():0:5: ++# BZ30647 %48Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48Le:nan(09A_Zaz):0:12: + %48Le:0e0:1:3:0x0: + %*48Le:0e0:0:3: + %48Le:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48Le:1.79769313486231580793728971405301199e+308:0:42: + %48Le:infinity:1:8:inf: + %*48Le:infinity:0:8: +-%48Le:+nan():1:6:nan: +-%*48Le:+nan():0:6: +-%48Le:+nan(09A_Zaz):1:13:nan: +-%*48Le:+nan(09A_Zaz):0:13: ++# BZ30647 %48Le:+nan():1:6:nan: ++# BZ30647 %*48Le:+nan():0:6: ++# BZ30647 %48Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le:+nan(09A_Zaz):0:13: + %48Le:+0e0:1:4:0x0: + %*48Le:+0e0:0:4: + %48Le:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3Le: -0e+0:0:-1: + # BZ12701 %3Le: -0e0:0:-1: + # BZ12701 %*3Le: -0e0:0:-1: +-%3Le: -nan(09A_Zaz):0:-1: +-%*3Le: -nan(09A_Zaz):0:-1: +-%3Le: -nan():0:-1: +-%*3Le: -nan():0:-1: +-%3Le: nan():1:4:nan: +-%*3Le: nan():0:4: +-%3Le: nan(09A_Zaz):1:4:nan: +-%*3Le: nan(09A_Zaz):0:4: ++# BZ30647 %3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: -nan():0:-1: ++# BZ30647 %*3Le: -nan():0:-1: ++# BZ30647 %3Le: nan():1:4:nan: ++# BZ30647 %*3Le: nan():0:4: ++# BZ30647 %3Le: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Le: nan(09A_Zaz):0:4: + %3Le: 0e0:1:4:0x0: + %*3Le: 0e0:0:4: + # BZ12701 %3Le: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3Le: 1.79769313486231580793728971405301199e+308:0:4: + %3Le: infinity:1:4:inf: + %*3Le: infinity:0:4: +-%3Le: +nan():0:-1: +-%*3Le: +nan():0:-1: +-%3Le: +nan(09A_Zaz):0:-1: +-%*3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: +nan():0:-1: ++# BZ30647 %*3Le: +nan():0:-1: ++# BZ30647 %3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: +nan(09A_Zaz):0:-1: + # BZ12701 %3Le: +0e0:0:-1: + # BZ12701 %*3Le: +0e0:0:-1: + # BZ12701 %3Le: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48Le: -0e+0:0:6: + %48Le: -0e0:1:5:-0x0: + %*48Le: -0e0:0:5: +-%48Le: -nan(09A_Zaz):1:14:-nan: +-%*48Le: -nan(09A_Zaz):0:14: +-%48Le: -nan():1:7:-nan: +-%*48Le: -nan():0:7: +-%48Le: nan():1:6:nan: +-%*48Le: nan():0:6: +-%48Le: nan(09A_Zaz):1:13:nan: +-%*48Le: nan(09A_Zaz):0:13: ++# BZ30647 %48Le: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48Le: -nan(09A_Zaz):0:14: ++# BZ30647 %48Le: -nan():1:7:-nan: ++# BZ30647 %*48Le: -nan():0:7: ++# BZ30647 %48Le: nan():1:6:nan: ++# BZ30647 %*48Le: nan():0:6: ++# BZ30647 %48Le: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le: nan(09A_Zaz):0:13: + %48Le: 0e0:1:4:0x0: + %*48Le: 0e0:0:4: + %48Le: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48Le: 1.79769313486231580793728971405301199e+308:0:43: + %48Le: infinity:1:9:inf: + %*48Le: infinity:0:9: +-%48Le: +nan():1:7:nan: +-%*48Le: +nan():0:7: +-%48Le: +nan(09A_Zaz):1:14:nan: +-%*48Le: +nan(09A_Zaz):0:14: ++# BZ30647 %48Le: +nan():1:7:nan: ++# BZ30647 %*48Le: +nan():0:7: ++# BZ30647 %48Le: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48Le: +nan(09A_Zaz):0:14: + %48Le: +0e0:1:5:0x0: + %*48Le: +0e0:0:5: + %48Le: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input +index 3a543bc5366ba403..3d698c783f6644f9 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input +@@ -16,14 +16,14 @@ + %*LE:-0E+0:0:5: + %LE:-0E0:1:4:-0x0: + %*LE:-0E0:0:4: +-%LE:-NAN(09A_Zaz):1:13:-nan: +-%*LE:-NAN(09A_Zaz):0:13: +-%LE:-NAN():1:6:-nan: +-%*LE:-NAN():0:6: +-%LE:NAN():1:5:nan: +-%*LE:NAN():0:5: +-%LE:NAN(09A_Zaz):1:12:nan: +-%*LE:NAN(09A_Zaz):0:12: ++# BZ30647 %LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %LE:-NAN():1:6:-nan: ++# BZ30647 %*LE:-NAN():0:6: ++# BZ30647 %LE:NAN():1:5:nan: ++# BZ30647 %*LE:NAN():0:5: ++# BZ30647 %LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LE:NAN(09A_Zaz):0:12: + %LE:0E0:1:3:0x0: + %*LE:0E0:0:3: + %LE:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*LE:1.79769313486231580793728971405301199E+308:0:42: + %LE:INFINITY:1:8:inf: + %*LE:INFINITY:0:8: +-%LE:+NAN():1:6:nan: +-%*LE:+NAN():0:6: +-%LE:+NAN(09A_Zaz):1:13:nan: +-%*LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %LE:+NAN():1:6:nan: ++# BZ30647 %*LE:+NAN():0:6: ++# BZ30647 %LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LE:+NAN(09A_Zaz):0:13: + %LE:+0E0:1:4:0x0: + %*LE:+0E0:0:4: + %LE:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1LE:-0E+0:0:-1: + %1LE:-0E0:0:-1: + %*1LE:-0E0:0:-1: +-%1LE:-NAN(09A_Zaz):0:-1: +-%*1LE:-NAN(09A_Zaz):0:-1: +-%1LE:-NAN():0:-1: +-%*1LE:-NAN():0:-1: +-%1LE:NAN():0:-1: +-%*1LE:NAN():0:-1: +-%1LE:NAN(09A_Zaz):0:-1: +-%*1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN():0:-1: ++# BZ30647 %*1LE:-NAN():0:-1: ++# BZ30647 %1LE:NAN():0:-1: ++# BZ30647 %*1LE:NAN():0:-1: ++# BZ30647 %1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:NAN(09A_Zaz):0:-1: + %1LE:0E0:1:1:0x0: + %*1LE:0E0:0:1: + %1LE:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LE:1.79769313486231580793728971405301199E+308:0:1: + %1LE:INFINITY:0:-1: + %*1LE:INFINITY:0:-1: +-%1LE:+NAN():0:-1: +-%*1LE:+NAN():0:-1: +-%1LE:+NAN(09A_Zaz):0:-1: +-%*1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:+NAN():0:-1: ++# BZ30647 %*1LE:+NAN():0:-1: ++# BZ30647 %1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:+NAN(09A_Zaz):0:-1: + %1LE:+0E0:0:-1: + %*1LE:+0E0:0:-1: + %1LE:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LE:-0E+0:0:2: + %2LE:-0E0:1:2:-0x0: + %*2LE:-0E0:0:2: +-%2LE:-NAN(09A_Zaz):0:-1: +-%*2LE:-NAN(09A_Zaz):0:-1: +-%2LE:-NAN():0:-1: +-%*2LE:-NAN():0:-1: +-%2LE:NAN():0:-1: +-%*2LE:NAN():0:-1: +-%2LE:NAN(09A_Zaz):0:-1: +-%*2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN():0:-1: ++# BZ30647 %*2LE:-NAN():0:-1: ++# BZ30647 %2LE:NAN():0:-1: ++# BZ30647 %*2LE:NAN():0:-1: ++# BZ30647 %2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:NAN(09A_Zaz):0:-1: + # BZ12701 %2LE:0E0:0:-1: + # BZ12701 %*2LE:0E0:0:-1: + # BZ12701 %2LE:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2LE:1.79769313486231580793728971405301199E+308:0:2: + %2LE:INFINITY:0:-1: + %*2LE:INFINITY:0:-1: +-%2LE:+NAN():0:-1: +-%*2LE:+NAN():0:-1: +-%2LE:+NAN(09A_Zaz):0:-1: +-%*2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:+NAN():0:-1: ++# BZ30647 %*2LE:+NAN():0:-1: ++# BZ30647 %2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:+NAN(09A_Zaz):0:-1: + %2LE:+0E0:1:2:0x0: + %*2LE:+0E0:0:2: + %2LE:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LE:-0E+0:0:-1: + # BZ12701 %3LE:-0E0:0:-1: + # BZ12701 %*3LE:-0E0:0:-1: +-%3LE:-NAN(09A_Zaz):0:-1: +-%*3LE:-NAN(09A_Zaz):0:-1: +-%3LE:-NAN():0:-1: +-%*3LE:-NAN():0:-1: +-%3LE:NAN():1:3:nan: +-%*3LE:NAN():0:3: +-%3LE:NAN(09A_Zaz):1:3:nan: +-%*3LE:NAN(09A_Zaz):0:3: ++# BZ30647 %3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:-NAN():0:-1: ++# BZ30647 %*3LE:-NAN():0:-1: ++# BZ30647 %3LE:NAN():1:3:nan: ++# BZ30647 %*3LE:NAN():0:3: ++# BZ30647 %3LE:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LE:NAN(09A_Zaz):0:3: + %3LE:0E0:1:3:0x0: + %*3LE:0E0:0:3: + # BZ12701 %3LE:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3LE:1.79769313486231580793728971405301199E+308:0:3: + %3LE:INFINITY:1:3:inf: + %*3LE:INFINITY:0:3: +-%3LE:+NAN():0:-1: +-%*3LE:+NAN():0:-1: +-%3LE:+NAN(09A_Zaz):0:-1: +-%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:+NAN():0:-1: ++# BZ30647 %*3LE:+NAN():0:-1: ++# BZ30647 %3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LE:+0E0:0:-1: + # BZ12701 %*3LE:+0E0:0:-1: + # BZ12701 %3LE:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4LE:-0E+0:0:-1: + %4LE:-0E0:1:4:-0x0: + %*4LE:-0E0:0:4: +-%4LE:-NAN(09A_Zaz):1:4:-nan: +-%*4LE:-NAN(09A_Zaz):0:4: +-%4LE:-NAN():1:4:-nan: +-%*4LE:-NAN():0:4: +-%4LE:NAN():0:-1: +-%*4LE:NAN():0:-1: +-%4LE:NAN(09A_Zaz):0:-1: +-%*4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LE:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LE:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:-NAN():1:4:-nan: ++# BZ30647 %*4LE:-NAN():0:4: ++# BZ30647 %4LE:NAN():0:-1: ++# BZ30647 %*4LE:NAN():0:-1: ++# BZ30647 %4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LE:NAN(09A_Zaz):0:-1: + %4LE:0E0:1:3:0x0: + %*4LE:0E0:0:3: + %4LE:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4LE:1.79769313486231580793728971405301199E+308:0:4: + %4LE:INFINITY:0:-1: + %*4LE:INFINITY:0:-1: +-%4LE:+NAN():1:4:nan: +-%*4LE:+NAN():0:4: +-%4LE:+NAN(09A_Zaz):1:4:nan: +-%*4LE:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:+NAN():1:4:nan: ++# BZ30647 %*4LE:+NAN():0:4: ++# BZ30647 %4LE:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LE:+NAN(09A_Zaz):0:4: + %4LE:+0E0:1:4:0x0: + %*4LE:+0E0:0:4: + # BZ12701 %4LE:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40LE:-0E+0:0:5: + %40LE:-0E0:1:4:-0x0: + %*40LE:-0E0:0:4: +-%40LE:-NAN(09A_Zaz):1:13:-nan: +-%*40LE:-NAN(09A_Zaz):0:13: +-%40LE:-NAN():1:6:-nan: +-%*40LE:-NAN():0:6: +-%40LE:NAN():1:5:nan: +-%*40LE:NAN():0:5: +-%40LE:NAN(09A_Zaz):1:12:nan: +-%*40LE:NAN(09A_Zaz):0:12: ++# BZ30647 %40LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:-NAN():1:6:-nan: ++# BZ30647 %*40LE:-NAN():0:6: ++# BZ30647 %40LE:NAN():1:5:nan: ++# BZ30647 %*40LE:NAN():0:5: ++# BZ30647 %40LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40LE:NAN(09A_Zaz):0:12: + %40LE:0E0:1:3:0x0: + %*40LE:0E0:0:3: + %40LE:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40LE:1.79769313486231580793728971405301199E+308:0:40: + %40LE:INFINITY:1:8:inf: + %*40LE:INFINITY:0:8: +-%40LE:+NAN():1:6:nan: +-%*40LE:+NAN():0:6: +-%40LE:+NAN(09A_Zaz):1:13:nan: +-%*40LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:+NAN():1:6:nan: ++# BZ30647 %*40LE:+NAN():0:6: ++# BZ30647 %40LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40LE:+NAN(09A_Zaz):0:13: + %40LE:+0E0:1:4:0x0: + %*40LE:+0E0:0:4: + %40LE:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48LE:-0E+0:0:5: + %48LE:-0E0:1:4:-0x0: + %*48LE:-0E0:0:4: +-%48LE:-NAN(09A_Zaz):1:13:-nan: +-%*48LE:-NAN(09A_Zaz):0:13: +-%48LE:-NAN():1:6:-nan: +-%*48LE:-NAN():0:6: +-%48LE:NAN():1:5:nan: +-%*48LE:NAN():0:5: +-%48LE:NAN(09A_Zaz):1:12:nan: +-%*48LE:NAN(09A_Zaz):0:12: ++# BZ30647 %48LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:-NAN():1:6:-nan: ++# BZ30647 %*48LE:-NAN():0:6: ++# BZ30647 %48LE:NAN():1:5:nan: ++# BZ30647 %*48LE:NAN():0:5: ++# BZ30647 %48LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48LE:NAN(09A_Zaz):0:12: + %48LE:0E0:1:3:0x0: + %*48LE:0E0:0:3: + %48LE:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48LE:1.79769313486231580793728971405301199E+308:0:42: + %48LE:INFINITY:1:8:inf: + %*48LE:INFINITY:0:8: +-%48LE:+NAN():1:6:nan: +-%*48LE:+NAN():0:6: +-%48LE:+NAN(09A_Zaz):1:13:nan: +-%*48LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:+NAN():1:6:nan: ++# BZ30647 %*48LE:+NAN():0:6: ++# BZ30647 %48LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE:+NAN(09A_Zaz):0:13: + %48LE:+0E0:1:4:0x0: + %*48LE:+0E0:0:4: + %48LE:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3LE: -0E+0:0:-1: + # BZ12701 %3LE: -0E0:0:-1: + # BZ12701 %*3LE: -0E0:0:-1: +-%3LE: -NAN(09A_Zaz):0:-1: +-%*3LE: -NAN(09A_Zaz):0:-1: +-%3LE: -NAN():0:-1: +-%*3LE: -NAN():0:-1: +-%3LE: NAN():1:4:nan: +-%*3LE: NAN():0:4: +-%3LE: NAN(09A_Zaz):1:4:nan: +-%*3LE: NAN(09A_Zaz):0:4: ++# BZ30647 %3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: -NAN():0:-1: ++# BZ30647 %*3LE: -NAN():0:-1: ++# BZ30647 %3LE: NAN():1:4:nan: ++# BZ30647 %*3LE: NAN():0:4: ++# BZ30647 %3LE: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LE: NAN(09A_Zaz):0:4: + %3LE: 0E0:1:4:0x0: + %*3LE: 0E0:0:4: + # BZ12701 %3LE: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3LE: 1.79769313486231580793728971405301199E+308:0:4: + %3LE: INFINITY:1:4:inf: + %*3LE: INFINITY:0:4: +-%3LE: +NAN():0:-1: +-%*3LE: +NAN():0:-1: +-%3LE: +NAN(09A_Zaz):0:-1: +-%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: +NAN():0:-1: ++# BZ30647 %*3LE: +NAN():0:-1: ++# BZ30647 %3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: +NAN(09A_Zaz):0:-1: + # BZ12701 %3LE: +0E0:0:-1: + # BZ12701 %*3LE: +0E0:0:-1: + # BZ12701 %3LE: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48LE: -0E+0:0:6: + %48LE: -0E0:1:5:-0x0: + %*48LE: -0E0:0:5: +-%48LE: -NAN(09A_Zaz):1:14:-nan: +-%*48LE: -NAN(09A_Zaz):0:14: +-%48LE: -NAN():1:7:-nan: +-%*48LE: -NAN():0:7: +-%48LE: NAN():1:6:nan: +-%*48LE: NAN():0:6: +-%48LE: NAN(09A_Zaz):1:13:nan: +-%*48LE: NAN(09A_Zaz):0:13: ++# BZ30647 %48LE: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48LE: -NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: -NAN():1:7:-nan: ++# BZ30647 %*48LE: -NAN():0:7: ++# BZ30647 %48LE: NAN():1:6:nan: ++# BZ30647 %*48LE: NAN():0:6: ++# BZ30647 %48LE: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE: NAN(09A_Zaz):0:13: + %48LE: 0E0:1:4:0x0: + %*48LE: 0E0:0:4: + %48LE: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48LE: 1.79769313486231580793728971405301199E+308:0:43: + %48LE: INFINITY:1:9:inf: + %*48LE: INFINITY:0:9: +-%48LE: +NAN():1:7:nan: +-%*48LE: +NAN():0:7: +-%48LE: +NAN(09A_Zaz):1:14:nan: +-%*48LE: +NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: +NAN():1:7:nan: ++# BZ30647 %*48LE: +NAN():0:7: ++# BZ30647 %48LE: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48LE: +NAN(09A_Zaz):0:14: + %48LE: +0E0:1:5:0x0: + %*48LE: +0E0:0:5: + %48LE: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input +index 9d4fd75fd0250a93..20b74f0d141a50b8 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input +@@ -16,14 +16,14 @@ + %*Lf:-0.0:0:4: + %Lf:-0:1:2:-0x0: + %*Lf:-0:0:2: +-%Lf:-nan(09A_Zaz):1:13:-nan: +-%*Lf:-nan(09A_Zaz):0:13: +-%Lf:-nan():1:6:-nan: +-%*Lf:-nan():0:6: +-%Lf:nan():1:5:nan: +-%*Lf:nan():0:5: +-%Lf:nan(09A_Zaz):1:12:nan: +-%*Lf:nan(09A_Zaz):0:12: ++# BZ30647 %Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %Lf:-nan():1:6:-nan: ++# BZ30647 %*Lf:-nan():0:6: ++# BZ30647 %Lf:nan():1:5:nan: ++# BZ30647 %*Lf:nan():0:5: ++# BZ30647 %Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lf:nan(09A_Zaz):0:12: + %Lf:0:1:1:0x0: + %*Lf:0:0:1: + %Lf:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: + %Lf:infinity:1:8:inf: + %*Lf:infinity:0:8: +-%Lf:+nan():1:6:nan: +-%*Lf:+nan():0:6: +-%Lf:+nan(09A_Zaz):1:13:nan: +-%*Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %Lf:+nan():1:6:nan: ++# BZ30647 %*Lf:+nan():0:6: ++# BZ30647 %Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lf:+nan(09A_Zaz):0:13: + %Lf:+0:1:2:0x0: + %*Lf:+0:0:2: + %Lf:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1Lf:-0.0:0:-1: + %1Lf:-0:0:-1: + %*1Lf:-0:0:-1: +-%1Lf:-nan(09A_Zaz):0:-1: +-%*1Lf:-nan(09A_Zaz):0:-1: +-%1Lf:-nan():0:-1: +-%*1Lf:-nan():0:-1: +-%1Lf:nan():0:-1: +-%*1Lf:nan():0:-1: +-%1Lf:nan(09A_Zaz):0:-1: +-%*1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan():0:-1: ++# BZ30647 %*1Lf:-nan():0:-1: ++# BZ30647 %1Lf:nan():0:-1: ++# BZ30647 %*1Lf:nan():0:-1: ++# BZ30647 %1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:nan(09A_Zaz):0:-1: + %1Lf:0:1:1:0x0: + %*1Lf:0:0:1: + %1Lf:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:1: + %1Lf:infinity:0:-1: + %*1Lf:infinity:0:-1: +-%1Lf:+nan():0:-1: +-%*1Lf:+nan():0:-1: +-%1Lf:+nan(09A_Zaz):0:-1: +-%*1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:+nan():0:-1: ++# BZ30647 %*1Lf:+nan():0:-1: ++# BZ30647 %1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:+nan(09A_Zaz):0:-1: + %1Lf:+0:0:-1: + %*1Lf:+0:0:-1: + %1Lf:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lf:-0.0:0:2: + %2Lf:-0:1:2:-0x0: + %*2Lf:-0:0:2: +-%2Lf:-nan(09A_Zaz):0:-1: +-%*2Lf:-nan(09A_Zaz):0:-1: +-%2Lf:-nan():0:-1: +-%*2Lf:-nan():0:-1: +-%2Lf:nan():0:-1: +-%*2Lf:nan():0:-1: +-%2Lf:nan(09A_Zaz):0:-1: +-%*2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan():0:-1: ++# BZ30647 %*2Lf:-nan():0:-1: ++# BZ30647 %2Lf:nan():0:-1: ++# BZ30647 %*2Lf:nan():0:-1: ++# BZ30647 %2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:nan(09A_Zaz):0:-1: + %2Lf:0:1:1:0x0: + %*2Lf:0:0:1: + %2Lf:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: + %2Lf:infinity:0:-1: + %*2Lf:infinity:0:-1: +-%2Lf:+nan():0:-1: +-%*2Lf:+nan():0:-1: +-%2Lf:+nan(09A_Zaz):0:-1: +-%*2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:+nan():0:-1: ++# BZ30647 %*2Lf:+nan():0:-1: ++# BZ30647 %2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:+nan(09A_Zaz):0:-1: + %2Lf:+0:1:2:0x0: + %*2Lf:+0:0:2: + %2Lf:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3Lf:-0.0:0:3: + %3Lf:-0:1:2:-0x0: + %*3Lf:-0:0:2: +-%3Lf:-nan(09A_Zaz):0:-1: +-%*3Lf:-nan(09A_Zaz):0:-1: +-%3Lf:-nan():0:-1: +-%*3Lf:-nan():0:-1: +-%3Lf:nan():1:3:nan: +-%*3Lf:nan():0:3: +-%3Lf:nan(09A_Zaz):1:3:nan: +-%*3Lf:nan(09A_Zaz):0:3: ++# BZ30647 %3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:-nan():0:-1: ++# BZ30647 %*3Lf:-nan():0:-1: ++# BZ30647 %3Lf:nan():1:3:nan: ++# BZ30647 %*3Lf:nan():0:3: ++# BZ30647 %3Lf:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lf:nan(09A_Zaz):0:3: + %3Lf:0:1:1:0x0: + %*3Lf:0:0:1: + %3Lf:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: + %3Lf:infinity:1:3:inf: + %*3Lf:infinity:0:3: +-%3Lf:+nan():0:-1: +-%*3Lf:+nan():0:-1: +-%3Lf:+nan(09A_Zaz):0:-1: +-%*3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:+nan():0:-1: ++# BZ30647 %*3Lf:+nan():0:-1: ++# BZ30647 %3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:+nan(09A_Zaz):0:-1: + %3Lf:+0:1:2:0x0: + %*3Lf:+0:0:2: + %3Lf:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*295Lf:-0.0:0:4: + %295Lf:-0:1:2:-0x0: + %*295Lf:-0:0:2: +-%295Lf:-nan(09A_Zaz):1:13:-nan: +-%*295Lf:-nan(09A_Zaz):0:13: +-%295Lf:-nan():1:6:-nan: +-%*295Lf:-nan():0:6: +-%295Lf:nan():1:5:nan: +-%*295Lf:nan():0:5: +-%295Lf:nan(09A_Zaz):1:12:nan: +-%*295Lf:nan(09A_Zaz):0:12: ++# BZ30647 %295Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*295Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %295Lf:-nan():1:6:-nan: ++# BZ30647 %*295Lf:-nan():0:6: ++# BZ30647 %295Lf:nan():1:5:nan: ++# BZ30647 %*295Lf:nan():0:5: ++# BZ30647 %295Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*295Lf:nan(09A_Zaz):0:12: + %295Lf:0:1:1:0x0: + %*295Lf:0:0:1: + %295Lf:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*295Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: + %295Lf:infinity:1:8:inf: + %*295Lf:infinity:0:8: +-%295Lf:+nan():1:6:nan: +-%*295Lf:+nan():0:6: +-%295Lf:+nan(09A_Zaz):1:13:nan: +-%*295Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %295Lf:+nan():1:6:nan: ++# BZ30647 %*295Lf:+nan():0:6: ++# BZ30647 %295Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*295Lf:+nan(09A_Zaz):0:13: + %295Lf:+0:1:2:0x0: + %*295Lf:+0:0:2: + %295Lf:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*340Lf:-0.0:0:4: + %340Lf:-0:1:2:-0x0: + %*340Lf:-0:0:2: +-%340Lf:-nan(09A_Zaz):1:13:-nan: +-%*340Lf:-nan(09A_Zaz):0:13: +-%340Lf:-nan():1:6:-nan: +-%*340Lf:-nan():0:6: +-%340Lf:nan():1:5:nan: +-%*340Lf:nan():0:5: +-%340Lf:nan(09A_Zaz):1:12:nan: +-%*340Lf:nan(09A_Zaz):0:12: ++# BZ30647 %340Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*340Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %340Lf:-nan():1:6:-nan: ++# BZ30647 %*340Lf:-nan():0:6: ++# BZ30647 %340Lf:nan():1:5:nan: ++# BZ30647 %*340Lf:nan():0:5: ++# BZ30647 %340Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*340Lf:nan(09A_Zaz):0:12: + %340Lf:0:1:1:0x0: + %*340Lf:0:0:1: + %340Lf:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*340Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: + %340Lf:infinity:1:8:inf: + %*340Lf:infinity:0:8: +-%340Lf:+nan():1:6:nan: +-%*340Lf:+nan():0:6: +-%340Lf:+nan(09A_Zaz):1:13:nan: +-%*340Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %340Lf:+nan():1:6:nan: ++# BZ30647 %*340Lf:+nan():0:6: ++# BZ30647 %340Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*340Lf:+nan(09A_Zaz):0:13: + %340Lf:+0:1:2:0x0: + %*340Lf:+0:0:2: + %340Lf:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3Lf: -0.0:0:4: + %3Lf: -0:1:3:-0x0: + %*3Lf: -0:0:3: +-%3Lf: -nan(09A_Zaz):0:-1: +-%*3Lf: -nan(09A_Zaz):0:-1: +-%3Lf: -nan():0:-1: +-%*3Lf: -nan():0:-1: +-%3Lf: nan():1:4:nan: +-%*3Lf: nan():0:4: +-%3Lf: nan(09A_Zaz):1:4:nan: +-%*3Lf: nan(09A_Zaz):0:4: ++# BZ30647 %3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: -nan():0:-1: ++# BZ30647 %*3Lf: -nan():0:-1: ++# BZ30647 %3Lf: nan():1:4:nan: ++# BZ30647 %*3Lf: nan():0:4: ++# BZ30647 %3Lf: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Lf: nan(09A_Zaz):0:4: + %3Lf: 0:1:2:0x0: + %*3Lf: 0:0:2: + %3Lf: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: + %3Lf: infinity:1:4:inf: + %*3Lf: infinity:0:4: +-%3Lf: +nan():0:-1: +-%*3Lf: +nan():0:-1: +-%3Lf: +nan(09A_Zaz):0:-1: +-%*3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: +nan():0:-1: ++# BZ30647 %*3Lf: +nan():0:-1: ++# BZ30647 %3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: +nan(09A_Zaz):0:-1: + %3Lf: +0:1:3:0x0: + %*3Lf: +0:0:3: + %3Lf: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*340Lf: -0.0:0:5: + %340Lf: -0:1:3:-0x0: + %*340Lf: -0:0:3: +-%340Lf: -nan(09A_Zaz):1:14:-nan: +-%*340Lf: -nan(09A_Zaz):0:14: +-%340Lf: -nan():1:7:-nan: +-%*340Lf: -nan():0:7: +-%340Lf: nan():1:6:nan: +-%*340Lf: nan():0:6: +-%340Lf: nan(09A_Zaz):1:13:nan: +-%*340Lf: nan(09A_Zaz):0:13: ++# BZ30647 %340Lf: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*340Lf: -nan(09A_Zaz):0:14: ++# BZ30647 %340Lf: -nan():1:7:-nan: ++# BZ30647 %*340Lf: -nan():0:7: ++# BZ30647 %340Lf: nan():1:6:nan: ++# BZ30647 %*340Lf: nan():0:6: ++# BZ30647 %340Lf: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*340Lf: nan(09A_Zaz):0:13: + %340Lf: 0:1:2:0x0: + %*340Lf: 0:0:2: + %340Lf: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*340Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: + %340Lf: infinity:1:9:inf: + %*340Lf: infinity:0:9: +-%340Lf: +nan():1:7:nan: +-%*340Lf: +nan():0:7: +-%340Lf: +nan(09A_Zaz):1:14:nan: +-%*340Lf: +nan(09A_Zaz):0:14: ++# BZ30647 %340Lf: +nan():1:7:nan: ++# BZ30647 %*340Lf: +nan():0:7: ++# BZ30647 %340Lf: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*340Lf: +nan(09A_Zaz):0:14: + %340Lf: +0:1:3:0x0: + %*340Lf: +0:0:3: + %340Lf: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input +index bb7098a00dd383b3..8f77dc99160188b8 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input +@@ -16,14 +16,14 @@ + %*LF:-0.0:0:4: + %LF:-0:1:2:-0x0: + %*LF:-0:0:2: +-%LF:-NAN(09A_Zaz):1:13:-nan: +-%*LF:-NAN(09A_Zaz):0:13: +-%LF:-NAN():1:6:-nan: +-%*LF:-NAN():0:6: +-%LF:NAN():1:5:nan: +-%*LF:NAN():0:5: +-%LF:NAN(09A_Zaz):1:12:nan: +-%*LF:NAN(09A_Zaz):0:12: ++# BZ30647 %LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %LF:-NAN():1:6:-nan: ++# BZ30647 %*LF:-NAN():0:6: ++# BZ30647 %LF:NAN():1:5:nan: ++# BZ30647 %*LF:NAN():0:5: ++# BZ30647 %LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LF:NAN(09A_Zaz):0:12: + %LF:0:1:1:0x0: + %*LF:0:0:1: + %LF:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: + %LF:INFINITY:1:8:inf: + %*LF:INFINITY:0:8: +-%LF:+NAN():1:6:nan: +-%*LF:+NAN():0:6: +-%LF:+NAN(09A_Zaz):1:13:nan: +-%*LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %LF:+NAN():1:6:nan: ++# BZ30647 %*LF:+NAN():0:6: ++# BZ30647 %LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LF:+NAN(09A_Zaz):0:13: + %LF:+0:1:2:0x0: + %*LF:+0:0:2: + %LF:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1LF:-0.0:0:-1: + %1LF:-0:0:-1: + %*1LF:-0:0:-1: +-%1LF:-NAN(09A_Zaz):0:-1: +-%*1LF:-NAN(09A_Zaz):0:-1: +-%1LF:-NAN():0:-1: +-%*1LF:-NAN():0:-1: +-%1LF:NAN():0:-1: +-%*1LF:NAN():0:-1: +-%1LF:NAN(09A_Zaz):0:-1: +-%*1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN():0:-1: ++# BZ30647 %*1LF:-NAN():0:-1: ++# BZ30647 %1LF:NAN():0:-1: ++# BZ30647 %*1LF:NAN():0:-1: ++# BZ30647 %1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:NAN(09A_Zaz):0:-1: + %1LF:0:1:1:0x0: + %*1LF:0:0:1: + %1LF:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:1: + %1LF:INFINITY:0:-1: + %*1LF:INFINITY:0:-1: +-%1LF:+NAN():0:-1: +-%*1LF:+NAN():0:-1: +-%1LF:+NAN(09A_Zaz):0:-1: +-%*1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:+NAN():0:-1: ++# BZ30647 %*1LF:+NAN():0:-1: ++# BZ30647 %1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:+NAN(09A_Zaz):0:-1: + %1LF:+0:0:-1: + %*1LF:+0:0:-1: + %1LF:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2LF:-0.0:0:2: + %2LF:-0:1:2:-0x0: + %*2LF:-0:0:2: +-%2LF:-NAN(09A_Zaz):0:-1: +-%*2LF:-NAN(09A_Zaz):0:-1: +-%2LF:-NAN():0:-1: +-%*2LF:-NAN():0:-1: +-%2LF:NAN():0:-1: +-%*2LF:NAN():0:-1: +-%2LF:NAN(09A_Zaz):0:-1: +-%*2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN():0:-1: ++# BZ30647 %*2LF:-NAN():0:-1: ++# BZ30647 %2LF:NAN():0:-1: ++# BZ30647 %*2LF:NAN():0:-1: ++# BZ30647 %2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:NAN(09A_Zaz):0:-1: + %2LF:0:1:1:0x0: + %*2LF:0:0:1: + %2LF:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: + %2LF:INFINITY:0:-1: + %*2LF:INFINITY:0:-1: +-%2LF:+NAN():0:-1: +-%*2LF:+NAN():0:-1: +-%2LF:+NAN(09A_Zaz):0:-1: +-%*2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:+NAN():0:-1: ++# BZ30647 %*2LF:+NAN():0:-1: ++# BZ30647 %2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:+NAN(09A_Zaz):0:-1: + %2LF:+0:1:2:0x0: + %*2LF:+0:0:2: + %2LF:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3LF:-0.0:0:3: + %3LF:-0:1:2:-0x0: + %*3LF:-0:0:2: +-%3LF:-NAN(09A_Zaz):0:-1: +-%*3LF:-NAN(09A_Zaz):0:-1: +-%3LF:-NAN():0:-1: +-%*3LF:-NAN():0:-1: +-%3LF:NAN():1:3:nan: +-%*3LF:NAN():0:3: +-%3LF:NAN(09A_Zaz):1:3:nan: +-%*3LF:NAN(09A_Zaz):0:3: ++# BZ30647 %3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:-NAN():0:-1: ++# BZ30647 %*3LF:-NAN():0:-1: ++# BZ30647 %3LF:NAN():1:3:nan: ++# BZ30647 %*3LF:NAN():0:3: ++# BZ30647 %3LF:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LF:NAN(09A_Zaz):0:3: + %3LF:0:1:1:0x0: + %*3LF:0:0:1: + %3LF:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: + %3LF:INFINITY:1:3:inf: + %*3LF:INFINITY:0:3: +-%3LF:+NAN():0:-1: +-%*3LF:+NAN():0:-1: +-%3LF:+NAN(09A_Zaz):0:-1: +-%*3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:+NAN():0:-1: ++# BZ30647 %*3LF:+NAN():0:-1: ++# BZ30647 %3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:+NAN(09A_Zaz):0:-1: + %3LF:+0:1:2:0x0: + %*3LF:+0:0:2: + %3LF:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*295LF:-0.0:0:4: + %295LF:-0:1:2:-0x0: + %*295LF:-0:0:2: +-%295LF:-NAN(09A_Zaz):1:13:-nan: +-%*295LF:-NAN(09A_Zaz):0:13: +-%295LF:-NAN():1:6:-nan: +-%*295LF:-NAN():0:6: +-%295LF:NAN():1:5:nan: +-%*295LF:NAN():0:5: +-%295LF:NAN(09A_Zaz):1:12:nan: +-%*295LF:NAN(09A_Zaz):0:12: ++# BZ30647 %295LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*295LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %295LF:-NAN():1:6:-nan: ++# BZ30647 %*295LF:-NAN():0:6: ++# BZ30647 %295LF:NAN():1:5:nan: ++# BZ30647 %*295LF:NAN():0:5: ++# BZ30647 %295LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*295LF:NAN(09A_Zaz):0:12: + %295LF:0:1:1:0x0: + %*295LF:0:0:1: + %295LF:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*295LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: + %295LF:INFINITY:1:8:inf: + %*295LF:INFINITY:0:8: +-%295LF:+NAN():1:6:nan: +-%*295LF:+NAN():0:6: +-%295LF:+NAN(09A_Zaz):1:13:nan: +-%*295LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %295LF:+NAN():1:6:nan: ++# BZ30647 %*295LF:+NAN():0:6: ++# BZ30647 %295LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*295LF:+NAN(09A_Zaz):0:13: + %295LF:+0:1:2:0x0: + %*295LF:+0:0:2: + %295LF:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*340LF:-0.0:0:4: + %340LF:-0:1:2:-0x0: + %*340LF:-0:0:2: +-%340LF:-NAN(09A_Zaz):1:13:-nan: +-%*340LF:-NAN(09A_Zaz):0:13: +-%340LF:-NAN():1:6:-nan: +-%*340LF:-NAN():0:6: +-%340LF:NAN():1:5:nan: +-%*340LF:NAN():0:5: +-%340LF:NAN(09A_Zaz):1:12:nan: +-%*340LF:NAN(09A_Zaz):0:12: ++# BZ30647 %340LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*340LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %340LF:-NAN():1:6:-nan: ++# BZ30647 %*340LF:-NAN():0:6: ++# BZ30647 %340LF:NAN():1:5:nan: ++# BZ30647 %*340LF:NAN():0:5: ++# BZ30647 %340LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*340LF:NAN(09A_Zaz):0:12: + %340LF:0:1:1:0x0: + %*340LF:0:0:1: + %340LF:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*340LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: + %340LF:INFINITY:1:8:inf: + %*340LF:INFINITY:0:8: +-%340LF:+NAN():1:6:nan: +-%*340LF:+NAN():0:6: +-%340LF:+NAN(09A_Zaz):1:13:nan: +-%*340LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %340LF:+NAN():1:6:nan: ++# BZ30647 %*340LF:+NAN():0:6: ++# BZ30647 %340LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*340LF:+NAN(09A_Zaz):0:13: + %340LF:+0:1:2:0x0: + %*340LF:+0:0:2: + %340LF:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3LF: -0.0:0:4: + %3LF: -0:1:3:-0x0: + %*3LF: -0:0:3: +-%3LF: -NAN(09A_Zaz):0:-1: +-%*3LF: -NAN(09A_Zaz):0:-1: +-%3LF: -NAN():0:-1: +-%*3LF: -NAN():0:-1: +-%3LF: NAN():1:4:nan: +-%*3LF: NAN():0:4: +-%3LF: NAN(09A_Zaz):1:4:nan: +-%*3LF: NAN(09A_Zaz):0:4: ++# BZ30647 %3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: -NAN():0:-1: ++# BZ30647 %*3LF: -NAN():0:-1: ++# BZ30647 %3LF: NAN():1:4:nan: ++# BZ30647 %*3LF: NAN():0:4: ++# BZ30647 %3LF: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LF: NAN(09A_Zaz):0:4: + %3LF: 0:1:2:0x0: + %*3LF: 0:0:2: + %3LF: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: + %3LF: INFINITY:1:4:inf: + %*3LF: INFINITY:0:4: +-%3LF: +NAN():0:-1: +-%*3LF: +NAN():0:-1: +-%3LF: +NAN(09A_Zaz):0:-1: +-%*3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: +NAN():0:-1: ++# BZ30647 %*3LF: +NAN():0:-1: ++# BZ30647 %3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: +NAN(09A_Zaz):0:-1: + %3LF: +0:1:3:0x0: + %*3LF: +0:0:3: + %3LF: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*340LF: -0.0:0:5: + %340LF: -0:1:3:-0x0: + %*340LF: -0:0:3: +-%340LF: -NAN(09A_Zaz):1:14:-nan: +-%*340LF: -NAN(09A_Zaz):0:14: +-%340LF: -NAN():1:7:-nan: +-%*340LF: -NAN():0:7: +-%340LF: NAN():1:6:nan: +-%*340LF: NAN():0:6: +-%340LF: NAN(09A_Zaz):1:13:nan: +-%*340LF: NAN(09A_Zaz):0:13: ++# BZ30647 %340LF: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*340LF: -NAN(09A_Zaz):0:14: ++# BZ30647 %340LF: -NAN():1:7:-nan: ++# BZ30647 %*340LF: -NAN():0:7: ++# BZ30647 %340LF: NAN():1:6:nan: ++# BZ30647 %*340LF: NAN():0:6: ++# BZ30647 %340LF: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*340LF: NAN(09A_Zaz):0:13: + %340LF: 0:1:2:0x0: + %*340LF: 0:0:2: + %340LF: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*340LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: + %340LF: INFINITY:1:9:inf: + %*340LF: INFINITY:0:9: +-%340LF: +NAN():1:7:nan: +-%*340LF: +NAN():0:7: +-%340LF: +NAN(09A_Zaz):1:14:nan: +-%*340LF: +NAN(09A_Zaz):0:14: ++# BZ30647 %340LF: +NAN():1:7:nan: ++# BZ30647 %*340LF: +NAN():0:7: ++# BZ30647 %340LF: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*340LF: +NAN(09A_Zaz):0:14: + %340LF: +0:1:3:0x0: + %*340LF: +0:0:3: + %340LF: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input +index c500aa8d012c5c89..3ef57c2c9b7db8cd 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input +@@ -16,14 +16,14 @@ + %*Lg:-0x0p+0:0:7: + %Lg:-0x0p0:1:6:-0x0: + %*Lg:-0x0p0:0:6: +-%Lg:-nan(09A_Zaz):1:13:-nan: +-%*Lg:-nan(09A_Zaz):0:13: +-%Lg:-nan():1:6:-nan: +-%*Lg:-nan():0:6: +-%Lg:nan():1:5:nan: +-%*Lg:nan():0:5: +-%Lg:nan(09A_Zaz):1:12:nan: +-%*Lg:nan(09A_Zaz):0:12: ++# BZ30647 %Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %Lg:-nan():1:6:-nan: ++# BZ30647 %*Lg:-nan():0:6: ++# BZ30647 %Lg:nan():1:5:nan: ++# BZ30647 %*Lg:nan():0:5: ++# BZ30647 %Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lg:nan(09A_Zaz):0:12: + %Lg:0x0p0:1:5:0x0: + %*Lg:0x0p0:0:5: + %Lg:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:36: + %Lg:infinity:1:8:inf: + %*Lg:infinity:0:8: +-%Lg:+nan():1:6:nan: +-%*Lg:+nan():0:6: +-%Lg:+nan(09A_Zaz):1:13:nan: +-%*Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %Lg:+nan():1:6:nan: ++# BZ30647 %*Lg:+nan():0:6: ++# BZ30647 %Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lg:+nan(09A_Zaz):0:13: + %Lg:+0x0p0:1:6:0x0: + %*Lg:+0x0p0:0:6: + %Lg:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1Lg:-0x0p+0:0:-1: + %1Lg:-0x0p0:0:-1: + %*1Lg:-0x0p0:0:-1: +-%1Lg:-nan(09A_Zaz):0:-1: +-%*1Lg:-nan(09A_Zaz):0:-1: +-%1Lg:-nan():0:-1: +-%*1Lg:-nan():0:-1: +-%1Lg:nan():0:-1: +-%*1Lg:nan():0:-1: +-%1Lg:nan(09A_Zaz):0:-1: +-%*1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan():0:-1: ++# BZ30647 %*1Lg:-nan():0:-1: ++# BZ30647 %1Lg:nan():0:-1: ++# BZ30647 %*1Lg:nan():0:-1: ++# BZ30647 %1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:nan(09A_Zaz):0:-1: + %1Lg:0x0p0:1:1:0x0: + %*1Lg:0x0p0:0:1: + %1Lg:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:1: + %1Lg:infinity:0:-1: + %*1Lg:infinity:0:-1: +-%1Lg:+nan():0:-1: +-%*1Lg:+nan():0:-1: +-%1Lg:+nan(09A_Zaz):0:-1: +-%*1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:+nan():0:-1: ++# BZ30647 %*1Lg:+nan():0:-1: ++# BZ30647 %1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:+nan(09A_Zaz):0:-1: + %1Lg:+0x0p0:0:-1: + %*1Lg:+0x0p0:0:-1: + %1Lg:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lg:-0x0p+0:0:2: + %2Lg:-0x0p0:1:2:-0x0: + %*2Lg:-0x0p0:0:2: +-%2Lg:-nan(09A_Zaz):0:-1: +-%*2Lg:-nan(09A_Zaz):0:-1: +-%2Lg:-nan():0:-1: +-%*2Lg:-nan():0:-1: +-%2Lg:nan():0:-1: +-%*2Lg:nan():0:-1: +-%2Lg:nan(09A_Zaz):0:-1: +-%*2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan():0:-1: ++# BZ30647 %*2Lg:-nan():0:-1: ++# BZ30647 %2Lg:nan():0:-1: ++# BZ30647 %*2Lg:nan():0:-1: ++# BZ30647 %2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:nan(09A_Zaz):0:-1: + # BZ12701 %2Lg:0x0p0:0:-1: + # BZ12701 %*2Lg:0x0p0:0:-1: + # BZ12701 %2Lg:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: + %2Lg:infinity:0:-1: + %*2Lg:infinity:0:-1: +-%2Lg:+nan():0:-1: +-%*2Lg:+nan():0:-1: +-%2Lg:+nan(09A_Zaz):0:-1: +-%*2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:+nan():0:-1: ++# BZ30647 %*2Lg:+nan():0:-1: ++# BZ30647 %2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:+nan(09A_Zaz):0:-1: + %2Lg:+0x0p0:1:2:0x0: + %*2Lg:+0x0p0:0:2: + %2Lg:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Lg:-0x0p+0:0:-1: + # BZ12701 %3Lg:-0x0p0:0:-1: + # BZ12701 %*3Lg:-0x0p0:0:-1: +-%3Lg:-nan(09A_Zaz):0:-1: +-%*3Lg:-nan(09A_Zaz):0:-1: +-%3Lg:-nan():0:-1: +-%*3Lg:-nan():0:-1: +-%3Lg:nan():1:3:nan: +-%*3Lg:nan():0:3: +-%3Lg:nan(09A_Zaz):1:3:nan: +-%*3Lg:nan(09A_Zaz):0:3: ++# BZ30647 %3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:-nan():0:-1: ++# BZ30647 %*3Lg:-nan():0:-1: ++# BZ30647 %3Lg:nan():1:3:nan: ++# BZ30647 %*3Lg:nan():0:3: ++# BZ30647 %3Lg:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lg:nan(09A_Zaz):0:3: + %3Lg:0x0p0:1:3:0x0: + %*3Lg:0x0p0:0:3: + %3Lg:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:3: + %3Lg:infinity:1:3:inf: + %*3Lg:infinity:0:3: +-%3Lg:+nan():0:-1: +-%*3Lg:+nan():0:-1: +-%3Lg:+nan(09A_Zaz):0:-1: +-%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:+nan():0:-1: ++# BZ30647 %*3Lg:+nan():0:-1: ++# BZ30647 %3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %3Lg:+0x0p0:0:-1: + # BZ12701 %*3Lg:+0x0p0:0:-1: + # BZ12701 %3Lg:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4Lg:-0x0p+0:0:4: + %4Lg:-0x0p0:1:4:-0x0: + %*4Lg:-0x0p0:0:4: +-%4Lg:-nan(09A_Zaz):1:4:-nan: +-%*4Lg:-nan(09A_Zaz):0:4: +-%4Lg:-nan():1:4:-nan: +-%*4Lg:-nan():0:4: +-%4Lg:nan():0:-1: +-%*4Lg:nan():0:-1: +-%4Lg:nan(09A_Zaz):0:-1: +-%*4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %4Lg:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Lg:-nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:-nan():1:4:-nan: ++# BZ30647 %*4Lg:-nan():0:4: ++# BZ30647 %4Lg:nan():0:-1: ++# BZ30647 %*4Lg:nan():0:-1: ++# BZ30647 %4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Lg:nan(09A_Zaz):0:-1: + # BZ12701 %4Lg:0x0p0:0:-1: + # BZ12701 %*4Lg:0x0p0:0:-1: + # BZ12701 %4Lg:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:4: + %4Lg:infinity:0:-1: + %*4Lg:infinity:0:-1: +-%4Lg:+nan():1:4:nan: +-%*4Lg:+nan():0:4: +-%4Lg:+nan(09A_Zaz):1:4:nan: +-%*4Lg:+nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:+nan():1:4:nan: ++# BZ30647 %*4Lg:+nan():0:4: ++# BZ30647 %4Lg:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Lg:+nan(09A_Zaz):0:4: + %4Lg:+0x0p0:1:4:0x0: + %*4Lg:+0x0p0:0:4: + %4Lg:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5Lg:-0x0p+0:0:-1: + # BZ12701 %5Lg:-0x0p0:0:-1: + # BZ12701 %*5Lg:-0x0p0:0:-1: +-%5Lg:-nan(09A_Zaz):0:-1: +-%*5Lg:-nan(09A_Zaz):0:-1: +-%5Lg:-nan():0:-1: +-%*5Lg:-nan():0:-1: +-%5Lg:nan():1:5:nan: +-%*5Lg:nan():0:5: +-%5Lg:nan(09A_Zaz):0:-1: +-%*5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan():0:-1: ++# BZ30647 %*5Lg:-nan():0:-1: ++# BZ30647 %5Lg:nan():1:5:nan: ++# BZ30647 %*5Lg:nan():0:5: ++# BZ30647 %5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:nan(09A_Zaz):0:-1: + %5Lg:0x0p0:1:5:0x0: + %*5Lg:0x0p0:0:5: + # BZ12701 %5Lg:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:5: + %5Lg:infinity:0:-1: + %*5Lg:infinity:0:-1: +-%5Lg:+nan():0:-1: +-%*5Lg:+nan():0:-1: +-%5Lg:+nan(09A_Zaz):0:-1: +-%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:+nan():0:-1: ++# BZ30647 %*5Lg:+nan():0:-1: ++# BZ30647 %5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %5Lg:+0x0p0:0:-1: + # BZ12701 %*5Lg:+0x0p0:0:-1: + # BZ12701 %5Lg:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6Lg:-0x0p+0:0:-1: + %6Lg:-0x0p0:1:6:-0x0: + %*6Lg:-0x0p0:0:6: +-%6Lg:-nan(09A_Zaz):0:-1: +-%*6Lg:-nan(09A_Zaz):0:-1: +-%6Lg:-nan():1:6:-nan: +-%*6Lg:-nan():0:6: +-%6Lg:nan():1:5:nan: +-%*6Lg:nan():0:5: +-%6Lg:nan(09A_Zaz):0:-1: +-%*6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan():1:6:-nan: ++# BZ30647 %*6Lg:-nan():0:6: ++# BZ30647 %6Lg:nan():1:5:nan: ++# BZ30647 %*6Lg:nan():0:5: ++# BZ30647 %6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:nan(09A_Zaz):0:-1: + %6Lg:0x0p0:1:5:0x0: + %*6Lg:0x0p0:0:5: + %6Lg:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:6: + %6Lg:infinity:0:-1: + %*6Lg:infinity:0:-1: +-%6Lg:+nan():1:6:nan: +-%*6Lg:+nan():0:6: +-%6Lg:+nan(09A_Zaz):0:-1: +-%*6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:+nan():1:6:nan: ++# BZ30647 %*6Lg:+nan():0:6: ++# BZ30647 %6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:+nan(09A_Zaz):0:-1: + %6Lg:+0x0p0:1:6:0x0: + %*6Lg:+0x0p0:0:6: + # BZ12701 %6Lg:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*33Lg:-0x0p+0:0:7: + %33Lg:-0x0p0:1:6:-0x0: + %*33Lg:-0x0p0:0:6: +-%33Lg:-nan(09A_Zaz):1:13:-nan: +-%*33Lg:-nan(09A_Zaz):0:13: +-%33Lg:-nan():1:6:-nan: +-%*33Lg:-nan():0:6: +-%33Lg:nan():1:5:nan: +-%*33Lg:nan():0:5: +-%33Lg:nan(09A_Zaz):1:12:nan: +-%*33Lg:nan(09A_Zaz):0:12: ++# BZ30647 %33Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*33Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %33Lg:-nan():1:6:-nan: ++# BZ30647 %*33Lg:-nan():0:6: ++# BZ30647 %33Lg:nan():1:5:nan: ++# BZ30647 %*33Lg:nan():0:5: ++# BZ30647 %33Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*33Lg:nan(09A_Zaz):0:12: + %33Lg:0x0p0:1:5:0x0: + %*33Lg:0x0p0:0:5: + %33Lg:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*33Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:33: + %33Lg:infinity:1:8:inf: + %*33Lg:infinity:0:8: +-%33Lg:+nan():1:6:nan: +-%*33Lg:+nan():0:6: +-%33Lg:+nan(09A_Zaz):1:13:nan: +-%*33Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %33Lg:+nan():1:6:nan: ++# BZ30647 %*33Lg:+nan():0:6: ++# BZ30647 %33Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*33Lg:+nan(09A_Zaz):0:13: + %33Lg:+0x0p0:1:6:0x0: + %*33Lg:+0x0p0:0:6: + %33Lg:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*50Lg:-0x0p+0:0:7: + %50Lg:-0x0p0:1:6:-0x0: + %*50Lg:-0x0p0:0:6: +-%50Lg:-nan(09A_Zaz):1:13:-nan: +-%*50Lg:-nan(09A_Zaz):0:13: +-%50Lg:-nan():1:6:-nan: +-%*50Lg:-nan():0:6: +-%50Lg:nan():1:5:nan: +-%*50Lg:nan():0:5: +-%50Lg:nan(09A_Zaz):1:12:nan: +-%*50Lg:nan(09A_Zaz):0:12: ++# BZ30647 %50Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*50Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %50Lg:-nan():1:6:-nan: ++# BZ30647 %*50Lg:-nan():0:6: ++# BZ30647 %50Lg:nan():1:5:nan: ++# BZ30647 %*50Lg:nan():0:5: ++# BZ30647 %50Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*50Lg:nan(09A_Zaz):0:12: + %50Lg:0x0p0:1:5:0x0: + %*50Lg:0x0p0:0:5: + %50Lg:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*50Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:36: + %50Lg:infinity:1:8:inf: + %*50Lg:infinity:0:8: +-%50Lg:+nan():1:6:nan: +-%*50Lg:+nan():0:6: +-%50Lg:+nan(09A_Zaz):1:13:nan: +-%*50Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %50Lg:+nan():1:6:nan: ++# BZ30647 %*50Lg:+nan():0:6: ++# BZ30647 %50Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*50Lg:+nan(09A_Zaz):0:13: + %50Lg:+0x0p0:1:6:0x0: + %*50Lg:+0x0p0:0:6: + %50Lg:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5Lg: -0x0p+0:0:-1: + # BZ12701 %5Lg: -0x0p0:0:-1: + # BZ12701 %*5Lg: -0x0p0:0:-1: +-%5Lg: -nan(09A_Zaz):0:-1: +-%*5Lg: -nan(09A_Zaz):0:-1: +-%5Lg: -nan():0:-1: +-%*5Lg: -nan():0:-1: +-%5Lg: nan():1:6:nan: +-%*5Lg: nan():0:6: +-%5Lg: nan(09A_Zaz):0:-1: +-%*5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan():0:-1: ++# BZ30647 %*5Lg: -nan():0:-1: ++# BZ30647 %5Lg: nan():1:6:nan: ++# BZ30647 %*5Lg: nan():0:6: ++# BZ30647 %5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: nan(09A_Zaz):0:-1: + %5Lg: 0x0p0:1:6:0x0: + %*5Lg: 0x0p0:0:6: + # BZ12701 %5Lg: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5Lg: 0xf.ffffffffffffbffffffffffffcp+1020:0:6: + %5Lg: infinity:0:-1: + %*5Lg: infinity:0:-1: +-%5Lg: +nan():0:-1: +-%*5Lg: +nan():0:-1: +-%5Lg: +nan(09A_Zaz):0:-1: +-%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: +nan():0:-1: ++# BZ30647 %*5Lg: +nan():0:-1: ++# BZ30647 %5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: +nan(09A_Zaz):0:-1: + # BZ12701 %5Lg: +0x0p0:0:-1: + # BZ12701 %*5Lg: +0x0p0:0:-1: + # BZ12701 %5Lg: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*50Lg: -0x0p+0:0:8: + %50Lg: -0x0p0:1:7:-0x0: + %*50Lg: -0x0p0:0:7: +-%50Lg: -nan(09A_Zaz):1:14:-nan: +-%*50Lg: -nan(09A_Zaz):0:14: +-%50Lg: -nan():1:7:-nan: +-%*50Lg: -nan():0:7: +-%50Lg: nan():1:6:nan: +-%*50Lg: nan():0:6: +-%50Lg: nan(09A_Zaz):1:13:nan: +-%*50Lg: nan(09A_Zaz):0:13: ++# BZ30647 %50Lg: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*50Lg: -nan(09A_Zaz):0:14: ++# BZ30647 %50Lg: -nan():1:7:-nan: ++# BZ30647 %*50Lg: -nan():0:7: ++# BZ30647 %50Lg: nan():1:6:nan: ++# BZ30647 %*50Lg: nan():0:6: ++# BZ30647 %50Lg: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*50Lg: nan(09A_Zaz):0:13: + %50Lg: 0x0p0:1:6:0x0: + %*50Lg: 0x0p0:0:6: + %50Lg: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*50Lg: 0xf.ffffffffffffbffffffffffffcp+1020:0:37: + %50Lg: infinity:1:9:inf: + %*50Lg: infinity:0:9: +-%50Lg: +nan():1:7:nan: +-%*50Lg: +nan():0:7: +-%50Lg: +nan(09A_Zaz):1:14:nan: +-%*50Lg: +nan(09A_Zaz):0:14: ++# BZ30647 %50Lg: +nan():1:7:nan: ++# BZ30647 %*50Lg: +nan():0:7: ++# BZ30647 %50Lg: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*50Lg: +nan(09A_Zaz):0:14: + %50Lg: +0x0p0:1:7:0x0: + %*50Lg: +0x0p0:0:7: + %50Lg: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input +index 00e8a241e240fa13..ba2387a98dc705ed 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input +@@ -16,14 +16,14 @@ + %*LG:-0X0P+0:0:7: + %LG:-0X0P0:1:6:-0x0: + %*LG:-0X0P0:0:6: +-%LG:-NAN(09A_Zaz):1:13:-nan: +-%*LG:-NAN(09A_Zaz):0:13: +-%LG:-NAN():1:6:-nan: +-%*LG:-NAN():0:6: +-%LG:NAN():1:5:nan: +-%*LG:NAN():0:5: +-%LG:NAN(09A_Zaz):1:12:nan: +-%*LG:NAN(09A_Zaz):0:12: ++# BZ30647 %LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %LG:-NAN():1:6:-nan: ++# BZ30647 %*LG:-NAN():0:6: ++# BZ30647 %LG:NAN():1:5:nan: ++# BZ30647 %*LG:NAN():0:5: ++# BZ30647 %LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LG:NAN(09A_Zaz):0:12: + %LG:0X0P0:1:5:0x0: + %*LG:0X0P0:0:5: + %LG:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: + %LG:INFINITY:1:8:inf: + %*LG:INFINITY:0:8: +-%LG:+NAN():1:6:nan: +-%*LG:+NAN():0:6: +-%LG:+NAN(09A_Zaz):1:13:nan: +-%*LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %LG:+NAN():1:6:nan: ++# BZ30647 %*LG:+NAN():0:6: ++# BZ30647 %LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LG:+NAN(09A_Zaz):0:13: + %LG:+0X0P0:1:6:0x0: + %*LG:+0X0P0:0:6: + %LG:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LG:-0X0P+0:0:-1: + %1LG:-0X0P0:0:-1: + %*1LG:-0X0P0:0:-1: +-%1LG:-NAN(09A_Zaz):0:-1: +-%*1LG:-NAN(09A_Zaz):0:-1: +-%1LG:-NAN():0:-1: +-%*1LG:-NAN():0:-1: +-%1LG:NAN():0:-1: +-%*1LG:NAN():0:-1: +-%1LG:NAN(09A_Zaz):0:-1: +-%*1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN():0:-1: ++# BZ30647 %*1LG:-NAN():0:-1: ++# BZ30647 %1LG:NAN():0:-1: ++# BZ30647 %*1LG:NAN():0:-1: ++# BZ30647 %1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:NAN(09A_Zaz):0:-1: + %1LG:0X0P0:1:1:0x0: + %*1LG:0X0P0:0:1: + %1LG:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:1: + %1LG:INFINITY:0:-1: + %*1LG:INFINITY:0:-1: +-%1LG:+NAN():0:-1: +-%*1LG:+NAN():0:-1: +-%1LG:+NAN(09A_Zaz):0:-1: +-%*1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:+NAN():0:-1: ++# BZ30647 %*1LG:+NAN():0:-1: ++# BZ30647 %1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:+NAN(09A_Zaz):0:-1: + %1LG:+0X0P0:0:-1: + %*1LG:+0X0P0:0:-1: + %1LG:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LG:-0X0P+0:0:2: + %2LG:-0X0P0:1:2:-0x0: + %*2LG:-0X0P0:0:2: +-%2LG:-NAN(09A_Zaz):0:-1: +-%*2LG:-NAN(09A_Zaz):0:-1: +-%2LG:-NAN():0:-1: +-%*2LG:-NAN():0:-1: +-%2LG:NAN():0:-1: +-%*2LG:NAN():0:-1: +-%2LG:NAN(09A_Zaz):0:-1: +-%*2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN():0:-1: ++# BZ30647 %*2LG:-NAN():0:-1: ++# BZ30647 %2LG:NAN():0:-1: ++# BZ30647 %*2LG:NAN():0:-1: ++# BZ30647 %2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:NAN(09A_Zaz):0:-1: + # BZ12701 %2LG:0X0P0:0:-1: + # BZ12701 %*2LG:0X0P0:0:-1: + # BZ12701 %2LG:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: + %2LG:INFINITY:0:-1: + %*2LG:INFINITY:0:-1: +-%2LG:+NAN():0:-1: +-%*2LG:+NAN():0:-1: +-%2LG:+NAN(09A_Zaz):0:-1: +-%*2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:+NAN():0:-1: ++# BZ30647 %*2LG:+NAN():0:-1: ++# BZ30647 %2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:+NAN(09A_Zaz):0:-1: + %2LG:+0X0P0:1:2:0x0: + %*2LG:+0X0P0:0:2: + %2LG:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LG:-0X0P+0:0:-1: + # BZ12701 %3LG:-0X0P0:0:-1: + # BZ12701 %*3LG:-0X0P0:0:-1: +-%3LG:-NAN(09A_Zaz):0:-1: +-%*3LG:-NAN(09A_Zaz):0:-1: +-%3LG:-NAN():0:-1: +-%*3LG:-NAN():0:-1: +-%3LG:NAN():1:3:nan: +-%*3LG:NAN():0:3: +-%3LG:NAN(09A_Zaz):1:3:nan: +-%*3LG:NAN(09A_Zaz):0:3: ++# BZ30647 %3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:-NAN():0:-1: ++# BZ30647 %*3LG:-NAN():0:-1: ++# BZ30647 %3LG:NAN():1:3:nan: ++# BZ30647 %*3LG:NAN():0:3: ++# BZ30647 %3LG:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LG:NAN(09A_Zaz):0:3: + %3LG:0X0P0:1:3:0x0: + %*3LG:0X0P0:0:3: + %3LG:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:3: + %3LG:INFINITY:1:3:inf: + %*3LG:INFINITY:0:3: +-%3LG:+NAN():0:-1: +-%*3LG:+NAN():0:-1: +-%3LG:+NAN(09A_Zaz):0:-1: +-%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:+NAN():0:-1: ++# BZ30647 %*3LG:+NAN():0:-1: ++# BZ30647 %3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LG:+0X0P0:0:-1: + # BZ12701 %*3LG:+0X0P0:0:-1: + # BZ12701 %3LG:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LG:-0X0P+0:0:4: + %4LG:-0X0P0:1:4:-0x0: + %*4LG:-0X0P0:0:4: +-%4LG:-NAN(09A_Zaz):1:4:-nan: +-%*4LG:-NAN(09A_Zaz):0:4: +-%4LG:-NAN():1:4:-nan: +-%*4LG:-NAN():0:4: +-%4LG:NAN():0:-1: +-%*4LG:NAN():0:-1: +-%4LG:NAN(09A_Zaz):0:-1: +-%*4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LG:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LG:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:-NAN():1:4:-nan: ++# BZ30647 %*4LG:-NAN():0:4: ++# BZ30647 %4LG:NAN():0:-1: ++# BZ30647 %*4LG:NAN():0:-1: ++# BZ30647 %4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LG:NAN(09A_Zaz):0:-1: + # BZ12701 %4LG:0X0P0:0:-1: + # BZ12701 %*4LG:0X0P0:0:-1: + # BZ12701 %4LG:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: + %4LG:INFINITY:0:-1: + %*4LG:INFINITY:0:-1: +-%4LG:+NAN():1:4:nan: +-%*4LG:+NAN():0:4: +-%4LG:+NAN(09A_Zaz):1:4:nan: +-%*4LG:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:+NAN():1:4:nan: ++# BZ30647 %*4LG:+NAN():0:4: ++# BZ30647 %4LG:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LG:+NAN(09A_Zaz):0:4: + %4LG:+0X0P0:1:4:0x0: + %*4LG:+0X0P0:0:4: + %4LG:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LG:-0X0P+0:0:-1: + # BZ12701 %5LG:-0X0P0:0:-1: + # BZ12701 %*5LG:-0X0P0:0:-1: +-%5LG:-NAN(09A_Zaz):0:-1: +-%*5LG:-NAN(09A_Zaz):0:-1: +-%5LG:-NAN():0:-1: +-%*5LG:-NAN():0:-1: +-%5LG:NAN():1:5:nan: +-%*5LG:NAN():0:5: +-%5LG:NAN(09A_Zaz):0:-1: +-%*5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN():0:-1: ++# BZ30647 %*5LG:-NAN():0:-1: ++# BZ30647 %5LG:NAN():1:5:nan: ++# BZ30647 %*5LG:NAN():0:5: ++# BZ30647 %5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:NAN(09A_Zaz):0:-1: + %5LG:0X0P0:1:5:0x0: + %*5LG:0X0P0:0:5: + # BZ12701 %5LG:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: + %5LG:INFINITY:0:-1: + %*5LG:INFINITY:0:-1: +-%5LG:+NAN():0:-1: +-%*5LG:+NAN():0:-1: +-%5LG:+NAN(09A_Zaz):0:-1: +-%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:+NAN():0:-1: ++# BZ30647 %*5LG:+NAN():0:-1: ++# BZ30647 %5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LG:+0X0P0:0:-1: + # BZ12701 %*5LG:+0X0P0:0:-1: + # BZ12701 %5LG:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LG:-0X0P+0:0:-1: + %6LG:-0X0P0:1:6:-0x0: + %*6LG:-0X0P0:0:6: +-%6LG:-NAN(09A_Zaz):0:-1: +-%*6LG:-NAN(09A_Zaz):0:-1: +-%6LG:-NAN():1:6:-nan: +-%*6LG:-NAN():0:6: +-%6LG:NAN():1:5:nan: +-%*6LG:NAN():0:5: +-%6LG:NAN(09A_Zaz):0:-1: +-%*6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN():1:6:-nan: ++# BZ30647 %*6LG:-NAN():0:6: ++# BZ30647 %6LG:NAN():1:5:nan: ++# BZ30647 %*6LG:NAN():0:5: ++# BZ30647 %6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:NAN(09A_Zaz):0:-1: + %6LG:0X0P0:1:5:0x0: + %*6LG:0X0P0:0:5: + %6LG:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: + %6LG:INFINITY:0:-1: + %*6LG:INFINITY:0:-1: +-%6LG:+NAN():1:6:nan: +-%*6LG:+NAN():0:6: +-%6LG:+NAN(09A_Zaz):0:-1: +-%*6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:+NAN():1:6:nan: ++# BZ30647 %*6LG:+NAN():0:6: ++# BZ30647 %6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:+NAN(09A_Zaz):0:-1: + %6LG:+0X0P0:1:6:0x0: + %*6LG:+0X0P0:0:6: + # BZ12701 %6LG:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*33LG:-0X0P+0:0:7: + %33LG:-0X0P0:1:6:-0x0: + %*33LG:-0X0P0:0:6: +-%33LG:-NAN(09A_Zaz):1:13:-nan: +-%*33LG:-NAN(09A_Zaz):0:13: +-%33LG:-NAN():1:6:-nan: +-%*33LG:-NAN():0:6: +-%33LG:NAN():1:5:nan: +-%*33LG:NAN():0:5: +-%33LG:NAN(09A_Zaz):1:12:nan: +-%*33LG:NAN(09A_Zaz):0:12: ++# BZ30647 %33LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*33LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %33LG:-NAN():1:6:-nan: ++# BZ30647 %*33LG:-NAN():0:6: ++# BZ30647 %33LG:NAN():1:5:nan: ++# BZ30647 %*33LG:NAN():0:5: ++# BZ30647 %33LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*33LG:NAN(09A_Zaz):0:12: + %33LG:0X0P0:1:5:0x0: + %*33LG:0X0P0:0:5: + %33LG:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*33LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:33: + %33LG:INFINITY:1:8:inf: + %*33LG:INFINITY:0:8: +-%33LG:+NAN():1:6:nan: +-%*33LG:+NAN():0:6: +-%33LG:+NAN(09A_Zaz):1:13:nan: +-%*33LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %33LG:+NAN():1:6:nan: ++# BZ30647 %*33LG:+NAN():0:6: ++# BZ30647 %33LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*33LG:+NAN(09A_Zaz):0:13: + %33LG:+0X0P0:1:6:0x0: + %*33LG:+0X0P0:0:6: + %33LG:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*50LG:-0X0P+0:0:7: + %50LG:-0X0P0:1:6:-0x0: + %*50LG:-0X0P0:0:6: +-%50LG:-NAN(09A_Zaz):1:13:-nan: +-%*50LG:-NAN(09A_Zaz):0:13: +-%50LG:-NAN():1:6:-nan: +-%*50LG:-NAN():0:6: +-%50LG:NAN():1:5:nan: +-%*50LG:NAN():0:5: +-%50LG:NAN(09A_Zaz):1:12:nan: +-%*50LG:NAN(09A_Zaz):0:12: ++# BZ30647 %50LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*50LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %50LG:-NAN():1:6:-nan: ++# BZ30647 %*50LG:-NAN():0:6: ++# BZ30647 %50LG:NAN():1:5:nan: ++# BZ30647 %*50LG:NAN():0:5: ++# BZ30647 %50LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*50LG:NAN(09A_Zaz):0:12: + %50LG:0X0P0:1:5:0x0: + %*50LG:0X0P0:0:5: + %50LG:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*50LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: + %50LG:INFINITY:1:8:inf: + %*50LG:INFINITY:0:8: +-%50LG:+NAN():1:6:nan: +-%*50LG:+NAN():0:6: +-%50LG:+NAN(09A_Zaz):1:13:nan: +-%*50LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %50LG:+NAN():1:6:nan: ++# BZ30647 %*50LG:+NAN():0:6: ++# BZ30647 %50LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*50LG:+NAN(09A_Zaz):0:13: + %50LG:+0X0P0:1:6:0x0: + %*50LG:+0X0P0:0:6: + %50LG:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LG: -0X0P+0:0:-1: + # BZ12701 %5LG: -0X0P0:0:-1: + # BZ12701 %*5LG: -0X0P0:0:-1: +-%5LG: -NAN(09A_Zaz):0:-1: +-%*5LG: -NAN(09A_Zaz):0:-1: +-%5LG: -NAN():0:-1: +-%*5LG: -NAN():0:-1: +-%5LG: NAN():1:6:nan: +-%*5LG: NAN():0:6: +-%5LG: NAN(09A_Zaz):0:-1: +-%*5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN():0:-1: ++# BZ30647 %*5LG: -NAN():0:-1: ++# BZ30647 %5LG: NAN():1:6:nan: ++# BZ30647 %*5LG: NAN():0:6: ++# BZ30647 %5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: NAN(09A_Zaz):0:-1: + %5LG: 0X0P0:1:6:0x0: + %*5LG: 0X0P0:0:6: + # BZ12701 %5LG: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: + %5LG: INFINITY:0:-1: + %*5LG: INFINITY:0:-1: +-%5LG: +NAN():0:-1: +-%*5LG: +NAN():0:-1: +-%5LG: +NAN(09A_Zaz):0:-1: +-%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: +NAN():0:-1: ++# BZ30647 %*5LG: +NAN():0:-1: ++# BZ30647 %5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LG: +0X0P0:0:-1: + # BZ12701 %*5LG: +0X0P0:0:-1: + # BZ12701 %5LG: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*50LG: -0X0P+0:0:8: + %50LG: -0X0P0:1:7:-0x0: + %*50LG: -0X0P0:0:7: +-%50LG: -NAN(09A_Zaz):1:14:-nan: +-%*50LG: -NAN(09A_Zaz):0:14: +-%50LG: -NAN():1:7:-nan: +-%*50LG: -NAN():0:7: +-%50LG: NAN():1:6:nan: +-%*50LG: NAN():0:6: +-%50LG: NAN(09A_Zaz):1:13:nan: +-%*50LG: NAN(09A_Zaz):0:13: ++# BZ30647 %50LG: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*50LG: -NAN(09A_Zaz):0:14: ++# BZ30647 %50LG: -NAN():1:7:-nan: ++# BZ30647 %*50LG: -NAN():0:7: ++# BZ30647 %50LG: NAN():1:6:nan: ++# BZ30647 %*50LG: NAN():0:6: ++# BZ30647 %50LG: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*50LG: NAN(09A_Zaz):0:13: + %50LG: 0X0P0:1:6:0x0: + %*50LG: 0X0P0:0:6: + %50LG: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*50LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: + %50LG: INFINITY:1:9:inf: + %*50LG: INFINITY:0:9: +-%50LG: +NAN():1:7:nan: +-%*50LG: +NAN():0:7: +-%50LG: +NAN(09A_Zaz):1:14:nan: +-%*50LG: +NAN(09A_Zaz):0:14: ++# BZ30647 %50LG: +NAN():1:7:nan: ++# BZ30647 %*50LG: +NAN():0:7: ++# BZ30647 %50LG: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*50LG: +NAN(09A_Zaz):0:14: + %50LG: +0X0P0:1:7:0x0: + %*50LG: +0X0P0:0:7: + %50LG: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input +index 0ed781ea87fb4b4a..58e0803be5d08f44 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input +@@ -16,14 +16,14 @@ + %*La:-0x0p+0:0:7: + %La:-0x0p0:1:6:-0x0: + %*La:-0x0p0:0:6: +-%La:-nan(09A_Zaz):1:13:-nan: +-%*La:-nan(09A_Zaz):0:13: +-%La:-nan():1:6:-nan: +-%*La:-nan():0:6: +-%La:nan():1:5:nan: +-%*La:nan():0:5: +-%La:nan(09A_Zaz):1:12:nan: +-%*La:nan(09A_Zaz):0:12: ++# BZ30647 %La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*La:-nan(09A_Zaz):0:13: ++# BZ30647 %La:-nan():1:6:-nan: ++# BZ30647 %*La:-nan():0:6: ++# BZ30647 %La:nan():1:5:nan: ++# BZ30647 %*La:nan():0:5: ++# BZ30647 %La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*La:nan(09A_Zaz):0:12: + %La:0x0p0:1:5:0x0: + %*La:0x0p0:0:5: + %La:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*La:0xf.fffffffffffffffp+16380:0:26: + %La:infinity:1:8:inf: + %*La:infinity:0:8: +-%La:+nan():1:6:nan: +-%*La:+nan():0:6: +-%La:+nan(09A_Zaz):1:13:nan: +-%*La:+nan(09A_Zaz):0:13: ++# BZ30647 %La:+nan():1:6:nan: ++# BZ30647 %*La:+nan():0:6: ++# BZ30647 %La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*La:+nan(09A_Zaz):0:13: + %La:+0x0p0:1:6:0x0: + %*La:+0x0p0:0:6: + %La:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1La:-0x0p+0:0:-1: + %1La:-0x0p0:0:-1: + %*1La:-0x0p0:0:-1: +-%1La:-nan(09A_Zaz):0:-1: +-%*1La:-nan(09A_Zaz):0:-1: +-%1La:-nan():0:-1: +-%*1La:-nan():0:-1: +-%1La:nan():0:-1: +-%*1La:nan():0:-1: +-%1La:nan(09A_Zaz):0:-1: +-%*1La:nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan():0:-1: ++# BZ30647 %*1La:-nan():0:-1: ++# BZ30647 %1La:nan():0:-1: ++# BZ30647 %*1La:nan():0:-1: ++# BZ30647 %1La:nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:nan(09A_Zaz):0:-1: + %1La:0x0p0:1:1:0x0: + %*1La:0x0p0:0:1: + %1La:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1La:0xf.fffffffffffffffp+16380:0:1: + %1La:infinity:0:-1: + %*1La:infinity:0:-1: +-%1La:+nan():0:-1: +-%*1La:+nan():0:-1: +-%1La:+nan(09A_Zaz):0:-1: +-%*1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %1La:+nan():0:-1: ++# BZ30647 %*1La:+nan():0:-1: ++# BZ30647 %1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:+nan(09A_Zaz):0:-1: + %1La:+0x0p0:0:-1: + %*1La:+0x0p0:0:-1: + %1La:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2La:-0x0p+0:0:2: + %2La:-0x0p0:1:2:-0x0: + %*2La:-0x0p0:0:2: +-%2La:-nan(09A_Zaz):0:-1: +-%*2La:-nan(09A_Zaz):0:-1: +-%2La:-nan():0:-1: +-%*2La:-nan():0:-1: +-%2La:nan():0:-1: +-%*2La:nan():0:-1: +-%2La:nan(09A_Zaz):0:-1: +-%*2La:nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan():0:-1: ++# BZ30647 %*2La:-nan():0:-1: ++# BZ30647 %2La:nan():0:-1: ++# BZ30647 %*2La:nan():0:-1: ++# BZ30647 %2La:nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:nan(09A_Zaz):0:-1: + # BZ12701 %2La:0x0p0:0:-1: + # BZ12701 %*2La:0x0p0:0:-1: + # BZ12701 %2La:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2La:0xf.fffffffffffffffp+16380:0:-1: + %2La:infinity:0:-1: + %*2La:infinity:0:-1: +-%2La:+nan():0:-1: +-%*2La:+nan():0:-1: +-%2La:+nan(09A_Zaz):0:-1: +-%*2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %2La:+nan():0:-1: ++# BZ30647 %*2La:+nan():0:-1: ++# BZ30647 %2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:+nan(09A_Zaz):0:-1: + %2La:+0x0p0:1:2:0x0: + %*2La:+0x0p0:0:2: + %2La:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3La:-0x0p+0:0:-1: + # BZ12701 %3La:-0x0p0:0:-1: + # BZ12701 %*3La:-0x0p0:0:-1: +-%3La:-nan(09A_Zaz):0:-1: +-%*3La:-nan(09A_Zaz):0:-1: +-%3La:-nan():0:-1: +-%*3La:-nan():0:-1: +-%3La:nan():1:3:nan: +-%*3La:nan():0:3: +-%3La:nan(09A_Zaz):1:3:nan: +-%*3La:nan(09A_Zaz):0:3: ++# BZ30647 %3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %3La:-nan():0:-1: ++# BZ30647 %*3La:-nan():0:-1: ++# BZ30647 %3La:nan():1:3:nan: ++# BZ30647 %*3La:nan():0:3: ++# BZ30647 %3La:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3La:nan(09A_Zaz):0:3: + %3La:0x0p0:1:3:0x0: + %*3La:0x0p0:0:3: + %3La:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3La:0xf.fffffffffffffffp+16380:0:3: + %3La:infinity:1:3:inf: + %*3La:infinity:0:3: +-%3La:+nan():0:-1: +-%*3La:+nan():0:-1: +-%3La:+nan(09A_Zaz):0:-1: +-%*3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %3La:+nan():0:-1: ++# BZ30647 %*3La:+nan():0:-1: ++# BZ30647 %3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:+nan(09A_Zaz):0:-1: + # BZ12701 %3La:+0x0p0:0:-1: + # BZ12701 %*3La:+0x0p0:0:-1: + # BZ12701 %3La:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4La:-0x0p+0:0:4: + %4La:-0x0p0:1:4:-0x0: + %*4La:-0x0p0:0:4: +-%4La:-nan(09A_Zaz):1:4:-nan: +-%*4La:-nan(09A_Zaz):0:4: +-%4La:-nan():1:4:-nan: +-%*4La:-nan():0:4: +-%4La:nan():0:-1: +-%*4La:nan():0:-1: +-%4La:nan(09A_Zaz):0:-1: +-%*4La:nan(09A_Zaz):0:-1: ++# BZ30647 %4La:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4La:-nan(09A_Zaz):0:4: ++# BZ30647 %4La:-nan():1:4:-nan: ++# BZ30647 %*4La:-nan():0:4: ++# BZ30647 %4La:nan():0:-1: ++# BZ30647 %*4La:nan():0:-1: ++# BZ30647 %4La:nan(09A_Zaz):0:-1: ++# BZ30647 %*4La:nan(09A_Zaz):0:-1: + # BZ12701 %4La:0x0p0:0:-1: + # BZ12701 %*4La:0x0p0:0:-1: + # BZ12701 %4La:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4La:0xf.fffffffffffffffp+16380:0:4: + %4La:infinity:0:-1: + %*4La:infinity:0:-1: +-%4La:+nan():1:4:nan: +-%*4La:+nan():0:4: +-%4La:+nan(09A_Zaz):1:4:nan: +-%*4La:+nan(09A_Zaz):0:4: ++# BZ30647 %4La:+nan():1:4:nan: ++# BZ30647 %*4La:+nan():0:4: ++# BZ30647 %4La:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4La:+nan(09A_Zaz):0:4: + %4La:+0x0p0:1:4:0x0: + %*4La:+0x0p0:0:4: + %4La:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5La:-0x0p+0:0:-1: + # BZ12701 %5La:-0x0p0:0:-1: + # BZ12701 %*5La:-0x0p0:0:-1: +-%5La:-nan(09A_Zaz):0:-1: +-%*5La:-nan(09A_Zaz):0:-1: +-%5La:-nan():0:-1: +-%*5La:-nan():0:-1: +-%5La:nan():1:5:nan: +-%*5La:nan():0:5: +-%5La:nan(09A_Zaz):0:-1: +-%*5La:nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan():0:-1: ++# BZ30647 %*5La:-nan():0:-1: ++# BZ30647 %5La:nan():1:5:nan: ++# BZ30647 %*5La:nan():0:5: ++# BZ30647 %5La:nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:nan(09A_Zaz):0:-1: + %5La:0x0p0:1:5:0x0: + %*5La:0x0p0:0:5: + # BZ12701 %5La:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5La:0xf.fffffffffffffffp+16380:0:5: + %5La:infinity:0:-1: + %*5La:infinity:0:-1: +-%5La:+nan():0:-1: +-%*5La:+nan():0:-1: +-%5La:+nan(09A_Zaz):0:-1: +-%*5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %5La:+nan():0:-1: ++# BZ30647 %*5La:+nan():0:-1: ++# BZ30647 %5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:+nan(09A_Zaz):0:-1: + # BZ12701 %5La:+0x0p0:0:-1: + # BZ12701 %*5La:+0x0p0:0:-1: + # BZ12701 %5La:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6La:-0x0p+0:0:-1: + %6La:-0x0p0:1:6:-0x0: + %*6La:-0x0p0:0:6: +-%6La:-nan(09A_Zaz):0:-1: +-%*6La:-nan(09A_Zaz):0:-1: +-%6La:-nan():1:6:-nan: +-%*6La:-nan():0:6: +-%6La:nan():1:5:nan: +-%*6La:nan():0:5: +-%6La:nan(09A_Zaz):0:-1: +-%*6La:nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan():1:6:-nan: ++# BZ30647 %*6La:-nan():0:6: ++# BZ30647 %6La:nan():1:5:nan: ++# BZ30647 %*6La:nan():0:5: ++# BZ30647 %6La:nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:nan(09A_Zaz):0:-1: + %6La:0x0p0:1:5:0x0: + %*6La:0x0p0:0:5: + %6La:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6La:0xf.fffffffffffffffp+16380:0:6: + %6La:infinity:0:-1: + %*6La:infinity:0:-1: +-%6La:+nan():1:6:nan: +-%*6La:+nan():0:6: +-%6La:+nan(09A_Zaz):0:-1: +-%*6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %6La:+nan():1:6:nan: ++# BZ30647 %*6La:+nan():0:6: ++# BZ30647 %6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:+nan(09A_Zaz):0:-1: + %6La:+0x0p0:1:6:0x0: + %*6La:+0x0p0:0:6: + # BZ12701 %6La:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*22La:-0x0p+0:0:7: + %22La:-0x0p0:1:6:-0x0: + %*22La:-0x0p0:0:6: +-%22La:-nan(09A_Zaz):1:13:-nan: +-%*22La:-nan(09A_Zaz):0:13: +-%22La:-nan():1:6:-nan: +-%*22La:-nan():0:6: +-%22La:nan():1:5:nan: +-%*22La:nan():0:5: +-%22La:nan(09A_Zaz):1:12:nan: +-%*22La:nan(09A_Zaz):0:12: ++# BZ30647 %22La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*22La:-nan(09A_Zaz):0:13: ++# BZ30647 %22La:-nan():1:6:-nan: ++# BZ30647 %*22La:-nan():0:6: ++# BZ30647 %22La:nan():1:5:nan: ++# BZ30647 %*22La:nan():0:5: ++# BZ30647 %22La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*22La:nan(09A_Zaz):0:12: + %22La:0x0p0:1:5:0x0: + %*22La:0x0p0:0:5: + %22La:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*22La:0xf.fffffffffffffffp+16380:0:22: + %22La:infinity:1:8:inf: + %*22La:infinity:0:8: +-%22La:+nan():1:6:nan: +-%*22La:+nan():0:6: +-%22La:+nan(09A_Zaz):1:13:nan: +-%*22La:+nan(09A_Zaz):0:13: ++# BZ30647 %22La:+nan():1:6:nan: ++# BZ30647 %*22La:+nan():0:6: ++# BZ30647 %22La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*22La:+nan(09A_Zaz):0:13: + %22La:+0x0p0:1:6:0x0: + %*22La:+0x0p0:0:6: + %22La:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*37La:-0x0p+0:0:7: + %37La:-0x0p0:1:6:-0x0: + %*37La:-0x0p0:0:6: +-%37La:-nan(09A_Zaz):1:13:-nan: +-%*37La:-nan(09A_Zaz):0:13: +-%37La:-nan():1:6:-nan: +-%*37La:-nan():0:6: +-%37La:nan():1:5:nan: +-%*37La:nan():0:5: +-%37La:nan(09A_Zaz):1:12:nan: +-%*37La:nan(09A_Zaz):0:12: ++# BZ30647 %37La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*37La:-nan(09A_Zaz):0:13: ++# BZ30647 %37La:-nan():1:6:-nan: ++# BZ30647 %*37La:-nan():0:6: ++# BZ30647 %37La:nan():1:5:nan: ++# BZ30647 %*37La:nan():0:5: ++# BZ30647 %37La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*37La:nan(09A_Zaz):0:12: + %37La:0x0p0:1:5:0x0: + %*37La:0x0p0:0:5: + %37La:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*37La:0xf.fffffffffffffffp+16380:0:26: + %37La:infinity:1:8:inf: + %*37La:infinity:0:8: +-%37La:+nan():1:6:nan: +-%*37La:+nan():0:6: +-%37La:+nan(09A_Zaz):1:13:nan: +-%*37La:+nan(09A_Zaz):0:13: ++# BZ30647 %37La:+nan():1:6:nan: ++# BZ30647 %*37La:+nan():0:6: ++# BZ30647 %37La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*37La:+nan(09A_Zaz):0:13: + %37La:+0x0p0:1:6:0x0: + %*37La:+0x0p0:0:6: + %37La:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5La: -0x0p+0:0:-1: + # BZ12701 %5La: -0x0p0:0:-1: + # BZ12701 %*5La: -0x0p0:0:-1: +-%5La: -nan(09A_Zaz):0:-1: +-%*5La: -nan(09A_Zaz):0:-1: +-%5La: -nan():0:-1: +-%*5La: -nan():0:-1: +-%5La: nan():1:6:nan: +-%*5La: nan():0:6: +-%5La: nan(09A_Zaz):0:-1: +-%*5La: nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan():0:-1: ++# BZ30647 %*5La: -nan():0:-1: ++# BZ30647 %5La: nan():1:6:nan: ++# BZ30647 %*5La: nan():0:6: ++# BZ30647 %5La: nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: nan(09A_Zaz):0:-1: + %5La: 0x0p0:1:6:0x0: + %*5La: 0x0p0:0:6: + # BZ12701 %5La: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5La: 0xf.fffffffffffffffp+16380:0:6: + %5La: infinity:0:-1: + %*5La: infinity:0:-1: +-%5La: +nan():0:-1: +-%*5La: +nan():0:-1: +-%5La: +nan(09A_Zaz):0:-1: +-%*5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %5La: +nan():0:-1: ++# BZ30647 %*5La: +nan():0:-1: ++# BZ30647 %5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: +nan(09A_Zaz):0:-1: + # BZ12701 %5La: +0x0p0:0:-1: + # BZ12701 %*5La: +0x0p0:0:-1: + # BZ12701 %5La: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*37La: -0x0p+0:0:8: + %37La: -0x0p0:1:7:-0x0: + %*37La: -0x0p0:0:7: +-%37La: -nan(09A_Zaz):1:14:-nan: +-%*37La: -nan(09A_Zaz):0:14: +-%37La: -nan():1:7:-nan: +-%*37La: -nan():0:7: +-%37La: nan():1:6:nan: +-%*37La: nan():0:6: +-%37La: nan(09A_Zaz):1:13:nan: +-%*37La: nan(09A_Zaz):0:13: ++# BZ30647 %37La: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*37La: -nan(09A_Zaz):0:14: ++# BZ30647 %37La: -nan():1:7:-nan: ++# BZ30647 %*37La: -nan():0:7: ++# BZ30647 %37La: nan():1:6:nan: ++# BZ30647 %*37La: nan():0:6: ++# BZ30647 %37La: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*37La: nan(09A_Zaz):0:13: + %37La: 0x0p0:1:6:0x0: + %*37La: 0x0p0:0:6: + %37La: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*37La: 0xf.fffffffffffffffp+16380:0:27: + %37La: infinity:1:9:inf: + %*37La: infinity:0:9: +-%37La: +nan():1:7:nan: +-%*37La: +nan():0:7: +-%37La: +nan(09A_Zaz):1:14:nan: +-%*37La: +nan(09A_Zaz):0:14: ++# BZ30647 %37La: +nan():1:7:nan: ++# BZ30647 %*37La: +nan():0:7: ++# BZ30647 %37La: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*37La: +nan(09A_Zaz):0:14: + %37La: +0x0p0:1:7:0x0: + %*37La: +0x0p0:0:7: + %37La: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input +index 231fc78d225363d5..ef7d64bcbe286b51 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input +@@ -16,14 +16,14 @@ + %*LA:-0X0P+0:0:7: + %LA:-0X0P0:1:6:-0x0: + %*LA:-0X0P0:0:6: +-%LA:-NAN(09A_Zaz):1:13:-nan: +-%*LA:-NAN(09A_Zaz):0:13: +-%LA:-NAN():1:6:-nan: +-%*LA:-NAN():0:6: +-%LA:NAN():1:5:nan: +-%*LA:NAN():0:5: +-%LA:NAN(09A_Zaz):1:12:nan: +-%*LA:NAN(09A_Zaz):0:12: ++# BZ30647 %LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %LA:-NAN():1:6:-nan: ++# BZ30647 %*LA:-NAN():0:6: ++# BZ30647 %LA:NAN():1:5:nan: ++# BZ30647 %*LA:NAN():0:5: ++# BZ30647 %LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LA:NAN(09A_Zaz):0:12: + %LA:0X0P0:1:5:0x0: + %*LA:0X0P0:0:5: + %LA:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LA:0XF.FFFFFFFFFFFFFFFP+16380:0:26: + %LA:INFINITY:1:8:inf: + %*LA:INFINITY:0:8: +-%LA:+NAN():1:6:nan: +-%*LA:+NAN():0:6: +-%LA:+NAN(09A_Zaz):1:13:nan: +-%*LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %LA:+NAN():1:6:nan: ++# BZ30647 %*LA:+NAN():0:6: ++# BZ30647 %LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LA:+NAN(09A_Zaz):0:13: + %LA:+0X0P0:1:6:0x0: + %*LA:+0X0P0:0:6: + %LA:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LA:-0X0P+0:0:-1: + %1LA:-0X0P0:0:-1: + %*1LA:-0X0P0:0:-1: +-%1LA:-NAN(09A_Zaz):0:-1: +-%*1LA:-NAN(09A_Zaz):0:-1: +-%1LA:-NAN():0:-1: +-%*1LA:-NAN():0:-1: +-%1LA:NAN():0:-1: +-%*1LA:NAN():0:-1: +-%1LA:NAN(09A_Zaz):0:-1: +-%*1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN():0:-1: ++# BZ30647 %*1LA:-NAN():0:-1: ++# BZ30647 %1LA:NAN():0:-1: ++# BZ30647 %*1LA:NAN():0:-1: ++# BZ30647 %1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:NAN(09A_Zaz):0:-1: + %1LA:0X0P0:1:1:0x0: + %*1LA:0X0P0:0:1: + %1LA:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LA:0XF.FFFFFFFFFFFFFFFP+16380:0:1: + %1LA:INFINITY:0:-1: + %*1LA:INFINITY:0:-1: +-%1LA:+NAN():0:-1: +-%*1LA:+NAN():0:-1: +-%1LA:+NAN(09A_Zaz):0:-1: +-%*1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:+NAN():0:-1: ++# BZ30647 %*1LA:+NAN():0:-1: ++# BZ30647 %1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:+NAN(09A_Zaz):0:-1: + %1LA:+0X0P0:0:-1: + %*1LA:+0X0P0:0:-1: + %1LA:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LA:-0X0P+0:0:2: + %2LA:-0X0P0:1:2:-0x0: + %*2LA:-0X0P0:0:2: +-%2LA:-NAN(09A_Zaz):0:-1: +-%*2LA:-NAN(09A_Zaz):0:-1: +-%2LA:-NAN():0:-1: +-%*2LA:-NAN():0:-1: +-%2LA:NAN():0:-1: +-%*2LA:NAN():0:-1: +-%2LA:NAN(09A_Zaz):0:-1: +-%*2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN():0:-1: ++# BZ30647 %*2LA:-NAN():0:-1: ++# BZ30647 %2LA:NAN():0:-1: ++# BZ30647 %*2LA:NAN():0:-1: ++# BZ30647 %2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:NAN(09A_Zaz):0:-1: + # BZ12701 %2LA:0X0P0:0:-1: + # BZ12701 %*2LA:0X0P0:0:-1: + # BZ12701 %2LA:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LA:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: + %2LA:INFINITY:0:-1: + %*2LA:INFINITY:0:-1: +-%2LA:+NAN():0:-1: +-%*2LA:+NAN():0:-1: +-%2LA:+NAN(09A_Zaz):0:-1: +-%*2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:+NAN():0:-1: ++# BZ30647 %*2LA:+NAN():0:-1: ++# BZ30647 %2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:+NAN(09A_Zaz):0:-1: + %2LA:+0X0P0:1:2:0x0: + %*2LA:+0X0P0:0:2: + %2LA:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LA:-0X0P+0:0:-1: + # BZ12701 %3LA:-0X0P0:0:-1: + # BZ12701 %*3LA:-0X0P0:0:-1: +-%3LA:-NAN(09A_Zaz):0:-1: +-%*3LA:-NAN(09A_Zaz):0:-1: +-%3LA:-NAN():0:-1: +-%*3LA:-NAN():0:-1: +-%3LA:NAN():1:3:nan: +-%*3LA:NAN():0:3: +-%3LA:NAN(09A_Zaz):1:3:nan: +-%*3LA:NAN(09A_Zaz):0:3: ++# BZ30647 %3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:-NAN():0:-1: ++# BZ30647 %*3LA:-NAN():0:-1: ++# BZ30647 %3LA:NAN():1:3:nan: ++# BZ30647 %*3LA:NAN():0:3: ++# BZ30647 %3LA:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LA:NAN(09A_Zaz):0:3: + %3LA:0X0P0:1:3:0x0: + %*3LA:0X0P0:0:3: + %3LA:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LA:0XF.FFFFFFFFFFFFFFFP+16380:0:3: + %3LA:INFINITY:1:3:inf: + %*3LA:INFINITY:0:3: +-%3LA:+NAN():0:-1: +-%*3LA:+NAN():0:-1: +-%3LA:+NAN(09A_Zaz):0:-1: +-%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:+NAN():0:-1: ++# BZ30647 %*3LA:+NAN():0:-1: ++# BZ30647 %3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LA:+0X0P0:0:-1: + # BZ12701 %*3LA:+0X0P0:0:-1: + # BZ12701 %3LA:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LA:-0X0P+0:0:4: + %4LA:-0X0P0:1:4:-0x0: + %*4LA:-0X0P0:0:4: +-%4LA:-NAN(09A_Zaz):1:4:-nan: +-%*4LA:-NAN(09A_Zaz):0:4: +-%4LA:-NAN():1:4:-nan: +-%*4LA:-NAN():0:4: +-%4LA:NAN():0:-1: +-%*4LA:NAN():0:-1: +-%4LA:NAN(09A_Zaz):0:-1: +-%*4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LA:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LA:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:-NAN():1:4:-nan: ++# BZ30647 %*4LA:-NAN():0:4: ++# BZ30647 %4LA:NAN():0:-1: ++# BZ30647 %*4LA:NAN():0:-1: ++# BZ30647 %4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LA:NAN(09A_Zaz):0:-1: + # BZ12701 %4LA:0X0P0:0:-1: + # BZ12701 %*4LA:0X0P0:0:-1: + # BZ12701 %4LA:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LA:0XF.FFFFFFFFFFFFFFFP+16380:0:4: + %4LA:INFINITY:0:-1: + %*4LA:INFINITY:0:-1: +-%4LA:+NAN():1:4:nan: +-%*4LA:+NAN():0:4: +-%4LA:+NAN(09A_Zaz):1:4:nan: +-%*4LA:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:+NAN():1:4:nan: ++# BZ30647 %*4LA:+NAN():0:4: ++# BZ30647 %4LA:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LA:+NAN(09A_Zaz):0:4: + %4LA:+0X0P0:1:4:0x0: + %*4LA:+0X0P0:0:4: + %4LA:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LA:-0X0P+0:0:-1: + # BZ12701 %5LA:-0X0P0:0:-1: + # BZ12701 %*5LA:-0X0P0:0:-1: +-%5LA:-NAN(09A_Zaz):0:-1: +-%*5LA:-NAN(09A_Zaz):0:-1: +-%5LA:-NAN():0:-1: +-%*5LA:-NAN():0:-1: +-%5LA:NAN():1:5:nan: +-%*5LA:NAN():0:5: +-%5LA:NAN(09A_Zaz):0:-1: +-%*5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN():0:-1: ++# BZ30647 %*5LA:-NAN():0:-1: ++# BZ30647 %5LA:NAN():1:5:nan: ++# BZ30647 %*5LA:NAN():0:5: ++# BZ30647 %5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:NAN(09A_Zaz):0:-1: + %5LA:0X0P0:1:5:0x0: + %*5LA:0X0P0:0:5: + # BZ12701 %5LA:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LA:0XF.FFFFFFFFFFFFFFFP+16380:0:5: + %5LA:INFINITY:0:-1: + %*5LA:INFINITY:0:-1: +-%5LA:+NAN():0:-1: +-%*5LA:+NAN():0:-1: +-%5LA:+NAN(09A_Zaz):0:-1: +-%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:+NAN():0:-1: ++# BZ30647 %*5LA:+NAN():0:-1: ++# BZ30647 %5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LA:+0X0P0:0:-1: + # BZ12701 %*5LA:+0X0P0:0:-1: + # BZ12701 %5LA:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LA:-0X0P+0:0:-1: + %6LA:-0X0P0:1:6:-0x0: + %*6LA:-0X0P0:0:6: +-%6LA:-NAN(09A_Zaz):0:-1: +-%*6LA:-NAN(09A_Zaz):0:-1: +-%6LA:-NAN():1:6:-nan: +-%*6LA:-NAN():0:6: +-%6LA:NAN():1:5:nan: +-%*6LA:NAN():0:5: +-%6LA:NAN(09A_Zaz):0:-1: +-%*6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN():1:6:-nan: ++# BZ30647 %*6LA:-NAN():0:6: ++# BZ30647 %6LA:NAN():1:5:nan: ++# BZ30647 %*6LA:NAN():0:5: ++# BZ30647 %6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:NAN(09A_Zaz):0:-1: + %6LA:0X0P0:1:5:0x0: + %*6LA:0X0P0:0:5: + %6LA:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LA:0XF.FFFFFFFFFFFFFFFP+16380:0:6: + %6LA:INFINITY:0:-1: + %*6LA:INFINITY:0:-1: +-%6LA:+NAN():1:6:nan: +-%*6LA:+NAN():0:6: +-%6LA:+NAN(09A_Zaz):0:-1: +-%*6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:+NAN():1:6:nan: ++# BZ30647 %*6LA:+NAN():0:6: ++# BZ30647 %6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:+NAN(09A_Zaz):0:-1: + %6LA:+0X0P0:1:6:0x0: + %*6LA:+0X0P0:0:6: + # BZ12701 %6LA:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*22LA:-0X0P+0:0:7: + %22LA:-0X0P0:1:6:-0x0: + %*22LA:-0X0P0:0:6: +-%22LA:-NAN(09A_Zaz):1:13:-nan: +-%*22LA:-NAN(09A_Zaz):0:13: +-%22LA:-NAN():1:6:-nan: +-%*22LA:-NAN():0:6: +-%22LA:NAN():1:5:nan: +-%*22LA:NAN():0:5: +-%22LA:NAN(09A_Zaz):1:12:nan: +-%*22LA:NAN(09A_Zaz):0:12: ++# BZ30647 %22LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*22LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %22LA:-NAN():1:6:-nan: ++# BZ30647 %*22LA:-NAN():0:6: ++# BZ30647 %22LA:NAN():1:5:nan: ++# BZ30647 %*22LA:NAN():0:5: ++# BZ30647 %22LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*22LA:NAN(09A_Zaz):0:12: + %22LA:0X0P0:1:5:0x0: + %*22LA:0X0P0:0:5: + %22LA:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*22LA:0XF.FFFFFFFFFFFFFFFP+16380:0:22: + %22LA:INFINITY:1:8:inf: + %*22LA:INFINITY:0:8: +-%22LA:+NAN():1:6:nan: +-%*22LA:+NAN():0:6: +-%22LA:+NAN(09A_Zaz):1:13:nan: +-%*22LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %22LA:+NAN():1:6:nan: ++# BZ30647 %*22LA:+NAN():0:6: ++# BZ30647 %22LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*22LA:+NAN(09A_Zaz):0:13: + %22LA:+0X0P0:1:6:0x0: + %*22LA:+0X0P0:0:6: + %22LA:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*37LA:-0X0P+0:0:7: + %37LA:-0X0P0:1:6:-0x0: + %*37LA:-0X0P0:0:6: +-%37LA:-NAN(09A_Zaz):1:13:-nan: +-%*37LA:-NAN(09A_Zaz):0:13: +-%37LA:-NAN():1:6:-nan: +-%*37LA:-NAN():0:6: +-%37LA:NAN():1:5:nan: +-%*37LA:NAN():0:5: +-%37LA:NAN(09A_Zaz):1:12:nan: +-%*37LA:NAN(09A_Zaz):0:12: ++# BZ30647 %37LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*37LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %37LA:-NAN():1:6:-nan: ++# BZ30647 %*37LA:-NAN():0:6: ++# BZ30647 %37LA:NAN():1:5:nan: ++# BZ30647 %*37LA:NAN():0:5: ++# BZ30647 %37LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*37LA:NAN(09A_Zaz):0:12: + %37LA:0X0P0:1:5:0x0: + %*37LA:0X0P0:0:5: + %37LA:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*37LA:0XF.FFFFFFFFFFFFFFFP+16380:0:26: + %37LA:INFINITY:1:8:inf: + %*37LA:INFINITY:0:8: +-%37LA:+NAN():1:6:nan: +-%*37LA:+NAN():0:6: +-%37LA:+NAN(09A_Zaz):1:13:nan: +-%*37LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %37LA:+NAN():1:6:nan: ++# BZ30647 %*37LA:+NAN():0:6: ++# BZ30647 %37LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*37LA:+NAN(09A_Zaz):0:13: + %37LA:+0X0P0:1:6:0x0: + %*37LA:+0X0P0:0:6: + %37LA:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LA: -0X0P+0:0:-1: + # BZ12701 %5LA: -0X0P0:0:-1: + # BZ12701 %*5LA: -0X0P0:0:-1: +-%5LA: -NAN(09A_Zaz):0:-1: +-%*5LA: -NAN(09A_Zaz):0:-1: +-%5LA: -NAN():0:-1: +-%*5LA: -NAN():0:-1: +-%5LA: NAN():1:6:nan: +-%*5LA: NAN():0:6: +-%5LA: NAN(09A_Zaz):0:-1: +-%*5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN():0:-1: ++# BZ30647 %*5LA: -NAN():0:-1: ++# BZ30647 %5LA: NAN():1:6:nan: ++# BZ30647 %*5LA: NAN():0:6: ++# BZ30647 %5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: NAN(09A_Zaz):0:-1: + %5LA: 0X0P0:1:6:0x0: + %*5LA: 0X0P0:0:6: + # BZ12701 %5LA: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LA: 0XF.FFFFFFFFFFFFFFFP+16380:0:6: + %5LA: INFINITY:0:-1: + %*5LA: INFINITY:0:-1: +-%5LA: +NAN():0:-1: +-%*5LA: +NAN():0:-1: +-%5LA: +NAN(09A_Zaz):0:-1: +-%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: +NAN():0:-1: ++# BZ30647 %*5LA: +NAN():0:-1: ++# BZ30647 %5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LA: +0X0P0:0:-1: + # BZ12701 %*5LA: +0X0P0:0:-1: + # BZ12701 %5LA: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*37LA: -0X0P+0:0:8: + %37LA: -0X0P0:1:7:-0x0: + %*37LA: -0X0P0:0:7: +-%37LA: -NAN(09A_Zaz):1:14:-nan: +-%*37LA: -NAN(09A_Zaz):0:14: +-%37LA: -NAN():1:7:-nan: +-%*37LA: -NAN():0:7: +-%37LA: NAN():1:6:nan: +-%*37LA: NAN():0:6: +-%37LA: NAN(09A_Zaz):1:13:nan: +-%*37LA: NAN(09A_Zaz):0:13: ++# BZ30647 %37LA: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*37LA: -NAN(09A_Zaz):0:14: ++# BZ30647 %37LA: -NAN():1:7:-nan: ++# BZ30647 %*37LA: -NAN():0:7: ++# BZ30647 %37LA: NAN():1:6:nan: ++# BZ30647 %*37LA: NAN():0:6: ++# BZ30647 %37LA: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*37LA: NAN(09A_Zaz):0:13: + %37LA: 0X0P0:1:6:0x0: + %*37LA: 0X0P0:0:6: + %37LA: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*37LA: 0XF.FFFFFFFFFFFFFFFP+16380:0:27: + %37LA: INFINITY:1:9:inf: + %*37LA: INFINITY:0:9: +-%37LA: +NAN():1:7:nan: +-%*37LA: +NAN():0:7: +-%37LA: +NAN(09A_Zaz):1:14:nan: +-%*37LA: +NAN(09A_Zaz):0:14: ++# BZ30647 %37LA: +NAN():1:7:nan: ++# BZ30647 %*37LA: +NAN():0:7: ++# BZ30647 %37LA: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*37LA: +NAN(09A_Zaz):0:14: + %37LA: +0X0P0:1:7:0x0: + %*37LA: +0X0P0:0:7: + %37LA: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input +index 61a9c901c205f897..b1d07a1393654580 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input +@@ -16,14 +16,14 @@ + %*Le:-0e+0:0:5: + %Le:-0e0:1:4:-0x0: + %*Le:-0e0:0:4: +-%Le:-nan(09A_Zaz):1:13:-nan: +-%*Le:-nan(09A_Zaz):0:13: +-%Le:-nan():1:6:-nan: +-%*Le:-nan():0:6: +-%Le:nan():1:5:nan: +-%*Le:nan():0:5: +-%Le:nan(09A_Zaz):1:12:nan: +-%*Le:nan(09A_Zaz):0:12: ++# BZ30647 %Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Le:-nan(09A_Zaz):0:13: ++# BZ30647 %Le:-nan():1:6:-nan: ++# BZ30647 %*Le:-nan():0:6: ++# BZ30647 %Le:nan():1:5:nan: ++# BZ30647 %*Le:nan():0:5: ++# BZ30647 %Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Le:nan(09A_Zaz):0:12: + %Le:0e0:1:3:0x0: + %*Le:0e0:0:3: + %Le:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*Le:1.18973149535723176502126385303097021e+4932:0:43: + %Le:infinity:1:8:inf: + %*Le:infinity:0:8: +-%Le:+nan():1:6:nan: +-%*Le:+nan():0:6: +-%Le:+nan(09A_Zaz):1:13:nan: +-%*Le:+nan(09A_Zaz):0:13: ++# BZ30647 %Le:+nan():1:6:nan: ++# BZ30647 %*Le:+nan():0:6: ++# BZ30647 %Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Le:+nan(09A_Zaz):0:13: + %Le:+0e0:1:4:0x0: + %*Le:+0e0:0:4: + %Le:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1Le:-0e+0:0:-1: + %1Le:-0e0:0:-1: + %*1Le:-0e0:0:-1: +-%1Le:-nan(09A_Zaz):0:-1: +-%*1Le:-nan(09A_Zaz):0:-1: +-%1Le:-nan():0:-1: +-%*1Le:-nan():0:-1: +-%1Le:nan():0:-1: +-%*1Le:nan():0:-1: +-%1Le:nan(09A_Zaz):0:-1: +-%*1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan():0:-1: ++# BZ30647 %*1Le:-nan():0:-1: ++# BZ30647 %1Le:nan():0:-1: ++# BZ30647 %*1Le:nan():0:-1: ++# BZ30647 %1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:nan(09A_Zaz):0:-1: + %1Le:0e0:1:1:0x0: + %*1Le:0e0:0:1: + %1Le:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Le:1.18973149535723176502126385303097021e+4932:0:1: + %1Le:infinity:0:-1: + %*1Le:infinity:0:-1: +-%1Le:+nan():0:-1: +-%*1Le:+nan():0:-1: +-%1Le:+nan(09A_Zaz):0:-1: +-%*1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:+nan():0:-1: ++# BZ30647 %*1Le:+nan():0:-1: ++# BZ30647 %1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:+nan(09A_Zaz):0:-1: + %1Le:+0e0:0:-1: + %*1Le:+0e0:0:-1: + %1Le:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Le:-0e+0:0:2: + %2Le:-0e0:1:2:-0x0: + %*2Le:-0e0:0:2: +-%2Le:-nan(09A_Zaz):0:-1: +-%*2Le:-nan(09A_Zaz):0:-1: +-%2Le:-nan():0:-1: +-%*2Le:-nan():0:-1: +-%2Le:nan():0:-1: +-%*2Le:nan():0:-1: +-%2Le:nan(09A_Zaz):0:-1: +-%*2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan():0:-1: ++# BZ30647 %*2Le:-nan():0:-1: ++# BZ30647 %2Le:nan():0:-1: ++# BZ30647 %*2Le:nan():0:-1: ++# BZ30647 %2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:nan(09A_Zaz):0:-1: + # BZ12701 %2Le:0e0:0:-1: + # BZ12701 %*2Le:0e0:0:-1: + # BZ12701 %2Le:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2Le:1.18973149535723176502126385303097021e+4932:0:2: + %2Le:infinity:0:-1: + %*2Le:infinity:0:-1: +-%2Le:+nan():0:-1: +-%*2Le:+nan():0:-1: +-%2Le:+nan(09A_Zaz):0:-1: +-%*2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:+nan():0:-1: ++# BZ30647 %*2Le:+nan():0:-1: ++# BZ30647 %2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:+nan(09A_Zaz):0:-1: + %2Le:+0e0:1:2:0x0: + %*2Le:+0e0:0:2: + %2Le:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Le:-0e+0:0:-1: + # BZ12701 %3Le:-0e0:0:-1: + # BZ12701 %*3Le:-0e0:0:-1: +-%3Le:-nan(09A_Zaz):0:-1: +-%*3Le:-nan(09A_Zaz):0:-1: +-%3Le:-nan():0:-1: +-%*3Le:-nan():0:-1: +-%3Le:nan():1:3:nan: +-%*3Le:nan():0:3: +-%3Le:nan(09A_Zaz):1:3:nan: +-%*3Le:nan(09A_Zaz):0:3: ++# BZ30647 %3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:-nan():0:-1: ++# BZ30647 %*3Le:-nan():0:-1: ++# BZ30647 %3Le:nan():1:3:nan: ++# BZ30647 %*3Le:nan():0:3: ++# BZ30647 %3Le:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Le:nan(09A_Zaz):0:3: + %3Le:0e0:1:3:0x0: + %*3Le:0e0:0:3: + # BZ12701 %3Le:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3Le:1.18973149535723176502126385303097021e+4932:0:3: + %3Le:infinity:1:3:inf: + %*3Le:infinity:0:3: +-%3Le:+nan():0:-1: +-%*3Le:+nan():0:-1: +-%3Le:+nan(09A_Zaz):0:-1: +-%*3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:+nan():0:-1: ++# BZ30647 %*3Le:+nan():0:-1: ++# BZ30647 %3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:+nan(09A_Zaz):0:-1: + # BZ12701 %3Le:+0e0:0:-1: + # BZ12701 %*3Le:+0e0:0:-1: + # BZ12701 %3Le:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4Le:-0e+0:0:-1: + %4Le:-0e0:1:4:-0x0: + %*4Le:-0e0:0:4: +-%4Le:-nan(09A_Zaz):1:4:-nan: +-%*4Le:-nan(09A_Zaz):0:4: +-%4Le:-nan():1:4:-nan: +-%*4Le:-nan():0:4: +-%4Le:nan():0:-1: +-%*4Le:nan():0:-1: +-%4Le:nan(09A_Zaz):0:-1: +-%*4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %4Le:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Le:-nan(09A_Zaz):0:4: ++# BZ30647 %4Le:-nan():1:4:-nan: ++# BZ30647 %*4Le:-nan():0:4: ++# BZ30647 %4Le:nan():0:-1: ++# BZ30647 %*4Le:nan():0:-1: ++# BZ30647 %4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Le:nan(09A_Zaz):0:-1: + %4Le:0e0:1:3:0x0: + %*4Le:0e0:0:3: + %4Le:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4Le:1.18973149535723176502126385303097021e+4932:0:4: + %4Le:infinity:0:-1: + %*4Le:infinity:0:-1: +-%4Le:+nan():1:4:nan: +-%*4Le:+nan():0:4: +-%4Le:+nan(09A_Zaz):1:4:nan: +-%*4Le:+nan(09A_Zaz):0:4: ++# BZ30647 %4Le:+nan():1:4:nan: ++# BZ30647 %*4Le:+nan():0:4: ++# BZ30647 %4Le:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Le:+nan(09A_Zaz):0:4: + %4Le:+0e0:1:4:0x0: + %*4Le:+0e0:0:4: + # BZ12701 %4Le:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40Le:-0e+0:0:5: + %40Le:-0e0:1:4:-0x0: + %*40Le:-0e0:0:4: +-%40Le:-nan(09A_Zaz):1:13:-nan: +-%*40Le:-nan(09A_Zaz):0:13: +-%40Le:-nan():1:6:-nan: +-%*40Le:-nan():0:6: +-%40Le:nan():1:5:nan: +-%*40Le:nan():0:5: +-%40Le:nan(09A_Zaz):1:12:nan: +-%*40Le:nan(09A_Zaz):0:12: ++# BZ30647 %40Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40Le:-nan(09A_Zaz):0:13: ++# BZ30647 %40Le:-nan():1:6:-nan: ++# BZ30647 %*40Le:-nan():0:6: ++# BZ30647 %40Le:nan():1:5:nan: ++# BZ30647 %*40Le:nan():0:5: ++# BZ30647 %40Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40Le:nan(09A_Zaz):0:12: + %40Le:0e0:1:3:0x0: + %*40Le:0e0:0:3: + %40Le:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40Le:1.18973149535723176502126385303097021e+4932:0:40: + %40Le:infinity:1:8:inf: + %*40Le:infinity:0:8: +-%40Le:+nan():1:6:nan: +-%*40Le:+nan():0:6: +-%40Le:+nan(09A_Zaz):1:13:nan: +-%*40Le:+nan(09A_Zaz):0:13: ++# BZ30647 %40Le:+nan():1:6:nan: ++# BZ30647 %*40Le:+nan():0:6: ++# BZ30647 %40Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40Le:+nan(09A_Zaz):0:13: + %40Le:+0e0:1:4:0x0: + %*40Le:+0e0:0:4: + %40Le:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48Le:-0e+0:0:5: + %48Le:-0e0:1:4:-0x0: + %*48Le:-0e0:0:4: +-%48Le:-nan(09A_Zaz):1:13:-nan: +-%*48Le:-nan(09A_Zaz):0:13: +-%48Le:-nan():1:6:-nan: +-%*48Le:-nan():0:6: +-%48Le:nan():1:5:nan: +-%*48Le:nan():0:5: +-%48Le:nan(09A_Zaz):1:12:nan: +-%*48Le:nan(09A_Zaz):0:12: ++# BZ30647 %48Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48Le:-nan(09A_Zaz):0:13: ++# BZ30647 %48Le:-nan():1:6:-nan: ++# BZ30647 %*48Le:-nan():0:6: ++# BZ30647 %48Le:nan():1:5:nan: ++# BZ30647 %*48Le:nan():0:5: ++# BZ30647 %48Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48Le:nan(09A_Zaz):0:12: + %48Le:0e0:1:3:0x0: + %*48Le:0e0:0:3: + %48Le:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48Le:1.18973149535723176502126385303097021e+4932:0:43: + %48Le:infinity:1:8:inf: + %*48Le:infinity:0:8: +-%48Le:+nan():1:6:nan: +-%*48Le:+nan():0:6: +-%48Le:+nan(09A_Zaz):1:13:nan: +-%*48Le:+nan(09A_Zaz):0:13: ++# BZ30647 %48Le:+nan():1:6:nan: ++# BZ30647 %*48Le:+nan():0:6: ++# BZ30647 %48Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le:+nan(09A_Zaz):0:13: + %48Le:+0e0:1:4:0x0: + %*48Le:+0e0:0:4: + %48Le:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3Le: -0e+0:0:-1: + # BZ12701 %3Le: -0e0:0:-1: + # BZ12701 %*3Le: -0e0:0:-1: +-%3Le: -nan(09A_Zaz):0:-1: +-%*3Le: -nan(09A_Zaz):0:-1: +-%3Le: -nan():0:-1: +-%*3Le: -nan():0:-1: +-%3Le: nan():1:4:nan: +-%*3Le: nan():0:4: +-%3Le: nan(09A_Zaz):1:4:nan: +-%*3Le: nan(09A_Zaz):0:4: ++# BZ30647 %3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: -nan():0:-1: ++# BZ30647 %*3Le: -nan():0:-1: ++# BZ30647 %3Le: nan():1:4:nan: ++# BZ30647 %*3Le: nan():0:4: ++# BZ30647 %3Le: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Le: nan(09A_Zaz):0:4: + %3Le: 0e0:1:4:0x0: + %*3Le: 0e0:0:4: + # BZ12701 %3Le: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3Le: 1.18973149535723176502126385303097021e+4932:0:4: + %3Le: infinity:1:4:inf: + %*3Le: infinity:0:4: +-%3Le: +nan():0:-1: +-%*3Le: +nan():0:-1: +-%3Le: +nan(09A_Zaz):0:-1: +-%*3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: +nan():0:-1: ++# BZ30647 %*3Le: +nan():0:-1: ++# BZ30647 %3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: +nan(09A_Zaz):0:-1: + # BZ12701 %3Le: +0e0:0:-1: + # BZ12701 %*3Le: +0e0:0:-1: + # BZ12701 %3Le: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48Le: -0e+0:0:6: + %48Le: -0e0:1:5:-0x0: + %*48Le: -0e0:0:5: +-%48Le: -nan(09A_Zaz):1:14:-nan: +-%*48Le: -nan(09A_Zaz):0:14: +-%48Le: -nan():1:7:-nan: +-%*48Le: -nan():0:7: +-%48Le: nan():1:6:nan: +-%*48Le: nan():0:6: +-%48Le: nan(09A_Zaz):1:13:nan: +-%*48Le: nan(09A_Zaz):0:13: ++# BZ30647 %48Le: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48Le: -nan(09A_Zaz):0:14: ++# BZ30647 %48Le: -nan():1:7:-nan: ++# BZ30647 %*48Le: -nan():0:7: ++# BZ30647 %48Le: nan():1:6:nan: ++# BZ30647 %*48Le: nan():0:6: ++# BZ30647 %48Le: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le: nan(09A_Zaz):0:13: + %48Le: 0e0:1:4:0x0: + %*48Le: 0e0:0:4: + %48Le: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48Le: 1.18973149535723176502126385303097021e+4932:0:44: + %48Le: infinity:1:9:inf: + %*48Le: infinity:0:9: +-%48Le: +nan():1:7:nan: +-%*48Le: +nan():0:7: +-%48Le: +nan(09A_Zaz):1:14:nan: +-%*48Le: +nan(09A_Zaz):0:14: ++# BZ30647 %48Le: +nan():1:7:nan: ++# BZ30647 %*48Le: +nan():0:7: ++# BZ30647 %48Le: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48Le: +nan(09A_Zaz):0:14: + %48Le: +0e0:1:5:0x0: + %*48Le: +0e0:0:5: + %48Le: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input +index 2362eab7e1e3702b..66796466c65eb61c 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input +@@ -16,14 +16,14 @@ + %*LE:-0E+0:0:5: + %LE:-0E0:1:4:-0x0: + %*LE:-0E0:0:4: +-%LE:-NAN(09A_Zaz):1:13:-nan: +-%*LE:-NAN(09A_Zaz):0:13: +-%LE:-NAN():1:6:-nan: +-%*LE:-NAN():0:6: +-%LE:NAN():1:5:nan: +-%*LE:NAN():0:5: +-%LE:NAN(09A_Zaz):1:12:nan: +-%*LE:NAN(09A_Zaz):0:12: ++# BZ30647 %LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %LE:-NAN():1:6:-nan: ++# BZ30647 %*LE:-NAN():0:6: ++# BZ30647 %LE:NAN():1:5:nan: ++# BZ30647 %*LE:NAN():0:5: ++# BZ30647 %LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LE:NAN(09A_Zaz):0:12: + %LE:0E0:1:3:0x0: + %*LE:0E0:0:3: + %LE:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*LE:1.18973149535723176502126385303097021E+4932:0:43: + %LE:INFINITY:1:8:inf: + %*LE:INFINITY:0:8: +-%LE:+NAN():1:6:nan: +-%*LE:+NAN():0:6: +-%LE:+NAN(09A_Zaz):1:13:nan: +-%*LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %LE:+NAN():1:6:nan: ++# BZ30647 %*LE:+NAN():0:6: ++# BZ30647 %LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LE:+NAN(09A_Zaz):0:13: + %LE:+0E0:1:4:0x0: + %*LE:+0E0:0:4: + %LE:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1LE:-0E+0:0:-1: + %1LE:-0E0:0:-1: + %*1LE:-0E0:0:-1: +-%1LE:-NAN(09A_Zaz):0:-1: +-%*1LE:-NAN(09A_Zaz):0:-1: +-%1LE:-NAN():0:-1: +-%*1LE:-NAN():0:-1: +-%1LE:NAN():0:-1: +-%*1LE:NAN():0:-1: +-%1LE:NAN(09A_Zaz):0:-1: +-%*1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN():0:-1: ++# BZ30647 %*1LE:-NAN():0:-1: ++# BZ30647 %1LE:NAN():0:-1: ++# BZ30647 %*1LE:NAN():0:-1: ++# BZ30647 %1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:NAN(09A_Zaz):0:-1: + %1LE:0E0:1:1:0x0: + %*1LE:0E0:0:1: + %1LE:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LE:1.18973149535723176502126385303097021E+4932:0:1: + %1LE:INFINITY:0:-1: + %*1LE:INFINITY:0:-1: +-%1LE:+NAN():0:-1: +-%*1LE:+NAN():0:-1: +-%1LE:+NAN(09A_Zaz):0:-1: +-%*1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:+NAN():0:-1: ++# BZ30647 %*1LE:+NAN():0:-1: ++# BZ30647 %1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:+NAN(09A_Zaz):0:-1: + %1LE:+0E0:0:-1: + %*1LE:+0E0:0:-1: + %1LE:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LE:-0E+0:0:2: + %2LE:-0E0:1:2:-0x0: + %*2LE:-0E0:0:2: +-%2LE:-NAN(09A_Zaz):0:-1: +-%*2LE:-NAN(09A_Zaz):0:-1: +-%2LE:-NAN():0:-1: +-%*2LE:-NAN():0:-1: +-%2LE:NAN():0:-1: +-%*2LE:NAN():0:-1: +-%2LE:NAN(09A_Zaz):0:-1: +-%*2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN():0:-1: ++# BZ30647 %*2LE:-NAN():0:-1: ++# BZ30647 %2LE:NAN():0:-1: ++# BZ30647 %*2LE:NAN():0:-1: ++# BZ30647 %2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:NAN(09A_Zaz):0:-1: + # BZ12701 %2LE:0E0:0:-1: + # BZ12701 %*2LE:0E0:0:-1: + # BZ12701 %2LE:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2LE:1.18973149535723176502126385303097021E+4932:0:2: + %2LE:INFINITY:0:-1: + %*2LE:INFINITY:0:-1: +-%2LE:+NAN():0:-1: +-%*2LE:+NAN():0:-1: +-%2LE:+NAN(09A_Zaz):0:-1: +-%*2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:+NAN():0:-1: ++# BZ30647 %*2LE:+NAN():0:-1: ++# BZ30647 %2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:+NAN(09A_Zaz):0:-1: + %2LE:+0E0:1:2:0x0: + %*2LE:+0E0:0:2: + %2LE:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LE:-0E+0:0:-1: + # BZ12701 %3LE:-0E0:0:-1: + # BZ12701 %*3LE:-0E0:0:-1: +-%3LE:-NAN(09A_Zaz):0:-1: +-%*3LE:-NAN(09A_Zaz):0:-1: +-%3LE:-NAN():0:-1: +-%*3LE:-NAN():0:-1: +-%3LE:NAN():1:3:nan: +-%*3LE:NAN():0:3: +-%3LE:NAN(09A_Zaz):1:3:nan: +-%*3LE:NAN(09A_Zaz):0:3: ++# BZ30647 %3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:-NAN():0:-1: ++# BZ30647 %*3LE:-NAN():0:-1: ++# BZ30647 %3LE:NAN():1:3:nan: ++# BZ30647 %*3LE:NAN():0:3: ++# BZ30647 %3LE:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LE:NAN(09A_Zaz):0:3: + %3LE:0E0:1:3:0x0: + %*3LE:0E0:0:3: + # BZ12701 %3LE:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3LE:1.18973149535723176502126385303097021E+4932:0:3: + %3LE:INFINITY:1:3:inf: + %*3LE:INFINITY:0:3: +-%3LE:+NAN():0:-1: +-%*3LE:+NAN():0:-1: +-%3LE:+NAN(09A_Zaz):0:-1: +-%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:+NAN():0:-1: ++# BZ30647 %*3LE:+NAN():0:-1: ++# BZ30647 %3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LE:+0E0:0:-1: + # BZ12701 %*3LE:+0E0:0:-1: + # BZ12701 %3LE:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4LE:-0E+0:0:-1: + %4LE:-0E0:1:4:-0x0: + %*4LE:-0E0:0:4: +-%4LE:-NAN(09A_Zaz):1:4:-nan: +-%*4LE:-NAN(09A_Zaz):0:4: +-%4LE:-NAN():1:4:-nan: +-%*4LE:-NAN():0:4: +-%4LE:NAN():0:-1: +-%*4LE:NAN():0:-1: +-%4LE:NAN(09A_Zaz):0:-1: +-%*4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LE:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LE:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:-NAN():1:4:-nan: ++# BZ30647 %*4LE:-NAN():0:4: ++# BZ30647 %4LE:NAN():0:-1: ++# BZ30647 %*4LE:NAN():0:-1: ++# BZ30647 %4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LE:NAN(09A_Zaz):0:-1: + %4LE:0E0:1:3:0x0: + %*4LE:0E0:0:3: + %4LE:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4LE:1.18973149535723176502126385303097021E+4932:0:4: + %4LE:INFINITY:0:-1: + %*4LE:INFINITY:0:-1: +-%4LE:+NAN():1:4:nan: +-%*4LE:+NAN():0:4: +-%4LE:+NAN(09A_Zaz):1:4:nan: +-%*4LE:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:+NAN():1:4:nan: ++# BZ30647 %*4LE:+NAN():0:4: ++# BZ30647 %4LE:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LE:+NAN(09A_Zaz):0:4: + %4LE:+0E0:1:4:0x0: + %*4LE:+0E0:0:4: + # BZ12701 %4LE:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40LE:-0E+0:0:5: + %40LE:-0E0:1:4:-0x0: + %*40LE:-0E0:0:4: +-%40LE:-NAN(09A_Zaz):1:13:-nan: +-%*40LE:-NAN(09A_Zaz):0:13: +-%40LE:-NAN():1:6:-nan: +-%*40LE:-NAN():0:6: +-%40LE:NAN():1:5:nan: +-%*40LE:NAN():0:5: +-%40LE:NAN(09A_Zaz):1:12:nan: +-%*40LE:NAN(09A_Zaz):0:12: ++# BZ30647 %40LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:-NAN():1:6:-nan: ++# BZ30647 %*40LE:-NAN():0:6: ++# BZ30647 %40LE:NAN():1:5:nan: ++# BZ30647 %*40LE:NAN():0:5: ++# BZ30647 %40LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40LE:NAN(09A_Zaz):0:12: + %40LE:0E0:1:3:0x0: + %*40LE:0E0:0:3: + %40LE:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40LE:1.18973149535723176502126385303097021E+4932:0:40: + %40LE:INFINITY:1:8:inf: + %*40LE:INFINITY:0:8: +-%40LE:+NAN():1:6:nan: +-%*40LE:+NAN():0:6: +-%40LE:+NAN(09A_Zaz):1:13:nan: +-%*40LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:+NAN():1:6:nan: ++# BZ30647 %*40LE:+NAN():0:6: ++# BZ30647 %40LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40LE:+NAN(09A_Zaz):0:13: + %40LE:+0E0:1:4:0x0: + %*40LE:+0E0:0:4: + %40LE:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48LE:-0E+0:0:5: + %48LE:-0E0:1:4:-0x0: + %*48LE:-0E0:0:4: +-%48LE:-NAN(09A_Zaz):1:13:-nan: +-%*48LE:-NAN(09A_Zaz):0:13: +-%48LE:-NAN():1:6:-nan: +-%*48LE:-NAN():0:6: +-%48LE:NAN():1:5:nan: +-%*48LE:NAN():0:5: +-%48LE:NAN(09A_Zaz):1:12:nan: +-%*48LE:NAN(09A_Zaz):0:12: ++# BZ30647 %48LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:-NAN():1:6:-nan: ++# BZ30647 %*48LE:-NAN():0:6: ++# BZ30647 %48LE:NAN():1:5:nan: ++# BZ30647 %*48LE:NAN():0:5: ++# BZ30647 %48LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48LE:NAN(09A_Zaz):0:12: + %48LE:0E0:1:3:0x0: + %*48LE:0E0:0:3: + %48LE:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48LE:1.18973149535723176502126385303097021E+4932:0:43: + %48LE:INFINITY:1:8:inf: + %*48LE:INFINITY:0:8: +-%48LE:+NAN():1:6:nan: +-%*48LE:+NAN():0:6: +-%48LE:+NAN(09A_Zaz):1:13:nan: +-%*48LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:+NAN():1:6:nan: ++# BZ30647 %*48LE:+NAN():0:6: ++# BZ30647 %48LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE:+NAN(09A_Zaz):0:13: + %48LE:+0E0:1:4:0x0: + %*48LE:+0E0:0:4: + %48LE:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3LE: -0E+0:0:-1: + # BZ12701 %3LE: -0E0:0:-1: + # BZ12701 %*3LE: -0E0:0:-1: +-%3LE: -NAN(09A_Zaz):0:-1: +-%*3LE: -NAN(09A_Zaz):0:-1: +-%3LE: -NAN():0:-1: +-%*3LE: -NAN():0:-1: +-%3LE: NAN():1:4:nan: +-%*3LE: NAN():0:4: +-%3LE: NAN(09A_Zaz):1:4:nan: +-%*3LE: NAN(09A_Zaz):0:4: ++# BZ30647 %3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: -NAN():0:-1: ++# BZ30647 %*3LE: -NAN():0:-1: ++# BZ30647 %3LE: NAN():1:4:nan: ++# BZ30647 %*3LE: NAN():0:4: ++# BZ30647 %3LE: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LE: NAN(09A_Zaz):0:4: + %3LE: 0E0:1:4:0x0: + %*3LE: 0E0:0:4: + # BZ12701 %3LE: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3LE: 1.18973149535723176502126385303097021E+4932:0:4: + %3LE: INFINITY:1:4:inf: + %*3LE: INFINITY:0:4: +-%3LE: +NAN():0:-1: +-%*3LE: +NAN():0:-1: +-%3LE: +NAN(09A_Zaz):0:-1: +-%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: +NAN():0:-1: ++# BZ30647 %*3LE: +NAN():0:-1: ++# BZ30647 %3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: +NAN(09A_Zaz):0:-1: + # BZ12701 %3LE: +0E0:0:-1: + # BZ12701 %*3LE: +0E0:0:-1: + # BZ12701 %3LE: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48LE: -0E+0:0:6: + %48LE: -0E0:1:5:-0x0: + %*48LE: -0E0:0:5: +-%48LE: -NAN(09A_Zaz):1:14:-nan: +-%*48LE: -NAN(09A_Zaz):0:14: +-%48LE: -NAN():1:7:-nan: +-%*48LE: -NAN():0:7: +-%48LE: NAN():1:6:nan: +-%*48LE: NAN():0:6: +-%48LE: NAN(09A_Zaz):1:13:nan: +-%*48LE: NAN(09A_Zaz):0:13: ++# BZ30647 %48LE: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48LE: -NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: -NAN():1:7:-nan: ++# BZ30647 %*48LE: -NAN():0:7: ++# BZ30647 %48LE: NAN():1:6:nan: ++# BZ30647 %*48LE: NAN():0:6: ++# BZ30647 %48LE: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE: NAN(09A_Zaz):0:13: + %48LE: 0E0:1:4:0x0: + %*48LE: 0E0:0:4: + %48LE: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48LE: 1.18973149535723176502126385303097021E+4932:0:44: + %48LE: INFINITY:1:9:inf: + %*48LE: INFINITY:0:9: +-%48LE: +NAN():1:7:nan: +-%*48LE: +NAN():0:7: +-%48LE: +NAN(09A_Zaz):1:14:nan: +-%*48LE: +NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: +NAN():1:7:nan: ++# BZ30647 %*48LE: +NAN():0:7: ++# BZ30647 %48LE: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48LE: +NAN(09A_Zaz):0:14: + %48LE: +0E0:1:5:0x0: + %*48LE: +0E0:0:5: + %48LE: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input +index 7c06a3260a0496ba..7e1ec61a445c6a5b 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input +@@ -16,14 +16,14 @@ + %*Lf:-0.0:0:4: + %Lf:-0:1:2:-0x0: + %*Lf:-0:0:2: +-%Lf:-nan(09A_Zaz):1:13:-nan: +-%*Lf:-nan(09A_Zaz):0:13: +-%Lf:-nan():1:6:-nan: +-%*Lf:-nan():0:6: +-%Lf:nan():1:5:nan: +-%*Lf:nan():0:5: +-%Lf:nan(09A_Zaz):1:12:nan: +-%*Lf:nan(09A_Zaz):0:12: ++# BZ30647 %Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %Lf:-nan():1:6:-nan: ++# BZ30647 %*Lf:-nan():0:6: ++# BZ30647 %Lf:nan():1:5:nan: ++# BZ30647 %*Lf:nan():0:5: ++# BZ30647 %Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lf:nan(09A_Zaz):0:12: + %Lf:0:1:1:0x0: + %*Lf:0:0:1: + %Lf:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: + %Lf:infinity:1:8:inf: + %*Lf:infinity:0:8: +-%Lf:+nan():1:6:nan: +-%*Lf:+nan():0:6: +-%Lf:+nan(09A_Zaz):1:13:nan: +-%*Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %Lf:+nan():1:6:nan: ++# BZ30647 %*Lf:+nan():0:6: ++# BZ30647 %Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lf:+nan(09A_Zaz):0:13: + %Lf:+0:1:2:0x0: + %*Lf:+0:0:2: + %Lf:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1Lf:-0.0:0:-1: + %1Lf:-0:0:-1: + %*1Lf:-0:0:-1: +-%1Lf:-nan(09A_Zaz):0:-1: +-%*1Lf:-nan(09A_Zaz):0:-1: +-%1Lf:-nan():0:-1: +-%*1Lf:-nan():0:-1: +-%1Lf:nan():0:-1: +-%*1Lf:nan():0:-1: +-%1Lf:nan(09A_Zaz):0:-1: +-%*1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan():0:-1: ++# BZ30647 %*1Lf:-nan():0:-1: ++# BZ30647 %1Lf:nan():0:-1: ++# BZ30647 %*1Lf:nan():0:-1: ++# BZ30647 %1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:nan(09A_Zaz):0:-1: + %1Lf:0:1:1:0x0: + %*1Lf:0:0:1: + %1Lf:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:1: + %1Lf:infinity:0:-1: + %*1Lf:infinity:0:-1: +-%1Lf:+nan():0:-1: +-%*1Lf:+nan():0:-1: +-%1Lf:+nan(09A_Zaz):0:-1: +-%*1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:+nan():0:-1: ++# BZ30647 %*1Lf:+nan():0:-1: ++# BZ30647 %1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:+nan(09A_Zaz):0:-1: + %1Lf:+0:0:-1: + %*1Lf:+0:0:-1: + %1Lf:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lf:-0.0:0:2: + %2Lf:-0:1:2:-0x0: + %*2Lf:-0:0:2: +-%2Lf:-nan(09A_Zaz):0:-1: +-%*2Lf:-nan(09A_Zaz):0:-1: +-%2Lf:-nan():0:-1: +-%*2Lf:-nan():0:-1: +-%2Lf:nan():0:-1: +-%*2Lf:nan():0:-1: +-%2Lf:nan(09A_Zaz):0:-1: +-%*2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan():0:-1: ++# BZ30647 %*2Lf:-nan():0:-1: ++# BZ30647 %2Lf:nan():0:-1: ++# BZ30647 %*2Lf:nan():0:-1: ++# BZ30647 %2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:nan(09A_Zaz):0:-1: + %2Lf:0:1:1:0x0: + %*2Lf:0:0:1: + %2Lf:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: + %2Lf:infinity:0:-1: + %*2Lf:infinity:0:-1: +-%2Lf:+nan():0:-1: +-%*2Lf:+nan():0:-1: +-%2Lf:+nan(09A_Zaz):0:-1: +-%*2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:+nan():0:-1: ++# BZ30647 %*2Lf:+nan():0:-1: ++# BZ30647 %2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:+nan(09A_Zaz):0:-1: + %2Lf:+0:1:2:0x0: + %*2Lf:+0:0:2: + %2Lf:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3Lf:-0.0:0:3: + %3Lf:-0:1:2:-0x0: + %*3Lf:-0:0:2: +-%3Lf:-nan(09A_Zaz):0:-1: +-%*3Lf:-nan(09A_Zaz):0:-1: +-%3Lf:-nan():0:-1: +-%*3Lf:-nan():0:-1: +-%3Lf:nan():1:3:nan: +-%*3Lf:nan():0:3: +-%3Lf:nan(09A_Zaz):1:3:nan: +-%*3Lf:nan(09A_Zaz):0:3: ++# BZ30647 %3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:-nan():0:-1: ++# BZ30647 %*3Lf:-nan():0:-1: ++# BZ30647 %3Lf:nan():1:3:nan: ++# BZ30647 %*3Lf:nan():0:3: ++# BZ30647 %3Lf:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lf:nan(09A_Zaz):0:3: + %3Lf:0:1:1:0x0: + %*3Lf:0:0:1: + %3Lf:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: + %3Lf:infinity:1:3:inf: + %*3Lf:infinity:0:3: +-%3Lf:+nan():0:-1: +-%*3Lf:+nan():0:-1: +-%3Lf:+nan(09A_Zaz):0:-1: +-%*3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:+nan():0:-1: ++# BZ30647 %*3Lf:+nan():0:-1: ++# BZ30647 %3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:+nan(09A_Zaz):0:-1: + %3Lf:+0:1:2:0x0: + %*3Lf:+0:0:2: + %3Lf:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4935Lf:-0.0:0:4: + %4935Lf:-0:1:2:-0x0: + %*4935Lf:-0:0:2: +-%4935Lf:-nan(09A_Zaz):1:13:-nan: +-%*4935Lf:-nan(09A_Zaz):0:13: +-%4935Lf:-nan():1:6:-nan: +-%*4935Lf:-nan():0:6: +-%4935Lf:nan():1:5:nan: +-%*4935Lf:nan():0:5: +-%4935Lf:nan(09A_Zaz):1:12:nan: +-%*4935Lf:nan(09A_Zaz):0:12: ++# BZ30647 %4935Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*4935Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %4935Lf:-nan():1:6:-nan: ++# BZ30647 %*4935Lf:-nan():0:6: ++# BZ30647 %4935Lf:nan():1:5:nan: ++# BZ30647 %*4935Lf:nan():0:5: ++# BZ30647 %4935Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*4935Lf:nan(09A_Zaz):0:12: + %4935Lf:0:1:1:0x0: + %*4935Lf:0:0:1: + %4935Lf:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4935Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: + %4935Lf:infinity:1:8:inf: + %*4935Lf:infinity:0:8: +-%4935Lf:+nan():1:6:nan: +-%*4935Lf:+nan():0:6: +-%4935Lf:+nan(09A_Zaz):1:13:nan: +-%*4935Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %4935Lf:+nan():1:6:nan: ++# BZ30647 %*4935Lf:+nan():0:6: ++# BZ30647 %4935Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*4935Lf:+nan(09A_Zaz):0:13: + %4935Lf:+0:1:2:0x0: + %*4935Lf:+0:0:2: + %4935Lf:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*5000Lf:-0.0:0:4: + %5000Lf:-0:1:2:-0x0: + %*5000Lf:-0:0:2: +-%5000Lf:-nan(09A_Zaz):1:13:-nan: +-%*5000Lf:-nan(09A_Zaz):0:13: +-%5000Lf:-nan():1:6:-nan: +-%*5000Lf:-nan():0:6: +-%5000Lf:nan():1:5:nan: +-%*5000Lf:nan():0:5: +-%5000Lf:nan(09A_Zaz):1:12:nan: +-%*5000Lf:nan(09A_Zaz):0:12: ++# BZ30647 %5000Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*5000Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf:-nan():1:6:-nan: ++# BZ30647 %*5000Lf:-nan():0:6: ++# BZ30647 %5000Lf:nan():1:5:nan: ++# BZ30647 %*5000Lf:nan():0:5: ++# BZ30647 %5000Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*5000Lf:nan(09A_Zaz):0:12: + %5000Lf:0:1:1:0x0: + %*5000Lf:0:0:1: + %5000Lf:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*5000Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: + %5000Lf:infinity:1:8:inf: + %*5000Lf:infinity:0:8: +-%5000Lf:+nan():1:6:nan: +-%*5000Lf:+nan():0:6: +-%5000Lf:+nan(09A_Zaz):1:13:nan: +-%*5000Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf:+nan():1:6:nan: ++# BZ30647 %*5000Lf:+nan():0:6: ++# BZ30647 %5000Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*5000Lf:+nan(09A_Zaz):0:13: + %5000Lf:+0:1:2:0x0: + %*5000Lf:+0:0:2: + %5000Lf:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3Lf: -0.0:0:4: + %3Lf: -0:1:3:-0x0: + %*3Lf: -0:0:3: +-%3Lf: -nan(09A_Zaz):0:-1: +-%*3Lf: -nan(09A_Zaz):0:-1: +-%3Lf: -nan():0:-1: +-%*3Lf: -nan():0:-1: +-%3Lf: nan():1:4:nan: +-%*3Lf: nan():0:4: +-%3Lf: nan(09A_Zaz):1:4:nan: +-%*3Lf: nan(09A_Zaz):0:4: ++# BZ30647 %3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: -nan():0:-1: ++# BZ30647 %*3Lf: -nan():0:-1: ++# BZ30647 %3Lf: nan():1:4:nan: ++# BZ30647 %*3Lf: nan():0:4: ++# BZ30647 %3Lf: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Lf: nan(09A_Zaz):0:4: + %3Lf: 0:1:2:0x0: + %*3Lf: 0:0:2: + %3Lf: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: + %3Lf: infinity:1:4:inf: + %*3Lf: infinity:0:4: +-%3Lf: +nan():0:-1: +-%*3Lf: +nan():0:-1: +-%3Lf: +nan(09A_Zaz):0:-1: +-%*3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: +nan():0:-1: ++# BZ30647 %*3Lf: +nan():0:-1: ++# BZ30647 %3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: +nan(09A_Zaz):0:-1: + %3Lf: +0:1:3:0x0: + %*3Lf: +0:0:3: + %3Lf: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*5000Lf: -0.0:0:5: + %5000Lf: -0:1:3:-0x0: + %*5000Lf: -0:0:3: +-%5000Lf: -nan(09A_Zaz):1:14:-nan: +-%*5000Lf: -nan(09A_Zaz):0:14: +-%5000Lf: -nan():1:7:-nan: +-%*5000Lf: -nan():0:7: +-%5000Lf: nan():1:6:nan: +-%*5000Lf: nan():0:6: +-%5000Lf: nan(09A_Zaz):1:13:nan: +-%*5000Lf: nan(09A_Zaz):0:13: ++# BZ30647 %5000Lf: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*5000Lf: -nan(09A_Zaz):0:14: ++# BZ30647 %5000Lf: -nan():1:7:-nan: ++# BZ30647 %*5000Lf: -nan():0:7: ++# BZ30647 %5000Lf: nan():1:6:nan: ++# BZ30647 %*5000Lf: nan():0:6: ++# BZ30647 %5000Lf: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*5000Lf: nan(09A_Zaz):0:13: + %5000Lf: 0:1:2:0x0: + %*5000Lf: 0:0:2: + %5000Lf: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*5000Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: + %5000Lf: infinity:1:9:inf: + %*5000Lf: infinity:0:9: +-%5000Lf: +nan():1:7:nan: +-%*5000Lf: +nan():0:7: +-%5000Lf: +nan(09A_Zaz):1:14:nan: +-%*5000Lf: +nan(09A_Zaz):0:14: ++# BZ30647 %5000Lf: +nan():1:7:nan: ++# BZ30647 %*5000Lf: +nan():0:7: ++# BZ30647 %5000Lf: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*5000Lf: +nan(09A_Zaz):0:14: + %5000Lf: +0:1:3:0x0: + %*5000Lf: +0:0:3: + %5000Lf: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input +index 1612fc41c412479e..fbbad837897269c1 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input +@@ -16,14 +16,14 @@ + %*LF:-0.0:0:4: + %LF:-0:1:2:-0x0: + %*LF:-0:0:2: +-%LF:-NAN(09A_Zaz):1:13:-nan: +-%*LF:-NAN(09A_Zaz):0:13: +-%LF:-NAN():1:6:-nan: +-%*LF:-NAN():0:6: +-%LF:NAN():1:5:nan: +-%*LF:NAN():0:5: +-%LF:NAN(09A_Zaz):1:12:nan: +-%*LF:NAN(09A_Zaz):0:12: ++# BZ30647 %LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %LF:-NAN():1:6:-nan: ++# BZ30647 %*LF:-NAN():0:6: ++# BZ30647 %LF:NAN():1:5:nan: ++# BZ30647 %*LF:NAN():0:5: ++# BZ30647 %LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LF:NAN(09A_Zaz):0:12: + %LF:0:1:1:0x0: + %*LF:0:0:1: + %LF:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: + %LF:INFINITY:1:8:inf: + %*LF:INFINITY:0:8: +-%LF:+NAN():1:6:nan: +-%*LF:+NAN():0:6: +-%LF:+NAN(09A_Zaz):1:13:nan: +-%*LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %LF:+NAN():1:6:nan: ++# BZ30647 %*LF:+NAN():0:6: ++# BZ30647 %LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LF:+NAN(09A_Zaz):0:13: + %LF:+0:1:2:0x0: + %*LF:+0:0:2: + %LF:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1LF:-0.0:0:-1: + %1LF:-0:0:-1: + %*1LF:-0:0:-1: +-%1LF:-NAN(09A_Zaz):0:-1: +-%*1LF:-NAN(09A_Zaz):0:-1: +-%1LF:-NAN():0:-1: +-%*1LF:-NAN():0:-1: +-%1LF:NAN():0:-1: +-%*1LF:NAN():0:-1: +-%1LF:NAN(09A_Zaz):0:-1: +-%*1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN():0:-1: ++# BZ30647 %*1LF:-NAN():0:-1: ++# BZ30647 %1LF:NAN():0:-1: ++# BZ30647 %*1LF:NAN():0:-1: ++# BZ30647 %1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:NAN(09A_Zaz):0:-1: + %1LF:0:1:1:0x0: + %*1LF:0:0:1: + %1LF:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:1: + %1LF:INFINITY:0:-1: + %*1LF:INFINITY:0:-1: +-%1LF:+NAN():0:-1: +-%*1LF:+NAN():0:-1: +-%1LF:+NAN(09A_Zaz):0:-1: +-%*1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:+NAN():0:-1: ++# BZ30647 %*1LF:+NAN():0:-1: ++# BZ30647 %1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:+NAN(09A_Zaz):0:-1: + %1LF:+0:0:-1: + %*1LF:+0:0:-1: + %1LF:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2LF:-0.0:0:2: + %2LF:-0:1:2:-0x0: + %*2LF:-0:0:2: +-%2LF:-NAN(09A_Zaz):0:-1: +-%*2LF:-NAN(09A_Zaz):0:-1: +-%2LF:-NAN():0:-1: +-%*2LF:-NAN():0:-1: +-%2LF:NAN():0:-1: +-%*2LF:NAN():0:-1: +-%2LF:NAN(09A_Zaz):0:-1: +-%*2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN():0:-1: ++# BZ30647 %*2LF:-NAN():0:-1: ++# BZ30647 %2LF:NAN():0:-1: ++# BZ30647 %*2LF:NAN():0:-1: ++# BZ30647 %2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:NAN(09A_Zaz):0:-1: + %2LF:0:1:1:0x0: + %*2LF:0:0:1: + %2LF:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: + %2LF:INFINITY:0:-1: + %*2LF:INFINITY:0:-1: +-%2LF:+NAN():0:-1: +-%*2LF:+NAN():0:-1: +-%2LF:+NAN(09A_Zaz):0:-1: +-%*2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:+NAN():0:-1: ++# BZ30647 %*2LF:+NAN():0:-1: ++# BZ30647 %2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:+NAN(09A_Zaz):0:-1: + %2LF:+0:1:2:0x0: + %*2LF:+0:0:2: + %2LF:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3LF:-0.0:0:3: + %3LF:-0:1:2:-0x0: + %*3LF:-0:0:2: +-%3LF:-NAN(09A_Zaz):0:-1: +-%*3LF:-NAN(09A_Zaz):0:-1: +-%3LF:-NAN():0:-1: +-%*3LF:-NAN():0:-1: +-%3LF:NAN():1:3:nan: +-%*3LF:NAN():0:3: +-%3LF:NAN(09A_Zaz):1:3:nan: +-%*3LF:NAN(09A_Zaz):0:3: ++# BZ30647 %3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:-NAN():0:-1: ++# BZ30647 %*3LF:-NAN():0:-1: ++# BZ30647 %3LF:NAN():1:3:nan: ++# BZ30647 %*3LF:NAN():0:3: ++# BZ30647 %3LF:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LF:NAN(09A_Zaz):0:3: + %3LF:0:1:1:0x0: + %*3LF:0:0:1: + %3LF:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: + %3LF:INFINITY:1:3:inf: + %*3LF:INFINITY:0:3: +-%3LF:+NAN():0:-1: +-%*3LF:+NAN():0:-1: +-%3LF:+NAN(09A_Zaz):0:-1: +-%*3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:+NAN():0:-1: ++# BZ30647 %*3LF:+NAN():0:-1: ++# BZ30647 %3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:+NAN(09A_Zaz):0:-1: + %3LF:+0:1:2:0x0: + %*3LF:+0:0:2: + %3LF:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4935LF:-0.0:0:4: + %4935LF:-0:1:2:-0x0: + %*4935LF:-0:0:2: +-%4935LF:-NAN(09A_Zaz):1:13:-nan: +-%*4935LF:-NAN(09A_Zaz):0:13: +-%4935LF:-NAN():1:6:-nan: +-%*4935LF:-NAN():0:6: +-%4935LF:NAN():1:5:nan: +-%*4935LF:NAN():0:5: +-%4935LF:NAN(09A_Zaz):1:12:nan: +-%*4935LF:NAN(09A_Zaz):0:12: ++# BZ30647 %4935LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*4935LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %4935LF:-NAN():1:6:-nan: ++# BZ30647 %*4935LF:-NAN():0:6: ++# BZ30647 %4935LF:NAN():1:5:nan: ++# BZ30647 %*4935LF:NAN():0:5: ++# BZ30647 %4935LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*4935LF:NAN(09A_Zaz):0:12: + %4935LF:0:1:1:0x0: + %*4935LF:0:0:1: + %4935LF:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4935LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: + %4935LF:INFINITY:1:8:inf: + %*4935LF:INFINITY:0:8: +-%4935LF:+NAN():1:6:nan: +-%*4935LF:+NAN():0:6: +-%4935LF:+NAN(09A_Zaz):1:13:nan: +-%*4935LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %4935LF:+NAN():1:6:nan: ++# BZ30647 %*4935LF:+NAN():0:6: ++# BZ30647 %4935LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*4935LF:+NAN(09A_Zaz):0:13: + %4935LF:+0:1:2:0x0: + %*4935LF:+0:0:2: + %4935LF:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*5000LF:-0.0:0:4: + %5000LF:-0:1:2:-0x0: + %*5000LF:-0:0:2: +-%5000LF:-NAN(09A_Zaz):1:13:-nan: +-%*5000LF:-NAN(09A_Zaz):0:13: +-%5000LF:-NAN():1:6:-nan: +-%*5000LF:-NAN():0:6: +-%5000LF:NAN():1:5:nan: +-%*5000LF:NAN():0:5: +-%5000LF:NAN(09A_Zaz):1:12:nan: +-%*5000LF:NAN(09A_Zaz):0:12: ++# BZ30647 %5000LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*5000LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF:-NAN():1:6:-nan: ++# BZ30647 %*5000LF:-NAN():0:6: ++# BZ30647 %5000LF:NAN():1:5:nan: ++# BZ30647 %*5000LF:NAN():0:5: ++# BZ30647 %5000LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*5000LF:NAN(09A_Zaz):0:12: + %5000LF:0:1:1:0x0: + %*5000LF:0:0:1: + %5000LF:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*5000LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: + %5000LF:INFINITY:1:8:inf: + %*5000LF:INFINITY:0:8: +-%5000LF:+NAN():1:6:nan: +-%*5000LF:+NAN():0:6: +-%5000LF:+NAN(09A_Zaz):1:13:nan: +-%*5000LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF:+NAN():1:6:nan: ++# BZ30647 %*5000LF:+NAN():0:6: ++# BZ30647 %5000LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*5000LF:+NAN(09A_Zaz):0:13: + %5000LF:+0:1:2:0x0: + %*5000LF:+0:0:2: + %5000LF:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*3LF: -0.0:0:4: + %3LF: -0:1:3:-0x0: + %*3LF: -0:0:3: +-%3LF: -NAN(09A_Zaz):0:-1: +-%*3LF: -NAN(09A_Zaz):0:-1: +-%3LF: -NAN():0:-1: +-%*3LF: -NAN():0:-1: +-%3LF: NAN():1:4:nan: +-%*3LF: NAN():0:4: +-%3LF: NAN(09A_Zaz):1:4:nan: +-%*3LF: NAN(09A_Zaz):0:4: ++# BZ30647 %3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: -NAN():0:-1: ++# BZ30647 %*3LF: -NAN():0:-1: ++# BZ30647 %3LF: NAN():1:4:nan: ++# BZ30647 %*3LF: NAN():0:4: ++# BZ30647 %3LF: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LF: NAN(09A_Zaz):0:4: + %3LF: 0:1:2:0x0: + %*3LF: 0:0:2: + %3LF: 0.0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*3LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: + %3LF: INFINITY:1:4:inf: + %*3LF: INFINITY:0:4: +-%3LF: +NAN():0:-1: +-%*3LF: +NAN():0:-1: +-%3LF: +NAN(09A_Zaz):0:-1: +-%*3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: +NAN():0:-1: ++# BZ30647 %*3LF: +NAN():0:-1: ++# BZ30647 %3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: +NAN(09A_Zaz):0:-1: + %3LF: +0:1:3:0x0: + %*3LF: +0:0:3: + %3LF: +0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*5000LF: -0.0:0:5: + %5000LF: -0:1:3:-0x0: + %*5000LF: -0:0:3: +-%5000LF: -NAN(09A_Zaz):1:14:-nan: +-%*5000LF: -NAN(09A_Zaz):0:14: +-%5000LF: -NAN():1:7:-nan: +-%*5000LF: -NAN():0:7: +-%5000LF: NAN():1:6:nan: +-%*5000LF: NAN():0:6: +-%5000LF: NAN(09A_Zaz):1:13:nan: +-%*5000LF: NAN(09A_Zaz):0:13: ++# BZ30647 %5000LF: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*5000LF: -NAN(09A_Zaz):0:14: ++# BZ30647 %5000LF: -NAN():1:7:-nan: ++# BZ30647 %*5000LF: -NAN():0:7: ++# BZ30647 %5000LF: NAN():1:6:nan: ++# BZ30647 %*5000LF: NAN():0:6: ++# BZ30647 %5000LF: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*5000LF: NAN(09A_Zaz):0:13: + %5000LF: 0:1:2:0x0: + %*5000LF: 0:0:2: + %5000LF: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*5000LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: + %5000LF: INFINITY:1:9:inf: + %*5000LF: INFINITY:0:9: +-%5000LF: +NAN():1:7:nan: +-%*5000LF: +NAN():0:7: +-%5000LF: +NAN(09A_Zaz):1:14:nan: +-%*5000LF: +NAN(09A_Zaz):0:14: ++# BZ30647 %5000LF: +NAN():1:7:nan: ++# BZ30647 %*5000LF: +NAN():0:7: ++# BZ30647 %5000LF: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*5000LF: +NAN(09A_Zaz):0:14: + %5000LF: +0:1:3:0x0: + %*5000LF: +0:0:3: + %5000LF: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input +index af43cfe2cde3b19a..ff15feec046d76da 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input +@@ -16,14 +16,14 @@ + %*Lg:-0x0p+0:0:7: + %Lg:-0x0p0:1:6:-0x0: + %*Lg:-0x0p0:0:6: +-%Lg:-nan(09A_Zaz):1:13:-nan: +-%*Lg:-nan(09A_Zaz):0:13: +-%Lg:-nan():1:6:-nan: +-%*Lg:-nan():0:6: +-%Lg:nan():1:5:nan: +-%*Lg:nan():0:5: +-%Lg:nan(09A_Zaz):1:12:nan: +-%*Lg:nan(09A_Zaz):0:12: ++# BZ30647 %Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %Lg:-nan():1:6:-nan: ++# BZ30647 %*Lg:-nan():0:6: ++# BZ30647 %Lg:nan():1:5:nan: ++# BZ30647 %*Lg:nan():0:5: ++# BZ30647 %Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lg:nan(09A_Zaz):0:12: + %Lg:0x0p0:1:5:0x0: + %*Lg:0x0p0:0:5: + %Lg:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*Lg:0xf.fffffffffffffffp+16380:0:26: + %Lg:infinity:1:8:inf: + %*Lg:infinity:0:8: +-%Lg:+nan():1:6:nan: +-%*Lg:+nan():0:6: +-%Lg:+nan(09A_Zaz):1:13:nan: +-%*Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %Lg:+nan():1:6:nan: ++# BZ30647 %*Lg:+nan():0:6: ++# BZ30647 %Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lg:+nan(09A_Zaz):0:13: + %Lg:+0x0p0:1:6:0x0: + %*Lg:+0x0p0:0:6: + %Lg:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1Lg:-0x0p+0:0:-1: + %1Lg:-0x0p0:0:-1: + %*1Lg:-0x0p0:0:-1: +-%1Lg:-nan(09A_Zaz):0:-1: +-%*1Lg:-nan(09A_Zaz):0:-1: +-%1Lg:-nan():0:-1: +-%*1Lg:-nan():0:-1: +-%1Lg:nan():0:-1: +-%*1Lg:nan():0:-1: +-%1Lg:nan(09A_Zaz):0:-1: +-%*1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan():0:-1: ++# BZ30647 %*1Lg:-nan():0:-1: ++# BZ30647 %1Lg:nan():0:-1: ++# BZ30647 %*1Lg:nan():0:-1: ++# BZ30647 %1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:nan(09A_Zaz):0:-1: + %1Lg:0x0p0:1:1:0x0: + %*1Lg:0x0p0:0:1: + %1Lg:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lg:0xf.fffffffffffffffp+16380:0:1: + %1Lg:infinity:0:-1: + %*1Lg:infinity:0:-1: +-%1Lg:+nan():0:-1: +-%*1Lg:+nan():0:-1: +-%1Lg:+nan(09A_Zaz):0:-1: +-%*1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:+nan():0:-1: ++# BZ30647 %*1Lg:+nan():0:-1: ++# BZ30647 %1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:+nan(09A_Zaz):0:-1: + %1Lg:+0x0p0:0:-1: + %*1Lg:+0x0p0:0:-1: + %1Lg:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lg:-0x0p+0:0:2: + %2Lg:-0x0p0:1:2:-0x0: + %*2Lg:-0x0p0:0:2: +-%2Lg:-nan(09A_Zaz):0:-1: +-%*2Lg:-nan(09A_Zaz):0:-1: +-%2Lg:-nan():0:-1: +-%*2Lg:-nan():0:-1: +-%2Lg:nan():0:-1: +-%*2Lg:nan():0:-1: +-%2Lg:nan(09A_Zaz):0:-1: +-%*2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan():0:-1: ++# BZ30647 %*2Lg:-nan():0:-1: ++# BZ30647 %2Lg:nan():0:-1: ++# BZ30647 %*2Lg:nan():0:-1: ++# BZ30647 %2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:nan(09A_Zaz):0:-1: + # BZ12701 %2Lg:0x0p0:0:-1: + # BZ12701 %*2Lg:0x0p0:0:-1: + # BZ12701 %2Lg:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2Lg:0xf.fffffffffffffffp+16380:0:-1: + %2Lg:infinity:0:-1: + %*2Lg:infinity:0:-1: +-%2Lg:+nan():0:-1: +-%*2Lg:+nan():0:-1: +-%2Lg:+nan(09A_Zaz):0:-1: +-%*2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:+nan():0:-1: ++# BZ30647 %*2Lg:+nan():0:-1: ++# BZ30647 %2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:+nan(09A_Zaz):0:-1: + %2Lg:+0x0p0:1:2:0x0: + %*2Lg:+0x0p0:0:2: + %2Lg:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Lg:-0x0p+0:0:-1: + # BZ12701 %3Lg:-0x0p0:0:-1: + # BZ12701 %*3Lg:-0x0p0:0:-1: +-%3Lg:-nan(09A_Zaz):0:-1: +-%*3Lg:-nan(09A_Zaz):0:-1: +-%3Lg:-nan():0:-1: +-%*3Lg:-nan():0:-1: +-%3Lg:nan():1:3:nan: +-%*3Lg:nan():0:3: +-%3Lg:nan(09A_Zaz):1:3:nan: +-%*3Lg:nan(09A_Zaz):0:3: ++# BZ30647 %3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:-nan():0:-1: ++# BZ30647 %*3Lg:-nan():0:-1: ++# BZ30647 %3Lg:nan():1:3:nan: ++# BZ30647 %*3Lg:nan():0:3: ++# BZ30647 %3Lg:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lg:nan(09A_Zaz):0:3: + %3Lg:0x0p0:1:3:0x0: + %*3Lg:0x0p0:0:3: + %3Lg:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lg:0xf.fffffffffffffffp+16380:0:3: + %3Lg:infinity:1:3:inf: + %*3Lg:infinity:0:3: +-%3Lg:+nan():0:-1: +-%*3Lg:+nan():0:-1: +-%3Lg:+nan(09A_Zaz):0:-1: +-%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:+nan():0:-1: ++# BZ30647 %*3Lg:+nan():0:-1: ++# BZ30647 %3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %3Lg:+0x0p0:0:-1: + # BZ12701 %*3Lg:+0x0p0:0:-1: + # BZ12701 %3Lg:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4Lg:-0x0p+0:0:4: + %4Lg:-0x0p0:1:4:-0x0: + %*4Lg:-0x0p0:0:4: +-%4Lg:-nan(09A_Zaz):1:4:-nan: +-%*4Lg:-nan(09A_Zaz):0:4: +-%4Lg:-nan():1:4:-nan: +-%*4Lg:-nan():0:4: +-%4Lg:nan():0:-1: +-%*4Lg:nan():0:-1: +-%4Lg:nan(09A_Zaz):0:-1: +-%*4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %4Lg:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Lg:-nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:-nan():1:4:-nan: ++# BZ30647 %*4Lg:-nan():0:4: ++# BZ30647 %4Lg:nan():0:-1: ++# BZ30647 %*4Lg:nan():0:-1: ++# BZ30647 %4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Lg:nan(09A_Zaz):0:-1: + # BZ12701 %4Lg:0x0p0:0:-1: + # BZ12701 %*4Lg:0x0p0:0:-1: + # BZ12701 %4Lg:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4Lg:0xf.fffffffffffffffp+16380:0:4: + %4Lg:infinity:0:-1: + %*4Lg:infinity:0:-1: +-%4Lg:+nan():1:4:nan: +-%*4Lg:+nan():0:4: +-%4Lg:+nan(09A_Zaz):1:4:nan: +-%*4Lg:+nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:+nan():1:4:nan: ++# BZ30647 %*4Lg:+nan():0:4: ++# BZ30647 %4Lg:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Lg:+nan(09A_Zaz):0:4: + %4Lg:+0x0p0:1:4:0x0: + %*4Lg:+0x0p0:0:4: + %4Lg:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5Lg:-0x0p+0:0:-1: + # BZ12701 %5Lg:-0x0p0:0:-1: + # BZ12701 %*5Lg:-0x0p0:0:-1: +-%5Lg:-nan(09A_Zaz):0:-1: +-%*5Lg:-nan(09A_Zaz):0:-1: +-%5Lg:-nan():0:-1: +-%*5Lg:-nan():0:-1: +-%5Lg:nan():1:5:nan: +-%*5Lg:nan():0:5: +-%5Lg:nan(09A_Zaz):0:-1: +-%*5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan():0:-1: ++# BZ30647 %*5Lg:-nan():0:-1: ++# BZ30647 %5Lg:nan():1:5:nan: ++# BZ30647 %*5Lg:nan():0:5: ++# BZ30647 %5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:nan(09A_Zaz):0:-1: + %5Lg:0x0p0:1:5:0x0: + %*5Lg:0x0p0:0:5: + # BZ12701 %5Lg:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5Lg:0xf.fffffffffffffffp+16380:0:5: + %5Lg:infinity:0:-1: + %*5Lg:infinity:0:-1: +-%5Lg:+nan():0:-1: +-%*5Lg:+nan():0:-1: +-%5Lg:+nan(09A_Zaz):0:-1: +-%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:+nan():0:-1: ++# BZ30647 %*5Lg:+nan():0:-1: ++# BZ30647 %5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %5Lg:+0x0p0:0:-1: + # BZ12701 %*5Lg:+0x0p0:0:-1: + # BZ12701 %5Lg:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6Lg:-0x0p+0:0:-1: + %6Lg:-0x0p0:1:6:-0x0: + %*6Lg:-0x0p0:0:6: +-%6Lg:-nan(09A_Zaz):0:-1: +-%*6Lg:-nan(09A_Zaz):0:-1: +-%6Lg:-nan():1:6:-nan: +-%*6Lg:-nan():0:6: +-%6Lg:nan():1:5:nan: +-%*6Lg:nan():0:5: +-%6Lg:nan(09A_Zaz):0:-1: +-%*6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan():1:6:-nan: ++# BZ30647 %*6Lg:-nan():0:6: ++# BZ30647 %6Lg:nan():1:5:nan: ++# BZ30647 %*6Lg:nan():0:5: ++# BZ30647 %6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:nan(09A_Zaz):0:-1: + %6Lg:0x0p0:1:5:0x0: + %*6Lg:0x0p0:0:5: + %6Lg:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6Lg:0xf.fffffffffffffffp+16380:0:6: + %6Lg:infinity:0:-1: + %*6Lg:infinity:0:-1: +-%6Lg:+nan():1:6:nan: +-%*6Lg:+nan():0:6: +-%6Lg:+nan(09A_Zaz):0:-1: +-%*6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:+nan():1:6:nan: ++# BZ30647 %*6Lg:+nan():0:6: ++# BZ30647 %6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:+nan(09A_Zaz):0:-1: + %6Lg:+0x0p0:1:6:0x0: + %*6Lg:+0x0p0:0:6: + # BZ12701 %6Lg:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*22Lg:-0x0p+0:0:7: + %22Lg:-0x0p0:1:6:-0x0: + %*22Lg:-0x0p0:0:6: +-%22Lg:-nan(09A_Zaz):1:13:-nan: +-%*22Lg:-nan(09A_Zaz):0:13: +-%22Lg:-nan():1:6:-nan: +-%*22Lg:-nan():0:6: +-%22Lg:nan():1:5:nan: +-%*22Lg:nan():0:5: +-%22Lg:nan(09A_Zaz):1:12:nan: +-%*22Lg:nan(09A_Zaz):0:12: ++# BZ30647 %22Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*22Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %22Lg:-nan():1:6:-nan: ++# BZ30647 %*22Lg:-nan():0:6: ++# BZ30647 %22Lg:nan():1:5:nan: ++# BZ30647 %*22Lg:nan():0:5: ++# BZ30647 %22Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*22Lg:nan(09A_Zaz):0:12: + %22Lg:0x0p0:1:5:0x0: + %*22Lg:0x0p0:0:5: + %22Lg:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*22Lg:0xf.fffffffffffffffp+16380:0:22: + %22Lg:infinity:1:8:inf: + %*22Lg:infinity:0:8: +-%22Lg:+nan():1:6:nan: +-%*22Lg:+nan():0:6: +-%22Lg:+nan(09A_Zaz):1:13:nan: +-%*22Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %22Lg:+nan():1:6:nan: ++# BZ30647 %*22Lg:+nan():0:6: ++# BZ30647 %22Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*22Lg:+nan(09A_Zaz):0:13: + %22Lg:+0x0p0:1:6:0x0: + %*22Lg:+0x0p0:0:6: + %22Lg:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*37Lg:-0x0p+0:0:7: + %37Lg:-0x0p0:1:6:-0x0: + %*37Lg:-0x0p0:0:6: +-%37Lg:-nan(09A_Zaz):1:13:-nan: +-%*37Lg:-nan(09A_Zaz):0:13: +-%37Lg:-nan():1:6:-nan: +-%*37Lg:-nan():0:6: +-%37Lg:nan():1:5:nan: +-%*37Lg:nan():0:5: +-%37Lg:nan(09A_Zaz):1:12:nan: +-%*37Lg:nan(09A_Zaz):0:12: ++# BZ30647 %37Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*37Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %37Lg:-nan():1:6:-nan: ++# BZ30647 %*37Lg:-nan():0:6: ++# BZ30647 %37Lg:nan():1:5:nan: ++# BZ30647 %*37Lg:nan():0:5: ++# BZ30647 %37Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*37Lg:nan(09A_Zaz):0:12: + %37Lg:0x0p0:1:5:0x0: + %*37Lg:0x0p0:0:5: + %37Lg:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*37Lg:0xf.fffffffffffffffp+16380:0:26: + %37Lg:infinity:1:8:inf: + %*37Lg:infinity:0:8: +-%37Lg:+nan():1:6:nan: +-%*37Lg:+nan():0:6: +-%37Lg:+nan(09A_Zaz):1:13:nan: +-%*37Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %37Lg:+nan():1:6:nan: ++# BZ30647 %*37Lg:+nan():0:6: ++# BZ30647 %37Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*37Lg:+nan(09A_Zaz):0:13: + %37Lg:+0x0p0:1:6:0x0: + %*37Lg:+0x0p0:0:6: + %37Lg:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5Lg: -0x0p+0:0:-1: + # BZ12701 %5Lg: -0x0p0:0:-1: + # BZ12701 %*5Lg: -0x0p0:0:-1: +-%5Lg: -nan(09A_Zaz):0:-1: +-%*5Lg: -nan(09A_Zaz):0:-1: +-%5Lg: -nan():0:-1: +-%*5Lg: -nan():0:-1: +-%5Lg: nan():1:6:nan: +-%*5Lg: nan():0:6: +-%5Lg: nan(09A_Zaz):0:-1: +-%*5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan():0:-1: ++# BZ30647 %*5Lg: -nan():0:-1: ++# BZ30647 %5Lg: nan():1:6:nan: ++# BZ30647 %*5Lg: nan():0:6: ++# BZ30647 %5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: nan(09A_Zaz):0:-1: + %5Lg: 0x0p0:1:6:0x0: + %*5Lg: 0x0p0:0:6: + # BZ12701 %5Lg: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5Lg: 0xf.fffffffffffffffp+16380:0:6: + %5Lg: infinity:0:-1: + %*5Lg: infinity:0:-1: +-%5Lg: +nan():0:-1: +-%*5Lg: +nan():0:-1: +-%5Lg: +nan(09A_Zaz):0:-1: +-%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: +nan():0:-1: ++# BZ30647 %*5Lg: +nan():0:-1: ++# BZ30647 %5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: +nan(09A_Zaz):0:-1: + # BZ12701 %5Lg: +0x0p0:0:-1: + # BZ12701 %*5Lg: +0x0p0:0:-1: + # BZ12701 %5Lg: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*37Lg: -0x0p+0:0:8: + %37Lg: -0x0p0:1:7:-0x0: + %*37Lg: -0x0p0:0:7: +-%37Lg: -nan(09A_Zaz):1:14:-nan: +-%*37Lg: -nan(09A_Zaz):0:14: +-%37Lg: -nan():1:7:-nan: +-%*37Lg: -nan():0:7: +-%37Lg: nan():1:6:nan: +-%*37Lg: nan():0:6: +-%37Lg: nan(09A_Zaz):1:13:nan: +-%*37Lg: nan(09A_Zaz):0:13: ++# BZ30647 %37Lg: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*37Lg: -nan(09A_Zaz):0:14: ++# BZ30647 %37Lg: -nan():1:7:-nan: ++# BZ30647 %*37Lg: -nan():0:7: ++# BZ30647 %37Lg: nan():1:6:nan: ++# BZ30647 %*37Lg: nan():0:6: ++# BZ30647 %37Lg: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*37Lg: nan(09A_Zaz):0:13: + %37Lg: 0x0p0:1:6:0x0: + %*37Lg: 0x0p0:0:6: + %37Lg: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*37Lg: 0xf.fffffffffffffffp+16380:0:27: + %37Lg: infinity:1:9:inf: + %*37Lg: infinity:0:9: +-%37Lg: +nan():1:7:nan: +-%*37Lg: +nan():0:7: +-%37Lg: +nan(09A_Zaz):1:14:nan: +-%*37Lg: +nan(09A_Zaz):0:14: ++# BZ30647 %37Lg: +nan():1:7:nan: ++# BZ30647 %*37Lg: +nan():0:7: ++# BZ30647 %37Lg: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*37Lg: +nan(09A_Zaz):0:14: + %37Lg: +0x0p0:1:7:0x0: + %*37Lg: +0x0p0:0:7: + %37Lg: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input +index a274698774017b4b..2d9ee63d7fe7dc9f 100644 +--- a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input +@@ -16,14 +16,14 @@ + %*LG:-0X0P+0:0:7: + %LG:-0X0P0:1:6:-0x0: + %*LG:-0X0P0:0:6: +-%LG:-NAN(09A_Zaz):1:13:-nan: +-%*LG:-NAN(09A_Zaz):0:13: +-%LG:-NAN():1:6:-nan: +-%*LG:-NAN():0:6: +-%LG:NAN():1:5:nan: +-%*LG:NAN():0:5: +-%LG:NAN(09A_Zaz):1:12:nan: +-%*LG:NAN(09A_Zaz):0:12: ++# BZ30647 %LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %LG:-NAN():1:6:-nan: ++# BZ30647 %*LG:-NAN():0:6: ++# BZ30647 %LG:NAN():1:5:nan: ++# BZ30647 %*LG:NAN():0:5: ++# BZ30647 %LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LG:NAN(09A_Zaz):0:12: + %LG:0X0P0:1:5:0x0: + %*LG:0X0P0:0:5: + %LG:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LG:0XF.FFFFFFFFFFFFFFFP+16380:0:26: + %LG:INFINITY:1:8:inf: + %*LG:INFINITY:0:8: +-%LG:+NAN():1:6:nan: +-%*LG:+NAN():0:6: +-%LG:+NAN(09A_Zaz):1:13:nan: +-%*LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %LG:+NAN():1:6:nan: ++# BZ30647 %*LG:+NAN():0:6: ++# BZ30647 %LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LG:+NAN(09A_Zaz):0:13: + %LG:+0X0P0:1:6:0x0: + %*LG:+0X0P0:0:6: + %LG:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LG:-0X0P+0:0:-1: + %1LG:-0X0P0:0:-1: + %*1LG:-0X0P0:0:-1: +-%1LG:-NAN(09A_Zaz):0:-1: +-%*1LG:-NAN(09A_Zaz):0:-1: +-%1LG:-NAN():0:-1: +-%*1LG:-NAN():0:-1: +-%1LG:NAN():0:-1: +-%*1LG:NAN():0:-1: +-%1LG:NAN(09A_Zaz):0:-1: +-%*1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN():0:-1: ++# BZ30647 %*1LG:-NAN():0:-1: ++# BZ30647 %1LG:NAN():0:-1: ++# BZ30647 %*1LG:NAN():0:-1: ++# BZ30647 %1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:NAN(09A_Zaz):0:-1: + %1LG:0X0P0:1:1:0x0: + %*1LG:0X0P0:0:1: + %1LG:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LG:0XF.FFFFFFFFFFFFFFFP+16380:0:1: + %1LG:INFINITY:0:-1: + %*1LG:INFINITY:0:-1: +-%1LG:+NAN():0:-1: +-%*1LG:+NAN():0:-1: +-%1LG:+NAN(09A_Zaz):0:-1: +-%*1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:+NAN():0:-1: ++# BZ30647 %*1LG:+NAN():0:-1: ++# BZ30647 %1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:+NAN(09A_Zaz):0:-1: + %1LG:+0X0P0:0:-1: + %*1LG:+0X0P0:0:-1: + %1LG:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LG:-0X0P+0:0:2: + %2LG:-0X0P0:1:2:-0x0: + %*2LG:-0X0P0:0:2: +-%2LG:-NAN(09A_Zaz):0:-1: +-%*2LG:-NAN(09A_Zaz):0:-1: +-%2LG:-NAN():0:-1: +-%*2LG:-NAN():0:-1: +-%2LG:NAN():0:-1: +-%*2LG:NAN():0:-1: +-%2LG:NAN(09A_Zaz):0:-1: +-%*2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN():0:-1: ++# BZ30647 %*2LG:-NAN():0:-1: ++# BZ30647 %2LG:NAN():0:-1: ++# BZ30647 %*2LG:NAN():0:-1: ++# BZ30647 %2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:NAN(09A_Zaz):0:-1: + # BZ12701 %2LG:0X0P0:0:-1: + # BZ12701 %*2LG:0X0P0:0:-1: + # BZ12701 %2LG:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LG:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: + %2LG:INFINITY:0:-1: + %*2LG:INFINITY:0:-1: +-%2LG:+NAN():0:-1: +-%*2LG:+NAN():0:-1: +-%2LG:+NAN(09A_Zaz):0:-1: +-%*2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:+NAN():0:-1: ++# BZ30647 %*2LG:+NAN():0:-1: ++# BZ30647 %2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:+NAN(09A_Zaz):0:-1: + %2LG:+0X0P0:1:2:0x0: + %*2LG:+0X0P0:0:2: + %2LG:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LG:-0X0P+0:0:-1: + # BZ12701 %3LG:-0X0P0:0:-1: + # BZ12701 %*3LG:-0X0P0:0:-1: +-%3LG:-NAN(09A_Zaz):0:-1: +-%*3LG:-NAN(09A_Zaz):0:-1: +-%3LG:-NAN():0:-1: +-%*3LG:-NAN():0:-1: +-%3LG:NAN():1:3:nan: +-%*3LG:NAN():0:3: +-%3LG:NAN(09A_Zaz):1:3:nan: +-%*3LG:NAN(09A_Zaz):0:3: ++# BZ30647 %3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:-NAN():0:-1: ++# BZ30647 %*3LG:-NAN():0:-1: ++# BZ30647 %3LG:NAN():1:3:nan: ++# BZ30647 %*3LG:NAN():0:3: ++# BZ30647 %3LG:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LG:NAN(09A_Zaz):0:3: + %3LG:0X0P0:1:3:0x0: + %*3LG:0X0P0:0:3: + %3LG:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LG:0XF.FFFFFFFFFFFFFFFP+16380:0:3: + %3LG:INFINITY:1:3:inf: + %*3LG:INFINITY:0:3: +-%3LG:+NAN():0:-1: +-%*3LG:+NAN():0:-1: +-%3LG:+NAN(09A_Zaz):0:-1: +-%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:+NAN():0:-1: ++# BZ30647 %*3LG:+NAN():0:-1: ++# BZ30647 %3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LG:+0X0P0:0:-1: + # BZ12701 %*3LG:+0X0P0:0:-1: + # BZ12701 %3LG:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LG:-0X0P+0:0:4: + %4LG:-0X0P0:1:4:-0x0: + %*4LG:-0X0P0:0:4: +-%4LG:-NAN(09A_Zaz):1:4:-nan: +-%*4LG:-NAN(09A_Zaz):0:4: +-%4LG:-NAN():1:4:-nan: +-%*4LG:-NAN():0:4: +-%4LG:NAN():0:-1: +-%*4LG:NAN():0:-1: +-%4LG:NAN(09A_Zaz):0:-1: +-%*4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LG:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LG:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:-NAN():1:4:-nan: ++# BZ30647 %*4LG:-NAN():0:4: ++# BZ30647 %4LG:NAN():0:-1: ++# BZ30647 %*4LG:NAN():0:-1: ++# BZ30647 %4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LG:NAN(09A_Zaz):0:-1: + # BZ12701 %4LG:0X0P0:0:-1: + # BZ12701 %*4LG:0X0P0:0:-1: + # BZ12701 %4LG:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LG:0XF.FFFFFFFFFFFFFFFP+16380:0:4: + %4LG:INFINITY:0:-1: + %*4LG:INFINITY:0:-1: +-%4LG:+NAN():1:4:nan: +-%*4LG:+NAN():0:4: +-%4LG:+NAN(09A_Zaz):1:4:nan: +-%*4LG:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:+NAN():1:4:nan: ++# BZ30647 %*4LG:+NAN():0:4: ++# BZ30647 %4LG:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LG:+NAN(09A_Zaz):0:4: + %4LG:+0X0P0:1:4:0x0: + %*4LG:+0X0P0:0:4: + %4LG:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LG:-0X0P+0:0:-1: + # BZ12701 %5LG:-0X0P0:0:-1: + # BZ12701 %*5LG:-0X0P0:0:-1: +-%5LG:-NAN(09A_Zaz):0:-1: +-%*5LG:-NAN(09A_Zaz):0:-1: +-%5LG:-NAN():0:-1: +-%*5LG:-NAN():0:-1: +-%5LG:NAN():1:5:nan: +-%*5LG:NAN():0:5: +-%5LG:NAN(09A_Zaz):0:-1: +-%*5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN():0:-1: ++# BZ30647 %*5LG:-NAN():0:-1: ++# BZ30647 %5LG:NAN():1:5:nan: ++# BZ30647 %*5LG:NAN():0:5: ++# BZ30647 %5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:NAN(09A_Zaz):0:-1: + %5LG:0X0P0:1:5:0x0: + %*5LG:0X0P0:0:5: + # BZ12701 %5LG:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LG:0XF.FFFFFFFFFFFFFFFP+16380:0:5: + %5LG:INFINITY:0:-1: + %*5LG:INFINITY:0:-1: +-%5LG:+NAN():0:-1: +-%*5LG:+NAN():0:-1: +-%5LG:+NAN(09A_Zaz):0:-1: +-%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:+NAN():0:-1: ++# BZ30647 %*5LG:+NAN():0:-1: ++# BZ30647 %5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LG:+0X0P0:0:-1: + # BZ12701 %*5LG:+0X0P0:0:-1: + # BZ12701 %5LG:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LG:-0X0P+0:0:-1: + %6LG:-0X0P0:1:6:-0x0: + %*6LG:-0X0P0:0:6: +-%6LG:-NAN(09A_Zaz):0:-1: +-%*6LG:-NAN(09A_Zaz):0:-1: +-%6LG:-NAN():1:6:-nan: +-%*6LG:-NAN():0:6: +-%6LG:NAN():1:5:nan: +-%*6LG:NAN():0:5: +-%6LG:NAN(09A_Zaz):0:-1: +-%*6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN():1:6:-nan: ++# BZ30647 %*6LG:-NAN():0:6: ++# BZ30647 %6LG:NAN():1:5:nan: ++# BZ30647 %*6LG:NAN():0:5: ++# BZ30647 %6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:NAN(09A_Zaz):0:-1: + %6LG:0X0P0:1:5:0x0: + %*6LG:0X0P0:0:5: + %6LG:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LG:0XF.FFFFFFFFFFFFFFFP+16380:0:6: + %6LG:INFINITY:0:-1: + %*6LG:INFINITY:0:-1: +-%6LG:+NAN():1:6:nan: +-%*6LG:+NAN():0:6: +-%6LG:+NAN(09A_Zaz):0:-1: +-%*6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:+NAN():1:6:nan: ++# BZ30647 %*6LG:+NAN():0:6: ++# BZ30647 %6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:+NAN(09A_Zaz):0:-1: + %6LG:+0X0P0:1:6:0x0: + %*6LG:+0X0P0:0:6: + # BZ12701 %6LG:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*22LG:-0X0P+0:0:7: + %22LG:-0X0P0:1:6:-0x0: + %*22LG:-0X0P0:0:6: +-%22LG:-NAN(09A_Zaz):1:13:-nan: +-%*22LG:-NAN(09A_Zaz):0:13: +-%22LG:-NAN():1:6:-nan: +-%*22LG:-NAN():0:6: +-%22LG:NAN():1:5:nan: +-%*22LG:NAN():0:5: +-%22LG:NAN(09A_Zaz):1:12:nan: +-%*22LG:NAN(09A_Zaz):0:12: ++# BZ30647 %22LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*22LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %22LG:-NAN():1:6:-nan: ++# BZ30647 %*22LG:-NAN():0:6: ++# BZ30647 %22LG:NAN():1:5:nan: ++# BZ30647 %*22LG:NAN():0:5: ++# BZ30647 %22LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*22LG:NAN(09A_Zaz):0:12: + %22LG:0X0P0:1:5:0x0: + %*22LG:0X0P0:0:5: + %22LG:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*22LG:0XF.FFFFFFFFFFFFFFFP+16380:0:22: + %22LG:INFINITY:1:8:inf: + %*22LG:INFINITY:0:8: +-%22LG:+NAN():1:6:nan: +-%*22LG:+NAN():0:6: +-%22LG:+NAN(09A_Zaz):1:13:nan: +-%*22LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %22LG:+NAN():1:6:nan: ++# BZ30647 %*22LG:+NAN():0:6: ++# BZ30647 %22LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*22LG:+NAN(09A_Zaz):0:13: + %22LG:+0X0P0:1:6:0x0: + %*22LG:+0X0P0:0:6: + %22LG:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*37LG:-0X0P+0:0:7: + %37LG:-0X0P0:1:6:-0x0: + %*37LG:-0X0P0:0:6: +-%37LG:-NAN(09A_Zaz):1:13:-nan: +-%*37LG:-NAN(09A_Zaz):0:13: +-%37LG:-NAN():1:6:-nan: +-%*37LG:-NAN():0:6: +-%37LG:NAN():1:5:nan: +-%*37LG:NAN():0:5: +-%37LG:NAN(09A_Zaz):1:12:nan: +-%*37LG:NAN(09A_Zaz):0:12: ++# BZ30647 %37LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*37LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %37LG:-NAN():1:6:-nan: ++# BZ30647 %*37LG:-NAN():0:6: ++# BZ30647 %37LG:NAN():1:5:nan: ++# BZ30647 %*37LG:NAN():0:5: ++# BZ30647 %37LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*37LG:NAN(09A_Zaz):0:12: + %37LG:0X0P0:1:5:0x0: + %*37LG:0X0P0:0:5: + %37LG:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*37LG:0XF.FFFFFFFFFFFFFFFP+16380:0:26: + %37LG:INFINITY:1:8:inf: + %*37LG:INFINITY:0:8: +-%37LG:+NAN():1:6:nan: +-%*37LG:+NAN():0:6: +-%37LG:+NAN(09A_Zaz):1:13:nan: +-%*37LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %37LG:+NAN():1:6:nan: ++# BZ30647 %*37LG:+NAN():0:6: ++# BZ30647 %37LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*37LG:+NAN(09A_Zaz):0:13: + %37LG:+0X0P0:1:6:0x0: + %*37LG:+0X0P0:0:6: + %37LG:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LG: -0X0P+0:0:-1: + # BZ12701 %5LG: -0X0P0:0:-1: + # BZ12701 %*5LG: -0X0P0:0:-1: +-%5LG: -NAN(09A_Zaz):0:-1: +-%*5LG: -NAN(09A_Zaz):0:-1: +-%5LG: -NAN():0:-1: +-%*5LG: -NAN():0:-1: +-%5LG: NAN():1:6:nan: +-%*5LG: NAN():0:6: +-%5LG: NAN(09A_Zaz):0:-1: +-%*5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN():0:-1: ++# BZ30647 %*5LG: -NAN():0:-1: ++# BZ30647 %5LG: NAN():1:6:nan: ++# BZ30647 %*5LG: NAN():0:6: ++# BZ30647 %5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: NAN(09A_Zaz):0:-1: + %5LG: 0X0P0:1:6:0x0: + %*5LG: 0X0P0:0:6: + # BZ12701 %5LG: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LG: 0XF.FFFFFFFFFFFFFFFP+16380:0:6: + %5LG: INFINITY:0:-1: + %*5LG: INFINITY:0:-1: +-%5LG: +NAN():0:-1: +-%*5LG: +NAN():0:-1: +-%5LG: +NAN(09A_Zaz):0:-1: +-%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: +NAN():0:-1: ++# BZ30647 %*5LG: +NAN():0:-1: ++# BZ30647 %5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LG: +0X0P0:0:-1: + # BZ12701 %*5LG: +0X0P0:0:-1: + # BZ12701 %5LG: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*37LG: -0X0P+0:0:8: + %37LG: -0X0P0:1:7:-0x0: + %*37LG: -0X0P0:0:7: +-%37LG: -NAN(09A_Zaz):1:14:-nan: +-%*37LG: -NAN(09A_Zaz):0:14: +-%37LG: -NAN():1:7:-nan: +-%*37LG: -NAN():0:7: +-%37LG: NAN():1:6:nan: +-%*37LG: NAN():0:6: +-%37LG: NAN(09A_Zaz):1:13:nan: +-%*37LG: NAN(09A_Zaz):0:13: ++# BZ30647 %37LG: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*37LG: -NAN(09A_Zaz):0:14: ++# BZ30647 %37LG: -NAN():1:7:-nan: ++# BZ30647 %*37LG: -NAN():0:7: ++# BZ30647 %37LG: NAN():1:6:nan: ++# BZ30647 %*37LG: NAN():0:6: ++# BZ30647 %37LG: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*37LG: NAN(09A_Zaz):0:13: + %37LG: 0X0P0:1:6:0x0: + %*37LG: 0X0P0:0:6: + %37LG: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*37LG: 0XF.FFFFFFFFFFFFFFFP+16380:0:27: + %37LG: INFINITY:1:9:inf: + %*37LG: INFINITY:0:9: +-%37LG: +NAN():1:7:nan: +-%*37LG: +NAN():0:7: +-%37LG: +NAN(09A_Zaz):1:14:nan: +-%*37LG: +NAN(09A_Zaz):0:14: ++# BZ30647 %37LG: +NAN():1:7:nan: ++# BZ30647 %*37LG: +NAN():0:7: ++# BZ30647 %37LG: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*37LG: +NAN(09A_Zaz):0:14: + %37LG: +0X0P0:1:7:0x0: + %*37LG: +0X0P0:0:7: + %37LG: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input +index 42a1ffa84a834f8d..9f3ad94d450a75f7 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input +@@ -16,14 +16,14 @@ + %*La:-0x0p+0:0:7: + %La:-0x0p0:1:6:-0x0: + %*La:-0x0p0:0:6: +-%La:-nan(09A_Zaz):1:13:-nan: +-%*La:-nan(09A_Zaz):0:13: +-%La:-nan():1:6:-nan: +-%*La:-nan():0:6: +-%La:nan():1:5:nan: +-%*La:nan():0:5: +-%La:nan(09A_Zaz):1:12:nan: +-%*La:nan(09A_Zaz):0:12: ++# BZ30647 %La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*La:-nan(09A_Zaz):0:13: ++# BZ30647 %La:-nan():1:6:-nan: ++# BZ30647 %*La:-nan():0:6: ++# BZ30647 %La:nan():1:5:nan: ++# BZ30647 %*La:nan():0:5: ++# BZ30647 %La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*La:nan(09A_Zaz):0:12: + %La:0x0p0:1:5:0x0: + %*La:0x0p0:0:5: + %La:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*La:0xf.ffffffffffff8p+1020:0:23: + %La:infinity:1:8:inf: + %*La:infinity:0:8: +-%La:+nan():1:6:nan: +-%*La:+nan():0:6: +-%La:+nan(09A_Zaz):1:13:nan: +-%*La:+nan(09A_Zaz):0:13: ++# BZ30647 %La:+nan():1:6:nan: ++# BZ30647 %*La:+nan():0:6: ++# BZ30647 %La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*La:+nan(09A_Zaz):0:13: + %La:+0x0p0:1:6:0x0: + %*La:+0x0p0:0:6: + %La:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1La:-0x0p+0:0:-1: + %1La:-0x0p0:0:-1: + %*1La:-0x0p0:0:-1: +-%1La:-nan(09A_Zaz):0:-1: +-%*1La:-nan(09A_Zaz):0:-1: +-%1La:-nan():0:-1: +-%*1La:-nan():0:-1: +-%1La:nan():0:-1: +-%*1La:nan():0:-1: +-%1La:nan(09A_Zaz):0:-1: +-%*1La:nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:-nan(09A_Zaz):0:-1: ++# BZ30647 %1La:-nan():0:-1: ++# BZ30647 %*1La:-nan():0:-1: ++# BZ30647 %1La:nan():0:-1: ++# BZ30647 %*1La:nan():0:-1: ++# BZ30647 %1La:nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:nan(09A_Zaz):0:-1: + %1La:0x0p0:1:1:0x0: + %*1La:0x0p0:0:1: + %1La:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1La:0xf.ffffffffffff8p+1020:0:1: + %1La:infinity:0:-1: + %*1La:infinity:0:-1: +-%1La:+nan():0:-1: +-%*1La:+nan():0:-1: +-%1La:+nan(09A_Zaz):0:-1: +-%*1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %1La:+nan():0:-1: ++# BZ30647 %*1La:+nan():0:-1: ++# BZ30647 %1La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1La:+nan(09A_Zaz):0:-1: + %1La:+0x0p0:0:-1: + %*1La:+0x0p0:0:-1: + %1La:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2La:-0x0p+0:0:2: + %2La:-0x0p0:1:2:-0x0: + %*2La:-0x0p0:0:2: +-%2La:-nan(09A_Zaz):0:-1: +-%*2La:-nan(09A_Zaz):0:-1: +-%2La:-nan():0:-1: +-%*2La:-nan():0:-1: +-%2La:nan():0:-1: +-%*2La:nan():0:-1: +-%2La:nan(09A_Zaz):0:-1: +-%*2La:nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:-nan(09A_Zaz):0:-1: ++# BZ30647 %2La:-nan():0:-1: ++# BZ30647 %*2La:-nan():0:-1: ++# BZ30647 %2La:nan():0:-1: ++# BZ30647 %*2La:nan():0:-1: ++# BZ30647 %2La:nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:nan(09A_Zaz):0:-1: + # BZ12701 %2La:0x0p0:0:-1: + # BZ12701 %*2La:0x0p0:0:-1: + # BZ12701 %2La:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2La:0xf.ffffffffffff8p+1020:0:-1: + %2La:infinity:0:-1: + %*2La:infinity:0:-1: +-%2La:+nan():0:-1: +-%*2La:+nan():0:-1: +-%2La:+nan(09A_Zaz):0:-1: +-%*2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %2La:+nan():0:-1: ++# BZ30647 %*2La:+nan():0:-1: ++# BZ30647 %2La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2La:+nan(09A_Zaz):0:-1: + %2La:+0x0p0:1:2:0x0: + %*2La:+0x0p0:0:2: + %2La:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3La:-0x0p+0:0:-1: + # BZ12701 %3La:-0x0p0:0:-1: + # BZ12701 %*3La:-0x0p0:0:-1: +-%3La:-nan(09A_Zaz):0:-1: +-%*3La:-nan(09A_Zaz):0:-1: +-%3La:-nan():0:-1: +-%*3La:-nan():0:-1: +-%3La:nan():1:3:nan: +-%*3La:nan():0:3: +-%3La:nan(09A_Zaz):1:3:nan: +-%*3La:nan(09A_Zaz):0:3: ++# BZ30647 %3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:-nan(09A_Zaz):0:-1: ++# BZ30647 %3La:-nan():0:-1: ++# BZ30647 %*3La:-nan():0:-1: ++# BZ30647 %3La:nan():1:3:nan: ++# BZ30647 %*3La:nan():0:3: ++# BZ30647 %3La:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3La:nan(09A_Zaz):0:3: + %3La:0x0p0:1:3:0x0: + %*3La:0x0p0:0:3: + %3La:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3La:0xf.ffffffffffff8p+1020:0:3: + %3La:infinity:1:3:inf: + %*3La:infinity:0:3: +-%3La:+nan():0:-1: +-%*3La:+nan():0:-1: +-%3La:+nan(09A_Zaz):0:-1: +-%*3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %3La:+nan():0:-1: ++# BZ30647 %*3La:+nan():0:-1: ++# BZ30647 %3La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3La:+nan(09A_Zaz):0:-1: + # BZ12701 %3La:+0x0p0:0:-1: + # BZ12701 %*3La:+0x0p0:0:-1: + # BZ12701 %3La:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4La:-0x0p+0:0:4: + %4La:-0x0p0:1:4:-0x0: + %*4La:-0x0p0:0:4: +-%4La:-nan(09A_Zaz):1:4:-nan: +-%*4La:-nan(09A_Zaz):0:4: +-%4La:-nan():1:4:-nan: +-%*4La:-nan():0:4: +-%4La:nan():0:-1: +-%*4La:nan():0:-1: +-%4La:nan(09A_Zaz):0:-1: +-%*4La:nan(09A_Zaz):0:-1: ++# BZ30647 %4La:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4La:-nan(09A_Zaz):0:4: ++# BZ30647 %4La:-nan():1:4:-nan: ++# BZ30647 %*4La:-nan():0:4: ++# BZ30647 %4La:nan():0:-1: ++# BZ30647 %*4La:nan():0:-1: ++# BZ30647 %4La:nan(09A_Zaz):0:-1: ++# BZ30647 %*4La:nan(09A_Zaz):0:-1: + # BZ12701 %4La:0x0p0:0:-1: + # BZ12701 %*4La:0x0p0:0:-1: + # BZ12701 %4La:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4La:0xf.ffffffffffff8p+1020:0:4: + %4La:infinity:0:-1: + %*4La:infinity:0:-1: +-%4La:+nan():1:4:nan: +-%*4La:+nan():0:4: +-%4La:+nan(09A_Zaz):1:4:nan: +-%*4La:+nan(09A_Zaz):0:4: ++# BZ30647 %4La:+nan():1:4:nan: ++# BZ30647 %*4La:+nan():0:4: ++# BZ30647 %4La:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4La:+nan(09A_Zaz):0:4: + %4La:+0x0p0:1:4:0x0: + %*4La:+0x0p0:0:4: + %4La:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5La:-0x0p+0:0:-1: + # BZ12701 %5La:-0x0p0:0:-1: + # BZ12701 %*5La:-0x0p0:0:-1: +-%5La:-nan(09A_Zaz):0:-1: +-%*5La:-nan(09A_Zaz):0:-1: +-%5La:-nan():0:-1: +-%*5La:-nan():0:-1: +-%5La:nan():1:5:nan: +-%*5La:nan():0:5: +-%5La:nan(09A_Zaz):0:-1: +-%*5La:nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:-nan(09A_Zaz):0:-1: ++# BZ30647 %5La:-nan():0:-1: ++# BZ30647 %*5La:-nan():0:-1: ++# BZ30647 %5La:nan():1:5:nan: ++# BZ30647 %*5La:nan():0:5: ++# BZ30647 %5La:nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:nan(09A_Zaz):0:-1: + %5La:0x0p0:1:5:0x0: + %*5La:0x0p0:0:5: + # BZ12701 %5La:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5La:0xf.ffffffffffff8p+1020:0:5: + %5La:infinity:0:-1: + %*5La:infinity:0:-1: +-%5La:+nan():0:-1: +-%*5La:+nan():0:-1: +-%5La:+nan(09A_Zaz):0:-1: +-%*5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %5La:+nan():0:-1: ++# BZ30647 %*5La:+nan():0:-1: ++# BZ30647 %5La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5La:+nan(09A_Zaz):0:-1: + # BZ12701 %5La:+0x0p0:0:-1: + # BZ12701 %*5La:+0x0p0:0:-1: + # BZ12701 %5La:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6La:-0x0p+0:0:-1: + %6La:-0x0p0:1:6:-0x0: + %*6La:-0x0p0:0:6: +-%6La:-nan(09A_Zaz):0:-1: +-%*6La:-nan(09A_Zaz):0:-1: +-%6La:-nan():1:6:-nan: +-%*6La:-nan():0:6: +-%6La:nan():1:5:nan: +-%*6La:nan():0:5: +-%6La:nan(09A_Zaz):0:-1: +-%*6La:nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:-nan(09A_Zaz):0:-1: ++# BZ30647 %6La:-nan():1:6:-nan: ++# BZ30647 %*6La:-nan():0:6: ++# BZ30647 %6La:nan():1:5:nan: ++# BZ30647 %*6La:nan():0:5: ++# BZ30647 %6La:nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:nan(09A_Zaz):0:-1: + %6La:0x0p0:1:5:0x0: + %*6La:0x0p0:0:5: + %6La:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6La:0xf.ffffffffffff8p+1020:0:6: + %6La:infinity:0:-1: + %*6La:infinity:0:-1: +-%6La:+nan():1:6:nan: +-%*6La:+nan():0:6: +-%6La:+nan(09A_Zaz):0:-1: +-%*6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %6La:+nan():1:6:nan: ++# BZ30647 %*6La:+nan():0:6: ++# BZ30647 %6La:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6La:+nan(09A_Zaz):0:-1: + %6La:+0x0p0:1:6:0x0: + %*6La:+0x0p0:0:6: + # BZ12701 %6La:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*20La:-0x0p+0:0:7: + %20La:-0x0p0:1:6:-0x0: + %*20La:-0x0p0:0:6: +-%20La:-nan(09A_Zaz):1:13:-nan: +-%*20La:-nan(09A_Zaz):0:13: +-%20La:-nan():1:6:-nan: +-%*20La:-nan():0:6: +-%20La:nan():1:5:nan: +-%*20La:nan():0:5: +-%20La:nan(09A_Zaz):1:12:nan: +-%*20La:nan(09A_Zaz):0:12: ++# BZ30647 %20La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*20La:-nan(09A_Zaz):0:13: ++# BZ30647 %20La:-nan():1:6:-nan: ++# BZ30647 %*20La:-nan():0:6: ++# BZ30647 %20La:nan():1:5:nan: ++# BZ30647 %*20La:nan():0:5: ++# BZ30647 %20La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*20La:nan(09A_Zaz):0:12: + %20La:0x0p0:1:5:0x0: + %*20La:0x0p0:0:5: + %20La:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20La:0xf.ffffffffffff8p+1020:0:20: + %20La:infinity:1:8:inf: + %*20La:infinity:0:8: +-%20La:+nan():1:6:nan: +-%*20La:+nan():0:6: +-%20La:+nan(09A_Zaz):1:13:nan: +-%*20La:+nan(09A_Zaz):0:13: ++# BZ30647 %20La:+nan():1:6:nan: ++# BZ30647 %*20La:+nan():0:6: ++# BZ30647 %20La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*20La:+nan(09A_Zaz):0:13: + %20La:+0x0p0:1:6:0x0: + %*20La:+0x0p0:0:6: + %20La:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32La:-0x0p+0:0:7: + %32La:-0x0p0:1:6:-0x0: + %*32La:-0x0p0:0:6: +-%32La:-nan(09A_Zaz):1:13:-nan: +-%*32La:-nan(09A_Zaz):0:13: +-%32La:-nan():1:6:-nan: +-%*32La:-nan():0:6: +-%32La:nan():1:5:nan: +-%*32La:nan():0:5: +-%32La:nan(09A_Zaz):1:12:nan: +-%*32La:nan(09A_Zaz):0:12: ++# BZ30647 %32La:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*32La:-nan(09A_Zaz):0:13: ++# BZ30647 %32La:-nan():1:6:-nan: ++# BZ30647 %*32La:-nan():0:6: ++# BZ30647 %32La:nan():1:5:nan: ++# BZ30647 %*32La:nan():0:5: ++# BZ30647 %32La:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*32La:nan(09A_Zaz):0:12: + %32La:0x0p0:1:5:0x0: + %*32La:0x0p0:0:5: + %32La:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32La:0xf.ffffffffffff8p+1020:0:23: + %32La:infinity:1:8:inf: + %*32La:infinity:0:8: +-%32La:+nan():1:6:nan: +-%*32La:+nan():0:6: +-%32La:+nan(09A_Zaz):1:13:nan: +-%*32La:+nan(09A_Zaz):0:13: ++# BZ30647 %32La:+nan():1:6:nan: ++# BZ30647 %*32La:+nan():0:6: ++# BZ30647 %32La:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32La:+nan(09A_Zaz):0:13: + %32La:+0x0p0:1:6:0x0: + %*32La:+0x0p0:0:6: + %32La:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5La: -0x0p+0:0:-1: + # BZ12701 %5La: -0x0p0:0:-1: + # BZ12701 %*5La: -0x0p0:0:-1: +-%5La: -nan(09A_Zaz):0:-1: +-%*5La: -nan(09A_Zaz):0:-1: +-%5La: -nan():0:-1: +-%*5La: -nan():0:-1: +-%5La: nan():1:6:nan: +-%*5La: nan():0:6: +-%5La: nan(09A_Zaz):0:-1: +-%*5La: nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: -nan(09A_Zaz):0:-1: ++# BZ30647 %5La: -nan():0:-1: ++# BZ30647 %*5La: -nan():0:-1: ++# BZ30647 %5La: nan():1:6:nan: ++# BZ30647 %*5La: nan():0:6: ++# BZ30647 %5La: nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: nan(09A_Zaz):0:-1: + %5La: 0x0p0:1:6:0x0: + %*5La: 0x0p0:0:6: + # BZ12701 %5La: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5La: 0xf.ffffffffffff8p+1020:0:6: + %5La: infinity:0:-1: + %*5La: infinity:0:-1: +-%5La: +nan():0:-1: +-%*5La: +nan():0:-1: +-%5La: +nan(09A_Zaz):0:-1: +-%*5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %5La: +nan():0:-1: ++# BZ30647 %*5La: +nan():0:-1: ++# BZ30647 %5La: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5La: +nan(09A_Zaz):0:-1: + # BZ12701 %5La: +0x0p0:0:-1: + # BZ12701 %*5La: +0x0p0:0:-1: + # BZ12701 %5La: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*32La: -0x0p+0:0:8: + %32La: -0x0p0:1:7:-0x0: + %*32La: -0x0p0:0:7: +-%32La: -nan(09A_Zaz):1:14:-nan: +-%*32La: -nan(09A_Zaz):0:14: +-%32La: -nan():1:7:-nan: +-%*32La: -nan():0:7: +-%32La: nan():1:6:nan: +-%*32La: nan():0:6: +-%32La: nan(09A_Zaz):1:13:nan: +-%*32La: nan(09A_Zaz):0:13: ++# BZ30647 %32La: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*32La: -nan(09A_Zaz):0:14: ++# BZ30647 %32La: -nan():1:7:-nan: ++# BZ30647 %*32La: -nan():0:7: ++# BZ30647 %32La: nan():1:6:nan: ++# BZ30647 %*32La: nan():0:6: ++# BZ30647 %32La: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32La: nan(09A_Zaz):0:13: + %32La: 0x0p0:1:6:0x0: + %*32La: 0x0p0:0:6: + %32La: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32La: 0xf.ffffffffffff8p+1020:0:24: + %32La: infinity:1:9:inf: + %*32La: infinity:0:9: +-%32La: +nan():1:7:nan: +-%*32La: +nan():0:7: +-%32La: +nan(09A_Zaz):1:14:nan: +-%*32La: +nan(09A_Zaz):0:14: ++# BZ30647 %32La: +nan():1:7:nan: ++# BZ30647 %*32La: +nan():0:7: ++# BZ30647 %32La: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*32La: +nan(09A_Zaz):0:14: + %32La: +0x0p0:1:7:0x0: + %*32La: +0x0p0:0:7: + %32La: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input +index 8a0e6005e3a86bc8..ea14b489e06234b3 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input +@@ -16,14 +16,14 @@ + %*LA:-0X0P+0:0:7: + %LA:-0X0P0:1:6:-0x0: + %*LA:-0X0P0:0:6: +-%LA:-NAN(09A_Zaz):1:13:-nan: +-%*LA:-NAN(09A_Zaz):0:13: +-%LA:-NAN():1:6:-nan: +-%*LA:-NAN():0:6: +-%LA:NAN():1:5:nan: +-%*LA:NAN():0:5: +-%LA:NAN(09A_Zaz):1:12:nan: +-%*LA:NAN(09A_Zaz):0:12: ++# BZ30647 %LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %LA:-NAN():1:6:-nan: ++# BZ30647 %*LA:-NAN():0:6: ++# BZ30647 %LA:NAN():1:5:nan: ++# BZ30647 %*LA:NAN():0:5: ++# BZ30647 %LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LA:NAN(09A_Zaz):0:12: + %LA:0X0P0:1:5:0x0: + %*LA:0X0P0:0:5: + %LA:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LA:0XF.FFFFFFFFFFFF8P+1020:0:23: + %LA:INFINITY:1:8:inf: + %*LA:INFINITY:0:8: +-%LA:+NAN():1:6:nan: +-%*LA:+NAN():0:6: +-%LA:+NAN(09A_Zaz):1:13:nan: +-%*LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %LA:+NAN():1:6:nan: ++# BZ30647 %*LA:+NAN():0:6: ++# BZ30647 %LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LA:+NAN(09A_Zaz):0:13: + %LA:+0X0P0:1:6:0x0: + %*LA:+0X0P0:0:6: + %LA:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LA:-0X0P+0:0:-1: + %1LA:-0X0P0:0:-1: + %*1LA:-0X0P0:0:-1: +-%1LA:-NAN(09A_Zaz):0:-1: +-%*1LA:-NAN(09A_Zaz):0:-1: +-%1LA:-NAN():0:-1: +-%*1LA:-NAN():0:-1: +-%1LA:NAN():0:-1: +-%*1LA:NAN():0:-1: +-%1LA:NAN(09A_Zaz):0:-1: +-%*1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:-NAN():0:-1: ++# BZ30647 %*1LA:-NAN():0:-1: ++# BZ30647 %1LA:NAN():0:-1: ++# BZ30647 %*1LA:NAN():0:-1: ++# BZ30647 %1LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:NAN(09A_Zaz):0:-1: + %1LA:0X0P0:1:1:0x0: + %*1LA:0X0P0:0:1: + %1LA:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LA:0XF.FFFFFFFFFFFF8P+1020:0:1: + %1LA:INFINITY:0:-1: + %*1LA:INFINITY:0:-1: +-%1LA:+NAN():0:-1: +-%*1LA:+NAN():0:-1: +-%1LA:+NAN(09A_Zaz):0:-1: +-%*1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LA:+NAN():0:-1: ++# BZ30647 %*1LA:+NAN():0:-1: ++# BZ30647 %1LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LA:+NAN(09A_Zaz):0:-1: + %1LA:+0X0P0:0:-1: + %*1LA:+0X0P0:0:-1: + %1LA:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LA:-0X0P+0:0:2: + %2LA:-0X0P0:1:2:-0x0: + %*2LA:-0X0P0:0:2: +-%2LA:-NAN(09A_Zaz):0:-1: +-%*2LA:-NAN(09A_Zaz):0:-1: +-%2LA:-NAN():0:-1: +-%*2LA:-NAN():0:-1: +-%2LA:NAN():0:-1: +-%*2LA:NAN():0:-1: +-%2LA:NAN(09A_Zaz):0:-1: +-%*2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:-NAN():0:-1: ++# BZ30647 %*2LA:-NAN():0:-1: ++# BZ30647 %2LA:NAN():0:-1: ++# BZ30647 %*2LA:NAN():0:-1: ++# BZ30647 %2LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:NAN(09A_Zaz):0:-1: + # BZ12701 %2LA:0X0P0:0:-1: + # BZ12701 %*2LA:0X0P0:0:-1: + # BZ12701 %2LA:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LA:0XF.FFFFFFFFFFFF8P+1020:0:-1: + %2LA:INFINITY:0:-1: + %*2LA:INFINITY:0:-1: +-%2LA:+NAN():0:-1: +-%*2LA:+NAN():0:-1: +-%2LA:+NAN(09A_Zaz):0:-1: +-%*2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LA:+NAN():0:-1: ++# BZ30647 %*2LA:+NAN():0:-1: ++# BZ30647 %2LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LA:+NAN(09A_Zaz):0:-1: + %2LA:+0X0P0:1:2:0x0: + %*2LA:+0X0P0:0:2: + %2LA:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LA:-0X0P+0:0:-1: + # BZ12701 %3LA:-0X0P0:0:-1: + # BZ12701 %*3LA:-0X0P0:0:-1: +-%3LA:-NAN(09A_Zaz):0:-1: +-%*3LA:-NAN(09A_Zaz):0:-1: +-%3LA:-NAN():0:-1: +-%*3LA:-NAN():0:-1: +-%3LA:NAN():1:3:nan: +-%*3LA:NAN():0:3: +-%3LA:NAN(09A_Zaz):1:3:nan: +-%*3LA:NAN(09A_Zaz):0:3: ++# BZ30647 %3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:-NAN():0:-1: ++# BZ30647 %*3LA:-NAN():0:-1: ++# BZ30647 %3LA:NAN():1:3:nan: ++# BZ30647 %*3LA:NAN():0:3: ++# BZ30647 %3LA:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LA:NAN(09A_Zaz):0:3: + %3LA:0X0P0:1:3:0x0: + %*3LA:0X0P0:0:3: + %3LA:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LA:0XF.FFFFFFFFFFFF8P+1020:0:3: + %3LA:INFINITY:1:3:inf: + %*3LA:INFINITY:0:3: +-%3LA:+NAN():0:-1: +-%*3LA:+NAN():0:-1: +-%3LA:+NAN(09A_Zaz):0:-1: +-%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LA:+NAN():0:-1: ++# BZ30647 %*3LA:+NAN():0:-1: ++# BZ30647 %3LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LA:+0X0P0:0:-1: + # BZ12701 %*3LA:+0X0P0:0:-1: + # BZ12701 %3LA:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LA:-0X0P+0:0:4: + %4LA:-0X0P0:1:4:-0x0: + %*4LA:-0X0P0:0:4: +-%4LA:-NAN(09A_Zaz):1:4:-nan: +-%*4LA:-NAN(09A_Zaz):0:4: +-%4LA:-NAN():1:4:-nan: +-%*4LA:-NAN():0:4: +-%4LA:NAN():0:-1: +-%*4LA:NAN():0:-1: +-%4LA:NAN(09A_Zaz):0:-1: +-%*4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LA:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LA:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:-NAN():1:4:-nan: ++# BZ30647 %*4LA:-NAN():0:4: ++# BZ30647 %4LA:NAN():0:-1: ++# BZ30647 %*4LA:NAN():0:-1: ++# BZ30647 %4LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LA:NAN(09A_Zaz):0:-1: + # BZ12701 %4LA:0X0P0:0:-1: + # BZ12701 %*4LA:0X0P0:0:-1: + # BZ12701 %4LA:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LA:0XF.FFFFFFFFFFFF8P+1020:0:4: + %4LA:INFINITY:0:-1: + %*4LA:INFINITY:0:-1: +-%4LA:+NAN():1:4:nan: +-%*4LA:+NAN():0:4: +-%4LA:+NAN(09A_Zaz):1:4:nan: +-%*4LA:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LA:+NAN():1:4:nan: ++# BZ30647 %*4LA:+NAN():0:4: ++# BZ30647 %4LA:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LA:+NAN(09A_Zaz):0:4: + %4LA:+0X0P0:1:4:0x0: + %*4LA:+0X0P0:0:4: + %4LA:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LA:-0X0P+0:0:-1: + # BZ12701 %5LA:-0X0P0:0:-1: + # BZ12701 %*5LA:-0X0P0:0:-1: +-%5LA:-NAN(09A_Zaz):0:-1: +-%*5LA:-NAN(09A_Zaz):0:-1: +-%5LA:-NAN():0:-1: +-%*5LA:-NAN():0:-1: +-%5LA:NAN():1:5:nan: +-%*5LA:NAN():0:5: +-%5LA:NAN(09A_Zaz):0:-1: +-%*5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:-NAN():0:-1: ++# BZ30647 %*5LA:-NAN():0:-1: ++# BZ30647 %5LA:NAN():1:5:nan: ++# BZ30647 %*5LA:NAN():0:5: ++# BZ30647 %5LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:NAN(09A_Zaz):0:-1: + %5LA:0X0P0:1:5:0x0: + %*5LA:0X0P0:0:5: + # BZ12701 %5LA:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LA:0XF.FFFFFFFFFFFF8P+1020:0:5: + %5LA:INFINITY:0:-1: + %*5LA:INFINITY:0:-1: +-%5LA:+NAN():0:-1: +-%*5LA:+NAN():0:-1: +-%5LA:+NAN(09A_Zaz):0:-1: +-%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA:+NAN():0:-1: ++# BZ30647 %*5LA:+NAN():0:-1: ++# BZ30647 %5LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LA:+0X0P0:0:-1: + # BZ12701 %*5LA:+0X0P0:0:-1: + # BZ12701 %5LA:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LA:-0X0P+0:0:-1: + %6LA:-0X0P0:1:6:-0x0: + %*6LA:-0X0P0:0:6: +-%6LA:-NAN(09A_Zaz):0:-1: +-%*6LA:-NAN(09A_Zaz):0:-1: +-%6LA:-NAN():1:6:-nan: +-%*6LA:-NAN():0:6: +-%6LA:NAN():1:5:nan: +-%*6LA:NAN():0:5: +-%6LA:NAN(09A_Zaz):0:-1: +-%*6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:-NAN():1:6:-nan: ++# BZ30647 %*6LA:-NAN():0:6: ++# BZ30647 %6LA:NAN():1:5:nan: ++# BZ30647 %*6LA:NAN():0:5: ++# BZ30647 %6LA:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:NAN(09A_Zaz):0:-1: + %6LA:0X0P0:1:5:0x0: + %*6LA:0X0P0:0:5: + %6LA:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LA:0XF.FFFFFFFFFFFF8P+1020:0:6: + %6LA:INFINITY:0:-1: + %*6LA:INFINITY:0:-1: +-%6LA:+NAN():1:6:nan: +-%*6LA:+NAN():0:6: +-%6LA:+NAN(09A_Zaz):0:-1: +-%*6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LA:+NAN():1:6:nan: ++# BZ30647 %*6LA:+NAN():0:6: ++# BZ30647 %6LA:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LA:+NAN(09A_Zaz):0:-1: + %6LA:+0X0P0:1:6:0x0: + %*6LA:+0X0P0:0:6: + # BZ12701 %6LA:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*20LA:-0X0P+0:0:7: + %20LA:-0X0P0:1:6:-0x0: + %*20LA:-0X0P0:0:6: +-%20LA:-NAN(09A_Zaz):1:13:-nan: +-%*20LA:-NAN(09A_Zaz):0:13: +-%20LA:-NAN():1:6:-nan: +-%*20LA:-NAN():0:6: +-%20LA:NAN():1:5:nan: +-%*20LA:NAN():0:5: +-%20LA:NAN(09A_Zaz):1:12:nan: +-%*20LA:NAN(09A_Zaz):0:12: ++# BZ30647 %20LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*20LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %20LA:-NAN():1:6:-nan: ++# BZ30647 %*20LA:-NAN():0:6: ++# BZ30647 %20LA:NAN():1:5:nan: ++# BZ30647 %*20LA:NAN():0:5: ++# BZ30647 %20LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*20LA:NAN(09A_Zaz):0:12: + %20LA:0X0P0:1:5:0x0: + %*20LA:0X0P0:0:5: + %20LA:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20LA:0XF.FFFFFFFFFFFF8P+1020:0:20: + %20LA:INFINITY:1:8:inf: + %*20LA:INFINITY:0:8: +-%20LA:+NAN():1:6:nan: +-%*20LA:+NAN():0:6: +-%20LA:+NAN(09A_Zaz):1:13:nan: +-%*20LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %20LA:+NAN():1:6:nan: ++# BZ30647 %*20LA:+NAN():0:6: ++# BZ30647 %20LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*20LA:+NAN(09A_Zaz):0:13: + %20LA:+0X0P0:1:6:0x0: + %*20LA:+0X0P0:0:6: + %20LA:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32LA:-0X0P+0:0:7: + %32LA:-0X0P0:1:6:-0x0: + %*32LA:-0X0P0:0:6: +-%32LA:-NAN(09A_Zaz):1:13:-nan: +-%*32LA:-NAN(09A_Zaz):0:13: +-%32LA:-NAN():1:6:-nan: +-%*32LA:-NAN():0:6: +-%32LA:NAN():1:5:nan: +-%*32LA:NAN():0:5: +-%32LA:NAN(09A_Zaz):1:12:nan: +-%*32LA:NAN(09A_Zaz):0:12: ++# BZ30647 %32LA:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*32LA:-NAN(09A_Zaz):0:13: ++# BZ30647 %32LA:-NAN():1:6:-nan: ++# BZ30647 %*32LA:-NAN():0:6: ++# BZ30647 %32LA:NAN():1:5:nan: ++# BZ30647 %*32LA:NAN():0:5: ++# BZ30647 %32LA:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*32LA:NAN(09A_Zaz):0:12: + %32LA:0X0P0:1:5:0x0: + %*32LA:0X0P0:0:5: + %32LA:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32LA:0XF.FFFFFFFFFFFF8P+1020:0:23: + %32LA:INFINITY:1:8:inf: + %*32LA:INFINITY:0:8: +-%32LA:+NAN():1:6:nan: +-%*32LA:+NAN():0:6: +-%32LA:+NAN(09A_Zaz):1:13:nan: +-%*32LA:+NAN(09A_Zaz):0:13: ++# BZ30647 %32LA:+NAN():1:6:nan: ++# BZ30647 %*32LA:+NAN():0:6: ++# BZ30647 %32LA:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32LA:+NAN(09A_Zaz):0:13: + %32LA:+0X0P0:1:6:0x0: + %*32LA:+0X0P0:0:6: + %32LA:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LA: -0X0P+0:0:-1: + # BZ12701 %5LA: -0X0P0:0:-1: + # BZ12701 %*5LA: -0X0P0:0:-1: +-%5LA: -NAN(09A_Zaz):0:-1: +-%*5LA: -NAN(09A_Zaz):0:-1: +-%5LA: -NAN():0:-1: +-%*5LA: -NAN():0:-1: +-%5LA: NAN():1:6:nan: +-%*5LA: NAN():0:6: +-%5LA: NAN(09A_Zaz):0:-1: +-%*5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: -NAN():0:-1: ++# BZ30647 %*5LA: -NAN():0:-1: ++# BZ30647 %5LA: NAN():1:6:nan: ++# BZ30647 %*5LA: NAN():0:6: ++# BZ30647 %5LA: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: NAN(09A_Zaz):0:-1: + %5LA: 0X0P0:1:6:0x0: + %*5LA: 0X0P0:0:6: + # BZ12701 %5LA: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LA: 0XF.FFFFFFFFFFFF8P+1020:0:6: + %5LA: INFINITY:0:-1: + %*5LA: INFINITY:0:-1: +-%5LA: +NAN():0:-1: +-%*5LA: +NAN():0:-1: +-%5LA: +NAN(09A_Zaz):0:-1: +-%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LA: +NAN():0:-1: ++# BZ30647 %*5LA: +NAN():0:-1: ++# BZ30647 %5LA: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LA: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LA: +0X0P0:0:-1: + # BZ12701 %*5LA: +0X0P0:0:-1: + # BZ12701 %5LA: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*32LA: -0X0P+0:0:8: + %32LA: -0X0P0:1:7:-0x0: + %*32LA: -0X0P0:0:7: +-%32LA: -NAN(09A_Zaz):1:14:-nan: +-%*32LA: -NAN(09A_Zaz):0:14: +-%32LA: -NAN():1:7:-nan: +-%*32LA: -NAN():0:7: +-%32LA: NAN():1:6:nan: +-%*32LA: NAN():0:6: +-%32LA: NAN(09A_Zaz):1:13:nan: +-%*32LA: NAN(09A_Zaz):0:13: ++# BZ30647 %32LA: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*32LA: -NAN(09A_Zaz):0:14: ++# BZ30647 %32LA: -NAN():1:7:-nan: ++# BZ30647 %*32LA: -NAN():0:7: ++# BZ30647 %32LA: NAN():1:6:nan: ++# BZ30647 %*32LA: NAN():0:6: ++# BZ30647 %32LA: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32LA: NAN(09A_Zaz):0:13: + %32LA: 0X0P0:1:6:0x0: + %*32LA: 0X0P0:0:6: + %32LA: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32LA: 0XF.FFFFFFFFFFFF8P+1020:0:24: + %32LA: INFINITY:1:9:inf: + %*32LA: INFINITY:0:9: +-%32LA: +NAN():1:7:nan: +-%*32LA: +NAN():0:7: +-%32LA: +NAN(09A_Zaz):1:14:nan: +-%*32LA: +NAN(09A_Zaz):0:14: ++# BZ30647 %32LA: +NAN():1:7:nan: ++# BZ30647 %*32LA: +NAN():0:7: ++# BZ30647 %32LA: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*32LA: +NAN(09A_Zaz):0:14: + %32LA: +0X0P0:1:7:0x0: + %*32LA: +0X0P0:0:7: + %32LA: +0X0P+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input +index c510f086919bd135..c998652b556bc7ac 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input +@@ -16,14 +16,14 @@ + %*Le:-0e+0:0:5: + %Le:-0e0:1:4:-0x0: + %*Le:-0e0:0:4: +-%Le:-nan(09A_Zaz):1:13:-nan: +-%*Le:-nan(09A_Zaz):0:13: +-%Le:-nan():1:6:-nan: +-%*Le:-nan():0:6: +-%Le:nan():1:5:nan: +-%*Le:nan():0:5: +-%Le:nan(09A_Zaz):1:12:nan: +-%*Le:nan(09A_Zaz):0:12: ++# BZ30647 %Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Le:-nan(09A_Zaz):0:13: ++# BZ30647 %Le:-nan():1:6:-nan: ++# BZ30647 %*Le:-nan():0:6: ++# BZ30647 %Le:nan():1:5:nan: ++# BZ30647 %*Le:nan():0:5: ++# BZ30647 %Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Le:nan(09A_Zaz):0:12: + %Le:0e0:1:3:0x0: + %*Le:0e0:0:3: + %Le:0e+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*Le:1.79769313486231570814527423731704357e+308:0:42: + %Le:infinity:1:8:inf: + %*Le:infinity:0:8: +-%Le:+nan():1:6:nan: +-%*Le:+nan():0:6: +-%Le:+nan(09A_Zaz):1:13:nan: +-%*Le:+nan(09A_Zaz):0:13: ++# BZ30647 %Le:+nan():1:6:nan: ++# BZ30647 %*Le:+nan():0:6: ++# BZ30647 %Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Le:+nan(09A_Zaz):0:13: + %Le:+0e0:1:4:0x0: + %*Le:+0e0:0:4: + %Le:+0e+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1Le:-0e+0:0:-1: + %1Le:-0e0:0:-1: + %*1Le:-0e0:0:-1: +-%1Le:-nan(09A_Zaz):0:-1: +-%*1Le:-nan(09A_Zaz):0:-1: +-%1Le:-nan():0:-1: +-%*1Le:-nan():0:-1: +-%1Le:nan():0:-1: +-%*1Le:nan():0:-1: +-%1Le:nan(09A_Zaz):0:-1: +-%*1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:-nan():0:-1: ++# BZ30647 %*1Le:-nan():0:-1: ++# BZ30647 %1Le:nan():0:-1: ++# BZ30647 %*1Le:nan():0:-1: ++# BZ30647 %1Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:nan(09A_Zaz):0:-1: + %1Le:0e0:1:1:0x0: + %*1Le:0e0:0:1: + %1Le:0e+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Le:1.79769313486231570814527423731704357e+308:0:1: + %1Le:infinity:0:-1: + %*1Le:infinity:0:-1: +-%1Le:+nan():0:-1: +-%*1Le:+nan():0:-1: +-%1Le:+nan(09A_Zaz):0:-1: +-%*1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Le:+nan():0:-1: ++# BZ30647 %*1Le:+nan():0:-1: ++# BZ30647 %1Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Le:+nan(09A_Zaz):0:-1: + %1Le:+0e0:0:-1: + %*1Le:+0e0:0:-1: + %1Le:+0e+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Le:-0e+0:0:2: + %2Le:-0e0:1:2:-0x0: + %*2Le:-0e0:0:2: +-%2Le:-nan(09A_Zaz):0:-1: +-%*2Le:-nan(09A_Zaz):0:-1: +-%2Le:-nan():0:-1: +-%*2Le:-nan():0:-1: +-%2Le:nan():0:-1: +-%*2Le:nan():0:-1: +-%2Le:nan(09A_Zaz):0:-1: +-%*2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:-nan():0:-1: ++# BZ30647 %*2Le:-nan():0:-1: ++# BZ30647 %2Le:nan():0:-1: ++# BZ30647 %*2Le:nan():0:-1: ++# BZ30647 %2Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:nan(09A_Zaz):0:-1: + # BZ12701 %2Le:0e0:0:-1: + # BZ12701 %*2Le:0e0:0:-1: + # BZ12701 %2Le:0e+0:0:-1: +@@ -164,10 +164,10 @@ + %*2Le:1.79769313486231570814527423731704357e+308:0:2: + %2Le:infinity:0:-1: + %*2Le:infinity:0:-1: +-%2Le:+nan():0:-1: +-%*2Le:+nan():0:-1: +-%2Le:+nan(09A_Zaz):0:-1: +-%*2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Le:+nan():0:-1: ++# BZ30647 %*2Le:+nan():0:-1: ++# BZ30647 %2Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Le:+nan(09A_Zaz):0:-1: + %2Le:+0e0:1:2:0x0: + %*2Le:+0e0:0:2: + %2Le:+0e+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Le:-0e+0:0:-1: + # BZ12701 %3Le:-0e0:0:-1: + # BZ12701 %*3Le:-0e0:0:-1: +-%3Le:-nan(09A_Zaz):0:-1: +-%*3Le:-nan(09A_Zaz):0:-1: +-%3Le:-nan():0:-1: +-%*3Le:-nan():0:-1: +-%3Le:nan():1:3:nan: +-%*3Le:nan():0:3: +-%3Le:nan(09A_Zaz):1:3:nan: +-%*3Le:nan(09A_Zaz):0:3: ++# BZ30647 %3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:-nan():0:-1: ++# BZ30647 %*3Le:-nan():0:-1: ++# BZ30647 %3Le:nan():1:3:nan: ++# BZ30647 %*3Le:nan():0:3: ++# BZ30647 %3Le:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Le:nan(09A_Zaz):0:3: + %3Le:0e0:1:3:0x0: + %*3Le:0e0:0:3: + # BZ12701 %3Le:0e+0:0:-1: +@@ -226,10 +226,10 @@ + %*3Le:1.79769313486231570814527423731704357e+308:0:3: + %3Le:infinity:1:3:inf: + %*3Le:infinity:0:3: +-%3Le:+nan():0:-1: +-%*3Le:+nan():0:-1: +-%3Le:+nan(09A_Zaz):0:-1: +-%*3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Le:+nan():0:-1: ++# BZ30647 %*3Le:+nan():0:-1: ++# BZ30647 %3Le:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le:+nan(09A_Zaz):0:-1: + # BZ12701 %3Le:+0e0:0:-1: + # BZ12701 %*3Le:+0e0:0:-1: + # BZ12701 %3Le:+0e+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4Le:-0e+0:0:-1: + %4Le:-0e0:1:4:-0x0: + %*4Le:-0e0:0:4: +-%4Le:-nan(09A_Zaz):1:4:-nan: +-%*4Le:-nan(09A_Zaz):0:4: +-%4Le:-nan():1:4:-nan: +-%*4Le:-nan():0:4: +-%4Le:nan():0:-1: +-%*4Le:nan():0:-1: +-%4Le:nan(09A_Zaz):0:-1: +-%*4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %4Le:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Le:-nan(09A_Zaz):0:4: ++# BZ30647 %4Le:-nan():1:4:-nan: ++# BZ30647 %*4Le:-nan():0:4: ++# BZ30647 %4Le:nan():0:-1: ++# BZ30647 %*4Le:nan():0:-1: ++# BZ30647 %4Le:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Le:nan(09A_Zaz):0:-1: + %4Le:0e0:1:3:0x0: + %*4Le:0e0:0:3: + %4Le:0e+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4Le:1.79769313486231570814527423731704357e+308:0:4: + %4Le:infinity:0:-1: + %*4Le:infinity:0:-1: +-%4Le:+nan():1:4:nan: +-%*4Le:+nan():0:4: +-%4Le:+nan(09A_Zaz):1:4:nan: +-%*4Le:+nan(09A_Zaz):0:4: ++# BZ30647 %4Le:+nan():1:4:nan: ++# BZ30647 %*4Le:+nan():0:4: ++# BZ30647 %4Le:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Le:+nan(09A_Zaz):0:4: + %4Le:+0e0:1:4:0x0: + %*4Le:+0e0:0:4: + # BZ12701 %4Le:+0e+0:0:-1: +@@ -326,14 +326,14 @@ + %*40Le:-0e+0:0:5: + %40Le:-0e0:1:4:-0x0: + %*40Le:-0e0:0:4: +-%40Le:-nan(09A_Zaz):1:13:-nan: +-%*40Le:-nan(09A_Zaz):0:13: +-%40Le:-nan():1:6:-nan: +-%*40Le:-nan():0:6: +-%40Le:nan():1:5:nan: +-%*40Le:nan():0:5: +-%40Le:nan(09A_Zaz):1:12:nan: +-%*40Le:nan(09A_Zaz):0:12: ++# BZ30647 %40Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*40Le:-nan(09A_Zaz):0:13: ++# BZ30647 %40Le:-nan():1:6:-nan: ++# BZ30647 %*40Le:-nan():0:6: ++# BZ30647 %40Le:nan():1:5:nan: ++# BZ30647 %*40Le:nan():0:5: ++# BZ30647 %40Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*40Le:nan(09A_Zaz):0:12: + %40Le:0e0:1:3:0x0: + %*40Le:0e0:0:3: + %40Le:0e+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40Le:1.79769313486231570814527423731704357e+308:0:40: + %40Le:infinity:1:8:inf: + %*40Le:infinity:0:8: +-%40Le:+nan():1:6:nan: +-%*40Le:+nan():0:6: +-%40Le:+nan(09A_Zaz):1:13:nan: +-%*40Le:+nan(09A_Zaz):0:13: ++# BZ30647 %40Le:+nan():1:6:nan: ++# BZ30647 %*40Le:+nan():0:6: ++# BZ30647 %40Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*40Le:+nan(09A_Zaz):0:13: + %40Le:+0e0:1:4:0x0: + %*40Le:+0e0:0:4: + %40Le:+0e+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48Le:-0e+0:0:5: + %48Le:-0e0:1:4:-0x0: + %*48Le:-0e0:0:4: +-%48Le:-nan(09A_Zaz):1:13:-nan: +-%*48Le:-nan(09A_Zaz):0:13: +-%48Le:-nan():1:6:-nan: +-%*48Le:-nan():0:6: +-%48Le:nan():1:5:nan: +-%*48Le:nan():0:5: +-%48Le:nan(09A_Zaz):1:12:nan: +-%*48Le:nan(09A_Zaz):0:12: ++# BZ30647 %48Le:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*48Le:-nan(09A_Zaz):0:13: ++# BZ30647 %48Le:-nan():1:6:-nan: ++# BZ30647 %*48Le:-nan():0:6: ++# BZ30647 %48Le:nan():1:5:nan: ++# BZ30647 %*48Le:nan():0:5: ++# BZ30647 %48Le:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*48Le:nan(09A_Zaz):0:12: + %48Le:0e0:1:3:0x0: + %*48Le:0e0:0:3: + %48Le:0e+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48Le:1.79769313486231570814527423731704357e+308:0:42: + %48Le:infinity:1:8:inf: + %*48Le:infinity:0:8: +-%48Le:+nan():1:6:nan: +-%*48Le:+nan():0:6: +-%48Le:+nan(09A_Zaz):1:13:nan: +-%*48Le:+nan(09A_Zaz):0:13: ++# BZ30647 %48Le:+nan():1:6:nan: ++# BZ30647 %*48Le:+nan():0:6: ++# BZ30647 %48Le:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le:+nan(09A_Zaz):0:13: + %48Le:+0e0:1:4:0x0: + %*48Le:+0e0:0:4: + %48Le:+0e+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3Le: -0e+0:0:-1: + # BZ12701 %3Le: -0e0:0:-1: + # BZ12701 %*3Le: -0e0:0:-1: +-%3Le: -nan(09A_Zaz):0:-1: +-%*3Le: -nan(09A_Zaz):0:-1: +-%3Le: -nan():0:-1: +-%*3Le: -nan():0:-1: +-%3Le: nan():1:4:nan: +-%*3Le: nan():0:4: +-%3Le: nan(09A_Zaz):1:4:nan: +-%*3Le: nan(09A_Zaz):0:4: ++# BZ30647 %3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: -nan():0:-1: ++# BZ30647 %*3Le: -nan():0:-1: ++# BZ30647 %3Le: nan():1:4:nan: ++# BZ30647 %*3Le: nan():0:4: ++# BZ30647 %3Le: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Le: nan(09A_Zaz):0:4: + %3Le: 0e0:1:4:0x0: + %*3Le: 0e0:0:4: + # BZ12701 %3Le: 0e+0:0:-1: +@@ -474,10 +474,10 @@ + %*3Le: 1.79769313486231570814527423731704357e+308:0:4: + %3Le: infinity:1:4:inf: + %*3Le: infinity:0:4: +-%3Le: +nan():0:-1: +-%*3Le: +nan():0:-1: +-%3Le: +nan(09A_Zaz):0:-1: +-%*3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Le: +nan():0:-1: ++# BZ30647 %*3Le: +nan():0:-1: ++# BZ30647 %3Le: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Le: +nan(09A_Zaz):0:-1: + # BZ12701 %3Le: +0e0:0:-1: + # BZ12701 %*3Le: +0e0:0:-1: + # BZ12701 %3Le: +0e+0:0:-1: +@@ -512,14 +512,14 @@ + %*48Le: -0e+0:0:6: + %48Le: -0e0:1:5:-0x0: + %*48Le: -0e0:0:5: +-%48Le: -nan(09A_Zaz):1:14:-nan: +-%*48Le: -nan(09A_Zaz):0:14: +-%48Le: -nan():1:7:-nan: +-%*48Le: -nan():0:7: +-%48Le: nan():1:6:nan: +-%*48Le: nan():0:6: +-%48Le: nan(09A_Zaz):1:13:nan: +-%*48Le: nan(09A_Zaz):0:13: ++# BZ30647 %48Le: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*48Le: -nan(09A_Zaz):0:14: ++# BZ30647 %48Le: -nan():1:7:-nan: ++# BZ30647 %*48Le: -nan():0:7: ++# BZ30647 %48Le: nan():1:6:nan: ++# BZ30647 %*48Le: nan():0:6: ++# BZ30647 %48Le: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*48Le: nan(09A_Zaz):0:13: + %48Le: 0e0:1:4:0x0: + %*48Le: 0e0:0:4: + %48Le: 0e+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48Le: 1.79769313486231570814527423731704357e+308:0:43: + %48Le: infinity:1:9:inf: + %*48Le: infinity:0:9: +-%48Le: +nan():1:7:nan: +-%*48Le: +nan():0:7: +-%48Le: +nan(09A_Zaz):1:14:nan: +-%*48Le: +nan(09A_Zaz):0:14: ++# BZ30647 %48Le: +nan():1:7:nan: ++# BZ30647 %*48Le: +nan():0:7: ++# BZ30647 %48Le: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*48Le: +nan(09A_Zaz):0:14: + %48Le: +0e0:1:5:0x0: + %*48Le: +0e0:0:5: + %48Le: +0e+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input +index 6fb575513e9e3379..9678dad05cf8e06a 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input +@@ -16,14 +16,14 @@ + %*LE:-0E+0:0:5: + %LE:-0E0:1:4:-0x0: + %*LE:-0E0:0:4: +-%LE:-NAN(09A_Zaz):1:13:-nan: +-%*LE:-NAN(09A_Zaz):0:13: +-%LE:-NAN():1:6:-nan: +-%*LE:-NAN():0:6: +-%LE:NAN():1:5:nan: +-%*LE:NAN():0:5: +-%LE:NAN(09A_Zaz):1:12:nan: +-%*LE:NAN(09A_Zaz):0:12: ++# BZ30647 %LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %LE:-NAN():1:6:-nan: ++# BZ30647 %*LE:-NAN():0:6: ++# BZ30647 %LE:NAN():1:5:nan: ++# BZ30647 %*LE:NAN():0:5: ++# BZ30647 %LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LE:NAN(09A_Zaz):0:12: + %LE:0E0:1:3:0x0: + %*LE:0E0:0:3: + %LE:0E+0:1:4:0x0: +@@ -40,10 +40,10 @@ + %*LE:1.79769313486231570814527423731704357E+308:0:42: + %LE:INFINITY:1:8:inf: + %*LE:INFINITY:0:8: +-%LE:+NAN():1:6:nan: +-%*LE:+NAN():0:6: +-%LE:+NAN(09A_Zaz):1:13:nan: +-%*LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %LE:+NAN():1:6:nan: ++# BZ30647 %*LE:+NAN():0:6: ++# BZ30647 %LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LE:+NAN(09A_Zaz):0:13: + %LE:+0E0:1:4:0x0: + %*LE:+0E0:0:4: + %LE:+0E+0:1:5:0x0: +@@ -78,14 +78,14 @@ + %*1LE:-0E+0:0:-1: + %1LE:-0E0:0:-1: + %*1LE:-0E0:0:-1: +-%1LE:-NAN(09A_Zaz):0:-1: +-%*1LE:-NAN(09A_Zaz):0:-1: +-%1LE:-NAN():0:-1: +-%*1LE:-NAN():0:-1: +-%1LE:NAN():0:-1: +-%*1LE:NAN():0:-1: +-%1LE:NAN(09A_Zaz):0:-1: +-%*1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:-NAN():0:-1: ++# BZ30647 %*1LE:-NAN():0:-1: ++# BZ30647 %1LE:NAN():0:-1: ++# BZ30647 %*1LE:NAN():0:-1: ++# BZ30647 %1LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:NAN(09A_Zaz):0:-1: + %1LE:0E0:1:1:0x0: + %*1LE:0E0:0:1: + %1LE:0E+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LE:1.79769313486231570814527423731704357E+308:0:1: + %1LE:INFINITY:0:-1: + %*1LE:INFINITY:0:-1: +-%1LE:+NAN():0:-1: +-%*1LE:+NAN():0:-1: +-%1LE:+NAN(09A_Zaz):0:-1: +-%*1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LE:+NAN():0:-1: ++# BZ30647 %*1LE:+NAN():0:-1: ++# BZ30647 %1LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LE:+NAN(09A_Zaz):0:-1: + %1LE:+0E0:0:-1: + %*1LE:+0E0:0:-1: + %1LE:+0E+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LE:-0E+0:0:2: + %2LE:-0E0:1:2:-0x0: + %*2LE:-0E0:0:2: +-%2LE:-NAN(09A_Zaz):0:-1: +-%*2LE:-NAN(09A_Zaz):0:-1: +-%2LE:-NAN():0:-1: +-%*2LE:-NAN():0:-1: +-%2LE:NAN():0:-1: +-%*2LE:NAN():0:-1: +-%2LE:NAN(09A_Zaz):0:-1: +-%*2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:-NAN():0:-1: ++# BZ30647 %*2LE:-NAN():0:-1: ++# BZ30647 %2LE:NAN():0:-1: ++# BZ30647 %*2LE:NAN():0:-1: ++# BZ30647 %2LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:NAN(09A_Zaz):0:-1: + # BZ12701 %2LE:0E0:0:-1: + # BZ12701 %*2LE:0E0:0:-1: + # BZ12701 %2LE:0E+0:0:-1: +@@ -164,10 +164,10 @@ + %*2LE:1.79769313486231570814527423731704357E+308:0:2: + %2LE:INFINITY:0:-1: + %*2LE:INFINITY:0:-1: +-%2LE:+NAN():0:-1: +-%*2LE:+NAN():0:-1: +-%2LE:+NAN(09A_Zaz):0:-1: +-%*2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LE:+NAN():0:-1: ++# BZ30647 %*2LE:+NAN():0:-1: ++# BZ30647 %2LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LE:+NAN(09A_Zaz):0:-1: + %2LE:+0E0:1:2:0x0: + %*2LE:+0E0:0:2: + %2LE:+0E+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LE:-0E+0:0:-1: + # BZ12701 %3LE:-0E0:0:-1: + # BZ12701 %*3LE:-0E0:0:-1: +-%3LE:-NAN(09A_Zaz):0:-1: +-%*3LE:-NAN(09A_Zaz):0:-1: +-%3LE:-NAN():0:-1: +-%*3LE:-NAN():0:-1: +-%3LE:NAN():1:3:nan: +-%*3LE:NAN():0:3: +-%3LE:NAN(09A_Zaz):1:3:nan: +-%*3LE:NAN(09A_Zaz):0:3: ++# BZ30647 %3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:-NAN():0:-1: ++# BZ30647 %*3LE:-NAN():0:-1: ++# BZ30647 %3LE:NAN():1:3:nan: ++# BZ30647 %*3LE:NAN():0:3: ++# BZ30647 %3LE:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LE:NAN(09A_Zaz):0:3: + %3LE:0E0:1:3:0x0: + %*3LE:0E0:0:3: + # BZ12701 %3LE:0E+0:0:-1: +@@ -226,10 +226,10 @@ + %*3LE:1.79769313486231570814527423731704357E+308:0:3: + %3LE:INFINITY:1:3:inf: + %*3LE:INFINITY:0:3: +-%3LE:+NAN():0:-1: +-%*3LE:+NAN():0:-1: +-%3LE:+NAN(09A_Zaz):0:-1: +-%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE:+NAN():0:-1: ++# BZ30647 %*3LE:+NAN():0:-1: ++# BZ30647 %3LE:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LE:+0E0:0:-1: + # BZ12701 %*3LE:+0E0:0:-1: + # BZ12701 %3LE:+0E+0:0:-1: +@@ -264,14 +264,14 @@ + # BZ12701 %*4LE:-0E+0:0:-1: + %4LE:-0E0:1:4:-0x0: + %*4LE:-0E0:0:4: +-%4LE:-NAN(09A_Zaz):1:4:-nan: +-%*4LE:-NAN(09A_Zaz):0:4: +-%4LE:-NAN():1:4:-nan: +-%*4LE:-NAN():0:4: +-%4LE:NAN():0:-1: +-%*4LE:NAN():0:-1: +-%4LE:NAN(09A_Zaz):0:-1: +-%*4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LE:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LE:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:-NAN():1:4:-nan: ++# BZ30647 %*4LE:-NAN():0:4: ++# BZ30647 %4LE:NAN():0:-1: ++# BZ30647 %*4LE:NAN():0:-1: ++# BZ30647 %4LE:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LE:NAN(09A_Zaz):0:-1: + %4LE:0E0:1:3:0x0: + %*4LE:0E0:0:3: + %4LE:0E+0:1:4:0x0: +@@ -288,10 +288,10 @@ + %*4LE:1.79769313486231570814527423731704357E+308:0:4: + %4LE:INFINITY:0:-1: + %*4LE:INFINITY:0:-1: +-%4LE:+NAN():1:4:nan: +-%*4LE:+NAN():0:4: +-%4LE:+NAN(09A_Zaz):1:4:nan: +-%*4LE:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LE:+NAN():1:4:nan: ++# BZ30647 %*4LE:+NAN():0:4: ++# BZ30647 %4LE:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LE:+NAN(09A_Zaz):0:4: + %4LE:+0E0:1:4:0x0: + %*4LE:+0E0:0:4: + # BZ12701 %4LE:+0E+0:0:-1: +@@ -326,14 +326,14 @@ + %*40LE:-0E+0:0:5: + %40LE:-0E0:1:4:-0x0: + %*40LE:-0E0:0:4: +-%40LE:-NAN(09A_Zaz):1:13:-nan: +-%*40LE:-NAN(09A_Zaz):0:13: +-%40LE:-NAN():1:6:-nan: +-%*40LE:-NAN():0:6: +-%40LE:NAN():1:5:nan: +-%*40LE:NAN():0:5: +-%40LE:NAN(09A_Zaz):1:12:nan: +-%*40LE:NAN(09A_Zaz):0:12: ++# BZ30647 %40LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*40LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:-NAN():1:6:-nan: ++# BZ30647 %*40LE:-NAN():0:6: ++# BZ30647 %40LE:NAN():1:5:nan: ++# BZ30647 %*40LE:NAN():0:5: ++# BZ30647 %40LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*40LE:NAN(09A_Zaz):0:12: + %40LE:0E0:1:3:0x0: + %*40LE:0E0:0:3: + %40LE:0E+0:1:4:0x0: +@@ -350,10 +350,10 @@ + %*40LE:1.79769313486231570814527423731704357E+308:0:40: + %40LE:INFINITY:1:8:inf: + %*40LE:INFINITY:0:8: +-%40LE:+NAN():1:6:nan: +-%*40LE:+NAN():0:6: +-%40LE:+NAN(09A_Zaz):1:13:nan: +-%*40LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %40LE:+NAN():1:6:nan: ++# BZ30647 %*40LE:+NAN():0:6: ++# BZ30647 %40LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*40LE:+NAN(09A_Zaz):0:13: + %40LE:+0E0:1:4:0x0: + %*40LE:+0E0:0:4: + %40LE:+0E+0:1:5:0x0: +@@ -388,14 +388,14 @@ + %*48LE:-0E+0:0:5: + %48LE:-0E0:1:4:-0x0: + %*48LE:-0E0:0:4: +-%48LE:-NAN(09A_Zaz):1:13:-nan: +-%*48LE:-NAN(09A_Zaz):0:13: +-%48LE:-NAN():1:6:-nan: +-%*48LE:-NAN():0:6: +-%48LE:NAN():1:5:nan: +-%*48LE:NAN():0:5: +-%48LE:NAN(09A_Zaz):1:12:nan: +-%*48LE:NAN(09A_Zaz):0:12: ++# BZ30647 %48LE:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*48LE:-NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:-NAN():1:6:-nan: ++# BZ30647 %*48LE:-NAN():0:6: ++# BZ30647 %48LE:NAN():1:5:nan: ++# BZ30647 %*48LE:NAN():0:5: ++# BZ30647 %48LE:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*48LE:NAN(09A_Zaz):0:12: + %48LE:0E0:1:3:0x0: + %*48LE:0E0:0:3: + %48LE:0E+0:1:4:0x0: +@@ -412,10 +412,10 @@ + %*48LE:1.79769313486231570814527423731704357E+308:0:42: + %48LE:INFINITY:1:8:inf: + %*48LE:INFINITY:0:8: +-%48LE:+NAN():1:6:nan: +-%*48LE:+NAN():0:6: +-%48LE:+NAN(09A_Zaz):1:13:nan: +-%*48LE:+NAN(09A_Zaz):0:13: ++# BZ30647 %48LE:+NAN():1:6:nan: ++# BZ30647 %*48LE:+NAN():0:6: ++# BZ30647 %48LE:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE:+NAN(09A_Zaz):0:13: + %48LE:+0E0:1:4:0x0: + %*48LE:+0E0:0:4: + %48LE:+0E+0:1:5:0x0: +@@ -450,14 +450,14 @@ + # BZ12701 %*3LE: -0E+0:0:-1: + # BZ12701 %3LE: -0E0:0:-1: + # BZ12701 %*3LE: -0E0:0:-1: +-%3LE: -NAN(09A_Zaz):0:-1: +-%*3LE: -NAN(09A_Zaz):0:-1: +-%3LE: -NAN():0:-1: +-%*3LE: -NAN():0:-1: +-%3LE: NAN():1:4:nan: +-%*3LE: NAN():0:4: +-%3LE: NAN(09A_Zaz):1:4:nan: +-%*3LE: NAN(09A_Zaz):0:4: ++# BZ30647 %3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: -NAN():0:-1: ++# BZ30647 %*3LE: -NAN():0:-1: ++# BZ30647 %3LE: NAN():1:4:nan: ++# BZ30647 %*3LE: NAN():0:4: ++# BZ30647 %3LE: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LE: NAN(09A_Zaz):0:4: + %3LE: 0E0:1:4:0x0: + %*3LE: 0E0:0:4: + # BZ12701 %3LE: 0E+0:0:-1: +@@ -474,10 +474,10 @@ + %*3LE: 1.79769313486231570814527423731704357E+308:0:4: + %3LE: INFINITY:1:4:inf: + %*3LE: INFINITY:0:4: +-%3LE: +NAN():0:-1: +-%*3LE: +NAN():0:-1: +-%3LE: +NAN(09A_Zaz):0:-1: +-%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LE: +NAN():0:-1: ++# BZ30647 %*3LE: +NAN():0:-1: ++# BZ30647 %3LE: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LE: +NAN(09A_Zaz):0:-1: + # BZ12701 %3LE: +0E0:0:-1: + # BZ12701 %*3LE: +0E0:0:-1: + # BZ12701 %3LE: +0E+0:0:-1: +@@ -512,14 +512,14 @@ + %*48LE: -0E+0:0:6: + %48LE: -0E0:1:5:-0x0: + %*48LE: -0E0:0:5: +-%48LE: -NAN(09A_Zaz):1:14:-nan: +-%*48LE: -NAN(09A_Zaz):0:14: +-%48LE: -NAN():1:7:-nan: +-%*48LE: -NAN():0:7: +-%48LE: NAN():1:6:nan: +-%*48LE: NAN():0:6: +-%48LE: NAN(09A_Zaz):1:13:nan: +-%*48LE: NAN(09A_Zaz):0:13: ++# BZ30647 %48LE: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*48LE: -NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: -NAN():1:7:-nan: ++# BZ30647 %*48LE: -NAN():0:7: ++# BZ30647 %48LE: NAN():1:6:nan: ++# BZ30647 %*48LE: NAN():0:6: ++# BZ30647 %48LE: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*48LE: NAN(09A_Zaz):0:13: + %48LE: 0E0:1:4:0x0: + %*48LE: 0E0:0:4: + %48LE: 0E+0:1:5:0x0: +@@ -536,10 +536,10 @@ + %*48LE: 1.79769313486231570814527423731704357E+308:0:43: + %48LE: INFINITY:1:9:inf: + %*48LE: INFINITY:0:9: +-%48LE: +NAN():1:7:nan: +-%*48LE: +NAN():0:7: +-%48LE: +NAN(09A_Zaz):1:14:nan: +-%*48LE: +NAN(09A_Zaz):0:14: ++# BZ30647 %48LE: +NAN():1:7:nan: ++# BZ30647 %*48LE: +NAN():0:7: ++# BZ30647 %48LE: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*48LE: +NAN(09A_Zaz):0:14: + %48LE: +0E0:1:5:0x0: + %*48LE: +0E0:0:5: + %48LE: +0E+0:1:6:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input +index a506658d25fff3a5..f4039ae8c981f5ec 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input +@@ -16,14 +16,14 @@ + %*Lf:-0.0:0:4: + %Lf:-0:1:2:-0x0: + %*Lf:-0:0:2: +-%Lf:-nan(09A_Zaz):1:13:-nan: +-%*Lf:-nan(09A_Zaz):0:13: +-%Lf:-nan():1:6:-nan: +-%*Lf:-nan():0:6: +-%Lf:nan():1:5:nan: +-%*Lf:nan():0:5: +-%Lf:nan(09A_Zaz):1:12:nan: +-%*Lf:nan(09A_Zaz):0:12: ++# BZ30647 %Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %Lf:-nan():1:6:-nan: ++# BZ30647 %*Lf:-nan():0:6: ++# BZ30647 %Lf:nan():1:5:nan: ++# BZ30647 %*Lf:nan():0:5: ++# BZ30647 %Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lf:nan(09A_Zaz):0:12: + %Lf:0:1:1:0x0: + %*Lf:0:0:1: + %Lf:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %Lf:infinity:1:8:inf: + %*Lf:infinity:0:8: +-%Lf:+nan():1:6:nan: +-%*Lf:+nan():0:6: +-%Lf:+nan(09A_Zaz):1:13:nan: +-%*Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %Lf:+nan():1:6:nan: ++# BZ30647 %*Lf:+nan():0:6: ++# BZ30647 %Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lf:+nan(09A_Zaz):0:13: + %Lf:+0:1:2:0x0: + %*Lf:+0:0:2: + %Lf:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1Lf:-0.0:0:-1: + %1Lf:-0:0:-1: + %*1Lf:-0:0:-1: +-%1Lf:-nan(09A_Zaz):0:-1: +-%*1Lf:-nan(09A_Zaz):0:-1: +-%1Lf:-nan():0:-1: +-%*1Lf:-nan():0:-1: +-%1Lf:nan():0:-1: +-%*1Lf:nan():0:-1: +-%1Lf:nan(09A_Zaz):0:-1: +-%*1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:-nan():0:-1: ++# BZ30647 %*1Lf:-nan():0:-1: ++# BZ30647 %1Lf:nan():0:-1: ++# BZ30647 %*1Lf:nan():0:-1: ++# BZ30647 %1Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:nan(09A_Zaz):0:-1: + %1Lf:0:1:1:0x0: + %*1Lf:0:0:1: + %1Lf:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: + %1Lf:infinity:0:-1: + %*1Lf:infinity:0:-1: +-%1Lf:+nan():0:-1: +-%*1Lf:+nan():0:-1: +-%1Lf:+nan(09A_Zaz):0:-1: +-%*1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lf:+nan():0:-1: ++# BZ30647 %*1Lf:+nan():0:-1: ++# BZ30647 %1Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lf:+nan(09A_Zaz):0:-1: + %1Lf:+0:0:-1: + %*1Lf:+0:0:-1: + %1Lf:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lf:-0.0:0:2: + %2Lf:-0:1:2:-0x0: + %*2Lf:-0:0:2: +-%2Lf:-nan(09A_Zaz):0:-1: +-%*2Lf:-nan(09A_Zaz):0:-1: +-%2Lf:-nan():0:-1: +-%*2Lf:-nan():0:-1: +-%2Lf:nan():0:-1: +-%*2Lf:nan():0:-1: +-%2Lf:nan(09A_Zaz):0:-1: +-%*2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:-nan():0:-1: ++# BZ30647 %*2Lf:-nan():0:-1: ++# BZ30647 %2Lf:nan():0:-1: ++# BZ30647 %*2Lf:nan():0:-1: ++# BZ30647 %2Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:nan(09A_Zaz):0:-1: + %2Lf:0:1:1:0x0: + %*2Lf:0:0:1: + %2Lf:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: + %2Lf:infinity:0:-1: + %*2Lf:infinity:0:-1: +-%2Lf:+nan():0:-1: +-%*2Lf:+nan():0:-1: +-%2Lf:+nan(09A_Zaz):0:-1: +-%*2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lf:+nan():0:-1: ++# BZ30647 %*2Lf:+nan():0:-1: ++# BZ30647 %2Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lf:+nan(09A_Zaz):0:-1: + %2Lf:+0:1:2:0x0: + %*2Lf:+0:0:2: + %2Lf:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3Lf:-0.0:0:3: + %3Lf:-0:1:2:-0x0: + %*3Lf:-0:0:2: +-%3Lf:-nan(09A_Zaz):0:-1: +-%*3Lf:-nan(09A_Zaz):0:-1: +-%3Lf:-nan():0:-1: +-%*3Lf:-nan():0:-1: +-%3Lf:nan():1:3:nan: +-%*3Lf:nan():0:3: +-%3Lf:nan(09A_Zaz):1:3:nan: +-%*3Lf:nan(09A_Zaz):0:3: ++# BZ30647 %3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:-nan():0:-1: ++# BZ30647 %*3Lf:-nan():0:-1: ++# BZ30647 %3Lf:nan():1:3:nan: ++# BZ30647 %*3Lf:nan():0:3: ++# BZ30647 %3Lf:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lf:nan(09A_Zaz):0:3: + %3Lf:0:1:1:0x0: + %*3Lf:0:0:1: + %3Lf:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: + %3Lf:infinity:1:3:inf: + %*3Lf:infinity:0:3: +-%3Lf:+nan():0:-1: +-%*3Lf:+nan():0:-1: +-%3Lf:+nan(09A_Zaz):0:-1: +-%*3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf:+nan():0:-1: ++# BZ30647 %*3Lf:+nan():0:-1: ++# BZ30647 %3Lf:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf:+nan(09A_Zaz):0:-1: + %3Lf:+0:1:2:0x0: + %*3Lf:+0:0:2: + %3Lf:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4Lf:-0.0:0:4: + %4Lf:-0:1:2:-0x0: + %*4Lf:-0:0:2: +-%4Lf:-nan(09A_Zaz):1:4:-nan: +-%*4Lf:-nan(09A_Zaz):0:4: +-%4Lf:-nan():1:4:-nan: +-%*4Lf:-nan():0:4: +-%4Lf:nan():0:-1: +-%*4Lf:nan():0:-1: +-%4Lf:nan(09A_Zaz):0:-1: +-%*4Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %4Lf:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Lf:-nan(09A_Zaz):0:4: ++# BZ30647 %4Lf:-nan():1:4:-nan: ++# BZ30647 %*4Lf:-nan():0:4: ++# BZ30647 %4Lf:nan():0:-1: ++# BZ30647 %*4Lf:nan():0:-1: ++# BZ30647 %4Lf:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Lf:nan(09A_Zaz):0:-1: + %4Lf:0:1:1:0x0: + %*4Lf:0:0:1: + %4Lf:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %4Lf:infinity:0:-1: + %*4Lf:infinity:0:-1: +-%4Lf:+nan():1:4:nan: +-%*4Lf:+nan():0:4: +-%4Lf:+nan(09A_Zaz):1:4:nan: +-%*4Lf:+nan(09A_Zaz):0:4: ++# BZ30647 %4Lf:+nan():1:4:nan: ++# BZ30647 %*4Lf:+nan():0:4: ++# BZ30647 %4Lf:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Lf:+nan(09A_Zaz):0:4: + %4Lf:+0:1:2:0x0: + %*4Lf:+0:0:2: + %4Lf:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*311Lf:-0.0:0:4: + %311Lf:-0:1:2:-0x0: + %*311Lf:-0:0:2: +-%311Lf:-nan(09A_Zaz):1:13:-nan: +-%*311Lf:-nan(09A_Zaz):0:13: +-%311Lf:-nan():1:6:-nan: +-%*311Lf:-nan():0:6: +-%311Lf:nan():1:5:nan: +-%*311Lf:nan():0:5: +-%311Lf:nan(09A_Zaz):1:12:nan: +-%*311Lf:nan(09A_Zaz):0:12: ++# BZ30647 %311Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*311Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %311Lf:-nan():1:6:-nan: ++# BZ30647 %*311Lf:-nan():0:6: ++# BZ30647 %311Lf:nan():1:5:nan: ++# BZ30647 %*311Lf:nan():0:5: ++# BZ30647 %311Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*311Lf:nan(09A_Zaz):0:12: + %311Lf:0:1:1:0x0: + %*311Lf:0:0:1: + %311Lf:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*311Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: + %311Lf:infinity:1:8:inf: + %*311Lf:infinity:0:8: +-%311Lf:+nan():1:6:nan: +-%*311Lf:+nan():0:6: +-%311Lf:+nan(09A_Zaz):1:13:nan: +-%*311Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %311Lf:+nan():1:6:nan: ++# BZ30647 %*311Lf:+nan():0:6: ++# BZ30647 %311Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*311Lf:+nan(09A_Zaz):0:13: + %311Lf:+0:1:2:0x0: + %*311Lf:+0:0:2: + %311Lf:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*350Lf:-0.0:0:4: + %350Lf:-0:1:2:-0x0: + %*350Lf:-0:0:2: +-%350Lf:-nan(09A_Zaz):1:13:-nan: +-%*350Lf:-nan(09A_Zaz):0:13: +-%350Lf:-nan():1:6:-nan: +-%*350Lf:-nan():0:6: +-%350Lf:nan():1:5:nan: +-%*350Lf:nan():0:5: +-%350Lf:nan(09A_Zaz):1:12:nan: +-%*350Lf:nan(09A_Zaz):0:12: ++# BZ30647 %350Lf:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*350Lf:-nan(09A_Zaz):0:13: ++# BZ30647 %350Lf:-nan():1:6:-nan: ++# BZ30647 %*350Lf:-nan():0:6: ++# BZ30647 %350Lf:nan():1:5:nan: ++# BZ30647 %*350Lf:nan():0:5: ++# BZ30647 %350Lf:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*350Lf:nan(09A_Zaz):0:12: + %350Lf:0:1:1:0x0: + %*350Lf:0:0:1: + %350Lf:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*350Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %350Lf:infinity:1:8:inf: + %*350Lf:infinity:0:8: +-%350Lf:+nan():1:6:nan: +-%*350Lf:+nan():0:6: +-%350Lf:+nan(09A_Zaz):1:13:nan: +-%*350Lf:+nan(09A_Zaz):0:13: ++# BZ30647 %350Lf:+nan():1:6:nan: ++# BZ30647 %*350Lf:+nan():0:6: ++# BZ30647 %350Lf:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*350Lf:+nan(09A_Zaz):0:13: + %350Lf:+0:1:2:0x0: + %*350Lf:+0:0:2: + %350Lf:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3Lf: -0.0:0:4: + %3Lf: -0:1:3:-0x0: + %*3Lf: -0:0:3: +-%3Lf: -nan(09A_Zaz):0:-1: +-%*3Lf: -nan(09A_Zaz):0:-1: +-%3Lf: -nan():0:-1: +-%*3Lf: -nan():0:-1: +-%3Lf: nan():1:4:nan: +-%*3Lf: nan():0:4: +-%3Lf: nan(09A_Zaz):1:4:nan: +-%*3Lf: nan(09A_Zaz):0:4: ++# BZ30647 %3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: -nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: -nan():0:-1: ++# BZ30647 %*3Lf: -nan():0:-1: ++# BZ30647 %3Lf: nan():1:4:nan: ++# BZ30647 %*3Lf: nan():0:4: ++# BZ30647 %3Lf: nan(09A_Zaz):1:4:nan: ++# BZ30647 %*3Lf: nan(09A_Zaz):0:4: + %3Lf: 0:1:2:0x0: + %*3Lf: 0:0:2: + %3Lf: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %3Lf: infinity:1:4:inf: + %*3Lf: infinity:0:4: +-%3Lf: +nan():0:-1: +-%*3Lf: +nan():0:-1: +-%3Lf: +nan(09A_Zaz):0:-1: +-%*3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %3Lf: +nan():0:-1: ++# BZ30647 %*3Lf: +nan():0:-1: ++# BZ30647 %3Lf: +nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lf: +nan(09A_Zaz):0:-1: + %3Lf: +0:1:3:0x0: + %*3Lf: +0:0:3: + %3Lf: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*350Lf: -0.0:0:5: + %350Lf: -0:1:3:-0x0: + %*350Lf: -0:0:3: +-%350Lf: -nan(09A_Zaz):1:14:-nan: +-%*350Lf: -nan(09A_Zaz):0:14: +-%350Lf: -nan():1:7:-nan: +-%*350Lf: -nan():0:7: +-%350Lf: nan():1:6:nan: +-%*350Lf: nan():0:6: +-%350Lf: nan(09A_Zaz):1:13:nan: +-%*350Lf: nan(09A_Zaz):0:13: ++# BZ30647 %350Lf: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*350Lf: -nan(09A_Zaz):0:14: ++# BZ30647 %350Lf: -nan():1:7:-nan: ++# BZ30647 %*350Lf: -nan():0:7: ++# BZ30647 %350Lf: nan():1:6:nan: ++# BZ30647 %*350Lf: nan():0:6: ++# BZ30647 %350Lf: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*350Lf: nan(09A_Zaz):0:13: + %350Lf: 0:1:2:0x0: + %*350Lf: 0:0:2: + %350Lf: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*350Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: + %350Lf: infinity:1:9:inf: + %*350Lf: infinity:0:9: +-%350Lf: +nan():1:7:nan: +-%*350Lf: +nan():0:7: +-%350Lf: +nan(09A_Zaz):1:14:nan: +-%*350Lf: +nan(09A_Zaz):0:14: ++# BZ30647 %350Lf: +nan():1:7:nan: ++# BZ30647 %*350Lf: +nan():0:7: ++# BZ30647 %350Lf: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*350Lf: +nan(09A_Zaz):0:14: + %350Lf: +0:1:3:0x0: + %*350Lf: +0:0:3: + %350Lf: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input +index 03dedfca801bf8ca..835e208472efaab6 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input +@@ -16,14 +16,14 @@ + %*LF:-0.0:0:4: + %LF:-0:1:2:-0x0: + %*LF:-0:0:2: +-%LF:-NAN(09A_Zaz):1:13:-nan: +-%*LF:-NAN(09A_Zaz):0:13: +-%LF:-NAN():1:6:-nan: +-%*LF:-NAN():0:6: +-%LF:NAN():1:5:nan: +-%*LF:NAN():0:5: +-%LF:NAN(09A_Zaz):1:12:nan: +-%*LF:NAN(09A_Zaz):0:12: ++# BZ30647 %LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %LF:-NAN():1:6:-nan: ++# BZ30647 %*LF:-NAN():0:6: ++# BZ30647 %LF:NAN():1:5:nan: ++# BZ30647 %*LF:NAN():0:5: ++# BZ30647 %LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LF:NAN(09A_Zaz):0:12: + %LF:0:1:1:0x0: + %*LF:0:0:1: + %LF:0.0:1:3:0x0: +@@ -40,10 +40,10 @@ + %*LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %LF:INFINITY:1:8:inf: + %*LF:INFINITY:0:8: +-%LF:+NAN():1:6:nan: +-%*LF:+NAN():0:6: +-%LF:+NAN(09A_Zaz):1:13:nan: +-%*LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %LF:+NAN():1:6:nan: ++# BZ30647 %*LF:+NAN():0:6: ++# BZ30647 %LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LF:+NAN(09A_Zaz):0:13: + %LF:+0:1:2:0x0: + %*LF:+0:0:2: + %LF:+0.0:1:4:0x0: +@@ -78,14 +78,14 @@ + %*1LF:-0.0:0:-1: + %1LF:-0:0:-1: + %*1LF:-0:0:-1: +-%1LF:-NAN(09A_Zaz):0:-1: +-%*1LF:-NAN(09A_Zaz):0:-1: +-%1LF:-NAN():0:-1: +-%*1LF:-NAN():0:-1: +-%1LF:NAN():0:-1: +-%*1LF:NAN():0:-1: +-%1LF:NAN(09A_Zaz):0:-1: +-%*1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:-NAN():0:-1: ++# BZ30647 %*1LF:-NAN():0:-1: ++# BZ30647 %1LF:NAN():0:-1: ++# BZ30647 %*1LF:NAN():0:-1: ++# BZ30647 %1LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:NAN(09A_Zaz):0:-1: + %1LF:0:1:1:0x0: + %*1LF:0:0:1: + %1LF:0.0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: + %1LF:INFINITY:0:-1: + %*1LF:INFINITY:0:-1: +-%1LF:+NAN():0:-1: +-%*1LF:+NAN():0:-1: +-%1LF:+NAN(09A_Zaz):0:-1: +-%*1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LF:+NAN():0:-1: ++# BZ30647 %*1LF:+NAN():0:-1: ++# BZ30647 %1LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LF:+NAN(09A_Zaz):0:-1: + %1LF:+0:0:-1: + %*1LF:+0:0:-1: + %1LF:+0.0:0:-1: +@@ -140,14 +140,14 @@ + %*2LF:-0.0:0:2: + %2LF:-0:1:2:-0x0: + %*2LF:-0:0:2: +-%2LF:-NAN(09A_Zaz):0:-1: +-%*2LF:-NAN(09A_Zaz):0:-1: +-%2LF:-NAN():0:-1: +-%*2LF:-NAN():0:-1: +-%2LF:NAN():0:-1: +-%*2LF:NAN():0:-1: +-%2LF:NAN(09A_Zaz):0:-1: +-%*2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:-NAN():0:-1: ++# BZ30647 %*2LF:-NAN():0:-1: ++# BZ30647 %2LF:NAN():0:-1: ++# BZ30647 %*2LF:NAN():0:-1: ++# BZ30647 %2LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:NAN(09A_Zaz):0:-1: + %2LF:0:1:1:0x0: + %*2LF:0:0:1: + %2LF:0.0:1:2:0x0: +@@ -164,10 +164,10 @@ + %*2LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: + %2LF:INFINITY:0:-1: + %*2LF:INFINITY:0:-1: +-%2LF:+NAN():0:-1: +-%*2LF:+NAN():0:-1: +-%2LF:+NAN(09A_Zaz):0:-1: +-%*2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LF:+NAN():0:-1: ++# BZ30647 %*2LF:+NAN():0:-1: ++# BZ30647 %2LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LF:+NAN(09A_Zaz):0:-1: + %2LF:+0:1:2:0x0: + %*2LF:+0:0:2: + %2LF:+0.0:1:2:0x0: +@@ -202,14 +202,14 @@ + %*3LF:-0.0:0:3: + %3LF:-0:1:2:-0x0: + %*3LF:-0:0:2: +-%3LF:-NAN(09A_Zaz):0:-1: +-%*3LF:-NAN(09A_Zaz):0:-1: +-%3LF:-NAN():0:-1: +-%*3LF:-NAN():0:-1: +-%3LF:NAN():1:3:nan: +-%*3LF:NAN():0:3: +-%3LF:NAN(09A_Zaz):1:3:nan: +-%*3LF:NAN(09A_Zaz):0:3: ++# BZ30647 %3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:-NAN():0:-1: ++# BZ30647 %*3LF:-NAN():0:-1: ++# BZ30647 %3LF:NAN():1:3:nan: ++# BZ30647 %*3LF:NAN():0:3: ++# BZ30647 %3LF:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LF:NAN(09A_Zaz):0:3: + %3LF:0:1:1:0x0: + %*3LF:0:0:1: + %3LF:0.0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: + %3LF:INFINITY:1:3:inf: + %*3LF:INFINITY:0:3: +-%3LF:+NAN():0:-1: +-%*3LF:+NAN():0:-1: +-%3LF:+NAN(09A_Zaz):0:-1: +-%*3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF:+NAN():0:-1: ++# BZ30647 %*3LF:+NAN():0:-1: ++# BZ30647 %3LF:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF:+NAN(09A_Zaz):0:-1: + %3LF:+0:1:2:0x0: + %*3LF:+0:0:2: + %3LF:+0.0:1:3:0x0: +@@ -264,14 +264,14 @@ + %*4LF:-0.0:0:4: + %4LF:-0:1:2:-0x0: + %*4LF:-0:0:2: +-%4LF:-NAN(09A_Zaz):1:4:-nan: +-%*4LF:-NAN(09A_Zaz):0:4: +-%4LF:-NAN():1:4:-nan: +-%*4LF:-NAN():0:4: +-%4LF:NAN():0:-1: +-%*4LF:NAN():0:-1: +-%4LF:NAN(09A_Zaz):0:-1: +-%*4LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LF:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LF:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LF:-NAN():1:4:-nan: ++# BZ30647 %*4LF:-NAN():0:4: ++# BZ30647 %4LF:NAN():0:-1: ++# BZ30647 %*4LF:NAN():0:-1: ++# BZ30647 %4LF:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LF:NAN(09A_Zaz):0:-1: + %4LF:0:1:1:0x0: + %*4LF:0:0:1: + %4LF:0.0:1:3:0x0: +@@ -288,10 +288,10 @@ + %*4LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %4LF:INFINITY:0:-1: + %*4LF:INFINITY:0:-1: +-%4LF:+NAN():1:4:nan: +-%*4LF:+NAN():0:4: +-%4LF:+NAN(09A_Zaz):1:4:nan: +-%*4LF:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LF:+NAN():1:4:nan: ++# BZ30647 %*4LF:+NAN():0:4: ++# BZ30647 %4LF:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LF:+NAN(09A_Zaz):0:4: + %4LF:+0:1:2:0x0: + %*4LF:+0:0:2: + %4LF:+0.0:1:4:0x0: +@@ -326,14 +326,14 @@ + %*311LF:-0.0:0:4: + %311LF:-0:1:2:-0x0: + %*311LF:-0:0:2: +-%311LF:-NAN(09A_Zaz):1:13:-nan: +-%*311LF:-NAN(09A_Zaz):0:13: +-%311LF:-NAN():1:6:-nan: +-%*311LF:-NAN():0:6: +-%311LF:NAN():1:5:nan: +-%*311LF:NAN():0:5: +-%311LF:NAN(09A_Zaz):1:12:nan: +-%*311LF:NAN(09A_Zaz):0:12: ++# BZ30647 %311LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*311LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %311LF:-NAN():1:6:-nan: ++# BZ30647 %*311LF:-NAN():0:6: ++# BZ30647 %311LF:NAN():1:5:nan: ++# BZ30647 %*311LF:NAN():0:5: ++# BZ30647 %311LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*311LF:NAN(09A_Zaz):0:12: + %311LF:0:1:1:0x0: + %*311LF:0:0:1: + %311LF:0.0:1:3:0x0: +@@ -350,10 +350,10 @@ + %*311LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: + %311LF:INFINITY:1:8:inf: + %*311LF:INFINITY:0:8: +-%311LF:+NAN():1:6:nan: +-%*311LF:+NAN():0:6: +-%311LF:+NAN(09A_Zaz):1:13:nan: +-%*311LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %311LF:+NAN():1:6:nan: ++# BZ30647 %*311LF:+NAN():0:6: ++# BZ30647 %311LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*311LF:+NAN(09A_Zaz):0:13: + %311LF:+0:1:2:0x0: + %*311LF:+0:0:2: + %311LF:+0.0:1:4:0x0: +@@ -388,14 +388,14 @@ + %*350LF:-0.0:0:4: + %350LF:-0:1:2:-0x0: + %*350LF:-0:0:2: +-%350LF:-NAN(09A_Zaz):1:13:-nan: +-%*350LF:-NAN(09A_Zaz):0:13: +-%350LF:-NAN():1:6:-nan: +-%*350LF:-NAN():0:6: +-%350LF:NAN():1:5:nan: +-%*350LF:NAN():0:5: +-%350LF:NAN(09A_Zaz):1:12:nan: +-%*350LF:NAN(09A_Zaz):0:12: ++# BZ30647 %350LF:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*350LF:-NAN(09A_Zaz):0:13: ++# BZ30647 %350LF:-NAN():1:6:-nan: ++# BZ30647 %*350LF:-NAN():0:6: ++# BZ30647 %350LF:NAN():1:5:nan: ++# BZ30647 %*350LF:NAN():0:5: ++# BZ30647 %350LF:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*350LF:NAN(09A_Zaz):0:12: + %350LF:0:1:1:0x0: + %*350LF:0:0:1: + %350LF:0.0:1:3:0x0: +@@ -412,10 +412,10 @@ + %*350LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: + %350LF:INFINITY:1:8:inf: + %*350LF:INFINITY:0:8: +-%350LF:+NAN():1:6:nan: +-%*350LF:+NAN():0:6: +-%350LF:+NAN(09A_Zaz):1:13:nan: +-%*350LF:+NAN(09A_Zaz):0:13: ++# BZ30647 %350LF:+NAN():1:6:nan: ++# BZ30647 %*350LF:+NAN():0:6: ++# BZ30647 %350LF:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*350LF:+NAN(09A_Zaz):0:13: + %350LF:+0:1:2:0x0: + %*350LF:+0:0:2: + %350LF:+0.0:1:4:0x0: +@@ -450,14 +450,14 @@ + %*3LF: -0.0:0:4: + %3LF: -0:1:3:-0x0: + %*3LF: -0:0:3: +-%3LF: -NAN(09A_Zaz):0:-1: +-%*3LF: -NAN(09A_Zaz):0:-1: +-%3LF: -NAN():0:-1: +-%*3LF: -NAN():0:-1: +-%3LF: NAN():1:4:nan: +-%*3LF: NAN():0:4: +-%3LF: NAN(09A_Zaz):1:4:nan: +-%*3LF: NAN(09A_Zaz):0:4: ++# BZ30647 %3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: -NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: -NAN():0:-1: ++# BZ30647 %*3LF: -NAN():0:-1: ++# BZ30647 %3LF: NAN():1:4:nan: ++# BZ30647 %*3LF: NAN():0:4: ++# BZ30647 %3LF: NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*3LF: NAN(09A_Zaz):0:4: + %3LF: 0:1:2:0x0: + %*3LF: 0:0:2: + %3LF: 0.0:1:4:0x0: +@@ -474,10 +474,10 @@ + %*3LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: + %3LF: INFINITY:1:4:inf: + %*3LF: INFINITY:0:4: +-%3LF: +NAN():0:-1: +-%*3LF: +NAN():0:-1: +-%3LF: +NAN(09A_Zaz):0:-1: +-%*3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %3LF: +NAN():0:-1: ++# BZ30647 %*3LF: +NAN():0:-1: ++# BZ30647 %3LF: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LF: +NAN(09A_Zaz):0:-1: + %3LF: +0:1:3:0x0: + %*3LF: +0:0:3: + %3LF: +0.0:1:4:0x0: +@@ -512,14 +512,14 @@ + %*350LF: -0.0:0:5: + %350LF: -0:1:3:-0x0: + %*350LF: -0:0:3: +-%350LF: -NAN(09A_Zaz):1:14:-nan: +-%*350LF: -NAN(09A_Zaz):0:14: +-%350LF: -NAN():1:7:-nan: +-%*350LF: -NAN():0:7: +-%350LF: NAN():1:6:nan: +-%*350LF: NAN():0:6: +-%350LF: NAN(09A_Zaz):1:13:nan: +-%*350LF: NAN(09A_Zaz):0:13: ++# BZ30647 %350LF: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*350LF: -NAN(09A_Zaz):0:14: ++# BZ30647 %350LF: -NAN():1:7:-nan: ++# BZ30647 %*350LF: -NAN():0:7: ++# BZ30647 %350LF: NAN():1:6:nan: ++# BZ30647 %*350LF: NAN():0:6: ++# BZ30647 %350LF: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*350LF: NAN(09A_Zaz):0:13: + %350LF: 0:1:2:0x0: + %*350LF: 0:0:2: + %350LF: 0.0:1:4:0x0: +@@ -536,10 +536,10 @@ + %*350LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: + %350LF: INFINITY:1:9:inf: + %*350LF: INFINITY:0:9: +-%350LF: +NAN():1:7:nan: +-%*350LF: +NAN():0:7: +-%350LF: +NAN(09A_Zaz):1:14:nan: +-%*350LF: +NAN(09A_Zaz):0:14: ++# BZ30647 %350LF: +NAN():1:7:nan: ++# BZ30647 %*350LF: +NAN():0:7: ++# BZ30647 %350LF: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*350LF: +NAN(09A_Zaz):0:14: + %350LF: +0:1:3:0x0: + %*350LF: +0:0:3: + %350LF: +0.0:1:5:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input +index ed8aac9247f36c61..f710ecbfd743aacf 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input +@@ -16,14 +16,14 @@ + %*Lg:-0x0p+0:0:7: + %Lg:-0x0p0:1:6:-0x0: + %*Lg:-0x0p0:0:6: +-%Lg:-nan(09A_Zaz):1:13:-nan: +-%*Lg:-nan(09A_Zaz):0:13: +-%Lg:-nan():1:6:-nan: +-%*Lg:-nan():0:6: +-%Lg:nan():1:5:nan: +-%*Lg:nan():0:5: +-%Lg:nan(09A_Zaz):1:12:nan: +-%*Lg:nan(09A_Zaz):0:12: ++# BZ30647 %Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %Lg:-nan():1:6:-nan: ++# BZ30647 %*Lg:-nan():0:6: ++# BZ30647 %Lg:nan():1:5:nan: ++# BZ30647 %*Lg:nan():0:5: ++# BZ30647 %Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*Lg:nan(09A_Zaz):0:12: + %Lg:0x0p0:1:5:0x0: + %*Lg:0x0p0:0:5: + %Lg:0x0p+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*Lg:0xf.ffffffffffff8p+1020:0:23: + %Lg:infinity:1:8:inf: + %*Lg:infinity:0:8: +-%Lg:+nan():1:6:nan: +-%*Lg:+nan():0:6: +-%Lg:+nan(09A_Zaz):1:13:nan: +-%*Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %Lg:+nan():1:6:nan: ++# BZ30647 %*Lg:+nan():0:6: ++# BZ30647 %Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*Lg:+nan(09A_Zaz):0:13: + %Lg:+0x0p0:1:6:0x0: + %*Lg:+0x0p0:0:6: + %Lg:+0x0p+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1Lg:-0x0p+0:0:-1: + %1Lg:-0x0p0:0:-1: + %*1Lg:-0x0p0:0:-1: +-%1Lg:-nan(09A_Zaz):0:-1: +-%*1Lg:-nan(09A_Zaz):0:-1: +-%1Lg:-nan():0:-1: +-%*1Lg:-nan():0:-1: +-%1Lg:nan():0:-1: +-%*1Lg:nan():0:-1: +-%1Lg:nan(09A_Zaz):0:-1: +-%*1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:-nan():0:-1: ++# BZ30647 %*1Lg:-nan():0:-1: ++# BZ30647 %1Lg:nan():0:-1: ++# BZ30647 %*1Lg:nan():0:-1: ++# BZ30647 %1Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:nan(09A_Zaz):0:-1: + %1Lg:0x0p0:1:1:0x0: + %*1Lg:0x0p0:0:1: + %1Lg:0x0p+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1Lg:0xf.ffffffffffff8p+1020:0:1: + %1Lg:infinity:0:-1: + %*1Lg:infinity:0:-1: +-%1Lg:+nan():0:-1: +-%*1Lg:+nan():0:-1: +-%1Lg:+nan(09A_Zaz):0:-1: +-%*1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %1Lg:+nan():0:-1: ++# BZ30647 %*1Lg:+nan():0:-1: ++# BZ30647 %1Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*1Lg:+nan(09A_Zaz):0:-1: + %1Lg:+0x0p0:0:-1: + %*1Lg:+0x0p0:0:-1: + %1Lg:+0x0p+0:0:-1: +@@ -140,14 +140,14 @@ + %*2Lg:-0x0p+0:0:2: + %2Lg:-0x0p0:1:2:-0x0: + %*2Lg:-0x0p0:0:2: +-%2Lg:-nan(09A_Zaz):0:-1: +-%*2Lg:-nan(09A_Zaz):0:-1: +-%2Lg:-nan():0:-1: +-%*2Lg:-nan():0:-1: +-%2Lg:nan():0:-1: +-%*2Lg:nan():0:-1: +-%2Lg:nan(09A_Zaz):0:-1: +-%*2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:-nan():0:-1: ++# BZ30647 %*2Lg:-nan():0:-1: ++# BZ30647 %2Lg:nan():0:-1: ++# BZ30647 %*2Lg:nan():0:-1: ++# BZ30647 %2Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:nan(09A_Zaz):0:-1: + # BZ12701 %2Lg:0x0p0:0:-1: + # BZ12701 %*2Lg:0x0p0:0:-1: + # BZ12701 %2Lg:0x0p+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2Lg:0xf.ffffffffffff8p+1020:0:-1: + %2Lg:infinity:0:-1: + %*2Lg:infinity:0:-1: +-%2Lg:+nan():0:-1: +-%*2Lg:+nan():0:-1: +-%2Lg:+nan(09A_Zaz):0:-1: +-%*2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %2Lg:+nan():0:-1: ++# BZ30647 %*2Lg:+nan():0:-1: ++# BZ30647 %2Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*2Lg:+nan(09A_Zaz):0:-1: + %2Lg:+0x0p0:1:2:0x0: + %*2Lg:+0x0p0:0:2: + %2Lg:+0x0p+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3Lg:-0x0p+0:0:-1: + # BZ12701 %3Lg:-0x0p0:0:-1: + # BZ12701 %*3Lg:-0x0p0:0:-1: +-%3Lg:-nan(09A_Zaz):0:-1: +-%*3Lg:-nan(09A_Zaz):0:-1: +-%3Lg:-nan():0:-1: +-%*3Lg:-nan():0:-1: +-%3Lg:nan():1:3:nan: +-%*3Lg:nan():0:3: +-%3Lg:nan(09A_Zaz):1:3:nan: +-%*3Lg:nan(09A_Zaz):0:3: ++# BZ30647 %3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:-nan():0:-1: ++# BZ30647 %*3Lg:-nan():0:-1: ++# BZ30647 %3Lg:nan():1:3:nan: ++# BZ30647 %*3Lg:nan():0:3: ++# BZ30647 %3Lg:nan(09A_Zaz):1:3:nan: ++# BZ30647 %*3Lg:nan(09A_Zaz):0:3: + %3Lg:0x0p0:1:3:0x0: + %*3Lg:0x0p0:0:3: + %3Lg:0x0p+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3Lg:0xf.ffffffffffff8p+1020:0:3: + %3Lg:infinity:1:3:inf: + %*3Lg:infinity:0:3: +-%3Lg:+nan():0:-1: +-%*3Lg:+nan():0:-1: +-%3Lg:+nan(09A_Zaz):0:-1: +-%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %3Lg:+nan():0:-1: ++# BZ30647 %*3Lg:+nan():0:-1: ++# BZ30647 %3Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*3Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %3Lg:+0x0p0:0:-1: + # BZ12701 %*3Lg:+0x0p0:0:-1: + # BZ12701 %3Lg:+0x0p+0:0:-1: +@@ -264,14 +264,14 @@ + %*4Lg:-0x0p+0:0:4: + %4Lg:-0x0p0:1:4:-0x0: + %*4Lg:-0x0p0:0:4: +-%4Lg:-nan(09A_Zaz):1:4:-nan: +-%*4Lg:-nan(09A_Zaz):0:4: +-%4Lg:-nan():1:4:-nan: +-%*4Lg:-nan():0:4: +-%4Lg:nan():0:-1: +-%*4Lg:nan():0:-1: +-%4Lg:nan(09A_Zaz):0:-1: +-%*4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %4Lg:-nan(09A_Zaz):1:4:-nan: ++# BZ30647 %*4Lg:-nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:-nan():1:4:-nan: ++# BZ30647 %*4Lg:-nan():0:4: ++# BZ30647 %4Lg:nan():0:-1: ++# BZ30647 %*4Lg:nan():0:-1: ++# BZ30647 %4Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*4Lg:nan(09A_Zaz):0:-1: + # BZ12701 %4Lg:0x0p0:0:-1: + # BZ12701 %*4Lg:0x0p0:0:-1: + # BZ12701 %4Lg:0x0p+0:0:-1: +@@ -288,10 +288,10 @@ + %*4Lg:0xf.ffffffffffff8p+1020:0:4: + %4Lg:infinity:0:-1: + %*4Lg:infinity:0:-1: +-%4Lg:+nan():1:4:nan: +-%*4Lg:+nan():0:4: +-%4Lg:+nan(09A_Zaz):1:4:nan: +-%*4Lg:+nan(09A_Zaz):0:4: ++# BZ30647 %4Lg:+nan():1:4:nan: ++# BZ30647 %*4Lg:+nan():0:4: ++# BZ30647 %4Lg:+nan(09A_Zaz):1:4:nan: ++# BZ30647 %*4Lg:+nan(09A_Zaz):0:4: + %4Lg:+0x0p0:1:4:0x0: + %*4Lg:+0x0p0:0:4: + %4Lg:+0x0p+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5Lg:-0x0p+0:0:-1: + # BZ12701 %5Lg:-0x0p0:0:-1: + # BZ12701 %*5Lg:-0x0p0:0:-1: +-%5Lg:-nan(09A_Zaz):0:-1: +-%*5Lg:-nan(09A_Zaz):0:-1: +-%5Lg:-nan():0:-1: +-%*5Lg:-nan():0:-1: +-%5Lg:nan():1:5:nan: +-%*5Lg:nan():0:5: +-%5Lg:nan(09A_Zaz):0:-1: +-%*5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:-nan():0:-1: ++# BZ30647 %*5Lg:-nan():0:-1: ++# BZ30647 %5Lg:nan():1:5:nan: ++# BZ30647 %*5Lg:nan():0:5: ++# BZ30647 %5Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:nan(09A_Zaz):0:-1: + %5Lg:0x0p0:1:5:0x0: + %*5Lg:0x0p0:0:5: + # BZ12701 %5Lg:0x0p+0:0:-1: +@@ -350,10 +350,10 @@ + %*5Lg:0xf.ffffffffffff8p+1020:0:5: + %5Lg:infinity:0:-1: + %*5Lg:infinity:0:-1: +-%5Lg:+nan():0:-1: +-%*5Lg:+nan():0:-1: +-%5Lg:+nan(09A_Zaz):0:-1: +-%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg:+nan():0:-1: ++# BZ30647 %*5Lg:+nan():0:-1: ++# BZ30647 %5Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg:+nan(09A_Zaz):0:-1: + # BZ12701 %5Lg:+0x0p0:0:-1: + # BZ12701 %*5Lg:+0x0p0:0:-1: + # BZ12701 %5Lg:+0x0p+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6Lg:-0x0p+0:0:-1: + %6Lg:-0x0p0:1:6:-0x0: + %*6Lg:-0x0p0:0:6: +-%6Lg:-nan(09A_Zaz):0:-1: +-%*6Lg:-nan(09A_Zaz):0:-1: +-%6Lg:-nan():1:6:-nan: +-%*6Lg:-nan():0:6: +-%6Lg:nan():1:5:nan: +-%*6Lg:nan():0:5: +-%6Lg:nan(09A_Zaz):0:-1: +-%*6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:-nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:-nan():1:6:-nan: ++# BZ30647 %*6Lg:-nan():0:6: ++# BZ30647 %6Lg:nan():1:5:nan: ++# BZ30647 %*6Lg:nan():0:5: ++# BZ30647 %6Lg:nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:nan(09A_Zaz):0:-1: + %6Lg:0x0p0:1:5:0x0: + %*6Lg:0x0p0:0:5: + %6Lg:0x0p+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6Lg:0xf.ffffffffffff8p+1020:0:6: + %6Lg:infinity:0:-1: + %*6Lg:infinity:0:-1: +-%6Lg:+nan():1:6:nan: +-%*6Lg:+nan():0:6: +-%6Lg:+nan(09A_Zaz):0:-1: +-%*6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %6Lg:+nan():1:6:nan: ++# BZ30647 %*6Lg:+nan():0:6: ++# BZ30647 %6Lg:+nan(09A_Zaz):0:-1: ++# BZ30647 %*6Lg:+nan(09A_Zaz):0:-1: + %6Lg:+0x0p0:1:6:0x0: + %*6Lg:+0x0p0:0:6: + # BZ12701 %6Lg:+0x0p+0:0:-1: +@@ -450,14 +450,14 @@ + %*20Lg:-0x0p+0:0:7: + %20Lg:-0x0p0:1:6:-0x0: + %*20Lg:-0x0p0:0:6: +-%20Lg:-nan(09A_Zaz):1:13:-nan: +-%*20Lg:-nan(09A_Zaz):0:13: +-%20Lg:-nan():1:6:-nan: +-%*20Lg:-nan():0:6: +-%20Lg:nan():1:5:nan: +-%*20Lg:nan():0:5: +-%20Lg:nan(09A_Zaz):1:12:nan: +-%*20Lg:nan(09A_Zaz):0:12: ++# BZ30647 %20Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*20Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %20Lg:-nan():1:6:-nan: ++# BZ30647 %*20Lg:-nan():0:6: ++# BZ30647 %20Lg:nan():1:5:nan: ++# BZ30647 %*20Lg:nan():0:5: ++# BZ30647 %20Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*20Lg:nan(09A_Zaz):0:12: + %20Lg:0x0p0:1:5:0x0: + %*20Lg:0x0p0:0:5: + %20Lg:0x0p+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20Lg:0xf.ffffffffffff8p+1020:0:20: + %20Lg:infinity:1:8:inf: + %*20Lg:infinity:0:8: +-%20Lg:+nan():1:6:nan: +-%*20Lg:+nan():0:6: +-%20Lg:+nan(09A_Zaz):1:13:nan: +-%*20Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %20Lg:+nan():1:6:nan: ++# BZ30647 %*20Lg:+nan():0:6: ++# BZ30647 %20Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*20Lg:+nan(09A_Zaz):0:13: + %20Lg:+0x0p0:1:6:0x0: + %*20Lg:+0x0p0:0:6: + %20Lg:+0x0p+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32Lg:-0x0p+0:0:7: + %32Lg:-0x0p0:1:6:-0x0: + %*32Lg:-0x0p0:0:6: +-%32Lg:-nan(09A_Zaz):1:13:-nan: +-%*32Lg:-nan(09A_Zaz):0:13: +-%32Lg:-nan():1:6:-nan: +-%*32Lg:-nan():0:6: +-%32Lg:nan():1:5:nan: +-%*32Lg:nan():0:5: +-%32Lg:nan(09A_Zaz):1:12:nan: +-%*32Lg:nan(09A_Zaz):0:12: ++# BZ30647 %32Lg:-nan(09A_Zaz):1:13:-nan: ++# BZ30647 %*32Lg:-nan(09A_Zaz):0:13: ++# BZ30647 %32Lg:-nan():1:6:-nan: ++# BZ30647 %*32Lg:-nan():0:6: ++# BZ30647 %32Lg:nan():1:5:nan: ++# BZ30647 %*32Lg:nan():0:5: ++# BZ30647 %32Lg:nan(09A_Zaz):1:12:nan: ++# BZ30647 %*32Lg:nan(09A_Zaz):0:12: + %32Lg:0x0p0:1:5:0x0: + %*32Lg:0x0p0:0:5: + %32Lg:0x0p+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32Lg:0xf.ffffffffffff8p+1020:0:23: + %32Lg:infinity:1:8:inf: + %*32Lg:infinity:0:8: +-%32Lg:+nan():1:6:nan: +-%*32Lg:+nan():0:6: +-%32Lg:+nan(09A_Zaz):1:13:nan: +-%*32Lg:+nan(09A_Zaz):0:13: ++# BZ30647 %32Lg:+nan():1:6:nan: ++# BZ30647 %*32Lg:+nan():0:6: ++# BZ30647 %32Lg:+nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32Lg:+nan(09A_Zaz):0:13: + %32Lg:+0x0p0:1:6:0x0: + %*32Lg:+0x0p0:0:6: + %32Lg:+0x0p+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5Lg: -0x0p+0:0:-1: + # BZ12701 %5Lg: -0x0p0:0:-1: + # BZ12701 %*5Lg: -0x0p0:0:-1: +-%5Lg: -nan(09A_Zaz):0:-1: +-%*5Lg: -nan(09A_Zaz):0:-1: +-%5Lg: -nan():0:-1: +-%*5Lg: -nan():0:-1: +-%5Lg: nan():1:6:nan: +-%*5Lg: nan():0:6: +-%5Lg: nan(09A_Zaz):0:-1: +-%*5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: -nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: -nan():0:-1: ++# BZ30647 %*5Lg: -nan():0:-1: ++# BZ30647 %5Lg: nan():1:6:nan: ++# BZ30647 %*5Lg: nan():0:6: ++# BZ30647 %5Lg: nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: nan(09A_Zaz):0:-1: + %5Lg: 0x0p0:1:6:0x0: + %*5Lg: 0x0p0:0:6: + # BZ12701 %5Lg: 0x0p+0:0:-1: +@@ -598,10 +598,10 @@ + %*5Lg: 0xf.ffffffffffff8p+1020:0:6: + %5Lg: infinity:0:-1: + %*5Lg: infinity:0:-1: +-%5Lg: +nan():0:-1: +-%*5Lg: +nan():0:-1: +-%5Lg: +nan(09A_Zaz):0:-1: +-%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %5Lg: +nan():0:-1: ++# BZ30647 %*5Lg: +nan():0:-1: ++# BZ30647 %5Lg: +nan(09A_Zaz):0:-1: ++# BZ30647 %*5Lg: +nan(09A_Zaz):0:-1: + # BZ12701 %5Lg: +0x0p0:0:-1: + # BZ12701 %*5Lg: +0x0p0:0:-1: + # BZ12701 %5Lg: +0x0p+0:0:-1: +@@ -636,14 +636,14 @@ + %*32Lg: -0x0p+0:0:8: + %32Lg: -0x0p0:1:7:-0x0: + %*32Lg: -0x0p0:0:7: +-%32Lg: -nan(09A_Zaz):1:14:-nan: +-%*32Lg: -nan(09A_Zaz):0:14: +-%32Lg: -nan():1:7:-nan: +-%*32Lg: -nan():0:7: +-%32Lg: nan():1:6:nan: +-%*32Lg: nan():0:6: +-%32Lg: nan(09A_Zaz):1:13:nan: +-%*32Lg: nan(09A_Zaz):0:13: ++# BZ30647 %32Lg: -nan(09A_Zaz):1:14:-nan: ++# BZ30647 %*32Lg: -nan(09A_Zaz):0:14: ++# BZ30647 %32Lg: -nan():1:7:-nan: ++# BZ30647 %*32Lg: -nan():0:7: ++# BZ30647 %32Lg: nan():1:6:nan: ++# BZ30647 %*32Lg: nan():0:6: ++# BZ30647 %32Lg: nan(09A_Zaz):1:13:nan: ++# BZ30647 %*32Lg: nan(09A_Zaz):0:13: + %32Lg: 0x0p0:1:6:0x0: + %*32Lg: 0x0p0:0:6: + %32Lg: 0x0p+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32Lg: 0xf.ffffffffffff8p+1020:0:24: + %32Lg: infinity:1:9:inf: + %*32Lg: infinity:0:9: +-%32Lg: +nan():1:7:nan: +-%*32Lg: +nan():0:7: +-%32Lg: +nan(09A_Zaz):1:14:nan: +-%*32Lg: +nan(09A_Zaz):0:14: ++# BZ30647 %32Lg: +nan():1:7:nan: ++# BZ30647 %*32Lg: +nan():0:7: ++# BZ30647 %32Lg: +nan(09A_Zaz):1:14:nan: ++# BZ30647 %*32Lg: +nan(09A_Zaz):0:14: + %32Lg: +0x0p0:1:7:0x0: + %*32Lg: +0x0p0:0:7: + %32Lg: +0x0p+0:1:8:0x0: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input +index 08684574e561f1c1..764a8e5643d6b47b 100644 +--- a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input +@@ -16,14 +16,14 @@ + %*LG:-0X0P+0:0:7: + %LG:-0X0P0:1:6:-0x0: + %*LG:-0X0P0:0:6: +-%LG:-NAN(09A_Zaz):1:13:-nan: +-%*LG:-NAN(09A_Zaz):0:13: +-%LG:-NAN():1:6:-nan: +-%*LG:-NAN():0:6: +-%LG:NAN():1:5:nan: +-%*LG:NAN():0:5: +-%LG:NAN(09A_Zaz):1:12:nan: +-%*LG:NAN(09A_Zaz):0:12: ++# BZ30647 %LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %LG:-NAN():1:6:-nan: ++# BZ30647 %*LG:-NAN():0:6: ++# BZ30647 %LG:NAN():1:5:nan: ++# BZ30647 %*LG:NAN():0:5: ++# BZ30647 %LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*LG:NAN(09A_Zaz):0:12: + %LG:0X0P0:1:5:0x0: + %*LG:0X0P0:0:5: + %LG:0X0P+0:1:6:0x0: +@@ -40,10 +40,10 @@ + %*LG:0XF.FFFFFFFFFFFF8P+1020:0:23: + %LG:INFINITY:1:8:inf: + %*LG:INFINITY:0:8: +-%LG:+NAN():1:6:nan: +-%*LG:+NAN():0:6: +-%LG:+NAN(09A_Zaz):1:13:nan: +-%*LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %LG:+NAN():1:6:nan: ++# BZ30647 %*LG:+NAN():0:6: ++# BZ30647 %LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*LG:+NAN(09A_Zaz):0:13: + %LG:+0X0P0:1:6:0x0: + %*LG:+0X0P0:0:6: + %LG:+0X0P+0:1:7:0x0: +@@ -78,14 +78,14 @@ + %*1LG:-0X0P+0:0:-1: + %1LG:-0X0P0:0:-1: + %*1LG:-0X0P0:0:-1: +-%1LG:-NAN(09A_Zaz):0:-1: +-%*1LG:-NAN(09A_Zaz):0:-1: +-%1LG:-NAN():0:-1: +-%*1LG:-NAN():0:-1: +-%1LG:NAN():0:-1: +-%*1LG:NAN():0:-1: +-%1LG:NAN(09A_Zaz):0:-1: +-%*1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:-NAN():0:-1: ++# BZ30647 %*1LG:-NAN():0:-1: ++# BZ30647 %1LG:NAN():0:-1: ++# BZ30647 %*1LG:NAN():0:-1: ++# BZ30647 %1LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:NAN(09A_Zaz):0:-1: + %1LG:0X0P0:1:1:0x0: + %*1LG:0X0P0:0:1: + %1LG:0X0P+0:1:1:0x0: +@@ -102,10 +102,10 @@ + %*1LG:0XF.FFFFFFFFFFFF8P+1020:0:1: + %1LG:INFINITY:0:-1: + %*1LG:INFINITY:0:-1: +-%1LG:+NAN():0:-1: +-%*1LG:+NAN():0:-1: +-%1LG:+NAN(09A_Zaz):0:-1: +-%*1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %1LG:+NAN():0:-1: ++# BZ30647 %*1LG:+NAN():0:-1: ++# BZ30647 %1LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*1LG:+NAN(09A_Zaz):0:-1: + %1LG:+0X0P0:0:-1: + %*1LG:+0X0P0:0:-1: + %1LG:+0X0P+0:0:-1: +@@ -140,14 +140,14 @@ + %*2LG:-0X0P+0:0:2: + %2LG:-0X0P0:1:2:-0x0: + %*2LG:-0X0P0:0:2: +-%2LG:-NAN(09A_Zaz):0:-1: +-%*2LG:-NAN(09A_Zaz):0:-1: +-%2LG:-NAN():0:-1: +-%*2LG:-NAN():0:-1: +-%2LG:NAN():0:-1: +-%*2LG:NAN():0:-1: +-%2LG:NAN(09A_Zaz):0:-1: +-%*2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:-NAN():0:-1: ++# BZ30647 %*2LG:-NAN():0:-1: ++# BZ30647 %2LG:NAN():0:-1: ++# BZ30647 %*2LG:NAN():0:-1: ++# BZ30647 %2LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:NAN(09A_Zaz):0:-1: + # BZ12701 %2LG:0X0P0:0:-1: + # BZ12701 %*2LG:0X0P0:0:-1: + # BZ12701 %2LG:0X0P+0:0:-1: +@@ -164,10 +164,10 @@ + # BZ12701 %*2LG:0XF.FFFFFFFFFFFF8P+1020:0:-1: + %2LG:INFINITY:0:-1: + %*2LG:INFINITY:0:-1: +-%2LG:+NAN():0:-1: +-%*2LG:+NAN():0:-1: +-%2LG:+NAN(09A_Zaz):0:-1: +-%*2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %2LG:+NAN():0:-1: ++# BZ30647 %*2LG:+NAN():0:-1: ++# BZ30647 %2LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*2LG:+NAN(09A_Zaz):0:-1: + %2LG:+0X0P0:1:2:0x0: + %*2LG:+0X0P0:0:2: + %2LG:+0X0P+0:1:2:0x0: +@@ -202,14 +202,14 @@ + # BZ12701 %*3LG:-0X0P+0:0:-1: + # BZ12701 %3LG:-0X0P0:0:-1: + # BZ12701 %*3LG:-0X0P0:0:-1: +-%3LG:-NAN(09A_Zaz):0:-1: +-%*3LG:-NAN(09A_Zaz):0:-1: +-%3LG:-NAN():0:-1: +-%*3LG:-NAN():0:-1: +-%3LG:NAN():1:3:nan: +-%*3LG:NAN():0:3: +-%3LG:NAN(09A_Zaz):1:3:nan: +-%*3LG:NAN(09A_Zaz):0:3: ++# BZ30647 %3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:-NAN():0:-1: ++# BZ30647 %*3LG:-NAN():0:-1: ++# BZ30647 %3LG:NAN():1:3:nan: ++# BZ30647 %*3LG:NAN():0:3: ++# BZ30647 %3LG:NAN(09A_Zaz):1:3:nan: ++# BZ30647 %*3LG:NAN(09A_Zaz):0:3: + %3LG:0X0P0:1:3:0x0: + %*3LG:0X0P0:0:3: + %3LG:0X0P+0:1:3:0x0: +@@ -226,10 +226,10 @@ + %*3LG:0XF.FFFFFFFFFFFF8P+1020:0:3: + %3LG:INFINITY:1:3:inf: + %*3LG:INFINITY:0:3: +-%3LG:+NAN():0:-1: +-%*3LG:+NAN():0:-1: +-%3LG:+NAN(09A_Zaz):0:-1: +-%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %3LG:+NAN():0:-1: ++# BZ30647 %*3LG:+NAN():0:-1: ++# BZ30647 %3LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*3LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %3LG:+0X0P0:0:-1: + # BZ12701 %*3LG:+0X0P0:0:-1: + # BZ12701 %3LG:+0X0P+0:0:-1: +@@ -264,14 +264,14 @@ + %*4LG:-0X0P+0:0:4: + %4LG:-0X0P0:1:4:-0x0: + %*4LG:-0X0P0:0:4: +-%4LG:-NAN(09A_Zaz):1:4:-nan: +-%*4LG:-NAN(09A_Zaz):0:4: +-%4LG:-NAN():1:4:-nan: +-%*4LG:-NAN():0:4: +-%4LG:NAN():0:-1: +-%*4LG:NAN():0:-1: +-%4LG:NAN(09A_Zaz):0:-1: +-%*4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %4LG:-NAN(09A_Zaz):1:4:-nan: ++# BZ30647 %*4LG:-NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:-NAN():1:4:-nan: ++# BZ30647 %*4LG:-NAN():0:4: ++# BZ30647 %4LG:NAN():0:-1: ++# BZ30647 %*4LG:NAN():0:-1: ++# BZ30647 %4LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*4LG:NAN(09A_Zaz):0:-1: + # BZ12701 %4LG:0X0P0:0:-1: + # BZ12701 %*4LG:0X0P0:0:-1: + # BZ12701 %4LG:0X0P+0:0:-1: +@@ -288,10 +288,10 @@ + %*4LG:0XF.FFFFFFFFFFFF8P+1020:0:4: + %4LG:INFINITY:0:-1: + %*4LG:INFINITY:0:-1: +-%4LG:+NAN():1:4:nan: +-%*4LG:+NAN():0:4: +-%4LG:+NAN(09A_Zaz):1:4:nan: +-%*4LG:+NAN(09A_Zaz):0:4: ++# BZ30647 %4LG:+NAN():1:4:nan: ++# BZ30647 %*4LG:+NAN():0:4: ++# BZ30647 %4LG:+NAN(09A_Zaz):1:4:nan: ++# BZ30647 %*4LG:+NAN(09A_Zaz):0:4: + %4LG:+0X0P0:1:4:0x0: + %*4LG:+0X0P0:0:4: + %4LG:+0X0P+0:1:4:0x0: +@@ -326,14 +326,14 @@ + # BZ12701 %*5LG:-0X0P+0:0:-1: + # BZ12701 %5LG:-0X0P0:0:-1: + # BZ12701 %*5LG:-0X0P0:0:-1: +-%5LG:-NAN(09A_Zaz):0:-1: +-%*5LG:-NAN(09A_Zaz):0:-1: +-%5LG:-NAN():0:-1: +-%*5LG:-NAN():0:-1: +-%5LG:NAN():1:5:nan: +-%*5LG:NAN():0:5: +-%5LG:NAN(09A_Zaz):0:-1: +-%*5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:-NAN():0:-1: ++# BZ30647 %*5LG:-NAN():0:-1: ++# BZ30647 %5LG:NAN():1:5:nan: ++# BZ30647 %*5LG:NAN():0:5: ++# BZ30647 %5LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:NAN(09A_Zaz):0:-1: + %5LG:0X0P0:1:5:0x0: + %*5LG:0X0P0:0:5: + # BZ12701 %5LG:0X0P+0:0:-1: +@@ -350,10 +350,10 @@ + %*5LG:0XF.FFFFFFFFFFFF8P+1020:0:5: + %5LG:INFINITY:0:-1: + %*5LG:INFINITY:0:-1: +-%5LG:+NAN():0:-1: +-%*5LG:+NAN():0:-1: +-%5LG:+NAN(09A_Zaz):0:-1: +-%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG:+NAN():0:-1: ++# BZ30647 %*5LG:+NAN():0:-1: ++# BZ30647 %5LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG:+NAN(09A_Zaz):0:-1: + # BZ12701 %5LG:+0X0P0:0:-1: + # BZ12701 %*5LG:+0X0P0:0:-1: + # BZ12701 %5LG:+0X0P+0:0:-1: +@@ -388,14 +388,14 @@ + # BZ12701 %*6LG:-0X0P+0:0:-1: + %6LG:-0X0P0:1:6:-0x0: + %*6LG:-0X0P0:0:6: +-%6LG:-NAN(09A_Zaz):0:-1: +-%*6LG:-NAN(09A_Zaz):0:-1: +-%6LG:-NAN():1:6:-nan: +-%*6LG:-NAN():0:6: +-%6LG:NAN():1:5:nan: +-%*6LG:NAN():0:5: +-%6LG:NAN(09A_Zaz):0:-1: +-%*6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:-NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:-NAN():1:6:-nan: ++# BZ30647 %*6LG:-NAN():0:6: ++# BZ30647 %6LG:NAN():1:5:nan: ++# BZ30647 %*6LG:NAN():0:5: ++# BZ30647 %6LG:NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:NAN(09A_Zaz):0:-1: + %6LG:0X0P0:1:5:0x0: + %*6LG:0X0P0:0:5: + %6LG:0X0P+0:1:6:0x0: +@@ -412,10 +412,10 @@ + %*6LG:0XF.FFFFFFFFFFFF8P+1020:0:6: + %6LG:INFINITY:0:-1: + %*6LG:INFINITY:0:-1: +-%6LG:+NAN():1:6:nan: +-%*6LG:+NAN():0:6: +-%6LG:+NAN(09A_Zaz):0:-1: +-%*6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %6LG:+NAN():1:6:nan: ++# BZ30647 %*6LG:+NAN():0:6: ++# BZ30647 %6LG:+NAN(09A_Zaz):0:-1: ++# BZ30647 %*6LG:+NAN(09A_Zaz):0:-1: + %6LG:+0X0P0:1:6:0x0: + %*6LG:+0X0P0:0:6: + # BZ12701 %6LG:+0X0P+0:0:-1: +@@ -450,14 +450,14 @@ + %*20LG:-0X0P+0:0:7: + %20LG:-0X0P0:1:6:-0x0: + %*20LG:-0X0P0:0:6: +-%20LG:-NAN(09A_Zaz):1:13:-nan: +-%*20LG:-NAN(09A_Zaz):0:13: +-%20LG:-NAN():1:6:-nan: +-%*20LG:-NAN():0:6: +-%20LG:NAN():1:5:nan: +-%*20LG:NAN():0:5: +-%20LG:NAN(09A_Zaz):1:12:nan: +-%*20LG:NAN(09A_Zaz):0:12: ++# BZ30647 %20LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*20LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %20LG:-NAN():1:6:-nan: ++# BZ30647 %*20LG:-NAN():0:6: ++# BZ30647 %20LG:NAN():1:5:nan: ++# BZ30647 %*20LG:NAN():0:5: ++# BZ30647 %20LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*20LG:NAN(09A_Zaz):0:12: + %20LG:0X0P0:1:5:0x0: + %*20LG:0X0P0:0:5: + %20LG:0X0P+0:1:6:0x0: +@@ -474,10 +474,10 @@ + %*20LG:0XF.FFFFFFFFFFFF8P+1020:0:20: + %20LG:INFINITY:1:8:inf: + %*20LG:INFINITY:0:8: +-%20LG:+NAN():1:6:nan: +-%*20LG:+NAN():0:6: +-%20LG:+NAN(09A_Zaz):1:13:nan: +-%*20LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %20LG:+NAN():1:6:nan: ++# BZ30647 %*20LG:+NAN():0:6: ++# BZ30647 %20LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*20LG:+NAN(09A_Zaz):0:13: + %20LG:+0X0P0:1:6:0x0: + %*20LG:+0X0P0:0:6: + %20LG:+0X0P+0:1:7:0x0: +@@ -512,14 +512,14 @@ + %*32LG:-0X0P+0:0:7: + %32LG:-0X0P0:1:6:-0x0: + %*32LG:-0X0P0:0:6: +-%32LG:-NAN(09A_Zaz):1:13:-nan: +-%*32LG:-NAN(09A_Zaz):0:13: +-%32LG:-NAN():1:6:-nan: +-%*32LG:-NAN():0:6: +-%32LG:NAN():1:5:nan: +-%*32LG:NAN():0:5: +-%32LG:NAN(09A_Zaz):1:12:nan: +-%*32LG:NAN(09A_Zaz):0:12: ++# BZ30647 %32LG:-NAN(09A_Zaz):1:13:-nan: ++# BZ30647 %*32LG:-NAN(09A_Zaz):0:13: ++# BZ30647 %32LG:-NAN():1:6:-nan: ++# BZ30647 %*32LG:-NAN():0:6: ++# BZ30647 %32LG:NAN():1:5:nan: ++# BZ30647 %*32LG:NAN():0:5: ++# BZ30647 %32LG:NAN(09A_Zaz):1:12:nan: ++# BZ30647 %*32LG:NAN(09A_Zaz):0:12: + %32LG:0X0P0:1:5:0x0: + %*32LG:0X0P0:0:5: + %32LG:0X0P+0:1:6:0x0: +@@ -536,10 +536,10 @@ + %*32LG:0XF.FFFFFFFFFFFF8P+1020:0:23: + %32LG:INFINITY:1:8:inf: + %*32LG:INFINITY:0:8: +-%32LG:+NAN():1:6:nan: +-%*32LG:+NAN():0:6: +-%32LG:+NAN(09A_Zaz):1:13:nan: +-%*32LG:+NAN(09A_Zaz):0:13: ++# BZ30647 %32LG:+NAN():1:6:nan: ++# BZ30647 %*32LG:+NAN():0:6: ++# BZ30647 %32LG:+NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32LG:+NAN(09A_Zaz):0:13: + %32LG:+0X0P0:1:6:0x0: + %*32LG:+0X0P0:0:6: + %32LG:+0X0P+0:1:7:0x0: +@@ -574,14 +574,14 @@ + # BZ12701 %*5LG: -0X0P+0:0:-1: + # BZ12701 %5LG: -0X0P0:0:-1: + # BZ12701 %*5LG: -0X0P0:0:-1: +-%5LG: -NAN(09A_Zaz):0:-1: +-%*5LG: -NAN(09A_Zaz):0:-1: +-%5LG: -NAN():0:-1: +-%*5LG: -NAN():0:-1: +-%5LG: NAN():1:6:nan: +-%*5LG: NAN():0:6: +-%5LG: NAN(09A_Zaz):0:-1: +-%*5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: -NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: -NAN():0:-1: ++# BZ30647 %*5LG: -NAN():0:-1: ++# BZ30647 %5LG: NAN():1:6:nan: ++# BZ30647 %*5LG: NAN():0:6: ++# BZ30647 %5LG: NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: NAN(09A_Zaz):0:-1: + %5LG: 0X0P0:1:6:0x0: + %*5LG: 0X0P0:0:6: + # BZ12701 %5LG: 0X0P+0:0:-1: +@@ -598,10 +598,10 @@ + %*5LG: 0XF.FFFFFFFFFFFF8P+1020:0:6: + %5LG: INFINITY:0:-1: + %*5LG: INFINITY:0:-1: +-%5LG: +NAN():0:-1: +-%*5LG: +NAN():0:-1: +-%5LG: +NAN(09A_Zaz):0:-1: +-%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %5LG: +NAN():0:-1: ++# BZ30647 %*5LG: +NAN():0:-1: ++# BZ30647 %5LG: +NAN(09A_Zaz):0:-1: ++# BZ30647 %*5LG: +NAN(09A_Zaz):0:-1: + # BZ12701 %5LG: +0X0P0:0:-1: + # BZ12701 %*5LG: +0X0P0:0:-1: + # BZ12701 %5LG: +0X0P+0:0:-1: +@@ -636,14 +636,14 @@ + %*32LG: -0X0P+0:0:8: + %32LG: -0X0P0:1:7:-0x0: + %*32LG: -0X0P0:0:7: +-%32LG: -NAN(09A_Zaz):1:14:-nan: +-%*32LG: -NAN(09A_Zaz):0:14: +-%32LG: -NAN():1:7:-nan: +-%*32LG: -NAN():0:7: +-%32LG: NAN():1:6:nan: +-%*32LG: NAN():0:6: +-%32LG: NAN(09A_Zaz):1:13:nan: +-%*32LG: NAN(09A_Zaz):0:13: ++# BZ30647 %32LG: -NAN(09A_Zaz):1:14:-nan: ++# BZ30647 %*32LG: -NAN(09A_Zaz):0:14: ++# BZ30647 %32LG: -NAN():1:7:-nan: ++# BZ30647 %*32LG: -NAN():0:7: ++# BZ30647 %32LG: NAN():1:6:nan: ++# BZ30647 %*32LG: NAN():0:6: ++# BZ30647 %32LG: NAN(09A_Zaz):1:13:nan: ++# BZ30647 %*32LG: NAN(09A_Zaz):0:13: + %32LG: 0X0P0:1:6:0x0: + %*32LG: 0X0P0:0:6: + %32LG: 0X0P+0:1:7:0x0: +@@ -660,10 +660,10 @@ + %*32LG: 0XF.FFFFFFFFFFFF8P+1020:0:24: + %32LG: INFINITY:1:9:inf: + %*32LG: INFINITY:0:9: +-%32LG: +NAN():1:7:nan: +-%*32LG: +NAN():0:7: +-%32LG: +NAN(09A_Zaz):1:14:nan: +-%*32LG: +NAN(09A_Zaz):0:14: ++# BZ30647 %32LG: +NAN():1:7:nan: ++# BZ30647 %*32LG: +NAN():0:7: ++# BZ30647 %32LG: +NAN(09A_Zaz):1:14:nan: ++# BZ30647 %*32LG: +NAN(09A_Zaz):0:14: + %32LG: +0X0P0:1:7:0x0: + %*32LG: +0X0P0:0:7: + %32LG: +0X0P+0:1:8:0x0: diff --git a/glibc-RHEL-119433-2.patch b/glibc-RHEL-119433-2.patch new file mode 100644 index 0000000..8b08225 --- /dev/null +++ b/glibc-RHEL-119433-2.patch @@ -0,0 +1,9159 @@ +commit d7584e4d367ccb281ecf68980995e9b5ca0aff46 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf integer data for ILP32 targets + + Add Makefile infrastructure and `int' and `long' integer input data, + signed and unsigned, for ILP32 targets. + + While the size of `int' data is the same between ILP32 and LP64 targets, + resulting scanf output is different between them for out of range input + data and while ISO C and POSIX both say that the behavior is undefined + if the result of the conversion cannot be represented we want to keep + track of our output to prevent inadvertent changes. Hence the use of + distinct `int' integer input data between ILP32 and LP64 targets. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0b' or '0x'. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/wordsize-32/Makefile b/sysdeps/wordsize-32/Makefile +new file mode 100644 +index 0000000000000000..5b5aa292667181d4 +--- /dev/null ++++ b/sysdeps/wordsize-32/Makefile +@@ -0,0 +1,4 @@ ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-int-convs += int long ++fmt-xscanf-uint-convs += uint ulong ++endif +diff --git a/sysdeps/wordsize-32/tst-scanf-format-int-d.input b/sysdeps/wordsize-32/tst-scanf-format-int-d.input +new file mode 100644 +index 0000000000000000..5347e290df6c4165 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-int-d.input +@@ -0,0 +1,266 @@ ++%d::0:-1: ++%*d::0:-1: ++%d:-2147484882:1:11:-2147483648: ++%*d:-2147484882:0:11: ++%d:-2147483649:1:11:-2147483648: ++%*d:-2147483649:0:11: ++%d:-2147483648:1:11:-2147483648: ++%*d:-2147483648:0:11: ++%d:-123:1:4:-123: ++%*d:-123:0:4: ++%d:-1:1:2:-1: ++%*d:-1:0:2: ++%d:-0:1:2:0: ++%*d:-0:0:2: ++%d:0:1:1:0: ++%*d:0:0:1: ++%d:1:1:1:1: ++%*d:1:0:1: ++%d:42:1:2:42: ++%*d:42:0:2: ++%d:2147483647:1:10:2147483647: ++%*d:2147483647:0:10: ++%d:2147483648:1:10:2147483647: ++%*d:2147483648:0:10: ++%d:2147487889:1:10:2147483647: ++%*d:2147487889:0:10: ++%d:+0:1:2:0: ++%*d:+0:0:2: ++%d:+1:1:2:1: ++%*d:+1:0:2: ++%d:+42:1:3:42: ++%*d:+42:0:3: ++%d:+2147483647:1:11:2147483647: ++%*d:+2147483647:0:11: ++%d:+2147483648:1:11:2147483647: ++%*d:+2147483648:0:11: ++%d:+2147487889:1:11:2147483647: ++%*d:+2147487889:0:11: ++%1d::0:-1: ++%*1d::0:-1: ++%1d:-2147484882:0:-1: ++%*1d:-2147484882:0:-1: ++%1d:-2147483649:0:-1: ++%*1d:-2147483649:0:-1: ++%1d:-2147483648:0:-1: ++%*1d:-2147483648:0:-1: ++%1d:-123:0:-1: ++%*1d:-123:0:-1: ++%1d:-1:0:-1: ++%*1d:-1:0:-1: ++%1d:-0:0:-1: ++%*1d:-0:0:-1: ++%1d:0:1:1:0: ++%*1d:0:0:1: ++%1d:1:1:1:1: ++%*1d:1:0:1: ++%1d:42:1:1:4: ++%*1d:42:0:1: ++%1d:2147483647:1:1:2: ++%*1d:2147483647:0:1: ++%1d:2147483648:1:1:2: ++%*1d:2147483648:0:1: ++%1d:2147487889:1:1:2: ++%*1d:2147487889:0:1: ++%1d:+0:0:-1: ++%*1d:+0:0:-1: ++%1d:+1:0:-1: ++%*1d:+1:0:-1: ++%1d:+42:0:-1: ++%*1d:+42:0:-1: ++%1d:+2147483647:0:-1: ++%*1d:+2147483647:0:-1: ++%1d:+2147483648:0:-1: ++%*1d:+2147483648:0:-1: ++%1d:+2147487889:0:-1: ++%*1d:+2147487889:0:-1: ++%2d::0:-1: ++%*2d::0:-1: ++%2d:-2147484882:1:2:-2: ++%*2d:-2147484882:0:2: ++%2d:-2147483649:1:2:-2: ++%*2d:-2147483649:0:2: ++%2d:-2147483648:1:2:-2: ++%*2d:-2147483648:0:2: ++%2d:-123:1:2:-1: ++%*2d:-123:0:2: ++%2d:-1:1:2:-1: ++%*2d:-1:0:2: ++%2d:-0:1:2:0: ++%*2d:-0:0:2: ++%2d:0:1:1:0: ++%*2d:0:0:1: ++%2d:1:1:1:1: ++%*2d:1:0:1: ++%2d:42:1:2:42: ++%*2d:42:0:2: ++%2d:2147483647:1:2:21: ++%*2d:2147483647:0:2: ++%2d:2147483648:1:2:21: ++%*2d:2147483648:0:2: ++%2d:2147487889:1:2:21: ++%*2d:2147487889:0:2: ++%2d:+0:1:2:0: ++%*2d:+0:0:2: ++%2d:+1:1:2:1: ++%*2d:+1:0:2: ++%2d:+42:1:2:4: ++%*2d:+42:0:2: ++%2d:+2147483647:1:2:2: ++%*2d:+2147483647:0:2: ++%2d:+2147483648:1:2:2: ++%*2d:+2147483648:0:2: ++%2d:+2147487889:1:2:2: ++%*2d:+2147487889:0:2: ++%8d::0:-1: ++%*8d::0:-1: ++%8d:-2147484882:1:8:-2147484: ++%*8d:-2147484882:0:8: ++%8d:-2147483649:1:8:-2147483: ++%*8d:-2147483649:0:8: ++%8d:-2147483648:1:8:-2147483: ++%*8d:-2147483648:0:8: ++%8d:-123:1:4:-123: ++%*8d:-123:0:4: ++%8d:-1:1:2:-1: ++%*8d:-1:0:2: ++%8d:-0:1:2:0: ++%*8d:-0:0:2: ++%8d:0:1:1:0: ++%*8d:0:0:1: ++%8d:1:1:1:1: ++%*8d:1:0:1: ++%8d:42:1:2:42: ++%*8d:42:0:2: ++%8d:2147483647:1:8:21474836: ++%*8d:2147483647:0:8: ++%8d:2147483648:1:8:21474836: ++%*8d:2147483648:0:8: ++%8d:2147487889:1:8:21474878: ++%*8d:2147487889:0:8: ++%8d:+0:1:2:0: ++%*8d:+0:0:2: ++%8d:+1:1:2:1: ++%*8d:+1:0:2: ++%8d:+42:1:3:42: ++%*8d:+42:0:3: ++%8d:+2147483647:1:8:2147483: ++%*8d:+2147483647:0:8: ++%8d:+2147483648:1:8:2147483: ++%*8d:+2147483648:0:8: ++%8d:+2147487889:1:8:2147487: ++%*8d:+2147487889:0:8: ++%15d::0:-1: ++%*15d::0:-1: ++%15d:-2147484882:1:11:-2147483648: ++%*15d:-2147484882:0:11: ++%15d:-2147483649:1:11:-2147483648: ++%*15d:-2147483649:0:11: ++%15d:-2147483648:1:11:-2147483648: ++%*15d:-2147483648:0:11: ++%15d:-123:1:4:-123: ++%*15d:-123:0:4: ++%15d:-1:1:2:-1: ++%*15d:-1:0:2: ++%15d:-0:1:2:0: ++%*15d:-0:0:2: ++%15d:0:1:1:0: ++%*15d:0:0:1: ++%15d:1:1:1:1: ++%*15d:1:0:1: ++%15d:42:1:2:42: ++%*15d:42:0:2: ++%15d:2147483647:1:10:2147483647: ++%*15d:2147483647:0:10: ++%15d:2147483648:1:10:2147483647: ++%*15d:2147483648:0:10: ++%15d:2147487889:1:10:2147483647: ++%*15d:2147487889:0:10: ++%15d:+0:1:2:0: ++%*15d:+0:0:2: ++%15d:+1:1:2:1: ++%*15d:+1:0:2: ++%15d:+42:1:3:42: ++%*15d:+42:0:3: ++%15d:+2147483647:1:11:2147483647: ++%*15d:+2147483647:0:11: ++%15d:+2147483648:1:11:2147483647: ++%*15d:+2147483648:0:11: ++%15d:+2147487889:1:11:2147483647: ++%*15d:+2147487889:0:11: ++%2d: :0:-1: ++%*2d: :0:-1: ++%2d: -2147484882:1:3:-2: ++%*2d: -2147484882:0:3: ++%2d: -2147483649:1:3:-2: ++%*2d: -2147483649:0:3: ++%2d: -2147483648:1:3:-2: ++%*2d: -2147483648:0:3: ++%2d: -123:1:3:-1: ++%*2d: -123:0:3: ++%2d: -1:1:3:-1: ++%*2d: -1:0:3: ++%2d: -0:1:3:0: ++%*2d: -0:0:3: ++%2d: 0:1:2:0: ++%*2d: 0:0:2: ++%2d: 1:1:2:1: ++%*2d: 1:0:2: ++%2d: 42:1:3:42: ++%*2d: 42:0:3: ++%2d: 2147483647:1:3:21: ++%*2d: 2147483647:0:3: ++%2d: 2147483648:1:3:21: ++%*2d: 2147483648:0:3: ++%2d: 2147487889:1:3:21: ++%*2d: 2147487889:0:3: ++%2d: +0:1:3:0: ++%*2d: +0:0:3: ++%2d: +1:1:3:1: ++%*2d: +1:0:3: ++%2d: +42:1:3:4: ++%*2d: +42:0:3: ++%2d: +2147483647:1:3:2: ++%*2d: +2147483647:0:3: ++%2d: +2147483648:1:3:2: ++%*2d: +2147483648:0:3: ++%2d: +2147487889:1:3:2: ++%*2d: +2147487889:0:3: ++%15d: :0:-1: ++%*15d: :0:-1: ++%15d: -2147484882:1:12:-2147483648: ++%*15d: -2147484882:0:12: ++%15d: -2147483649:1:12:-2147483648: ++%*15d: -2147483649:0:12: ++%15d: -2147483648:1:12:-2147483648: ++%*15d: -2147483648:0:12: ++%15d: -123:1:5:-123: ++%*15d: -123:0:5: ++%15d: -1:1:3:-1: ++%*15d: -1:0:3: ++%15d: -0:1:3:0: ++%*15d: -0:0:3: ++%15d: 0:1:2:0: ++%*15d: 0:0:2: ++%15d: 1:1:2:1: ++%*15d: 1:0:2: ++%15d: 42:1:3:42: ++%*15d: 42:0:3: ++%15d: 2147483647:1:11:2147483647: ++%*15d: 2147483647:0:11: ++%15d: 2147483648:1:11:2147483647: ++%*15d: 2147483648:0:11: ++%15d: 2147487889:1:11:2147483647: ++%*15d: 2147487889:0:11: ++%15d: +0:1:3:0: ++%*15d: +0:0:3: ++%15d: +1:1:3:1: ++%*15d: +1:0:3: ++%15d: +42:1:4:42: ++%*15d: +42:0:4: ++%15d: +2147483647:1:12:2147483647: ++%*15d: +2147483647:0:12: ++%15d: +2147483648:1:12:2147483647: ++%*15d: +2147483648:0:12: ++%15d: +2147487889:1:12:2147483647: ++%*15d: +2147487889:0:12: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-int-i.input b/sysdeps/wordsize-32/tst-scanf-format-int-i.input +new file mode 100644 +index 0000000000000000..212295beedba6bd7 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-int-i.input +@@ -0,0 +1,1526 @@ ++%i::0:-1: ++%*i::0:-1: ++%i:-2147484882:1:11:-2147483648: ++%*i:-2147484882:0:11: ++%i:-0X800004d2:1:11:-2147483648: ++%*i:-0X800004d2:0:11: ++%i:-0x800004D2:1:11:-2147483648: ++%*i:-0x800004D2:0:11: ++%i:-020000002322:1:13:-2147483648: ++%*i:-020000002322:0:13: ++%i:-0B10000000000000000000010011010010:1:35:-2147483648: ++%*i:-0B10000000000000000000010011010010:0:35: ++%i:-0b10000000000000000000010011010010:1:35:-2147483648: ++%*i:-0b10000000000000000000010011010010:0:35: ++%i:-2147483649:1:11:-2147483648: ++%*i:-2147483649:0:11: ++%i:-0X80000001:1:11:-2147483648: ++%*i:-0X80000001:0:11: ++%i:-0x80000001:1:11:-2147483648: ++%*i:-0x80000001:0:11: ++%i:-020000000001:1:13:-2147483648: ++%*i:-020000000001:0:13: ++%i:-0B10000000000000000000000000000001:1:35:-2147483648: ++%*i:-0B10000000000000000000000000000001:0:35: ++%i:-0b10000000000000000000000000000001:1:35:-2147483648: ++%*i:-0b10000000000000000000000000000001:0:35: ++%i:-2147483648:1:11:-2147483648: ++%*i:-2147483648:0:11: ++%i:-0X80000000:1:11:-2147483648: ++%*i:-0X80000000:0:11: ++%i:-0x80000000:1:11:-2147483648: ++%*i:-0x80000000:0:11: ++%i:-020000000000:1:13:-2147483648: ++%*i:-020000000000:0:13: ++%i:-0B10000000000000000000000000000000:1:35:-2147483648: ++%*i:-0B10000000000000000000000000000000:0:35: ++%i:-0b10000000000000000000000000000000:1:35:-2147483648: ++%*i:-0b10000000000000000000000000000000:0:35: ++%i:-123:1:4:-123: ++%*i:-123:0:4: ++%i:-0X7b:1:5:-123: ++%*i:-0X7b:0:5: ++%i:-0x7B:1:5:-123: ++%*i:-0x7B:0:5: ++%i:-0173:1:5:-123: ++%*i:-0173:0:5: ++%i:-0B1111011:1:10:-123: ++%*i:-0B1111011:0:10: ++%i:-0b1111011:1:10:-123: ++%*i:-0b1111011:0:10: ++%i:-1:1:2:-1: ++%*i:-1:0:2: ++%i:-0X1:1:4:-1: ++%*i:-0X1:0:4: ++%i:-0x1:1:4:-1: ++%*i:-0x1:0:4: ++%i:-01:1:3:-1: ++%*i:-01:0:3: ++%i:-0B1:1:4:-1: ++%*i:-0B1:0:4: ++%i:-0b1:1:4:-1: ++%*i:-0b1:0:4: ++%i:-0:1:2:0: ++%*i:-0:0:2: ++%i:-0X0:1:4:0: ++%*i:-0X0:0:4: ++%i:-0x0:1:4:0: ++%*i:-0x0:0:4: ++%i:-00:1:3:0: ++%*i:-00:0:3: ++%i:-0B0:1:4:0: ++%*i:-0B0:0:4: ++%i:-0b0:1:4:0: ++%*i:-0b0:0:4: ++%i:0:1:1:0: ++%*i:0:0:1: ++%i:0X0:1:3:0: ++%*i:0X0:0:3: ++%i:0x0:1:3:0: ++%*i:0x0:0:3: ++%i:00:1:2:0: ++%*i:00:0:2: ++%i:0B0:1:3:0: ++%*i:0B0:0:3: ++%i:0b0:1:3:0: ++%*i:0b0:0:3: ++%i:1:1:1:1: ++%*i:1:0:1: ++%i:0X1:1:3:1: ++%*i:0X1:0:3: ++%i:0x1:1:3:1: ++%*i:0x1:0:3: ++%i:01:1:2:1: ++%*i:01:0:2: ++%i:0B1:1:3:1: ++%*i:0B1:0:3: ++%i:0b1:1:3:1: ++%*i:0b1:0:3: ++%i:42:1:2:42: ++%*i:42:0:2: ++%i:0X2a:1:4:42: ++%*i:0X2a:0:4: ++%i:0x2A:1:4:42: ++%*i:0x2A:0:4: ++%i:052:1:3:42: ++%*i:052:0:3: ++%i:0B101010:1:8:42: ++%*i:0B101010:0:8: ++%i:0b101010:1:8:42: ++%*i:0b101010:0:8: ++%i:2147483647:1:10:2147483647: ++%*i:2147483647:0:10: ++%i:0X7fffffff:1:10:2147483647: ++%*i:0X7fffffff:0:10: ++%i:0x7FFFFFFF:1:10:2147483647: ++%*i:0x7FFFFFFF:0:10: ++%i:017777777777:1:12:2147483647: ++%*i:017777777777:0:12: ++%i:0B1111111111111111111111111111111:1:33:2147483647: ++%*i:0B1111111111111111111111111111111:0:33: ++%i:0b1111111111111111111111111111111:1:33:2147483647: ++%*i:0b1111111111111111111111111111111:0:33: ++%i:2147483648:1:10:2147483647: ++%*i:2147483648:0:10: ++%i:0X80000000:1:10:2147483647: ++%*i:0X80000000:0:10: ++%i:0x80000000:1:10:2147483647: ++%*i:0x80000000:0:10: ++%i:020000000000:1:12:2147483647: ++%*i:020000000000:0:12: ++%i:0B10000000000000000000000000000000:1:34:2147483647: ++%*i:0B10000000000000000000000000000000:0:34: ++%i:0b10000000000000000000000000000000:1:34:2147483647: ++%*i:0b10000000000000000000000000000000:0:34: ++%i:2147487889:1:10:2147483647: ++%*i:2147487889:0:10: ++%i:0X80001091:1:10:2147483647: ++%*i:0X80001091:0:10: ++%i:0x80001091:1:10:2147483647: ++%*i:0x80001091:0:10: ++%i:020000010221:1:12:2147483647: ++%*i:020000010221:0:12: ++%i:0B10000000000000000001000010010001:1:34:2147483647: ++%*i:0B10000000000000000001000010010001:0:34: ++%i:0b10000000000000000001000010010001:1:34:2147483647: ++%*i:0b10000000000000000001000010010001:0:34: ++%i:+0:1:2:0: ++%*i:+0:0:2: ++%i:+0X0:1:4:0: ++%*i:+0X0:0:4: ++%i:+0x0:1:4:0: ++%*i:+0x0:0:4: ++%i:+00:1:3:0: ++%*i:+00:0:3: ++%i:+0B0:1:4:0: ++%*i:+0B0:0:4: ++%i:+0b0:1:4:0: ++%*i:+0b0:0:4: ++%i:+1:1:2:1: ++%*i:+1:0:2: ++%i:+0X1:1:4:1: ++%*i:+0X1:0:4: ++%i:+0x1:1:4:1: ++%*i:+0x1:0:4: ++%i:+01:1:3:1: ++%*i:+01:0:3: ++%i:+0B1:1:4:1: ++%*i:+0B1:0:4: ++%i:+0b1:1:4:1: ++%*i:+0b1:0:4: ++%i:+42:1:3:42: ++%*i:+42:0:3: ++%i:+0X2a:1:5:42: ++%*i:+0X2a:0:5: ++%i:+0x2A:1:5:42: ++%*i:+0x2A:0:5: ++%i:+052:1:4:42: ++%*i:+052:0:4: ++%i:+0B101010:1:9:42: ++%*i:+0B101010:0:9: ++%i:+0b101010:1:9:42: ++%*i:+0b101010:0:9: ++%i:+2147483647:1:11:2147483647: ++%*i:+2147483647:0:11: ++%i:+0X7fffffff:1:11:2147483647: ++%*i:+0X7fffffff:0:11: ++%i:+0x7FFFFFFF:1:11:2147483647: ++%*i:+0x7FFFFFFF:0:11: ++%i:+017777777777:1:13:2147483647: ++%*i:+017777777777:0:13: ++%i:+0B1111111111111111111111111111111:1:34:2147483647: ++%*i:+0B1111111111111111111111111111111:0:34: ++%i:+0b1111111111111111111111111111111:1:34:2147483647: ++%*i:+0b1111111111111111111111111111111:0:34: ++%i:+2147483648:1:11:2147483647: ++%*i:+2147483648:0:11: ++%i:+0X80000000:1:11:2147483647: ++%*i:+0X80000000:0:11: ++%i:+0x80000000:1:11:2147483647: ++%*i:+0x80000000:0:11: ++%i:+020000000000:1:13:2147483647: ++%*i:+020000000000:0:13: ++%i:+0B10000000000000000000000000000000:1:35:2147483647: ++%*i:+0B10000000000000000000000000000000:0:35: ++%i:+0b10000000000000000000000000000000:1:35:2147483647: ++%*i:+0b10000000000000000000000000000000:0:35: ++%i:+2147487889:1:11:2147483647: ++%*i:+2147487889:0:11: ++%i:+0X80001091:1:11:2147483647: ++%*i:+0X80001091:0:11: ++%i:+0x80001091:1:11:2147483647: ++%*i:+0x80001091:0:11: ++%i:+020000010221:1:13:2147483647: ++%*i:+020000010221:0:13: ++%i:+0B10000000000000000001000010010001:1:35:2147483647: ++%*i:+0B10000000000000000001000010010001:0:35: ++%i:+0b10000000000000000001000010010001:1:35:2147483647: ++%*i:+0b10000000000000000001000010010001:0:35: ++%1i::0:-1: ++%*1i::0:-1: ++%1i:-2147484882:0:-1: ++%*1i:-2147484882:0:-1: ++%1i:-0X800004d2:0:-1: ++%*1i:-0X800004d2:0:-1: ++%1i:-0x800004D2:0:-1: ++%*1i:-0x800004D2:0:-1: ++%1i:-020000002322:0:-1: ++%*1i:-020000002322:0:-1: ++%1i:-0B10000000000000000000010011010010:0:-1: ++%*1i:-0B10000000000000000000010011010010:0:-1: ++%1i:-0b10000000000000000000010011010010:0:-1: ++%*1i:-0b10000000000000000000010011010010:0:-1: ++%1i:-2147483649:0:-1: ++%*1i:-2147483649:0:-1: ++%1i:-0X80000001:0:-1: ++%*1i:-0X80000001:0:-1: ++%1i:-0x80000001:0:-1: ++%*1i:-0x80000001:0:-1: ++%1i:-020000000001:0:-1: ++%*1i:-020000000001:0:-1: ++%1i:-0B10000000000000000000000000000001:0:-1: ++%*1i:-0B10000000000000000000000000000001:0:-1: ++%1i:-0b10000000000000000000000000000001:0:-1: ++%*1i:-0b10000000000000000000000000000001:0:-1: ++%1i:-2147483648:0:-1: ++%*1i:-2147483648:0:-1: ++%1i:-0X80000000:0:-1: ++%*1i:-0X80000000:0:-1: ++%1i:-0x80000000:0:-1: ++%*1i:-0x80000000:0:-1: ++%1i:-020000000000:0:-1: ++%*1i:-020000000000:0:-1: ++%1i:-0B10000000000000000000000000000000:0:-1: ++%*1i:-0B10000000000000000000000000000000:0:-1: ++%1i:-0b10000000000000000000000000000000:0:-1: ++%*1i:-0b10000000000000000000000000000000:0:-1: ++%1i:-123:0:-1: ++%*1i:-123:0:-1: ++%1i:-0X7b:0:-1: ++%*1i:-0X7b:0:-1: ++%1i:-0x7B:0:-1: ++%*1i:-0x7B:0:-1: ++%1i:-0173:0:-1: ++%*1i:-0173:0:-1: ++%1i:-0B1111011:0:-1: ++%*1i:-0B1111011:0:-1: ++%1i:-0b1111011:0:-1: ++%*1i:-0b1111011:0:-1: ++%1i:-1:0:-1: ++%*1i:-1:0:-1: ++%1i:-0X1:0:-1: ++%*1i:-0X1:0:-1: ++%1i:-0x1:0:-1: ++%*1i:-0x1:0:-1: ++%1i:-01:0:-1: ++%*1i:-01:0:-1: ++%1i:-0B1:0:-1: ++%*1i:-0B1:0:-1: ++%1i:-0b1:0:-1: ++%*1i:-0b1:0:-1: ++%1i:-0:0:-1: ++%*1i:-0:0:-1: ++%1i:-0X0:0:-1: ++%*1i:-0X0:0:-1: ++%1i:-0x0:0:-1: ++%*1i:-0x0:0:-1: ++%1i:-00:0:-1: ++%*1i:-00:0:-1: ++%1i:-0B0:0:-1: ++%*1i:-0B0:0:-1: ++%1i:-0b0:0:-1: ++%*1i:-0b0:0:-1: ++%1i:0:1:1:0: ++%*1i:0:0:1: ++%1i:0X0:1:1:0: ++%*1i:0X0:0:1: ++%1i:0x0:1:1:0: ++%*1i:0x0:0:1: ++%1i:00:1:1:0: ++%*1i:00:0:1: ++%1i:0B0:1:1:0: ++%*1i:0B0:0:1: ++%1i:0b0:1:1:0: ++%*1i:0b0:0:1: ++%1i:1:1:1:1: ++%*1i:1:0:1: ++%1i:0X1:1:1:0: ++%*1i:0X1:0:1: ++%1i:0x1:1:1:0: ++%*1i:0x1:0:1: ++%1i:01:1:1:0: ++%*1i:01:0:1: ++%1i:0B1:1:1:0: ++%*1i:0B1:0:1: ++%1i:0b1:1:1:0: ++%*1i:0b1:0:1: ++%1i:42:1:1:4: ++%*1i:42:0:1: ++%1i:0X2a:1:1:0: ++%*1i:0X2a:0:1: ++%1i:0x2A:1:1:0: ++%*1i:0x2A:0:1: ++%1i:052:1:1:0: ++%*1i:052:0:1: ++%1i:0B101010:1:1:0: ++%*1i:0B101010:0:1: ++%1i:0b101010:1:1:0: ++%*1i:0b101010:0:1: ++%1i:2147483647:1:1:2: ++%*1i:2147483647:0:1: ++%1i:0X7fffffff:1:1:0: ++%*1i:0X7fffffff:0:1: ++%1i:0x7FFFFFFF:1:1:0: ++%*1i:0x7FFFFFFF:0:1: ++%1i:017777777777:1:1:0: ++%*1i:017777777777:0:1: ++%1i:0B1111111111111111111111111111111:1:1:0: ++%*1i:0B1111111111111111111111111111111:0:1: ++%1i:0b1111111111111111111111111111111:1:1:0: ++%*1i:0b1111111111111111111111111111111:0:1: ++%1i:2147483648:1:1:2: ++%*1i:2147483648:0:1: ++%1i:0X80000000:1:1:0: ++%*1i:0X80000000:0:1: ++%1i:0x80000000:1:1:0: ++%*1i:0x80000000:0:1: ++%1i:020000000000:1:1:0: ++%*1i:020000000000:0:1: ++%1i:0B10000000000000000000000000000000:1:1:0: ++%*1i:0B10000000000000000000000000000000:0:1: ++%1i:0b10000000000000000000000000000000:1:1:0: ++%*1i:0b10000000000000000000000000000000:0:1: ++%1i:2147487889:1:1:2: ++%*1i:2147487889:0:1: ++%1i:0X80001091:1:1:0: ++%*1i:0X80001091:0:1: ++%1i:0x80001091:1:1:0: ++%*1i:0x80001091:0:1: ++%1i:020000010221:1:1:0: ++%*1i:020000010221:0:1: ++%1i:0B10000000000000000001000010010001:1:1:0: ++%*1i:0B10000000000000000001000010010001:0:1: ++%1i:0b10000000000000000001000010010001:1:1:0: ++%*1i:0b10000000000000000001000010010001:0:1: ++%1i:+0:0:-1: ++%*1i:+0:0:-1: ++%1i:+0X0:0:-1: ++%*1i:+0X0:0:-1: ++%1i:+0x0:0:-1: ++%*1i:+0x0:0:-1: ++%1i:+00:0:-1: ++%*1i:+00:0:-1: ++%1i:+0B0:0:-1: ++%*1i:+0B0:0:-1: ++%1i:+0b0:0:-1: ++%*1i:+0b0:0:-1: ++%1i:+1:0:-1: ++%*1i:+1:0:-1: ++%1i:+0X1:0:-1: ++%*1i:+0X1:0:-1: ++%1i:+0x1:0:-1: ++%*1i:+0x1:0:-1: ++%1i:+01:0:-1: ++%*1i:+01:0:-1: ++%1i:+0B1:0:-1: ++%*1i:+0B1:0:-1: ++%1i:+0b1:0:-1: ++%*1i:+0b1:0:-1: ++%1i:+42:0:-1: ++%*1i:+42:0:-1: ++%1i:+0X2a:0:-1: ++%*1i:+0X2a:0:-1: ++%1i:+0x2A:0:-1: ++%*1i:+0x2A:0:-1: ++%1i:+052:0:-1: ++%*1i:+052:0:-1: ++%1i:+0B101010:0:-1: ++%*1i:+0B101010:0:-1: ++%1i:+0b101010:0:-1: ++%*1i:+0b101010:0:-1: ++%1i:+2147483647:0:-1: ++%*1i:+2147483647:0:-1: ++%1i:+0X7fffffff:0:-1: ++%*1i:+0X7fffffff:0:-1: ++%1i:+0x7FFFFFFF:0:-1: ++%*1i:+0x7FFFFFFF:0:-1: ++%1i:+017777777777:0:-1: ++%*1i:+017777777777:0:-1: ++%1i:+0B1111111111111111111111111111111:0:-1: ++%*1i:+0B1111111111111111111111111111111:0:-1: ++%1i:+0b1111111111111111111111111111111:0:-1: ++%*1i:+0b1111111111111111111111111111111:0:-1: ++%1i:+2147483648:0:-1: ++%*1i:+2147483648:0:-1: ++%1i:+0X80000000:0:-1: ++%*1i:+0X80000000:0:-1: ++%1i:+0x80000000:0:-1: ++%*1i:+0x80000000:0:-1: ++%1i:+020000000000:0:-1: ++%*1i:+020000000000:0:-1: ++%1i:+0B10000000000000000000000000000000:0:-1: ++%*1i:+0B10000000000000000000000000000000:0:-1: ++%1i:+0b10000000000000000000000000000000:0:-1: ++%*1i:+0b10000000000000000000000000000000:0:-1: ++%1i:+2147487889:0:-1: ++%*1i:+2147487889:0:-1: ++%1i:+0X80001091:0:-1: ++%*1i:+0X80001091:0:-1: ++%1i:+0x80001091:0:-1: ++%*1i:+0x80001091:0:-1: ++%1i:+020000010221:0:-1: ++%*1i:+020000010221:0:-1: ++%1i:+0B10000000000000000001000010010001:0:-1: ++%*1i:+0B10000000000000000001000010010001:0:-1: ++%1i:+0b10000000000000000001000010010001:0:-1: ++%*1i:+0b10000000000000000001000010010001:0:-1: ++%2i::0:-1: ++%*2i::0:-1: ++%2i:-2147484882:1:2:-2: ++%*2i:-2147484882:0:2: ++%2i:-0X800004d2:1:2:0: ++%*2i:-0X800004d2:0:2: ++%2i:-0x800004D2:1:2:0: ++%*2i:-0x800004D2:0:2: ++%2i:-020000002322:1:2:0: ++%*2i:-020000002322:0:2: ++%2i:-0B10000000000000000000010011010010:1:2:0: ++%*2i:-0B10000000000000000000010011010010:0:2: ++%2i:-0b10000000000000000000010011010010:1:2:0: ++%*2i:-0b10000000000000000000010011010010:0:2: ++%2i:-2147483649:1:2:-2: ++%*2i:-2147483649:0:2: ++%2i:-0X80000001:1:2:0: ++%*2i:-0X80000001:0:2: ++%2i:-0x80000001:1:2:0: ++%*2i:-0x80000001:0:2: ++%2i:-020000000001:1:2:0: ++%*2i:-020000000001:0:2: ++%2i:-0B10000000000000000000000000000001:1:2:0: ++%*2i:-0B10000000000000000000000000000001:0:2: ++%2i:-0b10000000000000000000000000000001:1:2:0: ++%*2i:-0b10000000000000000000000000000001:0:2: ++%2i:-2147483648:1:2:-2: ++%*2i:-2147483648:0:2: ++%2i:-0X80000000:1:2:0: ++%*2i:-0X80000000:0:2: ++%2i:-0x80000000:1:2:0: ++%*2i:-0x80000000:0:2: ++%2i:-020000000000:1:2:0: ++%*2i:-020000000000:0:2: ++%2i:-0B10000000000000000000000000000000:1:2:0: ++%*2i:-0B10000000000000000000000000000000:0:2: ++%2i:-0b10000000000000000000000000000000:1:2:0: ++%*2i:-0b10000000000000000000000000000000:0:2: ++%2i:-123:1:2:-1: ++%*2i:-123:0:2: ++%2i:-0X7b:1:2:0: ++%*2i:-0X7b:0:2: ++%2i:-0x7B:1:2:0: ++%*2i:-0x7B:0:2: ++%2i:-0173:1:2:0: ++%*2i:-0173:0:2: ++%2i:-0B1111011:1:2:0: ++%*2i:-0B1111011:0:2: ++%2i:-0b1111011:1:2:0: ++%*2i:-0b1111011:0:2: ++%2i:-1:1:2:-1: ++%*2i:-1:0:2: ++%2i:-0X1:1:2:0: ++%*2i:-0X1:0:2: ++%2i:-0x1:1:2:0: ++%*2i:-0x1:0:2: ++%2i:-01:1:2:0: ++%*2i:-01:0:2: ++%2i:-0B1:1:2:0: ++%*2i:-0B1:0:2: ++%2i:-0b1:1:2:0: ++%*2i:-0b1:0:2: ++%2i:-0:1:2:0: ++%*2i:-0:0:2: ++%2i:-0X0:1:2:0: ++%*2i:-0X0:0:2: ++%2i:-0x0:1:2:0: ++%*2i:-0x0:0:2: ++%2i:-00:1:2:0: ++%*2i:-00:0:2: ++%2i:-0B0:1:2:0: ++%*2i:-0B0:0:2: ++%2i:-0b0:1:2:0: ++%*2i:-0b0:0:2: ++%2i:0:1:1:0: ++%*2i:0:0:1: ++# BZ12701 %2i:0X0:0:-1: ++# BZ12701 %*2i:0X0:0:-1: ++# BZ12701 %2i:0x0:0:-1: ++# BZ12701 %*2i:0x0:0:-1: ++%2i:00:1:2:0: ++%*2i:00:0:2: ++# BZ12701 %2i:0B0:0:-1: ++# BZ12701 %*2i:0B0:0:-1: ++# BZ12701 %2i:0b0:0:-1: ++# BZ12701 %*2i:0b0:0:-1: ++%2i:1:1:1:1: ++%*2i:1:0:1: ++# BZ12701 %2i:0X1:0:-1: ++# BZ12701 %*2i:0X1:0:-1: ++# BZ12701 %2i:0x1:0:-1: ++# BZ12701 %*2i:0x1:0:-1: ++%2i:01:1:2:1: ++%*2i:01:0:2: ++# BZ12701 %2i:0B1:0:-1: ++# BZ12701 %*2i:0B1:0:-1: ++# BZ12701 %2i:0b1:0:-1: ++# BZ12701 %*2i:0b1:0:-1: ++%2i:42:1:2:42: ++%*2i:42:0:2: ++# BZ12701 %2i:0X2a:0:-1: ++# BZ12701 %*2i:0X2a:0:-1: ++# BZ12701 %2i:0x2A:0:-1: ++# BZ12701 %*2i:0x2A:0:-1: ++%2i:052:1:2:5: ++%*2i:052:0:2: ++# BZ12701 %2i:0B101010:0:-1: ++# BZ12701 %*2i:0B101010:0:-1: ++# BZ12701 %2i:0b101010:0:-1: ++# BZ12701 %*2i:0b101010:0:-1: ++%2i:2147483647:1:2:21: ++%*2i:2147483647:0:2: ++# BZ12701 %2i:0X7fffffff:0:-1: ++# BZ12701 %*2i:0X7fffffff:0:-1: ++# BZ12701 %2i:0x7FFFFFFF:0:-1: ++# BZ12701 %*2i:0x7FFFFFFF:0:-1: ++%2i:017777777777:1:2:1: ++%*2i:017777777777:0:2: ++# BZ12701 %2i:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2i:0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i:0b1111111111111111111111111111111:0:-1: ++%2i:2147483648:1:2:21: ++%*2i:2147483648:0:2: ++# BZ12701 %2i:0X80000000:0:-1: ++# BZ12701 %*2i:0X80000000:0:-1: ++# BZ12701 %2i:0x80000000:0:-1: ++# BZ12701 %*2i:0x80000000:0:-1: ++%2i:020000000000:1:2:2: ++%*2i:020000000000:0:2: ++# BZ12701 %2i:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2i:0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i:0b10000000000000000000000000000000:0:-1: ++%2i:2147487889:1:2:21: ++%*2i:2147487889:0:2: ++# BZ12701 %2i:0X80001091:0:-1: ++# BZ12701 %*2i:0X80001091:0:-1: ++# BZ12701 %2i:0x80001091:0:-1: ++# BZ12701 %*2i:0x80001091:0:-1: ++%2i:020000010221:1:2:2: ++%*2i:020000010221:0:2: ++# BZ12701 %2i:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2i:0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i:0b10000000000000000001000010010001:0:-1: ++%2i:+0:1:2:0: ++%*2i:+0:0:2: ++%2i:+0X0:1:2:0: ++%*2i:+0X0:0:2: ++%2i:+0x0:1:2:0: ++%*2i:+0x0:0:2: ++%2i:+00:1:2:0: ++%*2i:+00:0:2: ++%2i:+0B0:1:2:0: ++%*2i:+0B0:0:2: ++%2i:+0b0:1:2:0: ++%*2i:+0b0:0:2: ++%2i:+1:1:2:1: ++%*2i:+1:0:2: ++%2i:+0X1:1:2:0: ++%*2i:+0X1:0:2: ++%2i:+0x1:1:2:0: ++%*2i:+0x1:0:2: ++%2i:+01:1:2:0: ++%*2i:+01:0:2: ++%2i:+0B1:1:2:0: ++%*2i:+0B1:0:2: ++%2i:+0b1:1:2:0: ++%*2i:+0b1:0:2: ++%2i:+42:1:2:4: ++%*2i:+42:0:2: ++%2i:+0X2a:1:2:0: ++%*2i:+0X2a:0:2: ++%2i:+0x2A:1:2:0: ++%*2i:+0x2A:0:2: ++%2i:+052:1:2:0: ++%*2i:+052:0:2: ++%2i:+0B101010:1:2:0: ++%*2i:+0B101010:0:2: ++%2i:+0b101010:1:2:0: ++%*2i:+0b101010:0:2: ++%2i:+2147483647:1:2:2: ++%*2i:+2147483647:0:2: ++%2i:+0X7fffffff:1:2:0: ++%*2i:+0X7fffffff:0:2: ++%2i:+0x7FFFFFFF:1:2:0: ++%*2i:+0x7FFFFFFF:0:2: ++%2i:+017777777777:1:2:0: ++%*2i:+017777777777:0:2: ++%2i:+0B1111111111111111111111111111111:1:2:0: ++%*2i:+0B1111111111111111111111111111111:0:2: ++%2i:+0b1111111111111111111111111111111:1:2:0: ++%*2i:+0b1111111111111111111111111111111:0:2: ++%2i:+2147483648:1:2:2: ++%*2i:+2147483648:0:2: ++%2i:+0X80000000:1:2:0: ++%*2i:+0X80000000:0:2: ++%2i:+0x80000000:1:2:0: ++%*2i:+0x80000000:0:2: ++%2i:+020000000000:1:2:0: ++%*2i:+020000000000:0:2: ++%2i:+0B10000000000000000000000000000000:1:2:0: ++%*2i:+0B10000000000000000000000000000000:0:2: ++%2i:+0b10000000000000000000000000000000:1:2:0: ++%*2i:+0b10000000000000000000000000000000:0:2: ++%2i:+2147487889:1:2:2: ++%*2i:+2147487889:0:2: ++%2i:+0X80001091:1:2:0: ++%*2i:+0X80001091:0:2: ++%2i:+0x80001091:1:2:0: ++%*2i:+0x80001091:0:2: ++%2i:+020000010221:1:2:0: ++%*2i:+020000010221:0:2: ++%2i:+0B10000000000000000001000010010001:1:2:0: ++%*2i:+0B10000000000000000001000010010001:0:2: ++%2i:+0b10000000000000000001000010010001:1:2:0: ++%*2i:+0b10000000000000000001000010010001:0:2: ++%8i::0:-1: ++%*8i::0:-1: ++%8i:-2147484882:1:8:-2147484: ++%*8i:-2147484882:0:8: ++%8i:-0X800004d2:1:8:-524288: ++%*8i:-0X800004d2:0:8: ++%8i:-0x800004D2:1:8:-524288: ++%*8i:-0x800004D2:0:8: ++%8i:-020000002322:1:8:-65536: ++%*8i:-020000002322:0:8: ++%8i:-0B10000000000000000000010011010010:1:8:-16: ++%*8i:-0B10000000000000000000010011010010:0:8: ++%8i:-0b10000000000000000000010011010010:1:8:-16: ++%*8i:-0b10000000000000000000010011010010:0:8: ++%8i:-2147483649:1:8:-2147483: ++%*8i:-2147483649:0:8: ++%8i:-0X80000001:1:8:-524288: ++%*8i:-0X80000001:0:8: ++%8i:-0x80000001:1:8:-524288: ++%*8i:-0x80000001:0:8: ++%8i:-020000000001:1:8:-65536: ++%*8i:-020000000001:0:8: ++%8i:-0B10000000000000000000000000000001:1:8:-16: ++%*8i:-0B10000000000000000000000000000001:0:8: ++%8i:-0b10000000000000000000000000000001:1:8:-16: ++%*8i:-0b10000000000000000000000000000001:0:8: ++%8i:-2147483648:1:8:-2147483: ++%*8i:-2147483648:0:8: ++%8i:-0X80000000:1:8:-524288: ++%*8i:-0X80000000:0:8: ++%8i:-0x80000000:1:8:-524288: ++%*8i:-0x80000000:0:8: ++%8i:-020000000000:1:8:-65536: ++%*8i:-020000000000:0:8: ++%8i:-0B10000000000000000000000000000000:1:8:-16: ++%*8i:-0B10000000000000000000000000000000:0:8: ++%8i:-0b10000000000000000000000000000000:1:8:-16: ++%*8i:-0b10000000000000000000000000000000:0:8: ++%8i:-123:1:4:-123: ++%*8i:-123:0:4: ++%8i:-0X7b:1:5:-123: ++%*8i:-0X7b:0:5: ++%8i:-0x7B:1:5:-123: ++%*8i:-0x7B:0:5: ++%8i:-0173:1:5:-123: ++%*8i:-0173:0:5: ++%8i:-0B1111011:1:8:-30: ++%*8i:-0B1111011:0:8: ++%8i:-0b1111011:1:8:-30: ++%*8i:-0b1111011:0:8: ++%8i:-1:1:2:-1: ++%*8i:-1:0:2: ++%8i:-0X1:1:4:-1: ++%*8i:-0X1:0:4: ++%8i:-0x1:1:4:-1: ++%*8i:-0x1:0:4: ++%8i:-01:1:3:-1: ++%*8i:-01:0:3: ++%8i:-0B1:1:4:-1: ++%*8i:-0B1:0:4: ++%8i:-0b1:1:4:-1: ++%*8i:-0b1:0:4: ++%8i:-0:1:2:0: ++%*8i:-0:0:2: ++%8i:-0X0:1:4:0: ++%*8i:-0X0:0:4: ++%8i:-0x0:1:4:0: ++%*8i:-0x0:0:4: ++%8i:-00:1:3:0: ++%*8i:-00:0:3: ++%8i:-0B0:1:4:0: ++%*8i:-0B0:0:4: ++%8i:-0b0:1:4:0: ++%*8i:-0b0:0:4: ++%8i:0:1:1:0: ++%*8i:0:0:1: ++%8i:0X0:1:3:0: ++%*8i:0X0:0:3: ++%8i:0x0:1:3:0: ++%*8i:0x0:0:3: ++%8i:00:1:2:0: ++%*8i:00:0:2: ++%8i:0B0:1:3:0: ++%*8i:0B0:0:3: ++%8i:0b0:1:3:0: ++%*8i:0b0:0:3: ++%8i:1:1:1:1: ++%*8i:1:0:1: ++%8i:0X1:1:3:1: ++%*8i:0X1:0:3: ++%8i:0x1:1:3:1: ++%*8i:0x1:0:3: ++%8i:01:1:2:1: ++%*8i:01:0:2: ++%8i:0B1:1:3:1: ++%*8i:0B1:0:3: ++%8i:0b1:1:3:1: ++%*8i:0b1:0:3: ++%8i:42:1:2:42: ++%*8i:42:0:2: ++%8i:0X2a:1:4:42: ++%*8i:0X2a:0:4: ++%8i:0x2A:1:4:42: ++%*8i:0x2A:0:4: ++%8i:052:1:3:42: ++%*8i:052:0:3: ++%8i:0B101010:1:8:42: ++%*8i:0B101010:0:8: ++%8i:0b101010:1:8:42: ++%*8i:0b101010:0:8: ++%8i:2147483647:1:8:21474836: ++%*8i:2147483647:0:8: ++%8i:0X7fffffff:1:8:8388607: ++%*8i:0X7fffffff:0:8: ++%8i:0x7FFFFFFF:1:8:8388607: ++%*8i:0x7FFFFFFF:0:8: ++%8i:017777777777:1:8:524287: ++%*8i:017777777777:0:8: ++%8i:0B1111111111111111111111111111111:1:8:63: ++%*8i:0B1111111111111111111111111111111:0:8: ++%8i:0b1111111111111111111111111111111:1:8:63: ++%*8i:0b1111111111111111111111111111111:0:8: ++%8i:2147483648:1:8:21474836: ++%*8i:2147483648:0:8: ++%8i:0X80000000:1:8:8388608: ++%*8i:0X80000000:0:8: ++%8i:0x80000000:1:8:8388608: ++%*8i:0x80000000:0:8: ++%8i:020000000000:1:8:524288: ++%*8i:020000000000:0:8: ++%8i:0B10000000000000000000000000000000:1:8:32: ++%*8i:0B10000000000000000000000000000000:0:8: ++%8i:0b10000000000000000000000000000000:1:8:32: ++%*8i:0b10000000000000000000000000000000:0:8: ++%8i:2147487889:1:8:21474878: ++%*8i:2147487889:0:8: ++%8i:0X80001091:1:8:8388624: ++%*8i:0X80001091:0:8: ++%8i:0x80001091:1:8:8388624: ++%*8i:0x80001091:0:8: ++%8i:020000010221:1:8:524289: ++%*8i:020000010221:0:8: ++%8i:0B10000000000000000001000010010001:1:8:32: ++%*8i:0B10000000000000000001000010010001:0:8: ++%8i:0b10000000000000000001000010010001:1:8:32: ++%*8i:0b10000000000000000001000010010001:0:8: ++%8i:+0:1:2:0: ++%*8i:+0:0:2: ++%8i:+0X0:1:4:0: ++%*8i:+0X0:0:4: ++%8i:+0x0:1:4:0: ++%*8i:+0x0:0:4: ++%8i:+00:1:3:0: ++%*8i:+00:0:3: ++%8i:+0B0:1:4:0: ++%*8i:+0B0:0:4: ++%8i:+0b0:1:4:0: ++%*8i:+0b0:0:4: ++%8i:+1:1:2:1: ++%*8i:+1:0:2: ++%8i:+0X1:1:4:1: ++%*8i:+0X1:0:4: ++%8i:+0x1:1:4:1: ++%*8i:+0x1:0:4: ++%8i:+01:1:3:1: ++%*8i:+01:0:3: ++%8i:+0B1:1:4:1: ++%*8i:+0B1:0:4: ++%8i:+0b1:1:4:1: ++%*8i:+0b1:0:4: ++%8i:+42:1:3:42: ++%*8i:+42:0:3: ++%8i:+0X2a:1:5:42: ++%*8i:+0X2a:0:5: ++%8i:+0x2A:1:5:42: ++%*8i:+0x2A:0:5: ++%8i:+052:1:4:42: ++%*8i:+052:0:4: ++%8i:+0B101010:1:8:21: ++%*8i:+0B101010:0:8: ++%8i:+0b101010:1:8:21: ++%*8i:+0b101010:0:8: ++%8i:+2147483647:1:8:2147483: ++%*8i:+2147483647:0:8: ++%8i:+0X7fffffff:1:8:524287: ++%*8i:+0X7fffffff:0:8: ++%8i:+0x7FFFFFFF:1:8:524287: ++%*8i:+0x7FFFFFFF:0:8: ++%8i:+017777777777:1:8:65535: ++%*8i:+017777777777:0:8: ++%8i:+0B1111111111111111111111111111111:1:8:31: ++%*8i:+0B1111111111111111111111111111111:0:8: ++%8i:+0b1111111111111111111111111111111:1:8:31: ++%*8i:+0b1111111111111111111111111111111:0:8: ++%8i:+2147483648:1:8:2147483: ++%*8i:+2147483648:0:8: ++%8i:+0X80000000:1:8:524288: ++%*8i:+0X80000000:0:8: ++%8i:+0x80000000:1:8:524288: ++%*8i:+0x80000000:0:8: ++%8i:+020000000000:1:8:65536: ++%*8i:+020000000000:0:8: ++%8i:+0B10000000000000000000000000000000:1:8:16: ++%*8i:+0B10000000000000000000000000000000:0:8: ++%8i:+0b10000000000000000000000000000000:1:8:16: ++%*8i:+0b10000000000000000000000000000000:0:8: ++%8i:+2147487889:1:8:2147487: ++%*8i:+2147487889:0:8: ++%8i:+0X80001091:1:8:524289: ++%*8i:+0X80001091:0:8: ++%8i:+0x80001091:1:8:524289: ++%*8i:+0x80001091:0:8: ++%8i:+020000010221:1:8:65536: ++%*8i:+020000010221:0:8: ++%8i:+0B10000000000000000001000010010001:1:8:16: ++%*8i:+0B10000000000000000001000010010001:0:8: ++%8i:+0b10000000000000000001000010010001:1:8:16: ++%*8i:+0b10000000000000000001000010010001:0:8: ++%15i::0:-1: ++%*15i::0:-1: ++%15i:-2147484882:1:11:-2147483648: ++%*15i:-2147484882:0:11: ++%15i:-0X800004d2:1:11:-2147483648: ++%*15i:-0X800004d2:0:11: ++%15i:-0x800004D2:1:11:-2147483648: ++%*15i:-0x800004D2:0:11: ++%15i:-020000002322:1:13:-2147483648: ++%*15i:-020000002322:0:13: ++%15i:-0B10000000000000000000010011010010:1:15:-2048: ++%*15i:-0B10000000000000000000010011010010:0:15: ++%15i:-0b10000000000000000000010011010010:1:15:-2048: ++%*15i:-0b10000000000000000000010011010010:0:15: ++%15i:-2147483649:1:11:-2147483648: ++%*15i:-2147483649:0:11: ++%15i:-0X80000001:1:11:-2147483648: ++%*15i:-0X80000001:0:11: ++%15i:-0x80000001:1:11:-2147483648: ++%*15i:-0x80000001:0:11: ++%15i:-020000000001:1:13:-2147483648: ++%*15i:-020000000001:0:13: ++%15i:-0B10000000000000000000000000000001:1:15:-2048: ++%*15i:-0B10000000000000000000000000000001:0:15: ++%15i:-0b10000000000000000000000000000001:1:15:-2048: ++%*15i:-0b10000000000000000000000000000001:0:15: ++%15i:-2147483648:1:11:-2147483648: ++%*15i:-2147483648:0:11: ++%15i:-0X80000000:1:11:-2147483648: ++%*15i:-0X80000000:0:11: ++%15i:-0x80000000:1:11:-2147483648: ++%*15i:-0x80000000:0:11: ++%15i:-020000000000:1:13:-2147483648: ++%*15i:-020000000000:0:13: ++%15i:-0B10000000000000000000000000000000:1:15:-2048: ++%*15i:-0B10000000000000000000000000000000:0:15: ++%15i:-0b10000000000000000000000000000000:1:15:-2048: ++%*15i:-0b10000000000000000000000000000000:0:15: ++%15i:-123:1:4:-123: ++%*15i:-123:0:4: ++%15i:-0X7b:1:5:-123: ++%*15i:-0X7b:0:5: ++%15i:-0x7B:1:5:-123: ++%*15i:-0x7B:0:5: ++%15i:-0173:1:5:-123: ++%*15i:-0173:0:5: ++%15i:-0B1111011:1:10:-123: ++%*15i:-0B1111011:0:10: ++%15i:-0b1111011:1:10:-123: ++%*15i:-0b1111011:0:10: ++%15i:-1:1:2:-1: ++%*15i:-1:0:2: ++%15i:-0X1:1:4:-1: ++%*15i:-0X1:0:4: ++%15i:-0x1:1:4:-1: ++%*15i:-0x1:0:4: ++%15i:-01:1:3:-1: ++%*15i:-01:0:3: ++%15i:-0B1:1:4:-1: ++%*15i:-0B1:0:4: ++%15i:-0b1:1:4:-1: ++%*15i:-0b1:0:4: ++%15i:-0:1:2:0: ++%*15i:-0:0:2: ++%15i:-0X0:1:4:0: ++%*15i:-0X0:0:4: ++%15i:-0x0:1:4:0: ++%*15i:-0x0:0:4: ++%15i:-00:1:3:0: ++%*15i:-00:0:3: ++%15i:-0B0:1:4:0: ++%*15i:-0B0:0:4: ++%15i:-0b0:1:4:0: ++%*15i:-0b0:0:4: ++%15i:0:1:1:0: ++%*15i:0:0:1: ++%15i:0X0:1:3:0: ++%*15i:0X0:0:3: ++%15i:0x0:1:3:0: ++%*15i:0x0:0:3: ++%15i:00:1:2:0: ++%*15i:00:0:2: ++%15i:0B0:1:3:0: ++%*15i:0B0:0:3: ++%15i:0b0:1:3:0: ++%*15i:0b0:0:3: ++%15i:1:1:1:1: ++%*15i:1:0:1: ++%15i:0X1:1:3:1: ++%*15i:0X1:0:3: ++%15i:0x1:1:3:1: ++%*15i:0x1:0:3: ++%15i:01:1:2:1: ++%*15i:01:0:2: ++%15i:0B1:1:3:1: ++%*15i:0B1:0:3: ++%15i:0b1:1:3:1: ++%*15i:0b1:0:3: ++%15i:42:1:2:42: ++%*15i:42:0:2: ++%15i:0X2a:1:4:42: ++%*15i:0X2a:0:4: ++%15i:0x2A:1:4:42: ++%*15i:0x2A:0:4: ++%15i:052:1:3:42: ++%*15i:052:0:3: ++%15i:0B101010:1:8:42: ++%*15i:0B101010:0:8: ++%15i:0b101010:1:8:42: ++%*15i:0b101010:0:8: ++%15i:2147483647:1:10:2147483647: ++%*15i:2147483647:0:10: ++%15i:0X7fffffff:1:10:2147483647: ++%*15i:0X7fffffff:0:10: ++%15i:0x7FFFFFFF:1:10:2147483647: ++%*15i:0x7FFFFFFF:0:10: ++%15i:017777777777:1:12:2147483647: ++%*15i:017777777777:0:12: ++%15i:0B1111111111111111111111111111111:1:15:8191: ++%*15i:0B1111111111111111111111111111111:0:15: ++%15i:0b1111111111111111111111111111111:1:15:8191: ++%*15i:0b1111111111111111111111111111111:0:15: ++%15i:2147483648:1:10:2147483647: ++%*15i:2147483648:0:10: ++%15i:0X80000000:1:10:2147483647: ++%*15i:0X80000000:0:10: ++%15i:0x80000000:1:10:2147483647: ++%*15i:0x80000000:0:10: ++%15i:020000000000:1:12:2147483647: ++%*15i:020000000000:0:12: ++%15i:0B10000000000000000000000000000000:1:15:4096: ++%*15i:0B10000000000000000000000000000000:0:15: ++%15i:0b10000000000000000000000000000000:1:15:4096: ++%*15i:0b10000000000000000000000000000000:0:15: ++%15i:2147487889:1:10:2147483647: ++%*15i:2147487889:0:10: ++%15i:0X80001091:1:10:2147483647: ++%*15i:0X80001091:0:10: ++%15i:0x80001091:1:10:2147483647: ++%*15i:0x80001091:0:10: ++%15i:020000010221:1:12:2147483647: ++%*15i:020000010221:0:12: ++%15i:0B10000000000000000001000010010001:1:15:4096: ++%*15i:0B10000000000000000001000010010001:0:15: ++%15i:0b10000000000000000001000010010001:1:15:4096: ++%*15i:0b10000000000000000001000010010001:0:15: ++%15i:+0:1:2:0: ++%*15i:+0:0:2: ++%15i:+0X0:1:4:0: ++%*15i:+0X0:0:4: ++%15i:+0x0:1:4:0: ++%*15i:+0x0:0:4: ++%15i:+00:1:3:0: ++%*15i:+00:0:3: ++%15i:+0B0:1:4:0: ++%*15i:+0B0:0:4: ++%15i:+0b0:1:4:0: ++%*15i:+0b0:0:4: ++%15i:+1:1:2:1: ++%*15i:+1:0:2: ++%15i:+0X1:1:4:1: ++%*15i:+0X1:0:4: ++%15i:+0x1:1:4:1: ++%*15i:+0x1:0:4: ++%15i:+01:1:3:1: ++%*15i:+01:0:3: ++%15i:+0B1:1:4:1: ++%*15i:+0B1:0:4: ++%15i:+0b1:1:4:1: ++%*15i:+0b1:0:4: ++%15i:+42:1:3:42: ++%*15i:+42:0:3: ++%15i:+0X2a:1:5:42: ++%*15i:+0X2a:0:5: ++%15i:+0x2A:1:5:42: ++%*15i:+0x2A:0:5: ++%15i:+052:1:4:42: ++%*15i:+052:0:4: ++%15i:+0B101010:1:9:42: ++%*15i:+0B101010:0:9: ++%15i:+0b101010:1:9:42: ++%*15i:+0b101010:0:9: ++%15i:+2147483647:1:11:2147483647: ++%*15i:+2147483647:0:11: ++%15i:+0X7fffffff:1:11:2147483647: ++%*15i:+0X7fffffff:0:11: ++%15i:+0x7FFFFFFF:1:11:2147483647: ++%*15i:+0x7FFFFFFF:0:11: ++%15i:+017777777777:1:13:2147483647: ++%*15i:+017777777777:0:13: ++%15i:+0B1111111111111111111111111111111:1:15:4095: ++%*15i:+0B1111111111111111111111111111111:0:15: ++%15i:+0b1111111111111111111111111111111:1:15:4095: ++%*15i:+0b1111111111111111111111111111111:0:15: ++%15i:+2147483648:1:11:2147483647: ++%*15i:+2147483648:0:11: ++%15i:+0X80000000:1:11:2147483647: ++%*15i:+0X80000000:0:11: ++%15i:+0x80000000:1:11:2147483647: ++%*15i:+0x80000000:0:11: ++%15i:+020000000000:1:13:2147483647: ++%*15i:+020000000000:0:13: ++%15i:+0B10000000000000000000000000000000:1:15:2048: ++%*15i:+0B10000000000000000000000000000000:0:15: ++%15i:+0b10000000000000000000000000000000:1:15:2048: ++%*15i:+0b10000000000000000000000000000000:0:15: ++%15i:+2147487889:1:11:2147483647: ++%*15i:+2147487889:0:11: ++%15i:+0X80001091:1:11:2147483647: ++%*15i:+0X80001091:0:11: ++%15i:+0x80001091:1:11:2147483647: ++%*15i:+0x80001091:0:11: ++%15i:+020000010221:1:13:2147483647: ++%*15i:+020000010221:0:13: ++%15i:+0B10000000000000000001000010010001:1:15:2048: ++%*15i:+0B10000000000000000001000010010001:0:15: ++%15i:+0b10000000000000000001000010010001:1:15:2048: ++%*15i:+0b10000000000000000001000010010001:0:15: ++%2i: :0:-1: ++%*2i: :0:-1: ++%2i: -2147484882:1:3:-2: ++%*2i: -2147484882:0:3: ++%2i: -0X800004d2:1:3:0: ++%*2i: -0X800004d2:0:3: ++%2i: -0x800004D2:1:3:0: ++%*2i: -0x800004D2:0:3: ++%2i: -020000002322:1:3:0: ++%*2i: -020000002322:0:3: ++%2i: -0B10000000000000000000010011010010:1:3:0: ++%*2i: -0B10000000000000000000010011010010:0:3: ++%2i: -0b10000000000000000000010011010010:1:3:0: ++%*2i: -0b10000000000000000000010011010010:0:3: ++%2i: -2147483649:1:3:-2: ++%*2i: -2147483649:0:3: ++%2i: -0X80000001:1:3:0: ++%*2i: -0X80000001:0:3: ++%2i: -0x80000001:1:3:0: ++%*2i: -0x80000001:0:3: ++%2i: -020000000001:1:3:0: ++%*2i: -020000000001:0:3: ++%2i: -0B10000000000000000000000000000001:1:3:0: ++%*2i: -0B10000000000000000000000000000001:0:3: ++%2i: -0b10000000000000000000000000000001:1:3:0: ++%*2i: -0b10000000000000000000000000000001:0:3: ++%2i: -2147483648:1:3:-2: ++%*2i: -2147483648:0:3: ++%2i: -0X80000000:1:3:0: ++%*2i: -0X80000000:0:3: ++%2i: -0x80000000:1:3:0: ++%*2i: -0x80000000:0:3: ++%2i: -020000000000:1:3:0: ++%*2i: -020000000000:0:3: ++%2i: -0B10000000000000000000000000000000:1:3:0: ++%*2i: -0B10000000000000000000000000000000:0:3: ++%2i: -0b10000000000000000000000000000000:1:3:0: ++%*2i: -0b10000000000000000000000000000000:0:3: ++%2i: -123:1:3:-1: ++%*2i: -123:0:3: ++%2i: -0X7b:1:3:0: ++%*2i: -0X7b:0:3: ++%2i: -0x7B:1:3:0: ++%*2i: -0x7B:0:3: ++%2i: -0173:1:3:0: ++%*2i: -0173:0:3: ++%2i: -0B1111011:1:3:0: ++%*2i: -0B1111011:0:3: ++%2i: -0b1111011:1:3:0: ++%*2i: -0b1111011:0:3: ++%2i: -1:1:3:-1: ++%*2i: -1:0:3: ++%2i: -0X1:1:3:0: ++%*2i: -0X1:0:3: ++%2i: -0x1:1:3:0: ++%*2i: -0x1:0:3: ++%2i: -01:1:3:0: ++%*2i: -01:0:3: ++%2i: -0B1:1:3:0: ++%*2i: -0B1:0:3: ++%2i: -0b1:1:3:0: ++%*2i: -0b1:0:3: ++%2i: -0:1:3:0: ++%*2i: -0:0:3: ++%2i: -0X0:1:3:0: ++%*2i: -0X0:0:3: ++%2i: -0x0:1:3:0: ++%*2i: -0x0:0:3: ++%2i: -00:1:3:0: ++%*2i: -00:0:3: ++%2i: -0B0:1:3:0: ++%*2i: -0B0:0:3: ++%2i: -0b0:1:3:0: ++%*2i: -0b0:0:3: ++%2i: 0:1:2:0: ++%*2i: 0:0:2: ++# BZ12701 %2i: 0X0:0:-1: ++# BZ12701 %*2i: 0X0:0:-1: ++# BZ12701 %2i: 0x0:0:-1: ++# BZ12701 %*2i: 0x0:0:-1: ++%2i: 00:1:3:0: ++%*2i: 00:0:3: ++# BZ12701 %2i: 0B0:0:-1: ++# BZ12701 %*2i: 0B0:0:-1: ++# BZ12701 %2i: 0b0:0:-1: ++# BZ12701 %*2i: 0b0:0:-1: ++%2i: 1:1:2:1: ++%*2i: 1:0:2: ++# BZ12701 %2i: 0X1:0:-1: ++# BZ12701 %*2i: 0X1:0:-1: ++# BZ12701 %2i: 0x1:0:-1: ++# BZ12701 %*2i: 0x1:0:-1: ++%2i: 01:1:3:1: ++%*2i: 01:0:3: ++# BZ12701 %2i: 0B1:0:-1: ++# BZ12701 %*2i: 0B1:0:-1: ++# BZ12701 %2i: 0b1:0:-1: ++# BZ12701 %*2i: 0b1:0:-1: ++%2i: 42:1:3:42: ++%*2i: 42:0:3: ++# BZ12701 %2i: 0X2a:0:-1: ++# BZ12701 %*2i: 0X2a:0:-1: ++# BZ12701 %2i: 0x2A:0:-1: ++# BZ12701 %*2i: 0x2A:0:-1: ++%2i: 052:1:3:5: ++%*2i: 052:0:3: ++# BZ12701 %2i: 0B101010:0:-1: ++# BZ12701 %*2i: 0B101010:0:-1: ++# BZ12701 %2i: 0b101010:0:-1: ++# BZ12701 %*2i: 0b101010:0:-1: ++%2i: 2147483647:1:3:21: ++%*2i: 2147483647:0:3: ++# BZ12701 %2i: 0X7fffffff:0:-1: ++# BZ12701 %*2i: 0X7fffffff:0:-1: ++# BZ12701 %2i: 0x7FFFFFFF:0:-1: ++# BZ12701 %*2i: 0x7FFFFFFF:0:-1: ++%2i: 017777777777:1:3:1: ++%*2i: 017777777777:0:3: ++# BZ12701 %2i: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2i: 0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i: 0b1111111111111111111111111111111:0:-1: ++%2i: 2147483648:1:3:21: ++%*2i: 2147483648:0:3: ++# BZ12701 %2i: 0X80000000:0:-1: ++# BZ12701 %*2i: 0X80000000:0:-1: ++# BZ12701 %2i: 0x80000000:0:-1: ++# BZ12701 %*2i: 0x80000000:0:-1: ++%2i: 020000000000:1:3:2: ++%*2i: 020000000000:0:3: ++# BZ12701 %2i: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2i: 0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i: 0b10000000000000000000000000000000:0:-1: ++%2i: 2147487889:1:3:21: ++%*2i: 2147487889:0:3: ++# BZ12701 %2i: 0X80001091:0:-1: ++# BZ12701 %*2i: 0X80001091:0:-1: ++# BZ12701 %2i: 0x80001091:0:-1: ++# BZ12701 %*2i: 0x80001091:0:-1: ++%2i: 020000010221:1:3:2: ++%*2i: 020000010221:0:3: ++# BZ12701 %2i: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2i: 0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i: 0b10000000000000000001000010010001:0:-1: ++%2i: +0:1:3:0: ++%*2i: +0:0:3: ++%2i: +0X0:1:3:0: ++%*2i: +0X0:0:3: ++%2i: +0x0:1:3:0: ++%*2i: +0x0:0:3: ++%2i: +00:1:3:0: ++%*2i: +00:0:3: ++%2i: +0B0:1:3:0: ++%*2i: +0B0:0:3: ++%2i: +0b0:1:3:0: ++%*2i: +0b0:0:3: ++%2i: +1:1:3:1: ++%*2i: +1:0:3: ++%2i: +0X1:1:3:0: ++%*2i: +0X1:0:3: ++%2i: +0x1:1:3:0: ++%*2i: +0x1:0:3: ++%2i: +01:1:3:0: ++%*2i: +01:0:3: ++%2i: +0B1:1:3:0: ++%*2i: +0B1:0:3: ++%2i: +0b1:1:3:0: ++%*2i: +0b1:0:3: ++%2i: +42:1:3:4: ++%*2i: +42:0:3: ++%2i: +0X2a:1:3:0: ++%*2i: +0X2a:0:3: ++%2i: +0x2A:1:3:0: ++%*2i: +0x2A:0:3: ++%2i: +052:1:3:0: ++%*2i: +052:0:3: ++%2i: +0B101010:1:3:0: ++%*2i: +0B101010:0:3: ++%2i: +0b101010:1:3:0: ++%*2i: +0b101010:0:3: ++%2i: +2147483647:1:3:2: ++%*2i: +2147483647:0:3: ++%2i: +0X7fffffff:1:3:0: ++%*2i: +0X7fffffff:0:3: ++%2i: +0x7FFFFFFF:1:3:0: ++%*2i: +0x7FFFFFFF:0:3: ++%2i: +017777777777:1:3:0: ++%*2i: +017777777777:0:3: ++%2i: +0B1111111111111111111111111111111:1:3:0: ++%*2i: +0B1111111111111111111111111111111:0:3: ++%2i: +0b1111111111111111111111111111111:1:3:0: ++%*2i: +0b1111111111111111111111111111111:0:3: ++%2i: +2147483648:1:3:2: ++%*2i: +2147483648:0:3: ++%2i: +0X80000000:1:3:0: ++%*2i: +0X80000000:0:3: ++%2i: +0x80000000:1:3:0: ++%*2i: +0x80000000:0:3: ++%2i: +020000000000:1:3:0: ++%*2i: +020000000000:0:3: ++%2i: +0B10000000000000000000000000000000:1:3:0: ++%*2i: +0B10000000000000000000000000000000:0:3: ++%2i: +0b10000000000000000000000000000000:1:3:0: ++%*2i: +0b10000000000000000000000000000000:0:3: ++%2i: +2147487889:1:3:2: ++%*2i: +2147487889:0:3: ++%2i: +0X80001091:1:3:0: ++%*2i: +0X80001091:0:3: ++%2i: +0x80001091:1:3:0: ++%*2i: +0x80001091:0:3: ++%2i: +020000010221:1:3:0: ++%*2i: +020000010221:0:3: ++%2i: +0B10000000000000000001000010010001:1:3:0: ++%*2i: +0B10000000000000000001000010010001:0:3: ++%2i: +0b10000000000000000001000010010001:1:3:0: ++%*2i: +0b10000000000000000001000010010001:0:3: ++%15i: :0:-1: ++%*15i: :0:-1: ++%15i: -2147484882:1:12:-2147483648: ++%*15i: -2147484882:0:12: ++%15i: -0X800004d2:1:12:-2147483648: ++%*15i: -0X800004d2:0:12: ++%15i: -0x800004D2:1:12:-2147483648: ++%*15i: -0x800004D2:0:12: ++%15i: -020000002322:1:14:-2147483648: ++%*15i: -020000002322:0:14: ++%15i: -0B10000000000000000000010011010010:1:16:-2048: ++%*15i: -0B10000000000000000000010011010010:0:16: ++%15i: -0b10000000000000000000010011010010:1:16:-2048: ++%*15i: -0b10000000000000000000010011010010:0:16: ++%15i: -2147483649:1:12:-2147483648: ++%*15i: -2147483649:0:12: ++%15i: -0X80000001:1:12:-2147483648: ++%*15i: -0X80000001:0:12: ++%15i: -0x80000001:1:12:-2147483648: ++%*15i: -0x80000001:0:12: ++%15i: -020000000001:1:14:-2147483648: ++%*15i: -020000000001:0:14: ++%15i: -0B10000000000000000000000000000001:1:16:-2048: ++%*15i: -0B10000000000000000000000000000001:0:16: ++%15i: -0b10000000000000000000000000000001:1:16:-2048: ++%*15i: -0b10000000000000000000000000000001:0:16: ++%15i: -2147483648:1:12:-2147483648: ++%*15i: -2147483648:0:12: ++%15i: -0X80000000:1:12:-2147483648: ++%*15i: -0X80000000:0:12: ++%15i: -0x80000000:1:12:-2147483648: ++%*15i: -0x80000000:0:12: ++%15i: -020000000000:1:14:-2147483648: ++%*15i: -020000000000:0:14: ++%15i: -0B10000000000000000000000000000000:1:16:-2048: ++%*15i: -0B10000000000000000000000000000000:0:16: ++%15i: -0b10000000000000000000000000000000:1:16:-2048: ++%*15i: -0b10000000000000000000000000000000:0:16: ++%15i: -123:1:5:-123: ++%*15i: -123:0:5: ++%15i: -0X7b:1:6:-123: ++%*15i: -0X7b:0:6: ++%15i: -0x7B:1:6:-123: ++%*15i: -0x7B:0:6: ++%15i: -0173:1:6:-123: ++%*15i: -0173:0:6: ++%15i: -0B1111011:1:11:-123: ++%*15i: -0B1111011:0:11: ++%15i: -0b1111011:1:11:-123: ++%*15i: -0b1111011:0:11: ++%15i: -1:1:3:-1: ++%*15i: -1:0:3: ++%15i: -0X1:1:5:-1: ++%*15i: -0X1:0:5: ++%15i: -0x1:1:5:-1: ++%*15i: -0x1:0:5: ++%15i: -01:1:4:-1: ++%*15i: -01:0:4: ++%15i: -0B1:1:5:-1: ++%*15i: -0B1:0:5: ++%15i: -0b1:1:5:-1: ++%*15i: -0b1:0:5: ++%15i: -0:1:3:0: ++%*15i: -0:0:3: ++%15i: -0X0:1:5:0: ++%*15i: -0X0:0:5: ++%15i: -0x0:1:5:0: ++%*15i: -0x0:0:5: ++%15i: -00:1:4:0: ++%*15i: -00:0:4: ++%15i: -0B0:1:5:0: ++%*15i: -0B0:0:5: ++%15i: -0b0:1:5:0: ++%*15i: -0b0:0:5: ++%15i: 0:1:2:0: ++%*15i: 0:0:2: ++%15i: 0X0:1:4:0: ++%*15i: 0X0:0:4: ++%15i: 0x0:1:4:0: ++%*15i: 0x0:0:4: ++%15i: 00:1:3:0: ++%*15i: 00:0:3: ++%15i: 0B0:1:4:0: ++%*15i: 0B0:0:4: ++%15i: 0b0:1:4:0: ++%*15i: 0b0:0:4: ++%15i: 1:1:2:1: ++%*15i: 1:0:2: ++%15i: 0X1:1:4:1: ++%*15i: 0X1:0:4: ++%15i: 0x1:1:4:1: ++%*15i: 0x1:0:4: ++%15i: 01:1:3:1: ++%*15i: 01:0:3: ++%15i: 0B1:1:4:1: ++%*15i: 0B1:0:4: ++%15i: 0b1:1:4:1: ++%*15i: 0b1:0:4: ++%15i: 42:1:3:42: ++%*15i: 42:0:3: ++%15i: 0X2a:1:5:42: ++%*15i: 0X2a:0:5: ++%15i: 0x2A:1:5:42: ++%*15i: 0x2A:0:5: ++%15i: 052:1:4:42: ++%*15i: 052:0:4: ++%15i: 0B101010:1:9:42: ++%*15i: 0B101010:0:9: ++%15i: 0b101010:1:9:42: ++%*15i: 0b101010:0:9: ++%15i: 2147483647:1:11:2147483647: ++%*15i: 2147483647:0:11: ++%15i: 0X7fffffff:1:11:2147483647: ++%*15i: 0X7fffffff:0:11: ++%15i: 0x7FFFFFFF:1:11:2147483647: ++%*15i: 0x7FFFFFFF:0:11: ++%15i: 017777777777:1:13:2147483647: ++%*15i: 017777777777:0:13: ++%15i: 0B1111111111111111111111111111111:1:16:8191: ++%*15i: 0B1111111111111111111111111111111:0:16: ++%15i: 0b1111111111111111111111111111111:1:16:8191: ++%*15i: 0b1111111111111111111111111111111:0:16: ++%15i: 2147483648:1:11:2147483647: ++%*15i: 2147483648:0:11: ++%15i: 0X80000000:1:11:2147483647: ++%*15i: 0X80000000:0:11: ++%15i: 0x80000000:1:11:2147483647: ++%*15i: 0x80000000:0:11: ++%15i: 020000000000:1:13:2147483647: ++%*15i: 020000000000:0:13: ++%15i: 0B10000000000000000000000000000000:1:16:4096: ++%*15i: 0B10000000000000000000000000000000:0:16: ++%15i: 0b10000000000000000000000000000000:1:16:4096: ++%*15i: 0b10000000000000000000000000000000:0:16: ++%15i: 2147487889:1:11:2147483647: ++%*15i: 2147487889:0:11: ++%15i: 0X80001091:1:11:2147483647: ++%*15i: 0X80001091:0:11: ++%15i: 0x80001091:1:11:2147483647: ++%*15i: 0x80001091:0:11: ++%15i: 020000010221:1:13:2147483647: ++%*15i: 020000010221:0:13: ++%15i: 0B10000000000000000001000010010001:1:16:4096: ++%*15i: 0B10000000000000000001000010010001:0:16: ++%15i: 0b10000000000000000001000010010001:1:16:4096: ++%*15i: 0b10000000000000000001000010010001:0:16: ++%15i: +0:1:3:0: ++%*15i: +0:0:3: ++%15i: +0X0:1:5:0: ++%*15i: +0X0:0:5: ++%15i: +0x0:1:5:0: ++%*15i: +0x0:0:5: ++%15i: +00:1:4:0: ++%*15i: +00:0:4: ++%15i: +0B0:1:5:0: ++%*15i: +0B0:0:5: ++%15i: +0b0:1:5:0: ++%*15i: +0b0:0:5: ++%15i: +1:1:3:1: ++%*15i: +1:0:3: ++%15i: +0X1:1:5:1: ++%*15i: +0X1:0:5: ++%15i: +0x1:1:5:1: ++%*15i: +0x1:0:5: ++%15i: +01:1:4:1: ++%*15i: +01:0:4: ++%15i: +0B1:1:5:1: ++%*15i: +0B1:0:5: ++%15i: +0b1:1:5:1: ++%*15i: +0b1:0:5: ++%15i: +42:1:4:42: ++%*15i: +42:0:4: ++%15i: +0X2a:1:6:42: ++%*15i: +0X2a:0:6: ++%15i: +0x2A:1:6:42: ++%*15i: +0x2A:0:6: ++%15i: +052:1:5:42: ++%*15i: +052:0:5: ++%15i: +0B101010:1:10:42: ++%*15i: +0B101010:0:10: ++%15i: +0b101010:1:10:42: ++%*15i: +0b101010:0:10: ++%15i: +2147483647:1:12:2147483647: ++%*15i: +2147483647:0:12: ++%15i: +0X7fffffff:1:12:2147483647: ++%*15i: +0X7fffffff:0:12: ++%15i: +0x7FFFFFFF:1:12:2147483647: ++%*15i: +0x7FFFFFFF:0:12: ++%15i: +017777777777:1:14:2147483647: ++%*15i: +017777777777:0:14: ++%15i: +0B1111111111111111111111111111111:1:16:4095: ++%*15i: +0B1111111111111111111111111111111:0:16: ++%15i: +0b1111111111111111111111111111111:1:16:4095: ++%*15i: +0b1111111111111111111111111111111:0:16: ++%15i: +2147483648:1:12:2147483647: ++%*15i: +2147483648:0:12: ++%15i: +0X80000000:1:12:2147483647: ++%*15i: +0X80000000:0:12: ++%15i: +0x80000000:1:12:2147483647: ++%*15i: +0x80000000:0:12: ++%15i: +020000000000:1:14:2147483647: ++%*15i: +020000000000:0:14: ++%15i: +0B10000000000000000000000000000000:1:16:2048: ++%*15i: +0B10000000000000000000000000000000:0:16: ++%15i: +0b10000000000000000000000000000000:1:16:2048: ++%*15i: +0b10000000000000000000000000000000:0:16: ++%15i: +2147487889:1:12:2147483647: ++%*15i: +2147487889:0:12: ++%15i: +0X80001091:1:12:2147483647: ++%*15i: +0X80001091:0:12: ++%15i: +0x80001091:1:12:2147483647: ++%*15i: +0x80001091:0:12: ++%15i: +020000010221:1:14:2147483647: ++%*15i: +020000010221:0:14: ++%15i: +0B10000000000000000001000010010001:1:16:2048: ++%*15i: +0B10000000000000000001000010010001:0:16: ++%15i: +0b10000000000000000001000010010001:1:16:2048: ++%*15i: +0b10000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-long-d.input b/sysdeps/wordsize-32/tst-scanf-format-long-d.input +new file mode 100644 +index 0000000000000000..8abbcdd957f95fdb +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-long-d.input +@@ -0,0 +1,266 @@ ++%ld::0:-1: ++%*ld::0:-1: ++%ld:-2147484882:1:11:-2147483648: ++%*ld:-2147484882:0:11: ++%ld:-2147483649:1:11:-2147483648: ++%*ld:-2147483649:0:11: ++%ld:-2147483648:1:11:-2147483648: ++%*ld:-2147483648:0:11: ++%ld:-123:1:4:-123: ++%*ld:-123:0:4: ++%ld:-1:1:2:-1: ++%*ld:-1:0:2: ++%ld:-0:1:2:0: ++%*ld:-0:0:2: ++%ld:0:1:1:0: ++%*ld:0:0:1: ++%ld:1:1:1:1: ++%*ld:1:0:1: ++%ld:42:1:2:42: ++%*ld:42:0:2: ++%ld:2147483647:1:10:2147483647: ++%*ld:2147483647:0:10: ++%ld:2147483648:1:10:2147483647: ++%*ld:2147483648:0:10: ++%ld:2147487889:1:10:2147483647: ++%*ld:2147487889:0:10: ++%ld:+0:1:2:0: ++%*ld:+0:0:2: ++%ld:+1:1:2:1: ++%*ld:+1:0:2: ++%ld:+42:1:3:42: ++%*ld:+42:0:3: ++%ld:+2147483647:1:11:2147483647: ++%*ld:+2147483647:0:11: ++%ld:+2147483648:1:11:2147483647: ++%*ld:+2147483648:0:11: ++%ld:+2147487889:1:11:2147483647: ++%*ld:+2147487889:0:11: ++%1ld::0:-1: ++%*1ld::0:-1: ++%1ld:-2147484882:0:-1: ++%*1ld:-2147484882:0:-1: ++%1ld:-2147483649:0:-1: ++%*1ld:-2147483649:0:-1: ++%1ld:-2147483648:0:-1: ++%*1ld:-2147483648:0:-1: ++%1ld:-123:0:-1: ++%*1ld:-123:0:-1: ++%1ld:-1:0:-1: ++%*1ld:-1:0:-1: ++%1ld:-0:0:-1: ++%*1ld:-0:0:-1: ++%1ld:0:1:1:0: ++%*1ld:0:0:1: ++%1ld:1:1:1:1: ++%*1ld:1:0:1: ++%1ld:42:1:1:4: ++%*1ld:42:0:1: ++%1ld:2147483647:1:1:2: ++%*1ld:2147483647:0:1: ++%1ld:2147483648:1:1:2: ++%*1ld:2147483648:0:1: ++%1ld:2147487889:1:1:2: ++%*1ld:2147487889:0:1: ++%1ld:+0:0:-1: ++%*1ld:+0:0:-1: ++%1ld:+1:0:-1: ++%*1ld:+1:0:-1: ++%1ld:+42:0:-1: ++%*1ld:+42:0:-1: ++%1ld:+2147483647:0:-1: ++%*1ld:+2147483647:0:-1: ++%1ld:+2147483648:0:-1: ++%*1ld:+2147483648:0:-1: ++%1ld:+2147487889:0:-1: ++%*1ld:+2147487889:0:-1: ++%2ld::0:-1: ++%*2ld::0:-1: ++%2ld:-2147484882:1:2:-2: ++%*2ld:-2147484882:0:2: ++%2ld:-2147483649:1:2:-2: ++%*2ld:-2147483649:0:2: ++%2ld:-2147483648:1:2:-2: ++%*2ld:-2147483648:0:2: ++%2ld:-123:1:2:-1: ++%*2ld:-123:0:2: ++%2ld:-1:1:2:-1: ++%*2ld:-1:0:2: ++%2ld:-0:1:2:0: ++%*2ld:-0:0:2: ++%2ld:0:1:1:0: ++%*2ld:0:0:1: ++%2ld:1:1:1:1: ++%*2ld:1:0:1: ++%2ld:42:1:2:42: ++%*2ld:42:0:2: ++%2ld:2147483647:1:2:21: ++%*2ld:2147483647:0:2: ++%2ld:2147483648:1:2:21: ++%*2ld:2147483648:0:2: ++%2ld:2147487889:1:2:21: ++%*2ld:2147487889:0:2: ++%2ld:+0:1:2:0: ++%*2ld:+0:0:2: ++%2ld:+1:1:2:1: ++%*2ld:+1:0:2: ++%2ld:+42:1:2:4: ++%*2ld:+42:0:2: ++%2ld:+2147483647:1:2:2: ++%*2ld:+2147483647:0:2: ++%2ld:+2147483648:1:2:2: ++%*2ld:+2147483648:0:2: ++%2ld:+2147487889:1:2:2: ++%*2ld:+2147487889:0:2: ++%8ld::0:-1: ++%*8ld::0:-1: ++%8ld:-2147484882:1:8:-2147484: ++%*8ld:-2147484882:0:8: ++%8ld:-2147483649:1:8:-2147483: ++%*8ld:-2147483649:0:8: ++%8ld:-2147483648:1:8:-2147483: ++%*8ld:-2147483648:0:8: ++%8ld:-123:1:4:-123: ++%*8ld:-123:0:4: ++%8ld:-1:1:2:-1: ++%*8ld:-1:0:2: ++%8ld:-0:1:2:0: ++%*8ld:-0:0:2: ++%8ld:0:1:1:0: ++%*8ld:0:0:1: ++%8ld:1:1:1:1: ++%*8ld:1:0:1: ++%8ld:42:1:2:42: ++%*8ld:42:0:2: ++%8ld:2147483647:1:8:21474836: ++%*8ld:2147483647:0:8: ++%8ld:2147483648:1:8:21474836: ++%*8ld:2147483648:0:8: ++%8ld:2147487889:1:8:21474878: ++%*8ld:2147487889:0:8: ++%8ld:+0:1:2:0: ++%*8ld:+0:0:2: ++%8ld:+1:1:2:1: ++%*8ld:+1:0:2: ++%8ld:+42:1:3:42: ++%*8ld:+42:0:3: ++%8ld:+2147483647:1:8:2147483: ++%*8ld:+2147483647:0:8: ++%8ld:+2147483648:1:8:2147483: ++%*8ld:+2147483648:0:8: ++%8ld:+2147487889:1:8:2147487: ++%*8ld:+2147487889:0:8: ++%15ld::0:-1: ++%*15ld::0:-1: ++%15ld:-2147484882:1:11:-2147483648: ++%*15ld:-2147484882:0:11: ++%15ld:-2147483649:1:11:-2147483648: ++%*15ld:-2147483649:0:11: ++%15ld:-2147483648:1:11:-2147483648: ++%*15ld:-2147483648:0:11: ++%15ld:-123:1:4:-123: ++%*15ld:-123:0:4: ++%15ld:-1:1:2:-1: ++%*15ld:-1:0:2: ++%15ld:-0:1:2:0: ++%*15ld:-0:0:2: ++%15ld:0:1:1:0: ++%*15ld:0:0:1: ++%15ld:1:1:1:1: ++%*15ld:1:0:1: ++%15ld:42:1:2:42: ++%*15ld:42:0:2: ++%15ld:2147483647:1:10:2147483647: ++%*15ld:2147483647:0:10: ++%15ld:2147483648:1:10:2147483647: ++%*15ld:2147483648:0:10: ++%15ld:2147487889:1:10:2147483647: ++%*15ld:2147487889:0:10: ++%15ld:+0:1:2:0: ++%*15ld:+0:0:2: ++%15ld:+1:1:2:1: ++%*15ld:+1:0:2: ++%15ld:+42:1:3:42: ++%*15ld:+42:0:3: ++%15ld:+2147483647:1:11:2147483647: ++%*15ld:+2147483647:0:11: ++%15ld:+2147483648:1:11:2147483647: ++%*15ld:+2147483648:0:11: ++%15ld:+2147487889:1:11:2147483647: ++%*15ld:+2147487889:0:11: ++%2ld: :0:-1: ++%*2ld: :0:-1: ++%2ld: -2147484882:1:3:-2: ++%*2ld: -2147484882:0:3: ++%2ld: -2147483649:1:3:-2: ++%*2ld: -2147483649:0:3: ++%2ld: -2147483648:1:3:-2: ++%*2ld: -2147483648:0:3: ++%2ld: -123:1:3:-1: ++%*2ld: -123:0:3: ++%2ld: -1:1:3:-1: ++%*2ld: -1:0:3: ++%2ld: -0:1:3:0: ++%*2ld: -0:0:3: ++%2ld: 0:1:2:0: ++%*2ld: 0:0:2: ++%2ld: 1:1:2:1: ++%*2ld: 1:0:2: ++%2ld: 42:1:3:42: ++%*2ld: 42:0:3: ++%2ld: 2147483647:1:3:21: ++%*2ld: 2147483647:0:3: ++%2ld: 2147483648:1:3:21: ++%*2ld: 2147483648:0:3: ++%2ld: 2147487889:1:3:21: ++%*2ld: 2147487889:0:3: ++%2ld: +0:1:3:0: ++%*2ld: +0:0:3: ++%2ld: +1:1:3:1: ++%*2ld: +1:0:3: ++%2ld: +42:1:3:4: ++%*2ld: +42:0:3: ++%2ld: +2147483647:1:3:2: ++%*2ld: +2147483647:0:3: ++%2ld: +2147483648:1:3:2: ++%*2ld: +2147483648:0:3: ++%2ld: +2147487889:1:3:2: ++%*2ld: +2147487889:0:3: ++%15ld: :0:-1: ++%*15ld: :0:-1: ++%15ld: -2147484882:1:12:-2147483648: ++%*15ld: -2147484882:0:12: ++%15ld: -2147483649:1:12:-2147483648: ++%*15ld: -2147483649:0:12: ++%15ld: -2147483648:1:12:-2147483648: ++%*15ld: -2147483648:0:12: ++%15ld: -123:1:5:-123: ++%*15ld: -123:0:5: ++%15ld: -1:1:3:-1: ++%*15ld: -1:0:3: ++%15ld: -0:1:3:0: ++%*15ld: -0:0:3: ++%15ld: 0:1:2:0: ++%*15ld: 0:0:2: ++%15ld: 1:1:2:1: ++%*15ld: 1:0:2: ++%15ld: 42:1:3:42: ++%*15ld: 42:0:3: ++%15ld: 2147483647:1:11:2147483647: ++%*15ld: 2147483647:0:11: ++%15ld: 2147483648:1:11:2147483647: ++%*15ld: 2147483648:0:11: ++%15ld: 2147487889:1:11:2147483647: ++%*15ld: 2147487889:0:11: ++%15ld: +0:1:3:0: ++%*15ld: +0:0:3: ++%15ld: +1:1:3:1: ++%*15ld: +1:0:3: ++%15ld: +42:1:4:42: ++%*15ld: +42:0:4: ++%15ld: +2147483647:1:12:2147483647: ++%*15ld: +2147483647:0:12: ++%15ld: +2147483648:1:12:2147483647: ++%*15ld: +2147483648:0:12: ++%15ld: +2147487889:1:12:2147483647: ++%*15ld: +2147487889:0:12: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-long-i.input b/sysdeps/wordsize-32/tst-scanf-format-long-i.input +new file mode 100644 +index 0000000000000000..37db25158a611d87 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-long-i.input +@@ -0,0 +1,1526 @@ ++%li::0:-1: ++%*li::0:-1: ++%li:-2147484882:1:11:-2147483648: ++%*li:-2147484882:0:11: ++%li:-0X800004d2:1:11:-2147483648: ++%*li:-0X800004d2:0:11: ++%li:-0x800004D2:1:11:-2147483648: ++%*li:-0x800004D2:0:11: ++%li:-020000002322:1:13:-2147483648: ++%*li:-020000002322:0:13: ++%li:-0B10000000000000000000010011010010:1:35:-2147483648: ++%*li:-0B10000000000000000000010011010010:0:35: ++%li:-0b10000000000000000000010011010010:1:35:-2147483648: ++%*li:-0b10000000000000000000010011010010:0:35: ++%li:-2147483649:1:11:-2147483648: ++%*li:-2147483649:0:11: ++%li:-0X80000001:1:11:-2147483648: ++%*li:-0X80000001:0:11: ++%li:-0x80000001:1:11:-2147483648: ++%*li:-0x80000001:0:11: ++%li:-020000000001:1:13:-2147483648: ++%*li:-020000000001:0:13: ++%li:-0B10000000000000000000000000000001:1:35:-2147483648: ++%*li:-0B10000000000000000000000000000001:0:35: ++%li:-0b10000000000000000000000000000001:1:35:-2147483648: ++%*li:-0b10000000000000000000000000000001:0:35: ++%li:-2147483648:1:11:-2147483648: ++%*li:-2147483648:0:11: ++%li:-0X80000000:1:11:-2147483648: ++%*li:-0X80000000:0:11: ++%li:-0x80000000:1:11:-2147483648: ++%*li:-0x80000000:0:11: ++%li:-020000000000:1:13:-2147483648: ++%*li:-020000000000:0:13: ++%li:-0B10000000000000000000000000000000:1:35:-2147483648: ++%*li:-0B10000000000000000000000000000000:0:35: ++%li:-0b10000000000000000000000000000000:1:35:-2147483648: ++%*li:-0b10000000000000000000000000000000:0:35: ++%li:-123:1:4:-123: ++%*li:-123:0:4: ++%li:-0X7b:1:5:-123: ++%*li:-0X7b:0:5: ++%li:-0x7B:1:5:-123: ++%*li:-0x7B:0:5: ++%li:-0173:1:5:-123: ++%*li:-0173:0:5: ++%li:-0B1111011:1:10:-123: ++%*li:-0B1111011:0:10: ++%li:-0b1111011:1:10:-123: ++%*li:-0b1111011:0:10: ++%li:-1:1:2:-1: ++%*li:-1:0:2: ++%li:-0X1:1:4:-1: ++%*li:-0X1:0:4: ++%li:-0x1:1:4:-1: ++%*li:-0x1:0:4: ++%li:-01:1:3:-1: ++%*li:-01:0:3: ++%li:-0B1:1:4:-1: ++%*li:-0B1:0:4: ++%li:-0b1:1:4:-1: ++%*li:-0b1:0:4: ++%li:-0:1:2:0: ++%*li:-0:0:2: ++%li:-0X0:1:4:0: ++%*li:-0X0:0:4: ++%li:-0x0:1:4:0: ++%*li:-0x0:0:4: ++%li:-00:1:3:0: ++%*li:-00:0:3: ++%li:-0B0:1:4:0: ++%*li:-0B0:0:4: ++%li:-0b0:1:4:0: ++%*li:-0b0:0:4: ++%li:0:1:1:0: ++%*li:0:0:1: ++%li:0X0:1:3:0: ++%*li:0X0:0:3: ++%li:0x0:1:3:0: ++%*li:0x0:0:3: ++%li:00:1:2:0: ++%*li:00:0:2: ++%li:0B0:1:3:0: ++%*li:0B0:0:3: ++%li:0b0:1:3:0: ++%*li:0b0:0:3: ++%li:1:1:1:1: ++%*li:1:0:1: ++%li:0X1:1:3:1: ++%*li:0X1:0:3: ++%li:0x1:1:3:1: ++%*li:0x1:0:3: ++%li:01:1:2:1: ++%*li:01:0:2: ++%li:0B1:1:3:1: ++%*li:0B1:0:3: ++%li:0b1:1:3:1: ++%*li:0b1:0:3: ++%li:42:1:2:42: ++%*li:42:0:2: ++%li:0X2a:1:4:42: ++%*li:0X2a:0:4: ++%li:0x2A:1:4:42: ++%*li:0x2A:0:4: ++%li:052:1:3:42: ++%*li:052:0:3: ++%li:0B101010:1:8:42: ++%*li:0B101010:0:8: ++%li:0b101010:1:8:42: ++%*li:0b101010:0:8: ++%li:2147483647:1:10:2147483647: ++%*li:2147483647:0:10: ++%li:0X7fffffff:1:10:2147483647: ++%*li:0X7fffffff:0:10: ++%li:0x7FFFFFFF:1:10:2147483647: ++%*li:0x7FFFFFFF:0:10: ++%li:017777777777:1:12:2147483647: ++%*li:017777777777:0:12: ++%li:0B1111111111111111111111111111111:1:33:2147483647: ++%*li:0B1111111111111111111111111111111:0:33: ++%li:0b1111111111111111111111111111111:1:33:2147483647: ++%*li:0b1111111111111111111111111111111:0:33: ++%li:2147483648:1:10:2147483647: ++%*li:2147483648:0:10: ++%li:0X80000000:1:10:2147483647: ++%*li:0X80000000:0:10: ++%li:0x80000000:1:10:2147483647: ++%*li:0x80000000:0:10: ++%li:020000000000:1:12:2147483647: ++%*li:020000000000:0:12: ++%li:0B10000000000000000000000000000000:1:34:2147483647: ++%*li:0B10000000000000000000000000000000:0:34: ++%li:0b10000000000000000000000000000000:1:34:2147483647: ++%*li:0b10000000000000000000000000000000:0:34: ++%li:2147487889:1:10:2147483647: ++%*li:2147487889:0:10: ++%li:0X80001091:1:10:2147483647: ++%*li:0X80001091:0:10: ++%li:0x80001091:1:10:2147483647: ++%*li:0x80001091:0:10: ++%li:020000010221:1:12:2147483647: ++%*li:020000010221:0:12: ++%li:0B10000000000000000001000010010001:1:34:2147483647: ++%*li:0B10000000000000000001000010010001:0:34: ++%li:0b10000000000000000001000010010001:1:34:2147483647: ++%*li:0b10000000000000000001000010010001:0:34: ++%li:+0:1:2:0: ++%*li:+0:0:2: ++%li:+0X0:1:4:0: ++%*li:+0X0:0:4: ++%li:+0x0:1:4:0: ++%*li:+0x0:0:4: ++%li:+00:1:3:0: ++%*li:+00:0:3: ++%li:+0B0:1:4:0: ++%*li:+0B0:0:4: ++%li:+0b0:1:4:0: ++%*li:+0b0:0:4: ++%li:+1:1:2:1: ++%*li:+1:0:2: ++%li:+0X1:1:4:1: ++%*li:+0X1:0:4: ++%li:+0x1:1:4:1: ++%*li:+0x1:0:4: ++%li:+01:1:3:1: ++%*li:+01:0:3: ++%li:+0B1:1:4:1: ++%*li:+0B1:0:4: ++%li:+0b1:1:4:1: ++%*li:+0b1:0:4: ++%li:+42:1:3:42: ++%*li:+42:0:3: ++%li:+0X2a:1:5:42: ++%*li:+0X2a:0:5: ++%li:+0x2A:1:5:42: ++%*li:+0x2A:0:5: ++%li:+052:1:4:42: ++%*li:+052:0:4: ++%li:+0B101010:1:9:42: ++%*li:+0B101010:0:9: ++%li:+0b101010:1:9:42: ++%*li:+0b101010:0:9: ++%li:+2147483647:1:11:2147483647: ++%*li:+2147483647:0:11: ++%li:+0X7fffffff:1:11:2147483647: ++%*li:+0X7fffffff:0:11: ++%li:+0x7FFFFFFF:1:11:2147483647: ++%*li:+0x7FFFFFFF:0:11: ++%li:+017777777777:1:13:2147483647: ++%*li:+017777777777:0:13: ++%li:+0B1111111111111111111111111111111:1:34:2147483647: ++%*li:+0B1111111111111111111111111111111:0:34: ++%li:+0b1111111111111111111111111111111:1:34:2147483647: ++%*li:+0b1111111111111111111111111111111:0:34: ++%li:+2147483648:1:11:2147483647: ++%*li:+2147483648:0:11: ++%li:+0X80000000:1:11:2147483647: ++%*li:+0X80000000:0:11: ++%li:+0x80000000:1:11:2147483647: ++%*li:+0x80000000:0:11: ++%li:+020000000000:1:13:2147483647: ++%*li:+020000000000:0:13: ++%li:+0B10000000000000000000000000000000:1:35:2147483647: ++%*li:+0B10000000000000000000000000000000:0:35: ++%li:+0b10000000000000000000000000000000:1:35:2147483647: ++%*li:+0b10000000000000000000000000000000:0:35: ++%li:+2147487889:1:11:2147483647: ++%*li:+2147487889:0:11: ++%li:+0X80001091:1:11:2147483647: ++%*li:+0X80001091:0:11: ++%li:+0x80001091:1:11:2147483647: ++%*li:+0x80001091:0:11: ++%li:+020000010221:1:13:2147483647: ++%*li:+020000010221:0:13: ++%li:+0B10000000000000000001000010010001:1:35:2147483647: ++%*li:+0B10000000000000000001000010010001:0:35: ++%li:+0b10000000000000000001000010010001:1:35:2147483647: ++%*li:+0b10000000000000000001000010010001:0:35: ++%1li::0:-1: ++%*1li::0:-1: ++%1li:-2147484882:0:-1: ++%*1li:-2147484882:0:-1: ++%1li:-0X800004d2:0:-1: ++%*1li:-0X800004d2:0:-1: ++%1li:-0x800004D2:0:-1: ++%*1li:-0x800004D2:0:-1: ++%1li:-020000002322:0:-1: ++%*1li:-020000002322:0:-1: ++%1li:-0B10000000000000000000010011010010:0:-1: ++%*1li:-0B10000000000000000000010011010010:0:-1: ++%1li:-0b10000000000000000000010011010010:0:-1: ++%*1li:-0b10000000000000000000010011010010:0:-1: ++%1li:-2147483649:0:-1: ++%*1li:-2147483649:0:-1: ++%1li:-0X80000001:0:-1: ++%*1li:-0X80000001:0:-1: ++%1li:-0x80000001:0:-1: ++%*1li:-0x80000001:0:-1: ++%1li:-020000000001:0:-1: ++%*1li:-020000000001:0:-1: ++%1li:-0B10000000000000000000000000000001:0:-1: ++%*1li:-0B10000000000000000000000000000001:0:-1: ++%1li:-0b10000000000000000000000000000001:0:-1: ++%*1li:-0b10000000000000000000000000000001:0:-1: ++%1li:-2147483648:0:-1: ++%*1li:-2147483648:0:-1: ++%1li:-0X80000000:0:-1: ++%*1li:-0X80000000:0:-1: ++%1li:-0x80000000:0:-1: ++%*1li:-0x80000000:0:-1: ++%1li:-020000000000:0:-1: ++%*1li:-020000000000:0:-1: ++%1li:-0B10000000000000000000000000000000:0:-1: ++%*1li:-0B10000000000000000000000000000000:0:-1: ++%1li:-0b10000000000000000000000000000000:0:-1: ++%*1li:-0b10000000000000000000000000000000:0:-1: ++%1li:-123:0:-1: ++%*1li:-123:0:-1: ++%1li:-0X7b:0:-1: ++%*1li:-0X7b:0:-1: ++%1li:-0x7B:0:-1: ++%*1li:-0x7B:0:-1: ++%1li:-0173:0:-1: ++%*1li:-0173:0:-1: ++%1li:-0B1111011:0:-1: ++%*1li:-0B1111011:0:-1: ++%1li:-0b1111011:0:-1: ++%*1li:-0b1111011:0:-1: ++%1li:-1:0:-1: ++%*1li:-1:0:-1: ++%1li:-0X1:0:-1: ++%*1li:-0X1:0:-1: ++%1li:-0x1:0:-1: ++%*1li:-0x1:0:-1: ++%1li:-01:0:-1: ++%*1li:-01:0:-1: ++%1li:-0B1:0:-1: ++%*1li:-0B1:0:-1: ++%1li:-0b1:0:-1: ++%*1li:-0b1:0:-1: ++%1li:-0:0:-1: ++%*1li:-0:0:-1: ++%1li:-0X0:0:-1: ++%*1li:-0X0:0:-1: ++%1li:-0x0:0:-1: ++%*1li:-0x0:0:-1: ++%1li:-00:0:-1: ++%*1li:-00:0:-1: ++%1li:-0B0:0:-1: ++%*1li:-0B0:0:-1: ++%1li:-0b0:0:-1: ++%*1li:-0b0:0:-1: ++%1li:0:1:1:0: ++%*1li:0:0:1: ++%1li:0X0:1:1:0: ++%*1li:0X0:0:1: ++%1li:0x0:1:1:0: ++%*1li:0x0:0:1: ++%1li:00:1:1:0: ++%*1li:00:0:1: ++%1li:0B0:1:1:0: ++%*1li:0B0:0:1: ++%1li:0b0:1:1:0: ++%*1li:0b0:0:1: ++%1li:1:1:1:1: ++%*1li:1:0:1: ++%1li:0X1:1:1:0: ++%*1li:0X1:0:1: ++%1li:0x1:1:1:0: ++%*1li:0x1:0:1: ++%1li:01:1:1:0: ++%*1li:01:0:1: ++%1li:0B1:1:1:0: ++%*1li:0B1:0:1: ++%1li:0b1:1:1:0: ++%*1li:0b1:0:1: ++%1li:42:1:1:4: ++%*1li:42:0:1: ++%1li:0X2a:1:1:0: ++%*1li:0X2a:0:1: ++%1li:0x2A:1:1:0: ++%*1li:0x2A:0:1: ++%1li:052:1:1:0: ++%*1li:052:0:1: ++%1li:0B101010:1:1:0: ++%*1li:0B101010:0:1: ++%1li:0b101010:1:1:0: ++%*1li:0b101010:0:1: ++%1li:2147483647:1:1:2: ++%*1li:2147483647:0:1: ++%1li:0X7fffffff:1:1:0: ++%*1li:0X7fffffff:0:1: ++%1li:0x7FFFFFFF:1:1:0: ++%*1li:0x7FFFFFFF:0:1: ++%1li:017777777777:1:1:0: ++%*1li:017777777777:0:1: ++%1li:0B1111111111111111111111111111111:1:1:0: ++%*1li:0B1111111111111111111111111111111:0:1: ++%1li:0b1111111111111111111111111111111:1:1:0: ++%*1li:0b1111111111111111111111111111111:0:1: ++%1li:2147483648:1:1:2: ++%*1li:2147483648:0:1: ++%1li:0X80000000:1:1:0: ++%*1li:0X80000000:0:1: ++%1li:0x80000000:1:1:0: ++%*1li:0x80000000:0:1: ++%1li:020000000000:1:1:0: ++%*1li:020000000000:0:1: ++%1li:0B10000000000000000000000000000000:1:1:0: ++%*1li:0B10000000000000000000000000000000:0:1: ++%1li:0b10000000000000000000000000000000:1:1:0: ++%*1li:0b10000000000000000000000000000000:0:1: ++%1li:2147487889:1:1:2: ++%*1li:2147487889:0:1: ++%1li:0X80001091:1:1:0: ++%*1li:0X80001091:0:1: ++%1li:0x80001091:1:1:0: ++%*1li:0x80001091:0:1: ++%1li:020000010221:1:1:0: ++%*1li:020000010221:0:1: ++%1li:0B10000000000000000001000010010001:1:1:0: ++%*1li:0B10000000000000000001000010010001:0:1: ++%1li:0b10000000000000000001000010010001:1:1:0: ++%*1li:0b10000000000000000001000010010001:0:1: ++%1li:+0:0:-1: ++%*1li:+0:0:-1: ++%1li:+0X0:0:-1: ++%*1li:+0X0:0:-1: ++%1li:+0x0:0:-1: ++%*1li:+0x0:0:-1: ++%1li:+00:0:-1: ++%*1li:+00:0:-1: ++%1li:+0B0:0:-1: ++%*1li:+0B0:0:-1: ++%1li:+0b0:0:-1: ++%*1li:+0b0:0:-1: ++%1li:+1:0:-1: ++%*1li:+1:0:-1: ++%1li:+0X1:0:-1: ++%*1li:+0X1:0:-1: ++%1li:+0x1:0:-1: ++%*1li:+0x1:0:-1: ++%1li:+01:0:-1: ++%*1li:+01:0:-1: ++%1li:+0B1:0:-1: ++%*1li:+0B1:0:-1: ++%1li:+0b1:0:-1: ++%*1li:+0b1:0:-1: ++%1li:+42:0:-1: ++%*1li:+42:0:-1: ++%1li:+0X2a:0:-1: ++%*1li:+0X2a:0:-1: ++%1li:+0x2A:0:-1: ++%*1li:+0x2A:0:-1: ++%1li:+052:0:-1: ++%*1li:+052:0:-1: ++%1li:+0B101010:0:-1: ++%*1li:+0B101010:0:-1: ++%1li:+0b101010:0:-1: ++%*1li:+0b101010:0:-1: ++%1li:+2147483647:0:-1: ++%*1li:+2147483647:0:-1: ++%1li:+0X7fffffff:0:-1: ++%*1li:+0X7fffffff:0:-1: ++%1li:+0x7FFFFFFF:0:-1: ++%*1li:+0x7FFFFFFF:0:-1: ++%1li:+017777777777:0:-1: ++%*1li:+017777777777:0:-1: ++%1li:+0B1111111111111111111111111111111:0:-1: ++%*1li:+0B1111111111111111111111111111111:0:-1: ++%1li:+0b1111111111111111111111111111111:0:-1: ++%*1li:+0b1111111111111111111111111111111:0:-1: ++%1li:+2147483648:0:-1: ++%*1li:+2147483648:0:-1: ++%1li:+0X80000000:0:-1: ++%*1li:+0X80000000:0:-1: ++%1li:+0x80000000:0:-1: ++%*1li:+0x80000000:0:-1: ++%1li:+020000000000:0:-1: ++%*1li:+020000000000:0:-1: ++%1li:+0B10000000000000000000000000000000:0:-1: ++%*1li:+0B10000000000000000000000000000000:0:-1: ++%1li:+0b10000000000000000000000000000000:0:-1: ++%*1li:+0b10000000000000000000000000000000:0:-1: ++%1li:+2147487889:0:-1: ++%*1li:+2147487889:0:-1: ++%1li:+0X80001091:0:-1: ++%*1li:+0X80001091:0:-1: ++%1li:+0x80001091:0:-1: ++%*1li:+0x80001091:0:-1: ++%1li:+020000010221:0:-1: ++%*1li:+020000010221:0:-1: ++%1li:+0B10000000000000000001000010010001:0:-1: ++%*1li:+0B10000000000000000001000010010001:0:-1: ++%1li:+0b10000000000000000001000010010001:0:-1: ++%*1li:+0b10000000000000000001000010010001:0:-1: ++%2li::0:-1: ++%*2li::0:-1: ++%2li:-2147484882:1:2:-2: ++%*2li:-2147484882:0:2: ++%2li:-0X800004d2:1:2:0: ++%*2li:-0X800004d2:0:2: ++%2li:-0x800004D2:1:2:0: ++%*2li:-0x800004D2:0:2: ++%2li:-020000002322:1:2:0: ++%*2li:-020000002322:0:2: ++%2li:-0B10000000000000000000010011010010:1:2:0: ++%*2li:-0B10000000000000000000010011010010:0:2: ++%2li:-0b10000000000000000000010011010010:1:2:0: ++%*2li:-0b10000000000000000000010011010010:0:2: ++%2li:-2147483649:1:2:-2: ++%*2li:-2147483649:0:2: ++%2li:-0X80000001:1:2:0: ++%*2li:-0X80000001:0:2: ++%2li:-0x80000001:1:2:0: ++%*2li:-0x80000001:0:2: ++%2li:-020000000001:1:2:0: ++%*2li:-020000000001:0:2: ++%2li:-0B10000000000000000000000000000001:1:2:0: ++%*2li:-0B10000000000000000000000000000001:0:2: ++%2li:-0b10000000000000000000000000000001:1:2:0: ++%*2li:-0b10000000000000000000000000000001:0:2: ++%2li:-2147483648:1:2:-2: ++%*2li:-2147483648:0:2: ++%2li:-0X80000000:1:2:0: ++%*2li:-0X80000000:0:2: ++%2li:-0x80000000:1:2:0: ++%*2li:-0x80000000:0:2: ++%2li:-020000000000:1:2:0: ++%*2li:-020000000000:0:2: ++%2li:-0B10000000000000000000000000000000:1:2:0: ++%*2li:-0B10000000000000000000000000000000:0:2: ++%2li:-0b10000000000000000000000000000000:1:2:0: ++%*2li:-0b10000000000000000000000000000000:0:2: ++%2li:-123:1:2:-1: ++%*2li:-123:0:2: ++%2li:-0X7b:1:2:0: ++%*2li:-0X7b:0:2: ++%2li:-0x7B:1:2:0: ++%*2li:-0x7B:0:2: ++%2li:-0173:1:2:0: ++%*2li:-0173:0:2: ++%2li:-0B1111011:1:2:0: ++%*2li:-0B1111011:0:2: ++%2li:-0b1111011:1:2:0: ++%*2li:-0b1111011:0:2: ++%2li:-1:1:2:-1: ++%*2li:-1:0:2: ++%2li:-0X1:1:2:0: ++%*2li:-0X1:0:2: ++%2li:-0x1:1:2:0: ++%*2li:-0x1:0:2: ++%2li:-01:1:2:0: ++%*2li:-01:0:2: ++%2li:-0B1:1:2:0: ++%*2li:-0B1:0:2: ++%2li:-0b1:1:2:0: ++%*2li:-0b1:0:2: ++%2li:-0:1:2:0: ++%*2li:-0:0:2: ++%2li:-0X0:1:2:0: ++%*2li:-0X0:0:2: ++%2li:-0x0:1:2:0: ++%*2li:-0x0:0:2: ++%2li:-00:1:2:0: ++%*2li:-00:0:2: ++%2li:-0B0:1:2:0: ++%*2li:-0B0:0:2: ++%2li:-0b0:1:2:0: ++%*2li:-0b0:0:2: ++%2li:0:1:1:0: ++%*2li:0:0:1: ++# BZ12701 %2li:0X0:0:-1: ++# BZ12701 %*2li:0X0:0:-1: ++# BZ12701 %2li:0x0:0:-1: ++# BZ12701 %*2li:0x0:0:-1: ++%2li:00:1:2:0: ++%*2li:00:0:2: ++# BZ12701 %2li:0B0:0:-1: ++# BZ12701 %*2li:0B0:0:-1: ++# BZ12701 %2li:0b0:0:-1: ++# BZ12701 %*2li:0b0:0:-1: ++%2li:1:1:1:1: ++%*2li:1:0:1: ++# BZ12701 %2li:0X1:0:-1: ++# BZ12701 %*2li:0X1:0:-1: ++# BZ12701 %2li:0x1:0:-1: ++# BZ12701 %*2li:0x1:0:-1: ++%2li:01:1:2:1: ++%*2li:01:0:2: ++# BZ12701 %2li:0B1:0:-1: ++# BZ12701 %*2li:0B1:0:-1: ++# BZ12701 %2li:0b1:0:-1: ++# BZ12701 %*2li:0b1:0:-1: ++%2li:42:1:2:42: ++%*2li:42:0:2: ++# BZ12701 %2li:0X2a:0:-1: ++# BZ12701 %*2li:0X2a:0:-1: ++# BZ12701 %2li:0x2A:0:-1: ++# BZ12701 %*2li:0x2A:0:-1: ++%2li:052:1:2:5: ++%*2li:052:0:2: ++# BZ12701 %2li:0B101010:0:-1: ++# BZ12701 %*2li:0B101010:0:-1: ++# BZ12701 %2li:0b101010:0:-1: ++# BZ12701 %*2li:0b101010:0:-1: ++%2li:2147483647:1:2:21: ++%*2li:2147483647:0:2: ++# BZ12701 %2li:0X7fffffff:0:-1: ++# BZ12701 %*2li:0X7fffffff:0:-1: ++# BZ12701 %2li:0x7FFFFFFF:0:-1: ++# BZ12701 %*2li:0x7FFFFFFF:0:-1: ++%2li:017777777777:1:2:1: ++%*2li:017777777777:0:2: ++# BZ12701 %2li:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2li:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2li:0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2li:0b1111111111111111111111111111111:0:-1: ++%2li:2147483648:1:2:21: ++%*2li:2147483648:0:2: ++# BZ12701 %2li:0X80000000:0:-1: ++# BZ12701 %*2li:0X80000000:0:-1: ++# BZ12701 %2li:0x80000000:0:-1: ++# BZ12701 %*2li:0x80000000:0:-1: ++%2li:020000000000:1:2:2: ++%*2li:020000000000:0:2: ++# BZ12701 %2li:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2li:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2li:0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2li:0b10000000000000000000000000000000:0:-1: ++%2li:2147487889:1:2:21: ++%*2li:2147487889:0:2: ++# BZ12701 %2li:0X80001091:0:-1: ++# BZ12701 %*2li:0X80001091:0:-1: ++# BZ12701 %2li:0x80001091:0:-1: ++# BZ12701 %*2li:0x80001091:0:-1: ++%2li:020000010221:1:2:2: ++%*2li:020000010221:0:2: ++# BZ12701 %2li:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2li:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2li:0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2li:0b10000000000000000001000010010001:0:-1: ++%2li:+0:1:2:0: ++%*2li:+0:0:2: ++%2li:+0X0:1:2:0: ++%*2li:+0X0:0:2: ++%2li:+0x0:1:2:0: ++%*2li:+0x0:0:2: ++%2li:+00:1:2:0: ++%*2li:+00:0:2: ++%2li:+0B0:1:2:0: ++%*2li:+0B0:0:2: ++%2li:+0b0:1:2:0: ++%*2li:+0b0:0:2: ++%2li:+1:1:2:1: ++%*2li:+1:0:2: ++%2li:+0X1:1:2:0: ++%*2li:+0X1:0:2: ++%2li:+0x1:1:2:0: ++%*2li:+0x1:0:2: ++%2li:+01:1:2:0: ++%*2li:+01:0:2: ++%2li:+0B1:1:2:0: ++%*2li:+0B1:0:2: ++%2li:+0b1:1:2:0: ++%*2li:+0b1:0:2: ++%2li:+42:1:2:4: ++%*2li:+42:0:2: ++%2li:+0X2a:1:2:0: ++%*2li:+0X2a:0:2: ++%2li:+0x2A:1:2:0: ++%*2li:+0x2A:0:2: ++%2li:+052:1:2:0: ++%*2li:+052:0:2: ++%2li:+0B101010:1:2:0: ++%*2li:+0B101010:0:2: ++%2li:+0b101010:1:2:0: ++%*2li:+0b101010:0:2: ++%2li:+2147483647:1:2:2: ++%*2li:+2147483647:0:2: ++%2li:+0X7fffffff:1:2:0: ++%*2li:+0X7fffffff:0:2: ++%2li:+0x7FFFFFFF:1:2:0: ++%*2li:+0x7FFFFFFF:0:2: ++%2li:+017777777777:1:2:0: ++%*2li:+017777777777:0:2: ++%2li:+0B1111111111111111111111111111111:1:2:0: ++%*2li:+0B1111111111111111111111111111111:0:2: ++%2li:+0b1111111111111111111111111111111:1:2:0: ++%*2li:+0b1111111111111111111111111111111:0:2: ++%2li:+2147483648:1:2:2: ++%*2li:+2147483648:0:2: ++%2li:+0X80000000:1:2:0: ++%*2li:+0X80000000:0:2: ++%2li:+0x80000000:1:2:0: ++%*2li:+0x80000000:0:2: ++%2li:+020000000000:1:2:0: ++%*2li:+020000000000:0:2: ++%2li:+0B10000000000000000000000000000000:1:2:0: ++%*2li:+0B10000000000000000000000000000000:0:2: ++%2li:+0b10000000000000000000000000000000:1:2:0: ++%*2li:+0b10000000000000000000000000000000:0:2: ++%2li:+2147487889:1:2:2: ++%*2li:+2147487889:0:2: ++%2li:+0X80001091:1:2:0: ++%*2li:+0X80001091:0:2: ++%2li:+0x80001091:1:2:0: ++%*2li:+0x80001091:0:2: ++%2li:+020000010221:1:2:0: ++%*2li:+020000010221:0:2: ++%2li:+0B10000000000000000001000010010001:1:2:0: ++%*2li:+0B10000000000000000001000010010001:0:2: ++%2li:+0b10000000000000000001000010010001:1:2:0: ++%*2li:+0b10000000000000000001000010010001:0:2: ++%8li::0:-1: ++%*8li::0:-1: ++%8li:-2147484882:1:8:-2147484: ++%*8li:-2147484882:0:8: ++%8li:-0X800004d2:1:8:-524288: ++%*8li:-0X800004d2:0:8: ++%8li:-0x800004D2:1:8:-524288: ++%*8li:-0x800004D2:0:8: ++%8li:-020000002322:1:8:-65536: ++%*8li:-020000002322:0:8: ++%8li:-0B10000000000000000000010011010010:1:8:-16: ++%*8li:-0B10000000000000000000010011010010:0:8: ++%8li:-0b10000000000000000000010011010010:1:8:-16: ++%*8li:-0b10000000000000000000010011010010:0:8: ++%8li:-2147483649:1:8:-2147483: ++%*8li:-2147483649:0:8: ++%8li:-0X80000001:1:8:-524288: ++%*8li:-0X80000001:0:8: ++%8li:-0x80000001:1:8:-524288: ++%*8li:-0x80000001:0:8: ++%8li:-020000000001:1:8:-65536: ++%*8li:-020000000001:0:8: ++%8li:-0B10000000000000000000000000000001:1:8:-16: ++%*8li:-0B10000000000000000000000000000001:0:8: ++%8li:-0b10000000000000000000000000000001:1:8:-16: ++%*8li:-0b10000000000000000000000000000001:0:8: ++%8li:-2147483648:1:8:-2147483: ++%*8li:-2147483648:0:8: ++%8li:-0X80000000:1:8:-524288: ++%*8li:-0X80000000:0:8: ++%8li:-0x80000000:1:8:-524288: ++%*8li:-0x80000000:0:8: ++%8li:-020000000000:1:8:-65536: ++%*8li:-020000000000:0:8: ++%8li:-0B10000000000000000000000000000000:1:8:-16: ++%*8li:-0B10000000000000000000000000000000:0:8: ++%8li:-0b10000000000000000000000000000000:1:8:-16: ++%*8li:-0b10000000000000000000000000000000:0:8: ++%8li:-123:1:4:-123: ++%*8li:-123:0:4: ++%8li:-0X7b:1:5:-123: ++%*8li:-0X7b:0:5: ++%8li:-0x7B:1:5:-123: ++%*8li:-0x7B:0:5: ++%8li:-0173:1:5:-123: ++%*8li:-0173:0:5: ++%8li:-0B1111011:1:8:-30: ++%*8li:-0B1111011:0:8: ++%8li:-0b1111011:1:8:-30: ++%*8li:-0b1111011:0:8: ++%8li:-1:1:2:-1: ++%*8li:-1:0:2: ++%8li:-0X1:1:4:-1: ++%*8li:-0X1:0:4: ++%8li:-0x1:1:4:-1: ++%*8li:-0x1:0:4: ++%8li:-01:1:3:-1: ++%*8li:-01:0:3: ++%8li:-0B1:1:4:-1: ++%*8li:-0B1:0:4: ++%8li:-0b1:1:4:-1: ++%*8li:-0b1:0:4: ++%8li:-0:1:2:0: ++%*8li:-0:0:2: ++%8li:-0X0:1:4:0: ++%*8li:-0X0:0:4: ++%8li:-0x0:1:4:0: ++%*8li:-0x0:0:4: ++%8li:-00:1:3:0: ++%*8li:-00:0:3: ++%8li:-0B0:1:4:0: ++%*8li:-0B0:0:4: ++%8li:-0b0:1:4:0: ++%*8li:-0b0:0:4: ++%8li:0:1:1:0: ++%*8li:0:0:1: ++%8li:0X0:1:3:0: ++%*8li:0X0:0:3: ++%8li:0x0:1:3:0: ++%*8li:0x0:0:3: ++%8li:00:1:2:0: ++%*8li:00:0:2: ++%8li:0B0:1:3:0: ++%*8li:0B0:0:3: ++%8li:0b0:1:3:0: ++%*8li:0b0:0:3: ++%8li:1:1:1:1: ++%*8li:1:0:1: ++%8li:0X1:1:3:1: ++%*8li:0X1:0:3: ++%8li:0x1:1:3:1: ++%*8li:0x1:0:3: ++%8li:01:1:2:1: ++%*8li:01:0:2: ++%8li:0B1:1:3:1: ++%*8li:0B1:0:3: ++%8li:0b1:1:3:1: ++%*8li:0b1:0:3: ++%8li:42:1:2:42: ++%*8li:42:0:2: ++%8li:0X2a:1:4:42: ++%*8li:0X2a:0:4: ++%8li:0x2A:1:4:42: ++%*8li:0x2A:0:4: ++%8li:052:1:3:42: ++%*8li:052:0:3: ++%8li:0B101010:1:8:42: ++%*8li:0B101010:0:8: ++%8li:0b101010:1:8:42: ++%*8li:0b101010:0:8: ++%8li:2147483647:1:8:21474836: ++%*8li:2147483647:0:8: ++%8li:0X7fffffff:1:8:8388607: ++%*8li:0X7fffffff:0:8: ++%8li:0x7FFFFFFF:1:8:8388607: ++%*8li:0x7FFFFFFF:0:8: ++%8li:017777777777:1:8:524287: ++%*8li:017777777777:0:8: ++%8li:0B1111111111111111111111111111111:1:8:63: ++%*8li:0B1111111111111111111111111111111:0:8: ++%8li:0b1111111111111111111111111111111:1:8:63: ++%*8li:0b1111111111111111111111111111111:0:8: ++%8li:2147483648:1:8:21474836: ++%*8li:2147483648:0:8: ++%8li:0X80000000:1:8:8388608: ++%*8li:0X80000000:0:8: ++%8li:0x80000000:1:8:8388608: ++%*8li:0x80000000:0:8: ++%8li:020000000000:1:8:524288: ++%*8li:020000000000:0:8: ++%8li:0B10000000000000000000000000000000:1:8:32: ++%*8li:0B10000000000000000000000000000000:0:8: ++%8li:0b10000000000000000000000000000000:1:8:32: ++%*8li:0b10000000000000000000000000000000:0:8: ++%8li:2147487889:1:8:21474878: ++%*8li:2147487889:0:8: ++%8li:0X80001091:1:8:8388624: ++%*8li:0X80001091:0:8: ++%8li:0x80001091:1:8:8388624: ++%*8li:0x80001091:0:8: ++%8li:020000010221:1:8:524289: ++%*8li:020000010221:0:8: ++%8li:0B10000000000000000001000010010001:1:8:32: ++%*8li:0B10000000000000000001000010010001:0:8: ++%8li:0b10000000000000000001000010010001:1:8:32: ++%*8li:0b10000000000000000001000010010001:0:8: ++%8li:+0:1:2:0: ++%*8li:+0:0:2: ++%8li:+0X0:1:4:0: ++%*8li:+0X0:0:4: ++%8li:+0x0:1:4:0: ++%*8li:+0x0:0:4: ++%8li:+00:1:3:0: ++%*8li:+00:0:3: ++%8li:+0B0:1:4:0: ++%*8li:+0B0:0:4: ++%8li:+0b0:1:4:0: ++%*8li:+0b0:0:4: ++%8li:+1:1:2:1: ++%*8li:+1:0:2: ++%8li:+0X1:1:4:1: ++%*8li:+0X1:0:4: ++%8li:+0x1:1:4:1: ++%*8li:+0x1:0:4: ++%8li:+01:1:3:1: ++%*8li:+01:0:3: ++%8li:+0B1:1:4:1: ++%*8li:+0B1:0:4: ++%8li:+0b1:1:4:1: ++%*8li:+0b1:0:4: ++%8li:+42:1:3:42: ++%*8li:+42:0:3: ++%8li:+0X2a:1:5:42: ++%*8li:+0X2a:0:5: ++%8li:+0x2A:1:5:42: ++%*8li:+0x2A:0:5: ++%8li:+052:1:4:42: ++%*8li:+052:0:4: ++%8li:+0B101010:1:8:21: ++%*8li:+0B101010:0:8: ++%8li:+0b101010:1:8:21: ++%*8li:+0b101010:0:8: ++%8li:+2147483647:1:8:2147483: ++%*8li:+2147483647:0:8: ++%8li:+0X7fffffff:1:8:524287: ++%*8li:+0X7fffffff:0:8: ++%8li:+0x7FFFFFFF:1:8:524287: ++%*8li:+0x7FFFFFFF:0:8: ++%8li:+017777777777:1:8:65535: ++%*8li:+017777777777:0:8: ++%8li:+0B1111111111111111111111111111111:1:8:31: ++%*8li:+0B1111111111111111111111111111111:0:8: ++%8li:+0b1111111111111111111111111111111:1:8:31: ++%*8li:+0b1111111111111111111111111111111:0:8: ++%8li:+2147483648:1:8:2147483: ++%*8li:+2147483648:0:8: ++%8li:+0X80000000:1:8:524288: ++%*8li:+0X80000000:0:8: ++%8li:+0x80000000:1:8:524288: ++%*8li:+0x80000000:0:8: ++%8li:+020000000000:1:8:65536: ++%*8li:+020000000000:0:8: ++%8li:+0B10000000000000000000000000000000:1:8:16: ++%*8li:+0B10000000000000000000000000000000:0:8: ++%8li:+0b10000000000000000000000000000000:1:8:16: ++%*8li:+0b10000000000000000000000000000000:0:8: ++%8li:+2147487889:1:8:2147487: ++%*8li:+2147487889:0:8: ++%8li:+0X80001091:1:8:524289: ++%*8li:+0X80001091:0:8: ++%8li:+0x80001091:1:8:524289: ++%*8li:+0x80001091:0:8: ++%8li:+020000010221:1:8:65536: ++%*8li:+020000010221:0:8: ++%8li:+0B10000000000000000001000010010001:1:8:16: ++%*8li:+0B10000000000000000001000010010001:0:8: ++%8li:+0b10000000000000000001000010010001:1:8:16: ++%*8li:+0b10000000000000000001000010010001:0:8: ++%15li::0:-1: ++%*15li::0:-1: ++%15li:-2147484882:1:11:-2147483648: ++%*15li:-2147484882:0:11: ++%15li:-0X800004d2:1:11:-2147483648: ++%*15li:-0X800004d2:0:11: ++%15li:-0x800004D2:1:11:-2147483648: ++%*15li:-0x800004D2:0:11: ++%15li:-020000002322:1:13:-2147483648: ++%*15li:-020000002322:0:13: ++%15li:-0B10000000000000000000010011010010:1:15:-2048: ++%*15li:-0B10000000000000000000010011010010:0:15: ++%15li:-0b10000000000000000000010011010010:1:15:-2048: ++%*15li:-0b10000000000000000000010011010010:0:15: ++%15li:-2147483649:1:11:-2147483648: ++%*15li:-2147483649:0:11: ++%15li:-0X80000001:1:11:-2147483648: ++%*15li:-0X80000001:0:11: ++%15li:-0x80000001:1:11:-2147483648: ++%*15li:-0x80000001:0:11: ++%15li:-020000000001:1:13:-2147483648: ++%*15li:-020000000001:0:13: ++%15li:-0B10000000000000000000000000000001:1:15:-2048: ++%*15li:-0B10000000000000000000000000000001:0:15: ++%15li:-0b10000000000000000000000000000001:1:15:-2048: ++%*15li:-0b10000000000000000000000000000001:0:15: ++%15li:-2147483648:1:11:-2147483648: ++%*15li:-2147483648:0:11: ++%15li:-0X80000000:1:11:-2147483648: ++%*15li:-0X80000000:0:11: ++%15li:-0x80000000:1:11:-2147483648: ++%*15li:-0x80000000:0:11: ++%15li:-020000000000:1:13:-2147483648: ++%*15li:-020000000000:0:13: ++%15li:-0B10000000000000000000000000000000:1:15:-2048: ++%*15li:-0B10000000000000000000000000000000:0:15: ++%15li:-0b10000000000000000000000000000000:1:15:-2048: ++%*15li:-0b10000000000000000000000000000000:0:15: ++%15li:-123:1:4:-123: ++%*15li:-123:0:4: ++%15li:-0X7b:1:5:-123: ++%*15li:-0X7b:0:5: ++%15li:-0x7B:1:5:-123: ++%*15li:-0x7B:0:5: ++%15li:-0173:1:5:-123: ++%*15li:-0173:0:5: ++%15li:-0B1111011:1:10:-123: ++%*15li:-0B1111011:0:10: ++%15li:-0b1111011:1:10:-123: ++%*15li:-0b1111011:0:10: ++%15li:-1:1:2:-1: ++%*15li:-1:0:2: ++%15li:-0X1:1:4:-1: ++%*15li:-0X1:0:4: ++%15li:-0x1:1:4:-1: ++%*15li:-0x1:0:4: ++%15li:-01:1:3:-1: ++%*15li:-01:0:3: ++%15li:-0B1:1:4:-1: ++%*15li:-0B1:0:4: ++%15li:-0b1:1:4:-1: ++%*15li:-0b1:0:4: ++%15li:-0:1:2:0: ++%*15li:-0:0:2: ++%15li:-0X0:1:4:0: ++%*15li:-0X0:0:4: ++%15li:-0x0:1:4:0: ++%*15li:-0x0:0:4: ++%15li:-00:1:3:0: ++%*15li:-00:0:3: ++%15li:-0B0:1:4:0: ++%*15li:-0B0:0:4: ++%15li:-0b0:1:4:0: ++%*15li:-0b0:0:4: ++%15li:0:1:1:0: ++%*15li:0:0:1: ++%15li:0X0:1:3:0: ++%*15li:0X0:0:3: ++%15li:0x0:1:3:0: ++%*15li:0x0:0:3: ++%15li:00:1:2:0: ++%*15li:00:0:2: ++%15li:0B0:1:3:0: ++%*15li:0B0:0:3: ++%15li:0b0:1:3:0: ++%*15li:0b0:0:3: ++%15li:1:1:1:1: ++%*15li:1:0:1: ++%15li:0X1:1:3:1: ++%*15li:0X1:0:3: ++%15li:0x1:1:3:1: ++%*15li:0x1:0:3: ++%15li:01:1:2:1: ++%*15li:01:0:2: ++%15li:0B1:1:3:1: ++%*15li:0B1:0:3: ++%15li:0b1:1:3:1: ++%*15li:0b1:0:3: ++%15li:42:1:2:42: ++%*15li:42:0:2: ++%15li:0X2a:1:4:42: ++%*15li:0X2a:0:4: ++%15li:0x2A:1:4:42: ++%*15li:0x2A:0:4: ++%15li:052:1:3:42: ++%*15li:052:0:3: ++%15li:0B101010:1:8:42: ++%*15li:0B101010:0:8: ++%15li:0b101010:1:8:42: ++%*15li:0b101010:0:8: ++%15li:2147483647:1:10:2147483647: ++%*15li:2147483647:0:10: ++%15li:0X7fffffff:1:10:2147483647: ++%*15li:0X7fffffff:0:10: ++%15li:0x7FFFFFFF:1:10:2147483647: ++%*15li:0x7FFFFFFF:0:10: ++%15li:017777777777:1:12:2147483647: ++%*15li:017777777777:0:12: ++%15li:0B1111111111111111111111111111111:1:15:8191: ++%*15li:0B1111111111111111111111111111111:0:15: ++%15li:0b1111111111111111111111111111111:1:15:8191: ++%*15li:0b1111111111111111111111111111111:0:15: ++%15li:2147483648:1:10:2147483647: ++%*15li:2147483648:0:10: ++%15li:0X80000000:1:10:2147483647: ++%*15li:0X80000000:0:10: ++%15li:0x80000000:1:10:2147483647: ++%*15li:0x80000000:0:10: ++%15li:020000000000:1:12:2147483647: ++%*15li:020000000000:0:12: ++%15li:0B10000000000000000000000000000000:1:15:4096: ++%*15li:0B10000000000000000000000000000000:0:15: ++%15li:0b10000000000000000000000000000000:1:15:4096: ++%*15li:0b10000000000000000000000000000000:0:15: ++%15li:2147487889:1:10:2147483647: ++%*15li:2147487889:0:10: ++%15li:0X80001091:1:10:2147483647: ++%*15li:0X80001091:0:10: ++%15li:0x80001091:1:10:2147483647: ++%*15li:0x80001091:0:10: ++%15li:020000010221:1:12:2147483647: ++%*15li:020000010221:0:12: ++%15li:0B10000000000000000001000010010001:1:15:4096: ++%*15li:0B10000000000000000001000010010001:0:15: ++%15li:0b10000000000000000001000010010001:1:15:4096: ++%*15li:0b10000000000000000001000010010001:0:15: ++%15li:+0:1:2:0: ++%*15li:+0:0:2: ++%15li:+0X0:1:4:0: ++%*15li:+0X0:0:4: ++%15li:+0x0:1:4:0: ++%*15li:+0x0:0:4: ++%15li:+00:1:3:0: ++%*15li:+00:0:3: ++%15li:+0B0:1:4:0: ++%*15li:+0B0:0:4: ++%15li:+0b0:1:4:0: ++%*15li:+0b0:0:4: ++%15li:+1:1:2:1: ++%*15li:+1:0:2: ++%15li:+0X1:1:4:1: ++%*15li:+0X1:0:4: ++%15li:+0x1:1:4:1: ++%*15li:+0x1:0:4: ++%15li:+01:1:3:1: ++%*15li:+01:0:3: ++%15li:+0B1:1:4:1: ++%*15li:+0B1:0:4: ++%15li:+0b1:1:4:1: ++%*15li:+0b1:0:4: ++%15li:+42:1:3:42: ++%*15li:+42:0:3: ++%15li:+0X2a:1:5:42: ++%*15li:+0X2a:0:5: ++%15li:+0x2A:1:5:42: ++%*15li:+0x2A:0:5: ++%15li:+052:1:4:42: ++%*15li:+052:0:4: ++%15li:+0B101010:1:9:42: ++%*15li:+0B101010:0:9: ++%15li:+0b101010:1:9:42: ++%*15li:+0b101010:0:9: ++%15li:+2147483647:1:11:2147483647: ++%*15li:+2147483647:0:11: ++%15li:+0X7fffffff:1:11:2147483647: ++%*15li:+0X7fffffff:0:11: ++%15li:+0x7FFFFFFF:1:11:2147483647: ++%*15li:+0x7FFFFFFF:0:11: ++%15li:+017777777777:1:13:2147483647: ++%*15li:+017777777777:0:13: ++%15li:+0B1111111111111111111111111111111:1:15:4095: ++%*15li:+0B1111111111111111111111111111111:0:15: ++%15li:+0b1111111111111111111111111111111:1:15:4095: ++%*15li:+0b1111111111111111111111111111111:0:15: ++%15li:+2147483648:1:11:2147483647: ++%*15li:+2147483648:0:11: ++%15li:+0X80000000:1:11:2147483647: ++%*15li:+0X80000000:0:11: ++%15li:+0x80000000:1:11:2147483647: ++%*15li:+0x80000000:0:11: ++%15li:+020000000000:1:13:2147483647: ++%*15li:+020000000000:0:13: ++%15li:+0B10000000000000000000000000000000:1:15:2048: ++%*15li:+0B10000000000000000000000000000000:0:15: ++%15li:+0b10000000000000000000000000000000:1:15:2048: ++%*15li:+0b10000000000000000000000000000000:0:15: ++%15li:+2147487889:1:11:2147483647: ++%*15li:+2147487889:0:11: ++%15li:+0X80001091:1:11:2147483647: ++%*15li:+0X80001091:0:11: ++%15li:+0x80001091:1:11:2147483647: ++%*15li:+0x80001091:0:11: ++%15li:+020000010221:1:13:2147483647: ++%*15li:+020000010221:0:13: ++%15li:+0B10000000000000000001000010010001:1:15:2048: ++%*15li:+0B10000000000000000001000010010001:0:15: ++%15li:+0b10000000000000000001000010010001:1:15:2048: ++%*15li:+0b10000000000000000001000010010001:0:15: ++%2li: :0:-1: ++%*2li: :0:-1: ++%2li: -2147484882:1:3:-2: ++%*2li: -2147484882:0:3: ++%2li: -0X800004d2:1:3:0: ++%*2li: -0X800004d2:0:3: ++%2li: -0x800004D2:1:3:0: ++%*2li: -0x800004D2:0:3: ++%2li: -020000002322:1:3:0: ++%*2li: -020000002322:0:3: ++%2li: -0B10000000000000000000010011010010:1:3:0: ++%*2li: -0B10000000000000000000010011010010:0:3: ++%2li: -0b10000000000000000000010011010010:1:3:0: ++%*2li: -0b10000000000000000000010011010010:0:3: ++%2li: -2147483649:1:3:-2: ++%*2li: -2147483649:0:3: ++%2li: -0X80000001:1:3:0: ++%*2li: -0X80000001:0:3: ++%2li: -0x80000001:1:3:0: ++%*2li: -0x80000001:0:3: ++%2li: -020000000001:1:3:0: ++%*2li: -020000000001:0:3: ++%2li: -0B10000000000000000000000000000001:1:3:0: ++%*2li: -0B10000000000000000000000000000001:0:3: ++%2li: -0b10000000000000000000000000000001:1:3:0: ++%*2li: -0b10000000000000000000000000000001:0:3: ++%2li: -2147483648:1:3:-2: ++%*2li: -2147483648:0:3: ++%2li: -0X80000000:1:3:0: ++%*2li: -0X80000000:0:3: ++%2li: -0x80000000:1:3:0: ++%*2li: -0x80000000:0:3: ++%2li: -020000000000:1:3:0: ++%*2li: -020000000000:0:3: ++%2li: -0B10000000000000000000000000000000:1:3:0: ++%*2li: -0B10000000000000000000000000000000:0:3: ++%2li: -0b10000000000000000000000000000000:1:3:0: ++%*2li: -0b10000000000000000000000000000000:0:3: ++%2li: -123:1:3:-1: ++%*2li: -123:0:3: ++%2li: -0X7b:1:3:0: ++%*2li: -0X7b:0:3: ++%2li: -0x7B:1:3:0: ++%*2li: -0x7B:0:3: ++%2li: -0173:1:3:0: ++%*2li: -0173:0:3: ++%2li: -0B1111011:1:3:0: ++%*2li: -0B1111011:0:3: ++%2li: -0b1111011:1:3:0: ++%*2li: -0b1111011:0:3: ++%2li: -1:1:3:-1: ++%*2li: -1:0:3: ++%2li: -0X1:1:3:0: ++%*2li: -0X1:0:3: ++%2li: -0x1:1:3:0: ++%*2li: -0x1:0:3: ++%2li: -01:1:3:0: ++%*2li: -01:0:3: ++%2li: -0B1:1:3:0: ++%*2li: -0B1:0:3: ++%2li: -0b1:1:3:0: ++%*2li: -0b1:0:3: ++%2li: -0:1:3:0: ++%*2li: -0:0:3: ++%2li: -0X0:1:3:0: ++%*2li: -0X0:0:3: ++%2li: -0x0:1:3:0: ++%*2li: -0x0:0:3: ++%2li: -00:1:3:0: ++%*2li: -00:0:3: ++%2li: -0B0:1:3:0: ++%*2li: -0B0:0:3: ++%2li: -0b0:1:3:0: ++%*2li: -0b0:0:3: ++%2li: 0:1:2:0: ++%*2li: 0:0:2: ++# BZ12701 %2li: 0X0:0:-1: ++# BZ12701 %*2li: 0X0:0:-1: ++# BZ12701 %2li: 0x0:0:-1: ++# BZ12701 %*2li: 0x0:0:-1: ++%2li: 00:1:3:0: ++%*2li: 00:0:3: ++# BZ12701 %2li: 0B0:0:-1: ++# BZ12701 %*2li: 0B0:0:-1: ++# BZ12701 %2li: 0b0:0:-1: ++# BZ12701 %*2li: 0b0:0:-1: ++%2li: 1:1:2:1: ++%*2li: 1:0:2: ++# BZ12701 %2li: 0X1:0:-1: ++# BZ12701 %*2li: 0X1:0:-1: ++# BZ12701 %2li: 0x1:0:-1: ++# BZ12701 %*2li: 0x1:0:-1: ++%2li: 01:1:3:1: ++%*2li: 01:0:3: ++# BZ12701 %2li: 0B1:0:-1: ++# BZ12701 %*2li: 0B1:0:-1: ++# BZ12701 %2li: 0b1:0:-1: ++# BZ12701 %*2li: 0b1:0:-1: ++%2li: 42:1:3:42: ++%*2li: 42:0:3: ++# BZ12701 %2li: 0X2a:0:-1: ++# BZ12701 %*2li: 0X2a:0:-1: ++# BZ12701 %2li: 0x2A:0:-1: ++# BZ12701 %*2li: 0x2A:0:-1: ++%2li: 052:1:3:5: ++%*2li: 052:0:3: ++# BZ12701 %2li: 0B101010:0:-1: ++# BZ12701 %*2li: 0B101010:0:-1: ++# BZ12701 %2li: 0b101010:0:-1: ++# BZ12701 %*2li: 0b101010:0:-1: ++%2li: 2147483647:1:3:21: ++%*2li: 2147483647:0:3: ++# BZ12701 %2li: 0X7fffffff:0:-1: ++# BZ12701 %*2li: 0X7fffffff:0:-1: ++# BZ12701 %2li: 0x7FFFFFFF:0:-1: ++# BZ12701 %*2li: 0x7FFFFFFF:0:-1: ++%2li: 017777777777:1:3:1: ++%*2li: 017777777777:0:3: ++# BZ12701 %2li: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2li: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2li: 0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2li: 0b1111111111111111111111111111111:0:-1: ++%2li: 2147483648:1:3:21: ++%*2li: 2147483648:0:3: ++# BZ12701 %2li: 0X80000000:0:-1: ++# BZ12701 %*2li: 0X80000000:0:-1: ++# BZ12701 %2li: 0x80000000:0:-1: ++# BZ12701 %*2li: 0x80000000:0:-1: ++%2li: 020000000000:1:3:2: ++%*2li: 020000000000:0:3: ++# BZ12701 %2li: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2li: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2li: 0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2li: 0b10000000000000000000000000000000:0:-1: ++%2li: 2147487889:1:3:21: ++%*2li: 2147487889:0:3: ++# BZ12701 %2li: 0X80001091:0:-1: ++# BZ12701 %*2li: 0X80001091:0:-1: ++# BZ12701 %2li: 0x80001091:0:-1: ++# BZ12701 %*2li: 0x80001091:0:-1: ++%2li: 020000010221:1:3:2: ++%*2li: 020000010221:0:3: ++# BZ12701 %2li: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2li: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2li: 0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2li: 0b10000000000000000001000010010001:0:-1: ++%2li: +0:1:3:0: ++%*2li: +0:0:3: ++%2li: +0X0:1:3:0: ++%*2li: +0X0:0:3: ++%2li: +0x0:1:3:0: ++%*2li: +0x0:0:3: ++%2li: +00:1:3:0: ++%*2li: +00:0:3: ++%2li: +0B0:1:3:0: ++%*2li: +0B0:0:3: ++%2li: +0b0:1:3:0: ++%*2li: +0b0:0:3: ++%2li: +1:1:3:1: ++%*2li: +1:0:3: ++%2li: +0X1:1:3:0: ++%*2li: +0X1:0:3: ++%2li: +0x1:1:3:0: ++%*2li: +0x1:0:3: ++%2li: +01:1:3:0: ++%*2li: +01:0:3: ++%2li: +0B1:1:3:0: ++%*2li: +0B1:0:3: ++%2li: +0b1:1:3:0: ++%*2li: +0b1:0:3: ++%2li: +42:1:3:4: ++%*2li: +42:0:3: ++%2li: +0X2a:1:3:0: ++%*2li: +0X2a:0:3: ++%2li: +0x2A:1:3:0: ++%*2li: +0x2A:0:3: ++%2li: +052:1:3:0: ++%*2li: +052:0:3: ++%2li: +0B101010:1:3:0: ++%*2li: +0B101010:0:3: ++%2li: +0b101010:1:3:0: ++%*2li: +0b101010:0:3: ++%2li: +2147483647:1:3:2: ++%*2li: +2147483647:0:3: ++%2li: +0X7fffffff:1:3:0: ++%*2li: +0X7fffffff:0:3: ++%2li: +0x7FFFFFFF:1:3:0: ++%*2li: +0x7FFFFFFF:0:3: ++%2li: +017777777777:1:3:0: ++%*2li: +017777777777:0:3: ++%2li: +0B1111111111111111111111111111111:1:3:0: ++%*2li: +0B1111111111111111111111111111111:0:3: ++%2li: +0b1111111111111111111111111111111:1:3:0: ++%*2li: +0b1111111111111111111111111111111:0:3: ++%2li: +2147483648:1:3:2: ++%*2li: +2147483648:0:3: ++%2li: +0X80000000:1:3:0: ++%*2li: +0X80000000:0:3: ++%2li: +0x80000000:1:3:0: ++%*2li: +0x80000000:0:3: ++%2li: +020000000000:1:3:0: ++%*2li: +020000000000:0:3: ++%2li: +0B10000000000000000000000000000000:1:3:0: ++%*2li: +0B10000000000000000000000000000000:0:3: ++%2li: +0b10000000000000000000000000000000:1:3:0: ++%*2li: +0b10000000000000000000000000000000:0:3: ++%2li: +2147487889:1:3:2: ++%*2li: +2147487889:0:3: ++%2li: +0X80001091:1:3:0: ++%*2li: +0X80001091:0:3: ++%2li: +0x80001091:1:3:0: ++%*2li: +0x80001091:0:3: ++%2li: +020000010221:1:3:0: ++%*2li: +020000010221:0:3: ++%2li: +0B10000000000000000001000010010001:1:3:0: ++%*2li: +0B10000000000000000001000010010001:0:3: ++%2li: +0b10000000000000000001000010010001:1:3:0: ++%*2li: +0b10000000000000000001000010010001:0:3: ++%15li: :0:-1: ++%*15li: :0:-1: ++%15li: -2147484882:1:12:-2147483648: ++%*15li: -2147484882:0:12: ++%15li: -0X800004d2:1:12:-2147483648: ++%*15li: -0X800004d2:0:12: ++%15li: -0x800004D2:1:12:-2147483648: ++%*15li: -0x800004D2:0:12: ++%15li: -020000002322:1:14:-2147483648: ++%*15li: -020000002322:0:14: ++%15li: -0B10000000000000000000010011010010:1:16:-2048: ++%*15li: -0B10000000000000000000010011010010:0:16: ++%15li: -0b10000000000000000000010011010010:1:16:-2048: ++%*15li: -0b10000000000000000000010011010010:0:16: ++%15li: -2147483649:1:12:-2147483648: ++%*15li: -2147483649:0:12: ++%15li: -0X80000001:1:12:-2147483648: ++%*15li: -0X80000001:0:12: ++%15li: -0x80000001:1:12:-2147483648: ++%*15li: -0x80000001:0:12: ++%15li: -020000000001:1:14:-2147483648: ++%*15li: -020000000001:0:14: ++%15li: -0B10000000000000000000000000000001:1:16:-2048: ++%*15li: -0B10000000000000000000000000000001:0:16: ++%15li: -0b10000000000000000000000000000001:1:16:-2048: ++%*15li: -0b10000000000000000000000000000001:0:16: ++%15li: -2147483648:1:12:-2147483648: ++%*15li: -2147483648:0:12: ++%15li: -0X80000000:1:12:-2147483648: ++%*15li: -0X80000000:0:12: ++%15li: -0x80000000:1:12:-2147483648: ++%*15li: -0x80000000:0:12: ++%15li: -020000000000:1:14:-2147483648: ++%*15li: -020000000000:0:14: ++%15li: -0B10000000000000000000000000000000:1:16:-2048: ++%*15li: -0B10000000000000000000000000000000:0:16: ++%15li: -0b10000000000000000000000000000000:1:16:-2048: ++%*15li: -0b10000000000000000000000000000000:0:16: ++%15li: -123:1:5:-123: ++%*15li: -123:0:5: ++%15li: -0X7b:1:6:-123: ++%*15li: -0X7b:0:6: ++%15li: -0x7B:1:6:-123: ++%*15li: -0x7B:0:6: ++%15li: -0173:1:6:-123: ++%*15li: -0173:0:6: ++%15li: -0B1111011:1:11:-123: ++%*15li: -0B1111011:0:11: ++%15li: -0b1111011:1:11:-123: ++%*15li: -0b1111011:0:11: ++%15li: -1:1:3:-1: ++%*15li: -1:0:3: ++%15li: -0X1:1:5:-1: ++%*15li: -0X1:0:5: ++%15li: -0x1:1:5:-1: ++%*15li: -0x1:0:5: ++%15li: -01:1:4:-1: ++%*15li: -01:0:4: ++%15li: -0B1:1:5:-1: ++%*15li: -0B1:0:5: ++%15li: -0b1:1:5:-1: ++%*15li: -0b1:0:5: ++%15li: -0:1:3:0: ++%*15li: -0:0:3: ++%15li: -0X0:1:5:0: ++%*15li: -0X0:0:5: ++%15li: -0x0:1:5:0: ++%*15li: -0x0:0:5: ++%15li: -00:1:4:0: ++%*15li: -00:0:4: ++%15li: -0B0:1:5:0: ++%*15li: -0B0:0:5: ++%15li: -0b0:1:5:0: ++%*15li: -0b0:0:5: ++%15li: 0:1:2:0: ++%*15li: 0:0:2: ++%15li: 0X0:1:4:0: ++%*15li: 0X0:0:4: ++%15li: 0x0:1:4:0: ++%*15li: 0x0:0:4: ++%15li: 00:1:3:0: ++%*15li: 00:0:3: ++%15li: 0B0:1:4:0: ++%*15li: 0B0:0:4: ++%15li: 0b0:1:4:0: ++%*15li: 0b0:0:4: ++%15li: 1:1:2:1: ++%*15li: 1:0:2: ++%15li: 0X1:1:4:1: ++%*15li: 0X1:0:4: ++%15li: 0x1:1:4:1: ++%*15li: 0x1:0:4: ++%15li: 01:1:3:1: ++%*15li: 01:0:3: ++%15li: 0B1:1:4:1: ++%*15li: 0B1:0:4: ++%15li: 0b1:1:4:1: ++%*15li: 0b1:0:4: ++%15li: 42:1:3:42: ++%*15li: 42:0:3: ++%15li: 0X2a:1:5:42: ++%*15li: 0X2a:0:5: ++%15li: 0x2A:1:5:42: ++%*15li: 0x2A:0:5: ++%15li: 052:1:4:42: ++%*15li: 052:0:4: ++%15li: 0B101010:1:9:42: ++%*15li: 0B101010:0:9: ++%15li: 0b101010:1:9:42: ++%*15li: 0b101010:0:9: ++%15li: 2147483647:1:11:2147483647: ++%*15li: 2147483647:0:11: ++%15li: 0X7fffffff:1:11:2147483647: ++%*15li: 0X7fffffff:0:11: ++%15li: 0x7FFFFFFF:1:11:2147483647: ++%*15li: 0x7FFFFFFF:0:11: ++%15li: 017777777777:1:13:2147483647: ++%*15li: 017777777777:0:13: ++%15li: 0B1111111111111111111111111111111:1:16:8191: ++%*15li: 0B1111111111111111111111111111111:0:16: ++%15li: 0b1111111111111111111111111111111:1:16:8191: ++%*15li: 0b1111111111111111111111111111111:0:16: ++%15li: 2147483648:1:11:2147483647: ++%*15li: 2147483648:0:11: ++%15li: 0X80000000:1:11:2147483647: ++%*15li: 0X80000000:0:11: ++%15li: 0x80000000:1:11:2147483647: ++%*15li: 0x80000000:0:11: ++%15li: 020000000000:1:13:2147483647: ++%*15li: 020000000000:0:13: ++%15li: 0B10000000000000000000000000000000:1:16:4096: ++%*15li: 0B10000000000000000000000000000000:0:16: ++%15li: 0b10000000000000000000000000000000:1:16:4096: ++%*15li: 0b10000000000000000000000000000000:0:16: ++%15li: 2147487889:1:11:2147483647: ++%*15li: 2147487889:0:11: ++%15li: 0X80001091:1:11:2147483647: ++%*15li: 0X80001091:0:11: ++%15li: 0x80001091:1:11:2147483647: ++%*15li: 0x80001091:0:11: ++%15li: 020000010221:1:13:2147483647: ++%*15li: 020000010221:0:13: ++%15li: 0B10000000000000000001000010010001:1:16:4096: ++%*15li: 0B10000000000000000001000010010001:0:16: ++%15li: 0b10000000000000000001000010010001:1:16:4096: ++%*15li: 0b10000000000000000001000010010001:0:16: ++%15li: +0:1:3:0: ++%*15li: +0:0:3: ++%15li: +0X0:1:5:0: ++%*15li: +0X0:0:5: ++%15li: +0x0:1:5:0: ++%*15li: +0x0:0:5: ++%15li: +00:1:4:0: ++%*15li: +00:0:4: ++%15li: +0B0:1:5:0: ++%*15li: +0B0:0:5: ++%15li: +0b0:1:5:0: ++%*15li: +0b0:0:5: ++%15li: +1:1:3:1: ++%*15li: +1:0:3: ++%15li: +0X1:1:5:1: ++%*15li: +0X1:0:5: ++%15li: +0x1:1:5:1: ++%*15li: +0x1:0:5: ++%15li: +01:1:4:1: ++%*15li: +01:0:4: ++%15li: +0B1:1:5:1: ++%*15li: +0B1:0:5: ++%15li: +0b1:1:5:1: ++%*15li: +0b1:0:5: ++%15li: +42:1:4:42: ++%*15li: +42:0:4: ++%15li: +0X2a:1:6:42: ++%*15li: +0X2a:0:6: ++%15li: +0x2A:1:6:42: ++%*15li: +0x2A:0:6: ++%15li: +052:1:5:42: ++%*15li: +052:0:5: ++%15li: +0B101010:1:10:42: ++%*15li: +0B101010:0:10: ++%15li: +0b101010:1:10:42: ++%*15li: +0b101010:0:10: ++%15li: +2147483647:1:12:2147483647: ++%*15li: +2147483647:0:12: ++%15li: +0X7fffffff:1:12:2147483647: ++%*15li: +0X7fffffff:0:12: ++%15li: +0x7FFFFFFF:1:12:2147483647: ++%*15li: +0x7FFFFFFF:0:12: ++%15li: +017777777777:1:14:2147483647: ++%*15li: +017777777777:0:14: ++%15li: +0B1111111111111111111111111111111:1:16:4095: ++%*15li: +0B1111111111111111111111111111111:0:16: ++%15li: +0b1111111111111111111111111111111:1:16:4095: ++%*15li: +0b1111111111111111111111111111111:0:16: ++%15li: +2147483648:1:12:2147483647: ++%*15li: +2147483648:0:12: ++%15li: +0X80000000:1:12:2147483647: ++%*15li: +0X80000000:0:12: ++%15li: +0x80000000:1:12:2147483647: ++%*15li: +0x80000000:0:12: ++%15li: +020000000000:1:14:2147483647: ++%*15li: +020000000000:0:14: ++%15li: +0B10000000000000000000000000000000:1:16:2048: ++%*15li: +0B10000000000000000000000000000000:0:16: ++%15li: +0b10000000000000000000000000000000:1:16:2048: ++%*15li: +0b10000000000000000000000000000000:0:16: ++%15li: +2147487889:1:12:2147483647: ++%*15li: +2147487889:0:12: ++%15li: +0X80001091:1:12:2147483647: ++%*15li: +0X80001091:0:12: ++%15li: +0x80001091:1:12:2147483647: ++%*15li: +0x80001091:0:12: ++%15li: +020000010221:1:14:2147483647: ++%*15li: +020000010221:0:14: ++%15li: +0B10000000000000000001000010010001:1:16:2048: ++%*15li: +0B10000000000000000001000010010001:0:16: ++%15li: +0b10000000000000000001000010010001:1:16:2048: ++%*15li: +0b10000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-b.input b/sysdeps/wordsize-32/tst-scanf-format-uint-b.input +new file mode 100644 +index 0000000000000000..34aa451bfc732b2f +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-uint-b.input +@@ -0,0 +1,644 @@ ++%b::0:-1: ++%*b::0:-1: ++%b:-1111011:1:8:4294967173: ++%*b:-1111011:0:8: ++%b:-0B1111011:1:10:4294967173: ++%*b:-0B1111011:0:10: ++%b:-0b1111011:1:10:4294967173: ++%*b:-0b1111011:0:10: ++%b:-1:1:2:4294967295: ++%*b:-1:0:2: ++%b:-0B1:1:4:4294967295: ++%*b:-0B1:0:4: ++%b:-0b1:1:4:4294967295: ++%*b:-0b1:0:4: ++%b:-0:1:2:0: ++%*b:-0:0:2: ++%b:-0B0:1:4:0: ++%*b:-0B0:0:4: ++%b:-0b0:1:4:0: ++%*b:-0b0:0:4: ++%b:0:1:1:0: ++%*b:0:0:1: ++%b:0B0:1:3:0: ++%*b:0B0:0:3: ++%b:0b0:1:3:0: ++%*b:0b0:0:3: ++%b:1:1:1:1: ++%*b:1:0:1: ++%b:0B1:1:3:1: ++%*b:0B1:0:3: ++%b:0b1:1:3:1: ++%*b:0b1:0:3: ++%b:101010:1:6:42: ++%*b:101010:0:6: ++%b:0B101010:1:8:42: ++%*b:0B101010:0:8: ++%b:0b101010:1:8:42: ++%*b:0b101010:0:8: ++%b:11111111111111111111111111111111:1:32:4294967295: ++%*b:11111111111111111111111111111111:0:32: ++%b:0B11111111111111111111111111111111:1:34:4294967295: ++%*b:0B11111111111111111111111111111111:0:34: ++%b:0b11111111111111111111111111111111:1:34:4294967295: ++%*b:0b11111111111111111111111111111111:0:34: ++%b:100000000000000000000000000000000:1:33:4294967295: ++%*b:100000000000000000000000000000000:0:33: ++%b:0B100000000000000000000000000000000:1:35:4294967295: ++%*b:0B100000000000000000000000000000000:0:35: ++%b:0b100000000000000000000000000000000:1:35:4294967295: ++%*b:0b100000000000000000000000000000000:0:35: ++%b:100000000000000000001000010010001:1:33:4294967295: ++%*b:100000000000000000001000010010001:0:33: ++%b:0B100000000000000000001000010010001:1:35:4294967295: ++%*b:0B100000000000000000001000010010001:0:35: ++%b:0b100000000000000000001000010010001:1:35:4294967295: ++%*b:0b100000000000000000001000010010001:0:35: ++%b:+0:1:2:0: ++%*b:+0:0:2: ++%b:+0B0:1:4:0: ++%*b:+0B0:0:4: ++%b:+0b0:1:4:0: ++%*b:+0b0:0:4: ++%b:+1:1:2:1: ++%*b:+1:0:2: ++%b:+0B1:1:4:1: ++%*b:+0B1:0:4: ++%b:+0b1:1:4:1: ++%*b:+0b1:0:4: ++%b:+101010:1:7:42: ++%*b:+101010:0:7: ++%b:+0B101010:1:9:42: ++%*b:+0B101010:0:9: ++%b:+0b101010:1:9:42: ++%*b:+0b101010:0:9: ++%b:+11111111111111111111111111111111:1:33:4294967295: ++%*b:+11111111111111111111111111111111:0:33: ++%b:+0B11111111111111111111111111111111:1:35:4294967295: ++%*b:+0B11111111111111111111111111111111:0:35: ++%b:+0b11111111111111111111111111111111:1:35:4294967295: ++%*b:+0b11111111111111111111111111111111:0:35: ++%b:+100000000000000000000000000000000:1:34:4294967295: ++%*b:+100000000000000000000000000000000:0:34: ++%b:+0B100000000000000000000000000000000:1:36:4294967295: ++%*b:+0B100000000000000000000000000000000:0:36: ++%b:+0b100000000000000000000000000000000:1:36:4294967295: ++%*b:+0b100000000000000000000000000000000:0:36: ++%b:+100000000000000000001000010010001:1:34:4294967295: ++%*b:+100000000000000000001000010010001:0:34: ++%b:+0B100000000000000000001000010010001:1:36:4294967295: ++%*b:+0B100000000000000000001000010010001:0:36: ++%b:+0b100000000000000000001000010010001:1:36:4294967295: ++%*b:+0b100000000000000000001000010010001:0:36: ++%1b::0:-1: ++%*1b::0:-1: ++%1b:-1111011:0:-1: ++%*1b:-1111011:0:-1: ++%1b:-0B1111011:0:-1: ++%*1b:-0B1111011:0:-1: ++%1b:-0b1111011:0:-1: ++%*1b:-0b1111011:0:-1: ++%1b:-1:0:-1: ++%*1b:-1:0:-1: ++%1b:-0B1:0:-1: ++%*1b:-0B1:0:-1: ++%1b:-0b1:0:-1: ++%*1b:-0b1:0:-1: ++%1b:-0:0:-1: ++%*1b:-0:0:-1: ++%1b:-0B0:0:-1: ++%*1b:-0B0:0:-1: ++%1b:-0b0:0:-1: ++%*1b:-0b0:0:-1: ++%1b:0:1:1:0: ++%*1b:0:0:1: ++%1b:0B0:1:1:0: ++%*1b:0B0:0:1: ++%1b:0b0:1:1:0: ++%*1b:0b0:0:1: ++%1b:1:1:1:1: ++%*1b:1:0:1: ++%1b:0B1:1:1:0: ++%*1b:0B1:0:1: ++%1b:0b1:1:1:0: ++%*1b:0b1:0:1: ++%1b:101010:1:1:1: ++%*1b:101010:0:1: ++%1b:0B101010:1:1:0: ++%*1b:0B101010:0:1: ++%1b:0b101010:1:1:0: ++%*1b:0b101010:0:1: ++%1b:11111111111111111111111111111111:1:1:1: ++%*1b:11111111111111111111111111111111:0:1: ++%1b:0B11111111111111111111111111111111:1:1:0: ++%*1b:0B11111111111111111111111111111111:0:1: ++%1b:0b11111111111111111111111111111111:1:1:0: ++%*1b:0b11111111111111111111111111111111:0:1: ++%1b:100000000000000000000000000000000:1:1:1: ++%*1b:100000000000000000000000000000000:0:1: ++%1b:0B100000000000000000000000000000000:1:1:0: ++%*1b:0B100000000000000000000000000000000:0:1: ++%1b:0b100000000000000000000000000000000:1:1:0: ++%*1b:0b100000000000000000000000000000000:0:1: ++%1b:100000000000000000001000010010001:1:1:1: ++%*1b:100000000000000000001000010010001:0:1: ++%1b:0B100000000000000000001000010010001:1:1:0: ++%*1b:0B100000000000000000001000010010001:0:1: ++%1b:0b100000000000000000001000010010001:1:1:0: ++%*1b:0b100000000000000000001000010010001:0:1: ++%1b:+0:0:-1: ++%*1b:+0:0:-1: ++%1b:+0B0:0:-1: ++%*1b:+0B0:0:-1: ++%1b:+0b0:0:-1: ++%*1b:+0b0:0:-1: ++%1b:+1:0:-1: ++%*1b:+1:0:-1: ++%1b:+0B1:0:-1: ++%*1b:+0B1:0:-1: ++%1b:+0b1:0:-1: ++%*1b:+0b1:0:-1: ++%1b:+101010:0:-1: ++%*1b:+101010:0:-1: ++%1b:+0B101010:0:-1: ++%*1b:+0B101010:0:-1: ++%1b:+0b101010:0:-1: ++%*1b:+0b101010:0:-1: ++%1b:+11111111111111111111111111111111:0:-1: ++%*1b:+11111111111111111111111111111111:0:-1: ++%1b:+0B11111111111111111111111111111111:0:-1: ++%*1b:+0B11111111111111111111111111111111:0:-1: ++%1b:+0b11111111111111111111111111111111:0:-1: ++%*1b:+0b11111111111111111111111111111111:0:-1: ++%1b:+100000000000000000000000000000000:0:-1: ++%*1b:+100000000000000000000000000000000:0:-1: ++%1b:+0B100000000000000000000000000000000:0:-1: ++%*1b:+0B100000000000000000000000000000000:0:-1: ++%1b:+0b100000000000000000000000000000000:0:-1: ++%*1b:+0b100000000000000000000000000000000:0:-1: ++%1b:+100000000000000000001000010010001:0:-1: ++%*1b:+100000000000000000001000010010001:0:-1: ++%1b:+0B100000000000000000001000010010001:0:-1: ++%*1b:+0B100000000000000000001000010010001:0:-1: ++%1b:+0b100000000000000000001000010010001:0:-1: ++%*1b:+0b100000000000000000001000010010001:0:-1: ++%2b::0:-1: ++%*2b::0:-1: ++%2b:-1111011:1:2:4294967295: ++%*2b:-1111011:0:2: ++%2b:-0B1111011:1:2:0: ++%*2b:-0B1111011:0:2: ++%2b:-0b1111011:1:2:0: ++%*2b:-0b1111011:0:2: ++%2b:-1:1:2:4294967295: ++%*2b:-1:0:2: ++%2b:-0B1:1:2:0: ++%*2b:-0B1:0:2: ++%2b:-0b1:1:2:0: ++%*2b:-0b1:0:2: ++%2b:-0:1:2:0: ++%*2b:-0:0:2: ++%2b:-0B0:1:2:0: ++%*2b:-0B0:0:2: ++%2b:-0b0:1:2:0: ++%*2b:-0b0:0:2: ++%2b:0:1:1:0: ++%*2b:0:0:1: ++# BZ12701 %2b:0B0:0:-1: ++# BZ12701 %*2b:0B0:0:-1: ++# BZ12701 %2b:0b0:0:-1: ++# BZ12701 %*2b:0b0:0:-1: ++%2b:1:1:1:1: ++%*2b:1:0:1: ++# BZ12701 %2b:0B1:0:-1: ++# BZ12701 %*2b:0B1:0:-1: ++# BZ12701 %2b:0b1:0:-1: ++# BZ12701 %*2b:0b1:0:-1: ++%2b:101010:1:2:2: ++%*2b:101010:0:2: ++# BZ12701 %2b:0B101010:0:-1: ++# BZ12701 %*2b:0B101010:0:-1: ++# BZ12701 %2b:0b101010:0:-1: ++# BZ12701 %*2b:0b101010:0:-1: ++%2b:11111111111111111111111111111111:1:2:3: ++%*2b:11111111111111111111111111111111:0:2: ++# BZ12701 %2b:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2b:0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b:0b11111111111111111111111111111111:0:-1: ++%2b:100000000000000000000000000000000:1:2:2: ++%*2b:100000000000000000000000000000000:0:2: ++# BZ12701 %2b:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2b:0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b:0b100000000000000000000000000000000:0:-1: ++%2b:100000000000000000001000010010001:1:2:2: ++%*2b:100000000000000000001000010010001:0:2: ++# BZ12701 %2b:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2b:0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b:0b100000000000000000001000010010001:0:-1: ++%2b:+0:1:2:0: ++%*2b:+0:0:2: ++%2b:+0B0:1:2:0: ++%*2b:+0B0:0:2: ++%2b:+0b0:1:2:0: ++%*2b:+0b0:0:2: ++%2b:+1:1:2:1: ++%*2b:+1:0:2: ++%2b:+0B1:1:2:0: ++%*2b:+0B1:0:2: ++%2b:+0b1:1:2:0: ++%*2b:+0b1:0:2: ++%2b:+101010:1:2:1: ++%*2b:+101010:0:2: ++%2b:+0B101010:1:2:0: ++%*2b:+0B101010:0:2: ++%2b:+0b101010:1:2:0: ++%*2b:+0b101010:0:2: ++%2b:+11111111111111111111111111111111:1:2:1: ++%*2b:+11111111111111111111111111111111:0:2: ++%2b:+0B11111111111111111111111111111111:1:2:0: ++%*2b:+0B11111111111111111111111111111111:0:2: ++%2b:+0b11111111111111111111111111111111:1:2:0: ++%*2b:+0b11111111111111111111111111111111:0:2: ++%2b:+100000000000000000000000000000000:1:2:1: ++%*2b:+100000000000000000000000000000000:0:2: ++%2b:+0B100000000000000000000000000000000:1:2:0: ++%*2b:+0B100000000000000000000000000000000:0:2: ++%2b:+0b100000000000000000000000000000000:1:2:0: ++%*2b:+0b100000000000000000000000000000000:0:2: ++%2b:+100000000000000000001000010010001:1:2:1: ++%*2b:+100000000000000000001000010010001:0:2: ++%2b:+0B100000000000000000001000010010001:1:2:0: ++%*2b:+0B100000000000000000001000010010001:0:2: ++%2b:+0b100000000000000000001000010010001:1:2:0: ++%*2b:+0b100000000000000000001000010010001:0:2: ++%8b::0:-1: ++%*8b::0:-1: ++%8b:-1111011:1:8:4294967173: ++%*8b:-1111011:0:8: ++%8b:-0B1111011:1:8:4294967266: ++%*8b:-0B1111011:0:8: ++%8b:-0b1111011:1:8:4294967266: ++%*8b:-0b1111011:0:8: ++%8b:-1:1:2:4294967295: ++%*8b:-1:0:2: ++%8b:-0B1:1:4:4294967295: ++%*8b:-0B1:0:4: ++%8b:-0b1:1:4:4294967295: ++%*8b:-0b1:0:4: ++%8b:-0:1:2:0: ++%*8b:-0:0:2: ++%8b:-0B0:1:4:0: ++%*8b:-0B0:0:4: ++%8b:-0b0:1:4:0: ++%*8b:-0b0:0:4: ++%8b:0:1:1:0: ++%*8b:0:0:1: ++%8b:0B0:1:3:0: ++%*8b:0B0:0:3: ++%8b:0b0:1:3:0: ++%*8b:0b0:0:3: ++%8b:1:1:1:1: ++%*8b:1:0:1: ++%8b:0B1:1:3:1: ++%*8b:0B1:0:3: ++%8b:0b1:1:3:1: ++%*8b:0b1:0:3: ++%8b:101010:1:6:42: ++%*8b:101010:0:6: ++%8b:0B101010:1:8:42: ++%*8b:0B101010:0:8: ++%8b:0b101010:1:8:42: ++%*8b:0b101010:0:8: ++%8b:11111111111111111111111111111111:1:8:255: ++%*8b:11111111111111111111111111111111:0:8: ++%8b:0B11111111111111111111111111111111:1:8:63: ++%*8b:0B11111111111111111111111111111111:0:8: ++%8b:0b11111111111111111111111111111111:1:8:63: ++%*8b:0b11111111111111111111111111111111:0:8: ++%8b:100000000000000000000000000000000:1:8:128: ++%*8b:100000000000000000000000000000000:0:8: ++%8b:0B100000000000000000000000000000000:1:8:32: ++%*8b:0B100000000000000000000000000000000:0:8: ++%8b:0b100000000000000000000000000000000:1:8:32: ++%*8b:0b100000000000000000000000000000000:0:8: ++%8b:100000000000000000001000010010001:1:8:128: ++%*8b:100000000000000000001000010010001:0:8: ++%8b:0B100000000000000000001000010010001:1:8:32: ++%*8b:0B100000000000000000001000010010001:0:8: ++%8b:0b100000000000000000001000010010001:1:8:32: ++%*8b:0b100000000000000000001000010010001:0:8: ++%8b:+0:1:2:0: ++%*8b:+0:0:2: ++%8b:+0B0:1:4:0: ++%*8b:+0B0:0:4: ++%8b:+0b0:1:4:0: ++%*8b:+0b0:0:4: ++%8b:+1:1:2:1: ++%*8b:+1:0:2: ++%8b:+0B1:1:4:1: ++%*8b:+0B1:0:4: ++%8b:+0b1:1:4:1: ++%*8b:+0b1:0:4: ++%8b:+101010:1:7:42: ++%*8b:+101010:0:7: ++%8b:+0B101010:1:8:21: ++%*8b:+0B101010:0:8: ++%8b:+0b101010:1:8:21: ++%*8b:+0b101010:0:8: ++%8b:+11111111111111111111111111111111:1:8:127: ++%*8b:+11111111111111111111111111111111:0:8: ++%8b:+0B11111111111111111111111111111111:1:8:31: ++%*8b:+0B11111111111111111111111111111111:0:8: ++%8b:+0b11111111111111111111111111111111:1:8:31: ++%*8b:+0b11111111111111111111111111111111:0:8: ++%8b:+100000000000000000000000000000000:1:8:64: ++%*8b:+100000000000000000000000000000000:0:8: ++%8b:+0B100000000000000000000000000000000:1:8:16: ++%*8b:+0B100000000000000000000000000000000:0:8: ++%8b:+0b100000000000000000000000000000000:1:8:16: ++%*8b:+0b100000000000000000000000000000000:0:8: ++%8b:+100000000000000000001000010010001:1:8:64: ++%*8b:+100000000000000000001000010010001:0:8: ++%8b:+0B100000000000000000001000010010001:1:8:16: ++%*8b:+0B100000000000000000001000010010001:0:8: ++%8b:+0b100000000000000000001000010010001:1:8:16: ++%*8b:+0b100000000000000000001000010010001:0:8: ++%15b::0:-1: ++%*15b::0:-1: ++%15b:-1111011:1:8:4294967173: ++%*15b:-1111011:0:8: ++%15b:-0B1111011:1:10:4294967173: ++%*15b:-0B1111011:0:10: ++%15b:-0b1111011:1:10:4294967173: ++%*15b:-0b1111011:0:10: ++%15b:-1:1:2:4294967295: ++%*15b:-1:0:2: ++%15b:-0B1:1:4:4294967295: ++%*15b:-0B1:0:4: ++%15b:-0b1:1:4:4294967295: ++%*15b:-0b1:0:4: ++%15b:-0:1:2:0: ++%*15b:-0:0:2: ++%15b:-0B0:1:4:0: ++%*15b:-0B0:0:4: ++%15b:-0b0:1:4:0: ++%*15b:-0b0:0:4: ++%15b:0:1:1:0: ++%*15b:0:0:1: ++%15b:0B0:1:3:0: ++%*15b:0B0:0:3: ++%15b:0b0:1:3:0: ++%*15b:0b0:0:3: ++%15b:1:1:1:1: ++%*15b:1:0:1: ++%15b:0B1:1:3:1: ++%*15b:0B1:0:3: ++%15b:0b1:1:3:1: ++%*15b:0b1:0:3: ++%15b:101010:1:6:42: ++%*15b:101010:0:6: ++%15b:0B101010:1:8:42: ++%*15b:0B101010:0:8: ++%15b:0b101010:1:8:42: ++%*15b:0b101010:0:8: ++%15b:11111111111111111111111111111111:1:15:32767: ++%*15b:11111111111111111111111111111111:0:15: ++%15b:0B11111111111111111111111111111111:1:15:8191: ++%*15b:0B11111111111111111111111111111111:0:15: ++%15b:0b11111111111111111111111111111111:1:15:8191: ++%*15b:0b11111111111111111111111111111111:0:15: ++%15b:100000000000000000000000000000000:1:15:16384: ++%*15b:100000000000000000000000000000000:0:15: ++%15b:0B100000000000000000000000000000000:1:15:4096: ++%*15b:0B100000000000000000000000000000000:0:15: ++%15b:0b100000000000000000000000000000000:1:15:4096: ++%*15b:0b100000000000000000000000000000000:0:15: ++%15b:100000000000000000001000010010001:1:15:16384: ++%*15b:100000000000000000001000010010001:0:15: ++%15b:0B100000000000000000001000010010001:1:15:4096: ++%*15b:0B100000000000000000001000010010001:0:15: ++%15b:0b100000000000000000001000010010001:1:15:4096: ++%*15b:0b100000000000000000001000010010001:0:15: ++%15b:+0:1:2:0: ++%*15b:+0:0:2: ++%15b:+0B0:1:4:0: ++%*15b:+0B0:0:4: ++%15b:+0b0:1:4:0: ++%*15b:+0b0:0:4: ++%15b:+1:1:2:1: ++%*15b:+1:0:2: ++%15b:+0B1:1:4:1: ++%*15b:+0B1:0:4: ++%15b:+0b1:1:4:1: ++%*15b:+0b1:0:4: ++%15b:+101010:1:7:42: ++%*15b:+101010:0:7: ++%15b:+0B101010:1:9:42: ++%*15b:+0B101010:0:9: ++%15b:+0b101010:1:9:42: ++%*15b:+0b101010:0:9: ++%15b:+11111111111111111111111111111111:1:15:16383: ++%*15b:+11111111111111111111111111111111:0:15: ++%15b:+0B11111111111111111111111111111111:1:15:4095: ++%*15b:+0B11111111111111111111111111111111:0:15: ++%15b:+0b11111111111111111111111111111111:1:15:4095: ++%*15b:+0b11111111111111111111111111111111:0:15: ++%15b:+100000000000000000000000000000000:1:15:8192: ++%*15b:+100000000000000000000000000000000:0:15: ++%15b:+0B100000000000000000000000000000000:1:15:2048: ++%*15b:+0B100000000000000000000000000000000:0:15: ++%15b:+0b100000000000000000000000000000000:1:15:2048: ++%*15b:+0b100000000000000000000000000000000:0:15: ++%15b:+100000000000000000001000010010001:1:15:8192: ++%*15b:+100000000000000000001000010010001:0:15: ++%15b:+0B100000000000000000001000010010001:1:15:2048: ++%*15b:+0B100000000000000000001000010010001:0:15: ++%15b:+0b100000000000000000001000010010001:1:15:2048: ++%*15b:+0b100000000000000000001000010010001:0:15: ++%2b: :0:-1: ++%*2b: :0:-1: ++%2b: -1111011:1:3:4294967295: ++%*2b: -1111011:0:3: ++%2b: -0B1111011:1:3:0: ++%*2b: -0B1111011:0:3: ++%2b: -0b1111011:1:3:0: ++%*2b: -0b1111011:0:3: ++%2b: -1:1:3:4294967295: ++%*2b: -1:0:3: ++%2b: -0B1:1:3:0: ++%*2b: -0B1:0:3: ++%2b: -0b1:1:3:0: ++%*2b: -0b1:0:3: ++%2b: -0:1:3:0: ++%*2b: -0:0:3: ++%2b: -0B0:1:3:0: ++%*2b: -0B0:0:3: ++%2b: -0b0:1:3:0: ++%*2b: -0b0:0:3: ++%2b: 0:1:2:0: ++%*2b: 0:0:2: ++# BZ12701 %2b: 0B0:0:-1: ++# BZ12701 %*2b: 0B0:0:-1: ++# BZ12701 %2b: 0b0:0:-1: ++# BZ12701 %*2b: 0b0:0:-1: ++%2b: 1:1:2:1: ++%*2b: 1:0:2: ++# BZ12701 %2b: 0B1:0:-1: ++# BZ12701 %*2b: 0B1:0:-1: ++# BZ12701 %2b: 0b1:0:-1: ++# BZ12701 %*2b: 0b1:0:-1: ++%2b: 101010:1:3:2: ++%*2b: 101010:0:3: ++# BZ12701 %2b: 0B101010:0:-1: ++# BZ12701 %*2b: 0B101010:0:-1: ++# BZ12701 %2b: 0b101010:0:-1: ++# BZ12701 %*2b: 0b101010:0:-1: ++%2b: 11111111111111111111111111111111:1:3:3: ++%*2b: 11111111111111111111111111111111:0:3: ++# BZ12701 %2b: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2b: 0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b: 0b11111111111111111111111111111111:0:-1: ++%2b: 100000000000000000000000000000000:1:3:2: ++%*2b: 100000000000000000000000000000000:0:3: ++# BZ12701 %2b: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2b: 0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b: 0b100000000000000000000000000000000:0:-1: ++%2b: 100000000000000000001000010010001:1:3:2: ++%*2b: 100000000000000000001000010010001:0:3: ++# BZ12701 %2b: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2b: 0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b: 0b100000000000000000001000010010001:0:-1: ++%2b: +0:1:3:0: ++%*2b: +0:0:3: ++%2b: +0B0:1:3:0: ++%*2b: +0B0:0:3: ++%2b: +0b0:1:3:0: ++%*2b: +0b0:0:3: ++%2b: +1:1:3:1: ++%*2b: +1:0:3: ++%2b: +0B1:1:3:0: ++%*2b: +0B1:0:3: ++%2b: +0b1:1:3:0: ++%*2b: +0b1:0:3: ++%2b: +101010:1:3:1: ++%*2b: +101010:0:3: ++%2b: +0B101010:1:3:0: ++%*2b: +0B101010:0:3: ++%2b: +0b101010:1:3:0: ++%*2b: +0b101010:0:3: ++%2b: +11111111111111111111111111111111:1:3:1: ++%*2b: +11111111111111111111111111111111:0:3: ++%2b: +0B11111111111111111111111111111111:1:3:0: ++%*2b: +0B11111111111111111111111111111111:0:3: ++%2b: +0b11111111111111111111111111111111:1:3:0: ++%*2b: +0b11111111111111111111111111111111:0:3: ++%2b: +100000000000000000000000000000000:1:3:1: ++%*2b: +100000000000000000000000000000000:0:3: ++%2b: +0B100000000000000000000000000000000:1:3:0: ++%*2b: +0B100000000000000000000000000000000:0:3: ++%2b: +0b100000000000000000000000000000000:1:3:0: ++%*2b: +0b100000000000000000000000000000000:0:3: ++%2b: +100000000000000000001000010010001:1:3:1: ++%*2b: +100000000000000000001000010010001:0:3: ++%2b: +0B100000000000000000001000010010001:1:3:0: ++%*2b: +0B100000000000000000001000010010001:0:3: ++%2b: +0b100000000000000000001000010010001:1:3:0: ++%*2b: +0b100000000000000000001000010010001:0:3: ++%15b: :0:-1: ++%*15b: :0:-1: ++%15b: -1111011:1:9:4294967173: ++%*15b: -1111011:0:9: ++%15b: -0B1111011:1:11:4294967173: ++%*15b: -0B1111011:0:11: ++%15b: -0b1111011:1:11:4294967173: ++%*15b: -0b1111011:0:11: ++%15b: -1:1:3:4294967295: ++%*15b: -1:0:3: ++%15b: -0B1:1:5:4294967295: ++%*15b: -0B1:0:5: ++%15b: -0b1:1:5:4294967295: ++%*15b: -0b1:0:5: ++%15b: -0:1:3:0: ++%*15b: -0:0:3: ++%15b: -0B0:1:5:0: ++%*15b: -0B0:0:5: ++%15b: -0b0:1:5:0: ++%*15b: -0b0:0:5: ++%15b: 0:1:2:0: ++%*15b: 0:0:2: ++%15b: 0B0:1:4:0: ++%*15b: 0B0:0:4: ++%15b: 0b0:1:4:0: ++%*15b: 0b0:0:4: ++%15b: 1:1:2:1: ++%*15b: 1:0:2: ++%15b: 0B1:1:4:1: ++%*15b: 0B1:0:4: ++%15b: 0b1:1:4:1: ++%*15b: 0b1:0:4: ++%15b: 101010:1:7:42: ++%*15b: 101010:0:7: ++%15b: 0B101010:1:9:42: ++%*15b: 0B101010:0:9: ++%15b: 0b101010:1:9:42: ++%*15b: 0b101010:0:9: ++%15b: 11111111111111111111111111111111:1:16:32767: ++%*15b: 11111111111111111111111111111111:0:16: ++%15b: 0B11111111111111111111111111111111:1:16:8191: ++%*15b: 0B11111111111111111111111111111111:0:16: ++%15b: 0b11111111111111111111111111111111:1:16:8191: ++%*15b: 0b11111111111111111111111111111111:0:16: ++%15b: 100000000000000000000000000000000:1:16:16384: ++%*15b: 100000000000000000000000000000000:0:16: ++%15b: 0B100000000000000000000000000000000:1:16:4096: ++%*15b: 0B100000000000000000000000000000000:0:16: ++%15b: 0b100000000000000000000000000000000:1:16:4096: ++%*15b: 0b100000000000000000000000000000000:0:16: ++%15b: 100000000000000000001000010010001:1:16:16384: ++%*15b: 100000000000000000001000010010001:0:16: ++%15b: 0B100000000000000000001000010010001:1:16:4096: ++%*15b: 0B100000000000000000001000010010001:0:16: ++%15b: 0b100000000000000000001000010010001:1:16:4096: ++%*15b: 0b100000000000000000001000010010001:0:16: ++%15b: +0:1:3:0: ++%*15b: +0:0:3: ++%15b: +0B0:1:5:0: ++%*15b: +0B0:0:5: ++%15b: +0b0:1:5:0: ++%*15b: +0b0:0:5: ++%15b: +1:1:3:1: ++%*15b: +1:0:3: ++%15b: +0B1:1:5:1: ++%*15b: +0B1:0:5: ++%15b: +0b1:1:5:1: ++%*15b: +0b1:0:5: ++%15b: +101010:1:8:42: ++%*15b: +101010:0:8: ++%15b: +0B101010:1:10:42: ++%*15b: +0B101010:0:10: ++%15b: +0b101010:1:10:42: ++%*15b: +0b101010:0:10: ++%15b: +11111111111111111111111111111111:1:16:16383: ++%*15b: +11111111111111111111111111111111:0:16: ++%15b: +0B11111111111111111111111111111111:1:16:4095: ++%*15b: +0B11111111111111111111111111111111:0:16: ++%15b: +0b11111111111111111111111111111111:1:16:4095: ++%*15b: +0b11111111111111111111111111111111:0:16: ++%15b: +100000000000000000000000000000000:1:16:8192: ++%*15b: +100000000000000000000000000000000:0:16: ++%15b: +0B100000000000000000000000000000000:1:16:2048: ++%*15b: +0B100000000000000000000000000000000:0:16: ++%15b: +0b100000000000000000000000000000000:1:16:2048: ++%*15b: +0b100000000000000000000000000000000:0:16: ++%15b: +100000000000000000001000010010001:1:16:8192: ++%*15b: +100000000000000000001000010010001:0:16: ++%15b: +0B100000000000000000001000010010001:1:16:2048: ++%*15b: +0B100000000000000000001000010010001:0:16: ++%15b: +0b100000000000000000001000010010001:1:16:2048: ++%*15b: +0b100000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-o.input b/sysdeps/wordsize-32/tst-scanf-format-uint-o.input +new file mode 100644 +index 0000000000000000..1762194d535f6a77 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-uint-o.input +@@ -0,0 +1,434 @@ ++%o::0:-1: ++%*o::0:-1: ++%o:-173:1:4:4294967173: ++%*o:-173:0:4: ++%o:-0173:1:5:4294967173: ++%*o:-0173:0:5: ++%o:-1:1:2:4294967295: ++%*o:-1:0:2: ++%o:-01:1:3:4294967295: ++%*o:-01:0:3: ++%o:-0:1:2:0: ++%*o:-0:0:2: ++%o:-00:1:3:0: ++%*o:-00:0:3: ++%o:0:1:1:0: ++%*o:0:0:1: ++%o:00:1:2:0: ++%*o:00:0:2: ++%o:1:1:1:1: ++%*o:1:0:1: ++%o:01:1:2:1: ++%*o:01:0:2: ++%o:52:1:2:42: ++%*o:52:0:2: ++%o:052:1:3:42: ++%*o:052:0:3: ++%o:37777777777:1:11:4294967295: ++%*o:37777777777:0:11: ++%o:037777777777:1:12:4294967295: ++%*o:037777777777:0:12: ++%o:40000000000:1:11:4294967295: ++%*o:40000000000:0:11: ++%o:040000000000:1:12:4294967295: ++%*o:040000000000:0:12: ++%o:40000010221:1:11:4294967295: ++%*o:40000010221:0:11: ++%o:040000010221:1:12:4294967295: ++%*o:040000010221:0:12: ++%o:+0:1:2:0: ++%*o:+0:0:2: ++%o:+00:1:3:0: ++%*o:+00:0:3: ++%o:+1:1:2:1: ++%*o:+1:0:2: ++%o:+01:1:3:1: ++%*o:+01:0:3: ++%o:+52:1:3:42: ++%*o:+52:0:3: ++%o:+052:1:4:42: ++%*o:+052:0:4: ++%o:+37777777777:1:12:4294967295: ++%*o:+37777777777:0:12: ++%o:+037777777777:1:13:4294967295: ++%*o:+037777777777:0:13: ++%o:+40000000000:1:12:4294967295: ++%*o:+40000000000:0:12: ++%o:+040000000000:1:13:4294967295: ++%*o:+040000000000:0:13: ++%o:+40000010221:1:12:4294967295: ++%*o:+40000010221:0:12: ++%o:+040000010221:1:13:4294967295: ++%*o:+040000010221:0:13: ++%1o::0:-1: ++%*1o::0:-1: ++%1o:-173:0:-1: ++%*1o:-173:0:-1: ++%1o:-0173:0:-1: ++%*1o:-0173:0:-1: ++%1o:-1:0:-1: ++%*1o:-1:0:-1: ++%1o:-01:0:-1: ++%*1o:-01:0:-1: ++%1o:-0:0:-1: ++%*1o:-0:0:-1: ++%1o:-00:0:-1: ++%*1o:-00:0:-1: ++%1o:0:1:1:0: ++%*1o:0:0:1: ++%1o:00:1:1:0: ++%*1o:00:0:1: ++%1o:1:1:1:1: ++%*1o:1:0:1: ++%1o:01:1:1:0: ++%*1o:01:0:1: ++%1o:52:1:1:5: ++%*1o:52:0:1: ++%1o:052:1:1:0: ++%*1o:052:0:1: ++%1o:37777777777:1:1:3: ++%*1o:37777777777:0:1: ++%1o:037777777777:1:1:0: ++%*1o:037777777777:0:1: ++%1o:40000000000:1:1:4: ++%*1o:40000000000:0:1: ++%1o:040000000000:1:1:0: ++%*1o:040000000000:0:1: ++%1o:40000010221:1:1:4: ++%*1o:40000010221:0:1: ++%1o:040000010221:1:1:0: ++%*1o:040000010221:0:1: ++%1o:+0:0:-1: ++%*1o:+0:0:-1: ++%1o:+00:0:-1: ++%*1o:+00:0:-1: ++%1o:+1:0:-1: ++%*1o:+1:0:-1: ++%1o:+01:0:-1: ++%*1o:+01:0:-1: ++%1o:+52:0:-1: ++%*1o:+52:0:-1: ++%1o:+052:0:-1: ++%*1o:+052:0:-1: ++%1o:+37777777777:0:-1: ++%*1o:+37777777777:0:-1: ++%1o:+037777777777:0:-1: ++%*1o:+037777777777:0:-1: ++%1o:+40000000000:0:-1: ++%*1o:+40000000000:0:-1: ++%1o:+040000000000:0:-1: ++%*1o:+040000000000:0:-1: ++%1o:+40000010221:0:-1: ++%*1o:+40000010221:0:-1: ++%1o:+040000010221:0:-1: ++%*1o:+040000010221:0:-1: ++%2o::0:-1: ++%*2o::0:-1: ++%2o:-173:1:2:4294967295: ++%*2o:-173:0:2: ++%2o:-0173:1:2:0: ++%*2o:-0173:0:2: ++%2o:-1:1:2:4294967295: ++%*2o:-1:0:2: ++%2o:-01:1:2:0: ++%*2o:-01:0:2: ++%2o:-0:1:2:0: ++%*2o:-0:0:2: ++%2o:-00:1:2:0: ++%*2o:-00:0:2: ++%2o:0:1:1:0: ++%*2o:0:0:1: ++%2o:00:1:2:0: ++%*2o:00:0:2: ++%2o:1:1:1:1: ++%*2o:1:0:1: ++%2o:01:1:2:1: ++%*2o:01:0:2: ++%2o:52:1:2:42: ++%*2o:52:0:2: ++%2o:052:1:2:5: ++%*2o:052:0:2: ++%2o:37777777777:1:2:31: ++%*2o:37777777777:0:2: ++%2o:037777777777:1:2:3: ++%*2o:037777777777:0:2: ++%2o:40000000000:1:2:32: ++%*2o:40000000000:0:2: ++%2o:040000000000:1:2:4: ++%*2o:040000000000:0:2: ++%2o:40000010221:1:2:32: ++%*2o:40000010221:0:2: ++%2o:040000010221:1:2:4: ++%*2o:040000010221:0:2: ++%2o:+0:1:2:0: ++%*2o:+0:0:2: ++%2o:+00:1:2:0: ++%*2o:+00:0:2: ++%2o:+1:1:2:1: ++%*2o:+1:0:2: ++%2o:+01:1:2:0: ++%*2o:+01:0:2: ++%2o:+52:1:2:5: ++%*2o:+52:0:2: ++%2o:+052:1:2:0: ++%*2o:+052:0:2: ++%2o:+37777777777:1:2:3: ++%*2o:+37777777777:0:2: ++%2o:+037777777777:1:2:0: ++%*2o:+037777777777:0:2: ++%2o:+40000000000:1:2:4: ++%*2o:+40000000000:0:2: ++%2o:+040000000000:1:2:0: ++%*2o:+040000000000:0:2: ++%2o:+40000010221:1:2:4: ++%*2o:+40000010221:0:2: ++%2o:+040000010221:1:2:0: ++%*2o:+040000010221:0:2: ++%8o::0:-1: ++%*8o::0:-1: ++%8o:-173:1:4:4294967173: ++%*8o:-173:0:4: ++%8o:-0173:1:5:4294967173: ++%*8o:-0173:0:5: ++%8o:-1:1:2:4294967295: ++%*8o:-1:0:2: ++%8o:-01:1:3:4294967295: ++%*8o:-01:0:3: ++%8o:-0:1:2:0: ++%*8o:-0:0:2: ++%8o:-00:1:3:0: ++%*8o:-00:0:3: ++%8o:0:1:1:0: ++%*8o:0:0:1: ++%8o:00:1:2:0: ++%*8o:00:0:2: ++%8o:1:1:1:1: ++%*8o:1:0:1: ++%8o:01:1:2:1: ++%*8o:01:0:2: ++%8o:52:1:2:42: ++%*8o:52:0:2: ++%8o:052:1:3:42: ++%*8o:052:0:3: ++%8o:37777777777:1:8:8388607: ++%*8o:37777777777:0:8: ++%8o:037777777777:1:8:1048575: ++%*8o:037777777777:0:8: ++%8o:40000000000:1:8:8388608: ++%*8o:40000000000:0:8: ++%8o:040000000000:1:8:1048576: ++%*8o:040000000000:0:8: ++%8o:40000010221:1:8:8388616: ++%*8o:40000010221:0:8: ++%8o:040000010221:1:8:1048577: ++%*8o:040000010221:0:8: ++%8o:+0:1:2:0: ++%*8o:+0:0:2: ++%8o:+00:1:3:0: ++%*8o:+00:0:3: ++%8o:+1:1:2:1: ++%*8o:+1:0:2: ++%8o:+01:1:3:1: ++%*8o:+01:0:3: ++%8o:+52:1:3:42: ++%*8o:+52:0:3: ++%8o:+052:1:4:42: ++%*8o:+052:0:4: ++%8o:+37777777777:1:8:1048575: ++%*8o:+37777777777:0:8: ++%8o:+037777777777:1:8:131071: ++%*8o:+037777777777:0:8: ++%8o:+40000000000:1:8:1048576: ++%*8o:+40000000000:0:8: ++%8o:+040000000000:1:8:131072: ++%*8o:+040000000000:0:8: ++%8o:+40000010221:1:8:1048577: ++%*8o:+40000010221:0:8: ++%8o:+040000010221:1:8:131072: ++%*8o:+040000010221:0:8: ++%15o::0:-1: ++%*15o::0:-1: ++%15o:-173:1:4:4294967173: ++%*15o:-173:0:4: ++%15o:-0173:1:5:4294967173: ++%*15o:-0173:0:5: ++%15o:-1:1:2:4294967295: ++%*15o:-1:0:2: ++%15o:-01:1:3:4294967295: ++%*15o:-01:0:3: ++%15o:-0:1:2:0: ++%*15o:-0:0:2: ++%15o:-00:1:3:0: ++%*15o:-00:0:3: ++%15o:0:1:1:0: ++%*15o:0:0:1: ++%15o:00:1:2:0: ++%*15o:00:0:2: ++%15o:1:1:1:1: ++%*15o:1:0:1: ++%15o:01:1:2:1: ++%*15o:01:0:2: ++%15o:52:1:2:42: ++%*15o:52:0:2: ++%15o:052:1:3:42: ++%*15o:052:0:3: ++%15o:37777777777:1:11:4294967295: ++%*15o:37777777777:0:11: ++%15o:037777777777:1:12:4294967295: ++%*15o:037777777777:0:12: ++%15o:40000000000:1:11:4294967295: ++%*15o:40000000000:0:11: ++%15o:040000000000:1:12:4294967295: ++%*15o:040000000000:0:12: ++%15o:40000010221:1:11:4294967295: ++%*15o:40000010221:0:11: ++%15o:040000010221:1:12:4294967295: ++%*15o:040000010221:0:12: ++%15o:+0:1:2:0: ++%*15o:+0:0:2: ++%15o:+00:1:3:0: ++%*15o:+00:0:3: ++%15o:+1:1:2:1: ++%*15o:+1:0:2: ++%15o:+01:1:3:1: ++%*15o:+01:0:3: ++%15o:+52:1:3:42: ++%*15o:+52:0:3: ++%15o:+052:1:4:42: ++%*15o:+052:0:4: ++%15o:+37777777777:1:12:4294967295: ++%*15o:+37777777777:0:12: ++%15o:+037777777777:1:13:4294967295: ++%*15o:+037777777777:0:13: ++%15o:+40000000000:1:12:4294967295: ++%*15o:+40000000000:0:12: ++%15o:+040000000000:1:13:4294967295: ++%*15o:+040000000000:0:13: ++%15o:+40000010221:1:12:4294967295: ++%*15o:+40000010221:0:12: ++%15o:+040000010221:1:13:4294967295: ++%*15o:+040000010221:0:13: ++%2o: :0:-1: ++%*2o: :0:-1: ++%2o: -173:1:3:4294967295: ++%*2o: -173:0:3: ++%2o: -0173:1:3:0: ++%*2o: -0173:0:3: ++%2o: -1:1:3:4294967295: ++%*2o: -1:0:3: ++%2o: -01:1:3:0: ++%*2o: -01:0:3: ++%2o: -0:1:3:0: ++%*2o: -0:0:3: ++%2o: -00:1:3:0: ++%*2o: -00:0:3: ++%2o: 0:1:2:0: ++%*2o: 0:0:2: ++%2o: 00:1:3:0: ++%*2o: 00:0:3: ++%2o: 1:1:2:1: ++%*2o: 1:0:2: ++%2o: 01:1:3:1: ++%*2o: 01:0:3: ++%2o: 52:1:3:42: ++%*2o: 52:0:3: ++%2o: 052:1:3:5: ++%*2o: 052:0:3: ++%2o: 37777777777:1:3:31: ++%*2o: 37777777777:0:3: ++%2o: 037777777777:1:3:3: ++%*2o: 037777777777:0:3: ++%2o: 40000000000:1:3:32: ++%*2o: 40000000000:0:3: ++%2o: 040000000000:1:3:4: ++%*2o: 040000000000:0:3: ++%2o: 40000010221:1:3:32: ++%*2o: 40000010221:0:3: ++%2o: 040000010221:1:3:4: ++%*2o: 040000010221:0:3: ++%2o: +0:1:3:0: ++%*2o: +0:0:3: ++%2o: +00:1:3:0: ++%*2o: +00:0:3: ++%2o: +1:1:3:1: ++%*2o: +1:0:3: ++%2o: +01:1:3:0: ++%*2o: +01:0:3: ++%2o: +52:1:3:5: ++%*2o: +52:0:3: ++%2o: +052:1:3:0: ++%*2o: +052:0:3: ++%2o: +37777777777:1:3:3: ++%*2o: +37777777777:0:3: ++%2o: +037777777777:1:3:0: ++%*2o: +037777777777:0:3: ++%2o: +40000000000:1:3:4: ++%*2o: +40000000000:0:3: ++%2o: +040000000000:1:3:0: ++%*2o: +040000000000:0:3: ++%2o: +40000010221:1:3:4: ++%*2o: +40000010221:0:3: ++%2o: +040000010221:1:3:0: ++%*2o: +040000010221:0:3: ++%15o: :0:-1: ++%*15o: :0:-1: ++%15o: -173:1:5:4294967173: ++%*15o: -173:0:5: ++%15o: -0173:1:6:4294967173: ++%*15o: -0173:0:6: ++%15o: -1:1:3:4294967295: ++%*15o: -1:0:3: ++%15o: -01:1:4:4294967295: ++%*15o: -01:0:4: ++%15o: -0:1:3:0: ++%*15o: -0:0:3: ++%15o: -00:1:4:0: ++%*15o: -00:0:4: ++%15o: 0:1:2:0: ++%*15o: 0:0:2: ++%15o: 00:1:3:0: ++%*15o: 00:0:3: ++%15o: 1:1:2:1: ++%*15o: 1:0:2: ++%15o: 01:1:3:1: ++%*15o: 01:0:3: ++%15o: 52:1:3:42: ++%*15o: 52:0:3: ++%15o: 052:1:4:42: ++%*15o: 052:0:4: ++%15o: 37777777777:1:12:4294967295: ++%*15o: 37777777777:0:12: ++%15o: 037777777777:1:13:4294967295: ++%*15o: 037777777777:0:13: ++%15o: 40000000000:1:12:4294967295: ++%*15o: 40000000000:0:12: ++%15o: 040000000000:1:13:4294967295: ++%*15o: 040000000000:0:13: ++%15o: 40000010221:1:12:4294967295: ++%*15o: 40000010221:0:12: ++%15o: 040000010221:1:13:4294967295: ++%*15o: 040000010221:0:13: ++%15o: +0:1:3:0: ++%*15o: +0:0:3: ++%15o: +00:1:4:0: ++%*15o: +00:0:4: ++%15o: +1:1:3:1: ++%*15o: +1:0:3: ++%15o: +01:1:4:1: ++%*15o: +01:0:4: ++%15o: +52:1:4:42: ++%*15o: +52:0:4: ++%15o: +052:1:5:42: ++%*15o: +052:0:5: ++%15o: +37777777777:1:13:4294967295: ++%*15o: +37777777777:0:13: ++%15o: +037777777777:1:14:4294967295: ++%*15o: +037777777777:0:14: ++%15o: +40000000000:1:13:4294967295: ++%*15o: +40000000000:0:13: ++%15o: +040000000000:1:14:4294967295: ++%*15o: +040000000000:0:14: ++%15o: +40000010221:1:13:4294967295: ++%*15o: +40000010221:0:13: ++%15o: +040000010221:1:14:4294967295: ++%*15o: +040000010221:0:14: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-u.input b/sysdeps/wordsize-32/tst-scanf-format-uint-u.input +new file mode 100644 +index 0000000000000000..d2e04fd43c24ad28 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-uint-u.input +@@ -0,0 +1,224 @@ ++%u::0:-1: ++%*u::0:-1: ++%u:-123:1:4:4294967173: ++%*u:-123:0:4: ++%u:-1:1:2:4294967295: ++%*u:-1:0:2: ++%u:-0:1:2:0: ++%*u:-0:0:2: ++%u:0:1:1:0: ++%*u:0:0:1: ++%u:1:1:1:1: ++%*u:1:0:1: ++%u:42:1:2:42: ++%*u:42:0:2: ++%u:4294967295:1:10:4294967295: ++%*u:4294967295:0:10: ++%u:4294967296:1:10:4294967295: ++%*u:4294967296:0:10: ++%u:4294971537:1:10:4294967295: ++%*u:4294971537:0:10: ++%u:+0:1:2:0: ++%*u:+0:0:2: ++%u:+1:1:2:1: ++%*u:+1:0:2: ++%u:+42:1:3:42: ++%*u:+42:0:3: ++%u:+4294967295:1:11:4294967295: ++%*u:+4294967295:0:11: ++%u:+4294967296:1:11:4294967295: ++%*u:+4294967296:0:11: ++%u:+4294971537:1:11:4294967295: ++%*u:+4294971537:0:11: ++%1u::0:-1: ++%*1u::0:-1: ++%1u:-123:0:-1: ++%*1u:-123:0:-1: ++%1u:-1:0:-1: ++%*1u:-1:0:-1: ++%1u:-0:0:-1: ++%*1u:-0:0:-1: ++%1u:0:1:1:0: ++%*1u:0:0:1: ++%1u:1:1:1:1: ++%*1u:1:0:1: ++%1u:42:1:1:4: ++%*1u:42:0:1: ++%1u:4294967295:1:1:4: ++%*1u:4294967295:0:1: ++%1u:4294967296:1:1:4: ++%*1u:4294967296:0:1: ++%1u:4294971537:1:1:4: ++%*1u:4294971537:0:1: ++%1u:+0:0:-1: ++%*1u:+0:0:-1: ++%1u:+1:0:-1: ++%*1u:+1:0:-1: ++%1u:+42:0:-1: ++%*1u:+42:0:-1: ++%1u:+4294967295:0:-1: ++%*1u:+4294967295:0:-1: ++%1u:+4294967296:0:-1: ++%*1u:+4294967296:0:-1: ++%1u:+4294971537:0:-1: ++%*1u:+4294971537:0:-1: ++%2u::0:-1: ++%*2u::0:-1: ++%2u:-123:1:2:4294967295: ++%*2u:-123:0:2: ++%2u:-1:1:2:4294967295: ++%*2u:-1:0:2: ++%2u:-0:1:2:0: ++%*2u:-0:0:2: ++%2u:0:1:1:0: ++%*2u:0:0:1: ++%2u:1:1:1:1: ++%*2u:1:0:1: ++%2u:42:1:2:42: ++%*2u:42:0:2: ++%2u:4294967295:1:2:42: ++%*2u:4294967295:0:2: ++%2u:4294967296:1:2:42: ++%*2u:4294967296:0:2: ++%2u:4294971537:1:2:42: ++%*2u:4294971537:0:2: ++%2u:+0:1:2:0: ++%*2u:+0:0:2: ++%2u:+1:1:2:1: ++%*2u:+1:0:2: ++%2u:+42:1:2:4: ++%*2u:+42:0:2: ++%2u:+4294967295:1:2:4: ++%*2u:+4294967295:0:2: ++%2u:+4294967296:1:2:4: ++%*2u:+4294967296:0:2: ++%2u:+4294971537:1:2:4: ++%*2u:+4294971537:0:2: ++%8u::0:-1: ++%*8u::0:-1: ++%8u:-123:1:4:4294967173: ++%*8u:-123:0:4: ++%8u:-1:1:2:4294967295: ++%*8u:-1:0:2: ++%8u:-0:1:2:0: ++%*8u:-0:0:2: ++%8u:0:1:1:0: ++%*8u:0:0:1: ++%8u:1:1:1:1: ++%*8u:1:0:1: ++%8u:42:1:2:42: ++%*8u:42:0:2: ++%8u:4294967295:1:8:42949672: ++%*8u:4294967295:0:8: ++%8u:4294967296:1:8:42949672: ++%*8u:4294967296:0:8: ++%8u:4294971537:1:8:42949715: ++%*8u:4294971537:0:8: ++%8u:+0:1:2:0: ++%*8u:+0:0:2: ++%8u:+1:1:2:1: ++%*8u:+1:0:2: ++%8u:+42:1:3:42: ++%*8u:+42:0:3: ++%8u:+4294967295:1:8:4294967: ++%*8u:+4294967295:0:8: ++%8u:+4294967296:1:8:4294967: ++%*8u:+4294967296:0:8: ++%8u:+4294971537:1:8:4294971: ++%*8u:+4294971537:0:8: ++%15u::0:-1: ++%*15u::0:-1: ++%15u:-123:1:4:4294967173: ++%*15u:-123:0:4: ++%15u:-1:1:2:4294967295: ++%*15u:-1:0:2: ++%15u:-0:1:2:0: ++%*15u:-0:0:2: ++%15u:0:1:1:0: ++%*15u:0:0:1: ++%15u:1:1:1:1: ++%*15u:1:0:1: ++%15u:42:1:2:42: ++%*15u:42:0:2: ++%15u:4294967295:1:10:4294967295: ++%*15u:4294967295:0:10: ++%15u:4294967296:1:10:4294967295: ++%*15u:4294967296:0:10: ++%15u:4294971537:1:10:4294967295: ++%*15u:4294971537:0:10: ++%15u:+0:1:2:0: ++%*15u:+0:0:2: ++%15u:+1:1:2:1: ++%*15u:+1:0:2: ++%15u:+42:1:3:42: ++%*15u:+42:0:3: ++%15u:+4294967295:1:11:4294967295: ++%*15u:+4294967295:0:11: ++%15u:+4294967296:1:11:4294967295: ++%*15u:+4294967296:0:11: ++%15u:+4294971537:1:11:4294967295: ++%*15u:+4294971537:0:11: ++%2u: :0:-1: ++%*2u: :0:-1: ++%2u: -123:1:3:4294967295: ++%*2u: -123:0:3: ++%2u: -1:1:3:4294967295: ++%*2u: -1:0:3: ++%2u: -0:1:3:0: ++%*2u: -0:0:3: ++%2u: 0:1:2:0: ++%*2u: 0:0:2: ++%2u: 1:1:2:1: ++%*2u: 1:0:2: ++%2u: 42:1:3:42: ++%*2u: 42:0:3: ++%2u: 4294967295:1:3:42: ++%*2u: 4294967295:0:3: ++%2u: 4294967296:1:3:42: ++%*2u: 4294967296:0:3: ++%2u: 4294971537:1:3:42: ++%*2u: 4294971537:0:3: ++%2u: +0:1:3:0: ++%*2u: +0:0:3: ++%2u: +1:1:3:1: ++%*2u: +1:0:3: ++%2u: +42:1:3:4: ++%*2u: +42:0:3: ++%2u: +4294967295:1:3:4: ++%*2u: +4294967295:0:3: ++%2u: +4294967296:1:3:4: ++%*2u: +4294967296:0:3: ++%2u: +4294971537:1:3:4: ++%*2u: +4294971537:0:3: ++%15u: :0:-1: ++%*15u: :0:-1: ++%15u: -123:1:5:4294967173: ++%*15u: -123:0:5: ++%15u: -1:1:3:4294967295: ++%*15u: -1:0:3: ++%15u: -0:1:3:0: ++%*15u: -0:0:3: ++%15u: 0:1:2:0: ++%*15u: 0:0:2: ++%15u: 1:1:2:1: ++%*15u: 1:0:2: ++%15u: 42:1:3:42: ++%*15u: 42:0:3: ++%15u: 4294967295:1:11:4294967295: ++%*15u: 4294967295:0:11: ++%15u: 4294967296:1:11:4294967295: ++%*15u: 4294967296:0:11: ++%15u: 4294971537:1:11:4294967295: ++%*15u: 4294971537:0:11: ++%15u: +0:1:3:0: ++%*15u: +0:0:3: ++%15u: +1:1:3:1: ++%*15u: +1:0:3: ++%15u: +42:1:4:42: ++%*15u: +42:0:4: ++%15u: +4294967295:1:12:4294967295: ++%*15u: +4294967295:0:12: ++%15u: +4294967296:1:12:4294967295: ++%*15u: +4294967296:0:12: ++%15u: +4294971537:1:12:4294967295: ++%*15u: +4294971537:0:12: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-x.input b/sysdeps/wordsize-32/tst-scanf-format-uint-x.input +new file mode 100644 +index 0000000000000000..066318d40e26b720 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-uint-x.input +@@ -0,0 +1,714 @@ ++%x::0:-1: ++%*x::0:-1: ++%x:-7b:1:3:4294967173: ++%*x:-7b:0:3: ++%x:-7B:1:3:4294967173: ++%*x:-7B:0:3: ++%x:-0X7b:1:5:4294967173: ++%*x:-0X7b:0:5: ++%x:-0x7B:1:5:4294967173: ++%*x:-0x7B:0:5: ++%x:-1:1:2:4294967295: ++%*x:-1:0:2: ++%x:-0X1:1:4:4294967295: ++%*x:-0X1:0:4: ++%x:-0x1:1:4:4294967295: ++%*x:-0x1:0:4: ++%x:-0:1:2:0: ++%*x:-0:0:2: ++%x:-0X0:1:4:0: ++%*x:-0X0:0:4: ++%x:-0x0:1:4:0: ++%*x:-0x0:0:4: ++%x:0:1:1:0: ++%*x:0:0:1: ++%x:0X0:1:3:0: ++%*x:0X0:0:3: ++%x:0x0:1:3:0: ++%*x:0x0:0:3: ++%x:1:1:1:1: ++%*x:1:0:1: ++%x:0X1:1:3:1: ++%*x:0X1:0:3: ++%x:0x1:1:3:1: ++%*x:0x1:0:3: ++%x:2a:1:2:42: ++%*x:2a:0:2: ++%x:2A:1:2:42: ++%*x:2A:0:2: ++%x:0X2a:1:4:42: ++%*x:0X2a:0:4: ++%x:0x2A:1:4:42: ++%*x:0x2A:0:4: ++%x:ffffffff:1:8:4294967295: ++%*x:ffffffff:0:8: ++%x:FFFFFFFF:1:8:4294967295: ++%*x:FFFFFFFF:0:8: ++%x:0Xffffffff:1:10:4294967295: ++%*x:0Xffffffff:0:10: ++%x:0xFFFFFFFF:1:10:4294967295: ++%*x:0xFFFFFFFF:0:10: ++%x:100000000:1:9:4294967295: ++%*x:100000000:0:9: ++%x:0X100000000:1:11:4294967295: ++%*x:0X100000000:0:11: ++%x:0x100000000:1:11:4294967295: ++%*x:0x100000000:0:11: ++%x:100001091:1:9:4294967295: ++%*x:100001091:0:9: ++%x:0X100001091:1:11:4294967295: ++%*x:0X100001091:0:11: ++%x:0x100001091:1:11:4294967295: ++%*x:0x100001091:0:11: ++%x:+0:1:2:0: ++%*x:+0:0:2: ++%x:+0X0:1:4:0: ++%*x:+0X0:0:4: ++%x:+0x0:1:4:0: ++%*x:+0x0:0:4: ++%x:+1:1:2:1: ++%*x:+1:0:2: ++%x:+0X1:1:4:1: ++%*x:+0X1:0:4: ++%x:+0x1:1:4:1: ++%*x:+0x1:0:4: ++%x:+2a:1:3:42: ++%*x:+2a:0:3: ++%x:+2A:1:3:42: ++%*x:+2A:0:3: ++%x:+0X2a:1:5:42: ++%*x:+0X2a:0:5: ++%x:+0x2A:1:5:42: ++%*x:+0x2A:0:5: ++%x:+ffffffff:1:9:4294967295: ++%*x:+ffffffff:0:9: ++%x:+FFFFFFFF:1:9:4294967295: ++%*x:+FFFFFFFF:0:9: ++%x:+0Xffffffff:1:11:4294967295: ++%*x:+0Xffffffff:0:11: ++%x:+0xFFFFFFFF:1:11:4294967295: ++%*x:+0xFFFFFFFF:0:11: ++%x:+100000000:1:10:4294967295: ++%*x:+100000000:0:10: ++%x:+0X100000000:1:12:4294967295: ++%*x:+0X100000000:0:12: ++%x:+0x100000000:1:12:4294967295: ++%*x:+0x100000000:0:12: ++%x:+100001091:1:10:4294967295: ++%*x:+100001091:0:10: ++%x:+0X100001091:1:12:4294967295: ++%*x:+0X100001091:0:12: ++%x:+0x100001091:1:12:4294967295: ++%*x:+0x100001091:0:12: ++%1x::0:-1: ++%*1x::0:-1: ++%1x:-7b:0:-1: ++%*1x:-7b:0:-1: ++%1x:-7B:0:-1: ++%*1x:-7B:0:-1: ++%1x:-0X7b:0:-1: ++%*1x:-0X7b:0:-1: ++%1x:-0x7B:0:-1: ++%*1x:-0x7B:0:-1: ++%1x:-1:0:-1: ++%*1x:-1:0:-1: ++%1x:-0X1:0:-1: ++%*1x:-0X1:0:-1: ++%1x:-0x1:0:-1: ++%*1x:-0x1:0:-1: ++%1x:-0:0:-1: ++%*1x:-0:0:-1: ++%1x:-0X0:0:-1: ++%*1x:-0X0:0:-1: ++%1x:-0x0:0:-1: ++%*1x:-0x0:0:-1: ++%1x:0:1:1:0: ++%*1x:0:0:1: ++%1x:0X0:1:1:0: ++%*1x:0X0:0:1: ++%1x:0x0:1:1:0: ++%*1x:0x0:0:1: ++%1x:1:1:1:1: ++%*1x:1:0:1: ++%1x:0X1:1:1:0: ++%*1x:0X1:0:1: ++%1x:0x1:1:1:0: ++%*1x:0x1:0:1: ++%1x:2a:1:1:2: ++%*1x:2a:0:1: ++%1x:2A:1:1:2: ++%*1x:2A:0:1: ++%1x:0X2a:1:1:0: ++%*1x:0X2a:0:1: ++%1x:0x2A:1:1:0: ++%*1x:0x2A:0:1: ++%1x:ffffffff:1:1:15: ++%*1x:ffffffff:0:1: ++%1x:FFFFFFFF:1:1:15: ++%*1x:FFFFFFFF:0:1: ++%1x:0Xffffffff:1:1:0: ++%*1x:0Xffffffff:0:1: ++%1x:0xFFFFFFFF:1:1:0: ++%*1x:0xFFFFFFFF:0:1: ++%1x:100000000:1:1:1: ++%*1x:100000000:0:1: ++%1x:0X100000000:1:1:0: ++%*1x:0X100000000:0:1: ++%1x:0x100000000:1:1:0: ++%*1x:0x100000000:0:1: ++%1x:100001091:1:1:1: ++%*1x:100001091:0:1: ++%1x:0X100001091:1:1:0: ++%*1x:0X100001091:0:1: ++%1x:0x100001091:1:1:0: ++%*1x:0x100001091:0:1: ++%1x:+0:0:-1: ++%*1x:+0:0:-1: ++%1x:+0X0:0:-1: ++%*1x:+0X0:0:-1: ++%1x:+0x0:0:-1: ++%*1x:+0x0:0:-1: ++%1x:+1:0:-1: ++%*1x:+1:0:-1: ++%1x:+0X1:0:-1: ++%*1x:+0X1:0:-1: ++%1x:+0x1:0:-1: ++%*1x:+0x1:0:-1: ++%1x:+2a:0:-1: ++%*1x:+2a:0:-1: ++%1x:+2A:0:-1: ++%*1x:+2A:0:-1: ++%1x:+0X2a:0:-1: ++%*1x:+0X2a:0:-1: ++%1x:+0x2A:0:-1: ++%*1x:+0x2A:0:-1: ++%1x:+ffffffff:0:-1: ++%*1x:+ffffffff:0:-1: ++%1x:+FFFFFFFF:0:-1: ++%*1x:+FFFFFFFF:0:-1: ++%1x:+0Xffffffff:0:-1: ++%*1x:+0Xffffffff:0:-1: ++%1x:+0xFFFFFFFF:0:-1: ++%*1x:+0xFFFFFFFF:0:-1: ++%1x:+100000000:0:-1: ++%*1x:+100000000:0:-1: ++%1x:+0X100000000:0:-1: ++%*1x:+0X100000000:0:-1: ++%1x:+0x100000000:0:-1: ++%*1x:+0x100000000:0:-1: ++%1x:+100001091:0:-1: ++%*1x:+100001091:0:-1: ++%1x:+0X100001091:0:-1: ++%*1x:+0X100001091:0:-1: ++%1x:+0x100001091:0:-1: ++%*1x:+0x100001091:0:-1: ++%2x::0:-1: ++%*2x::0:-1: ++%2x:-7b:1:2:4294967289: ++%*2x:-7b:0:2: ++%2x:-7B:1:2:4294967289: ++%*2x:-7B:0:2: ++%2x:-0X7b:1:2:0: ++%*2x:-0X7b:0:2: ++%2x:-0x7B:1:2:0: ++%*2x:-0x7B:0:2: ++%2x:-1:1:2:4294967295: ++%*2x:-1:0:2: ++%2x:-0X1:1:2:0: ++%*2x:-0X1:0:2: ++%2x:-0x1:1:2:0: ++%*2x:-0x1:0:2: ++%2x:-0:1:2:0: ++%*2x:-0:0:2: ++%2x:-0X0:1:2:0: ++%*2x:-0X0:0:2: ++%2x:-0x0:1:2:0: ++%*2x:-0x0:0:2: ++%2x:0:1:1:0: ++%*2x:0:0:1: ++# BZ12701 %2x:0X0:0:-1: ++# BZ12701 %*2x:0X0:0:-1: ++# BZ12701 %2x:0x0:0:-1: ++# BZ12701 %*2x:0x0:0:-1: ++%2x:1:1:1:1: ++%*2x:1:0:1: ++# BZ12701 %2x:0X1:0:-1: ++# BZ12701 %*2x:0X1:0:-1: ++# BZ12701 %2x:0x1:0:-1: ++# BZ12701 %*2x:0x1:0:-1: ++%2x:2a:1:2:42: ++%*2x:2a:0:2: ++%2x:2A:1:2:42: ++%*2x:2A:0:2: ++# BZ12701 %2x:0X2a:0:-1: ++# BZ12701 %*2x:0X2a:0:-1: ++# BZ12701 %2x:0x2A:0:-1: ++# BZ12701 %*2x:0x2A:0:-1: ++%2x:ffffffff:1:2:255: ++%*2x:ffffffff:0:2: ++%2x:FFFFFFFF:1:2:255: ++%*2x:FFFFFFFF:0:2: ++# BZ12701 %2x:0Xffffffff:0:-1: ++# BZ12701 %*2x:0Xffffffff:0:-1: ++# BZ12701 %2x:0xFFFFFFFF:0:-1: ++# BZ12701 %*2x:0xFFFFFFFF:0:-1: ++%2x:100000000:1:2:16: ++%*2x:100000000:0:2: ++# BZ12701 %2x:0X100000000:0:-1: ++# BZ12701 %*2x:0X100000000:0:-1: ++# BZ12701 %2x:0x100000000:0:-1: ++# BZ12701 %*2x:0x100000000:0:-1: ++%2x:100001091:1:2:16: ++%*2x:100001091:0:2: ++# BZ12701 %2x:0X100001091:0:-1: ++# BZ12701 %*2x:0X100001091:0:-1: ++# BZ12701 %2x:0x100001091:0:-1: ++# BZ12701 %*2x:0x100001091:0:-1: ++%2x:+0:1:2:0: ++%*2x:+0:0:2: ++%2x:+0X0:1:2:0: ++%*2x:+0X0:0:2: ++%2x:+0x0:1:2:0: ++%*2x:+0x0:0:2: ++%2x:+1:1:2:1: ++%*2x:+1:0:2: ++%2x:+0X1:1:2:0: ++%*2x:+0X1:0:2: ++%2x:+0x1:1:2:0: ++%*2x:+0x1:0:2: ++%2x:+2a:1:2:2: ++%*2x:+2a:0:2: ++%2x:+2A:1:2:2: ++%*2x:+2A:0:2: ++%2x:+0X2a:1:2:0: ++%*2x:+0X2a:0:2: ++%2x:+0x2A:1:2:0: ++%*2x:+0x2A:0:2: ++%2x:+ffffffff:1:2:15: ++%*2x:+ffffffff:0:2: ++%2x:+FFFFFFFF:1:2:15: ++%*2x:+FFFFFFFF:0:2: ++%2x:+0Xffffffff:1:2:0: ++%*2x:+0Xffffffff:0:2: ++%2x:+0xFFFFFFFF:1:2:0: ++%*2x:+0xFFFFFFFF:0:2: ++%2x:+100000000:1:2:1: ++%*2x:+100000000:0:2: ++%2x:+0X100000000:1:2:0: ++%*2x:+0X100000000:0:2: ++%2x:+0x100000000:1:2:0: ++%*2x:+0x100000000:0:2: ++%2x:+100001091:1:2:1: ++%*2x:+100001091:0:2: ++%2x:+0X100001091:1:2:0: ++%*2x:+0X100001091:0:2: ++%2x:+0x100001091:1:2:0: ++%*2x:+0x100001091:0:2: ++%8x::0:-1: ++%*8x::0:-1: ++%8x:-7b:1:3:4294967173: ++%*8x:-7b:0:3: ++%8x:-7B:1:3:4294967173: ++%*8x:-7B:0:3: ++%8x:-0X7b:1:5:4294967173: ++%*8x:-0X7b:0:5: ++%8x:-0x7B:1:5:4294967173: ++%*8x:-0x7B:0:5: ++%8x:-1:1:2:4294967295: ++%*8x:-1:0:2: ++%8x:-0X1:1:4:4294967295: ++%*8x:-0X1:0:4: ++%8x:-0x1:1:4:4294967295: ++%*8x:-0x1:0:4: ++%8x:-0:1:2:0: ++%*8x:-0:0:2: ++%8x:-0X0:1:4:0: ++%*8x:-0X0:0:4: ++%8x:-0x0:1:4:0: ++%*8x:-0x0:0:4: ++%8x:0:1:1:0: ++%*8x:0:0:1: ++%8x:0X0:1:3:0: ++%*8x:0X0:0:3: ++%8x:0x0:1:3:0: ++%*8x:0x0:0:3: ++%8x:1:1:1:1: ++%*8x:1:0:1: ++%8x:0X1:1:3:1: ++%*8x:0X1:0:3: ++%8x:0x1:1:3:1: ++%*8x:0x1:0:3: ++%8x:2a:1:2:42: ++%*8x:2a:0:2: ++%8x:2A:1:2:42: ++%*8x:2A:0:2: ++%8x:0X2a:1:4:42: ++%*8x:0X2a:0:4: ++%8x:0x2A:1:4:42: ++%*8x:0x2A:0:4: ++%8x:ffffffff:1:8:4294967295: ++%*8x:ffffffff:0:8: ++%8x:FFFFFFFF:1:8:4294967295: ++%*8x:FFFFFFFF:0:8: ++%8x:0Xffffffff:1:8:16777215: ++%*8x:0Xffffffff:0:8: ++%8x:0xFFFFFFFF:1:8:16777215: ++%*8x:0xFFFFFFFF:0:8: ++%8x:100000000:1:8:268435456: ++%*8x:100000000:0:8: ++%8x:0X100000000:1:8:1048576: ++%*8x:0X100000000:0:8: ++%8x:0x100000000:1:8:1048576: ++%*8x:0x100000000:0:8: ++%8x:100001091:1:8:268435721: ++%*8x:100001091:0:8: ++%8x:0X100001091:1:8:1048577: ++%*8x:0X100001091:0:8: ++%8x:0x100001091:1:8:1048577: ++%*8x:0x100001091:0:8: ++%8x:+0:1:2:0: ++%*8x:+0:0:2: ++%8x:+0X0:1:4:0: ++%*8x:+0X0:0:4: ++%8x:+0x0:1:4:0: ++%*8x:+0x0:0:4: ++%8x:+1:1:2:1: ++%*8x:+1:0:2: ++%8x:+0X1:1:4:1: ++%*8x:+0X1:0:4: ++%8x:+0x1:1:4:1: ++%*8x:+0x1:0:4: ++%8x:+2a:1:3:42: ++%*8x:+2a:0:3: ++%8x:+2A:1:3:42: ++%*8x:+2A:0:3: ++%8x:+0X2a:1:5:42: ++%*8x:+0X2a:0:5: ++%8x:+0x2A:1:5:42: ++%*8x:+0x2A:0:5: ++%8x:+ffffffff:1:8:268435455: ++%*8x:+ffffffff:0:8: ++%8x:+FFFFFFFF:1:8:268435455: ++%*8x:+FFFFFFFF:0:8: ++%8x:+0Xffffffff:1:8:1048575: ++%*8x:+0Xffffffff:0:8: ++%8x:+0xFFFFFFFF:1:8:1048575: ++%*8x:+0xFFFFFFFF:0:8: ++%8x:+100000000:1:8:16777216: ++%*8x:+100000000:0:8: ++%8x:+0X100000000:1:8:65536: ++%*8x:+0X100000000:0:8: ++%8x:+0x100000000:1:8:65536: ++%*8x:+0x100000000:0:8: ++%8x:+100001091:1:8:16777232: ++%*8x:+100001091:0:8: ++%8x:+0X100001091:1:8:65536: ++%*8x:+0X100001091:0:8: ++%8x:+0x100001091:1:8:65536: ++%*8x:+0x100001091:0:8: ++%15x::0:-1: ++%*15x::0:-1: ++%15x:-7b:1:3:4294967173: ++%*15x:-7b:0:3: ++%15x:-7B:1:3:4294967173: ++%*15x:-7B:0:3: ++%15x:-0X7b:1:5:4294967173: ++%*15x:-0X7b:0:5: ++%15x:-0x7B:1:5:4294967173: ++%*15x:-0x7B:0:5: ++%15x:-1:1:2:4294967295: ++%*15x:-1:0:2: ++%15x:-0X1:1:4:4294967295: ++%*15x:-0X1:0:4: ++%15x:-0x1:1:4:4294967295: ++%*15x:-0x1:0:4: ++%15x:-0:1:2:0: ++%*15x:-0:0:2: ++%15x:-0X0:1:4:0: ++%*15x:-0X0:0:4: ++%15x:-0x0:1:4:0: ++%*15x:-0x0:0:4: ++%15x:0:1:1:0: ++%*15x:0:0:1: ++%15x:0X0:1:3:0: ++%*15x:0X0:0:3: ++%15x:0x0:1:3:0: ++%*15x:0x0:0:3: ++%15x:1:1:1:1: ++%*15x:1:0:1: ++%15x:0X1:1:3:1: ++%*15x:0X1:0:3: ++%15x:0x1:1:3:1: ++%*15x:0x1:0:3: ++%15x:2a:1:2:42: ++%*15x:2a:0:2: ++%15x:2A:1:2:42: ++%*15x:2A:0:2: ++%15x:0X2a:1:4:42: ++%*15x:0X2a:0:4: ++%15x:0x2A:1:4:42: ++%*15x:0x2A:0:4: ++%15x:ffffffff:1:8:4294967295: ++%*15x:ffffffff:0:8: ++%15x:FFFFFFFF:1:8:4294967295: ++%*15x:FFFFFFFF:0:8: ++%15x:0Xffffffff:1:10:4294967295: ++%*15x:0Xffffffff:0:10: ++%15x:0xFFFFFFFF:1:10:4294967295: ++%*15x:0xFFFFFFFF:0:10: ++%15x:100000000:1:9:4294967295: ++%*15x:100000000:0:9: ++%15x:0X100000000:1:11:4294967295: ++%*15x:0X100000000:0:11: ++%15x:0x100000000:1:11:4294967295: ++%*15x:0x100000000:0:11: ++%15x:100001091:1:9:4294967295: ++%*15x:100001091:0:9: ++%15x:0X100001091:1:11:4294967295: ++%*15x:0X100001091:0:11: ++%15x:0x100001091:1:11:4294967295: ++%*15x:0x100001091:0:11: ++%15x:+0:1:2:0: ++%*15x:+0:0:2: ++%15x:+0X0:1:4:0: ++%*15x:+0X0:0:4: ++%15x:+0x0:1:4:0: ++%*15x:+0x0:0:4: ++%15x:+1:1:2:1: ++%*15x:+1:0:2: ++%15x:+0X1:1:4:1: ++%*15x:+0X1:0:4: ++%15x:+0x1:1:4:1: ++%*15x:+0x1:0:4: ++%15x:+2a:1:3:42: ++%*15x:+2a:0:3: ++%15x:+2A:1:3:42: ++%*15x:+2A:0:3: ++%15x:+0X2a:1:5:42: ++%*15x:+0X2a:0:5: ++%15x:+0x2A:1:5:42: ++%*15x:+0x2A:0:5: ++%15x:+ffffffff:1:9:4294967295: ++%*15x:+ffffffff:0:9: ++%15x:+FFFFFFFF:1:9:4294967295: ++%*15x:+FFFFFFFF:0:9: ++%15x:+0Xffffffff:1:11:4294967295: ++%*15x:+0Xffffffff:0:11: ++%15x:+0xFFFFFFFF:1:11:4294967295: ++%*15x:+0xFFFFFFFF:0:11: ++%15x:+100000000:1:10:4294967295: ++%*15x:+100000000:0:10: ++%15x:+0X100000000:1:12:4294967295: ++%*15x:+0X100000000:0:12: ++%15x:+0x100000000:1:12:4294967295: ++%*15x:+0x100000000:0:12: ++%15x:+100001091:1:10:4294967295: ++%*15x:+100001091:0:10: ++%15x:+0X100001091:1:12:4294967295: ++%*15x:+0X100001091:0:12: ++%15x:+0x100001091:1:12:4294967295: ++%*15x:+0x100001091:0:12: ++%2x: :0:-1: ++%*2x: :0:-1: ++%2x: -7b:1:3:4294967289: ++%*2x: -7b:0:3: ++%2x: -7B:1:3:4294967289: ++%*2x: -7B:0:3: ++%2x: -0X7b:1:3:0: ++%*2x: -0X7b:0:3: ++%2x: -0x7B:1:3:0: ++%*2x: -0x7B:0:3: ++%2x: -1:1:3:4294967295: ++%*2x: -1:0:3: ++%2x: -0X1:1:3:0: ++%*2x: -0X1:0:3: ++%2x: -0x1:1:3:0: ++%*2x: -0x1:0:3: ++%2x: -0:1:3:0: ++%*2x: -0:0:3: ++%2x: -0X0:1:3:0: ++%*2x: -0X0:0:3: ++%2x: -0x0:1:3:0: ++%*2x: -0x0:0:3: ++%2x: 0:1:2:0: ++%*2x: 0:0:2: ++# BZ12701 %2x: 0X0:0:-1: ++# BZ12701 %*2x: 0X0:0:-1: ++# BZ12701 %2x: 0x0:0:-1: ++# BZ12701 %*2x: 0x0:0:-1: ++%2x: 1:1:2:1: ++%*2x: 1:0:2: ++# BZ12701 %2x: 0X1:0:-1: ++# BZ12701 %*2x: 0X1:0:-1: ++# BZ12701 %2x: 0x1:0:-1: ++# BZ12701 %*2x: 0x1:0:-1: ++%2x: 2a:1:3:42: ++%*2x: 2a:0:3: ++%2x: 2A:1:3:42: ++%*2x: 2A:0:3: ++# BZ12701 %2x: 0X2a:0:-1: ++# BZ12701 %*2x: 0X2a:0:-1: ++# BZ12701 %2x: 0x2A:0:-1: ++# BZ12701 %*2x: 0x2A:0:-1: ++%2x: ffffffff:1:3:255: ++%*2x: ffffffff:0:3: ++%2x: FFFFFFFF:1:3:255: ++%*2x: FFFFFFFF:0:3: ++# BZ12701 %2x: 0Xffffffff:0:-1: ++# BZ12701 %*2x: 0Xffffffff:0:-1: ++# BZ12701 %2x: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2x: 0xFFFFFFFF:0:-1: ++%2x: 100000000:1:3:16: ++%*2x: 100000000:0:3: ++# BZ12701 %2x: 0X100000000:0:-1: ++# BZ12701 %*2x: 0X100000000:0:-1: ++# BZ12701 %2x: 0x100000000:0:-1: ++# BZ12701 %*2x: 0x100000000:0:-1: ++%2x: 100001091:1:3:16: ++%*2x: 100001091:0:3: ++# BZ12701 %2x: 0X100001091:0:-1: ++# BZ12701 %*2x: 0X100001091:0:-1: ++# BZ12701 %2x: 0x100001091:0:-1: ++# BZ12701 %*2x: 0x100001091:0:-1: ++%2x: +0:1:3:0: ++%*2x: +0:0:3: ++%2x: +0X0:1:3:0: ++%*2x: +0X0:0:3: ++%2x: +0x0:1:3:0: ++%*2x: +0x0:0:3: ++%2x: +1:1:3:1: ++%*2x: +1:0:3: ++%2x: +0X1:1:3:0: ++%*2x: +0X1:0:3: ++%2x: +0x1:1:3:0: ++%*2x: +0x1:0:3: ++%2x: +2a:1:3:2: ++%*2x: +2a:0:3: ++%2x: +2A:1:3:2: ++%*2x: +2A:0:3: ++%2x: +0X2a:1:3:0: ++%*2x: +0X2a:0:3: ++%2x: +0x2A:1:3:0: ++%*2x: +0x2A:0:3: ++%2x: +ffffffff:1:3:15: ++%*2x: +ffffffff:0:3: ++%2x: +FFFFFFFF:1:3:15: ++%*2x: +FFFFFFFF:0:3: ++%2x: +0Xffffffff:1:3:0: ++%*2x: +0Xffffffff:0:3: ++%2x: +0xFFFFFFFF:1:3:0: ++%*2x: +0xFFFFFFFF:0:3: ++%2x: +100000000:1:3:1: ++%*2x: +100000000:0:3: ++%2x: +0X100000000:1:3:0: ++%*2x: +0X100000000:0:3: ++%2x: +0x100000000:1:3:0: ++%*2x: +0x100000000:0:3: ++%2x: +100001091:1:3:1: ++%*2x: +100001091:0:3: ++%2x: +0X100001091:1:3:0: ++%*2x: +0X100001091:0:3: ++%2x: +0x100001091:1:3:0: ++%*2x: +0x100001091:0:3: ++%15x: :0:-1: ++%*15x: :0:-1: ++%15x: -7b:1:4:4294967173: ++%*15x: -7b:0:4: ++%15x: -7B:1:4:4294967173: ++%*15x: -7B:0:4: ++%15x: -0X7b:1:6:4294967173: ++%*15x: -0X7b:0:6: ++%15x: -0x7B:1:6:4294967173: ++%*15x: -0x7B:0:6: ++%15x: -1:1:3:4294967295: ++%*15x: -1:0:3: ++%15x: -0X1:1:5:4294967295: ++%*15x: -0X1:0:5: ++%15x: -0x1:1:5:4294967295: ++%*15x: -0x1:0:5: ++%15x: -0:1:3:0: ++%*15x: -0:0:3: ++%15x: -0X0:1:5:0: ++%*15x: -0X0:0:5: ++%15x: -0x0:1:5:0: ++%*15x: -0x0:0:5: ++%15x: 0:1:2:0: ++%*15x: 0:0:2: ++%15x: 0X0:1:4:0: ++%*15x: 0X0:0:4: ++%15x: 0x0:1:4:0: ++%*15x: 0x0:0:4: ++%15x: 1:1:2:1: ++%*15x: 1:0:2: ++%15x: 0X1:1:4:1: ++%*15x: 0X1:0:4: ++%15x: 0x1:1:4:1: ++%*15x: 0x1:0:4: ++%15x: 2a:1:3:42: ++%*15x: 2a:0:3: ++%15x: 2A:1:3:42: ++%*15x: 2A:0:3: ++%15x: 0X2a:1:5:42: ++%*15x: 0X2a:0:5: ++%15x: 0x2A:1:5:42: ++%*15x: 0x2A:0:5: ++%15x: ffffffff:1:9:4294967295: ++%*15x: ffffffff:0:9: ++%15x: FFFFFFFF:1:9:4294967295: ++%*15x: FFFFFFFF:0:9: ++%15x: 0Xffffffff:1:11:4294967295: ++%*15x: 0Xffffffff:0:11: ++%15x: 0xFFFFFFFF:1:11:4294967295: ++%*15x: 0xFFFFFFFF:0:11: ++%15x: 100000000:1:10:4294967295: ++%*15x: 100000000:0:10: ++%15x: 0X100000000:1:12:4294967295: ++%*15x: 0X100000000:0:12: ++%15x: 0x100000000:1:12:4294967295: ++%*15x: 0x100000000:0:12: ++%15x: 100001091:1:10:4294967295: ++%*15x: 100001091:0:10: ++%15x: 0X100001091:1:12:4294967295: ++%*15x: 0X100001091:0:12: ++%15x: 0x100001091:1:12:4294967295: ++%*15x: 0x100001091:0:12: ++%15x: +0:1:3:0: ++%*15x: +0:0:3: ++%15x: +0X0:1:5:0: ++%*15x: +0X0:0:5: ++%15x: +0x0:1:5:0: ++%*15x: +0x0:0:5: ++%15x: +1:1:3:1: ++%*15x: +1:0:3: ++%15x: +0X1:1:5:1: ++%*15x: +0X1:0:5: ++%15x: +0x1:1:5:1: ++%*15x: +0x1:0:5: ++%15x: +2a:1:4:42: ++%*15x: +2a:0:4: ++%15x: +2A:1:4:42: ++%*15x: +2A:0:4: ++%15x: +0X2a:1:6:42: ++%*15x: +0X2a:0:6: ++%15x: +0x2A:1:6:42: ++%*15x: +0x2A:0:6: ++%15x: +ffffffff:1:10:4294967295: ++%*15x: +ffffffff:0:10: ++%15x: +FFFFFFFF:1:10:4294967295: ++%*15x: +FFFFFFFF:0:10: ++%15x: +0Xffffffff:1:12:4294967295: ++%*15x: +0Xffffffff:0:12: ++%15x: +0xFFFFFFFF:1:12:4294967295: ++%*15x: +0xFFFFFFFF:0:12: ++%15x: +100000000:1:11:4294967295: ++%*15x: +100000000:0:11: ++%15x: +0X100000000:1:13:4294967295: ++%*15x: +0X100000000:0:13: ++%15x: +0x100000000:1:13:4294967295: ++%*15x: +0x100000000:0:13: ++%15x: +100001091:1:11:4294967295: ++%*15x: +100001091:0:11: ++%15x: +0X100001091:1:13:4294967295: ++%*15x: +0X100001091:0:13: ++%15x: +0x100001091:1:13:4294967295: ++%*15x: +0x100001091:0:13: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-uint-xx.input b/sysdeps/wordsize-32/tst-scanf-format-uint-xx.input +new file mode 100644 +index 0000000000000000..bfadb7f9bb8d4fd7 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-uint-xx.input +@@ -0,0 +1,714 @@ ++%X::0:-1: ++%*X::0:-1: ++%X:-7b:1:3:4294967173: ++%*X:-7b:0:3: ++%X:-7B:1:3:4294967173: ++%*X:-7B:0:3: ++%X:-0X7b:1:5:4294967173: ++%*X:-0X7b:0:5: ++%X:-0x7B:1:5:4294967173: ++%*X:-0x7B:0:5: ++%X:-1:1:2:4294967295: ++%*X:-1:0:2: ++%X:-0X1:1:4:4294967295: ++%*X:-0X1:0:4: ++%X:-0x1:1:4:4294967295: ++%*X:-0x1:0:4: ++%X:-0:1:2:0: ++%*X:-0:0:2: ++%X:-0X0:1:4:0: ++%*X:-0X0:0:4: ++%X:-0x0:1:4:0: ++%*X:-0x0:0:4: ++%X:0:1:1:0: ++%*X:0:0:1: ++%X:0X0:1:3:0: ++%*X:0X0:0:3: ++%X:0x0:1:3:0: ++%*X:0x0:0:3: ++%X:1:1:1:1: ++%*X:1:0:1: ++%X:0X1:1:3:1: ++%*X:0X1:0:3: ++%X:0x1:1:3:1: ++%*X:0x1:0:3: ++%X:2a:1:2:42: ++%*X:2a:0:2: ++%X:2A:1:2:42: ++%*X:2A:0:2: ++%X:0X2a:1:4:42: ++%*X:0X2a:0:4: ++%X:0x2A:1:4:42: ++%*X:0x2A:0:4: ++%X:ffffffff:1:8:4294967295: ++%*X:ffffffff:0:8: ++%X:FFFFFFFF:1:8:4294967295: ++%*X:FFFFFFFF:0:8: ++%X:0Xffffffff:1:10:4294967295: ++%*X:0Xffffffff:0:10: ++%X:0xFFFFFFFF:1:10:4294967295: ++%*X:0xFFFFFFFF:0:10: ++%X:100000000:1:9:4294967295: ++%*X:100000000:0:9: ++%X:0X100000000:1:11:4294967295: ++%*X:0X100000000:0:11: ++%X:0x100000000:1:11:4294967295: ++%*X:0x100000000:0:11: ++%X:100001091:1:9:4294967295: ++%*X:100001091:0:9: ++%X:0X100001091:1:11:4294967295: ++%*X:0X100001091:0:11: ++%X:0x100001091:1:11:4294967295: ++%*X:0x100001091:0:11: ++%X:+0:1:2:0: ++%*X:+0:0:2: ++%X:+0X0:1:4:0: ++%*X:+0X0:0:4: ++%X:+0x0:1:4:0: ++%*X:+0x0:0:4: ++%X:+1:1:2:1: ++%*X:+1:0:2: ++%X:+0X1:1:4:1: ++%*X:+0X1:0:4: ++%X:+0x1:1:4:1: ++%*X:+0x1:0:4: ++%X:+2a:1:3:42: ++%*X:+2a:0:3: ++%X:+2A:1:3:42: ++%*X:+2A:0:3: ++%X:+0X2a:1:5:42: ++%*X:+0X2a:0:5: ++%X:+0x2A:1:5:42: ++%*X:+0x2A:0:5: ++%X:+ffffffff:1:9:4294967295: ++%*X:+ffffffff:0:9: ++%X:+FFFFFFFF:1:9:4294967295: ++%*X:+FFFFFFFF:0:9: ++%X:+0Xffffffff:1:11:4294967295: ++%*X:+0Xffffffff:0:11: ++%X:+0xFFFFFFFF:1:11:4294967295: ++%*X:+0xFFFFFFFF:0:11: ++%X:+100000000:1:10:4294967295: ++%*X:+100000000:0:10: ++%X:+0X100000000:1:12:4294967295: ++%*X:+0X100000000:0:12: ++%X:+0x100000000:1:12:4294967295: ++%*X:+0x100000000:0:12: ++%X:+100001091:1:10:4294967295: ++%*X:+100001091:0:10: ++%X:+0X100001091:1:12:4294967295: ++%*X:+0X100001091:0:12: ++%X:+0x100001091:1:12:4294967295: ++%*X:+0x100001091:0:12: ++%1X::0:-1: ++%*1X::0:-1: ++%1X:-7b:0:-1: ++%*1X:-7b:0:-1: ++%1X:-7B:0:-1: ++%*1X:-7B:0:-1: ++%1X:-0X7b:0:-1: ++%*1X:-0X7b:0:-1: ++%1X:-0x7B:0:-1: ++%*1X:-0x7B:0:-1: ++%1X:-1:0:-1: ++%*1X:-1:0:-1: ++%1X:-0X1:0:-1: ++%*1X:-0X1:0:-1: ++%1X:-0x1:0:-1: ++%*1X:-0x1:0:-1: ++%1X:-0:0:-1: ++%*1X:-0:0:-1: ++%1X:-0X0:0:-1: ++%*1X:-0X0:0:-1: ++%1X:-0x0:0:-1: ++%*1X:-0x0:0:-1: ++%1X:0:1:1:0: ++%*1X:0:0:1: ++%1X:0X0:1:1:0: ++%*1X:0X0:0:1: ++%1X:0x0:1:1:0: ++%*1X:0x0:0:1: ++%1X:1:1:1:1: ++%*1X:1:0:1: ++%1X:0X1:1:1:0: ++%*1X:0X1:0:1: ++%1X:0x1:1:1:0: ++%*1X:0x1:0:1: ++%1X:2a:1:1:2: ++%*1X:2a:0:1: ++%1X:2A:1:1:2: ++%*1X:2A:0:1: ++%1X:0X2a:1:1:0: ++%*1X:0X2a:0:1: ++%1X:0x2A:1:1:0: ++%*1X:0x2A:0:1: ++%1X:ffffffff:1:1:15: ++%*1X:ffffffff:0:1: ++%1X:FFFFFFFF:1:1:15: ++%*1X:FFFFFFFF:0:1: ++%1X:0Xffffffff:1:1:0: ++%*1X:0Xffffffff:0:1: ++%1X:0xFFFFFFFF:1:1:0: ++%*1X:0xFFFFFFFF:0:1: ++%1X:100000000:1:1:1: ++%*1X:100000000:0:1: ++%1X:0X100000000:1:1:0: ++%*1X:0X100000000:0:1: ++%1X:0x100000000:1:1:0: ++%*1X:0x100000000:0:1: ++%1X:100001091:1:1:1: ++%*1X:100001091:0:1: ++%1X:0X100001091:1:1:0: ++%*1X:0X100001091:0:1: ++%1X:0x100001091:1:1:0: ++%*1X:0x100001091:0:1: ++%1X:+0:0:-1: ++%*1X:+0:0:-1: ++%1X:+0X0:0:-1: ++%*1X:+0X0:0:-1: ++%1X:+0x0:0:-1: ++%*1X:+0x0:0:-1: ++%1X:+1:0:-1: ++%*1X:+1:0:-1: ++%1X:+0X1:0:-1: ++%*1X:+0X1:0:-1: ++%1X:+0x1:0:-1: ++%*1X:+0x1:0:-1: ++%1X:+2a:0:-1: ++%*1X:+2a:0:-1: ++%1X:+2A:0:-1: ++%*1X:+2A:0:-1: ++%1X:+0X2a:0:-1: ++%*1X:+0X2a:0:-1: ++%1X:+0x2A:0:-1: ++%*1X:+0x2A:0:-1: ++%1X:+ffffffff:0:-1: ++%*1X:+ffffffff:0:-1: ++%1X:+FFFFFFFF:0:-1: ++%*1X:+FFFFFFFF:0:-1: ++%1X:+0Xffffffff:0:-1: ++%*1X:+0Xffffffff:0:-1: ++%1X:+0xFFFFFFFF:0:-1: ++%*1X:+0xFFFFFFFF:0:-1: ++%1X:+100000000:0:-1: ++%*1X:+100000000:0:-1: ++%1X:+0X100000000:0:-1: ++%*1X:+0X100000000:0:-1: ++%1X:+0x100000000:0:-1: ++%*1X:+0x100000000:0:-1: ++%1X:+100001091:0:-1: ++%*1X:+100001091:0:-1: ++%1X:+0X100001091:0:-1: ++%*1X:+0X100001091:0:-1: ++%1X:+0x100001091:0:-1: ++%*1X:+0x100001091:0:-1: ++%2X::0:-1: ++%*2X::0:-1: ++%2X:-7b:1:2:4294967289: ++%*2X:-7b:0:2: ++%2X:-7B:1:2:4294967289: ++%*2X:-7B:0:2: ++%2X:-0X7b:1:2:0: ++%*2X:-0X7b:0:2: ++%2X:-0x7B:1:2:0: ++%*2X:-0x7B:0:2: ++%2X:-1:1:2:4294967295: ++%*2X:-1:0:2: ++%2X:-0X1:1:2:0: ++%*2X:-0X1:0:2: ++%2X:-0x1:1:2:0: ++%*2X:-0x1:0:2: ++%2X:-0:1:2:0: ++%*2X:-0:0:2: ++%2X:-0X0:1:2:0: ++%*2X:-0X0:0:2: ++%2X:-0x0:1:2:0: ++%*2X:-0x0:0:2: ++%2X:0:1:1:0: ++%*2X:0:0:1: ++# BZ12701 %2X:0X0:0:-1: ++# BZ12701 %*2X:0X0:0:-1: ++# BZ12701 %2X:0x0:0:-1: ++# BZ12701 %*2X:0x0:0:-1: ++%2X:1:1:1:1: ++%*2X:1:0:1: ++# BZ12701 %2X:0X1:0:-1: ++# BZ12701 %*2X:0X1:0:-1: ++# BZ12701 %2X:0x1:0:-1: ++# BZ12701 %*2X:0x1:0:-1: ++%2X:2a:1:2:42: ++%*2X:2a:0:2: ++%2X:2A:1:2:42: ++%*2X:2A:0:2: ++# BZ12701 %2X:0X2a:0:-1: ++# BZ12701 %*2X:0X2a:0:-1: ++# BZ12701 %2X:0x2A:0:-1: ++# BZ12701 %*2X:0x2A:0:-1: ++%2X:ffffffff:1:2:255: ++%*2X:ffffffff:0:2: ++%2X:FFFFFFFF:1:2:255: ++%*2X:FFFFFFFF:0:2: ++# BZ12701 %2X:0Xffffffff:0:-1: ++# BZ12701 %*2X:0Xffffffff:0:-1: ++# BZ12701 %2X:0xFFFFFFFF:0:-1: ++# BZ12701 %*2X:0xFFFFFFFF:0:-1: ++%2X:100000000:1:2:16: ++%*2X:100000000:0:2: ++# BZ12701 %2X:0X100000000:0:-1: ++# BZ12701 %*2X:0X100000000:0:-1: ++# BZ12701 %2X:0x100000000:0:-1: ++# BZ12701 %*2X:0x100000000:0:-1: ++%2X:100001091:1:2:16: ++%*2X:100001091:0:2: ++# BZ12701 %2X:0X100001091:0:-1: ++# BZ12701 %*2X:0X100001091:0:-1: ++# BZ12701 %2X:0x100001091:0:-1: ++# BZ12701 %*2X:0x100001091:0:-1: ++%2X:+0:1:2:0: ++%*2X:+0:0:2: ++%2X:+0X0:1:2:0: ++%*2X:+0X0:0:2: ++%2X:+0x0:1:2:0: ++%*2X:+0x0:0:2: ++%2X:+1:1:2:1: ++%*2X:+1:0:2: ++%2X:+0X1:1:2:0: ++%*2X:+0X1:0:2: ++%2X:+0x1:1:2:0: ++%*2X:+0x1:0:2: ++%2X:+2a:1:2:2: ++%*2X:+2a:0:2: ++%2X:+2A:1:2:2: ++%*2X:+2A:0:2: ++%2X:+0X2a:1:2:0: ++%*2X:+0X2a:0:2: ++%2X:+0x2A:1:2:0: ++%*2X:+0x2A:0:2: ++%2X:+ffffffff:1:2:15: ++%*2X:+ffffffff:0:2: ++%2X:+FFFFFFFF:1:2:15: ++%*2X:+FFFFFFFF:0:2: ++%2X:+0Xffffffff:1:2:0: ++%*2X:+0Xffffffff:0:2: ++%2X:+0xFFFFFFFF:1:2:0: ++%*2X:+0xFFFFFFFF:0:2: ++%2X:+100000000:1:2:1: ++%*2X:+100000000:0:2: ++%2X:+0X100000000:1:2:0: ++%*2X:+0X100000000:0:2: ++%2X:+0x100000000:1:2:0: ++%*2X:+0x100000000:0:2: ++%2X:+100001091:1:2:1: ++%*2X:+100001091:0:2: ++%2X:+0X100001091:1:2:0: ++%*2X:+0X100001091:0:2: ++%2X:+0x100001091:1:2:0: ++%*2X:+0x100001091:0:2: ++%8X::0:-1: ++%*8X::0:-1: ++%8X:-7b:1:3:4294967173: ++%*8X:-7b:0:3: ++%8X:-7B:1:3:4294967173: ++%*8X:-7B:0:3: ++%8X:-0X7b:1:5:4294967173: ++%*8X:-0X7b:0:5: ++%8X:-0x7B:1:5:4294967173: ++%*8X:-0x7B:0:5: ++%8X:-1:1:2:4294967295: ++%*8X:-1:0:2: ++%8X:-0X1:1:4:4294967295: ++%*8X:-0X1:0:4: ++%8X:-0x1:1:4:4294967295: ++%*8X:-0x1:0:4: ++%8X:-0:1:2:0: ++%*8X:-0:0:2: ++%8X:-0X0:1:4:0: ++%*8X:-0X0:0:4: ++%8X:-0x0:1:4:0: ++%*8X:-0x0:0:4: ++%8X:0:1:1:0: ++%*8X:0:0:1: ++%8X:0X0:1:3:0: ++%*8X:0X0:0:3: ++%8X:0x0:1:3:0: ++%*8X:0x0:0:3: ++%8X:1:1:1:1: ++%*8X:1:0:1: ++%8X:0X1:1:3:1: ++%*8X:0X1:0:3: ++%8X:0x1:1:3:1: ++%*8X:0x1:0:3: ++%8X:2a:1:2:42: ++%*8X:2a:0:2: ++%8X:2A:1:2:42: ++%*8X:2A:0:2: ++%8X:0X2a:1:4:42: ++%*8X:0X2a:0:4: ++%8X:0x2A:1:4:42: ++%*8X:0x2A:0:4: ++%8X:ffffffff:1:8:4294967295: ++%*8X:ffffffff:0:8: ++%8X:FFFFFFFF:1:8:4294967295: ++%*8X:FFFFFFFF:0:8: ++%8X:0Xffffffff:1:8:16777215: ++%*8X:0Xffffffff:0:8: ++%8X:0xFFFFFFFF:1:8:16777215: ++%*8X:0xFFFFFFFF:0:8: ++%8X:100000000:1:8:268435456: ++%*8X:100000000:0:8: ++%8X:0X100000000:1:8:1048576: ++%*8X:0X100000000:0:8: ++%8X:0x100000000:1:8:1048576: ++%*8X:0x100000000:0:8: ++%8X:100001091:1:8:268435721: ++%*8X:100001091:0:8: ++%8X:0X100001091:1:8:1048577: ++%*8X:0X100001091:0:8: ++%8X:0x100001091:1:8:1048577: ++%*8X:0x100001091:0:8: ++%8X:+0:1:2:0: ++%*8X:+0:0:2: ++%8X:+0X0:1:4:0: ++%*8X:+0X0:0:4: ++%8X:+0x0:1:4:0: ++%*8X:+0x0:0:4: ++%8X:+1:1:2:1: ++%*8X:+1:0:2: ++%8X:+0X1:1:4:1: ++%*8X:+0X1:0:4: ++%8X:+0x1:1:4:1: ++%*8X:+0x1:0:4: ++%8X:+2a:1:3:42: ++%*8X:+2a:0:3: ++%8X:+2A:1:3:42: ++%*8X:+2A:0:3: ++%8X:+0X2a:1:5:42: ++%*8X:+0X2a:0:5: ++%8X:+0x2A:1:5:42: ++%*8X:+0x2A:0:5: ++%8X:+ffffffff:1:8:268435455: ++%*8X:+ffffffff:0:8: ++%8X:+FFFFFFFF:1:8:268435455: ++%*8X:+FFFFFFFF:0:8: ++%8X:+0Xffffffff:1:8:1048575: ++%*8X:+0Xffffffff:0:8: ++%8X:+0xFFFFFFFF:1:8:1048575: ++%*8X:+0xFFFFFFFF:0:8: ++%8X:+100000000:1:8:16777216: ++%*8X:+100000000:0:8: ++%8X:+0X100000000:1:8:65536: ++%*8X:+0X100000000:0:8: ++%8X:+0x100000000:1:8:65536: ++%*8X:+0x100000000:0:8: ++%8X:+100001091:1:8:16777232: ++%*8X:+100001091:0:8: ++%8X:+0X100001091:1:8:65536: ++%*8X:+0X100001091:0:8: ++%8X:+0x100001091:1:8:65536: ++%*8X:+0x100001091:0:8: ++%15X::0:-1: ++%*15X::0:-1: ++%15X:-7b:1:3:4294967173: ++%*15X:-7b:0:3: ++%15X:-7B:1:3:4294967173: ++%*15X:-7B:0:3: ++%15X:-0X7b:1:5:4294967173: ++%*15X:-0X7b:0:5: ++%15X:-0x7B:1:5:4294967173: ++%*15X:-0x7B:0:5: ++%15X:-1:1:2:4294967295: ++%*15X:-1:0:2: ++%15X:-0X1:1:4:4294967295: ++%*15X:-0X1:0:4: ++%15X:-0x1:1:4:4294967295: ++%*15X:-0x1:0:4: ++%15X:-0:1:2:0: ++%*15X:-0:0:2: ++%15X:-0X0:1:4:0: ++%*15X:-0X0:0:4: ++%15X:-0x0:1:4:0: ++%*15X:-0x0:0:4: ++%15X:0:1:1:0: ++%*15X:0:0:1: ++%15X:0X0:1:3:0: ++%*15X:0X0:0:3: ++%15X:0x0:1:3:0: ++%*15X:0x0:0:3: ++%15X:1:1:1:1: ++%*15X:1:0:1: ++%15X:0X1:1:3:1: ++%*15X:0X1:0:3: ++%15X:0x1:1:3:1: ++%*15X:0x1:0:3: ++%15X:2a:1:2:42: ++%*15X:2a:0:2: ++%15X:2A:1:2:42: ++%*15X:2A:0:2: ++%15X:0X2a:1:4:42: ++%*15X:0X2a:0:4: ++%15X:0x2A:1:4:42: ++%*15X:0x2A:0:4: ++%15X:ffffffff:1:8:4294967295: ++%*15X:ffffffff:0:8: ++%15X:FFFFFFFF:1:8:4294967295: ++%*15X:FFFFFFFF:0:8: ++%15X:0Xffffffff:1:10:4294967295: ++%*15X:0Xffffffff:0:10: ++%15X:0xFFFFFFFF:1:10:4294967295: ++%*15X:0xFFFFFFFF:0:10: ++%15X:100000000:1:9:4294967295: ++%*15X:100000000:0:9: ++%15X:0X100000000:1:11:4294967295: ++%*15X:0X100000000:0:11: ++%15X:0x100000000:1:11:4294967295: ++%*15X:0x100000000:0:11: ++%15X:100001091:1:9:4294967295: ++%*15X:100001091:0:9: ++%15X:0X100001091:1:11:4294967295: ++%*15X:0X100001091:0:11: ++%15X:0x100001091:1:11:4294967295: ++%*15X:0x100001091:0:11: ++%15X:+0:1:2:0: ++%*15X:+0:0:2: ++%15X:+0X0:1:4:0: ++%*15X:+0X0:0:4: ++%15X:+0x0:1:4:0: ++%*15X:+0x0:0:4: ++%15X:+1:1:2:1: ++%*15X:+1:0:2: ++%15X:+0X1:1:4:1: ++%*15X:+0X1:0:4: ++%15X:+0x1:1:4:1: ++%*15X:+0x1:0:4: ++%15X:+2a:1:3:42: ++%*15X:+2a:0:3: ++%15X:+2A:1:3:42: ++%*15X:+2A:0:3: ++%15X:+0X2a:1:5:42: ++%*15X:+0X2a:0:5: ++%15X:+0x2A:1:5:42: ++%*15X:+0x2A:0:5: ++%15X:+ffffffff:1:9:4294967295: ++%*15X:+ffffffff:0:9: ++%15X:+FFFFFFFF:1:9:4294967295: ++%*15X:+FFFFFFFF:0:9: ++%15X:+0Xffffffff:1:11:4294967295: ++%*15X:+0Xffffffff:0:11: ++%15X:+0xFFFFFFFF:1:11:4294967295: ++%*15X:+0xFFFFFFFF:0:11: ++%15X:+100000000:1:10:4294967295: ++%*15X:+100000000:0:10: ++%15X:+0X100000000:1:12:4294967295: ++%*15X:+0X100000000:0:12: ++%15X:+0x100000000:1:12:4294967295: ++%*15X:+0x100000000:0:12: ++%15X:+100001091:1:10:4294967295: ++%*15X:+100001091:0:10: ++%15X:+0X100001091:1:12:4294967295: ++%*15X:+0X100001091:0:12: ++%15X:+0x100001091:1:12:4294967295: ++%*15X:+0x100001091:0:12: ++%2X: :0:-1: ++%*2X: :0:-1: ++%2X: -7b:1:3:4294967289: ++%*2X: -7b:0:3: ++%2X: -7B:1:3:4294967289: ++%*2X: -7B:0:3: ++%2X: -0X7b:1:3:0: ++%*2X: -0X7b:0:3: ++%2X: -0x7B:1:3:0: ++%*2X: -0x7B:0:3: ++%2X: -1:1:3:4294967295: ++%*2X: -1:0:3: ++%2X: -0X1:1:3:0: ++%*2X: -0X1:0:3: ++%2X: -0x1:1:3:0: ++%*2X: -0x1:0:3: ++%2X: -0:1:3:0: ++%*2X: -0:0:3: ++%2X: -0X0:1:3:0: ++%*2X: -0X0:0:3: ++%2X: -0x0:1:3:0: ++%*2X: -0x0:0:3: ++%2X: 0:1:2:0: ++%*2X: 0:0:2: ++# BZ12701 %2X: 0X0:0:-1: ++# BZ12701 %*2X: 0X0:0:-1: ++# BZ12701 %2X: 0x0:0:-1: ++# BZ12701 %*2X: 0x0:0:-1: ++%2X: 1:1:2:1: ++%*2X: 1:0:2: ++# BZ12701 %2X: 0X1:0:-1: ++# BZ12701 %*2X: 0X1:0:-1: ++# BZ12701 %2X: 0x1:0:-1: ++# BZ12701 %*2X: 0x1:0:-1: ++%2X: 2a:1:3:42: ++%*2X: 2a:0:3: ++%2X: 2A:1:3:42: ++%*2X: 2A:0:3: ++# BZ12701 %2X: 0X2a:0:-1: ++# BZ12701 %*2X: 0X2a:0:-1: ++# BZ12701 %2X: 0x2A:0:-1: ++# BZ12701 %*2X: 0x2A:0:-1: ++%2X: ffffffff:1:3:255: ++%*2X: ffffffff:0:3: ++%2X: FFFFFFFF:1:3:255: ++%*2X: FFFFFFFF:0:3: ++# BZ12701 %2X: 0Xffffffff:0:-1: ++# BZ12701 %*2X: 0Xffffffff:0:-1: ++# BZ12701 %2X: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2X: 0xFFFFFFFF:0:-1: ++%2X: 100000000:1:3:16: ++%*2X: 100000000:0:3: ++# BZ12701 %2X: 0X100000000:0:-1: ++# BZ12701 %*2X: 0X100000000:0:-1: ++# BZ12701 %2X: 0x100000000:0:-1: ++# BZ12701 %*2X: 0x100000000:0:-1: ++%2X: 100001091:1:3:16: ++%*2X: 100001091:0:3: ++# BZ12701 %2X: 0X100001091:0:-1: ++# BZ12701 %*2X: 0X100001091:0:-1: ++# BZ12701 %2X: 0x100001091:0:-1: ++# BZ12701 %*2X: 0x100001091:0:-1: ++%2X: +0:1:3:0: ++%*2X: +0:0:3: ++%2X: +0X0:1:3:0: ++%*2X: +0X0:0:3: ++%2X: +0x0:1:3:0: ++%*2X: +0x0:0:3: ++%2X: +1:1:3:1: ++%*2X: +1:0:3: ++%2X: +0X1:1:3:0: ++%*2X: +0X1:0:3: ++%2X: +0x1:1:3:0: ++%*2X: +0x1:0:3: ++%2X: +2a:1:3:2: ++%*2X: +2a:0:3: ++%2X: +2A:1:3:2: ++%*2X: +2A:0:3: ++%2X: +0X2a:1:3:0: ++%*2X: +0X2a:0:3: ++%2X: +0x2A:1:3:0: ++%*2X: +0x2A:0:3: ++%2X: +ffffffff:1:3:15: ++%*2X: +ffffffff:0:3: ++%2X: +FFFFFFFF:1:3:15: ++%*2X: +FFFFFFFF:0:3: ++%2X: +0Xffffffff:1:3:0: ++%*2X: +0Xffffffff:0:3: ++%2X: +0xFFFFFFFF:1:3:0: ++%*2X: +0xFFFFFFFF:0:3: ++%2X: +100000000:1:3:1: ++%*2X: +100000000:0:3: ++%2X: +0X100000000:1:3:0: ++%*2X: +0X100000000:0:3: ++%2X: +0x100000000:1:3:0: ++%*2X: +0x100000000:0:3: ++%2X: +100001091:1:3:1: ++%*2X: +100001091:0:3: ++%2X: +0X100001091:1:3:0: ++%*2X: +0X100001091:0:3: ++%2X: +0x100001091:1:3:0: ++%*2X: +0x100001091:0:3: ++%15X: :0:-1: ++%*15X: :0:-1: ++%15X: -7b:1:4:4294967173: ++%*15X: -7b:0:4: ++%15X: -7B:1:4:4294967173: ++%*15X: -7B:0:4: ++%15X: -0X7b:1:6:4294967173: ++%*15X: -0X7b:0:6: ++%15X: -0x7B:1:6:4294967173: ++%*15X: -0x7B:0:6: ++%15X: -1:1:3:4294967295: ++%*15X: -1:0:3: ++%15X: -0X1:1:5:4294967295: ++%*15X: -0X1:0:5: ++%15X: -0x1:1:5:4294967295: ++%*15X: -0x1:0:5: ++%15X: -0:1:3:0: ++%*15X: -0:0:3: ++%15X: -0X0:1:5:0: ++%*15X: -0X0:0:5: ++%15X: -0x0:1:5:0: ++%*15X: -0x0:0:5: ++%15X: 0:1:2:0: ++%*15X: 0:0:2: ++%15X: 0X0:1:4:0: ++%*15X: 0X0:0:4: ++%15X: 0x0:1:4:0: ++%*15X: 0x0:0:4: ++%15X: 1:1:2:1: ++%*15X: 1:0:2: ++%15X: 0X1:1:4:1: ++%*15X: 0X1:0:4: ++%15X: 0x1:1:4:1: ++%*15X: 0x1:0:4: ++%15X: 2a:1:3:42: ++%*15X: 2a:0:3: ++%15X: 2A:1:3:42: ++%*15X: 2A:0:3: ++%15X: 0X2a:1:5:42: ++%*15X: 0X2a:0:5: ++%15X: 0x2A:1:5:42: ++%*15X: 0x2A:0:5: ++%15X: ffffffff:1:9:4294967295: ++%*15X: ffffffff:0:9: ++%15X: FFFFFFFF:1:9:4294967295: ++%*15X: FFFFFFFF:0:9: ++%15X: 0Xffffffff:1:11:4294967295: ++%*15X: 0Xffffffff:0:11: ++%15X: 0xFFFFFFFF:1:11:4294967295: ++%*15X: 0xFFFFFFFF:0:11: ++%15X: 100000000:1:10:4294967295: ++%*15X: 100000000:0:10: ++%15X: 0X100000000:1:12:4294967295: ++%*15X: 0X100000000:0:12: ++%15X: 0x100000000:1:12:4294967295: ++%*15X: 0x100000000:0:12: ++%15X: 100001091:1:10:4294967295: ++%*15X: 100001091:0:10: ++%15X: 0X100001091:1:12:4294967295: ++%*15X: 0X100001091:0:12: ++%15X: 0x100001091:1:12:4294967295: ++%*15X: 0x100001091:0:12: ++%15X: +0:1:3:0: ++%*15X: +0:0:3: ++%15X: +0X0:1:5:0: ++%*15X: +0X0:0:5: ++%15X: +0x0:1:5:0: ++%*15X: +0x0:0:5: ++%15X: +1:1:3:1: ++%*15X: +1:0:3: ++%15X: +0X1:1:5:1: ++%*15X: +0X1:0:5: ++%15X: +0x1:1:5:1: ++%*15X: +0x1:0:5: ++%15X: +2a:1:4:42: ++%*15X: +2a:0:4: ++%15X: +2A:1:4:42: ++%*15X: +2A:0:4: ++%15X: +0X2a:1:6:42: ++%*15X: +0X2a:0:6: ++%15X: +0x2A:1:6:42: ++%*15X: +0x2A:0:6: ++%15X: +ffffffff:1:10:4294967295: ++%*15X: +ffffffff:0:10: ++%15X: +FFFFFFFF:1:10:4294967295: ++%*15X: +FFFFFFFF:0:10: ++%15X: +0Xffffffff:1:12:4294967295: ++%*15X: +0Xffffffff:0:12: ++%15X: +0xFFFFFFFF:1:12:4294967295: ++%*15X: +0xFFFFFFFF:0:12: ++%15X: +100000000:1:11:4294967295: ++%*15X: +100000000:0:11: ++%15X: +0X100000000:1:13:4294967295: ++%*15X: +0X100000000:0:13: ++%15X: +0x100000000:1:13:4294967295: ++%*15X: +0x100000000:0:13: ++%15X: +100001091:1:11:4294967295: ++%*15X: +100001091:0:11: ++%15X: +0X100001091:1:13:4294967295: ++%*15X: +0X100001091:0:13: ++%15X: +0x100001091:1:13:4294967295: ++%*15X: +0x100001091:0:13: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input +new file mode 100644 +index 0000000000000000..311ee862476f51d0 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-b.input +@@ -0,0 +1,644 @@ ++%lb::0:-1: ++%*lb::0:-1: ++%lb:-1111011:1:8:4294967173: ++%*lb:-1111011:0:8: ++%lb:-0B1111011:1:10:4294967173: ++%*lb:-0B1111011:0:10: ++%lb:-0b1111011:1:10:4294967173: ++%*lb:-0b1111011:0:10: ++%lb:-1:1:2:4294967295: ++%*lb:-1:0:2: ++%lb:-0B1:1:4:4294967295: ++%*lb:-0B1:0:4: ++%lb:-0b1:1:4:4294967295: ++%*lb:-0b1:0:4: ++%lb:-0:1:2:0: ++%*lb:-0:0:2: ++%lb:-0B0:1:4:0: ++%*lb:-0B0:0:4: ++%lb:-0b0:1:4:0: ++%*lb:-0b0:0:4: ++%lb:0:1:1:0: ++%*lb:0:0:1: ++%lb:0B0:1:3:0: ++%*lb:0B0:0:3: ++%lb:0b0:1:3:0: ++%*lb:0b0:0:3: ++%lb:1:1:1:1: ++%*lb:1:0:1: ++%lb:0B1:1:3:1: ++%*lb:0B1:0:3: ++%lb:0b1:1:3:1: ++%*lb:0b1:0:3: ++%lb:101010:1:6:42: ++%*lb:101010:0:6: ++%lb:0B101010:1:8:42: ++%*lb:0B101010:0:8: ++%lb:0b101010:1:8:42: ++%*lb:0b101010:0:8: ++%lb:11111111111111111111111111111111:1:32:4294967295: ++%*lb:11111111111111111111111111111111:0:32: ++%lb:0B11111111111111111111111111111111:1:34:4294967295: ++%*lb:0B11111111111111111111111111111111:0:34: ++%lb:0b11111111111111111111111111111111:1:34:4294967295: ++%*lb:0b11111111111111111111111111111111:0:34: ++%lb:100000000000000000000000000000000:1:33:4294967295: ++%*lb:100000000000000000000000000000000:0:33: ++%lb:0B100000000000000000000000000000000:1:35:4294967295: ++%*lb:0B100000000000000000000000000000000:0:35: ++%lb:0b100000000000000000000000000000000:1:35:4294967295: ++%*lb:0b100000000000000000000000000000000:0:35: ++%lb:100000000000000000001000010010001:1:33:4294967295: ++%*lb:100000000000000000001000010010001:0:33: ++%lb:0B100000000000000000001000010010001:1:35:4294967295: ++%*lb:0B100000000000000000001000010010001:0:35: ++%lb:0b100000000000000000001000010010001:1:35:4294967295: ++%*lb:0b100000000000000000001000010010001:0:35: ++%lb:+0:1:2:0: ++%*lb:+0:0:2: ++%lb:+0B0:1:4:0: ++%*lb:+0B0:0:4: ++%lb:+0b0:1:4:0: ++%*lb:+0b0:0:4: ++%lb:+1:1:2:1: ++%*lb:+1:0:2: ++%lb:+0B1:1:4:1: ++%*lb:+0B1:0:4: ++%lb:+0b1:1:4:1: ++%*lb:+0b1:0:4: ++%lb:+101010:1:7:42: ++%*lb:+101010:0:7: ++%lb:+0B101010:1:9:42: ++%*lb:+0B101010:0:9: ++%lb:+0b101010:1:9:42: ++%*lb:+0b101010:0:9: ++%lb:+11111111111111111111111111111111:1:33:4294967295: ++%*lb:+11111111111111111111111111111111:0:33: ++%lb:+0B11111111111111111111111111111111:1:35:4294967295: ++%*lb:+0B11111111111111111111111111111111:0:35: ++%lb:+0b11111111111111111111111111111111:1:35:4294967295: ++%*lb:+0b11111111111111111111111111111111:0:35: ++%lb:+100000000000000000000000000000000:1:34:4294967295: ++%*lb:+100000000000000000000000000000000:0:34: ++%lb:+0B100000000000000000000000000000000:1:36:4294967295: ++%*lb:+0B100000000000000000000000000000000:0:36: ++%lb:+0b100000000000000000000000000000000:1:36:4294967295: ++%*lb:+0b100000000000000000000000000000000:0:36: ++%lb:+100000000000000000001000010010001:1:34:4294967295: ++%*lb:+100000000000000000001000010010001:0:34: ++%lb:+0B100000000000000000001000010010001:1:36:4294967295: ++%*lb:+0B100000000000000000001000010010001:0:36: ++%lb:+0b100000000000000000001000010010001:1:36:4294967295: ++%*lb:+0b100000000000000000001000010010001:0:36: ++%1lb::0:-1: ++%*1lb::0:-1: ++%1lb:-1111011:0:-1: ++%*1lb:-1111011:0:-1: ++%1lb:-0B1111011:0:-1: ++%*1lb:-0B1111011:0:-1: ++%1lb:-0b1111011:0:-1: ++%*1lb:-0b1111011:0:-1: ++%1lb:-1:0:-1: ++%*1lb:-1:0:-1: ++%1lb:-0B1:0:-1: ++%*1lb:-0B1:0:-1: ++%1lb:-0b1:0:-1: ++%*1lb:-0b1:0:-1: ++%1lb:-0:0:-1: ++%*1lb:-0:0:-1: ++%1lb:-0B0:0:-1: ++%*1lb:-0B0:0:-1: ++%1lb:-0b0:0:-1: ++%*1lb:-0b0:0:-1: ++%1lb:0:1:1:0: ++%*1lb:0:0:1: ++%1lb:0B0:1:1:0: ++%*1lb:0B0:0:1: ++%1lb:0b0:1:1:0: ++%*1lb:0b0:0:1: ++%1lb:1:1:1:1: ++%*1lb:1:0:1: ++%1lb:0B1:1:1:0: ++%*1lb:0B1:0:1: ++%1lb:0b1:1:1:0: ++%*1lb:0b1:0:1: ++%1lb:101010:1:1:1: ++%*1lb:101010:0:1: ++%1lb:0B101010:1:1:0: ++%*1lb:0B101010:0:1: ++%1lb:0b101010:1:1:0: ++%*1lb:0b101010:0:1: ++%1lb:11111111111111111111111111111111:1:1:1: ++%*1lb:11111111111111111111111111111111:0:1: ++%1lb:0B11111111111111111111111111111111:1:1:0: ++%*1lb:0B11111111111111111111111111111111:0:1: ++%1lb:0b11111111111111111111111111111111:1:1:0: ++%*1lb:0b11111111111111111111111111111111:0:1: ++%1lb:100000000000000000000000000000000:1:1:1: ++%*1lb:100000000000000000000000000000000:0:1: ++%1lb:0B100000000000000000000000000000000:1:1:0: ++%*1lb:0B100000000000000000000000000000000:0:1: ++%1lb:0b100000000000000000000000000000000:1:1:0: ++%*1lb:0b100000000000000000000000000000000:0:1: ++%1lb:100000000000000000001000010010001:1:1:1: ++%*1lb:100000000000000000001000010010001:0:1: ++%1lb:0B100000000000000000001000010010001:1:1:0: ++%*1lb:0B100000000000000000001000010010001:0:1: ++%1lb:0b100000000000000000001000010010001:1:1:0: ++%*1lb:0b100000000000000000001000010010001:0:1: ++%1lb:+0:0:-1: ++%*1lb:+0:0:-1: ++%1lb:+0B0:0:-1: ++%*1lb:+0B0:0:-1: ++%1lb:+0b0:0:-1: ++%*1lb:+0b0:0:-1: ++%1lb:+1:0:-1: ++%*1lb:+1:0:-1: ++%1lb:+0B1:0:-1: ++%*1lb:+0B1:0:-1: ++%1lb:+0b1:0:-1: ++%*1lb:+0b1:0:-1: ++%1lb:+101010:0:-1: ++%*1lb:+101010:0:-1: ++%1lb:+0B101010:0:-1: ++%*1lb:+0B101010:0:-1: ++%1lb:+0b101010:0:-1: ++%*1lb:+0b101010:0:-1: ++%1lb:+11111111111111111111111111111111:0:-1: ++%*1lb:+11111111111111111111111111111111:0:-1: ++%1lb:+0B11111111111111111111111111111111:0:-1: ++%*1lb:+0B11111111111111111111111111111111:0:-1: ++%1lb:+0b11111111111111111111111111111111:0:-1: ++%*1lb:+0b11111111111111111111111111111111:0:-1: ++%1lb:+100000000000000000000000000000000:0:-1: ++%*1lb:+100000000000000000000000000000000:0:-1: ++%1lb:+0B100000000000000000000000000000000:0:-1: ++%*1lb:+0B100000000000000000000000000000000:0:-1: ++%1lb:+0b100000000000000000000000000000000:0:-1: ++%*1lb:+0b100000000000000000000000000000000:0:-1: ++%1lb:+100000000000000000001000010010001:0:-1: ++%*1lb:+100000000000000000001000010010001:0:-1: ++%1lb:+0B100000000000000000001000010010001:0:-1: ++%*1lb:+0B100000000000000000001000010010001:0:-1: ++%1lb:+0b100000000000000000001000010010001:0:-1: ++%*1lb:+0b100000000000000000001000010010001:0:-1: ++%2lb::0:-1: ++%*2lb::0:-1: ++%2lb:-1111011:1:2:4294967295: ++%*2lb:-1111011:0:2: ++%2lb:-0B1111011:1:2:0: ++%*2lb:-0B1111011:0:2: ++%2lb:-0b1111011:1:2:0: ++%*2lb:-0b1111011:0:2: ++%2lb:-1:1:2:4294967295: ++%*2lb:-1:0:2: ++%2lb:-0B1:1:2:0: ++%*2lb:-0B1:0:2: ++%2lb:-0b1:1:2:0: ++%*2lb:-0b1:0:2: ++%2lb:-0:1:2:0: ++%*2lb:-0:0:2: ++%2lb:-0B0:1:2:0: ++%*2lb:-0B0:0:2: ++%2lb:-0b0:1:2:0: ++%*2lb:-0b0:0:2: ++%2lb:0:1:1:0: ++%*2lb:0:0:1: ++# BZ12701 %2lb:0B0:0:-1: ++# BZ12701 %*2lb:0B0:0:-1: ++# BZ12701 %2lb:0b0:0:-1: ++# BZ12701 %*2lb:0b0:0:-1: ++%2lb:1:1:1:1: ++%*2lb:1:0:1: ++# BZ12701 %2lb:0B1:0:-1: ++# BZ12701 %*2lb:0B1:0:-1: ++# BZ12701 %2lb:0b1:0:-1: ++# BZ12701 %*2lb:0b1:0:-1: ++%2lb:101010:1:2:2: ++%*2lb:101010:0:2: ++# BZ12701 %2lb:0B101010:0:-1: ++# BZ12701 %*2lb:0B101010:0:-1: ++# BZ12701 %2lb:0b101010:0:-1: ++# BZ12701 %*2lb:0b101010:0:-1: ++%2lb:11111111111111111111111111111111:1:2:3: ++%*2lb:11111111111111111111111111111111:0:2: ++# BZ12701 %2lb:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2lb:0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb:0b11111111111111111111111111111111:0:-1: ++%2lb:100000000000000000000000000000000:1:2:2: ++%*2lb:100000000000000000000000000000000:0:2: ++# BZ12701 %2lb:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2lb:0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb:0b100000000000000000000000000000000:0:-1: ++%2lb:100000000000000000001000010010001:1:2:2: ++%*2lb:100000000000000000001000010010001:0:2: ++# BZ12701 %2lb:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2lb:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2lb:0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2lb:0b100000000000000000001000010010001:0:-1: ++%2lb:+0:1:2:0: ++%*2lb:+0:0:2: ++%2lb:+0B0:1:2:0: ++%*2lb:+0B0:0:2: ++%2lb:+0b0:1:2:0: ++%*2lb:+0b0:0:2: ++%2lb:+1:1:2:1: ++%*2lb:+1:0:2: ++%2lb:+0B1:1:2:0: ++%*2lb:+0B1:0:2: ++%2lb:+0b1:1:2:0: ++%*2lb:+0b1:0:2: ++%2lb:+101010:1:2:1: ++%*2lb:+101010:0:2: ++%2lb:+0B101010:1:2:0: ++%*2lb:+0B101010:0:2: ++%2lb:+0b101010:1:2:0: ++%*2lb:+0b101010:0:2: ++%2lb:+11111111111111111111111111111111:1:2:1: ++%*2lb:+11111111111111111111111111111111:0:2: ++%2lb:+0B11111111111111111111111111111111:1:2:0: ++%*2lb:+0B11111111111111111111111111111111:0:2: ++%2lb:+0b11111111111111111111111111111111:1:2:0: ++%*2lb:+0b11111111111111111111111111111111:0:2: ++%2lb:+100000000000000000000000000000000:1:2:1: ++%*2lb:+100000000000000000000000000000000:0:2: ++%2lb:+0B100000000000000000000000000000000:1:2:0: ++%*2lb:+0B100000000000000000000000000000000:0:2: ++%2lb:+0b100000000000000000000000000000000:1:2:0: ++%*2lb:+0b100000000000000000000000000000000:0:2: ++%2lb:+100000000000000000001000010010001:1:2:1: ++%*2lb:+100000000000000000001000010010001:0:2: ++%2lb:+0B100000000000000000001000010010001:1:2:0: ++%*2lb:+0B100000000000000000001000010010001:0:2: ++%2lb:+0b100000000000000000001000010010001:1:2:0: ++%*2lb:+0b100000000000000000001000010010001:0:2: ++%8lb::0:-1: ++%*8lb::0:-1: ++%8lb:-1111011:1:8:4294967173: ++%*8lb:-1111011:0:8: ++%8lb:-0B1111011:1:8:4294967266: ++%*8lb:-0B1111011:0:8: ++%8lb:-0b1111011:1:8:4294967266: ++%*8lb:-0b1111011:0:8: ++%8lb:-1:1:2:4294967295: ++%*8lb:-1:0:2: ++%8lb:-0B1:1:4:4294967295: ++%*8lb:-0B1:0:4: ++%8lb:-0b1:1:4:4294967295: ++%*8lb:-0b1:0:4: ++%8lb:-0:1:2:0: ++%*8lb:-0:0:2: ++%8lb:-0B0:1:4:0: ++%*8lb:-0B0:0:4: ++%8lb:-0b0:1:4:0: ++%*8lb:-0b0:0:4: ++%8lb:0:1:1:0: ++%*8lb:0:0:1: ++%8lb:0B0:1:3:0: ++%*8lb:0B0:0:3: ++%8lb:0b0:1:3:0: ++%*8lb:0b0:0:3: ++%8lb:1:1:1:1: ++%*8lb:1:0:1: ++%8lb:0B1:1:3:1: ++%*8lb:0B1:0:3: ++%8lb:0b1:1:3:1: ++%*8lb:0b1:0:3: ++%8lb:101010:1:6:42: ++%*8lb:101010:0:6: ++%8lb:0B101010:1:8:42: ++%*8lb:0B101010:0:8: ++%8lb:0b101010:1:8:42: ++%*8lb:0b101010:0:8: ++%8lb:11111111111111111111111111111111:1:8:255: ++%*8lb:11111111111111111111111111111111:0:8: ++%8lb:0B11111111111111111111111111111111:1:8:63: ++%*8lb:0B11111111111111111111111111111111:0:8: ++%8lb:0b11111111111111111111111111111111:1:8:63: ++%*8lb:0b11111111111111111111111111111111:0:8: ++%8lb:100000000000000000000000000000000:1:8:128: ++%*8lb:100000000000000000000000000000000:0:8: ++%8lb:0B100000000000000000000000000000000:1:8:32: ++%*8lb:0B100000000000000000000000000000000:0:8: ++%8lb:0b100000000000000000000000000000000:1:8:32: ++%*8lb:0b100000000000000000000000000000000:0:8: ++%8lb:100000000000000000001000010010001:1:8:128: ++%*8lb:100000000000000000001000010010001:0:8: ++%8lb:0B100000000000000000001000010010001:1:8:32: ++%*8lb:0B100000000000000000001000010010001:0:8: ++%8lb:0b100000000000000000001000010010001:1:8:32: ++%*8lb:0b100000000000000000001000010010001:0:8: ++%8lb:+0:1:2:0: ++%*8lb:+0:0:2: ++%8lb:+0B0:1:4:0: ++%*8lb:+0B0:0:4: ++%8lb:+0b0:1:4:0: ++%*8lb:+0b0:0:4: ++%8lb:+1:1:2:1: ++%*8lb:+1:0:2: ++%8lb:+0B1:1:4:1: ++%*8lb:+0B1:0:4: ++%8lb:+0b1:1:4:1: ++%*8lb:+0b1:0:4: ++%8lb:+101010:1:7:42: ++%*8lb:+101010:0:7: ++%8lb:+0B101010:1:8:21: ++%*8lb:+0B101010:0:8: ++%8lb:+0b101010:1:8:21: ++%*8lb:+0b101010:0:8: ++%8lb:+11111111111111111111111111111111:1:8:127: ++%*8lb:+11111111111111111111111111111111:0:8: ++%8lb:+0B11111111111111111111111111111111:1:8:31: ++%*8lb:+0B11111111111111111111111111111111:0:8: ++%8lb:+0b11111111111111111111111111111111:1:8:31: ++%*8lb:+0b11111111111111111111111111111111:0:8: ++%8lb:+100000000000000000000000000000000:1:8:64: ++%*8lb:+100000000000000000000000000000000:0:8: ++%8lb:+0B100000000000000000000000000000000:1:8:16: ++%*8lb:+0B100000000000000000000000000000000:0:8: ++%8lb:+0b100000000000000000000000000000000:1:8:16: ++%*8lb:+0b100000000000000000000000000000000:0:8: ++%8lb:+100000000000000000001000010010001:1:8:64: ++%*8lb:+100000000000000000001000010010001:0:8: ++%8lb:+0B100000000000000000001000010010001:1:8:16: ++%*8lb:+0B100000000000000000001000010010001:0:8: ++%8lb:+0b100000000000000000001000010010001:1:8:16: ++%*8lb:+0b100000000000000000001000010010001:0:8: ++%15lb::0:-1: ++%*15lb::0:-1: ++%15lb:-1111011:1:8:4294967173: ++%*15lb:-1111011:0:8: ++%15lb:-0B1111011:1:10:4294967173: ++%*15lb:-0B1111011:0:10: ++%15lb:-0b1111011:1:10:4294967173: ++%*15lb:-0b1111011:0:10: ++%15lb:-1:1:2:4294967295: ++%*15lb:-1:0:2: ++%15lb:-0B1:1:4:4294967295: ++%*15lb:-0B1:0:4: ++%15lb:-0b1:1:4:4294967295: ++%*15lb:-0b1:0:4: ++%15lb:-0:1:2:0: ++%*15lb:-0:0:2: ++%15lb:-0B0:1:4:0: ++%*15lb:-0B0:0:4: ++%15lb:-0b0:1:4:0: ++%*15lb:-0b0:0:4: ++%15lb:0:1:1:0: ++%*15lb:0:0:1: ++%15lb:0B0:1:3:0: ++%*15lb:0B0:0:3: ++%15lb:0b0:1:3:0: ++%*15lb:0b0:0:3: ++%15lb:1:1:1:1: ++%*15lb:1:0:1: ++%15lb:0B1:1:3:1: ++%*15lb:0B1:0:3: ++%15lb:0b1:1:3:1: ++%*15lb:0b1:0:3: ++%15lb:101010:1:6:42: ++%*15lb:101010:0:6: ++%15lb:0B101010:1:8:42: ++%*15lb:0B101010:0:8: ++%15lb:0b101010:1:8:42: ++%*15lb:0b101010:0:8: ++%15lb:11111111111111111111111111111111:1:15:32767: ++%*15lb:11111111111111111111111111111111:0:15: ++%15lb:0B11111111111111111111111111111111:1:15:8191: ++%*15lb:0B11111111111111111111111111111111:0:15: ++%15lb:0b11111111111111111111111111111111:1:15:8191: ++%*15lb:0b11111111111111111111111111111111:0:15: ++%15lb:100000000000000000000000000000000:1:15:16384: ++%*15lb:100000000000000000000000000000000:0:15: ++%15lb:0B100000000000000000000000000000000:1:15:4096: ++%*15lb:0B100000000000000000000000000000000:0:15: ++%15lb:0b100000000000000000000000000000000:1:15:4096: ++%*15lb:0b100000000000000000000000000000000:0:15: ++%15lb:100000000000000000001000010010001:1:15:16384: ++%*15lb:100000000000000000001000010010001:0:15: ++%15lb:0B100000000000000000001000010010001:1:15:4096: ++%*15lb:0B100000000000000000001000010010001:0:15: ++%15lb:0b100000000000000000001000010010001:1:15:4096: ++%*15lb:0b100000000000000000001000010010001:0:15: ++%15lb:+0:1:2:0: ++%*15lb:+0:0:2: ++%15lb:+0B0:1:4:0: ++%*15lb:+0B0:0:4: ++%15lb:+0b0:1:4:0: ++%*15lb:+0b0:0:4: ++%15lb:+1:1:2:1: ++%*15lb:+1:0:2: ++%15lb:+0B1:1:4:1: ++%*15lb:+0B1:0:4: ++%15lb:+0b1:1:4:1: ++%*15lb:+0b1:0:4: ++%15lb:+101010:1:7:42: ++%*15lb:+101010:0:7: ++%15lb:+0B101010:1:9:42: ++%*15lb:+0B101010:0:9: ++%15lb:+0b101010:1:9:42: ++%*15lb:+0b101010:0:9: ++%15lb:+11111111111111111111111111111111:1:15:16383: ++%*15lb:+11111111111111111111111111111111:0:15: ++%15lb:+0B11111111111111111111111111111111:1:15:4095: ++%*15lb:+0B11111111111111111111111111111111:0:15: ++%15lb:+0b11111111111111111111111111111111:1:15:4095: ++%*15lb:+0b11111111111111111111111111111111:0:15: ++%15lb:+100000000000000000000000000000000:1:15:8192: ++%*15lb:+100000000000000000000000000000000:0:15: ++%15lb:+0B100000000000000000000000000000000:1:15:2048: ++%*15lb:+0B100000000000000000000000000000000:0:15: ++%15lb:+0b100000000000000000000000000000000:1:15:2048: ++%*15lb:+0b100000000000000000000000000000000:0:15: ++%15lb:+100000000000000000001000010010001:1:15:8192: ++%*15lb:+100000000000000000001000010010001:0:15: ++%15lb:+0B100000000000000000001000010010001:1:15:2048: ++%*15lb:+0B100000000000000000001000010010001:0:15: ++%15lb:+0b100000000000000000001000010010001:1:15:2048: ++%*15lb:+0b100000000000000000001000010010001:0:15: ++%2lb: :0:-1: ++%*2lb: :0:-1: ++%2lb: -1111011:1:3:4294967295: ++%*2lb: -1111011:0:3: ++%2lb: -0B1111011:1:3:0: ++%*2lb: -0B1111011:0:3: ++%2lb: -0b1111011:1:3:0: ++%*2lb: -0b1111011:0:3: ++%2lb: -1:1:3:4294967295: ++%*2lb: -1:0:3: ++%2lb: -0B1:1:3:0: ++%*2lb: -0B1:0:3: ++%2lb: -0b1:1:3:0: ++%*2lb: -0b1:0:3: ++%2lb: -0:1:3:0: ++%*2lb: -0:0:3: ++%2lb: -0B0:1:3:0: ++%*2lb: -0B0:0:3: ++%2lb: -0b0:1:3:0: ++%*2lb: -0b0:0:3: ++%2lb: 0:1:2:0: ++%*2lb: 0:0:2: ++# BZ12701 %2lb: 0B0:0:-1: ++# BZ12701 %*2lb: 0B0:0:-1: ++# BZ12701 %2lb: 0b0:0:-1: ++# BZ12701 %*2lb: 0b0:0:-1: ++%2lb: 1:1:2:1: ++%*2lb: 1:0:2: ++# BZ12701 %2lb: 0B1:0:-1: ++# BZ12701 %*2lb: 0B1:0:-1: ++# BZ12701 %2lb: 0b1:0:-1: ++# BZ12701 %*2lb: 0b1:0:-1: ++%2lb: 101010:1:3:2: ++%*2lb: 101010:0:3: ++# BZ12701 %2lb: 0B101010:0:-1: ++# BZ12701 %*2lb: 0B101010:0:-1: ++# BZ12701 %2lb: 0b101010:0:-1: ++# BZ12701 %*2lb: 0b101010:0:-1: ++%2lb: 11111111111111111111111111111111:1:3:3: ++%*2lb: 11111111111111111111111111111111:0:3: ++# BZ12701 %2lb: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2lb: 0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb: 0b11111111111111111111111111111111:0:-1: ++%2lb: 100000000000000000000000000000000:1:3:2: ++%*2lb: 100000000000000000000000000000000:0:3: ++# BZ12701 %2lb: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2lb: 0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb: 0b100000000000000000000000000000000:0:-1: ++%2lb: 100000000000000000001000010010001:1:3:2: ++%*2lb: 100000000000000000001000010010001:0:3: ++# BZ12701 %2lb: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2lb: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2lb: 0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2lb: 0b100000000000000000001000010010001:0:-1: ++%2lb: +0:1:3:0: ++%*2lb: +0:0:3: ++%2lb: +0B0:1:3:0: ++%*2lb: +0B0:0:3: ++%2lb: +0b0:1:3:0: ++%*2lb: +0b0:0:3: ++%2lb: +1:1:3:1: ++%*2lb: +1:0:3: ++%2lb: +0B1:1:3:0: ++%*2lb: +0B1:0:3: ++%2lb: +0b1:1:3:0: ++%*2lb: +0b1:0:3: ++%2lb: +101010:1:3:1: ++%*2lb: +101010:0:3: ++%2lb: +0B101010:1:3:0: ++%*2lb: +0B101010:0:3: ++%2lb: +0b101010:1:3:0: ++%*2lb: +0b101010:0:3: ++%2lb: +11111111111111111111111111111111:1:3:1: ++%*2lb: +11111111111111111111111111111111:0:3: ++%2lb: +0B11111111111111111111111111111111:1:3:0: ++%*2lb: +0B11111111111111111111111111111111:0:3: ++%2lb: +0b11111111111111111111111111111111:1:3:0: ++%*2lb: +0b11111111111111111111111111111111:0:3: ++%2lb: +100000000000000000000000000000000:1:3:1: ++%*2lb: +100000000000000000000000000000000:0:3: ++%2lb: +0B100000000000000000000000000000000:1:3:0: ++%*2lb: +0B100000000000000000000000000000000:0:3: ++%2lb: +0b100000000000000000000000000000000:1:3:0: ++%*2lb: +0b100000000000000000000000000000000:0:3: ++%2lb: +100000000000000000001000010010001:1:3:1: ++%*2lb: +100000000000000000001000010010001:0:3: ++%2lb: +0B100000000000000000001000010010001:1:3:0: ++%*2lb: +0B100000000000000000001000010010001:0:3: ++%2lb: +0b100000000000000000001000010010001:1:3:0: ++%*2lb: +0b100000000000000000001000010010001:0:3: ++%15lb: :0:-1: ++%*15lb: :0:-1: ++%15lb: -1111011:1:9:4294967173: ++%*15lb: -1111011:0:9: ++%15lb: -0B1111011:1:11:4294967173: ++%*15lb: -0B1111011:0:11: ++%15lb: -0b1111011:1:11:4294967173: ++%*15lb: -0b1111011:0:11: ++%15lb: -1:1:3:4294967295: ++%*15lb: -1:0:3: ++%15lb: -0B1:1:5:4294967295: ++%*15lb: -0B1:0:5: ++%15lb: -0b1:1:5:4294967295: ++%*15lb: -0b1:0:5: ++%15lb: -0:1:3:0: ++%*15lb: -0:0:3: ++%15lb: -0B0:1:5:0: ++%*15lb: -0B0:0:5: ++%15lb: -0b0:1:5:0: ++%*15lb: -0b0:0:5: ++%15lb: 0:1:2:0: ++%*15lb: 0:0:2: ++%15lb: 0B0:1:4:0: ++%*15lb: 0B0:0:4: ++%15lb: 0b0:1:4:0: ++%*15lb: 0b0:0:4: ++%15lb: 1:1:2:1: ++%*15lb: 1:0:2: ++%15lb: 0B1:1:4:1: ++%*15lb: 0B1:0:4: ++%15lb: 0b1:1:4:1: ++%*15lb: 0b1:0:4: ++%15lb: 101010:1:7:42: ++%*15lb: 101010:0:7: ++%15lb: 0B101010:1:9:42: ++%*15lb: 0B101010:0:9: ++%15lb: 0b101010:1:9:42: ++%*15lb: 0b101010:0:9: ++%15lb: 11111111111111111111111111111111:1:16:32767: ++%*15lb: 11111111111111111111111111111111:0:16: ++%15lb: 0B11111111111111111111111111111111:1:16:8191: ++%*15lb: 0B11111111111111111111111111111111:0:16: ++%15lb: 0b11111111111111111111111111111111:1:16:8191: ++%*15lb: 0b11111111111111111111111111111111:0:16: ++%15lb: 100000000000000000000000000000000:1:16:16384: ++%*15lb: 100000000000000000000000000000000:0:16: ++%15lb: 0B100000000000000000000000000000000:1:16:4096: ++%*15lb: 0B100000000000000000000000000000000:0:16: ++%15lb: 0b100000000000000000000000000000000:1:16:4096: ++%*15lb: 0b100000000000000000000000000000000:0:16: ++%15lb: 100000000000000000001000010010001:1:16:16384: ++%*15lb: 100000000000000000001000010010001:0:16: ++%15lb: 0B100000000000000000001000010010001:1:16:4096: ++%*15lb: 0B100000000000000000001000010010001:0:16: ++%15lb: 0b100000000000000000001000010010001:1:16:4096: ++%*15lb: 0b100000000000000000001000010010001:0:16: ++%15lb: +0:1:3:0: ++%*15lb: +0:0:3: ++%15lb: +0B0:1:5:0: ++%*15lb: +0B0:0:5: ++%15lb: +0b0:1:5:0: ++%*15lb: +0b0:0:5: ++%15lb: +1:1:3:1: ++%*15lb: +1:0:3: ++%15lb: +0B1:1:5:1: ++%*15lb: +0B1:0:5: ++%15lb: +0b1:1:5:1: ++%*15lb: +0b1:0:5: ++%15lb: +101010:1:8:42: ++%*15lb: +101010:0:8: ++%15lb: +0B101010:1:10:42: ++%*15lb: +0B101010:0:10: ++%15lb: +0b101010:1:10:42: ++%*15lb: +0b101010:0:10: ++%15lb: +11111111111111111111111111111111:1:16:16383: ++%*15lb: +11111111111111111111111111111111:0:16: ++%15lb: +0B11111111111111111111111111111111:1:16:4095: ++%*15lb: +0B11111111111111111111111111111111:0:16: ++%15lb: +0b11111111111111111111111111111111:1:16:4095: ++%*15lb: +0b11111111111111111111111111111111:0:16: ++%15lb: +100000000000000000000000000000000:1:16:8192: ++%*15lb: +100000000000000000000000000000000:0:16: ++%15lb: +0B100000000000000000000000000000000:1:16:2048: ++%*15lb: +0B100000000000000000000000000000000:0:16: ++%15lb: +0b100000000000000000000000000000000:1:16:2048: ++%*15lb: +0b100000000000000000000000000000000:0:16: ++%15lb: +100000000000000000001000010010001:1:16:8192: ++%*15lb: +100000000000000000001000010010001:0:16: ++%15lb: +0B100000000000000000001000010010001:1:16:2048: ++%*15lb: +0B100000000000000000001000010010001:0:16: ++%15lb: +0b100000000000000000001000010010001:1:16:2048: ++%*15lb: +0b100000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-o.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-o.input +new file mode 100644 +index 0000000000000000..b350aa96bdf54d33 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-o.input +@@ -0,0 +1,434 @@ ++%lo::0:-1: ++%*lo::0:-1: ++%lo:-173:1:4:4294967173: ++%*lo:-173:0:4: ++%lo:-0173:1:5:4294967173: ++%*lo:-0173:0:5: ++%lo:-1:1:2:4294967295: ++%*lo:-1:0:2: ++%lo:-01:1:3:4294967295: ++%*lo:-01:0:3: ++%lo:-0:1:2:0: ++%*lo:-0:0:2: ++%lo:-00:1:3:0: ++%*lo:-00:0:3: ++%lo:0:1:1:0: ++%*lo:0:0:1: ++%lo:00:1:2:0: ++%*lo:00:0:2: ++%lo:1:1:1:1: ++%*lo:1:0:1: ++%lo:01:1:2:1: ++%*lo:01:0:2: ++%lo:52:1:2:42: ++%*lo:52:0:2: ++%lo:052:1:3:42: ++%*lo:052:0:3: ++%lo:37777777777:1:11:4294967295: ++%*lo:37777777777:0:11: ++%lo:037777777777:1:12:4294967295: ++%*lo:037777777777:0:12: ++%lo:40000000000:1:11:4294967295: ++%*lo:40000000000:0:11: ++%lo:040000000000:1:12:4294967295: ++%*lo:040000000000:0:12: ++%lo:40000010221:1:11:4294967295: ++%*lo:40000010221:0:11: ++%lo:040000010221:1:12:4294967295: ++%*lo:040000010221:0:12: ++%lo:+0:1:2:0: ++%*lo:+0:0:2: ++%lo:+00:1:3:0: ++%*lo:+00:0:3: ++%lo:+1:1:2:1: ++%*lo:+1:0:2: ++%lo:+01:1:3:1: ++%*lo:+01:0:3: ++%lo:+52:1:3:42: ++%*lo:+52:0:3: ++%lo:+052:1:4:42: ++%*lo:+052:0:4: ++%lo:+37777777777:1:12:4294967295: ++%*lo:+37777777777:0:12: ++%lo:+037777777777:1:13:4294967295: ++%*lo:+037777777777:0:13: ++%lo:+40000000000:1:12:4294967295: ++%*lo:+40000000000:0:12: ++%lo:+040000000000:1:13:4294967295: ++%*lo:+040000000000:0:13: ++%lo:+40000010221:1:12:4294967295: ++%*lo:+40000010221:0:12: ++%lo:+040000010221:1:13:4294967295: ++%*lo:+040000010221:0:13: ++%1lo::0:-1: ++%*1lo::0:-1: ++%1lo:-173:0:-1: ++%*1lo:-173:0:-1: ++%1lo:-0173:0:-1: ++%*1lo:-0173:0:-1: ++%1lo:-1:0:-1: ++%*1lo:-1:0:-1: ++%1lo:-01:0:-1: ++%*1lo:-01:0:-1: ++%1lo:-0:0:-1: ++%*1lo:-0:0:-1: ++%1lo:-00:0:-1: ++%*1lo:-00:0:-1: ++%1lo:0:1:1:0: ++%*1lo:0:0:1: ++%1lo:00:1:1:0: ++%*1lo:00:0:1: ++%1lo:1:1:1:1: ++%*1lo:1:0:1: ++%1lo:01:1:1:0: ++%*1lo:01:0:1: ++%1lo:52:1:1:5: ++%*1lo:52:0:1: ++%1lo:052:1:1:0: ++%*1lo:052:0:1: ++%1lo:37777777777:1:1:3: ++%*1lo:37777777777:0:1: ++%1lo:037777777777:1:1:0: ++%*1lo:037777777777:0:1: ++%1lo:40000000000:1:1:4: ++%*1lo:40000000000:0:1: ++%1lo:040000000000:1:1:0: ++%*1lo:040000000000:0:1: ++%1lo:40000010221:1:1:4: ++%*1lo:40000010221:0:1: ++%1lo:040000010221:1:1:0: ++%*1lo:040000010221:0:1: ++%1lo:+0:0:-1: ++%*1lo:+0:0:-1: ++%1lo:+00:0:-1: ++%*1lo:+00:0:-1: ++%1lo:+1:0:-1: ++%*1lo:+1:0:-1: ++%1lo:+01:0:-1: ++%*1lo:+01:0:-1: ++%1lo:+52:0:-1: ++%*1lo:+52:0:-1: ++%1lo:+052:0:-1: ++%*1lo:+052:0:-1: ++%1lo:+37777777777:0:-1: ++%*1lo:+37777777777:0:-1: ++%1lo:+037777777777:0:-1: ++%*1lo:+037777777777:0:-1: ++%1lo:+40000000000:0:-1: ++%*1lo:+40000000000:0:-1: ++%1lo:+040000000000:0:-1: ++%*1lo:+040000000000:0:-1: ++%1lo:+40000010221:0:-1: ++%*1lo:+40000010221:0:-1: ++%1lo:+040000010221:0:-1: ++%*1lo:+040000010221:0:-1: ++%2lo::0:-1: ++%*2lo::0:-1: ++%2lo:-173:1:2:4294967295: ++%*2lo:-173:0:2: ++%2lo:-0173:1:2:0: ++%*2lo:-0173:0:2: ++%2lo:-1:1:2:4294967295: ++%*2lo:-1:0:2: ++%2lo:-01:1:2:0: ++%*2lo:-01:0:2: ++%2lo:-0:1:2:0: ++%*2lo:-0:0:2: ++%2lo:-00:1:2:0: ++%*2lo:-00:0:2: ++%2lo:0:1:1:0: ++%*2lo:0:0:1: ++%2lo:00:1:2:0: ++%*2lo:00:0:2: ++%2lo:1:1:1:1: ++%*2lo:1:0:1: ++%2lo:01:1:2:1: ++%*2lo:01:0:2: ++%2lo:52:1:2:42: ++%*2lo:52:0:2: ++%2lo:052:1:2:5: ++%*2lo:052:0:2: ++%2lo:37777777777:1:2:31: ++%*2lo:37777777777:0:2: ++%2lo:037777777777:1:2:3: ++%*2lo:037777777777:0:2: ++%2lo:40000000000:1:2:32: ++%*2lo:40000000000:0:2: ++%2lo:040000000000:1:2:4: ++%*2lo:040000000000:0:2: ++%2lo:40000010221:1:2:32: ++%*2lo:40000010221:0:2: ++%2lo:040000010221:1:2:4: ++%*2lo:040000010221:0:2: ++%2lo:+0:1:2:0: ++%*2lo:+0:0:2: ++%2lo:+00:1:2:0: ++%*2lo:+00:0:2: ++%2lo:+1:1:2:1: ++%*2lo:+1:0:2: ++%2lo:+01:1:2:0: ++%*2lo:+01:0:2: ++%2lo:+52:1:2:5: ++%*2lo:+52:0:2: ++%2lo:+052:1:2:0: ++%*2lo:+052:0:2: ++%2lo:+37777777777:1:2:3: ++%*2lo:+37777777777:0:2: ++%2lo:+037777777777:1:2:0: ++%*2lo:+037777777777:0:2: ++%2lo:+40000000000:1:2:4: ++%*2lo:+40000000000:0:2: ++%2lo:+040000000000:1:2:0: ++%*2lo:+040000000000:0:2: ++%2lo:+40000010221:1:2:4: ++%*2lo:+40000010221:0:2: ++%2lo:+040000010221:1:2:0: ++%*2lo:+040000010221:0:2: ++%8lo::0:-1: ++%*8lo::0:-1: ++%8lo:-173:1:4:4294967173: ++%*8lo:-173:0:4: ++%8lo:-0173:1:5:4294967173: ++%*8lo:-0173:0:5: ++%8lo:-1:1:2:4294967295: ++%*8lo:-1:0:2: ++%8lo:-01:1:3:4294967295: ++%*8lo:-01:0:3: ++%8lo:-0:1:2:0: ++%*8lo:-0:0:2: ++%8lo:-00:1:3:0: ++%*8lo:-00:0:3: ++%8lo:0:1:1:0: ++%*8lo:0:0:1: ++%8lo:00:1:2:0: ++%*8lo:00:0:2: ++%8lo:1:1:1:1: ++%*8lo:1:0:1: ++%8lo:01:1:2:1: ++%*8lo:01:0:2: ++%8lo:52:1:2:42: ++%*8lo:52:0:2: ++%8lo:052:1:3:42: ++%*8lo:052:0:3: ++%8lo:37777777777:1:8:8388607: ++%*8lo:37777777777:0:8: ++%8lo:037777777777:1:8:1048575: ++%*8lo:037777777777:0:8: ++%8lo:40000000000:1:8:8388608: ++%*8lo:40000000000:0:8: ++%8lo:040000000000:1:8:1048576: ++%*8lo:040000000000:0:8: ++%8lo:40000010221:1:8:8388616: ++%*8lo:40000010221:0:8: ++%8lo:040000010221:1:8:1048577: ++%*8lo:040000010221:0:8: ++%8lo:+0:1:2:0: ++%*8lo:+0:0:2: ++%8lo:+00:1:3:0: ++%*8lo:+00:0:3: ++%8lo:+1:1:2:1: ++%*8lo:+1:0:2: ++%8lo:+01:1:3:1: ++%*8lo:+01:0:3: ++%8lo:+52:1:3:42: ++%*8lo:+52:0:3: ++%8lo:+052:1:4:42: ++%*8lo:+052:0:4: ++%8lo:+37777777777:1:8:1048575: ++%*8lo:+37777777777:0:8: ++%8lo:+037777777777:1:8:131071: ++%*8lo:+037777777777:0:8: ++%8lo:+40000000000:1:8:1048576: ++%*8lo:+40000000000:0:8: ++%8lo:+040000000000:1:8:131072: ++%*8lo:+040000000000:0:8: ++%8lo:+40000010221:1:8:1048577: ++%*8lo:+40000010221:0:8: ++%8lo:+040000010221:1:8:131072: ++%*8lo:+040000010221:0:8: ++%15lo::0:-1: ++%*15lo::0:-1: ++%15lo:-173:1:4:4294967173: ++%*15lo:-173:0:4: ++%15lo:-0173:1:5:4294967173: ++%*15lo:-0173:0:5: ++%15lo:-1:1:2:4294967295: ++%*15lo:-1:0:2: ++%15lo:-01:1:3:4294967295: ++%*15lo:-01:0:3: ++%15lo:-0:1:2:0: ++%*15lo:-0:0:2: ++%15lo:-00:1:3:0: ++%*15lo:-00:0:3: ++%15lo:0:1:1:0: ++%*15lo:0:0:1: ++%15lo:00:1:2:0: ++%*15lo:00:0:2: ++%15lo:1:1:1:1: ++%*15lo:1:0:1: ++%15lo:01:1:2:1: ++%*15lo:01:0:2: ++%15lo:52:1:2:42: ++%*15lo:52:0:2: ++%15lo:052:1:3:42: ++%*15lo:052:0:3: ++%15lo:37777777777:1:11:4294967295: ++%*15lo:37777777777:0:11: ++%15lo:037777777777:1:12:4294967295: ++%*15lo:037777777777:0:12: ++%15lo:40000000000:1:11:4294967295: ++%*15lo:40000000000:0:11: ++%15lo:040000000000:1:12:4294967295: ++%*15lo:040000000000:0:12: ++%15lo:40000010221:1:11:4294967295: ++%*15lo:40000010221:0:11: ++%15lo:040000010221:1:12:4294967295: ++%*15lo:040000010221:0:12: ++%15lo:+0:1:2:0: ++%*15lo:+0:0:2: ++%15lo:+00:1:3:0: ++%*15lo:+00:0:3: ++%15lo:+1:1:2:1: ++%*15lo:+1:0:2: ++%15lo:+01:1:3:1: ++%*15lo:+01:0:3: ++%15lo:+52:1:3:42: ++%*15lo:+52:0:3: ++%15lo:+052:1:4:42: ++%*15lo:+052:0:4: ++%15lo:+37777777777:1:12:4294967295: ++%*15lo:+37777777777:0:12: ++%15lo:+037777777777:1:13:4294967295: ++%*15lo:+037777777777:0:13: ++%15lo:+40000000000:1:12:4294967295: ++%*15lo:+40000000000:0:12: ++%15lo:+040000000000:1:13:4294967295: ++%*15lo:+040000000000:0:13: ++%15lo:+40000010221:1:12:4294967295: ++%*15lo:+40000010221:0:12: ++%15lo:+040000010221:1:13:4294967295: ++%*15lo:+040000010221:0:13: ++%2lo: :0:-1: ++%*2lo: :0:-1: ++%2lo: -173:1:3:4294967295: ++%*2lo: -173:0:3: ++%2lo: -0173:1:3:0: ++%*2lo: -0173:0:3: ++%2lo: -1:1:3:4294967295: ++%*2lo: -1:0:3: ++%2lo: -01:1:3:0: ++%*2lo: -01:0:3: ++%2lo: -0:1:3:0: ++%*2lo: -0:0:3: ++%2lo: -00:1:3:0: ++%*2lo: -00:0:3: ++%2lo: 0:1:2:0: ++%*2lo: 0:0:2: ++%2lo: 00:1:3:0: ++%*2lo: 00:0:3: ++%2lo: 1:1:2:1: ++%*2lo: 1:0:2: ++%2lo: 01:1:3:1: ++%*2lo: 01:0:3: ++%2lo: 52:1:3:42: ++%*2lo: 52:0:3: ++%2lo: 052:1:3:5: ++%*2lo: 052:0:3: ++%2lo: 37777777777:1:3:31: ++%*2lo: 37777777777:0:3: ++%2lo: 037777777777:1:3:3: ++%*2lo: 037777777777:0:3: ++%2lo: 40000000000:1:3:32: ++%*2lo: 40000000000:0:3: ++%2lo: 040000000000:1:3:4: ++%*2lo: 040000000000:0:3: ++%2lo: 40000010221:1:3:32: ++%*2lo: 40000010221:0:3: ++%2lo: 040000010221:1:3:4: ++%*2lo: 040000010221:0:3: ++%2lo: +0:1:3:0: ++%*2lo: +0:0:3: ++%2lo: +00:1:3:0: ++%*2lo: +00:0:3: ++%2lo: +1:1:3:1: ++%*2lo: +1:0:3: ++%2lo: +01:1:3:0: ++%*2lo: +01:0:3: ++%2lo: +52:1:3:5: ++%*2lo: +52:0:3: ++%2lo: +052:1:3:0: ++%*2lo: +052:0:3: ++%2lo: +37777777777:1:3:3: ++%*2lo: +37777777777:0:3: ++%2lo: +037777777777:1:3:0: ++%*2lo: +037777777777:0:3: ++%2lo: +40000000000:1:3:4: ++%*2lo: +40000000000:0:3: ++%2lo: +040000000000:1:3:0: ++%*2lo: +040000000000:0:3: ++%2lo: +40000010221:1:3:4: ++%*2lo: +40000010221:0:3: ++%2lo: +040000010221:1:3:0: ++%*2lo: +040000010221:0:3: ++%15lo: :0:-1: ++%*15lo: :0:-1: ++%15lo: -173:1:5:4294967173: ++%*15lo: -173:0:5: ++%15lo: -0173:1:6:4294967173: ++%*15lo: -0173:0:6: ++%15lo: -1:1:3:4294967295: ++%*15lo: -1:0:3: ++%15lo: -01:1:4:4294967295: ++%*15lo: -01:0:4: ++%15lo: -0:1:3:0: ++%*15lo: -0:0:3: ++%15lo: -00:1:4:0: ++%*15lo: -00:0:4: ++%15lo: 0:1:2:0: ++%*15lo: 0:0:2: ++%15lo: 00:1:3:0: ++%*15lo: 00:0:3: ++%15lo: 1:1:2:1: ++%*15lo: 1:0:2: ++%15lo: 01:1:3:1: ++%*15lo: 01:0:3: ++%15lo: 52:1:3:42: ++%*15lo: 52:0:3: ++%15lo: 052:1:4:42: ++%*15lo: 052:0:4: ++%15lo: 37777777777:1:12:4294967295: ++%*15lo: 37777777777:0:12: ++%15lo: 037777777777:1:13:4294967295: ++%*15lo: 037777777777:0:13: ++%15lo: 40000000000:1:12:4294967295: ++%*15lo: 40000000000:0:12: ++%15lo: 040000000000:1:13:4294967295: ++%*15lo: 040000000000:0:13: ++%15lo: 40000010221:1:12:4294967295: ++%*15lo: 40000010221:0:12: ++%15lo: 040000010221:1:13:4294967295: ++%*15lo: 040000010221:0:13: ++%15lo: +0:1:3:0: ++%*15lo: +0:0:3: ++%15lo: +00:1:4:0: ++%*15lo: +00:0:4: ++%15lo: +1:1:3:1: ++%*15lo: +1:0:3: ++%15lo: +01:1:4:1: ++%*15lo: +01:0:4: ++%15lo: +52:1:4:42: ++%*15lo: +52:0:4: ++%15lo: +052:1:5:42: ++%*15lo: +052:0:5: ++%15lo: +37777777777:1:13:4294967295: ++%*15lo: +37777777777:0:13: ++%15lo: +037777777777:1:14:4294967295: ++%*15lo: +037777777777:0:14: ++%15lo: +40000000000:1:13:4294967295: ++%*15lo: +40000000000:0:13: ++%15lo: +040000000000:1:14:4294967295: ++%*15lo: +040000000000:0:14: ++%15lo: +40000010221:1:13:4294967295: ++%*15lo: +40000010221:0:13: ++%15lo: +040000010221:1:14:4294967295: ++%*15lo: +040000010221:0:14: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-u.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-u.input +new file mode 100644 +index 0000000000000000..5895e3d0fd44af15 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-u.input +@@ -0,0 +1,224 @@ ++%lu::0:-1: ++%*lu::0:-1: ++%lu:-123:1:4:4294967173: ++%*lu:-123:0:4: ++%lu:-1:1:2:4294967295: ++%*lu:-1:0:2: ++%lu:-0:1:2:0: ++%*lu:-0:0:2: ++%lu:0:1:1:0: ++%*lu:0:0:1: ++%lu:1:1:1:1: ++%*lu:1:0:1: ++%lu:42:1:2:42: ++%*lu:42:0:2: ++%lu:4294967295:1:10:4294967295: ++%*lu:4294967295:0:10: ++%lu:4294967296:1:10:4294967295: ++%*lu:4294967296:0:10: ++%lu:4294971537:1:10:4294967295: ++%*lu:4294971537:0:10: ++%lu:+0:1:2:0: ++%*lu:+0:0:2: ++%lu:+1:1:2:1: ++%*lu:+1:0:2: ++%lu:+42:1:3:42: ++%*lu:+42:0:3: ++%lu:+4294967295:1:11:4294967295: ++%*lu:+4294967295:0:11: ++%lu:+4294967296:1:11:4294967295: ++%*lu:+4294967296:0:11: ++%lu:+4294971537:1:11:4294967295: ++%*lu:+4294971537:0:11: ++%1lu::0:-1: ++%*1lu::0:-1: ++%1lu:-123:0:-1: ++%*1lu:-123:0:-1: ++%1lu:-1:0:-1: ++%*1lu:-1:0:-1: ++%1lu:-0:0:-1: ++%*1lu:-0:0:-1: ++%1lu:0:1:1:0: ++%*1lu:0:0:1: ++%1lu:1:1:1:1: ++%*1lu:1:0:1: ++%1lu:42:1:1:4: ++%*1lu:42:0:1: ++%1lu:4294967295:1:1:4: ++%*1lu:4294967295:0:1: ++%1lu:4294967296:1:1:4: ++%*1lu:4294967296:0:1: ++%1lu:4294971537:1:1:4: ++%*1lu:4294971537:0:1: ++%1lu:+0:0:-1: ++%*1lu:+0:0:-1: ++%1lu:+1:0:-1: ++%*1lu:+1:0:-1: ++%1lu:+42:0:-1: ++%*1lu:+42:0:-1: ++%1lu:+4294967295:0:-1: ++%*1lu:+4294967295:0:-1: ++%1lu:+4294967296:0:-1: ++%*1lu:+4294967296:0:-1: ++%1lu:+4294971537:0:-1: ++%*1lu:+4294971537:0:-1: ++%2lu::0:-1: ++%*2lu::0:-1: ++%2lu:-123:1:2:4294967295: ++%*2lu:-123:0:2: ++%2lu:-1:1:2:4294967295: ++%*2lu:-1:0:2: ++%2lu:-0:1:2:0: ++%*2lu:-0:0:2: ++%2lu:0:1:1:0: ++%*2lu:0:0:1: ++%2lu:1:1:1:1: ++%*2lu:1:0:1: ++%2lu:42:1:2:42: ++%*2lu:42:0:2: ++%2lu:4294967295:1:2:42: ++%*2lu:4294967295:0:2: ++%2lu:4294967296:1:2:42: ++%*2lu:4294967296:0:2: ++%2lu:4294971537:1:2:42: ++%*2lu:4294971537:0:2: ++%2lu:+0:1:2:0: ++%*2lu:+0:0:2: ++%2lu:+1:1:2:1: ++%*2lu:+1:0:2: ++%2lu:+42:1:2:4: ++%*2lu:+42:0:2: ++%2lu:+4294967295:1:2:4: ++%*2lu:+4294967295:0:2: ++%2lu:+4294967296:1:2:4: ++%*2lu:+4294967296:0:2: ++%2lu:+4294971537:1:2:4: ++%*2lu:+4294971537:0:2: ++%8lu::0:-1: ++%*8lu::0:-1: ++%8lu:-123:1:4:4294967173: ++%*8lu:-123:0:4: ++%8lu:-1:1:2:4294967295: ++%*8lu:-1:0:2: ++%8lu:-0:1:2:0: ++%*8lu:-0:0:2: ++%8lu:0:1:1:0: ++%*8lu:0:0:1: ++%8lu:1:1:1:1: ++%*8lu:1:0:1: ++%8lu:42:1:2:42: ++%*8lu:42:0:2: ++%8lu:4294967295:1:8:42949672: ++%*8lu:4294967295:0:8: ++%8lu:4294967296:1:8:42949672: ++%*8lu:4294967296:0:8: ++%8lu:4294971537:1:8:42949715: ++%*8lu:4294971537:0:8: ++%8lu:+0:1:2:0: ++%*8lu:+0:0:2: ++%8lu:+1:1:2:1: ++%*8lu:+1:0:2: ++%8lu:+42:1:3:42: ++%*8lu:+42:0:3: ++%8lu:+4294967295:1:8:4294967: ++%*8lu:+4294967295:0:8: ++%8lu:+4294967296:1:8:4294967: ++%*8lu:+4294967296:0:8: ++%8lu:+4294971537:1:8:4294971: ++%*8lu:+4294971537:0:8: ++%15lu::0:-1: ++%*15lu::0:-1: ++%15lu:-123:1:4:4294967173: ++%*15lu:-123:0:4: ++%15lu:-1:1:2:4294967295: ++%*15lu:-1:0:2: ++%15lu:-0:1:2:0: ++%*15lu:-0:0:2: ++%15lu:0:1:1:0: ++%*15lu:0:0:1: ++%15lu:1:1:1:1: ++%*15lu:1:0:1: ++%15lu:42:1:2:42: ++%*15lu:42:0:2: ++%15lu:4294967295:1:10:4294967295: ++%*15lu:4294967295:0:10: ++%15lu:4294967296:1:10:4294967295: ++%*15lu:4294967296:0:10: ++%15lu:4294971537:1:10:4294967295: ++%*15lu:4294971537:0:10: ++%15lu:+0:1:2:0: ++%*15lu:+0:0:2: ++%15lu:+1:1:2:1: ++%*15lu:+1:0:2: ++%15lu:+42:1:3:42: ++%*15lu:+42:0:3: ++%15lu:+4294967295:1:11:4294967295: ++%*15lu:+4294967295:0:11: ++%15lu:+4294967296:1:11:4294967295: ++%*15lu:+4294967296:0:11: ++%15lu:+4294971537:1:11:4294967295: ++%*15lu:+4294971537:0:11: ++%2lu: :0:-1: ++%*2lu: :0:-1: ++%2lu: -123:1:3:4294967295: ++%*2lu: -123:0:3: ++%2lu: -1:1:3:4294967295: ++%*2lu: -1:0:3: ++%2lu: -0:1:3:0: ++%*2lu: -0:0:3: ++%2lu: 0:1:2:0: ++%*2lu: 0:0:2: ++%2lu: 1:1:2:1: ++%*2lu: 1:0:2: ++%2lu: 42:1:3:42: ++%*2lu: 42:0:3: ++%2lu: 4294967295:1:3:42: ++%*2lu: 4294967295:0:3: ++%2lu: 4294967296:1:3:42: ++%*2lu: 4294967296:0:3: ++%2lu: 4294971537:1:3:42: ++%*2lu: 4294971537:0:3: ++%2lu: +0:1:3:0: ++%*2lu: +0:0:3: ++%2lu: +1:1:3:1: ++%*2lu: +1:0:3: ++%2lu: +42:1:3:4: ++%*2lu: +42:0:3: ++%2lu: +4294967295:1:3:4: ++%*2lu: +4294967295:0:3: ++%2lu: +4294967296:1:3:4: ++%*2lu: +4294967296:0:3: ++%2lu: +4294971537:1:3:4: ++%*2lu: +4294971537:0:3: ++%15lu: :0:-1: ++%*15lu: :0:-1: ++%15lu: -123:1:5:4294967173: ++%*15lu: -123:0:5: ++%15lu: -1:1:3:4294967295: ++%*15lu: -1:0:3: ++%15lu: -0:1:3:0: ++%*15lu: -0:0:3: ++%15lu: 0:1:2:0: ++%*15lu: 0:0:2: ++%15lu: 1:1:2:1: ++%*15lu: 1:0:2: ++%15lu: 42:1:3:42: ++%*15lu: 42:0:3: ++%15lu: 4294967295:1:11:4294967295: ++%*15lu: 4294967295:0:11: ++%15lu: 4294967296:1:11:4294967295: ++%*15lu: 4294967296:0:11: ++%15lu: 4294971537:1:11:4294967295: ++%*15lu: 4294971537:0:11: ++%15lu: +0:1:3:0: ++%*15lu: +0:0:3: ++%15lu: +1:1:3:1: ++%*15lu: +1:0:3: ++%15lu: +42:1:4:42: ++%*15lu: +42:0:4: ++%15lu: +4294967295:1:12:4294967295: ++%*15lu: +4294967295:0:12: ++%15lu: +4294967296:1:12:4294967295: ++%*15lu: +4294967296:0:12: ++%15lu: +4294971537:1:12:4294967295: ++%*15lu: +4294971537:0:12: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-x.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-x.input +new file mode 100644 +index 0000000000000000..28ae944ad5c9ce26 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-x.input +@@ -0,0 +1,714 @@ ++%lx::0:-1: ++%*lx::0:-1: ++%lx:-7b:1:3:4294967173: ++%*lx:-7b:0:3: ++%lx:-7B:1:3:4294967173: ++%*lx:-7B:0:3: ++%lx:-0X7b:1:5:4294967173: ++%*lx:-0X7b:0:5: ++%lx:-0x7B:1:5:4294967173: ++%*lx:-0x7B:0:5: ++%lx:-1:1:2:4294967295: ++%*lx:-1:0:2: ++%lx:-0X1:1:4:4294967295: ++%*lx:-0X1:0:4: ++%lx:-0x1:1:4:4294967295: ++%*lx:-0x1:0:4: ++%lx:-0:1:2:0: ++%*lx:-0:0:2: ++%lx:-0X0:1:4:0: ++%*lx:-0X0:0:4: ++%lx:-0x0:1:4:0: ++%*lx:-0x0:0:4: ++%lx:0:1:1:0: ++%*lx:0:0:1: ++%lx:0X0:1:3:0: ++%*lx:0X0:0:3: ++%lx:0x0:1:3:0: ++%*lx:0x0:0:3: ++%lx:1:1:1:1: ++%*lx:1:0:1: ++%lx:0X1:1:3:1: ++%*lx:0X1:0:3: ++%lx:0x1:1:3:1: ++%*lx:0x1:0:3: ++%lx:2a:1:2:42: ++%*lx:2a:0:2: ++%lx:2A:1:2:42: ++%*lx:2A:0:2: ++%lx:0X2a:1:4:42: ++%*lx:0X2a:0:4: ++%lx:0x2A:1:4:42: ++%*lx:0x2A:0:4: ++%lx:ffffffff:1:8:4294967295: ++%*lx:ffffffff:0:8: ++%lx:FFFFFFFF:1:8:4294967295: ++%*lx:FFFFFFFF:0:8: ++%lx:0Xffffffff:1:10:4294967295: ++%*lx:0Xffffffff:0:10: ++%lx:0xFFFFFFFF:1:10:4294967295: ++%*lx:0xFFFFFFFF:0:10: ++%lx:100000000:1:9:4294967295: ++%*lx:100000000:0:9: ++%lx:0X100000000:1:11:4294967295: ++%*lx:0X100000000:0:11: ++%lx:0x100000000:1:11:4294967295: ++%*lx:0x100000000:0:11: ++%lx:100001091:1:9:4294967295: ++%*lx:100001091:0:9: ++%lx:0X100001091:1:11:4294967295: ++%*lx:0X100001091:0:11: ++%lx:0x100001091:1:11:4294967295: ++%*lx:0x100001091:0:11: ++%lx:+0:1:2:0: ++%*lx:+0:0:2: ++%lx:+0X0:1:4:0: ++%*lx:+0X0:0:4: ++%lx:+0x0:1:4:0: ++%*lx:+0x0:0:4: ++%lx:+1:1:2:1: ++%*lx:+1:0:2: ++%lx:+0X1:1:4:1: ++%*lx:+0X1:0:4: ++%lx:+0x1:1:4:1: ++%*lx:+0x1:0:4: ++%lx:+2a:1:3:42: ++%*lx:+2a:0:3: ++%lx:+2A:1:3:42: ++%*lx:+2A:0:3: ++%lx:+0X2a:1:5:42: ++%*lx:+0X2a:0:5: ++%lx:+0x2A:1:5:42: ++%*lx:+0x2A:0:5: ++%lx:+ffffffff:1:9:4294967295: ++%*lx:+ffffffff:0:9: ++%lx:+FFFFFFFF:1:9:4294967295: ++%*lx:+FFFFFFFF:0:9: ++%lx:+0Xffffffff:1:11:4294967295: ++%*lx:+0Xffffffff:0:11: ++%lx:+0xFFFFFFFF:1:11:4294967295: ++%*lx:+0xFFFFFFFF:0:11: ++%lx:+100000000:1:10:4294967295: ++%*lx:+100000000:0:10: ++%lx:+0X100000000:1:12:4294967295: ++%*lx:+0X100000000:0:12: ++%lx:+0x100000000:1:12:4294967295: ++%*lx:+0x100000000:0:12: ++%lx:+100001091:1:10:4294967295: ++%*lx:+100001091:0:10: ++%lx:+0X100001091:1:12:4294967295: ++%*lx:+0X100001091:0:12: ++%lx:+0x100001091:1:12:4294967295: ++%*lx:+0x100001091:0:12: ++%1lx::0:-1: ++%*1lx::0:-1: ++%1lx:-7b:0:-1: ++%*1lx:-7b:0:-1: ++%1lx:-7B:0:-1: ++%*1lx:-7B:0:-1: ++%1lx:-0X7b:0:-1: ++%*1lx:-0X7b:0:-1: ++%1lx:-0x7B:0:-1: ++%*1lx:-0x7B:0:-1: ++%1lx:-1:0:-1: ++%*1lx:-1:0:-1: ++%1lx:-0X1:0:-1: ++%*1lx:-0X1:0:-1: ++%1lx:-0x1:0:-1: ++%*1lx:-0x1:0:-1: ++%1lx:-0:0:-1: ++%*1lx:-0:0:-1: ++%1lx:-0X0:0:-1: ++%*1lx:-0X0:0:-1: ++%1lx:-0x0:0:-1: ++%*1lx:-0x0:0:-1: ++%1lx:0:1:1:0: ++%*1lx:0:0:1: ++%1lx:0X0:1:1:0: ++%*1lx:0X0:0:1: ++%1lx:0x0:1:1:0: ++%*1lx:0x0:0:1: ++%1lx:1:1:1:1: ++%*1lx:1:0:1: ++%1lx:0X1:1:1:0: ++%*1lx:0X1:0:1: ++%1lx:0x1:1:1:0: ++%*1lx:0x1:0:1: ++%1lx:2a:1:1:2: ++%*1lx:2a:0:1: ++%1lx:2A:1:1:2: ++%*1lx:2A:0:1: ++%1lx:0X2a:1:1:0: ++%*1lx:0X2a:0:1: ++%1lx:0x2A:1:1:0: ++%*1lx:0x2A:0:1: ++%1lx:ffffffff:1:1:15: ++%*1lx:ffffffff:0:1: ++%1lx:FFFFFFFF:1:1:15: ++%*1lx:FFFFFFFF:0:1: ++%1lx:0Xffffffff:1:1:0: ++%*1lx:0Xffffffff:0:1: ++%1lx:0xFFFFFFFF:1:1:0: ++%*1lx:0xFFFFFFFF:0:1: ++%1lx:100000000:1:1:1: ++%*1lx:100000000:0:1: ++%1lx:0X100000000:1:1:0: ++%*1lx:0X100000000:0:1: ++%1lx:0x100000000:1:1:0: ++%*1lx:0x100000000:0:1: ++%1lx:100001091:1:1:1: ++%*1lx:100001091:0:1: ++%1lx:0X100001091:1:1:0: ++%*1lx:0X100001091:0:1: ++%1lx:0x100001091:1:1:0: ++%*1lx:0x100001091:0:1: ++%1lx:+0:0:-1: ++%*1lx:+0:0:-1: ++%1lx:+0X0:0:-1: ++%*1lx:+0X0:0:-1: ++%1lx:+0x0:0:-1: ++%*1lx:+0x0:0:-1: ++%1lx:+1:0:-1: ++%*1lx:+1:0:-1: ++%1lx:+0X1:0:-1: ++%*1lx:+0X1:0:-1: ++%1lx:+0x1:0:-1: ++%*1lx:+0x1:0:-1: ++%1lx:+2a:0:-1: ++%*1lx:+2a:0:-1: ++%1lx:+2A:0:-1: ++%*1lx:+2A:0:-1: ++%1lx:+0X2a:0:-1: ++%*1lx:+0X2a:0:-1: ++%1lx:+0x2A:0:-1: ++%*1lx:+0x2A:0:-1: ++%1lx:+ffffffff:0:-1: ++%*1lx:+ffffffff:0:-1: ++%1lx:+FFFFFFFF:0:-1: ++%*1lx:+FFFFFFFF:0:-1: ++%1lx:+0Xffffffff:0:-1: ++%*1lx:+0Xffffffff:0:-1: ++%1lx:+0xFFFFFFFF:0:-1: ++%*1lx:+0xFFFFFFFF:0:-1: ++%1lx:+100000000:0:-1: ++%*1lx:+100000000:0:-1: ++%1lx:+0X100000000:0:-1: ++%*1lx:+0X100000000:0:-1: ++%1lx:+0x100000000:0:-1: ++%*1lx:+0x100000000:0:-1: ++%1lx:+100001091:0:-1: ++%*1lx:+100001091:0:-1: ++%1lx:+0X100001091:0:-1: ++%*1lx:+0X100001091:0:-1: ++%1lx:+0x100001091:0:-1: ++%*1lx:+0x100001091:0:-1: ++%2lx::0:-1: ++%*2lx::0:-1: ++%2lx:-7b:1:2:4294967289: ++%*2lx:-7b:0:2: ++%2lx:-7B:1:2:4294967289: ++%*2lx:-7B:0:2: ++%2lx:-0X7b:1:2:0: ++%*2lx:-0X7b:0:2: ++%2lx:-0x7B:1:2:0: ++%*2lx:-0x7B:0:2: ++%2lx:-1:1:2:4294967295: ++%*2lx:-1:0:2: ++%2lx:-0X1:1:2:0: ++%*2lx:-0X1:0:2: ++%2lx:-0x1:1:2:0: ++%*2lx:-0x1:0:2: ++%2lx:-0:1:2:0: ++%*2lx:-0:0:2: ++%2lx:-0X0:1:2:0: ++%*2lx:-0X0:0:2: ++%2lx:-0x0:1:2:0: ++%*2lx:-0x0:0:2: ++%2lx:0:1:1:0: ++%*2lx:0:0:1: ++# BZ12701 %2lx:0X0:0:-1: ++# BZ12701 %*2lx:0X0:0:-1: ++# BZ12701 %2lx:0x0:0:-1: ++# BZ12701 %*2lx:0x0:0:-1: ++%2lx:1:1:1:1: ++%*2lx:1:0:1: ++# BZ12701 %2lx:0X1:0:-1: ++# BZ12701 %*2lx:0X1:0:-1: ++# BZ12701 %2lx:0x1:0:-1: ++# BZ12701 %*2lx:0x1:0:-1: ++%2lx:2a:1:2:42: ++%*2lx:2a:0:2: ++%2lx:2A:1:2:42: ++%*2lx:2A:0:2: ++# BZ12701 %2lx:0X2a:0:-1: ++# BZ12701 %*2lx:0X2a:0:-1: ++# BZ12701 %2lx:0x2A:0:-1: ++# BZ12701 %*2lx:0x2A:0:-1: ++%2lx:ffffffff:1:2:255: ++%*2lx:ffffffff:0:2: ++%2lx:FFFFFFFF:1:2:255: ++%*2lx:FFFFFFFF:0:2: ++# BZ12701 %2lx:0Xffffffff:0:-1: ++# BZ12701 %*2lx:0Xffffffff:0:-1: ++# BZ12701 %2lx:0xFFFFFFFF:0:-1: ++# BZ12701 %*2lx:0xFFFFFFFF:0:-1: ++%2lx:100000000:1:2:16: ++%*2lx:100000000:0:2: ++# BZ12701 %2lx:0X100000000:0:-1: ++# BZ12701 %*2lx:0X100000000:0:-1: ++# BZ12701 %2lx:0x100000000:0:-1: ++# BZ12701 %*2lx:0x100000000:0:-1: ++%2lx:100001091:1:2:16: ++%*2lx:100001091:0:2: ++# BZ12701 %2lx:0X100001091:0:-1: ++# BZ12701 %*2lx:0X100001091:0:-1: ++# BZ12701 %2lx:0x100001091:0:-1: ++# BZ12701 %*2lx:0x100001091:0:-1: ++%2lx:+0:1:2:0: ++%*2lx:+0:0:2: ++%2lx:+0X0:1:2:0: ++%*2lx:+0X0:0:2: ++%2lx:+0x0:1:2:0: ++%*2lx:+0x0:0:2: ++%2lx:+1:1:2:1: ++%*2lx:+1:0:2: ++%2lx:+0X1:1:2:0: ++%*2lx:+0X1:0:2: ++%2lx:+0x1:1:2:0: ++%*2lx:+0x1:0:2: ++%2lx:+2a:1:2:2: ++%*2lx:+2a:0:2: ++%2lx:+2A:1:2:2: ++%*2lx:+2A:0:2: ++%2lx:+0X2a:1:2:0: ++%*2lx:+0X2a:0:2: ++%2lx:+0x2A:1:2:0: ++%*2lx:+0x2A:0:2: ++%2lx:+ffffffff:1:2:15: ++%*2lx:+ffffffff:0:2: ++%2lx:+FFFFFFFF:1:2:15: ++%*2lx:+FFFFFFFF:0:2: ++%2lx:+0Xffffffff:1:2:0: ++%*2lx:+0Xffffffff:0:2: ++%2lx:+0xFFFFFFFF:1:2:0: ++%*2lx:+0xFFFFFFFF:0:2: ++%2lx:+100000000:1:2:1: ++%*2lx:+100000000:0:2: ++%2lx:+0X100000000:1:2:0: ++%*2lx:+0X100000000:0:2: ++%2lx:+0x100000000:1:2:0: ++%*2lx:+0x100000000:0:2: ++%2lx:+100001091:1:2:1: ++%*2lx:+100001091:0:2: ++%2lx:+0X100001091:1:2:0: ++%*2lx:+0X100001091:0:2: ++%2lx:+0x100001091:1:2:0: ++%*2lx:+0x100001091:0:2: ++%8lx::0:-1: ++%*8lx::0:-1: ++%8lx:-7b:1:3:4294967173: ++%*8lx:-7b:0:3: ++%8lx:-7B:1:3:4294967173: ++%*8lx:-7B:0:3: ++%8lx:-0X7b:1:5:4294967173: ++%*8lx:-0X7b:0:5: ++%8lx:-0x7B:1:5:4294967173: ++%*8lx:-0x7B:0:5: ++%8lx:-1:1:2:4294967295: ++%*8lx:-1:0:2: ++%8lx:-0X1:1:4:4294967295: ++%*8lx:-0X1:0:4: ++%8lx:-0x1:1:4:4294967295: ++%*8lx:-0x1:0:4: ++%8lx:-0:1:2:0: ++%*8lx:-0:0:2: ++%8lx:-0X0:1:4:0: ++%*8lx:-0X0:0:4: ++%8lx:-0x0:1:4:0: ++%*8lx:-0x0:0:4: ++%8lx:0:1:1:0: ++%*8lx:0:0:1: ++%8lx:0X0:1:3:0: ++%*8lx:0X0:0:3: ++%8lx:0x0:1:3:0: ++%*8lx:0x0:0:3: ++%8lx:1:1:1:1: ++%*8lx:1:0:1: ++%8lx:0X1:1:3:1: ++%*8lx:0X1:0:3: ++%8lx:0x1:1:3:1: ++%*8lx:0x1:0:3: ++%8lx:2a:1:2:42: ++%*8lx:2a:0:2: ++%8lx:2A:1:2:42: ++%*8lx:2A:0:2: ++%8lx:0X2a:1:4:42: ++%*8lx:0X2a:0:4: ++%8lx:0x2A:1:4:42: ++%*8lx:0x2A:0:4: ++%8lx:ffffffff:1:8:4294967295: ++%*8lx:ffffffff:0:8: ++%8lx:FFFFFFFF:1:8:4294967295: ++%*8lx:FFFFFFFF:0:8: ++%8lx:0Xffffffff:1:8:16777215: ++%*8lx:0Xffffffff:0:8: ++%8lx:0xFFFFFFFF:1:8:16777215: ++%*8lx:0xFFFFFFFF:0:8: ++%8lx:100000000:1:8:268435456: ++%*8lx:100000000:0:8: ++%8lx:0X100000000:1:8:1048576: ++%*8lx:0X100000000:0:8: ++%8lx:0x100000000:1:8:1048576: ++%*8lx:0x100000000:0:8: ++%8lx:100001091:1:8:268435721: ++%*8lx:100001091:0:8: ++%8lx:0X100001091:1:8:1048577: ++%*8lx:0X100001091:0:8: ++%8lx:0x100001091:1:8:1048577: ++%*8lx:0x100001091:0:8: ++%8lx:+0:1:2:0: ++%*8lx:+0:0:2: ++%8lx:+0X0:1:4:0: ++%*8lx:+0X0:0:4: ++%8lx:+0x0:1:4:0: ++%*8lx:+0x0:0:4: ++%8lx:+1:1:2:1: ++%*8lx:+1:0:2: ++%8lx:+0X1:1:4:1: ++%*8lx:+0X1:0:4: ++%8lx:+0x1:1:4:1: ++%*8lx:+0x1:0:4: ++%8lx:+2a:1:3:42: ++%*8lx:+2a:0:3: ++%8lx:+2A:1:3:42: ++%*8lx:+2A:0:3: ++%8lx:+0X2a:1:5:42: ++%*8lx:+0X2a:0:5: ++%8lx:+0x2A:1:5:42: ++%*8lx:+0x2A:0:5: ++%8lx:+ffffffff:1:8:268435455: ++%*8lx:+ffffffff:0:8: ++%8lx:+FFFFFFFF:1:8:268435455: ++%*8lx:+FFFFFFFF:0:8: ++%8lx:+0Xffffffff:1:8:1048575: ++%*8lx:+0Xffffffff:0:8: ++%8lx:+0xFFFFFFFF:1:8:1048575: ++%*8lx:+0xFFFFFFFF:0:8: ++%8lx:+100000000:1:8:16777216: ++%*8lx:+100000000:0:8: ++%8lx:+0X100000000:1:8:65536: ++%*8lx:+0X100000000:0:8: ++%8lx:+0x100000000:1:8:65536: ++%*8lx:+0x100000000:0:8: ++%8lx:+100001091:1:8:16777232: ++%*8lx:+100001091:0:8: ++%8lx:+0X100001091:1:8:65536: ++%*8lx:+0X100001091:0:8: ++%8lx:+0x100001091:1:8:65536: ++%*8lx:+0x100001091:0:8: ++%15lx::0:-1: ++%*15lx::0:-1: ++%15lx:-7b:1:3:4294967173: ++%*15lx:-7b:0:3: ++%15lx:-7B:1:3:4294967173: ++%*15lx:-7B:0:3: ++%15lx:-0X7b:1:5:4294967173: ++%*15lx:-0X7b:0:5: ++%15lx:-0x7B:1:5:4294967173: ++%*15lx:-0x7B:0:5: ++%15lx:-1:1:2:4294967295: ++%*15lx:-1:0:2: ++%15lx:-0X1:1:4:4294967295: ++%*15lx:-0X1:0:4: ++%15lx:-0x1:1:4:4294967295: ++%*15lx:-0x1:0:4: ++%15lx:-0:1:2:0: ++%*15lx:-0:0:2: ++%15lx:-0X0:1:4:0: ++%*15lx:-0X0:0:4: ++%15lx:-0x0:1:4:0: ++%*15lx:-0x0:0:4: ++%15lx:0:1:1:0: ++%*15lx:0:0:1: ++%15lx:0X0:1:3:0: ++%*15lx:0X0:0:3: ++%15lx:0x0:1:3:0: ++%*15lx:0x0:0:3: ++%15lx:1:1:1:1: ++%*15lx:1:0:1: ++%15lx:0X1:1:3:1: ++%*15lx:0X1:0:3: ++%15lx:0x1:1:3:1: ++%*15lx:0x1:0:3: ++%15lx:2a:1:2:42: ++%*15lx:2a:0:2: ++%15lx:2A:1:2:42: ++%*15lx:2A:0:2: ++%15lx:0X2a:1:4:42: ++%*15lx:0X2a:0:4: ++%15lx:0x2A:1:4:42: ++%*15lx:0x2A:0:4: ++%15lx:ffffffff:1:8:4294967295: ++%*15lx:ffffffff:0:8: ++%15lx:FFFFFFFF:1:8:4294967295: ++%*15lx:FFFFFFFF:0:8: ++%15lx:0Xffffffff:1:10:4294967295: ++%*15lx:0Xffffffff:0:10: ++%15lx:0xFFFFFFFF:1:10:4294967295: ++%*15lx:0xFFFFFFFF:0:10: ++%15lx:100000000:1:9:4294967295: ++%*15lx:100000000:0:9: ++%15lx:0X100000000:1:11:4294967295: ++%*15lx:0X100000000:0:11: ++%15lx:0x100000000:1:11:4294967295: ++%*15lx:0x100000000:0:11: ++%15lx:100001091:1:9:4294967295: ++%*15lx:100001091:0:9: ++%15lx:0X100001091:1:11:4294967295: ++%*15lx:0X100001091:0:11: ++%15lx:0x100001091:1:11:4294967295: ++%*15lx:0x100001091:0:11: ++%15lx:+0:1:2:0: ++%*15lx:+0:0:2: ++%15lx:+0X0:1:4:0: ++%*15lx:+0X0:0:4: ++%15lx:+0x0:1:4:0: ++%*15lx:+0x0:0:4: ++%15lx:+1:1:2:1: ++%*15lx:+1:0:2: ++%15lx:+0X1:1:4:1: ++%*15lx:+0X1:0:4: ++%15lx:+0x1:1:4:1: ++%*15lx:+0x1:0:4: ++%15lx:+2a:1:3:42: ++%*15lx:+2a:0:3: ++%15lx:+2A:1:3:42: ++%*15lx:+2A:0:3: ++%15lx:+0X2a:1:5:42: ++%*15lx:+0X2a:0:5: ++%15lx:+0x2A:1:5:42: ++%*15lx:+0x2A:0:5: ++%15lx:+ffffffff:1:9:4294967295: ++%*15lx:+ffffffff:0:9: ++%15lx:+FFFFFFFF:1:9:4294967295: ++%*15lx:+FFFFFFFF:0:9: ++%15lx:+0Xffffffff:1:11:4294967295: ++%*15lx:+0Xffffffff:0:11: ++%15lx:+0xFFFFFFFF:1:11:4294967295: ++%*15lx:+0xFFFFFFFF:0:11: ++%15lx:+100000000:1:10:4294967295: ++%*15lx:+100000000:0:10: ++%15lx:+0X100000000:1:12:4294967295: ++%*15lx:+0X100000000:0:12: ++%15lx:+0x100000000:1:12:4294967295: ++%*15lx:+0x100000000:0:12: ++%15lx:+100001091:1:10:4294967295: ++%*15lx:+100001091:0:10: ++%15lx:+0X100001091:1:12:4294967295: ++%*15lx:+0X100001091:0:12: ++%15lx:+0x100001091:1:12:4294967295: ++%*15lx:+0x100001091:0:12: ++%2lx: :0:-1: ++%*2lx: :0:-1: ++%2lx: -7b:1:3:4294967289: ++%*2lx: -7b:0:3: ++%2lx: -7B:1:3:4294967289: ++%*2lx: -7B:0:3: ++%2lx: -0X7b:1:3:0: ++%*2lx: -0X7b:0:3: ++%2lx: -0x7B:1:3:0: ++%*2lx: -0x7B:0:3: ++%2lx: -1:1:3:4294967295: ++%*2lx: -1:0:3: ++%2lx: -0X1:1:3:0: ++%*2lx: -0X1:0:3: ++%2lx: -0x1:1:3:0: ++%*2lx: -0x1:0:3: ++%2lx: -0:1:3:0: ++%*2lx: -0:0:3: ++%2lx: -0X0:1:3:0: ++%*2lx: -0X0:0:3: ++%2lx: -0x0:1:3:0: ++%*2lx: -0x0:0:3: ++%2lx: 0:1:2:0: ++%*2lx: 0:0:2: ++# BZ12701 %2lx: 0X0:0:-1: ++# BZ12701 %*2lx: 0X0:0:-1: ++# BZ12701 %2lx: 0x0:0:-1: ++# BZ12701 %*2lx: 0x0:0:-1: ++%2lx: 1:1:2:1: ++%*2lx: 1:0:2: ++# BZ12701 %2lx: 0X1:0:-1: ++# BZ12701 %*2lx: 0X1:0:-1: ++# BZ12701 %2lx: 0x1:0:-1: ++# BZ12701 %*2lx: 0x1:0:-1: ++%2lx: 2a:1:3:42: ++%*2lx: 2a:0:3: ++%2lx: 2A:1:3:42: ++%*2lx: 2A:0:3: ++# BZ12701 %2lx: 0X2a:0:-1: ++# BZ12701 %*2lx: 0X2a:0:-1: ++# BZ12701 %2lx: 0x2A:0:-1: ++# BZ12701 %*2lx: 0x2A:0:-1: ++%2lx: ffffffff:1:3:255: ++%*2lx: ffffffff:0:3: ++%2lx: FFFFFFFF:1:3:255: ++%*2lx: FFFFFFFF:0:3: ++# BZ12701 %2lx: 0Xffffffff:0:-1: ++# BZ12701 %*2lx: 0Xffffffff:0:-1: ++# BZ12701 %2lx: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2lx: 0xFFFFFFFF:0:-1: ++%2lx: 100000000:1:3:16: ++%*2lx: 100000000:0:3: ++# BZ12701 %2lx: 0X100000000:0:-1: ++# BZ12701 %*2lx: 0X100000000:0:-1: ++# BZ12701 %2lx: 0x100000000:0:-1: ++# BZ12701 %*2lx: 0x100000000:0:-1: ++%2lx: 100001091:1:3:16: ++%*2lx: 100001091:0:3: ++# BZ12701 %2lx: 0X100001091:0:-1: ++# BZ12701 %*2lx: 0X100001091:0:-1: ++# BZ12701 %2lx: 0x100001091:0:-1: ++# BZ12701 %*2lx: 0x100001091:0:-1: ++%2lx: +0:1:3:0: ++%*2lx: +0:0:3: ++%2lx: +0X0:1:3:0: ++%*2lx: +0X0:0:3: ++%2lx: +0x0:1:3:0: ++%*2lx: +0x0:0:3: ++%2lx: +1:1:3:1: ++%*2lx: +1:0:3: ++%2lx: +0X1:1:3:0: ++%*2lx: +0X1:0:3: ++%2lx: +0x1:1:3:0: ++%*2lx: +0x1:0:3: ++%2lx: +2a:1:3:2: ++%*2lx: +2a:0:3: ++%2lx: +2A:1:3:2: ++%*2lx: +2A:0:3: ++%2lx: +0X2a:1:3:0: ++%*2lx: +0X2a:0:3: ++%2lx: +0x2A:1:3:0: ++%*2lx: +0x2A:0:3: ++%2lx: +ffffffff:1:3:15: ++%*2lx: +ffffffff:0:3: ++%2lx: +FFFFFFFF:1:3:15: ++%*2lx: +FFFFFFFF:0:3: ++%2lx: +0Xffffffff:1:3:0: ++%*2lx: +0Xffffffff:0:3: ++%2lx: +0xFFFFFFFF:1:3:0: ++%*2lx: +0xFFFFFFFF:0:3: ++%2lx: +100000000:1:3:1: ++%*2lx: +100000000:0:3: ++%2lx: +0X100000000:1:3:0: ++%*2lx: +0X100000000:0:3: ++%2lx: +0x100000000:1:3:0: ++%*2lx: +0x100000000:0:3: ++%2lx: +100001091:1:3:1: ++%*2lx: +100001091:0:3: ++%2lx: +0X100001091:1:3:0: ++%*2lx: +0X100001091:0:3: ++%2lx: +0x100001091:1:3:0: ++%*2lx: +0x100001091:0:3: ++%15lx: :0:-1: ++%*15lx: :0:-1: ++%15lx: -7b:1:4:4294967173: ++%*15lx: -7b:0:4: ++%15lx: -7B:1:4:4294967173: ++%*15lx: -7B:0:4: ++%15lx: -0X7b:1:6:4294967173: ++%*15lx: -0X7b:0:6: ++%15lx: -0x7B:1:6:4294967173: ++%*15lx: -0x7B:0:6: ++%15lx: -1:1:3:4294967295: ++%*15lx: -1:0:3: ++%15lx: -0X1:1:5:4294967295: ++%*15lx: -0X1:0:5: ++%15lx: -0x1:1:5:4294967295: ++%*15lx: -0x1:0:5: ++%15lx: -0:1:3:0: ++%*15lx: -0:0:3: ++%15lx: -0X0:1:5:0: ++%*15lx: -0X0:0:5: ++%15lx: -0x0:1:5:0: ++%*15lx: -0x0:0:5: ++%15lx: 0:1:2:0: ++%*15lx: 0:0:2: ++%15lx: 0X0:1:4:0: ++%*15lx: 0X0:0:4: ++%15lx: 0x0:1:4:0: ++%*15lx: 0x0:0:4: ++%15lx: 1:1:2:1: ++%*15lx: 1:0:2: ++%15lx: 0X1:1:4:1: ++%*15lx: 0X1:0:4: ++%15lx: 0x1:1:4:1: ++%*15lx: 0x1:0:4: ++%15lx: 2a:1:3:42: ++%*15lx: 2a:0:3: ++%15lx: 2A:1:3:42: ++%*15lx: 2A:0:3: ++%15lx: 0X2a:1:5:42: ++%*15lx: 0X2a:0:5: ++%15lx: 0x2A:1:5:42: ++%*15lx: 0x2A:0:5: ++%15lx: ffffffff:1:9:4294967295: ++%*15lx: ffffffff:0:9: ++%15lx: FFFFFFFF:1:9:4294967295: ++%*15lx: FFFFFFFF:0:9: ++%15lx: 0Xffffffff:1:11:4294967295: ++%*15lx: 0Xffffffff:0:11: ++%15lx: 0xFFFFFFFF:1:11:4294967295: ++%*15lx: 0xFFFFFFFF:0:11: ++%15lx: 100000000:1:10:4294967295: ++%*15lx: 100000000:0:10: ++%15lx: 0X100000000:1:12:4294967295: ++%*15lx: 0X100000000:0:12: ++%15lx: 0x100000000:1:12:4294967295: ++%*15lx: 0x100000000:0:12: ++%15lx: 100001091:1:10:4294967295: ++%*15lx: 100001091:0:10: ++%15lx: 0X100001091:1:12:4294967295: ++%*15lx: 0X100001091:0:12: ++%15lx: 0x100001091:1:12:4294967295: ++%*15lx: 0x100001091:0:12: ++%15lx: +0:1:3:0: ++%*15lx: +0:0:3: ++%15lx: +0X0:1:5:0: ++%*15lx: +0X0:0:5: ++%15lx: +0x0:1:5:0: ++%*15lx: +0x0:0:5: ++%15lx: +1:1:3:1: ++%*15lx: +1:0:3: ++%15lx: +0X1:1:5:1: ++%*15lx: +0X1:0:5: ++%15lx: +0x1:1:5:1: ++%*15lx: +0x1:0:5: ++%15lx: +2a:1:4:42: ++%*15lx: +2a:0:4: ++%15lx: +2A:1:4:42: ++%*15lx: +2A:0:4: ++%15lx: +0X2a:1:6:42: ++%*15lx: +0X2a:0:6: ++%15lx: +0x2A:1:6:42: ++%*15lx: +0x2A:0:6: ++%15lx: +ffffffff:1:10:4294967295: ++%*15lx: +ffffffff:0:10: ++%15lx: +FFFFFFFF:1:10:4294967295: ++%*15lx: +FFFFFFFF:0:10: ++%15lx: +0Xffffffff:1:12:4294967295: ++%*15lx: +0Xffffffff:0:12: ++%15lx: +0xFFFFFFFF:1:12:4294967295: ++%*15lx: +0xFFFFFFFF:0:12: ++%15lx: +100000000:1:11:4294967295: ++%*15lx: +100000000:0:11: ++%15lx: +0X100000000:1:13:4294967295: ++%*15lx: +0X100000000:0:13: ++%15lx: +0x100000000:1:13:4294967295: ++%*15lx: +0x100000000:0:13: ++%15lx: +100001091:1:11:4294967295: ++%*15lx: +100001091:0:11: ++%15lx: +0X100001091:1:13:4294967295: ++%*15lx: +0X100001091:0:13: ++%15lx: +0x100001091:1:13:4294967295: ++%*15lx: +0x100001091:0:13: +diff --git a/sysdeps/wordsize-32/tst-scanf-format-ulong-xx.input b/sysdeps/wordsize-32/tst-scanf-format-ulong-xx.input +new file mode 100644 +index 0000000000000000..fc59225615205901 +--- /dev/null ++++ b/sysdeps/wordsize-32/tst-scanf-format-ulong-xx.input +@@ -0,0 +1,714 @@ ++%lX::0:-1: ++%*lX::0:-1: ++%lX:-7b:1:3:4294967173: ++%*lX:-7b:0:3: ++%lX:-7B:1:3:4294967173: ++%*lX:-7B:0:3: ++%lX:-0X7b:1:5:4294967173: ++%*lX:-0X7b:0:5: ++%lX:-0x7B:1:5:4294967173: ++%*lX:-0x7B:0:5: ++%lX:-1:1:2:4294967295: ++%*lX:-1:0:2: ++%lX:-0X1:1:4:4294967295: ++%*lX:-0X1:0:4: ++%lX:-0x1:1:4:4294967295: ++%*lX:-0x1:0:4: ++%lX:-0:1:2:0: ++%*lX:-0:0:2: ++%lX:-0X0:1:4:0: ++%*lX:-0X0:0:4: ++%lX:-0x0:1:4:0: ++%*lX:-0x0:0:4: ++%lX:0:1:1:0: ++%*lX:0:0:1: ++%lX:0X0:1:3:0: ++%*lX:0X0:0:3: ++%lX:0x0:1:3:0: ++%*lX:0x0:0:3: ++%lX:1:1:1:1: ++%*lX:1:0:1: ++%lX:0X1:1:3:1: ++%*lX:0X1:0:3: ++%lX:0x1:1:3:1: ++%*lX:0x1:0:3: ++%lX:2a:1:2:42: ++%*lX:2a:0:2: ++%lX:2A:1:2:42: ++%*lX:2A:0:2: ++%lX:0X2a:1:4:42: ++%*lX:0X2a:0:4: ++%lX:0x2A:1:4:42: ++%*lX:0x2A:0:4: ++%lX:ffffffff:1:8:4294967295: ++%*lX:ffffffff:0:8: ++%lX:FFFFFFFF:1:8:4294967295: ++%*lX:FFFFFFFF:0:8: ++%lX:0Xffffffff:1:10:4294967295: ++%*lX:0Xffffffff:0:10: ++%lX:0xFFFFFFFF:1:10:4294967295: ++%*lX:0xFFFFFFFF:0:10: ++%lX:100000000:1:9:4294967295: ++%*lX:100000000:0:9: ++%lX:0X100000000:1:11:4294967295: ++%*lX:0X100000000:0:11: ++%lX:0x100000000:1:11:4294967295: ++%*lX:0x100000000:0:11: ++%lX:100001091:1:9:4294967295: ++%*lX:100001091:0:9: ++%lX:0X100001091:1:11:4294967295: ++%*lX:0X100001091:0:11: ++%lX:0x100001091:1:11:4294967295: ++%*lX:0x100001091:0:11: ++%lX:+0:1:2:0: ++%*lX:+0:0:2: ++%lX:+0X0:1:4:0: ++%*lX:+0X0:0:4: ++%lX:+0x0:1:4:0: ++%*lX:+0x0:0:4: ++%lX:+1:1:2:1: ++%*lX:+1:0:2: ++%lX:+0X1:1:4:1: ++%*lX:+0X1:0:4: ++%lX:+0x1:1:4:1: ++%*lX:+0x1:0:4: ++%lX:+2a:1:3:42: ++%*lX:+2a:0:3: ++%lX:+2A:1:3:42: ++%*lX:+2A:0:3: ++%lX:+0X2a:1:5:42: ++%*lX:+0X2a:0:5: ++%lX:+0x2A:1:5:42: ++%*lX:+0x2A:0:5: ++%lX:+ffffffff:1:9:4294967295: ++%*lX:+ffffffff:0:9: ++%lX:+FFFFFFFF:1:9:4294967295: ++%*lX:+FFFFFFFF:0:9: ++%lX:+0Xffffffff:1:11:4294967295: ++%*lX:+0Xffffffff:0:11: ++%lX:+0xFFFFFFFF:1:11:4294967295: ++%*lX:+0xFFFFFFFF:0:11: ++%lX:+100000000:1:10:4294967295: ++%*lX:+100000000:0:10: ++%lX:+0X100000000:1:12:4294967295: ++%*lX:+0X100000000:0:12: ++%lX:+0x100000000:1:12:4294967295: ++%*lX:+0x100000000:0:12: ++%lX:+100001091:1:10:4294967295: ++%*lX:+100001091:0:10: ++%lX:+0X100001091:1:12:4294967295: ++%*lX:+0X100001091:0:12: ++%lX:+0x100001091:1:12:4294967295: ++%*lX:+0x100001091:0:12: ++%1lX::0:-1: ++%*1lX::0:-1: ++%1lX:-7b:0:-1: ++%*1lX:-7b:0:-1: ++%1lX:-7B:0:-1: ++%*1lX:-7B:0:-1: ++%1lX:-0X7b:0:-1: ++%*1lX:-0X7b:0:-1: ++%1lX:-0x7B:0:-1: ++%*1lX:-0x7B:0:-1: ++%1lX:-1:0:-1: ++%*1lX:-1:0:-1: ++%1lX:-0X1:0:-1: ++%*1lX:-0X1:0:-1: ++%1lX:-0x1:0:-1: ++%*1lX:-0x1:0:-1: ++%1lX:-0:0:-1: ++%*1lX:-0:0:-1: ++%1lX:-0X0:0:-1: ++%*1lX:-0X0:0:-1: ++%1lX:-0x0:0:-1: ++%*1lX:-0x0:0:-1: ++%1lX:0:1:1:0: ++%*1lX:0:0:1: ++%1lX:0X0:1:1:0: ++%*1lX:0X0:0:1: ++%1lX:0x0:1:1:0: ++%*1lX:0x0:0:1: ++%1lX:1:1:1:1: ++%*1lX:1:0:1: ++%1lX:0X1:1:1:0: ++%*1lX:0X1:0:1: ++%1lX:0x1:1:1:0: ++%*1lX:0x1:0:1: ++%1lX:2a:1:1:2: ++%*1lX:2a:0:1: ++%1lX:2A:1:1:2: ++%*1lX:2A:0:1: ++%1lX:0X2a:1:1:0: ++%*1lX:0X2a:0:1: ++%1lX:0x2A:1:1:0: ++%*1lX:0x2A:0:1: ++%1lX:ffffffff:1:1:15: ++%*1lX:ffffffff:0:1: ++%1lX:FFFFFFFF:1:1:15: ++%*1lX:FFFFFFFF:0:1: ++%1lX:0Xffffffff:1:1:0: ++%*1lX:0Xffffffff:0:1: ++%1lX:0xFFFFFFFF:1:1:0: ++%*1lX:0xFFFFFFFF:0:1: ++%1lX:100000000:1:1:1: ++%*1lX:100000000:0:1: ++%1lX:0X100000000:1:1:0: ++%*1lX:0X100000000:0:1: ++%1lX:0x100000000:1:1:0: ++%*1lX:0x100000000:0:1: ++%1lX:100001091:1:1:1: ++%*1lX:100001091:0:1: ++%1lX:0X100001091:1:1:0: ++%*1lX:0X100001091:0:1: ++%1lX:0x100001091:1:1:0: ++%*1lX:0x100001091:0:1: ++%1lX:+0:0:-1: ++%*1lX:+0:0:-1: ++%1lX:+0X0:0:-1: ++%*1lX:+0X0:0:-1: ++%1lX:+0x0:0:-1: ++%*1lX:+0x0:0:-1: ++%1lX:+1:0:-1: ++%*1lX:+1:0:-1: ++%1lX:+0X1:0:-1: ++%*1lX:+0X1:0:-1: ++%1lX:+0x1:0:-1: ++%*1lX:+0x1:0:-1: ++%1lX:+2a:0:-1: ++%*1lX:+2a:0:-1: ++%1lX:+2A:0:-1: ++%*1lX:+2A:0:-1: ++%1lX:+0X2a:0:-1: ++%*1lX:+0X2a:0:-1: ++%1lX:+0x2A:0:-1: ++%*1lX:+0x2A:0:-1: ++%1lX:+ffffffff:0:-1: ++%*1lX:+ffffffff:0:-1: ++%1lX:+FFFFFFFF:0:-1: ++%*1lX:+FFFFFFFF:0:-1: ++%1lX:+0Xffffffff:0:-1: ++%*1lX:+0Xffffffff:0:-1: ++%1lX:+0xFFFFFFFF:0:-1: ++%*1lX:+0xFFFFFFFF:0:-1: ++%1lX:+100000000:0:-1: ++%*1lX:+100000000:0:-1: ++%1lX:+0X100000000:0:-1: ++%*1lX:+0X100000000:0:-1: ++%1lX:+0x100000000:0:-1: ++%*1lX:+0x100000000:0:-1: ++%1lX:+100001091:0:-1: ++%*1lX:+100001091:0:-1: ++%1lX:+0X100001091:0:-1: ++%*1lX:+0X100001091:0:-1: ++%1lX:+0x100001091:0:-1: ++%*1lX:+0x100001091:0:-1: ++%2lX::0:-1: ++%*2lX::0:-1: ++%2lX:-7b:1:2:4294967289: ++%*2lX:-7b:0:2: ++%2lX:-7B:1:2:4294967289: ++%*2lX:-7B:0:2: ++%2lX:-0X7b:1:2:0: ++%*2lX:-0X7b:0:2: ++%2lX:-0x7B:1:2:0: ++%*2lX:-0x7B:0:2: ++%2lX:-1:1:2:4294967295: ++%*2lX:-1:0:2: ++%2lX:-0X1:1:2:0: ++%*2lX:-0X1:0:2: ++%2lX:-0x1:1:2:0: ++%*2lX:-0x1:0:2: ++%2lX:-0:1:2:0: ++%*2lX:-0:0:2: ++%2lX:-0X0:1:2:0: ++%*2lX:-0X0:0:2: ++%2lX:-0x0:1:2:0: ++%*2lX:-0x0:0:2: ++%2lX:0:1:1:0: ++%*2lX:0:0:1: ++# BZ12701 %2lX:0X0:0:-1: ++# BZ12701 %*2lX:0X0:0:-1: ++# BZ12701 %2lX:0x0:0:-1: ++# BZ12701 %*2lX:0x0:0:-1: ++%2lX:1:1:1:1: ++%*2lX:1:0:1: ++# BZ12701 %2lX:0X1:0:-1: ++# BZ12701 %*2lX:0X1:0:-1: ++# BZ12701 %2lX:0x1:0:-1: ++# BZ12701 %*2lX:0x1:0:-1: ++%2lX:2a:1:2:42: ++%*2lX:2a:0:2: ++%2lX:2A:1:2:42: ++%*2lX:2A:0:2: ++# BZ12701 %2lX:0X2a:0:-1: ++# BZ12701 %*2lX:0X2a:0:-1: ++# BZ12701 %2lX:0x2A:0:-1: ++# BZ12701 %*2lX:0x2A:0:-1: ++%2lX:ffffffff:1:2:255: ++%*2lX:ffffffff:0:2: ++%2lX:FFFFFFFF:1:2:255: ++%*2lX:FFFFFFFF:0:2: ++# BZ12701 %2lX:0Xffffffff:0:-1: ++# BZ12701 %*2lX:0Xffffffff:0:-1: ++# BZ12701 %2lX:0xFFFFFFFF:0:-1: ++# BZ12701 %*2lX:0xFFFFFFFF:0:-1: ++%2lX:100000000:1:2:16: ++%*2lX:100000000:0:2: ++# BZ12701 %2lX:0X100000000:0:-1: ++# BZ12701 %*2lX:0X100000000:0:-1: ++# BZ12701 %2lX:0x100000000:0:-1: ++# BZ12701 %*2lX:0x100000000:0:-1: ++%2lX:100001091:1:2:16: ++%*2lX:100001091:0:2: ++# BZ12701 %2lX:0X100001091:0:-1: ++# BZ12701 %*2lX:0X100001091:0:-1: ++# BZ12701 %2lX:0x100001091:0:-1: ++# BZ12701 %*2lX:0x100001091:0:-1: ++%2lX:+0:1:2:0: ++%*2lX:+0:0:2: ++%2lX:+0X0:1:2:0: ++%*2lX:+0X0:0:2: ++%2lX:+0x0:1:2:0: ++%*2lX:+0x0:0:2: ++%2lX:+1:1:2:1: ++%*2lX:+1:0:2: ++%2lX:+0X1:1:2:0: ++%*2lX:+0X1:0:2: ++%2lX:+0x1:1:2:0: ++%*2lX:+0x1:0:2: ++%2lX:+2a:1:2:2: ++%*2lX:+2a:0:2: ++%2lX:+2A:1:2:2: ++%*2lX:+2A:0:2: ++%2lX:+0X2a:1:2:0: ++%*2lX:+0X2a:0:2: ++%2lX:+0x2A:1:2:0: ++%*2lX:+0x2A:0:2: ++%2lX:+ffffffff:1:2:15: ++%*2lX:+ffffffff:0:2: ++%2lX:+FFFFFFFF:1:2:15: ++%*2lX:+FFFFFFFF:0:2: ++%2lX:+0Xffffffff:1:2:0: ++%*2lX:+0Xffffffff:0:2: ++%2lX:+0xFFFFFFFF:1:2:0: ++%*2lX:+0xFFFFFFFF:0:2: ++%2lX:+100000000:1:2:1: ++%*2lX:+100000000:0:2: ++%2lX:+0X100000000:1:2:0: ++%*2lX:+0X100000000:0:2: ++%2lX:+0x100000000:1:2:0: ++%*2lX:+0x100000000:0:2: ++%2lX:+100001091:1:2:1: ++%*2lX:+100001091:0:2: ++%2lX:+0X100001091:1:2:0: ++%*2lX:+0X100001091:0:2: ++%2lX:+0x100001091:1:2:0: ++%*2lX:+0x100001091:0:2: ++%8lX::0:-1: ++%*8lX::0:-1: ++%8lX:-7b:1:3:4294967173: ++%*8lX:-7b:0:3: ++%8lX:-7B:1:3:4294967173: ++%*8lX:-7B:0:3: ++%8lX:-0X7b:1:5:4294967173: ++%*8lX:-0X7b:0:5: ++%8lX:-0x7B:1:5:4294967173: ++%*8lX:-0x7B:0:5: ++%8lX:-1:1:2:4294967295: ++%*8lX:-1:0:2: ++%8lX:-0X1:1:4:4294967295: ++%*8lX:-0X1:0:4: ++%8lX:-0x1:1:4:4294967295: ++%*8lX:-0x1:0:4: ++%8lX:-0:1:2:0: ++%*8lX:-0:0:2: ++%8lX:-0X0:1:4:0: ++%*8lX:-0X0:0:4: ++%8lX:-0x0:1:4:0: ++%*8lX:-0x0:0:4: ++%8lX:0:1:1:0: ++%*8lX:0:0:1: ++%8lX:0X0:1:3:0: ++%*8lX:0X0:0:3: ++%8lX:0x0:1:3:0: ++%*8lX:0x0:0:3: ++%8lX:1:1:1:1: ++%*8lX:1:0:1: ++%8lX:0X1:1:3:1: ++%*8lX:0X1:0:3: ++%8lX:0x1:1:3:1: ++%*8lX:0x1:0:3: ++%8lX:2a:1:2:42: ++%*8lX:2a:0:2: ++%8lX:2A:1:2:42: ++%*8lX:2A:0:2: ++%8lX:0X2a:1:4:42: ++%*8lX:0X2a:0:4: ++%8lX:0x2A:1:4:42: ++%*8lX:0x2A:0:4: ++%8lX:ffffffff:1:8:4294967295: ++%*8lX:ffffffff:0:8: ++%8lX:FFFFFFFF:1:8:4294967295: ++%*8lX:FFFFFFFF:0:8: ++%8lX:0Xffffffff:1:8:16777215: ++%*8lX:0Xffffffff:0:8: ++%8lX:0xFFFFFFFF:1:8:16777215: ++%*8lX:0xFFFFFFFF:0:8: ++%8lX:100000000:1:8:268435456: ++%*8lX:100000000:0:8: ++%8lX:0X100000000:1:8:1048576: ++%*8lX:0X100000000:0:8: ++%8lX:0x100000000:1:8:1048576: ++%*8lX:0x100000000:0:8: ++%8lX:100001091:1:8:268435721: ++%*8lX:100001091:0:8: ++%8lX:0X100001091:1:8:1048577: ++%*8lX:0X100001091:0:8: ++%8lX:0x100001091:1:8:1048577: ++%*8lX:0x100001091:0:8: ++%8lX:+0:1:2:0: ++%*8lX:+0:0:2: ++%8lX:+0X0:1:4:0: ++%*8lX:+0X0:0:4: ++%8lX:+0x0:1:4:0: ++%*8lX:+0x0:0:4: ++%8lX:+1:1:2:1: ++%*8lX:+1:0:2: ++%8lX:+0X1:1:4:1: ++%*8lX:+0X1:0:4: ++%8lX:+0x1:1:4:1: ++%*8lX:+0x1:0:4: ++%8lX:+2a:1:3:42: ++%*8lX:+2a:0:3: ++%8lX:+2A:1:3:42: ++%*8lX:+2A:0:3: ++%8lX:+0X2a:1:5:42: ++%*8lX:+0X2a:0:5: ++%8lX:+0x2A:1:5:42: ++%*8lX:+0x2A:0:5: ++%8lX:+ffffffff:1:8:268435455: ++%*8lX:+ffffffff:0:8: ++%8lX:+FFFFFFFF:1:8:268435455: ++%*8lX:+FFFFFFFF:0:8: ++%8lX:+0Xffffffff:1:8:1048575: ++%*8lX:+0Xffffffff:0:8: ++%8lX:+0xFFFFFFFF:1:8:1048575: ++%*8lX:+0xFFFFFFFF:0:8: ++%8lX:+100000000:1:8:16777216: ++%*8lX:+100000000:0:8: ++%8lX:+0X100000000:1:8:65536: ++%*8lX:+0X100000000:0:8: ++%8lX:+0x100000000:1:8:65536: ++%*8lX:+0x100000000:0:8: ++%8lX:+100001091:1:8:16777232: ++%*8lX:+100001091:0:8: ++%8lX:+0X100001091:1:8:65536: ++%*8lX:+0X100001091:0:8: ++%8lX:+0x100001091:1:8:65536: ++%*8lX:+0x100001091:0:8: ++%15lX::0:-1: ++%*15lX::0:-1: ++%15lX:-7b:1:3:4294967173: ++%*15lX:-7b:0:3: ++%15lX:-7B:1:3:4294967173: ++%*15lX:-7B:0:3: ++%15lX:-0X7b:1:5:4294967173: ++%*15lX:-0X7b:0:5: ++%15lX:-0x7B:1:5:4294967173: ++%*15lX:-0x7B:0:5: ++%15lX:-1:1:2:4294967295: ++%*15lX:-1:0:2: ++%15lX:-0X1:1:4:4294967295: ++%*15lX:-0X1:0:4: ++%15lX:-0x1:1:4:4294967295: ++%*15lX:-0x1:0:4: ++%15lX:-0:1:2:0: ++%*15lX:-0:0:2: ++%15lX:-0X0:1:4:0: ++%*15lX:-0X0:0:4: ++%15lX:-0x0:1:4:0: ++%*15lX:-0x0:0:4: ++%15lX:0:1:1:0: ++%*15lX:0:0:1: ++%15lX:0X0:1:3:0: ++%*15lX:0X0:0:3: ++%15lX:0x0:1:3:0: ++%*15lX:0x0:0:3: ++%15lX:1:1:1:1: ++%*15lX:1:0:1: ++%15lX:0X1:1:3:1: ++%*15lX:0X1:0:3: ++%15lX:0x1:1:3:1: ++%*15lX:0x1:0:3: ++%15lX:2a:1:2:42: ++%*15lX:2a:0:2: ++%15lX:2A:1:2:42: ++%*15lX:2A:0:2: ++%15lX:0X2a:1:4:42: ++%*15lX:0X2a:0:4: ++%15lX:0x2A:1:4:42: ++%*15lX:0x2A:0:4: ++%15lX:ffffffff:1:8:4294967295: ++%*15lX:ffffffff:0:8: ++%15lX:FFFFFFFF:1:8:4294967295: ++%*15lX:FFFFFFFF:0:8: ++%15lX:0Xffffffff:1:10:4294967295: ++%*15lX:0Xffffffff:0:10: ++%15lX:0xFFFFFFFF:1:10:4294967295: ++%*15lX:0xFFFFFFFF:0:10: ++%15lX:100000000:1:9:4294967295: ++%*15lX:100000000:0:9: ++%15lX:0X100000000:1:11:4294967295: ++%*15lX:0X100000000:0:11: ++%15lX:0x100000000:1:11:4294967295: ++%*15lX:0x100000000:0:11: ++%15lX:100001091:1:9:4294967295: ++%*15lX:100001091:0:9: ++%15lX:0X100001091:1:11:4294967295: ++%*15lX:0X100001091:0:11: ++%15lX:0x100001091:1:11:4294967295: ++%*15lX:0x100001091:0:11: ++%15lX:+0:1:2:0: ++%*15lX:+0:0:2: ++%15lX:+0X0:1:4:0: ++%*15lX:+0X0:0:4: ++%15lX:+0x0:1:4:0: ++%*15lX:+0x0:0:4: ++%15lX:+1:1:2:1: ++%*15lX:+1:0:2: ++%15lX:+0X1:1:4:1: ++%*15lX:+0X1:0:4: ++%15lX:+0x1:1:4:1: ++%*15lX:+0x1:0:4: ++%15lX:+2a:1:3:42: ++%*15lX:+2a:0:3: ++%15lX:+2A:1:3:42: ++%*15lX:+2A:0:3: ++%15lX:+0X2a:1:5:42: ++%*15lX:+0X2a:0:5: ++%15lX:+0x2A:1:5:42: ++%*15lX:+0x2A:0:5: ++%15lX:+ffffffff:1:9:4294967295: ++%*15lX:+ffffffff:0:9: ++%15lX:+FFFFFFFF:1:9:4294967295: ++%*15lX:+FFFFFFFF:0:9: ++%15lX:+0Xffffffff:1:11:4294967295: ++%*15lX:+0Xffffffff:0:11: ++%15lX:+0xFFFFFFFF:1:11:4294967295: ++%*15lX:+0xFFFFFFFF:0:11: ++%15lX:+100000000:1:10:4294967295: ++%*15lX:+100000000:0:10: ++%15lX:+0X100000000:1:12:4294967295: ++%*15lX:+0X100000000:0:12: ++%15lX:+0x100000000:1:12:4294967295: ++%*15lX:+0x100000000:0:12: ++%15lX:+100001091:1:10:4294967295: ++%*15lX:+100001091:0:10: ++%15lX:+0X100001091:1:12:4294967295: ++%*15lX:+0X100001091:0:12: ++%15lX:+0x100001091:1:12:4294967295: ++%*15lX:+0x100001091:0:12: ++%2lX: :0:-1: ++%*2lX: :0:-1: ++%2lX: -7b:1:3:4294967289: ++%*2lX: -7b:0:3: ++%2lX: -7B:1:3:4294967289: ++%*2lX: -7B:0:3: ++%2lX: -0X7b:1:3:0: ++%*2lX: -0X7b:0:3: ++%2lX: -0x7B:1:3:0: ++%*2lX: -0x7B:0:3: ++%2lX: -1:1:3:4294967295: ++%*2lX: -1:0:3: ++%2lX: -0X1:1:3:0: ++%*2lX: -0X1:0:3: ++%2lX: -0x1:1:3:0: ++%*2lX: -0x1:0:3: ++%2lX: -0:1:3:0: ++%*2lX: -0:0:3: ++%2lX: -0X0:1:3:0: ++%*2lX: -0X0:0:3: ++%2lX: -0x0:1:3:0: ++%*2lX: -0x0:0:3: ++%2lX: 0:1:2:0: ++%*2lX: 0:0:2: ++# BZ12701 %2lX: 0X0:0:-1: ++# BZ12701 %*2lX: 0X0:0:-1: ++# BZ12701 %2lX: 0x0:0:-1: ++# BZ12701 %*2lX: 0x0:0:-1: ++%2lX: 1:1:2:1: ++%*2lX: 1:0:2: ++# BZ12701 %2lX: 0X1:0:-1: ++# BZ12701 %*2lX: 0X1:0:-1: ++# BZ12701 %2lX: 0x1:0:-1: ++# BZ12701 %*2lX: 0x1:0:-1: ++%2lX: 2a:1:3:42: ++%*2lX: 2a:0:3: ++%2lX: 2A:1:3:42: ++%*2lX: 2A:0:3: ++# BZ12701 %2lX: 0X2a:0:-1: ++# BZ12701 %*2lX: 0X2a:0:-1: ++# BZ12701 %2lX: 0x2A:0:-1: ++# BZ12701 %*2lX: 0x2A:0:-1: ++%2lX: ffffffff:1:3:255: ++%*2lX: ffffffff:0:3: ++%2lX: FFFFFFFF:1:3:255: ++%*2lX: FFFFFFFF:0:3: ++# BZ12701 %2lX: 0Xffffffff:0:-1: ++# BZ12701 %*2lX: 0Xffffffff:0:-1: ++# BZ12701 %2lX: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2lX: 0xFFFFFFFF:0:-1: ++%2lX: 100000000:1:3:16: ++%*2lX: 100000000:0:3: ++# BZ12701 %2lX: 0X100000000:0:-1: ++# BZ12701 %*2lX: 0X100000000:0:-1: ++# BZ12701 %2lX: 0x100000000:0:-1: ++# BZ12701 %*2lX: 0x100000000:0:-1: ++%2lX: 100001091:1:3:16: ++%*2lX: 100001091:0:3: ++# BZ12701 %2lX: 0X100001091:0:-1: ++# BZ12701 %*2lX: 0X100001091:0:-1: ++# BZ12701 %2lX: 0x100001091:0:-1: ++# BZ12701 %*2lX: 0x100001091:0:-1: ++%2lX: +0:1:3:0: ++%*2lX: +0:0:3: ++%2lX: +0X0:1:3:0: ++%*2lX: +0X0:0:3: ++%2lX: +0x0:1:3:0: ++%*2lX: +0x0:0:3: ++%2lX: +1:1:3:1: ++%*2lX: +1:0:3: ++%2lX: +0X1:1:3:0: ++%*2lX: +0X1:0:3: ++%2lX: +0x1:1:3:0: ++%*2lX: +0x1:0:3: ++%2lX: +2a:1:3:2: ++%*2lX: +2a:0:3: ++%2lX: +2A:1:3:2: ++%*2lX: +2A:0:3: ++%2lX: +0X2a:1:3:0: ++%*2lX: +0X2a:0:3: ++%2lX: +0x2A:1:3:0: ++%*2lX: +0x2A:0:3: ++%2lX: +ffffffff:1:3:15: ++%*2lX: +ffffffff:0:3: ++%2lX: +FFFFFFFF:1:3:15: ++%*2lX: +FFFFFFFF:0:3: ++%2lX: +0Xffffffff:1:3:0: ++%*2lX: +0Xffffffff:0:3: ++%2lX: +0xFFFFFFFF:1:3:0: ++%*2lX: +0xFFFFFFFF:0:3: ++%2lX: +100000000:1:3:1: ++%*2lX: +100000000:0:3: ++%2lX: +0X100000000:1:3:0: ++%*2lX: +0X100000000:0:3: ++%2lX: +0x100000000:1:3:0: ++%*2lX: +0x100000000:0:3: ++%2lX: +100001091:1:3:1: ++%*2lX: +100001091:0:3: ++%2lX: +0X100001091:1:3:0: ++%*2lX: +0X100001091:0:3: ++%2lX: +0x100001091:1:3:0: ++%*2lX: +0x100001091:0:3: ++%15lX: :0:-1: ++%*15lX: :0:-1: ++%15lX: -7b:1:4:4294967173: ++%*15lX: -7b:0:4: ++%15lX: -7B:1:4:4294967173: ++%*15lX: -7B:0:4: ++%15lX: -0X7b:1:6:4294967173: ++%*15lX: -0X7b:0:6: ++%15lX: -0x7B:1:6:4294967173: ++%*15lX: -0x7B:0:6: ++%15lX: -1:1:3:4294967295: ++%*15lX: -1:0:3: ++%15lX: -0X1:1:5:4294967295: ++%*15lX: -0X1:0:5: ++%15lX: -0x1:1:5:4294967295: ++%*15lX: -0x1:0:5: ++%15lX: -0:1:3:0: ++%*15lX: -0:0:3: ++%15lX: -0X0:1:5:0: ++%*15lX: -0X0:0:5: ++%15lX: -0x0:1:5:0: ++%*15lX: -0x0:0:5: ++%15lX: 0:1:2:0: ++%*15lX: 0:0:2: ++%15lX: 0X0:1:4:0: ++%*15lX: 0X0:0:4: ++%15lX: 0x0:1:4:0: ++%*15lX: 0x0:0:4: ++%15lX: 1:1:2:1: ++%*15lX: 1:0:2: ++%15lX: 0X1:1:4:1: ++%*15lX: 0X1:0:4: ++%15lX: 0x1:1:4:1: ++%*15lX: 0x1:0:4: ++%15lX: 2a:1:3:42: ++%*15lX: 2a:0:3: ++%15lX: 2A:1:3:42: ++%*15lX: 2A:0:3: ++%15lX: 0X2a:1:5:42: ++%*15lX: 0X2a:0:5: ++%15lX: 0x2A:1:5:42: ++%*15lX: 0x2A:0:5: ++%15lX: ffffffff:1:9:4294967295: ++%*15lX: ffffffff:0:9: ++%15lX: FFFFFFFF:1:9:4294967295: ++%*15lX: FFFFFFFF:0:9: ++%15lX: 0Xffffffff:1:11:4294967295: ++%*15lX: 0Xffffffff:0:11: ++%15lX: 0xFFFFFFFF:1:11:4294967295: ++%*15lX: 0xFFFFFFFF:0:11: ++%15lX: 100000000:1:10:4294967295: ++%*15lX: 100000000:0:10: ++%15lX: 0X100000000:1:12:4294967295: ++%*15lX: 0X100000000:0:12: ++%15lX: 0x100000000:1:12:4294967295: ++%*15lX: 0x100000000:0:12: ++%15lX: 100001091:1:10:4294967295: ++%*15lX: 100001091:0:10: ++%15lX: 0X100001091:1:12:4294967295: ++%*15lX: 0X100001091:0:12: ++%15lX: 0x100001091:1:12:4294967295: ++%*15lX: 0x100001091:0:12: ++%15lX: +0:1:3:0: ++%*15lX: +0:0:3: ++%15lX: +0X0:1:5:0: ++%*15lX: +0X0:0:5: ++%15lX: +0x0:1:5:0: ++%*15lX: +0x0:0:5: ++%15lX: +1:1:3:1: ++%*15lX: +1:0:3: ++%15lX: +0X1:1:5:1: ++%*15lX: +0X1:0:5: ++%15lX: +0x1:1:5:1: ++%*15lX: +0x1:0:5: ++%15lX: +2a:1:4:42: ++%*15lX: +2a:0:4: ++%15lX: +2A:1:4:42: ++%*15lX: +2A:0:4: ++%15lX: +0X2a:1:6:42: ++%*15lX: +0X2a:0:6: ++%15lX: +0x2A:1:6:42: ++%*15lX: +0x2A:0:6: ++%15lX: +ffffffff:1:10:4294967295: ++%*15lX: +ffffffff:0:10: ++%15lX: +FFFFFFFF:1:10:4294967295: ++%*15lX: +FFFFFFFF:0:10: ++%15lX: +0Xffffffff:1:12:4294967295: ++%*15lX: +0Xffffffff:0:12: ++%15lX: +0xFFFFFFFF:1:12:4294967295: ++%*15lX: +0xFFFFFFFF:0:12: ++%15lX: +100000000:1:11:4294967295: ++%*15lX: +100000000:0:11: ++%15lX: +0X100000000:1:13:4294967295: ++%*15lX: +0X100000000:0:13: ++%15lX: +0x100000000:1:13:4294967295: ++%*15lX: +0x100000000:0:13: ++%15lX: +100001091:1:11:4294967295: ++%*15lX: +100001091:0:11: ++%15lX: +0X100001091:1:13:4294967295: ++%*15lX: +0X100001091:0:13: ++%15lX: +0x100001091:1:13:4294967295: ++%*15lX: +0x100001091:0:13: diff --git a/glibc-RHEL-119433-3.patch b/glibc-RHEL-119433-3.patch new file mode 100644 index 0000000..ca0792b --- /dev/null +++ b/glibc-RHEL-119433-3.patch @@ -0,0 +1,9221 @@ +commit a2bacea239c1780b20a1b23a9c3c836ef61c6172 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf integer data for LP64 targets + + Add Makefile infrastructure and `int' and `long' integer input data, + signed and unsigned, for LP64 targets. + + While the size of `int' data is the same between ILP32 and LP64 targets, + resulting scanf output is different between them for out of range input + data and while ISO C and POSIX both say that the behavior is undefined + if the result of the conversion cannot be represented we want to keep + track of our output to prevent inadvertent changes. Hence the use of + distinct `int' integer input data between ILP32 and LP64 targets. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0b' or '0x'. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/wordsize-64/Makefile b/sysdeps/wordsize-64/Makefile +index db7764f66414e897..6a84d0f86302d1ee 100644 +--- a/sysdeps/wordsize-64/Makefile ++++ b/sysdeps/wordsize-64/Makefile +@@ -2,6 +2,11 @@ ifeq ($(subdir),misc) + tests += tst-writev + endif + ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-int-convs += int long ++fmt-xscanf-uint-convs += uint ulong ++endif ++ + # strtol is aliased to stroll + CFLAGS-strtol.c += -fno-builtin-strtoll $(config-cflags-wno-ignored-attributes) + # strtoul is aliased to strtoull +diff --git a/sysdeps/wordsize-64/tst-scanf-format-int-d.input b/sysdeps/wordsize-64/tst-scanf-format-int-d.input +new file mode 100644 +index 0000000000000000..d8c2b10af50e0ad3 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-int-d.input +@@ -0,0 +1,266 @@ ++%d::0:-1: ++%*d::0:-1: ++%d:-2147484882:1:11:2147482414: ++%*d:-2147484882:0:11: ++%d:-2147483649:1:11:2147483647: ++%*d:-2147483649:0:11: ++%d:-2147483648:1:11:-2147483648: ++%*d:-2147483648:0:11: ++%d:-123:1:4:-123: ++%*d:-123:0:4: ++%d:-1:1:2:-1: ++%*d:-1:0:2: ++%d:-0:1:2:0: ++%*d:-0:0:2: ++%d:0:1:1:0: ++%*d:0:0:1: ++%d:1:1:1:1: ++%*d:1:0:1: ++%d:42:1:2:42: ++%*d:42:0:2: ++%d:2147483647:1:10:2147483647: ++%*d:2147483647:0:10: ++%d:2147483648:1:10:-2147483648: ++%*d:2147483648:0:10: ++%d:2147487889:1:10:-2147479407: ++%*d:2147487889:0:10: ++%d:+0:1:2:0: ++%*d:+0:0:2: ++%d:+1:1:2:1: ++%*d:+1:0:2: ++%d:+42:1:3:42: ++%*d:+42:0:3: ++%d:+2147483647:1:11:2147483647: ++%*d:+2147483647:0:11: ++%d:+2147483648:1:11:-2147483648: ++%*d:+2147483648:0:11: ++%d:+2147487889:1:11:-2147479407: ++%*d:+2147487889:0:11: ++%1d::0:-1: ++%*1d::0:-1: ++%1d:-2147484882:0:-1: ++%*1d:-2147484882:0:-1: ++%1d:-2147483649:0:-1: ++%*1d:-2147483649:0:-1: ++%1d:-2147483648:0:-1: ++%*1d:-2147483648:0:-1: ++%1d:-123:0:-1: ++%*1d:-123:0:-1: ++%1d:-1:0:-1: ++%*1d:-1:0:-1: ++%1d:-0:0:-1: ++%*1d:-0:0:-1: ++%1d:0:1:1:0: ++%*1d:0:0:1: ++%1d:1:1:1:1: ++%*1d:1:0:1: ++%1d:42:1:1:4: ++%*1d:42:0:1: ++%1d:2147483647:1:1:2: ++%*1d:2147483647:0:1: ++%1d:2147483648:1:1:2: ++%*1d:2147483648:0:1: ++%1d:2147487889:1:1:2: ++%*1d:2147487889:0:1: ++%1d:+0:0:-1: ++%*1d:+0:0:-1: ++%1d:+1:0:-1: ++%*1d:+1:0:-1: ++%1d:+42:0:-1: ++%*1d:+42:0:-1: ++%1d:+2147483647:0:-1: ++%*1d:+2147483647:0:-1: ++%1d:+2147483648:0:-1: ++%*1d:+2147483648:0:-1: ++%1d:+2147487889:0:-1: ++%*1d:+2147487889:0:-1: ++%2d::0:-1: ++%*2d::0:-1: ++%2d:-2147484882:1:2:-2: ++%*2d:-2147484882:0:2: ++%2d:-2147483649:1:2:-2: ++%*2d:-2147483649:0:2: ++%2d:-2147483648:1:2:-2: ++%*2d:-2147483648:0:2: ++%2d:-123:1:2:-1: ++%*2d:-123:0:2: ++%2d:-1:1:2:-1: ++%*2d:-1:0:2: ++%2d:-0:1:2:0: ++%*2d:-0:0:2: ++%2d:0:1:1:0: ++%*2d:0:0:1: ++%2d:1:1:1:1: ++%*2d:1:0:1: ++%2d:42:1:2:42: ++%*2d:42:0:2: ++%2d:2147483647:1:2:21: ++%*2d:2147483647:0:2: ++%2d:2147483648:1:2:21: ++%*2d:2147483648:0:2: ++%2d:2147487889:1:2:21: ++%*2d:2147487889:0:2: ++%2d:+0:1:2:0: ++%*2d:+0:0:2: ++%2d:+1:1:2:1: ++%*2d:+1:0:2: ++%2d:+42:1:2:4: ++%*2d:+42:0:2: ++%2d:+2147483647:1:2:2: ++%*2d:+2147483647:0:2: ++%2d:+2147483648:1:2:2: ++%*2d:+2147483648:0:2: ++%2d:+2147487889:1:2:2: ++%*2d:+2147487889:0:2: ++%8d::0:-1: ++%*8d::0:-1: ++%8d:-2147484882:1:8:-2147484: ++%*8d:-2147484882:0:8: ++%8d:-2147483649:1:8:-2147483: ++%*8d:-2147483649:0:8: ++%8d:-2147483648:1:8:-2147483: ++%*8d:-2147483648:0:8: ++%8d:-123:1:4:-123: ++%*8d:-123:0:4: ++%8d:-1:1:2:-1: ++%*8d:-1:0:2: ++%8d:-0:1:2:0: ++%*8d:-0:0:2: ++%8d:0:1:1:0: ++%*8d:0:0:1: ++%8d:1:1:1:1: ++%*8d:1:0:1: ++%8d:42:1:2:42: ++%*8d:42:0:2: ++%8d:2147483647:1:8:21474836: ++%*8d:2147483647:0:8: ++%8d:2147483648:1:8:21474836: ++%*8d:2147483648:0:8: ++%8d:2147487889:1:8:21474878: ++%*8d:2147487889:0:8: ++%8d:+0:1:2:0: ++%*8d:+0:0:2: ++%8d:+1:1:2:1: ++%*8d:+1:0:2: ++%8d:+42:1:3:42: ++%*8d:+42:0:3: ++%8d:+2147483647:1:8:2147483: ++%*8d:+2147483647:0:8: ++%8d:+2147483648:1:8:2147483: ++%*8d:+2147483648:0:8: ++%8d:+2147487889:1:8:2147487: ++%*8d:+2147487889:0:8: ++%15d::0:-1: ++%*15d::0:-1: ++%15d:-2147484882:1:11:2147482414: ++%*15d:-2147484882:0:11: ++%15d:-2147483649:1:11:2147483647: ++%*15d:-2147483649:0:11: ++%15d:-2147483648:1:11:-2147483648: ++%*15d:-2147483648:0:11: ++%15d:-123:1:4:-123: ++%*15d:-123:0:4: ++%15d:-1:1:2:-1: ++%*15d:-1:0:2: ++%15d:-0:1:2:0: ++%*15d:-0:0:2: ++%15d:0:1:1:0: ++%*15d:0:0:1: ++%15d:1:1:1:1: ++%*15d:1:0:1: ++%15d:42:1:2:42: ++%*15d:42:0:2: ++%15d:2147483647:1:10:2147483647: ++%*15d:2147483647:0:10: ++%15d:2147483648:1:10:-2147483648: ++%*15d:2147483648:0:10: ++%15d:2147487889:1:10:-2147479407: ++%*15d:2147487889:0:10: ++%15d:+0:1:2:0: ++%*15d:+0:0:2: ++%15d:+1:1:2:1: ++%*15d:+1:0:2: ++%15d:+42:1:3:42: ++%*15d:+42:0:3: ++%15d:+2147483647:1:11:2147483647: ++%*15d:+2147483647:0:11: ++%15d:+2147483648:1:11:-2147483648: ++%*15d:+2147483648:0:11: ++%15d:+2147487889:1:11:-2147479407: ++%*15d:+2147487889:0:11: ++%2d: :0:-1: ++%*2d: :0:-1: ++%2d: -2147484882:1:3:-2: ++%*2d: -2147484882:0:3: ++%2d: -2147483649:1:3:-2: ++%*2d: -2147483649:0:3: ++%2d: -2147483648:1:3:-2: ++%*2d: -2147483648:0:3: ++%2d: -123:1:3:-1: ++%*2d: -123:0:3: ++%2d: -1:1:3:-1: ++%*2d: -1:0:3: ++%2d: -0:1:3:0: ++%*2d: -0:0:3: ++%2d: 0:1:2:0: ++%*2d: 0:0:2: ++%2d: 1:1:2:1: ++%*2d: 1:0:2: ++%2d: 42:1:3:42: ++%*2d: 42:0:3: ++%2d: 2147483647:1:3:21: ++%*2d: 2147483647:0:3: ++%2d: 2147483648:1:3:21: ++%*2d: 2147483648:0:3: ++%2d: 2147487889:1:3:21: ++%*2d: 2147487889:0:3: ++%2d: +0:1:3:0: ++%*2d: +0:0:3: ++%2d: +1:1:3:1: ++%*2d: +1:0:3: ++%2d: +42:1:3:4: ++%*2d: +42:0:3: ++%2d: +2147483647:1:3:2: ++%*2d: +2147483647:0:3: ++%2d: +2147483648:1:3:2: ++%*2d: +2147483648:0:3: ++%2d: +2147487889:1:3:2: ++%*2d: +2147487889:0:3: ++%15d: :0:-1: ++%*15d: :0:-1: ++%15d: -2147484882:1:12:2147482414: ++%*15d: -2147484882:0:12: ++%15d: -2147483649:1:12:2147483647: ++%*15d: -2147483649:0:12: ++%15d: -2147483648:1:12:-2147483648: ++%*15d: -2147483648:0:12: ++%15d: -123:1:5:-123: ++%*15d: -123:0:5: ++%15d: -1:1:3:-1: ++%*15d: -1:0:3: ++%15d: -0:1:3:0: ++%*15d: -0:0:3: ++%15d: 0:1:2:0: ++%*15d: 0:0:2: ++%15d: 1:1:2:1: ++%*15d: 1:0:2: ++%15d: 42:1:3:42: ++%*15d: 42:0:3: ++%15d: 2147483647:1:11:2147483647: ++%*15d: 2147483647:0:11: ++%15d: 2147483648:1:11:-2147483648: ++%*15d: 2147483648:0:11: ++%15d: 2147487889:1:11:-2147479407: ++%*15d: 2147487889:0:11: ++%15d: +0:1:3:0: ++%*15d: +0:0:3: ++%15d: +1:1:3:1: ++%*15d: +1:0:3: ++%15d: +42:1:4:42: ++%*15d: +42:0:4: ++%15d: +2147483647:1:12:2147483647: ++%*15d: +2147483647:0:12: ++%15d: +2147483648:1:12:-2147483648: ++%*15d: +2147483648:0:12: ++%15d: +2147487889:1:12:-2147479407: ++%*15d: +2147487889:0:12: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-int-i.input b/sysdeps/wordsize-64/tst-scanf-format-int-i.input +new file mode 100644 +index 0000000000000000..8450d1aefc55cddf +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-int-i.input +@@ -0,0 +1,1526 @@ ++%i::0:-1: ++%*i::0:-1: ++%i:-2147484882:1:11:2147482414: ++%*i:-2147484882:0:11: ++%i:-0X800004d2:1:11:2147482414: ++%*i:-0X800004d2:0:11: ++%i:-0x800004D2:1:11:2147482414: ++%*i:-0x800004D2:0:11: ++%i:-020000002322:1:13:2147482414: ++%*i:-020000002322:0:13: ++%i:-0B10000000000000000000010011010010:1:35:2147482414: ++%*i:-0B10000000000000000000010011010010:0:35: ++%i:-0b10000000000000000000010011010010:1:35:2147482414: ++%*i:-0b10000000000000000000010011010010:0:35: ++%i:-2147483649:1:11:2147483647: ++%*i:-2147483649:0:11: ++%i:-0X80000001:1:11:2147483647: ++%*i:-0X80000001:0:11: ++%i:-0x80000001:1:11:2147483647: ++%*i:-0x80000001:0:11: ++%i:-020000000001:1:13:2147483647: ++%*i:-020000000001:0:13: ++%i:-0B10000000000000000000000000000001:1:35:2147483647: ++%*i:-0B10000000000000000000000000000001:0:35: ++%i:-0b10000000000000000000000000000001:1:35:2147483647: ++%*i:-0b10000000000000000000000000000001:0:35: ++%i:-2147483648:1:11:-2147483648: ++%*i:-2147483648:0:11: ++%i:-0X80000000:1:11:-2147483648: ++%*i:-0X80000000:0:11: ++%i:-0x80000000:1:11:-2147483648: ++%*i:-0x80000000:0:11: ++%i:-020000000000:1:13:-2147483648: ++%*i:-020000000000:0:13: ++%i:-0B10000000000000000000000000000000:1:35:-2147483648: ++%*i:-0B10000000000000000000000000000000:0:35: ++%i:-0b10000000000000000000000000000000:1:35:-2147483648: ++%*i:-0b10000000000000000000000000000000:0:35: ++%i:-123:1:4:-123: ++%*i:-123:0:4: ++%i:-0X7b:1:5:-123: ++%*i:-0X7b:0:5: ++%i:-0x7B:1:5:-123: ++%*i:-0x7B:0:5: ++%i:-0173:1:5:-123: ++%*i:-0173:0:5: ++%i:-0B1111011:1:10:-123: ++%*i:-0B1111011:0:10: ++%i:-0b1111011:1:10:-123: ++%*i:-0b1111011:0:10: ++%i:-1:1:2:-1: ++%*i:-1:0:2: ++%i:-0X1:1:4:-1: ++%*i:-0X1:0:4: ++%i:-0x1:1:4:-1: ++%*i:-0x1:0:4: ++%i:-01:1:3:-1: ++%*i:-01:0:3: ++%i:-0B1:1:4:-1: ++%*i:-0B1:0:4: ++%i:-0b1:1:4:-1: ++%*i:-0b1:0:4: ++%i:-0:1:2:0: ++%*i:-0:0:2: ++%i:-0X0:1:4:0: ++%*i:-0X0:0:4: ++%i:-0x0:1:4:0: ++%*i:-0x0:0:4: ++%i:-00:1:3:0: ++%*i:-00:0:3: ++%i:-0B0:1:4:0: ++%*i:-0B0:0:4: ++%i:-0b0:1:4:0: ++%*i:-0b0:0:4: ++%i:0:1:1:0: ++%*i:0:0:1: ++%i:0X0:1:3:0: ++%*i:0X0:0:3: ++%i:0x0:1:3:0: ++%*i:0x0:0:3: ++%i:00:1:2:0: ++%*i:00:0:2: ++%i:0B0:1:3:0: ++%*i:0B0:0:3: ++%i:0b0:1:3:0: ++%*i:0b0:0:3: ++%i:1:1:1:1: ++%*i:1:0:1: ++%i:0X1:1:3:1: ++%*i:0X1:0:3: ++%i:0x1:1:3:1: ++%*i:0x1:0:3: ++%i:01:1:2:1: ++%*i:01:0:2: ++%i:0B1:1:3:1: ++%*i:0B1:0:3: ++%i:0b1:1:3:1: ++%*i:0b1:0:3: ++%i:42:1:2:42: ++%*i:42:0:2: ++%i:0X2a:1:4:42: ++%*i:0X2a:0:4: ++%i:0x2A:1:4:42: ++%*i:0x2A:0:4: ++%i:052:1:3:42: ++%*i:052:0:3: ++%i:0B101010:1:8:42: ++%*i:0B101010:0:8: ++%i:0b101010:1:8:42: ++%*i:0b101010:0:8: ++%i:2147483647:1:10:2147483647: ++%*i:2147483647:0:10: ++%i:0X7fffffff:1:10:2147483647: ++%*i:0X7fffffff:0:10: ++%i:0x7FFFFFFF:1:10:2147483647: ++%*i:0x7FFFFFFF:0:10: ++%i:017777777777:1:12:2147483647: ++%*i:017777777777:0:12: ++%i:0B1111111111111111111111111111111:1:33:2147483647: ++%*i:0B1111111111111111111111111111111:0:33: ++%i:0b1111111111111111111111111111111:1:33:2147483647: ++%*i:0b1111111111111111111111111111111:0:33: ++%i:2147483648:1:10:-2147483648: ++%*i:2147483648:0:10: ++%i:0X80000000:1:10:-2147483648: ++%*i:0X80000000:0:10: ++%i:0x80000000:1:10:-2147483648: ++%*i:0x80000000:0:10: ++%i:020000000000:1:12:-2147483648: ++%*i:020000000000:0:12: ++%i:0B10000000000000000000000000000000:1:34:-2147483648: ++%*i:0B10000000000000000000000000000000:0:34: ++%i:0b10000000000000000000000000000000:1:34:-2147483648: ++%*i:0b10000000000000000000000000000000:0:34: ++%i:2147487889:1:10:-2147479407: ++%*i:2147487889:0:10: ++%i:0X80001091:1:10:-2147479407: ++%*i:0X80001091:0:10: ++%i:0x80001091:1:10:-2147479407: ++%*i:0x80001091:0:10: ++%i:020000010221:1:12:-2147479407: ++%*i:020000010221:0:12: ++%i:0B10000000000000000001000010010001:1:34:-2147479407: ++%*i:0B10000000000000000001000010010001:0:34: ++%i:0b10000000000000000001000010010001:1:34:-2147479407: ++%*i:0b10000000000000000001000010010001:0:34: ++%i:+0:1:2:0: ++%*i:+0:0:2: ++%i:+0X0:1:4:0: ++%*i:+0X0:0:4: ++%i:+0x0:1:4:0: ++%*i:+0x0:0:4: ++%i:+00:1:3:0: ++%*i:+00:0:3: ++%i:+0B0:1:4:0: ++%*i:+0B0:0:4: ++%i:+0b0:1:4:0: ++%*i:+0b0:0:4: ++%i:+1:1:2:1: ++%*i:+1:0:2: ++%i:+0X1:1:4:1: ++%*i:+0X1:0:4: ++%i:+0x1:1:4:1: ++%*i:+0x1:0:4: ++%i:+01:1:3:1: ++%*i:+01:0:3: ++%i:+0B1:1:4:1: ++%*i:+0B1:0:4: ++%i:+0b1:1:4:1: ++%*i:+0b1:0:4: ++%i:+42:1:3:42: ++%*i:+42:0:3: ++%i:+0X2a:1:5:42: ++%*i:+0X2a:0:5: ++%i:+0x2A:1:5:42: ++%*i:+0x2A:0:5: ++%i:+052:1:4:42: ++%*i:+052:0:4: ++%i:+0B101010:1:9:42: ++%*i:+0B101010:0:9: ++%i:+0b101010:1:9:42: ++%*i:+0b101010:0:9: ++%i:+2147483647:1:11:2147483647: ++%*i:+2147483647:0:11: ++%i:+0X7fffffff:1:11:2147483647: ++%*i:+0X7fffffff:0:11: ++%i:+0x7FFFFFFF:1:11:2147483647: ++%*i:+0x7FFFFFFF:0:11: ++%i:+017777777777:1:13:2147483647: ++%*i:+017777777777:0:13: ++%i:+0B1111111111111111111111111111111:1:34:2147483647: ++%*i:+0B1111111111111111111111111111111:0:34: ++%i:+0b1111111111111111111111111111111:1:34:2147483647: ++%*i:+0b1111111111111111111111111111111:0:34: ++%i:+2147483648:1:11:-2147483648: ++%*i:+2147483648:0:11: ++%i:+0X80000000:1:11:-2147483648: ++%*i:+0X80000000:0:11: ++%i:+0x80000000:1:11:-2147483648: ++%*i:+0x80000000:0:11: ++%i:+020000000000:1:13:-2147483648: ++%*i:+020000000000:0:13: ++%i:+0B10000000000000000000000000000000:1:35:-2147483648: ++%*i:+0B10000000000000000000000000000000:0:35: ++%i:+0b10000000000000000000000000000000:1:35:-2147483648: ++%*i:+0b10000000000000000000000000000000:0:35: ++%i:+2147487889:1:11:-2147479407: ++%*i:+2147487889:0:11: ++%i:+0X80001091:1:11:-2147479407: ++%*i:+0X80001091:0:11: ++%i:+0x80001091:1:11:-2147479407: ++%*i:+0x80001091:0:11: ++%i:+020000010221:1:13:-2147479407: ++%*i:+020000010221:0:13: ++%i:+0B10000000000000000001000010010001:1:35:-2147479407: ++%*i:+0B10000000000000000001000010010001:0:35: ++%i:+0b10000000000000000001000010010001:1:35:-2147479407: ++%*i:+0b10000000000000000001000010010001:0:35: ++%1i::0:-1: ++%*1i::0:-1: ++%1i:-2147484882:0:-1: ++%*1i:-2147484882:0:-1: ++%1i:-0X800004d2:0:-1: ++%*1i:-0X800004d2:0:-1: ++%1i:-0x800004D2:0:-1: ++%*1i:-0x800004D2:0:-1: ++%1i:-020000002322:0:-1: ++%*1i:-020000002322:0:-1: ++%1i:-0B10000000000000000000010011010010:0:-1: ++%*1i:-0B10000000000000000000010011010010:0:-1: ++%1i:-0b10000000000000000000010011010010:0:-1: ++%*1i:-0b10000000000000000000010011010010:0:-1: ++%1i:-2147483649:0:-1: ++%*1i:-2147483649:0:-1: ++%1i:-0X80000001:0:-1: ++%*1i:-0X80000001:0:-1: ++%1i:-0x80000001:0:-1: ++%*1i:-0x80000001:0:-1: ++%1i:-020000000001:0:-1: ++%*1i:-020000000001:0:-1: ++%1i:-0B10000000000000000000000000000001:0:-1: ++%*1i:-0B10000000000000000000000000000001:0:-1: ++%1i:-0b10000000000000000000000000000001:0:-1: ++%*1i:-0b10000000000000000000000000000001:0:-1: ++%1i:-2147483648:0:-1: ++%*1i:-2147483648:0:-1: ++%1i:-0X80000000:0:-1: ++%*1i:-0X80000000:0:-1: ++%1i:-0x80000000:0:-1: ++%*1i:-0x80000000:0:-1: ++%1i:-020000000000:0:-1: ++%*1i:-020000000000:0:-1: ++%1i:-0B10000000000000000000000000000000:0:-1: ++%*1i:-0B10000000000000000000000000000000:0:-1: ++%1i:-0b10000000000000000000000000000000:0:-1: ++%*1i:-0b10000000000000000000000000000000:0:-1: ++%1i:-123:0:-1: ++%*1i:-123:0:-1: ++%1i:-0X7b:0:-1: ++%*1i:-0X7b:0:-1: ++%1i:-0x7B:0:-1: ++%*1i:-0x7B:0:-1: ++%1i:-0173:0:-1: ++%*1i:-0173:0:-1: ++%1i:-0B1111011:0:-1: ++%*1i:-0B1111011:0:-1: ++%1i:-0b1111011:0:-1: ++%*1i:-0b1111011:0:-1: ++%1i:-1:0:-1: ++%*1i:-1:0:-1: ++%1i:-0X1:0:-1: ++%*1i:-0X1:0:-1: ++%1i:-0x1:0:-1: ++%*1i:-0x1:0:-1: ++%1i:-01:0:-1: ++%*1i:-01:0:-1: ++%1i:-0B1:0:-1: ++%*1i:-0B1:0:-1: ++%1i:-0b1:0:-1: ++%*1i:-0b1:0:-1: ++%1i:-0:0:-1: ++%*1i:-0:0:-1: ++%1i:-0X0:0:-1: ++%*1i:-0X0:0:-1: ++%1i:-0x0:0:-1: ++%*1i:-0x0:0:-1: ++%1i:-00:0:-1: ++%*1i:-00:0:-1: ++%1i:-0B0:0:-1: ++%*1i:-0B0:0:-1: ++%1i:-0b0:0:-1: ++%*1i:-0b0:0:-1: ++%1i:0:1:1:0: ++%*1i:0:0:1: ++%1i:0X0:1:1:0: ++%*1i:0X0:0:1: ++%1i:0x0:1:1:0: ++%*1i:0x0:0:1: ++%1i:00:1:1:0: ++%*1i:00:0:1: ++%1i:0B0:1:1:0: ++%*1i:0B0:0:1: ++%1i:0b0:1:1:0: ++%*1i:0b0:0:1: ++%1i:1:1:1:1: ++%*1i:1:0:1: ++%1i:0X1:1:1:0: ++%*1i:0X1:0:1: ++%1i:0x1:1:1:0: ++%*1i:0x1:0:1: ++%1i:01:1:1:0: ++%*1i:01:0:1: ++%1i:0B1:1:1:0: ++%*1i:0B1:0:1: ++%1i:0b1:1:1:0: ++%*1i:0b1:0:1: ++%1i:42:1:1:4: ++%*1i:42:0:1: ++%1i:0X2a:1:1:0: ++%*1i:0X2a:0:1: ++%1i:0x2A:1:1:0: ++%*1i:0x2A:0:1: ++%1i:052:1:1:0: ++%*1i:052:0:1: ++%1i:0B101010:1:1:0: ++%*1i:0B101010:0:1: ++%1i:0b101010:1:1:0: ++%*1i:0b101010:0:1: ++%1i:2147483647:1:1:2: ++%*1i:2147483647:0:1: ++%1i:0X7fffffff:1:1:0: ++%*1i:0X7fffffff:0:1: ++%1i:0x7FFFFFFF:1:1:0: ++%*1i:0x7FFFFFFF:0:1: ++%1i:017777777777:1:1:0: ++%*1i:017777777777:0:1: ++%1i:0B1111111111111111111111111111111:1:1:0: ++%*1i:0B1111111111111111111111111111111:0:1: ++%1i:0b1111111111111111111111111111111:1:1:0: ++%*1i:0b1111111111111111111111111111111:0:1: ++%1i:2147483648:1:1:2: ++%*1i:2147483648:0:1: ++%1i:0X80000000:1:1:0: ++%*1i:0X80000000:0:1: ++%1i:0x80000000:1:1:0: ++%*1i:0x80000000:0:1: ++%1i:020000000000:1:1:0: ++%*1i:020000000000:0:1: ++%1i:0B10000000000000000000000000000000:1:1:0: ++%*1i:0B10000000000000000000000000000000:0:1: ++%1i:0b10000000000000000000000000000000:1:1:0: ++%*1i:0b10000000000000000000000000000000:0:1: ++%1i:2147487889:1:1:2: ++%*1i:2147487889:0:1: ++%1i:0X80001091:1:1:0: ++%*1i:0X80001091:0:1: ++%1i:0x80001091:1:1:0: ++%*1i:0x80001091:0:1: ++%1i:020000010221:1:1:0: ++%*1i:020000010221:0:1: ++%1i:0B10000000000000000001000010010001:1:1:0: ++%*1i:0B10000000000000000001000010010001:0:1: ++%1i:0b10000000000000000001000010010001:1:1:0: ++%*1i:0b10000000000000000001000010010001:0:1: ++%1i:+0:0:-1: ++%*1i:+0:0:-1: ++%1i:+0X0:0:-1: ++%*1i:+0X0:0:-1: ++%1i:+0x0:0:-1: ++%*1i:+0x0:0:-1: ++%1i:+00:0:-1: ++%*1i:+00:0:-1: ++%1i:+0B0:0:-1: ++%*1i:+0B0:0:-1: ++%1i:+0b0:0:-1: ++%*1i:+0b0:0:-1: ++%1i:+1:0:-1: ++%*1i:+1:0:-1: ++%1i:+0X1:0:-1: ++%*1i:+0X1:0:-1: ++%1i:+0x1:0:-1: ++%*1i:+0x1:0:-1: ++%1i:+01:0:-1: ++%*1i:+01:0:-1: ++%1i:+0B1:0:-1: ++%*1i:+0B1:0:-1: ++%1i:+0b1:0:-1: ++%*1i:+0b1:0:-1: ++%1i:+42:0:-1: ++%*1i:+42:0:-1: ++%1i:+0X2a:0:-1: ++%*1i:+0X2a:0:-1: ++%1i:+0x2A:0:-1: ++%*1i:+0x2A:0:-1: ++%1i:+052:0:-1: ++%*1i:+052:0:-1: ++%1i:+0B101010:0:-1: ++%*1i:+0B101010:0:-1: ++%1i:+0b101010:0:-1: ++%*1i:+0b101010:0:-1: ++%1i:+2147483647:0:-1: ++%*1i:+2147483647:0:-1: ++%1i:+0X7fffffff:0:-1: ++%*1i:+0X7fffffff:0:-1: ++%1i:+0x7FFFFFFF:0:-1: ++%*1i:+0x7FFFFFFF:0:-1: ++%1i:+017777777777:0:-1: ++%*1i:+017777777777:0:-1: ++%1i:+0B1111111111111111111111111111111:0:-1: ++%*1i:+0B1111111111111111111111111111111:0:-1: ++%1i:+0b1111111111111111111111111111111:0:-1: ++%*1i:+0b1111111111111111111111111111111:0:-1: ++%1i:+2147483648:0:-1: ++%*1i:+2147483648:0:-1: ++%1i:+0X80000000:0:-1: ++%*1i:+0X80000000:0:-1: ++%1i:+0x80000000:0:-1: ++%*1i:+0x80000000:0:-1: ++%1i:+020000000000:0:-1: ++%*1i:+020000000000:0:-1: ++%1i:+0B10000000000000000000000000000000:0:-1: ++%*1i:+0B10000000000000000000000000000000:0:-1: ++%1i:+0b10000000000000000000000000000000:0:-1: ++%*1i:+0b10000000000000000000000000000000:0:-1: ++%1i:+2147487889:0:-1: ++%*1i:+2147487889:0:-1: ++%1i:+0X80001091:0:-1: ++%*1i:+0X80001091:0:-1: ++%1i:+0x80001091:0:-1: ++%*1i:+0x80001091:0:-1: ++%1i:+020000010221:0:-1: ++%*1i:+020000010221:0:-1: ++%1i:+0B10000000000000000001000010010001:0:-1: ++%*1i:+0B10000000000000000001000010010001:0:-1: ++%1i:+0b10000000000000000001000010010001:0:-1: ++%*1i:+0b10000000000000000001000010010001:0:-1: ++%2i::0:-1: ++%*2i::0:-1: ++%2i:-2147484882:1:2:-2: ++%*2i:-2147484882:0:2: ++%2i:-0X800004d2:1:2:0: ++%*2i:-0X800004d2:0:2: ++%2i:-0x800004D2:1:2:0: ++%*2i:-0x800004D2:0:2: ++%2i:-020000002322:1:2:0: ++%*2i:-020000002322:0:2: ++%2i:-0B10000000000000000000010011010010:1:2:0: ++%*2i:-0B10000000000000000000010011010010:0:2: ++%2i:-0b10000000000000000000010011010010:1:2:0: ++%*2i:-0b10000000000000000000010011010010:0:2: ++%2i:-2147483649:1:2:-2: ++%*2i:-2147483649:0:2: ++%2i:-0X80000001:1:2:0: ++%*2i:-0X80000001:0:2: ++%2i:-0x80000001:1:2:0: ++%*2i:-0x80000001:0:2: ++%2i:-020000000001:1:2:0: ++%*2i:-020000000001:0:2: ++%2i:-0B10000000000000000000000000000001:1:2:0: ++%*2i:-0B10000000000000000000000000000001:0:2: ++%2i:-0b10000000000000000000000000000001:1:2:0: ++%*2i:-0b10000000000000000000000000000001:0:2: ++%2i:-2147483648:1:2:-2: ++%*2i:-2147483648:0:2: ++%2i:-0X80000000:1:2:0: ++%*2i:-0X80000000:0:2: ++%2i:-0x80000000:1:2:0: ++%*2i:-0x80000000:0:2: ++%2i:-020000000000:1:2:0: ++%*2i:-020000000000:0:2: ++%2i:-0B10000000000000000000000000000000:1:2:0: ++%*2i:-0B10000000000000000000000000000000:0:2: ++%2i:-0b10000000000000000000000000000000:1:2:0: ++%*2i:-0b10000000000000000000000000000000:0:2: ++%2i:-123:1:2:-1: ++%*2i:-123:0:2: ++%2i:-0X7b:1:2:0: ++%*2i:-0X7b:0:2: ++%2i:-0x7B:1:2:0: ++%*2i:-0x7B:0:2: ++%2i:-0173:1:2:0: ++%*2i:-0173:0:2: ++%2i:-0B1111011:1:2:0: ++%*2i:-0B1111011:0:2: ++%2i:-0b1111011:1:2:0: ++%*2i:-0b1111011:0:2: ++%2i:-1:1:2:-1: ++%*2i:-1:0:2: ++%2i:-0X1:1:2:0: ++%*2i:-0X1:0:2: ++%2i:-0x1:1:2:0: ++%*2i:-0x1:0:2: ++%2i:-01:1:2:0: ++%*2i:-01:0:2: ++%2i:-0B1:1:2:0: ++%*2i:-0B1:0:2: ++%2i:-0b1:1:2:0: ++%*2i:-0b1:0:2: ++%2i:-0:1:2:0: ++%*2i:-0:0:2: ++%2i:-0X0:1:2:0: ++%*2i:-0X0:0:2: ++%2i:-0x0:1:2:0: ++%*2i:-0x0:0:2: ++%2i:-00:1:2:0: ++%*2i:-00:0:2: ++%2i:-0B0:1:2:0: ++%*2i:-0B0:0:2: ++%2i:-0b0:1:2:0: ++%*2i:-0b0:0:2: ++%2i:0:1:1:0: ++%*2i:0:0:1: ++# BZ12701 %2i:0X0:0:-1: ++# BZ12701 %*2i:0X0:0:-1: ++# BZ12701 %2i:0x0:0:-1: ++# BZ12701 %*2i:0x0:0:-1: ++%2i:00:1:2:0: ++%*2i:00:0:2: ++# BZ12701 %2i:0B0:0:-1: ++# BZ12701 %*2i:0B0:0:-1: ++# BZ12701 %2i:0b0:0:-1: ++# BZ12701 %*2i:0b0:0:-1: ++%2i:1:1:1:1: ++%*2i:1:0:1: ++# BZ12701 %2i:0X1:0:-1: ++# BZ12701 %*2i:0X1:0:-1: ++# BZ12701 %2i:0x1:0:-1: ++# BZ12701 %*2i:0x1:0:-1: ++%2i:01:1:2:1: ++%*2i:01:0:2: ++# BZ12701 %2i:0B1:0:-1: ++# BZ12701 %*2i:0B1:0:-1: ++# BZ12701 %2i:0b1:0:-1: ++# BZ12701 %*2i:0b1:0:-1: ++%2i:42:1:2:42: ++%*2i:42:0:2: ++# BZ12701 %2i:0X2a:0:-1: ++# BZ12701 %*2i:0X2a:0:-1: ++# BZ12701 %2i:0x2A:0:-1: ++# BZ12701 %*2i:0x2A:0:-1: ++%2i:052:1:2:5: ++%*2i:052:0:2: ++# BZ12701 %2i:0B101010:0:-1: ++# BZ12701 %*2i:0B101010:0:-1: ++# BZ12701 %2i:0b101010:0:-1: ++# BZ12701 %*2i:0b101010:0:-1: ++%2i:2147483647:1:2:21: ++%*2i:2147483647:0:2: ++# BZ12701 %2i:0X7fffffff:0:-1: ++# BZ12701 %*2i:0X7fffffff:0:-1: ++# BZ12701 %2i:0x7FFFFFFF:0:-1: ++# BZ12701 %*2i:0x7FFFFFFF:0:-1: ++%2i:017777777777:1:2:1: ++%*2i:017777777777:0:2: ++# BZ12701 %2i:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i:0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2i:0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i:0b1111111111111111111111111111111:0:-1: ++%2i:2147483648:1:2:21: ++%*2i:2147483648:0:2: ++# BZ12701 %2i:0X80000000:0:-1: ++# BZ12701 %*2i:0X80000000:0:-1: ++# BZ12701 %2i:0x80000000:0:-1: ++# BZ12701 %*2i:0x80000000:0:-1: ++%2i:020000000000:1:2:2: ++%*2i:020000000000:0:2: ++# BZ12701 %2i:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i:0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2i:0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i:0b10000000000000000000000000000000:0:-1: ++%2i:2147487889:1:2:21: ++%*2i:2147487889:0:2: ++# BZ12701 %2i:0X80001091:0:-1: ++# BZ12701 %*2i:0X80001091:0:-1: ++# BZ12701 %2i:0x80001091:0:-1: ++# BZ12701 %*2i:0x80001091:0:-1: ++%2i:020000010221:1:2:2: ++%*2i:020000010221:0:2: ++# BZ12701 %2i:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i:0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2i:0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i:0b10000000000000000001000010010001:0:-1: ++%2i:+0:1:2:0: ++%*2i:+0:0:2: ++%2i:+0X0:1:2:0: ++%*2i:+0X0:0:2: ++%2i:+0x0:1:2:0: ++%*2i:+0x0:0:2: ++%2i:+00:1:2:0: ++%*2i:+00:0:2: ++%2i:+0B0:1:2:0: ++%*2i:+0B0:0:2: ++%2i:+0b0:1:2:0: ++%*2i:+0b0:0:2: ++%2i:+1:1:2:1: ++%*2i:+1:0:2: ++%2i:+0X1:1:2:0: ++%*2i:+0X1:0:2: ++%2i:+0x1:1:2:0: ++%*2i:+0x1:0:2: ++%2i:+01:1:2:0: ++%*2i:+01:0:2: ++%2i:+0B1:1:2:0: ++%*2i:+0B1:0:2: ++%2i:+0b1:1:2:0: ++%*2i:+0b1:0:2: ++%2i:+42:1:2:4: ++%*2i:+42:0:2: ++%2i:+0X2a:1:2:0: ++%*2i:+0X2a:0:2: ++%2i:+0x2A:1:2:0: ++%*2i:+0x2A:0:2: ++%2i:+052:1:2:0: ++%*2i:+052:0:2: ++%2i:+0B101010:1:2:0: ++%*2i:+0B101010:0:2: ++%2i:+0b101010:1:2:0: ++%*2i:+0b101010:0:2: ++%2i:+2147483647:1:2:2: ++%*2i:+2147483647:0:2: ++%2i:+0X7fffffff:1:2:0: ++%*2i:+0X7fffffff:0:2: ++%2i:+0x7FFFFFFF:1:2:0: ++%*2i:+0x7FFFFFFF:0:2: ++%2i:+017777777777:1:2:0: ++%*2i:+017777777777:0:2: ++%2i:+0B1111111111111111111111111111111:1:2:0: ++%*2i:+0B1111111111111111111111111111111:0:2: ++%2i:+0b1111111111111111111111111111111:1:2:0: ++%*2i:+0b1111111111111111111111111111111:0:2: ++%2i:+2147483648:1:2:2: ++%*2i:+2147483648:0:2: ++%2i:+0X80000000:1:2:0: ++%*2i:+0X80000000:0:2: ++%2i:+0x80000000:1:2:0: ++%*2i:+0x80000000:0:2: ++%2i:+020000000000:1:2:0: ++%*2i:+020000000000:0:2: ++%2i:+0B10000000000000000000000000000000:1:2:0: ++%*2i:+0B10000000000000000000000000000000:0:2: ++%2i:+0b10000000000000000000000000000000:1:2:0: ++%*2i:+0b10000000000000000000000000000000:0:2: ++%2i:+2147487889:1:2:2: ++%*2i:+2147487889:0:2: ++%2i:+0X80001091:1:2:0: ++%*2i:+0X80001091:0:2: ++%2i:+0x80001091:1:2:0: ++%*2i:+0x80001091:0:2: ++%2i:+020000010221:1:2:0: ++%*2i:+020000010221:0:2: ++%2i:+0B10000000000000000001000010010001:1:2:0: ++%*2i:+0B10000000000000000001000010010001:0:2: ++%2i:+0b10000000000000000001000010010001:1:2:0: ++%*2i:+0b10000000000000000001000010010001:0:2: ++%8i::0:-1: ++%*8i::0:-1: ++%8i:-2147484882:1:8:-2147484: ++%*8i:-2147484882:0:8: ++%8i:-0X800004d2:1:8:-524288: ++%*8i:-0X800004d2:0:8: ++%8i:-0x800004D2:1:8:-524288: ++%*8i:-0x800004D2:0:8: ++%8i:-020000002322:1:8:-65536: ++%*8i:-020000002322:0:8: ++%8i:-0B10000000000000000000010011010010:1:8:-16: ++%*8i:-0B10000000000000000000010011010010:0:8: ++%8i:-0b10000000000000000000010011010010:1:8:-16: ++%*8i:-0b10000000000000000000010011010010:0:8: ++%8i:-2147483649:1:8:-2147483: ++%*8i:-2147483649:0:8: ++%8i:-0X80000001:1:8:-524288: ++%*8i:-0X80000001:0:8: ++%8i:-0x80000001:1:8:-524288: ++%*8i:-0x80000001:0:8: ++%8i:-020000000001:1:8:-65536: ++%*8i:-020000000001:0:8: ++%8i:-0B10000000000000000000000000000001:1:8:-16: ++%*8i:-0B10000000000000000000000000000001:0:8: ++%8i:-0b10000000000000000000000000000001:1:8:-16: ++%*8i:-0b10000000000000000000000000000001:0:8: ++%8i:-2147483648:1:8:-2147483: ++%*8i:-2147483648:0:8: ++%8i:-0X80000000:1:8:-524288: ++%*8i:-0X80000000:0:8: ++%8i:-0x80000000:1:8:-524288: ++%*8i:-0x80000000:0:8: ++%8i:-020000000000:1:8:-65536: ++%*8i:-020000000000:0:8: ++%8i:-0B10000000000000000000000000000000:1:8:-16: ++%*8i:-0B10000000000000000000000000000000:0:8: ++%8i:-0b10000000000000000000000000000000:1:8:-16: ++%*8i:-0b10000000000000000000000000000000:0:8: ++%8i:-123:1:4:-123: ++%*8i:-123:0:4: ++%8i:-0X7b:1:5:-123: ++%*8i:-0X7b:0:5: ++%8i:-0x7B:1:5:-123: ++%*8i:-0x7B:0:5: ++%8i:-0173:1:5:-123: ++%*8i:-0173:0:5: ++%8i:-0B1111011:1:8:-30: ++%*8i:-0B1111011:0:8: ++%8i:-0b1111011:1:8:-30: ++%*8i:-0b1111011:0:8: ++%8i:-1:1:2:-1: ++%*8i:-1:0:2: ++%8i:-0X1:1:4:-1: ++%*8i:-0X1:0:4: ++%8i:-0x1:1:4:-1: ++%*8i:-0x1:0:4: ++%8i:-01:1:3:-1: ++%*8i:-01:0:3: ++%8i:-0B1:1:4:-1: ++%*8i:-0B1:0:4: ++%8i:-0b1:1:4:-1: ++%*8i:-0b1:0:4: ++%8i:-0:1:2:0: ++%*8i:-0:0:2: ++%8i:-0X0:1:4:0: ++%*8i:-0X0:0:4: ++%8i:-0x0:1:4:0: ++%*8i:-0x0:0:4: ++%8i:-00:1:3:0: ++%*8i:-00:0:3: ++%8i:-0B0:1:4:0: ++%*8i:-0B0:0:4: ++%8i:-0b0:1:4:0: ++%*8i:-0b0:0:4: ++%8i:0:1:1:0: ++%*8i:0:0:1: ++%8i:0X0:1:3:0: ++%*8i:0X0:0:3: ++%8i:0x0:1:3:0: ++%*8i:0x0:0:3: ++%8i:00:1:2:0: ++%*8i:00:0:2: ++%8i:0B0:1:3:0: ++%*8i:0B0:0:3: ++%8i:0b0:1:3:0: ++%*8i:0b0:0:3: ++%8i:1:1:1:1: ++%*8i:1:0:1: ++%8i:0X1:1:3:1: ++%*8i:0X1:0:3: ++%8i:0x1:1:3:1: ++%*8i:0x1:0:3: ++%8i:01:1:2:1: ++%*8i:01:0:2: ++%8i:0B1:1:3:1: ++%*8i:0B1:0:3: ++%8i:0b1:1:3:1: ++%*8i:0b1:0:3: ++%8i:42:1:2:42: ++%*8i:42:0:2: ++%8i:0X2a:1:4:42: ++%*8i:0X2a:0:4: ++%8i:0x2A:1:4:42: ++%*8i:0x2A:0:4: ++%8i:052:1:3:42: ++%*8i:052:0:3: ++%8i:0B101010:1:8:42: ++%*8i:0B101010:0:8: ++%8i:0b101010:1:8:42: ++%*8i:0b101010:0:8: ++%8i:2147483647:1:8:21474836: ++%*8i:2147483647:0:8: ++%8i:0X7fffffff:1:8:8388607: ++%*8i:0X7fffffff:0:8: ++%8i:0x7FFFFFFF:1:8:8388607: ++%*8i:0x7FFFFFFF:0:8: ++%8i:017777777777:1:8:524287: ++%*8i:017777777777:0:8: ++%8i:0B1111111111111111111111111111111:1:8:63: ++%*8i:0B1111111111111111111111111111111:0:8: ++%8i:0b1111111111111111111111111111111:1:8:63: ++%*8i:0b1111111111111111111111111111111:0:8: ++%8i:2147483648:1:8:21474836: ++%*8i:2147483648:0:8: ++%8i:0X80000000:1:8:8388608: ++%*8i:0X80000000:0:8: ++%8i:0x80000000:1:8:8388608: ++%*8i:0x80000000:0:8: ++%8i:020000000000:1:8:524288: ++%*8i:020000000000:0:8: ++%8i:0B10000000000000000000000000000000:1:8:32: ++%*8i:0B10000000000000000000000000000000:0:8: ++%8i:0b10000000000000000000000000000000:1:8:32: ++%*8i:0b10000000000000000000000000000000:0:8: ++%8i:2147487889:1:8:21474878: ++%*8i:2147487889:0:8: ++%8i:0X80001091:1:8:8388624: ++%*8i:0X80001091:0:8: ++%8i:0x80001091:1:8:8388624: ++%*8i:0x80001091:0:8: ++%8i:020000010221:1:8:524289: ++%*8i:020000010221:0:8: ++%8i:0B10000000000000000001000010010001:1:8:32: ++%*8i:0B10000000000000000001000010010001:0:8: ++%8i:0b10000000000000000001000010010001:1:8:32: ++%*8i:0b10000000000000000001000010010001:0:8: ++%8i:+0:1:2:0: ++%*8i:+0:0:2: ++%8i:+0X0:1:4:0: ++%*8i:+0X0:0:4: ++%8i:+0x0:1:4:0: ++%*8i:+0x0:0:4: ++%8i:+00:1:3:0: ++%*8i:+00:0:3: ++%8i:+0B0:1:4:0: ++%*8i:+0B0:0:4: ++%8i:+0b0:1:4:0: ++%*8i:+0b0:0:4: ++%8i:+1:1:2:1: ++%*8i:+1:0:2: ++%8i:+0X1:1:4:1: ++%*8i:+0X1:0:4: ++%8i:+0x1:1:4:1: ++%*8i:+0x1:0:4: ++%8i:+01:1:3:1: ++%*8i:+01:0:3: ++%8i:+0B1:1:4:1: ++%*8i:+0B1:0:4: ++%8i:+0b1:1:4:1: ++%*8i:+0b1:0:4: ++%8i:+42:1:3:42: ++%*8i:+42:0:3: ++%8i:+0X2a:1:5:42: ++%*8i:+0X2a:0:5: ++%8i:+0x2A:1:5:42: ++%*8i:+0x2A:0:5: ++%8i:+052:1:4:42: ++%*8i:+052:0:4: ++%8i:+0B101010:1:8:21: ++%*8i:+0B101010:0:8: ++%8i:+0b101010:1:8:21: ++%*8i:+0b101010:0:8: ++%8i:+2147483647:1:8:2147483: ++%*8i:+2147483647:0:8: ++%8i:+0X7fffffff:1:8:524287: ++%*8i:+0X7fffffff:0:8: ++%8i:+0x7FFFFFFF:1:8:524287: ++%*8i:+0x7FFFFFFF:0:8: ++%8i:+017777777777:1:8:65535: ++%*8i:+017777777777:0:8: ++%8i:+0B1111111111111111111111111111111:1:8:31: ++%*8i:+0B1111111111111111111111111111111:0:8: ++%8i:+0b1111111111111111111111111111111:1:8:31: ++%*8i:+0b1111111111111111111111111111111:0:8: ++%8i:+2147483648:1:8:2147483: ++%*8i:+2147483648:0:8: ++%8i:+0X80000000:1:8:524288: ++%*8i:+0X80000000:0:8: ++%8i:+0x80000000:1:8:524288: ++%*8i:+0x80000000:0:8: ++%8i:+020000000000:1:8:65536: ++%*8i:+020000000000:0:8: ++%8i:+0B10000000000000000000000000000000:1:8:16: ++%*8i:+0B10000000000000000000000000000000:0:8: ++%8i:+0b10000000000000000000000000000000:1:8:16: ++%*8i:+0b10000000000000000000000000000000:0:8: ++%8i:+2147487889:1:8:2147487: ++%*8i:+2147487889:0:8: ++%8i:+0X80001091:1:8:524289: ++%*8i:+0X80001091:0:8: ++%8i:+0x80001091:1:8:524289: ++%*8i:+0x80001091:0:8: ++%8i:+020000010221:1:8:65536: ++%*8i:+020000010221:0:8: ++%8i:+0B10000000000000000001000010010001:1:8:16: ++%*8i:+0B10000000000000000001000010010001:0:8: ++%8i:+0b10000000000000000001000010010001:1:8:16: ++%*8i:+0b10000000000000000001000010010001:0:8: ++%15i::0:-1: ++%*15i::0:-1: ++%15i:-2147484882:1:11:2147482414: ++%*15i:-2147484882:0:11: ++%15i:-0X800004d2:1:11:2147482414: ++%*15i:-0X800004d2:0:11: ++%15i:-0x800004D2:1:11:2147482414: ++%*15i:-0x800004D2:0:11: ++%15i:-020000002322:1:13:2147482414: ++%*15i:-020000002322:0:13: ++%15i:-0B10000000000000000000010011010010:1:15:-2048: ++%*15i:-0B10000000000000000000010011010010:0:15: ++%15i:-0b10000000000000000000010011010010:1:15:-2048: ++%*15i:-0b10000000000000000000010011010010:0:15: ++%15i:-2147483649:1:11:2147483647: ++%*15i:-2147483649:0:11: ++%15i:-0X80000001:1:11:2147483647: ++%*15i:-0X80000001:0:11: ++%15i:-0x80000001:1:11:2147483647: ++%*15i:-0x80000001:0:11: ++%15i:-020000000001:1:13:2147483647: ++%*15i:-020000000001:0:13: ++%15i:-0B10000000000000000000000000000001:1:15:-2048: ++%*15i:-0B10000000000000000000000000000001:0:15: ++%15i:-0b10000000000000000000000000000001:1:15:-2048: ++%*15i:-0b10000000000000000000000000000001:0:15: ++%15i:-2147483648:1:11:-2147483648: ++%*15i:-2147483648:0:11: ++%15i:-0X80000000:1:11:-2147483648: ++%*15i:-0X80000000:0:11: ++%15i:-0x80000000:1:11:-2147483648: ++%*15i:-0x80000000:0:11: ++%15i:-020000000000:1:13:-2147483648: ++%*15i:-020000000000:0:13: ++%15i:-0B10000000000000000000000000000000:1:15:-2048: ++%*15i:-0B10000000000000000000000000000000:0:15: ++%15i:-0b10000000000000000000000000000000:1:15:-2048: ++%*15i:-0b10000000000000000000000000000000:0:15: ++%15i:-123:1:4:-123: ++%*15i:-123:0:4: ++%15i:-0X7b:1:5:-123: ++%*15i:-0X7b:0:5: ++%15i:-0x7B:1:5:-123: ++%*15i:-0x7B:0:5: ++%15i:-0173:1:5:-123: ++%*15i:-0173:0:5: ++%15i:-0B1111011:1:10:-123: ++%*15i:-0B1111011:0:10: ++%15i:-0b1111011:1:10:-123: ++%*15i:-0b1111011:0:10: ++%15i:-1:1:2:-1: ++%*15i:-1:0:2: ++%15i:-0X1:1:4:-1: ++%*15i:-0X1:0:4: ++%15i:-0x1:1:4:-1: ++%*15i:-0x1:0:4: ++%15i:-01:1:3:-1: ++%*15i:-01:0:3: ++%15i:-0B1:1:4:-1: ++%*15i:-0B1:0:4: ++%15i:-0b1:1:4:-1: ++%*15i:-0b1:0:4: ++%15i:-0:1:2:0: ++%*15i:-0:0:2: ++%15i:-0X0:1:4:0: ++%*15i:-0X0:0:4: ++%15i:-0x0:1:4:0: ++%*15i:-0x0:0:4: ++%15i:-00:1:3:0: ++%*15i:-00:0:3: ++%15i:-0B0:1:4:0: ++%*15i:-0B0:0:4: ++%15i:-0b0:1:4:0: ++%*15i:-0b0:0:4: ++%15i:0:1:1:0: ++%*15i:0:0:1: ++%15i:0X0:1:3:0: ++%*15i:0X0:0:3: ++%15i:0x0:1:3:0: ++%*15i:0x0:0:3: ++%15i:00:1:2:0: ++%*15i:00:0:2: ++%15i:0B0:1:3:0: ++%*15i:0B0:0:3: ++%15i:0b0:1:3:0: ++%*15i:0b0:0:3: ++%15i:1:1:1:1: ++%*15i:1:0:1: ++%15i:0X1:1:3:1: ++%*15i:0X1:0:3: ++%15i:0x1:1:3:1: ++%*15i:0x1:0:3: ++%15i:01:1:2:1: ++%*15i:01:0:2: ++%15i:0B1:1:3:1: ++%*15i:0B1:0:3: ++%15i:0b1:1:3:1: ++%*15i:0b1:0:3: ++%15i:42:1:2:42: ++%*15i:42:0:2: ++%15i:0X2a:1:4:42: ++%*15i:0X2a:0:4: ++%15i:0x2A:1:4:42: ++%*15i:0x2A:0:4: ++%15i:052:1:3:42: ++%*15i:052:0:3: ++%15i:0B101010:1:8:42: ++%*15i:0B101010:0:8: ++%15i:0b101010:1:8:42: ++%*15i:0b101010:0:8: ++%15i:2147483647:1:10:2147483647: ++%*15i:2147483647:0:10: ++%15i:0X7fffffff:1:10:2147483647: ++%*15i:0X7fffffff:0:10: ++%15i:0x7FFFFFFF:1:10:2147483647: ++%*15i:0x7FFFFFFF:0:10: ++%15i:017777777777:1:12:2147483647: ++%*15i:017777777777:0:12: ++%15i:0B1111111111111111111111111111111:1:15:8191: ++%*15i:0B1111111111111111111111111111111:0:15: ++%15i:0b1111111111111111111111111111111:1:15:8191: ++%*15i:0b1111111111111111111111111111111:0:15: ++%15i:2147483648:1:10:-2147483648: ++%*15i:2147483648:0:10: ++%15i:0X80000000:1:10:-2147483648: ++%*15i:0X80000000:0:10: ++%15i:0x80000000:1:10:-2147483648: ++%*15i:0x80000000:0:10: ++%15i:020000000000:1:12:-2147483648: ++%*15i:020000000000:0:12: ++%15i:0B10000000000000000000000000000000:1:15:4096: ++%*15i:0B10000000000000000000000000000000:0:15: ++%15i:0b10000000000000000000000000000000:1:15:4096: ++%*15i:0b10000000000000000000000000000000:0:15: ++%15i:2147487889:1:10:-2147479407: ++%*15i:2147487889:0:10: ++%15i:0X80001091:1:10:-2147479407: ++%*15i:0X80001091:0:10: ++%15i:0x80001091:1:10:-2147479407: ++%*15i:0x80001091:0:10: ++%15i:020000010221:1:12:-2147479407: ++%*15i:020000010221:0:12: ++%15i:0B10000000000000000001000010010001:1:15:4096: ++%*15i:0B10000000000000000001000010010001:0:15: ++%15i:0b10000000000000000001000010010001:1:15:4096: ++%*15i:0b10000000000000000001000010010001:0:15: ++%15i:+0:1:2:0: ++%*15i:+0:0:2: ++%15i:+0X0:1:4:0: ++%*15i:+0X0:0:4: ++%15i:+0x0:1:4:0: ++%*15i:+0x0:0:4: ++%15i:+00:1:3:0: ++%*15i:+00:0:3: ++%15i:+0B0:1:4:0: ++%*15i:+0B0:0:4: ++%15i:+0b0:1:4:0: ++%*15i:+0b0:0:4: ++%15i:+1:1:2:1: ++%*15i:+1:0:2: ++%15i:+0X1:1:4:1: ++%*15i:+0X1:0:4: ++%15i:+0x1:1:4:1: ++%*15i:+0x1:0:4: ++%15i:+01:1:3:1: ++%*15i:+01:0:3: ++%15i:+0B1:1:4:1: ++%*15i:+0B1:0:4: ++%15i:+0b1:1:4:1: ++%*15i:+0b1:0:4: ++%15i:+42:1:3:42: ++%*15i:+42:0:3: ++%15i:+0X2a:1:5:42: ++%*15i:+0X2a:0:5: ++%15i:+0x2A:1:5:42: ++%*15i:+0x2A:0:5: ++%15i:+052:1:4:42: ++%*15i:+052:0:4: ++%15i:+0B101010:1:9:42: ++%*15i:+0B101010:0:9: ++%15i:+0b101010:1:9:42: ++%*15i:+0b101010:0:9: ++%15i:+2147483647:1:11:2147483647: ++%*15i:+2147483647:0:11: ++%15i:+0X7fffffff:1:11:2147483647: ++%*15i:+0X7fffffff:0:11: ++%15i:+0x7FFFFFFF:1:11:2147483647: ++%*15i:+0x7FFFFFFF:0:11: ++%15i:+017777777777:1:13:2147483647: ++%*15i:+017777777777:0:13: ++%15i:+0B1111111111111111111111111111111:1:15:4095: ++%*15i:+0B1111111111111111111111111111111:0:15: ++%15i:+0b1111111111111111111111111111111:1:15:4095: ++%*15i:+0b1111111111111111111111111111111:0:15: ++%15i:+2147483648:1:11:-2147483648: ++%*15i:+2147483648:0:11: ++%15i:+0X80000000:1:11:-2147483648: ++%*15i:+0X80000000:0:11: ++%15i:+0x80000000:1:11:-2147483648: ++%*15i:+0x80000000:0:11: ++%15i:+020000000000:1:13:-2147483648: ++%*15i:+020000000000:0:13: ++%15i:+0B10000000000000000000000000000000:1:15:2048: ++%*15i:+0B10000000000000000000000000000000:0:15: ++%15i:+0b10000000000000000000000000000000:1:15:2048: ++%*15i:+0b10000000000000000000000000000000:0:15: ++%15i:+2147487889:1:11:-2147479407: ++%*15i:+2147487889:0:11: ++%15i:+0X80001091:1:11:-2147479407: ++%*15i:+0X80001091:0:11: ++%15i:+0x80001091:1:11:-2147479407: ++%*15i:+0x80001091:0:11: ++%15i:+020000010221:1:13:-2147479407: ++%*15i:+020000010221:0:13: ++%15i:+0B10000000000000000001000010010001:1:15:2048: ++%*15i:+0B10000000000000000001000010010001:0:15: ++%15i:+0b10000000000000000001000010010001:1:15:2048: ++%*15i:+0b10000000000000000001000010010001:0:15: ++%2i: :0:-1: ++%*2i: :0:-1: ++%2i: -2147484882:1:3:-2: ++%*2i: -2147484882:0:3: ++%2i: -0X800004d2:1:3:0: ++%*2i: -0X800004d2:0:3: ++%2i: -0x800004D2:1:3:0: ++%*2i: -0x800004D2:0:3: ++%2i: -020000002322:1:3:0: ++%*2i: -020000002322:0:3: ++%2i: -0B10000000000000000000010011010010:1:3:0: ++%*2i: -0B10000000000000000000010011010010:0:3: ++%2i: -0b10000000000000000000010011010010:1:3:0: ++%*2i: -0b10000000000000000000010011010010:0:3: ++%2i: -2147483649:1:3:-2: ++%*2i: -2147483649:0:3: ++%2i: -0X80000001:1:3:0: ++%*2i: -0X80000001:0:3: ++%2i: -0x80000001:1:3:0: ++%*2i: -0x80000001:0:3: ++%2i: -020000000001:1:3:0: ++%*2i: -020000000001:0:3: ++%2i: -0B10000000000000000000000000000001:1:3:0: ++%*2i: -0B10000000000000000000000000000001:0:3: ++%2i: -0b10000000000000000000000000000001:1:3:0: ++%*2i: -0b10000000000000000000000000000001:0:3: ++%2i: -2147483648:1:3:-2: ++%*2i: -2147483648:0:3: ++%2i: -0X80000000:1:3:0: ++%*2i: -0X80000000:0:3: ++%2i: -0x80000000:1:3:0: ++%*2i: -0x80000000:0:3: ++%2i: -020000000000:1:3:0: ++%*2i: -020000000000:0:3: ++%2i: -0B10000000000000000000000000000000:1:3:0: ++%*2i: -0B10000000000000000000000000000000:0:3: ++%2i: -0b10000000000000000000000000000000:1:3:0: ++%*2i: -0b10000000000000000000000000000000:0:3: ++%2i: -123:1:3:-1: ++%*2i: -123:0:3: ++%2i: -0X7b:1:3:0: ++%*2i: -0X7b:0:3: ++%2i: -0x7B:1:3:0: ++%*2i: -0x7B:0:3: ++%2i: -0173:1:3:0: ++%*2i: -0173:0:3: ++%2i: -0B1111011:1:3:0: ++%*2i: -0B1111011:0:3: ++%2i: -0b1111011:1:3:0: ++%*2i: -0b1111011:0:3: ++%2i: -1:1:3:-1: ++%*2i: -1:0:3: ++%2i: -0X1:1:3:0: ++%*2i: -0X1:0:3: ++%2i: -0x1:1:3:0: ++%*2i: -0x1:0:3: ++%2i: -01:1:3:0: ++%*2i: -01:0:3: ++%2i: -0B1:1:3:0: ++%*2i: -0B1:0:3: ++%2i: -0b1:1:3:0: ++%*2i: -0b1:0:3: ++%2i: -0:1:3:0: ++%*2i: -0:0:3: ++%2i: -0X0:1:3:0: ++%*2i: -0X0:0:3: ++%2i: -0x0:1:3:0: ++%*2i: -0x0:0:3: ++%2i: -00:1:3:0: ++%*2i: -00:0:3: ++%2i: -0B0:1:3:0: ++%*2i: -0B0:0:3: ++%2i: -0b0:1:3:0: ++%*2i: -0b0:0:3: ++%2i: 0:1:2:0: ++%*2i: 0:0:2: ++# BZ12701 %2i: 0X0:0:-1: ++# BZ12701 %*2i: 0X0:0:-1: ++# BZ12701 %2i: 0x0:0:-1: ++# BZ12701 %*2i: 0x0:0:-1: ++%2i: 00:1:3:0: ++%*2i: 00:0:3: ++# BZ12701 %2i: 0B0:0:-1: ++# BZ12701 %*2i: 0B0:0:-1: ++# BZ12701 %2i: 0b0:0:-1: ++# BZ12701 %*2i: 0b0:0:-1: ++%2i: 1:1:2:1: ++%*2i: 1:0:2: ++# BZ12701 %2i: 0X1:0:-1: ++# BZ12701 %*2i: 0X1:0:-1: ++# BZ12701 %2i: 0x1:0:-1: ++# BZ12701 %*2i: 0x1:0:-1: ++%2i: 01:1:3:1: ++%*2i: 01:0:3: ++# BZ12701 %2i: 0B1:0:-1: ++# BZ12701 %*2i: 0B1:0:-1: ++# BZ12701 %2i: 0b1:0:-1: ++# BZ12701 %*2i: 0b1:0:-1: ++%2i: 42:1:3:42: ++%*2i: 42:0:3: ++# BZ12701 %2i: 0X2a:0:-1: ++# BZ12701 %*2i: 0X2a:0:-1: ++# BZ12701 %2i: 0x2A:0:-1: ++# BZ12701 %*2i: 0x2A:0:-1: ++%2i: 052:1:3:5: ++%*2i: 052:0:3: ++# BZ12701 %2i: 0B101010:0:-1: ++# BZ12701 %*2i: 0B101010:0:-1: ++# BZ12701 %2i: 0b101010:0:-1: ++# BZ12701 %*2i: 0b101010:0:-1: ++%2i: 2147483647:1:3:21: ++%*2i: 2147483647:0:3: ++# BZ12701 %2i: 0X7fffffff:0:-1: ++# BZ12701 %*2i: 0X7fffffff:0:-1: ++# BZ12701 %2i: 0x7FFFFFFF:0:-1: ++# BZ12701 %*2i: 0x7FFFFFFF:0:-1: ++%2i: 017777777777:1:3:1: ++%*2i: 017777777777:0:3: ++# BZ12701 %2i: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i: 0B1111111111111111111111111111111:0:-1: ++# BZ12701 %2i: 0b1111111111111111111111111111111:0:-1: ++# BZ12701 %*2i: 0b1111111111111111111111111111111:0:-1: ++%2i: 2147483648:1:3:21: ++%*2i: 2147483648:0:3: ++# BZ12701 %2i: 0X80000000:0:-1: ++# BZ12701 %*2i: 0X80000000:0:-1: ++# BZ12701 %2i: 0x80000000:0:-1: ++# BZ12701 %*2i: 0x80000000:0:-1: ++%2i: 020000000000:1:3:2: ++%*2i: 020000000000:0:3: ++# BZ12701 %2i: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i: 0B10000000000000000000000000000000:0:-1: ++# BZ12701 %2i: 0b10000000000000000000000000000000:0:-1: ++# BZ12701 %*2i: 0b10000000000000000000000000000000:0:-1: ++%2i: 2147487889:1:3:21: ++%*2i: 2147487889:0:3: ++# BZ12701 %2i: 0X80001091:0:-1: ++# BZ12701 %*2i: 0X80001091:0:-1: ++# BZ12701 %2i: 0x80001091:0:-1: ++# BZ12701 %*2i: 0x80001091:0:-1: ++%2i: 020000010221:1:3:2: ++%*2i: 020000010221:0:3: ++# BZ12701 %2i: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i: 0B10000000000000000001000010010001:0:-1: ++# BZ12701 %2i: 0b10000000000000000001000010010001:0:-1: ++# BZ12701 %*2i: 0b10000000000000000001000010010001:0:-1: ++%2i: +0:1:3:0: ++%*2i: +0:0:3: ++%2i: +0X0:1:3:0: ++%*2i: +0X0:0:3: ++%2i: +0x0:1:3:0: ++%*2i: +0x0:0:3: ++%2i: +00:1:3:0: ++%*2i: +00:0:3: ++%2i: +0B0:1:3:0: ++%*2i: +0B0:0:3: ++%2i: +0b0:1:3:0: ++%*2i: +0b0:0:3: ++%2i: +1:1:3:1: ++%*2i: +1:0:3: ++%2i: +0X1:1:3:0: ++%*2i: +0X1:0:3: ++%2i: +0x1:1:3:0: ++%*2i: +0x1:0:3: ++%2i: +01:1:3:0: ++%*2i: +01:0:3: ++%2i: +0B1:1:3:0: ++%*2i: +0B1:0:3: ++%2i: +0b1:1:3:0: ++%*2i: +0b1:0:3: ++%2i: +42:1:3:4: ++%*2i: +42:0:3: ++%2i: +0X2a:1:3:0: ++%*2i: +0X2a:0:3: ++%2i: +0x2A:1:3:0: ++%*2i: +0x2A:0:3: ++%2i: +052:1:3:0: ++%*2i: +052:0:3: ++%2i: +0B101010:1:3:0: ++%*2i: +0B101010:0:3: ++%2i: +0b101010:1:3:0: ++%*2i: +0b101010:0:3: ++%2i: +2147483647:1:3:2: ++%*2i: +2147483647:0:3: ++%2i: +0X7fffffff:1:3:0: ++%*2i: +0X7fffffff:0:3: ++%2i: +0x7FFFFFFF:1:3:0: ++%*2i: +0x7FFFFFFF:0:3: ++%2i: +017777777777:1:3:0: ++%*2i: +017777777777:0:3: ++%2i: +0B1111111111111111111111111111111:1:3:0: ++%*2i: +0B1111111111111111111111111111111:0:3: ++%2i: +0b1111111111111111111111111111111:1:3:0: ++%*2i: +0b1111111111111111111111111111111:0:3: ++%2i: +2147483648:1:3:2: ++%*2i: +2147483648:0:3: ++%2i: +0X80000000:1:3:0: ++%*2i: +0X80000000:0:3: ++%2i: +0x80000000:1:3:0: ++%*2i: +0x80000000:0:3: ++%2i: +020000000000:1:3:0: ++%*2i: +020000000000:0:3: ++%2i: +0B10000000000000000000000000000000:1:3:0: ++%*2i: +0B10000000000000000000000000000000:0:3: ++%2i: +0b10000000000000000000000000000000:1:3:0: ++%*2i: +0b10000000000000000000000000000000:0:3: ++%2i: +2147487889:1:3:2: ++%*2i: +2147487889:0:3: ++%2i: +0X80001091:1:3:0: ++%*2i: +0X80001091:0:3: ++%2i: +0x80001091:1:3:0: ++%*2i: +0x80001091:0:3: ++%2i: +020000010221:1:3:0: ++%*2i: +020000010221:0:3: ++%2i: +0B10000000000000000001000010010001:1:3:0: ++%*2i: +0B10000000000000000001000010010001:0:3: ++%2i: +0b10000000000000000001000010010001:1:3:0: ++%*2i: +0b10000000000000000001000010010001:0:3: ++%15i: :0:-1: ++%*15i: :0:-1: ++%15i: -2147484882:1:12:2147482414: ++%*15i: -2147484882:0:12: ++%15i: -0X800004d2:1:12:2147482414: ++%*15i: -0X800004d2:0:12: ++%15i: -0x800004D2:1:12:2147482414: ++%*15i: -0x800004D2:0:12: ++%15i: -020000002322:1:14:2147482414: ++%*15i: -020000002322:0:14: ++%15i: -0B10000000000000000000010011010010:1:16:-2048: ++%*15i: -0B10000000000000000000010011010010:0:16: ++%15i: -0b10000000000000000000010011010010:1:16:-2048: ++%*15i: -0b10000000000000000000010011010010:0:16: ++%15i: -2147483649:1:12:2147483647: ++%*15i: -2147483649:0:12: ++%15i: -0X80000001:1:12:2147483647: ++%*15i: -0X80000001:0:12: ++%15i: -0x80000001:1:12:2147483647: ++%*15i: -0x80000001:0:12: ++%15i: -020000000001:1:14:2147483647: ++%*15i: -020000000001:0:14: ++%15i: -0B10000000000000000000000000000001:1:16:-2048: ++%*15i: -0B10000000000000000000000000000001:0:16: ++%15i: -0b10000000000000000000000000000001:1:16:-2048: ++%*15i: -0b10000000000000000000000000000001:0:16: ++%15i: -2147483648:1:12:-2147483648: ++%*15i: -2147483648:0:12: ++%15i: -0X80000000:1:12:-2147483648: ++%*15i: -0X80000000:0:12: ++%15i: -0x80000000:1:12:-2147483648: ++%*15i: -0x80000000:0:12: ++%15i: -020000000000:1:14:-2147483648: ++%*15i: -020000000000:0:14: ++%15i: -0B10000000000000000000000000000000:1:16:-2048: ++%*15i: -0B10000000000000000000000000000000:0:16: ++%15i: -0b10000000000000000000000000000000:1:16:-2048: ++%*15i: -0b10000000000000000000000000000000:0:16: ++%15i: -123:1:5:-123: ++%*15i: -123:0:5: ++%15i: -0X7b:1:6:-123: ++%*15i: -0X7b:0:6: ++%15i: -0x7B:1:6:-123: ++%*15i: -0x7B:0:6: ++%15i: -0173:1:6:-123: ++%*15i: -0173:0:6: ++%15i: -0B1111011:1:11:-123: ++%*15i: -0B1111011:0:11: ++%15i: -0b1111011:1:11:-123: ++%*15i: -0b1111011:0:11: ++%15i: -1:1:3:-1: ++%*15i: -1:0:3: ++%15i: -0X1:1:5:-1: ++%*15i: -0X1:0:5: ++%15i: -0x1:1:5:-1: ++%*15i: -0x1:0:5: ++%15i: -01:1:4:-1: ++%*15i: -01:0:4: ++%15i: -0B1:1:5:-1: ++%*15i: -0B1:0:5: ++%15i: -0b1:1:5:-1: ++%*15i: -0b1:0:5: ++%15i: -0:1:3:0: ++%*15i: -0:0:3: ++%15i: -0X0:1:5:0: ++%*15i: -0X0:0:5: ++%15i: -0x0:1:5:0: ++%*15i: -0x0:0:5: ++%15i: -00:1:4:0: ++%*15i: -00:0:4: ++%15i: -0B0:1:5:0: ++%*15i: -0B0:0:5: ++%15i: -0b0:1:5:0: ++%*15i: -0b0:0:5: ++%15i: 0:1:2:0: ++%*15i: 0:0:2: ++%15i: 0X0:1:4:0: ++%*15i: 0X0:0:4: ++%15i: 0x0:1:4:0: ++%*15i: 0x0:0:4: ++%15i: 00:1:3:0: ++%*15i: 00:0:3: ++%15i: 0B0:1:4:0: ++%*15i: 0B0:0:4: ++%15i: 0b0:1:4:0: ++%*15i: 0b0:0:4: ++%15i: 1:1:2:1: ++%*15i: 1:0:2: ++%15i: 0X1:1:4:1: ++%*15i: 0X1:0:4: ++%15i: 0x1:1:4:1: ++%*15i: 0x1:0:4: ++%15i: 01:1:3:1: ++%*15i: 01:0:3: ++%15i: 0B1:1:4:1: ++%*15i: 0B1:0:4: ++%15i: 0b1:1:4:1: ++%*15i: 0b1:0:4: ++%15i: 42:1:3:42: ++%*15i: 42:0:3: ++%15i: 0X2a:1:5:42: ++%*15i: 0X2a:0:5: ++%15i: 0x2A:1:5:42: ++%*15i: 0x2A:0:5: ++%15i: 052:1:4:42: ++%*15i: 052:0:4: ++%15i: 0B101010:1:9:42: ++%*15i: 0B101010:0:9: ++%15i: 0b101010:1:9:42: ++%*15i: 0b101010:0:9: ++%15i: 2147483647:1:11:2147483647: ++%*15i: 2147483647:0:11: ++%15i: 0X7fffffff:1:11:2147483647: ++%*15i: 0X7fffffff:0:11: ++%15i: 0x7FFFFFFF:1:11:2147483647: ++%*15i: 0x7FFFFFFF:0:11: ++%15i: 017777777777:1:13:2147483647: ++%*15i: 017777777777:0:13: ++%15i: 0B1111111111111111111111111111111:1:16:8191: ++%*15i: 0B1111111111111111111111111111111:0:16: ++%15i: 0b1111111111111111111111111111111:1:16:8191: ++%*15i: 0b1111111111111111111111111111111:0:16: ++%15i: 2147483648:1:11:-2147483648: ++%*15i: 2147483648:0:11: ++%15i: 0X80000000:1:11:-2147483648: ++%*15i: 0X80000000:0:11: ++%15i: 0x80000000:1:11:-2147483648: ++%*15i: 0x80000000:0:11: ++%15i: 020000000000:1:13:-2147483648: ++%*15i: 020000000000:0:13: ++%15i: 0B10000000000000000000000000000000:1:16:4096: ++%*15i: 0B10000000000000000000000000000000:0:16: ++%15i: 0b10000000000000000000000000000000:1:16:4096: ++%*15i: 0b10000000000000000000000000000000:0:16: ++%15i: 2147487889:1:11:-2147479407: ++%*15i: 2147487889:0:11: ++%15i: 0X80001091:1:11:-2147479407: ++%*15i: 0X80001091:0:11: ++%15i: 0x80001091:1:11:-2147479407: ++%*15i: 0x80001091:0:11: ++%15i: 020000010221:1:13:-2147479407: ++%*15i: 020000010221:0:13: ++%15i: 0B10000000000000000001000010010001:1:16:4096: ++%*15i: 0B10000000000000000001000010010001:0:16: ++%15i: 0b10000000000000000001000010010001:1:16:4096: ++%*15i: 0b10000000000000000001000010010001:0:16: ++%15i: +0:1:3:0: ++%*15i: +0:0:3: ++%15i: +0X0:1:5:0: ++%*15i: +0X0:0:5: ++%15i: +0x0:1:5:0: ++%*15i: +0x0:0:5: ++%15i: +00:1:4:0: ++%*15i: +00:0:4: ++%15i: +0B0:1:5:0: ++%*15i: +0B0:0:5: ++%15i: +0b0:1:5:0: ++%*15i: +0b0:0:5: ++%15i: +1:1:3:1: ++%*15i: +1:0:3: ++%15i: +0X1:1:5:1: ++%*15i: +0X1:0:5: ++%15i: +0x1:1:5:1: ++%*15i: +0x1:0:5: ++%15i: +01:1:4:1: ++%*15i: +01:0:4: ++%15i: +0B1:1:5:1: ++%*15i: +0B1:0:5: ++%15i: +0b1:1:5:1: ++%*15i: +0b1:0:5: ++%15i: +42:1:4:42: ++%*15i: +42:0:4: ++%15i: +0X2a:1:6:42: ++%*15i: +0X2a:0:6: ++%15i: +0x2A:1:6:42: ++%*15i: +0x2A:0:6: ++%15i: +052:1:5:42: ++%*15i: +052:0:5: ++%15i: +0B101010:1:10:42: ++%*15i: +0B101010:0:10: ++%15i: +0b101010:1:10:42: ++%*15i: +0b101010:0:10: ++%15i: +2147483647:1:12:2147483647: ++%*15i: +2147483647:0:12: ++%15i: +0X7fffffff:1:12:2147483647: ++%*15i: +0X7fffffff:0:12: ++%15i: +0x7FFFFFFF:1:12:2147483647: ++%*15i: +0x7FFFFFFF:0:12: ++%15i: +017777777777:1:14:2147483647: ++%*15i: +017777777777:0:14: ++%15i: +0B1111111111111111111111111111111:1:16:4095: ++%*15i: +0B1111111111111111111111111111111:0:16: ++%15i: +0b1111111111111111111111111111111:1:16:4095: ++%*15i: +0b1111111111111111111111111111111:0:16: ++%15i: +2147483648:1:12:-2147483648: ++%*15i: +2147483648:0:12: ++%15i: +0X80000000:1:12:-2147483648: ++%*15i: +0X80000000:0:12: ++%15i: +0x80000000:1:12:-2147483648: ++%*15i: +0x80000000:0:12: ++%15i: +020000000000:1:14:-2147483648: ++%*15i: +020000000000:0:14: ++%15i: +0B10000000000000000000000000000000:1:16:2048: ++%*15i: +0B10000000000000000000000000000000:0:16: ++%15i: +0b10000000000000000000000000000000:1:16:2048: ++%*15i: +0b10000000000000000000000000000000:0:16: ++%15i: +2147487889:1:12:-2147479407: ++%*15i: +2147487889:0:12: ++%15i: +0X80001091:1:12:-2147479407: ++%*15i: +0X80001091:0:12: ++%15i: +0x80001091:1:12:-2147479407: ++%*15i: +0x80001091:0:12: ++%15i: +020000010221:1:14:-2147479407: ++%*15i: +020000010221:0:14: ++%15i: +0B10000000000000000001000010010001:1:16:2048: ++%*15i: +0B10000000000000000001000010010001:0:16: ++%15i: +0b10000000000000000001000010010001:1:16:2048: ++%*15i: +0b10000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-long-d.input b/sysdeps/wordsize-64/tst-scanf-format-long-d.input +new file mode 100644 +index 0000000000000000..8da1fb462eb778c5 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-long-d.input +@@ -0,0 +1,266 @@ ++%ld::0:-1: ++%*ld::0:-1: ++%ld:-9223372036867121486:1:20:-9223372036854775808: ++%*ld:-9223372036867121486:0:20: ++%ld:-9223372036854775809:1:20:-9223372036854775808: ++%*ld:-9223372036854775809:0:20: ++%ld:-9223372036854775808:1:20:-9223372036854775808: ++%*ld:-9223372036854775808:0:20: ++%ld:-123:1:4:-123: ++%*ld:-123:0:4: ++%ld:-1:1:2:-1: ++%*ld:-1:0:2: ++%ld:-0:1:2:0: ++%*ld:-0:0:2: ++%ld:0:1:1:0: ++%*ld:0:0:1: ++%ld:1:1:1:1: ++%*ld:1:0:1: ++%ld:42:1:2:42: ++%*ld:42:0:2: ++%ld:9223372036854775807:1:19:9223372036854775807: ++%*ld:9223372036854775807:0:19: ++%ld:9223372036854775808:1:19:9223372036854775807: ++%*ld:9223372036854775808:0:19: ++%ld:9223372036897200049:1:19:9223372036854775807: ++%*ld:9223372036897200049:0:19: ++%ld:+0:1:2:0: ++%*ld:+0:0:2: ++%ld:+1:1:2:1: ++%*ld:+1:0:2: ++%ld:+42:1:3:42: ++%*ld:+42:0:3: ++%ld:+9223372036854775807:1:20:9223372036854775807: ++%*ld:+9223372036854775807:0:20: ++%ld:+9223372036854775808:1:20:9223372036854775807: ++%*ld:+9223372036854775808:0:20: ++%ld:+9223372036897200049:1:20:9223372036854775807: ++%*ld:+9223372036897200049:0:20: ++%1ld::0:-1: ++%*1ld::0:-1: ++%1ld:-9223372036867121486:0:-1: ++%*1ld:-9223372036867121486:0:-1: ++%1ld:-9223372036854775809:0:-1: ++%*1ld:-9223372036854775809:0:-1: ++%1ld:-9223372036854775808:0:-1: ++%*1ld:-9223372036854775808:0:-1: ++%1ld:-123:0:-1: ++%*1ld:-123:0:-1: ++%1ld:-1:0:-1: ++%*1ld:-1:0:-1: ++%1ld:-0:0:-1: ++%*1ld:-0:0:-1: ++%1ld:0:1:1:0: ++%*1ld:0:0:1: ++%1ld:1:1:1:1: ++%*1ld:1:0:1: ++%1ld:42:1:1:4: ++%*1ld:42:0:1: ++%1ld:9223372036854775807:1:1:9: ++%*1ld:9223372036854775807:0:1: ++%1ld:9223372036854775808:1:1:9: ++%*1ld:9223372036854775808:0:1: ++%1ld:9223372036897200049:1:1:9: ++%*1ld:9223372036897200049:0:1: ++%1ld:+0:0:-1: ++%*1ld:+0:0:-1: ++%1ld:+1:0:-1: ++%*1ld:+1:0:-1: ++%1ld:+42:0:-1: ++%*1ld:+42:0:-1: ++%1ld:+9223372036854775807:0:-1: ++%*1ld:+9223372036854775807:0:-1: ++%1ld:+9223372036854775808:0:-1: ++%*1ld:+9223372036854775808:0:-1: ++%1ld:+9223372036897200049:0:-1: ++%*1ld:+9223372036897200049:0:-1: ++%2ld::0:-1: ++%*2ld::0:-1: ++%2ld:-9223372036867121486:1:2:-9: ++%*2ld:-9223372036867121486:0:2: ++%2ld:-9223372036854775809:1:2:-9: ++%*2ld:-9223372036854775809:0:2: ++%2ld:-9223372036854775808:1:2:-9: ++%*2ld:-9223372036854775808:0:2: ++%2ld:-123:1:2:-1: ++%*2ld:-123:0:2: ++%2ld:-1:1:2:-1: ++%*2ld:-1:0:2: ++%2ld:-0:1:2:0: ++%*2ld:-0:0:2: ++%2ld:0:1:1:0: ++%*2ld:0:0:1: ++%2ld:1:1:1:1: ++%*2ld:1:0:1: ++%2ld:42:1:2:42: ++%*2ld:42:0:2: ++%2ld:9223372036854775807:1:2:92: ++%*2ld:9223372036854775807:0:2: ++%2ld:9223372036854775808:1:2:92: ++%*2ld:9223372036854775808:0:2: ++%2ld:9223372036897200049:1:2:92: ++%*2ld:9223372036897200049:0:2: ++%2ld:+0:1:2:0: ++%*2ld:+0:0:2: ++%2ld:+1:1:2:1: ++%*2ld:+1:0:2: ++%2ld:+42:1:2:4: ++%*2ld:+42:0:2: ++%2ld:+9223372036854775807:1:2:9: ++%*2ld:+9223372036854775807:0:2: ++%2ld:+9223372036854775808:1:2:9: ++%*2ld:+9223372036854775808:0:2: ++%2ld:+9223372036897200049:1:2:9: ++%*2ld:+9223372036897200049:0:2: ++%15ld::0:-1: ++%*15ld::0:-1: ++%15ld:-9223372036867121486:1:15:-92233720368671: ++%*15ld:-9223372036867121486:0:15: ++%15ld:-9223372036854775809:1:15:-92233720368547: ++%*15ld:-9223372036854775809:0:15: ++%15ld:-9223372036854775808:1:15:-92233720368547: ++%*15ld:-9223372036854775808:0:15: ++%15ld:-123:1:4:-123: ++%*15ld:-123:0:4: ++%15ld:-1:1:2:-1: ++%*15ld:-1:0:2: ++%15ld:-0:1:2:0: ++%*15ld:-0:0:2: ++%15ld:0:1:1:0: ++%*15ld:0:0:1: ++%15ld:1:1:1:1: ++%*15ld:1:0:1: ++%15ld:42:1:2:42: ++%*15ld:42:0:2: ++%15ld:9223372036854775807:1:15:922337203685477: ++%*15ld:9223372036854775807:0:15: ++%15ld:9223372036854775808:1:15:922337203685477: ++%*15ld:9223372036854775808:0:15: ++%15ld:9223372036897200049:1:15:922337203689720: ++%*15ld:9223372036897200049:0:15: ++%15ld:+0:1:2:0: ++%*15ld:+0:0:2: ++%15ld:+1:1:2:1: ++%*15ld:+1:0:2: ++%15ld:+42:1:3:42: ++%*15ld:+42:0:3: ++%15ld:+9223372036854775807:1:15:92233720368547: ++%*15ld:+9223372036854775807:0:15: ++%15ld:+9223372036854775808:1:15:92233720368547: ++%*15ld:+9223372036854775808:0:15: ++%15ld:+9223372036897200049:1:15:92233720368972: ++%*15ld:+9223372036897200049:0:15: ++%25ld::0:-1: ++%*25ld::0:-1: ++%25ld:-9223372036867121486:1:20:-9223372036854775808: ++%*25ld:-9223372036867121486:0:20: ++%25ld:-9223372036854775809:1:20:-9223372036854775808: ++%*25ld:-9223372036854775809:0:20: ++%25ld:-9223372036854775808:1:20:-9223372036854775808: ++%*25ld:-9223372036854775808:0:20: ++%25ld:-123:1:4:-123: ++%*25ld:-123:0:4: ++%25ld:-1:1:2:-1: ++%*25ld:-1:0:2: ++%25ld:-0:1:2:0: ++%*25ld:-0:0:2: ++%25ld:0:1:1:0: ++%*25ld:0:0:1: ++%25ld:1:1:1:1: ++%*25ld:1:0:1: ++%25ld:42:1:2:42: ++%*25ld:42:0:2: ++%25ld:9223372036854775807:1:19:9223372036854775807: ++%*25ld:9223372036854775807:0:19: ++%25ld:9223372036854775808:1:19:9223372036854775807: ++%*25ld:9223372036854775808:0:19: ++%25ld:9223372036897200049:1:19:9223372036854775807: ++%*25ld:9223372036897200049:0:19: ++%25ld:+0:1:2:0: ++%*25ld:+0:0:2: ++%25ld:+1:1:2:1: ++%*25ld:+1:0:2: ++%25ld:+42:1:3:42: ++%*25ld:+42:0:3: ++%25ld:+9223372036854775807:1:20:9223372036854775807: ++%*25ld:+9223372036854775807:0:20: ++%25ld:+9223372036854775808:1:20:9223372036854775807: ++%*25ld:+9223372036854775808:0:20: ++%25ld:+9223372036897200049:1:20:9223372036854775807: ++%*25ld:+9223372036897200049:0:20: ++%2ld: :0:-1: ++%*2ld: :0:-1: ++%2ld: -9223372036867121486:1:3:-9: ++%*2ld: -9223372036867121486:0:3: ++%2ld: -9223372036854775809:1:3:-9: ++%*2ld: -9223372036854775809:0:3: ++%2ld: -9223372036854775808:1:3:-9: ++%*2ld: -9223372036854775808:0:3: ++%2ld: -123:1:3:-1: ++%*2ld: -123:0:3: ++%2ld: -1:1:3:-1: ++%*2ld: -1:0:3: ++%2ld: -0:1:3:0: ++%*2ld: -0:0:3: ++%2ld: 0:1:2:0: ++%*2ld: 0:0:2: ++%2ld: 1:1:2:1: ++%*2ld: 1:0:2: ++%2ld: 42:1:3:42: ++%*2ld: 42:0:3: ++%2ld: 9223372036854775807:1:3:92: ++%*2ld: 9223372036854775807:0:3: ++%2ld: 9223372036854775808:1:3:92: ++%*2ld: 9223372036854775808:0:3: ++%2ld: 9223372036897200049:1:3:92: ++%*2ld: 9223372036897200049:0:3: ++%2ld: +0:1:3:0: ++%*2ld: +0:0:3: ++%2ld: +1:1:3:1: ++%*2ld: +1:0:3: ++%2ld: +42:1:3:4: ++%*2ld: +42:0:3: ++%2ld: +9223372036854775807:1:3:9: ++%*2ld: +9223372036854775807:0:3: ++%2ld: +9223372036854775808:1:3:9: ++%*2ld: +9223372036854775808:0:3: ++%2ld: +9223372036897200049:1:3:9: ++%*2ld: +9223372036897200049:0:3: ++%25ld: :0:-1: ++%*25ld: :0:-1: ++%25ld: -9223372036867121486:1:21:-9223372036854775808: ++%*25ld: -9223372036867121486:0:21: ++%25ld: -9223372036854775809:1:21:-9223372036854775808: ++%*25ld: -9223372036854775809:0:21: ++%25ld: -9223372036854775808:1:21:-9223372036854775808: ++%*25ld: -9223372036854775808:0:21: ++%25ld: -123:1:5:-123: ++%*25ld: -123:0:5: ++%25ld: -1:1:3:-1: ++%*25ld: -1:0:3: ++%25ld: -0:1:3:0: ++%*25ld: -0:0:3: ++%25ld: 0:1:2:0: ++%*25ld: 0:0:2: ++%25ld: 1:1:2:1: ++%*25ld: 1:0:2: ++%25ld: 42:1:3:42: ++%*25ld: 42:0:3: ++%25ld: 9223372036854775807:1:20:9223372036854775807: ++%*25ld: 9223372036854775807:0:20: ++%25ld: 9223372036854775808:1:20:9223372036854775807: ++%*25ld: 9223372036854775808:0:20: ++%25ld: 9223372036897200049:1:20:9223372036854775807: ++%*25ld: 9223372036897200049:0:20: ++%25ld: +0:1:3:0: ++%*25ld: +0:0:3: ++%25ld: +1:1:3:1: ++%*25ld: +1:0:3: ++%25ld: +42:1:4:42: ++%*25ld: +42:0:4: ++%25ld: +9223372036854775807:1:21:9223372036854775807: ++%*25ld: +9223372036854775807:0:21: ++%25ld: +9223372036854775808:1:21:9223372036854775807: ++%*25ld: +9223372036854775808:0:21: ++%25ld: +9223372036897200049:1:21:9223372036854775807: ++%*25ld: +9223372036897200049:0:21: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-long-i.input b/sysdeps/wordsize-64/tst-scanf-format-long-i.input +new file mode 100644 +index 0000000000000000..3066dab6bf1530f8 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-long-i.input +@@ -0,0 +1,1526 @@ ++%li::0:-1: ++%*li::0:-1: ++%li:-9223372036867121486:1:20:-9223372036854775808: ++%*li:-9223372036867121486:0:20: ++%li:-0X8000000000bc614e:1:19:-9223372036854775808: ++%*li:-0X8000000000bc614e:0:19: ++%li:-0x8000000000BC614E:1:19:-9223372036854775808: ++%*li:-0x8000000000BC614E:0:19: ++%li:-01000000000000057060516:1:24:-9223372036854775808: ++%*li:-01000000000000057060516:0:24: ++%li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: ++%*li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:67: ++%li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:67:-9223372036854775808: ++%*li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:67: ++%li:-9223372036854775809:1:20:-9223372036854775808: ++%*li:-9223372036854775809:0:20: ++%li:-0X8000000000000001:1:19:-9223372036854775808: ++%*li:-0X8000000000000001:0:19: ++%li:-0x8000000000000001:1:19:-9223372036854775808: ++%*li:-0x8000000000000001:0:19: ++%li:-01000000000000000000001:1:24:-9223372036854775808: ++%*li:-01000000000000000000001:0:24: ++%li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: ++%*li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:67: ++%li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:67:-9223372036854775808: ++%*li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:67: ++%li:-9223372036854775808:1:20:-9223372036854775808: ++%*li:-9223372036854775808:0:20: ++%li:-0X8000000000000000:1:19:-9223372036854775808: ++%*li:-0X8000000000000000:0:19: ++%li:-0x8000000000000000:1:19:-9223372036854775808: ++%*li:-0x8000000000000000:0:19: ++%li:-01000000000000000000000:1:24:-9223372036854775808: ++%*li:-01000000000000000000000:0:24: ++%li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: ++%*li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:67:-9223372036854775808: ++%*li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%li:-123:1:4:-123: ++%*li:-123:0:4: ++%li:-0X7b:1:5:-123: ++%*li:-0X7b:0:5: ++%li:-0x7B:1:5:-123: ++%*li:-0x7B:0:5: ++%li:-0173:1:5:-123: ++%*li:-0173:0:5: ++%li:-0B1111011:1:10:-123: ++%*li:-0B1111011:0:10: ++%li:-0b1111011:1:10:-123: ++%*li:-0b1111011:0:10: ++%li:-1:1:2:-1: ++%*li:-1:0:2: ++%li:-0X1:1:4:-1: ++%*li:-0X1:0:4: ++%li:-0x1:1:4:-1: ++%*li:-0x1:0:4: ++%li:-01:1:3:-1: ++%*li:-01:0:3: ++%li:-0B1:1:4:-1: ++%*li:-0B1:0:4: ++%li:-0b1:1:4:-1: ++%*li:-0b1:0:4: ++%li:-0:1:2:0: ++%*li:-0:0:2: ++%li:-0X0:1:4:0: ++%*li:-0X0:0:4: ++%li:-0x0:1:4:0: ++%*li:-0x0:0:4: ++%li:-00:1:3:0: ++%*li:-00:0:3: ++%li:-0B0:1:4:0: ++%*li:-0B0:0:4: ++%li:-0b0:1:4:0: ++%*li:-0b0:0:4: ++%li:0:1:1:0: ++%*li:0:0:1: ++%li:0X0:1:3:0: ++%*li:0X0:0:3: ++%li:0x0:1:3:0: ++%*li:0x0:0:3: ++%li:00:1:2:0: ++%*li:00:0:2: ++%li:0B0:1:3:0: ++%*li:0B0:0:3: ++%li:0b0:1:3:0: ++%*li:0b0:0:3: ++%li:1:1:1:1: ++%*li:1:0:1: ++%li:0X1:1:3:1: ++%*li:0X1:0:3: ++%li:0x1:1:3:1: ++%*li:0x1:0:3: ++%li:01:1:2:1: ++%*li:01:0:2: ++%li:0B1:1:3:1: ++%*li:0B1:0:3: ++%li:0b1:1:3:1: ++%*li:0b1:0:3: ++%li:42:1:2:42: ++%*li:42:0:2: ++%li:0X2a:1:4:42: ++%*li:0X2a:0:4: ++%li:0x2A:1:4:42: ++%*li:0x2A:0:4: ++%li:052:1:3:42: ++%*li:052:0:3: ++%li:0B101010:1:8:42: ++%*li:0B101010:0:8: ++%li:0b101010:1:8:42: ++%*li:0b101010:0:8: ++%li:9223372036854775807:1:19:9223372036854775807: ++%*li:9223372036854775807:0:19: ++%li:0X7fffffffffffffff:1:18:9223372036854775807: ++%*li:0X7fffffffffffffff:0:18: ++%li:0x7FFFFFFFFFFFFFFF:1:18:9223372036854775807: ++%*li:0x7FFFFFFFFFFFFFFF:0:18: ++%li:0777777777777777777777:1:22:9223372036854775807: ++%*li:0777777777777777777777:0:22: ++%li:0B111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: ++%*li:0B111111111111111111111111111111111111111111111111111111111111111:0:65: ++%li:0b111111111111111111111111111111111111111111111111111111111111111:1:65:9223372036854775807: ++%*li:0b111111111111111111111111111111111111111111111111111111111111111:0:65: ++%li:9223372036854775808:1:19:9223372036854775807: ++%*li:9223372036854775808:0:19: ++%li:0X8000000000000000:1:18:9223372036854775807: ++%*li:0X8000000000000000:0:18: ++%li:0x8000000000000000:1:18:9223372036854775807: ++%*li:0x8000000000000000:0:18: ++%li:01000000000000000000000:1:23:9223372036854775807: ++%*li:01000000000000000000000:0:23: ++%li:0B1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: ++%*li:0B1000000000000000000000000000000000000000000000000000000000000000:0:66: ++%li:0b1000000000000000000000000000000000000000000000000000000000000000:1:66:9223372036854775807: ++%*li:0b1000000000000000000000000000000000000000000000000000000000000000:0:66: ++%li:9223372036897200049:1:19:9223372036854775807: ++%*li:9223372036897200049:0:19: ++%li:0X80000000028757b1:1:18:9223372036854775807: ++%*li:0X80000000028757b1:0:18: ++%li:0x80000000028757B1:1:18:9223372036854775807: ++%*li:0x80000000028757B1:0:18: ++%li:01000000000000241653661:1:23:9223372036854775807: ++%*li:01000000000000241653661:0:23: ++%li:0B1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: ++%*li:0B1000000000000000000000000000000000000010100001110101011110110001:0:66: ++%li:0b1000000000000000000000000000000000000010100001110101011110110001:1:66:9223372036854775807: ++%*li:0b1000000000000000000000000000000000000010100001110101011110110001:0:66: ++%li:+0:1:2:0: ++%*li:+0:0:2: ++%li:+0X0:1:4:0: ++%*li:+0X0:0:4: ++%li:+0x0:1:4:0: ++%*li:+0x0:0:4: ++%li:+00:1:3:0: ++%*li:+00:0:3: ++%li:+0B0:1:4:0: ++%*li:+0B0:0:4: ++%li:+0b0:1:4:0: ++%*li:+0b0:0:4: ++%li:+1:1:2:1: ++%*li:+1:0:2: ++%li:+0X1:1:4:1: ++%*li:+0X1:0:4: ++%li:+0x1:1:4:1: ++%*li:+0x1:0:4: ++%li:+01:1:3:1: ++%*li:+01:0:3: ++%li:+0B1:1:4:1: ++%*li:+0B1:0:4: ++%li:+0b1:1:4:1: ++%*li:+0b1:0:4: ++%li:+42:1:3:42: ++%*li:+42:0:3: ++%li:+0X2a:1:5:42: ++%*li:+0X2a:0:5: ++%li:+0x2A:1:5:42: ++%*li:+0x2A:0:5: ++%li:+052:1:4:42: ++%*li:+052:0:4: ++%li:+0B101010:1:9:42: ++%*li:+0B101010:0:9: ++%li:+0b101010:1:9:42: ++%*li:+0b101010:0:9: ++%li:+9223372036854775807:1:20:9223372036854775807: ++%*li:+9223372036854775807:0:20: ++%li:+0X7fffffffffffffff:1:19:9223372036854775807: ++%*li:+0X7fffffffffffffff:0:19: ++%li:+0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*li:+0x7FFFFFFFFFFFFFFF:0:19: ++%li:+0777777777777777777777:1:23:9223372036854775807: ++%*li:+0777777777777777777777:0:23: ++%li:+0B111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: ++%*li:+0B111111111111111111111111111111111111111111111111111111111111111:0:66: ++%li:+0b111111111111111111111111111111111111111111111111111111111111111:1:66:9223372036854775807: ++%*li:+0b111111111111111111111111111111111111111111111111111111111111111:0:66: ++%li:+9223372036854775808:1:20:9223372036854775807: ++%*li:+9223372036854775808:0:20: ++%li:+0X8000000000000000:1:19:9223372036854775807: ++%*li:+0X8000000000000000:0:19: ++%li:+0x8000000000000000:1:19:9223372036854775807: ++%*li:+0x8000000000000000:0:19: ++%li:+01000000000000000000000:1:24:9223372036854775807: ++%*li:+01000000000000000000000:0:24: ++%li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: ++%*li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:67:9223372036854775807: ++%*li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:67: ++%li:+9223372036897200049:1:20:9223372036854775807: ++%*li:+9223372036897200049:0:20: ++%li:+0X80000000028757b1:1:19:9223372036854775807: ++%*li:+0X80000000028757b1:0:19: ++%li:+0x80000000028757B1:1:19:9223372036854775807: ++%*li:+0x80000000028757B1:0:19: ++%li:+01000000000000241653661:1:24:9223372036854775807: ++%*li:+01000000000000241653661:0:24: ++%li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: ++%*li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:67: ++%li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:67:9223372036854775807: ++%*li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:67: ++%1li::0:-1: ++%*1li::0:-1: ++%1li:-9223372036867121486:0:-1: ++%*1li:-9223372036867121486:0:-1: ++%1li:-0X8000000000bc614e:0:-1: ++%*1li:-0X8000000000bc614e:0:-1: ++%1li:-0x8000000000BC614E:0:-1: ++%*1li:-0x8000000000BC614E:0:-1: ++%1li:-01000000000000057060516:0:-1: ++%*1li:-01000000000000057060516:0:-1: ++%1li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%*1li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%1li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%*1li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:-1: ++%1li:-9223372036854775809:0:-1: ++%*1li:-9223372036854775809:0:-1: ++%1li:-0X8000000000000001:0:-1: ++%*1li:-0X8000000000000001:0:-1: ++%1li:-0x8000000000000001:0:-1: ++%*1li:-0x8000000000000001:0:-1: ++%1li:-01000000000000000000001:0:-1: ++%*1li:-01000000000000000000001:0:-1: ++%1li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%*1li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%1li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%*1li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:-1: ++%1li:-9223372036854775808:0:-1: ++%*1li:-9223372036854775808:0:-1: ++%1li:-0X8000000000000000:0:-1: ++%*1li:-0X8000000000000000:0:-1: ++%1li:-0x8000000000000000:0:-1: ++%*1li:-0x8000000000000000:0:-1: ++%1li:-01000000000000000000000:0:-1: ++%*1li:-01000000000000000000000:0:-1: ++%1li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1li:-123:0:-1: ++%*1li:-123:0:-1: ++%1li:-0X7b:0:-1: ++%*1li:-0X7b:0:-1: ++%1li:-0x7B:0:-1: ++%*1li:-0x7B:0:-1: ++%1li:-0173:0:-1: ++%*1li:-0173:0:-1: ++%1li:-0B1111011:0:-1: ++%*1li:-0B1111011:0:-1: ++%1li:-0b1111011:0:-1: ++%*1li:-0b1111011:0:-1: ++%1li:-1:0:-1: ++%*1li:-1:0:-1: ++%1li:-0X1:0:-1: ++%*1li:-0X1:0:-1: ++%1li:-0x1:0:-1: ++%*1li:-0x1:0:-1: ++%1li:-01:0:-1: ++%*1li:-01:0:-1: ++%1li:-0B1:0:-1: ++%*1li:-0B1:0:-1: ++%1li:-0b1:0:-1: ++%*1li:-0b1:0:-1: ++%1li:-0:0:-1: ++%*1li:-0:0:-1: ++%1li:-0X0:0:-1: ++%*1li:-0X0:0:-1: ++%1li:-0x0:0:-1: ++%*1li:-0x0:0:-1: ++%1li:-00:0:-1: ++%*1li:-00:0:-1: ++%1li:-0B0:0:-1: ++%*1li:-0B0:0:-1: ++%1li:-0b0:0:-1: ++%*1li:-0b0:0:-1: ++%1li:0:1:1:0: ++%*1li:0:0:1: ++%1li:0X0:1:1:0: ++%*1li:0X0:0:1: ++%1li:0x0:1:1:0: ++%*1li:0x0:0:1: ++%1li:00:1:1:0: ++%*1li:00:0:1: ++%1li:0B0:1:1:0: ++%*1li:0B0:0:1: ++%1li:0b0:1:1:0: ++%*1li:0b0:0:1: ++%1li:1:1:1:1: ++%*1li:1:0:1: ++%1li:0X1:1:1:0: ++%*1li:0X1:0:1: ++%1li:0x1:1:1:0: ++%*1li:0x1:0:1: ++%1li:01:1:1:0: ++%*1li:01:0:1: ++%1li:0B1:1:1:0: ++%*1li:0B1:0:1: ++%1li:0b1:1:1:0: ++%*1li:0b1:0:1: ++%1li:42:1:1:4: ++%*1li:42:0:1: ++%1li:0X2a:1:1:0: ++%*1li:0X2a:0:1: ++%1li:0x2A:1:1:0: ++%*1li:0x2A:0:1: ++%1li:052:1:1:0: ++%*1li:052:0:1: ++%1li:0B101010:1:1:0: ++%*1li:0B101010:0:1: ++%1li:0b101010:1:1:0: ++%*1li:0b101010:0:1: ++%1li:9223372036854775807:1:1:9: ++%*1li:9223372036854775807:0:1: ++%1li:0X7fffffffffffffff:1:1:0: ++%*1li:0X7fffffffffffffff:0:1: ++%1li:0x7FFFFFFFFFFFFFFF:1:1:0: ++%*1li:0x7FFFFFFFFFFFFFFF:0:1: ++%1li:0777777777777777777777:1:1:0: ++%*1li:0777777777777777777777:0:1: ++%1li:0B111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1li:0B111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1li:0b111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1li:0b111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1li:9223372036854775808:1:1:9: ++%*1li:9223372036854775808:0:1: ++%1li:0X8000000000000000:1:1:0: ++%*1li:0X8000000000000000:0:1: ++%1li:0x8000000000000000:1:1:0: ++%*1li:0x8000000000000000:0:1: ++%1li:01000000000000000000000:1:1:0: ++%*1li:01000000000000000000000:0:1: ++%1li:0B1000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1li:0B1000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1li:0b1000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1li:0b1000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1li:9223372036897200049:1:1:9: ++%*1li:9223372036897200049:0:1: ++%1li:0X80000000028757b1:1:1:0: ++%*1li:0X80000000028757b1:0:1: ++%1li:0x80000000028757B1:1:1:0: ++%*1li:0x80000000028757B1:0:1: ++%1li:01000000000000241653661:1:1:0: ++%*1li:01000000000000241653661:0:1: ++%1li:0B1000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1li:0B1000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1li:0b1000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1li:0b1000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1li:+0:0:-1: ++%*1li:+0:0:-1: ++%1li:+0X0:0:-1: ++%*1li:+0X0:0:-1: ++%1li:+0x0:0:-1: ++%*1li:+0x0:0:-1: ++%1li:+00:0:-1: ++%*1li:+00:0:-1: ++%1li:+0B0:0:-1: ++%*1li:+0B0:0:-1: ++%1li:+0b0:0:-1: ++%*1li:+0b0:0:-1: ++%1li:+1:0:-1: ++%*1li:+1:0:-1: ++%1li:+0X1:0:-1: ++%*1li:+0X1:0:-1: ++%1li:+0x1:0:-1: ++%*1li:+0x1:0:-1: ++%1li:+01:0:-1: ++%*1li:+01:0:-1: ++%1li:+0B1:0:-1: ++%*1li:+0B1:0:-1: ++%1li:+0b1:0:-1: ++%*1li:+0b1:0:-1: ++%1li:+42:0:-1: ++%*1li:+42:0:-1: ++%1li:+0X2a:0:-1: ++%*1li:+0X2a:0:-1: ++%1li:+0x2A:0:-1: ++%*1li:+0x2A:0:-1: ++%1li:+052:0:-1: ++%*1li:+052:0:-1: ++%1li:+0B101010:0:-1: ++%*1li:+0B101010:0:-1: ++%1li:+0b101010:0:-1: ++%*1li:+0b101010:0:-1: ++%1li:+9223372036854775807:0:-1: ++%*1li:+9223372036854775807:0:-1: ++%1li:+0X7fffffffffffffff:0:-1: ++%*1li:+0X7fffffffffffffff:0:-1: ++%1li:+0x7FFFFFFFFFFFFFFF:0:-1: ++%*1li:+0x7FFFFFFFFFFFFFFF:0:-1: ++%1li:+0777777777777777777777:0:-1: ++%*1li:+0777777777777777777777:0:-1: ++%1li:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1li:+0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1li:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1li:+0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1li:+9223372036854775808:0:-1: ++%*1li:+9223372036854775808:0:-1: ++%1li:+0X8000000000000000:0:-1: ++%*1li:+0X8000000000000000:0:-1: ++%1li:+0x8000000000000000:0:-1: ++%*1li:+0x8000000000000000:0:-1: ++%1li:+01000000000000000000000:0:-1: ++%*1li:+01000000000000000000000:0:-1: ++%1li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1li:+9223372036897200049:0:-1: ++%*1li:+9223372036897200049:0:-1: ++%1li:+0X80000000028757b1:0:-1: ++%*1li:+0X80000000028757b1:0:-1: ++%1li:+0x80000000028757B1:0:-1: ++%*1li:+0x80000000028757B1:0:-1: ++%1li:+01000000000000241653661:0:-1: ++%*1li:+01000000000000241653661:0:-1: ++%1li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2li::0:-1: ++%*2li::0:-1: ++%2li:-9223372036867121486:1:2:-9: ++%*2li:-9223372036867121486:0:2: ++%2li:-0X8000000000bc614e:1:2:0: ++%*2li:-0X8000000000bc614e:0:2: ++%2li:-0x8000000000BC614E:1:2:0: ++%*2li:-0x8000000000BC614E:0:2: ++%2li:-01000000000000057060516:1:2:0: ++%*2li:-01000000000000057060516:0:2: ++%2li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:2:0: ++%*2li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:2: ++%2li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:2:0: ++%*2li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:2: ++%2li:-9223372036854775809:1:2:-9: ++%*2li:-9223372036854775809:0:2: ++%2li:-0X8000000000000001:1:2:0: ++%*2li:-0X8000000000000001:0:2: ++%2li:-0x8000000000000001:1:2:0: ++%*2li:-0x8000000000000001:0:2: ++%2li:-01000000000000000000001:1:2:0: ++%*2li:-01000000000000000000001:0:2: ++%2li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:2:0: ++%*2li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:2: ++%2li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:2:0: ++%*2li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:2: ++%2li:-9223372036854775808:1:2:-9: ++%*2li:-9223372036854775808:0:2: ++%2li:-0X8000000000000000:1:2:0: ++%*2li:-0X8000000000000000:0:2: ++%2li:-0x8000000000000000:1:2:0: ++%*2li:-0x8000000000000000:0:2: ++%2li:-01000000000000000000000:1:2:0: ++%*2li:-01000000000000000000000:0:2: ++%2li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2li:-123:1:2:-1: ++%*2li:-123:0:2: ++%2li:-0X7b:1:2:0: ++%*2li:-0X7b:0:2: ++%2li:-0x7B:1:2:0: ++%*2li:-0x7B:0:2: ++%2li:-0173:1:2:0: ++%*2li:-0173:0:2: ++%2li:-0B1111011:1:2:0: ++%*2li:-0B1111011:0:2: ++%2li:-0b1111011:1:2:0: ++%*2li:-0b1111011:0:2: ++%2li:-1:1:2:-1: ++%*2li:-1:0:2: ++%2li:-0X1:1:2:0: ++%*2li:-0X1:0:2: ++%2li:-0x1:1:2:0: ++%*2li:-0x1:0:2: ++%2li:-01:1:2:0: ++%*2li:-01:0:2: ++%2li:-0B1:1:2:0: ++%*2li:-0B1:0:2: ++%2li:-0b1:1:2:0: ++%*2li:-0b1:0:2: ++%2li:-0:1:2:0: ++%*2li:-0:0:2: ++%2li:-0X0:1:2:0: ++%*2li:-0X0:0:2: ++%2li:-0x0:1:2:0: ++%*2li:-0x0:0:2: ++%2li:-00:1:2:0: ++%*2li:-00:0:2: ++%2li:-0B0:1:2:0: ++%*2li:-0B0:0:2: ++%2li:-0b0:1:2:0: ++%*2li:-0b0:0:2: ++%2li:0:1:1:0: ++%*2li:0:0:1: ++# BZ12701 %2li:0X0:0:-1: ++# BZ12701 %*2li:0X0:0:-1: ++# BZ12701 %2li:0x0:0:-1: ++# BZ12701 %*2li:0x0:0:-1: ++%2li:00:1:2:0: ++%*2li:00:0:2: ++# BZ12701 %2li:0B0:0:-1: ++# BZ12701 %*2li:0B0:0:-1: ++# BZ12701 %2li:0b0:0:-1: ++# BZ12701 %*2li:0b0:0:-1: ++%2li:1:1:1:1: ++%*2li:1:0:1: ++# BZ12701 %2li:0X1:0:-1: ++# BZ12701 %*2li:0X1:0:-1: ++# BZ12701 %2li:0x1:0:-1: ++# BZ12701 %*2li:0x1:0:-1: ++%2li:01:1:2:1: ++%*2li:01:0:2: ++# BZ12701 %2li:0B1:0:-1: ++# BZ12701 %*2li:0B1:0:-1: ++# BZ12701 %2li:0b1:0:-1: ++# BZ12701 %*2li:0b1:0:-1: ++%2li:42:1:2:42: ++%*2li:42:0:2: ++# BZ12701 %2li:0X2a:0:-1: ++# BZ12701 %*2li:0X2a:0:-1: ++# BZ12701 %2li:0x2A:0:-1: ++# BZ12701 %*2li:0x2A:0:-1: ++%2li:052:1:2:5: ++%*2li:052:0:2: ++# BZ12701 %2li:0B101010:0:-1: ++# BZ12701 %*2li:0B101010:0:-1: ++# BZ12701 %2li:0b101010:0:-1: ++# BZ12701 %*2li:0b101010:0:-1: ++%2li:9223372036854775807:1:2:92: ++%*2li:9223372036854775807:0:2: ++# BZ12701 %2li:0X7fffffffffffffff:0:-1: ++# BZ12701 %*2li:0X7fffffffffffffff:0:-1: ++# BZ12701 %2li:0x7FFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2li:0x7FFFFFFFFFFFFFFF:0:-1: ++%2li:0777777777777777777777:1:2:7: ++%*2li:0777777777777777777777:0:2: ++# BZ12701 %2li:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2li:0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2li:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2li:0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2li:9223372036854775808:1:2:92: ++%*2li:9223372036854775808:0:2: ++# BZ12701 %2li:0X8000000000000000:0:-1: ++# BZ12701 %*2li:0X8000000000000000:0:-1: ++# BZ12701 %2li:0x8000000000000000:0:-1: ++# BZ12701 %*2li:0x8000000000000000:0:-1: ++%2li:01000000000000000000000:1:2:1: ++%*2li:01000000000000000000000:0:2: ++# BZ12701 %2li:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2li:0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2li:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2li:0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2li:9223372036897200049:1:2:92: ++%*2li:9223372036897200049:0:2: ++# BZ12701 %2li:0X80000000028757b1:0:-1: ++# BZ12701 %*2li:0X80000000028757b1:0:-1: ++# BZ12701 %2li:0x80000000028757B1:0:-1: ++# BZ12701 %*2li:0x80000000028757B1:0:-1: ++%2li:01000000000000241653661:1:2:1: ++%*2li:01000000000000241653661:0:2: ++# BZ12701 %2li:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2li:0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2li:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2li:0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2li:+0:1:2:0: ++%*2li:+0:0:2: ++%2li:+0X0:1:2:0: ++%*2li:+0X0:0:2: ++%2li:+0x0:1:2:0: ++%*2li:+0x0:0:2: ++%2li:+00:1:2:0: ++%*2li:+00:0:2: ++%2li:+0B0:1:2:0: ++%*2li:+0B0:0:2: ++%2li:+0b0:1:2:0: ++%*2li:+0b0:0:2: ++%2li:+1:1:2:1: ++%*2li:+1:0:2: ++%2li:+0X1:1:2:0: ++%*2li:+0X1:0:2: ++%2li:+0x1:1:2:0: ++%*2li:+0x1:0:2: ++%2li:+01:1:2:0: ++%*2li:+01:0:2: ++%2li:+0B1:1:2:0: ++%*2li:+0B1:0:2: ++%2li:+0b1:1:2:0: ++%*2li:+0b1:0:2: ++%2li:+42:1:2:4: ++%*2li:+42:0:2: ++%2li:+0X2a:1:2:0: ++%*2li:+0X2a:0:2: ++%2li:+0x2A:1:2:0: ++%*2li:+0x2A:0:2: ++%2li:+052:1:2:0: ++%*2li:+052:0:2: ++%2li:+0B101010:1:2:0: ++%*2li:+0B101010:0:2: ++%2li:+0b101010:1:2:0: ++%*2li:+0b101010:0:2: ++%2li:+9223372036854775807:1:2:9: ++%*2li:+9223372036854775807:0:2: ++%2li:+0X7fffffffffffffff:1:2:0: ++%*2li:+0X7fffffffffffffff:0:2: ++%2li:+0x7FFFFFFFFFFFFFFF:1:2:0: ++%*2li:+0x7FFFFFFFFFFFFFFF:0:2: ++%2li:+0777777777777777777777:1:2:0: ++%*2li:+0777777777777777777777:0:2: ++%2li:+0B111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2li:+0B111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2li:+0b111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2li:+0b111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2li:+9223372036854775808:1:2:9: ++%*2li:+9223372036854775808:0:2: ++%2li:+0X8000000000000000:1:2:0: ++%*2li:+0X8000000000000000:0:2: ++%2li:+0x8000000000000000:1:2:0: ++%*2li:+0x8000000000000000:0:2: ++%2li:+01000000000000000000000:1:2:0: ++%*2li:+01000000000000000000000:0:2: ++%2li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2li:+9223372036897200049:1:2:9: ++%*2li:+9223372036897200049:0:2: ++%2li:+0X80000000028757b1:1:2:0: ++%*2li:+0X80000000028757b1:0:2: ++%2li:+0x80000000028757B1:1:2:0: ++%*2li:+0x80000000028757B1:0:2: ++%2li:+01000000000000241653661:1:2:0: ++%*2li:+01000000000000241653661:0:2: ++%2li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:2: ++%15li::0:-1: ++%*15li::0:-1: ++%15li:-9223372036867121486:1:15:-92233720368671: ++%*15li:-9223372036867121486:0:15: ++%15li:-0X8000000000bc614e:1:15:-140737488355516: ++%*15li:-0X8000000000bc614e:0:15: ++%15li:-0x8000000000BC614E:1:15:-140737488355516: ++%*15li:-0x8000000000BC614E:0:15: ++%15li:-01000000000000057060516:1:15:-68719476736: ++%*15li:-01000000000000057060516:0:15: ++%15li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: ++%*15li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:15: ++%15li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:15:-2048: ++%*15li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:15: ++%15li:-9223372036854775809:1:15:-92233720368547: ++%*15li:-9223372036854775809:0:15: ++%15li:-0X8000000000000001:1:15:-140737488355328: ++%*15li:-0X8000000000000001:0:15: ++%15li:-0x8000000000000001:1:15:-140737488355328: ++%*15li:-0x8000000000000001:0:15: ++%15li:-01000000000000000000001:1:15:-68719476736: ++%*15li:-01000000000000000000001:0:15: ++%15li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: ++%*15li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:15: ++%15li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:15:-2048: ++%*15li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:15: ++%15li:-9223372036854775808:1:15:-92233720368547: ++%*15li:-9223372036854775808:0:15: ++%15li:-0X8000000000000000:1:15:-140737488355328: ++%*15li:-0X8000000000000000:0:15: ++%15li:-0x8000000000000000:1:15:-140737488355328: ++%*15li:-0x8000000000000000:0:15: ++%15li:-01000000000000000000000:1:15:-68719476736: ++%*15li:-01000000000000000000000:0:15: ++%15li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: ++%*15li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:15:-2048: ++%*15li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:-123:1:4:-123: ++%*15li:-123:0:4: ++%15li:-0X7b:1:5:-123: ++%*15li:-0X7b:0:5: ++%15li:-0x7B:1:5:-123: ++%*15li:-0x7B:0:5: ++%15li:-0173:1:5:-123: ++%*15li:-0173:0:5: ++%15li:-0B1111011:1:10:-123: ++%*15li:-0B1111011:0:10: ++%15li:-0b1111011:1:10:-123: ++%*15li:-0b1111011:0:10: ++%15li:-1:1:2:-1: ++%*15li:-1:0:2: ++%15li:-0X1:1:4:-1: ++%*15li:-0X1:0:4: ++%15li:-0x1:1:4:-1: ++%*15li:-0x1:0:4: ++%15li:-01:1:3:-1: ++%*15li:-01:0:3: ++%15li:-0B1:1:4:-1: ++%*15li:-0B1:0:4: ++%15li:-0b1:1:4:-1: ++%*15li:-0b1:0:4: ++%15li:-0:1:2:0: ++%*15li:-0:0:2: ++%15li:-0X0:1:4:0: ++%*15li:-0X0:0:4: ++%15li:-0x0:1:4:0: ++%*15li:-0x0:0:4: ++%15li:-00:1:3:0: ++%*15li:-00:0:3: ++%15li:-0B0:1:4:0: ++%*15li:-0B0:0:4: ++%15li:-0b0:1:4:0: ++%*15li:-0b0:0:4: ++%15li:0:1:1:0: ++%*15li:0:0:1: ++%15li:0X0:1:3:0: ++%*15li:0X0:0:3: ++%15li:0x0:1:3:0: ++%*15li:0x0:0:3: ++%15li:00:1:2:0: ++%*15li:00:0:2: ++%15li:0B0:1:3:0: ++%*15li:0B0:0:3: ++%15li:0b0:1:3:0: ++%*15li:0b0:0:3: ++%15li:1:1:1:1: ++%*15li:1:0:1: ++%15li:0X1:1:3:1: ++%*15li:0X1:0:3: ++%15li:0x1:1:3:1: ++%*15li:0x1:0:3: ++%15li:01:1:2:1: ++%*15li:01:0:2: ++%15li:0B1:1:3:1: ++%*15li:0B1:0:3: ++%15li:0b1:1:3:1: ++%*15li:0b1:0:3: ++%15li:42:1:2:42: ++%*15li:42:0:2: ++%15li:0X2a:1:4:42: ++%*15li:0X2a:0:4: ++%15li:0x2A:1:4:42: ++%*15li:0x2A:0:4: ++%15li:052:1:3:42: ++%*15li:052:0:3: ++%15li:0B101010:1:8:42: ++%*15li:0B101010:0:8: ++%15li:0b101010:1:8:42: ++%*15li:0b101010:0:8: ++%15li:9223372036854775807:1:15:922337203685477: ++%*15li:9223372036854775807:0:15: ++%15li:0X7fffffffffffffff:1:15:2251799813685247: ++%*15li:0X7fffffffffffffff:0:15: ++%15li:0x7FFFFFFFFFFFFFFF:1:15:2251799813685247: ++%*15li:0x7FFFFFFFFFFFFFFF:0:15: ++%15li:0777777777777777777777:1:15:4398046511103: ++%*15li:0777777777777777777777:0:15: ++%15li:0B111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15li:0B111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15li:0b111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15li:0b111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15li:9223372036854775808:1:15:922337203685477: ++%*15li:9223372036854775808:0:15: ++%15li:0X8000000000000000:1:15:2251799813685248: ++%*15li:0X8000000000000000:0:15: ++%15li:0x8000000000000000:1:15:2251799813685248: ++%*15li:0x8000000000000000:0:15: ++%15li:01000000000000000000000:1:15:549755813888: ++%*15li:01000000000000000000000:0:15: ++%15li:0B1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15li:0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:0b1000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15li:0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:9223372036897200049:1:15:922337203689720: ++%*15li:9223372036897200049:0:15: ++%15li:0X80000000028757b1:1:15:2251799813695605: ++%*15li:0X80000000028757b1:0:15: ++%15li:0x80000000028757B1:1:15:2251799813695605: ++%*15li:0x80000000028757B1:0:15: ++%15li:01000000000000241653661:1:15:549755813890: ++%*15li:01000000000000241653661:0:15: ++%15li:0B1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15li:0B1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15li:0b1000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15li:0b1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15li:+0:1:2:0: ++%*15li:+0:0:2: ++%15li:+0X0:1:4:0: ++%*15li:+0X0:0:4: ++%15li:+0x0:1:4:0: ++%*15li:+0x0:0:4: ++%15li:+00:1:3:0: ++%*15li:+00:0:3: ++%15li:+0B0:1:4:0: ++%*15li:+0B0:0:4: ++%15li:+0b0:1:4:0: ++%*15li:+0b0:0:4: ++%15li:+1:1:2:1: ++%*15li:+1:0:2: ++%15li:+0X1:1:4:1: ++%*15li:+0X1:0:4: ++%15li:+0x1:1:4:1: ++%*15li:+0x1:0:4: ++%15li:+01:1:3:1: ++%*15li:+01:0:3: ++%15li:+0B1:1:4:1: ++%*15li:+0B1:0:4: ++%15li:+0b1:1:4:1: ++%*15li:+0b1:0:4: ++%15li:+42:1:3:42: ++%*15li:+42:0:3: ++%15li:+0X2a:1:5:42: ++%*15li:+0X2a:0:5: ++%15li:+0x2A:1:5:42: ++%*15li:+0x2A:0:5: ++%15li:+052:1:4:42: ++%*15li:+052:0:4: ++%15li:+0B101010:1:9:42: ++%*15li:+0B101010:0:9: ++%15li:+0b101010:1:9:42: ++%*15li:+0b101010:0:9: ++%15li:+9223372036854775807:1:15:92233720368547: ++%*15li:+9223372036854775807:0:15: ++%15li:+0X7fffffffffffffff:1:15:140737488355327: ++%*15li:+0X7fffffffffffffff:0:15: ++%15li:+0x7FFFFFFFFFFFFFFF:1:15:140737488355327: ++%*15li:+0x7FFFFFFFFFFFFFFF:0:15: ++%15li:+0777777777777777777777:1:15:549755813887: ++%*15li:+0777777777777777777777:0:15: ++%15li:+0B111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15li:+0B111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15li:+0b111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15li:+0b111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15li:+9223372036854775808:1:15:92233720368547: ++%*15li:+9223372036854775808:0:15: ++%15li:+0X8000000000000000:1:15:140737488355328: ++%*15li:+0X8000000000000000:0:15: ++%15li:+0x8000000000000000:1:15:140737488355328: ++%*15li:+0x8000000000000000:0:15: ++%15li:+01000000000000000000000:1:15:68719476736: ++%*15li:+01000000000000000000000:0:15: ++%15li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15li:+9223372036897200049:1:15:92233720368972: ++%*15li:+9223372036897200049:0:15: ++%15li:+0X80000000028757b1:1:15:140737488355975: ++%*15li:+0X80000000028757b1:0:15: ++%15li:+0x80000000028757B1:1:15:140737488355975: ++%*15li:+0x80000000028757B1:0:15: ++%15li:+01000000000000241653661:1:15:68719476736: ++%*15li:+01000000000000241653661:0:15: ++%15li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:15: ++%25li::0:-1: ++%*25li::0:-1: ++%25li:-9223372036867121486:1:20:-9223372036854775808: ++%*25li:-9223372036867121486:0:20: ++%25li:-0X8000000000bc614e:1:19:-9223372036854775808: ++%*25li:-0X8000000000bc614e:0:19: ++%25li:-0x8000000000BC614E:1:19:-9223372036854775808: ++%*25li:-0x8000000000BC614E:0:19: ++%25li:-01000000000000057060516:1:24:-9223372036854775808: ++%*25li:-01000000000000057060516:0:24: ++%25li:-0B1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: ++%*25li:-0B1000000000000000000000000000000000000000101111000110000101001110:0:25: ++%25li:-0b1000000000000000000000000000000000000000101111000110000101001110:1:25:-2097152: ++%*25li:-0b1000000000000000000000000000000000000000101111000110000101001110:0:25: ++%25li:-9223372036854775809:1:20:-9223372036854775808: ++%*25li:-9223372036854775809:0:20: ++%25li:-0X8000000000000001:1:19:-9223372036854775808: ++%*25li:-0X8000000000000001:0:19: ++%25li:-0x8000000000000001:1:19:-9223372036854775808: ++%*25li:-0x8000000000000001:0:19: ++%25li:-01000000000000000000001:1:24:-9223372036854775808: ++%*25li:-01000000000000000000001:0:24: ++%25li:-0B1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: ++%*25li:-0B1000000000000000000000000000000000000000000000000000000000000001:0:25: ++%25li:-0b1000000000000000000000000000000000000000000000000000000000000001:1:25:-2097152: ++%*25li:-0b1000000000000000000000000000000000000000000000000000000000000001:0:25: ++%25li:-9223372036854775808:1:20:-9223372036854775808: ++%*25li:-9223372036854775808:0:20: ++%25li:-0X8000000000000000:1:19:-9223372036854775808: ++%*25li:-0X8000000000000000:0:19: ++%25li:-0x8000000000000000:1:19:-9223372036854775808: ++%*25li:-0x8000000000000000:0:19: ++%25li:-01000000000000000000000:1:24:-9223372036854775808: ++%*25li:-01000000000000000000000:0:24: ++%25li:-0B1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: ++%*25li:-0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:-0b1000000000000000000000000000000000000000000000000000000000000000:1:25:-2097152: ++%*25li:-0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:-123:1:4:-123: ++%*25li:-123:0:4: ++%25li:-0X7b:1:5:-123: ++%*25li:-0X7b:0:5: ++%25li:-0x7B:1:5:-123: ++%*25li:-0x7B:0:5: ++%25li:-0173:1:5:-123: ++%*25li:-0173:0:5: ++%25li:-0B1111011:1:10:-123: ++%*25li:-0B1111011:0:10: ++%25li:-0b1111011:1:10:-123: ++%*25li:-0b1111011:0:10: ++%25li:-1:1:2:-1: ++%*25li:-1:0:2: ++%25li:-0X1:1:4:-1: ++%*25li:-0X1:0:4: ++%25li:-0x1:1:4:-1: ++%*25li:-0x1:0:4: ++%25li:-01:1:3:-1: ++%*25li:-01:0:3: ++%25li:-0B1:1:4:-1: ++%*25li:-0B1:0:4: ++%25li:-0b1:1:4:-1: ++%*25li:-0b1:0:4: ++%25li:-0:1:2:0: ++%*25li:-0:0:2: ++%25li:-0X0:1:4:0: ++%*25li:-0X0:0:4: ++%25li:-0x0:1:4:0: ++%*25li:-0x0:0:4: ++%25li:-00:1:3:0: ++%*25li:-00:0:3: ++%25li:-0B0:1:4:0: ++%*25li:-0B0:0:4: ++%25li:-0b0:1:4:0: ++%*25li:-0b0:0:4: ++%25li:0:1:1:0: ++%*25li:0:0:1: ++%25li:0X0:1:3:0: ++%*25li:0X0:0:3: ++%25li:0x0:1:3:0: ++%*25li:0x0:0:3: ++%25li:00:1:2:0: ++%*25li:00:0:2: ++%25li:0B0:1:3:0: ++%*25li:0B0:0:3: ++%25li:0b0:1:3:0: ++%*25li:0b0:0:3: ++%25li:1:1:1:1: ++%*25li:1:0:1: ++%25li:0X1:1:3:1: ++%*25li:0X1:0:3: ++%25li:0x1:1:3:1: ++%*25li:0x1:0:3: ++%25li:01:1:2:1: ++%*25li:01:0:2: ++%25li:0B1:1:3:1: ++%*25li:0B1:0:3: ++%25li:0b1:1:3:1: ++%*25li:0b1:0:3: ++%25li:42:1:2:42: ++%*25li:42:0:2: ++%25li:0X2a:1:4:42: ++%*25li:0X2a:0:4: ++%25li:0x2A:1:4:42: ++%*25li:0x2A:0:4: ++%25li:052:1:3:42: ++%*25li:052:0:3: ++%25li:0B101010:1:8:42: ++%*25li:0B101010:0:8: ++%25li:0b101010:1:8:42: ++%*25li:0b101010:0:8: ++%25li:9223372036854775807:1:19:9223372036854775807: ++%*25li:9223372036854775807:0:19: ++%25li:0X7fffffffffffffff:1:18:9223372036854775807: ++%*25li:0X7fffffffffffffff:0:18: ++%25li:0x7FFFFFFFFFFFFFFF:1:18:9223372036854775807: ++%*25li:0x7FFFFFFFFFFFFFFF:0:18: ++%25li:0777777777777777777777:1:22:9223372036854775807: ++%*25li:0777777777777777777777:0:22: ++%25li:0B111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25li:0B111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25li:0b111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25li:0b111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25li:9223372036854775808:1:19:9223372036854775807: ++%*25li:9223372036854775808:0:19: ++%25li:0X8000000000000000:1:18:9223372036854775807: ++%*25li:0X8000000000000000:0:18: ++%25li:0x8000000000000000:1:18:9223372036854775807: ++%*25li:0x8000000000000000:0:18: ++%25li:01000000000000000000000:1:23:9223372036854775807: ++%*25li:01000000000000000000000:0:23: ++%25li:0B1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25li:0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:0b1000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25li:0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:9223372036897200049:1:19:9223372036854775807: ++%*25li:9223372036897200049:0:19: ++%25li:0X80000000028757b1:1:18:9223372036854775807: ++%*25li:0X80000000028757b1:0:18: ++%25li:0x80000000028757B1:1:18:9223372036854775807: ++%*25li:0x80000000028757B1:0:18: ++%25li:01000000000000241653661:1:23:9223372036854775807: ++%*25li:01000000000000241653661:0:23: ++%25li:0B1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25li:0B1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25li:0b1000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25li:0b1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25li:+0:1:2:0: ++%*25li:+0:0:2: ++%25li:+0X0:1:4:0: ++%*25li:+0X0:0:4: ++%25li:+0x0:1:4:0: ++%*25li:+0x0:0:4: ++%25li:+00:1:3:0: ++%*25li:+00:0:3: ++%25li:+0B0:1:4:0: ++%*25li:+0B0:0:4: ++%25li:+0b0:1:4:0: ++%*25li:+0b0:0:4: ++%25li:+1:1:2:1: ++%*25li:+1:0:2: ++%25li:+0X1:1:4:1: ++%*25li:+0X1:0:4: ++%25li:+0x1:1:4:1: ++%*25li:+0x1:0:4: ++%25li:+01:1:3:1: ++%*25li:+01:0:3: ++%25li:+0B1:1:4:1: ++%*25li:+0B1:0:4: ++%25li:+0b1:1:4:1: ++%*25li:+0b1:0:4: ++%25li:+42:1:3:42: ++%*25li:+42:0:3: ++%25li:+0X2a:1:5:42: ++%*25li:+0X2a:0:5: ++%25li:+0x2A:1:5:42: ++%*25li:+0x2A:0:5: ++%25li:+052:1:4:42: ++%*25li:+052:0:4: ++%25li:+0B101010:1:9:42: ++%*25li:+0B101010:0:9: ++%25li:+0b101010:1:9:42: ++%*25li:+0b101010:0:9: ++%25li:+9223372036854775807:1:20:9223372036854775807: ++%*25li:+9223372036854775807:0:20: ++%25li:+0X7fffffffffffffff:1:19:9223372036854775807: ++%*25li:+0X7fffffffffffffff:0:19: ++%25li:+0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*25li:+0x7FFFFFFFFFFFFFFF:0:19: ++%25li:+0777777777777777777777:1:23:9223372036854775807: ++%*25li:+0777777777777777777777:0:23: ++%25li:+0B111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25li:+0B111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25li:+0b111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25li:+0b111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25li:+9223372036854775808:1:20:9223372036854775807: ++%*25li:+9223372036854775808:0:20: ++%25li:+0X8000000000000000:1:19:9223372036854775807: ++%*25li:+0X8000000000000000:0:19: ++%25li:+0x8000000000000000:1:19:9223372036854775807: ++%*25li:+0x8000000000000000:0:19: ++%25li:+01000000000000000000000:1:24:9223372036854775807: ++%*25li:+01000000000000000000000:0:24: ++%25li:+0B1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25li:+0B1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:+0b1000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25li:+0b1000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25li:+9223372036897200049:1:20:9223372036854775807: ++%*25li:+9223372036897200049:0:20: ++%25li:+0X80000000028757b1:1:19:9223372036854775807: ++%*25li:+0X80000000028757b1:0:19: ++%25li:+0x80000000028757B1:1:19:9223372036854775807: ++%*25li:+0x80000000028757B1:0:19: ++%25li:+01000000000000241653661:1:24:9223372036854775807: ++%*25li:+01000000000000241653661:0:24: ++%25li:+0B1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25li:+0B1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25li:+0b1000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25li:+0b1000000000000000000000000000000000000010100001110101011110110001:0:25: ++%2li: :0:-1: ++%*2li: :0:-1: ++%2li: -9223372036867121486:1:3:-9: ++%*2li: -9223372036867121486:0:3: ++%2li: -0X8000000000bc614e:1:3:0: ++%*2li: -0X8000000000bc614e:0:3: ++%2li: -0x8000000000BC614E:1:3:0: ++%*2li: -0x8000000000BC614E:0:3: ++%2li: -01000000000000057060516:1:3:0: ++%*2li: -01000000000000057060516:0:3: ++%2li: -0B1000000000000000000000000000000000000000101111000110000101001110:1:3:0: ++%*2li: -0B1000000000000000000000000000000000000000101111000110000101001110:0:3: ++%2li: -0b1000000000000000000000000000000000000000101111000110000101001110:1:3:0: ++%*2li: -0b1000000000000000000000000000000000000000101111000110000101001110:0:3: ++%2li: -9223372036854775809:1:3:-9: ++%*2li: -9223372036854775809:0:3: ++%2li: -0X8000000000000001:1:3:0: ++%*2li: -0X8000000000000001:0:3: ++%2li: -0x8000000000000001:1:3:0: ++%*2li: -0x8000000000000001:0:3: ++%2li: -01000000000000000000001:1:3:0: ++%*2li: -01000000000000000000001:0:3: ++%2li: -0B1000000000000000000000000000000000000000000000000000000000000001:1:3:0: ++%*2li: -0B1000000000000000000000000000000000000000000000000000000000000001:0:3: ++%2li: -0b1000000000000000000000000000000000000000000000000000000000000001:1:3:0: ++%*2li: -0b1000000000000000000000000000000000000000000000000000000000000001:0:3: ++%2li: -9223372036854775808:1:3:-9: ++%*2li: -9223372036854775808:0:3: ++%2li: -0X8000000000000000:1:3:0: ++%*2li: -0X8000000000000000:0:3: ++%2li: -0x8000000000000000:1:3:0: ++%*2li: -0x8000000000000000:0:3: ++%2li: -01000000000000000000000:1:3:0: ++%*2li: -01000000000000000000000:0:3: ++%2li: -0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2li: -0B1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2li: -0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2li: -0b1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2li: -123:1:3:-1: ++%*2li: -123:0:3: ++%2li: -0X7b:1:3:0: ++%*2li: -0X7b:0:3: ++%2li: -0x7B:1:3:0: ++%*2li: -0x7B:0:3: ++%2li: -0173:1:3:0: ++%*2li: -0173:0:3: ++%2li: -0B1111011:1:3:0: ++%*2li: -0B1111011:0:3: ++%2li: -0b1111011:1:3:0: ++%*2li: -0b1111011:0:3: ++%2li: -1:1:3:-1: ++%*2li: -1:0:3: ++%2li: -0X1:1:3:0: ++%*2li: -0X1:0:3: ++%2li: -0x1:1:3:0: ++%*2li: -0x1:0:3: ++%2li: -01:1:3:0: ++%*2li: -01:0:3: ++%2li: -0B1:1:3:0: ++%*2li: -0B1:0:3: ++%2li: -0b1:1:3:0: ++%*2li: -0b1:0:3: ++%2li: -0:1:3:0: ++%*2li: -0:0:3: ++%2li: -0X0:1:3:0: ++%*2li: -0X0:0:3: ++%2li: -0x0:1:3:0: ++%*2li: -0x0:0:3: ++%2li: -00:1:3:0: ++%*2li: -00:0:3: ++%2li: -0B0:1:3:0: ++%*2li: -0B0:0:3: ++%2li: -0b0:1:3:0: ++%*2li: -0b0:0:3: ++%2li: 0:1:2:0: ++%*2li: 0:0:2: ++# BZ12701 %2li: 0X0:0:-1: ++# BZ12701 %*2li: 0X0:0:-1: ++# BZ12701 %2li: 0x0:0:-1: ++# BZ12701 %*2li: 0x0:0:-1: ++%2li: 00:1:3:0: ++%*2li: 00:0:3: ++# BZ12701 %2li: 0B0:0:-1: ++# BZ12701 %*2li: 0B0:0:-1: ++# BZ12701 %2li: 0b0:0:-1: ++# BZ12701 %*2li: 0b0:0:-1: ++%2li: 1:1:2:1: ++%*2li: 1:0:2: ++# BZ12701 %2li: 0X1:0:-1: ++# BZ12701 %*2li: 0X1:0:-1: ++# BZ12701 %2li: 0x1:0:-1: ++# BZ12701 %*2li: 0x1:0:-1: ++%2li: 01:1:3:1: ++%*2li: 01:0:3: ++# BZ12701 %2li: 0B1:0:-1: ++# BZ12701 %*2li: 0B1:0:-1: ++# BZ12701 %2li: 0b1:0:-1: ++# BZ12701 %*2li: 0b1:0:-1: ++%2li: 42:1:3:42: ++%*2li: 42:0:3: ++# BZ12701 %2li: 0X2a:0:-1: ++# BZ12701 %*2li: 0X2a:0:-1: ++# BZ12701 %2li: 0x2A:0:-1: ++# BZ12701 %*2li: 0x2A:0:-1: ++%2li: 052:1:3:5: ++%*2li: 052:0:3: ++# BZ12701 %2li: 0B101010:0:-1: ++# BZ12701 %*2li: 0B101010:0:-1: ++# BZ12701 %2li: 0b101010:0:-1: ++# BZ12701 %*2li: 0b101010:0:-1: ++%2li: 9223372036854775807:1:3:92: ++%*2li: 9223372036854775807:0:3: ++# BZ12701 %2li: 0X7fffffffffffffff:0:-1: ++# BZ12701 %*2li: 0X7fffffffffffffff:0:-1: ++# BZ12701 %2li: 0x7FFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2li: 0x7FFFFFFFFFFFFFFF:0:-1: ++%2li: 0777777777777777777777:1:3:7: ++%*2li: 0777777777777777777777:0:3: ++# BZ12701 %2li: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2li: 0B111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2li: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2li: 0b111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2li: 9223372036854775808:1:3:92: ++%*2li: 9223372036854775808:0:3: ++# BZ12701 %2li: 0X8000000000000000:0:-1: ++# BZ12701 %*2li: 0X8000000000000000:0:-1: ++# BZ12701 %2li: 0x8000000000000000:0:-1: ++# BZ12701 %*2li: 0x8000000000000000:0:-1: ++%2li: 01000000000000000000000:1:3:1: ++%*2li: 01000000000000000000000:0:3: ++# BZ12701 %2li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2li: 9223372036897200049:1:3:92: ++%*2li: 9223372036897200049:0:3: ++# BZ12701 %2li: 0X80000000028757b1:0:-1: ++# BZ12701 %*2li: 0X80000000028757b1:0:-1: ++# BZ12701 %2li: 0x80000000028757B1:0:-1: ++# BZ12701 %*2li: 0x80000000028757B1:0:-1: ++%2li: 01000000000000241653661:1:3:1: ++%*2li: 01000000000000241653661:0:3: ++# BZ12701 %2li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2li: +0:1:3:0: ++%*2li: +0:0:3: ++%2li: +0X0:1:3:0: ++%*2li: +0X0:0:3: ++%2li: +0x0:1:3:0: ++%*2li: +0x0:0:3: ++%2li: +00:1:3:0: ++%*2li: +00:0:3: ++%2li: +0B0:1:3:0: ++%*2li: +0B0:0:3: ++%2li: +0b0:1:3:0: ++%*2li: +0b0:0:3: ++%2li: +1:1:3:1: ++%*2li: +1:0:3: ++%2li: +0X1:1:3:0: ++%*2li: +0X1:0:3: ++%2li: +0x1:1:3:0: ++%*2li: +0x1:0:3: ++%2li: +01:1:3:0: ++%*2li: +01:0:3: ++%2li: +0B1:1:3:0: ++%*2li: +0B1:0:3: ++%2li: +0b1:1:3:0: ++%*2li: +0b1:0:3: ++%2li: +42:1:3:4: ++%*2li: +42:0:3: ++%2li: +0X2a:1:3:0: ++%*2li: +0X2a:0:3: ++%2li: +0x2A:1:3:0: ++%*2li: +0x2A:0:3: ++%2li: +052:1:3:0: ++%*2li: +052:0:3: ++%2li: +0B101010:1:3:0: ++%*2li: +0B101010:0:3: ++%2li: +0b101010:1:3:0: ++%*2li: +0b101010:0:3: ++%2li: +9223372036854775807:1:3:9: ++%*2li: +9223372036854775807:0:3: ++%2li: +0X7fffffffffffffff:1:3:0: ++%*2li: +0X7fffffffffffffff:0:3: ++%2li: +0x7FFFFFFFFFFFFFFF:1:3:0: ++%*2li: +0x7FFFFFFFFFFFFFFF:0:3: ++%2li: +0777777777777777777777:1:3:0: ++%*2li: +0777777777777777777777:0:3: ++%2li: +0B111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2li: +0B111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2li: +0b111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2li: +0b111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2li: +9223372036854775808:1:3:9: ++%*2li: +9223372036854775808:0:3: ++%2li: +0X8000000000000000:1:3:0: ++%*2li: +0X8000000000000000:0:3: ++%2li: +0x8000000000000000:1:3:0: ++%*2li: +0x8000000000000000:0:3: ++%2li: +01000000000000000000000:1:3:0: ++%*2li: +01000000000000000000000:0:3: ++%2li: +0B1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2li: +0B1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2li: +0b1000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2li: +0b1000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2li: +9223372036897200049:1:3:9: ++%*2li: +9223372036897200049:0:3: ++%2li: +0X80000000028757b1:1:3:0: ++%*2li: +0X80000000028757b1:0:3: ++%2li: +0x80000000028757B1:1:3:0: ++%*2li: +0x80000000028757B1:0:3: ++%2li: +01000000000000241653661:1:3:0: ++%*2li: +01000000000000241653661:0:3: ++%2li: +0B1000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2li: +0B1000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2li: +0b1000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2li: +0b1000000000000000000000000000000000000010100001110101011110110001:0:3: ++%25li: :0:-1: ++%*25li: :0:-1: ++%25li: -9223372036867121486:1:21:-9223372036854775808: ++%*25li: -9223372036867121486:0:21: ++%25li: -0X8000000000bc614e:1:20:-9223372036854775808: ++%*25li: -0X8000000000bc614e:0:20: ++%25li: -0x8000000000BC614E:1:20:-9223372036854775808: ++%*25li: -0x8000000000BC614E:0:20: ++%25li: -01000000000000057060516:1:25:-9223372036854775808: ++%*25li: -01000000000000057060516:0:25: ++%25li: -0B1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: ++%*25li: -0B1000000000000000000000000000000000000000101111000110000101001110:0:26: ++%25li: -0b1000000000000000000000000000000000000000101111000110000101001110:1:26:-2097152: ++%*25li: -0b1000000000000000000000000000000000000000101111000110000101001110:0:26: ++%25li: -9223372036854775809:1:21:-9223372036854775808: ++%*25li: -9223372036854775809:0:21: ++%25li: -0X8000000000000001:1:20:-9223372036854775808: ++%*25li: -0X8000000000000001:0:20: ++%25li: -0x8000000000000001:1:20:-9223372036854775808: ++%*25li: -0x8000000000000001:0:20: ++%25li: -01000000000000000000001:1:25:-9223372036854775808: ++%*25li: -01000000000000000000001:0:25: ++%25li: -0B1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: ++%*25li: -0B1000000000000000000000000000000000000000000000000000000000000001:0:26: ++%25li: -0b1000000000000000000000000000000000000000000000000000000000000001:1:26:-2097152: ++%*25li: -0b1000000000000000000000000000000000000000000000000000000000000001:0:26: ++%25li: -9223372036854775808:1:21:-9223372036854775808: ++%*25li: -9223372036854775808:0:21: ++%25li: -0X8000000000000000:1:20:-9223372036854775808: ++%*25li: -0X8000000000000000:0:20: ++%25li: -0x8000000000000000:1:20:-9223372036854775808: ++%*25li: -0x8000000000000000:0:20: ++%25li: -01000000000000000000000:1:25:-9223372036854775808: ++%*25li: -01000000000000000000000:0:25: ++%25li: -0B1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: ++%*25li: -0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: -0b1000000000000000000000000000000000000000000000000000000000000000:1:26:-2097152: ++%*25li: -0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: -123:1:5:-123: ++%*25li: -123:0:5: ++%25li: -0X7b:1:6:-123: ++%*25li: -0X7b:0:6: ++%25li: -0x7B:1:6:-123: ++%*25li: -0x7B:0:6: ++%25li: -0173:1:6:-123: ++%*25li: -0173:0:6: ++%25li: -0B1111011:1:11:-123: ++%*25li: -0B1111011:0:11: ++%25li: -0b1111011:1:11:-123: ++%*25li: -0b1111011:0:11: ++%25li: -1:1:3:-1: ++%*25li: -1:0:3: ++%25li: -0X1:1:5:-1: ++%*25li: -0X1:0:5: ++%25li: -0x1:1:5:-1: ++%*25li: -0x1:0:5: ++%25li: -01:1:4:-1: ++%*25li: -01:0:4: ++%25li: -0B1:1:5:-1: ++%*25li: -0B1:0:5: ++%25li: -0b1:1:5:-1: ++%*25li: -0b1:0:5: ++%25li: -0:1:3:0: ++%*25li: -0:0:3: ++%25li: -0X0:1:5:0: ++%*25li: -0X0:0:5: ++%25li: -0x0:1:5:0: ++%*25li: -0x0:0:5: ++%25li: -00:1:4:0: ++%*25li: -00:0:4: ++%25li: -0B0:1:5:0: ++%*25li: -0B0:0:5: ++%25li: -0b0:1:5:0: ++%*25li: -0b0:0:5: ++%25li: 0:1:2:0: ++%*25li: 0:0:2: ++%25li: 0X0:1:4:0: ++%*25li: 0X0:0:4: ++%25li: 0x0:1:4:0: ++%*25li: 0x0:0:4: ++%25li: 00:1:3:0: ++%*25li: 00:0:3: ++%25li: 0B0:1:4:0: ++%*25li: 0B0:0:4: ++%25li: 0b0:1:4:0: ++%*25li: 0b0:0:4: ++%25li: 1:1:2:1: ++%*25li: 1:0:2: ++%25li: 0X1:1:4:1: ++%*25li: 0X1:0:4: ++%25li: 0x1:1:4:1: ++%*25li: 0x1:0:4: ++%25li: 01:1:3:1: ++%*25li: 01:0:3: ++%25li: 0B1:1:4:1: ++%*25li: 0B1:0:4: ++%25li: 0b1:1:4:1: ++%*25li: 0b1:0:4: ++%25li: 42:1:3:42: ++%*25li: 42:0:3: ++%25li: 0X2a:1:5:42: ++%*25li: 0X2a:0:5: ++%25li: 0x2A:1:5:42: ++%*25li: 0x2A:0:5: ++%25li: 052:1:4:42: ++%*25li: 052:0:4: ++%25li: 0B101010:1:9:42: ++%*25li: 0B101010:0:9: ++%25li: 0b101010:1:9:42: ++%*25li: 0b101010:0:9: ++%25li: 9223372036854775807:1:20:9223372036854775807: ++%*25li: 9223372036854775807:0:20: ++%25li: 0X7fffffffffffffff:1:19:9223372036854775807: ++%*25li: 0X7fffffffffffffff:0:19: ++%25li: 0x7FFFFFFFFFFFFFFF:1:19:9223372036854775807: ++%*25li: 0x7FFFFFFFFFFFFFFF:0:19: ++%25li: 0777777777777777777777:1:23:9223372036854775807: ++%*25li: 0777777777777777777777:0:23: ++%25li: 0B111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25li: 0B111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25li: 0b111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25li: 0b111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25li: 9223372036854775808:1:20:9223372036854775807: ++%*25li: 9223372036854775808:0:20: ++%25li: 0X8000000000000000:1:19:9223372036854775807: ++%*25li: 0X8000000000000000:0:19: ++%25li: 0x8000000000000000:1:19:9223372036854775807: ++%*25li: 0x8000000000000000:0:19: ++%25li: 01000000000000000000000:1:24:9223372036854775807: ++%*25li: 01000000000000000000000:0:24: ++%25li: 0B1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25li: 0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: 0b1000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25li: 0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: 9223372036897200049:1:20:9223372036854775807: ++%*25li: 9223372036897200049:0:20: ++%25li: 0X80000000028757b1:1:19:9223372036854775807: ++%*25li: 0X80000000028757b1:0:19: ++%25li: 0x80000000028757B1:1:19:9223372036854775807: ++%*25li: 0x80000000028757B1:0:19: ++%25li: 01000000000000241653661:1:24:9223372036854775807: ++%*25li: 01000000000000241653661:0:24: ++%25li: 0B1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25li: 0B1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25li: 0b1000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25li: 0b1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25li: +0:1:3:0: ++%*25li: +0:0:3: ++%25li: +0X0:1:5:0: ++%*25li: +0X0:0:5: ++%25li: +0x0:1:5:0: ++%*25li: +0x0:0:5: ++%25li: +00:1:4:0: ++%*25li: +00:0:4: ++%25li: +0B0:1:5:0: ++%*25li: +0B0:0:5: ++%25li: +0b0:1:5:0: ++%*25li: +0b0:0:5: ++%25li: +1:1:3:1: ++%*25li: +1:0:3: ++%25li: +0X1:1:5:1: ++%*25li: +0X1:0:5: ++%25li: +0x1:1:5:1: ++%*25li: +0x1:0:5: ++%25li: +01:1:4:1: ++%*25li: +01:0:4: ++%25li: +0B1:1:5:1: ++%*25li: +0B1:0:5: ++%25li: +0b1:1:5:1: ++%*25li: +0b1:0:5: ++%25li: +42:1:4:42: ++%*25li: +42:0:4: ++%25li: +0X2a:1:6:42: ++%*25li: +0X2a:0:6: ++%25li: +0x2A:1:6:42: ++%*25li: +0x2A:0:6: ++%25li: +052:1:5:42: ++%*25li: +052:0:5: ++%25li: +0B101010:1:10:42: ++%*25li: +0B101010:0:10: ++%25li: +0b101010:1:10:42: ++%*25li: +0b101010:0:10: ++%25li: +9223372036854775807:1:21:9223372036854775807: ++%*25li: +9223372036854775807:0:21: ++%25li: +0X7fffffffffffffff:1:20:9223372036854775807: ++%*25li: +0X7fffffffffffffff:0:20: ++%25li: +0x7FFFFFFFFFFFFFFF:1:20:9223372036854775807: ++%*25li: +0x7FFFFFFFFFFFFFFF:0:20: ++%25li: +0777777777777777777777:1:24:9223372036854775807: ++%*25li: +0777777777777777777777:0:24: ++%25li: +0B111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25li: +0B111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25li: +0b111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25li: +0b111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25li: +9223372036854775808:1:21:9223372036854775807: ++%*25li: +9223372036854775808:0:21: ++%25li: +0X8000000000000000:1:20:9223372036854775807: ++%*25li: +0X8000000000000000:0:20: ++%25li: +0x8000000000000000:1:20:9223372036854775807: ++%*25li: +0x8000000000000000:0:20: ++%25li: +01000000000000000000000:1:25:9223372036854775807: ++%*25li: +01000000000000000000000:0:25: ++%25li: +0B1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25li: +0B1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: +0b1000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25li: +0b1000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25li: +9223372036897200049:1:21:9223372036854775807: ++%*25li: +9223372036897200049:0:21: ++%25li: +0X80000000028757b1:1:20:9223372036854775807: ++%*25li: +0X80000000028757b1:0:20: ++%25li: +0x80000000028757B1:1:20:9223372036854775807: ++%*25li: +0x80000000028757B1:0:20: ++%25li: +01000000000000241653661:1:25:9223372036854775807: ++%*25li: +01000000000000241653661:0:25: ++%25li: +0B1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25li: +0B1000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25li: +0b1000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25li: +0b1000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-b.input b/sysdeps/wordsize-64/tst-scanf-format-uint-b.input +new file mode 100644 +index 0000000000000000..7915af7adcaa4d9f +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-uint-b.input +@@ -0,0 +1,644 @@ ++%b::0:-1: ++%*b::0:-1: ++%b:-1111011:1:8:4294967173: ++%*b:-1111011:0:8: ++%b:-0B1111011:1:10:4294967173: ++%*b:-0B1111011:0:10: ++%b:-0b1111011:1:10:4294967173: ++%*b:-0b1111011:0:10: ++%b:-1:1:2:4294967295: ++%*b:-1:0:2: ++%b:-0B1:1:4:4294967295: ++%*b:-0B1:0:4: ++%b:-0b1:1:4:4294967295: ++%*b:-0b1:0:4: ++%b:-0:1:2:0: ++%*b:-0:0:2: ++%b:-0B0:1:4:0: ++%*b:-0B0:0:4: ++%b:-0b0:1:4:0: ++%*b:-0b0:0:4: ++%b:0:1:1:0: ++%*b:0:0:1: ++%b:0B0:1:3:0: ++%*b:0B0:0:3: ++%b:0b0:1:3:0: ++%*b:0b0:0:3: ++%b:1:1:1:1: ++%*b:1:0:1: ++%b:0B1:1:3:1: ++%*b:0B1:0:3: ++%b:0b1:1:3:1: ++%*b:0b1:0:3: ++%b:101010:1:6:42: ++%*b:101010:0:6: ++%b:0B101010:1:8:42: ++%*b:0B101010:0:8: ++%b:0b101010:1:8:42: ++%*b:0b101010:0:8: ++%b:11111111111111111111111111111111:1:32:4294967295: ++%*b:11111111111111111111111111111111:0:32: ++%b:0B11111111111111111111111111111111:1:34:4294967295: ++%*b:0B11111111111111111111111111111111:0:34: ++%b:0b11111111111111111111111111111111:1:34:4294967295: ++%*b:0b11111111111111111111111111111111:0:34: ++%b:100000000000000000000000000000000:1:33:0: ++%*b:100000000000000000000000000000000:0:33: ++%b:0B100000000000000000000000000000000:1:35:0: ++%*b:0B100000000000000000000000000000000:0:35: ++%b:0b100000000000000000000000000000000:1:35:0: ++%*b:0b100000000000000000000000000000000:0:35: ++%b:100000000000000000001000010010001:1:33:4241: ++%*b:100000000000000000001000010010001:0:33: ++%b:0B100000000000000000001000010010001:1:35:4241: ++%*b:0B100000000000000000001000010010001:0:35: ++%b:0b100000000000000000001000010010001:1:35:4241: ++%*b:0b100000000000000000001000010010001:0:35: ++%b:+0:1:2:0: ++%*b:+0:0:2: ++%b:+0B0:1:4:0: ++%*b:+0B0:0:4: ++%b:+0b0:1:4:0: ++%*b:+0b0:0:4: ++%b:+1:1:2:1: ++%*b:+1:0:2: ++%b:+0B1:1:4:1: ++%*b:+0B1:0:4: ++%b:+0b1:1:4:1: ++%*b:+0b1:0:4: ++%b:+101010:1:7:42: ++%*b:+101010:0:7: ++%b:+0B101010:1:9:42: ++%*b:+0B101010:0:9: ++%b:+0b101010:1:9:42: ++%*b:+0b101010:0:9: ++%b:+11111111111111111111111111111111:1:33:4294967295: ++%*b:+11111111111111111111111111111111:0:33: ++%b:+0B11111111111111111111111111111111:1:35:4294967295: ++%*b:+0B11111111111111111111111111111111:0:35: ++%b:+0b11111111111111111111111111111111:1:35:4294967295: ++%*b:+0b11111111111111111111111111111111:0:35: ++%b:+100000000000000000000000000000000:1:34:0: ++%*b:+100000000000000000000000000000000:0:34: ++%b:+0B100000000000000000000000000000000:1:36:0: ++%*b:+0B100000000000000000000000000000000:0:36: ++%b:+0b100000000000000000000000000000000:1:36:0: ++%*b:+0b100000000000000000000000000000000:0:36: ++%b:+100000000000000000001000010010001:1:34:4241: ++%*b:+100000000000000000001000010010001:0:34: ++%b:+0B100000000000000000001000010010001:1:36:4241: ++%*b:+0B100000000000000000001000010010001:0:36: ++%b:+0b100000000000000000001000010010001:1:36:4241: ++%*b:+0b100000000000000000001000010010001:0:36: ++%1b::0:-1: ++%*1b::0:-1: ++%1b:-1111011:0:-1: ++%*1b:-1111011:0:-1: ++%1b:-0B1111011:0:-1: ++%*1b:-0B1111011:0:-1: ++%1b:-0b1111011:0:-1: ++%*1b:-0b1111011:0:-1: ++%1b:-1:0:-1: ++%*1b:-1:0:-1: ++%1b:-0B1:0:-1: ++%*1b:-0B1:0:-1: ++%1b:-0b1:0:-1: ++%*1b:-0b1:0:-1: ++%1b:-0:0:-1: ++%*1b:-0:0:-1: ++%1b:-0B0:0:-1: ++%*1b:-0B0:0:-1: ++%1b:-0b0:0:-1: ++%*1b:-0b0:0:-1: ++%1b:0:1:1:0: ++%*1b:0:0:1: ++%1b:0B0:1:1:0: ++%*1b:0B0:0:1: ++%1b:0b0:1:1:0: ++%*1b:0b0:0:1: ++%1b:1:1:1:1: ++%*1b:1:0:1: ++%1b:0B1:1:1:0: ++%*1b:0B1:0:1: ++%1b:0b1:1:1:0: ++%*1b:0b1:0:1: ++%1b:101010:1:1:1: ++%*1b:101010:0:1: ++%1b:0B101010:1:1:0: ++%*1b:0B101010:0:1: ++%1b:0b101010:1:1:0: ++%*1b:0b101010:0:1: ++%1b:11111111111111111111111111111111:1:1:1: ++%*1b:11111111111111111111111111111111:0:1: ++%1b:0B11111111111111111111111111111111:1:1:0: ++%*1b:0B11111111111111111111111111111111:0:1: ++%1b:0b11111111111111111111111111111111:1:1:0: ++%*1b:0b11111111111111111111111111111111:0:1: ++%1b:100000000000000000000000000000000:1:1:1: ++%*1b:100000000000000000000000000000000:0:1: ++%1b:0B100000000000000000000000000000000:1:1:0: ++%*1b:0B100000000000000000000000000000000:0:1: ++%1b:0b100000000000000000000000000000000:1:1:0: ++%*1b:0b100000000000000000000000000000000:0:1: ++%1b:100000000000000000001000010010001:1:1:1: ++%*1b:100000000000000000001000010010001:0:1: ++%1b:0B100000000000000000001000010010001:1:1:0: ++%*1b:0B100000000000000000001000010010001:0:1: ++%1b:0b100000000000000000001000010010001:1:1:0: ++%*1b:0b100000000000000000001000010010001:0:1: ++%1b:+0:0:-1: ++%*1b:+0:0:-1: ++%1b:+0B0:0:-1: ++%*1b:+0B0:0:-1: ++%1b:+0b0:0:-1: ++%*1b:+0b0:0:-1: ++%1b:+1:0:-1: ++%*1b:+1:0:-1: ++%1b:+0B1:0:-1: ++%*1b:+0B1:0:-1: ++%1b:+0b1:0:-1: ++%*1b:+0b1:0:-1: ++%1b:+101010:0:-1: ++%*1b:+101010:0:-1: ++%1b:+0B101010:0:-1: ++%*1b:+0B101010:0:-1: ++%1b:+0b101010:0:-1: ++%*1b:+0b101010:0:-1: ++%1b:+11111111111111111111111111111111:0:-1: ++%*1b:+11111111111111111111111111111111:0:-1: ++%1b:+0B11111111111111111111111111111111:0:-1: ++%*1b:+0B11111111111111111111111111111111:0:-1: ++%1b:+0b11111111111111111111111111111111:0:-1: ++%*1b:+0b11111111111111111111111111111111:0:-1: ++%1b:+100000000000000000000000000000000:0:-1: ++%*1b:+100000000000000000000000000000000:0:-1: ++%1b:+0B100000000000000000000000000000000:0:-1: ++%*1b:+0B100000000000000000000000000000000:0:-1: ++%1b:+0b100000000000000000000000000000000:0:-1: ++%*1b:+0b100000000000000000000000000000000:0:-1: ++%1b:+100000000000000000001000010010001:0:-1: ++%*1b:+100000000000000000001000010010001:0:-1: ++%1b:+0B100000000000000000001000010010001:0:-1: ++%*1b:+0B100000000000000000001000010010001:0:-1: ++%1b:+0b100000000000000000001000010010001:0:-1: ++%*1b:+0b100000000000000000001000010010001:0:-1: ++%2b::0:-1: ++%*2b::0:-1: ++%2b:-1111011:1:2:4294967295: ++%*2b:-1111011:0:2: ++%2b:-0B1111011:1:2:0: ++%*2b:-0B1111011:0:2: ++%2b:-0b1111011:1:2:0: ++%*2b:-0b1111011:0:2: ++%2b:-1:1:2:4294967295: ++%*2b:-1:0:2: ++%2b:-0B1:1:2:0: ++%*2b:-0B1:0:2: ++%2b:-0b1:1:2:0: ++%*2b:-0b1:0:2: ++%2b:-0:1:2:0: ++%*2b:-0:0:2: ++%2b:-0B0:1:2:0: ++%*2b:-0B0:0:2: ++%2b:-0b0:1:2:0: ++%*2b:-0b0:0:2: ++%2b:0:1:1:0: ++%*2b:0:0:1: ++# BZ12701 %2b:0B0:0:-1: ++# BZ12701 %*2b:0B0:0:-1: ++# BZ12701 %2b:0b0:0:-1: ++# BZ12701 %*2b:0b0:0:-1: ++%2b:1:1:1:1: ++%*2b:1:0:1: ++# BZ12701 %2b:0B1:0:-1: ++# BZ12701 %*2b:0B1:0:-1: ++# BZ12701 %2b:0b1:0:-1: ++# BZ12701 %*2b:0b1:0:-1: ++%2b:101010:1:2:2: ++%*2b:101010:0:2: ++# BZ12701 %2b:0B101010:0:-1: ++# BZ12701 %*2b:0B101010:0:-1: ++# BZ12701 %2b:0b101010:0:-1: ++# BZ12701 %*2b:0b101010:0:-1: ++%2b:11111111111111111111111111111111:1:2:3: ++%*2b:11111111111111111111111111111111:0:2: ++# BZ12701 %2b:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b:0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2b:0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b:0b11111111111111111111111111111111:0:-1: ++%2b:100000000000000000000000000000000:1:2:2: ++%*2b:100000000000000000000000000000000:0:2: ++# BZ12701 %2b:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b:0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2b:0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b:0b100000000000000000000000000000000:0:-1: ++%2b:100000000000000000001000010010001:1:2:2: ++%*2b:100000000000000000001000010010001:0:2: ++# BZ12701 %2b:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b:0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2b:0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b:0b100000000000000000001000010010001:0:-1: ++%2b:+0:1:2:0: ++%*2b:+0:0:2: ++%2b:+0B0:1:2:0: ++%*2b:+0B0:0:2: ++%2b:+0b0:1:2:0: ++%*2b:+0b0:0:2: ++%2b:+1:1:2:1: ++%*2b:+1:0:2: ++%2b:+0B1:1:2:0: ++%*2b:+0B1:0:2: ++%2b:+0b1:1:2:0: ++%*2b:+0b1:0:2: ++%2b:+101010:1:2:1: ++%*2b:+101010:0:2: ++%2b:+0B101010:1:2:0: ++%*2b:+0B101010:0:2: ++%2b:+0b101010:1:2:0: ++%*2b:+0b101010:0:2: ++%2b:+11111111111111111111111111111111:1:2:1: ++%*2b:+11111111111111111111111111111111:0:2: ++%2b:+0B11111111111111111111111111111111:1:2:0: ++%*2b:+0B11111111111111111111111111111111:0:2: ++%2b:+0b11111111111111111111111111111111:1:2:0: ++%*2b:+0b11111111111111111111111111111111:0:2: ++%2b:+100000000000000000000000000000000:1:2:1: ++%*2b:+100000000000000000000000000000000:0:2: ++%2b:+0B100000000000000000000000000000000:1:2:0: ++%*2b:+0B100000000000000000000000000000000:0:2: ++%2b:+0b100000000000000000000000000000000:1:2:0: ++%*2b:+0b100000000000000000000000000000000:0:2: ++%2b:+100000000000000000001000010010001:1:2:1: ++%*2b:+100000000000000000001000010010001:0:2: ++%2b:+0B100000000000000000001000010010001:1:2:0: ++%*2b:+0B100000000000000000001000010010001:0:2: ++%2b:+0b100000000000000000001000010010001:1:2:0: ++%*2b:+0b100000000000000000001000010010001:0:2: ++%8b::0:-1: ++%*8b::0:-1: ++%8b:-1111011:1:8:4294967173: ++%*8b:-1111011:0:8: ++%8b:-0B1111011:1:8:4294967266: ++%*8b:-0B1111011:0:8: ++%8b:-0b1111011:1:8:4294967266: ++%*8b:-0b1111011:0:8: ++%8b:-1:1:2:4294967295: ++%*8b:-1:0:2: ++%8b:-0B1:1:4:4294967295: ++%*8b:-0B1:0:4: ++%8b:-0b1:1:4:4294967295: ++%*8b:-0b1:0:4: ++%8b:-0:1:2:0: ++%*8b:-0:0:2: ++%8b:-0B0:1:4:0: ++%*8b:-0B0:0:4: ++%8b:-0b0:1:4:0: ++%*8b:-0b0:0:4: ++%8b:0:1:1:0: ++%*8b:0:0:1: ++%8b:0B0:1:3:0: ++%*8b:0B0:0:3: ++%8b:0b0:1:3:0: ++%*8b:0b0:0:3: ++%8b:1:1:1:1: ++%*8b:1:0:1: ++%8b:0B1:1:3:1: ++%*8b:0B1:0:3: ++%8b:0b1:1:3:1: ++%*8b:0b1:0:3: ++%8b:101010:1:6:42: ++%*8b:101010:0:6: ++%8b:0B101010:1:8:42: ++%*8b:0B101010:0:8: ++%8b:0b101010:1:8:42: ++%*8b:0b101010:0:8: ++%8b:11111111111111111111111111111111:1:8:255: ++%*8b:11111111111111111111111111111111:0:8: ++%8b:0B11111111111111111111111111111111:1:8:63: ++%*8b:0B11111111111111111111111111111111:0:8: ++%8b:0b11111111111111111111111111111111:1:8:63: ++%*8b:0b11111111111111111111111111111111:0:8: ++%8b:100000000000000000000000000000000:1:8:128: ++%*8b:100000000000000000000000000000000:0:8: ++%8b:0B100000000000000000000000000000000:1:8:32: ++%*8b:0B100000000000000000000000000000000:0:8: ++%8b:0b100000000000000000000000000000000:1:8:32: ++%*8b:0b100000000000000000000000000000000:0:8: ++%8b:100000000000000000001000010010001:1:8:128: ++%*8b:100000000000000000001000010010001:0:8: ++%8b:0B100000000000000000001000010010001:1:8:32: ++%*8b:0B100000000000000000001000010010001:0:8: ++%8b:0b100000000000000000001000010010001:1:8:32: ++%*8b:0b100000000000000000001000010010001:0:8: ++%8b:+0:1:2:0: ++%*8b:+0:0:2: ++%8b:+0B0:1:4:0: ++%*8b:+0B0:0:4: ++%8b:+0b0:1:4:0: ++%*8b:+0b0:0:4: ++%8b:+1:1:2:1: ++%*8b:+1:0:2: ++%8b:+0B1:1:4:1: ++%*8b:+0B1:0:4: ++%8b:+0b1:1:4:1: ++%*8b:+0b1:0:4: ++%8b:+101010:1:7:42: ++%*8b:+101010:0:7: ++%8b:+0B101010:1:8:21: ++%*8b:+0B101010:0:8: ++%8b:+0b101010:1:8:21: ++%*8b:+0b101010:0:8: ++%8b:+11111111111111111111111111111111:1:8:127: ++%*8b:+11111111111111111111111111111111:0:8: ++%8b:+0B11111111111111111111111111111111:1:8:31: ++%*8b:+0B11111111111111111111111111111111:0:8: ++%8b:+0b11111111111111111111111111111111:1:8:31: ++%*8b:+0b11111111111111111111111111111111:0:8: ++%8b:+100000000000000000000000000000000:1:8:64: ++%*8b:+100000000000000000000000000000000:0:8: ++%8b:+0B100000000000000000000000000000000:1:8:16: ++%*8b:+0B100000000000000000000000000000000:0:8: ++%8b:+0b100000000000000000000000000000000:1:8:16: ++%*8b:+0b100000000000000000000000000000000:0:8: ++%8b:+100000000000000000001000010010001:1:8:64: ++%*8b:+100000000000000000001000010010001:0:8: ++%8b:+0B100000000000000000001000010010001:1:8:16: ++%*8b:+0B100000000000000000001000010010001:0:8: ++%8b:+0b100000000000000000001000010010001:1:8:16: ++%*8b:+0b100000000000000000001000010010001:0:8: ++%15b::0:-1: ++%*15b::0:-1: ++%15b:-1111011:1:8:4294967173: ++%*15b:-1111011:0:8: ++%15b:-0B1111011:1:10:4294967173: ++%*15b:-0B1111011:0:10: ++%15b:-0b1111011:1:10:4294967173: ++%*15b:-0b1111011:0:10: ++%15b:-1:1:2:4294967295: ++%*15b:-1:0:2: ++%15b:-0B1:1:4:4294967295: ++%*15b:-0B1:0:4: ++%15b:-0b1:1:4:4294967295: ++%*15b:-0b1:0:4: ++%15b:-0:1:2:0: ++%*15b:-0:0:2: ++%15b:-0B0:1:4:0: ++%*15b:-0B0:0:4: ++%15b:-0b0:1:4:0: ++%*15b:-0b0:0:4: ++%15b:0:1:1:0: ++%*15b:0:0:1: ++%15b:0B0:1:3:0: ++%*15b:0B0:0:3: ++%15b:0b0:1:3:0: ++%*15b:0b0:0:3: ++%15b:1:1:1:1: ++%*15b:1:0:1: ++%15b:0B1:1:3:1: ++%*15b:0B1:0:3: ++%15b:0b1:1:3:1: ++%*15b:0b1:0:3: ++%15b:101010:1:6:42: ++%*15b:101010:0:6: ++%15b:0B101010:1:8:42: ++%*15b:0B101010:0:8: ++%15b:0b101010:1:8:42: ++%*15b:0b101010:0:8: ++%15b:11111111111111111111111111111111:1:15:32767: ++%*15b:11111111111111111111111111111111:0:15: ++%15b:0B11111111111111111111111111111111:1:15:8191: ++%*15b:0B11111111111111111111111111111111:0:15: ++%15b:0b11111111111111111111111111111111:1:15:8191: ++%*15b:0b11111111111111111111111111111111:0:15: ++%15b:100000000000000000000000000000000:1:15:16384: ++%*15b:100000000000000000000000000000000:0:15: ++%15b:0B100000000000000000000000000000000:1:15:4096: ++%*15b:0B100000000000000000000000000000000:0:15: ++%15b:0b100000000000000000000000000000000:1:15:4096: ++%*15b:0b100000000000000000000000000000000:0:15: ++%15b:100000000000000000001000010010001:1:15:16384: ++%*15b:100000000000000000001000010010001:0:15: ++%15b:0B100000000000000000001000010010001:1:15:4096: ++%*15b:0B100000000000000000001000010010001:0:15: ++%15b:0b100000000000000000001000010010001:1:15:4096: ++%*15b:0b100000000000000000001000010010001:0:15: ++%15b:+0:1:2:0: ++%*15b:+0:0:2: ++%15b:+0B0:1:4:0: ++%*15b:+0B0:0:4: ++%15b:+0b0:1:4:0: ++%*15b:+0b0:0:4: ++%15b:+1:1:2:1: ++%*15b:+1:0:2: ++%15b:+0B1:1:4:1: ++%*15b:+0B1:0:4: ++%15b:+0b1:1:4:1: ++%*15b:+0b1:0:4: ++%15b:+101010:1:7:42: ++%*15b:+101010:0:7: ++%15b:+0B101010:1:9:42: ++%*15b:+0B101010:0:9: ++%15b:+0b101010:1:9:42: ++%*15b:+0b101010:0:9: ++%15b:+11111111111111111111111111111111:1:15:16383: ++%*15b:+11111111111111111111111111111111:0:15: ++%15b:+0B11111111111111111111111111111111:1:15:4095: ++%*15b:+0B11111111111111111111111111111111:0:15: ++%15b:+0b11111111111111111111111111111111:1:15:4095: ++%*15b:+0b11111111111111111111111111111111:0:15: ++%15b:+100000000000000000000000000000000:1:15:8192: ++%*15b:+100000000000000000000000000000000:0:15: ++%15b:+0B100000000000000000000000000000000:1:15:2048: ++%*15b:+0B100000000000000000000000000000000:0:15: ++%15b:+0b100000000000000000000000000000000:1:15:2048: ++%*15b:+0b100000000000000000000000000000000:0:15: ++%15b:+100000000000000000001000010010001:1:15:8192: ++%*15b:+100000000000000000001000010010001:0:15: ++%15b:+0B100000000000000000001000010010001:1:15:2048: ++%*15b:+0B100000000000000000001000010010001:0:15: ++%15b:+0b100000000000000000001000010010001:1:15:2048: ++%*15b:+0b100000000000000000001000010010001:0:15: ++%2b: :0:-1: ++%*2b: :0:-1: ++%2b: -1111011:1:3:4294967295: ++%*2b: -1111011:0:3: ++%2b: -0B1111011:1:3:0: ++%*2b: -0B1111011:0:3: ++%2b: -0b1111011:1:3:0: ++%*2b: -0b1111011:0:3: ++%2b: -1:1:3:4294967295: ++%*2b: -1:0:3: ++%2b: -0B1:1:3:0: ++%*2b: -0B1:0:3: ++%2b: -0b1:1:3:0: ++%*2b: -0b1:0:3: ++%2b: -0:1:3:0: ++%*2b: -0:0:3: ++%2b: -0B0:1:3:0: ++%*2b: -0B0:0:3: ++%2b: -0b0:1:3:0: ++%*2b: -0b0:0:3: ++%2b: 0:1:2:0: ++%*2b: 0:0:2: ++# BZ12701 %2b: 0B0:0:-1: ++# BZ12701 %*2b: 0B0:0:-1: ++# BZ12701 %2b: 0b0:0:-1: ++# BZ12701 %*2b: 0b0:0:-1: ++%2b: 1:1:2:1: ++%*2b: 1:0:2: ++# BZ12701 %2b: 0B1:0:-1: ++# BZ12701 %*2b: 0B1:0:-1: ++# BZ12701 %2b: 0b1:0:-1: ++# BZ12701 %*2b: 0b1:0:-1: ++%2b: 101010:1:3:2: ++%*2b: 101010:0:3: ++# BZ12701 %2b: 0B101010:0:-1: ++# BZ12701 %*2b: 0B101010:0:-1: ++# BZ12701 %2b: 0b101010:0:-1: ++# BZ12701 %*2b: 0b101010:0:-1: ++%2b: 11111111111111111111111111111111:1:3:3: ++%*2b: 11111111111111111111111111111111:0:3: ++# BZ12701 %2b: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b: 0B11111111111111111111111111111111:0:-1: ++# BZ12701 %2b: 0b11111111111111111111111111111111:0:-1: ++# BZ12701 %*2b: 0b11111111111111111111111111111111:0:-1: ++%2b: 100000000000000000000000000000000:1:3:2: ++%*2b: 100000000000000000000000000000000:0:3: ++# BZ12701 %2b: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b: 0B100000000000000000000000000000000:0:-1: ++# BZ12701 %2b: 0b100000000000000000000000000000000:0:-1: ++# BZ12701 %*2b: 0b100000000000000000000000000000000:0:-1: ++%2b: 100000000000000000001000010010001:1:3:2: ++%*2b: 100000000000000000001000010010001:0:3: ++# BZ12701 %2b: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b: 0B100000000000000000001000010010001:0:-1: ++# BZ12701 %2b: 0b100000000000000000001000010010001:0:-1: ++# BZ12701 %*2b: 0b100000000000000000001000010010001:0:-1: ++%2b: +0:1:3:0: ++%*2b: +0:0:3: ++%2b: +0B0:1:3:0: ++%*2b: +0B0:0:3: ++%2b: +0b0:1:3:0: ++%*2b: +0b0:0:3: ++%2b: +1:1:3:1: ++%*2b: +1:0:3: ++%2b: +0B1:1:3:0: ++%*2b: +0B1:0:3: ++%2b: +0b1:1:3:0: ++%*2b: +0b1:0:3: ++%2b: +101010:1:3:1: ++%*2b: +101010:0:3: ++%2b: +0B101010:1:3:0: ++%*2b: +0B101010:0:3: ++%2b: +0b101010:1:3:0: ++%*2b: +0b101010:0:3: ++%2b: +11111111111111111111111111111111:1:3:1: ++%*2b: +11111111111111111111111111111111:0:3: ++%2b: +0B11111111111111111111111111111111:1:3:0: ++%*2b: +0B11111111111111111111111111111111:0:3: ++%2b: +0b11111111111111111111111111111111:1:3:0: ++%*2b: +0b11111111111111111111111111111111:0:3: ++%2b: +100000000000000000000000000000000:1:3:1: ++%*2b: +100000000000000000000000000000000:0:3: ++%2b: +0B100000000000000000000000000000000:1:3:0: ++%*2b: +0B100000000000000000000000000000000:0:3: ++%2b: +0b100000000000000000000000000000000:1:3:0: ++%*2b: +0b100000000000000000000000000000000:0:3: ++%2b: +100000000000000000001000010010001:1:3:1: ++%*2b: +100000000000000000001000010010001:0:3: ++%2b: +0B100000000000000000001000010010001:1:3:0: ++%*2b: +0B100000000000000000001000010010001:0:3: ++%2b: +0b100000000000000000001000010010001:1:3:0: ++%*2b: +0b100000000000000000001000010010001:0:3: ++%15b: :0:-1: ++%*15b: :0:-1: ++%15b: -1111011:1:9:4294967173: ++%*15b: -1111011:0:9: ++%15b: -0B1111011:1:11:4294967173: ++%*15b: -0B1111011:0:11: ++%15b: -0b1111011:1:11:4294967173: ++%*15b: -0b1111011:0:11: ++%15b: -1:1:3:4294967295: ++%*15b: -1:0:3: ++%15b: -0B1:1:5:4294967295: ++%*15b: -0B1:0:5: ++%15b: -0b1:1:5:4294967295: ++%*15b: -0b1:0:5: ++%15b: -0:1:3:0: ++%*15b: -0:0:3: ++%15b: -0B0:1:5:0: ++%*15b: -0B0:0:5: ++%15b: -0b0:1:5:0: ++%*15b: -0b0:0:5: ++%15b: 0:1:2:0: ++%*15b: 0:0:2: ++%15b: 0B0:1:4:0: ++%*15b: 0B0:0:4: ++%15b: 0b0:1:4:0: ++%*15b: 0b0:0:4: ++%15b: 1:1:2:1: ++%*15b: 1:0:2: ++%15b: 0B1:1:4:1: ++%*15b: 0B1:0:4: ++%15b: 0b1:1:4:1: ++%*15b: 0b1:0:4: ++%15b: 101010:1:7:42: ++%*15b: 101010:0:7: ++%15b: 0B101010:1:9:42: ++%*15b: 0B101010:0:9: ++%15b: 0b101010:1:9:42: ++%*15b: 0b101010:0:9: ++%15b: 11111111111111111111111111111111:1:16:32767: ++%*15b: 11111111111111111111111111111111:0:16: ++%15b: 0B11111111111111111111111111111111:1:16:8191: ++%*15b: 0B11111111111111111111111111111111:0:16: ++%15b: 0b11111111111111111111111111111111:1:16:8191: ++%*15b: 0b11111111111111111111111111111111:0:16: ++%15b: 100000000000000000000000000000000:1:16:16384: ++%*15b: 100000000000000000000000000000000:0:16: ++%15b: 0B100000000000000000000000000000000:1:16:4096: ++%*15b: 0B100000000000000000000000000000000:0:16: ++%15b: 0b100000000000000000000000000000000:1:16:4096: ++%*15b: 0b100000000000000000000000000000000:0:16: ++%15b: 100000000000000000001000010010001:1:16:16384: ++%*15b: 100000000000000000001000010010001:0:16: ++%15b: 0B100000000000000000001000010010001:1:16:4096: ++%*15b: 0B100000000000000000001000010010001:0:16: ++%15b: 0b100000000000000000001000010010001:1:16:4096: ++%*15b: 0b100000000000000000001000010010001:0:16: ++%15b: +0:1:3:0: ++%*15b: +0:0:3: ++%15b: +0B0:1:5:0: ++%*15b: +0B0:0:5: ++%15b: +0b0:1:5:0: ++%*15b: +0b0:0:5: ++%15b: +1:1:3:1: ++%*15b: +1:0:3: ++%15b: +0B1:1:5:1: ++%*15b: +0B1:0:5: ++%15b: +0b1:1:5:1: ++%*15b: +0b1:0:5: ++%15b: +101010:1:8:42: ++%*15b: +101010:0:8: ++%15b: +0B101010:1:10:42: ++%*15b: +0B101010:0:10: ++%15b: +0b101010:1:10:42: ++%*15b: +0b101010:0:10: ++%15b: +11111111111111111111111111111111:1:16:16383: ++%*15b: +11111111111111111111111111111111:0:16: ++%15b: +0B11111111111111111111111111111111:1:16:4095: ++%*15b: +0B11111111111111111111111111111111:0:16: ++%15b: +0b11111111111111111111111111111111:1:16:4095: ++%*15b: +0b11111111111111111111111111111111:0:16: ++%15b: +100000000000000000000000000000000:1:16:8192: ++%*15b: +100000000000000000000000000000000:0:16: ++%15b: +0B100000000000000000000000000000000:1:16:2048: ++%*15b: +0B100000000000000000000000000000000:0:16: ++%15b: +0b100000000000000000000000000000000:1:16:2048: ++%*15b: +0b100000000000000000000000000000000:0:16: ++%15b: +100000000000000000001000010010001:1:16:8192: ++%*15b: +100000000000000000001000010010001:0:16: ++%15b: +0B100000000000000000001000010010001:1:16:2048: ++%*15b: +0B100000000000000000001000010010001:0:16: ++%15b: +0b100000000000000000001000010010001:1:16:2048: ++%*15b: +0b100000000000000000001000010010001:0:16: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-o.input b/sysdeps/wordsize-64/tst-scanf-format-uint-o.input +new file mode 100644 +index 0000000000000000..75ae2837990098d2 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-uint-o.input +@@ -0,0 +1,434 @@ ++%o::0:-1: ++%*o::0:-1: ++%o:-173:1:4:4294967173: ++%*o:-173:0:4: ++%o:-0173:1:5:4294967173: ++%*o:-0173:0:5: ++%o:-1:1:2:4294967295: ++%*o:-1:0:2: ++%o:-01:1:3:4294967295: ++%*o:-01:0:3: ++%o:-0:1:2:0: ++%*o:-0:0:2: ++%o:-00:1:3:0: ++%*o:-00:0:3: ++%o:0:1:1:0: ++%*o:0:0:1: ++%o:00:1:2:0: ++%*o:00:0:2: ++%o:1:1:1:1: ++%*o:1:0:1: ++%o:01:1:2:1: ++%*o:01:0:2: ++%o:52:1:2:42: ++%*o:52:0:2: ++%o:052:1:3:42: ++%*o:052:0:3: ++%o:37777777777:1:11:4294967295: ++%*o:37777777777:0:11: ++%o:037777777777:1:12:4294967295: ++%*o:037777777777:0:12: ++%o:40000000000:1:11:0: ++%*o:40000000000:0:11: ++%o:040000000000:1:12:0: ++%*o:040000000000:0:12: ++%o:40000010221:1:11:4241: ++%*o:40000010221:0:11: ++%o:040000010221:1:12:4241: ++%*o:040000010221:0:12: ++%o:+0:1:2:0: ++%*o:+0:0:2: ++%o:+00:1:3:0: ++%*o:+00:0:3: ++%o:+1:1:2:1: ++%*o:+1:0:2: ++%o:+01:1:3:1: ++%*o:+01:0:3: ++%o:+52:1:3:42: ++%*o:+52:0:3: ++%o:+052:1:4:42: ++%*o:+052:0:4: ++%o:+37777777777:1:12:4294967295: ++%*o:+37777777777:0:12: ++%o:+037777777777:1:13:4294967295: ++%*o:+037777777777:0:13: ++%o:+40000000000:1:12:0: ++%*o:+40000000000:0:12: ++%o:+040000000000:1:13:0: ++%*o:+040000000000:0:13: ++%o:+40000010221:1:12:4241: ++%*o:+40000010221:0:12: ++%o:+040000010221:1:13:4241: ++%*o:+040000010221:0:13: ++%1o::0:-1: ++%*1o::0:-1: ++%1o:-173:0:-1: ++%*1o:-173:0:-1: ++%1o:-0173:0:-1: ++%*1o:-0173:0:-1: ++%1o:-1:0:-1: ++%*1o:-1:0:-1: ++%1o:-01:0:-1: ++%*1o:-01:0:-1: ++%1o:-0:0:-1: ++%*1o:-0:0:-1: ++%1o:-00:0:-1: ++%*1o:-00:0:-1: ++%1o:0:1:1:0: ++%*1o:0:0:1: ++%1o:00:1:1:0: ++%*1o:00:0:1: ++%1o:1:1:1:1: ++%*1o:1:0:1: ++%1o:01:1:1:0: ++%*1o:01:0:1: ++%1o:52:1:1:5: ++%*1o:52:0:1: ++%1o:052:1:1:0: ++%*1o:052:0:1: ++%1o:37777777777:1:1:3: ++%*1o:37777777777:0:1: ++%1o:037777777777:1:1:0: ++%*1o:037777777777:0:1: ++%1o:40000000000:1:1:4: ++%*1o:40000000000:0:1: ++%1o:040000000000:1:1:0: ++%*1o:040000000000:0:1: ++%1o:40000010221:1:1:4: ++%*1o:40000010221:0:1: ++%1o:040000010221:1:1:0: ++%*1o:040000010221:0:1: ++%1o:+0:0:-1: ++%*1o:+0:0:-1: ++%1o:+00:0:-1: ++%*1o:+00:0:-1: ++%1o:+1:0:-1: ++%*1o:+1:0:-1: ++%1o:+01:0:-1: ++%*1o:+01:0:-1: ++%1o:+52:0:-1: ++%*1o:+52:0:-1: ++%1o:+052:0:-1: ++%*1o:+052:0:-1: ++%1o:+37777777777:0:-1: ++%*1o:+37777777777:0:-1: ++%1o:+037777777777:0:-1: ++%*1o:+037777777777:0:-1: ++%1o:+40000000000:0:-1: ++%*1o:+40000000000:0:-1: ++%1o:+040000000000:0:-1: ++%*1o:+040000000000:0:-1: ++%1o:+40000010221:0:-1: ++%*1o:+40000010221:0:-1: ++%1o:+040000010221:0:-1: ++%*1o:+040000010221:0:-1: ++%2o::0:-1: ++%*2o::0:-1: ++%2o:-173:1:2:4294967295: ++%*2o:-173:0:2: ++%2o:-0173:1:2:0: ++%*2o:-0173:0:2: ++%2o:-1:1:2:4294967295: ++%*2o:-1:0:2: ++%2o:-01:1:2:0: ++%*2o:-01:0:2: ++%2o:-0:1:2:0: ++%*2o:-0:0:2: ++%2o:-00:1:2:0: ++%*2o:-00:0:2: ++%2o:0:1:1:0: ++%*2o:0:0:1: ++%2o:00:1:2:0: ++%*2o:00:0:2: ++%2o:1:1:1:1: ++%*2o:1:0:1: ++%2o:01:1:2:1: ++%*2o:01:0:2: ++%2o:52:1:2:42: ++%*2o:52:0:2: ++%2o:052:1:2:5: ++%*2o:052:0:2: ++%2o:37777777777:1:2:31: ++%*2o:37777777777:0:2: ++%2o:037777777777:1:2:3: ++%*2o:037777777777:0:2: ++%2o:40000000000:1:2:32: ++%*2o:40000000000:0:2: ++%2o:040000000000:1:2:4: ++%*2o:040000000000:0:2: ++%2o:40000010221:1:2:32: ++%*2o:40000010221:0:2: ++%2o:040000010221:1:2:4: ++%*2o:040000010221:0:2: ++%2o:+0:1:2:0: ++%*2o:+0:0:2: ++%2o:+00:1:2:0: ++%*2o:+00:0:2: ++%2o:+1:1:2:1: ++%*2o:+1:0:2: ++%2o:+01:1:2:0: ++%*2o:+01:0:2: ++%2o:+52:1:2:5: ++%*2o:+52:0:2: ++%2o:+052:1:2:0: ++%*2o:+052:0:2: ++%2o:+37777777777:1:2:3: ++%*2o:+37777777777:0:2: ++%2o:+037777777777:1:2:0: ++%*2o:+037777777777:0:2: ++%2o:+40000000000:1:2:4: ++%*2o:+40000000000:0:2: ++%2o:+040000000000:1:2:0: ++%*2o:+040000000000:0:2: ++%2o:+40000010221:1:2:4: ++%*2o:+40000010221:0:2: ++%2o:+040000010221:1:2:0: ++%*2o:+040000010221:0:2: ++%8o::0:-1: ++%*8o::0:-1: ++%8o:-173:1:4:4294967173: ++%*8o:-173:0:4: ++%8o:-0173:1:5:4294967173: ++%*8o:-0173:0:5: ++%8o:-1:1:2:4294967295: ++%*8o:-1:0:2: ++%8o:-01:1:3:4294967295: ++%*8o:-01:0:3: ++%8o:-0:1:2:0: ++%*8o:-0:0:2: ++%8o:-00:1:3:0: ++%*8o:-00:0:3: ++%8o:0:1:1:0: ++%*8o:0:0:1: ++%8o:00:1:2:0: ++%*8o:00:0:2: ++%8o:1:1:1:1: ++%*8o:1:0:1: ++%8o:01:1:2:1: ++%*8o:01:0:2: ++%8o:52:1:2:42: ++%*8o:52:0:2: ++%8o:052:1:3:42: ++%*8o:052:0:3: ++%8o:37777777777:1:8:8388607: ++%*8o:37777777777:0:8: ++%8o:037777777777:1:8:1048575: ++%*8o:037777777777:0:8: ++%8o:40000000000:1:8:8388608: ++%*8o:40000000000:0:8: ++%8o:040000000000:1:8:1048576: ++%*8o:040000000000:0:8: ++%8o:40000010221:1:8:8388616: ++%*8o:40000010221:0:8: ++%8o:040000010221:1:8:1048577: ++%*8o:040000010221:0:8: ++%8o:+0:1:2:0: ++%*8o:+0:0:2: ++%8o:+00:1:3:0: ++%*8o:+00:0:3: ++%8o:+1:1:2:1: ++%*8o:+1:0:2: ++%8o:+01:1:3:1: ++%*8o:+01:0:3: ++%8o:+52:1:3:42: ++%*8o:+52:0:3: ++%8o:+052:1:4:42: ++%*8o:+052:0:4: ++%8o:+37777777777:1:8:1048575: ++%*8o:+37777777777:0:8: ++%8o:+037777777777:1:8:131071: ++%*8o:+037777777777:0:8: ++%8o:+40000000000:1:8:1048576: ++%*8o:+40000000000:0:8: ++%8o:+040000000000:1:8:131072: ++%*8o:+040000000000:0:8: ++%8o:+40000010221:1:8:1048577: ++%*8o:+40000010221:0:8: ++%8o:+040000010221:1:8:131072: ++%*8o:+040000010221:0:8: ++%15o::0:-1: ++%*15o::0:-1: ++%15o:-173:1:4:4294967173: ++%*15o:-173:0:4: ++%15o:-0173:1:5:4294967173: ++%*15o:-0173:0:5: ++%15o:-1:1:2:4294967295: ++%*15o:-1:0:2: ++%15o:-01:1:3:4294967295: ++%*15o:-01:0:3: ++%15o:-0:1:2:0: ++%*15o:-0:0:2: ++%15o:-00:1:3:0: ++%*15o:-00:0:3: ++%15o:0:1:1:0: ++%*15o:0:0:1: ++%15o:00:1:2:0: ++%*15o:00:0:2: ++%15o:1:1:1:1: ++%*15o:1:0:1: ++%15o:01:1:2:1: ++%*15o:01:0:2: ++%15o:52:1:2:42: ++%*15o:52:0:2: ++%15o:052:1:3:42: ++%*15o:052:0:3: ++%15o:37777777777:1:11:4294967295: ++%*15o:37777777777:0:11: ++%15o:037777777777:1:12:4294967295: ++%*15o:037777777777:0:12: ++%15o:40000000000:1:11:0: ++%*15o:40000000000:0:11: ++%15o:040000000000:1:12:0: ++%*15o:040000000000:0:12: ++%15o:40000010221:1:11:4241: ++%*15o:40000010221:0:11: ++%15o:040000010221:1:12:4241: ++%*15o:040000010221:0:12: ++%15o:+0:1:2:0: ++%*15o:+0:0:2: ++%15o:+00:1:3:0: ++%*15o:+00:0:3: ++%15o:+1:1:2:1: ++%*15o:+1:0:2: ++%15o:+01:1:3:1: ++%*15o:+01:0:3: ++%15o:+52:1:3:42: ++%*15o:+52:0:3: ++%15o:+052:1:4:42: ++%*15o:+052:0:4: ++%15o:+37777777777:1:12:4294967295: ++%*15o:+37777777777:0:12: ++%15o:+037777777777:1:13:4294967295: ++%*15o:+037777777777:0:13: ++%15o:+40000000000:1:12:0: ++%*15o:+40000000000:0:12: ++%15o:+040000000000:1:13:0: ++%*15o:+040000000000:0:13: ++%15o:+40000010221:1:12:4241: ++%*15o:+40000010221:0:12: ++%15o:+040000010221:1:13:4241: ++%*15o:+040000010221:0:13: ++%2o: :0:-1: ++%*2o: :0:-1: ++%2o: -173:1:3:4294967295: ++%*2o: -173:0:3: ++%2o: -0173:1:3:0: ++%*2o: -0173:0:3: ++%2o: -1:1:3:4294967295: ++%*2o: -1:0:3: ++%2o: -01:1:3:0: ++%*2o: -01:0:3: ++%2o: -0:1:3:0: ++%*2o: -0:0:3: ++%2o: -00:1:3:0: ++%*2o: -00:0:3: ++%2o: 0:1:2:0: ++%*2o: 0:0:2: ++%2o: 00:1:3:0: ++%*2o: 00:0:3: ++%2o: 1:1:2:1: ++%*2o: 1:0:2: ++%2o: 01:1:3:1: ++%*2o: 01:0:3: ++%2o: 52:1:3:42: ++%*2o: 52:0:3: ++%2o: 052:1:3:5: ++%*2o: 052:0:3: ++%2o: 37777777777:1:3:31: ++%*2o: 37777777777:0:3: ++%2o: 037777777777:1:3:3: ++%*2o: 037777777777:0:3: ++%2o: 40000000000:1:3:32: ++%*2o: 40000000000:0:3: ++%2o: 040000000000:1:3:4: ++%*2o: 040000000000:0:3: ++%2o: 40000010221:1:3:32: ++%*2o: 40000010221:0:3: ++%2o: 040000010221:1:3:4: ++%*2o: 040000010221:0:3: ++%2o: +0:1:3:0: ++%*2o: +0:0:3: ++%2o: +00:1:3:0: ++%*2o: +00:0:3: ++%2o: +1:1:3:1: ++%*2o: +1:0:3: ++%2o: +01:1:3:0: ++%*2o: +01:0:3: ++%2o: +52:1:3:5: ++%*2o: +52:0:3: ++%2o: +052:1:3:0: ++%*2o: +052:0:3: ++%2o: +37777777777:1:3:3: ++%*2o: +37777777777:0:3: ++%2o: +037777777777:1:3:0: ++%*2o: +037777777777:0:3: ++%2o: +40000000000:1:3:4: ++%*2o: +40000000000:0:3: ++%2o: +040000000000:1:3:0: ++%*2o: +040000000000:0:3: ++%2o: +40000010221:1:3:4: ++%*2o: +40000010221:0:3: ++%2o: +040000010221:1:3:0: ++%*2o: +040000010221:0:3: ++%15o: :0:-1: ++%*15o: :0:-1: ++%15o: -173:1:5:4294967173: ++%*15o: -173:0:5: ++%15o: -0173:1:6:4294967173: ++%*15o: -0173:0:6: ++%15o: -1:1:3:4294967295: ++%*15o: -1:0:3: ++%15o: -01:1:4:4294967295: ++%*15o: -01:0:4: ++%15o: -0:1:3:0: ++%*15o: -0:0:3: ++%15o: -00:1:4:0: ++%*15o: -00:0:4: ++%15o: 0:1:2:0: ++%*15o: 0:0:2: ++%15o: 00:1:3:0: ++%*15o: 00:0:3: ++%15o: 1:1:2:1: ++%*15o: 1:0:2: ++%15o: 01:1:3:1: ++%*15o: 01:0:3: ++%15o: 52:1:3:42: ++%*15o: 52:0:3: ++%15o: 052:1:4:42: ++%*15o: 052:0:4: ++%15o: 37777777777:1:12:4294967295: ++%*15o: 37777777777:0:12: ++%15o: 037777777777:1:13:4294967295: ++%*15o: 037777777777:0:13: ++%15o: 40000000000:1:12:0: ++%*15o: 40000000000:0:12: ++%15o: 040000000000:1:13:0: ++%*15o: 040000000000:0:13: ++%15o: 40000010221:1:12:4241: ++%*15o: 40000010221:0:12: ++%15o: 040000010221:1:13:4241: ++%*15o: 040000010221:0:13: ++%15o: +0:1:3:0: ++%*15o: +0:0:3: ++%15o: +00:1:4:0: ++%*15o: +00:0:4: ++%15o: +1:1:3:1: ++%*15o: +1:0:3: ++%15o: +01:1:4:1: ++%*15o: +01:0:4: ++%15o: +52:1:4:42: ++%*15o: +52:0:4: ++%15o: +052:1:5:42: ++%*15o: +052:0:5: ++%15o: +37777777777:1:13:4294967295: ++%*15o: +37777777777:0:13: ++%15o: +037777777777:1:14:4294967295: ++%*15o: +037777777777:0:14: ++%15o: +40000000000:1:13:0: ++%*15o: +40000000000:0:13: ++%15o: +040000000000:1:14:0: ++%*15o: +040000000000:0:14: ++%15o: +40000010221:1:13:4241: ++%*15o: +40000010221:0:13: ++%15o: +040000010221:1:14:4241: ++%*15o: +040000010221:0:14: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-u.input b/sysdeps/wordsize-64/tst-scanf-format-uint-u.input +new file mode 100644 +index 0000000000000000..944806fd81bf8da2 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-uint-u.input +@@ -0,0 +1,224 @@ ++%u::0:-1: ++%*u::0:-1: ++%u:-123:1:4:4294967173: ++%*u:-123:0:4: ++%u:-1:1:2:4294967295: ++%*u:-1:0:2: ++%u:-0:1:2:0: ++%*u:-0:0:2: ++%u:0:1:1:0: ++%*u:0:0:1: ++%u:1:1:1:1: ++%*u:1:0:1: ++%u:42:1:2:42: ++%*u:42:0:2: ++%u:4294967295:1:10:4294967295: ++%*u:4294967295:0:10: ++%u:4294967296:1:10:0: ++%*u:4294967296:0:10: ++%u:4294971537:1:10:4241: ++%*u:4294971537:0:10: ++%u:+0:1:2:0: ++%*u:+0:0:2: ++%u:+1:1:2:1: ++%*u:+1:0:2: ++%u:+42:1:3:42: ++%*u:+42:0:3: ++%u:+4294967295:1:11:4294967295: ++%*u:+4294967295:0:11: ++%u:+4294967296:1:11:0: ++%*u:+4294967296:0:11: ++%u:+4294971537:1:11:4241: ++%*u:+4294971537:0:11: ++%1u::0:-1: ++%*1u::0:-1: ++%1u:-123:0:-1: ++%*1u:-123:0:-1: ++%1u:-1:0:-1: ++%*1u:-1:0:-1: ++%1u:-0:0:-1: ++%*1u:-0:0:-1: ++%1u:0:1:1:0: ++%*1u:0:0:1: ++%1u:1:1:1:1: ++%*1u:1:0:1: ++%1u:42:1:1:4: ++%*1u:42:0:1: ++%1u:4294967295:1:1:4: ++%*1u:4294967295:0:1: ++%1u:4294967296:1:1:4: ++%*1u:4294967296:0:1: ++%1u:4294971537:1:1:4: ++%*1u:4294971537:0:1: ++%1u:+0:0:-1: ++%*1u:+0:0:-1: ++%1u:+1:0:-1: ++%*1u:+1:0:-1: ++%1u:+42:0:-1: ++%*1u:+42:0:-1: ++%1u:+4294967295:0:-1: ++%*1u:+4294967295:0:-1: ++%1u:+4294967296:0:-1: ++%*1u:+4294967296:0:-1: ++%1u:+4294971537:0:-1: ++%*1u:+4294971537:0:-1: ++%2u::0:-1: ++%*2u::0:-1: ++%2u:-123:1:2:4294967295: ++%*2u:-123:0:2: ++%2u:-1:1:2:4294967295: ++%*2u:-1:0:2: ++%2u:-0:1:2:0: ++%*2u:-0:0:2: ++%2u:0:1:1:0: ++%*2u:0:0:1: ++%2u:1:1:1:1: ++%*2u:1:0:1: ++%2u:42:1:2:42: ++%*2u:42:0:2: ++%2u:4294967295:1:2:42: ++%*2u:4294967295:0:2: ++%2u:4294967296:1:2:42: ++%*2u:4294967296:0:2: ++%2u:4294971537:1:2:42: ++%*2u:4294971537:0:2: ++%2u:+0:1:2:0: ++%*2u:+0:0:2: ++%2u:+1:1:2:1: ++%*2u:+1:0:2: ++%2u:+42:1:2:4: ++%*2u:+42:0:2: ++%2u:+4294967295:1:2:4: ++%*2u:+4294967295:0:2: ++%2u:+4294967296:1:2:4: ++%*2u:+4294967296:0:2: ++%2u:+4294971537:1:2:4: ++%*2u:+4294971537:0:2: ++%8u::0:-1: ++%*8u::0:-1: ++%8u:-123:1:4:4294967173: ++%*8u:-123:0:4: ++%8u:-1:1:2:4294967295: ++%*8u:-1:0:2: ++%8u:-0:1:2:0: ++%*8u:-0:0:2: ++%8u:0:1:1:0: ++%*8u:0:0:1: ++%8u:1:1:1:1: ++%*8u:1:0:1: ++%8u:42:1:2:42: ++%*8u:42:0:2: ++%8u:4294967295:1:8:42949672: ++%*8u:4294967295:0:8: ++%8u:4294967296:1:8:42949672: ++%*8u:4294967296:0:8: ++%8u:4294971537:1:8:42949715: ++%*8u:4294971537:0:8: ++%8u:+0:1:2:0: ++%*8u:+0:0:2: ++%8u:+1:1:2:1: ++%*8u:+1:0:2: ++%8u:+42:1:3:42: ++%*8u:+42:0:3: ++%8u:+4294967295:1:8:4294967: ++%*8u:+4294967295:0:8: ++%8u:+4294967296:1:8:4294967: ++%*8u:+4294967296:0:8: ++%8u:+4294971537:1:8:4294971: ++%*8u:+4294971537:0:8: ++%15u::0:-1: ++%*15u::0:-1: ++%15u:-123:1:4:4294967173: ++%*15u:-123:0:4: ++%15u:-1:1:2:4294967295: ++%*15u:-1:0:2: ++%15u:-0:1:2:0: ++%*15u:-0:0:2: ++%15u:0:1:1:0: ++%*15u:0:0:1: ++%15u:1:1:1:1: ++%*15u:1:0:1: ++%15u:42:1:2:42: ++%*15u:42:0:2: ++%15u:4294967295:1:10:4294967295: ++%*15u:4294967295:0:10: ++%15u:4294967296:1:10:0: ++%*15u:4294967296:0:10: ++%15u:4294971537:1:10:4241: ++%*15u:4294971537:0:10: ++%15u:+0:1:2:0: ++%*15u:+0:0:2: ++%15u:+1:1:2:1: ++%*15u:+1:0:2: ++%15u:+42:1:3:42: ++%*15u:+42:0:3: ++%15u:+4294967295:1:11:4294967295: ++%*15u:+4294967295:0:11: ++%15u:+4294967296:1:11:0: ++%*15u:+4294967296:0:11: ++%15u:+4294971537:1:11:4241: ++%*15u:+4294971537:0:11: ++%2u: :0:-1: ++%*2u: :0:-1: ++%2u: -123:1:3:4294967295: ++%*2u: -123:0:3: ++%2u: -1:1:3:4294967295: ++%*2u: -1:0:3: ++%2u: -0:1:3:0: ++%*2u: -0:0:3: ++%2u: 0:1:2:0: ++%*2u: 0:0:2: ++%2u: 1:1:2:1: ++%*2u: 1:0:2: ++%2u: 42:1:3:42: ++%*2u: 42:0:3: ++%2u: 4294967295:1:3:42: ++%*2u: 4294967295:0:3: ++%2u: 4294967296:1:3:42: ++%*2u: 4294967296:0:3: ++%2u: 4294971537:1:3:42: ++%*2u: 4294971537:0:3: ++%2u: +0:1:3:0: ++%*2u: +0:0:3: ++%2u: +1:1:3:1: ++%*2u: +1:0:3: ++%2u: +42:1:3:4: ++%*2u: +42:0:3: ++%2u: +4294967295:1:3:4: ++%*2u: +4294967295:0:3: ++%2u: +4294967296:1:3:4: ++%*2u: +4294967296:0:3: ++%2u: +4294971537:1:3:4: ++%*2u: +4294971537:0:3: ++%15u: :0:-1: ++%*15u: :0:-1: ++%15u: -123:1:5:4294967173: ++%*15u: -123:0:5: ++%15u: -1:1:3:4294967295: ++%*15u: -1:0:3: ++%15u: -0:1:3:0: ++%*15u: -0:0:3: ++%15u: 0:1:2:0: ++%*15u: 0:0:2: ++%15u: 1:1:2:1: ++%*15u: 1:0:2: ++%15u: 42:1:3:42: ++%*15u: 42:0:3: ++%15u: 4294967295:1:11:4294967295: ++%*15u: 4294967295:0:11: ++%15u: 4294967296:1:11:0: ++%*15u: 4294967296:0:11: ++%15u: 4294971537:1:11:4241: ++%*15u: 4294971537:0:11: ++%15u: +0:1:3:0: ++%*15u: +0:0:3: ++%15u: +1:1:3:1: ++%*15u: +1:0:3: ++%15u: +42:1:4:42: ++%*15u: +42:0:4: ++%15u: +4294967295:1:12:4294967295: ++%*15u: +4294967295:0:12: ++%15u: +4294967296:1:12:0: ++%*15u: +4294967296:0:12: ++%15u: +4294971537:1:12:4241: ++%*15u: +4294971537:0:12: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-x.input b/sysdeps/wordsize-64/tst-scanf-format-uint-x.input +new file mode 100644 +index 0000000000000000..31fb4a8287eff2fb +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-uint-x.input +@@ -0,0 +1,714 @@ ++%x::0:-1: ++%*x::0:-1: ++%x:-7b:1:3:4294967173: ++%*x:-7b:0:3: ++%x:-7B:1:3:4294967173: ++%*x:-7B:0:3: ++%x:-0X7b:1:5:4294967173: ++%*x:-0X7b:0:5: ++%x:-0x7B:1:5:4294967173: ++%*x:-0x7B:0:5: ++%x:-1:1:2:4294967295: ++%*x:-1:0:2: ++%x:-0X1:1:4:4294967295: ++%*x:-0X1:0:4: ++%x:-0x1:1:4:4294967295: ++%*x:-0x1:0:4: ++%x:-0:1:2:0: ++%*x:-0:0:2: ++%x:-0X0:1:4:0: ++%*x:-0X0:0:4: ++%x:-0x0:1:4:0: ++%*x:-0x0:0:4: ++%x:0:1:1:0: ++%*x:0:0:1: ++%x:0X0:1:3:0: ++%*x:0X0:0:3: ++%x:0x0:1:3:0: ++%*x:0x0:0:3: ++%x:1:1:1:1: ++%*x:1:0:1: ++%x:0X1:1:3:1: ++%*x:0X1:0:3: ++%x:0x1:1:3:1: ++%*x:0x1:0:3: ++%x:2a:1:2:42: ++%*x:2a:0:2: ++%x:2A:1:2:42: ++%*x:2A:0:2: ++%x:0X2a:1:4:42: ++%*x:0X2a:0:4: ++%x:0x2A:1:4:42: ++%*x:0x2A:0:4: ++%x:ffffffff:1:8:4294967295: ++%*x:ffffffff:0:8: ++%x:FFFFFFFF:1:8:4294967295: ++%*x:FFFFFFFF:0:8: ++%x:0Xffffffff:1:10:4294967295: ++%*x:0Xffffffff:0:10: ++%x:0xFFFFFFFF:1:10:4294967295: ++%*x:0xFFFFFFFF:0:10: ++%x:100000000:1:9:0: ++%*x:100000000:0:9: ++%x:0X100000000:1:11:0: ++%*x:0X100000000:0:11: ++%x:0x100000000:1:11:0: ++%*x:0x100000000:0:11: ++%x:100001091:1:9:4241: ++%*x:100001091:0:9: ++%x:0X100001091:1:11:4241: ++%*x:0X100001091:0:11: ++%x:0x100001091:1:11:4241: ++%*x:0x100001091:0:11: ++%x:+0:1:2:0: ++%*x:+0:0:2: ++%x:+0X0:1:4:0: ++%*x:+0X0:0:4: ++%x:+0x0:1:4:0: ++%*x:+0x0:0:4: ++%x:+1:1:2:1: ++%*x:+1:0:2: ++%x:+0X1:1:4:1: ++%*x:+0X1:0:4: ++%x:+0x1:1:4:1: ++%*x:+0x1:0:4: ++%x:+2a:1:3:42: ++%*x:+2a:0:3: ++%x:+2A:1:3:42: ++%*x:+2A:0:3: ++%x:+0X2a:1:5:42: ++%*x:+0X2a:0:5: ++%x:+0x2A:1:5:42: ++%*x:+0x2A:0:5: ++%x:+ffffffff:1:9:4294967295: ++%*x:+ffffffff:0:9: ++%x:+FFFFFFFF:1:9:4294967295: ++%*x:+FFFFFFFF:0:9: ++%x:+0Xffffffff:1:11:4294967295: ++%*x:+0Xffffffff:0:11: ++%x:+0xFFFFFFFF:1:11:4294967295: ++%*x:+0xFFFFFFFF:0:11: ++%x:+100000000:1:10:0: ++%*x:+100000000:0:10: ++%x:+0X100000000:1:12:0: ++%*x:+0X100000000:0:12: ++%x:+0x100000000:1:12:0: ++%*x:+0x100000000:0:12: ++%x:+100001091:1:10:4241: ++%*x:+100001091:0:10: ++%x:+0X100001091:1:12:4241: ++%*x:+0X100001091:0:12: ++%x:+0x100001091:1:12:4241: ++%*x:+0x100001091:0:12: ++%1x::0:-1: ++%*1x::0:-1: ++%1x:-7b:0:-1: ++%*1x:-7b:0:-1: ++%1x:-7B:0:-1: ++%*1x:-7B:0:-1: ++%1x:-0X7b:0:-1: ++%*1x:-0X7b:0:-1: ++%1x:-0x7B:0:-1: ++%*1x:-0x7B:0:-1: ++%1x:-1:0:-1: ++%*1x:-1:0:-1: ++%1x:-0X1:0:-1: ++%*1x:-0X1:0:-1: ++%1x:-0x1:0:-1: ++%*1x:-0x1:0:-1: ++%1x:-0:0:-1: ++%*1x:-0:0:-1: ++%1x:-0X0:0:-1: ++%*1x:-0X0:0:-1: ++%1x:-0x0:0:-1: ++%*1x:-0x0:0:-1: ++%1x:0:1:1:0: ++%*1x:0:0:1: ++%1x:0X0:1:1:0: ++%*1x:0X0:0:1: ++%1x:0x0:1:1:0: ++%*1x:0x0:0:1: ++%1x:1:1:1:1: ++%*1x:1:0:1: ++%1x:0X1:1:1:0: ++%*1x:0X1:0:1: ++%1x:0x1:1:1:0: ++%*1x:0x1:0:1: ++%1x:2a:1:1:2: ++%*1x:2a:0:1: ++%1x:2A:1:1:2: ++%*1x:2A:0:1: ++%1x:0X2a:1:1:0: ++%*1x:0X2a:0:1: ++%1x:0x2A:1:1:0: ++%*1x:0x2A:0:1: ++%1x:ffffffff:1:1:15: ++%*1x:ffffffff:0:1: ++%1x:FFFFFFFF:1:1:15: ++%*1x:FFFFFFFF:0:1: ++%1x:0Xffffffff:1:1:0: ++%*1x:0Xffffffff:0:1: ++%1x:0xFFFFFFFF:1:1:0: ++%*1x:0xFFFFFFFF:0:1: ++%1x:100000000:1:1:1: ++%*1x:100000000:0:1: ++%1x:0X100000000:1:1:0: ++%*1x:0X100000000:0:1: ++%1x:0x100000000:1:1:0: ++%*1x:0x100000000:0:1: ++%1x:100001091:1:1:1: ++%*1x:100001091:0:1: ++%1x:0X100001091:1:1:0: ++%*1x:0X100001091:0:1: ++%1x:0x100001091:1:1:0: ++%*1x:0x100001091:0:1: ++%1x:+0:0:-1: ++%*1x:+0:0:-1: ++%1x:+0X0:0:-1: ++%*1x:+0X0:0:-1: ++%1x:+0x0:0:-1: ++%*1x:+0x0:0:-1: ++%1x:+1:0:-1: ++%*1x:+1:0:-1: ++%1x:+0X1:0:-1: ++%*1x:+0X1:0:-1: ++%1x:+0x1:0:-1: ++%*1x:+0x1:0:-1: ++%1x:+2a:0:-1: ++%*1x:+2a:0:-1: ++%1x:+2A:0:-1: ++%*1x:+2A:0:-1: ++%1x:+0X2a:0:-1: ++%*1x:+0X2a:0:-1: ++%1x:+0x2A:0:-1: ++%*1x:+0x2A:0:-1: ++%1x:+ffffffff:0:-1: ++%*1x:+ffffffff:0:-1: ++%1x:+FFFFFFFF:0:-1: ++%*1x:+FFFFFFFF:0:-1: ++%1x:+0Xffffffff:0:-1: ++%*1x:+0Xffffffff:0:-1: ++%1x:+0xFFFFFFFF:0:-1: ++%*1x:+0xFFFFFFFF:0:-1: ++%1x:+100000000:0:-1: ++%*1x:+100000000:0:-1: ++%1x:+0X100000000:0:-1: ++%*1x:+0X100000000:0:-1: ++%1x:+0x100000000:0:-1: ++%*1x:+0x100000000:0:-1: ++%1x:+100001091:0:-1: ++%*1x:+100001091:0:-1: ++%1x:+0X100001091:0:-1: ++%*1x:+0X100001091:0:-1: ++%1x:+0x100001091:0:-1: ++%*1x:+0x100001091:0:-1: ++%2x::0:-1: ++%*2x::0:-1: ++%2x:-7b:1:2:4294967289: ++%*2x:-7b:0:2: ++%2x:-7B:1:2:4294967289: ++%*2x:-7B:0:2: ++%2x:-0X7b:1:2:0: ++%*2x:-0X7b:0:2: ++%2x:-0x7B:1:2:0: ++%*2x:-0x7B:0:2: ++%2x:-1:1:2:4294967295: ++%*2x:-1:0:2: ++%2x:-0X1:1:2:0: ++%*2x:-0X1:0:2: ++%2x:-0x1:1:2:0: ++%*2x:-0x1:0:2: ++%2x:-0:1:2:0: ++%*2x:-0:0:2: ++%2x:-0X0:1:2:0: ++%*2x:-0X0:0:2: ++%2x:-0x0:1:2:0: ++%*2x:-0x0:0:2: ++%2x:0:1:1:0: ++%*2x:0:0:1: ++# BZ12701 %2x:0X0:0:-1: ++# BZ12701 %*2x:0X0:0:-1: ++# BZ12701 %2x:0x0:0:-1: ++# BZ12701 %*2x:0x0:0:-1: ++%2x:1:1:1:1: ++%*2x:1:0:1: ++# BZ12701 %2x:0X1:0:-1: ++# BZ12701 %*2x:0X1:0:-1: ++# BZ12701 %2x:0x1:0:-1: ++# BZ12701 %*2x:0x1:0:-1: ++%2x:2a:1:2:42: ++%*2x:2a:0:2: ++%2x:2A:1:2:42: ++%*2x:2A:0:2: ++# BZ12701 %2x:0X2a:0:-1: ++# BZ12701 %*2x:0X2a:0:-1: ++# BZ12701 %2x:0x2A:0:-1: ++# BZ12701 %*2x:0x2A:0:-1: ++%2x:ffffffff:1:2:255: ++%*2x:ffffffff:0:2: ++%2x:FFFFFFFF:1:2:255: ++%*2x:FFFFFFFF:0:2: ++# BZ12701 %2x:0Xffffffff:0:-1: ++# BZ12701 %*2x:0Xffffffff:0:-1: ++# BZ12701 %2x:0xFFFFFFFF:0:-1: ++# BZ12701 %*2x:0xFFFFFFFF:0:-1: ++%2x:100000000:1:2:16: ++%*2x:100000000:0:2: ++# BZ12701 %2x:0X100000000:0:-1: ++# BZ12701 %*2x:0X100000000:0:-1: ++# BZ12701 %2x:0x100000000:0:-1: ++# BZ12701 %*2x:0x100000000:0:-1: ++%2x:100001091:1:2:16: ++%*2x:100001091:0:2: ++# BZ12701 %2x:0X100001091:0:-1: ++# BZ12701 %*2x:0X100001091:0:-1: ++# BZ12701 %2x:0x100001091:0:-1: ++# BZ12701 %*2x:0x100001091:0:-1: ++%2x:+0:1:2:0: ++%*2x:+0:0:2: ++%2x:+0X0:1:2:0: ++%*2x:+0X0:0:2: ++%2x:+0x0:1:2:0: ++%*2x:+0x0:0:2: ++%2x:+1:1:2:1: ++%*2x:+1:0:2: ++%2x:+0X1:1:2:0: ++%*2x:+0X1:0:2: ++%2x:+0x1:1:2:0: ++%*2x:+0x1:0:2: ++%2x:+2a:1:2:2: ++%*2x:+2a:0:2: ++%2x:+2A:1:2:2: ++%*2x:+2A:0:2: ++%2x:+0X2a:1:2:0: ++%*2x:+0X2a:0:2: ++%2x:+0x2A:1:2:0: ++%*2x:+0x2A:0:2: ++%2x:+ffffffff:1:2:15: ++%*2x:+ffffffff:0:2: ++%2x:+FFFFFFFF:1:2:15: ++%*2x:+FFFFFFFF:0:2: ++%2x:+0Xffffffff:1:2:0: ++%*2x:+0Xffffffff:0:2: ++%2x:+0xFFFFFFFF:1:2:0: ++%*2x:+0xFFFFFFFF:0:2: ++%2x:+100000000:1:2:1: ++%*2x:+100000000:0:2: ++%2x:+0X100000000:1:2:0: ++%*2x:+0X100000000:0:2: ++%2x:+0x100000000:1:2:0: ++%*2x:+0x100000000:0:2: ++%2x:+100001091:1:2:1: ++%*2x:+100001091:0:2: ++%2x:+0X100001091:1:2:0: ++%*2x:+0X100001091:0:2: ++%2x:+0x100001091:1:2:0: ++%*2x:+0x100001091:0:2: ++%8x::0:-1: ++%*8x::0:-1: ++%8x:-7b:1:3:4294967173: ++%*8x:-7b:0:3: ++%8x:-7B:1:3:4294967173: ++%*8x:-7B:0:3: ++%8x:-0X7b:1:5:4294967173: ++%*8x:-0X7b:0:5: ++%8x:-0x7B:1:5:4294967173: ++%*8x:-0x7B:0:5: ++%8x:-1:1:2:4294967295: ++%*8x:-1:0:2: ++%8x:-0X1:1:4:4294967295: ++%*8x:-0X1:0:4: ++%8x:-0x1:1:4:4294967295: ++%*8x:-0x1:0:4: ++%8x:-0:1:2:0: ++%*8x:-0:0:2: ++%8x:-0X0:1:4:0: ++%*8x:-0X0:0:4: ++%8x:-0x0:1:4:0: ++%*8x:-0x0:0:4: ++%8x:0:1:1:0: ++%*8x:0:0:1: ++%8x:0X0:1:3:0: ++%*8x:0X0:0:3: ++%8x:0x0:1:3:0: ++%*8x:0x0:0:3: ++%8x:1:1:1:1: ++%*8x:1:0:1: ++%8x:0X1:1:3:1: ++%*8x:0X1:0:3: ++%8x:0x1:1:3:1: ++%*8x:0x1:0:3: ++%8x:2a:1:2:42: ++%*8x:2a:0:2: ++%8x:2A:1:2:42: ++%*8x:2A:0:2: ++%8x:0X2a:1:4:42: ++%*8x:0X2a:0:4: ++%8x:0x2A:1:4:42: ++%*8x:0x2A:0:4: ++%8x:ffffffff:1:8:4294967295: ++%*8x:ffffffff:0:8: ++%8x:FFFFFFFF:1:8:4294967295: ++%*8x:FFFFFFFF:0:8: ++%8x:0Xffffffff:1:8:16777215: ++%*8x:0Xffffffff:0:8: ++%8x:0xFFFFFFFF:1:8:16777215: ++%*8x:0xFFFFFFFF:0:8: ++%8x:100000000:1:8:268435456: ++%*8x:100000000:0:8: ++%8x:0X100000000:1:8:1048576: ++%*8x:0X100000000:0:8: ++%8x:0x100000000:1:8:1048576: ++%*8x:0x100000000:0:8: ++%8x:100001091:1:8:268435721: ++%*8x:100001091:0:8: ++%8x:0X100001091:1:8:1048577: ++%*8x:0X100001091:0:8: ++%8x:0x100001091:1:8:1048577: ++%*8x:0x100001091:0:8: ++%8x:+0:1:2:0: ++%*8x:+0:0:2: ++%8x:+0X0:1:4:0: ++%*8x:+0X0:0:4: ++%8x:+0x0:1:4:0: ++%*8x:+0x0:0:4: ++%8x:+1:1:2:1: ++%*8x:+1:0:2: ++%8x:+0X1:1:4:1: ++%*8x:+0X1:0:4: ++%8x:+0x1:1:4:1: ++%*8x:+0x1:0:4: ++%8x:+2a:1:3:42: ++%*8x:+2a:0:3: ++%8x:+2A:1:3:42: ++%*8x:+2A:0:3: ++%8x:+0X2a:1:5:42: ++%*8x:+0X2a:0:5: ++%8x:+0x2A:1:5:42: ++%*8x:+0x2A:0:5: ++%8x:+ffffffff:1:8:268435455: ++%*8x:+ffffffff:0:8: ++%8x:+FFFFFFFF:1:8:268435455: ++%*8x:+FFFFFFFF:0:8: ++%8x:+0Xffffffff:1:8:1048575: ++%*8x:+0Xffffffff:0:8: ++%8x:+0xFFFFFFFF:1:8:1048575: ++%*8x:+0xFFFFFFFF:0:8: ++%8x:+100000000:1:8:16777216: ++%*8x:+100000000:0:8: ++%8x:+0X100000000:1:8:65536: ++%*8x:+0X100000000:0:8: ++%8x:+0x100000000:1:8:65536: ++%*8x:+0x100000000:0:8: ++%8x:+100001091:1:8:16777232: ++%*8x:+100001091:0:8: ++%8x:+0X100001091:1:8:65536: ++%*8x:+0X100001091:0:8: ++%8x:+0x100001091:1:8:65536: ++%*8x:+0x100001091:0:8: ++%15x::0:-1: ++%*15x::0:-1: ++%15x:-7b:1:3:4294967173: ++%*15x:-7b:0:3: ++%15x:-7B:1:3:4294967173: ++%*15x:-7B:0:3: ++%15x:-0X7b:1:5:4294967173: ++%*15x:-0X7b:0:5: ++%15x:-0x7B:1:5:4294967173: ++%*15x:-0x7B:0:5: ++%15x:-1:1:2:4294967295: ++%*15x:-1:0:2: ++%15x:-0X1:1:4:4294967295: ++%*15x:-0X1:0:4: ++%15x:-0x1:1:4:4294967295: ++%*15x:-0x1:0:4: ++%15x:-0:1:2:0: ++%*15x:-0:0:2: ++%15x:-0X0:1:4:0: ++%*15x:-0X0:0:4: ++%15x:-0x0:1:4:0: ++%*15x:-0x0:0:4: ++%15x:0:1:1:0: ++%*15x:0:0:1: ++%15x:0X0:1:3:0: ++%*15x:0X0:0:3: ++%15x:0x0:1:3:0: ++%*15x:0x0:0:3: ++%15x:1:1:1:1: ++%*15x:1:0:1: ++%15x:0X1:1:3:1: ++%*15x:0X1:0:3: ++%15x:0x1:1:3:1: ++%*15x:0x1:0:3: ++%15x:2a:1:2:42: ++%*15x:2a:0:2: ++%15x:2A:1:2:42: ++%*15x:2A:0:2: ++%15x:0X2a:1:4:42: ++%*15x:0X2a:0:4: ++%15x:0x2A:1:4:42: ++%*15x:0x2A:0:4: ++%15x:ffffffff:1:8:4294967295: ++%*15x:ffffffff:0:8: ++%15x:FFFFFFFF:1:8:4294967295: ++%*15x:FFFFFFFF:0:8: ++%15x:0Xffffffff:1:10:4294967295: ++%*15x:0Xffffffff:0:10: ++%15x:0xFFFFFFFF:1:10:4294967295: ++%*15x:0xFFFFFFFF:0:10: ++%15x:100000000:1:9:0: ++%*15x:100000000:0:9: ++%15x:0X100000000:1:11:0: ++%*15x:0X100000000:0:11: ++%15x:0x100000000:1:11:0: ++%*15x:0x100000000:0:11: ++%15x:100001091:1:9:4241: ++%*15x:100001091:0:9: ++%15x:0X100001091:1:11:4241: ++%*15x:0X100001091:0:11: ++%15x:0x100001091:1:11:4241: ++%*15x:0x100001091:0:11: ++%15x:+0:1:2:0: ++%*15x:+0:0:2: ++%15x:+0X0:1:4:0: ++%*15x:+0X0:0:4: ++%15x:+0x0:1:4:0: ++%*15x:+0x0:0:4: ++%15x:+1:1:2:1: ++%*15x:+1:0:2: ++%15x:+0X1:1:4:1: ++%*15x:+0X1:0:4: ++%15x:+0x1:1:4:1: ++%*15x:+0x1:0:4: ++%15x:+2a:1:3:42: ++%*15x:+2a:0:3: ++%15x:+2A:1:3:42: ++%*15x:+2A:0:3: ++%15x:+0X2a:1:5:42: ++%*15x:+0X2a:0:5: ++%15x:+0x2A:1:5:42: ++%*15x:+0x2A:0:5: ++%15x:+ffffffff:1:9:4294967295: ++%*15x:+ffffffff:0:9: ++%15x:+FFFFFFFF:1:9:4294967295: ++%*15x:+FFFFFFFF:0:9: ++%15x:+0Xffffffff:1:11:4294967295: ++%*15x:+0Xffffffff:0:11: ++%15x:+0xFFFFFFFF:1:11:4294967295: ++%*15x:+0xFFFFFFFF:0:11: ++%15x:+100000000:1:10:0: ++%*15x:+100000000:0:10: ++%15x:+0X100000000:1:12:0: ++%*15x:+0X100000000:0:12: ++%15x:+0x100000000:1:12:0: ++%*15x:+0x100000000:0:12: ++%15x:+100001091:1:10:4241: ++%*15x:+100001091:0:10: ++%15x:+0X100001091:1:12:4241: ++%*15x:+0X100001091:0:12: ++%15x:+0x100001091:1:12:4241: ++%*15x:+0x100001091:0:12: ++%2x: :0:-1: ++%*2x: :0:-1: ++%2x: -7b:1:3:4294967289: ++%*2x: -7b:0:3: ++%2x: -7B:1:3:4294967289: ++%*2x: -7B:0:3: ++%2x: -0X7b:1:3:0: ++%*2x: -0X7b:0:3: ++%2x: -0x7B:1:3:0: ++%*2x: -0x7B:0:3: ++%2x: -1:1:3:4294967295: ++%*2x: -1:0:3: ++%2x: -0X1:1:3:0: ++%*2x: -0X1:0:3: ++%2x: -0x1:1:3:0: ++%*2x: -0x1:0:3: ++%2x: -0:1:3:0: ++%*2x: -0:0:3: ++%2x: -0X0:1:3:0: ++%*2x: -0X0:0:3: ++%2x: -0x0:1:3:0: ++%*2x: -0x0:0:3: ++%2x: 0:1:2:0: ++%*2x: 0:0:2: ++# BZ12701 %2x: 0X0:0:-1: ++# BZ12701 %*2x: 0X0:0:-1: ++# BZ12701 %2x: 0x0:0:-1: ++# BZ12701 %*2x: 0x0:0:-1: ++%2x: 1:1:2:1: ++%*2x: 1:0:2: ++# BZ12701 %2x: 0X1:0:-1: ++# BZ12701 %*2x: 0X1:0:-1: ++# BZ12701 %2x: 0x1:0:-1: ++# BZ12701 %*2x: 0x1:0:-1: ++%2x: 2a:1:3:42: ++%*2x: 2a:0:3: ++%2x: 2A:1:3:42: ++%*2x: 2A:0:3: ++# BZ12701 %2x: 0X2a:0:-1: ++# BZ12701 %*2x: 0X2a:0:-1: ++# BZ12701 %2x: 0x2A:0:-1: ++# BZ12701 %*2x: 0x2A:0:-1: ++%2x: ffffffff:1:3:255: ++%*2x: ffffffff:0:3: ++%2x: FFFFFFFF:1:3:255: ++%*2x: FFFFFFFF:0:3: ++# BZ12701 %2x: 0Xffffffff:0:-1: ++# BZ12701 %*2x: 0Xffffffff:0:-1: ++# BZ12701 %2x: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2x: 0xFFFFFFFF:0:-1: ++%2x: 100000000:1:3:16: ++%*2x: 100000000:0:3: ++# BZ12701 %2x: 0X100000000:0:-1: ++# BZ12701 %*2x: 0X100000000:0:-1: ++# BZ12701 %2x: 0x100000000:0:-1: ++# BZ12701 %*2x: 0x100000000:0:-1: ++%2x: 100001091:1:3:16: ++%*2x: 100001091:0:3: ++# BZ12701 %2x: 0X100001091:0:-1: ++# BZ12701 %*2x: 0X100001091:0:-1: ++# BZ12701 %2x: 0x100001091:0:-1: ++# BZ12701 %*2x: 0x100001091:0:-1: ++%2x: +0:1:3:0: ++%*2x: +0:0:3: ++%2x: +0X0:1:3:0: ++%*2x: +0X0:0:3: ++%2x: +0x0:1:3:0: ++%*2x: +0x0:0:3: ++%2x: +1:1:3:1: ++%*2x: +1:0:3: ++%2x: +0X1:1:3:0: ++%*2x: +0X1:0:3: ++%2x: +0x1:1:3:0: ++%*2x: +0x1:0:3: ++%2x: +2a:1:3:2: ++%*2x: +2a:0:3: ++%2x: +2A:1:3:2: ++%*2x: +2A:0:3: ++%2x: +0X2a:1:3:0: ++%*2x: +0X2a:0:3: ++%2x: +0x2A:1:3:0: ++%*2x: +0x2A:0:3: ++%2x: +ffffffff:1:3:15: ++%*2x: +ffffffff:0:3: ++%2x: +FFFFFFFF:1:3:15: ++%*2x: +FFFFFFFF:0:3: ++%2x: +0Xffffffff:1:3:0: ++%*2x: +0Xffffffff:0:3: ++%2x: +0xFFFFFFFF:1:3:0: ++%*2x: +0xFFFFFFFF:0:3: ++%2x: +100000000:1:3:1: ++%*2x: +100000000:0:3: ++%2x: +0X100000000:1:3:0: ++%*2x: +0X100000000:0:3: ++%2x: +0x100000000:1:3:0: ++%*2x: +0x100000000:0:3: ++%2x: +100001091:1:3:1: ++%*2x: +100001091:0:3: ++%2x: +0X100001091:1:3:0: ++%*2x: +0X100001091:0:3: ++%2x: +0x100001091:1:3:0: ++%*2x: +0x100001091:0:3: ++%15x: :0:-1: ++%*15x: :0:-1: ++%15x: -7b:1:4:4294967173: ++%*15x: -7b:0:4: ++%15x: -7B:1:4:4294967173: ++%*15x: -7B:0:4: ++%15x: -0X7b:1:6:4294967173: ++%*15x: -0X7b:0:6: ++%15x: -0x7B:1:6:4294967173: ++%*15x: -0x7B:0:6: ++%15x: -1:1:3:4294967295: ++%*15x: -1:0:3: ++%15x: -0X1:1:5:4294967295: ++%*15x: -0X1:0:5: ++%15x: -0x1:1:5:4294967295: ++%*15x: -0x1:0:5: ++%15x: -0:1:3:0: ++%*15x: -0:0:3: ++%15x: -0X0:1:5:0: ++%*15x: -0X0:0:5: ++%15x: -0x0:1:5:0: ++%*15x: -0x0:0:5: ++%15x: 0:1:2:0: ++%*15x: 0:0:2: ++%15x: 0X0:1:4:0: ++%*15x: 0X0:0:4: ++%15x: 0x0:1:4:0: ++%*15x: 0x0:0:4: ++%15x: 1:1:2:1: ++%*15x: 1:0:2: ++%15x: 0X1:1:4:1: ++%*15x: 0X1:0:4: ++%15x: 0x1:1:4:1: ++%*15x: 0x1:0:4: ++%15x: 2a:1:3:42: ++%*15x: 2a:0:3: ++%15x: 2A:1:3:42: ++%*15x: 2A:0:3: ++%15x: 0X2a:1:5:42: ++%*15x: 0X2a:0:5: ++%15x: 0x2A:1:5:42: ++%*15x: 0x2A:0:5: ++%15x: ffffffff:1:9:4294967295: ++%*15x: ffffffff:0:9: ++%15x: FFFFFFFF:1:9:4294967295: ++%*15x: FFFFFFFF:0:9: ++%15x: 0Xffffffff:1:11:4294967295: ++%*15x: 0Xffffffff:0:11: ++%15x: 0xFFFFFFFF:1:11:4294967295: ++%*15x: 0xFFFFFFFF:0:11: ++%15x: 100000000:1:10:0: ++%*15x: 100000000:0:10: ++%15x: 0X100000000:1:12:0: ++%*15x: 0X100000000:0:12: ++%15x: 0x100000000:1:12:0: ++%*15x: 0x100000000:0:12: ++%15x: 100001091:1:10:4241: ++%*15x: 100001091:0:10: ++%15x: 0X100001091:1:12:4241: ++%*15x: 0X100001091:0:12: ++%15x: 0x100001091:1:12:4241: ++%*15x: 0x100001091:0:12: ++%15x: +0:1:3:0: ++%*15x: +0:0:3: ++%15x: +0X0:1:5:0: ++%*15x: +0X0:0:5: ++%15x: +0x0:1:5:0: ++%*15x: +0x0:0:5: ++%15x: +1:1:3:1: ++%*15x: +1:0:3: ++%15x: +0X1:1:5:1: ++%*15x: +0X1:0:5: ++%15x: +0x1:1:5:1: ++%*15x: +0x1:0:5: ++%15x: +2a:1:4:42: ++%*15x: +2a:0:4: ++%15x: +2A:1:4:42: ++%*15x: +2A:0:4: ++%15x: +0X2a:1:6:42: ++%*15x: +0X2a:0:6: ++%15x: +0x2A:1:6:42: ++%*15x: +0x2A:0:6: ++%15x: +ffffffff:1:10:4294967295: ++%*15x: +ffffffff:0:10: ++%15x: +FFFFFFFF:1:10:4294967295: ++%*15x: +FFFFFFFF:0:10: ++%15x: +0Xffffffff:1:12:4294967295: ++%*15x: +0Xffffffff:0:12: ++%15x: +0xFFFFFFFF:1:12:4294967295: ++%*15x: +0xFFFFFFFF:0:12: ++%15x: +100000000:1:11:0: ++%*15x: +100000000:0:11: ++%15x: +0X100000000:1:13:0: ++%*15x: +0X100000000:0:13: ++%15x: +0x100000000:1:13:0: ++%*15x: +0x100000000:0:13: ++%15x: +100001091:1:11:4241: ++%*15x: +100001091:0:11: ++%15x: +0X100001091:1:13:4241: ++%*15x: +0X100001091:0:13: ++%15x: +0x100001091:1:13:4241: ++%*15x: +0x100001091:0:13: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-uint-xx.input b/sysdeps/wordsize-64/tst-scanf-format-uint-xx.input +new file mode 100644 +index 0000000000000000..d4aa7b0c7ac5ca36 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-uint-xx.input +@@ -0,0 +1,714 @@ ++%X::0:-1: ++%*X::0:-1: ++%X:-7b:1:3:4294967173: ++%*X:-7b:0:3: ++%X:-7B:1:3:4294967173: ++%*X:-7B:0:3: ++%X:-0X7b:1:5:4294967173: ++%*X:-0X7b:0:5: ++%X:-0x7B:1:5:4294967173: ++%*X:-0x7B:0:5: ++%X:-1:1:2:4294967295: ++%*X:-1:0:2: ++%X:-0X1:1:4:4294967295: ++%*X:-0X1:0:4: ++%X:-0x1:1:4:4294967295: ++%*X:-0x1:0:4: ++%X:-0:1:2:0: ++%*X:-0:0:2: ++%X:-0X0:1:4:0: ++%*X:-0X0:0:4: ++%X:-0x0:1:4:0: ++%*X:-0x0:0:4: ++%X:0:1:1:0: ++%*X:0:0:1: ++%X:0X0:1:3:0: ++%*X:0X0:0:3: ++%X:0x0:1:3:0: ++%*X:0x0:0:3: ++%X:1:1:1:1: ++%*X:1:0:1: ++%X:0X1:1:3:1: ++%*X:0X1:0:3: ++%X:0x1:1:3:1: ++%*X:0x1:0:3: ++%X:2a:1:2:42: ++%*X:2a:0:2: ++%X:2A:1:2:42: ++%*X:2A:0:2: ++%X:0X2a:1:4:42: ++%*X:0X2a:0:4: ++%X:0x2A:1:4:42: ++%*X:0x2A:0:4: ++%X:ffffffff:1:8:4294967295: ++%*X:ffffffff:0:8: ++%X:FFFFFFFF:1:8:4294967295: ++%*X:FFFFFFFF:0:8: ++%X:0Xffffffff:1:10:4294967295: ++%*X:0Xffffffff:0:10: ++%X:0xFFFFFFFF:1:10:4294967295: ++%*X:0xFFFFFFFF:0:10: ++%X:100000000:1:9:0: ++%*X:100000000:0:9: ++%X:0X100000000:1:11:0: ++%*X:0X100000000:0:11: ++%X:0x100000000:1:11:0: ++%*X:0x100000000:0:11: ++%X:100001091:1:9:4241: ++%*X:100001091:0:9: ++%X:0X100001091:1:11:4241: ++%*X:0X100001091:0:11: ++%X:0x100001091:1:11:4241: ++%*X:0x100001091:0:11: ++%X:+0:1:2:0: ++%*X:+0:0:2: ++%X:+0X0:1:4:0: ++%*X:+0X0:0:4: ++%X:+0x0:1:4:0: ++%*X:+0x0:0:4: ++%X:+1:1:2:1: ++%*X:+1:0:2: ++%X:+0X1:1:4:1: ++%*X:+0X1:0:4: ++%X:+0x1:1:4:1: ++%*X:+0x1:0:4: ++%X:+2a:1:3:42: ++%*X:+2a:0:3: ++%X:+2A:1:3:42: ++%*X:+2A:0:3: ++%X:+0X2a:1:5:42: ++%*X:+0X2a:0:5: ++%X:+0x2A:1:5:42: ++%*X:+0x2A:0:5: ++%X:+ffffffff:1:9:4294967295: ++%*X:+ffffffff:0:9: ++%X:+FFFFFFFF:1:9:4294967295: ++%*X:+FFFFFFFF:0:9: ++%X:+0Xffffffff:1:11:4294967295: ++%*X:+0Xffffffff:0:11: ++%X:+0xFFFFFFFF:1:11:4294967295: ++%*X:+0xFFFFFFFF:0:11: ++%X:+100000000:1:10:0: ++%*X:+100000000:0:10: ++%X:+0X100000000:1:12:0: ++%*X:+0X100000000:0:12: ++%X:+0x100000000:1:12:0: ++%*X:+0x100000000:0:12: ++%X:+100001091:1:10:4241: ++%*X:+100001091:0:10: ++%X:+0X100001091:1:12:4241: ++%*X:+0X100001091:0:12: ++%X:+0x100001091:1:12:4241: ++%*X:+0x100001091:0:12: ++%1X::0:-1: ++%*1X::0:-1: ++%1X:-7b:0:-1: ++%*1X:-7b:0:-1: ++%1X:-7B:0:-1: ++%*1X:-7B:0:-1: ++%1X:-0X7b:0:-1: ++%*1X:-0X7b:0:-1: ++%1X:-0x7B:0:-1: ++%*1X:-0x7B:0:-1: ++%1X:-1:0:-1: ++%*1X:-1:0:-1: ++%1X:-0X1:0:-1: ++%*1X:-0X1:0:-1: ++%1X:-0x1:0:-1: ++%*1X:-0x1:0:-1: ++%1X:-0:0:-1: ++%*1X:-0:0:-1: ++%1X:-0X0:0:-1: ++%*1X:-0X0:0:-1: ++%1X:-0x0:0:-1: ++%*1X:-0x0:0:-1: ++%1X:0:1:1:0: ++%*1X:0:0:1: ++%1X:0X0:1:1:0: ++%*1X:0X0:0:1: ++%1X:0x0:1:1:0: ++%*1X:0x0:0:1: ++%1X:1:1:1:1: ++%*1X:1:0:1: ++%1X:0X1:1:1:0: ++%*1X:0X1:0:1: ++%1X:0x1:1:1:0: ++%*1X:0x1:0:1: ++%1X:2a:1:1:2: ++%*1X:2a:0:1: ++%1X:2A:1:1:2: ++%*1X:2A:0:1: ++%1X:0X2a:1:1:0: ++%*1X:0X2a:0:1: ++%1X:0x2A:1:1:0: ++%*1X:0x2A:0:1: ++%1X:ffffffff:1:1:15: ++%*1X:ffffffff:0:1: ++%1X:FFFFFFFF:1:1:15: ++%*1X:FFFFFFFF:0:1: ++%1X:0Xffffffff:1:1:0: ++%*1X:0Xffffffff:0:1: ++%1X:0xFFFFFFFF:1:1:0: ++%*1X:0xFFFFFFFF:0:1: ++%1X:100000000:1:1:1: ++%*1X:100000000:0:1: ++%1X:0X100000000:1:1:0: ++%*1X:0X100000000:0:1: ++%1X:0x100000000:1:1:0: ++%*1X:0x100000000:0:1: ++%1X:100001091:1:1:1: ++%*1X:100001091:0:1: ++%1X:0X100001091:1:1:0: ++%*1X:0X100001091:0:1: ++%1X:0x100001091:1:1:0: ++%*1X:0x100001091:0:1: ++%1X:+0:0:-1: ++%*1X:+0:0:-1: ++%1X:+0X0:0:-1: ++%*1X:+0X0:0:-1: ++%1X:+0x0:0:-1: ++%*1X:+0x0:0:-1: ++%1X:+1:0:-1: ++%*1X:+1:0:-1: ++%1X:+0X1:0:-1: ++%*1X:+0X1:0:-1: ++%1X:+0x1:0:-1: ++%*1X:+0x1:0:-1: ++%1X:+2a:0:-1: ++%*1X:+2a:0:-1: ++%1X:+2A:0:-1: ++%*1X:+2A:0:-1: ++%1X:+0X2a:0:-1: ++%*1X:+0X2a:0:-1: ++%1X:+0x2A:0:-1: ++%*1X:+0x2A:0:-1: ++%1X:+ffffffff:0:-1: ++%*1X:+ffffffff:0:-1: ++%1X:+FFFFFFFF:0:-1: ++%*1X:+FFFFFFFF:0:-1: ++%1X:+0Xffffffff:0:-1: ++%*1X:+0Xffffffff:0:-1: ++%1X:+0xFFFFFFFF:0:-1: ++%*1X:+0xFFFFFFFF:0:-1: ++%1X:+100000000:0:-1: ++%*1X:+100000000:0:-1: ++%1X:+0X100000000:0:-1: ++%*1X:+0X100000000:0:-1: ++%1X:+0x100000000:0:-1: ++%*1X:+0x100000000:0:-1: ++%1X:+100001091:0:-1: ++%*1X:+100001091:0:-1: ++%1X:+0X100001091:0:-1: ++%*1X:+0X100001091:0:-1: ++%1X:+0x100001091:0:-1: ++%*1X:+0x100001091:0:-1: ++%2X::0:-1: ++%*2X::0:-1: ++%2X:-7b:1:2:4294967289: ++%*2X:-7b:0:2: ++%2X:-7B:1:2:4294967289: ++%*2X:-7B:0:2: ++%2X:-0X7b:1:2:0: ++%*2X:-0X7b:0:2: ++%2X:-0x7B:1:2:0: ++%*2X:-0x7B:0:2: ++%2X:-1:1:2:4294967295: ++%*2X:-1:0:2: ++%2X:-0X1:1:2:0: ++%*2X:-0X1:0:2: ++%2X:-0x1:1:2:0: ++%*2X:-0x1:0:2: ++%2X:-0:1:2:0: ++%*2X:-0:0:2: ++%2X:-0X0:1:2:0: ++%*2X:-0X0:0:2: ++%2X:-0x0:1:2:0: ++%*2X:-0x0:0:2: ++%2X:0:1:1:0: ++%*2X:0:0:1: ++# BZ12701 %2X:0X0:0:-1: ++# BZ12701 %*2X:0X0:0:-1: ++# BZ12701 %2X:0x0:0:-1: ++# BZ12701 %*2X:0x0:0:-1: ++%2X:1:1:1:1: ++%*2X:1:0:1: ++# BZ12701 %2X:0X1:0:-1: ++# BZ12701 %*2X:0X1:0:-1: ++# BZ12701 %2X:0x1:0:-1: ++# BZ12701 %*2X:0x1:0:-1: ++%2X:2a:1:2:42: ++%*2X:2a:0:2: ++%2X:2A:1:2:42: ++%*2X:2A:0:2: ++# BZ12701 %2X:0X2a:0:-1: ++# BZ12701 %*2X:0X2a:0:-1: ++# BZ12701 %2X:0x2A:0:-1: ++# BZ12701 %*2X:0x2A:0:-1: ++%2X:ffffffff:1:2:255: ++%*2X:ffffffff:0:2: ++%2X:FFFFFFFF:1:2:255: ++%*2X:FFFFFFFF:0:2: ++# BZ12701 %2X:0Xffffffff:0:-1: ++# BZ12701 %*2X:0Xffffffff:0:-1: ++# BZ12701 %2X:0xFFFFFFFF:0:-1: ++# BZ12701 %*2X:0xFFFFFFFF:0:-1: ++%2X:100000000:1:2:16: ++%*2X:100000000:0:2: ++# BZ12701 %2X:0X100000000:0:-1: ++# BZ12701 %*2X:0X100000000:0:-1: ++# BZ12701 %2X:0x100000000:0:-1: ++# BZ12701 %*2X:0x100000000:0:-1: ++%2X:100001091:1:2:16: ++%*2X:100001091:0:2: ++# BZ12701 %2X:0X100001091:0:-1: ++# BZ12701 %*2X:0X100001091:0:-1: ++# BZ12701 %2X:0x100001091:0:-1: ++# BZ12701 %*2X:0x100001091:0:-1: ++%2X:+0:1:2:0: ++%*2X:+0:0:2: ++%2X:+0X0:1:2:0: ++%*2X:+0X0:0:2: ++%2X:+0x0:1:2:0: ++%*2X:+0x0:0:2: ++%2X:+1:1:2:1: ++%*2X:+1:0:2: ++%2X:+0X1:1:2:0: ++%*2X:+0X1:0:2: ++%2X:+0x1:1:2:0: ++%*2X:+0x1:0:2: ++%2X:+2a:1:2:2: ++%*2X:+2a:0:2: ++%2X:+2A:1:2:2: ++%*2X:+2A:0:2: ++%2X:+0X2a:1:2:0: ++%*2X:+0X2a:0:2: ++%2X:+0x2A:1:2:0: ++%*2X:+0x2A:0:2: ++%2X:+ffffffff:1:2:15: ++%*2X:+ffffffff:0:2: ++%2X:+FFFFFFFF:1:2:15: ++%*2X:+FFFFFFFF:0:2: ++%2X:+0Xffffffff:1:2:0: ++%*2X:+0Xffffffff:0:2: ++%2X:+0xFFFFFFFF:1:2:0: ++%*2X:+0xFFFFFFFF:0:2: ++%2X:+100000000:1:2:1: ++%*2X:+100000000:0:2: ++%2X:+0X100000000:1:2:0: ++%*2X:+0X100000000:0:2: ++%2X:+0x100000000:1:2:0: ++%*2X:+0x100000000:0:2: ++%2X:+100001091:1:2:1: ++%*2X:+100001091:0:2: ++%2X:+0X100001091:1:2:0: ++%*2X:+0X100001091:0:2: ++%2X:+0x100001091:1:2:0: ++%*2X:+0x100001091:0:2: ++%8X::0:-1: ++%*8X::0:-1: ++%8X:-7b:1:3:4294967173: ++%*8X:-7b:0:3: ++%8X:-7B:1:3:4294967173: ++%*8X:-7B:0:3: ++%8X:-0X7b:1:5:4294967173: ++%*8X:-0X7b:0:5: ++%8X:-0x7B:1:5:4294967173: ++%*8X:-0x7B:0:5: ++%8X:-1:1:2:4294967295: ++%*8X:-1:0:2: ++%8X:-0X1:1:4:4294967295: ++%*8X:-0X1:0:4: ++%8X:-0x1:1:4:4294967295: ++%*8X:-0x1:0:4: ++%8X:-0:1:2:0: ++%*8X:-0:0:2: ++%8X:-0X0:1:4:0: ++%*8X:-0X0:0:4: ++%8X:-0x0:1:4:0: ++%*8X:-0x0:0:4: ++%8X:0:1:1:0: ++%*8X:0:0:1: ++%8X:0X0:1:3:0: ++%*8X:0X0:0:3: ++%8X:0x0:1:3:0: ++%*8X:0x0:0:3: ++%8X:1:1:1:1: ++%*8X:1:0:1: ++%8X:0X1:1:3:1: ++%*8X:0X1:0:3: ++%8X:0x1:1:3:1: ++%*8X:0x1:0:3: ++%8X:2a:1:2:42: ++%*8X:2a:0:2: ++%8X:2A:1:2:42: ++%*8X:2A:0:2: ++%8X:0X2a:1:4:42: ++%*8X:0X2a:0:4: ++%8X:0x2A:1:4:42: ++%*8X:0x2A:0:4: ++%8X:ffffffff:1:8:4294967295: ++%*8X:ffffffff:0:8: ++%8X:FFFFFFFF:1:8:4294967295: ++%*8X:FFFFFFFF:0:8: ++%8X:0Xffffffff:1:8:16777215: ++%*8X:0Xffffffff:0:8: ++%8X:0xFFFFFFFF:1:8:16777215: ++%*8X:0xFFFFFFFF:0:8: ++%8X:100000000:1:8:268435456: ++%*8X:100000000:0:8: ++%8X:0X100000000:1:8:1048576: ++%*8X:0X100000000:0:8: ++%8X:0x100000000:1:8:1048576: ++%*8X:0x100000000:0:8: ++%8X:100001091:1:8:268435721: ++%*8X:100001091:0:8: ++%8X:0X100001091:1:8:1048577: ++%*8X:0X100001091:0:8: ++%8X:0x100001091:1:8:1048577: ++%*8X:0x100001091:0:8: ++%8X:+0:1:2:0: ++%*8X:+0:0:2: ++%8X:+0X0:1:4:0: ++%*8X:+0X0:0:4: ++%8X:+0x0:1:4:0: ++%*8X:+0x0:0:4: ++%8X:+1:1:2:1: ++%*8X:+1:0:2: ++%8X:+0X1:1:4:1: ++%*8X:+0X1:0:4: ++%8X:+0x1:1:4:1: ++%*8X:+0x1:0:4: ++%8X:+2a:1:3:42: ++%*8X:+2a:0:3: ++%8X:+2A:1:3:42: ++%*8X:+2A:0:3: ++%8X:+0X2a:1:5:42: ++%*8X:+0X2a:0:5: ++%8X:+0x2A:1:5:42: ++%*8X:+0x2A:0:5: ++%8X:+ffffffff:1:8:268435455: ++%*8X:+ffffffff:0:8: ++%8X:+FFFFFFFF:1:8:268435455: ++%*8X:+FFFFFFFF:0:8: ++%8X:+0Xffffffff:1:8:1048575: ++%*8X:+0Xffffffff:0:8: ++%8X:+0xFFFFFFFF:1:8:1048575: ++%*8X:+0xFFFFFFFF:0:8: ++%8X:+100000000:1:8:16777216: ++%*8X:+100000000:0:8: ++%8X:+0X100000000:1:8:65536: ++%*8X:+0X100000000:0:8: ++%8X:+0x100000000:1:8:65536: ++%*8X:+0x100000000:0:8: ++%8X:+100001091:1:8:16777232: ++%*8X:+100001091:0:8: ++%8X:+0X100001091:1:8:65536: ++%*8X:+0X100001091:0:8: ++%8X:+0x100001091:1:8:65536: ++%*8X:+0x100001091:0:8: ++%15X::0:-1: ++%*15X::0:-1: ++%15X:-7b:1:3:4294967173: ++%*15X:-7b:0:3: ++%15X:-7B:1:3:4294967173: ++%*15X:-7B:0:3: ++%15X:-0X7b:1:5:4294967173: ++%*15X:-0X7b:0:5: ++%15X:-0x7B:1:5:4294967173: ++%*15X:-0x7B:0:5: ++%15X:-1:1:2:4294967295: ++%*15X:-1:0:2: ++%15X:-0X1:1:4:4294967295: ++%*15X:-0X1:0:4: ++%15X:-0x1:1:4:4294967295: ++%*15X:-0x1:0:4: ++%15X:-0:1:2:0: ++%*15X:-0:0:2: ++%15X:-0X0:1:4:0: ++%*15X:-0X0:0:4: ++%15X:-0x0:1:4:0: ++%*15X:-0x0:0:4: ++%15X:0:1:1:0: ++%*15X:0:0:1: ++%15X:0X0:1:3:0: ++%*15X:0X0:0:3: ++%15X:0x0:1:3:0: ++%*15X:0x0:0:3: ++%15X:1:1:1:1: ++%*15X:1:0:1: ++%15X:0X1:1:3:1: ++%*15X:0X1:0:3: ++%15X:0x1:1:3:1: ++%*15X:0x1:0:3: ++%15X:2a:1:2:42: ++%*15X:2a:0:2: ++%15X:2A:1:2:42: ++%*15X:2A:0:2: ++%15X:0X2a:1:4:42: ++%*15X:0X2a:0:4: ++%15X:0x2A:1:4:42: ++%*15X:0x2A:0:4: ++%15X:ffffffff:1:8:4294967295: ++%*15X:ffffffff:0:8: ++%15X:FFFFFFFF:1:8:4294967295: ++%*15X:FFFFFFFF:0:8: ++%15X:0Xffffffff:1:10:4294967295: ++%*15X:0Xffffffff:0:10: ++%15X:0xFFFFFFFF:1:10:4294967295: ++%*15X:0xFFFFFFFF:0:10: ++%15X:100000000:1:9:0: ++%*15X:100000000:0:9: ++%15X:0X100000000:1:11:0: ++%*15X:0X100000000:0:11: ++%15X:0x100000000:1:11:0: ++%*15X:0x100000000:0:11: ++%15X:100001091:1:9:4241: ++%*15X:100001091:0:9: ++%15X:0X100001091:1:11:4241: ++%*15X:0X100001091:0:11: ++%15X:0x100001091:1:11:4241: ++%*15X:0x100001091:0:11: ++%15X:+0:1:2:0: ++%*15X:+0:0:2: ++%15X:+0X0:1:4:0: ++%*15X:+0X0:0:4: ++%15X:+0x0:1:4:0: ++%*15X:+0x0:0:4: ++%15X:+1:1:2:1: ++%*15X:+1:0:2: ++%15X:+0X1:1:4:1: ++%*15X:+0X1:0:4: ++%15X:+0x1:1:4:1: ++%*15X:+0x1:0:4: ++%15X:+2a:1:3:42: ++%*15X:+2a:0:3: ++%15X:+2A:1:3:42: ++%*15X:+2A:0:3: ++%15X:+0X2a:1:5:42: ++%*15X:+0X2a:0:5: ++%15X:+0x2A:1:5:42: ++%*15X:+0x2A:0:5: ++%15X:+ffffffff:1:9:4294967295: ++%*15X:+ffffffff:0:9: ++%15X:+FFFFFFFF:1:9:4294967295: ++%*15X:+FFFFFFFF:0:9: ++%15X:+0Xffffffff:1:11:4294967295: ++%*15X:+0Xffffffff:0:11: ++%15X:+0xFFFFFFFF:1:11:4294967295: ++%*15X:+0xFFFFFFFF:0:11: ++%15X:+100000000:1:10:0: ++%*15X:+100000000:0:10: ++%15X:+0X100000000:1:12:0: ++%*15X:+0X100000000:0:12: ++%15X:+0x100000000:1:12:0: ++%*15X:+0x100000000:0:12: ++%15X:+100001091:1:10:4241: ++%*15X:+100001091:0:10: ++%15X:+0X100001091:1:12:4241: ++%*15X:+0X100001091:0:12: ++%15X:+0x100001091:1:12:4241: ++%*15X:+0x100001091:0:12: ++%2X: :0:-1: ++%*2X: :0:-1: ++%2X: -7b:1:3:4294967289: ++%*2X: -7b:0:3: ++%2X: -7B:1:3:4294967289: ++%*2X: -7B:0:3: ++%2X: -0X7b:1:3:0: ++%*2X: -0X7b:0:3: ++%2X: -0x7B:1:3:0: ++%*2X: -0x7B:0:3: ++%2X: -1:1:3:4294967295: ++%*2X: -1:0:3: ++%2X: -0X1:1:3:0: ++%*2X: -0X1:0:3: ++%2X: -0x1:1:3:0: ++%*2X: -0x1:0:3: ++%2X: -0:1:3:0: ++%*2X: -0:0:3: ++%2X: -0X0:1:3:0: ++%*2X: -0X0:0:3: ++%2X: -0x0:1:3:0: ++%*2X: -0x0:0:3: ++%2X: 0:1:2:0: ++%*2X: 0:0:2: ++# BZ12701 %2X: 0X0:0:-1: ++# BZ12701 %*2X: 0X0:0:-1: ++# BZ12701 %2X: 0x0:0:-1: ++# BZ12701 %*2X: 0x0:0:-1: ++%2X: 1:1:2:1: ++%*2X: 1:0:2: ++# BZ12701 %2X: 0X1:0:-1: ++# BZ12701 %*2X: 0X1:0:-1: ++# BZ12701 %2X: 0x1:0:-1: ++# BZ12701 %*2X: 0x1:0:-1: ++%2X: 2a:1:3:42: ++%*2X: 2a:0:3: ++%2X: 2A:1:3:42: ++%*2X: 2A:0:3: ++# BZ12701 %2X: 0X2a:0:-1: ++# BZ12701 %*2X: 0X2a:0:-1: ++# BZ12701 %2X: 0x2A:0:-1: ++# BZ12701 %*2X: 0x2A:0:-1: ++%2X: ffffffff:1:3:255: ++%*2X: ffffffff:0:3: ++%2X: FFFFFFFF:1:3:255: ++%*2X: FFFFFFFF:0:3: ++# BZ12701 %2X: 0Xffffffff:0:-1: ++# BZ12701 %*2X: 0Xffffffff:0:-1: ++# BZ12701 %2X: 0xFFFFFFFF:0:-1: ++# BZ12701 %*2X: 0xFFFFFFFF:0:-1: ++%2X: 100000000:1:3:16: ++%*2X: 100000000:0:3: ++# BZ12701 %2X: 0X100000000:0:-1: ++# BZ12701 %*2X: 0X100000000:0:-1: ++# BZ12701 %2X: 0x100000000:0:-1: ++# BZ12701 %*2X: 0x100000000:0:-1: ++%2X: 100001091:1:3:16: ++%*2X: 100001091:0:3: ++# BZ12701 %2X: 0X100001091:0:-1: ++# BZ12701 %*2X: 0X100001091:0:-1: ++# BZ12701 %2X: 0x100001091:0:-1: ++# BZ12701 %*2X: 0x100001091:0:-1: ++%2X: +0:1:3:0: ++%*2X: +0:0:3: ++%2X: +0X0:1:3:0: ++%*2X: +0X0:0:3: ++%2X: +0x0:1:3:0: ++%*2X: +0x0:0:3: ++%2X: +1:1:3:1: ++%*2X: +1:0:3: ++%2X: +0X1:1:3:0: ++%*2X: +0X1:0:3: ++%2X: +0x1:1:3:0: ++%*2X: +0x1:0:3: ++%2X: +2a:1:3:2: ++%*2X: +2a:0:3: ++%2X: +2A:1:3:2: ++%*2X: +2A:0:3: ++%2X: +0X2a:1:3:0: ++%*2X: +0X2a:0:3: ++%2X: +0x2A:1:3:0: ++%*2X: +0x2A:0:3: ++%2X: +ffffffff:1:3:15: ++%*2X: +ffffffff:0:3: ++%2X: +FFFFFFFF:1:3:15: ++%*2X: +FFFFFFFF:0:3: ++%2X: +0Xffffffff:1:3:0: ++%*2X: +0Xffffffff:0:3: ++%2X: +0xFFFFFFFF:1:3:0: ++%*2X: +0xFFFFFFFF:0:3: ++%2X: +100000000:1:3:1: ++%*2X: +100000000:0:3: ++%2X: +0X100000000:1:3:0: ++%*2X: +0X100000000:0:3: ++%2X: +0x100000000:1:3:0: ++%*2X: +0x100000000:0:3: ++%2X: +100001091:1:3:1: ++%*2X: +100001091:0:3: ++%2X: +0X100001091:1:3:0: ++%*2X: +0X100001091:0:3: ++%2X: +0x100001091:1:3:0: ++%*2X: +0x100001091:0:3: ++%15X: :0:-1: ++%*15X: :0:-1: ++%15X: -7b:1:4:4294967173: ++%*15X: -7b:0:4: ++%15X: -7B:1:4:4294967173: ++%*15X: -7B:0:4: ++%15X: -0X7b:1:6:4294967173: ++%*15X: -0X7b:0:6: ++%15X: -0x7B:1:6:4294967173: ++%*15X: -0x7B:0:6: ++%15X: -1:1:3:4294967295: ++%*15X: -1:0:3: ++%15X: -0X1:1:5:4294967295: ++%*15X: -0X1:0:5: ++%15X: -0x1:1:5:4294967295: ++%*15X: -0x1:0:5: ++%15X: -0:1:3:0: ++%*15X: -0:0:3: ++%15X: -0X0:1:5:0: ++%*15X: -0X0:0:5: ++%15X: -0x0:1:5:0: ++%*15X: -0x0:0:5: ++%15X: 0:1:2:0: ++%*15X: 0:0:2: ++%15X: 0X0:1:4:0: ++%*15X: 0X0:0:4: ++%15X: 0x0:1:4:0: ++%*15X: 0x0:0:4: ++%15X: 1:1:2:1: ++%*15X: 1:0:2: ++%15X: 0X1:1:4:1: ++%*15X: 0X1:0:4: ++%15X: 0x1:1:4:1: ++%*15X: 0x1:0:4: ++%15X: 2a:1:3:42: ++%*15X: 2a:0:3: ++%15X: 2A:1:3:42: ++%*15X: 2A:0:3: ++%15X: 0X2a:1:5:42: ++%*15X: 0X2a:0:5: ++%15X: 0x2A:1:5:42: ++%*15X: 0x2A:0:5: ++%15X: ffffffff:1:9:4294967295: ++%*15X: ffffffff:0:9: ++%15X: FFFFFFFF:1:9:4294967295: ++%*15X: FFFFFFFF:0:9: ++%15X: 0Xffffffff:1:11:4294967295: ++%*15X: 0Xffffffff:0:11: ++%15X: 0xFFFFFFFF:1:11:4294967295: ++%*15X: 0xFFFFFFFF:0:11: ++%15X: 100000000:1:10:0: ++%*15X: 100000000:0:10: ++%15X: 0X100000000:1:12:0: ++%*15X: 0X100000000:0:12: ++%15X: 0x100000000:1:12:0: ++%*15X: 0x100000000:0:12: ++%15X: 100001091:1:10:4241: ++%*15X: 100001091:0:10: ++%15X: 0X100001091:1:12:4241: ++%*15X: 0X100001091:0:12: ++%15X: 0x100001091:1:12:4241: ++%*15X: 0x100001091:0:12: ++%15X: +0:1:3:0: ++%*15X: +0:0:3: ++%15X: +0X0:1:5:0: ++%*15X: +0X0:0:5: ++%15X: +0x0:1:5:0: ++%*15X: +0x0:0:5: ++%15X: +1:1:3:1: ++%*15X: +1:0:3: ++%15X: +0X1:1:5:1: ++%*15X: +0X1:0:5: ++%15X: +0x1:1:5:1: ++%*15X: +0x1:0:5: ++%15X: +2a:1:4:42: ++%*15X: +2a:0:4: ++%15X: +2A:1:4:42: ++%*15X: +2A:0:4: ++%15X: +0X2a:1:6:42: ++%*15X: +0X2a:0:6: ++%15X: +0x2A:1:6:42: ++%*15X: +0x2A:0:6: ++%15X: +ffffffff:1:10:4294967295: ++%*15X: +ffffffff:0:10: ++%15X: +FFFFFFFF:1:10:4294967295: ++%*15X: +FFFFFFFF:0:10: ++%15X: +0Xffffffff:1:12:4294967295: ++%*15X: +0Xffffffff:0:12: ++%15X: +0xFFFFFFFF:1:12:4294967295: ++%*15X: +0xFFFFFFFF:0:12: ++%15X: +100000000:1:11:0: ++%*15X: +100000000:0:11: ++%15X: +0X100000000:1:13:0: ++%*15X: +0X100000000:0:13: ++%15X: +0x100000000:1:13:0: ++%*15X: +0x100000000:0:13: ++%15X: +100001091:1:11:4241: ++%*15X: +100001091:0:11: ++%15X: +0X100001091:1:13:4241: ++%*15X: +0X100001091:0:13: ++%15X: +0x100001091:1:13:4241: ++%*15X: +0x100001091:0:13: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input +new file mode 100644 +index 0000000000000000..ceb176e387185ae3 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-b.input +@@ -0,0 +1,644 @@ ++%lb::0:-1: ++%*lb::0:-1: ++%lb:-1111011:1:8:-123: ++%*lb:-1111011:0:8: ++%lb:-0B1111011:1:10:-123: ++%*lb:-0B1111011:0:10: ++%lb:-0b1111011:1:10:-123: ++%*lb:-0b1111011:0:10: ++%lb:-1:1:2:-1: ++%*lb:-1:0:2: ++%lb:-0B1:1:4:-1: ++%*lb:-0B1:0:4: ++%lb:-0b1:1:4:-1: ++%*lb:-0b1:0:4: ++%lb:-0:1:2:0: ++%*lb:-0:0:2: ++%lb:-0B0:1:4:0: ++%*lb:-0B0:0:4: ++%lb:-0b0:1:4:0: ++%*lb:-0b0:0:4: ++%lb:0:1:1:0: ++%*lb:0:0:1: ++%lb:0B0:1:3:0: ++%*lb:0B0:0:3: ++%lb:0b0:1:3:0: ++%*lb:0b0:0:3: ++%lb:1:1:1:1: ++%*lb:1:0:1: ++%lb:0B1:1:3:1: ++%*lb:0B1:0:3: ++%lb:0b1:1:3:1: ++%*lb:0b1:0:3: ++%lb:101010:1:6:42: ++%*lb:101010:0:6: ++%lb:0B101010:1:8:42: ++%*lb:0B101010:0:8: ++%lb:0b101010:1:8:42: ++%*lb:0b101010:0:8: ++%lb:1111111111111111111111111111111111111111111111111111111111111111:1:64:18446744073709551615: ++%*lb:1111111111111111111111111111111111111111111111111111111111111111:0:64: ++%lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: ++%*lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:66: ++%lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:66:18446744073709551615: ++%*lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:66: ++%lb:10000000000000000000000000000000000000000000000000000000000000000:1:65:18446744073709551615: ++%*lb:10000000000000000000000000000000000000000000000000000000000000000:0:65: ++%lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: ++%*lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:67:18446744073709551615: ++%*lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:67: ++%lb:10000000000000000000000000000000000000010100001110101011110110001:1:65:18446744073709551615: ++%*lb:10000000000000000000000000000000000000010100001110101011110110001:0:65: ++%lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: ++%*lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:67: ++%lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:67:18446744073709551615: ++%*lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:67: ++%lb:+0:1:2:0: ++%*lb:+0:0:2: ++%lb:+0B0:1:4:0: ++%*lb:+0B0:0:4: ++%lb:+0b0:1:4:0: ++%*lb:+0b0:0:4: ++%lb:+1:1:2:1: ++%*lb:+1:0:2: ++%lb:+0B1:1:4:1: ++%*lb:+0B1:0:4: ++%lb:+0b1:1:4:1: ++%*lb:+0b1:0:4: ++%lb:+101010:1:7:42: ++%*lb:+101010:0:7: ++%lb:+0B101010:1:9:42: ++%*lb:+0B101010:0:9: ++%lb:+0b101010:1:9:42: ++%*lb:+0b101010:0:9: ++%lb:+1111111111111111111111111111111111111111111111111111111111111111:1:65:18446744073709551615: ++%*lb:+1111111111111111111111111111111111111111111111111111111111111111:0:65: ++%lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: ++%*lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:67: ++%lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:67:18446744073709551615: ++%*lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:67: ++%lb:+10000000000000000000000000000000000000000000000000000000000000000:1:66:18446744073709551615: ++%*lb:+10000000000000000000000000000000000000000000000000000000000000000:0:66: ++%lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: ++%*lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:68: ++%lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:68:18446744073709551615: ++%*lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:68: ++%lb:+10000000000000000000000000000000000000010100001110101011110110001:1:66:18446744073709551615: ++%*lb:+10000000000000000000000000000000000000010100001110101011110110001:0:66: ++%lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: ++%*lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:68: ++%lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:68:18446744073709551615: ++%*lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:68: ++%1lb::0:-1: ++%*1lb::0:-1: ++%1lb:-1111011:0:-1: ++%*1lb:-1111011:0:-1: ++%1lb:-0B1111011:0:-1: ++%*1lb:-0B1111011:0:-1: ++%1lb:-0b1111011:0:-1: ++%*1lb:-0b1111011:0:-1: ++%1lb:-1:0:-1: ++%*1lb:-1:0:-1: ++%1lb:-0B1:0:-1: ++%*1lb:-0B1:0:-1: ++%1lb:-0b1:0:-1: ++%*1lb:-0b1:0:-1: ++%1lb:-0:0:-1: ++%*1lb:-0:0:-1: ++%1lb:-0B0:0:-1: ++%*1lb:-0B0:0:-1: ++%1lb:-0b0:0:-1: ++%*1lb:-0b0:0:-1: ++%1lb:0:1:1:0: ++%*1lb:0:0:1: ++%1lb:0B0:1:1:0: ++%*1lb:0B0:0:1: ++%1lb:0b0:1:1:0: ++%*1lb:0b0:0:1: ++%1lb:1:1:1:1: ++%*1lb:1:0:1: ++%1lb:0B1:1:1:0: ++%*1lb:0B1:0:1: ++%1lb:0b1:1:1:0: ++%*1lb:0b1:0:1: ++%1lb:101010:1:1:1: ++%*1lb:101010:0:1: ++%1lb:0B101010:1:1:0: ++%*1lb:0B101010:0:1: ++%1lb:0b101010:1:1:0: ++%*1lb:0b101010:0:1: ++%1lb:1111111111111111111111111111111111111111111111111111111111111111:1:1:1: ++%*1lb:1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:1:0: ++%*1lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:1: ++%1lb:10000000000000000000000000000000000000000000000000000000000000000:1:1:1: ++%*1lb:10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:1:0: ++%*1lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:1: ++%1lb:10000000000000000000000000000000000000010100001110101011110110001:1:1:1: ++%*1lb:10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:1:0: ++%*1lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:1: ++%1lb:+0:0:-1: ++%*1lb:+0:0:-1: ++%1lb:+0B0:0:-1: ++%*1lb:+0B0:0:-1: ++%1lb:+0b0:0:-1: ++%*1lb:+0b0:0:-1: ++%1lb:+1:0:-1: ++%*1lb:+1:0:-1: ++%1lb:+0B1:0:-1: ++%*1lb:+0B1:0:-1: ++%1lb:+0b1:0:-1: ++%*1lb:+0b1:0:-1: ++%1lb:+101010:0:-1: ++%*1lb:+101010:0:-1: ++%1lb:+0B101010:0:-1: ++%*1lb:+0B101010:0:-1: ++%1lb:+0b101010:0:-1: ++%*1lb:+0b101010:0:-1: ++%1lb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1lb:+1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%*1lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%1lb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lb:+10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%*1lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%1lb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1lb:+10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%1lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%*1lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lb::0:-1: ++%*2lb::0:-1: ++%2lb:-1111011:1:2:-1: ++%*2lb:-1111011:0:2: ++%2lb:-0B1111011:1:2:0: ++%*2lb:-0B1111011:0:2: ++%2lb:-0b1111011:1:2:0: ++%*2lb:-0b1111011:0:2: ++%2lb:-1:1:2:-1: ++%*2lb:-1:0:2: ++%2lb:-0B1:1:2:0: ++%*2lb:-0B1:0:2: ++%2lb:-0b1:1:2:0: ++%*2lb:-0b1:0:2: ++%2lb:-0:1:2:0: ++%*2lb:-0:0:2: ++%2lb:-0B0:1:2:0: ++%*2lb:-0B0:0:2: ++%2lb:-0b0:1:2:0: ++%*2lb:-0b0:0:2: ++%2lb:0:1:1:0: ++%*2lb:0:0:1: ++# BZ12701 %2lb:0B0:0:-1: ++# BZ12701 %*2lb:0B0:0:-1: ++# BZ12701 %2lb:0b0:0:-1: ++# BZ12701 %*2lb:0b0:0:-1: ++%2lb:1:1:1:1: ++%*2lb:1:0:1: ++# BZ12701 %2lb:0B1:0:-1: ++# BZ12701 %*2lb:0B1:0:-1: ++# BZ12701 %2lb:0b1:0:-1: ++# BZ12701 %*2lb:0b1:0:-1: ++%2lb:101010:1:2:2: ++%*2lb:101010:0:2: ++# BZ12701 %2lb:0B101010:0:-1: ++# BZ12701 %*2lb:0B101010:0:-1: ++# BZ12701 %2lb:0b101010:0:-1: ++# BZ12701 %*2lb:0b101010:0:-1: ++%2lb:1111111111111111111111111111111111111111111111111111111111111111:1:2:3: ++%*2lb:1111111111111111111111111111111111111111111111111111111111111111:0:2: ++# BZ12701 %2lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2lb:10000000000000000000000000000000000000000000000000000000000000000:1:2:2: ++%*2lb:10000000000000000000000000000000000000000000000000000000000000000:0:2: ++# BZ12701 %2lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2lb:10000000000000000000000000000000000000010100001110101011110110001:1:2:2: ++%*2lb:10000000000000000000000000000000000000010100001110101011110110001:0:2: ++# BZ12701 %2lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lb:+0:1:2:0: ++%*2lb:+0:0:2: ++%2lb:+0B0:1:2:0: ++%*2lb:+0B0:0:2: ++%2lb:+0b0:1:2:0: ++%*2lb:+0b0:0:2: ++%2lb:+1:1:2:1: ++%*2lb:+1:0:2: ++%2lb:+0B1:1:2:0: ++%*2lb:+0B1:0:2: ++%2lb:+0b1:1:2:0: ++%*2lb:+0b1:0:2: ++%2lb:+101010:1:2:1: ++%*2lb:+101010:0:2: ++%2lb:+0B101010:1:2:0: ++%*2lb:+0B101010:0:2: ++%2lb:+0b101010:1:2:0: ++%*2lb:+0b101010:0:2: ++%2lb:+1111111111111111111111111111111111111111111111111111111111111111:1:2:1: ++%*2lb:+1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:2:0: ++%*2lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:2: ++%2lb:+10000000000000000000000000000000000000000000000000000000000000000:1:2:1: ++%*2lb:+10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:2:0: ++%*2lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:2: ++%2lb:+10000000000000000000000000000000000000010100001110101011110110001:1:2:1: ++%*2lb:+10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%2lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:2:0: ++%*2lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:2: ++%15lb::0:-1: ++%*15lb::0:-1: ++%15lb:-1111011:1:8:-123: ++%*15lb:-1111011:0:8: ++%15lb:-0B1111011:1:10:-123: ++%*15lb:-0B1111011:0:10: ++%15lb:-0b1111011:1:10:-123: ++%*15lb:-0b1111011:0:10: ++%15lb:-1:1:2:-1: ++%*15lb:-1:0:2: ++%15lb:-0B1:1:4:-1: ++%*15lb:-0B1:0:4: ++%15lb:-0b1:1:4:-1: ++%*15lb:-0b1:0:4: ++%15lb:-0:1:2:0: ++%*15lb:-0:0:2: ++%15lb:-0B0:1:4:0: ++%*15lb:-0B0:0:4: ++%15lb:-0b0:1:4:0: ++%*15lb:-0b0:0:4: ++%15lb:0:1:1:0: ++%*15lb:0:0:1: ++%15lb:0B0:1:3:0: ++%*15lb:0B0:0:3: ++%15lb:0b0:1:3:0: ++%*15lb:0b0:0:3: ++%15lb:1:1:1:1: ++%*15lb:1:0:1: ++%15lb:0B1:1:3:1: ++%*15lb:0B1:0:3: ++%15lb:0b1:1:3:1: ++%*15lb:0b1:0:3: ++%15lb:101010:1:6:42: ++%*15lb:101010:0:6: ++%15lb:0B101010:1:8:42: ++%*15lb:0B101010:0:8: ++%15lb:0b101010:1:8:42: ++%*15lb:0b101010:0:8: ++%15lb:1111111111111111111111111111111111111111111111111111111111111111:1:15:32767: ++%*15lb:1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:15:8191: ++%*15lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:10000000000000000000000000000000000000000000000000000000000000000:1:15:16384: ++%*15lb:10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:15:4096: ++%*15lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:10000000000000000000000000000000000000010100001110101011110110001:1:15:16384: ++%*15lb:10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:15:4096: ++%*15lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lb:+0:1:2:0: ++%*15lb:+0:0:2: ++%15lb:+0B0:1:4:0: ++%*15lb:+0B0:0:4: ++%15lb:+0b0:1:4:0: ++%*15lb:+0b0:0:4: ++%15lb:+1:1:2:1: ++%*15lb:+1:0:2: ++%15lb:+0B1:1:4:1: ++%*15lb:+0B1:0:4: ++%15lb:+0b1:1:4:1: ++%*15lb:+0b1:0:4: ++%15lb:+101010:1:7:42: ++%*15lb:+101010:0:7: ++%15lb:+0B101010:1:9:42: ++%*15lb:+0B101010:0:9: ++%15lb:+0b101010:1:9:42: ++%*15lb:+0b101010:0:9: ++%15lb:+1111111111111111111111111111111111111111111111111111111111111111:1:15:16383: ++%*15lb:+1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:15:4095: ++%*15lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:15: ++%15lb:+10000000000000000000000000000000000000000000000000000000000000000:1:15:8192: ++%*15lb:+10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:15:2048: ++%*15lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:15: ++%15lb:+10000000000000000000000000000000000000010100001110101011110110001:1:15:8192: ++%*15lb:+10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%15lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:15:2048: ++%*15lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:15: ++%25lb::0:-1: ++%*25lb::0:-1: ++%25lb:-1111011:1:8:-123: ++%*25lb:-1111011:0:8: ++%25lb:-0B1111011:1:10:-123: ++%*25lb:-0B1111011:0:10: ++%25lb:-0b1111011:1:10:-123: ++%*25lb:-0b1111011:0:10: ++%25lb:-1:1:2:-1: ++%*25lb:-1:0:2: ++%25lb:-0B1:1:4:-1: ++%*25lb:-0B1:0:4: ++%25lb:-0b1:1:4:-1: ++%*25lb:-0b1:0:4: ++%25lb:-0:1:2:0: ++%*25lb:-0:0:2: ++%25lb:-0B0:1:4:0: ++%*25lb:-0B0:0:4: ++%25lb:-0b0:1:4:0: ++%*25lb:-0b0:0:4: ++%25lb:0:1:1:0: ++%*25lb:0:0:1: ++%25lb:0B0:1:3:0: ++%*25lb:0B0:0:3: ++%25lb:0b0:1:3:0: ++%*25lb:0b0:0:3: ++%25lb:1:1:1:1: ++%*25lb:1:0:1: ++%25lb:0B1:1:3:1: ++%*25lb:0B1:0:3: ++%25lb:0b1:1:3:1: ++%*25lb:0b1:0:3: ++%25lb:101010:1:6:42: ++%*25lb:101010:0:6: ++%25lb:0B101010:1:8:42: ++%*25lb:0B101010:0:8: ++%25lb:0b101010:1:8:42: ++%*25lb:0b101010:0:8: ++%25lb:1111111111111111111111111111111111111111111111111111111111111111:1:25:33554431: ++%*25lb:1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:0B1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25lb:0B1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:0b1111111111111111111111111111111111111111111111111111111111111111:1:25:8388607: ++%*25lb:0b1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:10000000000000000000000000000000000000000000000000000000000000000:1:25:16777216: ++%*25lb:10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:0B10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25lb:0B10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:0b10000000000000000000000000000000000000000000000000000000000000000:1:25:4194304: ++%*25lb:0b10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:10000000000000000000000000000000000000010100001110101011110110001:1:25:16777216: ++%*25lb:10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lb:0B10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25lb:0B10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lb:0b10000000000000000000000000000000000000010100001110101011110110001:1:25:4194304: ++%*25lb:0b10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lb:+0:1:2:0: ++%*25lb:+0:0:2: ++%25lb:+0B0:1:4:0: ++%*25lb:+0B0:0:4: ++%25lb:+0b0:1:4:0: ++%*25lb:+0b0:0:4: ++%25lb:+1:1:2:1: ++%*25lb:+1:0:2: ++%25lb:+0B1:1:4:1: ++%*25lb:+0B1:0:4: ++%25lb:+0b1:1:4:1: ++%*25lb:+0b1:0:4: ++%25lb:+101010:1:7:42: ++%*25lb:+101010:0:7: ++%25lb:+0B101010:1:9:42: ++%*25lb:+0B101010:0:9: ++%25lb:+0b101010:1:9:42: ++%*25lb:+0b101010:0:9: ++%25lb:+1111111111111111111111111111111111111111111111111111111111111111:1:25:16777215: ++%*25lb:+1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:+0B1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25lb:+0B1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:+0b1111111111111111111111111111111111111111111111111111111111111111:1:25:4194303: ++%*25lb:+0b1111111111111111111111111111111111111111111111111111111111111111:0:25: ++%25lb:+10000000000000000000000000000000000000000000000000000000000000000:1:25:8388608: ++%*25lb:+10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:+0B10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25lb:+0B10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:+0b10000000000000000000000000000000000000000000000000000000000000000:1:25:2097152: ++%*25lb:+0b10000000000000000000000000000000000000000000000000000000000000000:0:25: ++%25lb:+10000000000000000000000000000000000000010100001110101011110110001:1:25:8388608: ++%*25lb:+10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lb:+0B10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25lb:+0B10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%25lb:+0b10000000000000000000000000000000000000010100001110101011110110001:1:25:2097152: ++%*25lb:+0b10000000000000000000000000000000000000010100001110101011110110001:0:25: ++%2lb: :0:-1: ++%*2lb: :0:-1: ++%2lb: -1111011:1:3:-1: ++%*2lb: -1111011:0:3: ++%2lb: -0B1111011:1:3:0: ++%*2lb: -0B1111011:0:3: ++%2lb: -0b1111011:1:3:0: ++%*2lb: -0b1111011:0:3: ++%2lb: -1:1:3:-1: ++%*2lb: -1:0:3: ++%2lb: -0B1:1:3:0: ++%*2lb: -0B1:0:3: ++%2lb: -0b1:1:3:0: ++%*2lb: -0b1:0:3: ++%2lb: -0:1:3:0: ++%*2lb: -0:0:3: ++%2lb: -0B0:1:3:0: ++%*2lb: -0B0:0:3: ++%2lb: -0b0:1:3:0: ++%*2lb: -0b0:0:3: ++%2lb: 0:1:2:0: ++%*2lb: 0:0:2: ++# BZ12701 %2lb: 0B0:0:-1: ++# BZ12701 %*2lb: 0B0:0:-1: ++# BZ12701 %2lb: 0b0:0:-1: ++# BZ12701 %*2lb: 0b0:0:-1: ++%2lb: 1:1:2:1: ++%*2lb: 1:0:2: ++# BZ12701 %2lb: 0B1:0:-1: ++# BZ12701 %*2lb: 0B1:0:-1: ++# BZ12701 %2lb: 0b1:0:-1: ++# BZ12701 %*2lb: 0b1:0:-1: ++%2lb: 101010:1:3:2: ++%*2lb: 101010:0:3: ++# BZ12701 %2lb: 0B101010:0:-1: ++# BZ12701 %*2lb: 0B101010:0:-1: ++# BZ12701 %2lb: 0b101010:0:-1: ++# BZ12701 %*2lb: 0b101010:0:-1: ++%2lb: 1111111111111111111111111111111111111111111111111111111111111111:1:3:3: ++%*2lb: 1111111111111111111111111111111111111111111111111111111111111111:0:3: ++# BZ12701 %2lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %2lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++# BZ12701 %*2lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:-1: ++%2lb: 10000000000000000000000000000000000000000000000000000000000000000:1:3:2: ++%*2lb: 10000000000000000000000000000000000000000000000000000000000000000:0:3: ++# BZ12701 %2lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %2lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++# BZ12701 %*2lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:-1: ++%2lb: 10000000000000000000000000000000000000010100001110101011110110001:1:3:2: ++%*2lb: 10000000000000000000000000000000000000010100001110101011110110001:0:3: ++# BZ12701 %2lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %2lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++# BZ12701 %*2lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:-1: ++%2lb: +0:1:3:0: ++%*2lb: +0:0:3: ++%2lb: +0B0:1:3:0: ++%*2lb: +0B0:0:3: ++%2lb: +0b0:1:3:0: ++%*2lb: +0b0:0:3: ++%2lb: +1:1:3:1: ++%*2lb: +1:0:3: ++%2lb: +0B1:1:3:0: ++%*2lb: +0B1:0:3: ++%2lb: +0b1:1:3:0: ++%*2lb: +0b1:0:3: ++%2lb: +101010:1:3:1: ++%*2lb: +101010:0:3: ++%2lb: +0B101010:1:3:0: ++%*2lb: +0B101010:0:3: ++%2lb: +0b101010:1:3:0: ++%*2lb: +0b101010:0:3: ++%2lb: +1111111111111111111111111111111111111111111111111111111111111111:1:3:1: ++%*2lb: +1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2lb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2lb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2lb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:3:0: ++%*2lb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:3: ++%2lb: +10000000000000000000000000000000000000000000000000000000000000000:1:3:1: ++%*2lb: +10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:3:0: ++%*2lb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:3: ++%2lb: +10000000000000000000000000000000000000010100001110101011110110001:1:3:1: ++%*2lb: +10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2lb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2lb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%2lb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:3:0: ++%*2lb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:3: ++%25lb: :0:-1: ++%*25lb: :0:-1: ++%25lb: -1111011:1:9:-123: ++%*25lb: -1111011:0:9: ++%25lb: -0B1111011:1:11:-123: ++%*25lb: -0B1111011:0:11: ++%25lb: -0b1111011:1:11:-123: ++%*25lb: -0b1111011:0:11: ++%25lb: -1:1:3:-1: ++%*25lb: -1:0:3: ++%25lb: -0B1:1:5:-1: ++%*25lb: -0B1:0:5: ++%25lb: -0b1:1:5:-1: ++%*25lb: -0b1:0:5: ++%25lb: -0:1:3:0: ++%*25lb: -0:0:3: ++%25lb: -0B0:1:5:0: ++%*25lb: -0B0:0:5: ++%25lb: -0b0:1:5:0: ++%*25lb: -0b0:0:5: ++%25lb: 0:1:2:0: ++%*25lb: 0:0:2: ++%25lb: 0B0:1:4:0: ++%*25lb: 0B0:0:4: ++%25lb: 0b0:1:4:0: ++%*25lb: 0b0:0:4: ++%25lb: 1:1:2:1: ++%*25lb: 1:0:2: ++%25lb: 0B1:1:4:1: ++%*25lb: 0B1:0:4: ++%25lb: 0b1:1:4:1: ++%*25lb: 0b1:0:4: ++%25lb: 101010:1:7:42: ++%*25lb: 101010:0:7: ++%25lb: 0B101010:1:9:42: ++%*25lb: 0B101010:0:9: ++%25lb: 0b101010:1:9:42: ++%*25lb: 0b101010:0:9: ++%25lb: 1111111111111111111111111111111111111111111111111111111111111111:1:26:33554431: ++%*25lb: 1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: 0B1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25lb: 0B1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: 0b1111111111111111111111111111111111111111111111111111111111111111:1:26:8388607: ++%*25lb: 0b1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: 10000000000000000000000000000000000000000000000000000000000000000:1:26:16777216: ++%*25lb: 10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: 0B10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25lb: 0B10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: 0b10000000000000000000000000000000000000000000000000000000000000000:1:26:4194304: ++%*25lb: 0b10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: 10000000000000000000000000000000000000010100001110101011110110001:1:26:16777216: ++%*25lb: 10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lb: 0B10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25lb: 0B10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lb: 0b10000000000000000000000000000000000000010100001110101011110110001:1:26:4194304: ++%*25lb: 0b10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lb: +0:1:3:0: ++%*25lb: +0:0:3: ++%25lb: +0B0:1:5:0: ++%*25lb: +0B0:0:5: ++%25lb: +0b0:1:5:0: ++%*25lb: +0b0:0:5: ++%25lb: +1:1:3:1: ++%*25lb: +1:0:3: ++%25lb: +0B1:1:5:1: ++%*25lb: +0B1:0:5: ++%25lb: +0b1:1:5:1: ++%*25lb: +0b1:0:5: ++%25lb: +101010:1:8:42: ++%*25lb: +101010:0:8: ++%25lb: +0B101010:1:10:42: ++%*25lb: +0B101010:0:10: ++%25lb: +0b101010:1:10:42: ++%*25lb: +0b101010:0:10: ++%25lb: +1111111111111111111111111111111111111111111111111111111111111111:1:26:16777215: ++%*25lb: +1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: +0B1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25lb: +0B1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: +0b1111111111111111111111111111111111111111111111111111111111111111:1:26:4194303: ++%*25lb: +0b1111111111111111111111111111111111111111111111111111111111111111:0:26: ++%25lb: +10000000000000000000000000000000000000000000000000000000000000000:1:26:8388608: ++%*25lb: +10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: +0B10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25lb: +0B10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: +0b10000000000000000000000000000000000000000000000000000000000000000:1:26:2097152: ++%*25lb: +0b10000000000000000000000000000000000000000000000000000000000000000:0:26: ++%25lb: +10000000000000000000000000000000000000010100001110101011110110001:1:26:8388608: ++%*25lb: +10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lb: +0B10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25lb: +0B10000000000000000000000000000000000000010100001110101011110110001:0:26: ++%25lb: +0b10000000000000000000000000000000000000010100001110101011110110001:1:26:2097152: ++%*25lb: +0b10000000000000000000000000000000000000010100001110101011110110001:0:26: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-o.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-o.input +new file mode 100644 +index 0000000000000000..dba0c62d15d5c9ca +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-o.input +@@ -0,0 +1,434 @@ ++%lo::0:-1: ++%*lo::0:-1: ++%lo:-173:1:4:-123: ++%*lo:-173:0:4: ++%lo:-0173:1:5:-123: ++%*lo:-0173:0:5: ++%lo:-1:1:2:-1: ++%*lo:-1:0:2: ++%lo:-01:1:3:-1: ++%*lo:-01:0:3: ++%lo:-0:1:2:0: ++%*lo:-0:0:2: ++%lo:-00:1:3:0: ++%*lo:-00:0:3: ++%lo:0:1:1:0: ++%*lo:0:0:1: ++%lo:00:1:2:0: ++%*lo:00:0:2: ++%lo:1:1:1:1: ++%*lo:1:0:1: ++%lo:01:1:2:1: ++%*lo:01:0:2: ++%lo:52:1:2:42: ++%*lo:52:0:2: ++%lo:052:1:3:42: ++%*lo:052:0:3: ++%lo:1777777777777777777777:1:22:18446744073709551615: ++%*lo:1777777777777777777777:0:22: ++%lo:01777777777777777777777:1:23:18446744073709551615: ++%*lo:01777777777777777777777:0:23: ++%lo:2000000000000000000000:1:22:18446744073709551615: ++%*lo:2000000000000000000000:0:22: ++%lo:02000000000000000000000:1:23:18446744073709551615: ++%*lo:02000000000000000000000:0:23: ++%lo:2000000000000241653661:1:22:18446744073709551615: ++%*lo:2000000000000241653661:0:22: ++%lo:02000000000000241653661:1:23:18446744073709551615: ++%*lo:02000000000000241653661:0:23: ++%lo:+0:1:2:0: ++%*lo:+0:0:2: ++%lo:+00:1:3:0: ++%*lo:+00:0:3: ++%lo:+1:1:2:1: ++%*lo:+1:0:2: ++%lo:+01:1:3:1: ++%*lo:+01:0:3: ++%lo:+52:1:3:42: ++%*lo:+52:0:3: ++%lo:+052:1:4:42: ++%*lo:+052:0:4: ++%lo:+1777777777777777777777:1:23:18446744073709551615: ++%*lo:+1777777777777777777777:0:23: ++%lo:+01777777777777777777777:1:24:18446744073709551615: ++%*lo:+01777777777777777777777:0:24: ++%lo:+2000000000000000000000:1:23:18446744073709551615: ++%*lo:+2000000000000000000000:0:23: ++%lo:+02000000000000000000000:1:24:18446744073709551615: ++%*lo:+02000000000000000000000:0:24: ++%lo:+2000000000000241653661:1:23:18446744073709551615: ++%*lo:+2000000000000241653661:0:23: ++%lo:+02000000000000241653661:1:24:18446744073709551615: ++%*lo:+02000000000000241653661:0:24: ++%1lo::0:-1: ++%*1lo::0:-1: ++%1lo:-173:0:-1: ++%*1lo:-173:0:-1: ++%1lo:-0173:0:-1: ++%*1lo:-0173:0:-1: ++%1lo:-1:0:-1: ++%*1lo:-1:0:-1: ++%1lo:-01:0:-1: ++%*1lo:-01:0:-1: ++%1lo:-0:0:-1: ++%*1lo:-0:0:-1: ++%1lo:-00:0:-1: ++%*1lo:-00:0:-1: ++%1lo:0:1:1:0: ++%*1lo:0:0:1: ++%1lo:00:1:1:0: ++%*1lo:00:0:1: ++%1lo:1:1:1:1: ++%*1lo:1:0:1: ++%1lo:01:1:1:0: ++%*1lo:01:0:1: ++%1lo:52:1:1:5: ++%*1lo:52:0:1: ++%1lo:052:1:1:0: ++%*1lo:052:0:1: ++%1lo:1777777777777777777777:1:1:1: ++%*1lo:1777777777777777777777:0:1: ++%1lo:01777777777777777777777:1:1:0: ++%*1lo:01777777777777777777777:0:1: ++%1lo:2000000000000000000000:1:1:2: ++%*1lo:2000000000000000000000:0:1: ++%1lo:02000000000000000000000:1:1:0: ++%*1lo:02000000000000000000000:0:1: ++%1lo:2000000000000241653661:1:1:2: ++%*1lo:2000000000000241653661:0:1: ++%1lo:02000000000000241653661:1:1:0: ++%*1lo:02000000000000241653661:0:1: ++%1lo:+0:0:-1: ++%*1lo:+0:0:-1: ++%1lo:+00:0:-1: ++%*1lo:+00:0:-1: ++%1lo:+1:0:-1: ++%*1lo:+1:0:-1: ++%1lo:+01:0:-1: ++%*1lo:+01:0:-1: ++%1lo:+52:0:-1: ++%*1lo:+52:0:-1: ++%1lo:+052:0:-1: ++%*1lo:+052:0:-1: ++%1lo:+1777777777777777777777:0:-1: ++%*1lo:+1777777777777777777777:0:-1: ++%1lo:+01777777777777777777777:0:-1: ++%*1lo:+01777777777777777777777:0:-1: ++%1lo:+2000000000000000000000:0:-1: ++%*1lo:+2000000000000000000000:0:-1: ++%1lo:+02000000000000000000000:0:-1: ++%*1lo:+02000000000000000000000:0:-1: ++%1lo:+2000000000000241653661:0:-1: ++%*1lo:+2000000000000241653661:0:-1: ++%1lo:+02000000000000241653661:0:-1: ++%*1lo:+02000000000000241653661:0:-1: ++%2lo::0:-1: ++%*2lo::0:-1: ++%2lo:-173:1:2:-1: ++%*2lo:-173:0:2: ++%2lo:-0173:1:2:0: ++%*2lo:-0173:0:2: ++%2lo:-1:1:2:-1: ++%*2lo:-1:0:2: ++%2lo:-01:1:2:0: ++%*2lo:-01:0:2: ++%2lo:-0:1:2:0: ++%*2lo:-0:0:2: ++%2lo:-00:1:2:0: ++%*2lo:-00:0:2: ++%2lo:0:1:1:0: ++%*2lo:0:0:1: ++%2lo:00:1:2:0: ++%*2lo:00:0:2: ++%2lo:1:1:1:1: ++%*2lo:1:0:1: ++%2lo:01:1:2:1: ++%*2lo:01:0:2: ++%2lo:52:1:2:42: ++%*2lo:52:0:2: ++%2lo:052:1:2:5: ++%*2lo:052:0:2: ++%2lo:1777777777777777777777:1:2:15: ++%*2lo:1777777777777777777777:0:2: ++%2lo:01777777777777777777777:1:2:1: ++%*2lo:01777777777777777777777:0:2: ++%2lo:2000000000000000000000:1:2:16: ++%*2lo:2000000000000000000000:0:2: ++%2lo:02000000000000000000000:1:2:2: ++%*2lo:02000000000000000000000:0:2: ++%2lo:2000000000000241653661:1:2:16: ++%*2lo:2000000000000241653661:0:2: ++%2lo:02000000000000241653661:1:2:2: ++%*2lo:02000000000000241653661:0:2: ++%2lo:+0:1:2:0: ++%*2lo:+0:0:2: ++%2lo:+00:1:2:0: ++%*2lo:+00:0:2: ++%2lo:+1:1:2:1: ++%*2lo:+1:0:2: ++%2lo:+01:1:2:0: ++%*2lo:+01:0:2: ++%2lo:+52:1:2:5: ++%*2lo:+52:0:2: ++%2lo:+052:1:2:0: ++%*2lo:+052:0:2: ++%2lo:+1777777777777777777777:1:2:1: ++%*2lo:+1777777777777777777777:0:2: ++%2lo:+01777777777777777777777:1:2:0: ++%*2lo:+01777777777777777777777:0:2: ++%2lo:+2000000000000000000000:1:2:2: ++%*2lo:+2000000000000000000000:0:2: ++%2lo:+02000000000000000000000:1:2:0: ++%*2lo:+02000000000000000000000:0:2: ++%2lo:+2000000000000241653661:1:2:2: ++%*2lo:+2000000000000241653661:0:2: ++%2lo:+02000000000000241653661:1:2:0: ++%*2lo:+02000000000000241653661:0:2: ++%15lo::0:-1: ++%*15lo::0:-1: ++%15lo:-173:1:4:-123: ++%*15lo:-173:0:4: ++%15lo:-0173:1:5:-123: ++%*15lo:-0173:0:5: ++%15lo:-1:1:2:-1: ++%*15lo:-1:0:2: ++%15lo:-01:1:3:-1: ++%*15lo:-01:0:3: ++%15lo:-0:1:2:0: ++%*15lo:-0:0:2: ++%15lo:-00:1:3:0: ++%*15lo:-00:0:3: ++%15lo:0:1:1:0: ++%*15lo:0:0:1: ++%15lo:00:1:2:0: ++%*15lo:00:0:2: ++%15lo:1:1:1:1: ++%*15lo:1:0:1: ++%15lo:01:1:2:1: ++%*15lo:01:0:2: ++%15lo:52:1:2:42: ++%*15lo:52:0:2: ++%15lo:052:1:3:42: ++%*15lo:052:0:3: ++%15lo:1777777777777777777777:1:15:8796093022207: ++%*15lo:1777777777777777777777:0:15: ++%15lo:01777777777777777777777:1:15:1099511627775: ++%*15lo:01777777777777777777777:0:15: ++%15lo:2000000000000000000000:1:15:8796093022208: ++%*15lo:2000000000000000000000:0:15: ++%15lo:02000000000000000000000:1:15:1099511627776: ++%*15lo:02000000000000000000000:0:15: ++%15lo:2000000000000241653661:1:15:8796093022228: ++%*15lo:2000000000000241653661:0:15: ++%15lo:02000000000000241653661:1:15:1099511627778: ++%*15lo:02000000000000241653661:0:15: ++%15lo:+0:1:2:0: ++%*15lo:+0:0:2: ++%15lo:+00:1:3:0: ++%*15lo:+00:0:3: ++%15lo:+1:1:2:1: ++%*15lo:+1:0:2: ++%15lo:+01:1:3:1: ++%*15lo:+01:0:3: ++%15lo:+52:1:3:42: ++%*15lo:+52:0:3: ++%15lo:+052:1:4:42: ++%*15lo:+052:0:4: ++%15lo:+1777777777777777777777:1:15:1099511627775: ++%*15lo:+1777777777777777777777:0:15: ++%15lo:+01777777777777777777777:1:15:137438953471: ++%*15lo:+01777777777777777777777:0:15: ++%15lo:+2000000000000000000000:1:15:1099511627776: ++%*15lo:+2000000000000000000000:0:15: ++%15lo:+02000000000000000000000:1:15:137438953472: ++%*15lo:+02000000000000000000000:0:15: ++%15lo:+2000000000000241653661:1:15:1099511627778: ++%*15lo:+2000000000000241653661:0:15: ++%15lo:+02000000000000241653661:1:15:137438953472: ++%*15lo:+02000000000000241653661:0:15: ++%25lo::0:-1: ++%*25lo::0:-1: ++%25lo:-173:1:4:-123: ++%*25lo:-173:0:4: ++%25lo:-0173:1:5:-123: ++%*25lo:-0173:0:5: ++%25lo:-1:1:2:-1: ++%*25lo:-1:0:2: ++%25lo:-01:1:3:-1: ++%*25lo:-01:0:3: ++%25lo:-0:1:2:0: ++%*25lo:-0:0:2: ++%25lo:-00:1:3:0: ++%*25lo:-00:0:3: ++%25lo:0:1:1:0: ++%*25lo:0:0:1: ++%25lo:00:1:2:0: ++%*25lo:00:0:2: ++%25lo:1:1:1:1: ++%*25lo:1:0:1: ++%25lo:01:1:2:1: ++%*25lo:01:0:2: ++%25lo:52:1:2:42: ++%*25lo:52:0:2: ++%25lo:052:1:3:42: ++%*25lo:052:0:3: ++%25lo:1777777777777777777777:1:22:18446744073709551615: ++%*25lo:1777777777777777777777:0:22: ++%25lo:01777777777777777777777:1:23:18446744073709551615: ++%*25lo:01777777777777777777777:0:23: ++%25lo:2000000000000000000000:1:22:18446744073709551615: ++%*25lo:2000000000000000000000:0:22: ++%25lo:02000000000000000000000:1:23:18446744073709551615: ++%*25lo:02000000000000000000000:0:23: ++%25lo:2000000000000241653661:1:22:18446744073709551615: ++%*25lo:2000000000000241653661:0:22: ++%25lo:02000000000000241653661:1:23:18446744073709551615: ++%*25lo:02000000000000241653661:0:23: ++%25lo:+0:1:2:0: ++%*25lo:+0:0:2: ++%25lo:+00:1:3:0: ++%*25lo:+00:0:3: ++%25lo:+1:1:2:1: ++%*25lo:+1:0:2: ++%25lo:+01:1:3:1: ++%*25lo:+01:0:3: ++%25lo:+52:1:3:42: ++%*25lo:+52:0:3: ++%25lo:+052:1:4:42: ++%*25lo:+052:0:4: ++%25lo:+1777777777777777777777:1:23:18446744073709551615: ++%*25lo:+1777777777777777777777:0:23: ++%25lo:+01777777777777777777777:1:24:18446744073709551615: ++%*25lo:+01777777777777777777777:0:24: ++%25lo:+2000000000000000000000:1:23:18446744073709551615: ++%*25lo:+2000000000000000000000:0:23: ++%25lo:+02000000000000000000000:1:24:18446744073709551615: ++%*25lo:+02000000000000000000000:0:24: ++%25lo:+2000000000000241653661:1:23:18446744073709551615: ++%*25lo:+2000000000000241653661:0:23: ++%25lo:+02000000000000241653661:1:24:18446744073709551615: ++%*25lo:+02000000000000241653661:0:24: ++%2lo: :0:-1: ++%*2lo: :0:-1: ++%2lo: -173:1:3:-1: ++%*2lo: -173:0:3: ++%2lo: -0173:1:3:0: ++%*2lo: -0173:0:3: ++%2lo: -1:1:3:-1: ++%*2lo: -1:0:3: ++%2lo: -01:1:3:0: ++%*2lo: -01:0:3: ++%2lo: -0:1:3:0: ++%*2lo: -0:0:3: ++%2lo: -00:1:3:0: ++%*2lo: -00:0:3: ++%2lo: 0:1:2:0: ++%*2lo: 0:0:2: ++%2lo: 00:1:3:0: ++%*2lo: 00:0:3: ++%2lo: 1:1:2:1: ++%*2lo: 1:0:2: ++%2lo: 01:1:3:1: ++%*2lo: 01:0:3: ++%2lo: 52:1:3:42: ++%*2lo: 52:0:3: ++%2lo: 052:1:3:5: ++%*2lo: 052:0:3: ++%2lo: 1777777777777777777777:1:3:15: ++%*2lo: 1777777777777777777777:0:3: ++%2lo: 01777777777777777777777:1:3:1: ++%*2lo: 01777777777777777777777:0:3: ++%2lo: 2000000000000000000000:1:3:16: ++%*2lo: 2000000000000000000000:0:3: ++%2lo: 02000000000000000000000:1:3:2: ++%*2lo: 02000000000000000000000:0:3: ++%2lo: 2000000000000241653661:1:3:16: ++%*2lo: 2000000000000241653661:0:3: ++%2lo: 02000000000000241653661:1:3:2: ++%*2lo: 02000000000000241653661:0:3: ++%2lo: +0:1:3:0: ++%*2lo: +0:0:3: ++%2lo: +00:1:3:0: ++%*2lo: +00:0:3: ++%2lo: +1:1:3:1: ++%*2lo: +1:0:3: ++%2lo: +01:1:3:0: ++%*2lo: +01:0:3: ++%2lo: +52:1:3:5: ++%*2lo: +52:0:3: ++%2lo: +052:1:3:0: ++%*2lo: +052:0:3: ++%2lo: +1777777777777777777777:1:3:1: ++%*2lo: +1777777777777777777777:0:3: ++%2lo: +01777777777777777777777:1:3:0: ++%*2lo: +01777777777777777777777:0:3: ++%2lo: +2000000000000000000000:1:3:2: ++%*2lo: +2000000000000000000000:0:3: ++%2lo: +02000000000000000000000:1:3:0: ++%*2lo: +02000000000000000000000:0:3: ++%2lo: +2000000000000241653661:1:3:2: ++%*2lo: +2000000000000241653661:0:3: ++%2lo: +02000000000000241653661:1:3:0: ++%*2lo: +02000000000000241653661:0:3: ++%25lo: :0:-1: ++%*25lo: :0:-1: ++%25lo: -173:1:5:-123: ++%*25lo: -173:0:5: ++%25lo: -0173:1:6:-123: ++%*25lo: -0173:0:6: ++%25lo: -1:1:3:-1: ++%*25lo: -1:0:3: ++%25lo: -01:1:4:-1: ++%*25lo: -01:0:4: ++%25lo: -0:1:3:0: ++%*25lo: -0:0:3: ++%25lo: -00:1:4:0: ++%*25lo: -00:0:4: ++%25lo: 0:1:2:0: ++%*25lo: 0:0:2: ++%25lo: 00:1:3:0: ++%*25lo: 00:0:3: ++%25lo: 1:1:2:1: ++%*25lo: 1:0:2: ++%25lo: 01:1:3:1: ++%*25lo: 01:0:3: ++%25lo: 52:1:3:42: ++%*25lo: 52:0:3: ++%25lo: 052:1:4:42: ++%*25lo: 052:0:4: ++%25lo: 1777777777777777777777:1:23:18446744073709551615: ++%*25lo: 1777777777777777777777:0:23: ++%25lo: 01777777777777777777777:1:24:18446744073709551615: ++%*25lo: 01777777777777777777777:0:24: ++%25lo: 2000000000000000000000:1:23:18446744073709551615: ++%*25lo: 2000000000000000000000:0:23: ++%25lo: 02000000000000000000000:1:24:18446744073709551615: ++%*25lo: 02000000000000000000000:0:24: ++%25lo: 2000000000000241653661:1:23:18446744073709551615: ++%*25lo: 2000000000000241653661:0:23: ++%25lo: 02000000000000241653661:1:24:18446744073709551615: ++%*25lo: 02000000000000241653661:0:24: ++%25lo: +0:1:3:0: ++%*25lo: +0:0:3: ++%25lo: +00:1:4:0: ++%*25lo: +00:0:4: ++%25lo: +1:1:3:1: ++%*25lo: +1:0:3: ++%25lo: +01:1:4:1: ++%*25lo: +01:0:4: ++%25lo: +52:1:4:42: ++%*25lo: +52:0:4: ++%25lo: +052:1:5:42: ++%*25lo: +052:0:5: ++%25lo: +1777777777777777777777:1:24:18446744073709551615: ++%*25lo: +1777777777777777777777:0:24: ++%25lo: +01777777777777777777777:1:25:18446744073709551615: ++%*25lo: +01777777777777777777777:0:25: ++%25lo: +2000000000000000000000:1:24:18446744073709551615: ++%*25lo: +2000000000000000000000:0:24: ++%25lo: +02000000000000000000000:1:25:18446744073709551615: ++%*25lo: +02000000000000000000000:0:25: ++%25lo: +2000000000000241653661:1:24:18446744073709551615: ++%*25lo: +2000000000000241653661:0:24: ++%25lo: +02000000000000241653661:1:25:18446744073709551615: ++%*25lo: +02000000000000241653661:0:25: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-u.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-u.input +new file mode 100644 +index 0000000000000000..6f42e2044436da0f +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-u.input +@@ -0,0 +1,224 @@ ++%lu::0:-1: ++%*lu::0:-1: ++%lu:-123:1:4:18446744073709551493: ++%*lu:-123:0:4: ++%lu:-1:1:2:18446744073709551615: ++%*lu:-1:0:2: ++%lu:-0:1:2:0: ++%*lu:-0:0:2: ++%lu:0:1:1:0: ++%*lu:0:0:1: ++%lu:1:1:1:1: ++%*lu:1:0:1: ++%lu:42:1:2:42: ++%*lu:42:0:2: ++%lu:18446744073709551615:1:20:18446744073709551615: ++%*lu:18446744073709551615:0:20: ++%lu:18446744073709551616:1:20:18446744073709551615: ++%*lu:18446744073709551616:0:20: ++%lu:18446744073751975857:1:20:18446744073709551615: ++%*lu:18446744073751975857:0:20: ++%lu:+0:1:2:0: ++%*lu:+0:0:2: ++%lu:+1:1:2:1: ++%*lu:+1:0:2: ++%lu:+42:1:3:42: ++%*lu:+42:0:3: ++%lu:+18446744073709551615:1:21:18446744073709551615: ++%*lu:+18446744073709551615:0:21: ++%lu:+18446744073709551616:1:21:18446744073709551615: ++%*lu:+18446744073709551616:0:21: ++%lu:+18446744073751975857:1:21:18446744073709551615: ++%*lu:+18446744073751975857:0:21: ++%1lu::0:-1: ++%*1lu::0:-1: ++%1lu:-123:0:-1: ++%*1lu:-123:0:-1: ++%1lu:-1:0:-1: ++%*1lu:-1:0:-1: ++%1lu:-0:0:-1: ++%*1lu:-0:0:-1: ++%1lu:0:1:1:0: ++%*1lu:0:0:1: ++%1lu:1:1:1:1: ++%*1lu:1:0:1: ++%1lu:42:1:1:4: ++%*1lu:42:0:1: ++%1lu:18446744073709551615:1:1:1: ++%*1lu:18446744073709551615:0:1: ++%1lu:18446744073709551616:1:1:1: ++%*1lu:18446744073709551616:0:1: ++%1lu:18446744073751975857:1:1:1: ++%*1lu:18446744073751975857:0:1: ++%1lu:+0:0:-1: ++%*1lu:+0:0:-1: ++%1lu:+1:0:-1: ++%*1lu:+1:0:-1: ++%1lu:+42:0:-1: ++%*1lu:+42:0:-1: ++%1lu:+18446744073709551615:0:-1: ++%*1lu:+18446744073709551615:0:-1: ++%1lu:+18446744073709551616:0:-1: ++%*1lu:+18446744073709551616:0:-1: ++%1lu:+18446744073751975857:0:-1: ++%*1lu:+18446744073751975857:0:-1: ++%2lu::0:-1: ++%*2lu::0:-1: ++%2lu:-123:1:2:18446744073709551615: ++%*2lu:-123:0:2: ++%2lu:-1:1:2:18446744073709551615: ++%*2lu:-1:0:2: ++%2lu:-0:1:2:0: ++%*2lu:-0:0:2: ++%2lu:0:1:1:0: ++%*2lu:0:0:1: ++%2lu:1:1:1:1: ++%*2lu:1:0:1: ++%2lu:42:1:2:42: ++%*2lu:42:0:2: ++%2lu:18446744073709551615:1:2:18: ++%*2lu:18446744073709551615:0:2: ++%2lu:18446744073709551616:1:2:18: ++%*2lu:18446744073709551616:0:2: ++%2lu:18446744073751975857:1:2:18: ++%*2lu:18446744073751975857:0:2: ++%2lu:+0:1:2:0: ++%*2lu:+0:0:2: ++%2lu:+1:1:2:1: ++%*2lu:+1:0:2: ++%2lu:+42:1:2:4: ++%*2lu:+42:0:2: ++%2lu:+18446744073709551615:1:2:1: ++%*2lu:+18446744073709551615:0:2: ++%2lu:+18446744073709551616:1:2:1: ++%*2lu:+18446744073709551616:0:2: ++%2lu:+18446744073751975857:1:2:1: ++%*2lu:+18446744073751975857:0:2: ++%15lu::0:-1: ++%*15lu::0:-1: ++%15lu:-123:1:4:18446744073709551493: ++%*15lu:-123:0:4: ++%15lu:-1:1:2:18446744073709551615: ++%*15lu:-1:0:2: ++%15lu:-0:1:2:0: ++%*15lu:-0:0:2: ++%15lu:0:1:1:0: ++%*15lu:0:0:1: ++%15lu:1:1:1:1: ++%*15lu:1:0:1: ++%15lu:42:1:2:42: ++%*15lu:42:0:2: ++%15lu:18446744073709551615:1:15:184467440737095: ++%*15lu:18446744073709551615:0:15: ++%15lu:18446744073709551616:1:15:184467440737095: ++%*15lu:18446744073709551616:0:15: ++%15lu:18446744073751975857:1:15:184467440737519: ++%*15lu:18446744073751975857:0:15: ++%15lu:+0:1:2:0: ++%*15lu:+0:0:2: ++%15lu:+1:1:2:1: ++%*15lu:+1:0:2: ++%15lu:+42:1:3:42: ++%*15lu:+42:0:3: ++%15lu:+18446744073709551615:1:15:18446744073709: ++%*15lu:+18446744073709551615:0:15: ++%15lu:+18446744073709551616:1:15:18446744073709: ++%*15lu:+18446744073709551616:0:15: ++%15lu:+18446744073751975857:1:15:18446744073751: ++%*15lu:+18446744073751975857:0:15: ++%25lu::0:-1: ++%*25lu::0:-1: ++%25lu:-123:1:4:18446744073709551493: ++%*25lu:-123:0:4: ++%25lu:-1:1:2:18446744073709551615: ++%*25lu:-1:0:2: ++%25lu:-0:1:2:0: ++%*25lu:-0:0:2: ++%25lu:0:1:1:0: ++%*25lu:0:0:1: ++%25lu:1:1:1:1: ++%*25lu:1:0:1: ++%25lu:42:1:2:42: ++%*25lu:42:0:2: ++%25lu:18446744073709551615:1:20:18446744073709551615: ++%*25lu:18446744073709551615:0:20: ++%25lu:18446744073709551616:1:20:18446744073709551615: ++%*25lu:18446744073709551616:0:20: ++%25lu:18446744073751975857:1:20:18446744073709551615: ++%*25lu:18446744073751975857:0:20: ++%25lu:+0:1:2:0: ++%*25lu:+0:0:2: ++%25lu:+1:1:2:1: ++%*25lu:+1:0:2: ++%25lu:+42:1:3:42: ++%*25lu:+42:0:3: ++%25lu:+18446744073709551615:1:21:18446744073709551615: ++%*25lu:+18446744073709551615:0:21: ++%25lu:+18446744073709551616:1:21:18446744073709551615: ++%*25lu:+18446744073709551616:0:21: ++%25lu:+18446744073751975857:1:21:18446744073709551615: ++%*25lu:+18446744073751975857:0:21: ++%2lu: :0:-1: ++%*2lu: :0:-1: ++%2lu: -123:1:3:18446744073709551615: ++%*2lu: -123:0:3: ++%2lu: -1:1:3:18446744073709551615: ++%*2lu: -1:0:3: ++%2lu: -0:1:3:0: ++%*2lu: -0:0:3: ++%2lu: 0:1:2:0: ++%*2lu: 0:0:2: ++%2lu: 1:1:2:1: ++%*2lu: 1:0:2: ++%2lu: 42:1:3:42: ++%*2lu: 42:0:3: ++%2lu: 18446744073709551615:1:3:18: ++%*2lu: 18446744073709551615:0:3: ++%2lu: 18446744073709551616:1:3:18: ++%*2lu: 18446744073709551616:0:3: ++%2lu: 18446744073751975857:1:3:18: ++%*2lu: 18446744073751975857:0:3: ++%2lu: +0:1:3:0: ++%*2lu: +0:0:3: ++%2lu: +1:1:3:1: ++%*2lu: +1:0:3: ++%2lu: +42:1:3:4: ++%*2lu: +42:0:3: ++%2lu: +18446744073709551615:1:3:1: ++%*2lu: +18446744073709551615:0:3: ++%2lu: +18446744073709551616:1:3:1: ++%*2lu: +18446744073709551616:0:3: ++%2lu: +18446744073751975857:1:3:1: ++%*2lu: +18446744073751975857:0:3: ++%25lu: :0:-1: ++%*25lu: :0:-1: ++%25lu: -123:1:5:18446744073709551493: ++%*25lu: -123:0:5: ++%25lu: -1:1:3:18446744073709551615: ++%*25lu: -1:0:3: ++%25lu: -0:1:3:0: ++%*25lu: -0:0:3: ++%25lu: 0:1:2:0: ++%*25lu: 0:0:2: ++%25lu: 1:1:2:1: ++%*25lu: 1:0:2: ++%25lu: 42:1:3:42: ++%*25lu: 42:0:3: ++%25lu: 18446744073709551615:1:21:18446744073709551615: ++%*25lu: 18446744073709551615:0:21: ++%25lu: 18446744073709551616:1:21:18446744073709551615: ++%*25lu: 18446744073709551616:0:21: ++%25lu: 18446744073751975857:1:21:18446744073709551615: ++%*25lu: 18446744073751975857:0:21: ++%25lu: +0:1:3:0: ++%*25lu: +0:0:3: ++%25lu: +1:1:3:1: ++%*25lu: +1:0:3: ++%25lu: +42:1:4:42: ++%*25lu: +42:0:4: ++%25lu: +18446744073709551615:1:22:18446744073709551615: ++%*25lu: +18446744073709551615:0:22: ++%25lu: +18446744073709551616:1:22:18446744073709551615: ++%*25lu: +18446744073709551616:0:22: ++%25lu: +18446744073751975857:1:22:18446744073709551615: ++%*25lu: +18446744073751975857:0:22: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-x.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-x.input +new file mode 100644 +index 0000000000000000..abe68729dd49d779 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-x.input +@@ -0,0 +1,742 @@ ++%lx::0:-1: ++%*lx::0:-1: ++%lx:-7b:1:3:18446744073709551493: ++%*lx:-7b:0:3: ++%lx:-7B:1:3:18446744073709551493: ++%*lx:-7B:0:3: ++%lx:-0X7b:1:5:18446744073709551493: ++%*lx:-0X7b:0:5: ++%lx:-0x7B:1:5:18446744073709551493: ++%*lx:-0x7B:0:5: ++%lx:-1:1:2:18446744073709551615: ++%*lx:-1:0:2: ++%lx:-0X1:1:4:18446744073709551615: ++%*lx:-0X1:0:4: ++%lx:-0x1:1:4:18446744073709551615: ++%*lx:-0x1:0:4: ++%lx:-0:1:2:0: ++%*lx:-0:0:2: ++%lx:-0X0:1:4:0: ++%*lx:-0X0:0:4: ++%lx:-0x0:1:4:0: ++%*lx:-0x0:0:4: ++%lx:0:1:1:0: ++%*lx:0:0:1: ++%lx:0X0:1:3:0: ++%*lx:0X0:0:3: ++%lx:0x0:1:3:0: ++%*lx:0x0:0:3: ++%lx:1:1:1:1: ++%*lx:1:0:1: ++%lx:0X1:1:3:1: ++%*lx:0X1:0:3: ++%lx:0x1:1:3:1: ++%*lx:0x1:0:3: ++%lx:2a:1:2:42: ++%*lx:2a:0:2: ++%lx:2A:1:2:42: ++%*lx:2A:0:2: ++%lx:0X2a:1:4:42: ++%*lx:0X2a:0:4: ++%lx:0x2A:1:4:42: ++%*lx:0x2A:0:4: ++%lx:ffffffffffffffff:1:16:18446744073709551615: ++%*lx:ffffffffffffffff:0:16: ++%lx:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*lx:FFFFFFFFFFFFFFFF:0:16: ++%lx:0Xffffffffffffffff:1:18:18446744073709551615: ++%*lx:0Xffffffffffffffff:0:18: ++%lx:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*lx:0xFFFFFFFFFFFFFFFF:0:18: ++%lx:10000000000000000:1:17:18446744073709551615: ++%*lx:10000000000000000:0:17: ++%lx:0X10000000000000000:1:19:18446744073709551615: ++%*lx:0X10000000000000000:0:19: ++%lx:0x10000000000000000:1:19:18446744073709551615: ++%*lx:0x10000000000000000:0:19: ++%lx:100000000028757b1:1:17:18446744073709551615: ++%*lx:100000000028757b1:0:17: ++%lx:100000000028757B1:1:17:18446744073709551615: ++%*lx:100000000028757B1:0:17: ++%lx:0X100000000028757b1:1:19:18446744073709551615: ++%*lx:0X100000000028757b1:0:19: ++%lx:0x100000000028757B1:1:19:18446744073709551615: ++%*lx:0x100000000028757B1:0:19: ++%lx:+0:1:2:0: ++%*lx:+0:0:2: ++%lx:+0X0:1:4:0: ++%*lx:+0X0:0:4: ++%lx:+0x0:1:4:0: ++%*lx:+0x0:0:4: ++%lx:+1:1:2:1: ++%*lx:+1:0:2: ++%lx:+0X1:1:4:1: ++%*lx:+0X1:0:4: ++%lx:+0x1:1:4:1: ++%*lx:+0x1:0:4: ++%lx:+2a:1:3:42: ++%*lx:+2a:0:3: ++%lx:+2A:1:3:42: ++%*lx:+2A:0:3: ++%lx:+0X2a:1:5:42: ++%*lx:+0X2a:0:5: ++%lx:+0x2A:1:5:42: ++%*lx:+0x2A:0:5: ++%lx:+ffffffffffffffff:1:17:18446744073709551615: ++%*lx:+ffffffffffffffff:0:17: ++%lx:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*lx:+FFFFFFFFFFFFFFFF:0:17: ++%lx:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*lx:+0Xffffffffffffffff:0:19: ++%lx:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*lx:+0xFFFFFFFFFFFFFFFF:0:19: ++%lx:+10000000000000000:1:18:18446744073709551615: ++%*lx:+10000000000000000:0:18: ++%lx:+0X10000000000000000:1:20:18446744073709551615: ++%*lx:+0X10000000000000000:0:20: ++%lx:+0x10000000000000000:1:20:18446744073709551615: ++%*lx:+0x10000000000000000:0:20: ++%lx:+100000000028757b1:1:18:18446744073709551615: ++%*lx:+100000000028757b1:0:18: ++%lx:+100000000028757B1:1:18:18446744073709551615: ++%*lx:+100000000028757B1:0:18: ++%lx:+0X100000000028757b1:1:20:18446744073709551615: ++%*lx:+0X100000000028757b1:0:20: ++%lx:+0x100000000028757B1:1:20:18446744073709551615: ++%*lx:+0x100000000028757B1:0:20: ++%1lx::0:-1: ++%*1lx::0:-1: ++%1lx:-7b:0:-1: ++%*1lx:-7b:0:-1: ++%1lx:-7B:0:-1: ++%*1lx:-7B:0:-1: ++%1lx:-0X7b:0:-1: ++%*1lx:-0X7b:0:-1: ++%1lx:-0x7B:0:-1: ++%*1lx:-0x7B:0:-1: ++%1lx:-1:0:-1: ++%*1lx:-1:0:-1: ++%1lx:-0X1:0:-1: ++%*1lx:-0X1:0:-1: ++%1lx:-0x1:0:-1: ++%*1lx:-0x1:0:-1: ++%1lx:-0:0:-1: ++%*1lx:-0:0:-1: ++%1lx:-0X0:0:-1: ++%*1lx:-0X0:0:-1: ++%1lx:-0x0:0:-1: ++%*1lx:-0x0:0:-1: ++%1lx:0:1:1:0: ++%*1lx:0:0:1: ++%1lx:0X0:1:1:0: ++%*1lx:0X0:0:1: ++%1lx:0x0:1:1:0: ++%*1lx:0x0:0:1: ++%1lx:1:1:1:1: ++%*1lx:1:0:1: ++%1lx:0X1:1:1:0: ++%*1lx:0X1:0:1: ++%1lx:0x1:1:1:0: ++%*1lx:0x1:0:1: ++%1lx:2a:1:1:2: ++%*1lx:2a:0:1: ++%1lx:2A:1:1:2: ++%*1lx:2A:0:1: ++%1lx:0X2a:1:1:0: ++%*1lx:0X2a:0:1: ++%1lx:0x2A:1:1:0: ++%*1lx:0x2A:0:1: ++%1lx:ffffffffffffffff:1:1:15: ++%*1lx:ffffffffffffffff:0:1: ++%1lx:FFFFFFFFFFFFFFFF:1:1:15: ++%*1lx:FFFFFFFFFFFFFFFF:0:1: ++%1lx:0Xffffffffffffffff:1:1:0: ++%*1lx:0Xffffffffffffffff:0:1: ++%1lx:0xFFFFFFFFFFFFFFFF:1:1:0: ++%*1lx:0xFFFFFFFFFFFFFFFF:0:1: ++%1lx:10000000000000000:1:1:1: ++%*1lx:10000000000000000:0:1: ++%1lx:0X10000000000000000:1:1:0: ++%*1lx:0X10000000000000000:0:1: ++%1lx:0x10000000000000000:1:1:0: ++%*1lx:0x10000000000000000:0:1: ++%1lx:100000000028757b1:1:1:1: ++%*1lx:100000000028757b1:0:1: ++%1lx:100000000028757B1:1:1:1: ++%*1lx:100000000028757B1:0:1: ++%1lx:0X100000000028757b1:1:1:0: ++%*1lx:0X100000000028757b1:0:1: ++%1lx:0x100000000028757B1:1:1:0: ++%*1lx:0x100000000028757B1:0:1: ++%1lx:+0:0:-1: ++%*1lx:+0:0:-1: ++%1lx:+0X0:0:-1: ++%*1lx:+0X0:0:-1: ++%1lx:+0x0:0:-1: ++%*1lx:+0x0:0:-1: ++%1lx:+1:0:-1: ++%*1lx:+1:0:-1: ++%1lx:+0X1:0:-1: ++%*1lx:+0X1:0:-1: ++%1lx:+0x1:0:-1: ++%*1lx:+0x1:0:-1: ++%1lx:+2a:0:-1: ++%*1lx:+2a:0:-1: ++%1lx:+2A:0:-1: ++%*1lx:+2A:0:-1: ++%1lx:+0X2a:0:-1: ++%*1lx:+0X2a:0:-1: ++%1lx:+0x2A:0:-1: ++%*1lx:+0x2A:0:-1: ++%1lx:+ffffffffffffffff:0:-1: ++%*1lx:+ffffffffffffffff:0:-1: ++%1lx:+FFFFFFFFFFFFFFFF:0:-1: ++%*1lx:+FFFFFFFFFFFFFFFF:0:-1: ++%1lx:+0Xffffffffffffffff:0:-1: ++%*1lx:+0Xffffffffffffffff:0:-1: ++%1lx:+0xFFFFFFFFFFFFFFFF:0:-1: ++%*1lx:+0xFFFFFFFFFFFFFFFF:0:-1: ++%1lx:+10000000000000000:0:-1: ++%*1lx:+10000000000000000:0:-1: ++%1lx:+0X10000000000000000:0:-1: ++%*1lx:+0X10000000000000000:0:-1: ++%1lx:+0x10000000000000000:0:-1: ++%*1lx:+0x10000000000000000:0:-1: ++%1lx:+100000000028757b1:0:-1: ++%*1lx:+100000000028757b1:0:-1: ++%1lx:+100000000028757B1:0:-1: ++%*1lx:+100000000028757B1:0:-1: ++%1lx:+0X100000000028757b1:0:-1: ++%*1lx:+0X100000000028757b1:0:-1: ++%1lx:+0x100000000028757B1:0:-1: ++%*1lx:+0x100000000028757B1:0:-1: ++%2lx::0:-1: ++%*2lx::0:-1: ++%2lx:-7b:1:2:18446744073709551609: ++%*2lx:-7b:0:2: ++%2lx:-7B:1:2:18446744073709551609: ++%*2lx:-7B:0:2: ++%2lx:-0X7b:1:2:0: ++%*2lx:-0X7b:0:2: ++%2lx:-0x7B:1:2:0: ++%*2lx:-0x7B:0:2: ++%2lx:-1:1:2:18446744073709551615: ++%*2lx:-1:0:2: ++%2lx:-0X1:1:2:0: ++%*2lx:-0X1:0:2: ++%2lx:-0x1:1:2:0: ++%*2lx:-0x1:0:2: ++%2lx:-0:1:2:0: ++%*2lx:-0:0:2: ++%2lx:-0X0:1:2:0: ++%*2lx:-0X0:0:2: ++%2lx:-0x0:1:2:0: ++%*2lx:-0x0:0:2: ++%2lx:0:1:1:0: ++%*2lx:0:0:1: ++# BZ12701 %2lx:0X0:0:-1: ++# BZ12701 %*2lx:0X0:0:-1: ++# BZ12701 %2lx:0x0:0:-1: ++# BZ12701 %*2lx:0x0:0:-1: ++%2lx:1:1:1:1: ++%*2lx:1:0:1: ++# BZ12701 %2lx:0X1:0:-1: ++# BZ12701 %*2lx:0X1:0:-1: ++# BZ12701 %2lx:0x1:0:-1: ++# BZ12701 %*2lx:0x1:0:-1: ++%2lx:2a:1:2:42: ++%*2lx:2a:0:2: ++%2lx:2A:1:2:42: ++%*2lx:2A:0:2: ++# BZ12701 %2lx:0X2a:0:-1: ++# BZ12701 %*2lx:0X2a:0:-1: ++# BZ12701 %2lx:0x2A:0:-1: ++# BZ12701 %*2lx:0x2A:0:-1: ++%2lx:ffffffffffffffff:1:2:255: ++%*2lx:ffffffffffffffff:0:2: ++%2lx:FFFFFFFFFFFFFFFF:1:2:255: ++%*2lx:FFFFFFFFFFFFFFFF:0:2: ++# BZ12701 %2lx:0Xffffffffffffffff:0:-1: ++# BZ12701 %*2lx:0Xffffffffffffffff:0:-1: ++# BZ12701 %2lx:0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lx:0xFFFFFFFFFFFFFFFF:0:-1: ++%2lx:10000000000000000:1:2:16: ++%*2lx:10000000000000000:0:2: ++# BZ12701 %2lx:0X10000000000000000:0:-1: ++# BZ12701 %*2lx:0X10000000000000000:0:-1: ++# BZ12701 %2lx:0x10000000000000000:0:-1: ++# BZ12701 %*2lx:0x10000000000000000:0:-1: ++%2lx:100000000028757b1:1:2:16: ++%*2lx:100000000028757b1:0:2: ++%2lx:100000000028757B1:1:2:16: ++%*2lx:100000000028757B1:0:2: ++# BZ12701 %2lx:0X100000000028757b1:0:-1: ++# BZ12701 %*2lx:0X100000000028757b1:0:-1: ++# BZ12701 %2lx:0x100000000028757B1:0:-1: ++# BZ12701 %*2lx:0x100000000028757B1:0:-1: ++%2lx:+0:1:2:0: ++%*2lx:+0:0:2: ++%2lx:+0X0:1:2:0: ++%*2lx:+0X0:0:2: ++%2lx:+0x0:1:2:0: ++%*2lx:+0x0:0:2: ++%2lx:+1:1:2:1: ++%*2lx:+1:0:2: ++%2lx:+0X1:1:2:0: ++%*2lx:+0X1:0:2: ++%2lx:+0x1:1:2:0: ++%*2lx:+0x1:0:2: ++%2lx:+2a:1:2:2: ++%*2lx:+2a:0:2: ++%2lx:+2A:1:2:2: ++%*2lx:+2A:0:2: ++%2lx:+0X2a:1:2:0: ++%*2lx:+0X2a:0:2: ++%2lx:+0x2A:1:2:0: ++%*2lx:+0x2A:0:2: ++%2lx:+ffffffffffffffff:1:2:15: ++%*2lx:+ffffffffffffffff:0:2: ++%2lx:+FFFFFFFFFFFFFFFF:1:2:15: ++%*2lx:+FFFFFFFFFFFFFFFF:0:2: ++%2lx:+0Xffffffffffffffff:1:2:0: ++%*2lx:+0Xffffffffffffffff:0:2: ++%2lx:+0xFFFFFFFFFFFFFFFF:1:2:0: ++%*2lx:+0xFFFFFFFFFFFFFFFF:0:2: ++%2lx:+10000000000000000:1:2:1: ++%*2lx:+10000000000000000:0:2: ++%2lx:+0X10000000000000000:1:2:0: ++%*2lx:+0X10000000000000000:0:2: ++%2lx:+0x10000000000000000:1:2:0: ++%*2lx:+0x10000000000000000:0:2: ++%2lx:+100000000028757b1:1:2:1: ++%*2lx:+100000000028757b1:0:2: ++%2lx:+100000000028757B1:1:2:1: ++%*2lx:+100000000028757B1:0:2: ++%2lx:+0X100000000028757b1:1:2:0: ++%*2lx:+0X100000000028757b1:0:2: ++%2lx:+0x100000000028757B1:1:2:0: ++%*2lx:+0x100000000028757B1:0:2: ++%15lx::0:-1: ++%*15lx::0:-1: ++%15lx:-7b:1:3:18446744073709551493: ++%*15lx:-7b:0:3: ++%15lx:-7B:1:3:18446744073709551493: ++%*15lx:-7B:0:3: ++%15lx:-0X7b:1:5:18446744073709551493: ++%*15lx:-0X7b:0:5: ++%15lx:-0x7B:1:5:18446744073709551493: ++%*15lx:-0x7B:0:5: ++%15lx:-1:1:2:18446744073709551615: ++%*15lx:-1:0:2: ++%15lx:-0X1:1:4:18446744073709551615: ++%*15lx:-0X1:0:4: ++%15lx:-0x1:1:4:18446744073709551615: ++%*15lx:-0x1:0:4: ++%15lx:-0:1:2:0: ++%*15lx:-0:0:2: ++%15lx:-0X0:1:4:0: ++%*15lx:-0X0:0:4: ++%15lx:-0x0:1:4:0: ++%*15lx:-0x0:0:4: ++%15lx:0:1:1:0: ++%*15lx:0:0:1: ++%15lx:0X0:1:3:0: ++%*15lx:0X0:0:3: ++%15lx:0x0:1:3:0: ++%*15lx:0x0:0:3: ++%15lx:1:1:1:1: ++%*15lx:1:0:1: ++%15lx:0X1:1:3:1: ++%*15lx:0X1:0:3: ++%15lx:0x1:1:3:1: ++%*15lx:0x1:0:3: ++%15lx:2a:1:2:42: ++%*15lx:2a:0:2: ++%15lx:2A:1:2:42: ++%*15lx:2A:0:2: ++%15lx:0X2a:1:4:42: ++%*15lx:0X2a:0:4: ++%15lx:0x2A:1:4:42: ++%*15lx:0x2A:0:4: ++%15lx:ffffffffffffffff:1:15:1152921504606846975: ++%*15lx:ffffffffffffffff:0:15: ++%15lx:FFFFFFFFFFFFFFFF:1:15:1152921504606846975: ++%*15lx:FFFFFFFFFFFFFFFF:0:15: ++%15lx:0Xffffffffffffffff:1:15:4503599627370495: ++%*15lx:0Xffffffffffffffff:0:15: ++%15lx:0xFFFFFFFFFFFFFFFF:1:15:4503599627370495: ++%*15lx:0xFFFFFFFFFFFFFFFF:0:15: ++%15lx:10000000000000000:1:15:72057594037927936: ++%*15lx:10000000000000000:0:15: ++%15lx:0X10000000000000000:1:15:281474976710656: ++%*15lx:0X10000000000000000:0:15: ++%15lx:0x10000000000000000:1:15:281474976710656: ++%*15lx:0x10000000000000000:0:15: ++%15lx:100000000028757b1:1:15:72057594038093655: ++%*15lx:100000000028757b1:0:15: ++%15lx:100000000028757B1:1:15:72057594038093655: ++%*15lx:100000000028757B1:0:15: ++%15lx:0X100000000028757b1:1:15:281474976711303: ++%*15lx:0X100000000028757b1:0:15: ++%15lx:0x100000000028757B1:1:15:281474976711303: ++%*15lx:0x100000000028757B1:0:15: ++%15lx:+0:1:2:0: ++%*15lx:+0:0:2: ++%15lx:+0X0:1:4:0: ++%*15lx:+0X0:0:4: ++%15lx:+0x0:1:4:0: ++%*15lx:+0x0:0:4: ++%15lx:+1:1:2:1: ++%*15lx:+1:0:2: ++%15lx:+0X1:1:4:1: ++%*15lx:+0X1:0:4: ++%15lx:+0x1:1:4:1: ++%*15lx:+0x1:0:4: ++%15lx:+2a:1:3:42: ++%*15lx:+2a:0:3: ++%15lx:+2A:1:3:42: ++%*15lx:+2A:0:3: ++%15lx:+0X2a:1:5:42: ++%*15lx:+0X2a:0:5: ++%15lx:+0x2A:1:5:42: ++%*15lx:+0x2A:0:5: ++%15lx:+ffffffffffffffff:1:15:72057594037927935: ++%*15lx:+ffffffffffffffff:0:15: ++%15lx:+FFFFFFFFFFFFFFFF:1:15:72057594037927935: ++%*15lx:+FFFFFFFFFFFFFFFF:0:15: ++%15lx:+0Xffffffffffffffff:1:15:281474976710655: ++%*15lx:+0Xffffffffffffffff:0:15: ++%15lx:+0xFFFFFFFFFFFFFFFF:1:15:281474976710655: ++%*15lx:+0xFFFFFFFFFFFFFFFF:0:15: ++%15lx:+10000000000000000:1:15:4503599627370496: ++%*15lx:+10000000000000000:0:15: ++%15lx:+0X10000000000000000:1:15:17592186044416: ++%*15lx:+0X10000000000000000:0:15: ++%15lx:+0x10000000000000000:1:15:17592186044416: ++%*15lx:+0x10000000000000000:0:15: ++%15lx:+100000000028757b1:1:15:4503599627380853: ++%*15lx:+100000000028757b1:0:15: ++%15lx:+100000000028757B1:1:15:4503599627380853: ++%*15lx:+100000000028757B1:0:15: ++%15lx:+0X100000000028757b1:1:15:17592186044456: ++%*15lx:+0X100000000028757b1:0:15: ++%15lx:+0x100000000028757B1:1:15:17592186044456: ++%*15lx:+0x100000000028757B1:0:15: ++%25lx::0:-1: ++%*25lx::0:-1: ++%25lx:-7b:1:3:18446744073709551493: ++%*25lx:-7b:0:3: ++%25lx:-7B:1:3:18446744073709551493: ++%*25lx:-7B:0:3: ++%25lx:-0X7b:1:5:18446744073709551493: ++%*25lx:-0X7b:0:5: ++%25lx:-0x7B:1:5:18446744073709551493: ++%*25lx:-0x7B:0:5: ++%25lx:-1:1:2:18446744073709551615: ++%*25lx:-1:0:2: ++%25lx:-0X1:1:4:18446744073709551615: ++%*25lx:-0X1:0:4: ++%25lx:-0x1:1:4:18446744073709551615: ++%*25lx:-0x1:0:4: ++%25lx:-0:1:2:0: ++%*25lx:-0:0:2: ++%25lx:-0X0:1:4:0: ++%*25lx:-0X0:0:4: ++%25lx:-0x0:1:4:0: ++%*25lx:-0x0:0:4: ++%25lx:0:1:1:0: ++%*25lx:0:0:1: ++%25lx:0X0:1:3:0: ++%*25lx:0X0:0:3: ++%25lx:0x0:1:3:0: ++%*25lx:0x0:0:3: ++%25lx:1:1:1:1: ++%*25lx:1:0:1: ++%25lx:0X1:1:3:1: ++%*25lx:0X1:0:3: ++%25lx:0x1:1:3:1: ++%*25lx:0x1:0:3: ++%25lx:2a:1:2:42: ++%*25lx:2a:0:2: ++%25lx:2A:1:2:42: ++%*25lx:2A:0:2: ++%25lx:0X2a:1:4:42: ++%*25lx:0X2a:0:4: ++%25lx:0x2A:1:4:42: ++%*25lx:0x2A:0:4: ++%25lx:ffffffffffffffff:1:16:18446744073709551615: ++%*25lx:ffffffffffffffff:0:16: ++%25lx:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*25lx:FFFFFFFFFFFFFFFF:0:16: ++%25lx:0Xffffffffffffffff:1:18:18446744073709551615: ++%*25lx:0Xffffffffffffffff:0:18: ++%25lx:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25lx:0xFFFFFFFFFFFFFFFF:0:18: ++%25lx:10000000000000000:1:17:18446744073709551615: ++%*25lx:10000000000000000:0:17: ++%25lx:0X10000000000000000:1:19:18446744073709551615: ++%*25lx:0X10000000000000000:0:19: ++%25lx:0x10000000000000000:1:19:18446744073709551615: ++%*25lx:0x10000000000000000:0:19: ++%25lx:100000000028757b1:1:17:18446744073709551615: ++%*25lx:100000000028757b1:0:17: ++%25lx:100000000028757B1:1:17:18446744073709551615: ++%*25lx:100000000028757B1:0:17: ++%25lx:0X100000000028757b1:1:19:18446744073709551615: ++%*25lx:0X100000000028757b1:0:19: ++%25lx:0x100000000028757B1:1:19:18446744073709551615: ++%*25lx:0x100000000028757B1:0:19: ++%25lx:+0:1:2:0: ++%*25lx:+0:0:2: ++%25lx:+0X0:1:4:0: ++%*25lx:+0X0:0:4: ++%25lx:+0x0:1:4:0: ++%*25lx:+0x0:0:4: ++%25lx:+1:1:2:1: ++%*25lx:+1:0:2: ++%25lx:+0X1:1:4:1: ++%*25lx:+0X1:0:4: ++%25lx:+0x1:1:4:1: ++%*25lx:+0x1:0:4: ++%25lx:+2a:1:3:42: ++%*25lx:+2a:0:3: ++%25lx:+2A:1:3:42: ++%*25lx:+2A:0:3: ++%25lx:+0X2a:1:5:42: ++%*25lx:+0X2a:0:5: ++%25lx:+0x2A:1:5:42: ++%*25lx:+0x2A:0:5: ++%25lx:+ffffffffffffffff:1:17:18446744073709551615: ++%*25lx:+ffffffffffffffff:0:17: ++%25lx:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25lx:+FFFFFFFFFFFFFFFF:0:17: ++%25lx:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*25lx:+0Xffffffffffffffff:0:19: ++%25lx:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25lx:+0xFFFFFFFFFFFFFFFF:0:19: ++%25lx:+10000000000000000:1:18:18446744073709551615: ++%*25lx:+10000000000000000:0:18: ++%25lx:+0X10000000000000000:1:20:18446744073709551615: ++%*25lx:+0X10000000000000000:0:20: ++%25lx:+0x10000000000000000:1:20:18446744073709551615: ++%*25lx:+0x10000000000000000:0:20: ++%25lx:+100000000028757b1:1:18:18446744073709551615: ++%*25lx:+100000000028757b1:0:18: ++%25lx:+100000000028757B1:1:18:18446744073709551615: ++%*25lx:+100000000028757B1:0:18: ++%25lx:+0X100000000028757b1:1:20:18446744073709551615: ++%*25lx:+0X100000000028757b1:0:20: ++%25lx:+0x100000000028757B1:1:20:18446744073709551615: ++%*25lx:+0x100000000028757B1:0:20: ++%2lx: :0:-1: ++%*2lx: :0:-1: ++%2lx: -7b:1:3:18446744073709551609: ++%*2lx: -7b:0:3: ++%2lx: -7B:1:3:18446744073709551609: ++%*2lx: -7B:0:3: ++%2lx: -0X7b:1:3:0: ++%*2lx: -0X7b:0:3: ++%2lx: -0x7B:1:3:0: ++%*2lx: -0x7B:0:3: ++%2lx: -1:1:3:18446744073709551615: ++%*2lx: -1:0:3: ++%2lx: -0X1:1:3:0: ++%*2lx: -0X1:0:3: ++%2lx: -0x1:1:3:0: ++%*2lx: -0x1:0:3: ++%2lx: -0:1:3:0: ++%*2lx: -0:0:3: ++%2lx: -0X0:1:3:0: ++%*2lx: -0X0:0:3: ++%2lx: -0x0:1:3:0: ++%*2lx: -0x0:0:3: ++%2lx: 0:1:2:0: ++%*2lx: 0:0:2: ++# BZ12701 %2lx: 0X0:0:-1: ++# BZ12701 %*2lx: 0X0:0:-1: ++# BZ12701 %2lx: 0x0:0:-1: ++# BZ12701 %*2lx: 0x0:0:-1: ++%2lx: 1:1:2:1: ++%*2lx: 1:0:2: ++# BZ12701 %2lx: 0X1:0:-1: ++# BZ12701 %*2lx: 0X1:0:-1: ++# BZ12701 %2lx: 0x1:0:-1: ++# BZ12701 %*2lx: 0x1:0:-1: ++%2lx: 2a:1:3:42: ++%*2lx: 2a:0:3: ++%2lx: 2A:1:3:42: ++%*2lx: 2A:0:3: ++# BZ12701 %2lx: 0X2a:0:-1: ++# BZ12701 %*2lx: 0X2a:0:-1: ++# BZ12701 %2lx: 0x2A:0:-1: ++# BZ12701 %*2lx: 0x2A:0:-1: ++%2lx: ffffffffffffffff:1:3:255: ++%*2lx: ffffffffffffffff:0:3: ++%2lx: FFFFFFFFFFFFFFFF:1:3:255: ++%*2lx: FFFFFFFFFFFFFFFF:0:3: ++# BZ12701 %2lx: 0Xffffffffffffffff:0:-1: ++# BZ12701 %*2lx: 0Xffffffffffffffff:0:-1: ++# BZ12701 %2lx: 0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lx: 0xFFFFFFFFFFFFFFFF:0:-1: ++%2lx: 10000000000000000:1:3:16: ++%*2lx: 10000000000000000:0:3: ++# BZ12701 %2lx: 0X10000000000000000:0:-1: ++# BZ12701 %*2lx: 0X10000000000000000:0:-1: ++# BZ12701 %2lx: 0x10000000000000000:0:-1: ++# BZ12701 %*2lx: 0x10000000000000000:0:-1: ++%2lx: 100000000028757b1:1:3:16: ++%*2lx: 100000000028757b1:0:3: ++%2lx: 100000000028757B1:1:3:16: ++%*2lx: 100000000028757B1:0:3: ++# BZ12701 %2lx: 0X100000000028757b1:0:-1: ++# BZ12701 %*2lx: 0X100000000028757b1:0:-1: ++# BZ12701 %2lx: 0x100000000028757B1:0:-1: ++# BZ12701 %*2lx: 0x100000000028757B1:0:-1: ++%2lx: +0:1:3:0: ++%*2lx: +0:0:3: ++%2lx: +0X0:1:3:0: ++%*2lx: +0X0:0:3: ++%2lx: +0x0:1:3:0: ++%*2lx: +0x0:0:3: ++%2lx: +1:1:3:1: ++%*2lx: +1:0:3: ++%2lx: +0X1:1:3:0: ++%*2lx: +0X1:0:3: ++%2lx: +0x1:1:3:0: ++%*2lx: +0x1:0:3: ++%2lx: +2a:1:3:2: ++%*2lx: +2a:0:3: ++%2lx: +2A:1:3:2: ++%*2lx: +2A:0:3: ++%2lx: +0X2a:1:3:0: ++%*2lx: +0X2a:0:3: ++%2lx: +0x2A:1:3:0: ++%*2lx: +0x2A:0:3: ++%2lx: +ffffffffffffffff:1:3:15: ++%*2lx: +ffffffffffffffff:0:3: ++%2lx: +FFFFFFFFFFFFFFFF:1:3:15: ++%*2lx: +FFFFFFFFFFFFFFFF:0:3: ++%2lx: +0Xffffffffffffffff:1:3:0: ++%*2lx: +0Xffffffffffffffff:0:3: ++%2lx: +0xFFFFFFFFFFFFFFFF:1:3:0: ++%*2lx: +0xFFFFFFFFFFFFFFFF:0:3: ++%2lx: +10000000000000000:1:3:1: ++%*2lx: +10000000000000000:0:3: ++%2lx: +0X10000000000000000:1:3:0: ++%*2lx: +0X10000000000000000:0:3: ++%2lx: +0x10000000000000000:1:3:0: ++%*2lx: +0x10000000000000000:0:3: ++%2lx: +100000000028757b1:1:3:1: ++%*2lx: +100000000028757b1:0:3: ++%2lx: +100000000028757B1:1:3:1: ++%*2lx: +100000000028757B1:0:3: ++%2lx: +0X100000000028757b1:1:3:0: ++%*2lx: +0X100000000028757b1:0:3: ++%2lx: +0x100000000028757B1:1:3:0: ++%*2lx: +0x100000000028757B1:0:3: ++%25lx: :0:-1: ++%*25lx: :0:-1: ++%25lx: -7b:1:4:18446744073709551493: ++%*25lx: -7b:0:4: ++%25lx: -7B:1:4:18446744073709551493: ++%*25lx: -7B:0:4: ++%25lx: -0X7b:1:6:18446744073709551493: ++%*25lx: -0X7b:0:6: ++%25lx: -0x7B:1:6:18446744073709551493: ++%*25lx: -0x7B:0:6: ++%25lx: -1:1:3:18446744073709551615: ++%*25lx: -1:0:3: ++%25lx: -0X1:1:5:18446744073709551615: ++%*25lx: -0X1:0:5: ++%25lx: -0x1:1:5:18446744073709551615: ++%*25lx: -0x1:0:5: ++%25lx: -0:1:3:0: ++%*25lx: -0:0:3: ++%25lx: -0X0:1:5:0: ++%*25lx: -0X0:0:5: ++%25lx: -0x0:1:5:0: ++%*25lx: -0x0:0:5: ++%25lx: 0:1:2:0: ++%*25lx: 0:0:2: ++%25lx: 0X0:1:4:0: ++%*25lx: 0X0:0:4: ++%25lx: 0x0:1:4:0: ++%*25lx: 0x0:0:4: ++%25lx: 1:1:2:1: ++%*25lx: 1:0:2: ++%25lx: 0X1:1:4:1: ++%*25lx: 0X1:0:4: ++%25lx: 0x1:1:4:1: ++%*25lx: 0x1:0:4: ++%25lx: 2a:1:3:42: ++%*25lx: 2a:0:3: ++%25lx: 2A:1:3:42: ++%*25lx: 2A:0:3: ++%25lx: 0X2a:1:5:42: ++%*25lx: 0X2a:0:5: ++%25lx: 0x2A:1:5:42: ++%*25lx: 0x2A:0:5: ++%25lx: ffffffffffffffff:1:17:18446744073709551615: ++%*25lx: ffffffffffffffff:0:17: ++%25lx: FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25lx: FFFFFFFFFFFFFFFF:0:17: ++%25lx: 0Xffffffffffffffff:1:19:18446744073709551615: ++%*25lx: 0Xffffffffffffffff:0:19: ++%25lx: 0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25lx: 0xFFFFFFFFFFFFFFFF:0:19: ++%25lx: 10000000000000000:1:18:18446744073709551615: ++%*25lx: 10000000000000000:0:18: ++%25lx: 0X10000000000000000:1:20:18446744073709551615: ++%*25lx: 0X10000000000000000:0:20: ++%25lx: 0x10000000000000000:1:20:18446744073709551615: ++%*25lx: 0x10000000000000000:0:20: ++%25lx: 100000000028757b1:1:18:18446744073709551615: ++%*25lx: 100000000028757b1:0:18: ++%25lx: 100000000028757B1:1:18:18446744073709551615: ++%*25lx: 100000000028757B1:0:18: ++%25lx: 0X100000000028757b1:1:20:18446744073709551615: ++%*25lx: 0X100000000028757b1:0:20: ++%25lx: 0x100000000028757B1:1:20:18446744073709551615: ++%*25lx: 0x100000000028757B1:0:20: ++%25lx: +0:1:3:0: ++%*25lx: +0:0:3: ++%25lx: +0X0:1:5:0: ++%*25lx: +0X0:0:5: ++%25lx: +0x0:1:5:0: ++%*25lx: +0x0:0:5: ++%25lx: +1:1:3:1: ++%*25lx: +1:0:3: ++%25lx: +0X1:1:5:1: ++%*25lx: +0X1:0:5: ++%25lx: +0x1:1:5:1: ++%*25lx: +0x1:0:5: ++%25lx: +2a:1:4:42: ++%*25lx: +2a:0:4: ++%25lx: +2A:1:4:42: ++%*25lx: +2A:0:4: ++%25lx: +0X2a:1:6:42: ++%*25lx: +0X2a:0:6: ++%25lx: +0x2A:1:6:42: ++%*25lx: +0x2A:0:6: ++%25lx: +ffffffffffffffff:1:18:18446744073709551615: ++%*25lx: +ffffffffffffffff:0:18: ++%25lx: +FFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25lx: +FFFFFFFFFFFFFFFF:0:18: ++%25lx: +0Xffffffffffffffff:1:20:18446744073709551615: ++%*25lx: +0Xffffffffffffffff:0:20: ++%25lx: +0xFFFFFFFFFFFFFFFF:1:20:18446744073709551615: ++%*25lx: +0xFFFFFFFFFFFFFFFF:0:20: ++%25lx: +10000000000000000:1:19:18446744073709551615: ++%*25lx: +10000000000000000:0:19: ++%25lx: +0X10000000000000000:1:21:18446744073709551615: ++%*25lx: +0X10000000000000000:0:21: ++%25lx: +0x10000000000000000:1:21:18446744073709551615: ++%*25lx: +0x10000000000000000:0:21: ++%25lx: +100000000028757b1:1:19:18446744073709551615: ++%*25lx: +100000000028757b1:0:19: ++%25lx: +100000000028757B1:1:19:18446744073709551615: ++%*25lx: +100000000028757B1:0:19: ++%25lx: +0X100000000028757b1:1:21:18446744073709551615: ++%*25lx: +0X100000000028757b1:0:21: ++%25lx: +0x100000000028757B1:1:21:18446744073709551615: ++%*25lx: +0x100000000028757B1:0:21: +diff --git a/sysdeps/wordsize-64/tst-scanf-format-ulong-xx.input b/sysdeps/wordsize-64/tst-scanf-format-ulong-xx.input +new file mode 100644 +index 0000000000000000..883b3b423c871150 +--- /dev/null ++++ b/sysdeps/wordsize-64/tst-scanf-format-ulong-xx.input +@@ -0,0 +1,742 @@ ++%lX::0:-1: ++%*lX::0:-1: ++%lX:-7b:1:3:18446744073709551493: ++%*lX:-7b:0:3: ++%lX:-7B:1:3:18446744073709551493: ++%*lX:-7B:0:3: ++%lX:-0X7b:1:5:18446744073709551493: ++%*lX:-0X7b:0:5: ++%lX:-0x7B:1:5:18446744073709551493: ++%*lX:-0x7B:0:5: ++%lX:-1:1:2:18446744073709551615: ++%*lX:-1:0:2: ++%lX:-0X1:1:4:18446744073709551615: ++%*lX:-0X1:0:4: ++%lX:-0x1:1:4:18446744073709551615: ++%*lX:-0x1:0:4: ++%lX:-0:1:2:0: ++%*lX:-0:0:2: ++%lX:-0X0:1:4:0: ++%*lX:-0X0:0:4: ++%lX:-0x0:1:4:0: ++%*lX:-0x0:0:4: ++%lX:0:1:1:0: ++%*lX:0:0:1: ++%lX:0X0:1:3:0: ++%*lX:0X0:0:3: ++%lX:0x0:1:3:0: ++%*lX:0x0:0:3: ++%lX:1:1:1:1: ++%*lX:1:0:1: ++%lX:0X1:1:3:1: ++%*lX:0X1:0:3: ++%lX:0x1:1:3:1: ++%*lX:0x1:0:3: ++%lX:2a:1:2:42: ++%*lX:2a:0:2: ++%lX:2A:1:2:42: ++%*lX:2A:0:2: ++%lX:0X2a:1:4:42: ++%*lX:0X2a:0:4: ++%lX:0x2A:1:4:42: ++%*lX:0x2A:0:4: ++%lX:ffffffffffffffff:1:16:18446744073709551615: ++%*lX:ffffffffffffffff:0:16: ++%lX:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*lX:FFFFFFFFFFFFFFFF:0:16: ++%lX:0Xffffffffffffffff:1:18:18446744073709551615: ++%*lX:0Xffffffffffffffff:0:18: ++%lX:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*lX:0xFFFFFFFFFFFFFFFF:0:18: ++%lX:10000000000000000:1:17:18446744073709551615: ++%*lX:10000000000000000:0:17: ++%lX:0X10000000000000000:1:19:18446744073709551615: ++%*lX:0X10000000000000000:0:19: ++%lX:0x10000000000000000:1:19:18446744073709551615: ++%*lX:0x10000000000000000:0:19: ++%lX:100000000028757b1:1:17:18446744073709551615: ++%*lX:100000000028757b1:0:17: ++%lX:100000000028757B1:1:17:18446744073709551615: ++%*lX:100000000028757B1:0:17: ++%lX:0X100000000028757b1:1:19:18446744073709551615: ++%*lX:0X100000000028757b1:0:19: ++%lX:0x100000000028757B1:1:19:18446744073709551615: ++%*lX:0x100000000028757B1:0:19: ++%lX:+0:1:2:0: ++%*lX:+0:0:2: ++%lX:+0X0:1:4:0: ++%*lX:+0X0:0:4: ++%lX:+0x0:1:4:0: ++%*lX:+0x0:0:4: ++%lX:+1:1:2:1: ++%*lX:+1:0:2: ++%lX:+0X1:1:4:1: ++%*lX:+0X1:0:4: ++%lX:+0x1:1:4:1: ++%*lX:+0x1:0:4: ++%lX:+2a:1:3:42: ++%*lX:+2a:0:3: ++%lX:+2A:1:3:42: ++%*lX:+2A:0:3: ++%lX:+0X2a:1:5:42: ++%*lX:+0X2a:0:5: ++%lX:+0x2A:1:5:42: ++%*lX:+0x2A:0:5: ++%lX:+ffffffffffffffff:1:17:18446744073709551615: ++%*lX:+ffffffffffffffff:0:17: ++%lX:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*lX:+FFFFFFFFFFFFFFFF:0:17: ++%lX:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*lX:+0Xffffffffffffffff:0:19: ++%lX:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*lX:+0xFFFFFFFFFFFFFFFF:0:19: ++%lX:+10000000000000000:1:18:18446744073709551615: ++%*lX:+10000000000000000:0:18: ++%lX:+0X10000000000000000:1:20:18446744073709551615: ++%*lX:+0X10000000000000000:0:20: ++%lX:+0x10000000000000000:1:20:18446744073709551615: ++%*lX:+0x10000000000000000:0:20: ++%lX:+100000000028757b1:1:18:18446744073709551615: ++%*lX:+100000000028757b1:0:18: ++%lX:+100000000028757B1:1:18:18446744073709551615: ++%*lX:+100000000028757B1:0:18: ++%lX:+0X100000000028757b1:1:20:18446744073709551615: ++%*lX:+0X100000000028757b1:0:20: ++%lX:+0x100000000028757B1:1:20:18446744073709551615: ++%*lX:+0x100000000028757B1:0:20: ++%1lX::0:-1: ++%*1lX::0:-1: ++%1lX:-7b:0:-1: ++%*1lX:-7b:0:-1: ++%1lX:-7B:0:-1: ++%*1lX:-7B:0:-1: ++%1lX:-0X7b:0:-1: ++%*1lX:-0X7b:0:-1: ++%1lX:-0x7B:0:-1: ++%*1lX:-0x7B:0:-1: ++%1lX:-1:0:-1: ++%*1lX:-1:0:-1: ++%1lX:-0X1:0:-1: ++%*1lX:-0X1:0:-1: ++%1lX:-0x1:0:-1: ++%*1lX:-0x1:0:-1: ++%1lX:-0:0:-1: ++%*1lX:-0:0:-1: ++%1lX:-0X0:0:-1: ++%*1lX:-0X0:0:-1: ++%1lX:-0x0:0:-1: ++%*1lX:-0x0:0:-1: ++%1lX:0:1:1:0: ++%*1lX:0:0:1: ++%1lX:0X0:1:1:0: ++%*1lX:0X0:0:1: ++%1lX:0x0:1:1:0: ++%*1lX:0x0:0:1: ++%1lX:1:1:1:1: ++%*1lX:1:0:1: ++%1lX:0X1:1:1:0: ++%*1lX:0X1:0:1: ++%1lX:0x1:1:1:0: ++%*1lX:0x1:0:1: ++%1lX:2a:1:1:2: ++%*1lX:2a:0:1: ++%1lX:2A:1:1:2: ++%*1lX:2A:0:1: ++%1lX:0X2a:1:1:0: ++%*1lX:0X2a:0:1: ++%1lX:0x2A:1:1:0: ++%*1lX:0x2A:0:1: ++%1lX:ffffffffffffffff:1:1:15: ++%*1lX:ffffffffffffffff:0:1: ++%1lX:FFFFFFFFFFFFFFFF:1:1:15: ++%*1lX:FFFFFFFFFFFFFFFF:0:1: ++%1lX:0Xffffffffffffffff:1:1:0: ++%*1lX:0Xffffffffffffffff:0:1: ++%1lX:0xFFFFFFFFFFFFFFFF:1:1:0: ++%*1lX:0xFFFFFFFFFFFFFFFF:0:1: ++%1lX:10000000000000000:1:1:1: ++%*1lX:10000000000000000:0:1: ++%1lX:0X10000000000000000:1:1:0: ++%*1lX:0X10000000000000000:0:1: ++%1lX:0x10000000000000000:1:1:0: ++%*1lX:0x10000000000000000:0:1: ++%1lX:100000000028757b1:1:1:1: ++%*1lX:100000000028757b1:0:1: ++%1lX:100000000028757B1:1:1:1: ++%*1lX:100000000028757B1:0:1: ++%1lX:0X100000000028757b1:1:1:0: ++%*1lX:0X100000000028757b1:0:1: ++%1lX:0x100000000028757B1:1:1:0: ++%*1lX:0x100000000028757B1:0:1: ++%1lX:+0:0:-1: ++%*1lX:+0:0:-1: ++%1lX:+0X0:0:-1: ++%*1lX:+0X0:0:-1: ++%1lX:+0x0:0:-1: ++%*1lX:+0x0:0:-1: ++%1lX:+1:0:-1: ++%*1lX:+1:0:-1: ++%1lX:+0X1:0:-1: ++%*1lX:+0X1:0:-1: ++%1lX:+0x1:0:-1: ++%*1lX:+0x1:0:-1: ++%1lX:+2a:0:-1: ++%*1lX:+2a:0:-1: ++%1lX:+2A:0:-1: ++%*1lX:+2A:0:-1: ++%1lX:+0X2a:0:-1: ++%*1lX:+0X2a:0:-1: ++%1lX:+0x2A:0:-1: ++%*1lX:+0x2A:0:-1: ++%1lX:+ffffffffffffffff:0:-1: ++%*1lX:+ffffffffffffffff:0:-1: ++%1lX:+FFFFFFFFFFFFFFFF:0:-1: ++%*1lX:+FFFFFFFFFFFFFFFF:0:-1: ++%1lX:+0Xffffffffffffffff:0:-1: ++%*1lX:+0Xffffffffffffffff:0:-1: ++%1lX:+0xFFFFFFFFFFFFFFFF:0:-1: ++%*1lX:+0xFFFFFFFFFFFFFFFF:0:-1: ++%1lX:+10000000000000000:0:-1: ++%*1lX:+10000000000000000:0:-1: ++%1lX:+0X10000000000000000:0:-1: ++%*1lX:+0X10000000000000000:0:-1: ++%1lX:+0x10000000000000000:0:-1: ++%*1lX:+0x10000000000000000:0:-1: ++%1lX:+100000000028757b1:0:-1: ++%*1lX:+100000000028757b1:0:-1: ++%1lX:+100000000028757B1:0:-1: ++%*1lX:+100000000028757B1:0:-1: ++%1lX:+0X100000000028757b1:0:-1: ++%*1lX:+0X100000000028757b1:0:-1: ++%1lX:+0x100000000028757B1:0:-1: ++%*1lX:+0x100000000028757B1:0:-1: ++%2lX::0:-1: ++%*2lX::0:-1: ++%2lX:-7b:1:2:18446744073709551609: ++%*2lX:-7b:0:2: ++%2lX:-7B:1:2:18446744073709551609: ++%*2lX:-7B:0:2: ++%2lX:-0X7b:1:2:0: ++%*2lX:-0X7b:0:2: ++%2lX:-0x7B:1:2:0: ++%*2lX:-0x7B:0:2: ++%2lX:-1:1:2:18446744073709551615: ++%*2lX:-1:0:2: ++%2lX:-0X1:1:2:0: ++%*2lX:-0X1:0:2: ++%2lX:-0x1:1:2:0: ++%*2lX:-0x1:0:2: ++%2lX:-0:1:2:0: ++%*2lX:-0:0:2: ++%2lX:-0X0:1:2:0: ++%*2lX:-0X0:0:2: ++%2lX:-0x0:1:2:0: ++%*2lX:-0x0:0:2: ++%2lX:0:1:1:0: ++%*2lX:0:0:1: ++# BZ12701 %2lX:0X0:0:-1: ++# BZ12701 %*2lX:0X0:0:-1: ++# BZ12701 %2lX:0x0:0:-1: ++# BZ12701 %*2lX:0x0:0:-1: ++%2lX:1:1:1:1: ++%*2lX:1:0:1: ++# BZ12701 %2lX:0X1:0:-1: ++# BZ12701 %*2lX:0X1:0:-1: ++# BZ12701 %2lX:0x1:0:-1: ++# BZ12701 %*2lX:0x1:0:-1: ++%2lX:2a:1:2:42: ++%*2lX:2a:0:2: ++%2lX:2A:1:2:42: ++%*2lX:2A:0:2: ++# BZ12701 %2lX:0X2a:0:-1: ++# BZ12701 %*2lX:0X2a:0:-1: ++# BZ12701 %2lX:0x2A:0:-1: ++# BZ12701 %*2lX:0x2A:0:-1: ++%2lX:ffffffffffffffff:1:2:255: ++%*2lX:ffffffffffffffff:0:2: ++%2lX:FFFFFFFFFFFFFFFF:1:2:255: ++%*2lX:FFFFFFFFFFFFFFFF:0:2: ++# BZ12701 %2lX:0Xffffffffffffffff:0:-1: ++# BZ12701 %*2lX:0Xffffffffffffffff:0:-1: ++# BZ12701 %2lX:0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lX:0xFFFFFFFFFFFFFFFF:0:-1: ++%2lX:10000000000000000:1:2:16: ++%*2lX:10000000000000000:0:2: ++# BZ12701 %2lX:0X10000000000000000:0:-1: ++# BZ12701 %*2lX:0X10000000000000000:0:-1: ++# BZ12701 %2lX:0x10000000000000000:0:-1: ++# BZ12701 %*2lX:0x10000000000000000:0:-1: ++%2lX:100000000028757b1:1:2:16: ++%*2lX:100000000028757b1:0:2: ++%2lX:100000000028757B1:1:2:16: ++%*2lX:100000000028757B1:0:2: ++# BZ12701 %2lX:0X100000000028757b1:0:-1: ++# BZ12701 %*2lX:0X100000000028757b1:0:-1: ++# BZ12701 %2lX:0x100000000028757B1:0:-1: ++# BZ12701 %*2lX:0x100000000028757B1:0:-1: ++%2lX:+0:1:2:0: ++%*2lX:+0:0:2: ++%2lX:+0X0:1:2:0: ++%*2lX:+0X0:0:2: ++%2lX:+0x0:1:2:0: ++%*2lX:+0x0:0:2: ++%2lX:+1:1:2:1: ++%*2lX:+1:0:2: ++%2lX:+0X1:1:2:0: ++%*2lX:+0X1:0:2: ++%2lX:+0x1:1:2:0: ++%*2lX:+0x1:0:2: ++%2lX:+2a:1:2:2: ++%*2lX:+2a:0:2: ++%2lX:+2A:1:2:2: ++%*2lX:+2A:0:2: ++%2lX:+0X2a:1:2:0: ++%*2lX:+0X2a:0:2: ++%2lX:+0x2A:1:2:0: ++%*2lX:+0x2A:0:2: ++%2lX:+ffffffffffffffff:1:2:15: ++%*2lX:+ffffffffffffffff:0:2: ++%2lX:+FFFFFFFFFFFFFFFF:1:2:15: ++%*2lX:+FFFFFFFFFFFFFFFF:0:2: ++%2lX:+0Xffffffffffffffff:1:2:0: ++%*2lX:+0Xffffffffffffffff:0:2: ++%2lX:+0xFFFFFFFFFFFFFFFF:1:2:0: ++%*2lX:+0xFFFFFFFFFFFFFFFF:0:2: ++%2lX:+10000000000000000:1:2:1: ++%*2lX:+10000000000000000:0:2: ++%2lX:+0X10000000000000000:1:2:0: ++%*2lX:+0X10000000000000000:0:2: ++%2lX:+0x10000000000000000:1:2:0: ++%*2lX:+0x10000000000000000:0:2: ++%2lX:+100000000028757b1:1:2:1: ++%*2lX:+100000000028757b1:0:2: ++%2lX:+100000000028757B1:1:2:1: ++%*2lX:+100000000028757B1:0:2: ++%2lX:+0X100000000028757b1:1:2:0: ++%*2lX:+0X100000000028757b1:0:2: ++%2lX:+0x100000000028757B1:1:2:0: ++%*2lX:+0x100000000028757B1:0:2: ++%15lX::0:-1: ++%*15lX::0:-1: ++%15lX:-7b:1:3:18446744073709551493: ++%*15lX:-7b:0:3: ++%15lX:-7B:1:3:18446744073709551493: ++%*15lX:-7B:0:3: ++%15lX:-0X7b:1:5:18446744073709551493: ++%*15lX:-0X7b:0:5: ++%15lX:-0x7B:1:5:18446744073709551493: ++%*15lX:-0x7B:0:5: ++%15lX:-1:1:2:18446744073709551615: ++%*15lX:-1:0:2: ++%15lX:-0X1:1:4:18446744073709551615: ++%*15lX:-0X1:0:4: ++%15lX:-0x1:1:4:18446744073709551615: ++%*15lX:-0x1:0:4: ++%15lX:-0:1:2:0: ++%*15lX:-0:0:2: ++%15lX:-0X0:1:4:0: ++%*15lX:-0X0:0:4: ++%15lX:-0x0:1:4:0: ++%*15lX:-0x0:0:4: ++%15lX:0:1:1:0: ++%*15lX:0:0:1: ++%15lX:0X0:1:3:0: ++%*15lX:0X0:0:3: ++%15lX:0x0:1:3:0: ++%*15lX:0x0:0:3: ++%15lX:1:1:1:1: ++%*15lX:1:0:1: ++%15lX:0X1:1:3:1: ++%*15lX:0X1:0:3: ++%15lX:0x1:1:3:1: ++%*15lX:0x1:0:3: ++%15lX:2a:1:2:42: ++%*15lX:2a:0:2: ++%15lX:2A:1:2:42: ++%*15lX:2A:0:2: ++%15lX:0X2a:1:4:42: ++%*15lX:0X2a:0:4: ++%15lX:0x2A:1:4:42: ++%*15lX:0x2A:0:4: ++%15lX:ffffffffffffffff:1:15:1152921504606846975: ++%*15lX:ffffffffffffffff:0:15: ++%15lX:FFFFFFFFFFFFFFFF:1:15:1152921504606846975: ++%*15lX:FFFFFFFFFFFFFFFF:0:15: ++%15lX:0Xffffffffffffffff:1:15:4503599627370495: ++%*15lX:0Xffffffffffffffff:0:15: ++%15lX:0xFFFFFFFFFFFFFFFF:1:15:4503599627370495: ++%*15lX:0xFFFFFFFFFFFFFFFF:0:15: ++%15lX:10000000000000000:1:15:72057594037927936: ++%*15lX:10000000000000000:0:15: ++%15lX:0X10000000000000000:1:15:281474976710656: ++%*15lX:0X10000000000000000:0:15: ++%15lX:0x10000000000000000:1:15:281474976710656: ++%*15lX:0x10000000000000000:0:15: ++%15lX:100000000028757b1:1:15:72057594038093655: ++%*15lX:100000000028757b1:0:15: ++%15lX:100000000028757B1:1:15:72057594038093655: ++%*15lX:100000000028757B1:0:15: ++%15lX:0X100000000028757b1:1:15:281474976711303: ++%*15lX:0X100000000028757b1:0:15: ++%15lX:0x100000000028757B1:1:15:281474976711303: ++%*15lX:0x100000000028757B1:0:15: ++%15lX:+0:1:2:0: ++%*15lX:+0:0:2: ++%15lX:+0X0:1:4:0: ++%*15lX:+0X0:0:4: ++%15lX:+0x0:1:4:0: ++%*15lX:+0x0:0:4: ++%15lX:+1:1:2:1: ++%*15lX:+1:0:2: ++%15lX:+0X1:1:4:1: ++%*15lX:+0X1:0:4: ++%15lX:+0x1:1:4:1: ++%*15lX:+0x1:0:4: ++%15lX:+2a:1:3:42: ++%*15lX:+2a:0:3: ++%15lX:+2A:1:3:42: ++%*15lX:+2A:0:3: ++%15lX:+0X2a:1:5:42: ++%*15lX:+0X2a:0:5: ++%15lX:+0x2A:1:5:42: ++%*15lX:+0x2A:0:5: ++%15lX:+ffffffffffffffff:1:15:72057594037927935: ++%*15lX:+ffffffffffffffff:0:15: ++%15lX:+FFFFFFFFFFFFFFFF:1:15:72057594037927935: ++%*15lX:+FFFFFFFFFFFFFFFF:0:15: ++%15lX:+0Xffffffffffffffff:1:15:281474976710655: ++%*15lX:+0Xffffffffffffffff:0:15: ++%15lX:+0xFFFFFFFFFFFFFFFF:1:15:281474976710655: ++%*15lX:+0xFFFFFFFFFFFFFFFF:0:15: ++%15lX:+10000000000000000:1:15:4503599627370496: ++%*15lX:+10000000000000000:0:15: ++%15lX:+0X10000000000000000:1:15:17592186044416: ++%*15lX:+0X10000000000000000:0:15: ++%15lX:+0x10000000000000000:1:15:17592186044416: ++%*15lX:+0x10000000000000000:0:15: ++%15lX:+100000000028757b1:1:15:4503599627380853: ++%*15lX:+100000000028757b1:0:15: ++%15lX:+100000000028757B1:1:15:4503599627380853: ++%*15lX:+100000000028757B1:0:15: ++%15lX:+0X100000000028757b1:1:15:17592186044456: ++%*15lX:+0X100000000028757b1:0:15: ++%15lX:+0x100000000028757B1:1:15:17592186044456: ++%*15lX:+0x100000000028757B1:0:15: ++%25lX::0:-1: ++%*25lX::0:-1: ++%25lX:-7b:1:3:18446744073709551493: ++%*25lX:-7b:0:3: ++%25lX:-7B:1:3:18446744073709551493: ++%*25lX:-7B:0:3: ++%25lX:-0X7b:1:5:18446744073709551493: ++%*25lX:-0X7b:0:5: ++%25lX:-0x7B:1:5:18446744073709551493: ++%*25lX:-0x7B:0:5: ++%25lX:-1:1:2:18446744073709551615: ++%*25lX:-1:0:2: ++%25lX:-0X1:1:4:18446744073709551615: ++%*25lX:-0X1:0:4: ++%25lX:-0x1:1:4:18446744073709551615: ++%*25lX:-0x1:0:4: ++%25lX:-0:1:2:0: ++%*25lX:-0:0:2: ++%25lX:-0X0:1:4:0: ++%*25lX:-0X0:0:4: ++%25lX:-0x0:1:4:0: ++%*25lX:-0x0:0:4: ++%25lX:0:1:1:0: ++%*25lX:0:0:1: ++%25lX:0X0:1:3:0: ++%*25lX:0X0:0:3: ++%25lX:0x0:1:3:0: ++%*25lX:0x0:0:3: ++%25lX:1:1:1:1: ++%*25lX:1:0:1: ++%25lX:0X1:1:3:1: ++%*25lX:0X1:0:3: ++%25lX:0x1:1:3:1: ++%*25lX:0x1:0:3: ++%25lX:2a:1:2:42: ++%*25lX:2a:0:2: ++%25lX:2A:1:2:42: ++%*25lX:2A:0:2: ++%25lX:0X2a:1:4:42: ++%*25lX:0X2a:0:4: ++%25lX:0x2A:1:4:42: ++%*25lX:0x2A:0:4: ++%25lX:ffffffffffffffff:1:16:18446744073709551615: ++%*25lX:ffffffffffffffff:0:16: ++%25lX:FFFFFFFFFFFFFFFF:1:16:18446744073709551615: ++%*25lX:FFFFFFFFFFFFFFFF:0:16: ++%25lX:0Xffffffffffffffff:1:18:18446744073709551615: ++%*25lX:0Xffffffffffffffff:0:18: ++%25lX:0xFFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25lX:0xFFFFFFFFFFFFFFFF:0:18: ++%25lX:10000000000000000:1:17:18446744073709551615: ++%*25lX:10000000000000000:0:17: ++%25lX:0X10000000000000000:1:19:18446744073709551615: ++%*25lX:0X10000000000000000:0:19: ++%25lX:0x10000000000000000:1:19:18446744073709551615: ++%*25lX:0x10000000000000000:0:19: ++%25lX:100000000028757b1:1:17:18446744073709551615: ++%*25lX:100000000028757b1:0:17: ++%25lX:100000000028757B1:1:17:18446744073709551615: ++%*25lX:100000000028757B1:0:17: ++%25lX:0X100000000028757b1:1:19:18446744073709551615: ++%*25lX:0X100000000028757b1:0:19: ++%25lX:0x100000000028757B1:1:19:18446744073709551615: ++%*25lX:0x100000000028757B1:0:19: ++%25lX:+0:1:2:0: ++%*25lX:+0:0:2: ++%25lX:+0X0:1:4:0: ++%*25lX:+0X0:0:4: ++%25lX:+0x0:1:4:0: ++%*25lX:+0x0:0:4: ++%25lX:+1:1:2:1: ++%*25lX:+1:0:2: ++%25lX:+0X1:1:4:1: ++%*25lX:+0X1:0:4: ++%25lX:+0x1:1:4:1: ++%*25lX:+0x1:0:4: ++%25lX:+2a:1:3:42: ++%*25lX:+2a:0:3: ++%25lX:+2A:1:3:42: ++%*25lX:+2A:0:3: ++%25lX:+0X2a:1:5:42: ++%*25lX:+0X2a:0:5: ++%25lX:+0x2A:1:5:42: ++%*25lX:+0x2A:0:5: ++%25lX:+ffffffffffffffff:1:17:18446744073709551615: ++%*25lX:+ffffffffffffffff:0:17: ++%25lX:+FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25lX:+FFFFFFFFFFFFFFFF:0:17: ++%25lX:+0Xffffffffffffffff:1:19:18446744073709551615: ++%*25lX:+0Xffffffffffffffff:0:19: ++%25lX:+0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25lX:+0xFFFFFFFFFFFFFFFF:0:19: ++%25lX:+10000000000000000:1:18:18446744073709551615: ++%*25lX:+10000000000000000:0:18: ++%25lX:+0X10000000000000000:1:20:18446744073709551615: ++%*25lX:+0X10000000000000000:0:20: ++%25lX:+0x10000000000000000:1:20:18446744073709551615: ++%*25lX:+0x10000000000000000:0:20: ++%25lX:+100000000028757b1:1:18:18446744073709551615: ++%*25lX:+100000000028757b1:0:18: ++%25lX:+100000000028757B1:1:18:18446744073709551615: ++%*25lX:+100000000028757B1:0:18: ++%25lX:+0X100000000028757b1:1:20:18446744073709551615: ++%*25lX:+0X100000000028757b1:0:20: ++%25lX:+0x100000000028757B1:1:20:18446744073709551615: ++%*25lX:+0x100000000028757B1:0:20: ++%2lX: :0:-1: ++%*2lX: :0:-1: ++%2lX: -7b:1:3:18446744073709551609: ++%*2lX: -7b:0:3: ++%2lX: -7B:1:3:18446744073709551609: ++%*2lX: -7B:0:3: ++%2lX: -0X7b:1:3:0: ++%*2lX: -0X7b:0:3: ++%2lX: -0x7B:1:3:0: ++%*2lX: -0x7B:0:3: ++%2lX: -1:1:3:18446744073709551615: ++%*2lX: -1:0:3: ++%2lX: -0X1:1:3:0: ++%*2lX: -0X1:0:3: ++%2lX: -0x1:1:3:0: ++%*2lX: -0x1:0:3: ++%2lX: -0:1:3:0: ++%*2lX: -0:0:3: ++%2lX: -0X0:1:3:0: ++%*2lX: -0X0:0:3: ++%2lX: -0x0:1:3:0: ++%*2lX: -0x0:0:3: ++%2lX: 0:1:2:0: ++%*2lX: 0:0:2: ++# BZ12701 %2lX: 0X0:0:-1: ++# BZ12701 %*2lX: 0X0:0:-1: ++# BZ12701 %2lX: 0x0:0:-1: ++# BZ12701 %*2lX: 0x0:0:-1: ++%2lX: 1:1:2:1: ++%*2lX: 1:0:2: ++# BZ12701 %2lX: 0X1:0:-1: ++# BZ12701 %*2lX: 0X1:0:-1: ++# BZ12701 %2lX: 0x1:0:-1: ++# BZ12701 %*2lX: 0x1:0:-1: ++%2lX: 2a:1:3:42: ++%*2lX: 2a:0:3: ++%2lX: 2A:1:3:42: ++%*2lX: 2A:0:3: ++# BZ12701 %2lX: 0X2a:0:-1: ++# BZ12701 %*2lX: 0X2a:0:-1: ++# BZ12701 %2lX: 0x2A:0:-1: ++# BZ12701 %*2lX: 0x2A:0:-1: ++%2lX: ffffffffffffffff:1:3:255: ++%*2lX: ffffffffffffffff:0:3: ++%2lX: FFFFFFFFFFFFFFFF:1:3:255: ++%*2lX: FFFFFFFFFFFFFFFF:0:3: ++# BZ12701 %2lX: 0Xffffffffffffffff:0:-1: ++# BZ12701 %*2lX: 0Xffffffffffffffff:0:-1: ++# BZ12701 %2lX: 0xFFFFFFFFFFFFFFFF:0:-1: ++# BZ12701 %*2lX: 0xFFFFFFFFFFFFFFFF:0:-1: ++%2lX: 10000000000000000:1:3:16: ++%*2lX: 10000000000000000:0:3: ++# BZ12701 %2lX: 0X10000000000000000:0:-1: ++# BZ12701 %*2lX: 0X10000000000000000:0:-1: ++# BZ12701 %2lX: 0x10000000000000000:0:-1: ++# BZ12701 %*2lX: 0x10000000000000000:0:-1: ++%2lX: 100000000028757b1:1:3:16: ++%*2lX: 100000000028757b1:0:3: ++%2lX: 100000000028757B1:1:3:16: ++%*2lX: 100000000028757B1:0:3: ++# BZ12701 %2lX: 0X100000000028757b1:0:-1: ++# BZ12701 %*2lX: 0X100000000028757b1:0:-1: ++# BZ12701 %2lX: 0x100000000028757B1:0:-1: ++# BZ12701 %*2lX: 0x100000000028757B1:0:-1: ++%2lX: +0:1:3:0: ++%*2lX: +0:0:3: ++%2lX: +0X0:1:3:0: ++%*2lX: +0X0:0:3: ++%2lX: +0x0:1:3:0: ++%*2lX: +0x0:0:3: ++%2lX: +1:1:3:1: ++%*2lX: +1:0:3: ++%2lX: +0X1:1:3:0: ++%*2lX: +0X1:0:3: ++%2lX: +0x1:1:3:0: ++%*2lX: +0x1:0:3: ++%2lX: +2a:1:3:2: ++%*2lX: +2a:0:3: ++%2lX: +2A:1:3:2: ++%*2lX: +2A:0:3: ++%2lX: +0X2a:1:3:0: ++%*2lX: +0X2a:0:3: ++%2lX: +0x2A:1:3:0: ++%*2lX: +0x2A:0:3: ++%2lX: +ffffffffffffffff:1:3:15: ++%*2lX: +ffffffffffffffff:0:3: ++%2lX: +FFFFFFFFFFFFFFFF:1:3:15: ++%*2lX: +FFFFFFFFFFFFFFFF:0:3: ++%2lX: +0Xffffffffffffffff:1:3:0: ++%*2lX: +0Xffffffffffffffff:0:3: ++%2lX: +0xFFFFFFFFFFFFFFFF:1:3:0: ++%*2lX: +0xFFFFFFFFFFFFFFFF:0:3: ++%2lX: +10000000000000000:1:3:1: ++%*2lX: +10000000000000000:0:3: ++%2lX: +0X10000000000000000:1:3:0: ++%*2lX: +0X10000000000000000:0:3: ++%2lX: +0x10000000000000000:1:3:0: ++%*2lX: +0x10000000000000000:0:3: ++%2lX: +100000000028757b1:1:3:1: ++%*2lX: +100000000028757b1:0:3: ++%2lX: +100000000028757B1:1:3:1: ++%*2lX: +100000000028757B1:0:3: ++%2lX: +0X100000000028757b1:1:3:0: ++%*2lX: +0X100000000028757b1:0:3: ++%2lX: +0x100000000028757B1:1:3:0: ++%*2lX: +0x100000000028757B1:0:3: ++%25lX: :0:-1: ++%*25lX: :0:-1: ++%25lX: -7b:1:4:18446744073709551493: ++%*25lX: -7b:0:4: ++%25lX: -7B:1:4:18446744073709551493: ++%*25lX: -7B:0:4: ++%25lX: -0X7b:1:6:18446744073709551493: ++%*25lX: -0X7b:0:6: ++%25lX: -0x7B:1:6:18446744073709551493: ++%*25lX: -0x7B:0:6: ++%25lX: -1:1:3:18446744073709551615: ++%*25lX: -1:0:3: ++%25lX: -0X1:1:5:18446744073709551615: ++%*25lX: -0X1:0:5: ++%25lX: -0x1:1:5:18446744073709551615: ++%*25lX: -0x1:0:5: ++%25lX: -0:1:3:0: ++%*25lX: -0:0:3: ++%25lX: -0X0:1:5:0: ++%*25lX: -0X0:0:5: ++%25lX: -0x0:1:5:0: ++%*25lX: -0x0:0:5: ++%25lX: 0:1:2:0: ++%*25lX: 0:0:2: ++%25lX: 0X0:1:4:0: ++%*25lX: 0X0:0:4: ++%25lX: 0x0:1:4:0: ++%*25lX: 0x0:0:4: ++%25lX: 1:1:2:1: ++%*25lX: 1:0:2: ++%25lX: 0X1:1:4:1: ++%*25lX: 0X1:0:4: ++%25lX: 0x1:1:4:1: ++%*25lX: 0x1:0:4: ++%25lX: 2a:1:3:42: ++%*25lX: 2a:0:3: ++%25lX: 2A:1:3:42: ++%*25lX: 2A:0:3: ++%25lX: 0X2a:1:5:42: ++%*25lX: 0X2a:0:5: ++%25lX: 0x2A:1:5:42: ++%*25lX: 0x2A:0:5: ++%25lX: ffffffffffffffff:1:17:18446744073709551615: ++%*25lX: ffffffffffffffff:0:17: ++%25lX: FFFFFFFFFFFFFFFF:1:17:18446744073709551615: ++%*25lX: FFFFFFFFFFFFFFFF:0:17: ++%25lX: 0Xffffffffffffffff:1:19:18446744073709551615: ++%*25lX: 0Xffffffffffffffff:0:19: ++%25lX: 0xFFFFFFFFFFFFFFFF:1:19:18446744073709551615: ++%*25lX: 0xFFFFFFFFFFFFFFFF:0:19: ++%25lX: 10000000000000000:1:18:18446744073709551615: ++%*25lX: 10000000000000000:0:18: ++%25lX: 0X10000000000000000:1:20:18446744073709551615: ++%*25lX: 0X10000000000000000:0:20: ++%25lX: 0x10000000000000000:1:20:18446744073709551615: ++%*25lX: 0x10000000000000000:0:20: ++%25lX: 100000000028757b1:1:18:18446744073709551615: ++%*25lX: 100000000028757b1:0:18: ++%25lX: 100000000028757B1:1:18:18446744073709551615: ++%*25lX: 100000000028757B1:0:18: ++%25lX: 0X100000000028757b1:1:20:18446744073709551615: ++%*25lX: 0X100000000028757b1:0:20: ++%25lX: 0x100000000028757B1:1:20:18446744073709551615: ++%*25lX: 0x100000000028757B1:0:20: ++%25lX: +0:1:3:0: ++%*25lX: +0:0:3: ++%25lX: +0X0:1:5:0: ++%*25lX: +0X0:0:5: ++%25lX: +0x0:1:5:0: ++%*25lX: +0x0:0:5: ++%25lX: +1:1:3:1: ++%*25lX: +1:0:3: ++%25lX: +0X1:1:5:1: ++%*25lX: +0X1:0:5: ++%25lX: +0x1:1:5:1: ++%*25lX: +0x1:0:5: ++%25lX: +2a:1:4:42: ++%*25lX: +2a:0:4: ++%25lX: +2A:1:4:42: ++%*25lX: +2A:0:4: ++%25lX: +0X2a:1:6:42: ++%*25lX: +0X2a:0:6: ++%25lX: +0x2A:1:6:42: ++%*25lX: +0x2A:0:6: ++%25lX: +ffffffffffffffff:1:18:18446744073709551615: ++%*25lX: +ffffffffffffffff:0:18: ++%25lX: +FFFFFFFFFFFFFFFF:1:18:18446744073709551615: ++%*25lX: +FFFFFFFFFFFFFFFF:0:18: ++%25lX: +0Xffffffffffffffff:1:20:18446744073709551615: ++%*25lX: +0Xffffffffffffffff:0:20: ++%25lX: +0xFFFFFFFFFFFFFFFF:1:20:18446744073709551615: ++%*25lX: +0xFFFFFFFFFFFFFFFF:0:20: ++%25lX: +10000000000000000:1:19:18446744073709551615: ++%*25lX: +10000000000000000:0:19: ++%25lX: +0X10000000000000000:1:21:18446744073709551615: ++%*25lX: +0X10000000000000000:0:21: ++%25lX: +0x10000000000000000:1:21:18446744073709551615: ++%*25lX: +0x10000000000000000:0:21: ++%25lX: +100000000028757b1:1:19:18446744073709551615: ++%*25lX: +100000000028757b1:0:19: ++%25lX: +100000000028757B1:1:19:18446744073709551615: ++%*25lX: +100000000028757B1:0:19: ++%25lX: +0X100000000028757b1:1:21:18446744073709551615: ++%*25lX: +0X100000000028757b1:0:21: ++%25lX: +0x100000000028757B1:1:21:18446744073709551615: ++%*25lX: +0x100000000028757B1:0:21: diff --git a/glibc-RHEL-119433-4.patch b/glibc-RHEL-119433-4.patch new file mode 100644 index 0000000..7beb5ee --- /dev/null +++ b/glibc-RHEL-119433-4.patch @@ -0,0 +1,5032 @@ +commit 26df22636d5876352cbd53b8662173e461e1e220 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf float data for IEEE 754 binary32 format + + Add Makefile infrastructure and `float' real input data for targets + using the IEEE 754 binary32 format. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/ieee754/flt-32/Makefile b/sysdeps/ieee754/flt-32/Makefile +new file mode 100644 +index 0000000000000000..aaba9e9bc6904467 +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/Makefile +@@ -0,0 +1,3 @@ ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-real-convs += float ++endif +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input +new file mode 100644 +index 0000000000000000..196cb734b277653e +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-a.input +@@ -0,0 +1,682 @@ ++%a::0:-1: ++%*a::0:-1: ++%a:-infinity:1:9:-inf: ++%*a:-infinity:0:9: ++%a:-0xf.fffffp+124:1:15:-0x1.fffffep127: ++%*a:-0xf.fffffp+124:0:15: ++%a:-0x7.fffff8p125:1:15:-0x1.fffffep127: ++%*a:-0x7.fffff8p125:0:15: ++%a:-0x2.345678p+123:1:16:-0x1.1a2b3cp124: ++%*a:-0x2.345678p+123:0:16: ++%a:-0x2.345678p0123:1:16:-0x1.1a2b3cp124: ++%*a:-0x2.345678p0123:0:16: ++%a:-0x8p-129:1:9:-0x1p-126: ++%*a:-0x8p-129:0:9: ++%a:-0x0p+0:1:7:-0x0: ++%*a:-0x0p+0:0:7: ++%a:-0x0p0:1:6:-0x0: ++%*a:-0x0p0:0:6: ++%a:-nan(09A_Zaz):1:13:-nan: ++%*a:-nan(09A_Zaz):0:13: ++%a:-nan():1:6:-nan: ++%*a:-nan():0:6: ++%a:nan():1:5:nan: ++%*a:nan():0:5: ++%a:nan(09A_Zaz):1:12:nan: ++%*a:nan(09A_Zaz):0:12: ++%a:0x0p0:1:5:0x0: ++%*a:0x0p0:0:5: ++%a:0x0p+0:1:6:0x0: ++%*a:0x0p+0:0:6: ++%a:0x8p-129:1:8:0x1p-126: ++%*a:0x8p-129:0:8: ++%a:0x2.345678p0123:1:15:0x1.1a2b3cp124: ++%*a:0x2.345678p0123:0:15: ++%a:0x2.345678p+123:1:15:0x1.1a2b3cp124: ++%*a:0x2.345678p+123:0:15: ++%a:0x7.fffff8p125:1:14:0x1.fffffep127: ++%*a:0x7.fffff8p125:0:14: ++%a:0xf.fffffp+124:1:14:0x1.fffffep127: ++%*a:0xf.fffffp+124:0:14: ++%a:infinity:1:8:inf: ++%*a:infinity:0:8: ++%a:+nan():1:6:nan: ++%*a:+nan():0:6: ++%a:+nan(09A_Zaz):1:13:nan: ++%*a:+nan(09A_Zaz):0:13: ++%a:+0x0p0:1:6:0x0: ++%*a:+0x0p0:0:6: ++%a:+0x0p+0:1:7:0x0: ++%*a:+0x0p+0:0:7: ++%a:+0x8p-129:1:9:0x1p-126: ++%*a:+0x8p-129:0:9: ++%a:+0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*a:+0x2.345678p0123:0:16: ++%a:+0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*a:+0x2.345678p+123:0:16: ++%a:+0x7.fffff8p125:1:15:0x1.fffffep127: ++%*a:+0x7.fffff8p125:0:15: ++%a:+0xf.fffffp+124:1:15:0x1.fffffep127: ++%*a:+0xf.fffffp+124:0:15: ++%a:+infinity:1:9:inf: ++%*a:+infinity:0:9: ++%1a::0:-1: ++%*1a::0:-1: ++%1a:-infinity:0:-1: ++%*1a:-infinity:0:-1: ++%1a:-0xf.fffffp+124:0:-1: ++%*1a:-0xf.fffffp+124:0:-1: ++%1a:-0x7.fffff8p125:0:-1: ++%*1a:-0x7.fffff8p125:0:-1: ++%1a:-0x2.345678p+123:0:-1: ++%*1a:-0x2.345678p+123:0:-1: ++%1a:-0x2.345678p0123:0:-1: ++%*1a:-0x2.345678p0123:0:-1: ++%1a:-0x8p-129:0:-1: ++%*1a:-0x8p-129:0:-1: ++%1a:-0x0p+0:0:-1: ++%*1a:-0x0p+0:0:-1: ++%1a:-0x0p0:0:-1: ++%*1a:-0x0p0:0:-1: ++%1a:-nan(09A_Zaz):0:-1: ++%*1a:-nan(09A_Zaz):0:-1: ++%1a:-nan():0:-1: ++%*1a:-nan():0:-1: ++%1a:nan():0:-1: ++%*1a:nan():0:-1: ++%1a:nan(09A_Zaz):0:-1: ++%*1a:nan(09A_Zaz):0:-1: ++%1a:0x0p0:1:1:0x0: ++%*1a:0x0p0:0:1: ++%1a:0x0p+0:1:1:0x0: ++%*1a:0x0p+0:0:1: ++%1a:0x8p-129:1:1:0x0: ++%*1a:0x8p-129:0:1: ++%1a:0x2.345678p0123:1:1:0x0: ++%*1a:0x2.345678p0123:0:1: ++%1a:0x2.345678p+123:1:1:0x0: ++%*1a:0x2.345678p+123:0:1: ++%1a:0x7.fffff8p125:1:1:0x0: ++%*1a:0x7.fffff8p125:0:1: ++%1a:0xf.fffffp+124:1:1:0x0: ++%*1a:0xf.fffffp+124:0:1: ++%1a:infinity:0:-1: ++%*1a:infinity:0:-1: ++%1a:+nan():0:-1: ++%*1a:+nan():0:-1: ++%1a:+nan(09A_Zaz):0:-1: ++%*1a:+nan(09A_Zaz):0:-1: ++%1a:+0x0p0:0:-1: ++%*1a:+0x0p0:0:-1: ++%1a:+0x0p+0:0:-1: ++%*1a:+0x0p+0:0:-1: ++%1a:+0x8p-129:0:-1: ++%*1a:+0x8p-129:0:-1: ++%1a:+0x2.345678p0123:0:-1: ++%*1a:+0x2.345678p0123:0:-1: ++%1a:+0x2.345678p+123:0:-1: ++%*1a:+0x2.345678p+123:0:-1: ++%1a:+0x7.fffff8p125:0:-1: ++%*1a:+0x7.fffff8p125:0:-1: ++%1a:+0xf.fffffp+124:0:-1: ++%*1a:+0xf.fffffp+124:0:-1: ++%1a:+infinity:0:-1: ++%*1a:+infinity:0:-1: ++%2a::0:-1: ++%*2a::0:-1: ++%2a:-infinity:0:-1: ++%*2a:-infinity:0:-1: ++%2a:-0xf.fffffp+124:1:2:-0x0: ++%*2a:-0xf.fffffp+124:0:2: ++%2a:-0x7.fffff8p125:1:2:-0x0: ++%*2a:-0x7.fffff8p125:0:2: ++%2a:-0x2.345678p+123:1:2:-0x0: ++%*2a:-0x2.345678p+123:0:2: ++%2a:-0x2.345678p0123:1:2:-0x0: ++%*2a:-0x2.345678p0123:0:2: ++%2a:-0x8p-129:1:2:-0x0: ++%*2a:-0x8p-129:0:2: ++%2a:-0x0p+0:1:2:-0x0: ++%*2a:-0x0p+0:0:2: ++%2a:-0x0p0:1:2:-0x0: ++%*2a:-0x0p0:0:2: ++%2a:-nan(09A_Zaz):0:-1: ++%*2a:-nan(09A_Zaz):0:-1: ++%2a:-nan():0:-1: ++%*2a:-nan():0:-1: ++%2a:nan():0:-1: ++%*2a:nan():0:-1: ++%2a:nan(09A_Zaz):0:-1: ++%*2a:nan(09A_Zaz):0:-1: ++# BZ12701 %2a:0x0p0:0:-1: ++# BZ12701 %*2a:0x0p0:0:-1: ++# BZ12701 %2a:0x0p+0:0:-1: ++# BZ12701 %*2a:0x0p+0:0:-1: ++# BZ12701 %2a:0x8p-129:0:-1: ++# BZ12701 %*2a:0x8p-129:0:-1: ++# BZ12701 %2a:0x2.345678p0123:0:-1: ++# BZ12701 %*2a:0x2.345678p0123:0:-1: ++# BZ12701 %2a:0x2.345678p+123:0:-1: ++# BZ12701 %*2a:0x2.345678p+123:0:-1: ++# BZ12701 %2a:0x7.fffff8p125:0:-1: ++# BZ12701 %*2a:0x7.fffff8p125:0:-1: ++# BZ12701 %2a:0xf.fffffp+124:0:-1: ++# BZ12701 %*2a:0xf.fffffp+124:0:-1: ++%2a:infinity:0:-1: ++%*2a:infinity:0:-1: ++%2a:+nan():0:-1: ++%*2a:+nan():0:-1: ++%2a:+nan(09A_Zaz):0:-1: ++%*2a:+nan(09A_Zaz):0:-1: ++%2a:+0x0p0:1:2:0x0: ++%*2a:+0x0p0:0:2: ++%2a:+0x0p+0:1:2:0x0: ++%*2a:+0x0p+0:0:2: ++%2a:+0x8p-129:1:2:0x0: ++%*2a:+0x8p-129:0:2: ++%2a:+0x2.345678p0123:1:2:0x0: ++%*2a:+0x2.345678p0123:0:2: ++%2a:+0x2.345678p+123:1:2:0x0: ++%*2a:+0x2.345678p+123:0:2: ++%2a:+0x7.fffff8p125:1:2:0x0: ++%*2a:+0x7.fffff8p125:0:2: ++%2a:+0xf.fffffp+124:1:2:0x0: ++%*2a:+0xf.fffffp+124:0:2: ++%2a:+infinity:0:-1: ++%*2a:+infinity:0:-1: ++%3a::0:-1: ++%*3a::0:-1: ++%3a:-infinity:0:-1: ++%*3a:-infinity:0:-1: ++# BZ12701 %3a:-0xf.fffffp+124:0:-1: ++# BZ12701 %*3a:-0xf.fffffp+124:0:-1: ++# BZ12701 %3a:-0x7.fffff8p125:0:-1: ++# BZ12701 %*3a:-0x7.fffff8p125:0:-1: ++# BZ12701 %3a:-0x2.345678p+123:0:-1: ++# BZ12701 %*3a:-0x2.345678p+123:0:-1: ++# BZ12701 %3a:-0x2.345678p0123:0:-1: ++# BZ12701 %*3a:-0x2.345678p0123:0:-1: ++# BZ12701 %3a:-0x8p-129:0:-1: ++# BZ12701 %*3a:-0x8p-129:0:-1: ++# BZ12701 %3a:-0x0p+0:0:-1: ++# BZ12701 %*3a:-0x0p+0:0:-1: ++# BZ12701 %3a:-0x0p0:0:-1: ++# BZ12701 %*3a:-0x0p0:0:-1: ++%3a:-nan(09A_Zaz):0:-1: ++%*3a:-nan(09A_Zaz):0:-1: ++%3a:-nan():0:-1: ++%*3a:-nan():0:-1: ++%3a:nan():1:3:nan: ++%*3a:nan():0:3: ++%3a:nan(09A_Zaz):1:3:nan: ++%*3a:nan(09A_Zaz):0:3: ++%3a:0x0p0:1:3:0x0: ++%*3a:0x0p0:0:3: ++%3a:0x0p+0:1:3:0x0: ++%*3a:0x0p+0:0:3: ++%3a:0x8p-129:1:3:0x1p3: ++%*3a:0x8p-129:0:3: ++%3a:0x2.345678p0123:1:3:0x1p1: ++%*3a:0x2.345678p0123:0:3: ++%3a:0x2.345678p+123:1:3:0x1p1: ++%*3a:0x2.345678p+123:0:3: ++%3a:0x7.fffff8p125:1:3:0x1.cp2: ++%*3a:0x7.fffff8p125:0:3: ++%3a:0xf.fffffp+124:1:3:0x1.ep3: ++%*3a:0xf.fffffp+124:0:3: ++%3a:infinity:1:3:inf: ++%*3a:infinity:0:3: ++%3a:+nan():0:-1: ++%*3a:+nan():0:-1: ++%3a:+nan(09A_Zaz):0:-1: ++%*3a:+nan(09A_Zaz):0:-1: ++# BZ12701 %3a:+0x0p0:0:-1: ++# BZ12701 %*3a:+0x0p0:0:-1: ++# BZ12701 %3a:+0x0p+0:0:-1: ++# BZ12701 %*3a:+0x0p+0:0:-1: ++# BZ12701 %3a:+0x8p-129:0:-1: ++# BZ12701 %*3a:+0x8p-129:0:-1: ++# BZ12701 %3a:+0x2.345678p0123:0:-1: ++# BZ12701 %*3a:+0x2.345678p0123:0:-1: ++# BZ12701 %3a:+0x2.345678p+123:0:-1: ++# BZ12701 %*3a:+0x2.345678p+123:0:-1: ++# BZ12701 %3a:+0x7.fffff8p125:0:-1: ++# BZ12701 %*3a:+0x7.fffff8p125:0:-1: ++# BZ12701 %3a:+0xf.fffffp+124:0:-1: ++# BZ12701 %*3a:+0xf.fffffp+124:0:-1: ++%3a:+infinity:0:-1: ++%*3a:+infinity:0:-1: ++%4a::0:-1: ++%*4a::0:-1: ++%4a:-infinity:1:4:-inf: ++%*4a:-infinity:0:4: ++%4a:-0xf.fffffp+124:1:4:-0x1.ep3: ++%*4a:-0xf.fffffp+124:0:4: ++%4a:-0x7.fffff8p125:1:4:-0x1.cp2: ++%*4a:-0x7.fffff8p125:0:4: ++%4a:-0x2.345678p+123:1:4:-0x1p1: ++%*4a:-0x2.345678p+123:0:4: ++%4a:-0x2.345678p0123:1:4:-0x1p1: ++%*4a:-0x2.345678p0123:0:4: ++%4a:-0x8p-129:1:4:-0x1p3: ++%*4a:-0x8p-129:0:4: ++%4a:-0x0p+0:1:4:-0x0: ++%*4a:-0x0p+0:0:4: ++%4a:-0x0p0:1:4:-0x0: ++%*4a:-0x0p0:0:4: ++%4a:-nan(09A_Zaz):1:4:-nan: ++%*4a:-nan(09A_Zaz):0:4: ++%4a:-nan():1:4:-nan: ++%*4a:-nan():0:4: ++%4a:nan():0:-1: ++%*4a:nan():0:-1: ++%4a:nan(09A_Zaz):0:-1: ++%*4a:nan(09A_Zaz):0:-1: ++# BZ12701 %4a:0x0p0:0:-1: ++# BZ12701 %*4a:0x0p0:0:-1: ++# BZ12701 %4a:0x0p+0:0:-1: ++# BZ12701 %*4a:0x0p+0:0:-1: ++# BZ12701 %4a:0x8p-129:0:-1: ++# BZ12701 %*4a:0x8p-129:0:-1: ++%4a:0x2.345678p0123:1:4:0x1p1: ++%*4a:0x2.345678p0123:0:4: ++%4a:0x2.345678p+123:1:4:0x1p1: ++%*4a:0x2.345678p+123:0:4: ++%4a:0x7.fffff8p125:1:4:0x1.cp2: ++%*4a:0x7.fffff8p125:0:4: ++%4a:0xf.fffffp+124:1:4:0x1.ep3: ++%*4a:0xf.fffffp+124:0:4: ++%4a:infinity:0:-1: ++%*4a:infinity:0:-1: ++%4a:+nan():1:4:nan: ++%*4a:+nan():0:4: ++%4a:+nan(09A_Zaz):1:4:nan: ++%*4a:+nan(09A_Zaz):0:4: ++%4a:+0x0p0:1:4:0x0: ++%*4a:+0x0p0:0:4: ++%4a:+0x0p+0:1:4:0x0: ++%*4a:+0x0p+0:0:4: ++%4a:+0x8p-129:1:4:0x1p3: ++%*4a:+0x8p-129:0:4: ++%4a:+0x2.345678p0123:1:4:0x1p1: ++%*4a:+0x2.345678p0123:0:4: ++%4a:+0x2.345678p+123:1:4:0x1p1: ++%*4a:+0x2.345678p+123:0:4: ++%4a:+0x7.fffff8p125:1:4:0x1.cp2: ++%*4a:+0x7.fffff8p125:0:4: ++%4a:+0xf.fffffp+124:1:4:0x1.ep3: ++%*4a:+0xf.fffffp+124:0:4: ++%4a:+infinity:1:4:inf: ++%*4a:+infinity:0:4: ++%5a::0:-1: ++%*5a::0:-1: ++%5a:-infinity:0:-1: ++%*5a:-infinity:0:-1: ++%5a:-0xf.fffffp+124:1:5:-0x1.ep3: ++%*5a:-0xf.fffffp+124:0:5: ++%5a:-0x7.fffff8p125:1:5:-0x1.cp2: ++%*5a:-0x7.fffff8p125:0:5: ++%5a:-0x2.345678p+123:1:5:-0x1p1: ++%*5a:-0x2.345678p+123:0:5: ++%5a:-0x2.345678p0123:1:5:-0x1p1: ++%*5a:-0x2.345678p0123:0:5: ++# BZ12701 %5a:-0x8p-129:0:-1: ++# BZ12701 %*5a:-0x8p-129:0:-1: ++# BZ12701 %5a:-0x0p+0:0:-1: ++# BZ12701 %*5a:-0x0p+0:0:-1: ++# BZ12701 %5a:-0x0p0:0:-1: ++# BZ12701 %*5a:-0x0p0:0:-1: ++%5a:-nan(09A_Zaz):0:-1: ++%*5a:-nan(09A_Zaz):0:-1: ++%5a:-nan():0:-1: ++%*5a:-nan():0:-1: ++%5a:nan():1:5:nan: ++%*5a:nan():0:5: ++%5a:nan(09A_Zaz):0:-1: ++%*5a:nan(09A_Zaz):0:-1: ++%5a:0x0p0:1:5:0x0: ++%*5a:0x0p0:0:5: ++# BZ12701 %5a:0x0p+0:0:-1: ++# BZ12701 %*5a:0x0p+0:0:-1: ++# BZ12701 %5a:0x8p-129:0:-1: ++# BZ12701 %*5a:0x8p-129:0:-1: ++%5a:0x2.345678p0123:1:5:0x1.18p1: ++%*5a:0x2.345678p0123:0:5: ++%5a:0x2.345678p+123:1:5:0x1.18p1: ++%*5a:0x2.345678p+123:0:5: ++%5a:0x7.fffff8p125:1:5:0x1.fcp2: ++%*5a:0x7.fffff8p125:0:5: ++%5a:0xf.fffffp+124:1:5:0x1.fep3: ++%*5a:0xf.fffffp+124:0:5: ++%5a:infinity:0:-1: ++%*5a:infinity:0:-1: ++%5a:+nan():0:-1: ++%*5a:+nan():0:-1: ++%5a:+nan(09A_Zaz):0:-1: ++%*5a:+nan(09A_Zaz):0:-1: ++# BZ12701 %5a:+0x0p0:0:-1: ++# BZ12701 %*5a:+0x0p0:0:-1: ++# BZ12701 %5a:+0x0p+0:0:-1: ++# BZ12701 %*5a:+0x0p+0:0:-1: ++# BZ12701 %5a:+0x8p-129:0:-1: ++# BZ12701 %*5a:+0x8p-129:0:-1: ++%5a:+0x2.345678p0123:1:5:0x1p1: ++%*5a:+0x2.345678p0123:0:5: ++%5a:+0x2.345678p+123:1:5:0x1p1: ++%*5a:+0x2.345678p+123:0:5: ++%5a:+0x7.fffff8p125:1:5:0x1.cp2: ++%*5a:+0x7.fffff8p125:0:5: ++%5a:+0xf.fffffp+124:1:5:0x1.ep3: ++%*5a:+0xf.fffffp+124:0:5: ++%5a:+infinity:0:-1: ++%*5a:+infinity:0:-1: ++%6a::0:-1: ++%*6a::0:-1: ++%6a:-infinity:0:-1: ++%*6a:-infinity:0:-1: ++%6a:-0xf.fffffp+124:1:6:-0x1.fep3: ++%*6a:-0xf.fffffp+124:0:6: ++%6a:-0x7.fffff8p125:1:6:-0x1.fcp2: ++%*6a:-0x7.fffff8p125:0:6: ++%6a:-0x2.345678p+123:1:6:-0x1.18p1: ++%*6a:-0x2.345678p+123:0:6: ++%6a:-0x2.345678p0123:1:6:-0x1.18p1: ++%*6a:-0x2.345678p0123:0:6: ++# BZ12701 %6a:-0x8p-129:0:-1: ++# BZ12701 %*6a:-0x8p-129:0:-1: ++# BZ12701 %6a:-0x0p+0:0:-1: ++# BZ12701 %*6a:-0x0p+0:0:-1: ++%6a:-0x0p0:1:6:-0x0: ++%*6a:-0x0p0:0:6: ++%6a:-nan(09A_Zaz):0:-1: ++%*6a:-nan(09A_Zaz):0:-1: ++%6a:-nan():1:6:-nan: ++%*6a:-nan():0:6: ++%6a:nan():1:5:nan: ++%*6a:nan():0:5: ++%6a:nan(09A_Zaz):0:-1: ++%*6a:nan(09A_Zaz):0:-1: ++%6a:0x0p0:1:5:0x0: ++%*6a:0x0p0:0:5: ++%6a:0x0p+0:1:6:0x0: ++%*6a:0x0p+0:0:6: ++%6a:0x8p-129:1:6:0x1p2: ++%*6a:0x8p-129:0:6: ++%6a:0x2.345678p0123:1:6:0x1.1ap1: ++%*6a:0x2.345678p0123:0:6: ++%6a:0x2.345678p+123:1:6:0x1.1ap1: ++%*6a:0x2.345678p+123:0:6: ++%6a:0x7.fffff8p125:1:6:0x1.ffcp2: ++%*6a:0x7.fffff8p125:0:6: ++%6a:0xf.fffffp+124:1:6:0x1.ffep3: ++%*6a:0xf.fffffp+124:0:6: ++%6a:infinity:0:-1: ++%*6a:infinity:0:-1: ++%6a:+nan():1:6:nan: ++%*6a:+nan():0:6: ++%6a:+nan(09A_Zaz):0:-1: ++%*6a:+nan(09A_Zaz):0:-1: ++%6a:+0x0p0:1:6:0x0: ++%*6a:+0x0p0:0:6: ++# BZ12701 %6a:+0x0p+0:0:-1: ++# BZ12701 %*6a:+0x0p+0:0:-1: ++# BZ12701 %6a:+0x8p-129:0:-1: ++# BZ12701 %*6a:+0x8p-129:0:-1: ++%6a:+0x2.345678p0123:1:6:0x1.18p1: ++%*6a:+0x2.345678p0123:0:6: ++%6a:+0x2.345678p+123:1:6:0x1.18p1: ++%*6a:+0x2.345678p+123:0:6: ++%6a:+0x7.fffff8p125:1:6:0x1.fcp2: ++%*6a:+0x7.fffff8p125:0:6: ++%6a:+0xf.fffffp+124:1:6:0x1.fep3: ++%*6a:+0xf.fffffp+124:0:6: ++%6a:+infinity:0:-1: ++%*6a:+infinity:0:-1: ++%12a::0:-1: ++%*12a::0:-1: ++%12a:-infinity:1:9:-inf: ++%*12a:-infinity:0:9: ++# BZ12701 %12a:-0xf.fffffp+124:0:-1: ++# BZ12701 %*12a:-0xf.fffffp+124:0:-1: ++# BZ12701 %12a:-0x7.fffff8p125:0:-1: ++# BZ12701 %*12a:-0x7.fffff8p125:0:-1: ++# BZ12701 %12a:-0x2.345678p+123:0:-1: ++# BZ12701 %*12a:-0x2.345678p+123:0:-1: ++# BZ12701 %12a:-0x2.345678p0123:0:-1: ++# BZ12701 %*12a:-0x2.345678p0123:0:-1: ++%12a:-0x8p-129:1:9:-0x1p-126: ++%*12a:-0x8p-129:0:9: ++%12a:-0x0p+0:1:7:-0x0: ++%*12a:-0x0p+0:0:7: ++%12a:-0x0p0:1:6:-0x0: ++%*12a:-0x0p0:0:6: ++%12a:-nan(09A_Zaz):0:-1: ++%*12a:-nan(09A_Zaz):0:-1: ++%12a:-nan():1:6:-nan: ++%*12a:-nan():0:6: ++%12a:nan():1:5:nan: ++%*12a:nan():0:5: ++%12a:nan(09A_Zaz):1:12:nan: ++%*12a:nan(09A_Zaz):0:12: ++%12a:0x0p0:1:5:0x0: ++%*12a:0x0p0:0:5: ++%12a:0x0p+0:1:6:0x0: ++%*12a:0x0p+0:0:6: ++%12a:0x8p-129:1:8:0x1p-126: ++%*12a:0x8p-129:0:8: ++%12a:0x2.345678p0123:1:12:0x1.1a2b3cp1: ++%*12a:0x2.345678p0123:0:12: ++# BZ12701 %12a:0x2.345678p+123:0:-1: ++# BZ12701 %*12a:0x2.345678p+123:0:-1: ++%12a:0x7.fffff8p125:1:12:0x1.fffffep3: ++%*12a:0x7.fffff8p125:0:12: ++%12a:0xf.fffffp+124:1:12:0x1.fffffep4: ++%*12a:0xf.fffffp+124:0:12: ++%12a:infinity:1:8:inf: ++%*12a:infinity:0:8: ++%12a:+nan():1:6:nan: ++%*12a:+nan():0:6: ++%12a:+nan(09A_Zaz):0:-1: ++%*12a:+nan(09A_Zaz):0:-1: ++%12a:+0x0p0:1:6:0x0: ++%*12a:+0x0p0:0:6: ++%12a:+0x0p+0:1:7:0x0: ++%*12a:+0x0p+0:0:7: ++%12a:+0x8p-129:1:9:0x1p-126: ++%*12a:+0x8p-129:0:9: ++# BZ12701 %12a:+0x2.345678p0123:0:-1: ++# BZ12701 %*12a:+0x2.345678p0123:0:-1: ++# BZ12701 %12a:+0x2.345678p+123:0:-1: ++# BZ12701 %*12a:+0x2.345678p+123:0:-1: ++# BZ12701 %12a:+0x7.fffff8p125:0:-1: ++# BZ12701 %*12a:+0x7.fffff8p125:0:-1: ++# BZ12701 %12a:+0xf.fffffp+124:0:-1: ++# BZ12701 %*12a:+0xf.fffffp+124:0:-1: ++%12a:+infinity:1:9:inf: ++%*12a:+infinity:0:9: ++%18a::0:-1: ++%*18a::0:-1: ++%18a:-infinity:1:9:-inf: ++%*18a:-infinity:0:9: ++%18a:-0xf.fffffp+124:1:15:-0x1.fffffep127: ++%*18a:-0xf.fffffp+124:0:15: ++%18a:-0x7.fffff8p125:1:15:-0x1.fffffep127: ++%*18a:-0x7.fffff8p125:0:15: ++%18a:-0x2.345678p+123:1:16:-0x1.1a2b3cp124: ++%*18a:-0x2.345678p+123:0:16: ++%18a:-0x2.345678p0123:1:16:-0x1.1a2b3cp124: ++%*18a:-0x2.345678p0123:0:16: ++%18a:-0x8p-129:1:9:-0x1p-126: ++%*18a:-0x8p-129:0:9: ++%18a:-0x0p+0:1:7:-0x0: ++%*18a:-0x0p+0:0:7: ++%18a:-0x0p0:1:6:-0x0: ++%*18a:-0x0p0:0:6: ++%18a:-nan(09A_Zaz):1:13:-nan: ++%*18a:-nan(09A_Zaz):0:13: ++%18a:-nan():1:6:-nan: ++%*18a:-nan():0:6: ++%18a:nan():1:5:nan: ++%*18a:nan():0:5: ++%18a:nan(09A_Zaz):1:12:nan: ++%*18a:nan(09A_Zaz):0:12: ++%18a:0x0p0:1:5:0x0: ++%*18a:0x0p0:0:5: ++%18a:0x0p+0:1:6:0x0: ++%*18a:0x0p+0:0:6: ++%18a:0x8p-129:1:8:0x1p-126: ++%*18a:0x8p-129:0:8: ++%18a:0x2.345678p0123:1:15:0x1.1a2b3cp124: ++%*18a:0x2.345678p0123:0:15: ++%18a:0x2.345678p+123:1:15:0x1.1a2b3cp124: ++%*18a:0x2.345678p+123:0:15: ++%18a:0x7.fffff8p125:1:14:0x1.fffffep127: ++%*18a:0x7.fffff8p125:0:14: ++%18a:0xf.fffffp+124:1:14:0x1.fffffep127: ++%*18a:0xf.fffffp+124:0:14: ++%18a:infinity:1:8:inf: ++%*18a:infinity:0:8: ++%18a:+nan():1:6:nan: ++%*18a:+nan():0:6: ++%18a:+nan(09A_Zaz):1:13:nan: ++%*18a:+nan(09A_Zaz):0:13: ++%18a:+0x0p0:1:6:0x0: ++%*18a:+0x0p0:0:6: ++%18a:+0x0p+0:1:7:0x0: ++%*18a:+0x0p+0:0:7: ++%18a:+0x8p-129:1:9:0x1p-126: ++%*18a:+0x8p-129:0:9: ++%18a:+0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*18a:+0x2.345678p0123:0:16: ++%18a:+0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*18a:+0x2.345678p+123:0:16: ++%18a:+0x7.fffff8p125:1:15:0x1.fffffep127: ++%*18a:+0x7.fffff8p125:0:15: ++%18a:+0xf.fffffp+124:1:15:0x1.fffffep127: ++%*18a:+0xf.fffffp+124:0:15: ++%18a:+infinity:1:9:inf: ++%*18a:+infinity:0:9: ++%5a: :0:-1: ++%*5a: :0:-1: ++%5a: -infinity:0:-1: ++%*5a: -infinity:0:-1: ++%5a: -0xf.fffffp+124:1:6:-0x1.ep3: ++%*5a: -0xf.fffffp+124:0:6: ++%5a: -0x7.fffff8p125:1:6:-0x1.cp2: ++%*5a: -0x7.fffff8p125:0:6: ++%5a: -0x2.345678p+123:1:6:-0x1p1: ++%*5a: -0x2.345678p+123:0:6: ++%5a: -0x2.345678p0123:1:6:-0x1p1: ++%*5a: -0x2.345678p0123:0:6: ++# BZ12701 %5a: -0x8p-129:0:-1: ++# BZ12701 %*5a: -0x8p-129:0:-1: ++# BZ12701 %5a: -0x0p+0:0:-1: ++# BZ12701 %*5a: -0x0p+0:0:-1: ++# BZ12701 %5a: -0x0p0:0:-1: ++# BZ12701 %*5a: -0x0p0:0:-1: ++%5a: -nan(09A_Zaz):0:-1: ++%*5a: -nan(09A_Zaz):0:-1: ++%5a: -nan():0:-1: ++%*5a: -nan():0:-1: ++%5a: nan():1:6:nan: ++%*5a: nan():0:6: ++%5a: nan(09A_Zaz):0:-1: ++%*5a: nan(09A_Zaz):0:-1: ++%5a: 0x0p0:1:6:0x0: ++%*5a: 0x0p0:0:6: ++# BZ12701 %5a: 0x0p+0:0:-1: ++# BZ12701 %*5a: 0x0p+0:0:-1: ++# BZ12701 %5a: 0x8p-129:0:-1: ++# BZ12701 %*5a: 0x8p-129:0:-1: ++%5a: 0x2.345678p0123:1:6:0x1.18p1: ++%*5a: 0x2.345678p0123:0:6: ++%5a: 0x2.345678p+123:1:6:0x1.18p1: ++%*5a: 0x2.345678p+123:0:6: ++%5a: 0x7.fffff8p125:1:6:0x1.fcp2: ++%*5a: 0x7.fffff8p125:0:6: ++%5a: 0xf.fffffp+124:1:6:0x1.fep3: ++%*5a: 0xf.fffffp+124:0:6: ++%5a: infinity:0:-1: ++%*5a: infinity:0:-1: ++%5a: +nan():0:-1: ++%*5a: +nan():0:-1: ++%5a: +nan(09A_Zaz):0:-1: ++%*5a: +nan(09A_Zaz):0:-1: ++# BZ12701 %5a: +0x0p0:0:-1: ++# BZ12701 %*5a: +0x0p0:0:-1: ++# BZ12701 %5a: +0x0p+0:0:-1: ++# BZ12701 %*5a: +0x0p+0:0:-1: ++# BZ12701 %5a: +0x8p-129:0:-1: ++# BZ12701 %*5a: +0x8p-129:0:-1: ++%5a: +0x2.345678p0123:1:6:0x1p1: ++%*5a: +0x2.345678p0123:0:6: ++%5a: +0x2.345678p+123:1:6:0x1p1: ++%*5a: +0x2.345678p+123:0:6: ++%5a: +0x7.fffff8p125:1:6:0x1.cp2: ++%*5a: +0x7.fffff8p125:0:6: ++%5a: +0xf.fffffp+124:1:6:0x1.ep3: ++%*5a: +0xf.fffffp+124:0:6: ++%5a: +infinity:0:-1: ++%*5a: +infinity:0:-1: ++%18a: :0:-1: ++%*18a: :0:-1: ++%18a: -infinity:1:10:-inf: ++%*18a: -infinity:0:10: ++%18a: -0xf.fffffp+124:1:16:-0x1.fffffep127: ++%*18a: -0xf.fffffp+124:0:16: ++%18a: -0x7.fffff8p125:1:16:-0x1.fffffep127: ++%*18a: -0x7.fffff8p125:0:16: ++%18a: -0x2.345678p+123:1:17:-0x1.1a2b3cp124: ++%*18a: -0x2.345678p+123:0:17: ++%18a: -0x2.345678p0123:1:17:-0x1.1a2b3cp124: ++%*18a: -0x2.345678p0123:0:17: ++%18a: -0x8p-129:1:10:-0x1p-126: ++%*18a: -0x8p-129:0:10: ++%18a: -0x0p+0:1:8:-0x0: ++%*18a: -0x0p+0:0:8: ++%18a: -0x0p0:1:7:-0x0: ++%*18a: -0x0p0:0:7: ++%18a: -nan(09A_Zaz):1:14:-nan: ++%*18a: -nan(09A_Zaz):0:14: ++%18a: -nan():1:7:-nan: ++%*18a: -nan():0:7: ++%18a: nan():1:6:nan: ++%*18a: nan():0:6: ++%18a: nan(09A_Zaz):1:13:nan: ++%*18a: nan(09A_Zaz):0:13: ++%18a: 0x0p0:1:6:0x0: ++%*18a: 0x0p0:0:6: ++%18a: 0x0p+0:1:7:0x0: ++%*18a: 0x0p+0:0:7: ++%18a: 0x8p-129:1:9:0x1p-126: ++%*18a: 0x8p-129:0:9: ++%18a: 0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*18a: 0x2.345678p0123:0:16: ++%18a: 0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*18a: 0x2.345678p+123:0:16: ++%18a: 0x7.fffff8p125:1:15:0x1.fffffep127: ++%*18a: 0x7.fffff8p125:0:15: ++%18a: 0xf.fffffp+124:1:15:0x1.fffffep127: ++%*18a: 0xf.fffffp+124:0:15: ++%18a: infinity:1:9:inf: ++%*18a: infinity:0:9: ++%18a: +nan():1:7:nan: ++%*18a: +nan():0:7: ++%18a: +nan(09A_Zaz):1:14:nan: ++%*18a: +nan(09A_Zaz):0:14: ++%18a: +0x0p0:1:7:0x0: ++%*18a: +0x0p0:0:7: ++%18a: +0x0p+0:1:8:0x0: ++%*18a: +0x0p+0:0:8: ++%18a: +0x8p-129:1:10:0x1p-126: ++%*18a: +0x8p-129:0:10: ++%18a: +0x2.345678p0123:1:17:0x1.1a2b3cp124: ++%*18a: +0x2.345678p0123:0:17: ++%18a: +0x2.345678p+123:1:17:0x1.1a2b3cp124: ++%*18a: +0x2.345678p+123:0:17: ++%18a: +0x7.fffff8p125:1:16:0x1.fffffep127: ++%*18a: +0x7.fffff8p125:0:16: ++%18a: +0xf.fffffp+124:1:16:0x1.fffffep127: ++%*18a: +0xf.fffffp+124:0:16: ++%18a: +infinity:1:10:inf: ++%*18a: +infinity:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input +new file mode 100644 +index 0000000000000000..9f541217605c0b7a +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-aa.input +@@ -0,0 +1,682 @@ ++%A::0:-1: ++%*A::0:-1: ++%A:-INFINITY:1:9:-inf: ++%*A:-INFINITY:0:9: ++%A:-0XF.FFFFFP+124:1:15:-0x1.fffffep127: ++%*A:-0XF.FFFFFP+124:0:15: ++%A:-0X7.FFFFF8P125:1:15:-0x1.fffffep127: ++%*A:-0X7.FFFFF8P125:0:15: ++%A:-0X2.345678P+123:1:16:-0x1.1a2b3cp124: ++%*A:-0X2.345678P+123:0:16: ++%A:-0X2.345678P0123:1:16:-0x1.1a2b3cp124: ++%*A:-0X2.345678P0123:0:16: ++%A:-0X8P-129:1:9:-0x1p-126: ++%*A:-0X8P-129:0:9: ++%A:-0X0P+0:1:7:-0x0: ++%*A:-0X0P+0:0:7: ++%A:-0X0P0:1:6:-0x0: ++%*A:-0X0P0:0:6: ++%A:-NAN(09A_Zaz):1:13:-nan: ++%*A:-NAN(09A_Zaz):0:13: ++%A:-NAN():1:6:-nan: ++%*A:-NAN():0:6: ++%A:NAN():1:5:nan: ++%*A:NAN():0:5: ++%A:NAN(09A_Zaz):1:12:nan: ++%*A:NAN(09A_Zaz):0:12: ++%A:0X0P0:1:5:0x0: ++%*A:0X0P0:0:5: ++%A:0X0P+0:1:6:0x0: ++%*A:0X0P+0:0:6: ++%A:0X8P-129:1:8:0x1p-126: ++%*A:0X8P-129:0:8: ++%A:0X2.345678P0123:1:15:0x1.1a2b3cp124: ++%*A:0X2.345678P0123:0:15: ++%A:0X2.345678P+123:1:15:0x1.1a2b3cp124: ++%*A:0X2.345678P+123:0:15: ++%A:0X7.FFFFF8P125:1:14:0x1.fffffep127: ++%*A:0X7.FFFFF8P125:0:14: ++%A:0XF.FFFFFP+124:1:14:0x1.fffffep127: ++%*A:0XF.FFFFFP+124:0:14: ++%A:INFINITY:1:8:inf: ++%*A:INFINITY:0:8: ++%A:+NAN():1:6:nan: ++%*A:+NAN():0:6: ++%A:+NAN(09A_Zaz):1:13:nan: ++%*A:+NAN(09A_Zaz):0:13: ++%A:+0X0P0:1:6:0x0: ++%*A:+0X0P0:0:6: ++%A:+0X0P+0:1:7:0x0: ++%*A:+0X0P+0:0:7: ++%A:+0X8P-129:1:9:0x1p-126: ++%*A:+0X8P-129:0:9: ++%A:+0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*A:+0X2.345678P0123:0:16: ++%A:+0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*A:+0X2.345678P+123:0:16: ++%A:+0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*A:+0X7.FFFFF8P125:0:15: ++%A:+0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*A:+0XF.FFFFFP+124:0:15: ++%A:+INFINITY:1:9:inf: ++%*A:+INFINITY:0:9: ++%1A::0:-1: ++%*1A::0:-1: ++%1A:-INFINITY:0:-1: ++%*1A:-INFINITY:0:-1: ++%1A:-0XF.FFFFFP+124:0:-1: ++%*1A:-0XF.FFFFFP+124:0:-1: ++%1A:-0X7.FFFFF8P125:0:-1: ++%*1A:-0X7.FFFFF8P125:0:-1: ++%1A:-0X2.345678P+123:0:-1: ++%*1A:-0X2.345678P+123:0:-1: ++%1A:-0X2.345678P0123:0:-1: ++%*1A:-0X2.345678P0123:0:-1: ++%1A:-0X8P-129:0:-1: ++%*1A:-0X8P-129:0:-1: ++%1A:-0X0P+0:0:-1: ++%*1A:-0X0P+0:0:-1: ++%1A:-0X0P0:0:-1: ++%*1A:-0X0P0:0:-1: ++%1A:-NAN(09A_Zaz):0:-1: ++%*1A:-NAN(09A_Zaz):0:-1: ++%1A:-NAN():0:-1: ++%*1A:-NAN():0:-1: ++%1A:NAN():0:-1: ++%*1A:NAN():0:-1: ++%1A:NAN(09A_Zaz):0:-1: ++%*1A:NAN(09A_Zaz):0:-1: ++%1A:0X0P0:1:1:0x0: ++%*1A:0X0P0:0:1: ++%1A:0X0P+0:1:1:0x0: ++%*1A:0X0P+0:0:1: ++%1A:0X8P-129:1:1:0x0: ++%*1A:0X8P-129:0:1: ++%1A:0X2.345678P0123:1:1:0x0: ++%*1A:0X2.345678P0123:0:1: ++%1A:0X2.345678P+123:1:1:0x0: ++%*1A:0X2.345678P+123:0:1: ++%1A:0X7.FFFFF8P125:1:1:0x0: ++%*1A:0X7.FFFFF8P125:0:1: ++%1A:0XF.FFFFFP+124:1:1:0x0: ++%*1A:0XF.FFFFFP+124:0:1: ++%1A:INFINITY:0:-1: ++%*1A:INFINITY:0:-1: ++%1A:+NAN():0:-1: ++%*1A:+NAN():0:-1: ++%1A:+NAN(09A_Zaz):0:-1: ++%*1A:+NAN(09A_Zaz):0:-1: ++%1A:+0X0P0:0:-1: ++%*1A:+0X0P0:0:-1: ++%1A:+0X0P+0:0:-1: ++%*1A:+0X0P+0:0:-1: ++%1A:+0X8P-129:0:-1: ++%*1A:+0X8P-129:0:-1: ++%1A:+0X2.345678P0123:0:-1: ++%*1A:+0X2.345678P0123:0:-1: ++%1A:+0X2.345678P+123:0:-1: ++%*1A:+0X2.345678P+123:0:-1: ++%1A:+0X7.FFFFF8P125:0:-1: ++%*1A:+0X7.FFFFF8P125:0:-1: ++%1A:+0XF.FFFFFP+124:0:-1: ++%*1A:+0XF.FFFFFP+124:0:-1: ++%1A:+INFINITY:0:-1: ++%*1A:+INFINITY:0:-1: ++%2A::0:-1: ++%*2A::0:-1: ++%2A:-INFINITY:0:-1: ++%*2A:-INFINITY:0:-1: ++%2A:-0XF.FFFFFP+124:1:2:-0x0: ++%*2A:-0XF.FFFFFP+124:0:2: ++%2A:-0X7.FFFFF8P125:1:2:-0x0: ++%*2A:-0X7.FFFFF8P125:0:2: ++%2A:-0X2.345678P+123:1:2:-0x0: ++%*2A:-0X2.345678P+123:0:2: ++%2A:-0X2.345678P0123:1:2:-0x0: ++%*2A:-0X2.345678P0123:0:2: ++%2A:-0X8P-129:1:2:-0x0: ++%*2A:-0X8P-129:0:2: ++%2A:-0X0P+0:1:2:-0x0: ++%*2A:-0X0P+0:0:2: ++%2A:-0X0P0:1:2:-0x0: ++%*2A:-0X0P0:0:2: ++%2A:-NAN(09A_Zaz):0:-1: ++%*2A:-NAN(09A_Zaz):0:-1: ++%2A:-NAN():0:-1: ++%*2A:-NAN():0:-1: ++%2A:NAN():0:-1: ++%*2A:NAN():0:-1: ++%2A:NAN(09A_Zaz):0:-1: ++%*2A:NAN(09A_Zaz):0:-1: ++# BZ12701 %2A:0X0P0:0:-1: ++# BZ12701 %*2A:0X0P0:0:-1: ++# BZ12701 %2A:0X0P+0:0:-1: ++# BZ12701 %*2A:0X0P+0:0:-1: ++# BZ12701 %2A:0X8P-129:0:-1: ++# BZ12701 %*2A:0X8P-129:0:-1: ++# BZ12701 %2A:0X2.345678P0123:0:-1: ++# BZ12701 %*2A:0X2.345678P0123:0:-1: ++# BZ12701 %2A:0X2.345678P+123:0:-1: ++# BZ12701 %*2A:0X2.345678P+123:0:-1: ++# BZ12701 %2A:0X7.FFFFF8P125:0:-1: ++# BZ12701 %*2A:0X7.FFFFF8P125:0:-1: ++# BZ12701 %2A:0XF.FFFFFP+124:0:-1: ++# BZ12701 %*2A:0XF.FFFFFP+124:0:-1: ++%2A:INFINITY:0:-1: ++%*2A:INFINITY:0:-1: ++%2A:+NAN():0:-1: ++%*2A:+NAN():0:-1: ++%2A:+NAN(09A_Zaz):0:-1: ++%*2A:+NAN(09A_Zaz):0:-1: ++%2A:+0X0P0:1:2:0x0: ++%*2A:+0X0P0:0:2: ++%2A:+0X0P+0:1:2:0x0: ++%*2A:+0X0P+0:0:2: ++%2A:+0X8P-129:1:2:0x0: ++%*2A:+0X8P-129:0:2: ++%2A:+0X2.345678P0123:1:2:0x0: ++%*2A:+0X2.345678P0123:0:2: ++%2A:+0X2.345678P+123:1:2:0x0: ++%*2A:+0X2.345678P+123:0:2: ++%2A:+0X7.FFFFF8P125:1:2:0x0: ++%*2A:+0X7.FFFFF8P125:0:2: ++%2A:+0XF.FFFFFP+124:1:2:0x0: ++%*2A:+0XF.FFFFFP+124:0:2: ++%2A:+INFINITY:0:-1: ++%*2A:+INFINITY:0:-1: ++%3A::0:-1: ++%*3A::0:-1: ++%3A:-INFINITY:0:-1: ++%*3A:-INFINITY:0:-1: ++# BZ12701 %3A:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %*3A:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %3A:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %*3A:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %3A:-0X2.345678P+123:0:-1: ++# BZ12701 %*3A:-0X2.345678P+123:0:-1: ++# BZ12701 %3A:-0X2.345678P0123:0:-1: ++# BZ12701 %*3A:-0X2.345678P0123:0:-1: ++# BZ12701 %3A:-0X8P-129:0:-1: ++# BZ12701 %*3A:-0X8P-129:0:-1: ++# BZ12701 %3A:-0X0P+0:0:-1: ++# BZ12701 %*3A:-0X0P+0:0:-1: ++# BZ12701 %3A:-0X0P0:0:-1: ++# BZ12701 %*3A:-0X0P0:0:-1: ++%3A:-NAN(09A_Zaz):0:-1: ++%*3A:-NAN(09A_Zaz):0:-1: ++%3A:-NAN():0:-1: ++%*3A:-NAN():0:-1: ++%3A:NAN():1:3:nan: ++%*3A:NAN():0:3: ++%3A:NAN(09A_Zaz):1:3:nan: ++%*3A:NAN(09A_Zaz):0:3: ++%3A:0X0P0:1:3:0x0: ++%*3A:0X0P0:0:3: ++%3A:0X0P+0:1:3:0x0: ++%*3A:0X0P+0:0:3: ++%3A:0X8P-129:1:3:0x1p3: ++%*3A:0X8P-129:0:3: ++%3A:0X2.345678P0123:1:3:0x1p1: ++%*3A:0X2.345678P0123:0:3: ++%3A:0X2.345678P+123:1:3:0x1p1: ++%*3A:0X2.345678P+123:0:3: ++%3A:0X7.FFFFF8P125:1:3:0x1.cp2: ++%*3A:0X7.FFFFF8P125:0:3: ++%3A:0XF.FFFFFP+124:1:3:0x1.ep3: ++%*3A:0XF.FFFFFP+124:0:3: ++%3A:INFINITY:1:3:inf: ++%*3A:INFINITY:0:3: ++%3A:+NAN():0:-1: ++%*3A:+NAN():0:-1: ++%3A:+NAN(09A_Zaz):0:-1: ++%*3A:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3A:+0X0P0:0:-1: ++# BZ12701 %*3A:+0X0P0:0:-1: ++# BZ12701 %3A:+0X0P+0:0:-1: ++# BZ12701 %*3A:+0X0P+0:0:-1: ++# BZ12701 %3A:+0X8P-129:0:-1: ++# BZ12701 %*3A:+0X8P-129:0:-1: ++# BZ12701 %3A:+0X2.345678P0123:0:-1: ++# BZ12701 %*3A:+0X2.345678P0123:0:-1: ++# BZ12701 %3A:+0X2.345678P+123:0:-1: ++# BZ12701 %*3A:+0X2.345678P+123:0:-1: ++# BZ12701 %3A:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %*3A:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %3A:+0XF.FFFFFP+124:0:-1: ++# BZ12701 %*3A:+0XF.FFFFFP+124:0:-1: ++%3A:+INFINITY:0:-1: ++%*3A:+INFINITY:0:-1: ++%4A::0:-1: ++%*4A::0:-1: ++%4A:-INFINITY:1:4:-inf: ++%*4A:-INFINITY:0:4: ++%4A:-0XF.FFFFFP+124:1:4:-0x1.ep3: ++%*4A:-0XF.FFFFFP+124:0:4: ++%4A:-0X7.FFFFF8P125:1:4:-0x1.cp2: ++%*4A:-0X7.FFFFF8P125:0:4: ++%4A:-0X2.345678P+123:1:4:-0x1p1: ++%*4A:-0X2.345678P+123:0:4: ++%4A:-0X2.345678P0123:1:4:-0x1p1: ++%*4A:-0X2.345678P0123:0:4: ++%4A:-0X8P-129:1:4:-0x1p3: ++%*4A:-0X8P-129:0:4: ++%4A:-0X0P+0:1:4:-0x0: ++%*4A:-0X0P+0:0:4: ++%4A:-0X0P0:1:4:-0x0: ++%*4A:-0X0P0:0:4: ++%4A:-NAN(09A_Zaz):1:4:-nan: ++%*4A:-NAN(09A_Zaz):0:4: ++%4A:-NAN():1:4:-nan: ++%*4A:-NAN():0:4: ++%4A:NAN():0:-1: ++%*4A:NAN():0:-1: ++%4A:NAN(09A_Zaz):0:-1: ++%*4A:NAN(09A_Zaz):0:-1: ++# BZ12701 %4A:0X0P0:0:-1: ++# BZ12701 %*4A:0X0P0:0:-1: ++# BZ12701 %4A:0X0P+0:0:-1: ++# BZ12701 %*4A:0X0P+0:0:-1: ++# BZ12701 %4A:0X8P-129:0:-1: ++# BZ12701 %*4A:0X8P-129:0:-1: ++%4A:0X2.345678P0123:1:4:0x1p1: ++%*4A:0X2.345678P0123:0:4: ++%4A:0X2.345678P+123:1:4:0x1p1: ++%*4A:0X2.345678P+123:0:4: ++%4A:0X7.FFFFF8P125:1:4:0x1.cp2: ++%*4A:0X7.FFFFF8P125:0:4: ++%4A:0XF.FFFFFP+124:1:4:0x1.ep3: ++%*4A:0XF.FFFFFP+124:0:4: ++%4A:INFINITY:0:-1: ++%*4A:INFINITY:0:-1: ++%4A:+NAN():1:4:nan: ++%*4A:+NAN():0:4: ++%4A:+NAN(09A_Zaz):1:4:nan: ++%*4A:+NAN(09A_Zaz):0:4: ++%4A:+0X0P0:1:4:0x0: ++%*4A:+0X0P0:0:4: ++%4A:+0X0P+0:1:4:0x0: ++%*4A:+0X0P+0:0:4: ++%4A:+0X8P-129:1:4:0x1p3: ++%*4A:+0X8P-129:0:4: ++%4A:+0X2.345678P0123:1:4:0x1p1: ++%*4A:+0X2.345678P0123:0:4: ++%4A:+0X2.345678P+123:1:4:0x1p1: ++%*4A:+0X2.345678P+123:0:4: ++%4A:+0X7.FFFFF8P125:1:4:0x1.cp2: ++%*4A:+0X7.FFFFF8P125:0:4: ++%4A:+0XF.FFFFFP+124:1:4:0x1.ep3: ++%*4A:+0XF.FFFFFP+124:0:4: ++%4A:+INFINITY:1:4:inf: ++%*4A:+INFINITY:0:4: ++%5A::0:-1: ++%*5A::0:-1: ++%5A:-INFINITY:0:-1: ++%*5A:-INFINITY:0:-1: ++%5A:-0XF.FFFFFP+124:1:5:-0x1.ep3: ++%*5A:-0XF.FFFFFP+124:0:5: ++%5A:-0X7.FFFFF8P125:1:5:-0x1.cp2: ++%*5A:-0X7.FFFFF8P125:0:5: ++%5A:-0X2.345678P+123:1:5:-0x1p1: ++%*5A:-0X2.345678P+123:0:5: ++%5A:-0X2.345678P0123:1:5:-0x1p1: ++%*5A:-0X2.345678P0123:0:5: ++# BZ12701 %5A:-0X8P-129:0:-1: ++# BZ12701 %*5A:-0X8P-129:0:-1: ++# BZ12701 %5A:-0X0P+0:0:-1: ++# BZ12701 %*5A:-0X0P+0:0:-1: ++# BZ12701 %5A:-0X0P0:0:-1: ++# BZ12701 %*5A:-0X0P0:0:-1: ++%5A:-NAN(09A_Zaz):0:-1: ++%*5A:-NAN(09A_Zaz):0:-1: ++%5A:-NAN():0:-1: ++%*5A:-NAN():0:-1: ++%5A:NAN():1:5:nan: ++%*5A:NAN():0:5: ++%5A:NAN(09A_Zaz):0:-1: ++%*5A:NAN(09A_Zaz):0:-1: ++%5A:0X0P0:1:5:0x0: ++%*5A:0X0P0:0:5: ++# BZ12701 %5A:0X0P+0:0:-1: ++# BZ12701 %*5A:0X0P+0:0:-1: ++# BZ12701 %5A:0X8P-129:0:-1: ++# BZ12701 %*5A:0X8P-129:0:-1: ++%5A:0X2.345678P0123:1:5:0x1.18p1: ++%*5A:0X2.345678P0123:0:5: ++%5A:0X2.345678P+123:1:5:0x1.18p1: ++%*5A:0X2.345678P+123:0:5: ++%5A:0X7.FFFFF8P125:1:5:0x1.fcp2: ++%*5A:0X7.FFFFF8P125:0:5: ++%5A:0XF.FFFFFP+124:1:5:0x1.fep3: ++%*5A:0XF.FFFFFP+124:0:5: ++%5A:INFINITY:0:-1: ++%*5A:INFINITY:0:-1: ++%5A:+NAN():0:-1: ++%*5A:+NAN():0:-1: ++%5A:+NAN(09A_Zaz):0:-1: ++%*5A:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5A:+0X0P0:0:-1: ++# BZ12701 %*5A:+0X0P0:0:-1: ++# BZ12701 %5A:+0X0P+0:0:-1: ++# BZ12701 %*5A:+0X0P+0:0:-1: ++# BZ12701 %5A:+0X8P-129:0:-1: ++# BZ12701 %*5A:+0X8P-129:0:-1: ++%5A:+0X2.345678P0123:1:5:0x1p1: ++%*5A:+0X2.345678P0123:0:5: ++%5A:+0X2.345678P+123:1:5:0x1p1: ++%*5A:+0X2.345678P+123:0:5: ++%5A:+0X7.FFFFF8P125:1:5:0x1.cp2: ++%*5A:+0X7.FFFFF8P125:0:5: ++%5A:+0XF.FFFFFP+124:1:5:0x1.ep3: ++%*5A:+0XF.FFFFFP+124:0:5: ++%5A:+INFINITY:0:-1: ++%*5A:+INFINITY:0:-1: ++%6A::0:-1: ++%*6A::0:-1: ++%6A:-INFINITY:0:-1: ++%*6A:-INFINITY:0:-1: ++%6A:-0XF.FFFFFP+124:1:6:-0x1.fep3: ++%*6A:-0XF.FFFFFP+124:0:6: ++%6A:-0X7.FFFFF8P125:1:6:-0x1.fcp2: ++%*6A:-0X7.FFFFF8P125:0:6: ++%6A:-0X2.345678P+123:1:6:-0x1.18p1: ++%*6A:-0X2.345678P+123:0:6: ++%6A:-0X2.345678P0123:1:6:-0x1.18p1: ++%*6A:-0X2.345678P0123:0:6: ++# BZ12701 %6A:-0X8P-129:0:-1: ++# BZ12701 %*6A:-0X8P-129:0:-1: ++# BZ12701 %6A:-0X0P+0:0:-1: ++# BZ12701 %*6A:-0X0P+0:0:-1: ++%6A:-0X0P0:1:6:-0x0: ++%*6A:-0X0P0:0:6: ++%6A:-NAN(09A_Zaz):0:-1: ++%*6A:-NAN(09A_Zaz):0:-1: ++%6A:-NAN():1:6:-nan: ++%*6A:-NAN():0:6: ++%6A:NAN():1:5:nan: ++%*6A:NAN():0:5: ++%6A:NAN(09A_Zaz):0:-1: ++%*6A:NAN(09A_Zaz):0:-1: ++%6A:0X0P0:1:5:0x0: ++%*6A:0X0P0:0:5: ++%6A:0X0P+0:1:6:0x0: ++%*6A:0X0P+0:0:6: ++%6A:0X8P-129:1:6:0x1p2: ++%*6A:0X8P-129:0:6: ++%6A:0X2.345678P0123:1:6:0x1.1ap1: ++%*6A:0X2.345678P0123:0:6: ++%6A:0X2.345678P+123:1:6:0x1.1ap1: ++%*6A:0X2.345678P+123:0:6: ++%6A:0X7.FFFFF8P125:1:6:0x1.ffcp2: ++%*6A:0X7.FFFFF8P125:0:6: ++%6A:0XF.FFFFFP+124:1:6:0x1.ffep3: ++%*6A:0XF.FFFFFP+124:0:6: ++%6A:INFINITY:0:-1: ++%*6A:INFINITY:0:-1: ++%6A:+NAN():1:6:nan: ++%*6A:+NAN():0:6: ++%6A:+NAN(09A_Zaz):0:-1: ++%*6A:+NAN(09A_Zaz):0:-1: ++%6A:+0X0P0:1:6:0x0: ++%*6A:+0X0P0:0:6: ++# BZ12701 %6A:+0X0P+0:0:-1: ++# BZ12701 %*6A:+0X0P+0:0:-1: ++# BZ12701 %6A:+0X8P-129:0:-1: ++# BZ12701 %*6A:+0X8P-129:0:-1: ++%6A:+0X2.345678P0123:1:6:0x1.18p1: ++%*6A:+0X2.345678P0123:0:6: ++%6A:+0X2.345678P+123:1:6:0x1.18p1: ++%*6A:+0X2.345678P+123:0:6: ++%6A:+0X7.FFFFF8P125:1:6:0x1.fcp2: ++%*6A:+0X7.FFFFF8P125:0:6: ++%6A:+0XF.FFFFFP+124:1:6:0x1.fep3: ++%*6A:+0XF.FFFFFP+124:0:6: ++%6A:+INFINITY:0:-1: ++%*6A:+INFINITY:0:-1: ++%12A::0:-1: ++%*12A::0:-1: ++%12A:-INFINITY:1:9:-inf: ++%*12A:-INFINITY:0:9: ++# BZ12701 %12A:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %*12A:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %12A:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %*12A:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %12A:-0X2.345678P+123:0:-1: ++# BZ12701 %*12A:-0X2.345678P+123:0:-1: ++# BZ12701 %12A:-0X2.345678P0123:0:-1: ++# BZ12701 %*12A:-0X2.345678P0123:0:-1: ++%12A:-0X8P-129:1:9:-0x1p-126: ++%*12A:-0X8P-129:0:9: ++%12A:-0X0P+0:1:7:-0x0: ++%*12A:-0X0P+0:0:7: ++%12A:-0X0P0:1:6:-0x0: ++%*12A:-0X0P0:0:6: ++%12A:-NAN(09A_Zaz):0:-1: ++%*12A:-NAN(09A_Zaz):0:-1: ++%12A:-NAN():1:6:-nan: ++%*12A:-NAN():0:6: ++%12A:NAN():1:5:nan: ++%*12A:NAN():0:5: ++%12A:NAN(09A_Zaz):1:12:nan: ++%*12A:NAN(09A_Zaz):0:12: ++%12A:0X0P0:1:5:0x0: ++%*12A:0X0P0:0:5: ++%12A:0X0P+0:1:6:0x0: ++%*12A:0X0P+0:0:6: ++%12A:0X8P-129:1:8:0x1p-126: ++%*12A:0X8P-129:0:8: ++%12A:0X2.345678P0123:1:12:0x1.1a2b3cp1: ++%*12A:0X2.345678P0123:0:12: ++# BZ12701 %12A:0X2.345678P+123:0:-1: ++# BZ12701 %*12A:0X2.345678P+123:0:-1: ++%12A:0X7.FFFFF8P125:1:12:0x1.fffffep3: ++%*12A:0X7.FFFFF8P125:0:12: ++%12A:0XF.FFFFFP+124:1:12:0x1.fffffep4: ++%*12A:0XF.FFFFFP+124:0:12: ++%12A:INFINITY:1:8:inf: ++%*12A:INFINITY:0:8: ++%12A:+NAN():1:6:nan: ++%*12A:+NAN():0:6: ++%12A:+NAN(09A_Zaz):0:-1: ++%*12A:+NAN(09A_Zaz):0:-1: ++%12A:+0X0P0:1:6:0x0: ++%*12A:+0X0P0:0:6: ++%12A:+0X0P+0:1:7:0x0: ++%*12A:+0X0P+0:0:7: ++%12A:+0X8P-129:1:9:0x1p-126: ++%*12A:+0X8P-129:0:9: ++# BZ12701 %12A:+0X2.345678P0123:0:-1: ++# BZ12701 %*12A:+0X2.345678P0123:0:-1: ++# BZ12701 %12A:+0X2.345678P+123:0:-1: ++# BZ12701 %*12A:+0X2.345678P+123:0:-1: ++# BZ12701 %12A:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %*12A:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %12A:+0XF.FFFFFP+124:0:-1: ++# BZ12701 %*12A:+0XF.FFFFFP+124:0:-1: ++%12A:+INFINITY:1:9:inf: ++%*12A:+INFINITY:0:9: ++%18A::0:-1: ++%*18A::0:-1: ++%18A:-INFINITY:1:9:-inf: ++%*18A:-INFINITY:0:9: ++%18A:-0XF.FFFFFP+124:1:15:-0x1.fffffep127: ++%*18A:-0XF.FFFFFP+124:0:15: ++%18A:-0X7.FFFFF8P125:1:15:-0x1.fffffep127: ++%*18A:-0X7.FFFFF8P125:0:15: ++%18A:-0X2.345678P+123:1:16:-0x1.1a2b3cp124: ++%*18A:-0X2.345678P+123:0:16: ++%18A:-0X2.345678P0123:1:16:-0x1.1a2b3cp124: ++%*18A:-0X2.345678P0123:0:16: ++%18A:-0X8P-129:1:9:-0x1p-126: ++%*18A:-0X8P-129:0:9: ++%18A:-0X0P+0:1:7:-0x0: ++%*18A:-0X0P+0:0:7: ++%18A:-0X0P0:1:6:-0x0: ++%*18A:-0X0P0:0:6: ++%18A:-NAN(09A_Zaz):1:13:-nan: ++%*18A:-NAN(09A_Zaz):0:13: ++%18A:-NAN():1:6:-nan: ++%*18A:-NAN():0:6: ++%18A:NAN():1:5:nan: ++%*18A:NAN():0:5: ++%18A:NAN(09A_Zaz):1:12:nan: ++%*18A:NAN(09A_Zaz):0:12: ++%18A:0X0P0:1:5:0x0: ++%*18A:0X0P0:0:5: ++%18A:0X0P+0:1:6:0x0: ++%*18A:0X0P+0:0:6: ++%18A:0X8P-129:1:8:0x1p-126: ++%*18A:0X8P-129:0:8: ++%18A:0X2.345678P0123:1:15:0x1.1a2b3cp124: ++%*18A:0X2.345678P0123:0:15: ++%18A:0X2.345678P+123:1:15:0x1.1a2b3cp124: ++%*18A:0X2.345678P+123:0:15: ++%18A:0X7.FFFFF8P125:1:14:0x1.fffffep127: ++%*18A:0X7.FFFFF8P125:0:14: ++%18A:0XF.FFFFFP+124:1:14:0x1.fffffep127: ++%*18A:0XF.FFFFFP+124:0:14: ++%18A:INFINITY:1:8:inf: ++%*18A:INFINITY:0:8: ++%18A:+NAN():1:6:nan: ++%*18A:+NAN():0:6: ++%18A:+NAN(09A_Zaz):1:13:nan: ++%*18A:+NAN(09A_Zaz):0:13: ++%18A:+0X0P0:1:6:0x0: ++%*18A:+0X0P0:0:6: ++%18A:+0X0P+0:1:7:0x0: ++%*18A:+0X0P+0:0:7: ++%18A:+0X8P-129:1:9:0x1p-126: ++%*18A:+0X8P-129:0:9: ++%18A:+0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*18A:+0X2.345678P0123:0:16: ++%18A:+0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*18A:+0X2.345678P+123:0:16: ++%18A:+0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*18A:+0X7.FFFFF8P125:0:15: ++%18A:+0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*18A:+0XF.FFFFFP+124:0:15: ++%18A:+INFINITY:1:9:inf: ++%*18A:+INFINITY:0:9: ++%5A: :0:-1: ++%*5A: :0:-1: ++%5A: -INFINITY:0:-1: ++%*5A: -INFINITY:0:-1: ++%5A: -0XF.FFFFFP+124:1:6:-0x1.ep3: ++%*5A: -0XF.FFFFFP+124:0:6: ++%5A: -0X7.FFFFF8P125:1:6:-0x1.cp2: ++%*5A: -0X7.FFFFF8P125:0:6: ++%5A: -0X2.345678P+123:1:6:-0x1p1: ++%*5A: -0X2.345678P+123:0:6: ++%5A: -0X2.345678P0123:1:6:-0x1p1: ++%*5A: -0X2.345678P0123:0:6: ++# BZ12701 %5A: -0X8P-129:0:-1: ++# BZ12701 %*5A: -0X8P-129:0:-1: ++# BZ12701 %5A: -0X0P+0:0:-1: ++# BZ12701 %*5A: -0X0P+0:0:-1: ++# BZ12701 %5A: -0X0P0:0:-1: ++# BZ12701 %*5A: -0X0P0:0:-1: ++%5A: -NAN(09A_Zaz):0:-1: ++%*5A: -NAN(09A_Zaz):0:-1: ++%5A: -NAN():0:-1: ++%*5A: -NAN():0:-1: ++%5A: NAN():1:6:nan: ++%*5A: NAN():0:6: ++%5A: NAN(09A_Zaz):0:-1: ++%*5A: NAN(09A_Zaz):0:-1: ++%5A: 0X0P0:1:6:0x0: ++%*5A: 0X0P0:0:6: ++# BZ12701 %5A: 0X0P+0:0:-1: ++# BZ12701 %*5A: 0X0P+0:0:-1: ++# BZ12701 %5A: 0X8P-129:0:-1: ++# BZ12701 %*5A: 0X8P-129:0:-1: ++%5A: 0X2.345678P0123:1:6:0x1.18p1: ++%*5A: 0X2.345678P0123:0:6: ++%5A: 0X2.345678P+123:1:6:0x1.18p1: ++%*5A: 0X2.345678P+123:0:6: ++%5A: 0X7.FFFFF8P125:1:6:0x1.fcp2: ++%*5A: 0X7.FFFFF8P125:0:6: ++%5A: 0XF.FFFFFP+124:1:6:0x1.fep3: ++%*5A: 0XF.FFFFFP+124:0:6: ++%5A: INFINITY:0:-1: ++%*5A: INFINITY:0:-1: ++%5A: +NAN():0:-1: ++%*5A: +NAN():0:-1: ++%5A: +NAN(09A_Zaz):0:-1: ++%*5A: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5A: +0X0P0:0:-1: ++# BZ12701 %*5A: +0X0P0:0:-1: ++# BZ12701 %5A: +0X0P+0:0:-1: ++# BZ12701 %*5A: +0X0P+0:0:-1: ++# BZ12701 %5A: +0X8P-129:0:-1: ++# BZ12701 %*5A: +0X8P-129:0:-1: ++%5A: +0X2.345678P0123:1:6:0x1p1: ++%*5A: +0X2.345678P0123:0:6: ++%5A: +0X2.345678P+123:1:6:0x1p1: ++%*5A: +0X2.345678P+123:0:6: ++%5A: +0X7.FFFFF8P125:1:6:0x1.cp2: ++%*5A: +0X7.FFFFF8P125:0:6: ++%5A: +0XF.FFFFFP+124:1:6:0x1.ep3: ++%*5A: +0XF.FFFFFP+124:0:6: ++%5A: +INFINITY:0:-1: ++%*5A: +INFINITY:0:-1: ++%18A: :0:-1: ++%*18A: :0:-1: ++%18A: -INFINITY:1:10:-inf: ++%*18A: -INFINITY:0:10: ++%18A: -0XF.FFFFFP+124:1:16:-0x1.fffffep127: ++%*18A: -0XF.FFFFFP+124:0:16: ++%18A: -0X7.FFFFF8P125:1:16:-0x1.fffffep127: ++%*18A: -0X7.FFFFF8P125:0:16: ++%18A: -0X2.345678P+123:1:17:-0x1.1a2b3cp124: ++%*18A: -0X2.345678P+123:0:17: ++%18A: -0X2.345678P0123:1:17:-0x1.1a2b3cp124: ++%*18A: -0X2.345678P0123:0:17: ++%18A: -0X8P-129:1:10:-0x1p-126: ++%*18A: -0X8P-129:0:10: ++%18A: -0X0P+0:1:8:-0x0: ++%*18A: -0X0P+0:0:8: ++%18A: -0X0P0:1:7:-0x0: ++%*18A: -0X0P0:0:7: ++%18A: -NAN(09A_Zaz):1:14:-nan: ++%*18A: -NAN(09A_Zaz):0:14: ++%18A: -NAN():1:7:-nan: ++%*18A: -NAN():0:7: ++%18A: NAN():1:6:nan: ++%*18A: NAN():0:6: ++%18A: NAN(09A_Zaz):1:13:nan: ++%*18A: NAN(09A_Zaz):0:13: ++%18A: 0X0P0:1:6:0x0: ++%*18A: 0X0P0:0:6: ++%18A: 0X0P+0:1:7:0x0: ++%*18A: 0X0P+0:0:7: ++%18A: 0X8P-129:1:9:0x1p-126: ++%*18A: 0X8P-129:0:9: ++%18A: 0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*18A: 0X2.345678P0123:0:16: ++%18A: 0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*18A: 0X2.345678P+123:0:16: ++%18A: 0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*18A: 0X7.FFFFF8P125:0:15: ++%18A: 0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*18A: 0XF.FFFFFP+124:0:15: ++%18A: INFINITY:1:9:inf: ++%*18A: INFINITY:0:9: ++%18A: +NAN():1:7:nan: ++%*18A: +NAN():0:7: ++%18A: +NAN(09A_Zaz):1:14:nan: ++%*18A: +NAN(09A_Zaz):0:14: ++%18A: +0X0P0:1:7:0x0: ++%*18A: +0X0P0:0:7: ++%18A: +0X0P+0:1:8:0x0: ++%*18A: +0X0P+0:0:8: ++%18A: +0X8P-129:1:10:0x1p-126: ++%*18A: +0X8P-129:0:10: ++%18A: +0X2.345678P0123:1:17:0x1.1a2b3cp124: ++%*18A: +0X2.345678P0123:0:17: ++%18A: +0X2.345678P+123:1:17:0x1.1a2b3cp124: ++%*18A: +0X2.345678P+123:0:17: ++%18A: +0X7.FFFFF8P125:1:16:0x1.fffffep127: ++%*18A: +0X7.FFFFF8P125:0:16: ++%18A: +0XF.FFFFFP+124:1:16:0x1.fffffep127: ++%*18A: +0XF.FFFFFP+124:0:16: ++%18A: +INFINITY:1:10:inf: ++%*18A: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input +new file mode 100644 +index 0000000000000000..e555bb47b9c86bbe +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-e.input +@@ -0,0 +1,558 @@ ++%e::0:-1: ++%*e::0:-1: ++%e:-infinity:1:9:-inf: ++%*e:-infinity:0:9: ++%e:-3.40282346638528859811704183484516925e+38:1:42:-0x1.fffffep127: ++%*e:-3.40282346638528859811704183484516925e+38:0:42: ++%e:-3.40282346638528859811704183484516925e38:1:41:-0x1.fffffep127: ++%*e:-3.40282346638528859811704183484516925e38:0:41: ++%e:-2.344167378255246830294536494851817472e+37:1:43:-0x1.1a2b3cp124: ++%*e:-2.344167378255246830294536494851817472e+37:0:43: ++%e:-2.344167378255246830294536494851817472e037:1:43:-0x1.1a2b3cp124: ++%*e:-2.344167378255246830294536494851817472e037:0:43: ++%e:-1.17549435082228750796873653722224568e-38:1:42:-0x1p-126: ++%*e:-1.17549435082228750796873653722224568e-38:0:42: ++%e:-0e+0:1:5:-0x0: ++%*e:-0e+0:0:5: ++%e:-0e0:1:4:-0x0: ++%*e:-0e0:0:4: ++%e:-nan(09A_Zaz):1:13:-nan: ++%*e:-nan(09A_Zaz):0:13: ++%e:-nan():1:6:-nan: ++%*e:-nan():0:6: ++%e:nan():1:5:nan: ++%*e:nan():0:5: ++%e:nan(09A_Zaz):1:12:nan: ++%*e:nan(09A_Zaz):0:12: ++%e:0e0:1:3:0x0: ++%*e:0e0:0:3: ++%e:0e+0:1:4:0x0: ++%*e:0e+0:0:4: ++%e:1.17549435082228750796873653722224568e-38:1:41:0x1p-126: ++%*e:1.17549435082228750796873653722224568e-38:0:41: ++%e:2.344167378255246830294536494851817472e037:1:42:0x1.1a2b3cp124: ++%*e:2.344167378255246830294536494851817472e037:0:42: ++%e:2.344167378255246830294536494851817472e+37:1:42:0x1.1a2b3cp124: ++%*e:2.344167378255246830294536494851817472e+37:0:42: ++%e:3.40282346638528859811704183484516925e38:1:40:0x1.fffffep127: ++%*e:3.40282346638528859811704183484516925e38:0:40: ++%e:3.40282346638528859811704183484516925e+38:1:41:0x1.fffffep127: ++%*e:3.40282346638528859811704183484516925e+38:0:41: ++%e:infinity:1:8:inf: ++%*e:infinity:0:8: ++%e:+nan():1:6:nan: ++%*e:+nan():0:6: ++%e:+nan(09A_Zaz):1:13:nan: ++%*e:+nan(09A_Zaz):0:13: ++%e:+0e0:1:4:0x0: ++%*e:+0e0:0:4: ++%e:+0e+0:1:5:0x0: ++%*e:+0e+0:0:5: ++%e:+1.17549435082228750796873653722224568e-38:1:42:0x1p-126: ++%*e:+1.17549435082228750796873653722224568e-38:0:42: ++%e:+2.344167378255246830294536494851817472e037:1:43:0x1.1a2b3cp124: ++%*e:+2.344167378255246830294536494851817472e037:0:43: ++%e:+2.344167378255246830294536494851817472e+37:1:43:0x1.1a2b3cp124: ++%*e:+2.344167378255246830294536494851817472e+37:0:43: ++%e:+3.40282346638528859811704183484516925e38:1:41:0x1.fffffep127: ++%*e:+3.40282346638528859811704183484516925e38:0:41: ++%e:+3.40282346638528859811704183484516925e+38:1:42:0x1.fffffep127: ++%*e:+3.40282346638528859811704183484516925e+38:0:42: ++%e:+infinity:1:9:inf: ++%*e:+infinity:0:9: ++%1e::0:-1: ++%*1e::0:-1: ++%1e:-infinity:0:-1: ++%*1e:-infinity:0:-1: ++%1e:-3.40282346638528859811704183484516925e+38:0:-1: ++%*1e:-3.40282346638528859811704183484516925e+38:0:-1: ++%1e:-3.40282346638528859811704183484516925e38:0:-1: ++%*1e:-3.40282346638528859811704183484516925e38:0:-1: ++%1e:-2.344167378255246830294536494851817472e+37:0:-1: ++%*1e:-2.344167378255246830294536494851817472e+37:0:-1: ++%1e:-2.344167378255246830294536494851817472e037:0:-1: ++%*1e:-2.344167378255246830294536494851817472e037:0:-1: ++%1e:-1.17549435082228750796873653722224568e-38:0:-1: ++%*1e:-1.17549435082228750796873653722224568e-38:0:-1: ++%1e:-0e+0:0:-1: ++%*1e:-0e+0:0:-1: ++%1e:-0e0:0:-1: ++%*1e:-0e0:0:-1: ++%1e:-nan(09A_Zaz):0:-1: ++%*1e:-nan(09A_Zaz):0:-1: ++%1e:-nan():0:-1: ++%*1e:-nan():0:-1: ++%1e:nan():0:-1: ++%*1e:nan():0:-1: ++%1e:nan(09A_Zaz):0:-1: ++%*1e:nan(09A_Zaz):0:-1: ++%1e:0e0:1:1:0x0: ++%*1e:0e0:0:1: ++%1e:0e+0:1:1:0x0: ++%*1e:0e+0:0:1: ++%1e:1.17549435082228750796873653722224568e-38:1:1:0x1: ++%*1e:1.17549435082228750796873653722224568e-38:0:1: ++%1e:2.344167378255246830294536494851817472e037:1:1:0x1p1: ++%*1e:2.344167378255246830294536494851817472e037:0:1: ++%1e:2.344167378255246830294536494851817472e+37:1:1:0x1p1: ++%*1e:2.344167378255246830294536494851817472e+37:0:1: ++%1e:3.40282346638528859811704183484516925e38:1:1:0x1.8p1: ++%*1e:3.40282346638528859811704183484516925e38:0:1: ++%1e:3.40282346638528859811704183484516925e+38:1:1:0x1.8p1: ++%*1e:3.40282346638528859811704183484516925e+38:0:1: ++%1e:infinity:0:-1: ++%*1e:infinity:0:-1: ++%1e:+nan():0:-1: ++%*1e:+nan():0:-1: ++%1e:+nan(09A_Zaz):0:-1: ++%*1e:+nan(09A_Zaz):0:-1: ++%1e:+0e0:0:-1: ++%*1e:+0e0:0:-1: ++%1e:+0e+0:0:-1: ++%*1e:+0e+0:0:-1: ++%1e:+1.17549435082228750796873653722224568e-38:0:-1: ++%*1e:+1.17549435082228750796873653722224568e-38:0:-1: ++%1e:+2.344167378255246830294536494851817472e037:0:-1: ++%*1e:+2.344167378255246830294536494851817472e037:0:-1: ++%1e:+2.344167378255246830294536494851817472e+37:0:-1: ++%*1e:+2.344167378255246830294536494851817472e+37:0:-1: ++%1e:+3.40282346638528859811704183484516925e38:0:-1: ++%*1e:+3.40282346638528859811704183484516925e38:0:-1: ++%1e:+3.40282346638528859811704183484516925e+38:0:-1: ++%*1e:+3.40282346638528859811704183484516925e+38:0:-1: ++%1e:+infinity:0:-1: ++%*1e:+infinity:0:-1: ++%2e::0:-1: ++%*2e::0:-1: ++%2e:-infinity:0:-1: ++%*2e:-infinity:0:-1: ++%2e:-3.40282346638528859811704183484516925e+38:1:2:-0x1.8p1: ++%*2e:-3.40282346638528859811704183484516925e+38:0:2: ++%2e:-3.40282346638528859811704183484516925e38:1:2:-0x1.8p1: ++%*2e:-3.40282346638528859811704183484516925e38:0:2: ++%2e:-2.344167378255246830294536494851817472e+37:1:2:-0x1p1: ++%*2e:-2.344167378255246830294536494851817472e+37:0:2: ++%2e:-2.344167378255246830294536494851817472e037:1:2:-0x1p1: ++%*2e:-2.344167378255246830294536494851817472e037:0:2: ++%2e:-1.17549435082228750796873653722224568e-38:1:2:-0x1: ++%*2e:-1.17549435082228750796873653722224568e-38:0:2: ++%2e:-0e+0:1:2:-0x0: ++%*2e:-0e+0:0:2: ++%2e:-0e0:1:2:-0x0: ++%*2e:-0e0:0:2: ++%2e:-nan(09A_Zaz):0:-1: ++%*2e:-nan(09A_Zaz):0:-1: ++%2e:-nan():0:-1: ++%*2e:-nan():0:-1: ++%2e:nan():0:-1: ++%*2e:nan():0:-1: ++%2e:nan(09A_Zaz):0:-1: ++%*2e:nan(09A_Zaz):0:-1: ++# BZ12701 %2e:0e0:0:-1: ++# BZ12701 %*2e:0e0:0:-1: ++# BZ12701 %2e:0e+0:0:-1: ++# BZ12701 %*2e:0e+0:0:-1: ++%2e:1.17549435082228750796873653722224568e-38:1:2:0x1: ++%*2e:1.17549435082228750796873653722224568e-38:0:2: ++%2e:2.344167378255246830294536494851817472e037:1:2:0x1p1: ++%*2e:2.344167378255246830294536494851817472e037:0:2: ++%2e:2.344167378255246830294536494851817472e+37:1:2:0x1p1: ++%*2e:2.344167378255246830294536494851817472e+37:0:2: ++%2e:3.40282346638528859811704183484516925e38:1:2:0x1.8p1: ++%*2e:3.40282346638528859811704183484516925e38:0:2: ++%2e:3.40282346638528859811704183484516925e+38:1:2:0x1.8p1: ++%*2e:3.40282346638528859811704183484516925e+38:0:2: ++%2e:infinity:0:-1: ++%*2e:infinity:0:-1: ++%2e:+nan():0:-1: ++%*2e:+nan():0:-1: ++%2e:+nan(09A_Zaz):0:-1: ++%*2e:+nan(09A_Zaz):0:-1: ++%2e:+0e0:1:2:0x0: ++%*2e:+0e0:0:2: ++%2e:+0e+0:1:2:0x0: ++%*2e:+0e+0:0:2: ++%2e:+1.17549435082228750796873653722224568e-38:1:2:0x1: ++%*2e:+1.17549435082228750796873653722224568e-38:0:2: ++%2e:+2.344167378255246830294536494851817472e037:1:2:0x1p1: ++%*2e:+2.344167378255246830294536494851817472e037:0:2: ++%2e:+2.344167378255246830294536494851817472e+37:1:2:0x1p1: ++%*2e:+2.344167378255246830294536494851817472e+37:0:2: ++%2e:+3.40282346638528859811704183484516925e38:1:2:0x1.8p1: ++%*2e:+3.40282346638528859811704183484516925e38:0:2: ++%2e:+3.40282346638528859811704183484516925e+38:1:2:0x1.8p1: ++%*2e:+3.40282346638528859811704183484516925e+38:0:2: ++%2e:+infinity:0:-1: ++%*2e:+infinity:0:-1: ++%3e::0:-1: ++%*3e::0:-1: ++%3e:-infinity:0:-1: ++%*3e:-infinity:0:-1: ++%3e:-3.40282346638528859811704183484516925e+38:1:3:-0x1.8p1: ++%*3e:-3.40282346638528859811704183484516925e+38:0:3: ++%3e:-3.40282346638528859811704183484516925e38:1:3:-0x1.8p1: ++%*3e:-3.40282346638528859811704183484516925e38:0:3: ++%3e:-2.344167378255246830294536494851817472e+37:1:3:-0x1p1: ++%*3e:-2.344167378255246830294536494851817472e+37:0:3: ++%3e:-2.344167378255246830294536494851817472e037:1:3:-0x1p1: ++%*3e:-2.344167378255246830294536494851817472e037:0:3: ++%3e:-1.17549435082228750796873653722224568e-38:1:3:-0x1: ++%*3e:-1.17549435082228750796873653722224568e-38:0:3: ++# BZ12701 %3e:-0e+0:0:-1: ++# BZ12701 %*3e:-0e+0:0:-1: ++# BZ12701 %3e:-0e0:0:-1: ++# BZ12701 %*3e:-0e0:0:-1: ++%3e:-nan(09A_Zaz):0:-1: ++%*3e:-nan(09A_Zaz):0:-1: ++%3e:-nan():0:-1: ++%*3e:-nan():0:-1: ++%3e:nan():1:3:nan: ++%*3e:nan():0:3: ++%3e:nan(09A_Zaz):1:3:nan: ++%*3e:nan(09A_Zaz):0:3: ++%3e:0e0:1:3:0x0: ++%*3e:0e0:0:3: ++# BZ12701 %3e:0e+0:0:-1: ++# BZ12701 %*3e:0e+0:0:-1: ++%3e:1.17549435082228750796873653722224568e-38:1:3:0x1.19999a: ++%*3e:1.17549435082228750796873653722224568e-38:0:3: ++%3e:2.344167378255246830294536494851817472e037:1:3:0x1.266666p1: ++%*3e:2.344167378255246830294536494851817472e037:0:3: ++%3e:2.344167378255246830294536494851817472e+37:1:3:0x1.266666p1: ++%*3e:2.344167378255246830294536494851817472e+37:0:3: ++%3e:3.40282346638528859811704183484516925e38:1:3:0x1.b33334p1: ++%*3e:3.40282346638528859811704183484516925e38:0:3: ++%3e:3.40282346638528859811704183484516925e+38:1:3:0x1.b33334p1: ++%*3e:3.40282346638528859811704183484516925e+38:0:3: ++%3e:infinity:1:3:inf: ++%*3e:infinity:0:3: ++%3e:+nan():0:-1: ++%*3e:+nan():0:-1: ++%3e:+nan(09A_Zaz):0:-1: ++%*3e:+nan(09A_Zaz):0:-1: ++# BZ12701 %3e:+0e0:0:-1: ++# BZ12701 %*3e:+0e0:0:-1: ++# BZ12701 %3e:+0e+0:0:-1: ++# BZ12701 %*3e:+0e+0:0:-1: ++%3e:+1.17549435082228750796873653722224568e-38:1:3:0x1: ++%*3e:+1.17549435082228750796873653722224568e-38:0:3: ++%3e:+2.344167378255246830294536494851817472e037:1:3:0x1p1: ++%*3e:+2.344167378255246830294536494851817472e037:0:3: ++%3e:+2.344167378255246830294536494851817472e+37:1:3:0x1p1: ++%*3e:+2.344167378255246830294536494851817472e+37:0:3: ++%3e:+3.40282346638528859811704183484516925e38:1:3:0x1.8p1: ++%*3e:+3.40282346638528859811704183484516925e38:0:3: ++%3e:+3.40282346638528859811704183484516925e+38:1:3:0x1.8p1: ++%*3e:+3.40282346638528859811704183484516925e+38:0:3: ++%3e:+infinity:0:-1: ++%*3e:+infinity:0:-1: ++%4e::0:-1: ++%*4e::0:-1: ++%4e:-infinity:1:4:-inf: ++%*4e:-infinity:0:4: ++%4e:-3.40282346638528859811704183484516925e+38:1:4:-0x1.b33334p1: ++%*4e:-3.40282346638528859811704183484516925e+38:0:4: ++%4e:-3.40282346638528859811704183484516925e38:1:4:-0x1.b33334p1: ++%*4e:-3.40282346638528859811704183484516925e38:0:4: ++%4e:-2.344167378255246830294536494851817472e+37:1:4:-0x1.266666p1: ++%*4e:-2.344167378255246830294536494851817472e+37:0:4: ++%4e:-2.344167378255246830294536494851817472e037:1:4:-0x1.266666p1: ++%*4e:-2.344167378255246830294536494851817472e037:0:4: ++%4e:-1.17549435082228750796873653722224568e-38:1:4:-0x1.19999a: ++%*4e:-1.17549435082228750796873653722224568e-38:0:4: ++# BZ12701 %4e:-0e+0:0:-1: ++# BZ12701 %*4e:-0e+0:0:-1: ++%4e:-0e0:1:4:-0x0: ++%*4e:-0e0:0:4: ++%4e:-nan(09A_Zaz):1:4:-nan: ++%*4e:-nan(09A_Zaz):0:4: ++%4e:-nan():1:4:-nan: ++%*4e:-nan():0:4: ++%4e:nan():0:-1: ++%*4e:nan():0:-1: ++%4e:nan(09A_Zaz):0:-1: ++%*4e:nan(09A_Zaz):0:-1: ++%4e:0e0:1:3:0x0: ++%*4e:0e0:0:3: ++%4e:0e+0:1:4:0x0: ++%*4e:0e+0:0:4: ++%4e:1.17549435082228750796873653722224568e-38:1:4:0x1.2b851e: ++%*4e:1.17549435082228750796873653722224568e-38:0:4: ++%4e:2.344167378255246830294536494851817472e037:1:4:0x1.2b851ep1: ++%*4e:2.344167378255246830294536494851817472e037:0:4: ++%4e:2.344167378255246830294536494851817472e+37:1:4:0x1.2b851ep1: ++%*4e:2.344167378255246830294536494851817472e+37:0:4: ++%4e:3.40282346638528859811704183484516925e38:1:4:0x1.b33334p1: ++%*4e:3.40282346638528859811704183484516925e38:0:4: ++%4e:3.40282346638528859811704183484516925e+38:1:4:0x1.b33334p1: ++%*4e:3.40282346638528859811704183484516925e+38:0:4: ++%4e:infinity:0:-1: ++%*4e:infinity:0:-1: ++%4e:+nan():1:4:nan: ++%*4e:+nan():0:4: ++%4e:+nan(09A_Zaz):1:4:nan: ++%*4e:+nan(09A_Zaz):0:4: ++%4e:+0e0:1:4:0x0: ++%*4e:+0e0:0:4: ++# BZ12701 %4e:+0e+0:0:-1: ++# BZ12701 %*4e:+0e+0:0:-1: ++%4e:+1.17549435082228750796873653722224568e-38:1:4:0x1.19999a: ++%*4e:+1.17549435082228750796873653722224568e-38:0:4: ++%4e:+2.344167378255246830294536494851817472e037:1:4:0x1.266666p1: ++%*4e:+2.344167378255246830294536494851817472e037:0:4: ++%4e:+2.344167378255246830294536494851817472e+37:1:4:0x1.266666p1: ++%*4e:+2.344167378255246830294536494851817472e+37:0:4: ++%4e:+3.40282346638528859811704183484516925e38:1:4:0x1.b33334p1: ++%*4e:+3.40282346638528859811704183484516925e38:0:4: ++%4e:+3.40282346638528859811704183484516925e+38:1:4:0x1.b33334p1: ++%*4e:+3.40282346638528859811704183484516925e+38:0:4: ++%4e:+infinity:1:4:inf: ++%*4e:+infinity:0:4: ++%40e::0:-1: ++%*40e::0:-1: ++%40e:-infinity:1:9:-inf: ++%*40e:-infinity:0:9: ++# BZ12701 %40e:-3.40282346638528859811704183484516925e+38:0:-1: ++# BZ12701 %*40e:-3.40282346638528859811704183484516925e+38:0:-1: ++%40e:-3.40282346638528859811704183484516925e38:1:40:-0x1.a95a5ap11: ++%*40e:-3.40282346638528859811704183484516925e38:0:40: ++# BZ12701 %40e:-2.344167378255246830294536494851817472e+37:0:-1: ++# BZ12701 %*40e:-2.344167378255246830294536494851817472e+37:0:-1: ++# BZ12701 %40e:-2.344167378255246830294536494851817472e037:0:-1: ++# BZ12701 %*40e:-2.344167378255246830294536494851817472e037:0:-1: ++# BZ12701 %40e:-1.17549435082228750796873653722224568e-38:0:-1: ++# BZ12701 %*40e:-1.17549435082228750796873653722224568e-38:0:-1: ++%40e:-0e+0:1:5:-0x0: ++%*40e:-0e+0:0:5: ++%40e:-0e0:1:4:-0x0: ++%*40e:-0e0:0:4: ++%40e:-nan(09A_Zaz):1:13:-nan: ++%*40e:-nan(09A_Zaz):0:13: ++%40e:-nan():1:6:-nan: ++%*40e:-nan():0:6: ++%40e:nan():1:5:nan: ++%*40e:nan():0:5: ++%40e:nan(09A_Zaz):1:12:nan: ++%*40e:nan(09A_Zaz):0:12: ++%40e:0e0:1:3:0x0: ++%*40e:0e0:0:3: ++%40e:0e+0:1:4:0x0: ++%*40e:0e+0:0:4: ++%40e:1.17549435082228750796873653722224568e-38:1:40:0x1.342618p-10: ++%*40e:1.17549435082228750796873653722224568e-38:0:40: ++%40e:2.344167378255246830294536494851817472e037:1:40:0x1.2c0daep1: ++%*40e:2.344167378255246830294536494851817472e037:0:40: ++# BZ12701 %40e:2.344167378255246830294536494851817472e+37:0:-1: ++# BZ12701 %*40e:2.344167378255246830294536494851817472e+37:0:-1: ++%40e:3.40282346638528859811704183484516925e38:1:40:0x1.fffffep127: ++%*40e:3.40282346638528859811704183484516925e38:0:40: ++%40e:3.40282346638528859811704183484516925e+38:1:40:0x1.a95a5ap11: ++%*40e:3.40282346638528859811704183484516925e+38:0:40: ++%40e:infinity:1:8:inf: ++%*40e:infinity:0:8: ++%40e:+nan():1:6:nan: ++%*40e:+nan():0:6: ++%40e:+nan(09A_Zaz):1:13:nan: ++%*40e:+nan(09A_Zaz):0:13: ++%40e:+0e0:1:4:0x0: ++%*40e:+0e0:0:4: ++%40e:+0e+0:1:5:0x0: ++%*40e:+0e+0:0:5: ++# BZ12701 %40e:+1.17549435082228750796873653722224568e-38:0:-1: ++# BZ12701 %*40e:+1.17549435082228750796873653722224568e-38:0:-1: ++# BZ12701 %40e:+2.344167378255246830294536494851817472e037:0:-1: ++# BZ12701 %*40e:+2.344167378255246830294536494851817472e037:0:-1: ++# BZ12701 %40e:+2.344167378255246830294536494851817472e+37:0:-1: ++# BZ12701 %*40e:+2.344167378255246830294536494851817472e+37:0:-1: ++%40e:+3.40282346638528859811704183484516925e38:1:40:0x1.a95a5ap11: ++%*40e:+3.40282346638528859811704183484516925e38:0:40: ++# BZ12701 %40e:+3.40282346638528859811704183484516925e+38:0:-1: ++# BZ12701 %*40e:+3.40282346638528859811704183484516925e+38:0:-1: ++%40e:+infinity:1:9:inf: ++%*40e:+infinity:0:9: ++%48e::0:-1: ++%*48e::0:-1: ++%48e:-infinity:1:9:-inf: ++%*48e:-infinity:0:9: ++%48e:-3.40282346638528859811704183484516925e+38:1:42:-0x1.fffffep127: ++%*48e:-3.40282346638528859811704183484516925e+38:0:42: ++%48e:-3.40282346638528859811704183484516925e38:1:41:-0x1.fffffep127: ++%*48e:-3.40282346638528859811704183484516925e38:0:41: ++%48e:-2.344167378255246830294536494851817472e+37:1:43:-0x1.1a2b3cp124: ++%*48e:-2.344167378255246830294536494851817472e+37:0:43: ++%48e:-2.344167378255246830294536494851817472e037:1:43:-0x1.1a2b3cp124: ++%*48e:-2.344167378255246830294536494851817472e037:0:43: ++%48e:-1.17549435082228750796873653722224568e-38:1:42:-0x1p-126: ++%*48e:-1.17549435082228750796873653722224568e-38:0:42: ++%48e:-0e+0:1:5:-0x0: ++%*48e:-0e+0:0:5: ++%48e:-0e0:1:4:-0x0: ++%*48e:-0e0:0:4: ++%48e:-nan(09A_Zaz):1:13:-nan: ++%*48e:-nan(09A_Zaz):0:13: ++%48e:-nan():1:6:-nan: ++%*48e:-nan():0:6: ++%48e:nan():1:5:nan: ++%*48e:nan():0:5: ++%48e:nan(09A_Zaz):1:12:nan: ++%*48e:nan(09A_Zaz):0:12: ++%48e:0e0:1:3:0x0: ++%*48e:0e0:0:3: ++%48e:0e+0:1:4:0x0: ++%*48e:0e+0:0:4: ++%48e:1.17549435082228750796873653722224568e-38:1:41:0x1p-126: ++%*48e:1.17549435082228750796873653722224568e-38:0:41: ++%48e:2.344167378255246830294536494851817472e037:1:42:0x1.1a2b3cp124: ++%*48e:2.344167378255246830294536494851817472e037:0:42: ++%48e:2.344167378255246830294536494851817472e+37:1:42:0x1.1a2b3cp124: ++%*48e:2.344167378255246830294536494851817472e+37:0:42: ++%48e:3.40282346638528859811704183484516925e38:1:40:0x1.fffffep127: ++%*48e:3.40282346638528859811704183484516925e38:0:40: ++%48e:3.40282346638528859811704183484516925e+38:1:41:0x1.fffffep127: ++%*48e:3.40282346638528859811704183484516925e+38:0:41: ++%48e:infinity:1:8:inf: ++%*48e:infinity:0:8: ++%48e:+nan():1:6:nan: ++%*48e:+nan():0:6: ++%48e:+nan(09A_Zaz):1:13:nan: ++%*48e:+nan(09A_Zaz):0:13: ++%48e:+0e0:1:4:0x0: ++%*48e:+0e0:0:4: ++%48e:+0e+0:1:5:0x0: ++%*48e:+0e+0:0:5: ++%48e:+1.17549435082228750796873653722224568e-38:1:42:0x1p-126: ++%*48e:+1.17549435082228750796873653722224568e-38:0:42: ++%48e:+2.344167378255246830294536494851817472e037:1:43:0x1.1a2b3cp124: ++%*48e:+2.344167378255246830294536494851817472e037:0:43: ++%48e:+2.344167378255246830294536494851817472e+37:1:43:0x1.1a2b3cp124: ++%*48e:+2.344167378255246830294536494851817472e+37:0:43: ++%48e:+3.40282346638528859811704183484516925e38:1:41:0x1.fffffep127: ++%*48e:+3.40282346638528859811704183484516925e38:0:41: ++%48e:+3.40282346638528859811704183484516925e+38:1:42:0x1.fffffep127: ++%*48e:+3.40282346638528859811704183484516925e+38:0:42: ++%48e:+infinity:1:9:inf: ++%*48e:+infinity:0:9: ++%3e: :0:-1: ++%*3e: :0:-1: ++%3e: -infinity:0:-1: ++%*3e: -infinity:0:-1: ++%3e: -3.40282346638528859811704183484516925e+38:1:4:-0x1.8p1: ++%*3e: -3.40282346638528859811704183484516925e+38:0:4: ++%3e: -3.40282346638528859811704183484516925e38:1:4:-0x1.8p1: ++%*3e: -3.40282346638528859811704183484516925e38:0:4: ++%3e: -2.344167378255246830294536494851817472e+37:1:4:-0x1p1: ++%*3e: -2.344167378255246830294536494851817472e+37:0:4: ++%3e: -2.344167378255246830294536494851817472e037:1:4:-0x1p1: ++%*3e: -2.344167378255246830294536494851817472e037:0:4: ++%3e: -1.17549435082228750796873653722224568e-38:1:4:-0x1: ++%*3e: -1.17549435082228750796873653722224568e-38:0:4: ++# BZ12701 %3e: -0e+0:0:-1: ++# BZ12701 %*3e: -0e+0:0:-1: ++# BZ12701 %3e: -0e0:0:-1: ++# BZ12701 %*3e: -0e0:0:-1: ++%3e: -nan(09A_Zaz):0:-1: ++%*3e: -nan(09A_Zaz):0:-1: ++%3e: -nan():0:-1: ++%*3e: -nan():0:-1: ++%3e: nan():1:4:nan: ++%*3e: nan():0:4: ++%3e: nan(09A_Zaz):1:4:nan: ++%*3e: nan(09A_Zaz):0:4: ++%3e: 0e0:1:4:0x0: ++%*3e: 0e0:0:4: ++# BZ12701 %3e: 0e+0:0:-1: ++# BZ12701 %*3e: 0e+0:0:-1: ++%3e: 1.17549435082228750796873653722224568e-38:1:4:0x1.19999a: ++%*3e: 1.17549435082228750796873653722224568e-38:0:4: ++%3e: 2.344167378255246830294536494851817472e037:1:4:0x1.266666p1: ++%*3e: 2.344167378255246830294536494851817472e037:0:4: ++%3e: 2.344167378255246830294536494851817472e+37:1:4:0x1.266666p1: ++%*3e: 2.344167378255246830294536494851817472e+37:0:4: ++%3e: 3.40282346638528859811704183484516925e38:1:4:0x1.b33334p1: ++%*3e: 3.40282346638528859811704183484516925e38:0:4: ++%3e: 3.40282346638528859811704183484516925e+38:1:4:0x1.b33334p1: ++%*3e: 3.40282346638528859811704183484516925e+38:0:4: ++%3e: infinity:1:4:inf: ++%*3e: infinity:0:4: ++%3e: +nan():0:-1: ++%*3e: +nan():0:-1: ++%3e: +nan(09A_Zaz):0:-1: ++%*3e: +nan(09A_Zaz):0:-1: ++# BZ12701 %3e: +0e0:0:-1: ++# BZ12701 %*3e: +0e0:0:-1: ++# BZ12701 %3e: +0e+0:0:-1: ++# BZ12701 %*3e: +0e+0:0:-1: ++%3e: +1.17549435082228750796873653722224568e-38:1:4:0x1: ++%*3e: +1.17549435082228750796873653722224568e-38:0:4: ++%3e: +2.344167378255246830294536494851817472e037:1:4:0x1p1: ++%*3e: +2.344167378255246830294536494851817472e037:0:4: ++%3e: +2.344167378255246830294536494851817472e+37:1:4:0x1p1: ++%*3e: +2.344167378255246830294536494851817472e+37:0:4: ++%3e: +3.40282346638528859811704183484516925e38:1:4:0x1.8p1: ++%*3e: +3.40282346638528859811704183484516925e38:0:4: ++%3e: +3.40282346638528859811704183484516925e+38:1:4:0x1.8p1: ++%*3e: +3.40282346638528859811704183484516925e+38:0:4: ++%3e: +infinity:0:-1: ++%*3e: +infinity:0:-1: ++%48e: :0:-1: ++%*48e: :0:-1: ++%48e: -infinity:1:10:-inf: ++%*48e: -infinity:0:10: ++%48e: -3.40282346638528859811704183484516925e+38:1:43:-0x1.fffffep127: ++%*48e: -3.40282346638528859811704183484516925e+38:0:43: ++%48e: -3.40282346638528859811704183484516925e38:1:42:-0x1.fffffep127: ++%*48e: -3.40282346638528859811704183484516925e38:0:42: ++%48e: -2.344167378255246830294536494851817472e+37:1:44:-0x1.1a2b3cp124: ++%*48e: -2.344167378255246830294536494851817472e+37:0:44: ++%48e: -2.344167378255246830294536494851817472e037:1:44:-0x1.1a2b3cp124: ++%*48e: -2.344167378255246830294536494851817472e037:0:44: ++%48e: -1.17549435082228750796873653722224568e-38:1:43:-0x1p-126: ++%*48e: -1.17549435082228750796873653722224568e-38:0:43: ++%48e: -0e+0:1:6:-0x0: ++%*48e: -0e+0:0:6: ++%48e: -0e0:1:5:-0x0: ++%*48e: -0e0:0:5: ++%48e: -nan(09A_Zaz):1:14:-nan: ++%*48e: -nan(09A_Zaz):0:14: ++%48e: -nan():1:7:-nan: ++%*48e: -nan():0:7: ++%48e: nan():1:6:nan: ++%*48e: nan():0:6: ++%48e: nan(09A_Zaz):1:13:nan: ++%*48e: nan(09A_Zaz):0:13: ++%48e: 0e0:1:4:0x0: ++%*48e: 0e0:0:4: ++%48e: 0e+0:1:5:0x0: ++%*48e: 0e+0:0:5: ++%48e: 1.17549435082228750796873653722224568e-38:1:42:0x1p-126: ++%*48e: 1.17549435082228750796873653722224568e-38:0:42: ++%48e: 2.344167378255246830294536494851817472e037:1:43:0x1.1a2b3cp124: ++%*48e: 2.344167378255246830294536494851817472e037:0:43: ++%48e: 2.344167378255246830294536494851817472e+37:1:43:0x1.1a2b3cp124: ++%*48e: 2.344167378255246830294536494851817472e+37:0:43: ++%48e: 3.40282346638528859811704183484516925e38:1:41:0x1.fffffep127: ++%*48e: 3.40282346638528859811704183484516925e38:0:41: ++%48e: 3.40282346638528859811704183484516925e+38:1:42:0x1.fffffep127: ++%*48e: 3.40282346638528859811704183484516925e+38:0:42: ++%48e: infinity:1:9:inf: ++%*48e: infinity:0:9: ++%48e: +nan():1:7:nan: ++%*48e: +nan():0:7: ++%48e: +nan(09A_Zaz):1:14:nan: ++%*48e: +nan(09A_Zaz):0:14: ++%48e: +0e0:1:5:0x0: ++%*48e: +0e0:0:5: ++%48e: +0e+0:1:6:0x0: ++%*48e: +0e+0:0:6: ++%48e: +1.17549435082228750796873653722224568e-38:1:43:0x1p-126: ++%*48e: +1.17549435082228750796873653722224568e-38:0:43: ++%48e: +2.344167378255246830294536494851817472e037:1:44:0x1.1a2b3cp124: ++%*48e: +2.344167378255246830294536494851817472e037:0:44: ++%48e: +2.344167378255246830294536494851817472e+37:1:44:0x1.1a2b3cp124: ++%*48e: +2.344167378255246830294536494851817472e+37:0:44: ++%48e: +3.40282346638528859811704183484516925e38:1:42:0x1.fffffep127: ++%*48e: +3.40282346638528859811704183484516925e38:0:42: ++%48e: +3.40282346638528859811704183484516925e+38:1:43:0x1.fffffep127: ++%*48e: +3.40282346638528859811704183484516925e+38:0:43: ++%48e: +infinity:1:10:inf: ++%*48e: +infinity:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input +new file mode 100644 +index 0000000000000000..a5aa4175ee0a4641 +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ee.input +@@ -0,0 +1,558 @@ ++%E::0:-1: ++%*E::0:-1: ++%E:-INFINITY:1:9:-inf: ++%*E:-INFINITY:0:9: ++%E:-3.40282346638528859811704183484516925E+38:1:42:-0x1.fffffep127: ++%*E:-3.40282346638528859811704183484516925E+38:0:42: ++%E:-3.40282346638528859811704183484516925E38:1:41:-0x1.fffffep127: ++%*E:-3.40282346638528859811704183484516925E38:0:41: ++%E:-2.344167378255246830294536494851817472E+37:1:43:-0x1.1a2b3cp124: ++%*E:-2.344167378255246830294536494851817472E+37:0:43: ++%E:-2.344167378255246830294536494851817472E037:1:43:-0x1.1a2b3cp124: ++%*E:-2.344167378255246830294536494851817472E037:0:43: ++%E:-1.17549435082228750796873653722224568E-38:1:42:-0x1p-126: ++%*E:-1.17549435082228750796873653722224568E-38:0:42: ++%E:-0E+0:1:5:-0x0: ++%*E:-0E+0:0:5: ++%E:-0E0:1:4:-0x0: ++%*E:-0E0:0:4: ++%E:-NAN(09A_Zaz):1:13:-nan: ++%*E:-NAN(09A_Zaz):0:13: ++%E:-NAN():1:6:-nan: ++%*E:-NAN():0:6: ++%E:NAN():1:5:nan: ++%*E:NAN():0:5: ++%E:NAN(09A_Zaz):1:12:nan: ++%*E:NAN(09A_Zaz):0:12: ++%E:0E0:1:3:0x0: ++%*E:0E0:0:3: ++%E:0E+0:1:4:0x0: ++%*E:0E+0:0:4: ++%E:1.17549435082228750796873653722224568E-38:1:41:0x1p-126: ++%*E:1.17549435082228750796873653722224568E-38:0:41: ++%E:2.344167378255246830294536494851817472E037:1:42:0x1.1a2b3cp124: ++%*E:2.344167378255246830294536494851817472E037:0:42: ++%E:2.344167378255246830294536494851817472E+37:1:42:0x1.1a2b3cp124: ++%*E:2.344167378255246830294536494851817472E+37:0:42: ++%E:3.40282346638528859811704183484516925E38:1:40:0x1.fffffep127: ++%*E:3.40282346638528859811704183484516925E38:0:40: ++%E:3.40282346638528859811704183484516925E+38:1:41:0x1.fffffep127: ++%*E:3.40282346638528859811704183484516925E+38:0:41: ++%E:INFINITY:1:8:inf: ++%*E:INFINITY:0:8: ++%E:+NAN():1:6:nan: ++%*E:+NAN():0:6: ++%E:+NAN(09A_Zaz):1:13:nan: ++%*E:+NAN(09A_Zaz):0:13: ++%E:+0E0:1:4:0x0: ++%*E:+0E0:0:4: ++%E:+0E+0:1:5:0x0: ++%*E:+0E+0:0:5: ++%E:+1.17549435082228750796873653722224568E-38:1:42:0x1p-126: ++%*E:+1.17549435082228750796873653722224568E-38:0:42: ++%E:+2.344167378255246830294536494851817472E037:1:43:0x1.1a2b3cp124: ++%*E:+2.344167378255246830294536494851817472E037:0:43: ++%E:+2.344167378255246830294536494851817472E+37:1:43:0x1.1a2b3cp124: ++%*E:+2.344167378255246830294536494851817472E+37:0:43: ++%E:+3.40282346638528859811704183484516925E38:1:41:0x1.fffffep127: ++%*E:+3.40282346638528859811704183484516925E38:0:41: ++%E:+3.40282346638528859811704183484516925E+38:1:42:0x1.fffffep127: ++%*E:+3.40282346638528859811704183484516925E+38:0:42: ++%E:+INFINITY:1:9:inf: ++%*E:+INFINITY:0:9: ++%1E::0:-1: ++%*1E::0:-1: ++%1E:-INFINITY:0:-1: ++%*1E:-INFINITY:0:-1: ++%1E:-3.40282346638528859811704183484516925E+38:0:-1: ++%*1E:-3.40282346638528859811704183484516925E+38:0:-1: ++%1E:-3.40282346638528859811704183484516925E38:0:-1: ++%*1E:-3.40282346638528859811704183484516925E38:0:-1: ++%1E:-2.344167378255246830294536494851817472E+37:0:-1: ++%*1E:-2.344167378255246830294536494851817472E+37:0:-1: ++%1E:-2.344167378255246830294536494851817472E037:0:-1: ++%*1E:-2.344167378255246830294536494851817472E037:0:-1: ++%1E:-1.17549435082228750796873653722224568E-38:0:-1: ++%*1E:-1.17549435082228750796873653722224568E-38:0:-1: ++%1E:-0E+0:0:-1: ++%*1E:-0E+0:0:-1: ++%1E:-0E0:0:-1: ++%*1E:-0E0:0:-1: ++%1E:-NAN(09A_Zaz):0:-1: ++%*1E:-NAN(09A_Zaz):0:-1: ++%1E:-NAN():0:-1: ++%*1E:-NAN():0:-1: ++%1E:NAN():0:-1: ++%*1E:NAN():0:-1: ++%1E:NAN(09A_Zaz):0:-1: ++%*1E:NAN(09A_Zaz):0:-1: ++%1E:0E0:1:1:0x0: ++%*1E:0E0:0:1: ++%1E:0E+0:1:1:0x0: ++%*1E:0E+0:0:1: ++%1E:1.17549435082228750796873653722224568E-38:1:1:0x1: ++%*1E:1.17549435082228750796873653722224568E-38:0:1: ++%1E:2.344167378255246830294536494851817472E037:1:1:0x1p1: ++%*1E:2.344167378255246830294536494851817472E037:0:1: ++%1E:2.344167378255246830294536494851817472E+37:1:1:0x1p1: ++%*1E:2.344167378255246830294536494851817472E+37:0:1: ++%1E:3.40282346638528859811704183484516925E38:1:1:0x1.8p1: ++%*1E:3.40282346638528859811704183484516925E38:0:1: ++%1E:3.40282346638528859811704183484516925E+38:1:1:0x1.8p1: ++%*1E:3.40282346638528859811704183484516925E+38:0:1: ++%1E:INFINITY:0:-1: ++%*1E:INFINITY:0:-1: ++%1E:+NAN():0:-1: ++%*1E:+NAN():0:-1: ++%1E:+NAN(09A_Zaz):0:-1: ++%*1E:+NAN(09A_Zaz):0:-1: ++%1E:+0E0:0:-1: ++%*1E:+0E0:0:-1: ++%1E:+0E+0:0:-1: ++%*1E:+0E+0:0:-1: ++%1E:+1.17549435082228750796873653722224568E-38:0:-1: ++%*1E:+1.17549435082228750796873653722224568E-38:0:-1: ++%1E:+2.344167378255246830294536494851817472E037:0:-1: ++%*1E:+2.344167378255246830294536494851817472E037:0:-1: ++%1E:+2.344167378255246830294536494851817472E+37:0:-1: ++%*1E:+2.344167378255246830294536494851817472E+37:0:-1: ++%1E:+3.40282346638528859811704183484516925E38:0:-1: ++%*1E:+3.40282346638528859811704183484516925E38:0:-1: ++%1E:+3.40282346638528859811704183484516925E+38:0:-1: ++%*1E:+3.40282346638528859811704183484516925E+38:0:-1: ++%1E:+INFINITY:0:-1: ++%*1E:+INFINITY:0:-1: ++%2E::0:-1: ++%*2E::0:-1: ++%2E:-INFINITY:0:-1: ++%*2E:-INFINITY:0:-1: ++%2E:-3.40282346638528859811704183484516925E+38:1:2:-0x1.8p1: ++%*2E:-3.40282346638528859811704183484516925E+38:0:2: ++%2E:-3.40282346638528859811704183484516925E38:1:2:-0x1.8p1: ++%*2E:-3.40282346638528859811704183484516925E38:0:2: ++%2E:-2.344167378255246830294536494851817472E+37:1:2:-0x1p1: ++%*2E:-2.344167378255246830294536494851817472E+37:0:2: ++%2E:-2.344167378255246830294536494851817472E037:1:2:-0x1p1: ++%*2E:-2.344167378255246830294536494851817472E037:0:2: ++%2E:-1.17549435082228750796873653722224568E-38:1:2:-0x1: ++%*2E:-1.17549435082228750796873653722224568E-38:0:2: ++%2E:-0E+0:1:2:-0x0: ++%*2E:-0E+0:0:2: ++%2E:-0E0:1:2:-0x0: ++%*2E:-0E0:0:2: ++%2E:-NAN(09A_Zaz):0:-1: ++%*2E:-NAN(09A_Zaz):0:-1: ++%2E:-NAN():0:-1: ++%*2E:-NAN():0:-1: ++%2E:NAN():0:-1: ++%*2E:NAN():0:-1: ++%2E:NAN(09A_Zaz):0:-1: ++%*2E:NAN(09A_Zaz):0:-1: ++# BZ12701 %2E:0E0:0:-1: ++# BZ12701 %*2E:0E0:0:-1: ++# BZ12701 %2E:0E+0:0:-1: ++# BZ12701 %*2E:0E+0:0:-1: ++%2E:1.17549435082228750796873653722224568E-38:1:2:0x1: ++%*2E:1.17549435082228750796873653722224568E-38:0:2: ++%2E:2.344167378255246830294536494851817472E037:1:2:0x1p1: ++%*2E:2.344167378255246830294536494851817472E037:0:2: ++%2E:2.344167378255246830294536494851817472E+37:1:2:0x1p1: ++%*2E:2.344167378255246830294536494851817472E+37:0:2: ++%2E:3.40282346638528859811704183484516925E38:1:2:0x1.8p1: ++%*2E:3.40282346638528859811704183484516925E38:0:2: ++%2E:3.40282346638528859811704183484516925E+38:1:2:0x1.8p1: ++%*2E:3.40282346638528859811704183484516925E+38:0:2: ++%2E:INFINITY:0:-1: ++%*2E:INFINITY:0:-1: ++%2E:+NAN():0:-1: ++%*2E:+NAN():0:-1: ++%2E:+NAN(09A_Zaz):0:-1: ++%*2E:+NAN(09A_Zaz):0:-1: ++%2E:+0E0:1:2:0x0: ++%*2E:+0E0:0:2: ++%2E:+0E+0:1:2:0x0: ++%*2E:+0E+0:0:2: ++%2E:+1.17549435082228750796873653722224568E-38:1:2:0x1: ++%*2E:+1.17549435082228750796873653722224568E-38:0:2: ++%2E:+2.344167378255246830294536494851817472E037:1:2:0x1p1: ++%*2E:+2.344167378255246830294536494851817472E037:0:2: ++%2E:+2.344167378255246830294536494851817472E+37:1:2:0x1p1: ++%*2E:+2.344167378255246830294536494851817472E+37:0:2: ++%2E:+3.40282346638528859811704183484516925E38:1:2:0x1.8p1: ++%*2E:+3.40282346638528859811704183484516925E38:0:2: ++%2E:+3.40282346638528859811704183484516925E+38:1:2:0x1.8p1: ++%*2E:+3.40282346638528859811704183484516925E+38:0:2: ++%2E:+INFINITY:0:-1: ++%*2E:+INFINITY:0:-1: ++%3E::0:-1: ++%*3E::0:-1: ++%3E:-INFINITY:0:-1: ++%*3E:-INFINITY:0:-1: ++%3E:-3.40282346638528859811704183484516925E+38:1:3:-0x1.8p1: ++%*3E:-3.40282346638528859811704183484516925E+38:0:3: ++%3E:-3.40282346638528859811704183484516925E38:1:3:-0x1.8p1: ++%*3E:-3.40282346638528859811704183484516925E38:0:3: ++%3E:-2.344167378255246830294536494851817472E+37:1:3:-0x1p1: ++%*3E:-2.344167378255246830294536494851817472E+37:0:3: ++%3E:-2.344167378255246830294536494851817472E037:1:3:-0x1p1: ++%*3E:-2.344167378255246830294536494851817472E037:0:3: ++%3E:-1.17549435082228750796873653722224568E-38:1:3:-0x1: ++%*3E:-1.17549435082228750796873653722224568E-38:0:3: ++# BZ12701 %3E:-0E+0:0:-1: ++# BZ12701 %*3E:-0E+0:0:-1: ++# BZ12701 %3E:-0E0:0:-1: ++# BZ12701 %*3E:-0E0:0:-1: ++%3E:-NAN(09A_Zaz):0:-1: ++%*3E:-NAN(09A_Zaz):0:-1: ++%3E:-NAN():0:-1: ++%*3E:-NAN():0:-1: ++%3E:NAN():1:3:nan: ++%*3E:NAN():0:3: ++%3E:NAN(09A_Zaz):1:3:nan: ++%*3E:NAN(09A_Zaz):0:3: ++%3E:0E0:1:3:0x0: ++%*3E:0E0:0:3: ++# BZ12701 %3E:0E+0:0:-1: ++# BZ12701 %*3E:0E+0:0:-1: ++%3E:1.17549435082228750796873653722224568E-38:1:3:0x1.19999a: ++%*3E:1.17549435082228750796873653722224568E-38:0:3: ++%3E:2.344167378255246830294536494851817472E037:1:3:0x1.266666p1: ++%*3E:2.344167378255246830294536494851817472E037:0:3: ++%3E:2.344167378255246830294536494851817472E+37:1:3:0x1.266666p1: ++%*3E:2.344167378255246830294536494851817472E+37:0:3: ++%3E:3.40282346638528859811704183484516925E38:1:3:0x1.b33334p1: ++%*3E:3.40282346638528859811704183484516925E38:0:3: ++%3E:3.40282346638528859811704183484516925E+38:1:3:0x1.b33334p1: ++%*3E:3.40282346638528859811704183484516925E+38:0:3: ++%3E:INFINITY:1:3:inf: ++%*3E:INFINITY:0:3: ++%3E:+NAN():0:-1: ++%*3E:+NAN():0:-1: ++%3E:+NAN(09A_Zaz):0:-1: ++%*3E:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3E:+0E0:0:-1: ++# BZ12701 %*3E:+0E0:0:-1: ++# BZ12701 %3E:+0E+0:0:-1: ++# BZ12701 %*3E:+0E+0:0:-1: ++%3E:+1.17549435082228750796873653722224568E-38:1:3:0x1: ++%*3E:+1.17549435082228750796873653722224568E-38:0:3: ++%3E:+2.344167378255246830294536494851817472E037:1:3:0x1p1: ++%*3E:+2.344167378255246830294536494851817472E037:0:3: ++%3E:+2.344167378255246830294536494851817472E+37:1:3:0x1p1: ++%*3E:+2.344167378255246830294536494851817472E+37:0:3: ++%3E:+3.40282346638528859811704183484516925E38:1:3:0x1.8p1: ++%*3E:+3.40282346638528859811704183484516925E38:0:3: ++%3E:+3.40282346638528859811704183484516925E+38:1:3:0x1.8p1: ++%*3E:+3.40282346638528859811704183484516925E+38:0:3: ++%3E:+INFINITY:0:-1: ++%*3E:+INFINITY:0:-1: ++%4E::0:-1: ++%*4E::0:-1: ++%4E:-INFINITY:1:4:-inf: ++%*4E:-INFINITY:0:4: ++%4E:-3.40282346638528859811704183484516925E+38:1:4:-0x1.b33334p1: ++%*4E:-3.40282346638528859811704183484516925E+38:0:4: ++%4E:-3.40282346638528859811704183484516925E38:1:4:-0x1.b33334p1: ++%*4E:-3.40282346638528859811704183484516925E38:0:4: ++%4E:-2.344167378255246830294536494851817472E+37:1:4:-0x1.266666p1: ++%*4E:-2.344167378255246830294536494851817472E+37:0:4: ++%4E:-2.344167378255246830294536494851817472E037:1:4:-0x1.266666p1: ++%*4E:-2.344167378255246830294536494851817472E037:0:4: ++%4E:-1.17549435082228750796873653722224568E-38:1:4:-0x1.19999a: ++%*4E:-1.17549435082228750796873653722224568E-38:0:4: ++# BZ12701 %4E:-0E+0:0:-1: ++# BZ12701 %*4E:-0E+0:0:-1: ++%4E:-0E0:1:4:-0x0: ++%*4E:-0E0:0:4: ++%4E:-NAN(09A_Zaz):1:4:-nan: ++%*4E:-NAN(09A_Zaz):0:4: ++%4E:-NAN():1:4:-nan: ++%*4E:-NAN():0:4: ++%4E:NAN():0:-1: ++%*4E:NAN():0:-1: ++%4E:NAN(09A_Zaz):0:-1: ++%*4E:NAN(09A_Zaz):0:-1: ++%4E:0E0:1:3:0x0: ++%*4E:0E0:0:3: ++%4E:0E+0:1:4:0x0: ++%*4E:0E+0:0:4: ++%4E:1.17549435082228750796873653722224568E-38:1:4:0x1.2b851e: ++%*4E:1.17549435082228750796873653722224568E-38:0:4: ++%4E:2.344167378255246830294536494851817472E037:1:4:0x1.2b851ep1: ++%*4E:2.344167378255246830294536494851817472E037:0:4: ++%4E:2.344167378255246830294536494851817472E+37:1:4:0x1.2b851ep1: ++%*4E:2.344167378255246830294536494851817472E+37:0:4: ++%4E:3.40282346638528859811704183484516925E38:1:4:0x1.b33334p1: ++%*4E:3.40282346638528859811704183484516925E38:0:4: ++%4E:3.40282346638528859811704183484516925E+38:1:4:0x1.b33334p1: ++%*4E:3.40282346638528859811704183484516925E+38:0:4: ++%4E:INFINITY:0:-1: ++%*4E:INFINITY:0:-1: ++%4E:+NAN():1:4:nan: ++%*4E:+NAN():0:4: ++%4E:+NAN(09A_Zaz):1:4:nan: ++%*4E:+NAN(09A_Zaz):0:4: ++%4E:+0E0:1:4:0x0: ++%*4E:+0E0:0:4: ++# BZ12701 %4E:+0E+0:0:-1: ++# BZ12701 %*4E:+0E+0:0:-1: ++%4E:+1.17549435082228750796873653722224568E-38:1:4:0x1.19999a: ++%*4E:+1.17549435082228750796873653722224568E-38:0:4: ++%4E:+2.344167378255246830294536494851817472E037:1:4:0x1.266666p1: ++%*4E:+2.344167378255246830294536494851817472E037:0:4: ++%4E:+2.344167378255246830294536494851817472E+37:1:4:0x1.266666p1: ++%*4E:+2.344167378255246830294536494851817472E+37:0:4: ++%4E:+3.40282346638528859811704183484516925E38:1:4:0x1.b33334p1: ++%*4E:+3.40282346638528859811704183484516925E38:0:4: ++%4E:+3.40282346638528859811704183484516925E+38:1:4:0x1.b33334p1: ++%*4E:+3.40282346638528859811704183484516925E+38:0:4: ++%4E:+INFINITY:1:4:inf: ++%*4E:+INFINITY:0:4: ++%40E::0:-1: ++%*40E::0:-1: ++%40E:-INFINITY:1:9:-inf: ++%*40E:-INFINITY:0:9: ++# BZ12701 %40E:-3.40282346638528859811704183484516925E+38:0:-1: ++# BZ12701 %*40E:-3.40282346638528859811704183484516925E+38:0:-1: ++%40E:-3.40282346638528859811704183484516925E38:1:40:-0x1.a95a5ap11: ++%*40E:-3.40282346638528859811704183484516925E38:0:40: ++# BZ12701 %40E:-2.344167378255246830294536494851817472E+37:0:-1: ++# BZ12701 %*40E:-2.344167378255246830294536494851817472E+37:0:-1: ++# BZ12701 %40E:-2.344167378255246830294536494851817472E037:0:-1: ++# BZ12701 %*40E:-2.344167378255246830294536494851817472E037:0:-1: ++# BZ12701 %40E:-1.17549435082228750796873653722224568E-38:0:-1: ++# BZ12701 %*40E:-1.17549435082228750796873653722224568E-38:0:-1: ++%40E:-0E+0:1:5:-0x0: ++%*40E:-0E+0:0:5: ++%40E:-0E0:1:4:-0x0: ++%*40E:-0E0:0:4: ++%40E:-NAN(09A_Zaz):1:13:-nan: ++%*40E:-NAN(09A_Zaz):0:13: ++%40E:-NAN():1:6:-nan: ++%*40E:-NAN():0:6: ++%40E:NAN():1:5:nan: ++%*40E:NAN():0:5: ++%40E:NAN(09A_Zaz):1:12:nan: ++%*40E:NAN(09A_Zaz):0:12: ++%40E:0E0:1:3:0x0: ++%*40E:0E0:0:3: ++%40E:0E+0:1:4:0x0: ++%*40E:0E+0:0:4: ++%40E:1.17549435082228750796873653722224568E-38:1:40:0x1.342618p-10: ++%*40E:1.17549435082228750796873653722224568E-38:0:40: ++%40E:2.344167378255246830294536494851817472E037:1:40:0x1.2c0daep1: ++%*40E:2.344167378255246830294536494851817472E037:0:40: ++# BZ12701 %40E:2.344167378255246830294536494851817472E+37:0:-1: ++# BZ12701 %*40E:2.344167378255246830294536494851817472E+37:0:-1: ++%40E:3.40282346638528859811704183484516925E38:1:40:0x1.fffffep127: ++%*40E:3.40282346638528859811704183484516925E38:0:40: ++%40E:3.40282346638528859811704183484516925E+38:1:40:0x1.a95a5ap11: ++%*40E:3.40282346638528859811704183484516925E+38:0:40: ++%40E:INFINITY:1:8:inf: ++%*40E:INFINITY:0:8: ++%40E:+NAN():1:6:nan: ++%*40E:+NAN():0:6: ++%40E:+NAN(09A_Zaz):1:13:nan: ++%*40E:+NAN(09A_Zaz):0:13: ++%40E:+0E0:1:4:0x0: ++%*40E:+0E0:0:4: ++%40E:+0E+0:1:5:0x0: ++%*40E:+0E+0:0:5: ++# BZ12701 %40E:+1.17549435082228750796873653722224568E-38:0:-1: ++# BZ12701 %*40E:+1.17549435082228750796873653722224568E-38:0:-1: ++# BZ12701 %40E:+2.344167378255246830294536494851817472E037:0:-1: ++# BZ12701 %*40E:+2.344167378255246830294536494851817472E037:0:-1: ++# BZ12701 %40E:+2.344167378255246830294536494851817472E+37:0:-1: ++# BZ12701 %*40E:+2.344167378255246830294536494851817472E+37:0:-1: ++%40E:+3.40282346638528859811704183484516925E38:1:40:0x1.a95a5ap11: ++%*40E:+3.40282346638528859811704183484516925E38:0:40: ++# BZ12701 %40E:+3.40282346638528859811704183484516925E+38:0:-1: ++# BZ12701 %*40E:+3.40282346638528859811704183484516925E+38:0:-1: ++%40E:+INFINITY:1:9:inf: ++%*40E:+INFINITY:0:9: ++%48E::0:-1: ++%*48E::0:-1: ++%48E:-INFINITY:1:9:-inf: ++%*48E:-INFINITY:0:9: ++%48E:-3.40282346638528859811704183484516925E+38:1:42:-0x1.fffffep127: ++%*48E:-3.40282346638528859811704183484516925E+38:0:42: ++%48E:-3.40282346638528859811704183484516925E38:1:41:-0x1.fffffep127: ++%*48E:-3.40282346638528859811704183484516925E38:0:41: ++%48E:-2.344167378255246830294536494851817472E+37:1:43:-0x1.1a2b3cp124: ++%*48E:-2.344167378255246830294536494851817472E+37:0:43: ++%48E:-2.344167378255246830294536494851817472E037:1:43:-0x1.1a2b3cp124: ++%*48E:-2.344167378255246830294536494851817472E037:0:43: ++%48E:-1.17549435082228750796873653722224568E-38:1:42:-0x1p-126: ++%*48E:-1.17549435082228750796873653722224568E-38:0:42: ++%48E:-0E+0:1:5:-0x0: ++%*48E:-0E+0:0:5: ++%48E:-0E0:1:4:-0x0: ++%*48E:-0E0:0:4: ++%48E:-NAN(09A_Zaz):1:13:-nan: ++%*48E:-NAN(09A_Zaz):0:13: ++%48E:-NAN():1:6:-nan: ++%*48E:-NAN():0:6: ++%48E:NAN():1:5:nan: ++%*48E:NAN():0:5: ++%48E:NAN(09A_Zaz):1:12:nan: ++%*48E:NAN(09A_Zaz):0:12: ++%48E:0E0:1:3:0x0: ++%*48E:0E0:0:3: ++%48E:0E+0:1:4:0x0: ++%*48E:0E+0:0:4: ++%48E:1.17549435082228750796873653722224568E-38:1:41:0x1p-126: ++%*48E:1.17549435082228750796873653722224568E-38:0:41: ++%48E:2.344167378255246830294536494851817472E037:1:42:0x1.1a2b3cp124: ++%*48E:2.344167378255246830294536494851817472E037:0:42: ++%48E:2.344167378255246830294536494851817472E+37:1:42:0x1.1a2b3cp124: ++%*48E:2.344167378255246830294536494851817472E+37:0:42: ++%48E:3.40282346638528859811704183484516925E38:1:40:0x1.fffffep127: ++%*48E:3.40282346638528859811704183484516925E38:0:40: ++%48E:3.40282346638528859811704183484516925E+38:1:41:0x1.fffffep127: ++%*48E:3.40282346638528859811704183484516925E+38:0:41: ++%48E:INFINITY:1:8:inf: ++%*48E:INFINITY:0:8: ++%48E:+NAN():1:6:nan: ++%*48E:+NAN():0:6: ++%48E:+NAN(09A_Zaz):1:13:nan: ++%*48E:+NAN(09A_Zaz):0:13: ++%48E:+0E0:1:4:0x0: ++%*48E:+0E0:0:4: ++%48E:+0E+0:1:5:0x0: ++%*48E:+0E+0:0:5: ++%48E:+1.17549435082228750796873653722224568E-38:1:42:0x1p-126: ++%*48E:+1.17549435082228750796873653722224568E-38:0:42: ++%48E:+2.344167378255246830294536494851817472E037:1:43:0x1.1a2b3cp124: ++%*48E:+2.344167378255246830294536494851817472E037:0:43: ++%48E:+2.344167378255246830294536494851817472E+37:1:43:0x1.1a2b3cp124: ++%*48E:+2.344167378255246830294536494851817472E+37:0:43: ++%48E:+3.40282346638528859811704183484516925E38:1:41:0x1.fffffep127: ++%*48E:+3.40282346638528859811704183484516925E38:0:41: ++%48E:+3.40282346638528859811704183484516925E+38:1:42:0x1.fffffep127: ++%*48E:+3.40282346638528859811704183484516925E+38:0:42: ++%48E:+INFINITY:1:9:inf: ++%*48E:+INFINITY:0:9: ++%3E: :0:-1: ++%*3E: :0:-1: ++%3E: -INFINITY:0:-1: ++%*3E: -INFINITY:0:-1: ++%3E: -3.40282346638528859811704183484516925E+38:1:4:-0x1.8p1: ++%*3E: -3.40282346638528859811704183484516925E+38:0:4: ++%3E: -3.40282346638528859811704183484516925E38:1:4:-0x1.8p1: ++%*3E: -3.40282346638528859811704183484516925E38:0:4: ++%3E: -2.344167378255246830294536494851817472E+37:1:4:-0x1p1: ++%*3E: -2.344167378255246830294536494851817472E+37:0:4: ++%3E: -2.344167378255246830294536494851817472E037:1:4:-0x1p1: ++%*3E: -2.344167378255246830294536494851817472E037:0:4: ++%3E: -1.17549435082228750796873653722224568E-38:1:4:-0x1: ++%*3E: -1.17549435082228750796873653722224568E-38:0:4: ++# BZ12701 %3E: -0E+0:0:-1: ++# BZ12701 %*3E: -0E+0:0:-1: ++# BZ12701 %3E: -0E0:0:-1: ++# BZ12701 %*3E: -0E0:0:-1: ++%3E: -NAN(09A_Zaz):0:-1: ++%*3E: -NAN(09A_Zaz):0:-1: ++%3E: -NAN():0:-1: ++%*3E: -NAN():0:-1: ++%3E: NAN():1:4:nan: ++%*3E: NAN():0:4: ++%3E: NAN(09A_Zaz):1:4:nan: ++%*3E: NAN(09A_Zaz):0:4: ++%3E: 0E0:1:4:0x0: ++%*3E: 0E0:0:4: ++# BZ12701 %3E: 0E+0:0:-1: ++# BZ12701 %*3E: 0E+0:0:-1: ++%3E: 1.17549435082228750796873653722224568E-38:1:4:0x1.19999a: ++%*3E: 1.17549435082228750796873653722224568E-38:0:4: ++%3E: 2.344167378255246830294536494851817472E037:1:4:0x1.266666p1: ++%*3E: 2.344167378255246830294536494851817472E037:0:4: ++%3E: 2.344167378255246830294536494851817472E+37:1:4:0x1.266666p1: ++%*3E: 2.344167378255246830294536494851817472E+37:0:4: ++%3E: 3.40282346638528859811704183484516925E38:1:4:0x1.b33334p1: ++%*3E: 3.40282346638528859811704183484516925E38:0:4: ++%3E: 3.40282346638528859811704183484516925E+38:1:4:0x1.b33334p1: ++%*3E: 3.40282346638528859811704183484516925E+38:0:4: ++%3E: INFINITY:1:4:inf: ++%*3E: INFINITY:0:4: ++%3E: +NAN():0:-1: ++%*3E: +NAN():0:-1: ++%3E: +NAN(09A_Zaz):0:-1: ++%*3E: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3E: +0E0:0:-1: ++# BZ12701 %*3E: +0E0:0:-1: ++# BZ12701 %3E: +0E+0:0:-1: ++# BZ12701 %*3E: +0E+0:0:-1: ++%3E: +1.17549435082228750796873653722224568E-38:1:4:0x1: ++%*3E: +1.17549435082228750796873653722224568E-38:0:4: ++%3E: +2.344167378255246830294536494851817472E037:1:4:0x1p1: ++%*3E: +2.344167378255246830294536494851817472E037:0:4: ++%3E: +2.344167378255246830294536494851817472E+37:1:4:0x1p1: ++%*3E: +2.344167378255246830294536494851817472E+37:0:4: ++%3E: +3.40282346638528859811704183484516925E38:1:4:0x1.8p1: ++%*3E: +3.40282346638528859811704183484516925E38:0:4: ++%3E: +3.40282346638528859811704183484516925E+38:1:4:0x1.8p1: ++%*3E: +3.40282346638528859811704183484516925E+38:0:4: ++%3E: +INFINITY:0:-1: ++%*3E: +INFINITY:0:-1: ++%48E: :0:-1: ++%*48E: :0:-1: ++%48E: -INFINITY:1:10:-inf: ++%*48E: -INFINITY:0:10: ++%48E: -3.40282346638528859811704183484516925E+38:1:43:-0x1.fffffep127: ++%*48E: -3.40282346638528859811704183484516925E+38:0:43: ++%48E: -3.40282346638528859811704183484516925E38:1:42:-0x1.fffffep127: ++%*48E: -3.40282346638528859811704183484516925E38:0:42: ++%48E: -2.344167378255246830294536494851817472E+37:1:44:-0x1.1a2b3cp124: ++%*48E: -2.344167378255246830294536494851817472E+37:0:44: ++%48E: -2.344167378255246830294536494851817472E037:1:44:-0x1.1a2b3cp124: ++%*48E: -2.344167378255246830294536494851817472E037:0:44: ++%48E: -1.17549435082228750796873653722224568E-38:1:43:-0x1p-126: ++%*48E: -1.17549435082228750796873653722224568E-38:0:43: ++%48E: -0E+0:1:6:-0x0: ++%*48E: -0E+0:0:6: ++%48E: -0E0:1:5:-0x0: ++%*48E: -0E0:0:5: ++%48E: -NAN(09A_Zaz):1:14:-nan: ++%*48E: -NAN(09A_Zaz):0:14: ++%48E: -NAN():1:7:-nan: ++%*48E: -NAN():0:7: ++%48E: NAN():1:6:nan: ++%*48E: NAN():0:6: ++%48E: NAN(09A_Zaz):1:13:nan: ++%*48E: NAN(09A_Zaz):0:13: ++%48E: 0E0:1:4:0x0: ++%*48E: 0E0:0:4: ++%48E: 0E+0:1:5:0x0: ++%*48E: 0E+0:0:5: ++%48E: 1.17549435082228750796873653722224568E-38:1:42:0x1p-126: ++%*48E: 1.17549435082228750796873653722224568E-38:0:42: ++%48E: 2.344167378255246830294536494851817472E037:1:43:0x1.1a2b3cp124: ++%*48E: 2.344167378255246830294536494851817472E037:0:43: ++%48E: 2.344167378255246830294536494851817472E+37:1:43:0x1.1a2b3cp124: ++%*48E: 2.344167378255246830294536494851817472E+37:0:43: ++%48E: 3.40282346638528859811704183484516925E38:1:41:0x1.fffffep127: ++%*48E: 3.40282346638528859811704183484516925E38:0:41: ++%48E: 3.40282346638528859811704183484516925E+38:1:42:0x1.fffffep127: ++%*48E: 3.40282346638528859811704183484516925E+38:0:42: ++%48E: INFINITY:1:9:inf: ++%*48E: INFINITY:0:9: ++%48E: +NAN():1:7:nan: ++%*48E: +NAN():0:7: ++%48E: +NAN(09A_Zaz):1:14:nan: ++%*48E: +NAN(09A_Zaz):0:14: ++%48E: +0E0:1:5:0x0: ++%*48E: +0E0:0:5: ++%48E: +0E+0:1:6:0x0: ++%*48E: +0E+0:0:6: ++%48E: +1.17549435082228750796873653722224568E-38:1:43:0x1p-126: ++%*48E: +1.17549435082228750796873653722224568E-38:0:43: ++%48E: +2.344167378255246830294536494851817472E037:1:44:0x1.1a2b3cp124: ++%*48E: +2.344167378255246830294536494851817472E037:0:44: ++%48E: +2.344167378255246830294536494851817472E+37:1:44:0x1.1a2b3cp124: ++%*48E: +2.344167378255246830294536494851817472E+37:0:44: ++%48E: +3.40282346638528859811704183484516925E38:1:42:0x1.fffffep127: ++%*48E: +3.40282346638528859811704183484516925E38:0:42: ++%48E: +3.40282346638528859811704183484516925E+38:1:43:0x1.fffffep127: ++%*48E: +3.40282346638528859811704183484516925E+38:0:43: ++%48E: +INFINITY:1:10:inf: ++%*48E: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input +new file mode 100644 +index 0000000000000000..57d9677b1b9650db +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-f.input +@@ -0,0 +1,558 @@ ++%f::0:-1: ++%*f::0:-1: ++%f:-infinity:1:9:-inf: ++%*f:-infinity:0:9: ++%f:-0340282346638528859811704183484516925440.0:1:43:-0x1.fffffep127: ++%*f:-0340282346638528859811704183484516925440.0:0:43: ++%f:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*f:-340282346638528859811704183484516925440:0:40: ++%f:-023441673782552468302945364948518174720.0:1:42:-0x1.1a2b3cp124: ++%*f:-023441673782552468302945364948518174720.0:0:42: ++%f:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*f:-23441673782552468302945364948518174720:0:39: ++%f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:-0x1p-126: ++%*f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%f:-0.0:1:4:-0x0: ++%*f:-0.0:0:4: ++%f:-0:1:2:-0x0: ++%*f:-0:0:2: ++%f:-nan(09A_Zaz):1:13:-nan: ++%*f:-nan(09A_Zaz):0:13: ++%f:-nan():1:6:-nan: ++%*f:-nan():0:6: ++%f:nan():1:5:nan: ++%*f:nan():0:5: ++%f:nan(09A_Zaz):1:12:nan: ++%*f:nan(09A_Zaz):0:12: ++%f:0:1:1:0x0: ++%*f:0:0:1: ++%f:0.0:1:3:0x0: ++%*f:0.0:0:3: ++%f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:75:0x1p-126: ++%*f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:75: ++%f:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*f:23441673782552468302945364948518174720:0:38: ++%f:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*f:023441673782552468302945364948518174720.0:0:41: ++%f:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*f:340282346638528859811704183484516925440:0:39: ++%f:0340282346638528859811704183484516925440.0:1:42:0x1.fffffep127: ++%*f:0340282346638528859811704183484516925440.0:0:42: ++%f:infinity:1:8:inf: ++%*f:infinity:0:8: ++%f:+nan():1:6:nan: ++%*f:+nan():0:6: ++%f:+nan(09A_Zaz):1:13:nan: ++%*f:+nan(09A_Zaz):0:13: ++%f:+0:1:2:0x0: ++%*f:+0:0:2: ++%f:+0.0:1:4:0x0: ++%*f:+0.0:0:4: ++%f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%f:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*f:+23441673782552468302945364948518174720:0:39: ++%f:+023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*f:+023441673782552468302945364948518174720.0:0:42: ++%f:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*f:+340282346638528859811704183484516925440:0:40: ++%f:+0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*f:+0340282346638528859811704183484516925440.0:0:43: ++%f:+infinity:1:9:inf: ++%*f:+infinity:0:9: ++%1f::0:-1: ++%*1f::0:-1: ++%1f:-infinity:0:-1: ++%*1f:-infinity:0:-1: ++%1f:-0340282346638528859811704183484516925440.0:0:-1: ++%*1f:-0340282346638528859811704183484516925440.0:0:-1: ++%1f:-340282346638528859811704183484516925440:0:-1: ++%*1f:-340282346638528859811704183484516925440:0:-1: ++%1f:-023441673782552468302945364948518174720.0:0:-1: ++%*1f:-023441673782552468302945364948518174720.0:0:-1: ++%1f:-23441673782552468302945364948518174720:0:-1: ++%*1f:-23441673782552468302945364948518174720:0:-1: ++%1f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%*1f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%1f:-0.0:0:-1: ++%*1f:-0.0:0:-1: ++%1f:-0:0:-1: ++%*1f:-0:0:-1: ++%1f:-nan(09A_Zaz):0:-1: ++%*1f:-nan(09A_Zaz):0:-1: ++%1f:-nan():0:-1: ++%*1f:-nan():0:-1: ++%1f:nan():0:-1: ++%*1f:nan():0:-1: ++%1f:nan(09A_Zaz):0:-1: ++%*1f:nan(09A_Zaz):0:-1: ++%1f:0:1:1:0x0: ++%*1f:0:0:1: ++%1f:0.0:1:1:0x0: ++%*1f:0.0:0:1: ++%1f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:1:0x0: ++%*1f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:1: ++%1f:23441673782552468302945364948518174720:1:1:0x1p1: ++%*1f:23441673782552468302945364948518174720:0:1: ++%1f:023441673782552468302945364948518174720.0:1:1:0x0: ++%*1f:023441673782552468302945364948518174720.0:0:1: ++%1f:340282346638528859811704183484516925440:1:1:0x1.8p1: ++%*1f:340282346638528859811704183484516925440:0:1: ++%1f:0340282346638528859811704183484516925440.0:1:1:0x0: ++%*1f:0340282346638528859811704183484516925440.0:0:1: ++%1f:infinity:0:-1: ++%*1f:infinity:0:-1: ++%1f:+nan():0:-1: ++%*1f:+nan():0:-1: ++%1f:+nan(09A_Zaz):0:-1: ++%*1f:+nan(09A_Zaz):0:-1: ++%1f:+0:0:-1: ++%*1f:+0:0:-1: ++%1f:+0.0:0:-1: ++%*1f:+0.0:0:-1: ++%1f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%*1f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%1f:+23441673782552468302945364948518174720:0:-1: ++%*1f:+23441673782552468302945364948518174720:0:-1: ++%1f:+023441673782552468302945364948518174720.0:0:-1: ++%*1f:+023441673782552468302945364948518174720.0:0:-1: ++%1f:+340282346638528859811704183484516925440:0:-1: ++%*1f:+340282346638528859811704183484516925440:0:-1: ++%1f:+0340282346638528859811704183484516925440.0:0:-1: ++%*1f:+0340282346638528859811704183484516925440.0:0:-1: ++%1f:+infinity:0:-1: ++%*1f:+infinity:0:-1: ++%2f::0:-1: ++%*2f::0:-1: ++%2f:-infinity:0:-1: ++%*2f:-infinity:0:-1: ++%2f:-0340282346638528859811704183484516925440.0:1:2:-0x0: ++%*2f:-0340282346638528859811704183484516925440.0:0:2: ++%2f:-340282346638528859811704183484516925440:1:2:-0x1.8p1: ++%*2f:-340282346638528859811704183484516925440:0:2: ++%2f:-023441673782552468302945364948518174720.0:1:2:-0x0: ++%*2f:-023441673782552468302945364948518174720.0:0:2: ++%2f:-23441673782552468302945364948518174720:1:2:-0x1p1: ++%*2f:-23441673782552468302945364948518174720:0:2: ++%2f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:-0x0: ++%*2f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2f:-0.0:1:2:-0x0: ++%*2f:-0.0:0:2: ++%2f:-0:1:2:-0x0: ++%*2f:-0:0:2: ++%2f:-nan(09A_Zaz):0:-1: ++%*2f:-nan(09A_Zaz):0:-1: ++%2f:-nan():0:-1: ++%*2f:-nan():0:-1: ++%2f:nan():0:-1: ++%*2f:nan():0:-1: ++%2f:nan(09A_Zaz):0:-1: ++%*2f:nan(09A_Zaz):0:-1: ++%2f:0:1:1:0x0: ++%*2f:0:0:1: ++%2f:0.0:1:2:0x0: ++%*2f:0.0:0:2: ++%2f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:0x0: ++%*2f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2f:23441673782552468302945364948518174720:1:2:0x1.7p4: ++%*2f:23441673782552468302945364948518174720:0:2: ++%2f:023441673782552468302945364948518174720.0:1:2:0x1p1: ++%*2f:023441673782552468302945364948518174720.0:0:2: ++%2f:340282346638528859811704183484516925440:1:2:0x1.1p5: ++%*2f:340282346638528859811704183484516925440:0:2: ++%2f:0340282346638528859811704183484516925440.0:1:2:0x1.8p1: ++%*2f:0340282346638528859811704183484516925440.0:0:2: ++%2f:infinity:0:-1: ++%*2f:infinity:0:-1: ++%2f:+nan():0:-1: ++%*2f:+nan():0:-1: ++%2f:+nan(09A_Zaz):0:-1: ++%*2f:+nan(09A_Zaz):0:-1: ++%2f:+0:1:2:0x0: ++%*2f:+0:0:2: ++%2f:+0.0:1:2:0x0: ++%*2f:+0.0:0:2: ++%2f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:0x0: ++%*2f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2f:+23441673782552468302945364948518174720:1:2:0x1p1: ++%*2f:+23441673782552468302945364948518174720:0:2: ++%2f:+023441673782552468302945364948518174720.0:1:2:0x0: ++%*2f:+023441673782552468302945364948518174720.0:0:2: ++%2f:+340282346638528859811704183484516925440:1:2:0x1.8p1: ++%*2f:+340282346638528859811704183484516925440:0:2: ++%2f:+0340282346638528859811704183484516925440.0:1:2:0x0: ++%*2f:+0340282346638528859811704183484516925440.0:0:2: ++%2f:+infinity:0:-1: ++%*2f:+infinity:0:-1: ++%3f::0:-1: ++%*3f::0:-1: ++%3f:-infinity:0:-1: ++%*3f:-infinity:0:-1: ++%3f:-0340282346638528859811704183484516925440.0:1:3:-0x1.8p1: ++%*3f:-0340282346638528859811704183484516925440.0:0:3: ++%3f:-340282346638528859811704183484516925440:1:3:-0x1.1p5: ++%*3f:-340282346638528859811704183484516925440:0:3: ++%3f:-023441673782552468302945364948518174720.0:1:3:-0x1p1: ++%*3f:-023441673782552468302945364948518174720.0:0:3: ++%3f:-23441673782552468302945364948518174720:1:3:-0x1.7p4: ++%*3f:-23441673782552468302945364948518174720:0:3: ++%3f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:-0x0: ++%*3f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3f:-0.0:1:3:-0x0: ++%*3f:-0.0:0:3: ++%3f:-0:1:2:-0x0: ++%*3f:-0:0:2: ++%3f:-nan(09A_Zaz):0:-1: ++%*3f:-nan(09A_Zaz):0:-1: ++%3f:-nan():0:-1: ++%*3f:-nan():0:-1: ++%3f:nan():1:3:nan: ++%*3f:nan():0:3: ++%3f:nan(09A_Zaz):1:3:nan: ++%*3f:nan(09A_Zaz):0:3: ++%3f:0:1:1:0x0: ++%*3f:0:0:1: ++%3f:0.0:1:3:0x0: ++%*3f:0.0:0:3: ++%3f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:0x0: ++%*3f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3f:23441673782552468302945364948518174720:1:3:0x1.d4p7: ++%*3f:23441673782552468302945364948518174720:0:3: ++%3f:023441673782552468302945364948518174720.0:1:3:0x1.7p4: ++%*3f:023441673782552468302945364948518174720.0:0:3: ++%3f:340282346638528859811704183484516925440:1:3:0x1.54p8: ++%*3f:340282346638528859811704183484516925440:0:3: ++%3f:0340282346638528859811704183484516925440.0:1:3:0x1.1p5: ++%*3f:0340282346638528859811704183484516925440.0:0:3: ++%3f:infinity:1:3:inf: ++%*3f:infinity:0:3: ++%3f:+nan():0:-1: ++%*3f:+nan():0:-1: ++%3f:+nan(09A_Zaz):0:-1: ++%*3f:+nan(09A_Zaz):0:-1: ++%3f:+0:1:2:0x0: ++%*3f:+0:0:2: ++%3f:+0.0:1:3:0x0: ++%*3f:+0.0:0:3: ++%3f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:0x0: ++%*3f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3f:+23441673782552468302945364948518174720:1:3:0x1.7p4: ++%*3f:+23441673782552468302945364948518174720:0:3: ++%3f:+023441673782552468302945364948518174720.0:1:3:0x1p1: ++%*3f:+023441673782552468302945364948518174720.0:0:3: ++%3f:+340282346638528859811704183484516925440:1:3:0x1.1p5: ++%*3f:+340282346638528859811704183484516925440:0:3: ++%3f:+0340282346638528859811704183484516925440.0:1:3:0x1.8p1: ++%*3f:+0340282346638528859811704183484516925440.0:0:3: ++%3f:+infinity:0:-1: ++%*3f:+infinity:0:-1: ++%4f::0:-1: ++%*4f::0:-1: ++%4f:-infinity:1:4:-inf: ++%*4f:-infinity:0:4: ++%4f:-0340282346638528859811704183484516925440.0:1:4:-0x1.1p5: ++%*4f:-0340282346638528859811704183484516925440.0:0:4: ++%4f:-340282346638528859811704183484516925440:1:4:-0x1.54p8: ++%*4f:-340282346638528859811704183484516925440:0:4: ++%4f:-023441673782552468302945364948518174720.0:1:4:-0x1.7p4: ++%*4f:-023441673782552468302945364948518174720.0:0:4: ++%4f:-23441673782552468302945364948518174720:1:4:-0x1.d4p7: ++%*4f:-23441673782552468302945364948518174720:0:4: ++%4f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:-0x0: ++%*4f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4f:-0.0:1:4:-0x0: ++%*4f:-0.0:0:4: ++%4f:-0:1:2:-0x0: ++%*4f:-0:0:2: ++%4f:-nan(09A_Zaz):1:4:-nan: ++%*4f:-nan(09A_Zaz):0:4: ++%4f:-nan():1:4:-nan: ++%*4f:-nan():0:4: ++%4f:nan():0:-1: ++%*4f:nan():0:-1: ++%4f:nan(09A_Zaz):0:-1: ++%*4f:nan(09A_Zaz):0:-1: ++%4f:0:1:1:0x0: ++%*4f:0:0:1: ++%4f:0.0:1:3:0x0: ++%*4f:0.0:0:3: ++%4f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*4f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4f:23441673782552468302945364948518174720:1:4:0x1.25p11: ++%*4f:23441673782552468302945364948518174720:0:4: ++%4f:023441673782552468302945364948518174720.0:1:4:0x1.d4p7: ++%*4f:023441673782552468302945364948518174720.0:0:4: ++%4f:340282346638528859811704183484516925440:1:4:0x1.a94p11: ++%*4f:340282346638528859811704183484516925440:0:4: ++%4f:0340282346638528859811704183484516925440.0:1:4:0x1.54p8: ++%*4f:0340282346638528859811704183484516925440.0:0:4: ++%4f:infinity:0:-1: ++%*4f:infinity:0:-1: ++%4f:+nan():1:4:nan: ++%*4f:+nan():0:4: ++%4f:+nan(09A_Zaz):1:4:nan: ++%*4f:+nan(09A_Zaz):0:4: ++%4f:+0:1:2:0x0: ++%*4f:+0:0:2: ++%4f:+0.0:1:4:0x0: ++%*4f:+0.0:0:4: ++%4f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*4f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4f:+23441673782552468302945364948518174720:1:4:0x1.d4p7: ++%*4f:+23441673782552468302945364948518174720:0:4: ++%4f:+023441673782552468302945364948518174720.0:1:4:0x1.7p4: ++%*4f:+023441673782552468302945364948518174720.0:0:4: ++%4f:+340282346638528859811704183484516925440:1:4:0x1.54p8: ++%*4f:+340282346638528859811704183484516925440:0:4: ++%4f:+0340282346638528859811704183484516925440.0:1:4:0x1.1p5: ++%*4f:+0340282346638528859811704183484516925440.0:0:4: ++%4f:+infinity:1:4:inf: ++%*4f:+infinity:0:4: ++%41f::0:-1: ++%*41f::0:-1: ++%41f:-infinity:1:9:-inf: ++%*41f:-infinity:0:9: ++%41f:-0340282346638528859811704183484516925440.0:1:41:-0x1.fffffep127: ++%*41f:-0340282346638528859811704183484516925440.0:0:41: ++%41f:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*41f:-340282346638528859811704183484516925440:0:40: ++%41f:-023441673782552468302945364948518174720.0:1:41:-0x1.1a2b3cp124: ++%*41f:-023441673782552468302945364948518174720.0:0:41: ++%41f:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*41f:-23441673782552468302945364948518174720:0:39: ++%41f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:-0x1.b38fbap-127: ++%*41f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41f:-0.0:1:4:-0x0: ++%*41f:-0.0:0:4: ++%41f:-0:1:2:-0x0: ++%*41f:-0:0:2: ++%41f:-nan(09A_Zaz):1:13:-nan: ++%*41f:-nan(09A_Zaz):0:13: ++%41f:-nan():1:6:-nan: ++%*41f:-nan():0:6: ++%41f:nan():1:5:nan: ++%*41f:nan():0:5: ++%41f:nan(09A_Zaz):1:12:nan: ++%*41f:nan(09A_Zaz):0:12: ++%41f:0:1:1:0x0: ++%*41f:0:0:1: ++%41f:0.0:1:3:0x0: ++%*41f:0.0:0:3: ++%41f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:0x1.df1e1ap-127: ++%*41f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41f:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*41f:23441673782552468302945364948518174720:0:38: ++%41f:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*41f:023441673782552468302945364948518174720.0:0:41: ++%41f:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*41f:340282346638528859811704183484516925440:0:39: ++%41f:0340282346638528859811704183484516925440.0:1:41:0x1.fffffep127: ++%*41f:0340282346638528859811704183484516925440.0:0:41: ++%41f:infinity:1:8:inf: ++%*41f:infinity:0:8: ++%41f:+nan():1:6:nan: ++%*41f:+nan():0:6: ++%41f:+nan(09A_Zaz):1:13:nan: ++%*41f:+nan(09A_Zaz):0:13: ++%41f:+0:1:2:0x0: ++%*41f:+0:0:2: ++%41f:+0.0:1:4:0x0: ++%*41f:+0.0:0:4: ++%41f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:0x1.b38fbap-127: ++%*41f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41f:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*41f:+23441673782552468302945364948518174720:0:39: ++%41f:+023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*41f:+023441673782552468302945364948518174720.0:0:41: ++%41f:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*41f:+340282346638528859811704183484516925440:0:40: ++%41f:+0340282346638528859811704183484516925440.0:1:41:0x1.fffffep127: ++%*41f:+0340282346638528859811704183484516925440.0:0:41: ++%41f:+infinity:1:9:inf: ++%*41f:+infinity:0:9: ++%80f::0:-1: ++%*80f::0:-1: ++%80f:-infinity:1:9:-inf: ++%*80f:-infinity:0:9: ++%80f:-0340282346638528859811704183484516925440.0:1:43:-0x1.fffffep127: ++%*80f:-0340282346638528859811704183484516925440.0:0:43: ++%80f:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*80f:-340282346638528859811704183484516925440:0:40: ++%80f:-023441673782552468302945364948518174720.0:1:42:-0x1.1a2b3cp124: ++%*80f:-023441673782552468302945364948518174720.0:0:42: ++%80f:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*80f:-23441673782552468302945364948518174720:0:39: ++%80f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:-0x1p-126: ++%*80f:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80f:-0.0:1:4:-0x0: ++%*80f:-0.0:0:4: ++%80f:-0:1:2:-0x0: ++%*80f:-0:0:2: ++%80f:-nan(09A_Zaz):1:13:-nan: ++%*80f:-nan(09A_Zaz):0:13: ++%80f:-nan():1:6:-nan: ++%*80f:-nan():0:6: ++%80f:nan():1:5:nan: ++%*80f:nan():0:5: ++%80f:nan(09A_Zaz):1:12:nan: ++%*80f:nan(09A_Zaz):0:12: ++%80f:0:1:1:0x0: ++%*80f:0:0:1: ++%80f:0.0:1:3:0x0: ++%*80f:0.0:0:3: ++%80f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:75:0x1p-126: ++%*80f:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:75: ++%80f:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*80f:23441673782552468302945364948518174720:0:38: ++%80f:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*80f:023441673782552468302945364948518174720.0:0:41: ++%80f:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*80f:340282346638528859811704183484516925440:0:39: ++%80f:0340282346638528859811704183484516925440.0:1:42:0x1.fffffep127: ++%*80f:0340282346638528859811704183484516925440.0:0:42: ++%80f:infinity:1:8:inf: ++%*80f:infinity:0:8: ++%80f:+nan():1:6:nan: ++%*80f:+nan():0:6: ++%80f:+nan(09A_Zaz):1:13:nan: ++%*80f:+nan(09A_Zaz):0:13: ++%80f:+0:1:2:0x0: ++%*80f:+0:0:2: ++%80f:+0.0:1:4:0x0: ++%*80f:+0.0:0:4: ++%80f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*80f:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80f:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*80f:+23441673782552468302945364948518174720:0:39: ++%80f:+023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*80f:+023441673782552468302945364948518174720.0:0:42: ++%80f:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*80f:+340282346638528859811704183484516925440:0:40: ++%80f:+0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*80f:+0340282346638528859811704183484516925440.0:0:43: ++%80f:+infinity:1:9:inf: ++%*80f:+infinity:0:9: ++%3f: :0:-1: ++%*3f: :0:-1: ++%3f: -infinity:0:-1: ++%*3f: -infinity:0:-1: ++%3f: -0340282346638528859811704183484516925440.0:1:4:-0x1.8p1: ++%*3f: -0340282346638528859811704183484516925440.0:0:4: ++%3f: -340282346638528859811704183484516925440:1:4:-0x1.1p5: ++%*3f: -340282346638528859811704183484516925440:0:4: ++%3f: -023441673782552468302945364948518174720.0:1:4:-0x1p1: ++%*3f: -023441673782552468302945364948518174720.0:0:4: ++%3f: -23441673782552468302945364948518174720:1:4:-0x1.7p4: ++%*3f: -23441673782552468302945364948518174720:0:4: ++%3f: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:-0x0: ++%*3f: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3f: -0.0:1:4:-0x0: ++%*3f: -0.0:0:4: ++%3f: -0:1:3:-0x0: ++%*3f: -0:0:3: ++%3f: -nan(09A_Zaz):0:-1: ++%*3f: -nan(09A_Zaz):0:-1: ++%3f: -nan():0:-1: ++%*3f: -nan():0:-1: ++%3f: nan():1:4:nan: ++%*3f: nan():0:4: ++%3f: nan(09A_Zaz):1:4:nan: ++%*3f: nan(09A_Zaz):0:4: ++%3f: 0:1:2:0x0: ++%*3f: 0:0:2: ++%3f: 0.0:1:4:0x0: ++%*3f: 0.0:0:4: ++%3f: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*3f: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3f: 23441673782552468302945364948518174720:1:4:0x1.d4p7: ++%*3f: 23441673782552468302945364948518174720:0:4: ++%3f: 023441673782552468302945364948518174720.0:1:4:0x1.7p4: ++%*3f: 023441673782552468302945364948518174720.0:0:4: ++%3f: 340282346638528859811704183484516925440:1:4:0x1.54p8: ++%*3f: 340282346638528859811704183484516925440:0:4: ++%3f: 0340282346638528859811704183484516925440.0:1:4:0x1.1p5: ++%*3f: 0340282346638528859811704183484516925440.0:0:4: ++%3f: infinity:1:4:inf: ++%*3f: infinity:0:4: ++%3f: +nan():0:-1: ++%*3f: +nan():0:-1: ++%3f: +nan(09A_Zaz):0:-1: ++%*3f: +nan(09A_Zaz):0:-1: ++%3f: +0:1:3:0x0: ++%*3f: +0:0:3: ++%3f: +0.0:1:4:0x0: ++%*3f: +0.0:0:4: ++%3f: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*3f: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3f: +23441673782552468302945364948518174720:1:4:0x1.7p4: ++%*3f: +23441673782552468302945364948518174720:0:4: ++%3f: +023441673782552468302945364948518174720.0:1:4:0x1p1: ++%*3f: +023441673782552468302945364948518174720.0:0:4: ++%3f: +340282346638528859811704183484516925440:1:4:0x1.1p5: ++%*3f: +340282346638528859811704183484516925440:0:4: ++%3f: +0340282346638528859811704183484516925440.0:1:4:0x1.8p1: ++%*3f: +0340282346638528859811704183484516925440.0:0:4: ++%3f: +infinity:0:-1: ++%*3f: +infinity:0:-1: ++%80f: :0:-1: ++%*80f: :0:-1: ++%80f: -infinity:1:10:-inf: ++%*80f: -infinity:0:10: ++%80f: -0340282346638528859811704183484516925440.0:1:44:-0x1.fffffep127: ++%*80f: -0340282346638528859811704183484516925440.0:0:44: ++%80f: -340282346638528859811704183484516925440:1:41:-0x1.fffffep127: ++%*80f: -340282346638528859811704183484516925440:0:41: ++%80f: -023441673782552468302945364948518174720.0:1:43:-0x1.1a2b3cp124: ++%*80f: -023441673782552468302945364948518174720.0:0:43: ++%80f: -23441673782552468302945364948518174720:1:40:-0x1.1a2b3cp124: ++%*80f: -23441673782552468302945364948518174720:0:40: ++%80f: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:77:-0x1p-126: ++%*80f: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:77: ++%80f: -0.0:1:5:-0x0: ++%*80f: -0.0:0:5: ++%80f: -0:1:3:-0x0: ++%*80f: -0:0:3: ++%80f: -nan(09A_Zaz):1:14:-nan: ++%*80f: -nan(09A_Zaz):0:14: ++%80f: -nan():1:7:-nan: ++%*80f: -nan():0:7: ++%80f: nan():1:6:nan: ++%*80f: nan():0:6: ++%80f: nan(09A_Zaz):1:13:nan: ++%*80f: nan(09A_Zaz):0:13: ++%80f: 0:1:2:0x0: ++%*80f: 0:0:2: ++%80f: 0.0:1:4:0x0: ++%*80f: 0.0:0:4: ++%80f: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*80f: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80f: 23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*80f: 23441673782552468302945364948518174720:0:39: ++%80f: 023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*80f: 023441673782552468302945364948518174720.0:0:42: ++%80f: 340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*80f: 340282346638528859811704183484516925440:0:40: ++%80f: 0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*80f: 0340282346638528859811704183484516925440.0:0:43: ++%80f: infinity:1:9:inf: ++%*80f: infinity:0:9: ++%80f: +nan():1:7:nan: ++%*80f: +nan():0:7: ++%80f: +nan(09A_Zaz):1:14:nan: ++%*80f: +nan(09A_Zaz):0:14: ++%80f: +0:1:3:0x0: ++%*80f: +0:0:3: ++%80f: +0.0:1:5:0x0: ++%*80f: +0.0:0:5: ++%80f: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:77:0x1p-126: ++%*80f: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:77: ++%80f: +23441673782552468302945364948518174720:1:40:0x1.1a2b3cp124: ++%*80f: +23441673782552468302945364948518174720:0:40: ++%80f: +023441673782552468302945364948518174720.0:1:43:0x1.1a2b3cp124: ++%*80f: +023441673782552468302945364948518174720.0:0:43: ++%80f: +340282346638528859811704183484516925440:1:41:0x1.fffffep127: ++%*80f: +340282346638528859811704183484516925440:0:41: ++%80f: +0340282346638528859811704183484516925440.0:1:44:0x1.fffffep127: ++%*80f: +0340282346638528859811704183484516925440.0:0:44: ++%80f: +infinity:1:10:inf: ++%*80f: +infinity:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input +new file mode 100644 +index 0000000000000000..3ec8ed0e8f7069be +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-ff.input +@@ -0,0 +1,558 @@ ++%F::0:-1: ++%*F::0:-1: ++%F:-INFINITY:1:9:-inf: ++%*F:-INFINITY:0:9: ++%F:-0340282346638528859811704183484516925440.0:1:43:-0x1.fffffep127: ++%*F:-0340282346638528859811704183484516925440.0:0:43: ++%F:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*F:-340282346638528859811704183484516925440:0:40: ++%F:-023441673782552468302945364948518174720.0:1:42:-0x1.1a2b3cp124: ++%*F:-023441673782552468302945364948518174720.0:0:42: ++%F:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*F:-23441673782552468302945364948518174720:0:39: ++%F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:-0x1p-126: ++%*F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%F:-0.0:1:4:-0x0: ++%*F:-0.0:0:4: ++%F:-0:1:2:-0x0: ++%*F:-0:0:2: ++%F:-NAN(09A_Zaz):1:13:-nan: ++%*F:-NAN(09A_Zaz):0:13: ++%F:-NAN():1:6:-nan: ++%*F:-NAN():0:6: ++%F:NAN():1:5:nan: ++%*F:NAN():0:5: ++%F:NAN(09A_Zaz):1:12:nan: ++%*F:NAN(09A_Zaz):0:12: ++%F:0:1:1:0x0: ++%*F:0:0:1: ++%F:0.0:1:3:0x0: ++%*F:0.0:0:3: ++%F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:75:0x1p-126: ++%*F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:75: ++%F:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*F:23441673782552468302945364948518174720:0:38: ++%F:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*F:023441673782552468302945364948518174720.0:0:41: ++%F:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*F:340282346638528859811704183484516925440:0:39: ++%F:0340282346638528859811704183484516925440.0:1:42:0x1.fffffep127: ++%*F:0340282346638528859811704183484516925440.0:0:42: ++%F:INFINITY:1:8:inf: ++%*F:INFINITY:0:8: ++%F:+NAN():1:6:nan: ++%*F:+NAN():0:6: ++%F:+NAN(09A_Zaz):1:13:nan: ++%*F:+NAN(09A_Zaz):0:13: ++%F:+0:1:2:0x0: ++%*F:+0:0:2: ++%F:+0.0:1:4:0x0: ++%*F:+0.0:0:4: ++%F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%F:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*F:+23441673782552468302945364948518174720:0:39: ++%F:+023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*F:+023441673782552468302945364948518174720.0:0:42: ++%F:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*F:+340282346638528859811704183484516925440:0:40: ++%F:+0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*F:+0340282346638528859811704183484516925440.0:0:43: ++%F:+INFINITY:1:9:inf: ++%*F:+INFINITY:0:9: ++%1F::0:-1: ++%*1F::0:-1: ++%1F:-INFINITY:0:-1: ++%*1F:-INFINITY:0:-1: ++%1F:-0340282346638528859811704183484516925440.0:0:-1: ++%*1F:-0340282346638528859811704183484516925440.0:0:-1: ++%1F:-340282346638528859811704183484516925440:0:-1: ++%*1F:-340282346638528859811704183484516925440:0:-1: ++%1F:-023441673782552468302945364948518174720.0:0:-1: ++%*1F:-023441673782552468302945364948518174720.0:0:-1: ++%1F:-23441673782552468302945364948518174720:0:-1: ++%*1F:-23441673782552468302945364948518174720:0:-1: ++%1F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%*1F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%1F:-0.0:0:-1: ++%*1F:-0.0:0:-1: ++%1F:-0:0:-1: ++%*1F:-0:0:-1: ++%1F:-NAN(09A_Zaz):0:-1: ++%*1F:-NAN(09A_Zaz):0:-1: ++%1F:-NAN():0:-1: ++%*1F:-NAN():0:-1: ++%1F:NAN():0:-1: ++%*1F:NAN():0:-1: ++%1F:NAN(09A_Zaz):0:-1: ++%*1F:NAN(09A_Zaz):0:-1: ++%1F:0:1:1:0x0: ++%*1F:0:0:1: ++%1F:0.0:1:1:0x0: ++%*1F:0.0:0:1: ++%1F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:1:0x0: ++%*1F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:1: ++%1F:23441673782552468302945364948518174720:1:1:0x1p1: ++%*1F:23441673782552468302945364948518174720:0:1: ++%1F:023441673782552468302945364948518174720.0:1:1:0x0: ++%*1F:023441673782552468302945364948518174720.0:0:1: ++%1F:340282346638528859811704183484516925440:1:1:0x1.8p1: ++%*1F:340282346638528859811704183484516925440:0:1: ++%1F:0340282346638528859811704183484516925440.0:1:1:0x0: ++%*1F:0340282346638528859811704183484516925440.0:0:1: ++%1F:INFINITY:0:-1: ++%*1F:INFINITY:0:-1: ++%1F:+NAN():0:-1: ++%*1F:+NAN():0:-1: ++%1F:+NAN(09A_Zaz):0:-1: ++%*1F:+NAN(09A_Zaz):0:-1: ++%1F:+0:0:-1: ++%*1F:+0:0:-1: ++%1F:+0.0:0:-1: ++%*1F:+0.0:0:-1: ++%1F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%*1F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:-1: ++%1F:+23441673782552468302945364948518174720:0:-1: ++%*1F:+23441673782552468302945364948518174720:0:-1: ++%1F:+023441673782552468302945364948518174720.0:0:-1: ++%*1F:+023441673782552468302945364948518174720.0:0:-1: ++%1F:+340282346638528859811704183484516925440:0:-1: ++%*1F:+340282346638528859811704183484516925440:0:-1: ++%1F:+0340282346638528859811704183484516925440.0:0:-1: ++%*1F:+0340282346638528859811704183484516925440.0:0:-1: ++%1F:+INFINITY:0:-1: ++%*1F:+INFINITY:0:-1: ++%2F::0:-1: ++%*2F::0:-1: ++%2F:-INFINITY:0:-1: ++%*2F:-INFINITY:0:-1: ++%2F:-0340282346638528859811704183484516925440.0:1:2:-0x0: ++%*2F:-0340282346638528859811704183484516925440.0:0:2: ++%2F:-340282346638528859811704183484516925440:1:2:-0x1.8p1: ++%*2F:-340282346638528859811704183484516925440:0:2: ++%2F:-023441673782552468302945364948518174720.0:1:2:-0x0: ++%*2F:-023441673782552468302945364948518174720.0:0:2: ++%2F:-23441673782552468302945364948518174720:1:2:-0x1p1: ++%*2F:-23441673782552468302945364948518174720:0:2: ++%2F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:-0x0: ++%*2F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2F:-0.0:1:2:-0x0: ++%*2F:-0.0:0:2: ++%2F:-0:1:2:-0x0: ++%*2F:-0:0:2: ++%2F:-NAN(09A_Zaz):0:-1: ++%*2F:-NAN(09A_Zaz):0:-1: ++%2F:-NAN():0:-1: ++%*2F:-NAN():0:-1: ++%2F:NAN():0:-1: ++%*2F:NAN():0:-1: ++%2F:NAN(09A_Zaz):0:-1: ++%*2F:NAN(09A_Zaz):0:-1: ++%2F:0:1:1:0x0: ++%*2F:0:0:1: ++%2F:0.0:1:2:0x0: ++%*2F:0.0:0:2: ++%2F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:0x0: ++%*2F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2F:23441673782552468302945364948518174720:1:2:0x1.7p4: ++%*2F:23441673782552468302945364948518174720:0:2: ++%2F:023441673782552468302945364948518174720.0:1:2:0x1p1: ++%*2F:023441673782552468302945364948518174720.0:0:2: ++%2F:340282346638528859811704183484516925440:1:2:0x1.1p5: ++%*2F:340282346638528859811704183484516925440:0:2: ++%2F:0340282346638528859811704183484516925440.0:1:2:0x1.8p1: ++%*2F:0340282346638528859811704183484516925440.0:0:2: ++%2F:INFINITY:0:-1: ++%*2F:INFINITY:0:-1: ++%2F:+NAN():0:-1: ++%*2F:+NAN():0:-1: ++%2F:+NAN(09A_Zaz):0:-1: ++%*2F:+NAN(09A_Zaz):0:-1: ++%2F:+0:1:2:0x0: ++%*2F:+0:0:2: ++%2F:+0.0:1:2:0x0: ++%*2F:+0.0:0:2: ++%2F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:2:0x0: ++%*2F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:2: ++%2F:+23441673782552468302945364948518174720:1:2:0x1p1: ++%*2F:+23441673782552468302945364948518174720:0:2: ++%2F:+023441673782552468302945364948518174720.0:1:2:0x0: ++%*2F:+023441673782552468302945364948518174720.0:0:2: ++%2F:+340282346638528859811704183484516925440:1:2:0x1.8p1: ++%*2F:+340282346638528859811704183484516925440:0:2: ++%2F:+0340282346638528859811704183484516925440.0:1:2:0x0: ++%*2F:+0340282346638528859811704183484516925440.0:0:2: ++%2F:+INFINITY:0:-1: ++%*2F:+INFINITY:0:-1: ++%3F::0:-1: ++%*3F::0:-1: ++%3F:-INFINITY:0:-1: ++%*3F:-INFINITY:0:-1: ++%3F:-0340282346638528859811704183484516925440.0:1:3:-0x1.8p1: ++%*3F:-0340282346638528859811704183484516925440.0:0:3: ++%3F:-340282346638528859811704183484516925440:1:3:-0x1.1p5: ++%*3F:-340282346638528859811704183484516925440:0:3: ++%3F:-023441673782552468302945364948518174720.0:1:3:-0x1p1: ++%*3F:-023441673782552468302945364948518174720.0:0:3: ++%3F:-23441673782552468302945364948518174720:1:3:-0x1.7p4: ++%*3F:-23441673782552468302945364948518174720:0:3: ++%3F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:-0x0: ++%*3F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3F:-0.0:1:3:-0x0: ++%*3F:-0.0:0:3: ++%3F:-0:1:2:-0x0: ++%*3F:-0:0:2: ++%3F:-NAN(09A_Zaz):0:-1: ++%*3F:-NAN(09A_Zaz):0:-1: ++%3F:-NAN():0:-1: ++%*3F:-NAN():0:-1: ++%3F:NAN():1:3:nan: ++%*3F:NAN():0:3: ++%3F:NAN(09A_Zaz):1:3:nan: ++%*3F:NAN(09A_Zaz):0:3: ++%3F:0:1:1:0x0: ++%*3F:0:0:1: ++%3F:0.0:1:3:0x0: ++%*3F:0.0:0:3: ++%3F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:0x0: ++%*3F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3F:23441673782552468302945364948518174720:1:3:0x1.d4p7: ++%*3F:23441673782552468302945364948518174720:0:3: ++%3F:023441673782552468302945364948518174720.0:1:3:0x1.7p4: ++%*3F:023441673782552468302945364948518174720.0:0:3: ++%3F:340282346638528859811704183484516925440:1:3:0x1.54p8: ++%*3F:340282346638528859811704183484516925440:0:3: ++%3F:0340282346638528859811704183484516925440.0:1:3:0x1.1p5: ++%*3F:0340282346638528859811704183484516925440.0:0:3: ++%3F:INFINITY:1:3:inf: ++%*3F:INFINITY:0:3: ++%3F:+NAN():0:-1: ++%*3F:+NAN():0:-1: ++%3F:+NAN(09A_Zaz):0:-1: ++%*3F:+NAN(09A_Zaz):0:-1: ++%3F:+0:1:2:0x0: ++%*3F:+0:0:2: ++%3F:+0.0:1:3:0x0: ++%*3F:+0.0:0:3: ++%3F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:3:0x0: ++%*3F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:3: ++%3F:+23441673782552468302945364948518174720:1:3:0x1.7p4: ++%*3F:+23441673782552468302945364948518174720:0:3: ++%3F:+023441673782552468302945364948518174720.0:1:3:0x1p1: ++%*3F:+023441673782552468302945364948518174720.0:0:3: ++%3F:+340282346638528859811704183484516925440:1:3:0x1.1p5: ++%*3F:+340282346638528859811704183484516925440:0:3: ++%3F:+0340282346638528859811704183484516925440.0:1:3:0x1.8p1: ++%*3F:+0340282346638528859811704183484516925440.0:0:3: ++%3F:+INFINITY:0:-1: ++%*3F:+INFINITY:0:-1: ++%4F::0:-1: ++%*4F::0:-1: ++%4F:-INFINITY:1:4:-inf: ++%*4F:-INFINITY:0:4: ++%4F:-0340282346638528859811704183484516925440.0:1:4:-0x1.1p5: ++%*4F:-0340282346638528859811704183484516925440.0:0:4: ++%4F:-340282346638528859811704183484516925440:1:4:-0x1.54p8: ++%*4F:-340282346638528859811704183484516925440:0:4: ++%4F:-023441673782552468302945364948518174720.0:1:4:-0x1.7p4: ++%*4F:-023441673782552468302945364948518174720.0:0:4: ++%4F:-23441673782552468302945364948518174720:1:4:-0x1.d4p7: ++%*4F:-23441673782552468302945364948518174720:0:4: ++%4F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:-0x0: ++%*4F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4F:-0.0:1:4:-0x0: ++%*4F:-0.0:0:4: ++%4F:-0:1:2:-0x0: ++%*4F:-0:0:2: ++%4F:-NAN(09A_Zaz):1:4:-nan: ++%*4F:-NAN(09A_Zaz):0:4: ++%4F:-NAN():1:4:-nan: ++%*4F:-NAN():0:4: ++%4F:NAN():0:-1: ++%*4F:NAN():0:-1: ++%4F:NAN(09A_Zaz):0:-1: ++%*4F:NAN(09A_Zaz):0:-1: ++%4F:0:1:1:0x0: ++%*4F:0:0:1: ++%4F:0.0:1:3:0x0: ++%*4F:0.0:0:3: ++%4F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*4F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4F:23441673782552468302945364948518174720:1:4:0x1.25p11: ++%*4F:23441673782552468302945364948518174720:0:4: ++%4F:023441673782552468302945364948518174720.0:1:4:0x1.d4p7: ++%*4F:023441673782552468302945364948518174720.0:0:4: ++%4F:340282346638528859811704183484516925440:1:4:0x1.a94p11: ++%*4F:340282346638528859811704183484516925440:0:4: ++%4F:0340282346638528859811704183484516925440.0:1:4:0x1.54p8: ++%*4F:0340282346638528859811704183484516925440.0:0:4: ++%4F:INFINITY:0:-1: ++%*4F:INFINITY:0:-1: ++%4F:+NAN():1:4:nan: ++%*4F:+NAN():0:4: ++%4F:+NAN(09A_Zaz):1:4:nan: ++%*4F:+NAN(09A_Zaz):0:4: ++%4F:+0:1:2:0x0: ++%*4F:+0:0:2: ++%4F:+0.0:1:4:0x0: ++%*4F:+0.0:0:4: ++%4F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*4F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%4F:+23441673782552468302945364948518174720:1:4:0x1.d4p7: ++%*4F:+23441673782552468302945364948518174720:0:4: ++%4F:+023441673782552468302945364948518174720.0:1:4:0x1.7p4: ++%*4F:+023441673782552468302945364948518174720.0:0:4: ++%4F:+340282346638528859811704183484516925440:1:4:0x1.54p8: ++%*4F:+340282346638528859811704183484516925440:0:4: ++%4F:+0340282346638528859811704183484516925440.0:1:4:0x1.1p5: ++%*4F:+0340282346638528859811704183484516925440.0:0:4: ++%4F:+INFINITY:1:4:inf: ++%*4F:+INFINITY:0:4: ++%41F::0:-1: ++%*41F::0:-1: ++%41F:-INFINITY:1:9:-inf: ++%*41F:-INFINITY:0:9: ++%41F:-0340282346638528859811704183484516925440.0:1:41:-0x1.fffffep127: ++%*41F:-0340282346638528859811704183484516925440.0:0:41: ++%41F:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*41F:-340282346638528859811704183484516925440:0:40: ++%41F:-023441673782552468302945364948518174720.0:1:41:-0x1.1a2b3cp124: ++%*41F:-023441673782552468302945364948518174720.0:0:41: ++%41F:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*41F:-23441673782552468302945364948518174720:0:39: ++%41F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:-0x1.b38fbap-127: ++%*41F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41F:-0.0:1:4:-0x0: ++%*41F:-0.0:0:4: ++%41F:-0:1:2:-0x0: ++%*41F:-0:0:2: ++%41F:-NAN(09A_Zaz):1:13:-nan: ++%*41F:-NAN(09A_Zaz):0:13: ++%41F:-NAN():1:6:-nan: ++%*41F:-NAN():0:6: ++%41F:NAN():1:5:nan: ++%*41F:NAN():0:5: ++%41F:NAN(09A_Zaz):1:12:nan: ++%*41F:NAN(09A_Zaz):0:12: ++%41F:0:1:1:0x0: ++%*41F:0:0:1: ++%41F:0.0:1:3:0x0: ++%*41F:0.0:0:3: ++%41F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:0x1.df1e1ap-127: ++%*41F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41F:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*41F:23441673782552468302945364948518174720:0:38: ++%41F:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*41F:023441673782552468302945364948518174720.0:0:41: ++%41F:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*41F:340282346638528859811704183484516925440:0:39: ++%41F:0340282346638528859811704183484516925440.0:1:41:0x1.fffffep127: ++%*41F:0340282346638528859811704183484516925440.0:0:41: ++%41F:INFINITY:1:8:inf: ++%*41F:INFINITY:0:8: ++%41F:+NAN():1:6:nan: ++%*41F:+NAN():0:6: ++%41F:+NAN(09A_Zaz):1:13:nan: ++%*41F:+NAN(09A_Zaz):0:13: ++%41F:+0:1:2:0x0: ++%*41F:+0:0:2: ++%41F:+0.0:1:4:0x0: ++%*41F:+0.0:0:4: ++%41F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:41:0x1.b38fbap-127: ++%*41F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:41: ++%41F:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*41F:+23441673782552468302945364948518174720:0:39: ++%41F:+023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*41F:+023441673782552468302945364948518174720.0:0:41: ++%41F:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*41F:+340282346638528859811704183484516925440:0:40: ++%41F:+0340282346638528859811704183484516925440.0:1:41:0x1.fffffep127: ++%*41F:+0340282346638528859811704183484516925440.0:0:41: ++%41F:+INFINITY:1:9:inf: ++%*41F:+INFINITY:0:9: ++%80F::0:-1: ++%*80F::0:-1: ++%80F:-INFINITY:1:9:-inf: ++%*80F:-INFINITY:0:9: ++%80F:-0340282346638528859811704183484516925440.0:1:43:-0x1.fffffep127: ++%*80F:-0340282346638528859811704183484516925440.0:0:43: ++%80F:-340282346638528859811704183484516925440:1:40:-0x1.fffffep127: ++%*80F:-340282346638528859811704183484516925440:0:40: ++%80F:-023441673782552468302945364948518174720.0:1:42:-0x1.1a2b3cp124: ++%*80F:-023441673782552468302945364948518174720.0:0:42: ++%80F:-23441673782552468302945364948518174720:1:39:-0x1.1a2b3cp124: ++%*80F:-23441673782552468302945364948518174720:0:39: ++%80F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:-0x1p-126: ++%*80F:-0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80F:-0.0:1:4:-0x0: ++%*80F:-0.0:0:4: ++%80F:-0:1:2:-0x0: ++%*80F:-0:0:2: ++%80F:-NAN(09A_Zaz):1:13:-nan: ++%*80F:-NAN(09A_Zaz):0:13: ++%80F:-NAN():1:6:-nan: ++%*80F:-NAN():0:6: ++%80F:NAN():1:5:nan: ++%*80F:NAN():0:5: ++%80F:NAN(09A_Zaz):1:12:nan: ++%*80F:NAN(09A_Zaz):0:12: ++%80F:0:1:1:0x0: ++%*80F:0:0:1: ++%80F:0.0:1:3:0x0: ++%*80F:0.0:0:3: ++%80F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:75:0x1p-126: ++%*80F:0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:75: ++%80F:23441673782552468302945364948518174720:1:38:0x1.1a2b3cp124: ++%*80F:23441673782552468302945364948518174720:0:38: ++%80F:023441673782552468302945364948518174720.0:1:41:0x1.1a2b3cp124: ++%*80F:023441673782552468302945364948518174720.0:0:41: ++%80F:340282346638528859811704183484516925440:1:39:0x1.fffffep127: ++%*80F:340282346638528859811704183484516925440:0:39: ++%80F:0340282346638528859811704183484516925440.0:1:42:0x1.fffffep127: ++%*80F:0340282346638528859811704183484516925440.0:0:42: ++%80F:INFINITY:1:8:inf: ++%*80F:INFINITY:0:8: ++%80F:+NAN():1:6:nan: ++%*80F:+NAN():0:6: ++%80F:+NAN(09A_Zaz):1:13:nan: ++%*80F:+NAN(09A_Zaz):0:13: ++%80F:+0:1:2:0x0: ++%*80F:+0:0:2: ++%80F:+0.0:1:4:0x0: ++%*80F:+0.0:0:4: ++%80F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*80F:+0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80F:+23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*80F:+23441673782552468302945364948518174720:0:39: ++%80F:+023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*80F:+023441673782552468302945364948518174720.0:0:42: ++%80F:+340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*80F:+340282346638528859811704183484516925440:0:40: ++%80F:+0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*80F:+0340282346638528859811704183484516925440.0:0:43: ++%80F:+INFINITY:1:9:inf: ++%*80F:+INFINITY:0:9: ++%3F: :0:-1: ++%*3F: :0:-1: ++%3F: -INFINITY:0:-1: ++%*3F: -INFINITY:0:-1: ++%3F: -0340282346638528859811704183484516925440.0:1:4:-0x1.8p1: ++%*3F: -0340282346638528859811704183484516925440.0:0:4: ++%3F: -340282346638528859811704183484516925440:1:4:-0x1.1p5: ++%*3F: -340282346638528859811704183484516925440:0:4: ++%3F: -023441673782552468302945364948518174720.0:1:4:-0x1p1: ++%*3F: -023441673782552468302945364948518174720.0:0:4: ++%3F: -23441673782552468302945364948518174720:1:4:-0x1.7p4: ++%*3F: -23441673782552468302945364948518174720:0:4: ++%3F: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:-0x0: ++%*3F: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3F: -0.0:1:4:-0x0: ++%*3F: -0.0:0:4: ++%3F: -0:1:3:-0x0: ++%*3F: -0:0:3: ++%3F: -NAN(09A_Zaz):0:-1: ++%*3F: -NAN(09A_Zaz):0:-1: ++%3F: -NAN():0:-1: ++%*3F: -NAN():0:-1: ++%3F: NAN():1:4:nan: ++%*3F: NAN():0:4: ++%3F: NAN(09A_Zaz):1:4:nan: ++%*3F: NAN(09A_Zaz):0:4: ++%3F: 0:1:2:0x0: ++%*3F: 0:0:2: ++%3F: 0.0:1:4:0x0: ++%*3F: 0.0:0:4: ++%3F: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*3F: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3F: 23441673782552468302945364948518174720:1:4:0x1.d4p7: ++%*3F: 23441673782552468302945364948518174720:0:4: ++%3F: 023441673782552468302945364948518174720.0:1:4:0x1.7p4: ++%*3F: 023441673782552468302945364948518174720.0:0:4: ++%3F: 340282346638528859811704183484516925440:1:4:0x1.54p8: ++%*3F: 340282346638528859811704183484516925440:0:4: ++%3F: 0340282346638528859811704183484516925440.0:1:4:0x1.1p5: ++%*3F: 0340282346638528859811704183484516925440.0:0:4: ++%3F: INFINITY:1:4:inf: ++%*3F: INFINITY:0:4: ++%3F: +NAN():0:-1: ++%*3F: +NAN():0:-1: ++%3F: +NAN(09A_Zaz):0:-1: ++%*3F: +NAN(09A_Zaz):0:-1: ++%3F: +0:1:3:0x0: ++%*3F: +0:0:3: ++%3F: +0.0:1:4:0x0: ++%*3F: +0.0:0:4: ++%3F: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:4:0x0: ++%*3F: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:4: ++%3F: +23441673782552468302945364948518174720:1:4:0x1.7p4: ++%*3F: +23441673782552468302945364948518174720:0:4: ++%3F: +023441673782552468302945364948518174720.0:1:4:0x1p1: ++%*3F: +023441673782552468302945364948518174720.0:0:4: ++%3F: +340282346638528859811704183484516925440:1:4:0x1.1p5: ++%*3F: +340282346638528859811704183484516925440:0:4: ++%3F: +0340282346638528859811704183484516925440.0:1:4:0x1.8p1: ++%*3F: +0340282346638528859811704183484516925440.0:0:4: ++%3F: +INFINITY:0:-1: ++%*3F: +INFINITY:0:-1: ++%80F: :0:-1: ++%*80F: :0:-1: ++%80F: -INFINITY:1:10:-inf: ++%*80F: -INFINITY:0:10: ++%80F: -0340282346638528859811704183484516925440.0:1:44:-0x1.fffffep127: ++%*80F: -0340282346638528859811704183484516925440.0:0:44: ++%80F: -340282346638528859811704183484516925440:1:41:-0x1.fffffep127: ++%*80F: -340282346638528859811704183484516925440:0:41: ++%80F: -023441673782552468302945364948518174720.0:1:43:-0x1.1a2b3cp124: ++%*80F: -023441673782552468302945364948518174720.0:0:43: ++%80F: -23441673782552468302945364948518174720:1:40:-0x1.1a2b3cp124: ++%*80F: -23441673782552468302945364948518174720:0:40: ++%80F: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:77:-0x1p-126: ++%*80F: -0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:77: ++%80F: -0.0:1:5:-0x0: ++%*80F: -0.0:0:5: ++%80F: -0:1:3:-0x0: ++%*80F: -0:0:3: ++%80F: -NAN(09A_Zaz):1:14:-nan: ++%*80F: -NAN(09A_Zaz):0:14: ++%80F: -NAN():1:7:-nan: ++%*80F: -NAN():0:7: ++%80F: NAN():1:6:nan: ++%*80F: NAN():0:6: ++%80F: NAN(09A_Zaz):1:13:nan: ++%*80F: NAN(09A_Zaz):0:13: ++%80F: 0:1:2:0x0: ++%*80F: 0:0:2: ++%80F: 0.0:1:4:0x0: ++%*80F: 0.0:0:4: ++%80F: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:76:0x1p-126: ++%*80F: 0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:76: ++%80F: 23441673782552468302945364948518174720:1:39:0x1.1a2b3cp124: ++%*80F: 23441673782552468302945364948518174720:0:39: ++%80F: 023441673782552468302945364948518174720.0:1:42:0x1.1a2b3cp124: ++%*80F: 023441673782552468302945364948518174720.0:0:42: ++%80F: 340282346638528859811704183484516925440:1:40:0x1.fffffep127: ++%*80F: 340282346638528859811704183484516925440:0:40: ++%80F: 0340282346638528859811704183484516925440.0:1:43:0x1.fffffep127: ++%*80F: 0340282346638528859811704183484516925440.0:0:43: ++%80F: INFINITY:1:9:inf: ++%*80F: INFINITY:0:9: ++%80F: +NAN():1:7:nan: ++%*80F: +NAN():0:7: ++%80F: +NAN(09A_Zaz):1:14:nan: ++%*80F: +NAN(09A_Zaz):0:14: ++%80F: +0:1:3:0x0: ++%*80F: +0:0:3: ++%80F: +0.0:1:5:0x0: ++%*80F: +0.0:0:5: ++%80F: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:1:77:0x1p-126: ++%*80F: +0.0000000000000000000000000000000000000117549435082228750796873653722224568:0:77: ++%80F: +23441673782552468302945364948518174720:1:40:0x1.1a2b3cp124: ++%*80F: +23441673782552468302945364948518174720:0:40: ++%80F: +023441673782552468302945364948518174720.0:1:43:0x1.1a2b3cp124: ++%*80F: +023441673782552468302945364948518174720.0:0:43: ++%80F: +340282346638528859811704183484516925440:1:41:0x1.fffffep127: ++%*80F: +340282346638528859811704183484516925440:0:41: ++%80F: +0340282346638528859811704183484516925440.0:1:44:0x1.fffffep127: ++%*80F: +0340282346638528859811704183484516925440.0:0:44: ++%80F: +INFINITY:1:10:inf: ++%*80F: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input +new file mode 100644 +index 0000000000000000..81462cd764def99b +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-g.input +@@ -0,0 +1,682 @@ ++%g::0:-1: ++%*g::0:-1: ++%g:-infinity:1:9:-inf: ++%*g:-infinity:0:9: ++%g:-0xf.fffffp+124:1:15:-0x1.fffffep127: ++%*g:-0xf.fffffp+124:0:15: ++%g:-0x7.fffff8p125:1:15:-0x1.fffffep127: ++%*g:-0x7.fffff8p125:0:15: ++%g:-0x2.345678p+123:1:16:-0x1.1a2b3cp124: ++%*g:-0x2.345678p+123:0:16: ++%g:-0x2.345678p0123:1:16:-0x1.1a2b3cp124: ++%*g:-0x2.345678p0123:0:16: ++%g:-0x8p-129:1:9:-0x1p-126: ++%*g:-0x8p-129:0:9: ++%g:-0x0p+0:1:7:-0x0: ++%*g:-0x0p+0:0:7: ++%g:-0x0p0:1:6:-0x0: ++%*g:-0x0p0:0:6: ++%g:-nan(09A_Zaz):1:13:-nan: ++%*g:-nan(09A_Zaz):0:13: ++%g:-nan():1:6:-nan: ++%*g:-nan():0:6: ++%g:nan():1:5:nan: ++%*g:nan():0:5: ++%g:nan(09A_Zaz):1:12:nan: ++%*g:nan(09A_Zaz):0:12: ++%g:0x0p0:1:5:0x0: ++%*g:0x0p0:0:5: ++%g:0x0p+0:1:6:0x0: ++%*g:0x0p+0:0:6: ++%g:0x8p-129:1:8:0x1p-126: ++%*g:0x8p-129:0:8: ++%g:0x2.345678p0123:1:15:0x1.1a2b3cp124: ++%*g:0x2.345678p0123:0:15: ++%g:0x2.345678p+123:1:15:0x1.1a2b3cp124: ++%*g:0x2.345678p+123:0:15: ++%g:0x7.fffff8p125:1:14:0x1.fffffep127: ++%*g:0x7.fffff8p125:0:14: ++%g:0xf.fffffp+124:1:14:0x1.fffffep127: ++%*g:0xf.fffffp+124:0:14: ++%g:infinity:1:8:inf: ++%*g:infinity:0:8: ++%g:+nan():1:6:nan: ++%*g:+nan():0:6: ++%g:+nan(09A_Zaz):1:13:nan: ++%*g:+nan(09A_Zaz):0:13: ++%g:+0x0p0:1:6:0x0: ++%*g:+0x0p0:0:6: ++%g:+0x0p+0:1:7:0x0: ++%*g:+0x0p+0:0:7: ++%g:+0x8p-129:1:9:0x1p-126: ++%*g:+0x8p-129:0:9: ++%g:+0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*g:+0x2.345678p0123:0:16: ++%g:+0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*g:+0x2.345678p+123:0:16: ++%g:+0x7.fffff8p125:1:15:0x1.fffffep127: ++%*g:+0x7.fffff8p125:0:15: ++%g:+0xf.fffffp+124:1:15:0x1.fffffep127: ++%*g:+0xf.fffffp+124:0:15: ++%g:+infinity:1:9:inf: ++%*g:+infinity:0:9: ++%1g::0:-1: ++%*1g::0:-1: ++%1g:-infinity:0:-1: ++%*1g:-infinity:0:-1: ++%1g:-0xf.fffffp+124:0:-1: ++%*1g:-0xf.fffffp+124:0:-1: ++%1g:-0x7.fffff8p125:0:-1: ++%*1g:-0x7.fffff8p125:0:-1: ++%1g:-0x2.345678p+123:0:-1: ++%*1g:-0x2.345678p+123:0:-1: ++%1g:-0x2.345678p0123:0:-1: ++%*1g:-0x2.345678p0123:0:-1: ++%1g:-0x8p-129:0:-1: ++%*1g:-0x8p-129:0:-1: ++%1g:-0x0p+0:0:-1: ++%*1g:-0x0p+0:0:-1: ++%1g:-0x0p0:0:-1: ++%*1g:-0x0p0:0:-1: ++%1g:-nan(09A_Zaz):0:-1: ++%*1g:-nan(09A_Zaz):0:-1: ++%1g:-nan():0:-1: ++%*1g:-nan():0:-1: ++%1g:nan():0:-1: ++%*1g:nan():0:-1: ++%1g:nan(09A_Zaz):0:-1: ++%*1g:nan(09A_Zaz):0:-1: ++%1g:0x0p0:1:1:0x0: ++%*1g:0x0p0:0:1: ++%1g:0x0p+0:1:1:0x0: ++%*1g:0x0p+0:0:1: ++%1g:0x8p-129:1:1:0x0: ++%*1g:0x8p-129:0:1: ++%1g:0x2.345678p0123:1:1:0x0: ++%*1g:0x2.345678p0123:0:1: ++%1g:0x2.345678p+123:1:1:0x0: ++%*1g:0x2.345678p+123:0:1: ++%1g:0x7.fffff8p125:1:1:0x0: ++%*1g:0x7.fffff8p125:0:1: ++%1g:0xf.fffffp+124:1:1:0x0: ++%*1g:0xf.fffffp+124:0:1: ++%1g:infinity:0:-1: ++%*1g:infinity:0:-1: ++%1g:+nan():0:-1: ++%*1g:+nan():0:-1: ++%1g:+nan(09A_Zaz):0:-1: ++%*1g:+nan(09A_Zaz):0:-1: ++%1g:+0x0p0:0:-1: ++%*1g:+0x0p0:0:-1: ++%1g:+0x0p+0:0:-1: ++%*1g:+0x0p+0:0:-1: ++%1g:+0x8p-129:0:-1: ++%*1g:+0x8p-129:0:-1: ++%1g:+0x2.345678p0123:0:-1: ++%*1g:+0x2.345678p0123:0:-1: ++%1g:+0x2.345678p+123:0:-1: ++%*1g:+0x2.345678p+123:0:-1: ++%1g:+0x7.fffff8p125:0:-1: ++%*1g:+0x7.fffff8p125:0:-1: ++%1g:+0xf.fffffp+124:0:-1: ++%*1g:+0xf.fffffp+124:0:-1: ++%1g:+infinity:0:-1: ++%*1g:+infinity:0:-1: ++%2g::0:-1: ++%*2g::0:-1: ++%2g:-infinity:0:-1: ++%*2g:-infinity:0:-1: ++%2g:-0xf.fffffp+124:1:2:-0x0: ++%*2g:-0xf.fffffp+124:0:2: ++%2g:-0x7.fffff8p125:1:2:-0x0: ++%*2g:-0x7.fffff8p125:0:2: ++%2g:-0x2.345678p+123:1:2:-0x0: ++%*2g:-0x2.345678p+123:0:2: ++%2g:-0x2.345678p0123:1:2:-0x0: ++%*2g:-0x2.345678p0123:0:2: ++%2g:-0x8p-129:1:2:-0x0: ++%*2g:-0x8p-129:0:2: ++%2g:-0x0p+0:1:2:-0x0: ++%*2g:-0x0p+0:0:2: ++%2g:-0x0p0:1:2:-0x0: ++%*2g:-0x0p0:0:2: ++%2g:-nan(09A_Zaz):0:-1: ++%*2g:-nan(09A_Zaz):0:-1: ++%2g:-nan():0:-1: ++%*2g:-nan():0:-1: ++%2g:nan():0:-1: ++%*2g:nan():0:-1: ++%2g:nan(09A_Zaz):0:-1: ++%*2g:nan(09A_Zaz):0:-1: ++# BZ12701 %2g:0x0p0:0:-1: ++# BZ12701 %*2g:0x0p0:0:-1: ++# BZ12701 %2g:0x0p+0:0:-1: ++# BZ12701 %*2g:0x0p+0:0:-1: ++# BZ12701 %2g:0x8p-129:0:-1: ++# BZ12701 %*2g:0x8p-129:0:-1: ++# BZ12701 %2g:0x2.345678p0123:0:-1: ++# BZ12701 %*2g:0x2.345678p0123:0:-1: ++# BZ12701 %2g:0x2.345678p+123:0:-1: ++# BZ12701 %*2g:0x2.345678p+123:0:-1: ++# BZ12701 %2g:0x7.fffff8p125:0:-1: ++# BZ12701 %*2g:0x7.fffff8p125:0:-1: ++# BZ12701 %2g:0xf.fffffp+124:0:-1: ++# BZ12701 %*2g:0xf.fffffp+124:0:-1: ++%2g:infinity:0:-1: ++%*2g:infinity:0:-1: ++%2g:+nan():0:-1: ++%*2g:+nan():0:-1: ++%2g:+nan(09A_Zaz):0:-1: ++%*2g:+nan(09A_Zaz):0:-1: ++%2g:+0x0p0:1:2:0x0: ++%*2g:+0x0p0:0:2: ++%2g:+0x0p+0:1:2:0x0: ++%*2g:+0x0p+0:0:2: ++%2g:+0x8p-129:1:2:0x0: ++%*2g:+0x8p-129:0:2: ++%2g:+0x2.345678p0123:1:2:0x0: ++%*2g:+0x2.345678p0123:0:2: ++%2g:+0x2.345678p+123:1:2:0x0: ++%*2g:+0x2.345678p+123:0:2: ++%2g:+0x7.fffff8p125:1:2:0x0: ++%*2g:+0x7.fffff8p125:0:2: ++%2g:+0xf.fffffp+124:1:2:0x0: ++%*2g:+0xf.fffffp+124:0:2: ++%2g:+infinity:0:-1: ++%*2g:+infinity:0:-1: ++%3g::0:-1: ++%*3g::0:-1: ++%3g:-infinity:0:-1: ++%*3g:-infinity:0:-1: ++# BZ12701 %3g:-0xf.fffffp+124:0:-1: ++# BZ12701 %*3g:-0xf.fffffp+124:0:-1: ++# BZ12701 %3g:-0x7.fffff8p125:0:-1: ++# BZ12701 %*3g:-0x7.fffff8p125:0:-1: ++# BZ12701 %3g:-0x2.345678p+123:0:-1: ++# BZ12701 %*3g:-0x2.345678p+123:0:-1: ++# BZ12701 %3g:-0x2.345678p0123:0:-1: ++# BZ12701 %*3g:-0x2.345678p0123:0:-1: ++# BZ12701 %3g:-0x8p-129:0:-1: ++# BZ12701 %*3g:-0x8p-129:0:-1: ++# BZ12701 %3g:-0x0p+0:0:-1: ++# BZ12701 %*3g:-0x0p+0:0:-1: ++# BZ12701 %3g:-0x0p0:0:-1: ++# BZ12701 %*3g:-0x0p0:0:-1: ++%3g:-nan(09A_Zaz):0:-1: ++%*3g:-nan(09A_Zaz):0:-1: ++%3g:-nan():0:-1: ++%*3g:-nan():0:-1: ++%3g:nan():1:3:nan: ++%*3g:nan():0:3: ++%3g:nan(09A_Zaz):1:3:nan: ++%*3g:nan(09A_Zaz):0:3: ++%3g:0x0p0:1:3:0x0: ++%*3g:0x0p0:0:3: ++%3g:0x0p+0:1:3:0x0: ++%*3g:0x0p+0:0:3: ++%3g:0x8p-129:1:3:0x1p3: ++%*3g:0x8p-129:0:3: ++%3g:0x2.345678p0123:1:3:0x1p1: ++%*3g:0x2.345678p0123:0:3: ++%3g:0x2.345678p+123:1:3:0x1p1: ++%*3g:0x2.345678p+123:0:3: ++%3g:0x7.fffff8p125:1:3:0x1.cp2: ++%*3g:0x7.fffff8p125:0:3: ++%3g:0xf.fffffp+124:1:3:0x1.ep3: ++%*3g:0xf.fffffp+124:0:3: ++%3g:infinity:1:3:inf: ++%*3g:infinity:0:3: ++%3g:+nan():0:-1: ++%*3g:+nan():0:-1: ++%3g:+nan(09A_Zaz):0:-1: ++%*3g:+nan(09A_Zaz):0:-1: ++# BZ12701 %3g:+0x0p0:0:-1: ++# BZ12701 %*3g:+0x0p0:0:-1: ++# BZ12701 %3g:+0x0p+0:0:-1: ++# BZ12701 %*3g:+0x0p+0:0:-1: ++# BZ12701 %3g:+0x8p-129:0:-1: ++# BZ12701 %*3g:+0x8p-129:0:-1: ++# BZ12701 %3g:+0x2.345678p0123:0:-1: ++# BZ12701 %*3g:+0x2.345678p0123:0:-1: ++# BZ12701 %3g:+0x2.345678p+123:0:-1: ++# BZ12701 %*3g:+0x2.345678p+123:0:-1: ++# BZ12701 %3g:+0x7.fffff8p125:0:-1: ++# BZ12701 %*3g:+0x7.fffff8p125:0:-1: ++# BZ12701 %3g:+0xf.fffffp+124:0:-1: ++# BZ12701 %*3g:+0xf.fffffp+124:0:-1: ++%3g:+infinity:0:-1: ++%*3g:+infinity:0:-1: ++%4g::0:-1: ++%*4g::0:-1: ++%4g:-infinity:1:4:-inf: ++%*4g:-infinity:0:4: ++%4g:-0xf.fffffp+124:1:4:-0x1.ep3: ++%*4g:-0xf.fffffp+124:0:4: ++%4g:-0x7.fffff8p125:1:4:-0x1.cp2: ++%*4g:-0x7.fffff8p125:0:4: ++%4g:-0x2.345678p+123:1:4:-0x1p1: ++%*4g:-0x2.345678p+123:0:4: ++%4g:-0x2.345678p0123:1:4:-0x1p1: ++%*4g:-0x2.345678p0123:0:4: ++%4g:-0x8p-129:1:4:-0x1p3: ++%*4g:-0x8p-129:0:4: ++%4g:-0x0p+0:1:4:-0x0: ++%*4g:-0x0p+0:0:4: ++%4g:-0x0p0:1:4:-0x0: ++%*4g:-0x0p0:0:4: ++%4g:-nan(09A_Zaz):1:4:-nan: ++%*4g:-nan(09A_Zaz):0:4: ++%4g:-nan():1:4:-nan: ++%*4g:-nan():0:4: ++%4g:nan():0:-1: ++%*4g:nan():0:-1: ++%4g:nan(09A_Zaz):0:-1: ++%*4g:nan(09A_Zaz):0:-1: ++# BZ12701 %4g:0x0p0:0:-1: ++# BZ12701 %*4g:0x0p0:0:-1: ++# BZ12701 %4g:0x0p+0:0:-1: ++# BZ12701 %*4g:0x0p+0:0:-1: ++# BZ12701 %4g:0x8p-129:0:-1: ++# BZ12701 %*4g:0x8p-129:0:-1: ++%4g:0x2.345678p0123:1:4:0x1p1: ++%*4g:0x2.345678p0123:0:4: ++%4g:0x2.345678p+123:1:4:0x1p1: ++%*4g:0x2.345678p+123:0:4: ++%4g:0x7.fffff8p125:1:4:0x1.cp2: ++%*4g:0x7.fffff8p125:0:4: ++%4g:0xf.fffffp+124:1:4:0x1.ep3: ++%*4g:0xf.fffffp+124:0:4: ++%4g:infinity:0:-1: ++%*4g:infinity:0:-1: ++%4g:+nan():1:4:nan: ++%*4g:+nan():0:4: ++%4g:+nan(09A_Zaz):1:4:nan: ++%*4g:+nan(09A_Zaz):0:4: ++%4g:+0x0p0:1:4:0x0: ++%*4g:+0x0p0:0:4: ++%4g:+0x0p+0:1:4:0x0: ++%*4g:+0x0p+0:0:4: ++%4g:+0x8p-129:1:4:0x1p3: ++%*4g:+0x8p-129:0:4: ++%4g:+0x2.345678p0123:1:4:0x1p1: ++%*4g:+0x2.345678p0123:0:4: ++%4g:+0x2.345678p+123:1:4:0x1p1: ++%*4g:+0x2.345678p+123:0:4: ++%4g:+0x7.fffff8p125:1:4:0x1.cp2: ++%*4g:+0x7.fffff8p125:0:4: ++%4g:+0xf.fffffp+124:1:4:0x1.ep3: ++%*4g:+0xf.fffffp+124:0:4: ++%4g:+infinity:1:4:inf: ++%*4g:+infinity:0:4: ++%5g::0:-1: ++%*5g::0:-1: ++%5g:-infinity:0:-1: ++%*5g:-infinity:0:-1: ++%5g:-0xf.fffffp+124:1:5:-0x1.ep3: ++%*5g:-0xf.fffffp+124:0:5: ++%5g:-0x7.fffff8p125:1:5:-0x1.cp2: ++%*5g:-0x7.fffff8p125:0:5: ++%5g:-0x2.345678p+123:1:5:-0x1p1: ++%*5g:-0x2.345678p+123:0:5: ++%5g:-0x2.345678p0123:1:5:-0x1p1: ++%*5g:-0x2.345678p0123:0:5: ++# BZ12701 %5g:-0x8p-129:0:-1: ++# BZ12701 %*5g:-0x8p-129:0:-1: ++# BZ12701 %5g:-0x0p+0:0:-1: ++# BZ12701 %*5g:-0x0p+0:0:-1: ++# BZ12701 %5g:-0x0p0:0:-1: ++# BZ12701 %*5g:-0x0p0:0:-1: ++%5g:-nan(09A_Zaz):0:-1: ++%*5g:-nan(09A_Zaz):0:-1: ++%5g:-nan():0:-1: ++%*5g:-nan():0:-1: ++%5g:nan():1:5:nan: ++%*5g:nan():0:5: ++%5g:nan(09A_Zaz):0:-1: ++%*5g:nan(09A_Zaz):0:-1: ++%5g:0x0p0:1:5:0x0: ++%*5g:0x0p0:0:5: ++# BZ12701 %5g:0x0p+0:0:-1: ++# BZ12701 %*5g:0x0p+0:0:-1: ++# BZ12701 %5g:0x8p-129:0:-1: ++# BZ12701 %*5g:0x8p-129:0:-1: ++%5g:0x2.345678p0123:1:5:0x1.18p1: ++%*5g:0x2.345678p0123:0:5: ++%5g:0x2.345678p+123:1:5:0x1.18p1: ++%*5g:0x2.345678p+123:0:5: ++%5g:0x7.fffff8p125:1:5:0x1.fcp2: ++%*5g:0x7.fffff8p125:0:5: ++%5g:0xf.fffffp+124:1:5:0x1.fep3: ++%*5g:0xf.fffffp+124:0:5: ++%5g:infinity:0:-1: ++%*5g:infinity:0:-1: ++%5g:+nan():0:-1: ++%*5g:+nan():0:-1: ++%5g:+nan(09A_Zaz):0:-1: ++%*5g:+nan(09A_Zaz):0:-1: ++# BZ12701 %5g:+0x0p0:0:-1: ++# BZ12701 %*5g:+0x0p0:0:-1: ++# BZ12701 %5g:+0x0p+0:0:-1: ++# BZ12701 %*5g:+0x0p+0:0:-1: ++# BZ12701 %5g:+0x8p-129:0:-1: ++# BZ12701 %*5g:+0x8p-129:0:-1: ++%5g:+0x2.345678p0123:1:5:0x1p1: ++%*5g:+0x2.345678p0123:0:5: ++%5g:+0x2.345678p+123:1:5:0x1p1: ++%*5g:+0x2.345678p+123:0:5: ++%5g:+0x7.fffff8p125:1:5:0x1.cp2: ++%*5g:+0x7.fffff8p125:0:5: ++%5g:+0xf.fffffp+124:1:5:0x1.ep3: ++%*5g:+0xf.fffffp+124:0:5: ++%5g:+infinity:0:-1: ++%*5g:+infinity:0:-1: ++%6g::0:-1: ++%*6g::0:-1: ++%6g:-infinity:0:-1: ++%*6g:-infinity:0:-1: ++%6g:-0xf.fffffp+124:1:6:-0x1.fep3: ++%*6g:-0xf.fffffp+124:0:6: ++%6g:-0x7.fffff8p125:1:6:-0x1.fcp2: ++%*6g:-0x7.fffff8p125:0:6: ++%6g:-0x2.345678p+123:1:6:-0x1.18p1: ++%*6g:-0x2.345678p+123:0:6: ++%6g:-0x2.345678p0123:1:6:-0x1.18p1: ++%*6g:-0x2.345678p0123:0:6: ++# BZ12701 %6g:-0x8p-129:0:-1: ++# BZ12701 %*6g:-0x8p-129:0:-1: ++# BZ12701 %6g:-0x0p+0:0:-1: ++# BZ12701 %*6g:-0x0p+0:0:-1: ++%6g:-0x0p0:1:6:-0x0: ++%*6g:-0x0p0:0:6: ++%6g:-nan(09A_Zaz):0:-1: ++%*6g:-nan(09A_Zaz):0:-1: ++%6g:-nan():1:6:-nan: ++%*6g:-nan():0:6: ++%6g:nan():1:5:nan: ++%*6g:nan():0:5: ++%6g:nan(09A_Zaz):0:-1: ++%*6g:nan(09A_Zaz):0:-1: ++%6g:0x0p0:1:5:0x0: ++%*6g:0x0p0:0:5: ++%6g:0x0p+0:1:6:0x0: ++%*6g:0x0p+0:0:6: ++%6g:0x8p-129:1:6:0x1p2: ++%*6g:0x8p-129:0:6: ++%6g:0x2.345678p0123:1:6:0x1.1ap1: ++%*6g:0x2.345678p0123:0:6: ++%6g:0x2.345678p+123:1:6:0x1.1ap1: ++%*6g:0x2.345678p+123:0:6: ++%6g:0x7.fffff8p125:1:6:0x1.ffcp2: ++%*6g:0x7.fffff8p125:0:6: ++%6g:0xf.fffffp+124:1:6:0x1.ffep3: ++%*6g:0xf.fffffp+124:0:6: ++%6g:infinity:0:-1: ++%*6g:infinity:0:-1: ++%6g:+nan():1:6:nan: ++%*6g:+nan():0:6: ++%6g:+nan(09A_Zaz):0:-1: ++%*6g:+nan(09A_Zaz):0:-1: ++%6g:+0x0p0:1:6:0x0: ++%*6g:+0x0p0:0:6: ++# BZ12701 %6g:+0x0p+0:0:-1: ++# BZ12701 %*6g:+0x0p+0:0:-1: ++# BZ12701 %6g:+0x8p-129:0:-1: ++# BZ12701 %*6g:+0x8p-129:0:-1: ++%6g:+0x2.345678p0123:1:6:0x1.18p1: ++%*6g:+0x2.345678p0123:0:6: ++%6g:+0x2.345678p+123:1:6:0x1.18p1: ++%*6g:+0x2.345678p+123:0:6: ++%6g:+0x7.fffff8p125:1:6:0x1.fcp2: ++%*6g:+0x7.fffff8p125:0:6: ++%6g:+0xf.fffffp+124:1:6:0x1.fep3: ++%*6g:+0xf.fffffp+124:0:6: ++%6g:+infinity:0:-1: ++%*6g:+infinity:0:-1: ++%12g::0:-1: ++%*12g::0:-1: ++%12g:-infinity:1:9:-inf: ++%*12g:-infinity:0:9: ++# BZ12701 %12g:-0xf.fffffp+124:0:-1: ++# BZ12701 %*12g:-0xf.fffffp+124:0:-1: ++# BZ12701 %12g:-0x7.fffff8p125:0:-1: ++# BZ12701 %*12g:-0x7.fffff8p125:0:-1: ++# BZ12701 %12g:-0x2.345678p+123:0:-1: ++# BZ12701 %*12g:-0x2.345678p+123:0:-1: ++# BZ12701 %12g:-0x2.345678p0123:0:-1: ++# BZ12701 %*12g:-0x2.345678p0123:0:-1: ++%12g:-0x8p-129:1:9:-0x1p-126: ++%*12g:-0x8p-129:0:9: ++%12g:-0x0p+0:1:7:-0x0: ++%*12g:-0x0p+0:0:7: ++%12g:-0x0p0:1:6:-0x0: ++%*12g:-0x0p0:0:6: ++%12g:-nan(09A_Zaz):0:-1: ++%*12g:-nan(09A_Zaz):0:-1: ++%12g:-nan():1:6:-nan: ++%*12g:-nan():0:6: ++%12g:nan():1:5:nan: ++%*12g:nan():0:5: ++%12g:nan(09A_Zaz):1:12:nan: ++%*12g:nan(09A_Zaz):0:12: ++%12g:0x0p0:1:5:0x0: ++%*12g:0x0p0:0:5: ++%12g:0x0p+0:1:6:0x0: ++%*12g:0x0p+0:0:6: ++%12g:0x8p-129:1:8:0x1p-126: ++%*12g:0x8p-129:0:8: ++%12g:0x2.345678p0123:1:12:0x1.1a2b3cp1: ++%*12g:0x2.345678p0123:0:12: ++# BZ12701 %12g:0x2.345678p+123:0:-1: ++# BZ12701 %*12g:0x2.345678p+123:0:-1: ++%12g:0x7.fffff8p125:1:12:0x1.fffffep3: ++%*12g:0x7.fffff8p125:0:12: ++%12g:0xf.fffffp+124:1:12:0x1.fffffep4: ++%*12g:0xf.fffffp+124:0:12: ++%12g:infinity:1:8:inf: ++%*12g:infinity:0:8: ++%12g:+nan():1:6:nan: ++%*12g:+nan():0:6: ++%12g:+nan(09A_Zaz):0:-1: ++%*12g:+nan(09A_Zaz):0:-1: ++%12g:+0x0p0:1:6:0x0: ++%*12g:+0x0p0:0:6: ++%12g:+0x0p+0:1:7:0x0: ++%*12g:+0x0p+0:0:7: ++%12g:+0x8p-129:1:9:0x1p-126: ++%*12g:+0x8p-129:0:9: ++# BZ12701 %12g:+0x2.345678p0123:0:-1: ++# BZ12701 %*12g:+0x2.345678p0123:0:-1: ++# BZ12701 %12g:+0x2.345678p+123:0:-1: ++# BZ12701 %*12g:+0x2.345678p+123:0:-1: ++# BZ12701 %12g:+0x7.fffff8p125:0:-1: ++# BZ12701 %*12g:+0x7.fffff8p125:0:-1: ++# BZ12701 %12g:+0xf.fffffp+124:0:-1: ++# BZ12701 %*12g:+0xf.fffffp+124:0:-1: ++%12g:+infinity:1:9:inf: ++%*12g:+infinity:0:9: ++%18g::0:-1: ++%*18g::0:-1: ++%18g:-infinity:1:9:-inf: ++%*18g:-infinity:0:9: ++%18g:-0xf.fffffp+124:1:15:-0x1.fffffep127: ++%*18g:-0xf.fffffp+124:0:15: ++%18g:-0x7.fffff8p125:1:15:-0x1.fffffep127: ++%*18g:-0x7.fffff8p125:0:15: ++%18g:-0x2.345678p+123:1:16:-0x1.1a2b3cp124: ++%*18g:-0x2.345678p+123:0:16: ++%18g:-0x2.345678p0123:1:16:-0x1.1a2b3cp124: ++%*18g:-0x2.345678p0123:0:16: ++%18g:-0x8p-129:1:9:-0x1p-126: ++%*18g:-0x8p-129:0:9: ++%18g:-0x0p+0:1:7:-0x0: ++%*18g:-0x0p+0:0:7: ++%18g:-0x0p0:1:6:-0x0: ++%*18g:-0x0p0:0:6: ++%18g:-nan(09A_Zaz):1:13:-nan: ++%*18g:-nan(09A_Zaz):0:13: ++%18g:-nan():1:6:-nan: ++%*18g:-nan():0:6: ++%18g:nan():1:5:nan: ++%*18g:nan():0:5: ++%18g:nan(09A_Zaz):1:12:nan: ++%*18g:nan(09A_Zaz):0:12: ++%18g:0x0p0:1:5:0x0: ++%*18g:0x0p0:0:5: ++%18g:0x0p+0:1:6:0x0: ++%*18g:0x0p+0:0:6: ++%18g:0x8p-129:1:8:0x1p-126: ++%*18g:0x8p-129:0:8: ++%18g:0x2.345678p0123:1:15:0x1.1a2b3cp124: ++%*18g:0x2.345678p0123:0:15: ++%18g:0x2.345678p+123:1:15:0x1.1a2b3cp124: ++%*18g:0x2.345678p+123:0:15: ++%18g:0x7.fffff8p125:1:14:0x1.fffffep127: ++%*18g:0x7.fffff8p125:0:14: ++%18g:0xf.fffffp+124:1:14:0x1.fffffep127: ++%*18g:0xf.fffffp+124:0:14: ++%18g:infinity:1:8:inf: ++%*18g:infinity:0:8: ++%18g:+nan():1:6:nan: ++%*18g:+nan():0:6: ++%18g:+nan(09A_Zaz):1:13:nan: ++%*18g:+nan(09A_Zaz):0:13: ++%18g:+0x0p0:1:6:0x0: ++%*18g:+0x0p0:0:6: ++%18g:+0x0p+0:1:7:0x0: ++%*18g:+0x0p+0:0:7: ++%18g:+0x8p-129:1:9:0x1p-126: ++%*18g:+0x8p-129:0:9: ++%18g:+0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*18g:+0x2.345678p0123:0:16: ++%18g:+0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*18g:+0x2.345678p+123:0:16: ++%18g:+0x7.fffff8p125:1:15:0x1.fffffep127: ++%*18g:+0x7.fffff8p125:0:15: ++%18g:+0xf.fffffp+124:1:15:0x1.fffffep127: ++%*18g:+0xf.fffffp+124:0:15: ++%18g:+infinity:1:9:inf: ++%*18g:+infinity:0:9: ++%5g: :0:-1: ++%*5g: :0:-1: ++%5g: -infinity:0:-1: ++%*5g: -infinity:0:-1: ++%5g: -0xf.fffffp+124:1:6:-0x1.ep3: ++%*5g: -0xf.fffffp+124:0:6: ++%5g: -0x7.fffff8p125:1:6:-0x1.cp2: ++%*5g: -0x7.fffff8p125:0:6: ++%5g: -0x2.345678p+123:1:6:-0x1p1: ++%*5g: -0x2.345678p+123:0:6: ++%5g: -0x2.345678p0123:1:6:-0x1p1: ++%*5g: -0x2.345678p0123:0:6: ++# BZ12701 %5g: -0x8p-129:0:-1: ++# BZ12701 %*5g: -0x8p-129:0:-1: ++# BZ12701 %5g: -0x0p+0:0:-1: ++# BZ12701 %*5g: -0x0p+0:0:-1: ++# BZ12701 %5g: -0x0p0:0:-1: ++# BZ12701 %*5g: -0x0p0:0:-1: ++%5g: -nan(09A_Zaz):0:-1: ++%*5g: -nan(09A_Zaz):0:-1: ++%5g: -nan():0:-1: ++%*5g: -nan():0:-1: ++%5g: nan():1:6:nan: ++%*5g: nan():0:6: ++%5g: nan(09A_Zaz):0:-1: ++%*5g: nan(09A_Zaz):0:-1: ++%5g: 0x0p0:1:6:0x0: ++%*5g: 0x0p0:0:6: ++# BZ12701 %5g: 0x0p+0:0:-1: ++# BZ12701 %*5g: 0x0p+0:0:-1: ++# BZ12701 %5g: 0x8p-129:0:-1: ++# BZ12701 %*5g: 0x8p-129:0:-1: ++%5g: 0x2.345678p0123:1:6:0x1.18p1: ++%*5g: 0x2.345678p0123:0:6: ++%5g: 0x2.345678p+123:1:6:0x1.18p1: ++%*5g: 0x2.345678p+123:0:6: ++%5g: 0x7.fffff8p125:1:6:0x1.fcp2: ++%*5g: 0x7.fffff8p125:0:6: ++%5g: 0xf.fffffp+124:1:6:0x1.fep3: ++%*5g: 0xf.fffffp+124:0:6: ++%5g: infinity:0:-1: ++%*5g: infinity:0:-1: ++%5g: +nan():0:-1: ++%*5g: +nan():0:-1: ++%5g: +nan(09A_Zaz):0:-1: ++%*5g: +nan(09A_Zaz):0:-1: ++# BZ12701 %5g: +0x0p0:0:-1: ++# BZ12701 %*5g: +0x0p0:0:-1: ++# BZ12701 %5g: +0x0p+0:0:-1: ++# BZ12701 %*5g: +0x0p+0:0:-1: ++# BZ12701 %5g: +0x8p-129:0:-1: ++# BZ12701 %*5g: +0x8p-129:0:-1: ++%5g: +0x2.345678p0123:1:6:0x1p1: ++%*5g: +0x2.345678p0123:0:6: ++%5g: +0x2.345678p+123:1:6:0x1p1: ++%*5g: +0x2.345678p+123:0:6: ++%5g: +0x7.fffff8p125:1:6:0x1.cp2: ++%*5g: +0x7.fffff8p125:0:6: ++%5g: +0xf.fffffp+124:1:6:0x1.ep3: ++%*5g: +0xf.fffffp+124:0:6: ++%5g: +infinity:0:-1: ++%*5g: +infinity:0:-1: ++%18g: :0:-1: ++%*18g: :0:-1: ++%18g: -infinity:1:10:-inf: ++%*18g: -infinity:0:10: ++%18g: -0xf.fffffp+124:1:16:-0x1.fffffep127: ++%*18g: -0xf.fffffp+124:0:16: ++%18g: -0x7.fffff8p125:1:16:-0x1.fffffep127: ++%*18g: -0x7.fffff8p125:0:16: ++%18g: -0x2.345678p+123:1:17:-0x1.1a2b3cp124: ++%*18g: -0x2.345678p+123:0:17: ++%18g: -0x2.345678p0123:1:17:-0x1.1a2b3cp124: ++%*18g: -0x2.345678p0123:0:17: ++%18g: -0x8p-129:1:10:-0x1p-126: ++%*18g: -0x8p-129:0:10: ++%18g: -0x0p+0:1:8:-0x0: ++%*18g: -0x0p+0:0:8: ++%18g: -0x0p0:1:7:-0x0: ++%*18g: -0x0p0:0:7: ++%18g: -nan(09A_Zaz):1:14:-nan: ++%*18g: -nan(09A_Zaz):0:14: ++%18g: -nan():1:7:-nan: ++%*18g: -nan():0:7: ++%18g: nan():1:6:nan: ++%*18g: nan():0:6: ++%18g: nan(09A_Zaz):1:13:nan: ++%*18g: nan(09A_Zaz):0:13: ++%18g: 0x0p0:1:6:0x0: ++%*18g: 0x0p0:0:6: ++%18g: 0x0p+0:1:7:0x0: ++%*18g: 0x0p+0:0:7: ++%18g: 0x8p-129:1:9:0x1p-126: ++%*18g: 0x8p-129:0:9: ++%18g: 0x2.345678p0123:1:16:0x1.1a2b3cp124: ++%*18g: 0x2.345678p0123:0:16: ++%18g: 0x2.345678p+123:1:16:0x1.1a2b3cp124: ++%*18g: 0x2.345678p+123:0:16: ++%18g: 0x7.fffff8p125:1:15:0x1.fffffep127: ++%*18g: 0x7.fffff8p125:0:15: ++%18g: 0xf.fffffp+124:1:15:0x1.fffffep127: ++%*18g: 0xf.fffffp+124:0:15: ++%18g: infinity:1:9:inf: ++%*18g: infinity:0:9: ++%18g: +nan():1:7:nan: ++%*18g: +nan():0:7: ++%18g: +nan(09A_Zaz):1:14:nan: ++%*18g: +nan(09A_Zaz):0:14: ++%18g: +0x0p0:1:7:0x0: ++%*18g: +0x0p0:0:7: ++%18g: +0x0p+0:1:8:0x0: ++%*18g: +0x0p+0:0:8: ++%18g: +0x8p-129:1:10:0x1p-126: ++%*18g: +0x8p-129:0:10: ++%18g: +0x2.345678p0123:1:17:0x1.1a2b3cp124: ++%*18g: +0x2.345678p0123:0:17: ++%18g: +0x2.345678p+123:1:17:0x1.1a2b3cp124: ++%*18g: +0x2.345678p+123:0:17: ++%18g: +0x7.fffff8p125:1:16:0x1.fffffep127: ++%*18g: +0x7.fffff8p125:0:16: ++%18g: +0xf.fffffp+124:1:16:0x1.fffffep127: ++%*18g: +0xf.fffffp+124:0:16: ++%18g: +infinity:1:10:inf: ++%*18g: +infinity:0:10: +diff --git a/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input b/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input +new file mode 100644 +index 0000000000000000..4236ea9f247c13cc +--- /dev/null ++++ b/sysdeps/ieee754/flt-32/tst-scanf-format-float-gg.input +@@ -0,0 +1,682 @@ ++%G::0:-1: ++%*G::0:-1: ++%G:-INFINITY:1:9:-inf: ++%*G:-INFINITY:0:9: ++%G:-0XF.FFFFFP+124:1:15:-0x1.fffffep127: ++%*G:-0XF.FFFFFP+124:0:15: ++%G:-0X7.FFFFF8P125:1:15:-0x1.fffffep127: ++%*G:-0X7.FFFFF8P125:0:15: ++%G:-0X2.345678P+123:1:16:-0x1.1a2b3cp124: ++%*G:-0X2.345678P+123:0:16: ++%G:-0X2.345678P0123:1:16:-0x1.1a2b3cp124: ++%*G:-0X2.345678P0123:0:16: ++%G:-0X8P-129:1:9:-0x1p-126: ++%*G:-0X8P-129:0:9: ++%G:-0X0P+0:1:7:-0x0: ++%*G:-0X0P+0:0:7: ++%G:-0X0P0:1:6:-0x0: ++%*G:-0X0P0:0:6: ++%G:-NAN(09A_Zaz):1:13:-nan: ++%*G:-NAN(09A_Zaz):0:13: ++%G:-NAN():1:6:-nan: ++%*G:-NAN():0:6: ++%G:NAN():1:5:nan: ++%*G:NAN():0:5: ++%G:NAN(09A_Zaz):1:12:nan: ++%*G:NAN(09A_Zaz):0:12: ++%G:0X0P0:1:5:0x0: ++%*G:0X0P0:0:5: ++%G:0X0P+0:1:6:0x0: ++%*G:0X0P+0:0:6: ++%G:0X8P-129:1:8:0x1p-126: ++%*G:0X8P-129:0:8: ++%G:0X2.345678P0123:1:15:0x1.1a2b3cp124: ++%*G:0X2.345678P0123:0:15: ++%G:0X2.345678P+123:1:15:0x1.1a2b3cp124: ++%*G:0X2.345678P+123:0:15: ++%G:0X7.FFFFF8P125:1:14:0x1.fffffep127: ++%*G:0X7.FFFFF8P125:0:14: ++%G:0XF.FFFFFP+124:1:14:0x1.fffffep127: ++%*G:0XF.FFFFFP+124:0:14: ++%G:INFINITY:1:8:inf: ++%*G:INFINITY:0:8: ++%G:+NAN():1:6:nan: ++%*G:+NAN():0:6: ++%G:+NAN(09A_Zaz):1:13:nan: ++%*G:+NAN(09A_Zaz):0:13: ++%G:+0X0P0:1:6:0x0: ++%*G:+0X0P0:0:6: ++%G:+0X0P+0:1:7:0x0: ++%*G:+0X0P+0:0:7: ++%G:+0X8P-129:1:9:0x1p-126: ++%*G:+0X8P-129:0:9: ++%G:+0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*G:+0X2.345678P0123:0:16: ++%G:+0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*G:+0X2.345678P+123:0:16: ++%G:+0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*G:+0X7.FFFFF8P125:0:15: ++%G:+0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*G:+0XF.FFFFFP+124:0:15: ++%G:+INFINITY:1:9:inf: ++%*G:+INFINITY:0:9: ++%1G::0:-1: ++%*1G::0:-1: ++%1G:-INFINITY:0:-1: ++%*1G:-INFINITY:0:-1: ++%1G:-0XF.FFFFFP+124:0:-1: ++%*1G:-0XF.FFFFFP+124:0:-1: ++%1G:-0X7.FFFFF8P125:0:-1: ++%*1G:-0X7.FFFFF8P125:0:-1: ++%1G:-0X2.345678P+123:0:-1: ++%*1G:-0X2.345678P+123:0:-1: ++%1G:-0X2.345678P0123:0:-1: ++%*1G:-0X2.345678P0123:0:-1: ++%1G:-0X8P-129:0:-1: ++%*1G:-0X8P-129:0:-1: ++%1G:-0X0P+0:0:-1: ++%*1G:-0X0P+0:0:-1: ++%1G:-0X0P0:0:-1: ++%*1G:-0X0P0:0:-1: ++%1G:-NAN(09A_Zaz):0:-1: ++%*1G:-NAN(09A_Zaz):0:-1: ++%1G:-NAN():0:-1: ++%*1G:-NAN():0:-1: ++%1G:NAN():0:-1: ++%*1G:NAN():0:-1: ++%1G:NAN(09A_Zaz):0:-1: ++%*1G:NAN(09A_Zaz):0:-1: ++%1G:0X0P0:1:1:0x0: ++%*1G:0X0P0:0:1: ++%1G:0X0P+0:1:1:0x0: ++%*1G:0X0P+0:0:1: ++%1G:0X8P-129:1:1:0x0: ++%*1G:0X8P-129:0:1: ++%1G:0X2.345678P0123:1:1:0x0: ++%*1G:0X2.345678P0123:0:1: ++%1G:0X2.345678P+123:1:1:0x0: ++%*1G:0X2.345678P+123:0:1: ++%1G:0X7.FFFFF8P125:1:1:0x0: ++%*1G:0X7.FFFFF8P125:0:1: ++%1G:0XF.FFFFFP+124:1:1:0x0: ++%*1G:0XF.FFFFFP+124:0:1: ++%1G:INFINITY:0:-1: ++%*1G:INFINITY:0:-1: ++%1G:+NAN():0:-1: ++%*1G:+NAN():0:-1: ++%1G:+NAN(09A_Zaz):0:-1: ++%*1G:+NAN(09A_Zaz):0:-1: ++%1G:+0X0P0:0:-1: ++%*1G:+0X0P0:0:-1: ++%1G:+0X0P+0:0:-1: ++%*1G:+0X0P+0:0:-1: ++%1G:+0X8P-129:0:-1: ++%*1G:+0X8P-129:0:-1: ++%1G:+0X2.345678P0123:0:-1: ++%*1G:+0X2.345678P0123:0:-1: ++%1G:+0X2.345678P+123:0:-1: ++%*1G:+0X2.345678P+123:0:-1: ++%1G:+0X7.FFFFF8P125:0:-1: ++%*1G:+0X7.FFFFF8P125:0:-1: ++%1G:+0XF.FFFFFP+124:0:-1: ++%*1G:+0XF.FFFFFP+124:0:-1: ++%1G:+INFINITY:0:-1: ++%*1G:+INFINITY:0:-1: ++%2G::0:-1: ++%*2G::0:-1: ++%2G:-INFINITY:0:-1: ++%*2G:-INFINITY:0:-1: ++%2G:-0XF.FFFFFP+124:1:2:-0x0: ++%*2G:-0XF.FFFFFP+124:0:2: ++%2G:-0X7.FFFFF8P125:1:2:-0x0: ++%*2G:-0X7.FFFFF8P125:0:2: ++%2G:-0X2.345678P+123:1:2:-0x0: ++%*2G:-0X2.345678P+123:0:2: ++%2G:-0X2.345678P0123:1:2:-0x0: ++%*2G:-0X2.345678P0123:0:2: ++%2G:-0X8P-129:1:2:-0x0: ++%*2G:-0X8P-129:0:2: ++%2G:-0X0P+0:1:2:-0x0: ++%*2G:-0X0P+0:0:2: ++%2G:-0X0P0:1:2:-0x0: ++%*2G:-0X0P0:0:2: ++%2G:-NAN(09A_Zaz):0:-1: ++%*2G:-NAN(09A_Zaz):0:-1: ++%2G:-NAN():0:-1: ++%*2G:-NAN():0:-1: ++%2G:NAN():0:-1: ++%*2G:NAN():0:-1: ++%2G:NAN(09A_Zaz):0:-1: ++%*2G:NAN(09A_Zaz):0:-1: ++# BZ12701 %2G:0X0P0:0:-1: ++# BZ12701 %*2G:0X0P0:0:-1: ++# BZ12701 %2G:0X0P+0:0:-1: ++# BZ12701 %*2G:0X0P+0:0:-1: ++# BZ12701 %2G:0X8P-129:0:-1: ++# BZ12701 %*2G:0X8P-129:0:-1: ++# BZ12701 %2G:0X2.345678P0123:0:-1: ++# BZ12701 %*2G:0X2.345678P0123:0:-1: ++# BZ12701 %2G:0X2.345678P+123:0:-1: ++# BZ12701 %*2G:0X2.345678P+123:0:-1: ++# BZ12701 %2G:0X7.FFFFF8P125:0:-1: ++# BZ12701 %*2G:0X7.FFFFF8P125:0:-1: ++# BZ12701 %2G:0XF.FFFFFP+124:0:-1: ++# BZ12701 %*2G:0XF.FFFFFP+124:0:-1: ++%2G:INFINITY:0:-1: ++%*2G:INFINITY:0:-1: ++%2G:+NAN():0:-1: ++%*2G:+NAN():0:-1: ++%2G:+NAN(09A_Zaz):0:-1: ++%*2G:+NAN(09A_Zaz):0:-1: ++%2G:+0X0P0:1:2:0x0: ++%*2G:+0X0P0:0:2: ++%2G:+0X0P+0:1:2:0x0: ++%*2G:+0X0P+0:0:2: ++%2G:+0X8P-129:1:2:0x0: ++%*2G:+0X8P-129:0:2: ++%2G:+0X2.345678P0123:1:2:0x0: ++%*2G:+0X2.345678P0123:0:2: ++%2G:+0X2.345678P+123:1:2:0x0: ++%*2G:+0X2.345678P+123:0:2: ++%2G:+0X7.FFFFF8P125:1:2:0x0: ++%*2G:+0X7.FFFFF8P125:0:2: ++%2G:+0XF.FFFFFP+124:1:2:0x0: ++%*2G:+0XF.FFFFFP+124:0:2: ++%2G:+INFINITY:0:-1: ++%*2G:+INFINITY:0:-1: ++%3G::0:-1: ++%*3G::0:-1: ++%3G:-INFINITY:0:-1: ++%*3G:-INFINITY:0:-1: ++# BZ12701 %3G:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %*3G:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %3G:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %*3G:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %3G:-0X2.345678P+123:0:-1: ++# BZ12701 %*3G:-0X2.345678P+123:0:-1: ++# BZ12701 %3G:-0X2.345678P0123:0:-1: ++# BZ12701 %*3G:-0X2.345678P0123:0:-1: ++# BZ12701 %3G:-0X8P-129:0:-1: ++# BZ12701 %*3G:-0X8P-129:0:-1: ++# BZ12701 %3G:-0X0P+0:0:-1: ++# BZ12701 %*3G:-0X0P+0:0:-1: ++# BZ12701 %3G:-0X0P0:0:-1: ++# BZ12701 %*3G:-0X0P0:0:-1: ++%3G:-NAN(09A_Zaz):0:-1: ++%*3G:-NAN(09A_Zaz):0:-1: ++%3G:-NAN():0:-1: ++%*3G:-NAN():0:-1: ++%3G:NAN():1:3:nan: ++%*3G:NAN():0:3: ++%3G:NAN(09A_Zaz):1:3:nan: ++%*3G:NAN(09A_Zaz):0:3: ++%3G:0X0P0:1:3:0x0: ++%*3G:0X0P0:0:3: ++%3G:0X0P+0:1:3:0x0: ++%*3G:0X0P+0:0:3: ++%3G:0X8P-129:1:3:0x1p3: ++%*3G:0X8P-129:0:3: ++%3G:0X2.345678P0123:1:3:0x1p1: ++%*3G:0X2.345678P0123:0:3: ++%3G:0X2.345678P+123:1:3:0x1p1: ++%*3G:0X2.345678P+123:0:3: ++%3G:0X7.FFFFF8P125:1:3:0x1.cp2: ++%*3G:0X7.FFFFF8P125:0:3: ++%3G:0XF.FFFFFP+124:1:3:0x1.ep3: ++%*3G:0XF.FFFFFP+124:0:3: ++%3G:INFINITY:1:3:inf: ++%*3G:INFINITY:0:3: ++%3G:+NAN():0:-1: ++%*3G:+NAN():0:-1: ++%3G:+NAN(09A_Zaz):0:-1: ++%*3G:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3G:+0X0P0:0:-1: ++# BZ12701 %*3G:+0X0P0:0:-1: ++# BZ12701 %3G:+0X0P+0:0:-1: ++# BZ12701 %*3G:+0X0P+0:0:-1: ++# BZ12701 %3G:+0X8P-129:0:-1: ++# BZ12701 %*3G:+0X8P-129:0:-1: ++# BZ12701 %3G:+0X2.345678P0123:0:-1: ++# BZ12701 %*3G:+0X2.345678P0123:0:-1: ++# BZ12701 %3G:+0X2.345678P+123:0:-1: ++# BZ12701 %*3G:+0X2.345678P+123:0:-1: ++# BZ12701 %3G:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %*3G:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %3G:+0XF.FFFFFP+124:0:-1: ++# BZ12701 %*3G:+0XF.FFFFFP+124:0:-1: ++%3G:+INFINITY:0:-1: ++%*3G:+INFINITY:0:-1: ++%4G::0:-1: ++%*4G::0:-1: ++%4G:-INFINITY:1:4:-inf: ++%*4G:-INFINITY:0:4: ++%4G:-0XF.FFFFFP+124:1:4:-0x1.ep3: ++%*4G:-0XF.FFFFFP+124:0:4: ++%4G:-0X7.FFFFF8P125:1:4:-0x1.cp2: ++%*4G:-0X7.FFFFF8P125:0:4: ++%4G:-0X2.345678P+123:1:4:-0x1p1: ++%*4G:-0X2.345678P+123:0:4: ++%4G:-0X2.345678P0123:1:4:-0x1p1: ++%*4G:-0X2.345678P0123:0:4: ++%4G:-0X8P-129:1:4:-0x1p3: ++%*4G:-0X8P-129:0:4: ++%4G:-0X0P+0:1:4:-0x0: ++%*4G:-0X0P+0:0:4: ++%4G:-0X0P0:1:4:-0x0: ++%*4G:-0X0P0:0:4: ++%4G:-NAN(09A_Zaz):1:4:-nan: ++%*4G:-NAN(09A_Zaz):0:4: ++%4G:-NAN():1:4:-nan: ++%*4G:-NAN():0:4: ++%4G:NAN():0:-1: ++%*4G:NAN():0:-1: ++%4G:NAN(09A_Zaz):0:-1: ++%*4G:NAN(09A_Zaz):0:-1: ++# BZ12701 %4G:0X0P0:0:-1: ++# BZ12701 %*4G:0X0P0:0:-1: ++# BZ12701 %4G:0X0P+0:0:-1: ++# BZ12701 %*4G:0X0P+0:0:-1: ++# BZ12701 %4G:0X8P-129:0:-1: ++# BZ12701 %*4G:0X8P-129:0:-1: ++%4G:0X2.345678P0123:1:4:0x1p1: ++%*4G:0X2.345678P0123:0:4: ++%4G:0X2.345678P+123:1:4:0x1p1: ++%*4G:0X2.345678P+123:0:4: ++%4G:0X7.FFFFF8P125:1:4:0x1.cp2: ++%*4G:0X7.FFFFF8P125:0:4: ++%4G:0XF.FFFFFP+124:1:4:0x1.ep3: ++%*4G:0XF.FFFFFP+124:0:4: ++%4G:INFINITY:0:-1: ++%*4G:INFINITY:0:-1: ++%4G:+NAN():1:4:nan: ++%*4G:+NAN():0:4: ++%4G:+NAN(09A_Zaz):1:4:nan: ++%*4G:+NAN(09A_Zaz):0:4: ++%4G:+0X0P0:1:4:0x0: ++%*4G:+0X0P0:0:4: ++%4G:+0X0P+0:1:4:0x0: ++%*4G:+0X0P+0:0:4: ++%4G:+0X8P-129:1:4:0x1p3: ++%*4G:+0X8P-129:0:4: ++%4G:+0X2.345678P0123:1:4:0x1p1: ++%*4G:+0X2.345678P0123:0:4: ++%4G:+0X2.345678P+123:1:4:0x1p1: ++%*4G:+0X2.345678P+123:0:4: ++%4G:+0X7.FFFFF8P125:1:4:0x1.cp2: ++%*4G:+0X7.FFFFF8P125:0:4: ++%4G:+0XF.FFFFFP+124:1:4:0x1.ep3: ++%*4G:+0XF.FFFFFP+124:0:4: ++%4G:+INFINITY:1:4:inf: ++%*4G:+INFINITY:0:4: ++%5G::0:-1: ++%*5G::0:-1: ++%5G:-INFINITY:0:-1: ++%*5G:-INFINITY:0:-1: ++%5G:-0XF.FFFFFP+124:1:5:-0x1.ep3: ++%*5G:-0XF.FFFFFP+124:0:5: ++%5G:-0X7.FFFFF8P125:1:5:-0x1.cp2: ++%*5G:-0X7.FFFFF8P125:0:5: ++%5G:-0X2.345678P+123:1:5:-0x1p1: ++%*5G:-0X2.345678P+123:0:5: ++%5G:-0X2.345678P0123:1:5:-0x1p1: ++%*5G:-0X2.345678P0123:0:5: ++# BZ12701 %5G:-0X8P-129:0:-1: ++# BZ12701 %*5G:-0X8P-129:0:-1: ++# BZ12701 %5G:-0X0P+0:0:-1: ++# BZ12701 %*5G:-0X0P+0:0:-1: ++# BZ12701 %5G:-0X0P0:0:-1: ++# BZ12701 %*5G:-0X0P0:0:-1: ++%5G:-NAN(09A_Zaz):0:-1: ++%*5G:-NAN(09A_Zaz):0:-1: ++%5G:-NAN():0:-1: ++%*5G:-NAN():0:-1: ++%5G:NAN():1:5:nan: ++%*5G:NAN():0:5: ++%5G:NAN(09A_Zaz):0:-1: ++%*5G:NAN(09A_Zaz):0:-1: ++%5G:0X0P0:1:5:0x0: ++%*5G:0X0P0:0:5: ++# BZ12701 %5G:0X0P+0:0:-1: ++# BZ12701 %*5G:0X0P+0:0:-1: ++# BZ12701 %5G:0X8P-129:0:-1: ++# BZ12701 %*5G:0X8P-129:0:-1: ++%5G:0X2.345678P0123:1:5:0x1.18p1: ++%*5G:0X2.345678P0123:0:5: ++%5G:0X2.345678P+123:1:5:0x1.18p1: ++%*5G:0X2.345678P+123:0:5: ++%5G:0X7.FFFFF8P125:1:5:0x1.fcp2: ++%*5G:0X7.FFFFF8P125:0:5: ++%5G:0XF.FFFFFP+124:1:5:0x1.fep3: ++%*5G:0XF.FFFFFP+124:0:5: ++%5G:INFINITY:0:-1: ++%*5G:INFINITY:0:-1: ++%5G:+NAN():0:-1: ++%*5G:+NAN():0:-1: ++%5G:+NAN(09A_Zaz):0:-1: ++%*5G:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5G:+0X0P0:0:-1: ++# BZ12701 %*5G:+0X0P0:0:-1: ++# BZ12701 %5G:+0X0P+0:0:-1: ++# BZ12701 %*5G:+0X0P+0:0:-1: ++# BZ12701 %5G:+0X8P-129:0:-1: ++# BZ12701 %*5G:+0X8P-129:0:-1: ++%5G:+0X2.345678P0123:1:5:0x1p1: ++%*5G:+0X2.345678P0123:0:5: ++%5G:+0X2.345678P+123:1:5:0x1p1: ++%*5G:+0X2.345678P+123:0:5: ++%5G:+0X7.FFFFF8P125:1:5:0x1.cp2: ++%*5G:+0X7.FFFFF8P125:0:5: ++%5G:+0XF.FFFFFP+124:1:5:0x1.ep3: ++%*5G:+0XF.FFFFFP+124:0:5: ++%5G:+INFINITY:0:-1: ++%*5G:+INFINITY:0:-1: ++%6G::0:-1: ++%*6G::0:-1: ++%6G:-INFINITY:0:-1: ++%*6G:-INFINITY:0:-1: ++%6G:-0XF.FFFFFP+124:1:6:-0x1.fep3: ++%*6G:-0XF.FFFFFP+124:0:6: ++%6G:-0X7.FFFFF8P125:1:6:-0x1.fcp2: ++%*6G:-0X7.FFFFF8P125:0:6: ++%6G:-0X2.345678P+123:1:6:-0x1.18p1: ++%*6G:-0X2.345678P+123:0:6: ++%6G:-0X2.345678P0123:1:6:-0x1.18p1: ++%*6G:-0X2.345678P0123:0:6: ++# BZ12701 %6G:-0X8P-129:0:-1: ++# BZ12701 %*6G:-0X8P-129:0:-1: ++# BZ12701 %6G:-0X0P+0:0:-1: ++# BZ12701 %*6G:-0X0P+0:0:-1: ++%6G:-0X0P0:1:6:-0x0: ++%*6G:-0X0P0:0:6: ++%6G:-NAN(09A_Zaz):0:-1: ++%*6G:-NAN(09A_Zaz):0:-1: ++%6G:-NAN():1:6:-nan: ++%*6G:-NAN():0:6: ++%6G:NAN():1:5:nan: ++%*6G:NAN():0:5: ++%6G:NAN(09A_Zaz):0:-1: ++%*6G:NAN(09A_Zaz):0:-1: ++%6G:0X0P0:1:5:0x0: ++%*6G:0X0P0:0:5: ++%6G:0X0P+0:1:6:0x0: ++%*6G:0X0P+0:0:6: ++%6G:0X8P-129:1:6:0x1p2: ++%*6G:0X8P-129:0:6: ++%6G:0X2.345678P0123:1:6:0x1.1ap1: ++%*6G:0X2.345678P0123:0:6: ++%6G:0X2.345678P+123:1:6:0x1.1ap1: ++%*6G:0X2.345678P+123:0:6: ++%6G:0X7.FFFFF8P125:1:6:0x1.ffcp2: ++%*6G:0X7.FFFFF8P125:0:6: ++%6G:0XF.FFFFFP+124:1:6:0x1.ffep3: ++%*6G:0XF.FFFFFP+124:0:6: ++%6G:INFINITY:0:-1: ++%*6G:INFINITY:0:-1: ++%6G:+NAN():1:6:nan: ++%*6G:+NAN():0:6: ++%6G:+NAN(09A_Zaz):0:-1: ++%*6G:+NAN(09A_Zaz):0:-1: ++%6G:+0X0P0:1:6:0x0: ++%*6G:+0X0P0:0:6: ++# BZ12701 %6G:+0X0P+0:0:-1: ++# BZ12701 %*6G:+0X0P+0:0:-1: ++# BZ12701 %6G:+0X8P-129:0:-1: ++# BZ12701 %*6G:+0X8P-129:0:-1: ++%6G:+0X2.345678P0123:1:6:0x1.18p1: ++%*6G:+0X2.345678P0123:0:6: ++%6G:+0X2.345678P+123:1:6:0x1.18p1: ++%*6G:+0X2.345678P+123:0:6: ++%6G:+0X7.FFFFF8P125:1:6:0x1.fcp2: ++%*6G:+0X7.FFFFF8P125:0:6: ++%6G:+0XF.FFFFFP+124:1:6:0x1.fep3: ++%*6G:+0XF.FFFFFP+124:0:6: ++%6G:+INFINITY:0:-1: ++%*6G:+INFINITY:0:-1: ++%12G::0:-1: ++%*12G::0:-1: ++%12G:-INFINITY:1:9:-inf: ++%*12G:-INFINITY:0:9: ++# BZ12701 %12G:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %*12G:-0XF.FFFFFP+124:0:-1: ++# BZ12701 %12G:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %*12G:-0X7.FFFFF8P125:0:-1: ++# BZ12701 %12G:-0X2.345678P+123:0:-1: ++# BZ12701 %*12G:-0X2.345678P+123:0:-1: ++# BZ12701 %12G:-0X2.345678P0123:0:-1: ++# BZ12701 %*12G:-0X2.345678P0123:0:-1: ++%12G:-0X8P-129:1:9:-0x1p-126: ++%*12G:-0X8P-129:0:9: ++%12G:-0X0P+0:1:7:-0x0: ++%*12G:-0X0P+0:0:7: ++%12G:-0X0P0:1:6:-0x0: ++%*12G:-0X0P0:0:6: ++%12G:-NAN(09A_Zaz):0:-1: ++%*12G:-NAN(09A_Zaz):0:-1: ++%12G:-NAN():1:6:-nan: ++%*12G:-NAN():0:6: ++%12G:NAN():1:5:nan: ++%*12G:NAN():0:5: ++%12G:NAN(09A_Zaz):1:12:nan: ++%*12G:NAN(09A_Zaz):0:12: ++%12G:0X0P0:1:5:0x0: ++%*12G:0X0P0:0:5: ++%12G:0X0P+0:1:6:0x0: ++%*12G:0X0P+0:0:6: ++%12G:0X8P-129:1:8:0x1p-126: ++%*12G:0X8P-129:0:8: ++%12G:0X2.345678P0123:1:12:0x1.1a2b3cp1: ++%*12G:0X2.345678P0123:0:12: ++# BZ12701 %12G:0X2.345678P+123:0:-1: ++# BZ12701 %*12G:0X2.345678P+123:0:-1: ++%12G:0X7.FFFFF8P125:1:12:0x1.fffffep3: ++%*12G:0X7.FFFFF8P125:0:12: ++%12G:0XF.FFFFFP+124:1:12:0x1.fffffep4: ++%*12G:0XF.FFFFFP+124:0:12: ++%12G:INFINITY:1:8:inf: ++%*12G:INFINITY:0:8: ++%12G:+NAN():1:6:nan: ++%*12G:+NAN():0:6: ++%12G:+NAN(09A_Zaz):0:-1: ++%*12G:+NAN(09A_Zaz):0:-1: ++%12G:+0X0P0:1:6:0x0: ++%*12G:+0X0P0:0:6: ++%12G:+0X0P+0:1:7:0x0: ++%*12G:+0X0P+0:0:7: ++%12G:+0X8P-129:1:9:0x1p-126: ++%*12G:+0X8P-129:0:9: ++# BZ12701 %12G:+0X2.345678P0123:0:-1: ++# BZ12701 %*12G:+0X2.345678P0123:0:-1: ++# BZ12701 %12G:+0X2.345678P+123:0:-1: ++# BZ12701 %*12G:+0X2.345678P+123:0:-1: ++# BZ12701 %12G:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %*12G:+0X7.FFFFF8P125:0:-1: ++# BZ12701 %12G:+0XF.FFFFFP+124:0:-1: ++# BZ12701 %*12G:+0XF.FFFFFP+124:0:-1: ++%12G:+INFINITY:1:9:inf: ++%*12G:+INFINITY:0:9: ++%18G::0:-1: ++%*18G::0:-1: ++%18G:-INFINITY:1:9:-inf: ++%*18G:-INFINITY:0:9: ++%18G:-0XF.FFFFFP+124:1:15:-0x1.fffffep127: ++%*18G:-0XF.FFFFFP+124:0:15: ++%18G:-0X7.FFFFF8P125:1:15:-0x1.fffffep127: ++%*18G:-0X7.FFFFF8P125:0:15: ++%18G:-0X2.345678P+123:1:16:-0x1.1a2b3cp124: ++%*18G:-0X2.345678P+123:0:16: ++%18G:-0X2.345678P0123:1:16:-0x1.1a2b3cp124: ++%*18G:-0X2.345678P0123:0:16: ++%18G:-0X8P-129:1:9:-0x1p-126: ++%*18G:-0X8P-129:0:9: ++%18G:-0X0P+0:1:7:-0x0: ++%*18G:-0X0P+0:0:7: ++%18G:-0X0P0:1:6:-0x0: ++%*18G:-0X0P0:0:6: ++%18G:-NAN(09A_Zaz):1:13:-nan: ++%*18G:-NAN(09A_Zaz):0:13: ++%18G:-NAN():1:6:-nan: ++%*18G:-NAN():0:6: ++%18G:NAN():1:5:nan: ++%*18G:NAN():0:5: ++%18G:NAN(09A_Zaz):1:12:nan: ++%*18G:NAN(09A_Zaz):0:12: ++%18G:0X0P0:1:5:0x0: ++%*18G:0X0P0:0:5: ++%18G:0X0P+0:1:6:0x0: ++%*18G:0X0P+0:0:6: ++%18G:0X8P-129:1:8:0x1p-126: ++%*18G:0X8P-129:0:8: ++%18G:0X2.345678P0123:1:15:0x1.1a2b3cp124: ++%*18G:0X2.345678P0123:0:15: ++%18G:0X2.345678P+123:1:15:0x1.1a2b3cp124: ++%*18G:0X2.345678P+123:0:15: ++%18G:0X7.FFFFF8P125:1:14:0x1.fffffep127: ++%*18G:0X7.FFFFF8P125:0:14: ++%18G:0XF.FFFFFP+124:1:14:0x1.fffffep127: ++%*18G:0XF.FFFFFP+124:0:14: ++%18G:INFINITY:1:8:inf: ++%*18G:INFINITY:0:8: ++%18G:+NAN():1:6:nan: ++%*18G:+NAN():0:6: ++%18G:+NAN(09A_Zaz):1:13:nan: ++%*18G:+NAN(09A_Zaz):0:13: ++%18G:+0X0P0:1:6:0x0: ++%*18G:+0X0P0:0:6: ++%18G:+0X0P+0:1:7:0x0: ++%*18G:+0X0P+0:0:7: ++%18G:+0X8P-129:1:9:0x1p-126: ++%*18G:+0X8P-129:0:9: ++%18G:+0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*18G:+0X2.345678P0123:0:16: ++%18G:+0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*18G:+0X2.345678P+123:0:16: ++%18G:+0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*18G:+0X7.FFFFF8P125:0:15: ++%18G:+0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*18G:+0XF.FFFFFP+124:0:15: ++%18G:+INFINITY:1:9:inf: ++%*18G:+INFINITY:0:9: ++%5G: :0:-1: ++%*5G: :0:-1: ++%5G: -INFINITY:0:-1: ++%*5G: -INFINITY:0:-1: ++%5G: -0XF.FFFFFP+124:1:6:-0x1.ep3: ++%*5G: -0XF.FFFFFP+124:0:6: ++%5G: -0X7.FFFFF8P125:1:6:-0x1.cp2: ++%*5G: -0X7.FFFFF8P125:0:6: ++%5G: -0X2.345678P+123:1:6:-0x1p1: ++%*5G: -0X2.345678P+123:0:6: ++%5G: -0X2.345678P0123:1:6:-0x1p1: ++%*5G: -0X2.345678P0123:0:6: ++# BZ12701 %5G: -0X8P-129:0:-1: ++# BZ12701 %*5G: -0X8P-129:0:-1: ++# BZ12701 %5G: -0X0P+0:0:-1: ++# BZ12701 %*5G: -0X0P+0:0:-1: ++# BZ12701 %5G: -0X0P0:0:-1: ++# BZ12701 %*5G: -0X0P0:0:-1: ++%5G: -NAN(09A_Zaz):0:-1: ++%*5G: -NAN(09A_Zaz):0:-1: ++%5G: -NAN():0:-1: ++%*5G: -NAN():0:-1: ++%5G: NAN():1:6:nan: ++%*5G: NAN():0:6: ++%5G: NAN(09A_Zaz):0:-1: ++%*5G: NAN(09A_Zaz):0:-1: ++%5G: 0X0P0:1:6:0x0: ++%*5G: 0X0P0:0:6: ++# BZ12701 %5G: 0X0P+0:0:-1: ++# BZ12701 %*5G: 0X0P+0:0:-1: ++# BZ12701 %5G: 0X8P-129:0:-1: ++# BZ12701 %*5G: 0X8P-129:0:-1: ++%5G: 0X2.345678P0123:1:6:0x1.18p1: ++%*5G: 0X2.345678P0123:0:6: ++%5G: 0X2.345678P+123:1:6:0x1.18p1: ++%*5G: 0X2.345678P+123:0:6: ++%5G: 0X7.FFFFF8P125:1:6:0x1.fcp2: ++%*5G: 0X7.FFFFF8P125:0:6: ++%5G: 0XF.FFFFFP+124:1:6:0x1.fep3: ++%*5G: 0XF.FFFFFP+124:0:6: ++%5G: INFINITY:0:-1: ++%*5G: INFINITY:0:-1: ++%5G: +NAN():0:-1: ++%*5G: +NAN():0:-1: ++%5G: +NAN(09A_Zaz):0:-1: ++%*5G: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5G: +0X0P0:0:-1: ++# BZ12701 %*5G: +0X0P0:0:-1: ++# BZ12701 %5G: +0X0P+0:0:-1: ++# BZ12701 %*5G: +0X0P+0:0:-1: ++# BZ12701 %5G: +0X8P-129:0:-1: ++# BZ12701 %*5G: +0X8P-129:0:-1: ++%5G: +0X2.345678P0123:1:6:0x1p1: ++%*5G: +0X2.345678P0123:0:6: ++%5G: +0X2.345678P+123:1:6:0x1p1: ++%*5G: +0X2.345678P+123:0:6: ++%5G: +0X7.FFFFF8P125:1:6:0x1.cp2: ++%*5G: +0X7.FFFFF8P125:0:6: ++%5G: +0XF.FFFFFP+124:1:6:0x1.ep3: ++%*5G: +0XF.FFFFFP+124:0:6: ++%5G: +INFINITY:0:-1: ++%*5G: +INFINITY:0:-1: ++%18G: :0:-1: ++%*18G: :0:-1: ++%18G: -INFINITY:1:10:-inf: ++%*18G: -INFINITY:0:10: ++%18G: -0XF.FFFFFP+124:1:16:-0x1.fffffep127: ++%*18G: -0XF.FFFFFP+124:0:16: ++%18G: -0X7.FFFFF8P125:1:16:-0x1.fffffep127: ++%*18G: -0X7.FFFFF8P125:0:16: ++%18G: -0X2.345678P+123:1:17:-0x1.1a2b3cp124: ++%*18G: -0X2.345678P+123:0:17: ++%18G: -0X2.345678P0123:1:17:-0x1.1a2b3cp124: ++%*18G: -0X2.345678P0123:0:17: ++%18G: -0X8P-129:1:10:-0x1p-126: ++%*18G: -0X8P-129:0:10: ++%18G: -0X0P+0:1:8:-0x0: ++%*18G: -0X0P+0:0:8: ++%18G: -0X0P0:1:7:-0x0: ++%*18G: -0X0P0:0:7: ++%18G: -NAN(09A_Zaz):1:14:-nan: ++%*18G: -NAN(09A_Zaz):0:14: ++%18G: -NAN():1:7:-nan: ++%*18G: -NAN():0:7: ++%18G: NAN():1:6:nan: ++%*18G: NAN():0:6: ++%18G: NAN(09A_Zaz):1:13:nan: ++%*18G: NAN(09A_Zaz):0:13: ++%18G: 0X0P0:1:6:0x0: ++%*18G: 0X0P0:0:6: ++%18G: 0X0P+0:1:7:0x0: ++%*18G: 0X0P+0:0:7: ++%18G: 0X8P-129:1:9:0x1p-126: ++%*18G: 0X8P-129:0:9: ++%18G: 0X2.345678P0123:1:16:0x1.1a2b3cp124: ++%*18G: 0X2.345678P0123:0:16: ++%18G: 0X2.345678P+123:1:16:0x1.1a2b3cp124: ++%*18G: 0X2.345678P+123:0:16: ++%18G: 0X7.FFFFF8P125:1:15:0x1.fffffep127: ++%*18G: 0X7.FFFFF8P125:0:15: ++%18G: 0XF.FFFFFP+124:1:15:0x1.fffffep127: ++%*18G: 0XF.FFFFFP+124:0:15: ++%18G: INFINITY:1:9:inf: ++%*18G: INFINITY:0:9: ++%18G: +NAN():1:7:nan: ++%*18G: +NAN():0:7: ++%18G: +NAN(09A_Zaz):1:14:nan: ++%*18G: +NAN(09A_Zaz):0:14: ++%18G: +0X0P0:1:7:0x0: ++%*18G: +0X0P0:0:7: ++%18G: +0X0P+0:1:8:0x0: ++%*18G: +0X0P+0:0:8: ++%18G: +0X8P-129:1:10:0x1p-126: ++%*18G: +0X8P-129:0:10: ++%18G: +0X2.345678P0123:1:17:0x1.1a2b3cp124: ++%*18G: +0X2.345678P0123:0:17: ++%18G: +0X2.345678P+123:1:17:0x1.1a2b3cp124: ++%*18G: +0X2.345678P+123:0:17: ++%18G: +0X7.FFFFF8P125:1:16:0x1.fffffep127: ++%*18G: +0X7.FFFFF8P125:0:16: ++%18G: +0XF.FFFFFP+124:1:16:0x1.fffffep127: ++%*18G: +0XF.FFFFFP+124:0:16: ++%18G: +INFINITY:1:10:inf: ++%*18G: +INFINITY:0:10: diff --git a/glibc-RHEL-119433-5.patch b/glibc-RHEL-119433-5.patch new file mode 100644 index 0000000..f0899bf --- /dev/null +++ b/glibc-RHEL-119433-5.patch @@ -0,0 +1,5035 @@ +commit 0b311614395586608b5433dc8151e098d1906446 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf double data for IEEE 754 binary64 format + + Add Makefile infrastructure and `double' real input data for targets + using the IEEE 754 binary64 format. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/ieee754/dbl-64/Makefile b/sysdeps/ieee754/dbl-64/Makefile +index 78530b5966017d03..766bef4a35d01d3d 100644 +--- a/sysdeps/ieee754/dbl-64/Makefile ++++ b/sysdeps/ieee754/dbl-64/Makefile +@@ -3,3 +3,7 @@ ifeq ($(subdir),math) + CFLAGS-branred.c += $(config-cflags-nofma) + CFLAGS-e_sqrt.c += $(config-cflags-nofma) + endif ++ ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-real-convs += double ++endif +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input +new file mode 100644 +index 0000000000000000..9d50b08b0b7aed3a +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-a.input +@@ -0,0 +1,682 @@ ++%la::0:-1: ++%*la::0:-1: ++%la:-infinity:1:9:-inf: ++%*la:-infinity:0:9: ++%la:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*la:-0xf.ffffffffffff8p+1020:0:24: ++%la:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*la:-0x7.ffffffffffffcp1021:0:23: ++%la:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*la:-0x2.3456789abcdfep+123:0:23: ++%la:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*la:-0x2.3456789abcdfep0123:0:23: ++%la:-0x8p-1025:1:10:-0x1p-1022: ++%*la:-0x8p-1025:0:10: ++%la:-0x0p+0:1:7:-0x0: ++%*la:-0x0p+0:0:7: ++%la:-0x0p0:1:6:-0x0: ++%*la:-0x0p0:0:6: ++%la:-nan(09A_Zaz):1:13:-nan: ++%*la:-nan(09A_Zaz):0:13: ++%la:-nan():1:6:-nan: ++%*la:-nan():0:6: ++%la:nan():1:5:nan: ++%*la:nan():0:5: ++%la:nan(09A_Zaz):1:12:nan: ++%*la:nan(09A_Zaz):0:12: ++%la:0x0p0:1:5:0x0: ++%*la:0x0p0:0:5: ++%la:0x0p+0:1:6:0x0: ++%*la:0x0p+0:0:6: ++%la:0x8p-1025:1:9:0x1p-1022: ++%*la:0x8p-1025:0:9: ++%la:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*la:0x2.3456789abcdfep0123:0:22: ++%la:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*la:0x2.3456789abcdfep+123:0:22: ++%la:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*la:0x7.ffffffffffffcp1021:0:22: ++%la:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*la:0xf.ffffffffffff8p+1020:0:23: ++%la:infinity:1:8:inf: ++%*la:infinity:0:8: ++%la:+nan():1:6:nan: ++%*la:+nan():0:6: ++%la:+nan(09A_Zaz):1:13:nan: ++%*la:+nan(09A_Zaz):0:13: ++%la:+0x0p0:1:6:0x0: ++%*la:+0x0p0:0:6: ++%la:+0x0p+0:1:7:0x0: ++%*la:+0x0p+0:0:7: ++%la:+0x8p-1025:1:10:0x1p-1022: ++%*la:+0x8p-1025:0:10: ++%la:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*la:+0x2.3456789abcdfep0123:0:23: ++%la:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*la:+0x2.3456789abcdfep+123:0:23: ++%la:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*la:+0x7.ffffffffffffcp1021:0:23: ++%la:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*la:+0xf.ffffffffffff8p+1020:0:24: ++%la:+infinity:1:9:inf: ++%*la:+infinity:0:9: ++%1la::0:-1: ++%*1la::0:-1: ++%1la:-infinity:0:-1: ++%*1la:-infinity:0:-1: ++%1la:-0xf.ffffffffffff8p+1020:0:-1: ++%*1la:-0xf.ffffffffffff8p+1020:0:-1: ++%1la:-0x7.ffffffffffffcp1021:0:-1: ++%*1la:-0x7.ffffffffffffcp1021:0:-1: ++%1la:-0x2.3456789abcdfep+123:0:-1: ++%*1la:-0x2.3456789abcdfep+123:0:-1: ++%1la:-0x2.3456789abcdfep0123:0:-1: ++%*1la:-0x2.3456789abcdfep0123:0:-1: ++%1la:-0x8p-1025:0:-1: ++%*1la:-0x8p-1025:0:-1: ++%1la:-0x0p+0:0:-1: ++%*1la:-0x0p+0:0:-1: ++%1la:-0x0p0:0:-1: ++%*1la:-0x0p0:0:-1: ++%1la:-nan(09A_Zaz):0:-1: ++%*1la:-nan(09A_Zaz):0:-1: ++%1la:-nan():0:-1: ++%*1la:-nan():0:-1: ++%1la:nan():0:-1: ++%*1la:nan():0:-1: ++%1la:nan(09A_Zaz):0:-1: ++%*1la:nan(09A_Zaz):0:-1: ++%1la:0x0p0:1:1:0x0: ++%*1la:0x0p0:0:1: ++%1la:0x0p+0:1:1:0x0: ++%*1la:0x0p+0:0:1: ++%1la:0x8p-1025:1:1:0x0: ++%*1la:0x8p-1025:0:1: ++%1la:0x2.3456789abcdfep0123:1:1:0x0: ++%*1la:0x2.3456789abcdfep0123:0:1: ++%1la:0x2.3456789abcdfep+123:1:1:0x0: ++%*1la:0x2.3456789abcdfep+123:0:1: ++%1la:0x7.ffffffffffffcp1021:1:1:0x0: ++%*1la:0x7.ffffffffffffcp1021:0:1: ++%1la:0xf.ffffffffffff8p+1020:1:1:0x0: ++%*1la:0xf.ffffffffffff8p+1020:0:1: ++%1la:infinity:0:-1: ++%*1la:infinity:0:-1: ++%1la:+nan():0:-1: ++%*1la:+nan():0:-1: ++%1la:+nan(09A_Zaz):0:-1: ++%*1la:+nan(09A_Zaz):0:-1: ++%1la:+0x0p0:0:-1: ++%*1la:+0x0p0:0:-1: ++%1la:+0x0p+0:0:-1: ++%*1la:+0x0p+0:0:-1: ++%1la:+0x8p-1025:0:-1: ++%*1la:+0x8p-1025:0:-1: ++%1la:+0x2.3456789abcdfep0123:0:-1: ++%*1la:+0x2.3456789abcdfep0123:0:-1: ++%1la:+0x2.3456789abcdfep+123:0:-1: ++%*1la:+0x2.3456789abcdfep+123:0:-1: ++%1la:+0x7.ffffffffffffcp1021:0:-1: ++%*1la:+0x7.ffffffffffffcp1021:0:-1: ++%1la:+0xf.ffffffffffff8p+1020:0:-1: ++%*1la:+0xf.ffffffffffff8p+1020:0:-1: ++%1la:+infinity:0:-1: ++%*1la:+infinity:0:-1: ++%2la::0:-1: ++%*2la::0:-1: ++%2la:-infinity:0:-1: ++%*2la:-infinity:0:-1: ++%2la:-0xf.ffffffffffff8p+1020:1:2:-0x0: ++%*2la:-0xf.ffffffffffff8p+1020:0:2: ++%2la:-0x7.ffffffffffffcp1021:1:2:-0x0: ++%*2la:-0x7.ffffffffffffcp1021:0:2: ++%2la:-0x2.3456789abcdfep+123:1:2:-0x0: ++%*2la:-0x2.3456789abcdfep+123:0:2: ++%2la:-0x2.3456789abcdfep0123:1:2:-0x0: ++%*2la:-0x2.3456789abcdfep0123:0:2: ++%2la:-0x8p-1025:1:2:-0x0: ++%*2la:-0x8p-1025:0:2: ++%2la:-0x0p+0:1:2:-0x0: ++%*2la:-0x0p+0:0:2: ++%2la:-0x0p0:1:2:-0x0: ++%*2la:-0x0p0:0:2: ++%2la:-nan(09A_Zaz):0:-1: ++%*2la:-nan(09A_Zaz):0:-1: ++%2la:-nan():0:-1: ++%*2la:-nan():0:-1: ++%2la:nan():0:-1: ++%*2la:nan():0:-1: ++%2la:nan(09A_Zaz):0:-1: ++%*2la:nan(09A_Zaz):0:-1: ++# BZ12701 %2la:0x0p0:0:-1: ++# BZ12701 %*2la:0x0p0:0:-1: ++# BZ12701 %2la:0x0p+0:0:-1: ++# BZ12701 %*2la:0x0p+0:0:-1: ++# BZ12701 %2la:0x8p-1025:0:-1: ++# BZ12701 %*2la:0x8p-1025:0:-1: ++# BZ12701 %2la:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*2la:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %2la:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*2la:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %2la:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*2la:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %2la:0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*2la:0xf.ffffffffffff8p+1020:0:-1: ++%2la:infinity:0:-1: ++%*2la:infinity:0:-1: ++%2la:+nan():0:-1: ++%*2la:+nan():0:-1: ++%2la:+nan(09A_Zaz):0:-1: ++%*2la:+nan(09A_Zaz):0:-1: ++%2la:+0x0p0:1:2:0x0: ++%*2la:+0x0p0:0:2: ++%2la:+0x0p+0:1:2:0x0: ++%*2la:+0x0p+0:0:2: ++%2la:+0x8p-1025:1:2:0x0: ++%*2la:+0x8p-1025:0:2: ++%2la:+0x2.3456789abcdfep0123:1:2:0x0: ++%*2la:+0x2.3456789abcdfep0123:0:2: ++%2la:+0x2.3456789abcdfep+123:1:2:0x0: ++%*2la:+0x2.3456789abcdfep+123:0:2: ++%2la:+0x7.ffffffffffffcp1021:1:2:0x0: ++%*2la:+0x7.ffffffffffffcp1021:0:2: ++%2la:+0xf.ffffffffffff8p+1020:1:2:0x0: ++%*2la:+0xf.ffffffffffff8p+1020:0:2: ++%2la:+infinity:0:-1: ++%*2la:+infinity:0:-1: ++%3la::0:-1: ++%*3la::0:-1: ++%3la:-infinity:0:-1: ++%*3la:-infinity:0:-1: ++# BZ12701 %3la:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3la:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %3la:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3la:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3la:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3la:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3la:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3la:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3la:-0x8p-1025:0:-1: ++# BZ12701 %*3la:-0x8p-1025:0:-1: ++# BZ12701 %3la:-0x0p+0:0:-1: ++# BZ12701 %*3la:-0x0p+0:0:-1: ++# BZ12701 %3la:-0x0p0:0:-1: ++# BZ12701 %*3la:-0x0p0:0:-1: ++%3la:-nan(09A_Zaz):0:-1: ++%*3la:-nan(09A_Zaz):0:-1: ++%3la:-nan():0:-1: ++%*3la:-nan():0:-1: ++%3la:nan():1:3:nan: ++%*3la:nan():0:3: ++%3la:nan(09A_Zaz):1:3:nan: ++%*3la:nan(09A_Zaz):0:3: ++%3la:0x0p0:1:3:0x0: ++%*3la:0x0p0:0:3: ++%3la:0x0p+0:1:3:0x0: ++%*3la:0x0p+0:0:3: ++%3la:0x8p-1025:1:3:0x1p3: ++%*3la:0x8p-1025:0:3: ++%3la:0x2.3456789abcdfep0123:1:3:0x1p1: ++%*3la:0x2.3456789abcdfep0123:0:3: ++%3la:0x2.3456789abcdfep+123:1:3:0x1p1: ++%*3la:0x2.3456789abcdfep+123:0:3: ++%3la:0x7.ffffffffffffcp1021:1:3:0x1.cp2: ++%*3la:0x7.ffffffffffffcp1021:0:3: ++%3la:0xf.ffffffffffff8p+1020:1:3:0x1.ep3: ++%*3la:0xf.ffffffffffff8p+1020:0:3: ++%3la:infinity:1:3:inf: ++%*3la:infinity:0:3: ++%3la:+nan():0:-1: ++%*3la:+nan():0:-1: ++%3la:+nan(09A_Zaz):0:-1: ++%*3la:+nan(09A_Zaz):0:-1: ++# BZ12701 %3la:+0x0p0:0:-1: ++# BZ12701 %*3la:+0x0p0:0:-1: ++# BZ12701 %3la:+0x0p+0:0:-1: ++# BZ12701 %*3la:+0x0p+0:0:-1: ++# BZ12701 %3la:+0x8p-1025:0:-1: ++# BZ12701 %*3la:+0x8p-1025:0:-1: ++# BZ12701 %3la:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3la:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3la:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3la:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3la:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3la:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3la:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3la:+0xf.ffffffffffff8p+1020:0:-1: ++%3la:+infinity:0:-1: ++%*3la:+infinity:0:-1: ++%4la::0:-1: ++%*4la::0:-1: ++%4la:-infinity:1:4:-inf: ++%*4la:-infinity:0:4: ++%4la:-0xf.ffffffffffff8p+1020:1:4:-0x1.ep3: ++%*4la:-0xf.ffffffffffff8p+1020:0:4: ++%4la:-0x7.ffffffffffffcp1021:1:4:-0x1.cp2: ++%*4la:-0x7.ffffffffffffcp1021:0:4: ++%4la:-0x2.3456789abcdfep+123:1:4:-0x1p1: ++%*4la:-0x2.3456789abcdfep+123:0:4: ++%4la:-0x2.3456789abcdfep0123:1:4:-0x1p1: ++%*4la:-0x2.3456789abcdfep0123:0:4: ++%4la:-0x8p-1025:1:4:-0x1p3: ++%*4la:-0x8p-1025:0:4: ++%4la:-0x0p+0:1:4:-0x0: ++%*4la:-0x0p+0:0:4: ++%4la:-0x0p0:1:4:-0x0: ++%*4la:-0x0p0:0:4: ++%4la:-nan(09A_Zaz):1:4:-nan: ++%*4la:-nan(09A_Zaz):0:4: ++%4la:-nan():1:4:-nan: ++%*4la:-nan():0:4: ++%4la:nan():0:-1: ++%*4la:nan():0:-1: ++%4la:nan(09A_Zaz):0:-1: ++%*4la:nan(09A_Zaz):0:-1: ++# BZ12701 %4la:0x0p0:0:-1: ++# BZ12701 %*4la:0x0p0:0:-1: ++# BZ12701 %4la:0x0p+0:0:-1: ++# BZ12701 %*4la:0x0p+0:0:-1: ++# BZ12701 %4la:0x8p-1025:0:-1: ++# BZ12701 %*4la:0x8p-1025:0:-1: ++%4la:0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4la:0x2.3456789abcdfep0123:0:4: ++%4la:0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4la:0x2.3456789abcdfep+123:0:4: ++%4la:0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4la:0x7.ffffffffffffcp1021:0:4: ++%4la:0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4la:0xf.ffffffffffff8p+1020:0:4: ++%4la:infinity:0:-1: ++%*4la:infinity:0:-1: ++%4la:+nan():1:4:nan: ++%*4la:+nan():0:4: ++%4la:+nan(09A_Zaz):1:4:nan: ++%*4la:+nan(09A_Zaz):0:4: ++%4la:+0x0p0:1:4:0x0: ++%*4la:+0x0p0:0:4: ++%4la:+0x0p+0:1:4:0x0: ++%*4la:+0x0p+0:0:4: ++%4la:+0x8p-1025:1:4:0x1p3: ++%*4la:+0x8p-1025:0:4: ++%4la:+0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4la:+0x2.3456789abcdfep0123:0:4: ++%4la:+0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4la:+0x2.3456789abcdfep+123:0:4: ++%4la:+0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4la:+0x7.ffffffffffffcp1021:0:4: ++%4la:+0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4la:+0xf.ffffffffffff8p+1020:0:4: ++%4la:+infinity:1:4:inf: ++%*4la:+infinity:0:4: ++%5la::0:-1: ++%*5la::0:-1: ++%5la:-infinity:0:-1: ++%*5la:-infinity:0:-1: ++%5la:-0xf.ffffffffffff8p+1020:1:5:-0x1.ep3: ++%*5la:-0xf.ffffffffffff8p+1020:0:5: ++%5la:-0x7.ffffffffffffcp1021:1:5:-0x1.cp2: ++%*5la:-0x7.ffffffffffffcp1021:0:5: ++%5la:-0x2.3456789abcdfep+123:1:5:-0x1p1: ++%*5la:-0x2.3456789abcdfep+123:0:5: ++%5la:-0x2.3456789abcdfep0123:1:5:-0x1p1: ++%*5la:-0x2.3456789abcdfep0123:0:5: ++# BZ12701 %5la:-0x8p-1025:0:-1: ++# BZ12701 %*5la:-0x8p-1025:0:-1: ++# BZ12701 %5la:-0x0p+0:0:-1: ++# BZ12701 %*5la:-0x0p+0:0:-1: ++# BZ12701 %5la:-0x0p0:0:-1: ++# BZ12701 %*5la:-0x0p0:0:-1: ++%5la:-nan(09A_Zaz):0:-1: ++%*5la:-nan(09A_Zaz):0:-1: ++%5la:-nan():0:-1: ++%*5la:-nan():0:-1: ++%5la:nan():1:5:nan: ++%*5la:nan():0:5: ++%5la:nan(09A_Zaz):0:-1: ++%*5la:nan(09A_Zaz):0:-1: ++%5la:0x0p0:1:5:0x0: ++%*5la:0x0p0:0:5: ++# BZ12701 %5la:0x0p+0:0:-1: ++# BZ12701 %*5la:0x0p+0:0:-1: ++# BZ12701 %5la:0x8p-1025:0:-1: ++# BZ12701 %*5la:0x8p-1025:0:-1: ++%5la:0x2.3456789abcdfep0123:1:5:0x1.18p1: ++%*5la:0x2.3456789abcdfep0123:0:5: ++%5la:0x2.3456789abcdfep+123:1:5:0x1.18p1: ++%*5la:0x2.3456789abcdfep+123:0:5: ++%5la:0x7.ffffffffffffcp1021:1:5:0x1.fcp2: ++%*5la:0x7.ffffffffffffcp1021:0:5: ++%5la:0xf.ffffffffffff8p+1020:1:5:0x1.fep3: ++%*5la:0xf.ffffffffffff8p+1020:0:5: ++%5la:infinity:0:-1: ++%*5la:infinity:0:-1: ++%5la:+nan():0:-1: ++%*5la:+nan():0:-1: ++%5la:+nan(09A_Zaz):0:-1: ++%*5la:+nan(09A_Zaz):0:-1: ++# BZ12701 %5la:+0x0p0:0:-1: ++# BZ12701 %*5la:+0x0p0:0:-1: ++# BZ12701 %5la:+0x0p+0:0:-1: ++# BZ12701 %*5la:+0x0p+0:0:-1: ++# BZ12701 %5la:+0x8p-1025:0:-1: ++# BZ12701 %*5la:+0x8p-1025:0:-1: ++%5la:+0x2.3456789abcdfep0123:1:5:0x1p1: ++%*5la:+0x2.3456789abcdfep0123:0:5: ++%5la:+0x2.3456789abcdfep+123:1:5:0x1p1: ++%*5la:+0x2.3456789abcdfep+123:0:5: ++%5la:+0x7.ffffffffffffcp1021:1:5:0x1.cp2: ++%*5la:+0x7.ffffffffffffcp1021:0:5: ++%5la:+0xf.ffffffffffff8p+1020:1:5:0x1.ep3: ++%*5la:+0xf.ffffffffffff8p+1020:0:5: ++%5la:+infinity:0:-1: ++%*5la:+infinity:0:-1: ++%6la::0:-1: ++%*6la::0:-1: ++%6la:-infinity:0:-1: ++%*6la:-infinity:0:-1: ++%6la:-0xf.ffffffffffff8p+1020:1:6:-0x1.fep3: ++%*6la:-0xf.ffffffffffff8p+1020:0:6: ++%6la:-0x7.ffffffffffffcp1021:1:6:-0x1.fcp2: ++%*6la:-0x7.ffffffffffffcp1021:0:6: ++%6la:-0x2.3456789abcdfep+123:1:6:-0x1.18p1: ++%*6la:-0x2.3456789abcdfep+123:0:6: ++%6la:-0x2.3456789abcdfep0123:1:6:-0x1.18p1: ++%*6la:-0x2.3456789abcdfep0123:0:6: ++# BZ12701 %6la:-0x8p-1025:0:-1: ++# BZ12701 %*6la:-0x8p-1025:0:-1: ++# BZ12701 %6la:-0x0p+0:0:-1: ++# BZ12701 %*6la:-0x0p+0:0:-1: ++%6la:-0x0p0:1:6:-0x0: ++%*6la:-0x0p0:0:6: ++%6la:-nan(09A_Zaz):0:-1: ++%*6la:-nan(09A_Zaz):0:-1: ++%6la:-nan():1:6:-nan: ++%*6la:-nan():0:6: ++%6la:nan():1:5:nan: ++%*6la:nan():0:5: ++%6la:nan(09A_Zaz):0:-1: ++%*6la:nan(09A_Zaz):0:-1: ++%6la:0x0p0:1:5:0x0: ++%*6la:0x0p0:0:5: ++%6la:0x0p+0:1:6:0x0: ++%*6la:0x0p+0:0:6: ++%6la:0x8p-1025:1:6:0x1p2: ++%*6la:0x8p-1025:0:6: ++%6la:0x2.3456789abcdfep0123:1:6:0x1.1ap1: ++%*6la:0x2.3456789abcdfep0123:0:6: ++%6la:0x2.3456789abcdfep+123:1:6:0x1.1ap1: ++%*6la:0x2.3456789abcdfep+123:0:6: ++%6la:0x7.ffffffffffffcp1021:1:6:0x1.ffcp2: ++%*6la:0x7.ffffffffffffcp1021:0:6: ++%6la:0xf.ffffffffffff8p+1020:1:6:0x1.ffep3: ++%*6la:0xf.ffffffffffff8p+1020:0:6: ++%6la:infinity:0:-1: ++%*6la:infinity:0:-1: ++%6la:+nan():1:6:nan: ++%*6la:+nan():0:6: ++%6la:+nan(09A_Zaz):0:-1: ++%*6la:+nan(09A_Zaz):0:-1: ++%6la:+0x0p0:1:6:0x0: ++%*6la:+0x0p0:0:6: ++# BZ12701 %6la:+0x0p+0:0:-1: ++# BZ12701 %*6la:+0x0p+0:0:-1: ++# BZ12701 %6la:+0x8p-1025:0:-1: ++# BZ12701 %*6la:+0x8p-1025:0:-1: ++%6la:+0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*6la:+0x2.3456789abcdfep0123:0:6: ++%6la:+0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*6la:+0x2.3456789abcdfep+123:0:6: ++%6la:+0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*6la:+0x7.ffffffffffffcp1021:0:6: ++%6la:+0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*6la:+0xf.ffffffffffff8p+1020:0:6: ++%6la:+infinity:0:-1: ++%*6la:+infinity:0:-1: ++%20la::0:-1: ++%*20la::0:-1: ++%20la:-infinity:1:9:-inf: ++%*20la:-infinity:0:9: ++# BZ12701 %20la:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20la:-0xf.ffffffffffff8p+1020:0:-1: ++%20la:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3: ++%*20la:-0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20la:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20la:-0x2.3456789abcdfep+123:0:-1: ++%20la:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20la:-0x2.3456789abcdfep0123:0:20: ++%20la:-0x8p-1025:1:10:-0x1p-1022: ++%*20la:-0x8p-1025:0:10: ++%20la:-0x0p+0:1:7:-0x0: ++%*20la:-0x0p+0:0:7: ++%20la:-0x0p0:1:6:-0x0: ++%*20la:-0x0p0:0:6: ++%20la:-nan(09A_Zaz):1:13:-nan: ++%*20la:-nan(09A_Zaz):0:13: ++%20la:-nan():1:6:-nan: ++%*20la:-nan():0:6: ++%20la:nan():1:5:nan: ++%*20la:nan():0:5: ++%20la:nan(09A_Zaz):1:12:nan: ++%*20la:nan(09A_Zaz):0:12: ++%20la:0x0p0:1:5:0x0: ++%*20la:0x0p0:0:5: ++%20la:0x0p+0:1:6:0x0: ++%*20la:0x0p+0:0:6: ++%20la:0x8p-1025:1:9:0x1p-1022: ++%*20la:0x8p-1025:0:9: ++%20la:0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20la:0x2.3456789abcdfep0123:0:20: ++%20la:0x2.3456789abcdfep+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20la:0x2.3456789abcdfep+123:0:20: ++%20la:0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp12: ++%*20la:0x7.ffffffffffffcp1021:0:20: ++%20la:0xf.ffffffffffff8p+1020:1:20:0x1.fffffffffffffp4: ++%*20la:0xf.ffffffffffff8p+1020:0:20: ++%20la:infinity:1:8:inf: ++%*20la:infinity:0:8: ++%20la:+nan():1:6:nan: ++%*20la:+nan():0:6: ++%20la:+nan(09A_Zaz):1:13:nan: ++%*20la:+nan(09A_Zaz):0:13: ++%20la:+0x0p0:1:6:0x0: ++%*20la:+0x0p0:0:6: ++%20la:+0x0p+0:1:7:0x0: ++%*20la:+0x0p+0:0:7: ++%20la:+0x8p-1025:1:10:0x1p-1022: ++%*20la:+0x8p-1025:0:10: ++%20la:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20la:+0x2.3456789abcdfep0123:0:20: ++# BZ12701 %20la:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20la:+0x2.3456789abcdfep+123:0:-1: ++%20la:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3: ++%*20la:+0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20la:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20la:+0xf.ffffffffffff8p+1020:0:-1: ++%20la:+infinity:1:9:inf: ++%*20la:+infinity:0:9: ++%32la::0:-1: ++%*32la::0:-1: ++%32la:-infinity:1:9:-inf: ++%*32la:-infinity:0:9: ++%32la:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*32la:-0xf.ffffffffffff8p+1020:0:24: ++%32la:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*32la:-0x7.ffffffffffffcp1021:0:23: ++%32la:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32la:-0x2.3456789abcdfep+123:0:23: ++%32la:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32la:-0x2.3456789abcdfep0123:0:23: ++%32la:-0x8p-1025:1:10:-0x1p-1022: ++%*32la:-0x8p-1025:0:10: ++%32la:-0x0p+0:1:7:-0x0: ++%*32la:-0x0p+0:0:7: ++%32la:-0x0p0:1:6:-0x0: ++%*32la:-0x0p0:0:6: ++%32la:-nan(09A_Zaz):1:13:-nan: ++%*32la:-nan(09A_Zaz):0:13: ++%32la:-nan():1:6:-nan: ++%*32la:-nan():0:6: ++%32la:nan():1:5:nan: ++%*32la:nan():0:5: ++%32la:nan(09A_Zaz):1:12:nan: ++%*32la:nan(09A_Zaz):0:12: ++%32la:0x0p0:1:5:0x0: ++%*32la:0x0p0:0:5: ++%32la:0x0p+0:1:6:0x0: ++%*32la:0x0p+0:0:6: ++%32la:0x8p-1025:1:9:0x1p-1022: ++%*32la:0x8p-1025:0:9: ++%32la:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32la:0x2.3456789abcdfep0123:0:22: ++%32la:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32la:0x2.3456789abcdfep+123:0:22: ++%32la:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*32la:0x7.ffffffffffffcp1021:0:22: ++%32la:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*32la:0xf.ffffffffffff8p+1020:0:23: ++%32la:infinity:1:8:inf: ++%*32la:infinity:0:8: ++%32la:+nan():1:6:nan: ++%*32la:+nan():0:6: ++%32la:+nan(09A_Zaz):1:13:nan: ++%*32la:+nan(09A_Zaz):0:13: ++%32la:+0x0p0:1:6:0x0: ++%*32la:+0x0p0:0:6: ++%32la:+0x0p+0:1:7:0x0: ++%*32la:+0x0p+0:0:7: ++%32la:+0x8p-1025:1:10:0x1p-1022: ++%*32la:+0x8p-1025:0:10: ++%32la:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32la:+0x2.3456789abcdfep0123:0:23: ++%32la:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32la:+0x2.3456789abcdfep+123:0:23: ++%32la:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32la:+0x7.ffffffffffffcp1021:0:23: ++%32la:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32la:+0xf.ffffffffffff8p+1020:0:24: ++%32la:+infinity:1:9:inf: ++%*32la:+infinity:0:9: ++%5la: :0:-1: ++%*5la: :0:-1: ++%5la: -infinity:0:-1: ++%*5la: -infinity:0:-1: ++%5la: -0xf.ffffffffffff8p+1020:1:6:-0x1.ep3: ++%*5la: -0xf.ffffffffffff8p+1020:0:6: ++%5la: -0x7.ffffffffffffcp1021:1:6:-0x1.cp2: ++%*5la: -0x7.ffffffffffffcp1021:0:6: ++%5la: -0x2.3456789abcdfep+123:1:6:-0x1p1: ++%*5la: -0x2.3456789abcdfep+123:0:6: ++%5la: -0x2.3456789abcdfep0123:1:6:-0x1p1: ++%*5la: -0x2.3456789abcdfep0123:0:6: ++# BZ12701 %5la: -0x8p-1025:0:-1: ++# BZ12701 %*5la: -0x8p-1025:0:-1: ++# BZ12701 %5la: -0x0p+0:0:-1: ++# BZ12701 %*5la: -0x0p+0:0:-1: ++# BZ12701 %5la: -0x0p0:0:-1: ++# BZ12701 %*5la: -0x0p0:0:-1: ++%5la: -nan(09A_Zaz):0:-1: ++%*5la: -nan(09A_Zaz):0:-1: ++%5la: -nan():0:-1: ++%*5la: -nan():0:-1: ++%5la: nan():1:6:nan: ++%*5la: nan():0:6: ++%5la: nan(09A_Zaz):0:-1: ++%*5la: nan(09A_Zaz):0:-1: ++%5la: 0x0p0:1:6:0x0: ++%*5la: 0x0p0:0:6: ++# BZ12701 %5la: 0x0p+0:0:-1: ++# BZ12701 %*5la: 0x0p+0:0:-1: ++# BZ12701 %5la: 0x8p-1025:0:-1: ++# BZ12701 %*5la: 0x8p-1025:0:-1: ++%5la: 0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*5la: 0x2.3456789abcdfep0123:0:6: ++%5la: 0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*5la: 0x2.3456789abcdfep+123:0:6: ++%5la: 0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*5la: 0x7.ffffffffffffcp1021:0:6: ++%5la: 0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*5la: 0xf.ffffffffffff8p+1020:0:6: ++%5la: infinity:0:-1: ++%*5la: infinity:0:-1: ++%5la: +nan():0:-1: ++%*5la: +nan():0:-1: ++%5la: +nan(09A_Zaz):0:-1: ++%*5la: +nan(09A_Zaz):0:-1: ++# BZ12701 %5la: +0x0p0:0:-1: ++# BZ12701 %*5la: +0x0p0:0:-1: ++# BZ12701 %5la: +0x0p+0:0:-1: ++# BZ12701 %*5la: +0x0p+0:0:-1: ++# BZ12701 %5la: +0x8p-1025:0:-1: ++# BZ12701 %*5la: +0x8p-1025:0:-1: ++%5la: +0x2.3456789abcdfep0123:1:6:0x1p1: ++%*5la: +0x2.3456789abcdfep0123:0:6: ++%5la: +0x2.3456789abcdfep+123:1:6:0x1p1: ++%*5la: +0x2.3456789abcdfep+123:0:6: ++%5la: +0x7.ffffffffffffcp1021:1:6:0x1.cp2: ++%*5la: +0x7.ffffffffffffcp1021:0:6: ++%5la: +0xf.ffffffffffff8p+1020:1:6:0x1.ep3: ++%*5la: +0xf.ffffffffffff8p+1020:0:6: ++%5la: +infinity:0:-1: ++%*5la: +infinity:0:-1: ++%32la: :0:-1: ++%*32la: :0:-1: ++%32la: -infinity:1:10:-inf: ++%*32la: -infinity:0:10: ++%32la: -0xf.ffffffffffff8p+1020:1:25:-0x1.fffffffffffffp1023: ++%*32la: -0xf.ffffffffffff8p+1020:0:25: ++%32la: -0x7.ffffffffffffcp1021:1:24:-0x1.fffffffffffffp1023: ++%*32la: -0x7.ffffffffffffcp1021:0:24: ++%32la: -0x2.3456789abcdfep+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32la: -0x2.3456789abcdfep+123:0:24: ++%32la: -0x2.3456789abcdfep0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32la: -0x2.3456789abcdfep0123:0:24: ++%32la: -0x8p-1025:1:11:-0x1p-1022: ++%*32la: -0x8p-1025:0:11: ++%32la: -0x0p+0:1:8:-0x0: ++%*32la: -0x0p+0:0:8: ++%32la: -0x0p0:1:7:-0x0: ++%*32la: -0x0p0:0:7: ++%32la: -nan(09A_Zaz):1:14:-nan: ++%*32la: -nan(09A_Zaz):0:14: ++%32la: -nan():1:7:-nan: ++%*32la: -nan():0:7: ++%32la: nan():1:6:nan: ++%*32la: nan():0:6: ++%32la: nan(09A_Zaz):1:13:nan: ++%*32la: nan(09A_Zaz):0:13: ++%32la: 0x0p0:1:6:0x0: ++%*32la: 0x0p0:0:6: ++%32la: 0x0p+0:1:7:0x0: ++%*32la: 0x0p+0:0:7: ++%32la: 0x8p-1025:1:10:0x1p-1022: ++%*32la: 0x8p-1025:0:10: ++%32la: 0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32la: 0x2.3456789abcdfep0123:0:23: ++%32la: 0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32la: 0x2.3456789abcdfep+123:0:23: ++%32la: 0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32la: 0x7.ffffffffffffcp1021:0:23: ++%32la: 0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32la: 0xf.ffffffffffff8p+1020:0:24: ++%32la: infinity:1:9:inf: ++%*32la: infinity:0:9: ++%32la: +nan():1:7:nan: ++%*32la: +nan():0:7: ++%32la: +nan(09A_Zaz):1:14:nan: ++%*32la: +nan(09A_Zaz):0:14: ++%32la: +0x0p0:1:7:0x0: ++%*32la: +0x0p0:0:7: ++%32la: +0x0p+0:1:8:0x0: ++%*32la: +0x0p+0:0:8: ++%32la: +0x8p-1025:1:11:0x1p-1022: ++%*32la: +0x8p-1025:0:11: ++%32la: +0x2.3456789abcdfep0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32la: +0x2.3456789abcdfep0123:0:24: ++%32la: +0x2.3456789abcdfep+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32la: +0x2.3456789abcdfep+123:0:24: ++%32la: +0x7.ffffffffffffcp1021:1:24:0x1.fffffffffffffp1023: ++%*32la: +0x7.ffffffffffffcp1021:0:24: ++%32la: +0xf.ffffffffffff8p+1020:1:25:0x1.fffffffffffffp1023: ++%*32la: +0xf.ffffffffffff8p+1020:0:25: ++%32la: +infinity:1:10:inf: ++%*32la: +infinity:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input +new file mode 100644 +index 0000000000000000..3b5a4fe81268339e +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-aa.input +@@ -0,0 +1,682 @@ ++%lA::0:-1: ++%*lA::0:-1: ++%lA:-INFINITY:1:9:-inf: ++%*lA:-INFINITY:0:9: ++%lA:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*lA:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%lA:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*lA:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%lA:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lA:-0X2.3456789ABCDFEP+123:0:23: ++%lA:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lA:-0X2.3456789ABCDFEP0123:0:23: ++%lA:-0X8P-1025:1:10:-0x1p-1022: ++%*lA:-0X8P-1025:0:10: ++%lA:-0X0P+0:1:7:-0x0: ++%*lA:-0X0P+0:0:7: ++%lA:-0X0P0:1:6:-0x0: ++%*lA:-0X0P0:0:6: ++%lA:-NAN(09A_Zaz):1:13:-nan: ++%*lA:-NAN(09A_Zaz):0:13: ++%lA:-NAN():1:6:-nan: ++%*lA:-NAN():0:6: ++%lA:NAN():1:5:nan: ++%*lA:NAN():0:5: ++%lA:NAN(09A_Zaz):1:12:nan: ++%*lA:NAN(09A_Zaz):0:12: ++%lA:0X0P0:1:5:0x0: ++%*lA:0X0P0:0:5: ++%lA:0X0P+0:1:6:0x0: ++%*lA:0X0P+0:0:6: ++%lA:0X8P-1025:1:9:0x1p-1022: ++%*lA:0X8P-1025:0:9: ++%lA:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lA:0X2.3456789ABCDFEP0123:0:22: ++%lA:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lA:0X2.3456789ABCDFEP+123:0:22: ++%lA:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*lA:0X7.FFFFFFFFFFFFCP1021:0:22: ++%lA:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*lA:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%lA:INFINITY:1:8:inf: ++%*lA:INFINITY:0:8: ++%lA:+NAN():1:6:nan: ++%*lA:+NAN():0:6: ++%lA:+NAN(09A_Zaz):1:13:nan: ++%*lA:+NAN(09A_Zaz):0:13: ++%lA:+0X0P0:1:6:0x0: ++%*lA:+0X0P0:0:6: ++%lA:+0X0P+0:1:7:0x0: ++%*lA:+0X0P+0:0:7: ++%lA:+0X8P-1025:1:10:0x1p-1022: ++%*lA:+0X8P-1025:0:10: ++%lA:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lA:+0X2.3456789ABCDFEP0123:0:23: ++%lA:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lA:+0X2.3456789ABCDFEP+123:0:23: ++%lA:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*lA:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%lA:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*lA:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%lA:+INFINITY:1:9:inf: ++%*lA:+INFINITY:0:9: ++%1lA::0:-1: ++%*1lA::0:-1: ++%1lA:-INFINITY:0:-1: ++%*1lA:-INFINITY:0:-1: ++%1lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1lA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1lA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1lA:-0X2.3456789ABCDFEP+123:0:-1: ++%*1lA:-0X2.3456789ABCDFEP+123:0:-1: ++%1lA:-0X2.3456789ABCDFEP0123:0:-1: ++%*1lA:-0X2.3456789ABCDFEP0123:0:-1: ++%1lA:-0X8P-1025:0:-1: ++%*1lA:-0X8P-1025:0:-1: ++%1lA:-0X0P+0:0:-1: ++%*1lA:-0X0P+0:0:-1: ++%1lA:-0X0P0:0:-1: ++%*1lA:-0X0P0:0:-1: ++%1lA:-NAN(09A_Zaz):0:-1: ++%*1lA:-NAN(09A_Zaz):0:-1: ++%1lA:-NAN():0:-1: ++%*1lA:-NAN():0:-1: ++%1lA:NAN():0:-1: ++%*1lA:NAN():0:-1: ++%1lA:NAN(09A_Zaz):0:-1: ++%*1lA:NAN(09A_Zaz):0:-1: ++%1lA:0X0P0:1:1:0x0: ++%*1lA:0X0P0:0:1: ++%1lA:0X0P+0:1:1:0x0: ++%*1lA:0X0P+0:0:1: ++%1lA:0X8P-1025:1:1:0x0: ++%*1lA:0X8P-1025:0:1: ++%1lA:0X2.3456789ABCDFEP0123:1:1:0x0: ++%*1lA:0X2.3456789ABCDFEP0123:0:1: ++%1lA:0X2.3456789ABCDFEP+123:1:1:0x0: ++%*1lA:0X2.3456789ABCDFEP+123:0:1: ++%1lA:0X7.FFFFFFFFFFFFCP1021:1:1:0x0: ++%*1lA:0X7.FFFFFFFFFFFFCP1021:0:1: ++%1lA:0XF.FFFFFFFFFFFF8P+1020:1:1:0x0: ++%*1lA:0XF.FFFFFFFFFFFF8P+1020:0:1: ++%1lA:INFINITY:0:-1: ++%*1lA:INFINITY:0:-1: ++%1lA:+NAN():0:-1: ++%*1lA:+NAN():0:-1: ++%1lA:+NAN(09A_Zaz):0:-1: ++%*1lA:+NAN(09A_Zaz):0:-1: ++%1lA:+0X0P0:0:-1: ++%*1lA:+0X0P0:0:-1: ++%1lA:+0X0P+0:0:-1: ++%*1lA:+0X0P+0:0:-1: ++%1lA:+0X8P-1025:0:-1: ++%*1lA:+0X8P-1025:0:-1: ++%1lA:+0X2.3456789ABCDFEP0123:0:-1: ++%*1lA:+0X2.3456789ABCDFEP0123:0:-1: ++%1lA:+0X2.3456789ABCDFEP+123:0:-1: ++%*1lA:+0X2.3456789ABCDFEP+123:0:-1: ++%1lA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1lA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1lA:+INFINITY:0:-1: ++%*1lA:+INFINITY:0:-1: ++%2lA::0:-1: ++%*2lA::0:-1: ++%2lA:-INFINITY:0:-1: ++%*2lA:-INFINITY:0:-1: ++%2lA:-0XF.FFFFFFFFFFFF8P+1020:1:2:-0x0: ++%*2lA:-0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2lA:-0X7.FFFFFFFFFFFFCP1021:1:2:-0x0: ++%*2lA:-0X7.FFFFFFFFFFFFCP1021:0:2: ++%2lA:-0X2.3456789ABCDFEP+123:1:2:-0x0: ++%*2lA:-0X2.3456789ABCDFEP+123:0:2: ++%2lA:-0X2.3456789ABCDFEP0123:1:2:-0x0: ++%*2lA:-0X2.3456789ABCDFEP0123:0:2: ++%2lA:-0X8P-1025:1:2:-0x0: ++%*2lA:-0X8P-1025:0:2: ++%2lA:-0X0P+0:1:2:-0x0: ++%*2lA:-0X0P+0:0:2: ++%2lA:-0X0P0:1:2:-0x0: ++%*2lA:-0X0P0:0:2: ++%2lA:-NAN(09A_Zaz):0:-1: ++%*2lA:-NAN(09A_Zaz):0:-1: ++%2lA:-NAN():0:-1: ++%*2lA:-NAN():0:-1: ++%2lA:NAN():0:-1: ++%*2lA:NAN():0:-1: ++%2lA:NAN(09A_Zaz):0:-1: ++%*2lA:NAN(09A_Zaz):0:-1: ++# BZ12701 %2lA:0X0P0:0:-1: ++# BZ12701 %*2lA:0X0P0:0:-1: ++# BZ12701 %2lA:0X0P+0:0:-1: ++# BZ12701 %*2lA:0X0P+0:0:-1: ++# BZ12701 %2lA:0X8P-1025:0:-1: ++# BZ12701 %*2lA:0X8P-1025:0:-1: ++# BZ12701 %2lA:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*2lA:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %2lA:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*2lA:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %2lA:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*2lA:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %2lA:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*2lA:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%2lA:INFINITY:0:-1: ++%*2lA:INFINITY:0:-1: ++%2lA:+NAN():0:-1: ++%*2lA:+NAN():0:-1: ++%2lA:+NAN(09A_Zaz):0:-1: ++%*2lA:+NAN(09A_Zaz):0:-1: ++%2lA:+0X0P0:1:2:0x0: ++%*2lA:+0X0P0:0:2: ++%2lA:+0X0P+0:1:2:0x0: ++%*2lA:+0X0P+0:0:2: ++%2lA:+0X8P-1025:1:2:0x0: ++%*2lA:+0X8P-1025:0:2: ++%2lA:+0X2.3456789ABCDFEP0123:1:2:0x0: ++%*2lA:+0X2.3456789ABCDFEP0123:0:2: ++%2lA:+0X2.3456789ABCDFEP+123:1:2:0x0: ++%*2lA:+0X2.3456789ABCDFEP+123:0:2: ++%2lA:+0X7.FFFFFFFFFFFFCP1021:1:2:0x0: ++%*2lA:+0X7.FFFFFFFFFFFFCP1021:0:2: ++%2lA:+0XF.FFFFFFFFFFFF8P+1020:1:2:0x0: ++%*2lA:+0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2lA:+INFINITY:0:-1: ++%*2lA:+INFINITY:0:-1: ++%3lA::0:-1: ++%*3lA::0:-1: ++%3lA:-INFINITY:0:-1: ++%*3lA:-INFINITY:0:-1: ++# BZ12701 %3lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %3lA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3lA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3lA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3lA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3lA:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3lA:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3lA:-0X8P-1025:0:-1: ++# BZ12701 %*3lA:-0X8P-1025:0:-1: ++# BZ12701 %3lA:-0X0P+0:0:-1: ++# BZ12701 %*3lA:-0X0P+0:0:-1: ++# BZ12701 %3lA:-0X0P0:0:-1: ++# BZ12701 %*3lA:-0X0P0:0:-1: ++%3lA:-NAN(09A_Zaz):0:-1: ++%*3lA:-NAN(09A_Zaz):0:-1: ++%3lA:-NAN():0:-1: ++%*3lA:-NAN():0:-1: ++%3lA:NAN():1:3:nan: ++%*3lA:NAN():0:3: ++%3lA:NAN(09A_Zaz):1:3:nan: ++%*3lA:NAN(09A_Zaz):0:3: ++%3lA:0X0P0:1:3:0x0: ++%*3lA:0X0P0:0:3: ++%3lA:0X0P+0:1:3:0x0: ++%*3lA:0X0P+0:0:3: ++%3lA:0X8P-1025:1:3:0x1p3: ++%*3lA:0X8P-1025:0:3: ++%3lA:0X2.3456789ABCDFEP0123:1:3:0x1p1: ++%*3lA:0X2.3456789ABCDFEP0123:0:3: ++%3lA:0X2.3456789ABCDFEP+123:1:3:0x1p1: ++%*3lA:0X2.3456789ABCDFEP+123:0:3: ++%3lA:0X7.FFFFFFFFFFFFCP1021:1:3:0x1.cp2: ++%*3lA:0X7.FFFFFFFFFFFFCP1021:0:3: ++%3lA:0XF.FFFFFFFFFFFF8P+1020:1:3:0x1.ep3: ++%*3lA:0XF.FFFFFFFFFFFF8P+1020:0:3: ++%3lA:INFINITY:1:3:inf: ++%*3lA:INFINITY:0:3: ++%3lA:+NAN():0:-1: ++%*3lA:+NAN():0:-1: ++%3lA:+NAN(09A_Zaz):0:-1: ++%*3lA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3lA:+0X0P0:0:-1: ++# BZ12701 %*3lA:+0X0P0:0:-1: ++# BZ12701 %3lA:+0X0P+0:0:-1: ++# BZ12701 %*3lA:+0X0P+0:0:-1: ++# BZ12701 %3lA:+0X8P-1025:0:-1: ++# BZ12701 %*3lA:+0X8P-1025:0:-1: ++# BZ12701 %3lA:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3lA:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3lA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3lA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3lA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3lA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%3lA:+INFINITY:0:-1: ++%*3lA:+INFINITY:0:-1: ++%4lA::0:-1: ++%*4lA::0:-1: ++%4lA:-INFINITY:1:4:-inf: ++%*4lA:-INFINITY:0:4: ++%4lA:-0XF.FFFFFFFFFFFF8P+1020:1:4:-0x1.ep3: ++%*4lA:-0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lA:-0X7.FFFFFFFFFFFFCP1021:1:4:-0x1.cp2: ++%*4lA:-0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lA:-0X2.3456789ABCDFEP+123:1:4:-0x1p1: ++%*4lA:-0X2.3456789ABCDFEP+123:0:4: ++%4lA:-0X2.3456789ABCDFEP0123:1:4:-0x1p1: ++%*4lA:-0X2.3456789ABCDFEP0123:0:4: ++%4lA:-0X8P-1025:1:4:-0x1p3: ++%*4lA:-0X8P-1025:0:4: ++%4lA:-0X0P+0:1:4:-0x0: ++%*4lA:-0X0P+0:0:4: ++%4lA:-0X0P0:1:4:-0x0: ++%*4lA:-0X0P0:0:4: ++%4lA:-NAN(09A_Zaz):1:4:-nan: ++%*4lA:-NAN(09A_Zaz):0:4: ++%4lA:-NAN():1:4:-nan: ++%*4lA:-NAN():0:4: ++%4lA:NAN():0:-1: ++%*4lA:NAN():0:-1: ++%4lA:NAN(09A_Zaz):0:-1: ++%*4lA:NAN(09A_Zaz):0:-1: ++# BZ12701 %4lA:0X0P0:0:-1: ++# BZ12701 %*4lA:0X0P0:0:-1: ++# BZ12701 %4lA:0X0P+0:0:-1: ++# BZ12701 %*4lA:0X0P+0:0:-1: ++# BZ12701 %4lA:0X8P-1025:0:-1: ++# BZ12701 %*4lA:0X8P-1025:0:-1: ++%4lA:0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4lA:0X2.3456789ABCDFEP0123:0:4: ++%4lA:0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4lA:0X2.3456789ABCDFEP+123:0:4: ++%4lA:0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4lA:0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lA:0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4lA:0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lA:INFINITY:0:-1: ++%*4lA:INFINITY:0:-1: ++%4lA:+NAN():1:4:nan: ++%*4lA:+NAN():0:4: ++%4lA:+NAN(09A_Zaz):1:4:nan: ++%*4lA:+NAN(09A_Zaz):0:4: ++%4lA:+0X0P0:1:4:0x0: ++%*4lA:+0X0P0:0:4: ++%4lA:+0X0P+0:1:4:0x0: ++%*4lA:+0X0P+0:0:4: ++%4lA:+0X8P-1025:1:4:0x1p3: ++%*4lA:+0X8P-1025:0:4: ++%4lA:+0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4lA:+0X2.3456789ABCDFEP0123:0:4: ++%4lA:+0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4lA:+0X2.3456789ABCDFEP+123:0:4: ++%4lA:+0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4lA:+0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lA:+0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4lA:+0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lA:+INFINITY:1:4:inf: ++%*4lA:+INFINITY:0:4: ++%5lA::0:-1: ++%*5lA::0:-1: ++%5lA:-INFINITY:0:-1: ++%*5lA:-INFINITY:0:-1: ++%5lA:-0XF.FFFFFFFFFFFF8P+1020:1:5:-0x1.ep3: ++%*5lA:-0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lA:-0X7.FFFFFFFFFFFFCP1021:1:5:-0x1.cp2: ++%*5lA:-0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lA:-0X2.3456789ABCDFEP+123:1:5:-0x1p1: ++%*5lA:-0X2.3456789ABCDFEP+123:0:5: ++%5lA:-0X2.3456789ABCDFEP0123:1:5:-0x1p1: ++%*5lA:-0X2.3456789ABCDFEP0123:0:5: ++# BZ12701 %5lA:-0X8P-1025:0:-1: ++# BZ12701 %*5lA:-0X8P-1025:0:-1: ++# BZ12701 %5lA:-0X0P+0:0:-1: ++# BZ12701 %*5lA:-0X0P+0:0:-1: ++# BZ12701 %5lA:-0X0P0:0:-1: ++# BZ12701 %*5lA:-0X0P0:0:-1: ++%5lA:-NAN(09A_Zaz):0:-1: ++%*5lA:-NAN(09A_Zaz):0:-1: ++%5lA:-NAN():0:-1: ++%*5lA:-NAN():0:-1: ++%5lA:NAN():1:5:nan: ++%*5lA:NAN():0:5: ++%5lA:NAN(09A_Zaz):0:-1: ++%*5lA:NAN(09A_Zaz):0:-1: ++%5lA:0X0P0:1:5:0x0: ++%*5lA:0X0P0:0:5: ++# BZ12701 %5lA:0X0P+0:0:-1: ++# BZ12701 %*5lA:0X0P+0:0:-1: ++# BZ12701 %5lA:0X8P-1025:0:-1: ++# BZ12701 %*5lA:0X8P-1025:0:-1: ++%5lA:0X2.3456789ABCDFEP0123:1:5:0x1.18p1: ++%*5lA:0X2.3456789ABCDFEP0123:0:5: ++%5lA:0X2.3456789ABCDFEP+123:1:5:0x1.18p1: ++%*5lA:0X2.3456789ABCDFEP+123:0:5: ++%5lA:0X7.FFFFFFFFFFFFCP1021:1:5:0x1.fcp2: ++%*5lA:0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lA:0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.fep3: ++%*5lA:0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lA:INFINITY:0:-1: ++%*5lA:INFINITY:0:-1: ++%5lA:+NAN():0:-1: ++%*5lA:+NAN():0:-1: ++%5lA:+NAN(09A_Zaz):0:-1: ++%*5lA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5lA:+0X0P0:0:-1: ++# BZ12701 %*5lA:+0X0P0:0:-1: ++# BZ12701 %5lA:+0X0P+0:0:-1: ++# BZ12701 %*5lA:+0X0P+0:0:-1: ++# BZ12701 %5lA:+0X8P-1025:0:-1: ++# BZ12701 %*5lA:+0X8P-1025:0:-1: ++%5lA:+0X2.3456789ABCDFEP0123:1:5:0x1p1: ++%*5lA:+0X2.3456789ABCDFEP0123:0:5: ++%5lA:+0X2.3456789ABCDFEP+123:1:5:0x1p1: ++%*5lA:+0X2.3456789ABCDFEP+123:0:5: ++%5lA:+0X7.FFFFFFFFFFFFCP1021:1:5:0x1.cp2: ++%*5lA:+0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lA:+0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.ep3: ++%*5lA:+0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lA:+INFINITY:0:-1: ++%*5lA:+INFINITY:0:-1: ++%6lA::0:-1: ++%*6lA::0:-1: ++%6lA:-INFINITY:0:-1: ++%*6lA:-INFINITY:0:-1: ++%6lA:-0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.fep3: ++%*6lA:-0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lA:-0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.fcp2: ++%*6lA:-0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lA:-0X2.3456789ABCDFEP+123:1:6:-0x1.18p1: ++%*6lA:-0X2.3456789ABCDFEP+123:0:6: ++%6lA:-0X2.3456789ABCDFEP0123:1:6:-0x1.18p1: ++%*6lA:-0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %6lA:-0X8P-1025:0:-1: ++# BZ12701 %*6lA:-0X8P-1025:0:-1: ++# BZ12701 %6lA:-0X0P+0:0:-1: ++# BZ12701 %*6lA:-0X0P+0:0:-1: ++%6lA:-0X0P0:1:6:-0x0: ++%*6lA:-0X0P0:0:6: ++%6lA:-NAN(09A_Zaz):0:-1: ++%*6lA:-NAN(09A_Zaz):0:-1: ++%6lA:-NAN():1:6:-nan: ++%*6lA:-NAN():0:6: ++%6lA:NAN():1:5:nan: ++%*6lA:NAN():0:5: ++%6lA:NAN(09A_Zaz):0:-1: ++%*6lA:NAN(09A_Zaz):0:-1: ++%6lA:0X0P0:1:5:0x0: ++%*6lA:0X0P0:0:5: ++%6lA:0X0P+0:1:6:0x0: ++%*6lA:0X0P+0:0:6: ++%6lA:0X8P-1025:1:6:0x1p2: ++%*6lA:0X8P-1025:0:6: ++%6lA:0X2.3456789ABCDFEP0123:1:6:0x1.1ap1: ++%*6lA:0X2.3456789ABCDFEP0123:0:6: ++%6lA:0X2.3456789ABCDFEP+123:1:6:0x1.1ap1: ++%*6lA:0X2.3456789ABCDFEP+123:0:6: ++%6lA:0X7.FFFFFFFFFFFFCP1021:1:6:0x1.ffcp2: ++%*6lA:0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lA:0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ffep3: ++%*6lA:0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lA:INFINITY:0:-1: ++%*6lA:INFINITY:0:-1: ++%6lA:+NAN():1:6:nan: ++%*6lA:+NAN():0:6: ++%6lA:+NAN(09A_Zaz):0:-1: ++%*6lA:+NAN(09A_Zaz):0:-1: ++%6lA:+0X0P0:1:6:0x0: ++%*6lA:+0X0P0:0:6: ++# BZ12701 %6lA:+0X0P+0:0:-1: ++# BZ12701 %*6lA:+0X0P+0:0:-1: ++# BZ12701 %6lA:+0X8P-1025:0:-1: ++# BZ12701 %*6lA:+0X8P-1025:0:-1: ++%6lA:+0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*6lA:+0X2.3456789ABCDFEP0123:0:6: ++%6lA:+0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*6lA:+0X2.3456789ABCDFEP+123:0:6: ++%6lA:+0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*6lA:+0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lA:+0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*6lA:+0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lA:+INFINITY:0:-1: ++%*6lA:+INFINITY:0:-1: ++%20lA::0:-1: ++%*20lA::0:-1: ++%20lA:-INFINITY:1:9:-inf: ++%*20lA:-INFINITY:0:9: ++# BZ12701 %20lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20lA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20lA:-0X7.FFFFFFFFFFFFCP1021:1:20:-0x1.fffffffffffffp3: ++%*20lA:-0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20lA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20lA:-0X2.3456789ABCDFEP+123:0:-1: ++%20lA:-0X2.3456789ABCDFEP0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20lA:-0X2.3456789ABCDFEP0123:0:20: ++%20lA:-0X8P-1025:1:10:-0x1p-1022: ++%*20lA:-0X8P-1025:0:10: ++%20lA:-0X0P+0:1:7:-0x0: ++%*20lA:-0X0P+0:0:7: ++%20lA:-0X0P0:1:6:-0x0: ++%*20lA:-0X0P0:0:6: ++%20lA:-NAN(09A_Zaz):1:13:-nan: ++%*20lA:-NAN(09A_Zaz):0:13: ++%20lA:-NAN():1:6:-nan: ++%*20lA:-NAN():0:6: ++%20lA:NAN():1:5:nan: ++%*20lA:NAN():0:5: ++%20lA:NAN(09A_Zaz):1:12:nan: ++%*20lA:NAN(09A_Zaz):0:12: ++%20lA:0X0P0:1:5:0x0: ++%*20lA:0X0P0:0:5: ++%20lA:0X0P+0:1:6:0x0: ++%*20lA:0X0P+0:0:6: ++%20lA:0X8P-1025:1:9:0x1p-1022: ++%*20lA:0X8P-1025:0:9: ++%20lA:0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lA:0X2.3456789ABCDFEP0123:0:20: ++%20lA:0X2.3456789ABCDFEP+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lA:0X2.3456789ABCDFEP+123:0:20: ++%20lA:0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp12: ++%*20lA:0X7.FFFFFFFFFFFFCP1021:0:20: ++%20lA:0XF.FFFFFFFFFFFF8P+1020:1:20:0x1.fffffffffffffp4: ++%*20lA:0XF.FFFFFFFFFFFF8P+1020:0:20: ++%20lA:INFINITY:1:8:inf: ++%*20lA:INFINITY:0:8: ++%20lA:+NAN():1:6:nan: ++%*20lA:+NAN():0:6: ++%20lA:+NAN(09A_Zaz):1:13:nan: ++%*20lA:+NAN(09A_Zaz):0:13: ++%20lA:+0X0P0:1:6:0x0: ++%*20lA:+0X0P0:0:6: ++%20lA:+0X0P+0:1:7:0x0: ++%*20lA:+0X0P+0:0:7: ++%20lA:+0X8P-1025:1:10:0x1p-1022: ++%*20lA:+0X8P-1025:0:10: ++%20lA:+0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20lA:+0X2.3456789ABCDFEP0123:0:20: ++# BZ12701 %20lA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20lA:+0X2.3456789ABCDFEP+123:0:-1: ++%20lA:+0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp3: ++%*20lA:+0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20lA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20lA:+INFINITY:1:9:inf: ++%*20lA:+INFINITY:0:9: ++%32lA::0:-1: ++%*32lA::0:-1: ++%32lA:-INFINITY:1:9:-inf: ++%*32lA:-INFINITY:0:9: ++%32lA:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*32lA:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lA:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*32lA:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lA:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lA:-0X2.3456789ABCDFEP+123:0:23: ++%32lA:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lA:-0X2.3456789ABCDFEP0123:0:23: ++%32lA:-0X8P-1025:1:10:-0x1p-1022: ++%*32lA:-0X8P-1025:0:10: ++%32lA:-0X0P+0:1:7:-0x0: ++%*32lA:-0X0P+0:0:7: ++%32lA:-0X0P0:1:6:-0x0: ++%*32lA:-0X0P0:0:6: ++%32lA:-NAN(09A_Zaz):1:13:-nan: ++%*32lA:-NAN(09A_Zaz):0:13: ++%32lA:-NAN():1:6:-nan: ++%*32lA:-NAN():0:6: ++%32lA:NAN():1:5:nan: ++%*32lA:NAN():0:5: ++%32lA:NAN(09A_Zaz):1:12:nan: ++%*32lA:NAN(09A_Zaz):0:12: ++%32lA:0X0P0:1:5:0x0: ++%*32lA:0X0P0:0:5: ++%32lA:0X0P+0:1:6:0x0: ++%*32lA:0X0P+0:0:6: ++%32lA:0X8P-1025:1:9:0x1p-1022: ++%*32lA:0X8P-1025:0:9: ++%32lA:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lA:0X2.3456789ABCDFEP0123:0:22: ++%32lA:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lA:0X2.3456789ABCDFEP+123:0:22: ++%32lA:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*32lA:0X7.FFFFFFFFFFFFCP1021:0:22: ++%32lA:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*32lA:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%32lA:INFINITY:1:8:inf: ++%*32lA:INFINITY:0:8: ++%32lA:+NAN():1:6:nan: ++%*32lA:+NAN():0:6: ++%32lA:+NAN(09A_Zaz):1:13:nan: ++%*32lA:+NAN(09A_Zaz):0:13: ++%32lA:+0X0P0:1:6:0x0: ++%*32lA:+0X0P0:0:6: ++%32lA:+0X0P+0:1:7:0x0: ++%*32lA:+0X0P+0:0:7: ++%32lA:+0X8P-1025:1:10:0x1p-1022: ++%*32lA:+0X8P-1025:0:10: ++%32lA:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lA:+0X2.3456789ABCDFEP0123:0:23: ++%32lA:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lA:+0X2.3456789ABCDFEP+123:0:23: ++%32lA:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32lA:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lA:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32lA:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lA:+INFINITY:1:9:inf: ++%*32lA:+INFINITY:0:9: ++%5lA: :0:-1: ++%*5lA: :0:-1: ++%5lA: -INFINITY:0:-1: ++%*5lA: -INFINITY:0:-1: ++%5lA: -0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.ep3: ++%*5lA: -0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lA: -0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.cp2: ++%*5lA: -0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lA: -0X2.3456789ABCDFEP+123:1:6:-0x1p1: ++%*5lA: -0X2.3456789ABCDFEP+123:0:6: ++%5lA: -0X2.3456789ABCDFEP0123:1:6:-0x1p1: ++%*5lA: -0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %5lA: -0X8P-1025:0:-1: ++# BZ12701 %*5lA: -0X8P-1025:0:-1: ++# BZ12701 %5lA: -0X0P+0:0:-1: ++# BZ12701 %*5lA: -0X0P+0:0:-1: ++# BZ12701 %5lA: -0X0P0:0:-1: ++# BZ12701 %*5lA: -0X0P0:0:-1: ++%5lA: -NAN(09A_Zaz):0:-1: ++%*5lA: -NAN(09A_Zaz):0:-1: ++%5lA: -NAN():0:-1: ++%*5lA: -NAN():0:-1: ++%5lA: NAN():1:6:nan: ++%*5lA: NAN():0:6: ++%5lA: NAN(09A_Zaz):0:-1: ++%*5lA: NAN(09A_Zaz):0:-1: ++%5lA: 0X0P0:1:6:0x0: ++%*5lA: 0X0P0:0:6: ++# BZ12701 %5lA: 0X0P+0:0:-1: ++# BZ12701 %*5lA: 0X0P+0:0:-1: ++# BZ12701 %5lA: 0X8P-1025:0:-1: ++# BZ12701 %*5lA: 0X8P-1025:0:-1: ++%5lA: 0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*5lA: 0X2.3456789ABCDFEP0123:0:6: ++%5lA: 0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*5lA: 0X2.3456789ABCDFEP+123:0:6: ++%5lA: 0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*5lA: 0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lA: 0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*5lA: 0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lA: INFINITY:0:-1: ++%*5lA: INFINITY:0:-1: ++%5lA: +NAN():0:-1: ++%*5lA: +NAN():0:-1: ++%5lA: +NAN(09A_Zaz):0:-1: ++%*5lA: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5lA: +0X0P0:0:-1: ++# BZ12701 %*5lA: +0X0P0:0:-1: ++# BZ12701 %5lA: +0X0P+0:0:-1: ++# BZ12701 %*5lA: +0X0P+0:0:-1: ++# BZ12701 %5lA: +0X8P-1025:0:-1: ++# BZ12701 %*5lA: +0X8P-1025:0:-1: ++%5lA: +0X2.3456789ABCDFEP0123:1:6:0x1p1: ++%*5lA: +0X2.3456789ABCDFEP0123:0:6: ++%5lA: +0X2.3456789ABCDFEP+123:1:6:0x1p1: ++%*5lA: +0X2.3456789ABCDFEP+123:0:6: ++%5lA: +0X7.FFFFFFFFFFFFCP1021:1:6:0x1.cp2: ++%*5lA: +0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lA: +0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ep3: ++%*5lA: +0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lA: +INFINITY:0:-1: ++%*5lA: +INFINITY:0:-1: ++%32lA: :0:-1: ++%*32lA: :0:-1: ++%32lA: -INFINITY:1:10:-inf: ++%*32lA: -INFINITY:0:10: ++%32lA: -0XF.FFFFFFFFFFFF8P+1020:1:25:-0x1.fffffffffffffp1023: ++%*32lA: -0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32lA: -0X7.FFFFFFFFFFFFCP1021:1:24:-0x1.fffffffffffffp1023: ++%*32lA: -0X7.FFFFFFFFFFFFCP1021:0:24: ++%32lA: -0X2.3456789ABCDFEP+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lA: -0X2.3456789ABCDFEP+123:0:24: ++%32lA: -0X2.3456789ABCDFEP0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lA: -0X2.3456789ABCDFEP0123:0:24: ++%32lA: -0X8P-1025:1:11:-0x1p-1022: ++%*32lA: -0X8P-1025:0:11: ++%32lA: -0X0P+0:1:8:-0x0: ++%*32lA: -0X0P+0:0:8: ++%32lA: -0X0P0:1:7:-0x0: ++%*32lA: -0X0P0:0:7: ++%32lA: -NAN(09A_Zaz):1:14:-nan: ++%*32lA: -NAN(09A_Zaz):0:14: ++%32lA: -NAN():1:7:-nan: ++%*32lA: -NAN():0:7: ++%32lA: NAN():1:6:nan: ++%*32lA: NAN():0:6: ++%32lA: NAN(09A_Zaz):1:13:nan: ++%*32lA: NAN(09A_Zaz):0:13: ++%32lA: 0X0P0:1:6:0x0: ++%*32lA: 0X0P0:0:6: ++%32lA: 0X0P+0:1:7:0x0: ++%*32lA: 0X0P+0:0:7: ++%32lA: 0X8P-1025:1:10:0x1p-1022: ++%*32lA: 0X8P-1025:0:10: ++%32lA: 0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lA: 0X2.3456789ABCDFEP0123:0:23: ++%32lA: 0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lA: 0X2.3456789ABCDFEP+123:0:23: ++%32lA: 0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32lA: 0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lA: 0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32lA: 0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lA: INFINITY:1:9:inf: ++%*32lA: INFINITY:0:9: ++%32lA: +NAN():1:7:nan: ++%*32lA: +NAN():0:7: ++%32lA: +NAN(09A_Zaz):1:14:nan: ++%*32lA: +NAN(09A_Zaz):0:14: ++%32lA: +0X0P0:1:7:0x0: ++%*32lA: +0X0P0:0:7: ++%32lA: +0X0P+0:1:8:0x0: ++%*32lA: +0X0P+0:0:8: ++%32lA: +0X8P-1025:1:11:0x1p-1022: ++%*32lA: +0X8P-1025:0:11: ++%32lA: +0X2.3456789ABCDFEP0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lA: +0X2.3456789ABCDFEP0123:0:24: ++%32lA: +0X2.3456789ABCDFEP+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lA: +0X2.3456789ABCDFEP+123:0:24: ++%32lA: +0X7.FFFFFFFFFFFFCP1021:1:24:0x1.fffffffffffffp1023: ++%*32lA: +0X7.FFFFFFFFFFFFCP1021:0:24: ++%32lA: +0XF.FFFFFFFFFFFF8P+1020:1:25:0x1.fffffffffffffp1023: ++%*32lA: +0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32lA: +INFINITY:1:10:inf: ++%*32lA: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input +new file mode 100644 +index 0000000000000000..cf1ea542c94e4082 +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-e.input +@@ -0,0 +1,558 @@ ++%le::0:-1: ++%*le::0:-1: ++%le:-infinity:1:9:-inf: ++%*le:-infinity:0:9: ++%le:-1.79769313486231570814527423731704357e+308:1:43:-0x1.fffffffffffffp1023: ++%*le:-1.79769313486231570814527423731704357e+308:0:43: ++%le:-1.79769313486231570814527423731704357e308:1:42:-0x1.fffffffffffffp1023: ++%*le:-1.79769313486231570814527423731704357e308:0:42: ++%le:-2.3441674165664682593913711430784253952e+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*le:-2.3441674165664682593913711430784253952e+37:0:44: ++%le:-2.3441674165664682593913711430784253952e037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*le:-2.3441674165664682593913711430784253952e037:0:44: ++%le:-2.22507385850720138309023271733240406e-308:1:43:-0x1p-1022: ++%*le:-2.22507385850720138309023271733240406e-308:0:43: ++%le:-0e+0:1:5:-0x0: ++%*le:-0e+0:0:5: ++%le:-0e0:1:4:-0x0: ++%*le:-0e0:0:4: ++%le:-nan(09A_Zaz):1:13:-nan: ++%*le:-nan(09A_Zaz):0:13: ++%le:-nan():1:6:-nan: ++%*le:-nan():0:6: ++%le:nan():1:5:nan: ++%*le:nan():0:5: ++%le:nan(09A_Zaz):1:12:nan: ++%*le:nan(09A_Zaz):0:12: ++%le:0e0:1:3:0x0: ++%*le:0e0:0:3: ++%le:0e+0:1:4:0x0: ++%*le:0e+0:0:4: ++%le:2.22507385850720138309023271733240406e-308:1:42:0x1p-1022: ++%*le:2.22507385850720138309023271733240406e-308:0:42: ++%le:2.3441674165664682593913711430784253952e037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*le:2.3441674165664682593913711430784253952e037:0:43: ++%le:2.3441674165664682593913711430784253952e+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*le:2.3441674165664682593913711430784253952e+37:0:43: ++%le:1.79769313486231570814527423731704357e308:1:41:0x1.fffffffffffffp1023: ++%*le:1.79769313486231570814527423731704357e308:0:41: ++%le:1.79769313486231570814527423731704357e+308:1:42:0x1.fffffffffffffp1023: ++%*le:1.79769313486231570814527423731704357e+308:0:42: ++%le:infinity:1:8:inf: ++%*le:infinity:0:8: ++%le:+nan():1:6:nan: ++%*le:+nan():0:6: ++%le:+nan(09A_Zaz):1:13:nan: ++%*le:+nan(09A_Zaz):0:13: ++%le:+0e0:1:4:0x0: ++%*le:+0e0:0:4: ++%le:+0e+0:1:5:0x0: ++%*le:+0e+0:0:5: ++%le:+2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*le:+2.22507385850720138309023271733240406e-308:0:43: ++%le:+2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*le:+2.3441674165664682593913711430784253952e037:0:44: ++%le:+2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*le:+2.3441674165664682593913711430784253952e+37:0:44: ++%le:+1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*le:+1.79769313486231570814527423731704357e308:0:42: ++%le:+1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*le:+1.79769313486231570814527423731704357e+308:0:43: ++%le:+infinity:1:9:inf: ++%*le:+infinity:0:9: ++%1le::0:-1: ++%*1le::0:-1: ++%1le:-infinity:0:-1: ++%*1le:-infinity:0:-1: ++%1le:-1.79769313486231570814527423731704357e+308:0:-1: ++%*1le:-1.79769313486231570814527423731704357e+308:0:-1: ++%1le:-1.79769313486231570814527423731704357e308:0:-1: ++%*1le:-1.79769313486231570814527423731704357e308:0:-1: ++%1le:-2.3441674165664682593913711430784253952e+37:0:-1: ++%*1le:-2.3441674165664682593913711430784253952e+37:0:-1: ++%1le:-2.3441674165664682593913711430784253952e037:0:-1: ++%*1le:-2.3441674165664682593913711430784253952e037:0:-1: ++%1le:-2.22507385850720138309023271733240406e-308:0:-1: ++%*1le:-2.22507385850720138309023271733240406e-308:0:-1: ++%1le:-0e+0:0:-1: ++%*1le:-0e+0:0:-1: ++%1le:-0e0:0:-1: ++%*1le:-0e0:0:-1: ++%1le:-nan(09A_Zaz):0:-1: ++%*1le:-nan(09A_Zaz):0:-1: ++%1le:-nan():0:-1: ++%*1le:-nan():0:-1: ++%1le:nan():0:-1: ++%*1le:nan():0:-1: ++%1le:nan(09A_Zaz):0:-1: ++%*1le:nan(09A_Zaz):0:-1: ++%1le:0e0:1:1:0x0: ++%*1le:0e0:0:1: ++%1le:0e+0:1:1:0x0: ++%*1le:0e+0:0:1: ++%1le:2.22507385850720138309023271733240406e-308:1:1:0x1p1: ++%*1le:2.22507385850720138309023271733240406e-308:0:1: ++%1le:2.3441674165664682593913711430784253952e037:1:1:0x1p1: ++%*1le:2.3441674165664682593913711430784253952e037:0:1: ++%1le:2.3441674165664682593913711430784253952e+37:1:1:0x1p1: ++%*1le:2.3441674165664682593913711430784253952e+37:0:1: ++%1le:1.79769313486231570814527423731704357e308:1:1:0x1: ++%*1le:1.79769313486231570814527423731704357e308:0:1: ++%1le:1.79769313486231570814527423731704357e+308:1:1:0x1: ++%*1le:1.79769313486231570814527423731704357e+308:0:1: ++%1le:infinity:0:-1: ++%*1le:infinity:0:-1: ++%1le:+nan():0:-1: ++%*1le:+nan():0:-1: ++%1le:+nan(09A_Zaz):0:-1: ++%*1le:+nan(09A_Zaz):0:-1: ++%1le:+0e0:0:-1: ++%*1le:+0e0:0:-1: ++%1le:+0e+0:0:-1: ++%*1le:+0e+0:0:-1: ++%1le:+2.22507385850720138309023271733240406e-308:0:-1: ++%*1le:+2.22507385850720138309023271733240406e-308:0:-1: ++%1le:+2.3441674165664682593913711430784253952e037:0:-1: ++%*1le:+2.3441674165664682593913711430784253952e037:0:-1: ++%1le:+2.3441674165664682593913711430784253952e+37:0:-1: ++%*1le:+2.3441674165664682593913711430784253952e+37:0:-1: ++%1le:+1.79769313486231570814527423731704357e308:0:-1: ++%*1le:+1.79769313486231570814527423731704357e308:0:-1: ++%1le:+1.79769313486231570814527423731704357e+308:0:-1: ++%*1le:+1.79769313486231570814527423731704357e+308:0:-1: ++%1le:+infinity:0:-1: ++%*1le:+infinity:0:-1: ++%2le::0:-1: ++%*2le::0:-1: ++%2le:-infinity:0:-1: ++%*2le:-infinity:0:-1: ++%2le:-1.79769313486231570814527423731704357e+308:1:2:-0x1: ++%*2le:-1.79769313486231570814527423731704357e+308:0:2: ++%2le:-1.79769313486231570814527423731704357e308:1:2:-0x1: ++%*2le:-1.79769313486231570814527423731704357e308:0:2: ++%2le:-2.3441674165664682593913711430784253952e+37:1:2:-0x1p1: ++%*2le:-2.3441674165664682593913711430784253952e+37:0:2: ++%2le:-2.3441674165664682593913711430784253952e037:1:2:-0x1p1: ++%*2le:-2.3441674165664682593913711430784253952e037:0:2: ++%2le:-2.22507385850720138309023271733240406e-308:1:2:-0x1p1: ++%*2le:-2.22507385850720138309023271733240406e-308:0:2: ++%2le:-0e+0:1:2:-0x0: ++%*2le:-0e+0:0:2: ++%2le:-0e0:1:2:-0x0: ++%*2le:-0e0:0:2: ++%2le:-nan(09A_Zaz):0:-1: ++%*2le:-nan(09A_Zaz):0:-1: ++%2le:-nan():0:-1: ++%*2le:-nan():0:-1: ++%2le:nan():0:-1: ++%*2le:nan():0:-1: ++%2le:nan(09A_Zaz):0:-1: ++%*2le:nan(09A_Zaz):0:-1: ++# BZ12701 %2le:0e0:0:-1: ++# BZ12701 %*2le:0e0:0:-1: ++# BZ12701 %2le:0e+0:0:-1: ++# BZ12701 %*2le:0e+0:0:-1: ++%2le:2.22507385850720138309023271733240406e-308:1:2:0x1p1: ++%*2le:2.22507385850720138309023271733240406e-308:0:2: ++%2le:2.3441674165664682593913711430784253952e037:1:2:0x1p1: ++%*2le:2.3441674165664682593913711430784253952e037:0:2: ++%2le:2.3441674165664682593913711430784253952e+37:1:2:0x1p1: ++%*2le:2.3441674165664682593913711430784253952e+37:0:2: ++%2le:1.79769313486231570814527423731704357e308:1:2:0x1: ++%*2le:1.79769313486231570814527423731704357e308:0:2: ++%2le:1.79769313486231570814527423731704357e+308:1:2:0x1: ++%*2le:1.79769313486231570814527423731704357e+308:0:2: ++%2le:infinity:0:-1: ++%*2le:infinity:0:-1: ++%2le:+nan():0:-1: ++%*2le:+nan():0:-1: ++%2le:+nan(09A_Zaz):0:-1: ++%*2le:+nan(09A_Zaz):0:-1: ++%2le:+0e0:1:2:0x0: ++%*2le:+0e0:0:2: ++%2le:+0e+0:1:2:0x0: ++%*2le:+0e+0:0:2: ++%2le:+2.22507385850720138309023271733240406e-308:1:2:0x1p1: ++%*2le:+2.22507385850720138309023271733240406e-308:0:2: ++%2le:+2.3441674165664682593913711430784253952e037:1:2:0x1p1: ++%*2le:+2.3441674165664682593913711430784253952e037:0:2: ++%2le:+2.3441674165664682593913711430784253952e+37:1:2:0x1p1: ++%*2le:+2.3441674165664682593913711430784253952e+37:0:2: ++%2le:+1.79769313486231570814527423731704357e308:1:2:0x1: ++%*2le:+1.79769313486231570814527423731704357e308:0:2: ++%2le:+1.79769313486231570814527423731704357e+308:1:2:0x1: ++%*2le:+1.79769313486231570814527423731704357e+308:0:2: ++%2le:+infinity:0:-1: ++%*2le:+infinity:0:-1: ++%3le::0:-1: ++%*3le::0:-1: ++%3le:-infinity:0:-1: ++%*3le:-infinity:0:-1: ++%3le:-1.79769313486231570814527423731704357e+308:1:3:-0x1: ++%*3le:-1.79769313486231570814527423731704357e+308:0:3: ++%3le:-1.79769313486231570814527423731704357e308:1:3:-0x1: ++%*3le:-1.79769313486231570814527423731704357e308:0:3: ++%3le:-2.3441674165664682593913711430784253952e+37:1:3:-0x1p1: ++%*3le:-2.3441674165664682593913711430784253952e+37:0:3: ++%3le:-2.3441674165664682593913711430784253952e037:1:3:-0x1p1: ++%*3le:-2.3441674165664682593913711430784253952e037:0:3: ++%3le:-2.22507385850720138309023271733240406e-308:1:3:-0x1p1: ++%*3le:-2.22507385850720138309023271733240406e-308:0:3: ++# BZ12701 %3le:-0e+0:0:-1: ++# BZ12701 %*3le:-0e+0:0:-1: ++# BZ12701 %3le:-0e0:0:-1: ++# BZ12701 %*3le:-0e0:0:-1: ++%3le:-nan(09A_Zaz):0:-1: ++%*3le:-nan(09A_Zaz):0:-1: ++%3le:-nan():0:-1: ++%*3le:-nan():0:-1: ++%3le:nan():1:3:nan: ++%*3le:nan():0:3: ++%3le:nan(09A_Zaz):1:3:nan: ++%*3le:nan(09A_Zaz):0:3: ++%3le:0e0:1:3:0x0: ++%*3le:0e0:0:3: ++# BZ12701 %3le:0e+0:0:-1: ++# BZ12701 %*3le:0e+0:0:-1: ++%3le:2.22507385850720138309023271733240406e-308:1:3:0x1.199999999999ap1: ++%*3le:2.22507385850720138309023271733240406e-308:0:3: ++%3le:2.3441674165664682593913711430784253952e037:1:3:0x1.2666666666666p1: ++%*3le:2.3441674165664682593913711430784253952e037:0:3: ++%3le:2.3441674165664682593913711430784253952e+37:1:3:0x1.2666666666666p1: ++%*3le:2.3441674165664682593913711430784253952e+37:0:3: ++%3le:1.79769313486231570814527423731704357e308:1:3:0x1.b333333333333: ++%*3le:1.79769313486231570814527423731704357e308:0:3: ++%3le:1.79769313486231570814527423731704357e+308:1:3:0x1.b333333333333: ++%*3le:1.79769313486231570814527423731704357e+308:0:3: ++%3le:infinity:1:3:inf: ++%*3le:infinity:0:3: ++%3le:+nan():0:-1: ++%*3le:+nan():0:-1: ++%3le:+nan(09A_Zaz):0:-1: ++%*3le:+nan(09A_Zaz):0:-1: ++# BZ12701 %3le:+0e0:0:-1: ++# BZ12701 %*3le:+0e0:0:-1: ++# BZ12701 %3le:+0e+0:0:-1: ++# BZ12701 %*3le:+0e+0:0:-1: ++%3le:+2.22507385850720138309023271733240406e-308:1:3:0x1p1: ++%*3le:+2.22507385850720138309023271733240406e-308:0:3: ++%3le:+2.3441674165664682593913711430784253952e037:1:3:0x1p1: ++%*3le:+2.3441674165664682593913711430784253952e037:0:3: ++%3le:+2.3441674165664682593913711430784253952e+37:1:3:0x1p1: ++%*3le:+2.3441674165664682593913711430784253952e+37:0:3: ++%3le:+1.79769313486231570814527423731704357e308:1:3:0x1: ++%*3le:+1.79769313486231570814527423731704357e308:0:3: ++%3le:+1.79769313486231570814527423731704357e+308:1:3:0x1: ++%*3le:+1.79769313486231570814527423731704357e+308:0:3: ++%3le:+infinity:0:-1: ++%*3le:+infinity:0:-1: ++%4le::0:-1: ++%*4le::0:-1: ++%4le:-infinity:1:4:-inf: ++%*4le:-infinity:0:4: ++%4le:-1.79769313486231570814527423731704357e+308:1:4:-0x1.b333333333333: ++%*4le:-1.79769313486231570814527423731704357e+308:0:4: ++%4le:-1.79769313486231570814527423731704357e308:1:4:-0x1.b333333333333: ++%*4le:-1.79769313486231570814527423731704357e308:0:4: ++%4le:-2.3441674165664682593913711430784253952e+37:1:4:-0x1.2666666666666p1: ++%*4le:-2.3441674165664682593913711430784253952e+37:0:4: ++%4le:-2.3441674165664682593913711430784253952e037:1:4:-0x1.2666666666666p1: ++%*4le:-2.3441674165664682593913711430784253952e037:0:4: ++%4le:-2.22507385850720138309023271733240406e-308:1:4:-0x1.199999999999ap1: ++%*4le:-2.22507385850720138309023271733240406e-308:0:4: ++# BZ12701 %4le:-0e+0:0:-1: ++# BZ12701 %*4le:-0e+0:0:-1: ++%4le:-0e0:1:4:-0x0: ++%*4le:-0e0:0:4: ++%4le:-nan(09A_Zaz):1:4:-nan: ++%*4le:-nan(09A_Zaz):0:4: ++%4le:-nan():1:4:-nan: ++%*4le:-nan():0:4: ++%4le:nan():0:-1: ++%*4le:nan():0:-1: ++%4le:nan(09A_Zaz):0:-1: ++%*4le:nan(09A_Zaz):0:-1: ++%4le:0e0:1:3:0x0: ++%*4le:0e0:0:3: ++%4le:0e+0:1:4:0x0: ++%*4le:0e+0:0:4: ++%4le:2.22507385850720138309023271733240406e-308:1:4:0x1.1c28f5c28f5c3p1: ++%*4le:2.22507385850720138309023271733240406e-308:0:4: ++%4le:2.3441674165664682593913711430784253952e037:1:4:0x1.2b851eb851eb8p1: ++%*4le:2.3441674165664682593913711430784253952e037:0:4: ++%4le:2.3441674165664682593913711430784253952e+37:1:4:0x1.2b851eb851eb8p1: ++%*4le:2.3441674165664682593913711430784253952e+37:0:4: ++%4le:1.79769313486231570814527423731704357e308:1:4:0x1.ca3d70a3d70a4: ++%*4le:1.79769313486231570814527423731704357e308:0:4: ++%4le:1.79769313486231570814527423731704357e+308:1:4:0x1.ca3d70a3d70a4: ++%*4le:1.79769313486231570814527423731704357e+308:0:4: ++%4le:infinity:0:-1: ++%*4le:infinity:0:-1: ++%4le:+nan():1:4:nan: ++%*4le:+nan():0:4: ++%4le:+nan(09A_Zaz):1:4:nan: ++%*4le:+nan(09A_Zaz):0:4: ++%4le:+0e0:1:4:0x0: ++%*4le:+0e0:0:4: ++# BZ12701 %4le:+0e+0:0:-1: ++# BZ12701 %*4le:+0e+0:0:-1: ++%4le:+2.22507385850720138309023271733240406e-308:1:4:0x1.199999999999ap1: ++%*4le:+2.22507385850720138309023271733240406e-308:0:4: ++%4le:+2.3441674165664682593913711430784253952e037:1:4:0x1.2666666666666p1: ++%*4le:+2.3441674165664682593913711430784253952e037:0:4: ++%4le:+2.3441674165664682593913711430784253952e+37:1:4:0x1.2666666666666p1: ++%*4le:+2.3441674165664682593913711430784253952e+37:0:4: ++%4le:+1.79769313486231570814527423731704357e308:1:4:0x1.b333333333333: ++%*4le:+1.79769313486231570814527423731704357e308:0:4: ++%4le:+1.79769313486231570814527423731704357e+308:1:4:0x1.b333333333333: ++%*4le:+1.79769313486231570814527423731704357e+308:0:4: ++%4le:+infinity:1:4:inf: ++%*4le:+infinity:0:4: ++%40le::0:-1: ++%*40le::0:-1: ++%40le:-infinity:1:9:-inf: ++%*40le:-infinity:0:9: ++# BZ12701 %40le:-1.79769313486231570814527423731704357e+308:0:-1: ++# BZ12701 %*40le:-1.79769313486231570814527423731704357e+308:0:-1: ++%40le:-1.79769313486231570814527423731704357e308:1:40:-0x1.c16c5c5253574p10: ++%*40le:-1.79769313486231570814527423731704357e308:0:40: ++%40le:-2.3441674165664682593913711430784253952e+37:1:40:-0x1.2c0dad8b403aap1: ++%*40le:-2.3441674165664682593913711430784253952e+37:0:40: ++%40le:-2.3441674165664682593913711430784253952e037:1:40:-0x1.2c0dad8b403aap1: ++%*40le:-2.3441674165664682593913711430784253952e037:0:40: ++# BZ12701 %40le:-2.22507385850720138309023271733240406e-308:0:-1: ++# BZ12701 %*40le:-2.22507385850720138309023271733240406e-308:0:-1: ++%40le:-0e+0:1:5:-0x0: ++%*40le:-0e+0:0:5: ++%40le:-0e0:1:4:-0x0: ++%*40le:-0e0:0:4: ++%40le:-nan(09A_Zaz):1:13:-nan: ++%*40le:-nan(09A_Zaz):0:13: ++%40le:-nan():1:6:-nan: ++%*40le:-nan():0:6: ++%40le:nan():1:5:nan: ++%*40le:nan():0:5: ++%40le:nan(09A_Zaz):1:12:nan: ++%*40le:nan(09A_Zaz):0:12: ++%40le:0e0:1:3:0x0: ++%*40le:0e0:0:3: ++%40le:0e+0:1:4:0x0: ++%*40le:0e+0:0:4: ++%40le:2.22507385850720138309023271733240406e-308:1:40:0x1.23a516e82d9bap-9: ++%*40le:2.22507385850720138309023271733240406e-308:0:40: ++# BZ12701 %40le:2.3441674165664682593913711430784253952e037:0:-1: ++# BZ12701 %*40le:2.3441674165664682593913711430784253952e037:0:-1: ++# BZ12701 %40le:2.3441674165664682593913711430784253952e+37:0:-1: ++# BZ12701 %*40le:2.3441674165664682593913711430784253952e+37:0:-1: ++%40le:1.79769313486231570814527423731704357e308:1:40:0x1.6b0a8e891ffffp100: ++%*40le:1.79769313486231570814527423731704357e308:0:40: ++%40le:1.79769313486231570814527423731704357e+308:1:40:0x1.c16c5c5253574p10: ++%*40le:1.79769313486231570814527423731704357e+308:0:40: ++%40le:infinity:1:8:inf: ++%*40le:infinity:0:8: ++%40le:+nan():1:6:nan: ++%*40le:+nan():0:6: ++%40le:+nan(09A_Zaz):1:13:nan: ++%*40le:+nan(09A_Zaz):0:13: ++%40le:+0e0:1:4:0x0: ++%*40le:+0e0:0:4: ++%40le:+0e+0:1:5:0x0: ++%*40le:+0e+0:0:5: ++# BZ12701 %40le:+2.22507385850720138309023271733240406e-308:0:-1: ++# BZ12701 %*40le:+2.22507385850720138309023271733240406e-308:0:-1: ++%40le:+2.3441674165664682593913711430784253952e037:1:40:0x1.2c0dad8b403aap1: ++%*40le:+2.3441674165664682593913711430784253952e037:0:40: ++%40le:+2.3441674165664682593913711430784253952e+37:1:40:0x1.2c0dad8b403aap1: ++%*40le:+2.3441674165664682593913711430784253952e+37:0:40: ++%40le:+1.79769313486231570814527423731704357e308:1:40:0x1.c16c5c5253574p10: ++%*40le:+1.79769313486231570814527423731704357e308:0:40: ++# BZ12701 %40le:+1.79769313486231570814527423731704357e+308:0:-1: ++# BZ12701 %*40le:+1.79769313486231570814527423731704357e+308:0:-1: ++%40le:+infinity:1:9:inf: ++%*40le:+infinity:0:9: ++%48le::0:-1: ++%*48le::0:-1: ++%48le:-infinity:1:9:-inf: ++%*48le:-infinity:0:9: ++%48le:-1.79769313486231570814527423731704357e+308:1:43:-0x1.fffffffffffffp1023: ++%*48le:-1.79769313486231570814527423731704357e+308:0:43: ++%48le:-1.79769313486231570814527423731704357e308:1:42:-0x1.fffffffffffffp1023: ++%*48le:-1.79769313486231570814527423731704357e308:0:42: ++%48le:-2.3441674165664682593913711430784253952e+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48le:-2.3441674165664682593913711430784253952e+37:0:44: ++%48le:-2.3441674165664682593913711430784253952e037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48le:-2.3441674165664682593913711430784253952e037:0:44: ++%48le:-2.22507385850720138309023271733240406e-308:1:43:-0x1p-1022: ++%*48le:-2.22507385850720138309023271733240406e-308:0:43: ++%48le:-0e+0:1:5:-0x0: ++%*48le:-0e+0:0:5: ++%48le:-0e0:1:4:-0x0: ++%*48le:-0e0:0:4: ++%48le:-nan(09A_Zaz):1:13:-nan: ++%*48le:-nan(09A_Zaz):0:13: ++%48le:-nan():1:6:-nan: ++%*48le:-nan():0:6: ++%48le:nan():1:5:nan: ++%*48le:nan():0:5: ++%48le:nan(09A_Zaz):1:12:nan: ++%*48le:nan(09A_Zaz):0:12: ++%48le:0e0:1:3:0x0: ++%*48le:0e0:0:3: ++%48le:0e+0:1:4:0x0: ++%*48le:0e+0:0:4: ++%48le:2.22507385850720138309023271733240406e-308:1:42:0x1p-1022: ++%*48le:2.22507385850720138309023271733240406e-308:0:42: ++%48le:2.3441674165664682593913711430784253952e037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48le:2.3441674165664682593913711430784253952e037:0:43: ++%48le:2.3441674165664682593913711430784253952e+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48le:2.3441674165664682593913711430784253952e+37:0:43: ++%48le:1.79769313486231570814527423731704357e308:1:41:0x1.fffffffffffffp1023: ++%*48le:1.79769313486231570814527423731704357e308:0:41: ++%48le:1.79769313486231570814527423731704357e+308:1:42:0x1.fffffffffffffp1023: ++%*48le:1.79769313486231570814527423731704357e+308:0:42: ++%48le:infinity:1:8:inf: ++%*48le:infinity:0:8: ++%48le:+nan():1:6:nan: ++%*48le:+nan():0:6: ++%48le:+nan(09A_Zaz):1:13:nan: ++%*48le:+nan(09A_Zaz):0:13: ++%48le:+0e0:1:4:0x0: ++%*48le:+0e0:0:4: ++%48le:+0e+0:1:5:0x0: ++%*48le:+0e+0:0:5: ++%48le:+2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*48le:+2.22507385850720138309023271733240406e-308:0:43: ++%48le:+2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48le:+2.3441674165664682593913711430784253952e037:0:44: ++%48le:+2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48le:+2.3441674165664682593913711430784253952e+37:0:44: ++%48le:+1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*48le:+1.79769313486231570814527423731704357e308:0:42: ++%48le:+1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*48le:+1.79769313486231570814527423731704357e+308:0:43: ++%48le:+infinity:1:9:inf: ++%*48le:+infinity:0:9: ++%3le: :0:-1: ++%*3le: :0:-1: ++%3le: -infinity:0:-1: ++%*3le: -infinity:0:-1: ++%3le: -1.79769313486231570814527423731704357e+308:1:4:-0x1: ++%*3le: -1.79769313486231570814527423731704357e+308:0:4: ++%3le: -1.79769313486231570814527423731704357e308:1:4:-0x1: ++%*3le: -1.79769313486231570814527423731704357e308:0:4: ++%3le: -2.3441674165664682593913711430784253952e+37:1:4:-0x1p1: ++%*3le: -2.3441674165664682593913711430784253952e+37:0:4: ++%3le: -2.3441674165664682593913711430784253952e037:1:4:-0x1p1: ++%*3le: -2.3441674165664682593913711430784253952e037:0:4: ++%3le: -2.22507385850720138309023271733240406e-308:1:4:-0x1p1: ++%*3le: -2.22507385850720138309023271733240406e-308:0:4: ++# BZ12701 %3le: -0e+0:0:-1: ++# BZ12701 %*3le: -0e+0:0:-1: ++# BZ12701 %3le: -0e0:0:-1: ++# BZ12701 %*3le: -0e0:0:-1: ++%3le: -nan(09A_Zaz):0:-1: ++%*3le: -nan(09A_Zaz):0:-1: ++%3le: -nan():0:-1: ++%*3le: -nan():0:-1: ++%3le: nan():1:4:nan: ++%*3le: nan():0:4: ++%3le: nan(09A_Zaz):1:4:nan: ++%*3le: nan(09A_Zaz):0:4: ++%3le: 0e0:1:4:0x0: ++%*3le: 0e0:0:4: ++# BZ12701 %3le: 0e+0:0:-1: ++# BZ12701 %*3le: 0e+0:0:-1: ++%3le: 2.22507385850720138309023271733240406e-308:1:4:0x1.199999999999ap1: ++%*3le: 2.22507385850720138309023271733240406e-308:0:4: ++%3le: 2.3441674165664682593913711430784253952e037:1:4:0x1.2666666666666p1: ++%*3le: 2.3441674165664682593913711430784253952e037:0:4: ++%3le: 2.3441674165664682593913711430784253952e+37:1:4:0x1.2666666666666p1: ++%*3le: 2.3441674165664682593913711430784253952e+37:0:4: ++%3le: 1.79769313486231570814527423731704357e308:1:4:0x1.b333333333333: ++%*3le: 1.79769313486231570814527423731704357e308:0:4: ++%3le: 1.79769313486231570814527423731704357e+308:1:4:0x1.b333333333333: ++%*3le: 1.79769313486231570814527423731704357e+308:0:4: ++%3le: infinity:1:4:inf: ++%*3le: infinity:0:4: ++%3le: +nan():0:-1: ++%*3le: +nan():0:-1: ++%3le: +nan(09A_Zaz):0:-1: ++%*3le: +nan(09A_Zaz):0:-1: ++# BZ12701 %3le: +0e0:0:-1: ++# BZ12701 %*3le: +0e0:0:-1: ++# BZ12701 %3le: +0e+0:0:-1: ++# BZ12701 %*3le: +0e+0:0:-1: ++%3le: +2.22507385850720138309023271733240406e-308:1:4:0x1p1: ++%*3le: +2.22507385850720138309023271733240406e-308:0:4: ++%3le: +2.3441674165664682593913711430784253952e037:1:4:0x1p1: ++%*3le: +2.3441674165664682593913711430784253952e037:0:4: ++%3le: +2.3441674165664682593913711430784253952e+37:1:4:0x1p1: ++%*3le: +2.3441674165664682593913711430784253952e+37:0:4: ++%3le: +1.79769313486231570814527423731704357e308:1:4:0x1: ++%*3le: +1.79769313486231570814527423731704357e308:0:4: ++%3le: +1.79769313486231570814527423731704357e+308:1:4:0x1: ++%*3le: +1.79769313486231570814527423731704357e+308:0:4: ++%3le: +infinity:0:-1: ++%*3le: +infinity:0:-1: ++%48le: :0:-1: ++%*48le: :0:-1: ++%48le: -infinity:1:10:-inf: ++%*48le: -infinity:0:10: ++%48le: -1.79769313486231570814527423731704357e+308:1:44:-0x1.fffffffffffffp1023: ++%*48le: -1.79769313486231570814527423731704357e+308:0:44: ++%48le: -1.79769313486231570814527423731704357e308:1:43:-0x1.fffffffffffffp1023: ++%*48le: -1.79769313486231570814527423731704357e308:0:43: ++%48le: -2.3441674165664682593913711430784253952e+37:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48le: -2.3441674165664682593913711430784253952e+37:0:45: ++%48le: -2.3441674165664682593913711430784253952e037:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48le: -2.3441674165664682593913711430784253952e037:0:45: ++%48le: -2.22507385850720138309023271733240406e-308:1:44:-0x1p-1022: ++%*48le: -2.22507385850720138309023271733240406e-308:0:44: ++%48le: -0e+0:1:6:-0x0: ++%*48le: -0e+0:0:6: ++%48le: -0e0:1:5:-0x0: ++%*48le: -0e0:0:5: ++%48le: -nan(09A_Zaz):1:14:-nan: ++%*48le: -nan(09A_Zaz):0:14: ++%48le: -nan():1:7:-nan: ++%*48le: -nan():0:7: ++%48le: nan():1:6:nan: ++%*48le: nan():0:6: ++%48le: nan(09A_Zaz):1:13:nan: ++%*48le: nan(09A_Zaz):0:13: ++%48le: 0e0:1:4:0x0: ++%*48le: 0e0:0:4: ++%48le: 0e+0:1:5:0x0: ++%*48le: 0e+0:0:5: ++%48le: 2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*48le: 2.22507385850720138309023271733240406e-308:0:43: ++%48le: 2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48le: 2.3441674165664682593913711430784253952e037:0:44: ++%48le: 2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48le: 2.3441674165664682593913711430784253952e+37:0:44: ++%48le: 1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*48le: 1.79769313486231570814527423731704357e308:0:42: ++%48le: 1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*48le: 1.79769313486231570814527423731704357e+308:0:43: ++%48le: infinity:1:9:inf: ++%*48le: infinity:0:9: ++%48le: +nan():1:7:nan: ++%*48le: +nan():0:7: ++%48le: +nan(09A_Zaz):1:14:nan: ++%*48le: +nan(09A_Zaz):0:14: ++%48le: +0e0:1:5:0x0: ++%*48le: +0e0:0:5: ++%48le: +0e+0:1:6:0x0: ++%*48le: +0e+0:0:6: ++%48le: +2.22507385850720138309023271733240406e-308:1:44:0x1p-1022: ++%*48le: +2.22507385850720138309023271733240406e-308:0:44: ++%48le: +2.3441674165664682593913711430784253952e037:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48le: +2.3441674165664682593913711430784253952e037:0:45: ++%48le: +2.3441674165664682593913711430784253952e+37:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48le: +2.3441674165664682593913711430784253952e+37:0:45: ++%48le: +1.79769313486231570814527423731704357e308:1:43:0x1.fffffffffffffp1023: ++%*48le: +1.79769313486231570814527423731704357e308:0:43: ++%48le: +1.79769313486231570814527423731704357e+308:1:44:0x1.fffffffffffffp1023: ++%*48le: +1.79769313486231570814527423731704357e+308:0:44: ++%48le: +infinity:1:10:inf: ++%*48le: +infinity:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input +new file mode 100644 +index 0000000000000000..ba9d5cbb45cfb659 +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ee.input +@@ -0,0 +1,558 @@ ++%lE::0:-1: ++%*lE::0:-1: ++%lE:-INFINITY:1:9:-inf: ++%*lE:-INFINITY:0:9: ++%lE:-1.79769313486231570814527423731704357E+308:1:43:-0x1.fffffffffffffp1023: ++%*lE:-1.79769313486231570814527423731704357E+308:0:43: ++%lE:-1.79769313486231570814527423731704357E308:1:42:-0x1.fffffffffffffp1023: ++%*lE:-1.79769313486231570814527423731704357E308:0:42: ++%lE:-2.3441674165664682593913711430784253952E+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*lE:-2.3441674165664682593913711430784253952E+37:0:44: ++%lE:-2.3441674165664682593913711430784253952E037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*lE:-2.3441674165664682593913711430784253952E037:0:44: ++%lE:-2.22507385850720138309023271733240406E-308:1:43:-0x1p-1022: ++%*lE:-2.22507385850720138309023271733240406E-308:0:43: ++%lE:-0E+0:1:5:-0x0: ++%*lE:-0E+0:0:5: ++%lE:-0E0:1:4:-0x0: ++%*lE:-0E0:0:4: ++%lE:-NAN(09A_Zaz):1:13:-nan: ++%*lE:-NAN(09A_Zaz):0:13: ++%lE:-NAN():1:6:-nan: ++%*lE:-NAN():0:6: ++%lE:NAN():1:5:nan: ++%*lE:NAN():0:5: ++%lE:NAN(09A_Zaz):1:12:nan: ++%*lE:NAN(09A_Zaz):0:12: ++%lE:0E0:1:3:0x0: ++%*lE:0E0:0:3: ++%lE:0E+0:1:4:0x0: ++%*lE:0E+0:0:4: ++%lE:2.22507385850720138309023271733240406E-308:1:42:0x1p-1022: ++%*lE:2.22507385850720138309023271733240406E-308:0:42: ++%lE:2.3441674165664682593913711430784253952E037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*lE:2.3441674165664682593913711430784253952E037:0:43: ++%lE:2.3441674165664682593913711430784253952E+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*lE:2.3441674165664682593913711430784253952E+37:0:43: ++%lE:1.79769313486231570814527423731704357E308:1:41:0x1.fffffffffffffp1023: ++%*lE:1.79769313486231570814527423731704357E308:0:41: ++%lE:1.79769313486231570814527423731704357E+308:1:42:0x1.fffffffffffffp1023: ++%*lE:1.79769313486231570814527423731704357E+308:0:42: ++%lE:INFINITY:1:8:inf: ++%*lE:INFINITY:0:8: ++%lE:+NAN():1:6:nan: ++%*lE:+NAN():0:6: ++%lE:+NAN(09A_Zaz):1:13:nan: ++%*lE:+NAN(09A_Zaz):0:13: ++%lE:+0E0:1:4:0x0: ++%*lE:+0E0:0:4: ++%lE:+0E+0:1:5:0x0: ++%*lE:+0E+0:0:5: ++%lE:+2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*lE:+2.22507385850720138309023271733240406E-308:0:43: ++%lE:+2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*lE:+2.3441674165664682593913711430784253952E037:0:44: ++%lE:+2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*lE:+2.3441674165664682593913711430784253952E+37:0:44: ++%lE:+1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*lE:+1.79769313486231570814527423731704357E308:0:42: ++%lE:+1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*lE:+1.79769313486231570814527423731704357E+308:0:43: ++%lE:+INFINITY:1:9:inf: ++%*lE:+INFINITY:0:9: ++%1lE::0:-1: ++%*1lE::0:-1: ++%1lE:-INFINITY:0:-1: ++%*1lE:-INFINITY:0:-1: ++%1lE:-1.79769313486231570814527423731704357E+308:0:-1: ++%*1lE:-1.79769313486231570814527423731704357E+308:0:-1: ++%1lE:-1.79769313486231570814527423731704357E308:0:-1: ++%*1lE:-1.79769313486231570814527423731704357E308:0:-1: ++%1lE:-2.3441674165664682593913711430784253952E+37:0:-1: ++%*1lE:-2.3441674165664682593913711430784253952E+37:0:-1: ++%1lE:-2.3441674165664682593913711430784253952E037:0:-1: ++%*1lE:-2.3441674165664682593913711430784253952E037:0:-1: ++%1lE:-2.22507385850720138309023271733240406E-308:0:-1: ++%*1lE:-2.22507385850720138309023271733240406E-308:0:-1: ++%1lE:-0E+0:0:-1: ++%*1lE:-0E+0:0:-1: ++%1lE:-0E0:0:-1: ++%*1lE:-0E0:0:-1: ++%1lE:-NAN(09A_Zaz):0:-1: ++%*1lE:-NAN(09A_Zaz):0:-1: ++%1lE:-NAN():0:-1: ++%*1lE:-NAN():0:-1: ++%1lE:NAN():0:-1: ++%*1lE:NAN():0:-1: ++%1lE:NAN(09A_Zaz):0:-1: ++%*1lE:NAN(09A_Zaz):0:-1: ++%1lE:0E0:1:1:0x0: ++%*1lE:0E0:0:1: ++%1lE:0E+0:1:1:0x0: ++%*1lE:0E+0:0:1: ++%1lE:2.22507385850720138309023271733240406E-308:1:1:0x1p1: ++%*1lE:2.22507385850720138309023271733240406E-308:0:1: ++%1lE:2.3441674165664682593913711430784253952E037:1:1:0x1p1: ++%*1lE:2.3441674165664682593913711430784253952E037:0:1: ++%1lE:2.3441674165664682593913711430784253952E+37:1:1:0x1p1: ++%*1lE:2.3441674165664682593913711430784253952E+37:0:1: ++%1lE:1.79769313486231570814527423731704357E308:1:1:0x1: ++%*1lE:1.79769313486231570814527423731704357E308:0:1: ++%1lE:1.79769313486231570814527423731704357E+308:1:1:0x1: ++%*1lE:1.79769313486231570814527423731704357E+308:0:1: ++%1lE:INFINITY:0:-1: ++%*1lE:INFINITY:0:-1: ++%1lE:+NAN():0:-1: ++%*1lE:+NAN():0:-1: ++%1lE:+NAN(09A_Zaz):0:-1: ++%*1lE:+NAN(09A_Zaz):0:-1: ++%1lE:+0E0:0:-1: ++%*1lE:+0E0:0:-1: ++%1lE:+0E+0:0:-1: ++%*1lE:+0E+0:0:-1: ++%1lE:+2.22507385850720138309023271733240406E-308:0:-1: ++%*1lE:+2.22507385850720138309023271733240406E-308:0:-1: ++%1lE:+2.3441674165664682593913711430784253952E037:0:-1: ++%*1lE:+2.3441674165664682593913711430784253952E037:0:-1: ++%1lE:+2.3441674165664682593913711430784253952E+37:0:-1: ++%*1lE:+2.3441674165664682593913711430784253952E+37:0:-1: ++%1lE:+1.79769313486231570814527423731704357E308:0:-1: ++%*1lE:+1.79769313486231570814527423731704357E308:0:-1: ++%1lE:+1.79769313486231570814527423731704357E+308:0:-1: ++%*1lE:+1.79769313486231570814527423731704357E+308:0:-1: ++%1lE:+INFINITY:0:-1: ++%*1lE:+INFINITY:0:-1: ++%2lE::0:-1: ++%*2lE::0:-1: ++%2lE:-INFINITY:0:-1: ++%*2lE:-INFINITY:0:-1: ++%2lE:-1.79769313486231570814527423731704357E+308:1:2:-0x1: ++%*2lE:-1.79769313486231570814527423731704357E+308:0:2: ++%2lE:-1.79769313486231570814527423731704357E308:1:2:-0x1: ++%*2lE:-1.79769313486231570814527423731704357E308:0:2: ++%2lE:-2.3441674165664682593913711430784253952E+37:1:2:-0x1p1: ++%*2lE:-2.3441674165664682593913711430784253952E+37:0:2: ++%2lE:-2.3441674165664682593913711430784253952E037:1:2:-0x1p1: ++%*2lE:-2.3441674165664682593913711430784253952E037:0:2: ++%2lE:-2.22507385850720138309023271733240406E-308:1:2:-0x1p1: ++%*2lE:-2.22507385850720138309023271733240406E-308:0:2: ++%2lE:-0E+0:1:2:-0x0: ++%*2lE:-0E+0:0:2: ++%2lE:-0E0:1:2:-0x0: ++%*2lE:-0E0:0:2: ++%2lE:-NAN(09A_Zaz):0:-1: ++%*2lE:-NAN(09A_Zaz):0:-1: ++%2lE:-NAN():0:-1: ++%*2lE:-NAN():0:-1: ++%2lE:NAN():0:-1: ++%*2lE:NAN():0:-1: ++%2lE:NAN(09A_Zaz):0:-1: ++%*2lE:NAN(09A_Zaz):0:-1: ++# BZ12701 %2lE:0E0:0:-1: ++# BZ12701 %*2lE:0E0:0:-1: ++# BZ12701 %2lE:0E+0:0:-1: ++# BZ12701 %*2lE:0E+0:0:-1: ++%2lE:2.22507385850720138309023271733240406E-308:1:2:0x1p1: ++%*2lE:2.22507385850720138309023271733240406E-308:0:2: ++%2lE:2.3441674165664682593913711430784253952E037:1:2:0x1p1: ++%*2lE:2.3441674165664682593913711430784253952E037:0:2: ++%2lE:2.3441674165664682593913711430784253952E+37:1:2:0x1p1: ++%*2lE:2.3441674165664682593913711430784253952E+37:0:2: ++%2lE:1.79769313486231570814527423731704357E308:1:2:0x1: ++%*2lE:1.79769313486231570814527423731704357E308:0:2: ++%2lE:1.79769313486231570814527423731704357E+308:1:2:0x1: ++%*2lE:1.79769313486231570814527423731704357E+308:0:2: ++%2lE:INFINITY:0:-1: ++%*2lE:INFINITY:0:-1: ++%2lE:+NAN():0:-1: ++%*2lE:+NAN():0:-1: ++%2lE:+NAN(09A_Zaz):0:-1: ++%*2lE:+NAN(09A_Zaz):0:-1: ++%2lE:+0E0:1:2:0x0: ++%*2lE:+0E0:0:2: ++%2lE:+0E+0:1:2:0x0: ++%*2lE:+0E+0:0:2: ++%2lE:+2.22507385850720138309023271733240406E-308:1:2:0x1p1: ++%*2lE:+2.22507385850720138309023271733240406E-308:0:2: ++%2lE:+2.3441674165664682593913711430784253952E037:1:2:0x1p1: ++%*2lE:+2.3441674165664682593913711430784253952E037:0:2: ++%2lE:+2.3441674165664682593913711430784253952E+37:1:2:0x1p1: ++%*2lE:+2.3441674165664682593913711430784253952E+37:0:2: ++%2lE:+1.79769313486231570814527423731704357E308:1:2:0x1: ++%*2lE:+1.79769313486231570814527423731704357E308:0:2: ++%2lE:+1.79769313486231570814527423731704357E+308:1:2:0x1: ++%*2lE:+1.79769313486231570814527423731704357E+308:0:2: ++%2lE:+INFINITY:0:-1: ++%*2lE:+INFINITY:0:-1: ++%3lE::0:-1: ++%*3lE::0:-1: ++%3lE:-INFINITY:0:-1: ++%*3lE:-INFINITY:0:-1: ++%3lE:-1.79769313486231570814527423731704357E+308:1:3:-0x1: ++%*3lE:-1.79769313486231570814527423731704357E+308:0:3: ++%3lE:-1.79769313486231570814527423731704357E308:1:3:-0x1: ++%*3lE:-1.79769313486231570814527423731704357E308:0:3: ++%3lE:-2.3441674165664682593913711430784253952E+37:1:3:-0x1p1: ++%*3lE:-2.3441674165664682593913711430784253952E+37:0:3: ++%3lE:-2.3441674165664682593913711430784253952E037:1:3:-0x1p1: ++%*3lE:-2.3441674165664682593913711430784253952E037:0:3: ++%3lE:-2.22507385850720138309023271733240406E-308:1:3:-0x1p1: ++%*3lE:-2.22507385850720138309023271733240406E-308:0:3: ++# BZ12701 %3lE:-0E+0:0:-1: ++# BZ12701 %*3lE:-0E+0:0:-1: ++# BZ12701 %3lE:-0E0:0:-1: ++# BZ12701 %*3lE:-0E0:0:-1: ++%3lE:-NAN(09A_Zaz):0:-1: ++%*3lE:-NAN(09A_Zaz):0:-1: ++%3lE:-NAN():0:-1: ++%*3lE:-NAN():0:-1: ++%3lE:NAN():1:3:nan: ++%*3lE:NAN():0:3: ++%3lE:NAN(09A_Zaz):1:3:nan: ++%*3lE:NAN(09A_Zaz):0:3: ++%3lE:0E0:1:3:0x0: ++%*3lE:0E0:0:3: ++# BZ12701 %3lE:0E+0:0:-1: ++# BZ12701 %*3lE:0E+0:0:-1: ++%3lE:2.22507385850720138309023271733240406E-308:1:3:0x1.199999999999ap1: ++%*3lE:2.22507385850720138309023271733240406E-308:0:3: ++%3lE:2.3441674165664682593913711430784253952E037:1:3:0x1.2666666666666p1: ++%*3lE:2.3441674165664682593913711430784253952E037:0:3: ++%3lE:2.3441674165664682593913711430784253952E+37:1:3:0x1.2666666666666p1: ++%*3lE:2.3441674165664682593913711430784253952E+37:0:3: ++%3lE:1.79769313486231570814527423731704357E308:1:3:0x1.b333333333333: ++%*3lE:1.79769313486231570814527423731704357E308:0:3: ++%3lE:1.79769313486231570814527423731704357E+308:1:3:0x1.b333333333333: ++%*3lE:1.79769313486231570814527423731704357E+308:0:3: ++%3lE:INFINITY:1:3:inf: ++%*3lE:INFINITY:0:3: ++%3lE:+NAN():0:-1: ++%*3lE:+NAN():0:-1: ++%3lE:+NAN(09A_Zaz):0:-1: ++%*3lE:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3lE:+0E0:0:-1: ++# BZ12701 %*3lE:+0E0:0:-1: ++# BZ12701 %3lE:+0E+0:0:-1: ++# BZ12701 %*3lE:+0E+0:0:-1: ++%3lE:+2.22507385850720138309023271733240406E-308:1:3:0x1p1: ++%*3lE:+2.22507385850720138309023271733240406E-308:0:3: ++%3lE:+2.3441674165664682593913711430784253952E037:1:3:0x1p1: ++%*3lE:+2.3441674165664682593913711430784253952E037:0:3: ++%3lE:+2.3441674165664682593913711430784253952E+37:1:3:0x1p1: ++%*3lE:+2.3441674165664682593913711430784253952E+37:0:3: ++%3lE:+1.79769313486231570814527423731704357E308:1:3:0x1: ++%*3lE:+1.79769313486231570814527423731704357E308:0:3: ++%3lE:+1.79769313486231570814527423731704357E+308:1:3:0x1: ++%*3lE:+1.79769313486231570814527423731704357E+308:0:3: ++%3lE:+INFINITY:0:-1: ++%*3lE:+INFINITY:0:-1: ++%4lE::0:-1: ++%*4lE::0:-1: ++%4lE:-INFINITY:1:4:-inf: ++%*4lE:-INFINITY:0:4: ++%4lE:-1.79769313486231570814527423731704357E+308:1:4:-0x1.b333333333333: ++%*4lE:-1.79769313486231570814527423731704357E+308:0:4: ++%4lE:-1.79769313486231570814527423731704357E308:1:4:-0x1.b333333333333: ++%*4lE:-1.79769313486231570814527423731704357E308:0:4: ++%4lE:-2.3441674165664682593913711430784253952E+37:1:4:-0x1.2666666666666p1: ++%*4lE:-2.3441674165664682593913711430784253952E+37:0:4: ++%4lE:-2.3441674165664682593913711430784253952E037:1:4:-0x1.2666666666666p1: ++%*4lE:-2.3441674165664682593913711430784253952E037:0:4: ++%4lE:-2.22507385850720138309023271733240406E-308:1:4:-0x1.199999999999ap1: ++%*4lE:-2.22507385850720138309023271733240406E-308:0:4: ++# BZ12701 %4lE:-0E+0:0:-1: ++# BZ12701 %*4lE:-0E+0:0:-1: ++%4lE:-0E0:1:4:-0x0: ++%*4lE:-0E0:0:4: ++%4lE:-NAN(09A_Zaz):1:4:-nan: ++%*4lE:-NAN(09A_Zaz):0:4: ++%4lE:-NAN():1:4:-nan: ++%*4lE:-NAN():0:4: ++%4lE:NAN():0:-1: ++%*4lE:NAN():0:-1: ++%4lE:NAN(09A_Zaz):0:-1: ++%*4lE:NAN(09A_Zaz):0:-1: ++%4lE:0E0:1:3:0x0: ++%*4lE:0E0:0:3: ++%4lE:0E+0:1:4:0x0: ++%*4lE:0E+0:0:4: ++%4lE:2.22507385850720138309023271733240406E-308:1:4:0x1.1c28f5c28f5c3p1: ++%*4lE:2.22507385850720138309023271733240406E-308:0:4: ++%4lE:2.3441674165664682593913711430784253952E037:1:4:0x1.2b851eb851eb8p1: ++%*4lE:2.3441674165664682593913711430784253952E037:0:4: ++%4lE:2.3441674165664682593913711430784253952E+37:1:4:0x1.2b851eb851eb8p1: ++%*4lE:2.3441674165664682593913711430784253952E+37:0:4: ++%4lE:1.79769313486231570814527423731704357E308:1:4:0x1.ca3d70a3d70a4: ++%*4lE:1.79769313486231570814527423731704357E308:0:4: ++%4lE:1.79769313486231570814527423731704357E+308:1:4:0x1.ca3d70a3d70a4: ++%*4lE:1.79769313486231570814527423731704357E+308:0:4: ++%4lE:INFINITY:0:-1: ++%*4lE:INFINITY:0:-1: ++%4lE:+NAN():1:4:nan: ++%*4lE:+NAN():0:4: ++%4lE:+NAN(09A_Zaz):1:4:nan: ++%*4lE:+NAN(09A_Zaz):0:4: ++%4lE:+0E0:1:4:0x0: ++%*4lE:+0E0:0:4: ++# BZ12701 %4lE:+0E+0:0:-1: ++# BZ12701 %*4lE:+0E+0:0:-1: ++%4lE:+2.22507385850720138309023271733240406E-308:1:4:0x1.199999999999ap1: ++%*4lE:+2.22507385850720138309023271733240406E-308:0:4: ++%4lE:+2.3441674165664682593913711430784253952E037:1:4:0x1.2666666666666p1: ++%*4lE:+2.3441674165664682593913711430784253952E037:0:4: ++%4lE:+2.3441674165664682593913711430784253952E+37:1:4:0x1.2666666666666p1: ++%*4lE:+2.3441674165664682593913711430784253952E+37:0:4: ++%4lE:+1.79769313486231570814527423731704357E308:1:4:0x1.b333333333333: ++%*4lE:+1.79769313486231570814527423731704357E308:0:4: ++%4lE:+1.79769313486231570814527423731704357E+308:1:4:0x1.b333333333333: ++%*4lE:+1.79769313486231570814527423731704357E+308:0:4: ++%4lE:+INFINITY:1:4:inf: ++%*4lE:+INFINITY:0:4: ++%40lE::0:-1: ++%*40lE::0:-1: ++%40lE:-INFINITY:1:9:-inf: ++%*40lE:-INFINITY:0:9: ++# BZ12701 %40lE:-1.79769313486231570814527423731704357E+308:0:-1: ++# BZ12701 %*40lE:-1.79769313486231570814527423731704357E+308:0:-1: ++%40lE:-1.79769313486231570814527423731704357E308:1:40:-0x1.c16c5c5253574p10: ++%*40lE:-1.79769313486231570814527423731704357E308:0:40: ++%40lE:-2.3441674165664682593913711430784253952E+37:1:40:-0x1.2c0dad8b403aap1: ++%*40lE:-2.3441674165664682593913711430784253952E+37:0:40: ++%40lE:-2.3441674165664682593913711430784253952E037:1:40:-0x1.2c0dad8b403aap1: ++%*40lE:-2.3441674165664682593913711430784253952E037:0:40: ++# BZ12701 %40lE:-2.22507385850720138309023271733240406E-308:0:-1: ++# BZ12701 %*40lE:-2.22507385850720138309023271733240406E-308:0:-1: ++%40lE:-0E+0:1:5:-0x0: ++%*40lE:-0E+0:0:5: ++%40lE:-0E0:1:4:-0x0: ++%*40lE:-0E0:0:4: ++%40lE:-NAN(09A_Zaz):1:13:-nan: ++%*40lE:-NAN(09A_Zaz):0:13: ++%40lE:-NAN():1:6:-nan: ++%*40lE:-NAN():0:6: ++%40lE:NAN():1:5:nan: ++%*40lE:NAN():0:5: ++%40lE:NAN(09A_Zaz):1:12:nan: ++%*40lE:NAN(09A_Zaz):0:12: ++%40lE:0E0:1:3:0x0: ++%*40lE:0E0:0:3: ++%40lE:0E+0:1:4:0x0: ++%*40lE:0E+0:0:4: ++%40lE:2.22507385850720138309023271733240406E-308:1:40:0x1.23a516e82d9bap-9: ++%*40lE:2.22507385850720138309023271733240406E-308:0:40: ++# BZ12701 %40lE:2.3441674165664682593913711430784253952E037:0:-1: ++# BZ12701 %*40lE:2.3441674165664682593913711430784253952E037:0:-1: ++# BZ12701 %40lE:2.3441674165664682593913711430784253952E+37:0:-1: ++# BZ12701 %*40lE:2.3441674165664682593913711430784253952E+37:0:-1: ++%40lE:1.79769313486231570814527423731704357E308:1:40:0x1.6b0a8e891ffffp100: ++%*40lE:1.79769313486231570814527423731704357E308:0:40: ++%40lE:1.79769313486231570814527423731704357E+308:1:40:0x1.c16c5c5253574p10: ++%*40lE:1.79769313486231570814527423731704357E+308:0:40: ++%40lE:INFINITY:1:8:inf: ++%*40lE:INFINITY:0:8: ++%40lE:+NAN():1:6:nan: ++%*40lE:+NAN():0:6: ++%40lE:+NAN(09A_Zaz):1:13:nan: ++%*40lE:+NAN(09A_Zaz):0:13: ++%40lE:+0E0:1:4:0x0: ++%*40lE:+0E0:0:4: ++%40lE:+0E+0:1:5:0x0: ++%*40lE:+0E+0:0:5: ++# BZ12701 %40lE:+2.22507385850720138309023271733240406E-308:0:-1: ++# BZ12701 %*40lE:+2.22507385850720138309023271733240406E-308:0:-1: ++%40lE:+2.3441674165664682593913711430784253952E037:1:40:0x1.2c0dad8b403aap1: ++%*40lE:+2.3441674165664682593913711430784253952E037:0:40: ++%40lE:+2.3441674165664682593913711430784253952E+37:1:40:0x1.2c0dad8b403aap1: ++%*40lE:+2.3441674165664682593913711430784253952E+37:0:40: ++%40lE:+1.79769313486231570814527423731704357E308:1:40:0x1.c16c5c5253574p10: ++%*40lE:+1.79769313486231570814527423731704357E308:0:40: ++# BZ12701 %40lE:+1.79769313486231570814527423731704357E+308:0:-1: ++# BZ12701 %*40lE:+1.79769313486231570814527423731704357E+308:0:-1: ++%40lE:+INFINITY:1:9:inf: ++%*40lE:+INFINITY:0:9: ++%48lE::0:-1: ++%*48lE::0:-1: ++%48lE:-INFINITY:1:9:-inf: ++%*48lE:-INFINITY:0:9: ++%48lE:-1.79769313486231570814527423731704357E+308:1:43:-0x1.fffffffffffffp1023: ++%*48lE:-1.79769313486231570814527423731704357E+308:0:43: ++%48lE:-1.79769313486231570814527423731704357E308:1:42:-0x1.fffffffffffffp1023: ++%*48lE:-1.79769313486231570814527423731704357E308:0:42: ++%48lE:-2.3441674165664682593913711430784253952E+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48lE:-2.3441674165664682593913711430784253952E+37:0:44: ++%48lE:-2.3441674165664682593913711430784253952E037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48lE:-2.3441674165664682593913711430784253952E037:0:44: ++%48lE:-2.22507385850720138309023271733240406E-308:1:43:-0x1p-1022: ++%*48lE:-2.22507385850720138309023271733240406E-308:0:43: ++%48lE:-0E+0:1:5:-0x0: ++%*48lE:-0E+0:0:5: ++%48lE:-0E0:1:4:-0x0: ++%*48lE:-0E0:0:4: ++%48lE:-NAN(09A_Zaz):1:13:-nan: ++%*48lE:-NAN(09A_Zaz):0:13: ++%48lE:-NAN():1:6:-nan: ++%*48lE:-NAN():0:6: ++%48lE:NAN():1:5:nan: ++%*48lE:NAN():0:5: ++%48lE:NAN(09A_Zaz):1:12:nan: ++%*48lE:NAN(09A_Zaz):0:12: ++%48lE:0E0:1:3:0x0: ++%*48lE:0E0:0:3: ++%48lE:0E+0:1:4:0x0: ++%*48lE:0E+0:0:4: ++%48lE:2.22507385850720138309023271733240406E-308:1:42:0x1p-1022: ++%*48lE:2.22507385850720138309023271733240406E-308:0:42: ++%48lE:2.3441674165664682593913711430784253952E037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48lE:2.3441674165664682593913711430784253952E037:0:43: ++%48lE:2.3441674165664682593913711430784253952E+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48lE:2.3441674165664682593913711430784253952E+37:0:43: ++%48lE:1.79769313486231570814527423731704357E308:1:41:0x1.fffffffffffffp1023: ++%*48lE:1.79769313486231570814527423731704357E308:0:41: ++%48lE:1.79769313486231570814527423731704357E+308:1:42:0x1.fffffffffffffp1023: ++%*48lE:1.79769313486231570814527423731704357E+308:0:42: ++%48lE:INFINITY:1:8:inf: ++%*48lE:INFINITY:0:8: ++%48lE:+NAN():1:6:nan: ++%*48lE:+NAN():0:6: ++%48lE:+NAN(09A_Zaz):1:13:nan: ++%*48lE:+NAN(09A_Zaz):0:13: ++%48lE:+0E0:1:4:0x0: ++%*48lE:+0E0:0:4: ++%48lE:+0E+0:1:5:0x0: ++%*48lE:+0E+0:0:5: ++%48lE:+2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*48lE:+2.22507385850720138309023271733240406E-308:0:43: ++%48lE:+2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48lE:+2.3441674165664682593913711430784253952E037:0:44: ++%48lE:+2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48lE:+2.3441674165664682593913711430784253952E+37:0:44: ++%48lE:+1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*48lE:+1.79769313486231570814527423731704357E308:0:42: ++%48lE:+1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*48lE:+1.79769313486231570814527423731704357E+308:0:43: ++%48lE:+INFINITY:1:9:inf: ++%*48lE:+INFINITY:0:9: ++%3lE: :0:-1: ++%*3lE: :0:-1: ++%3lE: -INFINITY:0:-1: ++%*3lE: -INFINITY:0:-1: ++%3lE: -1.79769313486231570814527423731704357E+308:1:4:-0x1: ++%*3lE: -1.79769313486231570814527423731704357E+308:0:4: ++%3lE: -1.79769313486231570814527423731704357E308:1:4:-0x1: ++%*3lE: -1.79769313486231570814527423731704357E308:0:4: ++%3lE: -2.3441674165664682593913711430784253952E+37:1:4:-0x1p1: ++%*3lE: -2.3441674165664682593913711430784253952E+37:0:4: ++%3lE: -2.3441674165664682593913711430784253952E037:1:4:-0x1p1: ++%*3lE: -2.3441674165664682593913711430784253952E037:0:4: ++%3lE: -2.22507385850720138309023271733240406E-308:1:4:-0x1p1: ++%*3lE: -2.22507385850720138309023271733240406E-308:0:4: ++# BZ12701 %3lE: -0E+0:0:-1: ++# BZ12701 %*3lE: -0E+0:0:-1: ++# BZ12701 %3lE: -0E0:0:-1: ++# BZ12701 %*3lE: -0E0:0:-1: ++%3lE: -NAN(09A_Zaz):0:-1: ++%*3lE: -NAN(09A_Zaz):0:-1: ++%3lE: -NAN():0:-1: ++%*3lE: -NAN():0:-1: ++%3lE: NAN():1:4:nan: ++%*3lE: NAN():0:4: ++%3lE: NAN(09A_Zaz):1:4:nan: ++%*3lE: NAN(09A_Zaz):0:4: ++%3lE: 0E0:1:4:0x0: ++%*3lE: 0E0:0:4: ++# BZ12701 %3lE: 0E+0:0:-1: ++# BZ12701 %*3lE: 0E+0:0:-1: ++%3lE: 2.22507385850720138309023271733240406E-308:1:4:0x1.199999999999ap1: ++%*3lE: 2.22507385850720138309023271733240406E-308:0:4: ++%3lE: 2.3441674165664682593913711430784253952E037:1:4:0x1.2666666666666p1: ++%*3lE: 2.3441674165664682593913711430784253952E037:0:4: ++%3lE: 2.3441674165664682593913711430784253952E+37:1:4:0x1.2666666666666p1: ++%*3lE: 2.3441674165664682593913711430784253952E+37:0:4: ++%3lE: 1.79769313486231570814527423731704357E308:1:4:0x1.b333333333333: ++%*3lE: 1.79769313486231570814527423731704357E308:0:4: ++%3lE: 1.79769313486231570814527423731704357E+308:1:4:0x1.b333333333333: ++%*3lE: 1.79769313486231570814527423731704357E+308:0:4: ++%3lE: INFINITY:1:4:inf: ++%*3lE: INFINITY:0:4: ++%3lE: +NAN():0:-1: ++%*3lE: +NAN():0:-1: ++%3lE: +NAN(09A_Zaz):0:-1: ++%*3lE: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3lE: +0E0:0:-1: ++# BZ12701 %*3lE: +0E0:0:-1: ++# BZ12701 %3lE: +0E+0:0:-1: ++# BZ12701 %*3lE: +0E+0:0:-1: ++%3lE: +2.22507385850720138309023271733240406E-308:1:4:0x1p1: ++%*3lE: +2.22507385850720138309023271733240406E-308:0:4: ++%3lE: +2.3441674165664682593913711430784253952E037:1:4:0x1p1: ++%*3lE: +2.3441674165664682593913711430784253952E037:0:4: ++%3lE: +2.3441674165664682593913711430784253952E+37:1:4:0x1p1: ++%*3lE: +2.3441674165664682593913711430784253952E+37:0:4: ++%3lE: +1.79769313486231570814527423731704357E308:1:4:0x1: ++%*3lE: +1.79769313486231570814527423731704357E308:0:4: ++%3lE: +1.79769313486231570814527423731704357E+308:1:4:0x1: ++%*3lE: +1.79769313486231570814527423731704357E+308:0:4: ++%3lE: +INFINITY:0:-1: ++%*3lE: +INFINITY:0:-1: ++%48lE: :0:-1: ++%*48lE: :0:-1: ++%48lE: -INFINITY:1:10:-inf: ++%*48lE: -INFINITY:0:10: ++%48lE: -1.79769313486231570814527423731704357E+308:1:44:-0x1.fffffffffffffp1023: ++%*48lE: -1.79769313486231570814527423731704357E+308:0:44: ++%48lE: -1.79769313486231570814527423731704357E308:1:43:-0x1.fffffffffffffp1023: ++%*48lE: -1.79769313486231570814527423731704357E308:0:43: ++%48lE: -2.3441674165664682593913711430784253952E+37:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48lE: -2.3441674165664682593913711430784253952E+37:0:45: ++%48lE: -2.3441674165664682593913711430784253952E037:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48lE: -2.3441674165664682593913711430784253952E037:0:45: ++%48lE: -2.22507385850720138309023271733240406E-308:1:44:-0x1p-1022: ++%*48lE: -2.22507385850720138309023271733240406E-308:0:44: ++%48lE: -0E+0:1:6:-0x0: ++%*48lE: -0E+0:0:6: ++%48lE: -0E0:1:5:-0x0: ++%*48lE: -0E0:0:5: ++%48lE: -NAN(09A_Zaz):1:14:-nan: ++%*48lE: -NAN(09A_Zaz):0:14: ++%48lE: -NAN():1:7:-nan: ++%*48lE: -NAN():0:7: ++%48lE: NAN():1:6:nan: ++%*48lE: NAN():0:6: ++%48lE: NAN(09A_Zaz):1:13:nan: ++%*48lE: NAN(09A_Zaz):0:13: ++%48lE: 0E0:1:4:0x0: ++%*48lE: 0E0:0:4: ++%48lE: 0E+0:1:5:0x0: ++%*48lE: 0E+0:0:5: ++%48lE: 2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*48lE: 2.22507385850720138309023271733240406E-308:0:43: ++%48lE: 2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48lE: 2.3441674165664682593913711430784253952E037:0:44: ++%48lE: 2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48lE: 2.3441674165664682593913711430784253952E+37:0:44: ++%48lE: 1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*48lE: 1.79769313486231570814527423731704357E308:0:42: ++%48lE: 1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*48lE: 1.79769313486231570814527423731704357E+308:0:43: ++%48lE: INFINITY:1:9:inf: ++%*48lE: INFINITY:0:9: ++%48lE: +NAN():1:7:nan: ++%*48lE: +NAN():0:7: ++%48lE: +NAN(09A_Zaz):1:14:nan: ++%*48lE: +NAN(09A_Zaz):0:14: ++%48lE: +0E0:1:5:0x0: ++%*48lE: +0E0:0:5: ++%48lE: +0E+0:1:6:0x0: ++%*48lE: +0E+0:0:6: ++%48lE: +2.22507385850720138309023271733240406E-308:1:44:0x1p-1022: ++%*48lE: +2.22507385850720138309023271733240406E-308:0:44: ++%48lE: +2.3441674165664682593913711430784253952E037:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48lE: +2.3441674165664682593913711430784253952E037:0:45: ++%48lE: +2.3441674165664682593913711430784253952E+37:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48lE: +2.3441674165664682593913711430784253952E+37:0:45: ++%48lE: +1.79769313486231570814527423731704357E308:1:43:0x1.fffffffffffffp1023: ++%*48lE: +1.79769313486231570814527423731704357E308:0:43: ++%48lE: +1.79769313486231570814527423731704357E+308:1:44:0x1.fffffffffffffp1023: ++%*48lE: +1.79769313486231570814527423731704357E+308:0:44: ++%48lE: +INFINITY:1:10:inf: ++%*48lE: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input +new file mode 100644 +index 0000000000000000..22b9fdc4f62cfa08 +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-f.input +@@ -0,0 +1,558 @@ ++%lf::0:-1: ++%*lf::0:-1: ++%lf:-infinity:1:9:-inf: ++%*lf:-infinity:0:9: ++%lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*lf:-023441674165664682593913711430784253952.0:0:42: ++%lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*lf:-23441674165664682593913711430784253952:0:39: ++%lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%lf:-0.0:1:4:-0x0: ++%*lf:-0.0:0:4: ++%lf:-0:1:2:-0x0: ++%*lf:-0:0:2: ++%lf:-nan(09A_Zaz):1:13:-nan: ++%*lf:-nan(09A_Zaz):0:13: ++%lf:-nan():1:6:-nan: ++%*lf:-nan():0:6: ++%lf:nan():1:5:nan: ++%*lf:nan():0:5: ++%lf:nan(09A_Zaz):1:12:nan: ++%*lf:nan(09A_Zaz):0:12: ++%lf:0:1:1:0x0: ++%*lf:0:0:1: ++%lf:0.0:1:3:0x0: ++%*lf:0.0:0:3: ++%lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*lf:23441674165664682593913711430784253952:0:38: ++%lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*lf:023441674165664682593913711430784253952.0:0:41: ++%lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%lf:infinity:1:8:inf: ++%*lf:infinity:0:8: ++%lf:+nan():1:6:nan: ++%*lf:+nan():0:6: ++%lf:+nan(09A_Zaz):1:13:nan: ++%*lf:+nan(09A_Zaz):0:13: ++%lf:+0:1:2:0x0: ++%*lf:+0:0:2: ++%lf:+0.0:1:4:0x0: ++%*lf:+0.0:0:4: ++%lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*lf:+23441674165664682593913711430784253952:0:39: ++%lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*lf:+023441674165664682593913711430784253952.0:0:42: ++%lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%lf:+infinity:1:9:inf: ++%*lf:+infinity:0:9: ++%1lf::0:-1: ++%*1lf::0:-1: ++%1lf:-infinity:0:-1: ++%*1lf:-infinity:0:-1: ++%1lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1lf:-023441674165664682593913711430784253952.0:0:-1: ++%*1lf:-023441674165664682593913711430784253952.0:0:-1: ++%1lf:-23441674165664682593913711430784253952:0:-1: ++%*1lf:-23441674165664682593913711430784253952:0:-1: ++%1lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1lf:-0.0:0:-1: ++%*1lf:-0.0:0:-1: ++%1lf:-0:0:-1: ++%*1lf:-0:0:-1: ++%1lf:-nan(09A_Zaz):0:-1: ++%*1lf:-nan(09A_Zaz):0:-1: ++%1lf:-nan():0:-1: ++%*1lf:-nan():0:-1: ++%1lf:nan():0:-1: ++%*1lf:nan():0:-1: ++%1lf:nan(09A_Zaz):0:-1: ++%*1lf:nan(09A_Zaz):0:-1: ++%1lf:0:1:1:0x0: ++%*1lf:0:0:1: ++%1lf:0.0:1:1:0x0: ++%*1lf:0.0:0:1: ++%1lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:1:0x0: ++%*1lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:1: ++%1lf:23441674165664682593913711430784253952:1:1:0x1p1: ++%*1lf:23441674165664682593913711430784253952:0:1: ++%1lf:023441674165664682593913711430784253952.0:1:1:0x0: ++%*1lf:023441674165664682593913711430784253952.0:0:1: ++%1lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:1:0x1: ++%*1lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:1: ++%1lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:1:0x0: ++%*1lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: ++%1lf:infinity:0:-1: ++%*1lf:infinity:0:-1: ++%1lf:+nan():0:-1: ++%*1lf:+nan():0:-1: ++%1lf:+nan(09A_Zaz):0:-1: ++%*1lf:+nan(09A_Zaz):0:-1: ++%1lf:+0:0:-1: ++%*1lf:+0:0:-1: ++%1lf:+0.0:0:-1: ++%*1lf:+0.0:0:-1: ++%1lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1lf:+23441674165664682593913711430784253952:0:-1: ++%*1lf:+23441674165664682593913711430784253952:0:-1: ++%1lf:+023441674165664682593913711430784253952.0:0:-1: ++%*1lf:+023441674165664682593913711430784253952.0:0:-1: ++%1lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1lf:+infinity:0:-1: ++%*1lf:+infinity:0:-1: ++%2lf::0:-1: ++%*2lf::0:-1: ++%2lf:-infinity:0:-1: ++%*2lf:-infinity:0:-1: ++%2lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:-0x0: ++%*2lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:-0x1: ++%*2lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lf:-023441674165664682593913711430784253952.0:1:2:-0x0: ++%*2lf:-023441674165664682593913711430784253952.0:0:2: ++%2lf:-23441674165664682593913711430784253952:1:2:-0x1p1: ++%*2lf:-23441674165664682593913711430784253952:0:2: ++%2lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:-0x0: ++%*2lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lf:-0.0:1:2:-0x0: ++%*2lf:-0.0:0:2: ++%2lf:-0:1:2:-0x0: ++%*2lf:-0:0:2: ++%2lf:-nan(09A_Zaz):0:-1: ++%*2lf:-nan(09A_Zaz):0:-1: ++%2lf:-nan():0:-1: ++%*2lf:-nan():0:-1: ++%2lf:nan():0:-1: ++%*2lf:nan():0:-1: ++%2lf:nan(09A_Zaz):0:-1: ++%*2lf:nan(09A_Zaz):0:-1: ++%2lf:0:1:1:0x0: ++%*2lf:0:0:1: ++%2lf:0.0:1:2:0x0: ++%*2lf:0.0:0:2: ++%2lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lf:23441674165664682593913711430784253952:1:2:0x1.7p+4: ++%*2lf:23441674165664682593913711430784253952:0:2: ++%2lf:023441674165664682593913711430784253952.0:1:2:0x1p1: ++%*2lf:023441674165664682593913711430784253952.0:0:2: ++%2lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1.1p+4: ++%*2lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x1: ++%*2lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lf:infinity:0:-1: ++%*2lf:infinity:0:-1: ++%2lf:+nan():0:-1: ++%*2lf:+nan():0:-1: ++%2lf:+nan(09A_Zaz):0:-1: ++%*2lf:+nan(09A_Zaz):0:-1: ++%2lf:+0:1:2:0x0: ++%*2lf:+0:0:2: ++%2lf:+0.0:1:2:0x0: ++%*2lf:+0.0:0:2: ++%2lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lf:+23441674165664682593913711430784253952:1:2:0x1p1: ++%*2lf:+23441674165664682593913711430784253952:0:2: ++%2lf:+023441674165664682593913711430784253952.0:1:2:0x0: ++%*2lf:+023441674165664682593913711430784253952.0:0:2: ++%2lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1: ++%*2lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x0: ++%*2lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lf:+infinity:0:-1: ++%*2lf:+infinity:0:-1: ++%3lf::0:-1: ++%*3lf::0:-1: ++%3lf:-infinity:0:-1: ++%*3lf:-infinity:0:-1: ++%3lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:-0x1: ++%*3lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:-0x1.1p+4: ++%*3lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lf:-023441674165664682593913711430784253952.0:1:3:-0x1p1: ++%*3lf:-023441674165664682593913711430784253952.0:0:3: ++%3lf:-23441674165664682593913711430784253952:1:3:-0x1.7p+4: ++%*3lf:-23441674165664682593913711430784253952:0:3: ++%3lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:-0x0: ++%*3lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lf:-0.0:1:3:-0x0: ++%*3lf:-0.0:0:3: ++%3lf:-0:1:2:-0x0: ++%*3lf:-0:0:2: ++%3lf:-nan(09A_Zaz):0:-1: ++%*3lf:-nan(09A_Zaz):0:-1: ++%3lf:-nan():0:-1: ++%*3lf:-nan():0:-1: ++%3lf:nan():1:3:nan: ++%*3lf:nan():0:3: ++%3lf:nan(09A_Zaz):1:3:nan: ++%*3lf:nan(09A_Zaz):0:3: ++%3lf:0:1:1:0x0: ++%*3lf:0:0:1: ++%3lf:0.0:1:3:0x0: ++%*3lf:0.0:0:3: ++%3lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lf:23441674165664682593913711430784253952:1:3:0x1.d4p+7: ++%*3lf:23441674165664682593913711430784253952:0:3: ++%3lf:023441674165664682593913711430784253952.0:1:3:0x1.7p+4: ++%*3lf:023441674165664682593913711430784253952.0:0:3: ++%3lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.66p+7: ++%*3lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1.1p4: ++%*3lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lf:infinity:1:3:inf: ++%*3lf:infinity:0:3: ++%3lf:+nan():0:-1: ++%*3lf:+nan():0:-1: ++%3lf:+nan(09A_Zaz):0:-1: ++%*3lf:+nan(09A_Zaz):0:-1: ++%3lf:+0:1:2:0x0: ++%*3lf:+0:0:2: ++%3lf:+0.0:1:3:0x0: ++%*3lf:+0.0:0:3: ++%3lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lf:+23441674165664682593913711430784253952:1:3:0x1.7p+4: ++%*3lf:+23441674165664682593913711430784253952:0:3: ++%3lf:+023441674165664682593913711430784253952.0:1:3:0x1p1: ++%*3lf:+023441674165664682593913711430784253952.0:0:3: ++%3lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.1p4: ++%*3lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1: ++%*3lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lf:+infinity:0:-1: ++%*3lf:+infinity:0:-1: ++%4lf::0:-1: ++%*4lf::0:-1: ++%4lf:-infinity:1:4:-inf: ++%*4lf:-infinity:0:4: ++%4lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1.1p4: ++%*4lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.66p+7: ++%*4lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lf:-023441674165664682593913711430784253952.0:1:4:-0x1.7p+4: ++%*4lf:-023441674165664682593913711430784253952.0:0:4: ++%4lf:-23441674165664682593913711430784253952:1:4:-0x1.d4p+7: ++%*4lf:-23441674165664682593913711430784253952:0:4: ++%4lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*4lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lf:-0.0:1:4:-0x0: ++%*4lf:-0.0:0:4: ++%4lf:-0:1:2:-0x0: ++%*4lf:-0:0:2: ++%4lf:-nan(09A_Zaz):1:4:-nan: ++%*4lf:-nan(09A_Zaz):0:4: ++%4lf:-nan():1:4:-nan: ++%*4lf:-nan():0:4: ++%4lf:nan():0:-1: ++%*4lf:nan():0:-1: ++%4lf:nan(09A_Zaz):0:-1: ++%*4lf:nan(09A_Zaz):0:-1: ++%4lf:0:1:1:0x0: ++%*4lf:0:0:1: ++%4lf:0.0:1:3:0x0: ++%*4lf:0.0:0:3: ++%4lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lf:23441674165664682593913711430784253952:1:4:0x1.25p11: ++%*4lf:23441674165664682593913711430784253952:0:4: ++%4lf:023441674165664682593913711430784253952.0:1:4:0x1.d4p+7: ++%*4lf:023441674165664682593913711430784253952.0:0:4: ++%4lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.c14p+10: ++%*4lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.66p+7: ++%*4lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lf:infinity:0:-1: ++%*4lf:infinity:0:-1: ++%4lf:+nan():1:4:nan: ++%*4lf:+nan():0:4: ++%4lf:+nan(09A_Zaz):1:4:nan: ++%*4lf:+nan(09A_Zaz):0:4: ++%4lf:+0:1:2:0x0: ++%*4lf:+0:0:2: ++%4lf:+0.0:1:4:0x0: ++%*4lf:+0.0:0:4: ++%4lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lf:+23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*4lf:+23441674165664682593913711430784253952:0:4: ++%4lf:+023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*4lf:+023441674165664682593913711430784253952.0:0:4: ++%4lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*4lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*4lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lf:+infinity:1:4:inf: ++%*4lf:+infinity:0:4: ++%311lf::0:-1: ++%*311lf::0:-1: ++%311lf:-infinity:1:9:-inf: ++%*311lf:-infinity:0:9: ++%311lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:-0x1.fffffffffffffp1023: ++%*311lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*311lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*311lf:-023441674165664682593913711430784253952.0:0:42: ++%311lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*311lf:-23441674165664682593913711430784253952:0:39: ++%311lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:-0x1.cc359e067a348p-1023: ++%*311lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lf:-0.0:1:4:-0x0: ++%*311lf:-0.0:0:4: ++%311lf:-0:1:2:-0x0: ++%*311lf:-0:0:2: ++%311lf:-nan(09A_Zaz):1:13:-nan: ++%*311lf:-nan(09A_Zaz):0:13: ++%311lf:-nan():1:6:-nan: ++%*311lf:-nan():0:6: ++%311lf:nan():1:5:nan: ++%*311lf:nan():0:5: ++%311lf:nan(09A_Zaz):1:12:nan: ++%*311lf:nan(09A_Zaz):0:12: ++%311lf:0:1:1:0x0: ++%*311lf:0:0:1: ++%311lf:0.0:1:3:0x0: ++%*311lf:0.0:0:3: ++%311lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.fa3afaa0b9a04p-1023: ++%*311lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*311lf:23441674165664682593913711430784253952:0:38: ++%311lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*311lf:023441674165664682593913711430784253952.0:0:41: ++%311lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*311lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%311lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lf:infinity:1:8:inf: ++%*311lf:infinity:0:8: ++%311lf:+nan():1:6:nan: ++%*311lf:+nan():0:6: ++%311lf:+nan(09A_Zaz):1:13:nan: ++%*311lf:+nan(09A_Zaz):0:13: ++%311lf:+0:1:2:0x0: ++%*311lf:+0:0:2: ++%311lf:+0.0:1:4:0x0: ++%*311lf:+0.0:0:4: ++%311lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.cc359e067a348p-1023: ++%*311lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*311lf:+23441674165664682593913711430784253952:0:39: ++%311lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*311lf:+023441674165664682593913711430784253952.0:0:42: ++%311lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*311lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lf:+infinity:1:9:inf: ++%*311lf:+infinity:0:9: ++%350lf::0:-1: ++%*350lf::0:-1: ++%350lf:-infinity:1:9:-inf: ++%*350lf:-infinity:0:9: ++%350lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*350lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*350lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*350lf:-023441674165664682593913711430784253952.0:0:42: ++%350lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*350lf:-23441674165664682593913711430784253952:0:39: ++%350lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*350lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lf:-0.0:1:4:-0x0: ++%*350lf:-0.0:0:4: ++%350lf:-0:1:2:-0x0: ++%*350lf:-0:0:2: ++%350lf:-nan(09A_Zaz):1:13:-nan: ++%*350lf:-nan(09A_Zaz):0:13: ++%350lf:-nan():1:6:-nan: ++%*350lf:-nan():0:6: ++%350lf:nan():1:5:nan: ++%*350lf:nan():0:5: ++%350lf:nan(09A_Zaz):1:12:nan: ++%*350lf:nan(09A_Zaz):0:12: ++%350lf:0:1:1:0x0: ++%*350lf:0:0:1: ++%350lf:0.0:1:3:0x0: ++%*350lf:0.0:0:3: ++%350lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*350lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%350lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*350lf:23441674165664682593913711430784253952:0:38: ++%350lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*350lf:023441674165664682593913711430784253952.0:0:41: ++%350lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*350lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%350lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*350lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%350lf:infinity:1:8:inf: ++%*350lf:infinity:0:8: ++%350lf:+nan():1:6:nan: ++%*350lf:+nan():0:6: ++%350lf:+nan(09A_Zaz):1:13:nan: ++%*350lf:+nan(09A_Zaz):0:13: ++%350lf:+0:1:2:0x0: ++%*350lf:+0:0:2: ++%350lf:+0.0:1:4:0x0: ++%*350lf:+0.0:0:4: ++%350lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350lf:+23441674165664682593913711430784253952:0:39: ++%350lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350lf:+023441674165664682593913711430784253952.0:0:42: ++%350lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lf:+infinity:1:9:inf: ++%*350lf:+infinity:0:9: ++%3lf: :0:-1: ++%*3lf: :0:-1: ++%3lf: -infinity:0:-1: ++%*3lf: -infinity:0:-1: ++%3lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1: ++%*3lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.1p+4: ++%*3lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lf: -023441674165664682593913711430784253952.0:1:4:-0x1p1: ++%*3lf: -023441674165664682593913711430784253952.0:0:4: ++%3lf: -23441674165664682593913711430784253952:1:4:-0x1.7p+4: ++%*3lf: -23441674165664682593913711430784253952:0:4: ++%3lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*3lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lf: -0.0:1:4:-0x0: ++%*3lf: -0.0:0:4: ++%3lf: -0:1:3:-0x0: ++%*3lf: -0:0:3: ++%3lf: -nan(09A_Zaz):0:-1: ++%*3lf: -nan(09A_Zaz):0:-1: ++%3lf: -nan():0:-1: ++%*3lf: -nan():0:-1: ++%3lf: nan():1:4:nan: ++%*3lf: nan():0:4: ++%3lf: nan(09A_Zaz):1:4:nan: ++%*3lf: nan(09A_Zaz):0:4: ++%3lf: 0:1:2:0x0: ++%*3lf: 0:0:2: ++%3lf: 0.0:1:4:0x0: ++%*3lf: 0.0:0:4: ++%3lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lf: 23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*3lf: 23441674165664682593913711430784253952:0:4: ++%3lf: 023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*3lf: 023441674165664682593913711430784253952.0:0:4: ++%3lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*3lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*3lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lf: infinity:1:4:inf: ++%*3lf: infinity:0:4: ++%3lf: +nan():0:-1: ++%*3lf: +nan():0:-1: ++%3lf: +nan(09A_Zaz):0:-1: ++%*3lf: +nan(09A_Zaz):0:-1: ++%3lf: +0:1:3:0x0: ++%*3lf: +0:0:3: ++%3lf: +0.0:1:4:0x0: ++%*3lf: +0.0:0:4: ++%3lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lf: +23441674165664682593913711430784253952:1:4:0x1.7p+4: ++%*3lf: +23441674165664682593913711430784253952:0:4: ++%3lf: +023441674165664682593913711430784253952.0:1:4:0x1p1: ++%*3lf: +023441674165664682593913711430784253952.0:0:4: ++%3lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.1p4: ++%*3lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1: ++%*3lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lf: +infinity:0:-1: ++%*3lf: +infinity:0:-1: ++%350lf: :0:-1: ++%*350lf: :0:-1: ++%350lf: -infinity:1:10:-inf: ++%*350lf: -infinity:0:10: ++%350lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:-0x1.fffffffffffffp1023: ++%*350lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:-0x1.fffffffffffffp1023: ++%*350lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350lf: -023441674165664682593913711430784253952.0:1:43:-0x1.1a2b3c4d5e6ffp124: ++%*350lf: -023441674165664682593913711430784253952.0:0:43: ++%350lf: -23441674165664682593913711430784253952:1:40:-0x1.1a2b3c4d5e6ffp124: ++%*350lf: -23441674165664682593913711430784253952:0:40: ++%350lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:-0x1p-1022: ++%*350lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350lf: -0.0:1:5:-0x0: ++%*350lf: -0.0:0:5: ++%350lf: -0:1:3:-0x0: ++%*350lf: -0:0:3: ++%350lf: -nan(09A_Zaz):1:14:-nan: ++%*350lf: -nan(09A_Zaz):0:14: ++%350lf: -nan():1:7:-nan: ++%*350lf: -nan():0:7: ++%350lf: nan():1:6:nan: ++%*350lf: nan():0:6: ++%350lf: nan(09A_Zaz):1:13:nan: ++%*350lf: nan(09A_Zaz):0:13: ++%350lf: 0:1:2:0x0: ++%*350lf: 0:0:2: ++%350lf: 0.0:1:4:0x0: ++%*350lf: 0.0:0:4: ++%350lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lf: 23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350lf: 23441674165664682593913711430784253952:0:39: ++%350lf: 023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350lf: 023441674165664682593913711430784253952.0:0:42: ++%350lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lf: infinity:1:9:inf: ++%*350lf: infinity:0:9: ++%350lf: +nan():1:7:nan: ++%*350lf: +nan():0:7: ++%350lf: +nan(09A_Zaz):1:14:nan: ++%*350lf: +nan(09A_Zaz):0:14: ++%350lf: +0:1:3:0x0: ++%*350lf: +0:0:3: ++%350lf: +0.0:1:5:0x0: ++%*350lf: +0.0:0:5: ++%350lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:0x1p-1022: ++%*350lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350lf: +23441674165664682593913711430784253952:1:40:0x1.1a2b3c4d5e6ffp124: ++%*350lf: +23441674165664682593913711430784253952:0:40: ++%350lf: +023441674165664682593913711430784253952.0:1:43:0x1.1a2b3c4d5e6ffp124: ++%*350lf: +023441674165664682593913711430784253952.0:0:43: ++%350lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:0x1.fffffffffffffp1023: ++%*350lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:0x1.fffffffffffffp1023: ++%*350lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350lf: +infinity:1:10:inf: ++%*350lf: +infinity:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input +new file mode 100644 +index 0000000000000000..6168884e133d78d3 +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-ff.input +@@ -0,0 +1,558 @@ ++%lF::0:-1: ++%*lF::0:-1: ++%lF:-INFINITY:1:9:-inf: ++%*lF:-INFINITY:0:9: ++%lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%lF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*lF:-023441674165664682593913711430784253952.0:0:42: ++%lF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*lF:-23441674165664682593913711430784253952:0:39: ++%lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%lF:-0.0:1:4:-0x0: ++%*lF:-0.0:0:4: ++%lF:-0:1:2:-0x0: ++%*lF:-0:0:2: ++%lF:-NAN(09A_Zaz):1:13:-nan: ++%*lF:-NAN(09A_Zaz):0:13: ++%lF:-NAN():1:6:-nan: ++%*lF:-NAN():0:6: ++%lF:NAN():1:5:nan: ++%*lF:NAN():0:5: ++%lF:NAN(09A_Zaz):1:12:nan: ++%*lF:NAN(09A_Zaz):0:12: ++%lF:0:1:1:0x0: ++%*lF:0:0:1: ++%lF:0.0:1:3:0x0: ++%*lF:0.0:0:3: ++%lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%lF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*lF:23441674165664682593913711430784253952:0:38: ++%lF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*lF:023441674165664682593913711430784253952.0:0:41: ++%lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%lF:INFINITY:1:8:inf: ++%*lF:INFINITY:0:8: ++%lF:+NAN():1:6:nan: ++%*lF:+NAN():0:6: ++%lF:+NAN(09A_Zaz):1:13:nan: ++%*lF:+NAN(09A_Zaz):0:13: ++%lF:+0:1:2:0x0: ++%*lF:+0:0:2: ++%lF:+0.0:1:4:0x0: ++%*lF:+0.0:0:4: ++%lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%lF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*lF:+23441674165664682593913711430784253952:0:39: ++%lF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*lF:+023441674165664682593913711430784253952.0:0:42: ++%lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%lF:+INFINITY:1:9:inf: ++%*lF:+INFINITY:0:9: ++%1lF::0:-1: ++%*1lF::0:-1: ++%1lF:-INFINITY:0:-1: ++%*1lF:-INFINITY:0:-1: ++%1lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1lF:-023441674165664682593913711430784253952.0:0:-1: ++%*1lF:-023441674165664682593913711430784253952.0:0:-1: ++%1lF:-23441674165664682593913711430784253952:0:-1: ++%*1lF:-23441674165664682593913711430784253952:0:-1: ++%1lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1lF:-0.0:0:-1: ++%*1lF:-0.0:0:-1: ++%1lF:-0:0:-1: ++%*1lF:-0:0:-1: ++%1lF:-NAN(09A_Zaz):0:-1: ++%*1lF:-NAN(09A_Zaz):0:-1: ++%1lF:-NAN():0:-1: ++%*1lF:-NAN():0:-1: ++%1lF:NAN():0:-1: ++%*1lF:NAN():0:-1: ++%1lF:NAN(09A_Zaz):0:-1: ++%*1lF:NAN(09A_Zaz):0:-1: ++%1lF:0:1:1:0x0: ++%*1lF:0:0:1: ++%1lF:0.0:1:1:0x0: ++%*1lF:0.0:0:1: ++%1lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:1:0x0: ++%*1lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:1: ++%1lF:23441674165664682593913711430784253952:1:1:0x1p1: ++%*1lF:23441674165664682593913711430784253952:0:1: ++%1lF:023441674165664682593913711430784253952.0:1:1:0x0: ++%*1lF:023441674165664682593913711430784253952.0:0:1: ++%1lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:1:0x1: ++%*1lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:1: ++%1lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:1:0x0: ++%*1lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: ++%1lF:INFINITY:0:-1: ++%*1lF:INFINITY:0:-1: ++%1lF:+NAN():0:-1: ++%*1lF:+NAN():0:-1: ++%1lF:+NAN(09A_Zaz):0:-1: ++%*1lF:+NAN(09A_Zaz):0:-1: ++%1lF:+0:0:-1: ++%*1lF:+0:0:-1: ++%1lF:+0.0:0:-1: ++%*1lF:+0.0:0:-1: ++%1lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1lF:+23441674165664682593913711430784253952:0:-1: ++%*1lF:+23441674165664682593913711430784253952:0:-1: ++%1lF:+023441674165664682593913711430784253952.0:0:-1: ++%*1lF:+023441674165664682593913711430784253952.0:0:-1: ++%1lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1lF:+INFINITY:0:-1: ++%*1lF:+INFINITY:0:-1: ++%2lF::0:-1: ++%*2lF::0:-1: ++%2lF:-INFINITY:0:-1: ++%*2lF:-INFINITY:0:-1: ++%2lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:-0x0: ++%*2lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:-0x1: ++%*2lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lF:-023441674165664682593913711430784253952.0:1:2:-0x0: ++%*2lF:-023441674165664682593913711430784253952.0:0:2: ++%2lF:-23441674165664682593913711430784253952:1:2:-0x1p1: ++%*2lF:-23441674165664682593913711430784253952:0:2: ++%2lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:-0x0: ++%*2lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lF:-0.0:1:2:-0x0: ++%*2lF:-0.0:0:2: ++%2lF:-0:1:2:-0x0: ++%*2lF:-0:0:2: ++%2lF:-NAN(09A_Zaz):0:-1: ++%*2lF:-NAN(09A_Zaz):0:-1: ++%2lF:-NAN():0:-1: ++%*2lF:-NAN():0:-1: ++%2lF:NAN():0:-1: ++%*2lF:NAN():0:-1: ++%2lF:NAN(09A_Zaz):0:-1: ++%*2lF:NAN(09A_Zaz):0:-1: ++%2lF:0:1:1:0x0: ++%*2lF:0:0:1: ++%2lF:0.0:1:2:0x0: ++%*2lF:0.0:0:2: ++%2lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lF:23441674165664682593913711430784253952:1:2:0x1.7p+4: ++%*2lF:23441674165664682593913711430784253952:0:2: ++%2lF:023441674165664682593913711430784253952.0:1:2:0x1p1: ++%*2lF:023441674165664682593913711430784253952.0:0:2: ++%2lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1.1p+4: ++%*2lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x1: ++%*2lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lF:INFINITY:0:-1: ++%*2lF:INFINITY:0:-1: ++%2lF:+NAN():0:-1: ++%*2lF:+NAN():0:-1: ++%2lF:+NAN(09A_Zaz):0:-1: ++%*2lF:+NAN(09A_Zaz):0:-1: ++%2lF:+0:1:2:0x0: ++%*2lF:+0:0:2: ++%2lF:+0.0:1:2:0x0: ++%*2lF:+0.0:0:2: ++%2lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2lF:+23441674165664682593913711430784253952:1:2:0x1p1: ++%*2lF:+23441674165664682593913711430784253952:0:2: ++%2lF:+023441674165664682593913711430784253952.0:1:2:0x0: ++%*2lF:+023441674165664682593913711430784253952.0:0:2: ++%2lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1: ++%*2lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x0: ++%*2lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2lF:+INFINITY:0:-1: ++%*2lF:+INFINITY:0:-1: ++%3lF::0:-1: ++%*3lF::0:-1: ++%3lF:-INFINITY:0:-1: ++%*3lF:-INFINITY:0:-1: ++%3lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:-0x1: ++%*3lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:-0x1.1p+4: ++%*3lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lF:-023441674165664682593913711430784253952.0:1:3:-0x1p1: ++%*3lF:-023441674165664682593913711430784253952.0:0:3: ++%3lF:-23441674165664682593913711430784253952:1:3:-0x1.7p+4: ++%*3lF:-23441674165664682593913711430784253952:0:3: ++%3lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:-0x0: ++%*3lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lF:-0.0:1:3:-0x0: ++%*3lF:-0.0:0:3: ++%3lF:-0:1:2:-0x0: ++%*3lF:-0:0:2: ++%3lF:-NAN(09A_Zaz):0:-1: ++%*3lF:-NAN(09A_Zaz):0:-1: ++%3lF:-NAN():0:-1: ++%*3lF:-NAN():0:-1: ++%3lF:NAN():1:3:nan: ++%*3lF:NAN():0:3: ++%3lF:NAN(09A_Zaz):1:3:nan: ++%*3lF:NAN(09A_Zaz):0:3: ++%3lF:0:1:1:0x0: ++%*3lF:0:0:1: ++%3lF:0.0:1:3:0x0: ++%*3lF:0.0:0:3: ++%3lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lF:23441674165664682593913711430784253952:1:3:0x1.d4p+7: ++%*3lF:23441674165664682593913711430784253952:0:3: ++%3lF:023441674165664682593913711430784253952.0:1:3:0x1.7p+4: ++%*3lF:023441674165664682593913711430784253952.0:0:3: ++%3lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.66p+7: ++%*3lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1.1p4: ++%*3lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lF:INFINITY:1:3:inf: ++%*3lF:INFINITY:0:3: ++%3lF:+NAN():0:-1: ++%*3lF:+NAN():0:-1: ++%3lF:+NAN(09A_Zaz):0:-1: ++%*3lF:+NAN(09A_Zaz):0:-1: ++%3lF:+0:1:2:0x0: ++%*3lF:+0:0:2: ++%3lF:+0.0:1:3:0x0: ++%*3lF:+0.0:0:3: ++%3lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3lF:+23441674165664682593913711430784253952:1:3:0x1.7p+4: ++%*3lF:+23441674165664682593913711430784253952:0:3: ++%3lF:+023441674165664682593913711430784253952.0:1:3:0x1p1: ++%*3lF:+023441674165664682593913711430784253952.0:0:3: ++%3lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.1p4: ++%*3lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1: ++%*3lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3lF:+INFINITY:0:-1: ++%*3lF:+INFINITY:0:-1: ++%4lF::0:-1: ++%*4lF::0:-1: ++%4lF:-INFINITY:1:4:-inf: ++%*4lF:-INFINITY:0:4: ++%4lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1.1p4: ++%*4lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.66p+7: ++%*4lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lF:-023441674165664682593913711430784253952.0:1:4:-0x1.7p+4: ++%*4lF:-023441674165664682593913711430784253952.0:0:4: ++%4lF:-23441674165664682593913711430784253952:1:4:-0x1.d4p+7: ++%*4lF:-23441674165664682593913711430784253952:0:4: ++%4lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*4lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lF:-0.0:1:4:-0x0: ++%*4lF:-0.0:0:4: ++%4lF:-0:1:2:-0x0: ++%*4lF:-0:0:2: ++%4lF:-NAN(09A_Zaz):1:4:-nan: ++%*4lF:-NAN(09A_Zaz):0:4: ++%4lF:-NAN():1:4:-nan: ++%*4lF:-NAN():0:4: ++%4lF:NAN():0:-1: ++%*4lF:NAN():0:-1: ++%4lF:NAN(09A_Zaz):0:-1: ++%*4lF:NAN(09A_Zaz):0:-1: ++%4lF:0:1:1:0x0: ++%*4lF:0:0:1: ++%4lF:0.0:1:3:0x0: ++%*4lF:0.0:0:3: ++%4lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lF:23441674165664682593913711430784253952:1:4:0x1.25p11: ++%*4lF:23441674165664682593913711430784253952:0:4: ++%4lF:023441674165664682593913711430784253952.0:1:4:0x1.d4p+7: ++%*4lF:023441674165664682593913711430784253952.0:0:4: ++%4lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.c14p+10: ++%*4lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.66p+7: ++%*4lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lF:INFINITY:0:-1: ++%*4lF:INFINITY:0:-1: ++%4lF:+NAN():1:4:nan: ++%*4lF:+NAN():0:4: ++%4lF:+NAN(09A_Zaz):1:4:nan: ++%*4lF:+NAN(09A_Zaz):0:4: ++%4lF:+0:1:2:0x0: ++%*4lF:+0:0:2: ++%4lF:+0.0:1:4:0x0: ++%*4lF:+0.0:0:4: ++%4lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4lF:+23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*4lF:+23441674165664682593913711430784253952:0:4: ++%4lF:+023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*4lF:+023441674165664682593913711430784253952.0:0:4: ++%4lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*4lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*4lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4lF:+INFINITY:1:4:inf: ++%*4lF:+INFINITY:0:4: ++%311lF::0:-1: ++%*311lF::0:-1: ++%311lF:-INFINITY:1:9:-inf: ++%*311lF:-INFINITY:0:9: ++%311lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:-0x1.fffffffffffffp1023: ++%*311lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*311lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311lF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*311lF:-023441674165664682593913711430784253952.0:0:42: ++%311lF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*311lF:-23441674165664682593913711430784253952:0:39: ++%311lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:-0x1.cc359e067a348p-1023: ++%*311lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lF:-0.0:1:4:-0x0: ++%*311lF:-0.0:0:4: ++%311lF:-0:1:2:-0x0: ++%*311lF:-0:0:2: ++%311lF:-NAN(09A_Zaz):1:13:-nan: ++%*311lF:-NAN(09A_Zaz):0:13: ++%311lF:-NAN():1:6:-nan: ++%*311lF:-NAN():0:6: ++%311lF:NAN():1:5:nan: ++%*311lF:NAN():0:5: ++%311lF:NAN(09A_Zaz):1:12:nan: ++%*311lF:NAN(09A_Zaz):0:12: ++%311lF:0:1:1:0x0: ++%*311lF:0:0:1: ++%311lF:0.0:1:3:0x0: ++%*311lF:0.0:0:3: ++%311lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.fa3afaa0b9a04p-1023: ++%*311lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*311lF:23441674165664682593913711430784253952:0:38: ++%311lF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*311lF:023441674165664682593913711430784253952.0:0:41: ++%311lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*311lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%311lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lF:INFINITY:1:8:inf: ++%*311lF:INFINITY:0:8: ++%311lF:+NAN():1:6:nan: ++%*311lF:+NAN():0:6: ++%311lF:+NAN(09A_Zaz):1:13:nan: ++%*311lF:+NAN(09A_Zaz):0:13: ++%311lF:+0:1:2:0x0: ++%*311lF:+0:0:2: ++%311lF:+0.0:1:4:0x0: ++%*311lF:+0.0:0:4: ++%311lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.cc359e067a348p-1023: ++%*311lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311lF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*311lF:+23441674165664682593913711430784253952:0:39: ++%311lF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*311lF:+023441674165664682593913711430784253952.0:0:42: ++%311lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*311lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311lF:+INFINITY:1:9:inf: ++%*311lF:+INFINITY:0:9: ++%350lF::0:-1: ++%*350lF::0:-1: ++%350lF:-INFINITY:1:9:-inf: ++%*350lF:-INFINITY:0:9: ++%350lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*350lF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*350lF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*350lF:-023441674165664682593913711430784253952.0:0:42: ++%350lF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*350lF:-23441674165664682593913711430784253952:0:39: ++%350lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*350lF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lF:-0.0:1:4:-0x0: ++%*350lF:-0.0:0:4: ++%350lF:-0:1:2:-0x0: ++%*350lF:-0:0:2: ++%350lF:-NAN(09A_Zaz):1:13:-nan: ++%*350lF:-NAN(09A_Zaz):0:13: ++%350lF:-NAN():1:6:-nan: ++%*350lF:-NAN():0:6: ++%350lF:NAN():1:5:nan: ++%*350lF:NAN():0:5: ++%350lF:NAN(09A_Zaz):1:12:nan: ++%*350lF:NAN(09A_Zaz):0:12: ++%350lF:0:1:1:0x0: ++%*350lF:0:0:1: ++%350lF:0.0:1:3:0x0: ++%*350lF:0.0:0:3: ++%350lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*350lF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%350lF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*350lF:23441674165664682593913711430784253952:0:38: ++%350lF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*350lF:023441674165664682593913711430784253952.0:0:41: ++%350lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*350lF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%350lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*350lF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%350lF:INFINITY:1:8:inf: ++%*350lF:INFINITY:0:8: ++%350lF:+NAN():1:6:nan: ++%*350lF:+NAN():0:6: ++%350lF:+NAN(09A_Zaz):1:13:nan: ++%*350lF:+NAN(09A_Zaz):0:13: ++%350lF:+0:1:2:0x0: ++%*350lF:+0:0:2: ++%350lF:+0.0:1:4:0x0: ++%*350lF:+0.0:0:4: ++%350lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350lF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350lF:+23441674165664682593913711430784253952:0:39: ++%350lF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350lF:+023441674165664682593913711430784253952.0:0:42: ++%350lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350lF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350lF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lF:+INFINITY:1:9:inf: ++%*350lF:+INFINITY:0:9: ++%3lF: :0:-1: ++%*3lF: :0:-1: ++%3lF: -INFINITY:0:-1: ++%*3lF: -INFINITY:0:-1: ++%3lF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1: ++%*3lF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.1p+4: ++%*3lF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lF: -023441674165664682593913711430784253952.0:1:4:-0x1p1: ++%*3lF: -023441674165664682593913711430784253952.0:0:4: ++%3lF: -23441674165664682593913711430784253952:1:4:-0x1.7p+4: ++%*3lF: -23441674165664682593913711430784253952:0:4: ++%3lF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*3lF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lF: -0.0:1:4:-0x0: ++%*3lF: -0.0:0:4: ++%3lF: -0:1:3:-0x0: ++%*3lF: -0:0:3: ++%3lF: -NAN(09A_Zaz):0:-1: ++%*3lF: -NAN(09A_Zaz):0:-1: ++%3lF: -NAN():0:-1: ++%*3lF: -NAN():0:-1: ++%3lF: NAN():1:4:nan: ++%*3lF: NAN():0:4: ++%3lF: NAN(09A_Zaz):1:4:nan: ++%*3lF: NAN(09A_Zaz):0:4: ++%3lF: 0:1:2:0x0: ++%*3lF: 0:0:2: ++%3lF: 0.0:1:4:0x0: ++%*3lF: 0.0:0:4: ++%3lF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3lF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lF: 23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*3lF: 23441674165664682593913711430784253952:0:4: ++%3lF: 023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*3lF: 023441674165664682593913711430784253952.0:0:4: ++%3lF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*3lF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*3lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lF: INFINITY:1:4:inf: ++%*3lF: INFINITY:0:4: ++%3lF: +NAN():0:-1: ++%*3lF: +NAN():0:-1: ++%3lF: +NAN(09A_Zaz):0:-1: ++%*3lF: +NAN(09A_Zaz):0:-1: ++%3lF: +0:1:3:0x0: ++%*3lF: +0:0:3: ++%3lF: +0.0:1:4:0x0: ++%*3lF: +0.0:0:4: ++%3lF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3lF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3lF: +23441674165664682593913711430784253952:1:4:0x1.7p+4: ++%*3lF: +23441674165664682593913711430784253952:0:4: ++%3lF: +023441674165664682593913711430784253952.0:1:4:0x1p1: ++%*3lF: +023441674165664682593913711430784253952.0:0:4: ++%3lF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.1p4: ++%*3lF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3lF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1: ++%*3lF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3lF: +INFINITY:0:-1: ++%*3lF: +INFINITY:0:-1: ++%350lF: :0:-1: ++%*350lF: :0:-1: ++%350lF: -INFINITY:1:10:-inf: ++%*350lF: -INFINITY:0:10: ++%350lF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:-0x1.fffffffffffffp1023: ++%*350lF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350lF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:-0x1.fffffffffffffp1023: ++%*350lF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350lF: -023441674165664682593913711430784253952.0:1:43:-0x1.1a2b3c4d5e6ffp124: ++%*350lF: -023441674165664682593913711430784253952.0:0:43: ++%350lF: -23441674165664682593913711430784253952:1:40:-0x1.1a2b3c4d5e6ffp124: ++%*350lF: -23441674165664682593913711430784253952:0:40: ++%350lF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:-0x1p-1022: ++%*350lF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350lF: -0.0:1:5:-0x0: ++%*350lF: -0.0:0:5: ++%350lF: -0:1:3:-0x0: ++%*350lF: -0:0:3: ++%350lF: -NAN(09A_Zaz):1:14:-nan: ++%*350lF: -NAN(09A_Zaz):0:14: ++%350lF: -NAN():1:7:-nan: ++%*350lF: -NAN():0:7: ++%350lF: NAN():1:6:nan: ++%*350lF: NAN():0:6: ++%350lF: NAN(09A_Zaz):1:13:nan: ++%*350lF: NAN(09A_Zaz):0:13: ++%350lF: 0:1:2:0x0: ++%*350lF: 0:0:2: ++%350lF: 0.0:1:4:0x0: ++%*350lF: 0.0:0:4: ++%350lF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350lF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350lF: 23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350lF: 23441674165664682593913711430784253952:0:39: ++%350lF: 023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350lF: 023441674165664682593913711430784253952.0:0:42: ++%350lF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350lF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350lF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350lF: INFINITY:1:9:inf: ++%*350lF: INFINITY:0:9: ++%350lF: +NAN():1:7:nan: ++%*350lF: +NAN():0:7: ++%350lF: +NAN(09A_Zaz):1:14:nan: ++%*350lF: +NAN(09A_Zaz):0:14: ++%350lF: +0:1:3:0x0: ++%*350lF: +0:0:3: ++%350lF: +0.0:1:5:0x0: ++%*350lF: +0.0:0:5: ++%350lF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:0x1p-1022: ++%*350lF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350lF: +23441674165664682593913711430784253952:1:40:0x1.1a2b3c4d5e6ffp124: ++%*350lF: +23441674165664682593913711430784253952:0:40: ++%350lF: +023441674165664682593913711430784253952.0:1:43:0x1.1a2b3c4d5e6ffp124: ++%*350lF: +023441674165664682593913711430784253952.0:0:43: ++%350lF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:0x1.fffffffffffffp1023: ++%*350lF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350lF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:0x1.fffffffffffffp1023: ++%*350lF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350lF: +INFINITY:1:10:inf: ++%*350lF: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input +new file mode 100644 +index 0000000000000000..d499303451083898 +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-g.input +@@ -0,0 +1,682 @@ ++%lg::0:-1: ++%*lg::0:-1: ++%lg:-infinity:1:9:-inf: ++%*lg:-infinity:0:9: ++%lg:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*lg:-0xf.ffffffffffff8p+1020:0:24: ++%lg:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*lg:-0x7.ffffffffffffcp1021:0:23: ++%lg:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lg:-0x2.3456789abcdfep+123:0:23: ++%lg:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lg:-0x2.3456789abcdfep0123:0:23: ++%lg:-0x8p-1025:1:10:-0x1p-1022: ++%*lg:-0x8p-1025:0:10: ++%lg:-0x0p+0:1:7:-0x0: ++%*lg:-0x0p+0:0:7: ++%lg:-0x0p0:1:6:-0x0: ++%*lg:-0x0p0:0:6: ++%lg:-nan(09A_Zaz):1:13:-nan: ++%*lg:-nan(09A_Zaz):0:13: ++%lg:-nan():1:6:-nan: ++%*lg:-nan():0:6: ++%lg:nan():1:5:nan: ++%*lg:nan():0:5: ++%lg:nan(09A_Zaz):1:12:nan: ++%*lg:nan(09A_Zaz):0:12: ++%lg:0x0p0:1:5:0x0: ++%*lg:0x0p0:0:5: ++%lg:0x0p+0:1:6:0x0: ++%*lg:0x0p+0:0:6: ++%lg:0x8p-1025:1:9:0x1p-1022: ++%*lg:0x8p-1025:0:9: ++%lg:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lg:0x2.3456789abcdfep0123:0:22: ++%lg:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lg:0x2.3456789abcdfep+123:0:22: ++%lg:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*lg:0x7.ffffffffffffcp1021:0:22: ++%lg:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*lg:0xf.ffffffffffff8p+1020:0:23: ++%lg:infinity:1:8:inf: ++%*lg:infinity:0:8: ++%lg:+nan():1:6:nan: ++%*lg:+nan():0:6: ++%lg:+nan(09A_Zaz):1:13:nan: ++%*lg:+nan(09A_Zaz):0:13: ++%lg:+0x0p0:1:6:0x0: ++%*lg:+0x0p0:0:6: ++%lg:+0x0p+0:1:7:0x0: ++%*lg:+0x0p+0:0:7: ++%lg:+0x8p-1025:1:10:0x1p-1022: ++%*lg:+0x8p-1025:0:10: ++%lg:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lg:+0x2.3456789abcdfep0123:0:23: ++%lg:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lg:+0x2.3456789abcdfep+123:0:23: ++%lg:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*lg:+0x7.ffffffffffffcp1021:0:23: ++%lg:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*lg:+0xf.ffffffffffff8p+1020:0:24: ++%lg:+infinity:1:9:inf: ++%*lg:+infinity:0:9: ++%1lg::0:-1: ++%*1lg::0:-1: ++%1lg:-infinity:0:-1: ++%*1lg:-infinity:0:-1: ++%1lg:-0xf.ffffffffffff8p+1020:0:-1: ++%*1lg:-0xf.ffffffffffff8p+1020:0:-1: ++%1lg:-0x7.ffffffffffffcp1021:0:-1: ++%*1lg:-0x7.ffffffffffffcp1021:0:-1: ++%1lg:-0x2.3456789abcdfep+123:0:-1: ++%*1lg:-0x2.3456789abcdfep+123:0:-1: ++%1lg:-0x2.3456789abcdfep0123:0:-1: ++%*1lg:-0x2.3456789abcdfep0123:0:-1: ++%1lg:-0x8p-1025:0:-1: ++%*1lg:-0x8p-1025:0:-1: ++%1lg:-0x0p+0:0:-1: ++%*1lg:-0x0p+0:0:-1: ++%1lg:-0x0p0:0:-1: ++%*1lg:-0x0p0:0:-1: ++%1lg:-nan(09A_Zaz):0:-1: ++%*1lg:-nan(09A_Zaz):0:-1: ++%1lg:-nan():0:-1: ++%*1lg:-nan():0:-1: ++%1lg:nan():0:-1: ++%*1lg:nan():0:-1: ++%1lg:nan(09A_Zaz):0:-1: ++%*1lg:nan(09A_Zaz):0:-1: ++%1lg:0x0p0:1:1:0x0: ++%*1lg:0x0p0:0:1: ++%1lg:0x0p+0:1:1:0x0: ++%*1lg:0x0p+0:0:1: ++%1lg:0x8p-1025:1:1:0x0: ++%*1lg:0x8p-1025:0:1: ++%1lg:0x2.3456789abcdfep0123:1:1:0x0: ++%*1lg:0x2.3456789abcdfep0123:0:1: ++%1lg:0x2.3456789abcdfep+123:1:1:0x0: ++%*1lg:0x2.3456789abcdfep+123:0:1: ++%1lg:0x7.ffffffffffffcp1021:1:1:0x0: ++%*1lg:0x7.ffffffffffffcp1021:0:1: ++%1lg:0xf.ffffffffffff8p+1020:1:1:0x0: ++%*1lg:0xf.ffffffffffff8p+1020:0:1: ++%1lg:infinity:0:-1: ++%*1lg:infinity:0:-1: ++%1lg:+nan():0:-1: ++%*1lg:+nan():0:-1: ++%1lg:+nan(09A_Zaz):0:-1: ++%*1lg:+nan(09A_Zaz):0:-1: ++%1lg:+0x0p0:0:-1: ++%*1lg:+0x0p0:0:-1: ++%1lg:+0x0p+0:0:-1: ++%*1lg:+0x0p+0:0:-1: ++%1lg:+0x8p-1025:0:-1: ++%*1lg:+0x8p-1025:0:-1: ++%1lg:+0x2.3456789abcdfep0123:0:-1: ++%*1lg:+0x2.3456789abcdfep0123:0:-1: ++%1lg:+0x2.3456789abcdfep+123:0:-1: ++%*1lg:+0x2.3456789abcdfep+123:0:-1: ++%1lg:+0x7.ffffffffffffcp1021:0:-1: ++%*1lg:+0x7.ffffffffffffcp1021:0:-1: ++%1lg:+0xf.ffffffffffff8p+1020:0:-1: ++%*1lg:+0xf.ffffffffffff8p+1020:0:-1: ++%1lg:+infinity:0:-1: ++%*1lg:+infinity:0:-1: ++%2lg::0:-1: ++%*2lg::0:-1: ++%2lg:-infinity:0:-1: ++%*2lg:-infinity:0:-1: ++%2lg:-0xf.ffffffffffff8p+1020:1:2:-0x0: ++%*2lg:-0xf.ffffffffffff8p+1020:0:2: ++%2lg:-0x7.ffffffffffffcp1021:1:2:-0x0: ++%*2lg:-0x7.ffffffffffffcp1021:0:2: ++%2lg:-0x2.3456789abcdfep+123:1:2:-0x0: ++%*2lg:-0x2.3456789abcdfep+123:0:2: ++%2lg:-0x2.3456789abcdfep0123:1:2:-0x0: ++%*2lg:-0x2.3456789abcdfep0123:0:2: ++%2lg:-0x8p-1025:1:2:-0x0: ++%*2lg:-0x8p-1025:0:2: ++%2lg:-0x0p+0:1:2:-0x0: ++%*2lg:-0x0p+0:0:2: ++%2lg:-0x0p0:1:2:-0x0: ++%*2lg:-0x0p0:0:2: ++%2lg:-nan(09A_Zaz):0:-1: ++%*2lg:-nan(09A_Zaz):0:-1: ++%2lg:-nan():0:-1: ++%*2lg:-nan():0:-1: ++%2lg:nan():0:-1: ++%*2lg:nan():0:-1: ++%2lg:nan(09A_Zaz):0:-1: ++%*2lg:nan(09A_Zaz):0:-1: ++# BZ12701 %2lg:0x0p0:0:-1: ++# BZ12701 %*2lg:0x0p0:0:-1: ++# BZ12701 %2lg:0x0p+0:0:-1: ++# BZ12701 %*2lg:0x0p+0:0:-1: ++# BZ12701 %2lg:0x8p-1025:0:-1: ++# BZ12701 %*2lg:0x8p-1025:0:-1: ++# BZ12701 %2lg:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*2lg:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %2lg:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*2lg:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %2lg:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*2lg:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %2lg:0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*2lg:0xf.ffffffffffff8p+1020:0:-1: ++%2lg:infinity:0:-1: ++%*2lg:infinity:0:-1: ++%2lg:+nan():0:-1: ++%*2lg:+nan():0:-1: ++%2lg:+nan(09A_Zaz):0:-1: ++%*2lg:+nan(09A_Zaz):0:-1: ++%2lg:+0x0p0:1:2:0x0: ++%*2lg:+0x0p0:0:2: ++%2lg:+0x0p+0:1:2:0x0: ++%*2lg:+0x0p+0:0:2: ++%2lg:+0x8p-1025:1:2:0x0: ++%*2lg:+0x8p-1025:0:2: ++%2lg:+0x2.3456789abcdfep0123:1:2:0x0: ++%*2lg:+0x2.3456789abcdfep0123:0:2: ++%2lg:+0x2.3456789abcdfep+123:1:2:0x0: ++%*2lg:+0x2.3456789abcdfep+123:0:2: ++%2lg:+0x7.ffffffffffffcp1021:1:2:0x0: ++%*2lg:+0x7.ffffffffffffcp1021:0:2: ++%2lg:+0xf.ffffffffffff8p+1020:1:2:0x0: ++%*2lg:+0xf.ffffffffffff8p+1020:0:2: ++%2lg:+infinity:0:-1: ++%*2lg:+infinity:0:-1: ++%3lg::0:-1: ++%*3lg::0:-1: ++%3lg:-infinity:0:-1: ++%*3lg:-infinity:0:-1: ++# BZ12701 %3lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %3lg:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3lg:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3lg:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3lg:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3lg:-0x8p-1025:0:-1: ++# BZ12701 %*3lg:-0x8p-1025:0:-1: ++# BZ12701 %3lg:-0x0p+0:0:-1: ++# BZ12701 %*3lg:-0x0p+0:0:-1: ++# BZ12701 %3lg:-0x0p0:0:-1: ++# BZ12701 %*3lg:-0x0p0:0:-1: ++%3lg:-nan(09A_Zaz):0:-1: ++%*3lg:-nan(09A_Zaz):0:-1: ++%3lg:-nan():0:-1: ++%*3lg:-nan():0:-1: ++%3lg:nan():1:3:nan: ++%*3lg:nan():0:3: ++%3lg:nan(09A_Zaz):1:3:nan: ++%*3lg:nan(09A_Zaz):0:3: ++%3lg:0x0p0:1:3:0x0: ++%*3lg:0x0p0:0:3: ++%3lg:0x0p+0:1:3:0x0: ++%*3lg:0x0p+0:0:3: ++%3lg:0x8p-1025:1:3:0x1p3: ++%*3lg:0x8p-1025:0:3: ++%3lg:0x2.3456789abcdfep0123:1:3:0x1p1: ++%*3lg:0x2.3456789abcdfep0123:0:3: ++%3lg:0x2.3456789abcdfep+123:1:3:0x1p1: ++%*3lg:0x2.3456789abcdfep+123:0:3: ++%3lg:0x7.ffffffffffffcp1021:1:3:0x1.cp2: ++%*3lg:0x7.ffffffffffffcp1021:0:3: ++%3lg:0xf.ffffffffffff8p+1020:1:3:0x1.ep3: ++%*3lg:0xf.ffffffffffff8p+1020:0:3: ++%3lg:infinity:1:3:inf: ++%*3lg:infinity:0:3: ++%3lg:+nan():0:-1: ++%*3lg:+nan():0:-1: ++%3lg:+nan(09A_Zaz):0:-1: ++%*3lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %3lg:+0x0p0:0:-1: ++# BZ12701 %*3lg:+0x0p0:0:-1: ++# BZ12701 %3lg:+0x0p+0:0:-1: ++# BZ12701 %*3lg:+0x0p+0:0:-1: ++# BZ12701 %3lg:+0x8p-1025:0:-1: ++# BZ12701 %*3lg:+0x8p-1025:0:-1: ++# BZ12701 %3lg:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3lg:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3lg:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3lg:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3lg:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3lg:+0xf.ffffffffffff8p+1020:0:-1: ++%3lg:+infinity:0:-1: ++%*3lg:+infinity:0:-1: ++%4lg::0:-1: ++%*4lg::0:-1: ++%4lg:-infinity:1:4:-inf: ++%*4lg:-infinity:0:4: ++%4lg:-0xf.ffffffffffff8p+1020:1:4:-0x1.ep3: ++%*4lg:-0xf.ffffffffffff8p+1020:0:4: ++%4lg:-0x7.ffffffffffffcp1021:1:4:-0x1.cp2: ++%*4lg:-0x7.ffffffffffffcp1021:0:4: ++%4lg:-0x2.3456789abcdfep+123:1:4:-0x1p1: ++%*4lg:-0x2.3456789abcdfep+123:0:4: ++%4lg:-0x2.3456789abcdfep0123:1:4:-0x1p1: ++%*4lg:-0x2.3456789abcdfep0123:0:4: ++%4lg:-0x8p-1025:1:4:-0x1p3: ++%*4lg:-0x8p-1025:0:4: ++%4lg:-0x0p+0:1:4:-0x0: ++%*4lg:-0x0p+0:0:4: ++%4lg:-0x0p0:1:4:-0x0: ++%*4lg:-0x0p0:0:4: ++%4lg:-nan(09A_Zaz):1:4:-nan: ++%*4lg:-nan(09A_Zaz):0:4: ++%4lg:-nan():1:4:-nan: ++%*4lg:-nan():0:4: ++%4lg:nan():0:-1: ++%*4lg:nan():0:-1: ++%4lg:nan(09A_Zaz):0:-1: ++%*4lg:nan(09A_Zaz):0:-1: ++# BZ12701 %4lg:0x0p0:0:-1: ++# BZ12701 %*4lg:0x0p0:0:-1: ++# BZ12701 %4lg:0x0p+0:0:-1: ++# BZ12701 %*4lg:0x0p+0:0:-1: ++# BZ12701 %4lg:0x8p-1025:0:-1: ++# BZ12701 %*4lg:0x8p-1025:0:-1: ++%4lg:0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4lg:0x2.3456789abcdfep0123:0:4: ++%4lg:0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4lg:0x2.3456789abcdfep+123:0:4: ++%4lg:0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4lg:0x7.ffffffffffffcp1021:0:4: ++%4lg:0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4lg:0xf.ffffffffffff8p+1020:0:4: ++%4lg:infinity:0:-1: ++%*4lg:infinity:0:-1: ++%4lg:+nan():1:4:nan: ++%*4lg:+nan():0:4: ++%4lg:+nan(09A_Zaz):1:4:nan: ++%*4lg:+nan(09A_Zaz):0:4: ++%4lg:+0x0p0:1:4:0x0: ++%*4lg:+0x0p0:0:4: ++%4lg:+0x0p+0:1:4:0x0: ++%*4lg:+0x0p+0:0:4: ++%4lg:+0x8p-1025:1:4:0x1p3: ++%*4lg:+0x8p-1025:0:4: ++%4lg:+0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4lg:+0x2.3456789abcdfep0123:0:4: ++%4lg:+0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4lg:+0x2.3456789abcdfep+123:0:4: ++%4lg:+0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4lg:+0x7.ffffffffffffcp1021:0:4: ++%4lg:+0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4lg:+0xf.ffffffffffff8p+1020:0:4: ++%4lg:+infinity:1:4:inf: ++%*4lg:+infinity:0:4: ++%5lg::0:-1: ++%*5lg::0:-1: ++%5lg:-infinity:0:-1: ++%*5lg:-infinity:0:-1: ++%5lg:-0xf.ffffffffffff8p+1020:1:5:-0x1.ep3: ++%*5lg:-0xf.ffffffffffff8p+1020:0:5: ++%5lg:-0x7.ffffffffffffcp1021:1:5:-0x1.cp2: ++%*5lg:-0x7.ffffffffffffcp1021:0:5: ++%5lg:-0x2.3456789abcdfep+123:1:5:-0x1p1: ++%*5lg:-0x2.3456789abcdfep+123:0:5: ++%5lg:-0x2.3456789abcdfep0123:1:5:-0x1p1: ++%*5lg:-0x2.3456789abcdfep0123:0:5: ++# BZ12701 %5lg:-0x8p-1025:0:-1: ++# BZ12701 %*5lg:-0x8p-1025:0:-1: ++# BZ12701 %5lg:-0x0p+0:0:-1: ++# BZ12701 %*5lg:-0x0p+0:0:-1: ++# BZ12701 %5lg:-0x0p0:0:-1: ++# BZ12701 %*5lg:-0x0p0:0:-1: ++%5lg:-nan(09A_Zaz):0:-1: ++%*5lg:-nan(09A_Zaz):0:-1: ++%5lg:-nan():0:-1: ++%*5lg:-nan():0:-1: ++%5lg:nan():1:5:nan: ++%*5lg:nan():0:5: ++%5lg:nan(09A_Zaz):0:-1: ++%*5lg:nan(09A_Zaz):0:-1: ++%5lg:0x0p0:1:5:0x0: ++%*5lg:0x0p0:0:5: ++# BZ12701 %5lg:0x0p+0:0:-1: ++# BZ12701 %*5lg:0x0p+0:0:-1: ++# BZ12701 %5lg:0x8p-1025:0:-1: ++# BZ12701 %*5lg:0x8p-1025:0:-1: ++%5lg:0x2.3456789abcdfep0123:1:5:0x1.18p1: ++%*5lg:0x2.3456789abcdfep0123:0:5: ++%5lg:0x2.3456789abcdfep+123:1:5:0x1.18p1: ++%*5lg:0x2.3456789abcdfep+123:0:5: ++%5lg:0x7.ffffffffffffcp1021:1:5:0x1.fcp2: ++%*5lg:0x7.ffffffffffffcp1021:0:5: ++%5lg:0xf.ffffffffffff8p+1020:1:5:0x1.fep3: ++%*5lg:0xf.ffffffffffff8p+1020:0:5: ++%5lg:infinity:0:-1: ++%*5lg:infinity:0:-1: ++%5lg:+nan():0:-1: ++%*5lg:+nan():0:-1: ++%5lg:+nan(09A_Zaz):0:-1: ++%*5lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %5lg:+0x0p0:0:-1: ++# BZ12701 %*5lg:+0x0p0:0:-1: ++# BZ12701 %5lg:+0x0p+0:0:-1: ++# BZ12701 %*5lg:+0x0p+0:0:-1: ++# BZ12701 %5lg:+0x8p-1025:0:-1: ++# BZ12701 %*5lg:+0x8p-1025:0:-1: ++%5lg:+0x2.3456789abcdfep0123:1:5:0x1p1: ++%*5lg:+0x2.3456789abcdfep0123:0:5: ++%5lg:+0x2.3456789abcdfep+123:1:5:0x1p1: ++%*5lg:+0x2.3456789abcdfep+123:0:5: ++%5lg:+0x7.ffffffffffffcp1021:1:5:0x1.cp2: ++%*5lg:+0x7.ffffffffffffcp1021:0:5: ++%5lg:+0xf.ffffffffffff8p+1020:1:5:0x1.ep3: ++%*5lg:+0xf.ffffffffffff8p+1020:0:5: ++%5lg:+infinity:0:-1: ++%*5lg:+infinity:0:-1: ++%6lg::0:-1: ++%*6lg::0:-1: ++%6lg:-infinity:0:-1: ++%*6lg:-infinity:0:-1: ++%6lg:-0xf.ffffffffffff8p+1020:1:6:-0x1.fep3: ++%*6lg:-0xf.ffffffffffff8p+1020:0:6: ++%6lg:-0x7.ffffffffffffcp1021:1:6:-0x1.fcp2: ++%*6lg:-0x7.ffffffffffffcp1021:0:6: ++%6lg:-0x2.3456789abcdfep+123:1:6:-0x1.18p1: ++%*6lg:-0x2.3456789abcdfep+123:0:6: ++%6lg:-0x2.3456789abcdfep0123:1:6:-0x1.18p1: ++%*6lg:-0x2.3456789abcdfep0123:0:6: ++# BZ12701 %6lg:-0x8p-1025:0:-1: ++# BZ12701 %*6lg:-0x8p-1025:0:-1: ++# BZ12701 %6lg:-0x0p+0:0:-1: ++# BZ12701 %*6lg:-0x0p+0:0:-1: ++%6lg:-0x0p0:1:6:-0x0: ++%*6lg:-0x0p0:0:6: ++%6lg:-nan(09A_Zaz):0:-1: ++%*6lg:-nan(09A_Zaz):0:-1: ++%6lg:-nan():1:6:-nan: ++%*6lg:-nan():0:6: ++%6lg:nan():1:5:nan: ++%*6lg:nan():0:5: ++%6lg:nan(09A_Zaz):0:-1: ++%*6lg:nan(09A_Zaz):0:-1: ++%6lg:0x0p0:1:5:0x0: ++%*6lg:0x0p0:0:5: ++%6lg:0x0p+0:1:6:0x0: ++%*6lg:0x0p+0:0:6: ++%6lg:0x8p-1025:1:6:0x1p2: ++%*6lg:0x8p-1025:0:6: ++%6lg:0x2.3456789abcdfep0123:1:6:0x1.1ap1: ++%*6lg:0x2.3456789abcdfep0123:0:6: ++%6lg:0x2.3456789abcdfep+123:1:6:0x1.1ap1: ++%*6lg:0x2.3456789abcdfep+123:0:6: ++%6lg:0x7.ffffffffffffcp1021:1:6:0x1.ffcp2: ++%*6lg:0x7.ffffffffffffcp1021:0:6: ++%6lg:0xf.ffffffffffff8p+1020:1:6:0x1.ffep3: ++%*6lg:0xf.ffffffffffff8p+1020:0:6: ++%6lg:infinity:0:-1: ++%*6lg:infinity:0:-1: ++%6lg:+nan():1:6:nan: ++%*6lg:+nan():0:6: ++%6lg:+nan(09A_Zaz):0:-1: ++%*6lg:+nan(09A_Zaz):0:-1: ++%6lg:+0x0p0:1:6:0x0: ++%*6lg:+0x0p0:0:6: ++# BZ12701 %6lg:+0x0p+0:0:-1: ++# BZ12701 %*6lg:+0x0p+0:0:-1: ++# BZ12701 %6lg:+0x8p-1025:0:-1: ++# BZ12701 %*6lg:+0x8p-1025:0:-1: ++%6lg:+0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*6lg:+0x2.3456789abcdfep0123:0:6: ++%6lg:+0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*6lg:+0x2.3456789abcdfep+123:0:6: ++%6lg:+0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*6lg:+0x7.ffffffffffffcp1021:0:6: ++%6lg:+0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*6lg:+0xf.ffffffffffff8p+1020:0:6: ++%6lg:+infinity:0:-1: ++%*6lg:+infinity:0:-1: ++%20lg::0:-1: ++%*20lg::0:-1: ++%20lg:-infinity:1:9:-inf: ++%*20lg:-infinity:0:9: ++# BZ12701 %20lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20lg:-0xf.ffffffffffff8p+1020:0:-1: ++%20lg:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3: ++%*20lg:-0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20lg:-0x2.3456789abcdfep+123:0:-1: ++%20lg:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20lg:-0x2.3456789abcdfep0123:0:20: ++%20lg:-0x8p-1025:1:10:-0x1p-1022: ++%*20lg:-0x8p-1025:0:10: ++%20lg:-0x0p+0:1:7:-0x0: ++%*20lg:-0x0p+0:0:7: ++%20lg:-0x0p0:1:6:-0x0: ++%*20lg:-0x0p0:0:6: ++%20lg:-nan(09A_Zaz):1:13:-nan: ++%*20lg:-nan(09A_Zaz):0:13: ++%20lg:-nan():1:6:-nan: ++%*20lg:-nan():0:6: ++%20lg:nan():1:5:nan: ++%*20lg:nan():0:5: ++%20lg:nan(09A_Zaz):1:12:nan: ++%*20lg:nan(09A_Zaz):0:12: ++%20lg:0x0p0:1:5:0x0: ++%*20lg:0x0p0:0:5: ++%20lg:0x0p+0:1:6:0x0: ++%*20lg:0x0p+0:0:6: ++%20lg:0x8p-1025:1:9:0x1p-1022: ++%*20lg:0x8p-1025:0:9: ++%20lg:0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lg:0x2.3456789abcdfep0123:0:20: ++%20lg:0x2.3456789abcdfep+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lg:0x2.3456789abcdfep+123:0:20: ++%20lg:0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp12: ++%*20lg:0x7.ffffffffffffcp1021:0:20: ++%20lg:0xf.ffffffffffff8p+1020:1:20:0x1.fffffffffffffp4: ++%*20lg:0xf.ffffffffffff8p+1020:0:20: ++%20lg:infinity:1:8:inf: ++%*20lg:infinity:0:8: ++%20lg:+nan():1:6:nan: ++%*20lg:+nan():0:6: ++%20lg:+nan(09A_Zaz):1:13:nan: ++%*20lg:+nan(09A_Zaz):0:13: ++%20lg:+0x0p0:1:6:0x0: ++%*20lg:+0x0p0:0:6: ++%20lg:+0x0p+0:1:7:0x0: ++%*20lg:+0x0p+0:0:7: ++%20lg:+0x8p-1025:1:10:0x1p-1022: ++%*20lg:+0x8p-1025:0:10: ++%20lg:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20lg:+0x2.3456789abcdfep0123:0:20: ++# BZ12701 %20lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20lg:+0x2.3456789abcdfep+123:0:-1: ++%20lg:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3: ++%*20lg:+0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20lg:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20lg:+0xf.ffffffffffff8p+1020:0:-1: ++%20lg:+infinity:1:9:inf: ++%*20lg:+infinity:0:9: ++%32lg::0:-1: ++%*32lg::0:-1: ++%32lg:-infinity:1:9:-inf: ++%*32lg:-infinity:0:9: ++%32lg:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*32lg:-0xf.ffffffffffff8p+1020:0:24: ++%32lg:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*32lg:-0x7.ffffffffffffcp1021:0:23: ++%32lg:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lg:-0x2.3456789abcdfep+123:0:23: ++%32lg:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lg:-0x2.3456789abcdfep0123:0:23: ++%32lg:-0x8p-1025:1:10:-0x1p-1022: ++%*32lg:-0x8p-1025:0:10: ++%32lg:-0x0p+0:1:7:-0x0: ++%*32lg:-0x0p+0:0:7: ++%32lg:-0x0p0:1:6:-0x0: ++%*32lg:-0x0p0:0:6: ++%32lg:-nan(09A_Zaz):1:13:-nan: ++%*32lg:-nan(09A_Zaz):0:13: ++%32lg:-nan():1:6:-nan: ++%*32lg:-nan():0:6: ++%32lg:nan():1:5:nan: ++%*32lg:nan():0:5: ++%32lg:nan(09A_Zaz):1:12:nan: ++%*32lg:nan(09A_Zaz):0:12: ++%32lg:0x0p0:1:5:0x0: ++%*32lg:0x0p0:0:5: ++%32lg:0x0p+0:1:6:0x0: ++%*32lg:0x0p+0:0:6: ++%32lg:0x8p-1025:1:9:0x1p-1022: ++%*32lg:0x8p-1025:0:9: ++%32lg:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lg:0x2.3456789abcdfep0123:0:22: ++%32lg:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lg:0x2.3456789abcdfep+123:0:22: ++%32lg:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*32lg:0x7.ffffffffffffcp1021:0:22: ++%32lg:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*32lg:0xf.ffffffffffff8p+1020:0:23: ++%32lg:infinity:1:8:inf: ++%*32lg:infinity:0:8: ++%32lg:+nan():1:6:nan: ++%*32lg:+nan():0:6: ++%32lg:+nan(09A_Zaz):1:13:nan: ++%*32lg:+nan(09A_Zaz):0:13: ++%32lg:+0x0p0:1:6:0x0: ++%*32lg:+0x0p0:0:6: ++%32lg:+0x0p+0:1:7:0x0: ++%*32lg:+0x0p+0:0:7: ++%32lg:+0x8p-1025:1:10:0x1p-1022: ++%*32lg:+0x8p-1025:0:10: ++%32lg:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lg:+0x2.3456789abcdfep0123:0:23: ++%32lg:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lg:+0x2.3456789abcdfep+123:0:23: ++%32lg:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32lg:+0x7.ffffffffffffcp1021:0:23: ++%32lg:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32lg:+0xf.ffffffffffff8p+1020:0:24: ++%32lg:+infinity:1:9:inf: ++%*32lg:+infinity:0:9: ++%5lg: :0:-1: ++%*5lg: :0:-1: ++%5lg: -infinity:0:-1: ++%*5lg: -infinity:0:-1: ++%5lg: -0xf.ffffffffffff8p+1020:1:6:-0x1.ep3: ++%*5lg: -0xf.ffffffffffff8p+1020:0:6: ++%5lg: -0x7.ffffffffffffcp1021:1:6:-0x1.cp2: ++%*5lg: -0x7.ffffffffffffcp1021:0:6: ++%5lg: -0x2.3456789abcdfep+123:1:6:-0x1p1: ++%*5lg: -0x2.3456789abcdfep+123:0:6: ++%5lg: -0x2.3456789abcdfep0123:1:6:-0x1p1: ++%*5lg: -0x2.3456789abcdfep0123:0:6: ++# BZ12701 %5lg: -0x8p-1025:0:-1: ++# BZ12701 %*5lg: -0x8p-1025:0:-1: ++# BZ12701 %5lg: -0x0p+0:0:-1: ++# BZ12701 %*5lg: -0x0p+0:0:-1: ++# BZ12701 %5lg: -0x0p0:0:-1: ++# BZ12701 %*5lg: -0x0p0:0:-1: ++%5lg: -nan(09A_Zaz):0:-1: ++%*5lg: -nan(09A_Zaz):0:-1: ++%5lg: -nan():0:-1: ++%*5lg: -nan():0:-1: ++%5lg: nan():1:6:nan: ++%*5lg: nan():0:6: ++%5lg: nan(09A_Zaz):0:-1: ++%*5lg: nan(09A_Zaz):0:-1: ++%5lg: 0x0p0:1:6:0x0: ++%*5lg: 0x0p0:0:6: ++# BZ12701 %5lg: 0x0p+0:0:-1: ++# BZ12701 %*5lg: 0x0p+0:0:-1: ++# BZ12701 %5lg: 0x8p-1025:0:-1: ++# BZ12701 %*5lg: 0x8p-1025:0:-1: ++%5lg: 0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*5lg: 0x2.3456789abcdfep0123:0:6: ++%5lg: 0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*5lg: 0x2.3456789abcdfep+123:0:6: ++%5lg: 0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*5lg: 0x7.ffffffffffffcp1021:0:6: ++%5lg: 0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*5lg: 0xf.ffffffffffff8p+1020:0:6: ++%5lg: infinity:0:-1: ++%*5lg: infinity:0:-1: ++%5lg: +nan():0:-1: ++%*5lg: +nan():0:-1: ++%5lg: +nan(09A_Zaz):0:-1: ++%*5lg: +nan(09A_Zaz):0:-1: ++# BZ12701 %5lg: +0x0p0:0:-1: ++# BZ12701 %*5lg: +0x0p0:0:-1: ++# BZ12701 %5lg: +0x0p+0:0:-1: ++# BZ12701 %*5lg: +0x0p+0:0:-1: ++# BZ12701 %5lg: +0x8p-1025:0:-1: ++# BZ12701 %*5lg: +0x8p-1025:0:-1: ++%5lg: +0x2.3456789abcdfep0123:1:6:0x1p1: ++%*5lg: +0x2.3456789abcdfep0123:0:6: ++%5lg: +0x2.3456789abcdfep+123:1:6:0x1p1: ++%*5lg: +0x2.3456789abcdfep+123:0:6: ++%5lg: +0x7.ffffffffffffcp1021:1:6:0x1.cp2: ++%*5lg: +0x7.ffffffffffffcp1021:0:6: ++%5lg: +0xf.ffffffffffff8p+1020:1:6:0x1.ep3: ++%*5lg: +0xf.ffffffffffff8p+1020:0:6: ++%5lg: +infinity:0:-1: ++%*5lg: +infinity:0:-1: ++%32lg: :0:-1: ++%*32lg: :0:-1: ++%32lg: -infinity:1:10:-inf: ++%*32lg: -infinity:0:10: ++%32lg: -0xf.ffffffffffff8p+1020:1:25:-0x1.fffffffffffffp1023: ++%*32lg: -0xf.ffffffffffff8p+1020:0:25: ++%32lg: -0x7.ffffffffffffcp1021:1:24:-0x1.fffffffffffffp1023: ++%*32lg: -0x7.ffffffffffffcp1021:0:24: ++%32lg: -0x2.3456789abcdfep+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lg: -0x2.3456789abcdfep+123:0:24: ++%32lg: -0x2.3456789abcdfep0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lg: -0x2.3456789abcdfep0123:0:24: ++%32lg: -0x8p-1025:1:11:-0x1p-1022: ++%*32lg: -0x8p-1025:0:11: ++%32lg: -0x0p+0:1:8:-0x0: ++%*32lg: -0x0p+0:0:8: ++%32lg: -0x0p0:1:7:-0x0: ++%*32lg: -0x0p0:0:7: ++%32lg: -nan(09A_Zaz):1:14:-nan: ++%*32lg: -nan(09A_Zaz):0:14: ++%32lg: -nan():1:7:-nan: ++%*32lg: -nan():0:7: ++%32lg: nan():1:6:nan: ++%*32lg: nan():0:6: ++%32lg: nan(09A_Zaz):1:13:nan: ++%*32lg: nan(09A_Zaz):0:13: ++%32lg: 0x0p0:1:6:0x0: ++%*32lg: 0x0p0:0:6: ++%32lg: 0x0p+0:1:7:0x0: ++%*32lg: 0x0p+0:0:7: ++%32lg: 0x8p-1025:1:10:0x1p-1022: ++%*32lg: 0x8p-1025:0:10: ++%32lg: 0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lg: 0x2.3456789abcdfep0123:0:23: ++%32lg: 0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lg: 0x2.3456789abcdfep+123:0:23: ++%32lg: 0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32lg: 0x7.ffffffffffffcp1021:0:23: ++%32lg: 0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32lg: 0xf.ffffffffffff8p+1020:0:24: ++%32lg: infinity:1:9:inf: ++%*32lg: infinity:0:9: ++%32lg: +nan():1:7:nan: ++%*32lg: +nan():0:7: ++%32lg: +nan(09A_Zaz):1:14:nan: ++%*32lg: +nan(09A_Zaz):0:14: ++%32lg: +0x0p0:1:7:0x0: ++%*32lg: +0x0p0:0:7: ++%32lg: +0x0p+0:1:8:0x0: ++%*32lg: +0x0p+0:0:8: ++%32lg: +0x8p-1025:1:11:0x1p-1022: ++%*32lg: +0x8p-1025:0:11: ++%32lg: +0x2.3456789abcdfep0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lg: +0x2.3456789abcdfep0123:0:24: ++%32lg: +0x2.3456789abcdfep+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lg: +0x2.3456789abcdfep+123:0:24: ++%32lg: +0x7.ffffffffffffcp1021:1:24:0x1.fffffffffffffp1023: ++%*32lg: +0x7.ffffffffffffcp1021:0:24: ++%32lg: +0xf.ffffffffffff8p+1020:1:25:0x1.fffffffffffffp1023: ++%*32lg: +0xf.ffffffffffff8p+1020:0:25: ++%32lg: +infinity:1:10:inf: ++%*32lg: +infinity:0:10: +diff --git a/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input +new file mode 100644 +index 0000000000000000..eb8bb9f48ebddc7c +--- /dev/null ++++ b/sysdeps/ieee754/dbl-64/tst-scanf-format-double-gg.input +@@ -0,0 +1,682 @@ ++%lG::0:-1: ++%*lG::0:-1: ++%lG:-INFINITY:1:9:-inf: ++%*lG:-INFINITY:0:9: ++%lG:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*lG:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%lG:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*lG:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%lG:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lG:-0X2.3456789ABCDFEP+123:0:23: ++%lG:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*lG:-0X2.3456789ABCDFEP0123:0:23: ++%lG:-0X8P-1025:1:10:-0x1p-1022: ++%*lG:-0X8P-1025:0:10: ++%lG:-0X0P+0:1:7:-0x0: ++%*lG:-0X0P+0:0:7: ++%lG:-0X0P0:1:6:-0x0: ++%*lG:-0X0P0:0:6: ++%lG:-NAN(09A_Zaz):1:13:-nan: ++%*lG:-NAN(09A_Zaz):0:13: ++%lG:-NAN():1:6:-nan: ++%*lG:-NAN():0:6: ++%lG:NAN():1:5:nan: ++%*lG:NAN():0:5: ++%lG:NAN(09A_Zaz):1:12:nan: ++%*lG:NAN(09A_Zaz):0:12: ++%lG:0X0P0:1:5:0x0: ++%*lG:0X0P0:0:5: ++%lG:0X0P+0:1:6:0x0: ++%*lG:0X0P+0:0:6: ++%lG:0X8P-1025:1:9:0x1p-1022: ++%*lG:0X8P-1025:0:9: ++%lG:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lG:0X2.3456789ABCDFEP0123:0:22: ++%lG:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*lG:0X2.3456789ABCDFEP+123:0:22: ++%lG:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*lG:0X7.FFFFFFFFFFFFCP1021:0:22: ++%lG:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*lG:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%lG:INFINITY:1:8:inf: ++%*lG:INFINITY:0:8: ++%lG:+NAN():1:6:nan: ++%*lG:+NAN():0:6: ++%lG:+NAN(09A_Zaz):1:13:nan: ++%*lG:+NAN(09A_Zaz):0:13: ++%lG:+0X0P0:1:6:0x0: ++%*lG:+0X0P0:0:6: ++%lG:+0X0P+0:1:7:0x0: ++%*lG:+0X0P+0:0:7: ++%lG:+0X8P-1025:1:10:0x1p-1022: ++%*lG:+0X8P-1025:0:10: ++%lG:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lG:+0X2.3456789ABCDFEP0123:0:23: ++%lG:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*lG:+0X2.3456789ABCDFEP+123:0:23: ++%lG:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*lG:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%lG:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*lG:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%lG:+INFINITY:1:9:inf: ++%*lG:+INFINITY:0:9: ++%1lG::0:-1: ++%*1lG::0:-1: ++%1lG:-INFINITY:0:-1: ++%*1lG:-INFINITY:0:-1: ++%1lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1lG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1lG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1lG:-0X2.3456789ABCDFEP+123:0:-1: ++%*1lG:-0X2.3456789ABCDFEP+123:0:-1: ++%1lG:-0X2.3456789ABCDFEP0123:0:-1: ++%*1lG:-0X2.3456789ABCDFEP0123:0:-1: ++%1lG:-0X8P-1025:0:-1: ++%*1lG:-0X8P-1025:0:-1: ++%1lG:-0X0P+0:0:-1: ++%*1lG:-0X0P+0:0:-1: ++%1lG:-0X0P0:0:-1: ++%*1lG:-0X0P0:0:-1: ++%1lG:-NAN(09A_Zaz):0:-1: ++%*1lG:-NAN(09A_Zaz):0:-1: ++%1lG:-NAN():0:-1: ++%*1lG:-NAN():0:-1: ++%1lG:NAN():0:-1: ++%*1lG:NAN():0:-1: ++%1lG:NAN(09A_Zaz):0:-1: ++%*1lG:NAN(09A_Zaz):0:-1: ++%1lG:0X0P0:1:1:0x0: ++%*1lG:0X0P0:0:1: ++%1lG:0X0P+0:1:1:0x0: ++%*1lG:0X0P+0:0:1: ++%1lG:0X8P-1025:1:1:0x0: ++%*1lG:0X8P-1025:0:1: ++%1lG:0X2.3456789ABCDFEP0123:1:1:0x0: ++%*1lG:0X2.3456789ABCDFEP0123:0:1: ++%1lG:0X2.3456789ABCDFEP+123:1:1:0x0: ++%*1lG:0X2.3456789ABCDFEP+123:0:1: ++%1lG:0X7.FFFFFFFFFFFFCP1021:1:1:0x0: ++%*1lG:0X7.FFFFFFFFFFFFCP1021:0:1: ++%1lG:0XF.FFFFFFFFFFFF8P+1020:1:1:0x0: ++%*1lG:0XF.FFFFFFFFFFFF8P+1020:0:1: ++%1lG:INFINITY:0:-1: ++%*1lG:INFINITY:0:-1: ++%1lG:+NAN():0:-1: ++%*1lG:+NAN():0:-1: ++%1lG:+NAN(09A_Zaz):0:-1: ++%*1lG:+NAN(09A_Zaz):0:-1: ++%1lG:+0X0P0:0:-1: ++%*1lG:+0X0P0:0:-1: ++%1lG:+0X0P+0:0:-1: ++%*1lG:+0X0P+0:0:-1: ++%1lG:+0X8P-1025:0:-1: ++%*1lG:+0X8P-1025:0:-1: ++%1lG:+0X2.3456789ABCDFEP0123:0:-1: ++%*1lG:+0X2.3456789ABCDFEP0123:0:-1: ++%1lG:+0X2.3456789ABCDFEP+123:0:-1: ++%*1lG:+0X2.3456789ABCDFEP+123:0:-1: ++%1lG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1lG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1lG:+INFINITY:0:-1: ++%*1lG:+INFINITY:0:-1: ++%2lG::0:-1: ++%*2lG::0:-1: ++%2lG:-INFINITY:0:-1: ++%*2lG:-INFINITY:0:-1: ++%2lG:-0XF.FFFFFFFFFFFF8P+1020:1:2:-0x0: ++%*2lG:-0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2lG:-0X7.FFFFFFFFFFFFCP1021:1:2:-0x0: ++%*2lG:-0X7.FFFFFFFFFFFFCP1021:0:2: ++%2lG:-0X2.3456789ABCDFEP+123:1:2:-0x0: ++%*2lG:-0X2.3456789ABCDFEP+123:0:2: ++%2lG:-0X2.3456789ABCDFEP0123:1:2:-0x0: ++%*2lG:-0X2.3456789ABCDFEP0123:0:2: ++%2lG:-0X8P-1025:1:2:-0x0: ++%*2lG:-0X8P-1025:0:2: ++%2lG:-0X0P+0:1:2:-0x0: ++%*2lG:-0X0P+0:0:2: ++%2lG:-0X0P0:1:2:-0x0: ++%*2lG:-0X0P0:0:2: ++%2lG:-NAN(09A_Zaz):0:-1: ++%*2lG:-NAN(09A_Zaz):0:-1: ++%2lG:-NAN():0:-1: ++%*2lG:-NAN():0:-1: ++%2lG:NAN():0:-1: ++%*2lG:NAN():0:-1: ++%2lG:NAN(09A_Zaz):0:-1: ++%*2lG:NAN(09A_Zaz):0:-1: ++# BZ12701 %2lG:0X0P0:0:-1: ++# BZ12701 %*2lG:0X0P0:0:-1: ++# BZ12701 %2lG:0X0P+0:0:-1: ++# BZ12701 %*2lG:0X0P+0:0:-1: ++# BZ12701 %2lG:0X8P-1025:0:-1: ++# BZ12701 %*2lG:0X8P-1025:0:-1: ++# BZ12701 %2lG:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*2lG:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %2lG:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*2lG:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %2lG:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*2lG:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %2lG:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*2lG:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%2lG:INFINITY:0:-1: ++%*2lG:INFINITY:0:-1: ++%2lG:+NAN():0:-1: ++%*2lG:+NAN():0:-1: ++%2lG:+NAN(09A_Zaz):0:-1: ++%*2lG:+NAN(09A_Zaz):0:-1: ++%2lG:+0X0P0:1:2:0x0: ++%*2lG:+0X0P0:0:2: ++%2lG:+0X0P+0:1:2:0x0: ++%*2lG:+0X0P+0:0:2: ++%2lG:+0X8P-1025:1:2:0x0: ++%*2lG:+0X8P-1025:0:2: ++%2lG:+0X2.3456789ABCDFEP0123:1:2:0x0: ++%*2lG:+0X2.3456789ABCDFEP0123:0:2: ++%2lG:+0X2.3456789ABCDFEP+123:1:2:0x0: ++%*2lG:+0X2.3456789ABCDFEP+123:0:2: ++%2lG:+0X7.FFFFFFFFFFFFCP1021:1:2:0x0: ++%*2lG:+0X7.FFFFFFFFFFFFCP1021:0:2: ++%2lG:+0XF.FFFFFFFFFFFF8P+1020:1:2:0x0: ++%*2lG:+0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2lG:+INFINITY:0:-1: ++%*2lG:+INFINITY:0:-1: ++%3lG::0:-1: ++%*3lG::0:-1: ++%3lG:-INFINITY:0:-1: ++%*3lG:-INFINITY:0:-1: ++# BZ12701 %3lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %3lG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3lG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3lG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3lG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3lG:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3lG:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3lG:-0X8P-1025:0:-1: ++# BZ12701 %*3lG:-0X8P-1025:0:-1: ++# BZ12701 %3lG:-0X0P+0:0:-1: ++# BZ12701 %*3lG:-0X0P+0:0:-1: ++# BZ12701 %3lG:-0X0P0:0:-1: ++# BZ12701 %*3lG:-0X0P0:0:-1: ++%3lG:-NAN(09A_Zaz):0:-1: ++%*3lG:-NAN(09A_Zaz):0:-1: ++%3lG:-NAN():0:-1: ++%*3lG:-NAN():0:-1: ++%3lG:NAN():1:3:nan: ++%*3lG:NAN():0:3: ++%3lG:NAN(09A_Zaz):1:3:nan: ++%*3lG:NAN(09A_Zaz):0:3: ++%3lG:0X0P0:1:3:0x0: ++%*3lG:0X0P0:0:3: ++%3lG:0X0P+0:1:3:0x0: ++%*3lG:0X0P+0:0:3: ++%3lG:0X8P-1025:1:3:0x1p3: ++%*3lG:0X8P-1025:0:3: ++%3lG:0X2.3456789ABCDFEP0123:1:3:0x1p1: ++%*3lG:0X2.3456789ABCDFEP0123:0:3: ++%3lG:0X2.3456789ABCDFEP+123:1:3:0x1p1: ++%*3lG:0X2.3456789ABCDFEP+123:0:3: ++%3lG:0X7.FFFFFFFFFFFFCP1021:1:3:0x1.cp2: ++%*3lG:0X7.FFFFFFFFFFFFCP1021:0:3: ++%3lG:0XF.FFFFFFFFFFFF8P+1020:1:3:0x1.ep3: ++%*3lG:0XF.FFFFFFFFFFFF8P+1020:0:3: ++%3lG:INFINITY:1:3:inf: ++%*3lG:INFINITY:0:3: ++%3lG:+NAN():0:-1: ++%*3lG:+NAN():0:-1: ++%3lG:+NAN(09A_Zaz):0:-1: ++%*3lG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3lG:+0X0P0:0:-1: ++# BZ12701 %*3lG:+0X0P0:0:-1: ++# BZ12701 %3lG:+0X0P+0:0:-1: ++# BZ12701 %*3lG:+0X0P+0:0:-1: ++# BZ12701 %3lG:+0X8P-1025:0:-1: ++# BZ12701 %*3lG:+0X8P-1025:0:-1: ++# BZ12701 %3lG:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3lG:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3lG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3lG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3lG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3lG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%3lG:+INFINITY:0:-1: ++%*3lG:+INFINITY:0:-1: ++%4lG::0:-1: ++%*4lG::0:-1: ++%4lG:-INFINITY:1:4:-inf: ++%*4lG:-INFINITY:0:4: ++%4lG:-0XF.FFFFFFFFFFFF8P+1020:1:4:-0x1.ep3: ++%*4lG:-0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lG:-0X7.FFFFFFFFFFFFCP1021:1:4:-0x1.cp2: ++%*4lG:-0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lG:-0X2.3456789ABCDFEP+123:1:4:-0x1p1: ++%*4lG:-0X2.3456789ABCDFEP+123:0:4: ++%4lG:-0X2.3456789ABCDFEP0123:1:4:-0x1p1: ++%*4lG:-0X2.3456789ABCDFEP0123:0:4: ++%4lG:-0X8P-1025:1:4:-0x1p3: ++%*4lG:-0X8P-1025:0:4: ++%4lG:-0X0P+0:1:4:-0x0: ++%*4lG:-0X0P+0:0:4: ++%4lG:-0X0P0:1:4:-0x0: ++%*4lG:-0X0P0:0:4: ++%4lG:-NAN(09A_Zaz):1:4:-nan: ++%*4lG:-NAN(09A_Zaz):0:4: ++%4lG:-NAN():1:4:-nan: ++%*4lG:-NAN():0:4: ++%4lG:NAN():0:-1: ++%*4lG:NAN():0:-1: ++%4lG:NAN(09A_Zaz):0:-1: ++%*4lG:NAN(09A_Zaz):0:-1: ++# BZ12701 %4lG:0X0P0:0:-1: ++# BZ12701 %*4lG:0X0P0:0:-1: ++# BZ12701 %4lG:0X0P+0:0:-1: ++# BZ12701 %*4lG:0X0P+0:0:-1: ++# BZ12701 %4lG:0X8P-1025:0:-1: ++# BZ12701 %*4lG:0X8P-1025:0:-1: ++%4lG:0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4lG:0X2.3456789ABCDFEP0123:0:4: ++%4lG:0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4lG:0X2.3456789ABCDFEP+123:0:4: ++%4lG:0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4lG:0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lG:0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4lG:0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lG:INFINITY:0:-1: ++%*4lG:INFINITY:0:-1: ++%4lG:+NAN():1:4:nan: ++%*4lG:+NAN():0:4: ++%4lG:+NAN(09A_Zaz):1:4:nan: ++%*4lG:+NAN(09A_Zaz):0:4: ++%4lG:+0X0P0:1:4:0x0: ++%*4lG:+0X0P0:0:4: ++%4lG:+0X0P+0:1:4:0x0: ++%*4lG:+0X0P+0:0:4: ++%4lG:+0X8P-1025:1:4:0x1p3: ++%*4lG:+0X8P-1025:0:4: ++%4lG:+0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4lG:+0X2.3456789ABCDFEP0123:0:4: ++%4lG:+0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4lG:+0X2.3456789ABCDFEP+123:0:4: ++%4lG:+0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4lG:+0X7.FFFFFFFFFFFFCP1021:0:4: ++%4lG:+0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4lG:+0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4lG:+INFINITY:1:4:inf: ++%*4lG:+INFINITY:0:4: ++%5lG::0:-1: ++%*5lG::0:-1: ++%5lG:-INFINITY:0:-1: ++%*5lG:-INFINITY:0:-1: ++%5lG:-0XF.FFFFFFFFFFFF8P+1020:1:5:-0x1.ep3: ++%*5lG:-0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lG:-0X7.FFFFFFFFFFFFCP1021:1:5:-0x1.cp2: ++%*5lG:-0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lG:-0X2.3456789ABCDFEP+123:1:5:-0x1p1: ++%*5lG:-0X2.3456789ABCDFEP+123:0:5: ++%5lG:-0X2.3456789ABCDFEP0123:1:5:-0x1p1: ++%*5lG:-0X2.3456789ABCDFEP0123:0:5: ++# BZ12701 %5lG:-0X8P-1025:0:-1: ++# BZ12701 %*5lG:-0X8P-1025:0:-1: ++# BZ12701 %5lG:-0X0P+0:0:-1: ++# BZ12701 %*5lG:-0X0P+0:0:-1: ++# BZ12701 %5lG:-0X0P0:0:-1: ++# BZ12701 %*5lG:-0X0P0:0:-1: ++%5lG:-NAN(09A_Zaz):0:-1: ++%*5lG:-NAN(09A_Zaz):0:-1: ++%5lG:-NAN():0:-1: ++%*5lG:-NAN():0:-1: ++%5lG:NAN():1:5:nan: ++%*5lG:NAN():0:5: ++%5lG:NAN(09A_Zaz):0:-1: ++%*5lG:NAN(09A_Zaz):0:-1: ++%5lG:0X0P0:1:5:0x0: ++%*5lG:0X0P0:0:5: ++# BZ12701 %5lG:0X0P+0:0:-1: ++# BZ12701 %*5lG:0X0P+0:0:-1: ++# BZ12701 %5lG:0X8P-1025:0:-1: ++# BZ12701 %*5lG:0X8P-1025:0:-1: ++%5lG:0X2.3456789ABCDFEP0123:1:5:0x1.18p1: ++%*5lG:0X2.3456789ABCDFEP0123:0:5: ++%5lG:0X2.3456789ABCDFEP+123:1:5:0x1.18p1: ++%*5lG:0X2.3456789ABCDFEP+123:0:5: ++%5lG:0X7.FFFFFFFFFFFFCP1021:1:5:0x1.fcp2: ++%*5lG:0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lG:0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.fep3: ++%*5lG:0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lG:INFINITY:0:-1: ++%*5lG:INFINITY:0:-1: ++%5lG:+NAN():0:-1: ++%*5lG:+NAN():0:-1: ++%5lG:+NAN(09A_Zaz):0:-1: ++%*5lG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5lG:+0X0P0:0:-1: ++# BZ12701 %*5lG:+0X0P0:0:-1: ++# BZ12701 %5lG:+0X0P+0:0:-1: ++# BZ12701 %*5lG:+0X0P+0:0:-1: ++# BZ12701 %5lG:+0X8P-1025:0:-1: ++# BZ12701 %*5lG:+0X8P-1025:0:-1: ++%5lG:+0X2.3456789ABCDFEP0123:1:5:0x1p1: ++%*5lG:+0X2.3456789ABCDFEP0123:0:5: ++%5lG:+0X2.3456789ABCDFEP+123:1:5:0x1p1: ++%*5lG:+0X2.3456789ABCDFEP+123:0:5: ++%5lG:+0X7.FFFFFFFFFFFFCP1021:1:5:0x1.cp2: ++%*5lG:+0X7.FFFFFFFFFFFFCP1021:0:5: ++%5lG:+0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.ep3: ++%*5lG:+0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5lG:+INFINITY:0:-1: ++%*5lG:+INFINITY:0:-1: ++%6lG::0:-1: ++%*6lG::0:-1: ++%6lG:-INFINITY:0:-1: ++%*6lG:-INFINITY:0:-1: ++%6lG:-0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.fep3: ++%*6lG:-0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lG:-0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.fcp2: ++%*6lG:-0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lG:-0X2.3456789ABCDFEP+123:1:6:-0x1.18p1: ++%*6lG:-0X2.3456789ABCDFEP+123:0:6: ++%6lG:-0X2.3456789ABCDFEP0123:1:6:-0x1.18p1: ++%*6lG:-0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %6lG:-0X8P-1025:0:-1: ++# BZ12701 %*6lG:-0X8P-1025:0:-1: ++# BZ12701 %6lG:-0X0P+0:0:-1: ++# BZ12701 %*6lG:-0X0P+0:0:-1: ++%6lG:-0X0P0:1:6:-0x0: ++%*6lG:-0X0P0:0:6: ++%6lG:-NAN(09A_Zaz):0:-1: ++%*6lG:-NAN(09A_Zaz):0:-1: ++%6lG:-NAN():1:6:-nan: ++%*6lG:-NAN():0:6: ++%6lG:NAN():1:5:nan: ++%*6lG:NAN():0:5: ++%6lG:NAN(09A_Zaz):0:-1: ++%*6lG:NAN(09A_Zaz):0:-1: ++%6lG:0X0P0:1:5:0x0: ++%*6lG:0X0P0:0:5: ++%6lG:0X0P+0:1:6:0x0: ++%*6lG:0X0P+0:0:6: ++%6lG:0X8P-1025:1:6:0x1p2: ++%*6lG:0X8P-1025:0:6: ++%6lG:0X2.3456789ABCDFEP0123:1:6:0x1.1ap1: ++%*6lG:0X2.3456789ABCDFEP0123:0:6: ++%6lG:0X2.3456789ABCDFEP+123:1:6:0x1.1ap1: ++%*6lG:0X2.3456789ABCDFEP+123:0:6: ++%6lG:0X7.FFFFFFFFFFFFCP1021:1:6:0x1.ffcp2: ++%*6lG:0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lG:0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ffep3: ++%*6lG:0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lG:INFINITY:0:-1: ++%*6lG:INFINITY:0:-1: ++%6lG:+NAN():1:6:nan: ++%*6lG:+NAN():0:6: ++%6lG:+NAN(09A_Zaz):0:-1: ++%*6lG:+NAN(09A_Zaz):0:-1: ++%6lG:+0X0P0:1:6:0x0: ++%*6lG:+0X0P0:0:6: ++# BZ12701 %6lG:+0X0P+0:0:-1: ++# BZ12701 %*6lG:+0X0P+0:0:-1: ++# BZ12701 %6lG:+0X8P-1025:0:-1: ++# BZ12701 %*6lG:+0X8P-1025:0:-1: ++%6lG:+0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*6lG:+0X2.3456789ABCDFEP0123:0:6: ++%6lG:+0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*6lG:+0X2.3456789ABCDFEP+123:0:6: ++%6lG:+0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*6lG:+0X7.FFFFFFFFFFFFCP1021:0:6: ++%6lG:+0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*6lG:+0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6lG:+INFINITY:0:-1: ++%*6lG:+INFINITY:0:-1: ++%20lG::0:-1: ++%*20lG::0:-1: ++%20lG:-INFINITY:1:9:-inf: ++%*20lG:-INFINITY:0:9: ++# BZ12701 %20lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20lG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20lG:-0X7.FFFFFFFFFFFFCP1021:1:20:-0x1.fffffffffffffp3: ++%*20lG:-0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20lG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20lG:-0X2.3456789ABCDFEP+123:0:-1: ++%20lG:-0X2.3456789ABCDFEP0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20lG:-0X2.3456789ABCDFEP0123:0:20: ++%20lG:-0X8P-1025:1:10:-0x1p-1022: ++%*20lG:-0X8P-1025:0:10: ++%20lG:-0X0P+0:1:7:-0x0: ++%*20lG:-0X0P+0:0:7: ++%20lG:-0X0P0:1:6:-0x0: ++%*20lG:-0X0P0:0:6: ++%20lG:-NAN(09A_Zaz):1:13:-nan: ++%*20lG:-NAN(09A_Zaz):0:13: ++%20lG:-NAN():1:6:-nan: ++%*20lG:-NAN():0:6: ++%20lG:NAN():1:5:nan: ++%*20lG:NAN():0:5: ++%20lG:NAN(09A_Zaz):1:12:nan: ++%*20lG:NAN(09A_Zaz):0:12: ++%20lG:0X0P0:1:5:0x0: ++%*20lG:0X0P0:0:5: ++%20lG:0X0P+0:1:6:0x0: ++%*20lG:0X0P+0:0:6: ++%20lG:0X8P-1025:1:9:0x1p-1022: ++%*20lG:0X8P-1025:0:9: ++%20lG:0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lG:0X2.3456789ABCDFEP0123:0:20: ++%20lG:0X2.3456789ABCDFEP+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20lG:0X2.3456789ABCDFEP+123:0:20: ++%20lG:0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp12: ++%*20lG:0X7.FFFFFFFFFFFFCP1021:0:20: ++%20lG:0XF.FFFFFFFFFFFF8P+1020:1:20:0x1.fffffffffffffp4: ++%*20lG:0XF.FFFFFFFFFFFF8P+1020:0:20: ++%20lG:INFINITY:1:8:inf: ++%*20lG:INFINITY:0:8: ++%20lG:+NAN():1:6:nan: ++%*20lG:+NAN():0:6: ++%20lG:+NAN(09A_Zaz):1:13:nan: ++%*20lG:+NAN(09A_Zaz):0:13: ++%20lG:+0X0P0:1:6:0x0: ++%*20lG:+0X0P0:0:6: ++%20lG:+0X0P+0:1:7:0x0: ++%*20lG:+0X0P+0:0:7: ++%20lG:+0X8P-1025:1:10:0x1p-1022: ++%*20lG:+0X8P-1025:0:10: ++%20lG:+0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20lG:+0X2.3456789ABCDFEP0123:0:20: ++# BZ12701 %20lG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20lG:+0X2.3456789ABCDFEP+123:0:-1: ++%20lG:+0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp3: ++%*20lG:+0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20lG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20lG:+INFINITY:1:9:inf: ++%*20lG:+INFINITY:0:9: ++%32lG::0:-1: ++%*32lG::0:-1: ++%32lG:-INFINITY:1:9:-inf: ++%*32lG:-INFINITY:0:9: ++%32lG:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*32lG:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lG:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*32lG:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lG:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lG:-0X2.3456789ABCDFEP+123:0:23: ++%32lG:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32lG:-0X2.3456789ABCDFEP0123:0:23: ++%32lG:-0X8P-1025:1:10:-0x1p-1022: ++%*32lG:-0X8P-1025:0:10: ++%32lG:-0X0P+0:1:7:-0x0: ++%*32lG:-0X0P+0:0:7: ++%32lG:-0X0P0:1:6:-0x0: ++%*32lG:-0X0P0:0:6: ++%32lG:-NAN(09A_Zaz):1:13:-nan: ++%*32lG:-NAN(09A_Zaz):0:13: ++%32lG:-NAN():1:6:-nan: ++%*32lG:-NAN():0:6: ++%32lG:NAN():1:5:nan: ++%*32lG:NAN():0:5: ++%32lG:NAN(09A_Zaz):1:12:nan: ++%*32lG:NAN(09A_Zaz):0:12: ++%32lG:0X0P0:1:5:0x0: ++%*32lG:0X0P0:0:5: ++%32lG:0X0P+0:1:6:0x0: ++%*32lG:0X0P+0:0:6: ++%32lG:0X8P-1025:1:9:0x1p-1022: ++%*32lG:0X8P-1025:0:9: ++%32lG:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lG:0X2.3456789ABCDFEP0123:0:22: ++%32lG:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32lG:0X2.3456789ABCDFEP+123:0:22: ++%32lG:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*32lG:0X7.FFFFFFFFFFFFCP1021:0:22: ++%32lG:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*32lG:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%32lG:INFINITY:1:8:inf: ++%*32lG:INFINITY:0:8: ++%32lG:+NAN():1:6:nan: ++%*32lG:+NAN():0:6: ++%32lG:+NAN(09A_Zaz):1:13:nan: ++%*32lG:+NAN(09A_Zaz):0:13: ++%32lG:+0X0P0:1:6:0x0: ++%*32lG:+0X0P0:0:6: ++%32lG:+0X0P+0:1:7:0x0: ++%*32lG:+0X0P+0:0:7: ++%32lG:+0X8P-1025:1:10:0x1p-1022: ++%*32lG:+0X8P-1025:0:10: ++%32lG:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lG:+0X2.3456789ABCDFEP0123:0:23: ++%32lG:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lG:+0X2.3456789ABCDFEP+123:0:23: ++%32lG:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32lG:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lG:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32lG:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lG:+INFINITY:1:9:inf: ++%*32lG:+INFINITY:0:9: ++%5lG: :0:-1: ++%*5lG: :0:-1: ++%5lG: -INFINITY:0:-1: ++%*5lG: -INFINITY:0:-1: ++%5lG: -0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.ep3: ++%*5lG: -0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lG: -0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.cp2: ++%*5lG: -0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lG: -0X2.3456789ABCDFEP+123:1:6:-0x1p1: ++%*5lG: -0X2.3456789ABCDFEP+123:0:6: ++%5lG: -0X2.3456789ABCDFEP0123:1:6:-0x1p1: ++%*5lG: -0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %5lG: -0X8P-1025:0:-1: ++# BZ12701 %*5lG: -0X8P-1025:0:-1: ++# BZ12701 %5lG: -0X0P+0:0:-1: ++# BZ12701 %*5lG: -0X0P+0:0:-1: ++# BZ12701 %5lG: -0X0P0:0:-1: ++# BZ12701 %*5lG: -0X0P0:0:-1: ++%5lG: -NAN(09A_Zaz):0:-1: ++%*5lG: -NAN(09A_Zaz):0:-1: ++%5lG: -NAN():0:-1: ++%*5lG: -NAN():0:-1: ++%5lG: NAN():1:6:nan: ++%*5lG: NAN():0:6: ++%5lG: NAN(09A_Zaz):0:-1: ++%*5lG: NAN(09A_Zaz):0:-1: ++%5lG: 0X0P0:1:6:0x0: ++%*5lG: 0X0P0:0:6: ++# BZ12701 %5lG: 0X0P+0:0:-1: ++# BZ12701 %*5lG: 0X0P+0:0:-1: ++# BZ12701 %5lG: 0X8P-1025:0:-1: ++# BZ12701 %*5lG: 0X8P-1025:0:-1: ++%5lG: 0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*5lG: 0X2.3456789ABCDFEP0123:0:6: ++%5lG: 0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*5lG: 0X2.3456789ABCDFEP+123:0:6: ++%5lG: 0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*5lG: 0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lG: 0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*5lG: 0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lG: INFINITY:0:-1: ++%*5lG: INFINITY:0:-1: ++%5lG: +NAN():0:-1: ++%*5lG: +NAN():0:-1: ++%5lG: +NAN(09A_Zaz):0:-1: ++%*5lG: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5lG: +0X0P0:0:-1: ++# BZ12701 %*5lG: +0X0P0:0:-1: ++# BZ12701 %5lG: +0X0P+0:0:-1: ++# BZ12701 %*5lG: +0X0P+0:0:-1: ++# BZ12701 %5lG: +0X8P-1025:0:-1: ++# BZ12701 %*5lG: +0X8P-1025:0:-1: ++%5lG: +0X2.3456789ABCDFEP0123:1:6:0x1p1: ++%*5lG: +0X2.3456789ABCDFEP0123:0:6: ++%5lG: +0X2.3456789ABCDFEP+123:1:6:0x1p1: ++%*5lG: +0X2.3456789ABCDFEP+123:0:6: ++%5lG: +0X7.FFFFFFFFFFFFCP1021:1:6:0x1.cp2: ++%*5lG: +0X7.FFFFFFFFFFFFCP1021:0:6: ++%5lG: +0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ep3: ++%*5lG: +0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5lG: +INFINITY:0:-1: ++%*5lG: +INFINITY:0:-1: ++%32lG: :0:-1: ++%*32lG: :0:-1: ++%32lG: -INFINITY:1:10:-inf: ++%*32lG: -INFINITY:0:10: ++%32lG: -0XF.FFFFFFFFFFFF8P+1020:1:25:-0x1.fffffffffffffp1023: ++%*32lG: -0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32lG: -0X7.FFFFFFFFFFFFCP1021:1:24:-0x1.fffffffffffffp1023: ++%*32lG: -0X7.FFFFFFFFFFFFCP1021:0:24: ++%32lG: -0X2.3456789ABCDFEP+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lG: -0X2.3456789ABCDFEP+123:0:24: ++%32lG: -0X2.3456789ABCDFEP0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32lG: -0X2.3456789ABCDFEP0123:0:24: ++%32lG: -0X8P-1025:1:11:-0x1p-1022: ++%*32lG: -0X8P-1025:0:11: ++%32lG: -0X0P+0:1:8:-0x0: ++%*32lG: -0X0P+0:0:8: ++%32lG: -0X0P0:1:7:-0x0: ++%*32lG: -0X0P0:0:7: ++%32lG: -NAN(09A_Zaz):1:14:-nan: ++%*32lG: -NAN(09A_Zaz):0:14: ++%32lG: -NAN():1:7:-nan: ++%*32lG: -NAN():0:7: ++%32lG: NAN():1:6:nan: ++%*32lG: NAN():0:6: ++%32lG: NAN(09A_Zaz):1:13:nan: ++%*32lG: NAN(09A_Zaz):0:13: ++%32lG: 0X0P0:1:6:0x0: ++%*32lG: 0X0P0:0:6: ++%32lG: 0X0P+0:1:7:0x0: ++%*32lG: 0X0P+0:0:7: ++%32lG: 0X8P-1025:1:10:0x1p-1022: ++%*32lG: 0X8P-1025:0:10: ++%32lG: 0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lG: 0X2.3456789ABCDFEP0123:0:23: ++%32lG: 0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32lG: 0X2.3456789ABCDFEP+123:0:23: ++%32lG: 0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32lG: 0X7.FFFFFFFFFFFFCP1021:0:23: ++%32lG: 0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32lG: 0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32lG: INFINITY:1:9:inf: ++%*32lG: INFINITY:0:9: ++%32lG: +NAN():1:7:nan: ++%*32lG: +NAN():0:7: ++%32lG: +NAN(09A_Zaz):1:14:nan: ++%*32lG: +NAN(09A_Zaz):0:14: ++%32lG: +0X0P0:1:7:0x0: ++%*32lG: +0X0P0:0:7: ++%32lG: +0X0P+0:1:8:0x0: ++%*32lG: +0X0P+0:0:8: ++%32lG: +0X8P-1025:1:11:0x1p-1022: ++%*32lG: +0X8P-1025:0:11: ++%32lG: +0X2.3456789ABCDFEP0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lG: +0X2.3456789ABCDFEP0123:0:24: ++%32lG: +0X2.3456789ABCDFEP+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32lG: +0X2.3456789ABCDFEP+123:0:24: ++%32lG: +0X7.FFFFFFFFFFFFCP1021:1:24:0x1.fffffffffffffp1023: ++%*32lG: +0X7.FFFFFFFFFFFFCP1021:0:24: ++%32lG: +0XF.FFFFFFFFFFFF8P+1020:1:25:0x1.fffffffffffffp1023: ++%*32lG: +0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32lG: +INFINITY:1:10:inf: ++%*32lG: +INFINITY:0:10: diff --git a/glibc-RHEL-119433-6.patch b/glibc-RHEL-119433-6.patch new file mode 100644 index 0000000..a328cbc --- /dev/null +++ b/glibc-RHEL-119433-6.patch @@ -0,0 +1,4911 @@ +commit 1890e63c86ceb04a49a914dc2cafa9862e938ef6 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf long double data for IEEE 754 binary128 format + + Add Makefile infrastructure and `long double' real input data for + targets using the IEEE 754 binary128 format. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/ieee754/ldbl-128/Makefile b/sysdeps/ieee754/ldbl-128/Makefile +index 9cbfc7ff6e8cd6f7..7741f1eef4524b6f 100644 +--- a/sysdeps/ieee754/ldbl-128/Makefile ++++ b/sysdeps/ieee754/ldbl-128/Makefile +@@ -126,3 +126,7 @@ CFLAGS-s_y0l.c += -fno-builtin-y0f64x -fno-builtin-y0f128 + CFLAGS-s_y1l.c += -fno-builtin-y1f64x -fno-builtin-y1f128 + CFLAGS-s_ynl.c += -fno-builtin-ynf64x -fno-builtin-ynf128 + endif ++ ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-real-convs += ldouble ++endif +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input +new file mode 100644 +index 0000000000000000..41fe52ffa0e50613 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-a.input +@@ -0,0 +1,682 @@ ++%La::0:-1: ++%*La::0:-1: ++%La:-infinity:1:9:-inf: ++%*La:-infinity:0:9: ++%La:-0xf.fffffffffffffffffffffffffff8p+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*La:-0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%La:-0x7.fffffffffffffffffffffffffffcp16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*La:-0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%La:-0x2.3456789abcdef0123456789abcdep+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:-0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%La:-0x2.3456789abcdef0123456789abcdep012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:-0x2.3456789abcdef0123456789abcdep012345:0:40: ++%La:-0x8p-16385:1:11:-0x1p-16382: ++%*La:-0x8p-16385:0:11: ++%La:-0x0p+0:1:7:-0x0: ++%*La:-0x0p+0:0:7: ++%La:-0x0p0:1:6:-0x0: ++%*La:-0x0p0:0:6: ++%La:-nan(09A_Zaz):1:13:-nan: ++%*La:-nan(09A_Zaz):0:13: ++%La:-nan():1:6:-nan: ++%*La:-nan():0:6: ++%La:nan():1:5:nan: ++%*La:nan():0:5: ++%La:nan(09A_Zaz):1:12:nan: ++%*La:nan(09A_Zaz):0:12: ++%La:0x0p0:1:5:0x0: ++%*La:0x0p0:0:5: ++%La:0x0p+0:1:6:0x0: ++%*La:0x0p+0:0:6: ++%La:0x8p-16385:1:10:0x1p-16382: ++%*La:0x8p-16385:0:10: ++%La:0x2.3456789abcdef0123456789abcdep012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:0x2.3456789abcdef0123456789abcdep012345:0:39: ++%La:0x2.3456789abcdef0123456789abcdep+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:0x2.3456789abcdef0123456789abcdep+12345:0:39: ++%La:0x7.fffffffffffffffffffffffffffcp16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*La:0x7.fffffffffffffffffffffffffffcp16381:0:38: ++%La:0xf.fffffffffffffffffffffffffff8p+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*La:0xf.fffffffffffffffffffffffffff8p+16380:0:39: ++%La:infinity:1:8:inf: ++%*La:infinity:0:8: ++%La:+nan():1:6:nan: ++%*La:+nan():0:6: ++%La:+nan(09A_Zaz):1:13:nan: ++%*La:+nan(09A_Zaz):0:13: ++%La:+0x0p0:1:6:0x0: ++%*La:+0x0p0:0:6: ++%La:+0x0p+0:1:7:0x0: ++%*La:+0x0p+0:0:7: ++%La:+0x8p-16385:1:11:0x1p-16382: ++%*La:+0x8p-16385:0:11: ++%La:+0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:+0x2.3456789abcdef0123456789abcdep012345:0:40: ++%La:+0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*La:+0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%La:+0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*La:+0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%La:+0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*La:+0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%La:+infinity:1:9:inf: ++%*La:+infinity:0:9: ++%1La::0:-1: ++%*1La::0:-1: ++%1La:-infinity:0:-1: ++%*1La:-infinity:0:-1: ++%1La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%*1La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%1La:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%*1La:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%1La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%*1La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%1La:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%*1La:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%1La:-0x8p-16385:0:-1: ++%*1La:-0x8p-16385:0:-1: ++%1La:-0x0p+0:0:-1: ++%*1La:-0x0p+0:0:-1: ++%1La:-0x0p0:0:-1: ++%*1La:-0x0p0:0:-1: ++%1La:-nan(09A_Zaz):0:-1: ++%*1La:-nan(09A_Zaz):0:-1: ++%1La:-nan():0:-1: ++%*1La:-nan():0:-1: ++%1La:nan():0:-1: ++%*1La:nan():0:-1: ++%1La:nan(09A_Zaz):0:-1: ++%*1La:nan(09A_Zaz):0:-1: ++%1La:0x0p0:1:1:0x0: ++%*1La:0x0p0:0:1: ++%1La:0x0p+0:1:1:0x0: ++%*1La:0x0p+0:0:1: ++%1La:0x8p-16385:1:1:0x0: ++%*1La:0x8p-16385:0:1: ++%1La:0x2.3456789abcdef0123456789abcdep012345:1:1:0x0: ++%*1La:0x2.3456789abcdef0123456789abcdep012345:0:1: ++%1La:0x2.3456789abcdef0123456789abcdep+12345:1:1:0x0: ++%*1La:0x2.3456789abcdef0123456789abcdep+12345:0:1: ++%1La:0x7.fffffffffffffffffffffffffffcp16381:1:1:0x0: ++%*1La:0x7.fffffffffffffffffffffffffffcp16381:0:1: ++%1La:0xf.fffffffffffffffffffffffffff8p+16380:1:1:0x0: ++%*1La:0xf.fffffffffffffffffffffffffff8p+16380:0:1: ++%1La:infinity:0:-1: ++%*1La:infinity:0:-1: ++%1La:+nan():0:-1: ++%*1La:+nan():0:-1: ++%1La:+nan(09A_Zaz):0:-1: ++%*1La:+nan(09A_Zaz):0:-1: ++%1La:+0x0p0:0:-1: ++%*1La:+0x0p0:0:-1: ++%1La:+0x0p+0:0:-1: ++%*1La:+0x0p+0:0:-1: ++%1La:+0x8p-16385:0:-1: ++%*1La:+0x8p-16385:0:-1: ++%1La:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%*1La:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%1La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%*1La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%1La:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%*1La:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%1La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%*1La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%1La:+infinity:0:-1: ++%*1La:+infinity:0:-1: ++%2La::0:-1: ++%*2La::0:-1: ++%2La:-infinity:0:-1: ++%*2La:-infinity:0:-1: ++%2La:-0xf.fffffffffffffffffffffffffff8p+16380:1:2:-0x0: ++%*2La:-0xf.fffffffffffffffffffffffffff8p+16380:0:2: ++%2La:-0x7.fffffffffffffffffffffffffffcp16381:1:2:-0x0: ++%*2La:-0x7.fffffffffffffffffffffffffffcp16381:0:2: ++%2La:-0x2.3456789abcdef0123456789abcdep+12345:1:2:-0x0: ++%*2La:-0x2.3456789abcdef0123456789abcdep+12345:0:2: ++%2La:-0x2.3456789abcdef0123456789abcdep012345:1:2:-0x0: ++%*2La:-0x2.3456789abcdef0123456789abcdep012345:0:2: ++%2La:-0x8p-16385:1:2:-0x0: ++%*2La:-0x8p-16385:0:2: ++%2La:-0x0p+0:1:2:-0x0: ++%*2La:-0x0p+0:0:2: ++%2La:-0x0p0:1:2:-0x0: ++%*2La:-0x0p0:0:2: ++%2La:-nan(09A_Zaz):0:-1: ++%*2La:-nan(09A_Zaz):0:-1: ++%2La:-nan():0:-1: ++%*2La:-nan():0:-1: ++%2La:nan():0:-1: ++%*2La:nan():0:-1: ++%2La:nan(09A_Zaz):0:-1: ++%*2La:nan(09A_Zaz):0:-1: ++# BZ12701 %2La:0x0p0:0:-1: ++# BZ12701 %*2La:0x0p0:0:-1: ++# BZ12701 %2La:0x0p+0:0:-1: ++# BZ12701 %*2La:0x0p+0:0:-1: ++# BZ12701 %2La:0x8p-16385:0:-1: ++# BZ12701 %*2La:0x8p-16385:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %2La:0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*2La:0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %2La:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*2La:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%2La:infinity:0:-1: ++%*2La:infinity:0:-1: ++%2La:+nan():0:-1: ++%*2La:+nan():0:-1: ++%2La:+nan(09A_Zaz):0:-1: ++%*2La:+nan(09A_Zaz):0:-1: ++%2La:+0x0p0:1:2:0x0: ++%*2La:+0x0p0:0:2: ++%2La:+0x0p+0:1:2:0x0: ++%*2La:+0x0p+0:0:2: ++%2La:+0x8p-16385:1:2:0x0: ++%*2La:+0x8p-16385:0:2: ++%2La:+0x2.3456789abcdef0123456789abcdep012345:1:2:0x0: ++%*2La:+0x2.3456789abcdef0123456789abcdep012345:0:2: ++%2La:+0x2.3456789abcdef0123456789abcdep+12345:1:2:0x0: ++%*2La:+0x2.3456789abcdef0123456789abcdep+12345:0:2: ++%2La:+0x7.fffffffffffffffffffffffffffcp16381:1:2:0x0: ++%*2La:+0x7.fffffffffffffffffffffffffffcp16381:0:2: ++%2La:+0xf.fffffffffffffffffffffffffff8p+16380:1:2:0x0: ++%*2La:+0xf.fffffffffffffffffffffffffff8p+16380:0:2: ++%2La:+infinity:0:-1: ++%*2La:+infinity:0:-1: ++%3La::0:-1: ++%*3La::0:-1: ++%3La:-infinity:0:-1: ++%*3La:-infinity:0:-1: ++# BZ12701 %3La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*3La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %3La:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*3La:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %3La:-0x8p-16385:0:-1: ++# BZ12701 %*3La:-0x8p-16385:0:-1: ++# BZ12701 %3La:-0x0p+0:0:-1: ++# BZ12701 %*3La:-0x0p+0:0:-1: ++# BZ12701 %3La:-0x0p0:0:-1: ++# BZ12701 %*3La:-0x0p0:0:-1: ++%3La:-nan(09A_Zaz):0:-1: ++%*3La:-nan(09A_Zaz):0:-1: ++%3La:-nan():0:-1: ++%*3La:-nan():0:-1: ++%3La:nan():1:3:nan: ++%*3La:nan():0:3: ++%3La:nan(09A_Zaz):1:3:nan: ++%*3La:nan(09A_Zaz):0:3: ++%3La:0x0p0:1:3:0x0: ++%*3La:0x0p0:0:3: ++%3La:0x0p+0:1:3:0x0: ++%*3La:0x0p+0:0:3: ++%3La:0x8p-16385:1:3:0x1p3: ++%*3La:0x8p-16385:0:3: ++%3La:0x2.3456789abcdef0123456789abcdep012345:1:3:0x1p1: ++%*3La:0x2.3456789abcdef0123456789abcdep012345:0:3: ++%3La:0x2.3456789abcdef0123456789abcdep+12345:1:3:0x1p1: ++%*3La:0x2.3456789abcdef0123456789abcdep+12345:0:3: ++%3La:0x7.fffffffffffffffffffffffffffcp16381:1:3:0x1.cp2: ++%*3La:0x7.fffffffffffffffffffffffffffcp16381:0:3: ++%3La:0xf.fffffffffffffffffffffffffff8p+16380:1:3:0x1.ep3: ++%*3La:0xf.fffffffffffffffffffffffffff8p+16380:0:3: ++%3La:infinity:1:3:inf: ++%*3La:infinity:0:3: ++%3La:+nan():0:-1: ++%*3La:+nan():0:-1: ++%3La:+nan(09A_Zaz):0:-1: ++%*3La:+nan(09A_Zaz):0:-1: ++# BZ12701 %3La:+0x0p0:0:-1: ++# BZ12701 %*3La:+0x0p0:0:-1: ++# BZ12701 %3La:+0x0p+0:0:-1: ++# BZ12701 %*3La:+0x0p+0:0:-1: ++# BZ12701 %3La:+0x8p-16385:0:-1: ++# BZ12701 %*3La:+0x8p-16385:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %3La:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*3La:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %3La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*3La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%3La:+infinity:0:-1: ++%*3La:+infinity:0:-1: ++%4La::0:-1: ++%*4La::0:-1: ++%4La:-infinity:1:4:-inf: ++%*4La:-infinity:0:4: ++%4La:-0xf.fffffffffffffffffffffffffff8p+16380:1:4:-0x1.ep3: ++%*4La:-0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4La:-0x7.fffffffffffffffffffffffffffcp16381:1:4:-0x1.cp2: ++%*4La:-0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4La:-0x2.3456789abcdef0123456789abcdep+12345:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4La:-0x2.3456789abcdef0123456789abcdep012345:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4La:-0x8p-16385:1:4:-0x1p3: ++%*4La:-0x8p-16385:0:4: ++%4La:-0x0p+0:1:4:-0x0: ++%*4La:-0x0p+0:0:4: ++%4La:-0x0p0:1:4:-0x0: ++%*4La:-0x0p0:0:4: ++%4La:-nan(09A_Zaz):1:4:-nan: ++%*4La:-nan(09A_Zaz):0:4: ++%4La:-nan():1:4:-nan: ++%*4La:-nan():0:4: ++%4La:nan():0:-1: ++%*4La:nan():0:-1: ++%4La:nan(09A_Zaz):0:-1: ++%*4La:nan(09A_Zaz):0:-1: ++# BZ12701 %4La:0x0p0:0:-1: ++# BZ12701 %*4La:0x0p0:0:-1: ++# BZ12701 %4La:0x0p+0:0:-1: ++# BZ12701 %*4La:0x0p+0:0:-1: ++# BZ12701 %4La:0x8p-16385:0:-1: ++# BZ12701 %*4La:0x8p-16385:0:-1: ++%4La:0x2.3456789abcdef0123456789abcdep012345:1:4:0x1p1: ++%*4La:0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4La:0x2.3456789abcdef0123456789abcdep+12345:1:4:0x1p1: ++%*4La:0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4La:0x7.fffffffffffffffffffffffffffcp16381:1:4:0x1.cp2: ++%*4La:0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4La:0xf.fffffffffffffffffffffffffff8p+16380:1:4:0x1.ep3: ++%*4La:0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4La:infinity:0:-1: ++%*4La:infinity:0:-1: ++%4La:+nan():1:4:nan: ++%*4La:+nan():0:4: ++%4La:+nan(09A_Zaz):1:4:nan: ++%*4La:+nan(09A_Zaz):0:4: ++%4La:+0x0p0:1:4:0x0: ++%*4La:+0x0p0:0:4: ++%4La:+0x0p+0:1:4:0x0: ++%*4La:+0x0p+0:0:4: ++%4La:+0x8p-16385:1:4:0x1p3: ++%*4La:+0x8p-16385:0:4: ++%4La:+0x2.3456789abcdef0123456789abcdep012345:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4La:+0x2.3456789abcdef0123456789abcdep+12345:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4La:+0x7.fffffffffffffffffffffffffffcp16381:1:4:0x1.cp2: ++%*4La:+0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4La:+0xf.fffffffffffffffffffffffffff8p+16380:1:4:0x1.ep3: ++%*4La:+0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4La:+infinity:1:4:inf: ++%*4La:+infinity:0:4: ++%5La::0:-1: ++%*5La::0:-1: ++%5La:-infinity:0:-1: ++%*5La:-infinity:0:-1: ++%5La:-0xf.fffffffffffffffffffffffffff8p+16380:1:5:-0x1.ep3: ++%*5La:-0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5La:-0x7.fffffffffffffffffffffffffffcp16381:1:5:-0x1.cp2: ++%*5La:-0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5La:-0x2.3456789abcdef0123456789abcdep+12345:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5La:-0x2.3456789abcdef0123456789abcdep012345:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef0123456789abcdep012345:0:5: ++# BZ12701 %5La:-0x8p-16385:0:-1: ++# BZ12701 %*5La:-0x8p-16385:0:-1: ++# BZ12701 %5La:-0x0p+0:0:-1: ++# BZ12701 %*5La:-0x0p+0:0:-1: ++# BZ12701 %5La:-0x0p0:0:-1: ++# BZ12701 %*5La:-0x0p0:0:-1: ++%5La:-nan(09A_Zaz):0:-1: ++%*5La:-nan(09A_Zaz):0:-1: ++%5La:-nan():0:-1: ++%*5La:-nan():0:-1: ++%5La:nan():1:5:nan: ++%*5La:nan():0:5: ++%5La:nan(09A_Zaz):0:-1: ++%*5La:nan(09A_Zaz):0:-1: ++%5La:0x0p0:1:5:0x0: ++%*5La:0x0p0:0:5: ++# BZ12701 %5La:0x0p+0:0:-1: ++# BZ12701 %*5La:0x0p+0:0:-1: ++# BZ12701 %5La:0x8p-16385:0:-1: ++# BZ12701 %*5La:0x8p-16385:0:-1: ++%5La:0x2.3456789abcdef0123456789abcdep012345:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef0123456789abcdep012345:0:5: ++%5La:0x2.3456789abcdef0123456789abcdep+12345:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5La:0x7.fffffffffffffffffffffffffffcp16381:1:5:0x1.fcp2: ++%*5La:0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5La:0xf.fffffffffffffffffffffffffff8p+16380:1:5:0x1.fep3: ++%*5La:0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5La:infinity:0:-1: ++%*5La:infinity:0:-1: ++%5La:+nan():0:-1: ++%*5La:+nan():0:-1: ++%5La:+nan(09A_Zaz):0:-1: ++%*5La:+nan(09A_Zaz):0:-1: ++# BZ12701 %5La:+0x0p0:0:-1: ++# BZ12701 %*5La:+0x0p0:0:-1: ++# BZ12701 %5La:+0x0p+0:0:-1: ++# BZ12701 %*5La:+0x0p+0:0:-1: ++# BZ12701 %5La:+0x8p-16385:0:-1: ++# BZ12701 %*5La:+0x8p-16385:0:-1: ++%5La:+0x2.3456789abcdef0123456789abcdep012345:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef0123456789abcdep012345:0:5: ++%5La:+0x2.3456789abcdef0123456789abcdep+12345:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5La:+0x7.fffffffffffffffffffffffffffcp16381:1:5:0x1.cp2: ++%*5La:+0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5La:+0xf.fffffffffffffffffffffffffff8p+16380:1:5:0x1.ep3: ++%*5La:+0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5La:+infinity:0:-1: ++%*5La:+infinity:0:-1: ++%6La::0:-1: ++%*6La::0:-1: ++%6La:-infinity:0:-1: ++%*6La:-infinity:0:-1: ++%6La:-0xf.fffffffffffffffffffffffffff8p+16380:1:6:-0x1.fep3: ++%*6La:-0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6La:-0x7.fffffffffffffffffffffffffffcp16381:1:6:-0x1.fcp2: ++%*6La:-0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6La:-0x2.3456789abcdef0123456789abcdep+12345:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6La:-0x2.3456789abcdef0123456789abcdep012345:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef0123456789abcdep012345:0:6: ++# BZ12701 %6La:-0x8p-16385:0:-1: ++# BZ12701 %*6La:-0x8p-16385:0:-1: ++# BZ12701 %6La:-0x0p+0:0:-1: ++# BZ12701 %*6La:-0x0p+0:0:-1: ++%6La:-0x0p0:1:6:-0x0: ++%*6La:-0x0p0:0:6: ++%6La:-nan(09A_Zaz):0:-1: ++%*6La:-nan(09A_Zaz):0:-1: ++%6La:-nan():1:6:-nan: ++%*6La:-nan():0:6: ++%6La:nan():1:5:nan: ++%*6La:nan():0:5: ++%6La:nan(09A_Zaz):0:-1: ++%*6La:nan(09A_Zaz):0:-1: ++%6La:0x0p0:1:5:0x0: ++%*6La:0x0p0:0:5: ++%6La:0x0p+0:1:6:0x0: ++%*6La:0x0p+0:0:6: ++%6La:0x8p-16385:1:6:0x1p2: ++%*6La:0x8p-16385:0:6: ++%6La:0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef0123456789abcdep012345:0:6: ++%6La:0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6La:0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.ffcp2: ++%*6La:0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6La:0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.ffep3: ++%*6La:0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6La:infinity:0:-1: ++%*6La:infinity:0:-1: ++%6La:+nan():1:6:nan: ++%*6La:+nan():0:6: ++%6La:+nan(09A_Zaz):0:-1: ++%*6La:+nan(09A_Zaz):0:-1: ++%6La:+0x0p0:1:6:0x0: ++%*6La:+0x0p0:0:6: ++# BZ12701 %6La:+0x0p+0:0:-1: ++# BZ12701 %*6La:+0x0p+0:0:-1: ++# BZ12701 %6La:+0x8p-16385:0:-1: ++# BZ12701 %*6La:+0x8p-16385:0:-1: ++%6La:+0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef0123456789abcdep012345:0:6: ++%6La:+0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6La:+0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.fcp2: ++%*6La:+0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6La:+0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.fep3: ++%*6La:+0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6La:+infinity:0:-1: ++%*6La:+infinity:0:-1: ++%35La::0:-1: ++%*35La::0:-1: ++%35La:-infinity:1:9:-inf: ++%*35La:-infinity:0:9: ++# BZ12701 %35La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*35La:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%35La:-0x7.fffffffffffffffffffffffffffcp16381:1:35:-0x1.ffffffffffffffffffffffffffffp3: ++%*35La:-0x7.fffffffffffffffffffffffffffcp16381:0:35: ++# BZ12701 %35La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*35La:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%35La:-0x2.3456789abcdef0123456789abcdep012345:1:35:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35La:-0x2.3456789abcdef0123456789abcdep012345:0:35: ++%35La:-0x8p-16385:1:11:-0x1p-16382: ++%*35La:-0x8p-16385:0:11: ++%35La:-0x0p+0:1:7:-0x0: ++%*35La:-0x0p+0:0:7: ++%35La:-0x0p0:1:6:-0x0: ++%*35La:-0x0p0:0:6: ++%35La:-nan(09A_Zaz):1:13:-nan: ++%*35La:-nan(09A_Zaz):0:13: ++%35La:-nan():1:6:-nan: ++%*35La:-nan():0:6: ++%35La:nan():1:5:nan: ++%*35La:nan():0:5: ++%35La:nan(09A_Zaz):1:12:nan: ++%*35La:nan(09A_Zaz):0:12: ++%35La:0x0p0:1:5:0x0: ++%*35La:0x0p0:0:5: ++%35La:0x0p+0:1:6:0x0: ++%*35La:0x0p+0:0:6: ++%35La:0x8p-16385:1:10:0x1p-16382: ++%*35La:0x8p-16385:0:10: ++%35La:0x2.3456789abcdef0123456789abcdep012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35La:0x2.3456789abcdef0123456789abcdep012345:0:35: ++%35La:0x2.3456789abcdef0123456789abcdep+12345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35La:0x2.3456789abcdef0123456789abcdep+12345:0:35: ++%35La:0x7.fffffffffffffffffffffffffffcp16381:1:35:0x1.ffffffffffffffffffffffffffffp18: ++%*35La:0x7.fffffffffffffffffffffffffffcp16381:0:35: ++%35La:0xf.fffffffffffffffffffffffffff8p+16380:1:35:0x1.ffffffffffffffffffffffffffffp4: ++%*35La:0xf.fffffffffffffffffffffffffff8p+16380:0:35: ++%35La:infinity:1:8:inf: ++%*35La:infinity:0:8: ++%35La:+nan():1:6:nan: ++%*35La:+nan():0:6: ++%35La:+nan(09A_Zaz):1:13:nan: ++%*35La:+nan(09A_Zaz):0:13: ++%35La:+0x0p0:1:6:0x0: ++%*35La:+0x0p0:0:6: ++%35La:+0x0p+0:1:7:0x0: ++%*35La:+0x0p+0:0:7: ++%35La:+0x8p-16385:1:11:0x1p-16382: ++%*35La:+0x8p-16385:0:11: ++%35La:+0x2.3456789abcdef0123456789abcdep012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35La:+0x2.3456789abcdef0123456789abcdep012345:0:35: ++# BZ12701 %35La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*35La:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%35La:+0x7.fffffffffffffffffffffffffffcp16381:1:35:0x1.ffffffffffffffffffffffffffffp3: ++%*35La:+0x7.fffffffffffffffffffffffffffcp16381:0:35: ++# BZ12701 %35La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*35La:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%35La:+infinity:1:9:inf: ++%*35La:+infinity:0:9: ++%53La::0:-1: ++%*53La::0:-1: ++%53La:-infinity:1:9:-inf: ++%*53La:-infinity:0:9: ++%53La:-0xf.fffffffffffffffffffffffffff8p+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:-0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53La:-0x7.fffffffffffffffffffffffffffcp16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:-0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53La:-0x2.3456789abcdef0123456789abcdep+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:-0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53La:-0x2.3456789abcdef0123456789abcdep012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:-0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53La:-0x8p-16385:1:11:-0x1p-16382: ++%*53La:-0x8p-16385:0:11: ++%53La:-0x0p+0:1:7:-0x0: ++%*53La:-0x0p+0:0:7: ++%53La:-0x0p0:1:6:-0x0: ++%*53La:-0x0p0:0:6: ++%53La:-nan(09A_Zaz):1:13:-nan: ++%*53La:-nan(09A_Zaz):0:13: ++%53La:-nan():1:6:-nan: ++%*53La:-nan():0:6: ++%53La:nan():1:5:nan: ++%*53La:nan():0:5: ++%53La:nan(09A_Zaz):1:12:nan: ++%*53La:nan(09A_Zaz):0:12: ++%53La:0x0p0:1:5:0x0: ++%*53La:0x0p0:0:5: ++%53La:0x0p+0:1:6:0x0: ++%*53La:0x0p+0:0:6: ++%53La:0x8p-16385:1:10:0x1p-16382: ++%*53La:0x8p-16385:0:10: ++%53La:0x2.3456789abcdef0123456789abcdep012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:0x2.3456789abcdef0123456789abcdep012345:0:39: ++%53La:0x2.3456789abcdef0123456789abcdep+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:0x2.3456789abcdef0123456789abcdep+12345:0:39: ++%53La:0x7.fffffffffffffffffffffffffffcp16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:0x7.fffffffffffffffffffffffffffcp16381:0:38: ++%53La:0xf.fffffffffffffffffffffffffff8p+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:0xf.fffffffffffffffffffffffffff8p+16380:0:39: ++%53La:infinity:1:8:inf: ++%*53La:infinity:0:8: ++%53La:+nan():1:6:nan: ++%*53La:+nan():0:6: ++%53La:+nan(09A_Zaz):1:13:nan: ++%*53La:+nan(09A_Zaz):0:13: ++%53La:+0x0p0:1:6:0x0: ++%*53La:+0x0p0:0:6: ++%53La:+0x0p+0:1:7:0x0: ++%*53La:+0x0p+0:0:7: ++%53La:+0x8p-16385:1:11:0x1p-16382: ++%*53La:+0x8p-16385:0:11: ++%53La:+0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:+0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53La:+0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La:+0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53La:+0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:+0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53La:+0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La:+0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53La:+infinity:1:9:inf: ++%*53La:+infinity:0:9: ++%5La: :0:-1: ++%*5La: :0:-1: ++%5La: -infinity:0:-1: ++%*5La: -infinity:0:-1: ++%5La: -0xf.fffffffffffffffffffffffffff8p+16380:1:6:-0x1.ep3: ++%*5La: -0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5La: -0x7.fffffffffffffffffffffffffffcp16381:1:6:-0x1.cp2: ++%*5La: -0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5La: -0x2.3456789abcdef0123456789abcdep+12345:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5La: -0x2.3456789abcdef0123456789abcdep012345:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef0123456789abcdep012345:0:6: ++# BZ12701 %5La: -0x8p-16385:0:-1: ++# BZ12701 %*5La: -0x8p-16385:0:-1: ++# BZ12701 %5La: -0x0p+0:0:-1: ++# BZ12701 %*5La: -0x0p+0:0:-1: ++# BZ12701 %5La: -0x0p0:0:-1: ++# BZ12701 %*5La: -0x0p0:0:-1: ++%5La: -nan(09A_Zaz):0:-1: ++%*5La: -nan(09A_Zaz):0:-1: ++%5La: -nan():0:-1: ++%*5La: -nan():0:-1: ++%5La: nan():1:6:nan: ++%*5La: nan():0:6: ++%5La: nan(09A_Zaz):0:-1: ++%*5La: nan(09A_Zaz):0:-1: ++%5La: 0x0p0:1:6:0x0: ++%*5La: 0x0p0:0:6: ++# BZ12701 %5La: 0x0p+0:0:-1: ++# BZ12701 %*5La: 0x0p+0:0:-1: ++# BZ12701 %5La: 0x8p-16385:0:-1: ++# BZ12701 %*5La: 0x8p-16385:0:-1: ++%5La: 0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef0123456789abcdep012345:0:6: ++%5La: 0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5La: 0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.fcp2: ++%*5La: 0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5La: 0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.fep3: ++%*5La: 0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5La: infinity:0:-1: ++%*5La: infinity:0:-1: ++%5La: +nan():0:-1: ++%*5La: +nan():0:-1: ++%5La: +nan(09A_Zaz):0:-1: ++%*5La: +nan(09A_Zaz):0:-1: ++# BZ12701 %5La: +0x0p0:0:-1: ++# BZ12701 %*5La: +0x0p0:0:-1: ++# BZ12701 %5La: +0x0p+0:0:-1: ++# BZ12701 %*5La: +0x0p+0:0:-1: ++# BZ12701 %5La: +0x8p-16385:0:-1: ++# BZ12701 %*5La: +0x8p-16385:0:-1: ++%5La: +0x2.3456789abcdef0123456789abcdep012345:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef0123456789abcdep012345:0:6: ++%5La: +0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5La: +0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.cp2: ++%*5La: +0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5La: +0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.ep3: ++%*5La: +0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5La: +infinity:0:-1: ++%*5La: +infinity:0:-1: ++%53La: :0:-1: ++%*53La: :0:-1: ++%53La: -infinity:1:10:-inf: ++%*53La: -infinity:0:10: ++%53La: -0xf.fffffffffffffffffffffffffff8p+16380:1:41:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: -0xf.fffffffffffffffffffffffffff8p+16380:0:41: ++%53La: -0x7.fffffffffffffffffffffffffffcp16381:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: -0x7.fffffffffffffffffffffffffffcp16381:0:40: ++%53La: -0x2.3456789abcdef0123456789abcdep+12345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: -0x2.3456789abcdef0123456789abcdep+12345:0:41: ++%53La: -0x2.3456789abcdef0123456789abcdep012345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: -0x2.3456789abcdef0123456789abcdep012345:0:41: ++%53La: -0x8p-16385:1:12:-0x1p-16382: ++%*53La: -0x8p-16385:0:12: ++%53La: -0x0p+0:1:8:-0x0: ++%*53La: -0x0p+0:0:8: ++%53La: -0x0p0:1:7:-0x0: ++%*53La: -0x0p0:0:7: ++%53La: -nan(09A_Zaz):1:14:-nan: ++%*53La: -nan(09A_Zaz):0:14: ++%53La: -nan():1:7:-nan: ++%*53La: -nan():0:7: ++%53La: nan():1:6:nan: ++%*53La: nan():0:6: ++%53La: nan(09A_Zaz):1:13:nan: ++%*53La: nan(09A_Zaz):0:13: ++%53La: 0x0p0:1:6:0x0: ++%*53La: 0x0p0:0:6: ++%53La: 0x0p+0:1:7:0x0: ++%*53La: 0x0p+0:0:7: ++%53La: 0x8p-16385:1:11:0x1p-16382: ++%*53La: 0x8p-16385:0:11: ++%53La: 0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: 0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53La: 0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: 0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53La: 0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: 0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53La: 0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: 0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53La: infinity:1:9:inf: ++%*53La: infinity:0:9: ++%53La: +nan():1:7:nan: ++%*53La: +nan():0:7: ++%53La: +nan(09A_Zaz):1:14:nan: ++%*53La: +nan(09A_Zaz):0:14: ++%53La: +0x0p0:1:7:0x0: ++%*53La: +0x0p0:0:7: ++%53La: +0x0p+0:1:8:0x0: ++%*53La: +0x0p+0:0:8: ++%53La: +0x8p-16385:1:12:0x1p-16382: ++%*53La: +0x8p-16385:0:12: ++%53La: +0x2.3456789abcdef0123456789abcdep012345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: +0x2.3456789abcdef0123456789abcdep012345:0:41: ++%53La: +0x2.3456789abcdef0123456789abcdep+12345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53La: +0x2.3456789abcdef0123456789abcdep+12345:0:41: ++%53La: +0x7.fffffffffffffffffffffffffffcp16381:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: +0x7.fffffffffffffffffffffffffffcp16381:0:40: ++%53La: +0xf.fffffffffffffffffffffffffff8p+16380:1:41:0x1.ffffffffffffffffffffffffffffp16383: ++%*53La: +0xf.fffffffffffffffffffffffffff8p+16380:0:41: ++%53La: +infinity:1:10:inf: ++%*53La: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input +new file mode 100644 +index 0000000000000000..7208c6e37b10942d +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-aa.input +@@ -0,0 +1,682 @@ ++%LA::0:-1: ++%*LA::0:-1: ++%LA:-INFINITY:1:9:-inf: ++%*LA:-INFINITY:0:9: ++%LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%LA:-0X8P-16385:1:11:-0x1p-16382: ++%*LA:-0X8P-16385:0:11: ++%LA:-0X0P+0:1:7:-0x0: ++%*LA:-0X0P+0:0:7: ++%LA:-0X0P0:1:6:-0x0: ++%*LA:-0X0P0:0:6: ++%LA:-NAN(09A_Zaz):1:13:-nan: ++%*LA:-NAN(09A_Zaz):0:13: ++%LA:-NAN():1:6:-nan: ++%*LA:-NAN():0:6: ++%LA:NAN():1:5:nan: ++%*LA:NAN():0:5: ++%LA:NAN(09A_Zaz):1:12:nan: ++%*LA:NAN(09A_Zaz):0:12: ++%LA:0X0P0:1:5:0x0: ++%*LA:0X0P0:0:5: ++%LA:0X0P+0:1:6:0x0: ++%*LA:0X0P+0:0:6: ++%LA:0X8P-16385:1:10:0x1p-16382: ++%*LA:0X8P-16385:0:10: ++%LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:39: ++%LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:39: ++%LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:38: ++%LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: ++%LA:INFINITY:1:8:inf: ++%*LA:INFINITY:0:8: ++%LA:+NAN():1:6:nan: ++%*LA:+NAN():0:6: ++%LA:+NAN(09A_Zaz):1:13:nan: ++%*LA:+NAN(09A_Zaz):0:13: ++%LA:+0X0P0:1:6:0x0: ++%*LA:+0X0P0:0:6: ++%LA:+0X0P+0:1:7:0x0: ++%*LA:+0X0P+0:0:7: ++%LA:+0X8P-16385:1:11:0x1p-16382: ++%*LA:+0X8P-16385:0:11: ++%LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%LA:+INFINITY:1:9:inf: ++%*LA:+INFINITY:0:9: ++%1LA::0:-1: ++%*1LA::0:-1: ++%1LA:-INFINITY:0:-1: ++%*1LA:-INFINITY:0:-1: ++%1LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%*1LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%1LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%*1LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%1LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%*1LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%1LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%*1LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%1LA:-0X8P-16385:0:-1: ++%*1LA:-0X8P-16385:0:-1: ++%1LA:-0X0P+0:0:-1: ++%*1LA:-0X0P+0:0:-1: ++%1LA:-0X0P0:0:-1: ++%*1LA:-0X0P0:0:-1: ++%1LA:-NAN(09A_Zaz):0:-1: ++%*1LA:-NAN(09A_Zaz):0:-1: ++%1LA:-NAN():0:-1: ++%*1LA:-NAN():0:-1: ++%1LA:NAN():0:-1: ++%*1LA:NAN():0:-1: ++%1LA:NAN(09A_Zaz):0:-1: ++%*1LA:NAN(09A_Zaz):0:-1: ++%1LA:0X0P0:1:1:0x0: ++%*1LA:0X0P0:0:1: ++%1LA:0X0P+0:1:1:0x0: ++%*1LA:0X0P+0:0:1: ++%1LA:0X8P-16385:1:1:0x0: ++%*1LA:0X8P-16385:0:1: ++%1LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:1: ++%1LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:1: ++%1LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:1:0x0: ++%*1LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:1: ++%1LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:1:0x0: ++%*1LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:1: ++%1LA:INFINITY:0:-1: ++%*1LA:INFINITY:0:-1: ++%1LA:+NAN():0:-1: ++%*1LA:+NAN():0:-1: ++%1LA:+NAN(09A_Zaz):0:-1: ++%*1LA:+NAN(09A_Zaz):0:-1: ++%1LA:+0X0P0:0:-1: ++%*1LA:+0X0P0:0:-1: ++%1LA:+0X0P+0:0:-1: ++%*1LA:+0X0P+0:0:-1: ++%1LA:+0X8P-16385:0:-1: ++%*1LA:+0X8P-16385:0:-1: ++%1LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%*1LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%1LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%*1LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%1LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%*1LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%1LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%*1LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%1LA:+INFINITY:0:-1: ++%*1LA:+INFINITY:0:-1: ++%2LA::0:-1: ++%*2LA::0:-1: ++%2LA:-INFINITY:0:-1: ++%*2LA:-INFINITY:0:-1: ++%2LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:2:-0x0: ++%*2LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:2: ++%2LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:2:-0x0: ++%*2LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:2: ++%2LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:2: ++%2LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:2: ++%2LA:-0X8P-16385:1:2:-0x0: ++%*2LA:-0X8P-16385:0:2: ++%2LA:-0X0P+0:1:2:-0x0: ++%*2LA:-0X0P+0:0:2: ++%2LA:-0X0P0:1:2:-0x0: ++%*2LA:-0X0P0:0:2: ++%2LA:-NAN(09A_Zaz):0:-1: ++%*2LA:-NAN(09A_Zaz):0:-1: ++%2LA:-NAN():0:-1: ++%*2LA:-NAN():0:-1: ++%2LA:NAN():0:-1: ++%*2LA:NAN():0:-1: ++%2LA:NAN(09A_Zaz):0:-1: ++%*2LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LA:0X0P0:0:-1: ++# BZ12701 %*2LA:0X0P0:0:-1: ++# BZ12701 %2LA:0X0P+0:0:-1: ++# BZ12701 %*2LA:0X0P+0:0:-1: ++# BZ12701 %2LA:0X8P-16385:0:-1: ++# BZ12701 %*2LA:0X8P-16385:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %2LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*2LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %2LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*2LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%2LA:INFINITY:0:-1: ++%*2LA:INFINITY:0:-1: ++%2LA:+NAN():0:-1: ++%*2LA:+NAN():0:-1: ++%2LA:+NAN(09A_Zaz):0:-1: ++%*2LA:+NAN(09A_Zaz):0:-1: ++%2LA:+0X0P0:1:2:0x0: ++%*2LA:+0X0P0:0:2: ++%2LA:+0X0P+0:1:2:0x0: ++%*2LA:+0X0P+0:0:2: ++%2LA:+0X8P-16385:1:2:0x0: ++%*2LA:+0X8P-16385:0:2: ++%2LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:2: ++%2LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:2: ++%2LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:2:0x0: ++%*2LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:2: ++%2LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:2:0x0: ++%*2LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:2: ++%2LA:+INFINITY:0:-1: ++%*2LA:+INFINITY:0:-1: ++%3LA::0:-1: ++%*3LA::0:-1: ++%3LA:-INFINITY:0:-1: ++%*3LA:-INFINITY:0:-1: ++# BZ12701 %3LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*3LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %3LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*3LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %3LA:-0X8P-16385:0:-1: ++# BZ12701 %*3LA:-0X8P-16385:0:-1: ++# BZ12701 %3LA:-0X0P+0:0:-1: ++# BZ12701 %*3LA:-0X0P+0:0:-1: ++# BZ12701 %3LA:-0X0P0:0:-1: ++# BZ12701 %*3LA:-0X0P0:0:-1: ++%3LA:-NAN(09A_Zaz):0:-1: ++%*3LA:-NAN(09A_Zaz):0:-1: ++%3LA:-NAN():0:-1: ++%*3LA:-NAN():0:-1: ++%3LA:NAN():1:3:nan: ++%*3LA:NAN():0:3: ++%3LA:NAN(09A_Zaz):1:3:nan: ++%*3LA:NAN(09A_Zaz):0:3: ++%3LA:0X0P0:1:3:0x0: ++%*3LA:0X0P0:0:3: ++%3LA:0X0P+0:1:3:0x0: ++%*3LA:0X0P+0:0:3: ++%3LA:0X8P-16385:1:3:0x1p3: ++%*3LA:0X8P-16385:0:3: ++%3LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:3: ++%3LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:3: ++%3LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:3:0x1.cp2: ++%*3LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:3: ++%3LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:3:0x1.ep3: ++%*3LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:3: ++%3LA:INFINITY:1:3:inf: ++%*3LA:INFINITY:0:3: ++%3LA:+NAN():0:-1: ++%*3LA:+NAN():0:-1: ++%3LA:+NAN(09A_Zaz):0:-1: ++%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LA:+0X0P0:0:-1: ++# BZ12701 %*3LA:+0X0P0:0:-1: ++# BZ12701 %3LA:+0X0P+0:0:-1: ++# BZ12701 %*3LA:+0X0P+0:0:-1: ++# BZ12701 %3LA:+0X8P-16385:0:-1: ++# BZ12701 %*3LA:+0X8P-16385:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %3LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*3LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %3LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*3LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%3LA:+INFINITY:0:-1: ++%*3LA:+INFINITY:0:-1: ++%4LA::0:-1: ++%*4LA::0:-1: ++%4LA:-INFINITY:1:4:-inf: ++%*4LA:-INFINITY:0:4: ++%4LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:-0x1.ep3: ++%*4LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:-0x1.cp2: ++%*4LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LA:-0X8P-16385:1:4:-0x1p3: ++%*4LA:-0X8P-16385:0:4: ++%4LA:-0X0P+0:1:4:-0x0: ++%*4LA:-0X0P+0:0:4: ++%4LA:-0X0P0:1:4:-0x0: ++%*4LA:-0X0P0:0:4: ++%4LA:-NAN(09A_Zaz):1:4:-nan: ++%*4LA:-NAN(09A_Zaz):0:4: ++%4LA:-NAN():1:4:-nan: ++%*4LA:-NAN():0:4: ++%4LA:NAN():0:-1: ++%*4LA:NAN():0:-1: ++%4LA:NAN(09A_Zaz):0:-1: ++%*4LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LA:0X0P0:0:-1: ++# BZ12701 %*4LA:0X0P0:0:-1: ++# BZ12701 %4LA:0X0P+0:0:-1: ++# BZ12701 %*4LA:0X0P+0:0:-1: ++# BZ12701 %4LA:0X8P-16385:0:-1: ++# BZ12701 %*4LA:0X8P-16385:0:-1: ++%4LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:0x1.cp2: ++%*4LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:0x1.ep3: ++%*4LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LA:INFINITY:0:-1: ++%*4LA:INFINITY:0:-1: ++%4LA:+NAN():1:4:nan: ++%*4LA:+NAN():0:4: ++%4LA:+NAN(09A_Zaz):1:4:nan: ++%*4LA:+NAN(09A_Zaz):0:4: ++%4LA:+0X0P0:1:4:0x0: ++%*4LA:+0X0P0:0:4: ++%4LA:+0X0P+0:1:4:0x0: ++%*4LA:+0X0P+0:0:4: ++%4LA:+0X8P-16385:1:4:0x1p3: ++%*4LA:+0X8P-16385:0:4: ++%4LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:0x1.cp2: ++%*4LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:0x1.ep3: ++%*4LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LA:+INFINITY:1:4:inf: ++%*4LA:+INFINITY:0:4: ++%5LA::0:-1: ++%*5LA::0:-1: ++%5LA:-INFINITY:0:-1: ++%*5LA:-INFINITY:0:-1: ++%5LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:-0x1.ep3: ++%*5LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:-0x1.cp2: ++%*5LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++# BZ12701 %5LA:-0X8P-16385:0:-1: ++# BZ12701 %*5LA:-0X8P-16385:0:-1: ++# BZ12701 %5LA:-0X0P+0:0:-1: ++# BZ12701 %*5LA:-0X0P+0:0:-1: ++# BZ12701 %5LA:-0X0P0:0:-1: ++# BZ12701 %*5LA:-0X0P0:0:-1: ++%5LA:-NAN(09A_Zaz):0:-1: ++%*5LA:-NAN(09A_Zaz):0:-1: ++%5LA:-NAN():0:-1: ++%*5LA:-NAN():0:-1: ++%5LA:NAN():1:5:nan: ++%*5LA:NAN():0:5: ++%5LA:NAN(09A_Zaz):0:-1: ++%*5LA:NAN(09A_Zaz):0:-1: ++%5LA:0X0P0:1:5:0x0: ++%*5LA:0X0P0:0:5: ++# BZ12701 %5LA:0X0P+0:0:-1: ++# BZ12701 %*5LA:0X0P+0:0:-1: ++# BZ12701 %5LA:0X8P-16385:0:-1: ++# BZ12701 %*5LA:0X8P-16385:0:-1: ++%5LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++%5LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:0x1.fcp2: ++%*5LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:0x1.fep3: ++%*5LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LA:INFINITY:0:-1: ++%*5LA:INFINITY:0:-1: ++%5LA:+NAN():0:-1: ++%*5LA:+NAN():0:-1: ++%5LA:+NAN(09A_Zaz):0:-1: ++%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA:+0X0P0:0:-1: ++# BZ12701 %*5LA:+0X0P0:0:-1: ++# BZ12701 %5LA:+0X0P+0:0:-1: ++# BZ12701 %*5LA:+0X0P+0:0:-1: ++# BZ12701 %5LA:+0X8P-16385:0:-1: ++# BZ12701 %*5LA:+0X8P-16385:0:-1: ++%5LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++%5LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:0x1.cp2: ++%*5LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:0x1.ep3: ++%*5LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LA:+INFINITY:0:-1: ++%*5LA:+INFINITY:0:-1: ++%6LA::0:-1: ++%*6LA::0:-1: ++%6LA:-INFINITY:0:-1: ++%*6LA:-INFINITY:0:-1: ++%6LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:-0x1.fep3: ++%*6LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:-0x1.fcp2: ++%*6LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++# BZ12701 %6LA:-0X8P-16385:0:-1: ++# BZ12701 %*6LA:-0X8P-16385:0:-1: ++# BZ12701 %6LA:-0X0P+0:0:-1: ++# BZ12701 %*6LA:-0X0P+0:0:-1: ++%6LA:-0X0P0:1:6:-0x0: ++%*6LA:-0X0P0:0:6: ++%6LA:-NAN(09A_Zaz):0:-1: ++%*6LA:-NAN(09A_Zaz):0:-1: ++%6LA:-NAN():1:6:-nan: ++%*6LA:-NAN():0:6: ++%6LA:NAN():1:5:nan: ++%*6LA:NAN():0:5: ++%6LA:NAN(09A_Zaz):0:-1: ++%*6LA:NAN(09A_Zaz):0:-1: ++%6LA:0X0P0:1:5:0x0: ++%*6LA:0X0P0:0:5: ++%6LA:0X0P+0:1:6:0x0: ++%*6LA:0X0P+0:0:6: ++%6LA:0X8P-16385:1:6:0x1p2: ++%*6LA:0X8P-16385:0:6: ++%6LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%6LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.ffcp2: ++%*6LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.ffep3: ++%*6LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LA:INFINITY:0:-1: ++%*6LA:INFINITY:0:-1: ++%6LA:+NAN():1:6:nan: ++%*6LA:+NAN():0:6: ++%6LA:+NAN(09A_Zaz):0:-1: ++%*6LA:+NAN(09A_Zaz):0:-1: ++%6LA:+0X0P0:1:6:0x0: ++%*6LA:+0X0P0:0:6: ++# BZ12701 %6LA:+0X0P+0:0:-1: ++# BZ12701 %*6LA:+0X0P+0:0:-1: ++# BZ12701 %6LA:+0X8P-16385:0:-1: ++# BZ12701 %*6LA:+0X8P-16385:0:-1: ++%6LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%6LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.fcp2: ++%*6LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.fep3: ++%*6LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LA:+INFINITY:0:-1: ++%*6LA:+INFINITY:0:-1: ++%35LA::0:-1: ++%*35LA::0:-1: ++%35LA:-INFINITY:1:9:-inf: ++%*35LA:-INFINITY:0:9: ++# BZ12701 %35LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*35LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%35LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:-0x1.ffffffffffffffffffffffffffffp3: ++%*35LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++# BZ12701 %35LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*35LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%35LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++%35LA:-0X8P-16385:1:11:-0x1p-16382: ++%*35LA:-0X8P-16385:0:11: ++%35LA:-0X0P+0:1:7:-0x0: ++%*35LA:-0X0P+0:0:7: ++%35LA:-0X0P0:1:6:-0x0: ++%*35LA:-0X0P0:0:6: ++%35LA:-NAN(09A_Zaz):1:13:-nan: ++%*35LA:-NAN(09A_Zaz):0:13: ++%35LA:-NAN():1:6:-nan: ++%*35LA:-NAN():0:6: ++%35LA:NAN():1:5:nan: ++%*35LA:NAN():0:5: ++%35LA:NAN(09A_Zaz):1:12:nan: ++%*35LA:NAN(09A_Zaz):0:12: ++%35LA:0X0P0:1:5:0x0: ++%*35LA:0X0P0:0:5: ++%35LA:0X0P+0:1:6:0x0: ++%*35LA:0X0P+0:0:6: ++%35LA:0X8P-16385:1:10:0x1p-16382: ++%*35LA:0X8P-16385:0:10: ++%35LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++%35LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:35: ++%35LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:0x1.ffffffffffffffffffffffffffffp18: ++%*35LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++%35LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:35:0x1.ffffffffffffffffffffffffffffp4: ++%*35LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:35: ++%35LA:INFINITY:1:8:inf: ++%*35LA:INFINITY:0:8: ++%35LA:+NAN():1:6:nan: ++%*35LA:+NAN():0:6: ++%35LA:+NAN(09A_Zaz):1:13:nan: ++%*35LA:+NAN(09A_Zaz):0:13: ++%35LA:+0X0P0:1:6:0x0: ++%*35LA:+0X0P0:0:6: ++%35LA:+0X0P+0:1:7:0x0: ++%*35LA:+0X0P+0:0:7: ++%35LA:+0X8P-16385:1:11:0x1p-16382: ++%*35LA:+0X8P-16385:0:11: ++%35LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++# BZ12701 %35LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*35LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%35LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:0x1.ffffffffffffffffffffffffffffp3: ++%*35LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++# BZ12701 %35LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*35LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%35LA:+INFINITY:1:9:inf: ++%*35LA:+INFINITY:0:9: ++%53LA::0:-1: ++%*53LA::0:-1: ++%53LA:-INFINITY:1:9:-inf: ++%*53LA:-INFINITY:0:9: ++%53LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LA:-0X8P-16385:1:11:-0x1p-16382: ++%*53LA:-0X8P-16385:0:11: ++%53LA:-0X0P+0:1:7:-0x0: ++%*53LA:-0X0P+0:0:7: ++%53LA:-0X0P0:1:6:-0x0: ++%*53LA:-0X0P0:0:6: ++%53LA:-NAN(09A_Zaz):1:13:-nan: ++%*53LA:-NAN(09A_Zaz):0:13: ++%53LA:-NAN():1:6:-nan: ++%*53LA:-NAN():0:6: ++%53LA:NAN():1:5:nan: ++%*53LA:NAN():0:5: ++%53LA:NAN(09A_Zaz):1:12:nan: ++%*53LA:NAN(09A_Zaz):0:12: ++%53LA:0X0P0:1:5:0x0: ++%*53LA:0X0P0:0:5: ++%53LA:0X0P+0:1:6:0x0: ++%*53LA:0X0P+0:0:6: ++%53LA:0X8P-16385:1:10:0x1p-16382: ++%*53LA:0X8P-16385:0:10: ++%53LA:0X2.3456789ABCDEF0123456789ABCDEP012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:0X2.3456789ABCDEF0123456789ABCDEP012345:0:39: ++%53LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:39: ++%53LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:38: ++%53LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: ++%53LA:INFINITY:1:8:inf: ++%*53LA:INFINITY:0:8: ++%53LA:+NAN():1:6:nan: ++%*53LA:+NAN():0:6: ++%53LA:+NAN(09A_Zaz):1:13:nan: ++%*53LA:+NAN(09A_Zaz):0:13: ++%53LA:+0X0P0:1:6:0x0: ++%*53LA:+0X0P0:0:6: ++%53LA:+0X0P+0:1:7:0x0: ++%*53LA:+0X0P+0:0:7: ++%53LA:+0X8P-16385:1:11:0x1p-16382: ++%*53LA:+0X8P-16385:0:11: ++%53LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LA:+INFINITY:1:9:inf: ++%*53LA:+INFINITY:0:9: ++%5LA: :0:-1: ++%*5LA: :0:-1: ++%5LA: -INFINITY:0:-1: ++%*5LA: -INFINITY:0:-1: ++%5LA: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:-0x1.ep3: ++%*5LA: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LA: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:-0x1.cp2: ++%*5LA: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LA: -0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LA: -0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++# BZ12701 %5LA: -0X8P-16385:0:-1: ++# BZ12701 %*5LA: -0X8P-16385:0:-1: ++# BZ12701 %5LA: -0X0P+0:0:-1: ++# BZ12701 %*5LA: -0X0P+0:0:-1: ++# BZ12701 %5LA: -0X0P0:0:-1: ++# BZ12701 %*5LA: -0X0P0:0:-1: ++%5LA: -NAN(09A_Zaz):0:-1: ++%*5LA: -NAN(09A_Zaz):0:-1: ++%5LA: -NAN():0:-1: ++%*5LA: -NAN():0:-1: ++%5LA: NAN():1:6:nan: ++%*5LA: NAN():0:6: ++%5LA: NAN(09A_Zaz):0:-1: ++%*5LA: NAN(09A_Zaz):0:-1: ++%5LA: 0X0P0:1:6:0x0: ++%*5LA: 0X0P0:0:6: ++# BZ12701 %5LA: 0X0P+0:0:-1: ++# BZ12701 %*5LA: 0X0P+0:0:-1: ++# BZ12701 %5LA: 0X8P-16385:0:-1: ++# BZ12701 %*5LA: 0X8P-16385:0:-1: ++%5LA: 0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%5LA: 0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LA: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.fcp2: ++%*5LA: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.fep3: ++%*5LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LA: INFINITY:0:-1: ++%*5LA: INFINITY:0:-1: ++%5LA: +NAN():0:-1: ++%*5LA: +NAN():0:-1: ++%5LA: +NAN(09A_Zaz):0:-1: ++%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA: +0X0P0:0:-1: ++# BZ12701 %*5LA: +0X0P0:0:-1: ++# BZ12701 %5LA: +0X0P+0:0:-1: ++# BZ12701 %*5LA: +0X0P+0:0:-1: ++# BZ12701 %5LA: +0X8P-16385:0:-1: ++# BZ12701 %*5LA: +0X8P-16385:0:-1: ++%5LA: +0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%5LA: +0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LA: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.cp2: ++%*5LA: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LA: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.ep3: ++%*5LA: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LA: +INFINITY:0:-1: ++%*5LA: +INFINITY:0:-1: ++%53LA: :0:-1: ++%*53LA: :0:-1: ++%53LA: -INFINITY:1:10:-inf: ++%*53LA: -INFINITY:0:10: ++%53LA: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:41:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:41: ++%53LA: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:40: ++%53LA: -0X2.3456789ABCDEF0123456789ABCDEP+12345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: -0X2.3456789ABCDEF0123456789ABCDEP+12345:0:41: ++%53LA: -0X2.3456789ABCDEF0123456789ABCDEP012345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: -0X2.3456789ABCDEF0123456789ABCDEP012345:0:41: ++%53LA: -0X8P-16385:1:12:-0x1p-16382: ++%*53LA: -0X8P-16385:0:12: ++%53LA: -0X0P+0:1:8:-0x0: ++%*53LA: -0X0P+0:0:8: ++%53LA: -0X0P0:1:7:-0x0: ++%*53LA: -0X0P0:0:7: ++%53LA: -NAN(09A_Zaz):1:14:-nan: ++%*53LA: -NAN(09A_Zaz):0:14: ++%53LA: -NAN():1:7:-nan: ++%*53LA: -NAN():0:7: ++%53LA: NAN():1:6:nan: ++%*53LA: NAN():0:6: ++%53LA: NAN(09A_Zaz):1:13:nan: ++%*53LA: NAN(09A_Zaz):0:13: ++%53LA: 0X0P0:1:6:0x0: ++%*53LA: 0X0P0:0:6: ++%53LA: 0X0P+0:1:7:0x0: ++%*53LA: 0X0P+0:0:7: ++%53LA: 0X8P-16385:1:11:0x1p-16382: ++%*53LA: 0X8P-16385:0:11: ++%53LA: 0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: 0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LA: 0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: 0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LA: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LA: INFINITY:1:9:inf: ++%*53LA: INFINITY:0:9: ++%53LA: +NAN():1:7:nan: ++%*53LA: +NAN():0:7: ++%53LA: +NAN(09A_Zaz):1:14:nan: ++%*53LA: +NAN(09A_Zaz):0:14: ++%53LA: +0X0P0:1:7:0x0: ++%*53LA: +0X0P0:0:7: ++%53LA: +0X0P+0:1:8:0x0: ++%*53LA: +0X0P+0:0:8: ++%53LA: +0X8P-16385:1:12:0x1p-16382: ++%*53LA: +0X8P-16385:0:12: ++%53LA: +0X2.3456789ABCDEF0123456789ABCDEP012345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: +0X2.3456789ABCDEF0123456789ABCDEP012345:0:41: ++%53LA: +0X2.3456789ABCDEF0123456789ABCDEP+12345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LA: +0X2.3456789ABCDEF0123456789ABCDEP+12345:0:41: ++%53LA: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:40: ++%53LA: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:41:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LA: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:41: ++%53LA: +INFINITY:1:10:inf: ++%*53LA: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input +new file mode 100644 +index 0000000000000000..0e65a3706cce1ce0 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-e.input +@@ -0,0 +1,558 @@ ++%Le::0:-1: ++%*Le::0:-1: ++%Le:-infinity:1:9:-inf: ++%*Le:-infinity:0:9: ++%Le:-1.18973149535723176508575932662800702e+4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:-1.18973149535723176508575932662800702e+4932:0:44: ++%Le:-1.18973149535723176508575932662800702e4932:1:43:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:-1.18973149535723176508575932662800702e4932:0:43: ++%Le:-3.6190587245056029583909936820055344e+3716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:-3.6190587245056029583909936820055344e+3716:0:43: ++%Le:-3.6190587245056029583909936820055344e03716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:-3.6190587245056029583909936820055344e03716:0:43: ++%Le:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*Le:-3.36210314311209350626267781732175260e-4932:0:44: ++%Le:-0e+0:1:5:-0x0: ++%*Le:-0e+0:0:5: ++%Le:-0e0:1:4:-0x0: ++%*Le:-0e0:0:4: ++%Le:-nan(09A_Zaz):1:13:-nan: ++%*Le:-nan(09A_Zaz):0:13: ++%Le:-nan():1:6:-nan: ++%*Le:-nan():0:6: ++%Le:nan():1:5:nan: ++%*Le:nan():0:5: ++%Le:nan(09A_Zaz):1:12:nan: ++%*Le:nan(09A_Zaz):0:12: ++%Le:0e0:1:3:0x0: ++%*Le:0e0:0:3: ++%Le:0e+0:1:4:0x0: ++%*Le:0e+0:0:4: ++%Le:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*Le:3.36210314311209350626267781732175260e-4932:0:43: ++%Le:3.6190587245056029583909936820055344e03716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:3.6190587245056029583909936820055344e03716:0:42: ++%Le:3.6190587245056029583909936820055344e+3716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:3.6190587245056029583909936820055344e+3716:0:42: ++%Le:1.18973149535723176508575932662800702e4932:1:42:0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:1.18973149535723176508575932662800702e4932:0:42: ++%Le:1.18973149535723176508575932662800702e+4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:1.18973149535723176508575932662800702e+4932:0:43: ++%Le:infinity:1:8:inf: ++%*Le:infinity:0:8: ++%Le:+nan():1:6:nan: ++%*Le:+nan():0:6: ++%Le:+nan(09A_Zaz):1:13:nan: ++%*Le:+nan(09A_Zaz):0:13: ++%Le:+0e0:1:4:0x0: ++%*Le:+0e0:0:4: ++%Le:+0e+0:1:5:0x0: ++%*Le:+0e+0:0:5: ++%Le:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*Le:+3.36210314311209350626267781732175260e-4932:0:44: ++%Le:+3.6190587245056029583909936820055344e03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:+3.6190587245056029583909936820055344e03716:0:43: ++%Le:+3.6190587245056029583909936820055344e+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Le:+3.6190587245056029583909936820055344e+3716:0:43: ++%Le:+1.18973149535723176508575932662800702e4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:+1.18973149535723176508575932662800702e4932:0:43: ++%Le:+1.18973149535723176508575932662800702e+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*Le:+1.18973149535723176508575932662800702e+4932:0:44: ++%Le:+infinity:1:9:inf: ++%*Le:+infinity:0:9: ++%1Le::0:-1: ++%*1Le::0:-1: ++%1Le:-infinity:0:-1: ++%*1Le:-infinity:0:-1: ++%1Le:-1.18973149535723176508575932662800702e+4932:0:-1: ++%*1Le:-1.18973149535723176508575932662800702e+4932:0:-1: ++%1Le:-1.18973149535723176508575932662800702e4932:0:-1: ++%*1Le:-1.18973149535723176508575932662800702e4932:0:-1: ++%1Le:-3.6190587245056029583909936820055344e+3716:0:-1: ++%*1Le:-3.6190587245056029583909936820055344e+3716:0:-1: ++%1Le:-3.6190587245056029583909936820055344e03716:0:-1: ++%*1Le:-3.6190587245056029583909936820055344e03716:0:-1: ++%1Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%*1Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%1Le:-0e+0:0:-1: ++%*1Le:-0e+0:0:-1: ++%1Le:-0e0:0:-1: ++%*1Le:-0e0:0:-1: ++%1Le:-nan(09A_Zaz):0:-1: ++%*1Le:-nan(09A_Zaz):0:-1: ++%1Le:-nan():0:-1: ++%*1Le:-nan():0:-1: ++%1Le:nan():0:-1: ++%*1Le:nan():0:-1: ++%1Le:nan(09A_Zaz):0:-1: ++%*1Le:nan(09A_Zaz):0:-1: ++%1Le:0e0:1:1:0x0: ++%*1Le:0e0:0:1: ++%1Le:0e+0:1:1:0x0: ++%*1Le:0e+0:0:1: ++%1Le:3.36210314311209350626267781732175260e-4932:1:1:0x1.8p1: ++%*1Le:3.36210314311209350626267781732175260e-4932:0:1: ++%1Le:3.6190587245056029583909936820055344e03716:1:1:0x1.8p1: ++%*1Le:3.6190587245056029583909936820055344e03716:0:1: ++%1Le:3.6190587245056029583909936820055344e+3716:1:1:0x1.8p1: ++%*1Le:3.6190587245056029583909936820055344e+3716:0:1: ++%1Le:1.18973149535723176508575932662800702e4932:1:1:0x1: ++%*1Le:1.18973149535723176508575932662800702e4932:0:1: ++%1Le:1.18973149535723176508575932662800702e+4932:1:1:0x1: ++%*1Le:1.18973149535723176508575932662800702e+4932:0:1: ++%1Le:infinity:0:-1: ++%*1Le:infinity:0:-1: ++%1Le:+nan():0:-1: ++%*1Le:+nan():0:-1: ++%1Le:+nan(09A_Zaz):0:-1: ++%*1Le:+nan(09A_Zaz):0:-1: ++%1Le:+0e0:0:-1: ++%*1Le:+0e0:0:-1: ++%1Le:+0e+0:0:-1: ++%*1Le:+0e+0:0:-1: ++%1Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%*1Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%1Le:+3.6190587245056029583909936820055344e03716:0:-1: ++%*1Le:+3.6190587245056029583909936820055344e03716:0:-1: ++%1Le:+3.6190587245056029583909936820055344e+3716:0:-1: ++%*1Le:+3.6190587245056029583909936820055344e+3716:0:-1: ++%1Le:+1.18973149535723176508575932662800702e4932:0:-1: ++%*1Le:+1.18973149535723176508575932662800702e4932:0:-1: ++%1Le:+1.18973149535723176508575932662800702e+4932:0:-1: ++%*1Le:+1.18973149535723176508575932662800702e+4932:0:-1: ++%1Le:+infinity:0:-1: ++%*1Le:+infinity:0:-1: ++%2Le::0:-1: ++%*2Le::0:-1: ++%2Le:-infinity:0:-1: ++%*2Le:-infinity:0:-1: ++%2Le:-1.18973149535723176508575932662800702e+4932:1:2:-0x1: ++%*2Le:-1.18973149535723176508575932662800702e+4932:0:2: ++%2Le:-1.18973149535723176508575932662800702e4932:1:2:-0x1: ++%*2Le:-1.18973149535723176508575932662800702e4932:0:2: ++%2Le:-3.6190587245056029583909936820055344e+3716:1:2:-0x1.8p1: ++%*2Le:-3.6190587245056029583909936820055344e+3716:0:2: ++%2Le:-3.6190587245056029583909936820055344e03716:1:2:-0x1.8p1: ++%*2Le:-3.6190587245056029583909936820055344e03716:0:2: ++%2Le:-3.36210314311209350626267781732175260e-4932:1:2:-0x1.8p1: ++%*2Le:-3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:-0e+0:1:2:-0x0: ++%*2Le:-0e+0:0:2: ++%2Le:-0e0:1:2:-0x0: ++%*2Le:-0e0:0:2: ++%2Le:-nan(09A_Zaz):0:-1: ++%*2Le:-nan(09A_Zaz):0:-1: ++%2Le:-nan():0:-1: ++%*2Le:-nan():0:-1: ++%2Le:nan():0:-1: ++%*2Le:nan():0:-1: ++%2Le:nan(09A_Zaz):0:-1: ++%*2Le:nan(09A_Zaz):0:-1: ++# BZ12701 %2Le:0e0:0:-1: ++# BZ12701 %*2Le:0e0:0:-1: ++# BZ12701 %2Le:0e+0:0:-1: ++# BZ12701 %*2Le:0e+0:0:-1: ++%2Le:3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2Le:3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:3.6190587245056029583909936820055344e03716:1:2:0x1.8p1: ++%*2Le:3.6190587245056029583909936820055344e03716:0:2: ++%2Le:3.6190587245056029583909936820055344e+3716:1:2:0x1.8p1: ++%*2Le:3.6190587245056029583909936820055344e+3716:0:2: ++%2Le:1.18973149535723176508575932662800702e4932:1:2:0x1: ++%*2Le:1.18973149535723176508575932662800702e4932:0:2: ++%2Le:1.18973149535723176508575932662800702e+4932:1:2:0x1: ++%*2Le:1.18973149535723176508575932662800702e+4932:0:2: ++%2Le:infinity:0:-1: ++%*2Le:infinity:0:-1: ++%2Le:+nan():0:-1: ++%*2Le:+nan():0:-1: ++%2Le:+nan(09A_Zaz):0:-1: ++%*2Le:+nan(09A_Zaz):0:-1: ++%2Le:+0e0:1:2:0x0: ++%*2Le:+0e0:0:2: ++%2Le:+0e+0:1:2:0x0: ++%*2Le:+0e+0:0:2: ++%2Le:+3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2Le:+3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:+3.6190587245056029583909936820055344e03716:1:2:0x1.8p1: ++%*2Le:+3.6190587245056029583909936820055344e03716:0:2: ++%2Le:+3.6190587245056029583909936820055344e+3716:1:2:0x1.8p1: ++%*2Le:+3.6190587245056029583909936820055344e+3716:0:2: ++%2Le:+1.18973149535723176508575932662800702e4932:1:2:0x1: ++%*2Le:+1.18973149535723176508575932662800702e4932:0:2: ++%2Le:+1.18973149535723176508575932662800702e+4932:1:2:0x1: ++%*2Le:+1.18973149535723176508575932662800702e+4932:0:2: ++%2Le:+infinity:0:-1: ++%*2Le:+infinity:0:-1: ++%3Le::0:-1: ++%*3Le::0:-1: ++%3Le:-infinity:0:-1: ++%*3Le:-infinity:0:-1: ++%3Le:-1.18973149535723176508575932662800702e+4932:1:3:-0x1: ++%*3Le:-1.18973149535723176508575932662800702e+4932:0:3: ++%3Le:-1.18973149535723176508575932662800702e4932:1:3:-0x1: ++%*3Le:-1.18973149535723176508575932662800702e4932:0:3: ++%3Le:-3.6190587245056029583909936820055344e+3716:1:3:-0x1.8p1: ++%*3Le:-3.6190587245056029583909936820055344e+3716:0:3: ++%3Le:-3.6190587245056029583909936820055344e03716:1:3:-0x1.8p1: ++%*3Le:-3.6190587245056029583909936820055344e03716:0:3: ++%3Le:-3.36210314311209350626267781732175260e-4932:1:3:-0x1.8p1: ++%*3Le:-3.36210314311209350626267781732175260e-4932:0:3: ++# BZ12701 %3Le:-0e+0:0:-1: ++# BZ12701 %*3Le:-0e+0:0:-1: ++# BZ12701 %3Le:-0e0:0:-1: ++# BZ12701 %*3Le:-0e0:0:-1: ++%3Le:-nan(09A_Zaz):0:-1: ++%*3Le:-nan(09A_Zaz):0:-1: ++%3Le:-nan():0:-1: ++%*3Le:-nan():0:-1: ++%3Le:nan():1:3:nan: ++%*3Le:nan():0:3: ++%3Le:nan(09A_Zaz):1:3:nan: ++%*3Le:nan(09A_Zaz):0:3: ++%3Le:0e0:1:3:0x0: ++%*3Le:0e0:0:3: ++# BZ12701 %3Le:0e+0:0:-1: ++# BZ12701 %*3Le:0e+0:0:-1: ++%3Le:3.36210314311209350626267781732175260e-4932:1:3:0x1.a666666666666666666666666666p1: ++%*3Le:3.36210314311209350626267781732175260e-4932:0:3: ++%3Le:3.6190587245056029583909936820055344e03716:1:3:0x1.cccccccccccccccccccccccccccdp1: ++%*3Le:3.6190587245056029583909936820055344e03716:0:3: ++%3Le:3.6190587245056029583909936820055344e+3716:1:3:0x1.cccccccccccccccccccccccccccdp1: ++%*3Le:3.6190587245056029583909936820055344e+3716:0:3: ++%3Le:1.18973149535723176508575932662800702e4932:1:3:0x1.199999999999999999999999999a: ++%*3Le:1.18973149535723176508575932662800702e4932:0:3: ++%3Le:1.18973149535723176508575932662800702e+4932:1:3:0x1.199999999999999999999999999a: ++%*3Le:1.18973149535723176508575932662800702e+4932:0:3: ++%3Le:infinity:1:3:inf: ++%*3Le:infinity:0:3: ++%3Le:+nan():0:-1: ++%*3Le:+nan():0:-1: ++%3Le:+nan(09A_Zaz):0:-1: ++%*3Le:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Le:+0e0:0:-1: ++# BZ12701 %*3Le:+0e0:0:-1: ++# BZ12701 %3Le:+0e+0:0:-1: ++# BZ12701 %*3Le:+0e+0:0:-1: ++%3Le:+3.36210314311209350626267781732175260e-4932:1:3:0x1.8p1: ++%*3Le:+3.36210314311209350626267781732175260e-4932:0:3: ++%3Le:+3.6190587245056029583909936820055344e03716:1:3:0x1.8p1: ++%*3Le:+3.6190587245056029583909936820055344e03716:0:3: ++%3Le:+3.6190587245056029583909936820055344e+3716:1:3:0x1.8p1: ++%*3Le:+3.6190587245056029583909936820055344e+3716:0:3: ++%3Le:+1.18973149535723176508575932662800702e4932:1:3:0x1: ++%*3Le:+1.18973149535723176508575932662800702e4932:0:3: ++%3Le:+1.18973149535723176508575932662800702e+4932:1:3:0x1: ++%*3Le:+1.18973149535723176508575932662800702e+4932:0:3: ++%3Le:+infinity:0:-1: ++%*3Le:+infinity:0:-1: ++%4Le::0:-1: ++%*4Le::0:-1: ++%4Le:-infinity:1:4:-inf: ++%*4Le:-infinity:0:4: ++%4Le:-1.18973149535723176508575932662800702e+4932:1:4:-0x1.199999999999999999999999999a: ++%*4Le:-1.18973149535723176508575932662800702e+4932:0:4: ++%4Le:-1.18973149535723176508575932662800702e4932:1:4:-0x1.199999999999999999999999999a: ++%*4Le:-1.18973149535723176508575932662800702e4932:0:4: ++%4Le:-3.6190587245056029583909936820055344e+3716:1:4:-0x1.cccccccccccccccccccccccccccdp1: ++%*4Le:-3.6190587245056029583909936820055344e+3716:0:4: ++%4Le:-3.6190587245056029583909936820055344e03716:1:4:-0x1.cccccccccccccccccccccccccccdp1: ++%*4Le:-3.6190587245056029583909936820055344e03716:0:4: ++%4Le:-3.36210314311209350626267781732175260e-4932:1:4:-0x1.a666666666666666666666666666p1: ++%*4Le:-3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %4Le:-0e+0:0:-1: ++# BZ12701 %*4Le:-0e+0:0:-1: ++%4Le:-0e0:1:4:-0x0: ++%*4Le:-0e0:0:4: ++%4Le:-nan(09A_Zaz):1:4:-nan: ++%*4Le:-nan(09A_Zaz):0:4: ++%4Le:-nan():1:4:-nan: ++%*4Le:-nan():0:4: ++%4Le:nan():0:-1: ++%*4Le:nan():0:-1: ++%4Le:nan(09A_Zaz):0:-1: ++%*4Le:nan(09A_Zaz):0:-1: ++%4Le:0e0:1:3:0x0: ++%*4Le:0e0:0:3: ++%4Le:0e+0:1:4:0x0: ++%*4Le:0e+0:0:4: ++%4Le:3.36210314311209350626267781732175260e-4932:1:4:0x1.ae147ae147ae147ae147ae147ae1p1: ++%*4Le:3.36210314311209350626267781732175260e-4932:0:4: ++%4Le:3.6190587245056029583909936820055344e03716:1:4:0x1.ce147ae147ae147ae147ae147ae1p1: ++%*4Le:3.6190587245056029583909936820055344e03716:0:4: ++%4Le:3.6190587245056029583909936820055344e+3716:1:4:0x1.ce147ae147ae147ae147ae147ae1p1: ++%*4Le:3.6190587245056029583909936820055344e+3716:0:4: ++%4Le:1.18973149535723176508575932662800702e4932:1:4:0x1.2e147ae147ae147ae147ae147ae1: ++%*4Le:1.18973149535723176508575932662800702e4932:0:4: ++%4Le:1.18973149535723176508575932662800702e+4932:1:4:0x1.2e147ae147ae147ae147ae147ae1: ++%*4Le:1.18973149535723176508575932662800702e+4932:0:4: ++%4Le:infinity:0:-1: ++%*4Le:infinity:0:-1: ++%4Le:+nan():1:4:nan: ++%*4Le:+nan():0:4: ++%4Le:+nan(09A_Zaz):1:4:nan: ++%*4Le:+nan(09A_Zaz):0:4: ++%4Le:+0e0:1:4:0x0: ++%*4Le:+0e0:0:4: ++# BZ12701 %4Le:+0e+0:0:-1: ++# BZ12701 %*4Le:+0e+0:0:-1: ++%4Le:+3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666666666666666p1: ++%*4Le:+3.36210314311209350626267781732175260e-4932:0:4: ++%4Le:+3.6190587245056029583909936820055344e03716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*4Le:+3.6190587245056029583909936820055344e03716:0:4: ++%4Le:+3.6190587245056029583909936820055344e+3716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*4Le:+3.6190587245056029583909936820055344e+3716:0:4: ++%4Le:+1.18973149535723176508575932662800702e4932:1:4:0x1.199999999999999999999999999a: ++%*4Le:+1.18973149535723176508575932662800702e4932:0:4: ++%4Le:+1.18973149535723176508575932662800702e+4932:1:4:0x1.199999999999999999999999999a: ++%*4Le:+1.18973149535723176508575932662800702e+4932:0:4: ++%4Le:+infinity:1:4:inf: ++%*4Le:+infinity:0:4: ++%40Le::0:-1: ++%*40Le::0:-1: ++%40Le:-infinity:1:9:-inf: ++%*40Le:-infinity:0:9: ++# BZ12701 %40Le:-1.18973149535723176508575932662800702e+4932:0:-1: ++# BZ12701 %*40Le:-1.18973149535723176508575932662800702e+4932:0:-1: ++%40Le:-1.18973149535723176508575932662800702e4932:1:40:-0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40Le:-1.18973149535723176508575932662800702e4932:0:40: ++%40Le:-3.6190587245056029583909936820055344e+3716:1:40:-0x1.c461e11236e13b300745afb88861p11: ++%*40Le:-3.6190587245056029583909936820055344e+3716:0:40: ++%40Le:-3.6190587245056029583909936820055344e03716:1:40:-0x1.c461e11236e13b300745afb88861p11: ++%*40Le:-3.6190587245056029583909936820055344e03716:0:40: ++# BZ12701 %40Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%40Le:-0e+0:1:5:-0x0: ++%*40Le:-0e+0:0:5: ++%40Le:-0e0:1:4:-0x0: ++%*40Le:-0e0:0:4: ++%40Le:-nan(09A_Zaz):1:13:-nan: ++%*40Le:-nan(09A_Zaz):0:13: ++%40Le:-nan():1:6:-nan: ++%*40Le:-nan():0:6: ++%40Le:nan():1:5:nan: ++%*40Le:nan():0:5: ++%40Le:nan(09A_Zaz):1:12:nan: ++%*40Le:nan(09A_Zaz):0:12: ++%40Le:0e0:1:3:0x0: ++%*40Le:0e0:0:3: ++%40Le:0e+0:1:4:0x0: ++%*40Le:0e+0:0:4: ++%40Le:3.36210314311209350626267781732175260e-4932:1:40:0x1.608ac4df6a146bceb1f1fbc05807p-12: ++%*40Le:3.36210314311209350626267781732175260e-4932:0:40: ++%40Le:3.6190587245056029583909936820055344e03716:1:40:0x1.b3a0db6a2433ca1ab428755ec4e8p124: ++%*40Le:3.6190587245056029583909936820055344e03716:0:40: ++%40Le:3.6190587245056029583909936820055344e+3716:1:40:0x1.b3a0db6a2433ca1ab428755ec4e8p124: ++%*40Le:3.6190587245056029583909936820055344e+3716:0:40: ++%40Le:1.18973149535723176508575932662800702e4932:1:40:0x1.047ec1b6d6390a5ce34fd9d25b88p163: ++%*40Le:1.18973149535723176508575932662800702e4932:0:40: ++%40Le:1.18973149535723176508575932662800702e+4932:1:40:0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40Le:1.18973149535723176508575932662800702e+4932:0:40: ++%40Le:infinity:1:8:inf: ++%*40Le:infinity:0:8: ++%40Le:+nan():1:6:nan: ++%*40Le:+nan():0:6: ++%40Le:+nan(09A_Zaz):1:13:nan: ++%*40Le:+nan(09A_Zaz):0:13: ++%40Le:+0e0:1:4:0x0: ++%*40Le:+0e0:0:4: ++%40Le:+0e+0:1:5:0x0: ++%*40Le:+0e+0:0:5: ++# BZ12701 %40Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%40Le:+3.6190587245056029583909936820055344e03716:1:40:0x1.c461e11236e13b300745afb88861p11: ++%*40Le:+3.6190587245056029583909936820055344e03716:0:40: ++%40Le:+3.6190587245056029583909936820055344e+3716:1:40:0x1.c461e11236e13b300745afb88861p11: ++%*40Le:+3.6190587245056029583909936820055344e+3716:0:40: ++%40Le:+1.18973149535723176508575932662800702e4932:1:40:0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40Le:+1.18973149535723176508575932662800702e4932:0:40: ++# BZ12701 %40Le:+1.18973149535723176508575932662800702e+4932:0:-1: ++# BZ12701 %*40Le:+1.18973149535723176508575932662800702e+4932:0:-1: ++%40Le:+infinity:1:9:inf: ++%*40Le:+infinity:0:9: ++%48Le::0:-1: ++%*48Le::0:-1: ++%48Le:-infinity:1:9:-inf: ++%*48Le:-infinity:0:9: ++%48Le:-1.18973149535723176508575932662800702e+4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:-1.18973149535723176508575932662800702e+4932:0:44: ++%48Le:-1.18973149535723176508575932662800702e4932:1:43:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:-1.18973149535723176508575932662800702e4932:0:43: ++%48Le:-3.6190587245056029583909936820055344e+3716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:-3.6190587245056029583909936820055344e+3716:0:43: ++%48Le:-3.6190587245056029583909936820055344e03716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:-3.6190587245056029583909936820055344e03716:0:43: ++%48Le:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*48Le:-3.36210314311209350626267781732175260e-4932:0:44: ++%48Le:-0e+0:1:5:-0x0: ++%*48Le:-0e+0:0:5: ++%48Le:-0e0:1:4:-0x0: ++%*48Le:-0e0:0:4: ++%48Le:-nan(09A_Zaz):1:13:-nan: ++%*48Le:-nan(09A_Zaz):0:13: ++%48Le:-nan():1:6:-nan: ++%*48Le:-nan():0:6: ++%48Le:nan():1:5:nan: ++%*48Le:nan():0:5: ++%48Le:nan(09A_Zaz):1:12:nan: ++%*48Le:nan(09A_Zaz):0:12: ++%48Le:0e0:1:3:0x0: ++%*48Le:0e0:0:3: ++%48Le:0e+0:1:4:0x0: ++%*48Le:0e+0:0:4: ++%48Le:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*48Le:3.36210314311209350626267781732175260e-4932:0:43: ++%48Le:3.6190587245056029583909936820055344e03716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:3.6190587245056029583909936820055344e03716:0:42: ++%48Le:3.6190587245056029583909936820055344e+3716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:3.6190587245056029583909936820055344e+3716:0:42: ++%48Le:1.18973149535723176508575932662800702e4932:1:42:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:1.18973149535723176508575932662800702e4932:0:42: ++%48Le:1.18973149535723176508575932662800702e+4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:1.18973149535723176508575932662800702e+4932:0:43: ++%48Le:infinity:1:8:inf: ++%*48Le:infinity:0:8: ++%48Le:+nan():1:6:nan: ++%*48Le:+nan():0:6: ++%48Le:+nan(09A_Zaz):1:13:nan: ++%*48Le:+nan(09A_Zaz):0:13: ++%48Le:+0e0:1:4:0x0: ++%*48Le:+0e0:0:4: ++%48Le:+0e+0:1:5:0x0: ++%*48Le:+0e+0:0:5: ++%48Le:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48Le:+3.36210314311209350626267781732175260e-4932:0:44: ++%48Le:+3.6190587245056029583909936820055344e03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:+3.6190587245056029583909936820055344e03716:0:43: ++%48Le:+3.6190587245056029583909936820055344e+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le:+3.6190587245056029583909936820055344e+3716:0:43: ++%48Le:+1.18973149535723176508575932662800702e4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:+1.18973149535723176508575932662800702e4932:0:43: ++%48Le:+1.18973149535723176508575932662800702e+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le:+1.18973149535723176508575932662800702e+4932:0:44: ++%48Le:+infinity:1:9:inf: ++%*48Le:+infinity:0:9: ++%3Le: :0:-1: ++%*3Le: :0:-1: ++%3Le: -infinity:0:-1: ++%*3Le: -infinity:0:-1: ++%3Le: -1.18973149535723176508575932662800702e+4932:1:4:-0x1: ++%*3Le: -1.18973149535723176508575932662800702e+4932:0:4: ++%3Le: -1.18973149535723176508575932662800702e4932:1:4:-0x1: ++%*3Le: -1.18973149535723176508575932662800702e4932:0:4: ++%3Le: -3.6190587245056029583909936820055344e+3716:1:4:-0x1.8p1: ++%*3Le: -3.6190587245056029583909936820055344e+3716:0:4: ++%3Le: -3.6190587245056029583909936820055344e03716:1:4:-0x1.8p1: ++%*3Le: -3.6190587245056029583909936820055344e03716:0:4: ++%3Le: -3.36210314311209350626267781732175260e-4932:1:4:-0x1.8p1: ++%*3Le: -3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %3Le: -0e+0:0:-1: ++# BZ12701 %*3Le: -0e+0:0:-1: ++# BZ12701 %3Le: -0e0:0:-1: ++# BZ12701 %*3Le: -0e0:0:-1: ++%3Le: -nan(09A_Zaz):0:-1: ++%*3Le: -nan(09A_Zaz):0:-1: ++%3Le: -nan():0:-1: ++%*3Le: -nan():0:-1: ++%3Le: nan():1:4:nan: ++%*3Le: nan():0:4: ++%3Le: nan(09A_Zaz):1:4:nan: ++%*3Le: nan(09A_Zaz):0:4: ++%3Le: 0e0:1:4:0x0: ++%*3Le: 0e0:0:4: ++# BZ12701 %3Le: 0e+0:0:-1: ++# BZ12701 %*3Le: 0e+0:0:-1: ++%3Le: 3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666666666666666p1: ++%*3Le: 3.36210314311209350626267781732175260e-4932:0:4: ++%3Le: 3.6190587245056029583909936820055344e03716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*3Le: 3.6190587245056029583909936820055344e03716:0:4: ++%3Le: 3.6190587245056029583909936820055344e+3716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*3Le: 3.6190587245056029583909936820055344e+3716:0:4: ++%3Le: 1.18973149535723176508575932662800702e4932:1:4:0x1.199999999999999999999999999a: ++%*3Le: 1.18973149535723176508575932662800702e4932:0:4: ++%3Le: 1.18973149535723176508575932662800702e+4932:1:4:0x1.199999999999999999999999999a: ++%*3Le: 1.18973149535723176508575932662800702e+4932:0:4: ++%3Le: infinity:1:4:inf: ++%*3Le: infinity:0:4: ++%3Le: +nan():0:-1: ++%*3Le: +nan():0:-1: ++%3Le: +nan(09A_Zaz):0:-1: ++%*3Le: +nan(09A_Zaz):0:-1: ++# BZ12701 %3Le: +0e0:0:-1: ++# BZ12701 %*3Le: +0e0:0:-1: ++# BZ12701 %3Le: +0e+0:0:-1: ++# BZ12701 %*3Le: +0e+0:0:-1: ++%3Le: +3.36210314311209350626267781732175260e-4932:1:4:0x1.8p1: ++%*3Le: +3.36210314311209350626267781732175260e-4932:0:4: ++%3Le: +3.6190587245056029583909936820055344e03716:1:4:0x1.8p1: ++%*3Le: +3.6190587245056029583909936820055344e03716:0:4: ++%3Le: +3.6190587245056029583909936820055344e+3716:1:4:0x1.8p1: ++%*3Le: +3.6190587245056029583909936820055344e+3716:0:4: ++%3Le: +1.18973149535723176508575932662800702e4932:1:4:0x1: ++%*3Le: +1.18973149535723176508575932662800702e4932:0:4: ++%3Le: +1.18973149535723176508575932662800702e+4932:1:4:0x1: ++%*3Le: +1.18973149535723176508575932662800702e+4932:0:4: ++%3Le: +infinity:0:-1: ++%*3Le: +infinity:0:-1: ++%48Le: :0:-1: ++%*48Le: :0:-1: ++%48Le: -infinity:1:10:-inf: ++%*48Le: -infinity:0:10: ++%48Le: -1.18973149535723176508575932662800702e+4932:1:45:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: -1.18973149535723176508575932662800702e+4932:0:45: ++%48Le: -1.18973149535723176508575932662800702e4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: -1.18973149535723176508575932662800702e4932:0:44: ++%48Le: -3.6190587245056029583909936820055344e+3716:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: -3.6190587245056029583909936820055344e+3716:0:44: ++%48Le: -3.6190587245056029583909936820055344e03716:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: -3.6190587245056029583909936820055344e03716:0:44: ++%48Le: -3.36210314311209350626267781732175260e-4932:1:45:-0x1p-16382: ++%*48Le: -3.36210314311209350626267781732175260e-4932:0:45: ++%48Le: -0e+0:1:6:-0x0: ++%*48Le: -0e+0:0:6: ++%48Le: -0e0:1:5:-0x0: ++%*48Le: -0e0:0:5: ++%48Le: -nan(09A_Zaz):1:14:-nan: ++%*48Le: -nan(09A_Zaz):0:14: ++%48Le: -nan():1:7:-nan: ++%*48Le: -nan():0:7: ++%48Le: nan():1:6:nan: ++%*48Le: nan():0:6: ++%48Le: nan(09A_Zaz):1:13:nan: ++%*48Le: nan(09A_Zaz):0:13: ++%48Le: 0e0:1:4:0x0: ++%*48Le: 0e0:0:4: ++%48Le: 0e+0:1:5:0x0: ++%*48Le: 0e+0:0:5: ++%48Le: 3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48Le: 3.36210314311209350626267781732175260e-4932:0:44: ++%48Le: 3.6190587245056029583909936820055344e03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: 3.6190587245056029583909936820055344e03716:0:43: ++%48Le: 3.6190587245056029583909936820055344e+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: 3.6190587245056029583909936820055344e+3716:0:43: ++%48Le: 1.18973149535723176508575932662800702e4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: 1.18973149535723176508575932662800702e4932:0:43: ++%48Le: 1.18973149535723176508575932662800702e+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: 1.18973149535723176508575932662800702e+4932:0:44: ++%48Le: infinity:1:9:inf: ++%*48Le: infinity:0:9: ++%48Le: +nan():1:7:nan: ++%*48Le: +nan():0:7: ++%48Le: +nan(09A_Zaz):1:14:nan: ++%*48Le: +nan(09A_Zaz):0:14: ++%48Le: +0e0:1:5:0x0: ++%*48Le: +0e0:0:5: ++%48Le: +0e+0:1:6:0x0: ++%*48Le: +0e+0:0:6: ++%48Le: +3.36210314311209350626267781732175260e-4932:1:45:0x1p-16382: ++%*48Le: +3.36210314311209350626267781732175260e-4932:0:45: ++%48Le: +3.6190587245056029583909936820055344e03716:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: +3.6190587245056029583909936820055344e03716:0:44: ++%48Le: +3.6190587245056029583909936820055344e+3716:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48Le: +3.6190587245056029583909936820055344e+3716:0:44: ++%48Le: +1.18973149535723176508575932662800702e4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: +1.18973149535723176508575932662800702e4932:0:44: ++%48Le: +1.18973149535723176508575932662800702e+4932:1:45:0x1.ffffffffffffffffffffffffffffp16383: ++%*48Le: +1.18973149535723176508575932662800702e+4932:0:45: ++%48Le: +infinity:1:10:inf: ++%*48Le: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input +new file mode 100644 +index 0000000000000000..8992c73c91384735 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ee.input +@@ -0,0 +1,558 @@ ++%LE::0:-1: ++%*LE::0:-1: ++%LE:-INFINITY:1:9:-inf: ++%*LE:-INFINITY:0:9: ++%LE:-1.18973149535723176508575932662800702E+4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:-1.18973149535723176508575932662800702E+4932:0:44: ++%LE:-1.18973149535723176508575932662800702E4932:1:43:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:-1.18973149535723176508575932662800702E4932:0:43: ++%LE:-3.6190587245056029583909936820055344E+3716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:-3.6190587245056029583909936820055344E+3716:0:43: ++%LE:-3.6190587245056029583909936820055344E03716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:-3.6190587245056029583909936820055344E03716:0:43: ++%LE:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*LE:-3.36210314311209350626267781732175260e-4932:0:44: ++%LE:-0E+0:1:5:-0x0: ++%*LE:-0E+0:0:5: ++%LE:-0E0:1:4:-0x0: ++%*LE:-0E0:0:4: ++%LE:-NAN(09A_Zaz):1:13:-nan: ++%*LE:-NAN(09A_Zaz):0:13: ++%LE:-NAN():1:6:-nan: ++%*LE:-NAN():0:6: ++%LE:NAN():1:5:nan: ++%*LE:NAN():0:5: ++%LE:NAN(09A_Zaz):1:12:nan: ++%*LE:NAN(09A_Zaz):0:12: ++%LE:0E0:1:3:0x0: ++%*LE:0E0:0:3: ++%LE:0E+0:1:4:0x0: ++%*LE:0E+0:0:4: ++%LE:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*LE:3.36210314311209350626267781732175260e-4932:0:43: ++%LE:3.6190587245056029583909936820055344E03716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:3.6190587245056029583909936820055344E03716:0:42: ++%LE:3.6190587245056029583909936820055344E+3716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:3.6190587245056029583909936820055344E+3716:0:42: ++%LE:1.18973149535723176508575932662800702E4932:1:42:0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:1.18973149535723176508575932662800702E4932:0:42: ++%LE:1.18973149535723176508575932662800702E+4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:1.18973149535723176508575932662800702E+4932:0:43: ++%LE:INFINITY:1:8:inf: ++%*LE:INFINITY:0:8: ++%LE:+NAN():1:6:nan: ++%*LE:+NAN():0:6: ++%LE:+NAN(09A_Zaz):1:13:nan: ++%*LE:+NAN(09A_Zaz):0:13: ++%LE:+0E0:1:4:0x0: ++%*LE:+0E0:0:4: ++%LE:+0E+0:1:5:0x0: ++%*LE:+0E+0:0:5: ++%LE:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*LE:+3.36210314311209350626267781732175260e-4932:0:44: ++%LE:+3.6190587245056029583909936820055344E03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:+3.6190587245056029583909936820055344E03716:0:43: ++%LE:+3.6190587245056029583909936820055344E+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LE:+3.6190587245056029583909936820055344E+3716:0:43: ++%LE:+1.18973149535723176508575932662800702E4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:+1.18973149535723176508575932662800702E4932:0:43: ++%LE:+1.18973149535723176508575932662800702E+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*LE:+1.18973149535723176508575932662800702E+4932:0:44: ++%LE:+INFINITY:1:9:inf: ++%*LE:+INFINITY:0:9: ++%1LE::0:-1: ++%*1LE::0:-1: ++%1LE:-INFINITY:0:-1: ++%*1LE:-INFINITY:0:-1: ++%1LE:-1.18973149535723176508575932662800702E+4932:0:-1: ++%*1LE:-1.18973149535723176508575932662800702E+4932:0:-1: ++%1LE:-1.18973149535723176508575932662800702E4932:0:-1: ++%*1LE:-1.18973149535723176508575932662800702E4932:0:-1: ++%1LE:-3.6190587245056029583909936820055344E+3716:0:-1: ++%*1LE:-3.6190587245056029583909936820055344E+3716:0:-1: ++%1LE:-3.6190587245056029583909936820055344E03716:0:-1: ++%*1LE:-3.6190587245056029583909936820055344E03716:0:-1: ++%1LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%*1LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%1LE:-0E+0:0:-1: ++%*1LE:-0E+0:0:-1: ++%1LE:-0E0:0:-1: ++%*1LE:-0E0:0:-1: ++%1LE:-NAN(09A_Zaz):0:-1: ++%*1LE:-NAN(09A_Zaz):0:-1: ++%1LE:-NAN():0:-1: ++%*1LE:-NAN():0:-1: ++%1LE:NAN():0:-1: ++%*1LE:NAN():0:-1: ++%1LE:NAN(09A_Zaz):0:-1: ++%*1LE:NAN(09A_Zaz):0:-1: ++%1LE:0E0:1:1:0x0: ++%*1LE:0E0:0:1: ++%1LE:0E+0:1:1:0x0: ++%*1LE:0E+0:0:1: ++%1LE:3.36210314311209350626267781732175260e-4932:1:1:0x1.8p1: ++%*1LE:3.36210314311209350626267781732175260e-4932:0:1: ++%1LE:3.6190587245056029583909936820055344E03716:1:1:0x1.8p1: ++%*1LE:3.6190587245056029583909936820055344E03716:0:1: ++%1LE:3.6190587245056029583909936820055344E+3716:1:1:0x1.8p1: ++%*1LE:3.6190587245056029583909936820055344E+3716:0:1: ++%1LE:1.18973149535723176508575932662800702E4932:1:1:0x1: ++%*1LE:1.18973149535723176508575932662800702E4932:0:1: ++%1LE:1.18973149535723176508575932662800702E+4932:1:1:0x1: ++%*1LE:1.18973149535723176508575932662800702E+4932:0:1: ++%1LE:INFINITY:0:-1: ++%*1LE:INFINITY:0:-1: ++%1LE:+NAN():0:-1: ++%*1LE:+NAN():0:-1: ++%1LE:+NAN(09A_Zaz):0:-1: ++%*1LE:+NAN(09A_Zaz):0:-1: ++%1LE:+0E0:0:-1: ++%*1LE:+0E0:0:-1: ++%1LE:+0E+0:0:-1: ++%*1LE:+0E+0:0:-1: ++%1LE:+3.36210314311209350626267781732175260e-4932:0:-1: ++%*1LE:+3.36210314311209350626267781732175260e-4932:0:-1: ++%1LE:+3.6190587245056029583909936820055344E03716:0:-1: ++%*1LE:+3.6190587245056029583909936820055344E03716:0:-1: ++%1LE:+3.6190587245056029583909936820055344E+3716:0:-1: ++%*1LE:+3.6190587245056029583909936820055344E+3716:0:-1: ++%1LE:+1.18973149535723176508575932662800702E4932:0:-1: ++%*1LE:+1.18973149535723176508575932662800702E4932:0:-1: ++%1LE:+1.18973149535723176508575932662800702E+4932:0:-1: ++%*1LE:+1.18973149535723176508575932662800702E+4932:0:-1: ++%1LE:+INFINITY:0:-1: ++%*1LE:+INFINITY:0:-1: ++%2LE::0:-1: ++%*2LE::0:-1: ++%2LE:-INFINITY:0:-1: ++%*2LE:-INFINITY:0:-1: ++%2LE:-1.18973149535723176508575932662800702E+4932:1:2:-0x1: ++%*2LE:-1.18973149535723176508575932662800702E+4932:0:2: ++%2LE:-1.18973149535723176508575932662800702E4932:1:2:-0x1: ++%*2LE:-1.18973149535723176508575932662800702E4932:0:2: ++%2LE:-3.6190587245056029583909936820055344E+3716:1:2:-0x1.8p1: ++%*2LE:-3.6190587245056029583909936820055344E+3716:0:2: ++%2LE:-3.6190587245056029583909936820055344E03716:1:2:-0x1.8p1: ++%*2LE:-3.6190587245056029583909936820055344E03716:0:2: ++%2LE:-3.36210314311209350626267781732175260e-4932:1:2:-0x1.8p1: ++%*2LE:-3.36210314311209350626267781732175260e-4932:0:2: ++%2LE:-0E+0:1:2:-0x0: ++%*2LE:-0E+0:0:2: ++%2LE:-0E0:1:2:-0x0: ++%*2LE:-0E0:0:2: ++%2LE:-NAN(09A_Zaz):0:-1: ++%*2LE:-NAN(09A_Zaz):0:-1: ++%2LE:-NAN():0:-1: ++%*2LE:-NAN():0:-1: ++%2LE:NAN():0:-1: ++%*2LE:NAN():0:-1: ++%2LE:NAN(09A_Zaz):0:-1: ++%*2LE:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LE:0E0:0:-1: ++# BZ12701 %*2LE:0E0:0:-1: ++# BZ12701 %2LE:0E+0:0:-1: ++# BZ12701 %*2LE:0E+0:0:-1: ++%2LE:3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2LE:3.36210314311209350626267781732175260e-4932:0:2: ++%2LE:3.6190587245056029583909936820055344E03716:1:2:0x1.8p1: ++%*2LE:3.6190587245056029583909936820055344E03716:0:2: ++%2LE:3.6190587245056029583909936820055344E+3716:1:2:0x1.8p1: ++%*2LE:3.6190587245056029583909936820055344E+3716:0:2: ++%2LE:1.18973149535723176508575932662800702E4932:1:2:0x1: ++%*2LE:1.18973149535723176508575932662800702E4932:0:2: ++%2LE:1.18973149535723176508575932662800702E+4932:1:2:0x1: ++%*2LE:1.18973149535723176508575932662800702E+4932:0:2: ++%2LE:INFINITY:0:-1: ++%*2LE:INFINITY:0:-1: ++%2LE:+NAN():0:-1: ++%*2LE:+NAN():0:-1: ++%2LE:+NAN(09A_Zaz):0:-1: ++%*2LE:+NAN(09A_Zaz):0:-1: ++%2LE:+0E0:1:2:0x0: ++%*2LE:+0E0:0:2: ++%2LE:+0E+0:1:2:0x0: ++%*2LE:+0E+0:0:2: ++%2LE:+3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2LE:+3.36210314311209350626267781732175260e-4932:0:2: ++%2LE:+3.6190587245056029583909936820055344E03716:1:2:0x1.8p1: ++%*2LE:+3.6190587245056029583909936820055344E03716:0:2: ++%2LE:+3.6190587245056029583909936820055344E+3716:1:2:0x1.8p1: ++%*2LE:+3.6190587245056029583909936820055344E+3716:0:2: ++%2LE:+1.18973149535723176508575932662800702E4932:1:2:0x1: ++%*2LE:+1.18973149535723176508575932662800702E4932:0:2: ++%2LE:+1.18973149535723176508575932662800702E+4932:1:2:0x1: ++%*2LE:+1.18973149535723176508575932662800702E+4932:0:2: ++%2LE:+INFINITY:0:-1: ++%*2LE:+INFINITY:0:-1: ++%3LE::0:-1: ++%*3LE::0:-1: ++%3LE:-INFINITY:0:-1: ++%*3LE:-INFINITY:0:-1: ++%3LE:-1.18973149535723176508575932662800702E+4932:1:3:-0x1: ++%*3LE:-1.18973149535723176508575932662800702E+4932:0:3: ++%3LE:-1.18973149535723176508575932662800702E4932:1:3:-0x1: ++%*3LE:-1.18973149535723176508575932662800702E4932:0:3: ++%3LE:-3.6190587245056029583909936820055344E+3716:1:3:-0x1.8p1: ++%*3LE:-3.6190587245056029583909936820055344E+3716:0:3: ++%3LE:-3.6190587245056029583909936820055344E03716:1:3:-0x1.8p1: ++%*3LE:-3.6190587245056029583909936820055344E03716:0:3: ++%3LE:-3.36210314311209350626267781732175260e-4932:1:3:-0x1.8p1: ++%*3LE:-3.36210314311209350626267781732175260e-4932:0:3: ++# BZ12701 %3LE:-0E+0:0:-1: ++# BZ12701 %*3LE:-0E+0:0:-1: ++# BZ12701 %3LE:-0E0:0:-1: ++# BZ12701 %*3LE:-0E0:0:-1: ++%3LE:-NAN(09A_Zaz):0:-1: ++%*3LE:-NAN(09A_Zaz):0:-1: ++%3LE:-NAN():0:-1: ++%*3LE:-NAN():0:-1: ++%3LE:NAN():1:3:nan: ++%*3LE:NAN():0:3: ++%3LE:NAN(09A_Zaz):1:3:nan: ++%*3LE:NAN(09A_Zaz):0:3: ++%3LE:0E0:1:3:0x0: ++%*3LE:0E0:0:3: ++# BZ12701 %3LE:0E+0:0:-1: ++# BZ12701 %*3LE:0E+0:0:-1: ++%3LE:3.36210314311209350626267781732175260e-4932:1:3:0x1.a666666666666666666666666666p1: ++%*3LE:3.36210314311209350626267781732175260e-4932:0:3: ++%3LE:3.6190587245056029583909936820055344E03716:1:3:0x1.cccccccccccccccccccccccccccdp1: ++%*3LE:3.6190587245056029583909936820055344E03716:0:3: ++%3LE:3.6190587245056029583909936820055344E+3716:1:3:0x1.cccccccccccccccccccccccccccdp1: ++%*3LE:3.6190587245056029583909936820055344E+3716:0:3: ++%3LE:1.18973149535723176508575932662800702E4932:1:3:0x1.199999999999999999999999999a: ++%*3LE:1.18973149535723176508575932662800702E4932:0:3: ++%3LE:1.18973149535723176508575932662800702E+4932:1:3:0x1.199999999999999999999999999a: ++%*3LE:1.18973149535723176508575932662800702E+4932:0:3: ++%3LE:INFINITY:1:3:inf: ++%*3LE:INFINITY:0:3: ++%3LE:+NAN():0:-1: ++%*3LE:+NAN():0:-1: ++%3LE:+NAN(09A_Zaz):0:-1: ++%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE:+0E0:0:-1: ++# BZ12701 %*3LE:+0E0:0:-1: ++# BZ12701 %3LE:+0E+0:0:-1: ++# BZ12701 %*3LE:+0E+0:0:-1: ++%3LE:+3.36210314311209350626267781732175260e-4932:1:3:0x1.8p1: ++%*3LE:+3.36210314311209350626267781732175260e-4932:0:3: ++%3LE:+3.6190587245056029583909936820055344E03716:1:3:0x1.8p1: ++%*3LE:+3.6190587245056029583909936820055344E03716:0:3: ++%3LE:+3.6190587245056029583909936820055344E+3716:1:3:0x1.8p1: ++%*3LE:+3.6190587245056029583909936820055344E+3716:0:3: ++%3LE:+1.18973149535723176508575932662800702E4932:1:3:0x1: ++%*3LE:+1.18973149535723176508575932662800702E4932:0:3: ++%3LE:+1.18973149535723176508575932662800702E+4932:1:3:0x1: ++%*3LE:+1.18973149535723176508575932662800702E+4932:0:3: ++%3LE:+INFINITY:0:-1: ++%*3LE:+INFINITY:0:-1: ++%4LE::0:-1: ++%*4LE::0:-1: ++%4LE:-INFINITY:1:4:-inf: ++%*4LE:-INFINITY:0:4: ++%4LE:-1.18973149535723176508575932662800702E+4932:1:4:-0x1.199999999999999999999999999a: ++%*4LE:-1.18973149535723176508575932662800702E+4932:0:4: ++%4LE:-1.18973149535723176508575932662800702E4932:1:4:-0x1.199999999999999999999999999a: ++%*4LE:-1.18973149535723176508575932662800702E4932:0:4: ++%4LE:-3.6190587245056029583909936820055344E+3716:1:4:-0x1.cccccccccccccccccccccccccccdp1: ++%*4LE:-3.6190587245056029583909936820055344E+3716:0:4: ++%4LE:-3.6190587245056029583909936820055344E03716:1:4:-0x1.cccccccccccccccccccccccccccdp1: ++%*4LE:-3.6190587245056029583909936820055344E03716:0:4: ++%4LE:-3.36210314311209350626267781732175260e-4932:1:4:-0x1.a666666666666666666666666666p1: ++%*4LE:-3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %4LE:-0E+0:0:-1: ++# BZ12701 %*4LE:-0E+0:0:-1: ++%4LE:-0E0:1:4:-0x0: ++%*4LE:-0E0:0:4: ++%4LE:-NAN(09A_Zaz):1:4:-nan: ++%*4LE:-NAN(09A_Zaz):0:4: ++%4LE:-NAN():1:4:-nan: ++%*4LE:-NAN():0:4: ++%4LE:NAN():0:-1: ++%*4LE:NAN():0:-1: ++%4LE:NAN(09A_Zaz):0:-1: ++%*4LE:NAN(09A_Zaz):0:-1: ++%4LE:0E0:1:3:0x0: ++%*4LE:0E0:0:3: ++%4LE:0E+0:1:4:0x0: ++%*4LE:0E+0:0:4: ++%4LE:3.36210314311209350626267781732175260e-4932:1:4:0x1.ae147ae147ae147ae147ae147ae1p1: ++%*4LE:3.36210314311209350626267781732175260e-4932:0:4: ++%4LE:3.6190587245056029583909936820055344E03716:1:4:0x1.ce147ae147ae147ae147ae147ae1p1: ++%*4LE:3.6190587245056029583909936820055344E03716:0:4: ++%4LE:3.6190587245056029583909936820055344E+3716:1:4:0x1.ce147ae147ae147ae147ae147ae1p1: ++%*4LE:3.6190587245056029583909936820055344E+3716:0:4: ++%4LE:1.18973149535723176508575932662800702E4932:1:4:0x1.2e147ae147ae147ae147ae147ae1: ++%*4LE:1.18973149535723176508575932662800702E4932:0:4: ++%4LE:1.18973149535723176508575932662800702E+4932:1:4:0x1.2e147ae147ae147ae147ae147ae1: ++%*4LE:1.18973149535723176508575932662800702E+4932:0:4: ++%4LE:INFINITY:0:-1: ++%*4LE:INFINITY:0:-1: ++%4LE:+NAN():1:4:nan: ++%*4LE:+NAN():0:4: ++%4LE:+NAN(09A_Zaz):1:4:nan: ++%*4LE:+NAN(09A_Zaz):0:4: ++%4LE:+0E0:1:4:0x0: ++%*4LE:+0E0:0:4: ++# BZ12701 %4LE:+0E+0:0:-1: ++# BZ12701 %*4LE:+0E+0:0:-1: ++%4LE:+3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666666666666666p1: ++%*4LE:+3.36210314311209350626267781732175260e-4932:0:4: ++%4LE:+3.6190587245056029583909936820055344E03716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*4LE:+3.6190587245056029583909936820055344E03716:0:4: ++%4LE:+3.6190587245056029583909936820055344E+3716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*4LE:+3.6190587245056029583909936820055344E+3716:0:4: ++%4LE:+1.18973149535723176508575932662800702E4932:1:4:0x1.199999999999999999999999999a: ++%*4LE:+1.18973149535723176508575932662800702E4932:0:4: ++%4LE:+1.18973149535723176508575932662800702E+4932:1:4:0x1.199999999999999999999999999a: ++%*4LE:+1.18973149535723176508575932662800702E+4932:0:4: ++%4LE:+INFINITY:1:4:inf: ++%*4LE:+INFINITY:0:4: ++%40LE::0:-1: ++%*40LE::0:-1: ++%40LE:-INFINITY:1:9:-inf: ++%*40LE:-INFINITY:0:9: ++# BZ12701 %40LE:-1.18973149535723176508575932662800702E+4932:0:-1: ++# BZ12701 %*40LE:-1.18973149535723176508575932662800702E+4932:0:-1: ++%40LE:-1.18973149535723176508575932662800702E4932:1:40:-0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40LE:-1.18973149535723176508575932662800702E4932:0:40: ++%40LE:-3.6190587245056029583909936820055344E+3716:1:40:-0x1.c461e11236e13b300745afb88861p11: ++%*40LE:-3.6190587245056029583909936820055344E+3716:0:40: ++%40LE:-3.6190587245056029583909936820055344E03716:1:40:-0x1.c461e11236e13b300745afb88861p11: ++%*40LE:-3.6190587245056029583909936820055344E03716:0:40: ++# BZ12701 %40LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%40LE:-0E+0:1:5:-0x0: ++%*40LE:-0E+0:0:5: ++%40LE:-0E0:1:4:-0x0: ++%*40LE:-0E0:0:4: ++%40LE:-NAN(09A_Zaz):1:13:-nan: ++%*40LE:-NAN(09A_Zaz):0:13: ++%40LE:-NAN():1:6:-nan: ++%*40LE:-NAN():0:6: ++%40LE:NAN():1:5:nan: ++%*40LE:NAN():0:5: ++%40LE:NAN(09A_Zaz):1:12:nan: ++%*40LE:NAN(09A_Zaz):0:12: ++%40LE:0E0:1:3:0x0: ++%*40LE:0E0:0:3: ++%40LE:0E+0:1:4:0x0: ++%*40LE:0E+0:0:4: ++%40LE:3.36210314311209350626267781732175260e-4932:1:40:0x1.608ac4df6a146bceb1f1fbc05807p-12: ++%*40LE:3.36210314311209350626267781732175260e-4932:0:40: ++%40LE:3.6190587245056029583909936820055344E03716:1:40:0x1.b3a0db6a2433ca1ab428755ec4e8p124: ++%*40LE:3.6190587245056029583909936820055344E03716:0:40: ++%40LE:3.6190587245056029583909936820055344E+3716:1:40:0x1.b3a0db6a2433ca1ab428755ec4e8p124: ++%*40LE:3.6190587245056029583909936820055344E+3716:0:40: ++%40LE:1.18973149535723176508575932662800702E4932:1:40:0x1.047ec1b6d6390a5ce34fd9d25b88p163: ++%*40LE:1.18973149535723176508575932662800702E4932:0:40: ++%40LE:1.18973149535723176508575932662800702E+4932:1:40:0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40LE:1.18973149535723176508575932662800702E+4932:0:40: ++%40LE:INFINITY:1:8:inf: ++%*40LE:INFINITY:0:8: ++%40LE:+NAN():1:6:nan: ++%*40LE:+NAN():0:6: ++%40LE:+NAN(09A_Zaz):1:13:nan: ++%*40LE:+NAN(09A_Zaz):0:13: ++%40LE:+0E0:1:4:0x0: ++%*40LE:+0E0:0:4: ++%40LE:+0E+0:1:5:0x0: ++%*40LE:+0E+0:0:5: ++# BZ12701 %40LE:+3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40LE:+3.36210314311209350626267781732175260e-4932:0:-1: ++%40LE:+3.6190587245056029583909936820055344E03716:1:40:0x1.c461e11236e13b300745afb88861p11: ++%*40LE:+3.6190587245056029583909936820055344E03716:0:40: ++%40LE:+3.6190587245056029583909936820055344E+3716:1:40:0x1.c461e11236e13b300745afb88861p11: ++%*40LE:+3.6190587245056029583909936820055344E+3716:0:40: ++%40LE:+1.18973149535723176508575932662800702E4932:1:40:0x1.73ca850660e6e6c57bb65bfbc7f1p13: ++%*40LE:+1.18973149535723176508575932662800702E4932:0:40: ++# BZ12701 %40LE:+1.18973149535723176508575932662800702E+4932:0:-1: ++# BZ12701 %*40LE:+1.18973149535723176508575932662800702E+4932:0:-1: ++%40LE:+INFINITY:1:9:inf: ++%*40LE:+INFINITY:0:9: ++%48LE::0:-1: ++%*48LE::0:-1: ++%48LE:-INFINITY:1:9:-inf: ++%*48LE:-INFINITY:0:9: ++%48LE:-1.18973149535723176508575932662800702E+4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:-1.18973149535723176508575932662800702E+4932:0:44: ++%48LE:-1.18973149535723176508575932662800702E4932:1:43:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:-1.18973149535723176508575932662800702E4932:0:43: ++%48LE:-3.6190587245056029583909936820055344E+3716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:-3.6190587245056029583909936820055344E+3716:0:43: ++%48LE:-3.6190587245056029583909936820055344E03716:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:-3.6190587245056029583909936820055344E03716:0:43: ++%48LE:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*48LE:-3.36210314311209350626267781732175260e-4932:0:44: ++%48LE:-0E+0:1:5:-0x0: ++%*48LE:-0E+0:0:5: ++%48LE:-0E0:1:4:-0x0: ++%*48LE:-0E0:0:4: ++%48LE:-NAN(09A_Zaz):1:13:-nan: ++%*48LE:-NAN(09A_Zaz):0:13: ++%48LE:-NAN():1:6:-nan: ++%*48LE:-NAN():0:6: ++%48LE:NAN():1:5:nan: ++%*48LE:NAN():0:5: ++%48LE:NAN(09A_Zaz):1:12:nan: ++%*48LE:NAN(09A_Zaz):0:12: ++%48LE:0E0:1:3:0x0: ++%*48LE:0E0:0:3: ++%48LE:0E+0:1:4:0x0: ++%*48LE:0E+0:0:4: ++%48LE:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*48LE:3.36210314311209350626267781732175260e-4932:0:43: ++%48LE:3.6190587245056029583909936820055344E03716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:3.6190587245056029583909936820055344E03716:0:42: ++%48LE:3.6190587245056029583909936820055344E+3716:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:3.6190587245056029583909936820055344E+3716:0:42: ++%48LE:1.18973149535723176508575932662800702E4932:1:42:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:1.18973149535723176508575932662800702E4932:0:42: ++%48LE:1.18973149535723176508575932662800702E+4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:1.18973149535723176508575932662800702E+4932:0:43: ++%48LE:INFINITY:1:8:inf: ++%*48LE:INFINITY:0:8: ++%48LE:+NAN():1:6:nan: ++%*48LE:+NAN():0:6: ++%48LE:+NAN(09A_Zaz):1:13:nan: ++%*48LE:+NAN(09A_Zaz):0:13: ++%48LE:+0E0:1:4:0x0: ++%*48LE:+0E0:0:4: ++%48LE:+0E+0:1:5:0x0: ++%*48LE:+0E+0:0:5: ++%48LE:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48LE:+3.36210314311209350626267781732175260e-4932:0:44: ++%48LE:+3.6190587245056029583909936820055344E03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:+3.6190587245056029583909936820055344E03716:0:43: ++%48LE:+3.6190587245056029583909936820055344E+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE:+3.6190587245056029583909936820055344E+3716:0:43: ++%48LE:+1.18973149535723176508575932662800702E4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:+1.18973149535723176508575932662800702E4932:0:43: ++%48LE:+1.18973149535723176508575932662800702E+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE:+1.18973149535723176508575932662800702E+4932:0:44: ++%48LE:+INFINITY:1:9:inf: ++%*48LE:+INFINITY:0:9: ++%3LE: :0:-1: ++%*3LE: :0:-1: ++%3LE: -INFINITY:0:-1: ++%*3LE: -INFINITY:0:-1: ++%3LE: -1.18973149535723176508575932662800702E+4932:1:4:-0x1: ++%*3LE: -1.18973149535723176508575932662800702E+4932:0:4: ++%3LE: -1.18973149535723176508575932662800702E4932:1:4:-0x1: ++%*3LE: -1.18973149535723176508575932662800702E4932:0:4: ++%3LE: -3.6190587245056029583909936820055344E+3716:1:4:-0x1.8p1: ++%*3LE: -3.6190587245056029583909936820055344E+3716:0:4: ++%3LE: -3.6190587245056029583909936820055344E03716:1:4:-0x1.8p1: ++%*3LE: -3.6190587245056029583909936820055344E03716:0:4: ++%3LE: -3.36210314311209350626267781732175260e-4932:1:4:-0x1.8p1: ++%*3LE: -3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %3LE: -0E+0:0:-1: ++# BZ12701 %*3LE: -0E+0:0:-1: ++# BZ12701 %3LE: -0E0:0:-1: ++# BZ12701 %*3LE: -0E0:0:-1: ++%3LE: -NAN(09A_Zaz):0:-1: ++%*3LE: -NAN(09A_Zaz):0:-1: ++%3LE: -NAN():0:-1: ++%*3LE: -NAN():0:-1: ++%3LE: NAN():1:4:nan: ++%*3LE: NAN():0:4: ++%3LE: NAN(09A_Zaz):1:4:nan: ++%*3LE: NAN(09A_Zaz):0:4: ++%3LE: 0E0:1:4:0x0: ++%*3LE: 0E0:0:4: ++# BZ12701 %3LE: 0E+0:0:-1: ++# BZ12701 %*3LE: 0E+0:0:-1: ++%3LE: 3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666666666666666p1: ++%*3LE: 3.36210314311209350626267781732175260e-4932:0:4: ++%3LE: 3.6190587245056029583909936820055344E03716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*3LE: 3.6190587245056029583909936820055344E03716:0:4: ++%3LE: 3.6190587245056029583909936820055344E+3716:1:4:0x1.cccccccccccccccccccccccccccdp1: ++%*3LE: 3.6190587245056029583909936820055344E+3716:0:4: ++%3LE: 1.18973149535723176508575932662800702E4932:1:4:0x1.199999999999999999999999999a: ++%*3LE: 1.18973149535723176508575932662800702E4932:0:4: ++%3LE: 1.18973149535723176508575932662800702E+4932:1:4:0x1.199999999999999999999999999a: ++%*3LE: 1.18973149535723176508575932662800702E+4932:0:4: ++%3LE: INFINITY:1:4:inf: ++%*3LE: INFINITY:0:4: ++%3LE: +NAN():0:-1: ++%*3LE: +NAN():0:-1: ++%3LE: +NAN(09A_Zaz):0:-1: ++%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE: +0E0:0:-1: ++# BZ12701 %*3LE: +0E0:0:-1: ++# BZ12701 %3LE: +0E+0:0:-1: ++# BZ12701 %*3LE: +0E+0:0:-1: ++%3LE: +3.36210314311209350626267781732175260e-4932:1:4:0x1.8p1: ++%*3LE: +3.36210314311209350626267781732175260e-4932:0:4: ++%3LE: +3.6190587245056029583909936820055344E03716:1:4:0x1.8p1: ++%*3LE: +3.6190587245056029583909936820055344E03716:0:4: ++%3LE: +3.6190587245056029583909936820055344E+3716:1:4:0x1.8p1: ++%*3LE: +3.6190587245056029583909936820055344E+3716:0:4: ++%3LE: +1.18973149535723176508575932662800702E4932:1:4:0x1: ++%*3LE: +1.18973149535723176508575932662800702E4932:0:4: ++%3LE: +1.18973149535723176508575932662800702E+4932:1:4:0x1: ++%*3LE: +1.18973149535723176508575932662800702E+4932:0:4: ++%3LE: +INFINITY:0:-1: ++%*3LE: +INFINITY:0:-1: ++%48LE: :0:-1: ++%*48LE: :0:-1: ++%48LE: -INFINITY:1:10:-inf: ++%*48LE: -INFINITY:0:10: ++%48LE: -1.18973149535723176508575932662800702E+4932:1:45:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: -1.18973149535723176508575932662800702E+4932:0:45: ++%48LE: -1.18973149535723176508575932662800702E4932:1:44:-0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: -1.18973149535723176508575932662800702E4932:0:44: ++%48LE: -3.6190587245056029583909936820055344E+3716:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: -3.6190587245056029583909936820055344E+3716:0:44: ++%48LE: -3.6190587245056029583909936820055344E03716:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: -3.6190587245056029583909936820055344E03716:0:44: ++%48LE: -3.36210314311209350626267781732175260e-4932:1:45:-0x1p-16382: ++%*48LE: -3.36210314311209350626267781732175260e-4932:0:45: ++%48LE: -0E+0:1:6:-0x0: ++%*48LE: -0E+0:0:6: ++%48LE: -0E0:1:5:-0x0: ++%*48LE: -0E0:0:5: ++%48LE: -NAN(09A_Zaz):1:14:-nan: ++%*48LE: -NAN(09A_Zaz):0:14: ++%48LE: -NAN():1:7:-nan: ++%*48LE: -NAN():0:7: ++%48LE: NAN():1:6:nan: ++%*48LE: NAN():0:6: ++%48LE: NAN(09A_Zaz):1:13:nan: ++%*48LE: NAN(09A_Zaz):0:13: ++%48LE: 0E0:1:4:0x0: ++%*48LE: 0E0:0:4: ++%48LE: 0E+0:1:5:0x0: ++%*48LE: 0E+0:0:5: ++%48LE: 3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48LE: 3.36210314311209350626267781732175260e-4932:0:44: ++%48LE: 3.6190587245056029583909936820055344E03716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: 3.6190587245056029583909936820055344E03716:0:43: ++%48LE: 3.6190587245056029583909936820055344E+3716:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: 3.6190587245056029583909936820055344E+3716:0:43: ++%48LE: 1.18973149535723176508575932662800702E4932:1:43:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: 1.18973149535723176508575932662800702E4932:0:43: ++%48LE: 1.18973149535723176508575932662800702E+4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: 1.18973149535723176508575932662800702E+4932:0:44: ++%48LE: INFINITY:1:9:inf: ++%*48LE: INFINITY:0:9: ++%48LE: +NAN():1:7:nan: ++%*48LE: +NAN():0:7: ++%48LE: +NAN(09A_Zaz):1:14:nan: ++%*48LE: +NAN(09A_Zaz):0:14: ++%48LE: +0E0:1:5:0x0: ++%*48LE: +0E0:0:5: ++%48LE: +0E+0:1:6:0x0: ++%*48LE: +0E+0:0:6: ++%48LE: +3.36210314311209350626267781732175260e-4932:1:45:0x1p-16382: ++%*48LE: +3.36210314311209350626267781732175260e-4932:0:45: ++%48LE: +3.6190587245056029583909936820055344E03716:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: +3.6190587245056029583909936820055344E03716:0:44: ++%48LE: +3.6190587245056029583909936820055344E+3716:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*48LE: +3.6190587245056029583909936820055344E+3716:0:44: ++%48LE: +1.18973149535723176508575932662800702E4932:1:44:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: +1.18973149535723176508575932662800702E4932:0:44: ++%48LE: +1.18973149535723176508575932662800702E+4932:1:45:0x1.ffffffffffffffffffffffffffffp16383: ++%*48LE: +1.18973149535723176508575932662800702E+4932:0:45: ++%48LE: +INFINITY:1:10:inf: ++%*48LE: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input +new file mode 100644 +index 0000000000000000..955ef173eb417670 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-f.input +@@ -0,0 +1,496 @@ ++%Lf::0:-1: ++%*Lf::0:-1: ++%Lf:-infinity:1:9:-inf: ++%*Lf:-infinity:0:9: ++%Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%Lf:-0.0:1:4:-0x0: ++%*Lf:-0.0:0:4: ++%Lf:-0:1:2:-0x0: ++%*Lf:-0:0:2: ++%Lf:-nan(09A_Zaz):1:13:-nan: ++%*Lf:-nan(09A_Zaz):0:13: ++%Lf:-nan():1:6:-nan: ++%*Lf:-nan():0:6: ++%Lf:nan():1:5:nan: ++%*Lf:nan():0:5: ++%Lf:nan(09A_Zaz):1:12:nan: ++%*Lf:nan(09A_Zaz):0:12: ++%Lf:0:1:1:0x0: ++%*Lf:0:0:1: ++%Lf:0.0:1:3:0x0: ++%*Lf:0.0:0:3: ++%Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4936:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: ++%Lf:infinity:1:8:inf: ++%*Lf:infinity:0:8: ++%Lf:+nan():1:6:nan: ++%*Lf:+nan():0:6: ++%Lf:+nan(09A_Zaz):1:13:nan: ++%*Lf:+nan(09A_Zaz):0:13: ++%Lf:+0:1:2:0x0: ++%*Lf:+0:0:2: ++%Lf:+0.0:1:4:0x0: ++%*Lf:+0.0:0:4: ++%Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%Lf:+infinity:1:9:inf: ++%*Lf:+infinity:0:9: ++%1Lf::0:-1: ++%*1Lf::0:-1: ++%1Lf:-infinity:0:-1: ++%*1Lf:-infinity:0:-1: ++%1Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%*1Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%1Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%*1Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%1Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%*1Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%1Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%*1Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1Lf:-0.0:0:-1: ++%*1Lf:-0.0:0:-1: ++%1Lf:-0:0:-1: ++%*1Lf:-0:0:-1: ++%1Lf:-nan(09A_Zaz):0:-1: ++%*1Lf:-nan(09A_Zaz):0:-1: ++%1Lf:-nan():0:-1: ++%*1Lf:-nan():0:-1: ++%1Lf:nan():0:-1: ++%*1Lf:nan():0:-1: ++%1Lf:nan(09A_Zaz):0:-1: ++%*1Lf:nan(09A_Zaz):0:-1: ++%1Lf:0:1:1:0x0: ++%*1Lf:0:0:1: ++%1Lf:0.0:1:1:0x0: ++%*1Lf:0.0:0:1: ++%1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:1:0x0: ++%*1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:1: ++%1Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:1:0x1.8p1: ++%*1Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:1: ++%1Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:1:0x0: ++%*1Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:1: ++%1Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:1:0x1: ++%*1Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:1: ++%1Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:1:0x0: ++%*1Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:1: ++%1Lf:infinity:0:-1: ++%*1Lf:infinity:0:-1: ++%1Lf:+nan():0:-1: ++%*1Lf:+nan():0:-1: ++%1Lf:+nan(09A_Zaz):0:-1: ++%*1Lf:+nan(09A_Zaz):0:-1: ++%1Lf:+0:0:-1: ++%*1Lf:+0:0:-1: ++%1Lf:+0.0:0:-1: ++%*1Lf:+0.0:0:-1: ++%1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%*1Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%1Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%*1Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%1Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%*1Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%1Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%*1Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%1Lf:+infinity:0:-1: ++%*1Lf:+infinity:0:-1: ++%2Lf::0:-1: ++%*2Lf::0:-1: ++%2Lf:-infinity:0:-1: ++%*2Lf:-infinity:0:-1: ++%2Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:-0x0: ++%*2Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:-0x1: ++%*2Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:-0x0: ++%*2Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:-0x1.8p1: ++%*2Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:-0x0: ++%*2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:-0.0:1:2:-0x0: ++%*2Lf:-0.0:0:2: ++%2Lf:-0:1:2:-0x0: ++%*2Lf:-0:0:2: ++%2Lf:-nan(09A_Zaz):0:-1: ++%*2Lf:-nan(09A_Zaz):0:-1: ++%2Lf:-nan():0:-1: ++%*2Lf:-nan():0:-1: ++%2Lf:nan():0:-1: ++%*2Lf:nan():0:-1: ++%2Lf:nan(09A_Zaz):0:-1: ++%*2Lf:nan(09A_Zaz):0:-1: ++%2Lf:0:1:1:0x0: ++%*2Lf:0:0:1: ++%2Lf:0.0:1:2:0x0: ++%*2Lf:0.0:0:2: ++%2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:0x1.2p5: ++%*2Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:0x1.8p1: ++%*2Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:0x1.6p3: ++%*2Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:0x1: ++%*2Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2Lf:infinity:0:-1: ++%*2Lf:infinity:0:-1: ++%2Lf:+nan():0:-1: ++%*2Lf:+nan():0:-1: ++%2Lf:+nan(09A_Zaz):0:-1: ++%*2Lf:+nan(09A_Zaz):0:-1: ++%2Lf:+0:1:2:0x0: ++%*2Lf:+0:0:2: ++%2Lf:+0.0:1:2:0x0: ++%*2Lf:+0.0:0:2: ++%2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:0x1.8p1: ++%*2Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:0x0: ++%*2Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:0x1: ++%*2Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:0x0: ++%*2Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2Lf:+infinity:0:-1: ++%*2Lf:+infinity:0:-1: ++%3Lf::0:-1: ++%*3Lf::0:-1: ++%3Lf:-infinity:0:-1: ++%*3Lf:-infinity:0:-1: ++%3Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:-0x1: ++%*3Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:-0x1.6p3: ++%*3Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:-0x1.8p1: ++%*3Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:-0x1.2p5: ++%*3Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:-0x0: ++%*3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:-0.0:1:3:-0x0: ++%*3Lf:-0.0:0:3: ++%3Lf:-0:1:2:-0x0: ++%*3Lf:-0:0:2: ++%3Lf:-nan(09A_Zaz):0:-1: ++%*3Lf:-nan(09A_Zaz):0:-1: ++%3Lf:-nan():0:-1: ++%*3Lf:-nan():0:-1: ++%3Lf:nan():1:3:nan: ++%*3Lf:nan():0:3: ++%3Lf:nan(09A_Zaz):1:3:nan: ++%*3Lf:nan(09A_Zaz):0:3: ++%3Lf:0:1:1:0x0: ++%*3Lf:0:0:1: ++%3Lf:0.0:1:3:0x0: ++%*3Lf:0.0:0:3: ++%3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:0x1.69p+8: ++%*3Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:0x1.2p5: ++%*3Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:0x1.d8p6: ++%*3Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:0x1.6p3: ++%*3Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3Lf:infinity:1:3:inf: ++%*3Lf:infinity:0:3: ++%3Lf:+nan():0:-1: ++%*3Lf:+nan():0:-1: ++%3Lf:+nan(09A_Zaz):0:-1: ++%*3Lf:+nan(09A_Zaz):0:-1: ++%3Lf:+0:1:2:0x0: ++%*3Lf:+0:0:2: ++%3Lf:+0.0:1:3:0x0: ++%*3Lf:+0.0:0:3: ++%3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:0x1.2p5: ++%*3Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:0x1.8p1: ++%*3Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:0x1.6p3: ++%*3Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:0x1: ++%*3Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3Lf:+infinity:0:-1: ++%*3Lf:+infinity:0:-1: ++%4935Lf::0:-1: ++%*4935Lf::0:-1: ++%4935Lf:-infinity:1:9:-inf: ++%*4935Lf:-infinity:0:9: ++%4935Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:-0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%4935Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%4935Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%4935Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:-0x1.c8db5d6b5ee81f42213bd561a016p-16383: ++%*4935Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:-0.0:1:4:-0x0: ++%*4935Lf:-0.0:0:4: ++%4935Lf:-0:1:2:-0x0: ++%*4935Lf:-0:0:2: ++%4935Lf:-nan(09A_Zaz):1:13:-nan: ++%*4935Lf:-nan(09A_Zaz):0:13: ++%4935Lf:-nan():1:6:-nan: ++%*4935Lf:-nan():0:6: ++%4935Lf:nan():1:5:nan: ++%*4935Lf:nan():0:5: ++%4935Lf:nan(09A_Zaz):1:12:nan: ++%*4935Lf:nan(09A_Zaz):0:12: ++%4935Lf:0:1:1:0x0: ++%*4935Lf:0:0:1: ++%4935Lf:0.0:1:3:0x0: ++%*4935Lf:0.0:0:3: ++%4935Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.f68ae6c2e865bbfbf15b6ab83018p-16383: ++%*4935Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%4935Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%4935Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%4935Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935Lf:infinity:1:8:inf: ++%*4935Lf:infinity:0:8: ++%4935Lf:+nan():1:6:nan: ++%*4935Lf:+nan():0:6: ++%4935Lf:+nan(09A_Zaz):1:13:nan: ++%*4935Lf:+nan(09A_Zaz):0:13: ++%4935Lf:+0:1:2:0x0: ++%*4935Lf:+0:0:2: ++%4935Lf:+0.0:1:4:0x0: ++%*4935Lf:+0.0:0:4: ++%4935Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.c8db5d6b5ee81f42213bd561a016p-16383: ++%*4935Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%4935Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%4935Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%4935Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935Lf:+infinity:1:9:inf: ++%*4935Lf:+infinity:0:9: ++%5000Lf::0:-1: ++%*5000Lf::0:-1: ++%5000Lf:-infinity:1:9:-inf: ++%*5000Lf:-infinity:0:9: ++%5000Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*5000Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf:-0.0:1:4:-0x0: ++%*5000Lf:-0.0:0:4: ++%5000Lf:-0:1:2:-0x0: ++%*5000Lf:-0:0:2: ++%5000Lf:-nan(09A_Zaz):1:13:-nan: ++%*5000Lf:-nan(09A_Zaz):0:13: ++%5000Lf:-nan():1:6:-nan: ++%*5000Lf:-nan():0:6: ++%5000Lf:nan():1:5:nan: ++%*5000Lf:nan():0:5: ++%5000Lf:nan(09A_Zaz):1:12:nan: ++%*5000Lf:nan(09A_Zaz):0:12: ++%5000Lf:0:1:1:0x0: ++%*5000Lf:0:0:1: ++%5000Lf:0.0:1:3:0x0: ++%*5000Lf:0.0:0:3: ++%5000Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*5000Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%5000Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%5000Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%5000Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%5000Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4936:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: ++%5000Lf:infinity:1:8:inf: ++%*5000Lf:infinity:0:8: ++%5000Lf:+nan():1:6:nan: ++%*5000Lf:+nan():0:6: ++%5000Lf:+nan(09A_Zaz):1:13:nan: ++%*5000Lf:+nan(09A_Zaz):0:13: ++%5000Lf:+0:1:2:0x0: ++%*5000Lf:+0:0:2: ++%5000Lf:+0.0:1:4:0x0: ++%*5000Lf:+0.0:0:4: ++%5000Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000Lf:+infinity:1:9:inf: ++%*5000Lf:+infinity:0:9: ++%3Lf: :0:-1: ++%*3Lf: :0:-1: ++%3Lf: -infinity:0:-1: ++%*3Lf: -infinity:0:-1: ++%3Lf: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:-0x1: ++%*3Lf: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3Lf: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:-0x1.6p3: ++%*3Lf: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3Lf: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:-0x1.8p1: ++%*3Lf: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3Lf: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:-0x1.2p5: ++%*3Lf: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:-0x0: ++%*3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: -0.0:1:4:-0x0: ++%*3Lf: -0.0:0:4: ++%3Lf: -0:1:3:-0x0: ++%*3Lf: -0:0:3: ++%3Lf: -nan(09A_Zaz):0:-1: ++%*3Lf: -nan(09A_Zaz):0:-1: ++%3Lf: -nan():0:-1: ++%*3Lf: -nan():0:-1: ++%3Lf: nan():1:4:nan: ++%*3Lf: nan():0:4: ++%3Lf: nan(09A_Zaz):1:4:nan: ++%*3Lf: nan(09A_Zaz):0:4: ++%3Lf: 0:1:2:0x0: ++%*3Lf: 0:0:2: ++%3Lf: 0.0:1:4:0x0: ++%*3Lf: 0.0:0:4: ++%3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:0x1.69p+8: ++%*3Lf: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3Lf: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:0x1.2p5: ++%*3Lf: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3Lf: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:0x1.d8p6: ++%*3Lf: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:0x1.6p3: ++%*3Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3Lf: infinity:1:4:inf: ++%*3Lf: infinity:0:4: ++%3Lf: +nan():0:-1: ++%*3Lf: +nan():0:-1: ++%3Lf: +nan(09A_Zaz):0:-1: ++%*3Lf: +nan(09A_Zaz):0:-1: ++%3Lf: +0:1:3:0x0: ++%*3Lf: +0:0:3: ++%3Lf: +0.0:1:4:0x0: ++%*3Lf: +0.0:0:4: ++%3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:0x1.2p5: ++%*3Lf: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3Lf: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:0x1.8p1: ++%*3Lf: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3Lf: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:0x1.6p3: ++%*3Lf: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3Lf: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:0x1: ++%*3Lf: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3Lf: +infinity:0:-1: ++%*3Lf: +infinity:0:-1: ++%5000Lf: :0:-1: ++%*5000Lf: :0:-1: ++%5000Lf: -infinity:1:10:-inf: ++%*5000Lf: -infinity:0:10: ++%5000Lf: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4938:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4938: ++%5000Lf: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4935:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4935: ++%5000Lf: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3722:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3722: ++%5000Lf: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3719:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3719: ++%5000Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:-0x1p-16382: ++%*5000Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000Lf: -0.0:1:5:-0x0: ++%*5000Lf: -0.0:0:5: ++%5000Lf: -0:1:3:-0x0: ++%*5000Lf: -0:0:3: ++%5000Lf: -nan(09A_Zaz):1:14:-nan: ++%*5000Lf: -nan(09A_Zaz):0:14: ++%5000Lf: -nan():1:7:-nan: ++%*5000Lf: -nan():0:7: ++%5000Lf: nan():1:6:nan: ++%*5000Lf: nan():0:6: ++%5000Lf: nan(09A_Zaz):1:13:nan: ++%*5000Lf: nan(09A_Zaz):0:13: ++%5000Lf: 0:1:2:0x0: ++%*5000Lf: 0:0:2: ++%5000Lf: 0.0:1:4:0x0: ++%*5000Lf: 0.0:0:4: ++%5000Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000Lf: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000Lf: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000Lf: infinity:1:9:inf: ++%*5000Lf: infinity:0:9: ++%5000Lf: +nan():1:7:nan: ++%*5000Lf: +nan():0:7: ++%5000Lf: +nan(09A_Zaz):1:14:nan: ++%*5000Lf: +nan(09A_Zaz):0:14: ++%5000Lf: +0:1:3:0x0: ++%*5000Lf: +0:0:3: ++%5000Lf: +0.0:1:5:0x0: ++%*5000Lf: +0.0:0:5: ++%5000Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:0x1p-16382: ++%*5000Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000Lf: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3719:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3719: ++%5000Lf: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3722:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000Lf: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3722: ++%5000Lf: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4935: ++%5000Lf: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4938:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000Lf: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4938: ++%5000Lf: +infinity:1:10:inf: ++%*5000Lf: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input +new file mode 100644 +index 0000000000000000..b3e73df5d359fca7 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-ff.input +@@ -0,0 +1,496 @@ ++%LF::0:-1: ++%*LF::0:-1: ++%LF:-INFINITY:1:9:-inf: ++%*LF:-INFINITY:0:9: ++%LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%LF:-0.0:1:4:-0x0: ++%*LF:-0.0:0:4: ++%LF:-0:1:2:-0x0: ++%*LF:-0:0:2: ++%LF:-NAN(09A_Zaz):1:13:-nan: ++%*LF:-NAN(09A_Zaz):0:13: ++%LF:-NAN():1:6:-nan: ++%*LF:-NAN():0:6: ++%LF:NAN():1:5:nan: ++%*LF:NAN():0:5: ++%LF:NAN(09A_Zaz):1:12:nan: ++%*LF:NAN(09A_Zaz):0:12: ++%LF:0:1:1:0x0: ++%*LF:0:0:1: ++%LF:0.0:1:3:0x0: ++%*LF:0.0:0:3: ++%LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4936:0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: ++%LF:INFINITY:1:8:inf: ++%*LF:INFINITY:0:8: ++%LF:+NAN():1:6:nan: ++%*LF:+NAN():0:6: ++%LF:+NAN(09A_Zaz):1:13:nan: ++%*LF:+NAN(09A_Zaz):0:13: ++%LF:+0:1:2:0x0: ++%*LF:+0:0:2: ++%LF:+0.0:1:4:0x0: ++%*LF:+0.0:0:4: ++%LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%LF:+INFINITY:1:9:inf: ++%*LF:+INFINITY:0:9: ++%1LF::0:-1: ++%*1LF::0:-1: ++%1LF:-INFINITY:0:-1: ++%*1LF:-INFINITY:0:-1: ++%1LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%*1LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%1LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%*1LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%1LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%*1LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%1LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%*1LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1LF:-0.0:0:-1: ++%*1LF:-0.0:0:-1: ++%1LF:-0:0:-1: ++%*1LF:-0:0:-1: ++%1LF:-NAN(09A_Zaz):0:-1: ++%*1LF:-NAN(09A_Zaz):0:-1: ++%1LF:-NAN():0:-1: ++%*1LF:-NAN():0:-1: ++%1LF:NAN():0:-1: ++%*1LF:NAN():0:-1: ++%1LF:NAN(09A_Zaz):0:-1: ++%*1LF:NAN(09A_Zaz):0:-1: ++%1LF:0:1:1:0x0: ++%*1LF:0:0:1: ++%1LF:0.0:1:1:0x0: ++%*1LF:0.0:0:1: ++%1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:1:0x0: ++%*1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:1: ++%1LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:1:0x1.8p1: ++%*1LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:1: ++%1LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:1:0x0: ++%*1LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:1: ++%1LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:1:0x1: ++%*1LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:1: ++%1LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:1:0x0: ++%*1LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:1: ++%1LF:INFINITY:0:-1: ++%*1LF:INFINITY:0:-1: ++%1LF:+NAN():0:-1: ++%*1LF:+NAN():0:-1: ++%1LF:+NAN(09A_Zaz):0:-1: ++%*1LF:+NAN(09A_Zaz):0:-1: ++%1LF:+0:0:-1: ++%*1LF:+0:0:-1: ++%1LF:+0.0:0:-1: ++%*1LF:+0.0:0:-1: ++%1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%*1LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:-1: ++%1LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%*1LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:-1: ++%1LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%*1LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:-1: ++%1LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%*1LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:-1: ++%1LF:+INFINITY:0:-1: ++%*1LF:+INFINITY:0:-1: ++%2LF::0:-1: ++%*2LF::0:-1: ++%2LF:-INFINITY:0:-1: ++%*2LF:-INFINITY:0:-1: ++%2LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:-0x0: ++%*2LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:-0x1: ++%*2LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:-0x0: ++%*2LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:-0x1.8p1: ++%*2LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:-0x0: ++%*2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:-0.0:1:2:-0x0: ++%*2LF:-0.0:0:2: ++%2LF:-0:1:2:-0x0: ++%*2LF:-0:0:2: ++%2LF:-NAN(09A_Zaz):0:-1: ++%*2LF:-NAN(09A_Zaz):0:-1: ++%2LF:-NAN():0:-1: ++%*2LF:-NAN():0:-1: ++%2LF:NAN():0:-1: ++%*2LF:NAN():0:-1: ++%2LF:NAN(09A_Zaz):0:-1: ++%*2LF:NAN(09A_Zaz):0:-1: ++%2LF:0:1:1:0x0: ++%*2LF:0:0:1: ++%2LF:0.0:1:2:0x0: ++%*2LF:0.0:0:2: ++%2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:0x1.2p5: ++%*2LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:0x1.8p1: ++%*2LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:0x1.6p3: ++%*2LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:0x1: ++%*2LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2LF:INFINITY:0:-1: ++%*2LF:INFINITY:0:-1: ++%2LF:+NAN():0:-1: ++%*2LF:+NAN():0:-1: ++%2LF:+NAN(09A_Zaz):0:-1: ++%*2LF:+NAN(09A_Zaz):0:-1: ++%2LF:+0:1:2:0x0: ++%*2LF:+0:0:2: ++%2LF:+0.0:1:2:0x0: ++%*2LF:+0.0:0:2: ++%2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:2:0x1.8p1: ++%*2LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:2: ++%2LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:2:0x0: ++%*2LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:2: ++%2LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:2:0x1: ++%*2LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:2: ++%2LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:2:0x0: ++%*2LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:2: ++%2LF:+INFINITY:0:-1: ++%*2LF:+INFINITY:0:-1: ++%3LF::0:-1: ++%*3LF::0:-1: ++%3LF:-INFINITY:0:-1: ++%*3LF:-INFINITY:0:-1: ++%3LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:-0x1: ++%*3LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:-0x1.6p3: ++%*3LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:-0x1.8p1: ++%*3LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:-0x1.2p5: ++%*3LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:-0x0: ++%*3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:-0.0:1:3:-0x0: ++%*3LF:-0.0:0:3: ++%3LF:-0:1:2:-0x0: ++%*3LF:-0:0:2: ++%3LF:-NAN(09A_Zaz):0:-1: ++%*3LF:-NAN(09A_Zaz):0:-1: ++%3LF:-NAN():0:-1: ++%*3LF:-NAN():0:-1: ++%3LF:NAN():1:3:nan: ++%*3LF:NAN():0:3: ++%3LF:NAN(09A_Zaz):1:3:nan: ++%*3LF:NAN(09A_Zaz):0:3: ++%3LF:0:1:1:0x0: ++%*3LF:0:0:1: ++%3LF:0.0:1:3:0x0: ++%*3LF:0.0:0:3: ++%3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:0x1.69p+8: ++%*3LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:0x1.2p5: ++%*3LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:0x1.d8p6: ++%*3LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:0x1.6p3: ++%*3LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3LF:INFINITY:1:3:inf: ++%*3LF:INFINITY:0:3: ++%3LF:+NAN():0:-1: ++%*3LF:+NAN():0:-1: ++%3LF:+NAN(09A_Zaz):0:-1: ++%*3LF:+NAN(09A_Zaz):0:-1: ++%3LF:+0:1:2:0x0: ++%*3LF:+0:0:2: ++%3LF:+0.0:1:3:0x0: ++%*3LF:+0.0:0:3: ++%3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3:0x1.2p5: ++%*3LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3: ++%3LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3:0x1.8p1: ++%*3LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3: ++%3LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:3:0x1.6p3: ++%*3LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:3: ++%3LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:3:0x1: ++%*3LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:3: ++%3LF:+INFINITY:0:-1: ++%*3LF:+INFINITY:0:-1: ++%4935LF::0:-1: ++%*4935LF::0:-1: ++%4935LF:-INFINITY:1:9:-inf: ++%*4935LF:-INFINITY:0:9: ++%4935LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:-0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%4935LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%4935LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%4935LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:-0x1.c8db5d6b5ee81f42213bd561a016p-16383: ++%*4935LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:-0.0:1:4:-0x0: ++%*4935LF:-0.0:0:4: ++%4935LF:-0:1:2:-0x0: ++%*4935LF:-0:0:2: ++%4935LF:-NAN(09A_Zaz):1:13:-nan: ++%*4935LF:-NAN(09A_Zaz):0:13: ++%4935LF:-NAN():1:6:-nan: ++%*4935LF:-NAN():0:6: ++%4935LF:NAN():1:5:nan: ++%*4935LF:NAN():0:5: ++%4935LF:NAN(09A_Zaz):1:12:nan: ++%*4935LF:NAN(09A_Zaz):0:12: ++%4935LF:0:1:1:0x0: ++%*4935LF:0:0:1: ++%4935LF:0.0:1:3:0x0: ++%*4935LF:0.0:0:3: ++%4935LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.f68ae6c2e865bbfbf15b6ab83018p-16383: ++%*4935LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%4935LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%4935LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%4935LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935LF:INFINITY:1:8:inf: ++%*4935LF:INFINITY:0:8: ++%4935LF:+NAN():1:6:nan: ++%*4935LF:+NAN():0:6: ++%4935LF:+NAN(09A_Zaz):1:13:nan: ++%*4935LF:+NAN(09A_Zaz):0:13: ++%4935LF:+0:1:2:0x0: ++%*4935LF:+0:0:2: ++%4935LF:+0.0:1:4:0x0: ++%*4935LF:+0.0:0:4: ++%4935LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.c8db5d6b5ee81f42213bd561a016p-16383: ++%*4935LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%4935LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*4935LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%4935LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%4935LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*4935LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4935: ++%4935LF:+INFINITY:1:9:inf: ++%*4935LF:+INFINITY:0:9: ++%5000LF::0:-1: ++%*5000LF::0:-1: ++%5000LF:-INFINITY:1:9:-inf: ++%*5000LF:-INFINITY:0:9: ++%5000LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:-01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:-1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:-0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:-361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*5000LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF:-0.0:1:4:-0x0: ++%*5000LF:-0.0:0:4: ++%5000LF:-0:1:2:-0x0: ++%*5000LF:-0:0:2: ++%5000LF:-NAN(09A_Zaz):1:13:-nan: ++%*5000LF:-NAN(09A_Zaz):0:13: ++%5000LF:-NAN():1:6:-nan: ++%*5000LF:-NAN():0:6: ++%5000LF:NAN():1:5:nan: ++%*5000LF:NAN():0:5: ++%5000LF:NAN(09A_Zaz):1:12:nan: ++%*5000LF:NAN(09A_Zaz):0:12: ++%5000LF:0:1:1:0x0: ++%*5000LF:0:0:1: ++%5000LF:0.0:1:3:0x0: ++%*5000LF:0.0:0:3: ++%5000LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*5000LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%5000LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3717:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3717: ++%5000LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3720:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3720: ++%5000LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4933:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4933: ++%5000LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4936:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4936: ++%5000LF:INFINITY:1:8:inf: ++%*5000LF:INFINITY:0:8: ++%5000LF:+NAN():1:6:nan: ++%*5000LF:+NAN():0:6: ++%5000LF:+NAN(09A_Zaz):1:13:nan: ++%*5000LF:+NAN(09A_Zaz):0:13: ++%5000LF:+0:1:2:0x0: ++%*5000LF:+0:0:2: ++%5000LF:+0.0:1:4:0x0: ++%*5000LF:+0.0:0:4: ++%5000LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:+361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF:+0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:+1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF:+01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000LF:+INFINITY:1:9:inf: ++%*5000LF:+INFINITY:0:9: ++%3LF: :0:-1: ++%*3LF: :0:-1: ++%3LF: -INFINITY:0:-1: ++%*3LF: -INFINITY:0:-1: ++%3LF: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:-0x1: ++%*3LF: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3LF: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:-0x1.6p3: ++%*3LF: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3LF: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:-0x1.8p1: ++%*3LF: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3LF: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:-0x1.2p5: ++%*3LF: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:-0x0: ++%*3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: -0.0:1:4:-0x0: ++%*3LF: -0.0:0:4: ++%3LF: -0:1:3:-0x0: ++%*3LF: -0:0:3: ++%3LF: -NAN(09A_Zaz):0:-1: ++%*3LF: -NAN(09A_Zaz):0:-1: ++%3LF: -NAN():0:-1: ++%*3LF: -NAN():0:-1: ++%3LF: NAN():1:4:nan: ++%*3LF: NAN():0:4: ++%3LF: NAN(09A_Zaz):1:4:nan: ++%*3LF: NAN(09A_Zaz):0:4: ++%3LF: 0:1:2:0x0: ++%*3LF: 0:0:2: ++%3LF: 0.0:1:4:0x0: ++%*3LF: 0.0:0:4: ++%3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:0x1.69p+8: ++%*3LF: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3LF: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:0x1.2p5: ++%*3LF: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3LF: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:0x1.d8p6: ++%*3LF: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:0x1.6p3: ++%*3LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3LF: INFINITY:1:4:inf: ++%*3LF: INFINITY:0:4: ++%3LF: +NAN():0:-1: ++%*3LF: +NAN():0:-1: ++%3LF: +NAN(09A_Zaz):0:-1: ++%*3LF: +NAN(09A_Zaz):0:-1: ++%3LF: +0:1:3:0x0: ++%*3LF: +0:0:3: ++%3LF: +0.0:1:4:0x0: ++%*3LF: +0.0:0:4: ++%3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:4:0x1.2p5: ++%*3LF: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:4: ++%3LF: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:4:0x1.8p1: ++%*3LF: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:4: ++%3LF: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4:0x1.6p3: ++%*3LF: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4: ++%3LF: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4:0x1: ++%*3LF: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4: ++%3LF: +INFINITY:0:-1: ++%*3LF: +INFINITY:0:-1: ++%5000LF: :0:-1: ++%*5000LF: :0:-1: ++%5000LF: -INFINITY:1:10:-inf: ++%*5000LF: -INFINITY:0:10: ++%5000LF: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4938:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: -01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4938: ++%5000LF: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4935:-0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: -1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4935: ++%5000LF: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3722:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: -0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3722: ++%5000LF: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3719:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: -361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3719: ++%5000LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:-0x1p-16382: ++%*5000LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000LF: -0.0:1:5:-0x0: ++%*5000LF: -0.0:0:5: ++%5000LF: -0:1:3:-0x0: ++%*5000LF: -0:0:3: ++%5000LF: -NAN(09A_Zaz):1:14:-nan: ++%*5000LF: -NAN(09A_Zaz):0:14: ++%5000LF: -NAN():1:7:-nan: ++%*5000LF: -NAN():0:7: ++%5000LF: NAN():1:6:nan: ++%*5000LF: NAN():0:6: ++%5000LF: NAN(09A_Zaz):1:13:nan: ++%*5000LF: NAN(09A_Zaz):0:13: ++%5000LF: 0:1:2:0x0: ++%*5000LF: 0:0:2: ++%5000LF: 0.0:1:4:0x0: ++%*5000LF: 0.0:0:4: ++%5000LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3718:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: 361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3718: ++%5000LF: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3721:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: 0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3721: ++%5000LF: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4934:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: 1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4934: ++%5000LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4937:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: 01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4937: ++%5000LF: INFINITY:1:9:inf: ++%*5000LF: INFINITY:0:9: ++%5000LF: +NAN():1:7:nan: ++%*5000LF: +NAN():0:7: ++%5000LF: +NAN(09A_Zaz):1:14:nan: ++%*5000LF: +NAN(09A_Zaz):0:14: ++%5000LF: +0:1:3:0x0: ++%*5000LF: +0:0:3: ++%5000LF: +0.0:1:5:0x0: ++%*5000LF: +0.0:0:5: ++%5000LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:0x1p-16382: ++%*5000LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000LF: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:1:3719:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: +361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088:0:3719: ++%5000LF: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:1:3722:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*5000LF: +0361905872450560295839099368200553464252909598754005392070802547357329960006661672668090007449312317793440636338533023816529851892693639282849361475289187734079541793580816642804134437798133559315935747167097859212007850187886348472926427597897629268936078381157339453559634134801303147799199772431055665621488432445186003944036133790107463601696245955416186792893027718271850498333189463019396950814082636962527657076577152505600501848687065246922905743406275825089046664071425459563231567644335912800728994657113169120924629989860811992746802013596883080993352506097539322946589150238304078946266802021963952740871941187129010999239202786511399832139645535420239418427073610379336019898783097655116848164044125919680286395416522534348400066305373021107834590705889798941967203853846066397267636386048921856318311897486149271775314649811935253794360942045252895467833340391399466540511555599835577294543903387308039852616690126092809661037303609193513733227490796464207346003624454527769043701119335851800163683352837604105295889160587666582585383869774501078109151961328070225304893561998426821943026803456566571372101940132703543563070398497020338673344663631908849074862060980493533969465518231120940712616022945421796690849464647465547393224398324611321471384588923920559246157944703216619512658418432260379981783108058683849388256933984793853190653988419539762523474847960738147853570513937074590568981991934822404985593760473017795934830316550293304571624308111549733959636630602837248294290231962514128162422004876732062788343004891471858544962213861901385188987205623155079862300164491991275144138639343227702763432892694193253992532559615075189151185277929691423097947402900637679534707414872458327259848555164345233587560593734159799883456709271989407927973789673694899104264662468846200360663251620532735427208501393024485047843393525345718052694129700951903498446309910890624481972605823907822765538983841498105858227591477561615803567983308089978187750961452973923251309151746491124604035776353645393031124306980341006162418022716677914018662401968520705757256046908350426178250956463892296607517656257197290185261101365963219488895634326579192426199065740209664324921604800022845580560626233126954768162451416981407122947834731279260615944992502976031065007962142126547201608251075628230410280723948334655840440137984294677873759826183209763582671947962671687391313281894512491581381591987739052048907907081820432474166217017553177223621290978182684928912608916662020799620481085962547907719785061864066278328296304628276728088992430841699826753332418084952721603424693105412891178896439629920969880892620373700797642245316924992883891371361015904301536211615577150937358992027877405241271176035845479363993800691111936289357375243735554095173602462064243562048305189157373801175693646578756210514995858703611486632132178906855252934516724548815325426763535386910969288541215001120533804541546590178915459756340312103175019788114328916199047821060485802657973545743295088455110832125156799683381396415778877409098074808065244567550479283126292801001963287616100156874165109265027339802102563187476750628821599248700881136599711130835951231428832792377432932146679727422132089835047218587193202610377918401834374476793745935336649214500021651159232625924212297066913504807876075770049216322056395898857827617452438605055338416740659732022269385097586794600259145978405560975768898283393329980850215158399094828834295735911190590547915438007673252199884221328881004302362725540728790784871976687827594788974088444698887038595701449972280756132708105014669425796412013990076025152754027920341633350129566577362860636004981833223406099081869328757079494859624786398617513864842692851106181082833583853273088.0:0:3722: ++%5000LF: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:1:4935:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: +1189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968:0:4935: ++%5000LF: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:1:4938:0x1.ffffffffffffffffffffffffffffp16383: ++%*5000LF: +01189731495357231765085759326628007016196469052641694045529698884212163579755312392324974012848462073525902033564749126859755265433573804462672698751945261490853461958725021262845865799405404493574681566096686172574953791792292256220777095858112702436475442537092608935138247345677279593806773692330094615746119725784172889892521939920757654204864565673356452247278152288867700638935595456496699511441752909606878513250948311396886100526833092128683974752192266386791880873694343077348155564101669971138512786874753496996549221727686770196551512812712488289469952298031867469924683981576664562667786719061499639630341657098305425237220876664630087808767256182803220212219924852375903049520911395910918921205273496768588119030111593018789368039232011671404175845108854706965215605777113516257404818817695075025715299705916714352103671782759119316034498392169720631800164034124698918142227577300459309880454715179606299895507583075851195185857971173167676966057998899352631885417716295302014668802384075846036226606480142977595407135050379808649130157164024060311786908796372510335873512774795275748595417572920936651398752709055215663939505589207804914540432978557623565645991208599669097180808881920063722771431218489011922209679053545963628417326002439732802939524313786668514027381434321036636571171670423586472759561231970793967839279147282720195377060602122638457883204809341717526809639253539447730280863675704796054050525162959099932535265586464682793821550087166946662209865086040990507131145474267411042839542322762994938759613112743837192839682676257555388372814490845395747128162065871588219108887240116651361962050800029176299938826082417547516732269930473133261258921845516815235455354310458114528303607394526100730578774092094736822286015459361126642549541799645333882549670764145955017051330800061253865140180153211929361456500343514792890205532021760061882232615736553377294980974059590520187961459799386741513028505934410453603480192383349321115171811051004108592830991811382552909064873029533418691087118107895004426881765865961841419267486232005929789956207494587649901662172318722999484512325826087031561936383689740686505279775296789331613683822798597040651600524129025149894873153196942095056670847466927644812596506700129443579512479230621373978088731257089799622902183824105412930483065603459863120371744282301377070153823878609951218937542956964157950988060608985782910656238116142203574104757451828170804875257446204128348513829082731722364189380493588338947664370623279820755831646205417488393062838201789547219543194450902113699925965376908192792152122212824578879336506875288617303469517112245451315447164280392523574962804175375927948971096983905242318797695347043690474223813266505639761164438844266531364626851219633994434154098562127395936184421821444273431534507860161614287022720984061569660333372788241037131538077377480152670583257920535569973318188112685673318997967497786786001251403873023920127717626858627038170562807276699687356274072773403132694104831615879354395811585825112837841563222761623334459188131537882355732483030085976890382969734476214593428191212717141333047577867552218517431064848760373196290310124466145087078377140528533048684204278799596652514009368964527494988719996088230065668196236298805733689960371306226158464997243490564472254071897564144128539839986096045563264771285585066304177995720101744844387158329767375560416207800878830072072413908657855667239546369357775781344288195989176313356856417845434232814886744226746707066979755577121788798468777700116472954103621810567107869855646414713502627836321256957407217461738363552424248762436478085351810995749293238174081331905048144612700905541425702220302537611494824228765324577933778519818778697340282580912780674979058938062556856001076057705982166686824756037569615760497619819482052758118532729333127733603742149847001463931981340719681330844408263017545241644293372483217234561694263937855759294448662979095419227451801588425977869694026601427919655168415895923043115191751872713346095752634608254475988154162254952597853199039645883742199236387610395830948074365988397707849632252080920941206268114832425403540515474312327876180802357701527842702008781378306569508588571830140611098042683009530862797403015355464377406249853964481000402231771665700893607521804084523668568649103258862666293372472441435563520595461701042390500795615834505944837326652542467444364861499184275097485253621979537504128523848241127715641240965261646703516395599407360083455079665191393229410544185167999099787655424462558900874388405649169453726739312260234815543297842308646072190147948072928456725835039546121182133640777769925841807579051735838823112759622714067509669913645288281894558925612972425252452248453502562347348900936766966136332741088135837550717443838484760651019872222926016920811114616937143207743488504602012776364256746872315205952601072228970686460932435222754496341763535189105548847634608972381760403137363968.0:0:4938: ++%5000LF: +INFINITY:1:10:inf: ++%*5000LF: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input +new file mode 100644 +index 0000000000000000..64560b8b9900015b +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-g.input +@@ -0,0 +1,682 @@ ++%Lg::0:-1: ++%*Lg::0:-1: ++%Lg:-infinity:1:9:-inf: ++%*Lg:-infinity:0:9: ++%Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%Lg:-0x2.3456789abcdef0123456789abcdep012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:-0x2.3456789abcdef0123456789abcdep012345:0:40: ++%Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*Lg:-0x8p-16385:0:11: ++%Lg:-0x0p+0:1:7:-0x0: ++%*Lg:-0x0p+0:0:7: ++%Lg:-0x0p0:1:6:-0x0: ++%*Lg:-0x0p0:0:6: ++%Lg:-nan(09A_Zaz):1:13:-nan: ++%*Lg:-nan(09A_Zaz):0:13: ++%Lg:-nan():1:6:-nan: ++%*Lg:-nan():0:6: ++%Lg:nan():1:5:nan: ++%*Lg:nan():0:5: ++%Lg:nan(09A_Zaz):1:12:nan: ++%*Lg:nan(09A_Zaz):0:12: ++%Lg:0x0p0:1:5:0x0: ++%*Lg:0x0p0:0:5: ++%Lg:0x0p+0:1:6:0x0: ++%*Lg:0x0p+0:0:6: ++%Lg:0x8p-16385:1:10:0x1p-16382: ++%*Lg:0x8p-16385:0:10: ++%Lg:0x2.3456789abcdef0123456789abcdep012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:0x2.3456789abcdef0123456789abcdep012345:0:39: ++%Lg:0x2.3456789abcdef0123456789abcdep+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:0x2.3456789abcdef0123456789abcdep+12345:0:39: ++%Lg:0x7.fffffffffffffffffffffffffffcp16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:0x7.fffffffffffffffffffffffffffcp16381:0:38: ++%Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:39: ++%Lg:infinity:1:8:inf: ++%*Lg:infinity:0:8: ++%Lg:+nan():1:6:nan: ++%*Lg:+nan():0:6: ++%Lg:+nan(09A_Zaz):1:13:nan: ++%*Lg:+nan(09A_Zaz):0:13: ++%Lg:+0x0p0:1:6:0x0: ++%*Lg:+0x0p0:0:6: ++%Lg:+0x0p+0:1:7:0x0: ++%*Lg:+0x0p+0:0:7: ++%Lg:+0x8p-16385:1:11:0x1p-16382: ++%*Lg:+0x8p-16385:0:11: ++%Lg:+0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:+0x2.3456789abcdef0123456789abcdep012345:0:40: ++%Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%Lg:+infinity:1:9:inf: ++%*Lg:+infinity:0:9: ++%1Lg::0:-1: ++%*1Lg::0:-1: ++%1Lg:-infinity:0:-1: ++%*1Lg:-infinity:0:-1: ++%1Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%*1Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%1Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%*1Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%1Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%*1Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%1Lg:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%*1Lg:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%1Lg:-0x8p-16385:0:-1: ++%*1Lg:-0x8p-16385:0:-1: ++%1Lg:-0x0p+0:0:-1: ++%*1Lg:-0x0p+0:0:-1: ++%1Lg:-0x0p0:0:-1: ++%*1Lg:-0x0p0:0:-1: ++%1Lg:-nan(09A_Zaz):0:-1: ++%*1Lg:-nan(09A_Zaz):0:-1: ++%1Lg:-nan():0:-1: ++%*1Lg:-nan():0:-1: ++%1Lg:nan():0:-1: ++%*1Lg:nan():0:-1: ++%1Lg:nan(09A_Zaz):0:-1: ++%*1Lg:nan(09A_Zaz):0:-1: ++%1Lg:0x0p0:1:1:0x0: ++%*1Lg:0x0p0:0:1: ++%1Lg:0x0p+0:1:1:0x0: ++%*1Lg:0x0p+0:0:1: ++%1Lg:0x8p-16385:1:1:0x0: ++%*1Lg:0x8p-16385:0:1: ++%1Lg:0x2.3456789abcdef0123456789abcdep012345:1:1:0x0: ++%*1Lg:0x2.3456789abcdef0123456789abcdep012345:0:1: ++%1Lg:0x2.3456789abcdef0123456789abcdep+12345:1:1:0x0: ++%*1Lg:0x2.3456789abcdef0123456789abcdep+12345:0:1: ++%1Lg:0x7.fffffffffffffffffffffffffffcp16381:1:1:0x0: ++%*1Lg:0x7.fffffffffffffffffffffffffffcp16381:0:1: ++%1Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:1:0x0: ++%*1Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:1: ++%1Lg:infinity:0:-1: ++%*1Lg:infinity:0:-1: ++%1Lg:+nan():0:-1: ++%*1Lg:+nan():0:-1: ++%1Lg:+nan(09A_Zaz):0:-1: ++%*1Lg:+nan(09A_Zaz):0:-1: ++%1Lg:+0x0p0:0:-1: ++%*1Lg:+0x0p0:0:-1: ++%1Lg:+0x0p+0:0:-1: ++%*1Lg:+0x0p+0:0:-1: ++%1Lg:+0x8p-16385:0:-1: ++%*1Lg:+0x8p-16385:0:-1: ++%1Lg:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%*1Lg:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++%1Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%*1Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%1Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%*1Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++%1Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%*1Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%1Lg:+infinity:0:-1: ++%*1Lg:+infinity:0:-1: ++%2Lg::0:-1: ++%*2Lg::0:-1: ++%2Lg:-infinity:0:-1: ++%*2Lg:-infinity:0:-1: ++%2Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:2:-0x0: ++%*2Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:2: ++%2Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:2:-0x0: ++%*2Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:2: ++%2Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:2: ++%2Lg:-0x2.3456789abcdef0123456789abcdep012345:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef0123456789abcdep012345:0:2: ++%2Lg:-0x8p-16385:1:2:-0x0: ++%*2Lg:-0x8p-16385:0:2: ++%2Lg:-0x0p+0:1:2:-0x0: ++%*2Lg:-0x0p+0:0:2: ++%2Lg:-0x0p0:1:2:-0x0: ++%*2Lg:-0x0p0:0:2: ++%2Lg:-nan(09A_Zaz):0:-1: ++%*2Lg:-nan(09A_Zaz):0:-1: ++%2Lg:-nan():0:-1: ++%*2Lg:-nan():0:-1: ++%2Lg:nan():0:-1: ++%*2Lg:nan():0:-1: ++%2Lg:nan(09A_Zaz):0:-1: ++%*2Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %2Lg:0x0p0:0:-1: ++# BZ12701 %*2Lg:0x0p0:0:-1: ++# BZ12701 %2Lg:0x0p+0:0:-1: ++# BZ12701 %*2Lg:0x0p+0:0:-1: ++# BZ12701 %2Lg:0x8p-16385:0:-1: ++# BZ12701 %*2Lg:0x8p-16385:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %2Lg:0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*2Lg:0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %2Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*2Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%2Lg:infinity:0:-1: ++%*2Lg:infinity:0:-1: ++%2Lg:+nan():0:-1: ++%*2Lg:+nan():0:-1: ++%2Lg:+nan(09A_Zaz):0:-1: ++%*2Lg:+nan(09A_Zaz):0:-1: ++%2Lg:+0x0p0:1:2:0x0: ++%*2Lg:+0x0p0:0:2: ++%2Lg:+0x0p+0:1:2:0x0: ++%*2Lg:+0x0p+0:0:2: ++%2Lg:+0x8p-16385:1:2:0x0: ++%*2Lg:+0x8p-16385:0:2: ++%2Lg:+0x2.3456789abcdef0123456789abcdep012345:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef0123456789abcdep012345:0:2: ++%2Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:2: ++%2Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:2:0x0: ++%*2Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:2: ++%2Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:2:0x0: ++%*2Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:2: ++%2Lg:+infinity:0:-1: ++%*2Lg:+infinity:0:-1: ++%3Lg::0:-1: ++%*3Lg::0:-1: ++%3Lg:-infinity:0:-1: ++%*3Lg:-infinity:0:-1: ++# BZ12701 %3Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*3Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %3Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*3Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %3Lg:-0x8p-16385:0:-1: ++# BZ12701 %*3Lg:-0x8p-16385:0:-1: ++# BZ12701 %3Lg:-0x0p+0:0:-1: ++# BZ12701 %*3Lg:-0x0p+0:0:-1: ++# BZ12701 %3Lg:-0x0p0:0:-1: ++# BZ12701 %*3Lg:-0x0p0:0:-1: ++%3Lg:-nan(09A_Zaz):0:-1: ++%*3Lg:-nan(09A_Zaz):0:-1: ++%3Lg:-nan():0:-1: ++%*3Lg:-nan():0:-1: ++%3Lg:nan():1:3:nan: ++%*3Lg:nan():0:3: ++%3Lg:nan(09A_Zaz):1:3:nan: ++%*3Lg:nan(09A_Zaz):0:3: ++%3Lg:0x0p0:1:3:0x0: ++%*3Lg:0x0p0:0:3: ++%3Lg:0x0p+0:1:3:0x0: ++%*3Lg:0x0p+0:0:3: ++%3Lg:0x8p-16385:1:3:0x1p3: ++%*3Lg:0x8p-16385:0:3: ++%3Lg:0x2.3456789abcdef0123456789abcdep012345:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef0123456789abcdep012345:0:3: ++%3Lg:0x2.3456789abcdef0123456789abcdep+12345:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef0123456789abcdep+12345:0:3: ++%3Lg:0x7.fffffffffffffffffffffffffffcp16381:1:3:0x1.cp2: ++%*3Lg:0x7.fffffffffffffffffffffffffffcp16381:0:3: ++%3Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:3:0x1.ep3: ++%*3Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:3: ++%3Lg:infinity:1:3:inf: ++%*3Lg:infinity:0:3: ++%3Lg:+nan():0:-1: ++%*3Lg:+nan():0:-1: ++%3Lg:+nan(09A_Zaz):0:-1: ++%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Lg:+0x0p0:0:-1: ++# BZ12701 %*3Lg:+0x0p0:0:-1: ++# BZ12701 %3Lg:+0x0p+0:0:-1: ++# BZ12701 %*3Lg:+0x0p+0:0:-1: ++# BZ12701 %3Lg:+0x8p-16385:0:-1: ++# BZ12701 %*3Lg:+0x8p-16385:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef0123456789abcdep012345:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %3Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %*3Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:-1: ++# BZ12701 %3Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*3Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%3Lg:+infinity:0:-1: ++%*3Lg:+infinity:0:-1: ++%4Lg::0:-1: ++%*4Lg::0:-1: ++%4Lg:-infinity:1:4:-inf: ++%*4Lg:-infinity:0:4: ++%4Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:4:-0x1.ep3: ++%*4Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:4:-0x1.cp2: ++%*4Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4Lg:-0x2.3456789abcdef0123456789abcdep012345:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4Lg:-0x8p-16385:1:4:-0x1p3: ++%*4Lg:-0x8p-16385:0:4: ++%4Lg:-0x0p+0:1:4:-0x0: ++%*4Lg:-0x0p+0:0:4: ++%4Lg:-0x0p0:1:4:-0x0: ++%*4Lg:-0x0p0:0:4: ++%4Lg:-nan(09A_Zaz):1:4:-nan: ++%*4Lg:-nan(09A_Zaz):0:4: ++%4Lg:-nan():1:4:-nan: ++%*4Lg:-nan():0:4: ++%4Lg:nan():0:-1: ++%*4Lg:nan():0:-1: ++%4Lg:nan(09A_Zaz):0:-1: ++%*4Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %4Lg:0x0p0:0:-1: ++# BZ12701 %*4Lg:0x0p0:0:-1: ++# BZ12701 %4Lg:0x0p+0:0:-1: ++# BZ12701 %*4Lg:0x0p+0:0:-1: ++# BZ12701 %4Lg:0x8p-16385:0:-1: ++# BZ12701 %*4Lg:0x8p-16385:0:-1: ++%4Lg:0x2.3456789abcdef0123456789abcdep012345:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4Lg:0x2.3456789abcdef0123456789abcdep+12345:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4Lg:0x7.fffffffffffffffffffffffffffcp16381:1:4:0x1.cp2: ++%*4Lg:0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:4:0x1.ep3: ++%*4Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4Lg:infinity:0:-1: ++%*4Lg:infinity:0:-1: ++%4Lg:+nan():1:4:nan: ++%*4Lg:+nan():0:4: ++%4Lg:+nan(09A_Zaz):1:4:nan: ++%*4Lg:+nan(09A_Zaz):0:4: ++%4Lg:+0x0p0:1:4:0x0: ++%*4Lg:+0x0p0:0:4: ++%4Lg:+0x0p+0:1:4:0x0: ++%*4Lg:+0x0p+0:0:4: ++%4Lg:+0x8p-16385:1:4:0x1p3: ++%*4Lg:+0x8p-16385:0:4: ++%4Lg:+0x2.3456789abcdef0123456789abcdep012345:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef0123456789abcdep012345:0:4: ++%4Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:4: ++%4Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:4:0x1.cp2: ++%*4Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:4: ++%4Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:4:0x1.ep3: ++%*4Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:4: ++%4Lg:+infinity:1:4:inf: ++%*4Lg:+infinity:0:4: ++%5Lg::0:-1: ++%*5Lg::0:-1: ++%5Lg:-infinity:0:-1: ++%*5Lg:-infinity:0:-1: ++%5Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:5:-0x1.ep3: ++%*5Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:5:-0x1.cp2: ++%*5Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5Lg:-0x2.3456789abcdef0123456789abcdep012345:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef0123456789abcdep012345:0:5: ++# BZ12701 %5Lg:-0x8p-16385:0:-1: ++# BZ12701 %*5Lg:-0x8p-16385:0:-1: ++# BZ12701 %5Lg:-0x0p+0:0:-1: ++# BZ12701 %*5Lg:-0x0p+0:0:-1: ++# BZ12701 %5Lg:-0x0p0:0:-1: ++# BZ12701 %*5Lg:-0x0p0:0:-1: ++%5Lg:-nan(09A_Zaz):0:-1: ++%*5Lg:-nan(09A_Zaz):0:-1: ++%5Lg:-nan():0:-1: ++%*5Lg:-nan():0:-1: ++%5Lg:nan():1:5:nan: ++%*5Lg:nan():0:5: ++%5Lg:nan(09A_Zaz):0:-1: ++%*5Lg:nan(09A_Zaz):0:-1: ++%5Lg:0x0p0:1:5:0x0: ++%*5Lg:0x0p0:0:5: ++# BZ12701 %5Lg:0x0p+0:0:-1: ++# BZ12701 %*5Lg:0x0p+0:0:-1: ++# BZ12701 %5Lg:0x8p-16385:0:-1: ++# BZ12701 %*5Lg:0x8p-16385:0:-1: ++%5Lg:0x2.3456789abcdef0123456789abcdep012345:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef0123456789abcdep012345:0:5: ++%5Lg:0x2.3456789abcdef0123456789abcdep+12345:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5Lg:0x7.fffffffffffffffffffffffffffcp16381:1:5:0x1.fcp2: ++%*5Lg:0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:5:0x1.fep3: ++%*5Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5Lg:infinity:0:-1: ++%*5Lg:infinity:0:-1: ++%5Lg:+nan():0:-1: ++%*5Lg:+nan():0:-1: ++%5Lg:+nan(09A_Zaz):0:-1: ++%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg:+0x0p0:0:-1: ++# BZ12701 %*5Lg:+0x0p0:0:-1: ++# BZ12701 %5Lg:+0x0p+0:0:-1: ++# BZ12701 %*5Lg:+0x0p+0:0:-1: ++# BZ12701 %5Lg:+0x8p-16385:0:-1: ++# BZ12701 %*5Lg:+0x8p-16385:0:-1: ++%5Lg:+0x2.3456789abcdef0123456789abcdep012345:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef0123456789abcdep012345:0:5: ++%5Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:5: ++%5Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:5:0x1.cp2: ++%*5Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:5: ++%5Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:5:0x1.ep3: ++%*5Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:5: ++%5Lg:+infinity:0:-1: ++%*5Lg:+infinity:0:-1: ++%6Lg::0:-1: ++%*6Lg::0:-1: ++%6Lg:-infinity:0:-1: ++%*6Lg:-infinity:0:-1: ++%6Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:6:-0x1.fep3: ++%*6Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:6:-0x1.fcp2: ++%*6Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6Lg:-0x2.3456789abcdef0123456789abcdep012345:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef0123456789abcdep012345:0:6: ++# BZ12701 %6Lg:-0x8p-16385:0:-1: ++# BZ12701 %*6Lg:-0x8p-16385:0:-1: ++# BZ12701 %6Lg:-0x0p+0:0:-1: ++# BZ12701 %*6Lg:-0x0p+0:0:-1: ++%6Lg:-0x0p0:1:6:-0x0: ++%*6Lg:-0x0p0:0:6: ++%6Lg:-nan(09A_Zaz):0:-1: ++%*6Lg:-nan(09A_Zaz):0:-1: ++%6Lg:-nan():1:6:-nan: ++%*6Lg:-nan():0:6: ++%6Lg:nan():1:5:nan: ++%*6Lg:nan():0:5: ++%6Lg:nan(09A_Zaz):0:-1: ++%*6Lg:nan(09A_Zaz):0:-1: ++%6Lg:0x0p0:1:5:0x0: ++%*6Lg:0x0p0:0:5: ++%6Lg:0x0p+0:1:6:0x0: ++%*6Lg:0x0p+0:0:6: ++%6Lg:0x8p-16385:1:6:0x1p2: ++%*6Lg:0x8p-16385:0:6: ++%6Lg:0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef0123456789abcdep012345:0:6: ++%6Lg:0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6Lg:0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.ffcp2: ++%*6Lg:0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.ffep3: ++%*6Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6Lg:infinity:0:-1: ++%*6Lg:infinity:0:-1: ++%6Lg:+nan():1:6:nan: ++%*6Lg:+nan():0:6: ++%6Lg:+nan(09A_Zaz):0:-1: ++%*6Lg:+nan(09A_Zaz):0:-1: ++%6Lg:+0x0p0:1:6:0x0: ++%*6Lg:+0x0p0:0:6: ++# BZ12701 %6Lg:+0x0p+0:0:-1: ++# BZ12701 %*6Lg:+0x0p+0:0:-1: ++# BZ12701 %6Lg:+0x8p-16385:0:-1: ++# BZ12701 %*6Lg:+0x8p-16385:0:-1: ++%6Lg:+0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef0123456789abcdep012345:0:6: ++%6Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%6Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.fcp2: ++%*6Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%6Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.fep3: ++%*6Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%6Lg:+infinity:0:-1: ++%*6Lg:+infinity:0:-1: ++%35Lg::0:-1: ++%*35Lg::0:-1: ++%35Lg:-infinity:1:9:-inf: ++%*35Lg:-infinity:0:9: ++# BZ12701 %35Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*35Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%35Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:35:-0x1.ffffffffffffffffffffffffffffp3: ++%*35Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:35: ++# BZ12701 %35Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*35Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%35Lg:-0x2.3456789abcdef0123456789abcdep012345:1:35:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35Lg:-0x2.3456789abcdef0123456789abcdep012345:0:35: ++%35Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*35Lg:-0x8p-16385:0:11: ++%35Lg:-0x0p+0:1:7:-0x0: ++%*35Lg:-0x0p+0:0:7: ++%35Lg:-0x0p0:1:6:-0x0: ++%*35Lg:-0x0p0:0:6: ++%35Lg:-nan(09A_Zaz):1:13:-nan: ++%*35Lg:-nan(09A_Zaz):0:13: ++%35Lg:-nan():1:6:-nan: ++%*35Lg:-nan():0:6: ++%35Lg:nan():1:5:nan: ++%*35Lg:nan():0:5: ++%35Lg:nan(09A_Zaz):1:12:nan: ++%*35Lg:nan(09A_Zaz):0:12: ++%35Lg:0x0p0:1:5:0x0: ++%*35Lg:0x0p0:0:5: ++%35Lg:0x0p+0:1:6:0x0: ++%*35Lg:0x0p+0:0:6: ++%35Lg:0x8p-16385:1:10:0x1p-16382: ++%*35Lg:0x8p-16385:0:10: ++%35Lg:0x2.3456789abcdef0123456789abcdep012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35Lg:0x2.3456789abcdef0123456789abcdep012345:0:35: ++%35Lg:0x2.3456789abcdef0123456789abcdep+12345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35Lg:0x2.3456789abcdef0123456789abcdep+12345:0:35: ++%35Lg:0x7.fffffffffffffffffffffffffffcp16381:1:35:0x1.ffffffffffffffffffffffffffffp18: ++%*35Lg:0x7.fffffffffffffffffffffffffffcp16381:0:35: ++%35Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:35:0x1.ffffffffffffffffffffffffffffp4: ++%*35Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:35: ++%35Lg:infinity:1:8:inf: ++%*35Lg:infinity:0:8: ++%35Lg:+nan():1:6:nan: ++%*35Lg:+nan():0:6: ++%35Lg:+nan(09A_Zaz):1:13:nan: ++%*35Lg:+nan(09A_Zaz):0:13: ++%35Lg:+0x0p0:1:6:0x0: ++%*35Lg:+0x0p0:0:6: ++%35Lg:+0x0p+0:1:7:0x0: ++%*35Lg:+0x0p+0:0:7: ++%35Lg:+0x8p-16385:1:11:0x1p-16382: ++%*35Lg:+0x8p-16385:0:11: ++%35Lg:+0x2.3456789abcdef0123456789abcdep012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35Lg:+0x2.3456789abcdef0123456789abcdep012345:0:35: ++# BZ12701 %35Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++# BZ12701 %*35Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:-1: ++%35Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:35:0x1.ffffffffffffffffffffffffffffp3: ++%*35Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:35: ++# BZ12701 %35Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++# BZ12701 %*35Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:-1: ++%35Lg:+infinity:1:9:inf: ++%*35Lg:+infinity:0:9: ++%53Lg::0:-1: ++%*53Lg::0:-1: ++%53Lg:-infinity:1:9:-inf: ++%*53Lg:-infinity:0:9: ++%53Lg:-0xf.fffffffffffffffffffffffffff8p+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:-0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53Lg:-0x7.fffffffffffffffffffffffffffcp16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:-0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53Lg:-0x2.3456789abcdef0123456789abcdep+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:-0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53Lg:-0x2.3456789abcdef0123456789abcdep012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:-0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*53Lg:-0x8p-16385:0:11: ++%53Lg:-0x0p+0:1:7:-0x0: ++%*53Lg:-0x0p+0:0:7: ++%53Lg:-0x0p0:1:6:-0x0: ++%*53Lg:-0x0p0:0:6: ++%53Lg:-nan(09A_Zaz):1:13:-nan: ++%*53Lg:-nan(09A_Zaz):0:13: ++%53Lg:-nan():1:6:-nan: ++%*53Lg:-nan():0:6: ++%53Lg:nan():1:5:nan: ++%*53Lg:nan():0:5: ++%53Lg:nan(09A_Zaz):1:12:nan: ++%*53Lg:nan(09A_Zaz):0:12: ++%53Lg:0x0p0:1:5:0x0: ++%*53Lg:0x0p0:0:5: ++%53Lg:0x0p+0:1:6:0x0: ++%*53Lg:0x0p+0:0:6: ++%53Lg:0x8p-16385:1:10:0x1p-16382: ++%*53Lg:0x8p-16385:0:10: ++%53Lg:0x2.3456789abcdef0123456789abcdep012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:0x2.3456789abcdef0123456789abcdep012345:0:39: ++%53Lg:0x2.3456789abcdef0123456789abcdep+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:0x2.3456789abcdef0123456789abcdep+12345:0:39: ++%53Lg:0x7.fffffffffffffffffffffffffffcp16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:0x7.fffffffffffffffffffffffffffcp16381:0:38: ++%53Lg:0xf.fffffffffffffffffffffffffff8p+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:0xf.fffffffffffffffffffffffffff8p+16380:0:39: ++%53Lg:infinity:1:8:inf: ++%*53Lg:infinity:0:8: ++%53Lg:+nan():1:6:nan: ++%*53Lg:+nan():0:6: ++%53Lg:+nan(09A_Zaz):1:13:nan: ++%*53Lg:+nan(09A_Zaz):0:13: ++%53Lg:+0x0p0:1:6:0x0: ++%*53Lg:+0x0p0:0:6: ++%53Lg:+0x0p+0:1:7:0x0: ++%*53Lg:+0x0p+0:0:7: ++%53Lg:+0x8p-16385:1:11:0x1p-16382: ++%*53Lg:+0x8p-16385:0:11: ++%53Lg:+0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:+0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53Lg:+0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg:+0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53Lg:+0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:+0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53Lg:+0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg:+0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53Lg:+infinity:1:9:inf: ++%*53Lg:+infinity:0:9: ++%5Lg: :0:-1: ++%*5Lg: :0:-1: ++%5Lg: -infinity:0:-1: ++%*5Lg: -infinity:0:-1: ++%5Lg: -0xf.fffffffffffffffffffffffffff8p+16380:1:6:-0x1.ep3: ++%*5Lg: -0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5Lg: -0x7.fffffffffffffffffffffffffffcp16381:1:6:-0x1.cp2: ++%*5Lg: -0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5Lg: -0x2.3456789abcdef0123456789abcdep+12345:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5Lg: -0x2.3456789abcdef0123456789abcdep012345:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef0123456789abcdep012345:0:6: ++# BZ12701 %5Lg: -0x8p-16385:0:-1: ++# BZ12701 %*5Lg: -0x8p-16385:0:-1: ++# BZ12701 %5Lg: -0x0p+0:0:-1: ++# BZ12701 %*5Lg: -0x0p+0:0:-1: ++# BZ12701 %5Lg: -0x0p0:0:-1: ++# BZ12701 %*5Lg: -0x0p0:0:-1: ++%5Lg: -nan(09A_Zaz):0:-1: ++%*5Lg: -nan(09A_Zaz):0:-1: ++%5Lg: -nan():0:-1: ++%*5Lg: -nan():0:-1: ++%5Lg: nan():1:6:nan: ++%*5Lg: nan():0:6: ++%5Lg: nan(09A_Zaz):0:-1: ++%*5Lg: nan(09A_Zaz):0:-1: ++%5Lg: 0x0p0:1:6:0x0: ++%*5Lg: 0x0p0:0:6: ++# BZ12701 %5Lg: 0x0p+0:0:-1: ++# BZ12701 %*5Lg: 0x0p+0:0:-1: ++# BZ12701 %5Lg: 0x8p-16385:0:-1: ++# BZ12701 %*5Lg: 0x8p-16385:0:-1: ++%5Lg: 0x2.3456789abcdef0123456789abcdep012345:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef0123456789abcdep012345:0:6: ++%5Lg: 0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5Lg: 0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.fcp2: ++%*5Lg: 0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5Lg: 0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.fep3: ++%*5Lg: 0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5Lg: infinity:0:-1: ++%*5Lg: infinity:0:-1: ++%5Lg: +nan():0:-1: ++%*5Lg: +nan():0:-1: ++%5Lg: +nan(09A_Zaz):0:-1: ++%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg: +0x0p0:0:-1: ++# BZ12701 %*5Lg: +0x0p0:0:-1: ++# BZ12701 %5Lg: +0x0p+0:0:-1: ++# BZ12701 %*5Lg: +0x0p+0:0:-1: ++# BZ12701 %5Lg: +0x8p-16385:0:-1: ++# BZ12701 %*5Lg: +0x8p-16385:0:-1: ++%5Lg: +0x2.3456789abcdef0123456789abcdep012345:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef0123456789abcdep012345:0:6: ++%5Lg: +0x2.3456789abcdef0123456789abcdep+12345:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef0123456789abcdep+12345:0:6: ++%5Lg: +0x7.fffffffffffffffffffffffffffcp16381:1:6:0x1.cp2: ++%*5Lg: +0x7.fffffffffffffffffffffffffffcp16381:0:6: ++%5Lg: +0xf.fffffffffffffffffffffffffff8p+16380:1:6:0x1.ep3: ++%*5Lg: +0xf.fffffffffffffffffffffffffff8p+16380:0:6: ++%5Lg: +infinity:0:-1: ++%*5Lg: +infinity:0:-1: ++%53Lg: :0:-1: ++%*53Lg: :0:-1: ++%53Lg: -infinity:1:10:-inf: ++%*53Lg: -infinity:0:10: ++%53Lg: -0xf.fffffffffffffffffffffffffff8p+16380:1:41:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: -0xf.fffffffffffffffffffffffffff8p+16380:0:41: ++%53Lg: -0x7.fffffffffffffffffffffffffffcp16381:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: -0x7.fffffffffffffffffffffffffffcp16381:0:40: ++%53Lg: -0x2.3456789abcdef0123456789abcdep+12345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: -0x2.3456789abcdef0123456789abcdep+12345:0:41: ++%53Lg: -0x2.3456789abcdef0123456789abcdep012345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: -0x2.3456789abcdef0123456789abcdep012345:0:41: ++%53Lg: -0x8p-16385:1:12:-0x1p-16382: ++%*53Lg: -0x8p-16385:0:12: ++%53Lg: -0x0p+0:1:8:-0x0: ++%*53Lg: -0x0p+0:0:8: ++%53Lg: -0x0p0:1:7:-0x0: ++%*53Lg: -0x0p0:0:7: ++%53Lg: -nan(09A_Zaz):1:14:-nan: ++%*53Lg: -nan(09A_Zaz):0:14: ++%53Lg: -nan():1:7:-nan: ++%*53Lg: -nan():0:7: ++%53Lg: nan():1:6:nan: ++%*53Lg: nan():0:6: ++%53Lg: nan(09A_Zaz):1:13:nan: ++%*53Lg: nan(09A_Zaz):0:13: ++%53Lg: 0x0p0:1:6:0x0: ++%*53Lg: 0x0p0:0:6: ++%53Lg: 0x0p+0:1:7:0x0: ++%*53Lg: 0x0p+0:0:7: ++%53Lg: 0x8p-16385:1:11:0x1p-16382: ++%*53Lg: 0x8p-16385:0:11: ++%53Lg: 0x2.3456789abcdef0123456789abcdep012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: 0x2.3456789abcdef0123456789abcdep012345:0:40: ++%53Lg: 0x2.3456789abcdef0123456789abcdep+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: 0x2.3456789abcdef0123456789abcdep+12345:0:40: ++%53Lg: 0x7.fffffffffffffffffffffffffffcp16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: 0x7.fffffffffffffffffffffffffffcp16381:0:39: ++%53Lg: 0xf.fffffffffffffffffffffffffff8p+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: 0xf.fffffffffffffffffffffffffff8p+16380:0:40: ++%53Lg: infinity:1:9:inf: ++%*53Lg: infinity:0:9: ++%53Lg: +nan():1:7:nan: ++%*53Lg: +nan():0:7: ++%53Lg: +nan(09A_Zaz):1:14:nan: ++%*53Lg: +nan(09A_Zaz):0:14: ++%53Lg: +0x0p0:1:7:0x0: ++%*53Lg: +0x0p0:0:7: ++%53Lg: +0x0p+0:1:8:0x0: ++%*53Lg: +0x0p+0:0:8: ++%53Lg: +0x8p-16385:1:12:0x1p-16382: ++%*53Lg: +0x8p-16385:0:12: ++%53Lg: +0x2.3456789abcdef0123456789abcdep012345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: +0x2.3456789abcdef0123456789abcdep012345:0:41: ++%53Lg: +0x2.3456789abcdef0123456789abcdep+12345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53Lg: +0x2.3456789abcdef0123456789abcdep+12345:0:41: ++%53Lg: +0x7.fffffffffffffffffffffffffffcp16381:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: +0x7.fffffffffffffffffffffffffffcp16381:0:40: ++%53Lg: +0xf.fffffffffffffffffffffffffff8p+16380:1:41:0x1.ffffffffffffffffffffffffffffp16383: ++%*53Lg: +0xf.fffffffffffffffffffffffffff8p+16380:0:41: ++%53Lg: +infinity:1:10:inf: ++%*53Lg: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input +new file mode 100644 +index 0000000000000000..7b370c54a727857a +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-gg.input +@@ -0,0 +1,682 @@ ++%LG::0:-1: ++%*LG::0:-1: ++%LG:-INFINITY:1:9:-inf: ++%*LG:-INFINITY:0:9: ++%LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%LG:-0X8P-16385:1:11:-0x1p-16382: ++%*LG:-0X8P-16385:0:11: ++%LG:-0X0P+0:1:7:-0x0: ++%*LG:-0X0P+0:0:7: ++%LG:-0X0P0:1:6:-0x0: ++%*LG:-0X0P0:0:6: ++%LG:-NAN(09A_Zaz):1:13:-nan: ++%*LG:-NAN(09A_Zaz):0:13: ++%LG:-NAN():1:6:-nan: ++%*LG:-NAN():0:6: ++%LG:NAN():1:5:nan: ++%*LG:NAN():0:5: ++%LG:NAN(09A_Zaz):1:12:nan: ++%*LG:NAN(09A_Zaz):0:12: ++%LG:0X0P0:1:5:0x0: ++%*LG:0X0P0:0:5: ++%LG:0X0P+0:1:6:0x0: ++%*LG:0X0P+0:0:6: ++%LG:0X8P-16385:1:10:0x1p-16382: ++%*LG:0X8P-16385:0:10: ++%LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:39: ++%LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:39: ++%LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:38: ++%LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: ++%LG:INFINITY:1:8:inf: ++%*LG:INFINITY:0:8: ++%LG:+NAN():1:6:nan: ++%*LG:+NAN():0:6: ++%LG:+NAN(09A_Zaz):1:13:nan: ++%*LG:+NAN(09A_Zaz):0:13: ++%LG:+0X0P0:1:6:0x0: ++%*LG:+0X0P0:0:6: ++%LG:+0X0P+0:1:7:0x0: ++%*LG:+0X0P+0:0:7: ++%LG:+0X8P-16385:1:11:0x1p-16382: ++%*LG:+0X8P-16385:0:11: ++%LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%LG:+INFINITY:1:9:inf: ++%*LG:+INFINITY:0:9: ++%1LG::0:-1: ++%*1LG::0:-1: ++%1LG:-INFINITY:0:-1: ++%*1LG:-INFINITY:0:-1: ++%1LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%*1LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%1LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%*1LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%1LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%*1LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%1LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%*1LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%1LG:-0X8P-16385:0:-1: ++%*1LG:-0X8P-16385:0:-1: ++%1LG:-0X0P+0:0:-1: ++%*1LG:-0X0P+0:0:-1: ++%1LG:-0X0P0:0:-1: ++%*1LG:-0X0P0:0:-1: ++%1LG:-NAN(09A_Zaz):0:-1: ++%*1LG:-NAN(09A_Zaz):0:-1: ++%1LG:-NAN():0:-1: ++%*1LG:-NAN():0:-1: ++%1LG:NAN():0:-1: ++%*1LG:NAN():0:-1: ++%1LG:NAN(09A_Zaz):0:-1: ++%*1LG:NAN(09A_Zaz):0:-1: ++%1LG:0X0P0:1:1:0x0: ++%*1LG:0X0P0:0:1: ++%1LG:0X0P+0:1:1:0x0: ++%*1LG:0X0P+0:0:1: ++%1LG:0X8P-16385:1:1:0x0: ++%*1LG:0X8P-16385:0:1: ++%1LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:1: ++%1LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:1: ++%1LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:1:0x0: ++%*1LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:1: ++%1LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:1:0x0: ++%*1LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:1: ++%1LG:INFINITY:0:-1: ++%*1LG:INFINITY:0:-1: ++%1LG:+NAN():0:-1: ++%*1LG:+NAN():0:-1: ++%1LG:+NAN(09A_Zaz):0:-1: ++%*1LG:+NAN(09A_Zaz):0:-1: ++%1LG:+0X0P0:0:-1: ++%*1LG:+0X0P0:0:-1: ++%1LG:+0X0P+0:0:-1: ++%*1LG:+0X0P+0:0:-1: ++%1LG:+0X8P-16385:0:-1: ++%*1LG:+0X8P-16385:0:-1: ++%1LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%*1LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++%1LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%*1LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%1LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%*1LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++%1LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%*1LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%1LG:+INFINITY:0:-1: ++%*1LG:+INFINITY:0:-1: ++%2LG::0:-1: ++%*2LG::0:-1: ++%2LG:-INFINITY:0:-1: ++%*2LG:-INFINITY:0:-1: ++%2LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:2:-0x0: ++%*2LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:2: ++%2LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:2:-0x0: ++%*2LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:2: ++%2LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:2: ++%2LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:2: ++%2LG:-0X8P-16385:1:2:-0x0: ++%*2LG:-0X8P-16385:0:2: ++%2LG:-0X0P+0:1:2:-0x0: ++%*2LG:-0X0P+0:0:2: ++%2LG:-0X0P0:1:2:-0x0: ++%*2LG:-0X0P0:0:2: ++%2LG:-NAN(09A_Zaz):0:-1: ++%*2LG:-NAN(09A_Zaz):0:-1: ++%2LG:-NAN():0:-1: ++%*2LG:-NAN():0:-1: ++%2LG:NAN():0:-1: ++%*2LG:NAN():0:-1: ++%2LG:NAN(09A_Zaz):0:-1: ++%*2LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LG:0X0P0:0:-1: ++# BZ12701 %*2LG:0X0P0:0:-1: ++# BZ12701 %2LG:0X0P+0:0:-1: ++# BZ12701 %*2LG:0X0P+0:0:-1: ++# BZ12701 %2LG:0X8P-16385:0:-1: ++# BZ12701 %*2LG:0X8P-16385:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %2LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*2LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %2LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*2LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%2LG:INFINITY:0:-1: ++%*2LG:INFINITY:0:-1: ++%2LG:+NAN():0:-1: ++%*2LG:+NAN():0:-1: ++%2LG:+NAN(09A_Zaz):0:-1: ++%*2LG:+NAN(09A_Zaz):0:-1: ++%2LG:+0X0P0:1:2:0x0: ++%*2LG:+0X0P0:0:2: ++%2LG:+0X0P+0:1:2:0x0: ++%*2LG:+0X0P+0:0:2: ++%2LG:+0X8P-16385:1:2:0x0: ++%*2LG:+0X8P-16385:0:2: ++%2LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:2: ++%2LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:2: ++%2LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:2:0x0: ++%*2LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:2: ++%2LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:2:0x0: ++%*2LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:2: ++%2LG:+INFINITY:0:-1: ++%*2LG:+INFINITY:0:-1: ++%3LG::0:-1: ++%*3LG::0:-1: ++%3LG:-INFINITY:0:-1: ++%*3LG:-INFINITY:0:-1: ++# BZ12701 %3LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*3LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %3LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*3LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %3LG:-0X8P-16385:0:-1: ++# BZ12701 %*3LG:-0X8P-16385:0:-1: ++# BZ12701 %3LG:-0X0P+0:0:-1: ++# BZ12701 %*3LG:-0X0P+0:0:-1: ++# BZ12701 %3LG:-0X0P0:0:-1: ++# BZ12701 %*3LG:-0X0P0:0:-1: ++%3LG:-NAN(09A_Zaz):0:-1: ++%*3LG:-NAN(09A_Zaz):0:-1: ++%3LG:-NAN():0:-1: ++%*3LG:-NAN():0:-1: ++%3LG:NAN():1:3:nan: ++%*3LG:NAN():0:3: ++%3LG:NAN(09A_Zaz):1:3:nan: ++%*3LG:NAN(09A_Zaz):0:3: ++%3LG:0X0P0:1:3:0x0: ++%*3LG:0X0P0:0:3: ++%3LG:0X0P+0:1:3:0x0: ++%*3LG:0X0P+0:0:3: ++%3LG:0X8P-16385:1:3:0x1p3: ++%*3LG:0X8P-16385:0:3: ++%3LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:3: ++%3LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:3: ++%3LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:3:0x1.cp2: ++%*3LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:3: ++%3LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:3:0x1.ep3: ++%*3LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:3: ++%3LG:INFINITY:1:3:inf: ++%*3LG:INFINITY:0:3: ++%3LG:+NAN():0:-1: ++%*3LG:+NAN():0:-1: ++%3LG:+NAN(09A_Zaz):0:-1: ++%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LG:+0X0P0:0:-1: ++# BZ12701 %*3LG:+0X0P0:0:-1: ++# BZ12701 %3LG:+0X0P+0:0:-1: ++# BZ12701 %*3LG:+0X0P+0:0:-1: ++# BZ12701 %3LG:+0X8P-16385:0:-1: ++# BZ12701 %*3LG:+0X8P-16385:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %3LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %*3LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:-1: ++# BZ12701 %3LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*3LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%3LG:+INFINITY:0:-1: ++%*3LG:+INFINITY:0:-1: ++%4LG::0:-1: ++%*4LG::0:-1: ++%4LG:-INFINITY:1:4:-inf: ++%*4LG:-INFINITY:0:4: ++%4LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:-0x1.ep3: ++%*4LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:-0x1.cp2: ++%*4LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LG:-0X8P-16385:1:4:-0x1p3: ++%*4LG:-0X8P-16385:0:4: ++%4LG:-0X0P+0:1:4:-0x0: ++%*4LG:-0X0P+0:0:4: ++%4LG:-0X0P0:1:4:-0x0: ++%*4LG:-0X0P0:0:4: ++%4LG:-NAN(09A_Zaz):1:4:-nan: ++%*4LG:-NAN(09A_Zaz):0:4: ++%4LG:-NAN():1:4:-nan: ++%*4LG:-NAN():0:4: ++%4LG:NAN():0:-1: ++%*4LG:NAN():0:-1: ++%4LG:NAN(09A_Zaz):0:-1: ++%*4LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LG:0X0P0:0:-1: ++# BZ12701 %*4LG:0X0P0:0:-1: ++# BZ12701 %4LG:0X0P+0:0:-1: ++# BZ12701 %*4LG:0X0P+0:0:-1: ++# BZ12701 %4LG:0X8P-16385:0:-1: ++# BZ12701 %*4LG:0X8P-16385:0:-1: ++%4LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:0x1.cp2: ++%*4LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:0x1.ep3: ++%*4LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LG:INFINITY:0:-1: ++%*4LG:INFINITY:0:-1: ++%4LG:+NAN():1:4:nan: ++%*4LG:+NAN():0:4: ++%4LG:+NAN(09A_Zaz):1:4:nan: ++%*4LG:+NAN(09A_Zaz):0:4: ++%4LG:+0X0P0:1:4:0x0: ++%*4LG:+0X0P0:0:4: ++%4LG:+0X0P+0:1:4:0x0: ++%*4LG:+0X0P+0:0:4: ++%4LG:+0X8P-16385:1:4:0x1p3: ++%*4LG:+0X8P-16385:0:4: ++%4LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:4: ++%4LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:4: ++%4LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:4:0x1.cp2: ++%*4LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:4: ++%4LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:4:0x1.ep3: ++%*4LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:4: ++%4LG:+INFINITY:1:4:inf: ++%*4LG:+INFINITY:0:4: ++%5LG::0:-1: ++%*5LG::0:-1: ++%5LG:-INFINITY:0:-1: ++%*5LG:-INFINITY:0:-1: ++%5LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:-0x1.ep3: ++%*5LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:-0x1.cp2: ++%*5LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++# BZ12701 %5LG:-0X8P-16385:0:-1: ++# BZ12701 %*5LG:-0X8P-16385:0:-1: ++# BZ12701 %5LG:-0X0P+0:0:-1: ++# BZ12701 %*5LG:-0X0P+0:0:-1: ++# BZ12701 %5LG:-0X0P0:0:-1: ++# BZ12701 %*5LG:-0X0P0:0:-1: ++%5LG:-NAN(09A_Zaz):0:-1: ++%*5LG:-NAN(09A_Zaz):0:-1: ++%5LG:-NAN():0:-1: ++%*5LG:-NAN():0:-1: ++%5LG:NAN():1:5:nan: ++%*5LG:NAN():0:5: ++%5LG:NAN(09A_Zaz):0:-1: ++%*5LG:NAN(09A_Zaz):0:-1: ++%5LG:0X0P0:1:5:0x0: ++%*5LG:0X0P0:0:5: ++# BZ12701 %5LG:0X0P+0:0:-1: ++# BZ12701 %*5LG:0X0P+0:0:-1: ++# BZ12701 %5LG:0X8P-16385:0:-1: ++# BZ12701 %*5LG:0X8P-16385:0:-1: ++%5LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++%5LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:0x1.fcp2: ++%*5LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:0x1.fep3: ++%*5LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LG:INFINITY:0:-1: ++%*5LG:INFINITY:0:-1: ++%5LG:+NAN():0:-1: ++%*5LG:+NAN():0:-1: ++%5LG:+NAN(09A_Zaz):0:-1: ++%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG:+0X0P0:0:-1: ++# BZ12701 %*5LG:+0X0P0:0:-1: ++# BZ12701 %5LG:+0X0P+0:0:-1: ++# BZ12701 %*5LG:+0X0P+0:0:-1: ++# BZ12701 %5LG:+0X8P-16385:0:-1: ++# BZ12701 %*5LG:+0X8P-16385:0:-1: ++%5LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:5: ++%5LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:5: ++%5LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:5:0x1.cp2: ++%*5LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:5: ++%5LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:5:0x1.ep3: ++%*5LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:5: ++%5LG:+INFINITY:0:-1: ++%*5LG:+INFINITY:0:-1: ++%6LG::0:-1: ++%*6LG::0:-1: ++%6LG:-INFINITY:0:-1: ++%*6LG:-INFINITY:0:-1: ++%6LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:-0x1.fep3: ++%*6LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:-0x1.fcp2: ++%*6LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++# BZ12701 %6LG:-0X8P-16385:0:-1: ++# BZ12701 %*6LG:-0X8P-16385:0:-1: ++# BZ12701 %6LG:-0X0P+0:0:-1: ++# BZ12701 %*6LG:-0X0P+0:0:-1: ++%6LG:-0X0P0:1:6:-0x0: ++%*6LG:-0X0P0:0:6: ++%6LG:-NAN(09A_Zaz):0:-1: ++%*6LG:-NAN(09A_Zaz):0:-1: ++%6LG:-NAN():1:6:-nan: ++%*6LG:-NAN():0:6: ++%6LG:NAN():1:5:nan: ++%*6LG:NAN():0:5: ++%6LG:NAN(09A_Zaz):0:-1: ++%*6LG:NAN(09A_Zaz):0:-1: ++%6LG:0X0P0:1:5:0x0: ++%*6LG:0X0P0:0:5: ++%6LG:0X0P+0:1:6:0x0: ++%*6LG:0X0P+0:0:6: ++%6LG:0X8P-16385:1:6:0x1p2: ++%*6LG:0X8P-16385:0:6: ++%6LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%6LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.ffcp2: ++%*6LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.ffep3: ++%*6LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LG:INFINITY:0:-1: ++%*6LG:INFINITY:0:-1: ++%6LG:+NAN():1:6:nan: ++%*6LG:+NAN():0:6: ++%6LG:+NAN(09A_Zaz):0:-1: ++%*6LG:+NAN(09A_Zaz):0:-1: ++%6LG:+0X0P0:1:6:0x0: ++%*6LG:+0X0P0:0:6: ++# BZ12701 %6LG:+0X0P+0:0:-1: ++# BZ12701 %*6LG:+0X0P+0:0:-1: ++# BZ12701 %6LG:+0X8P-16385:0:-1: ++# BZ12701 %*6LG:+0X8P-16385:0:-1: ++%6LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%6LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%6LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.fcp2: ++%*6LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%6LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.fep3: ++%*6LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%6LG:+INFINITY:0:-1: ++%*6LG:+INFINITY:0:-1: ++%35LG::0:-1: ++%*35LG::0:-1: ++%35LG:-INFINITY:1:9:-inf: ++%*35LG:-INFINITY:0:9: ++# BZ12701 %35LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*35LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%35LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:-0x1.ffffffffffffffffffffffffffffp3: ++%*35LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++# BZ12701 %35LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*35LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%35LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++%35LG:-0X8P-16385:1:11:-0x1p-16382: ++%*35LG:-0X8P-16385:0:11: ++%35LG:-0X0P+0:1:7:-0x0: ++%*35LG:-0X0P+0:0:7: ++%35LG:-0X0P0:1:6:-0x0: ++%*35LG:-0X0P0:0:6: ++%35LG:-NAN(09A_Zaz):1:13:-nan: ++%*35LG:-NAN(09A_Zaz):0:13: ++%35LG:-NAN():1:6:-nan: ++%*35LG:-NAN():0:6: ++%35LG:NAN():1:5:nan: ++%*35LG:NAN():0:5: ++%35LG:NAN(09A_Zaz):1:12:nan: ++%*35LG:NAN(09A_Zaz):0:12: ++%35LG:0X0P0:1:5:0x0: ++%*35LG:0X0P0:0:5: ++%35LG:0X0P+0:1:6:0x0: ++%*35LG:0X0P+0:0:6: ++%35LG:0X8P-16385:1:10:0x1p-16382: ++%*35LG:0X8P-16385:0:10: ++%35LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++%35LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp2: ++%*35LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:35: ++%35LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:0x1.ffffffffffffffffffffffffffffp18: ++%*35LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++%35LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:35:0x1.ffffffffffffffffffffffffffffp4: ++%*35LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:35: ++%35LG:INFINITY:1:8:inf: ++%*35LG:INFINITY:0:8: ++%35LG:+NAN():1:6:nan: ++%*35LG:+NAN():0:6: ++%35LG:+NAN(09A_Zaz):1:13:nan: ++%*35LG:+NAN(09A_Zaz):0:13: ++%35LG:+0X0P0:1:6:0x0: ++%*35LG:+0X0P0:0:6: ++%35LG:+0X0P+0:1:7:0x0: ++%*35LG:+0X0P+0:0:7: ++%35LG:+0X8P-16385:1:11:0x1p-16382: ++%*35LG:+0X8P-16385:0:11: ++%35LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp1: ++%*35LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:35: ++# BZ12701 %35LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++# BZ12701 %*35LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:-1: ++%35LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:35:0x1.ffffffffffffffffffffffffffffp3: ++%*35LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:35: ++# BZ12701 %35LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++# BZ12701 %*35LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:-1: ++%35LG:+INFINITY:1:9:inf: ++%*35LG:+INFINITY:0:9: ++%53LG::0:-1: ++%*53LG::0:-1: ++%53LG:-INFINITY:1:9:-inf: ++%*53LG:-INFINITY:0:9: ++%53LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:-0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:-0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:-0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:-0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LG:-0X8P-16385:1:11:-0x1p-16382: ++%*53LG:-0X8P-16385:0:11: ++%53LG:-0X0P+0:1:7:-0x0: ++%*53LG:-0X0P+0:0:7: ++%53LG:-0X0P0:1:6:-0x0: ++%*53LG:-0X0P0:0:6: ++%53LG:-NAN(09A_Zaz):1:13:-nan: ++%*53LG:-NAN(09A_Zaz):0:13: ++%53LG:-NAN():1:6:-nan: ++%*53LG:-NAN():0:6: ++%53LG:NAN():1:5:nan: ++%*53LG:NAN():0:5: ++%53LG:NAN(09A_Zaz):1:12:nan: ++%*53LG:NAN(09A_Zaz):0:12: ++%53LG:0X0P0:1:5:0x0: ++%*53LG:0X0P0:0:5: ++%53LG:0X0P+0:1:6:0x0: ++%*53LG:0X0P+0:0:6: ++%53LG:0X8P-16385:1:10:0x1p-16382: ++%*53LG:0X8P-16385:0:10: ++%53LG:0X2.3456789ABCDEF0123456789ABCDEP012345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:0X2.3456789ABCDEF0123456789ABCDEP012345:0:39: ++%53LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:0X2.3456789ABCDEF0123456789ABCDEP+12345:0:39: ++%53LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:38:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:38: ++%53LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:39: ++%53LG:INFINITY:1:8:inf: ++%*53LG:INFINITY:0:8: ++%53LG:+NAN():1:6:nan: ++%*53LG:+NAN():0:6: ++%53LG:+NAN(09A_Zaz):1:13:nan: ++%*53LG:+NAN(09A_Zaz):0:13: ++%53LG:+0X0P0:1:6:0x0: ++%*53LG:+0X0P0:0:6: ++%53LG:+0X0P+0:1:7:0x0: ++%*53LG:+0X0P+0:0:7: ++%53LG:+0X8P-16385:1:11:0x1p-16382: ++%*53LG:+0X8P-16385:0:11: ++%53LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:+0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG:+0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:+0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG:+0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LG:+INFINITY:1:9:inf: ++%*53LG:+INFINITY:0:9: ++%5LG: :0:-1: ++%*5LG: :0:-1: ++%5LG: -INFINITY:0:-1: ++%*5LG: -INFINITY:0:-1: ++%5LG: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:-0x1.ep3: ++%*5LG: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LG: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:-0x1.cp2: ++%*5LG: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LG: -0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LG: -0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++# BZ12701 %5LG: -0X8P-16385:0:-1: ++# BZ12701 %*5LG: -0X8P-16385:0:-1: ++# BZ12701 %5LG: -0X0P+0:0:-1: ++# BZ12701 %*5LG: -0X0P+0:0:-1: ++# BZ12701 %5LG: -0X0P0:0:-1: ++# BZ12701 %*5LG: -0X0P0:0:-1: ++%5LG: -NAN(09A_Zaz):0:-1: ++%*5LG: -NAN(09A_Zaz):0:-1: ++%5LG: -NAN():0:-1: ++%*5LG: -NAN():0:-1: ++%5LG: NAN():1:6:nan: ++%*5LG: NAN():0:6: ++%5LG: NAN(09A_Zaz):0:-1: ++%*5LG: NAN(09A_Zaz):0:-1: ++%5LG: 0X0P0:1:6:0x0: ++%*5LG: 0X0P0:0:6: ++# BZ12701 %5LG: 0X0P+0:0:-1: ++# BZ12701 %*5LG: 0X0P+0:0:-1: ++# BZ12701 %5LG: 0X8P-16385:0:-1: ++# BZ12701 %*5LG: 0X8P-16385:0:-1: ++%5LG: 0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%5LG: 0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LG: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.fcp2: ++%*5LG: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.fep3: ++%*5LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LG: INFINITY:0:-1: ++%*5LG: INFINITY:0:-1: ++%5LG: +NAN():0:-1: ++%*5LG: +NAN():0:-1: ++%5LG: +NAN(09A_Zaz):0:-1: ++%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG: +0X0P0:0:-1: ++# BZ12701 %*5LG: +0X0P0:0:-1: ++# BZ12701 %5LG: +0X0P+0:0:-1: ++# BZ12701 %*5LG: +0X0P+0:0:-1: ++# BZ12701 %5LG: +0X8P-16385:0:-1: ++# BZ12701 %*5LG: +0X8P-16385:0:-1: ++%5LG: +0X2.3456789ABCDEF0123456789ABCDEP012345:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF0123456789ABCDEP012345:0:6: ++%5LG: +0X2.3456789ABCDEF0123456789ABCDEP+12345:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF0123456789ABCDEP+12345:0:6: ++%5LG: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:6:0x1.cp2: ++%*5LG: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:6: ++%5LG: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:6:0x1.ep3: ++%*5LG: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:6: ++%5LG: +INFINITY:0:-1: ++%*5LG: +INFINITY:0:-1: ++%53LG: :0:-1: ++%*53LG: :0:-1: ++%53LG: -INFINITY:1:10:-inf: ++%*53LG: -INFINITY:0:10: ++%53LG: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:41:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: -0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:41: ++%53LG: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:40:-0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: -0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:40: ++%53LG: -0X2.3456789ABCDEF0123456789ABCDEP+12345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: -0X2.3456789ABCDEF0123456789ABCDEP+12345:0:41: ++%53LG: -0X2.3456789ABCDEF0123456789ABCDEP012345:1:41:-0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: -0X2.3456789ABCDEF0123456789ABCDEP012345:0:41: ++%53LG: -0X8P-16385:1:12:-0x1p-16382: ++%*53LG: -0X8P-16385:0:12: ++%53LG: -0X0P+0:1:8:-0x0: ++%*53LG: -0X0P+0:0:8: ++%53LG: -0X0P0:1:7:-0x0: ++%*53LG: -0X0P0:0:7: ++%53LG: -NAN(09A_Zaz):1:14:-nan: ++%*53LG: -NAN(09A_Zaz):0:14: ++%53LG: -NAN():1:7:-nan: ++%*53LG: -NAN():0:7: ++%53LG: NAN():1:6:nan: ++%*53LG: NAN():0:6: ++%53LG: NAN(09A_Zaz):1:13:nan: ++%*53LG: NAN(09A_Zaz):0:13: ++%53LG: 0X0P0:1:6:0x0: ++%*53LG: 0X0P0:0:6: ++%53LG: 0X0P+0:1:7:0x0: ++%*53LG: 0X0P+0:0:7: ++%53LG: 0X8P-16385:1:11:0x1p-16382: ++%*53LG: 0X8P-16385:0:11: ++%53LG: 0X2.3456789ABCDEF0123456789ABCDEP012345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: 0X2.3456789ABCDEF0123456789ABCDEP012345:0:40: ++%53LG: 0X2.3456789ABCDEF0123456789ABCDEP+12345:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: 0X2.3456789ABCDEF0123456789ABCDEP+12345:0:40: ++%53LG: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:39:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: 0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:39: ++%53LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: 0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:40: ++%53LG: INFINITY:1:9:inf: ++%*53LG: INFINITY:0:9: ++%53LG: +NAN():1:7:nan: ++%*53LG: +NAN():0:7: ++%53LG: +NAN(09A_Zaz):1:14:nan: ++%*53LG: +NAN(09A_Zaz):0:14: ++%53LG: +0X0P0:1:7:0x0: ++%*53LG: +0X0P0:0:7: ++%53LG: +0X0P+0:1:8:0x0: ++%*53LG: +0X0P+0:0:8: ++%53LG: +0X8P-16385:1:12:0x1p-16382: ++%*53LG: +0X8P-16385:0:12: ++%53LG: +0X2.3456789ABCDEF0123456789ABCDEP012345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: +0X2.3456789ABCDEF0123456789ABCDEP012345:0:41: ++%53LG: +0X2.3456789ABCDEF0123456789ABCDEP+12345:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5e6fp12346: ++%*53LG: +0X2.3456789ABCDEF0123456789ABCDEP+12345:0:41: ++%53LG: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:1:40:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: +0X7.FFFFFFFFFFFFFFFFFFFFFFFFFFFCP16381:0:40: ++%53LG: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:1:41:0x1.ffffffffffffffffffffffffffffp16383: ++%*53LG: +0XF.FFFFFFFFFFFFFFFFFFFFFFFFFFF8P+16380:0:41: ++%53LG: +INFINITY:1:10:inf: ++%*53LG: +INFINITY:0:10: diff --git a/glibc-RHEL-119433-7.patch b/glibc-RHEL-119433-7.patch new file mode 100644 index 0000000..98bfc17 --- /dev/null +++ b/glibc-RHEL-119433-7.patch @@ -0,0 +1,5124 @@ +commit 771cda3c9cbbfc33a1a337d964e7749b245dec38 +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf long double data for IEEE 754 binary64 format + + Add Makefile infrastructure and 64-bit `long double' real input data for + targets switching between the IEEE 754 binary64 and IEEE 754 binary128 + formats with `-mlong-double-64' and `-mlong-double-128'. Use modified + output file names for the IEEE 754 binary64 format so as not to clash + with the names used for IEEE 754 binary128 format tests made with common + rules for the 'long double' data type. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +Conflicts: + sysdeps/ieee754/ldbl-opt/Makefile + (Fixup context) + +diff --git a/sysdeps/ieee754/ldbl-64-128/Makefile b/sysdeps/ieee754/ldbl-64-128/Makefile +new file mode 100644 +index 0000000000000000..7a37fa179f41002f +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-64-128/Makefile +@@ -0,0 +1,14 @@ ++ifeq ($(subdir),stdio-common) ++ifeq ($(run-built-tests),yes) ++# Put long double IEEE binary128 format inputs in sysdeps/ieee754/ldbl-128 ++# first in vpath. Otherwise the ordering of sysdeps would cause long double ++# IEEE binary64 format inputs in sysdeps/ieee754/ldbl-opt to be used instead ++# for the common rules requested in sysdeps/ieee754/ldbl-128 with targets ++# using the dual -mlong-double-128/-mlong-double-64 arrangement. ++define tst-scanf-format-64-128-vpath ++vpath tst-scanf-format-ldouble-$(1).input ../sysdeps/ieee754/ldbl-128 ++endef ++$(foreach f,$(fmts-xscanf-real), \ ++ $(eval $(call tst-scanf-format-64-128-vpath,$(f)))) ++endif # $(run-built-tests) == yes ++endif # $(subdir) == stdio-common +diff --git a/sysdeps/ieee754/ldbl-opt/Makefile b/sysdeps/ieee754/ldbl-opt/Makefile +index 0ed1cd2cae2d8b4a..678f4e5567fcf2d5 100644 +--- a/sysdeps/ieee754/ldbl-opt/Makefile ++++ b/sysdeps/ieee754/ldbl-opt/Makefile +@@ -231,6 +231,59 @@ CFLAGS-tst-nldbl-errorfptr.c += -mlong-double-64 + endif + + ifeq ($(subdir), stdio-common) ++# We already have the long double conversion defined with our common rules ++# for the IEEE binary128 format, so define these special rules to build ++# and run extra executables for the IEEE binary64 format, reusing the same ++# sources. ++define tst-scanf-format-64-tests ++test-srcs += \ ++ tst-scanf-format-$(1)-ldouble-64 \ ++ # test-srcs ++ ++$$(objpfx)tst-scanf-format-$(1)-ldouble-64.o: \ ++ tst-scanf-format-$(1)-ldouble.c $$(before-compile) ++ $$(compile-command.c) ++$$(objpfx)tst-scanf-format-$(1)-ldouble-64: $$(libm) ++endef ++$(foreach p,$(xscanf-funcs), \ ++ $(eval $(call tst-scanf-format-64-tests,$(p)))) ++ ++# Use the IEEE binary64 format for long double scanf format tests. ++$(foreach suf,$(all-object-suffixes), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(objpfx)tst-scanf-format-$(p)-ldouble-64$(suf))): \ ++ sysdep-CFLAGS += -mlong-double-64 ++ ++ifeq ($(run-built-tests),yes) ++define tst-scanf-format-64-rule ++tests-special += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).out \ ++ # tests-special ++ ++$$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).out: \ ++ ../sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-$(2).input \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-64 ++ $$(make-tst-scanf-format-out) > $$@ < $$<; \ ++ $$(evaluate-test) ++ ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) ++tests-special += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2)-mem.out \ ++ # tests-special ++ ++generated += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2)-mem.out \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).mtrace \ ++ # generated ++endif ++endif ++endef ++$(foreach f,$(fmts-xscanf-real), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(eval $(call tst-scanf-format-64-rule,$(p),$(f))))) ++endif # $(run-built-tests) == yes ++ + tests += tst-nldbl-scanf-binary-c11 \ + tst-nldbl-scanf-binary-c2x \ + tst-nldbl-scanf-binary-gnu11 \ +@@ -248,7 +301,7 @@ CFLAGS-tst-nldbl-scanf-binary-gnu11.c += -mlong-double-64 -std=gnu11 \ + CFLAGS-tst-nldbl-scanf-binary-gnu89.c += -mlong-double-64 -std=gnu89 \ + -DOBJPFX=\"$(objpfx)\" + +-endif ++endif # $(subdir) == stdio-common + + ifeq ($(subdir), wcsmbs) + tests += tst-nldbl-wscanf-binary-c11 \ +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input +new file mode 100644 +index 0000000000000000..42a1ffa84a834f8d +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input +@@ -0,0 +1,682 @@ ++%La::0:-1: ++%*La::0:-1: ++%La:-infinity:1:9:-inf: ++%*La:-infinity:0:9: ++%La:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*La:-0xf.ffffffffffff8p+1020:0:24: ++%La:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*La:-0x7.ffffffffffffcp1021:0:23: ++%La:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*La:-0x2.3456789abcdfep+123:0:23: ++%La:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*La:-0x2.3456789abcdfep0123:0:23: ++%La:-0x8p-1025:1:10:-0x1p-1022: ++%*La:-0x8p-1025:0:10: ++%La:-0x0p+0:1:7:-0x0: ++%*La:-0x0p+0:0:7: ++%La:-0x0p0:1:6:-0x0: ++%*La:-0x0p0:0:6: ++%La:-nan(09A_Zaz):1:13:-nan: ++%*La:-nan(09A_Zaz):0:13: ++%La:-nan():1:6:-nan: ++%*La:-nan():0:6: ++%La:nan():1:5:nan: ++%*La:nan():0:5: ++%La:nan(09A_Zaz):1:12:nan: ++%*La:nan(09A_Zaz):0:12: ++%La:0x0p0:1:5:0x0: ++%*La:0x0p0:0:5: ++%La:0x0p+0:1:6:0x0: ++%*La:0x0p+0:0:6: ++%La:0x8p-1025:1:9:0x1p-1022: ++%*La:0x8p-1025:0:9: ++%La:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*La:0x2.3456789abcdfep0123:0:22: ++%La:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*La:0x2.3456789abcdfep+123:0:22: ++%La:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*La:0x7.ffffffffffffcp1021:0:22: ++%La:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*La:0xf.ffffffffffff8p+1020:0:23: ++%La:infinity:1:8:inf: ++%*La:infinity:0:8: ++%La:+nan():1:6:nan: ++%*La:+nan():0:6: ++%La:+nan(09A_Zaz):1:13:nan: ++%*La:+nan(09A_Zaz):0:13: ++%La:+0x0p0:1:6:0x0: ++%*La:+0x0p0:0:6: ++%La:+0x0p+0:1:7:0x0: ++%*La:+0x0p+0:0:7: ++%La:+0x8p-1025:1:10:0x1p-1022: ++%*La:+0x8p-1025:0:10: ++%La:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*La:+0x2.3456789abcdfep0123:0:23: ++%La:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*La:+0x2.3456789abcdfep+123:0:23: ++%La:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*La:+0x7.ffffffffffffcp1021:0:23: ++%La:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*La:+0xf.ffffffffffff8p+1020:0:24: ++%La:+infinity:1:9:inf: ++%*La:+infinity:0:9: ++%1La::0:-1: ++%*1La::0:-1: ++%1La:-infinity:0:-1: ++%*1La:-infinity:0:-1: ++%1La:-0xf.ffffffffffff8p+1020:0:-1: ++%*1La:-0xf.ffffffffffff8p+1020:0:-1: ++%1La:-0x7.ffffffffffffcp1021:0:-1: ++%*1La:-0x7.ffffffffffffcp1021:0:-1: ++%1La:-0x2.3456789abcdfep+123:0:-1: ++%*1La:-0x2.3456789abcdfep+123:0:-1: ++%1La:-0x2.3456789abcdfep0123:0:-1: ++%*1La:-0x2.3456789abcdfep0123:0:-1: ++%1La:-0x8p-1025:0:-1: ++%*1La:-0x8p-1025:0:-1: ++%1La:-0x0p+0:0:-1: ++%*1La:-0x0p+0:0:-1: ++%1La:-0x0p0:0:-1: ++%*1La:-0x0p0:0:-1: ++%1La:-nan(09A_Zaz):0:-1: ++%*1La:-nan(09A_Zaz):0:-1: ++%1La:-nan():0:-1: ++%*1La:-nan():0:-1: ++%1La:nan():0:-1: ++%*1La:nan():0:-1: ++%1La:nan(09A_Zaz):0:-1: ++%*1La:nan(09A_Zaz):0:-1: ++%1La:0x0p0:1:1:0x0: ++%*1La:0x0p0:0:1: ++%1La:0x0p+0:1:1:0x0: ++%*1La:0x0p+0:0:1: ++%1La:0x8p-1025:1:1:0x0: ++%*1La:0x8p-1025:0:1: ++%1La:0x2.3456789abcdfep0123:1:1:0x0: ++%*1La:0x2.3456789abcdfep0123:0:1: ++%1La:0x2.3456789abcdfep+123:1:1:0x0: ++%*1La:0x2.3456789abcdfep+123:0:1: ++%1La:0x7.ffffffffffffcp1021:1:1:0x0: ++%*1La:0x7.ffffffffffffcp1021:0:1: ++%1La:0xf.ffffffffffff8p+1020:1:1:0x0: ++%*1La:0xf.ffffffffffff8p+1020:0:1: ++%1La:infinity:0:-1: ++%*1La:infinity:0:-1: ++%1La:+nan():0:-1: ++%*1La:+nan():0:-1: ++%1La:+nan(09A_Zaz):0:-1: ++%*1La:+nan(09A_Zaz):0:-1: ++%1La:+0x0p0:0:-1: ++%*1La:+0x0p0:0:-1: ++%1La:+0x0p+0:0:-1: ++%*1La:+0x0p+0:0:-1: ++%1La:+0x8p-1025:0:-1: ++%*1La:+0x8p-1025:0:-1: ++%1La:+0x2.3456789abcdfep0123:0:-1: ++%*1La:+0x2.3456789abcdfep0123:0:-1: ++%1La:+0x2.3456789abcdfep+123:0:-1: ++%*1La:+0x2.3456789abcdfep+123:0:-1: ++%1La:+0x7.ffffffffffffcp1021:0:-1: ++%*1La:+0x7.ffffffffffffcp1021:0:-1: ++%1La:+0xf.ffffffffffff8p+1020:0:-1: ++%*1La:+0xf.ffffffffffff8p+1020:0:-1: ++%1La:+infinity:0:-1: ++%*1La:+infinity:0:-1: ++%2La::0:-1: ++%*2La::0:-1: ++%2La:-infinity:0:-1: ++%*2La:-infinity:0:-1: ++%2La:-0xf.ffffffffffff8p+1020:1:2:-0x0: ++%*2La:-0xf.ffffffffffff8p+1020:0:2: ++%2La:-0x7.ffffffffffffcp1021:1:2:-0x0: ++%*2La:-0x7.ffffffffffffcp1021:0:2: ++%2La:-0x2.3456789abcdfep+123:1:2:-0x0: ++%*2La:-0x2.3456789abcdfep+123:0:2: ++%2La:-0x2.3456789abcdfep0123:1:2:-0x0: ++%*2La:-0x2.3456789abcdfep0123:0:2: ++%2La:-0x8p-1025:1:2:-0x0: ++%*2La:-0x8p-1025:0:2: ++%2La:-0x0p+0:1:2:-0x0: ++%*2La:-0x0p+0:0:2: ++%2La:-0x0p0:1:2:-0x0: ++%*2La:-0x0p0:0:2: ++%2La:-nan(09A_Zaz):0:-1: ++%*2La:-nan(09A_Zaz):0:-1: ++%2La:-nan():0:-1: ++%*2La:-nan():0:-1: ++%2La:nan():0:-1: ++%*2La:nan():0:-1: ++%2La:nan(09A_Zaz):0:-1: ++%*2La:nan(09A_Zaz):0:-1: ++# BZ12701 %2La:0x0p0:0:-1: ++# BZ12701 %*2La:0x0p0:0:-1: ++# BZ12701 %2La:0x0p+0:0:-1: ++# BZ12701 %*2La:0x0p+0:0:-1: ++# BZ12701 %2La:0x8p-1025:0:-1: ++# BZ12701 %*2La:0x8p-1025:0:-1: ++# BZ12701 %2La:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %2La:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %2La:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*2La:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %2La:0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*2La:0xf.ffffffffffff8p+1020:0:-1: ++%2La:infinity:0:-1: ++%*2La:infinity:0:-1: ++%2La:+nan():0:-1: ++%*2La:+nan():0:-1: ++%2La:+nan(09A_Zaz):0:-1: ++%*2La:+nan(09A_Zaz):0:-1: ++%2La:+0x0p0:1:2:0x0: ++%*2La:+0x0p0:0:2: ++%2La:+0x0p+0:1:2:0x0: ++%*2La:+0x0p+0:0:2: ++%2La:+0x8p-1025:1:2:0x0: ++%*2La:+0x8p-1025:0:2: ++%2La:+0x2.3456789abcdfep0123:1:2:0x0: ++%*2La:+0x2.3456789abcdfep0123:0:2: ++%2La:+0x2.3456789abcdfep+123:1:2:0x0: ++%*2La:+0x2.3456789abcdfep+123:0:2: ++%2La:+0x7.ffffffffffffcp1021:1:2:0x0: ++%*2La:+0x7.ffffffffffffcp1021:0:2: ++%2La:+0xf.ffffffffffff8p+1020:1:2:0x0: ++%*2La:+0xf.ffffffffffff8p+1020:0:2: ++%2La:+infinity:0:-1: ++%*2La:+infinity:0:-1: ++%3La::0:-1: ++%*3La::0:-1: ++%3La:-infinity:0:-1: ++%*3La:-infinity:0:-1: ++# BZ12701 %3La:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3La:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %3La:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3La:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3La:-0x8p-1025:0:-1: ++# BZ12701 %*3La:-0x8p-1025:0:-1: ++# BZ12701 %3La:-0x0p+0:0:-1: ++# BZ12701 %*3La:-0x0p+0:0:-1: ++# BZ12701 %3La:-0x0p0:0:-1: ++# BZ12701 %*3La:-0x0p0:0:-1: ++%3La:-nan(09A_Zaz):0:-1: ++%*3La:-nan(09A_Zaz):0:-1: ++%3La:-nan():0:-1: ++%*3La:-nan():0:-1: ++%3La:nan():1:3:nan: ++%*3La:nan():0:3: ++%3La:nan(09A_Zaz):1:3:nan: ++%*3La:nan(09A_Zaz):0:3: ++%3La:0x0p0:1:3:0x0: ++%*3La:0x0p0:0:3: ++%3La:0x0p+0:1:3:0x0: ++%*3La:0x0p+0:0:3: ++%3La:0x8p-1025:1:3:0x1p3: ++%*3La:0x8p-1025:0:3: ++%3La:0x2.3456789abcdfep0123:1:3:0x1p1: ++%*3La:0x2.3456789abcdfep0123:0:3: ++%3La:0x2.3456789abcdfep+123:1:3:0x1p1: ++%*3La:0x2.3456789abcdfep+123:0:3: ++%3La:0x7.ffffffffffffcp1021:1:3:0x1.cp2: ++%*3La:0x7.ffffffffffffcp1021:0:3: ++%3La:0xf.ffffffffffff8p+1020:1:3:0x1.ep3: ++%*3La:0xf.ffffffffffff8p+1020:0:3: ++%3La:infinity:1:3:inf: ++%*3La:infinity:0:3: ++%3La:+nan():0:-1: ++%*3La:+nan():0:-1: ++%3La:+nan(09A_Zaz):0:-1: ++%*3La:+nan(09A_Zaz):0:-1: ++# BZ12701 %3La:+0x0p0:0:-1: ++# BZ12701 %*3La:+0x0p0:0:-1: ++# BZ12701 %3La:+0x0p+0:0:-1: ++# BZ12701 %*3La:+0x0p+0:0:-1: ++# BZ12701 %3La:+0x8p-1025:0:-1: ++# BZ12701 %*3La:+0x8p-1025:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3La:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3La:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3La:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3La:+0xf.ffffffffffff8p+1020:0:-1: ++%3La:+infinity:0:-1: ++%*3La:+infinity:0:-1: ++%4La::0:-1: ++%*4La::0:-1: ++%4La:-infinity:1:4:-inf: ++%*4La:-infinity:0:4: ++%4La:-0xf.ffffffffffff8p+1020:1:4:-0x1.ep3: ++%*4La:-0xf.ffffffffffff8p+1020:0:4: ++%4La:-0x7.ffffffffffffcp1021:1:4:-0x1.cp2: ++%*4La:-0x7.ffffffffffffcp1021:0:4: ++%4La:-0x2.3456789abcdfep+123:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdfep+123:0:4: ++%4La:-0x2.3456789abcdfep0123:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdfep0123:0:4: ++%4La:-0x8p-1025:1:4:-0x1p3: ++%*4La:-0x8p-1025:0:4: ++%4La:-0x0p+0:1:4:-0x0: ++%*4La:-0x0p+0:0:4: ++%4La:-0x0p0:1:4:-0x0: ++%*4La:-0x0p0:0:4: ++%4La:-nan(09A_Zaz):1:4:-nan: ++%*4La:-nan(09A_Zaz):0:4: ++%4La:-nan():1:4:-nan: ++%*4La:-nan():0:4: ++%4La:nan():0:-1: ++%*4La:nan():0:-1: ++%4La:nan(09A_Zaz):0:-1: ++%*4La:nan(09A_Zaz):0:-1: ++# BZ12701 %4La:0x0p0:0:-1: ++# BZ12701 %*4La:0x0p0:0:-1: ++# BZ12701 %4La:0x0p+0:0:-1: ++# BZ12701 %*4La:0x0p+0:0:-1: ++# BZ12701 %4La:0x8p-1025:0:-1: ++# BZ12701 %*4La:0x8p-1025:0:-1: ++%4La:0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4La:0x2.3456789abcdfep0123:0:4: ++%4La:0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4La:0x2.3456789abcdfep+123:0:4: ++%4La:0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4La:0x7.ffffffffffffcp1021:0:4: ++%4La:0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4La:0xf.ffffffffffff8p+1020:0:4: ++%4La:infinity:0:-1: ++%*4La:infinity:0:-1: ++%4La:+nan():1:4:nan: ++%*4La:+nan():0:4: ++%4La:+nan(09A_Zaz):1:4:nan: ++%*4La:+nan(09A_Zaz):0:4: ++%4La:+0x0p0:1:4:0x0: ++%*4La:+0x0p0:0:4: ++%4La:+0x0p+0:1:4:0x0: ++%*4La:+0x0p+0:0:4: ++%4La:+0x8p-1025:1:4:0x1p3: ++%*4La:+0x8p-1025:0:4: ++%4La:+0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4La:+0x2.3456789abcdfep0123:0:4: ++%4La:+0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4La:+0x2.3456789abcdfep+123:0:4: ++%4La:+0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4La:+0x7.ffffffffffffcp1021:0:4: ++%4La:+0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4La:+0xf.ffffffffffff8p+1020:0:4: ++%4La:+infinity:1:4:inf: ++%*4La:+infinity:0:4: ++%5La::0:-1: ++%*5La::0:-1: ++%5La:-infinity:0:-1: ++%*5La:-infinity:0:-1: ++%5La:-0xf.ffffffffffff8p+1020:1:5:-0x1.ep3: ++%*5La:-0xf.ffffffffffff8p+1020:0:5: ++%5La:-0x7.ffffffffffffcp1021:1:5:-0x1.cp2: ++%*5La:-0x7.ffffffffffffcp1021:0:5: ++%5La:-0x2.3456789abcdfep+123:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdfep+123:0:5: ++%5La:-0x2.3456789abcdfep0123:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdfep0123:0:5: ++# BZ12701 %5La:-0x8p-1025:0:-1: ++# BZ12701 %*5La:-0x8p-1025:0:-1: ++# BZ12701 %5La:-0x0p+0:0:-1: ++# BZ12701 %*5La:-0x0p+0:0:-1: ++# BZ12701 %5La:-0x0p0:0:-1: ++# BZ12701 %*5La:-0x0p0:0:-1: ++%5La:-nan(09A_Zaz):0:-1: ++%*5La:-nan(09A_Zaz):0:-1: ++%5La:-nan():0:-1: ++%*5La:-nan():0:-1: ++%5La:nan():1:5:nan: ++%*5La:nan():0:5: ++%5La:nan(09A_Zaz):0:-1: ++%*5La:nan(09A_Zaz):0:-1: ++%5La:0x0p0:1:5:0x0: ++%*5La:0x0p0:0:5: ++# BZ12701 %5La:0x0p+0:0:-1: ++# BZ12701 %*5La:0x0p+0:0:-1: ++# BZ12701 %5La:0x8p-1025:0:-1: ++# BZ12701 %*5La:0x8p-1025:0:-1: ++%5La:0x2.3456789abcdfep0123:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdfep0123:0:5: ++%5La:0x2.3456789abcdfep+123:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdfep+123:0:5: ++%5La:0x7.ffffffffffffcp1021:1:5:0x1.fcp2: ++%*5La:0x7.ffffffffffffcp1021:0:5: ++%5La:0xf.ffffffffffff8p+1020:1:5:0x1.fep3: ++%*5La:0xf.ffffffffffff8p+1020:0:5: ++%5La:infinity:0:-1: ++%*5La:infinity:0:-1: ++%5La:+nan():0:-1: ++%*5La:+nan():0:-1: ++%5La:+nan(09A_Zaz):0:-1: ++%*5La:+nan(09A_Zaz):0:-1: ++# BZ12701 %5La:+0x0p0:0:-1: ++# BZ12701 %*5La:+0x0p0:0:-1: ++# BZ12701 %5La:+0x0p+0:0:-1: ++# BZ12701 %*5La:+0x0p+0:0:-1: ++# BZ12701 %5La:+0x8p-1025:0:-1: ++# BZ12701 %*5La:+0x8p-1025:0:-1: ++%5La:+0x2.3456789abcdfep0123:1:5:0x1p1: ++%*5La:+0x2.3456789abcdfep0123:0:5: ++%5La:+0x2.3456789abcdfep+123:1:5:0x1p1: ++%*5La:+0x2.3456789abcdfep+123:0:5: ++%5La:+0x7.ffffffffffffcp1021:1:5:0x1.cp2: ++%*5La:+0x7.ffffffffffffcp1021:0:5: ++%5La:+0xf.ffffffffffff8p+1020:1:5:0x1.ep3: ++%*5La:+0xf.ffffffffffff8p+1020:0:5: ++%5La:+infinity:0:-1: ++%*5La:+infinity:0:-1: ++%6La::0:-1: ++%*6La::0:-1: ++%6La:-infinity:0:-1: ++%*6La:-infinity:0:-1: ++%6La:-0xf.ffffffffffff8p+1020:1:6:-0x1.fep3: ++%*6La:-0xf.ffffffffffff8p+1020:0:6: ++%6La:-0x7.ffffffffffffcp1021:1:6:-0x1.fcp2: ++%*6La:-0x7.ffffffffffffcp1021:0:6: ++%6La:-0x2.3456789abcdfep+123:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdfep+123:0:6: ++%6La:-0x2.3456789abcdfep0123:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdfep0123:0:6: ++# BZ12701 %6La:-0x8p-1025:0:-1: ++# BZ12701 %*6La:-0x8p-1025:0:-1: ++# BZ12701 %6La:-0x0p+0:0:-1: ++# BZ12701 %*6La:-0x0p+0:0:-1: ++%6La:-0x0p0:1:6:-0x0: ++%*6La:-0x0p0:0:6: ++%6La:-nan(09A_Zaz):0:-1: ++%*6La:-nan(09A_Zaz):0:-1: ++%6La:-nan():1:6:-nan: ++%*6La:-nan():0:6: ++%6La:nan():1:5:nan: ++%*6La:nan():0:5: ++%6La:nan(09A_Zaz):0:-1: ++%*6La:nan(09A_Zaz):0:-1: ++%6La:0x0p0:1:5:0x0: ++%*6La:0x0p0:0:5: ++%6La:0x0p+0:1:6:0x0: ++%*6La:0x0p+0:0:6: ++%6La:0x8p-1025:1:6:0x1p2: ++%*6La:0x8p-1025:0:6: ++%6La:0x2.3456789abcdfep0123:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdfep0123:0:6: ++%6La:0x2.3456789abcdfep+123:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdfep+123:0:6: ++%6La:0x7.ffffffffffffcp1021:1:6:0x1.ffcp2: ++%*6La:0x7.ffffffffffffcp1021:0:6: ++%6La:0xf.ffffffffffff8p+1020:1:6:0x1.ffep3: ++%*6La:0xf.ffffffffffff8p+1020:0:6: ++%6La:infinity:0:-1: ++%*6La:infinity:0:-1: ++%6La:+nan():1:6:nan: ++%*6La:+nan():0:6: ++%6La:+nan(09A_Zaz):0:-1: ++%*6La:+nan(09A_Zaz):0:-1: ++%6La:+0x0p0:1:6:0x0: ++%*6La:+0x0p0:0:6: ++# BZ12701 %6La:+0x0p+0:0:-1: ++# BZ12701 %*6La:+0x0p+0:0:-1: ++# BZ12701 %6La:+0x8p-1025:0:-1: ++# BZ12701 %*6La:+0x8p-1025:0:-1: ++%6La:+0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdfep0123:0:6: ++%6La:+0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdfep+123:0:6: ++%6La:+0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*6La:+0x7.ffffffffffffcp1021:0:6: ++%6La:+0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*6La:+0xf.ffffffffffff8p+1020:0:6: ++%6La:+infinity:0:-1: ++%*6La:+infinity:0:-1: ++%20La::0:-1: ++%*20La::0:-1: ++%20La:-infinity:1:9:-inf: ++%*20La:-infinity:0:9: ++# BZ12701 %20La:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20La:-0xf.ffffffffffff8p+1020:0:-1: ++%20La:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3: ++%*20La:-0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20La:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20La:-0x2.3456789abcdfep+123:0:-1: ++%20La:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20La:-0x2.3456789abcdfep0123:0:20: ++%20La:-0x8p-1025:1:10:-0x1p-1022: ++%*20La:-0x8p-1025:0:10: ++%20La:-0x0p+0:1:7:-0x0: ++%*20La:-0x0p+0:0:7: ++%20La:-0x0p0:1:6:-0x0: ++%*20La:-0x0p0:0:6: ++%20La:-nan(09A_Zaz):1:13:-nan: ++%*20La:-nan(09A_Zaz):0:13: ++%20La:-nan():1:6:-nan: ++%*20La:-nan():0:6: ++%20La:nan():1:5:nan: ++%*20La:nan():0:5: ++%20La:nan(09A_Zaz):1:12:nan: ++%*20La:nan(09A_Zaz):0:12: ++%20La:0x0p0:1:5:0x0: ++%*20La:0x0p0:0:5: ++%20La:0x0p+0:1:6:0x0: ++%*20La:0x0p+0:0:6: ++%20La:0x8p-1025:1:9:0x1p-1022: ++%*20La:0x8p-1025:0:9: ++%20La:0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20La:0x2.3456789abcdfep0123:0:20: ++%20La:0x2.3456789abcdfep+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20La:0x2.3456789abcdfep+123:0:20: ++%20La:0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp12: ++%*20La:0x7.ffffffffffffcp1021:0:20: ++%20La:0xf.ffffffffffff8p+1020:1:20:0x1.fffffffffffffp4: ++%*20La:0xf.ffffffffffff8p+1020:0:20: ++%20La:infinity:1:8:inf: ++%*20La:infinity:0:8: ++%20La:+nan():1:6:nan: ++%*20La:+nan():0:6: ++%20La:+nan(09A_Zaz):1:13:nan: ++%*20La:+nan(09A_Zaz):0:13: ++%20La:+0x0p0:1:6:0x0: ++%*20La:+0x0p0:0:6: ++%20La:+0x0p+0:1:7:0x0: ++%*20La:+0x0p+0:0:7: ++%20La:+0x8p-1025:1:10:0x1p-1022: ++%*20La:+0x8p-1025:0:10: ++%20La:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20La:+0x2.3456789abcdfep0123:0:20: ++# BZ12701 %20La:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20La:+0x2.3456789abcdfep+123:0:-1: ++%20La:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3: ++%*20La:+0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20La:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20La:+0xf.ffffffffffff8p+1020:0:-1: ++%20La:+infinity:1:9:inf: ++%*20La:+infinity:0:9: ++%32La::0:-1: ++%*32La::0:-1: ++%32La:-infinity:1:9:-inf: ++%*32La:-infinity:0:9: ++%32La:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*32La:-0xf.ffffffffffff8p+1020:0:24: ++%32La:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*32La:-0x7.ffffffffffffcp1021:0:23: ++%32La:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32La:-0x2.3456789abcdfep+123:0:23: ++%32La:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32La:-0x2.3456789abcdfep0123:0:23: ++%32La:-0x8p-1025:1:10:-0x1p-1022: ++%*32La:-0x8p-1025:0:10: ++%32La:-0x0p+0:1:7:-0x0: ++%*32La:-0x0p+0:0:7: ++%32La:-0x0p0:1:6:-0x0: ++%*32La:-0x0p0:0:6: ++%32La:-nan(09A_Zaz):1:13:-nan: ++%*32La:-nan(09A_Zaz):0:13: ++%32La:-nan():1:6:-nan: ++%*32La:-nan():0:6: ++%32La:nan():1:5:nan: ++%*32La:nan():0:5: ++%32La:nan(09A_Zaz):1:12:nan: ++%*32La:nan(09A_Zaz):0:12: ++%32La:0x0p0:1:5:0x0: ++%*32La:0x0p0:0:5: ++%32La:0x0p+0:1:6:0x0: ++%*32La:0x0p+0:0:6: ++%32La:0x8p-1025:1:9:0x1p-1022: ++%*32La:0x8p-1025:0:9: ++%32La:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32La:0x2.3456789abcdfep0123:0:22: ++%32La:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32La:0x2.3456789abcdfep+123:0:22: ++%32La:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*32La:0x7.ffffffffffffcp1021:0:22: ++%32La:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*32La:0xf.ffffffffffff8p+1020:0:23: ++%32La:infinity:1:8:inf: ++%*32La:infinity:0:8: ++%32La:+nan():1:6:nan: ++%*32La:+nan():0:6: ++%32La:+nan(09A_Zaz):1:13:nan: ++%*32La:+nan(09A_Zaz):0:13: ++%32La:+0x0p0:1:6:0x0: ++%*32La:+0x0p0:0:6: ++%32La:+0x0p+0:1:7:0x0: ++%*32La:+0x0p+0:0:7: ++%32La:+0x8p-1025:1:10:0x1p-1022: ++%*32La:+0x8p-1025:0:10: ++%32La:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32La:+0x2.3456789abcdfep0123:0:23: ++%32La:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32La:+0x2.3456789abcdfep+123:0:23: ++%32La:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32La:+0x7.ffffffffffffcp1021:0:23: ++%32La:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32La:+0xf.ffffffffffff8p+1020:0:24: ++%32La:+infinity:1:9:inf: ++%*32La:+infinity:0:9: ++%5La: :0:-1: ++%*5La: :0:-1: ++%5La: -infinity:0:-1: ++%*5La: -infinity:0:-1: ++%5La: -0xf.ffffffffffff8p+1020:1:6:-0x1.ep3: ++%*5La: -0xf.ffffffffffff8p+1020:0:6: ++%5La: -0x7.ffffffffffffcp1021:1:6:-0x1.cp2: ++%*5La: -0x7.ffffffffffffcp1021:0:6: ++%5La: -0x2.3456789abcdfep+123:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdfep+123:0:6: ++%5La: -0x2.3456789abcdfep0123:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdfep0123:0:6: ++# BZ12701 %5La: -0x8p-1025:0:-1: ++# BZ12701 %*5La: -0x8p-1025:0:-1: ++# BZ12701 %5La: -0x0p+0:0:-1: ++# BZ12701 %*5La: -0x0p+0:0:-1: ++# BZ12701 %5La: -0x0p0:0:-1: ++# BZ12701 %*5La: -0x0p0:0:-1: ++%5La: -nan(09A_Zaz):0:-1: ++%*5La: -nan(09A_Zaz):0:-1: ++%5La: -nan():0:-1: ++%*5La: -nan():0:-1: ++%5La: nan():1:6:nan: ++%*5La: nan():0:6: ++%5La: nan(09A_Zaz):0:-1: ++%*5La: nan(09A_Zaz):0:-1: ++%5La: 0x0p0:1:6:0x0: ++%*5La: 0x0p0:0:6: ++# BZ12701 %5La: 0x0p+0:0:-1: ++# BZ12701 %*5La: 0x0p+0:0:-1: ++# BZ12701 %5La: 0x8p-1025:0:-1: ++# BZ12701 %*5La: 0x8p-1025:0:-1: ++%5La: 0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdfep0123:0:6: ++%5La: 0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdfep+123:0:6: ++%5La: 0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*5La: 0x7.ffffffffffffcp1021:0:6: ++%5La: 0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*5La: 0xf.ffffffffffff8p+1020:0:6: ++%5La: infinity:0:-1: ++%*5La: infinity:0:-1: ++%5La: +nan():0:-1: ++%*5La: +nan():0:-1: ++%5La: +nan(09A_Zaz):0:-1: ++%*5La: +nan(09A_Zaz):0:-1: ++# BZ12701 %5La: +0x0p0:0:-1: ++# BZ12701 %*5La: +0x0p0:0:-1: ++# BZ12701 %5La: +0x0p+0:0:-1: ++# BZ12701 %*5La: +0x0p+0:0:-1: ++# BZ12701 %5La: +0x8p-1025:0:-1: ++# BZ12701 %*5La: +0x8p-1025:0:-1: ++%5La: +0x2.3456789abcdfep0123:1:6:0x1p1: ++%*5La: +0x2.3456789abcdfep0123:0:6: ++%5La: +0x2.3456789abcdfep+123:1:6:0x1p1: ++%*5La: +0x2.3456789abcdfep+123:0:6: ++%5La: +0x7.ffffffffffffcp1021:1:6:0x1.cp2: ++%*5La: +0x7.ffffffffffffcp1021:0:6: ++%5La: +0xf.ffffffffffff8p+1020:1:6:0x1.ep3: ++%*5La: +0xf.ffffffffffff8p+1020:0:6: ++%5La: +infinity:0:-1: ++%*5La: +infinity:0:-1: ++%32La: :0:-1: ++%*32La: :0:-1: ++%32La: -infinity:1:10:-inf: ++%*32La: -infinity:0:10: ++%32La: -0xf.ffffffffffff8p+1020:1:25:-0x1.fffffffffffffp1023: ++%*32La: -0xf.ffffffffffff8p+1020:0:25: ++%32La: -0x7.ffffffffffffcp1021:1:24:-0x1.fffffffffffffp1023: ++%*32La: -0x7.ffffffffffffcp1021:0:24: ++%32La: -0x2.3456789abcdfep+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32La: -0x2.3456789abcdfep+123:0:24: ++%32La: -0x2.3456789abcdfep0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32La: -0x2.3456789abcdfep0123:0:24: ++%32La: -0x8p-1025:1:11:-0x1p-1022: ++%*32La: -0x8p-1025:0:11: ++%32La: -0x0p+0:1:8:-0x0: ++%*32La: -0x0p+0:0:8: ++%32La: -0x0p0:1:7:-0x0: ++%*32La: -0x0p0:0:7: ++%32La: -nan(09A_Zaz):1:14:-nan: ++%*32La: -nan(09A_Zaz):0:14: ++%32La: -nan():1:7:-nan: ++%*32La: -nan():0:7: ++%32La: nan():1:6:nan: ++%*32La: nan():0:6: ++%32La: nan(09A_Zaz):1:13:nan: ++%*32La: nan(09A_Zaz):0:13: ++%32La: 0x0p0:1:6:0x0: ++%*32La: 0x0p0:0:6: ++%32La: 0x0p+0:1:7:0x0: ++%*32La: 0x0p+0:0:7: ++%32La: 0x8p-1025:1:10:0x1p-1022: ++%*32La: 0x8p-1025:0:10: ++%32La: 0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32La: 0x2.3456789abcdfep0123:0:23: ++%32La: 0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32La: 0x2.3456789abcdfep+123:0:23: ++%32La: 0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32La: 0x7.ffffffffffffcp1021:0:23: ++%32La: 0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32La: 0xf.ffffffffffff8p+1020:0:24: ++%32La: infinity:1:9:inf: ++%*32La: infinity:0:9: ++%32La: +nan():1:7:nan: ++%*32La: +nan():0:7: ++%32La: +nan(09A_Zaz):1:14:nan: ++%*32La: +nan(09A_Zaz):0:14: ++%32La: +0x0p0:1:7:0x0: ++%*32La: +0x0p0:0:7: ++%32La: +0x0p+0:1:8:0x0: ++%*32La: +0x0p+0:0:8: ++%32La: +0x8p-1025:1:11:0x1p-1022: ++%*32La: +0x8p-1025:0:11: ++%32La: +0x2.3456789abcdfep0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32La: +0x2.3456789abcdfep0123:0:24: ++%32La: +0x2.3456789abcdfep+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32La: +0x2.3456789abcdfep+123:0:24: ++%32La: +0x7.ffffffffffffcp1021:1:24:0x1.fffffffffffffp1023: ++%*32La: +0x7.ffffffffffffcp1021:0:24: ++%32La: +0xf.ffffffffffff8p+1020:1:25:0x1.fffffffffffffp1023: ++%*32La: +0xf.ffffffffffff8p+1020:0:25: ++%32La: +infinity:1:10:inf: ++%*32La: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input +new file mode 100644 +index 0000000000000000..8a0e6005e3a86bc8 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input +@@ -0,0 +1,682 @@ ++%LA::0:-1: ++%*LA::0:-1: ++%LA:-INFINITY:1:9:-inf: ++%*LA:-INFINITY:0:9: ++%LA:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*LA:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%LA:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*LA:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%LA:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*LA:-0X2.3456789ABCDFEP+123:0:23: ++%LA:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*LA:-0X2.3456789ABCDFEP0123:0:23: ++%LA:-0X8P-1025:1:10:-0x1p-1022: ++%*LA:-0X8P-1025:0:10: ++%LA:-0X0P+0:1:7:-0x0: ++%*LA:-0X0P+0:0:7: ++%LA:-0X0P0:1:6:-0x0: ++%*LA:-0X0P0:0:6: ++%LA:-NAN(09A_Zaz):1:13:-nan: ++%*LA:-NAN(09A_Zaz):0:13: ++%LA:-NAN():1:6:-nan: ++%*LA:-NAN():0:6: ++%LA:NAN():1:5:nan: ++%*LA:NAN():0:5: ++%LA:NAN(09A_Zaz):1:12:nan: ++%*LA:NAN(09A_Zaz):0:12: ++%LA:0X0P0:1:5:0x0: ++%*LA:0X0P0:0:5: ++%LA:0X0P+0:1:6:0x0: ++%*LA:0X0P+0:0:6: ++%LA:0X8P-1025:1:9:0x1p-1022: ++%*LA:0X8P-1025:0:9: ++%LA:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*LA:0X2.3456789ABCDFEP0123:0:22: ++%LA:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*LA:0X2.3456789ABCDFEP+123:0:22: ++%LA:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*LA:0X7.FFFFFFFFFFFFCP1021:0:22: ++%LA:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*LA:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%LA:INFINITY:1:8:inf: ++%*LA:INFINITY:0:8: ++%LA:+NAN():1:6:nan: ++%*LA:+NAN():0:6: ++%LA:+NAN(09A_Zaz):1:13:nan: ++%*LA:+NAN(09A_Zaz):0:13: ++%LA:+0X0P0:1:6:0x0: ++%*LA:+0X0P0:0:6: ++%LA:+0X0P+0:1:7:0x0: ++%*LA:+0X0P+0:0:7: ++%LA:+0X8P-1025:1:10:0x1p-1022: ++%*LA:+0X8P-1025:0:10: ++%LA:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*LA:+0X2.3456789ABCDFEP0123:0:23: ++%LA:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*LA:+0X2.3456789ABCDFEP+123:0:23: ++%LA:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*LA:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%LA:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*LA:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%LA:+INFINITY:1:9:inf: ++%*LA:+INFINITY:0:9: ++%1LA::0:-1: ++%*1LA::0:-1: ++%1LA:-INFINITY:0:-1: ++%*1LA:-INFINITY:0:-1: ++%1LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1LA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1LA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1LA:-0X2.3456789ABCDFEP+123:0:-1: ++%*1LA:-0X2.3456789ABCDFEP+123:0:-1: ++%1LA:-0X2.3456789ABCDFEP0123:0:-1: ++%*1LA:-0X2.3456789ABCDFEP0123:0:-1: ++%1LA:-0X8P-1025:0:-1: ++%*1LA:-0X8P-1025:0:-1: ++%1LA:-0X0P+0:0:-1: ++%*1LA:-0X0P+0:0:-1: ++%1LA:-0X0P0:0:-1: ++%*1LA:-0X0P0:0:-1: ++%1LA:-NAN(09A_Zaz):0:-1: ++%*1LA:-NAN(09A_Zaz):0:-1: ++%1LA:-NAN():0:-1: ++%*1LA:-NAN():0:-1: ++%1LA:NAN():0:-1: ++%*1LA:NAN():0:-1: ++%1LA:NAN(09A_Zaz):0:-1: ++%*1LA:NAN(09A_Zaz):0:-1: ++%1LA:0X0P0:1:1:0x0: ++%*1LA:0X0P0:0:1: ++%1LA:0X0P+0:1:1:0x0: ++%*1LA:0X0P+0:0:1: ++%1LA:0X8P-1025:1:1:0x0: ++%*1LA:0X8P-1025:0:1: ++%1LA:0X2.3456789ABCDFEP0123:1:1:0x0: ++%*1LA:0X2.3456789ABCDFEP0123:0:1: ++%1LA:0X2.3456789ABCDFEP+123:1:1:0x0: ++%*1LA:0X2.3456789ABCDFEP+123:0:1: ++%1LA:0X7.FFFFFFFFFFFFCP1021:1:1:0x0: ++%*1LA:0X7.FFFFFFFFFFFFCP1021:0:1: ++%1LA:0XF.FFFFFFFFFFFF8P+1020:1:1:0x0: ++%*1LA:0XF.FFFFFFFFFFFF8P+1020:0:1: ++%1LA:INFINITY:0:-1: ++%*1LA:INFINITY:0:-1: ++%1LA:+NAN():0:-1: ++%*1LA:+NAN():0:-1: ++%1LA:+NAN(09A_Zaz):0:-1: ++%*1LA:+NAN(09A_Zaz):0:-1: ++%1LA:+0X0P0:0:-1: ++%*1LA:+0X0P0:0:-1: ++%1LA:+0X0P+0:0:-1: ++%*1LA:+0X0P+0:0:-1: ++%1LA:+0X8P-1025:0:-1: ++%*1LA:+0X8P-1025:0:-1: ++%1LA:+0X2.3456789ABCDFEP0123:0:-1: ++%*1LA:+0X2.3456789ABCDFEP0123:0:-1: ++%1LA:+0X2.3456789ABCDFEP+123:0:-1: ++%*1LA:+0X2.3456789ABCDFEP+123:0:-1: ++%1LA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1LA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1LA:+INFINITY:0:-1: ++%*1LA:+INFINITY:0:-1: ++%2LA::0:-1: ++%*2LA::0:-1: ++%2LA:-INFINITY:0:-1: ++%*2LA:-INFINITY:0:-1: ++%2LA:-0XF.FFFFFFFFFFFF8P+1020:1:2:-0x0: ++%*2LA:-0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2LA:-0X7.FFFFFFFFFFFFCP1021:1:2:-0x0: ++%*2LA:-0X7.FFFFFFFFFFFFCP1021:0:2: ++%2LA:-0X2.3456789ABCDFEP+123:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDFEP+123:0:2: ++%2LA:-0X2.3456789ABCDFEP0123:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDFEP0123:0:2: ++%2LA:-0X8P-1025:1:2:-0x0: ++%*2LA:-0X8P-1025:0:2: ++%2LA:-0X0P+0:1:2:-0x0: ++%*2LA:-0X0P+0:0:2: ++%2LA:-0X0P0:1:2:-0x0: ++%*2LA:-0X0P0:0:2: ++%2LA:-NAN(09A_Zaz):0:-1: ++%*2LA:-NAN(09A_Zaz):0:-1: ++%2LA:-NAN():0:-1: ++%*2LA:-NAN():0:-1: ++%2LA:NAN():0:-1: ++%*2LA:NAN():0:-1: ++%2LA:NAN(09A_Zaz):0:-1: ++%*2LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LA:0X0P0:0:-1: ++# BZ12701 %*2LA:0X0P0:0:-1: ++# BZ12701 %2LA:0X0P+0:0:-1: ++# BZ12701 %*2LA:0X0P+0:0:-1: ++# BZ12701 %2LA:0X8P-1025:0:-1: ++# BZ12701 %*2LA:0X8P-1025:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %2LA:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*2LA:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %2LA:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*2LA:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%2LA:INFINITY:0:-1: ++%*2LA:INFINITY:0:-1: ++%2LA:+NAN():0:-1: ++%*2LA:+NAN():0:-1: ++%2LA:+NAN(09A_Zaz):0:-1: ++%*2LA:+NAN(09A_Zaz):0:-1: ++%2LA:+0X0P0:1:2:0x0: ++%*2LA:+0X0P0:0:2: ++%2LA:+0X0P+0:1:2:0x0: ++%*2LA:+0X0P+0:0:2: ++%2LA:+0X8P-1025:1:2:0x0: ++%*2LA:+0X8P-1025:0:2: ++%2LA:+0X2.3456789ABCDFEP0123:1:2:0x0: ++%*2LA:+0X2.3456789ABCDFEP0123:0:2: ++%2LA:+0X2.3456789ABCDFEP+123:1:2:0x0: ++%*2LA:+0X2.3456789ABCDFEP+123:0:2: ++%2LA:+0X7.FFFFFFFFFFFFCP1021:1:2:0x0: ++%*2LA:+0X7.FFFFFFFFFFFFCP1021:0:2: ++%2LA:+0XF.FFFFFFFFFFFF8P+1020:1:2:0x0: ++%*2LA:+0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2LA:+INFINITY:0:-1: ++%*2LA:+INFINITY:0:-1: ++%3LA::0:-1: ++%*3LA::0:-1: ++%3LA:-INFINITY:0:-1: ++%*3LA:-INFINITY:0:-1: ++# BZ12701 %3LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %3LA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3LA:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3LA:-0X8P-1025:0:-1: ++# BZ12701 %*3LA:-0X8P-1025:0:-1: ++# BZ12701 %3LA:-0X0P+0:0:-1: ++# BZ12701 %*3LA:-0X0P+0:0:-1: ++# BZ12701 %3LA:-0X0P0:0:-1: ++# BZ12701 %*3LA:-0X0P0:0:-1: ++%3LA:-NAN(09A_Zaz):0:-1: ++%*3LA:-NAN(09A_Zaz):0:-1: ++%3LA:-NAN():0:-1: ++%*3LA:-NAN():0:-1: ++%3LA:NAN():1:3:nan: ++%*3LA:NAN():0:3: ++%3LA:NAN(09A_Zaz):1:3:nan: ++%*3LA:NAN(09A_Zaz):0:3: ++%3LA:0X0P0:1:3:0x0: ++%*3LA:0X0P0:0:3: ++%3LA:0X0P+0:1:3:0x0: ++%*3LA:0X0P+0:0:3: ++%3LA:0X8P-1025:1:3:0x1p3: ++%*3LA:0X8P-1025:0:3: ++%3LA:0X2.3456789ABCDFEP0123:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDFEP0123:0:3: ++%3LA:0X2.3456789ABCDFEP+123:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDFEP+123:0:3: ++%3LA:0X7.FFFFFFFFFFFFCP1021:1:3:0x1.cp2: ++%*3LA:0X7.FFFFFFFFFFFFCP1021:0:3: ++%3LA:0XF.FFFFFFFFFFFF8P+1020:1:3:0x1.ep3: ++%*3LA:0XF.FFFFFFFFFFFF8P+1020:0:3: ++%3LA:INFINITY:1:3:inf: ++%*3LA:INFINITY:0:3: ++%3LA:+NAN():0:-1: ++%*3LA:+NAN():0:-1: ++%3LA:+NAN(09A_Zaz):0:-1: ++%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LA:+0X0P0:0:-1: ++# BZ12701 %*3LA:+0X0P0:0:-1: ++# BZ12701 %3LA:+0X0P+0:0:-1: ++# BZ12701 %*3LA:+0X0P+0:0:-1: ++# BZ12701 %3LA:+0X8P-1025:0:-1: ++# BZ12701 %*3LA:+0X8P-1025:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3LA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3LA:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%3LA:+INFINITY:0:-1: ++%*3LA:+INFINITY:0:-1: ++%4LA::0:-1: ++%*4LA::0:-1: ++%4LA:-INFINITY:1:4:-inf: ++%*4LA:-INFINITY:0:4: ++%4LA:-0XF.FFFFFFFFFFFF8P+1020:1:4:-0x1.ep3: ++%*4LA:-0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LA:-0X7.FFFFFFFFFFFFCP1021:1:4:-0x1.cp2: ++%*4LA:-0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LA:-0X2.3456789ABCDFEP+123:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDFEP+123:0:4: ++%4LA:-0X2.3456789ABCDFEP0123:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDFEP0123:0:4: ++%4LA:-0X8P-1025:1:4:-0x1p3: ++%*4LA:-0X8P-1025:0:4: ++%4LA:-0X0P+0:1:4:-0x0: ++%*4LA:-0X0P+0:0:4: ++%4LA:-0X0P0:1:4:-0x0: ++%*4LA:-0X0P0:0:4: ++%4LA:-NAN(09A_Zaz):1:4:-nan: ++%*4LA:-NAN(09A_Zaz):0:4: ++%4LA:-NAN():1:4:-nan: ++%*4LA:-NAN():0:4: ++%4LA:NAN():0:-1: ++%*4LA:NAN():0:-1: ++%4LA:NAN(09A_Zaz):0:-1: ++%*4LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LA:0X0P0:0:-1: ++# BZ12701 %*4LA:0X0P0:0:-1: ++# BZ12701 %4LA:0X0P+0:0:-1: ++# BZ12701 %*4LA:0X0P+0:0:-1: ++# BZ12701 %4LA:0X8P-1025:0:-1: ++# BZ12701 %*4LA:0X8P-1025:0:-1: ++%4LA:0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDFEP0123:0:4: ++%4LA:0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDFEP+123:0:4: ++%4LA:0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4LA:0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LA:0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4LA:0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LA:INFINITY:0:-1: ++%*4LA:INFINITY:0:-1: ++%4LA:+NAN():1:4:nan: ++%*4LA:+NAN():0:4: ++%4LA:+NAN(09A_Zaz):1:4:nan: ++%*4LA:+NAN(09A_Zaz):0:4: ++%4LA:+0X0P0:1:4:0x0: ++%*4LA:+0X0P0:0:4: ++%4LA:+0X0P+0:1:4:0x0: ++%*4LA:+0X0P+0:0:4: ++%4LA:+0X8P-1025:1:4:0x1p3: ++%*4LA:+0X8P-1025:0:4: ++%4LA:+0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDFEP0123:0:4: ++%4LA:+0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDFEP+123:0:4: ++%4LA:+0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4LA:+0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LA:+0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4LA:+0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LA:+INFINITY:1:4:inf: ++%*4LA:+INFINITY:0:4: ++%5LA::0:-1: ++%*5LA::0:-1: ++%5LA:-INFINITY:0:-1: ++%*5LA:-INFINITY:0:-1: ++%5LA:-0XF.FFFFFFFFFFFF8P+1020:1:5:-0x1.ep3: ++%*5LA:-0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LA:-0X7.FFFFFFFFFFFFCP1021:1:5:-0x1.cp2: ++%*5LA:-0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LA:-0X2.3456789ABCDFEP+123:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDFEP+123:0:5: ++%5LA:-0X2.3456789ABCDFEP0123:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDFEP0123:0:5: ++# BZ12701 %5LA:-0X8P-1025:0:-1: ++# BZ12701 %*5LA:-0X8P-1025:0:-1: ++# BZ12701 %5LA:-0X0P+0:0:-1: ++# BZ12701 %*5LA:-0X0P+0:0:-1: ++# BZ12701 %5LA:-0X0P0:0:-1: ++# BZ12701 %*5LA:-0X0P0:0:-1: ++%5LA:-NAN(09A_Zaz):0:-1: ++%*5LA:-NAN(09A_Zaz):0:-1: ++%5LA:-NAN():0:-1: ++%*5LA:-NAN():0:-1: ++%5LA:NAN():1:5:nan: ++%*5LA:NAN():0:5: ++%5LA:NAN(09A_Zaz):0:-1: ++%*5LA:NAN(09A_Zaz):0:-1: ++%5LA:0X0P0:1:5:0x0: ++%*5LA:0X0P0:0:5: ++# BZ12701 %5LA:0X0P+0:0:-1: ++# BZ12701 %*5LA:0X0P+0:0:-1: ++# BZ12701 %5LA:0X8P-1025:0:-1: ++# BZ12701 %*5LA:0X8P-1025:0:-1: ++%5LA:0X2.3456789ABCDFEP0123:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDFEP0123:0:5: ++%5LA:0X2.3456789ABCDFEP+123:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDFEP+123:0:5: ++%5LA:0X7.FFFFFFFFFFFFCP1021:1:5:0x1.fcp2: ++%*5LA:0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LA:0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.fep3: ++%*5LA:0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LA:INFINITY:0:-1: ++%*5LA:INFINITY:0:-1: ++%5LA:+NAN():0:-1: ++%*5LA:+NAN():0:-1: ++%5LA:+NAN(09A_Zaz):0:-1: ++%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA:+0X0P0:0:-1: ++# BZ12701 %*5LA:+0X0P0:0:-1: ++# BZ12701 %5LA:+0X0P+0:0:-1: ++# BZ12701 %*5LA:+0X0P+0:0:-1: ++# BZ12701 %5LA:+0X8P-1025:0:-1: ++# BZ12701 %*5LA:+0X8P-1025:0:-1: ++%5LA:+0X2.3456789ABCDFEP0123:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDFEP0123:0:5: ++%5LA:+0X2.3456789ABCDFEP+123:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDFEP+123:0:5: ++%5LA:+0X7.FFFFFFFFFFFFCP1021:1:5:0x1.cp2: ++%*5LA:+0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LA:+0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.ep3: ++%*5LA:+0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LA:+INFINITY:0:-1: ++%*5LA:+INFINITY:0:-1: ++%6LA::0:-1: ++%*6LA::0:-1: ++%6LA:-INFINITY:0:-1: ++%*6LA:-INFINITY:0:-1: ++%6LA:-0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.fep3: ++%*6LA:-0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LA:-0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.fcp2: ++%*6LA:-0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LA:-0X2.3456789ABCDFEP+123:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDFEP+123:0:6: ++%6LA:-0X2.3456789ABCDFEP0123:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %6LA:-0X8P-1025:0:-1: ++# BZ12701 %*6LA:-0X8P-1025:0:-1: ++# BZ12701 %6LA:-0X0P+0:0:-1: ++# BZ12701 %*6LA:-0X0P+0:0:-1: ++%6LA:-0X0P0:1:6:-0x0: ++%*6LA:-0X0P0:0:6: ++%6LA:-NAN(09A_Zaz):0:-1: ++%*6LA:-NAN(09A_Zaz):0:-1: ++%6LA:-NAN():1:6:-nan: ++%*6LA:-NAN():0:6: ++%6LA:NAN():1:5:nan: ++%*6LA:NAN():0:5: ++%6LA:NAN(09A_Zaz):0:-1: ++%*6LA:NAN(09A_Zaz):0:-1: ++%6LA:0X0P0:1:5:0x0: ++%*6LA:0X0P0:0:5: ++%6LA:0X0P+0:1:6:0x0: ++%*6LA:0X0P+0:0:6: ++%6LA:0X8P-1025:1:6:0x1p2: ++%*6LA:0X8P-1025:0:6: ++%6LA:0X2.3456789ABCDFEP0123:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDFEP0123:0:6: ++%6LA:0X2.3456789ABCDFEP+123:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDFEP+123:0:6: ++%6LA:0X7.FFFFFFFFFFFFCP1021:1:6:0x1.ffcp2: ++%*6LA:0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LA:0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ffep3: ++%*6LA:0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LA:INFINITY:0:-1: ++%*6LA:INFINITY:0:-1: ++%6LA:+NAN():1:6:nan: ++%*6LA:+NAN():0:6: ++%6LA:+NAN(09A_Zaz):0:-1: ++%*6LA:+NAN(09A_Zaz):0:-1: ++%6LA:+0X0P0:1:6:0x0: ++%*6LA:+0X0P0:0:6: ++# BZ12701 %6LA:+0X0P+0:0:-1: ++# BZ12701 %*6LA:+0X0P+0:0:-1: ++# BZ12701 %6LA:+0X8P-1025:0:-1: ++# BZ12701 %*6LA:+0X8P-1025:0:-1: ++%6LA:+0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDFEP0123:0:6: ++%6LA:+0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDFEP+123:0:6: ++%6LA:+0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*6LA:+0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LA:+0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*6LA:+0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LA:+INFINITY:0:-1: ++%*6LA:+INFINITY:0:-1: ++%20LA::0:-1: ++%*20LA::0:-1: ++%20LA:-INFINITY:1:9:-inf: ++%*20LA:-INFINITY:0:9: ++# BZ12701 %20LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20LA:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20LA:-0X7.FFFFFFFFFFFFCP1021:1:20:-0x1.fffffffffffffp3: ++%*20LA:-0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20LA:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20LA:-0X2.3456789ABCDFEP+123:0:-1: ++%20LA:-0X2.3456789ABCDFEP0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20LA:-0X2.3456789ABCDFEP0123:0:20: ++%20LA:-0X8P-1025:1:10:-0x1p-1022: ++%*20LA:-0X8P-1025:0:10: ++%20LA:-0X0P+0:1:7:-0x0: ++%*20LA:-0X0P+0:0:7: ++%20LA:-0X0P0:1:6:-0x0: ++%*20LA:-0X0P0:0:6: ++%20LA:-NAN(09A_Zaz):1:13:-nan: ++%*20LA:-NAN(09A_Zaz):0:13: ++%20LA:-NAN():1:6:-nan: ++%*20LA:-NAN():0:6: ++%20LA:NAN():1:5:nan: ++%*20LA:NAN():0:5: ++%20LA:NAN(09A_Zaz):1:12:nan: ++%*20LA:NAN(09A_Zaz):0:12: ++%20LA:0X0P0:1:5:0x0: ++%*20LA:0X0P0:0:5: ++%20LA:0X0P+0:1:6:0x0: ++%*20LA:0X0P+0:0:6: ++%20LA:0X8P-1025:1:9:0x1p-1022: ++%*20LA:0X8P-1025:0:9: ++%20LA:0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20LA:0X2.3456789ABCDFEP0123:0:20: ++%20LA:0X2.3456789ABCDFEP+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20LA:0X2.3456789ABCDFEP+123:0:20: ++%20LA:0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp12: ++%*20LA:0X7.FFFFFFFFFFFFCP1021:0:20: ++%20LA:0XF.FFFFFFFFFFFF8P+1020:1:20:0x1.fffffffffffffp4: ++%*20LA:0XF.FFFFFFFFFFFF8P+1020:0:20: ++%20LA:INFINITY:1:8:inf: ++%*20LA:INFINITY:0:8: ++%20LA:+NAN():1:6:nan: ++%*20LA:+NAN():0:6: ++%20LA:+NAN(09A_Zaz):1:13:nan: ++%*20LA:+NAN(09A_Zaz):0:13: ++%20LA:+0X0P0:1:6:0x0: ++%*20LA:+0X0P0:0:6: ++%20LA:+0X0P+0:1:7:0x0: ++%*20LA:+0X0P+0:0:7: ++%20LA:+0X8P-1025:1:10:0x1p-1022: ++%*20LA:+0X8P-1025:0:10: ++%20LA:+0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20LA:+0X2.3456789ABCDFEP0123:0:20: ++# BZ12701 %20LA:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20LA:+0X2.3456789ABCDFEP+123:0:-1: ++%20LA:+0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp3: ++%*20LA:+0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20LA:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20LA:+INFINITY:1:9:inf: ++%*20LA:+INFINITY:0:9: ++%32LA::0:-1: ++%*32LA::0:-1: ++%32LA:-INFINITY:1:9:-inf: ++%*32LA:-INFINITY:0:9: ++%32LA:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*32LA:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LA:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*32LA:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LA:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32LA:-0X2.3456789ABCDFEP+123:0:23: ++%32LA:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32LA:-0X2.3456789ABCDFEP0123:0:23: ++%32LA:-0X8P-1025:1:10:-0x1p-1022: ++%*32LA:-0X8P-1025:0:10: ++%32LA:-0X0P+0:1:7:-0x0: ++%*32LA:-0X0P+0:0:7: ++%32LA:-0X0P0:1:6:-0x0: ++%*32LA:-0X0P0:0:6: ++%32LA:-NAN(09A_Zaz):1:13:-nan: ++%*32LA:-NAN(09A_Zaz):0:13: ++%32LA:-NAN():1:6:-nan: ++%*32LA:-NAN():0:6: ++%32LA:NAN():1:5:nan: ++%*32LA:NAN():0:5: ++%32LA:NAN(09A_Zaz):1:12:nan: ++%*32LA:NAN(09A_Zaz):0:12: ++%32LA:0X0P0:1:5:0x0: ++%*32LA:0X0P0:0:5: ++%32LA:0X0P+0:1:6:0x0: ++%*32LA:0X0P+0:0:6: ++%32LA:0X8P-1025:1:9:0x1p-1022: ++%*32LA:0X8P-1025:0:9: ++%32LA:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32LA:0X2.3456789ABCDFEP0123:0:22: ++%32LA:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32LA:0X2.3456789ABCDFEP+123:0:22: ++%32LA:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*32LA:0X7.FFFFFFFFFFFFCP1021:0:22: ++%32LA:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*32LA:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%32LA:INFINITY:1:8:inf: ++%*32LA:INFINITY:0:8: ++%32LA:+NAN():1:6:nan: ++%*32LA:+NAN():0:6: ++%32LA:+NAN(09A_Zaz):1:13:nan: ++%*32LA:+NAN(09A_Zaz):0:13: ++%32LA:+0X0P0:1:6:0x0: ++%*32LA:+0X0P0:0:6: ++%32LA:+0X0P+0:1:7:0x0: ++%*32LA:+0X0P+0:0:7: ++%32LA:+0X8P-1025:1:10:0x1p-1022: ++%*32LA:+0X8P-1025:0:10: ++%32LA:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LA:+0X2.3456789ABCDFEP0123:0:23: ++%32LA:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LA:+0X2.3456789ABCDFEP+123:0:23: ++%32LA:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32LA:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LA:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32LA:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LA:+INFINITY:1:9:inf: ++%*32LA:+INFINITY:0:9: ++%5LA: :0:-1: ++%*5LA: :0:-1: ++%5LA: -INFINITY:0:-1: ++%*5LA: -INFINITY:0:-1: ++%5LA: -0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.ep3: ++%*5LA: -0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LA: -0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.cp2: ++%*5LA: -0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LA: -0X2.3456789ABCDFEP+123:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDFEP+123:0:6: ++%5LA: -0X2.3456789ABCDFEP0123:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %5LA: -0X8P-1025:0:-1: ++# BZ12701 %*5LA: -0X8P-1025:0:-1: ++# BZ12701 %5LA: -0X0P+0:0:-1: ++# BZ12701 %*5LA: -0X0P+0:0:-1: ++# BZ12701 %5LA: -0X0P0:0:-1: ++# BZ12701 %*5LA: -0X0P0:0:-1: ++%5LA: -NAN(09A_Zaz):0:-1: ++%*5LA: -NAN(09A_Zaz):0:-1: ++%5LA: -NAN():0:-1: ++%*5LA: -NAN():0:-1: ++%5LA: NAN():1:6:nan: ++%*5LA: NAN():0:6: ++%5LA: NAN(09A_Zaz):0:-1: ++%*5LA: NAN(09A_Zaz):0:-1: ++%5LA: 0X0P0:1:6:0x0: ++%*5LA: 0X0P0:0:6: ++# BZ12701 %5LA: 0X0P+0:0:-1: ++# BZ12701 %*5LA: 0X0P+0:0:-1: ++# BZ12701 %5LA: 0X8P-1025:0:-1: ++# BZ12701 %*5LA: 0X8P-1025:0:-1: ++%5LA: 0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDFEP0123:0:6: ++%5LA: 0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDFEP+123:0:6: ++%5LA: 0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*5LA: 0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LA: 0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*5LA: 0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LA: INFINITY:0:-1: ++%*5LA: INFINITY:0:-1: ++%5LA: +NAN():0:-1: ++%*5LA: +NAN():0:-1: ++%5LA: +NAN(09A_Zaz):0:-1: ++%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA: +0X0P0:0:-1: ++# BZ12701 %*5LA: +0X0P0:0:-1: ++# BZ12701 %5LA: +0X0P+0:0:-1: ++# BZ12701 %*5LA: +0X0P+0:0:-1: ++# BZ12701 %5LA: +0X8P-1025:0:-1: ++# BZ12701 %*5LA: +0X8P-1025:0:-1: ++%5LA: +0X2.3456789ABCDFEP0123:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDFEP0123:0:6: ++%5LA: +0X2.3456789ABCDFEP+123:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDFEP+123:0:6: ++%5LA: +0X7.FFFFFFFFFFFFCP1021:1:6:0x1.cp2: ++%*5LA: +0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LA: +0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ep3: ++%*5LA: +0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LA: +INFINITY:0:-1: ++%*5LA: +INFINITY:0:-1: ++%32LA: :0:-1: ++%*32LA: :0:-1: ++%32LA: -INFINITY:1:10:-inf: ++%*32LA: -INFINITY:0:10: ++%32LA: -0XF.FFFFFFFFFFFF8P+1020:1:25:-0x1.fffffffffffffp1023: ++%*32LA: -0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32LA: -0X7.FFFFFFFFFFFFCP1021:1:24:-0x1.fffffffffffffp1023: ++%*32LA: -0X7.FFFFFFFFFFFFCP1021:0:24: ++%32LA: -0X2.3456789ABCDFEP+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32LA: -0X2.3456789ABCDFEP+123:0:24: ++%32LA: -0X2.3456789ABCDFEP0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32LA: -0X2.3456789ABCDFEP0123:0:24: ++%32LA: -0X8P-1025:1:11:-0x1p-1022: ++%*32LA: -0X8P-1025:0:11: ++%32LA: -0X0P+0:1:8:-0x0: ++%*32LA: -0X0P+0:0:8: ++%32LA: -0X0P0:1:7:-0x0: ++%*32LA: -0X0P0:0:7: ++%32LA: -NAN(09A_Zaz):1:14:-nan: ++%*32LA: -NAN(09A_Zaz):0:14: ++%32LA: -NAN():1:7:-nan: ++%*32LA: -NAN():0:7: ++%32LA: NAN():1:6:nan: ++%*32LA: NAN():0:6: ++%32LA: NAN(09A_Zaz):1:13:nan: ++%*32LA: NAN(09A_Zaz):0:13: ++%32LA: 0X0P0:1:6:0x0: ++%*32LA: 0X0P0:0:6: ++%32LA: 0X0P+0:1:7:0x0: ++%*32LA: 0X0P+0:0:7: ++%32LA: 0X8P-1025:1:10:0x1p-1022: ++%*32LA: 0X8P-1025:0:10: ++%32LA: 0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LA: 0X2.3456789ABCDFEP0123:0:23: ++%32LA: 0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LA: 0X2.3456789ABCDFEP+123:0:23: ++%32LA: 0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32LA: 0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LA: 0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32LA: 0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LA: INFINITY:1:9:inf: ++%*32LA: INFINITY:0:9: ++%32LA: +NAN():1:7:nan: ++%*32LA: +NAN():0:7: ++%32LA: +NAN(09A_Zaz):1:14:nan: ++%*32LA: +NAN(09A_Zaz):0:14: ++%32LA: +0X0P0:1:7:0x0: ++%*32LA: +0X0P0:0:7: ++%32LA: +0X0P+0:1:8:0x0: ++%*32LA: +0X0P+0:0:8: ++%32LA: +0X8P-1025:1:11:0x1p-1022: ++%*32LA: +0X8P-1025:0:11: ++%32LA: +0X2.3456789ABCDFEP0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32LA: +0X2.3456789ABCDFEP0123:0:24: ++%32LA: +0X2.3456789ABCDFEP+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32LA: +0X2.3456789ABCDFEP+123:0:24: ++%32LA: +0X7.FFFFFFFFFFFFCP1021:1:24:0x1.fffffffffffffp1023: ++%*32LA: +0X7.FFFFFFFFFFFFCP1021:0:24: ++%32LA: +0XF.FFFFFFFFFFFF8P+1020:1:25:0x1.fffffffffffffp1023: ++%*32LA: +0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32LA: +INFINITY:1:10:inf: ++%*32LA: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input +new file mode 100644 +index 0000000000000000..c510f086919bd135 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input +@@ -0,0 +1,558 @@ ++%Le::0:-1: ++%*Le::0:-1: ++%Le:-infinity:1:9:-inf: ++%*Le:-infinity:0:9: ++%Le:-1.79769313486231570814527423731704357e+308:1:43:-0x1.fffffffffffffp1023: ++%*Le:-1.79769313486231570814527423731704357e+308:0:43: ++%Le:-1.79769313486231570814527423731704357e308:1:42:-0x1.fffffffffffffp1023: ++%*Le:-1.79769313486231570814527423731704357e308:0:42: ++%Le:-2.3441674165664682593913711430784253952e+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*Le:-2.3441674165664682593913711430784253952e+37:0:44: ++%Le:-2.3441674165664682593913711430784253952e037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*Le:-2.3441674165664682593913711430784253952e037:0:44: ++%Le:-2.22507385850720138309023271733240406e-308:1:43:-0x1p-1022: ++%*Le:-2.22507385850720138309023271733240406e-308:0:43: ++%Le:-0e+0:1:5:-0x0: ++%*Le:-0e+0:0:5: ++%Le:-0e0:1:4:-0x0: ++%*Le:-0e0:0:4: ++%Le:-nan(09A_Zaz):1:13:-nan: ++%*Le:-nan(09A_Zaz):0:13: ++%Le:-nan():1:6:-nan: ++%*Le:-nan():0:6: ++%Le:nan():1:5:nan: ++%*Le:nan():0:5: ++%Le:nan(09A_Zaz):1:12:nan: ++%*Le:nan(09A_Zaz):0:12: ++%Le:0e0:1:3:0x0: ++%*Le:0e0:0:3: ++%Le:0e+0:1:4:0x0: ++%*Le:0e+0:0:4: ++%Le:2.22507385850720138309023271733240406e-308:1:42:0x1p-1022: ++%*Le:2.22507385850720138309023271733240406e-308:0:42: ++%Le:2.3441674165664682593913711430784253952e037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*Le:2.3441674165664682593913711430784253952e037:0:43: ++%Le:2.3441674165664682593913711430784253952e+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*Le:2.3441674165664682593913711430784253952e+37:0:43: ++%Le:1.79769313486231570814527423731704357e308:1:41:0x1.fffffffffffffp1023: ++%*Le:1.79769313486231570814527423731704357e308:0:41: ++%Le:1.79769313486231570814527423731704357e+308:1:42:0x1.fffffffffffffp1023: ++%*Le:1.79769313486231570814527423731704357e+308:0:42: ++%Le:infinity:1:8:inf: ++%*Le:infinity:0:8: ++%Le:+nan():1:6:nan: ++%*Le:+nan():0:6: ++%Le:+nan(09A_Zaz):1:13:nan: ++%*Le:+nan(09A_Zaz):0:13: ++%Le:+0e0:1:4:0x0: ++%*Le:+0e0:0:4: ++%Le:+0e+0:1:5:0x0: ++%*Le:+0e+0:0:5: ++%Le:+2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*Le:+2.22507385850720138309023271733240406e-308:0:43: ++%Le:+2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*Le:+2.3441674165664682593913711430784253952e037:0:44: ++%Le:+2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*Le:+2.3441674165664682593913711430784253952e+37:0:44: ++%Le:+1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*Le:+1.79769313486231570814527423731704357e308:0:42: ++%Le:+1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*Le:+1.79769313486231570814527423731704357e+308:0:43: ++%Le:+infinity:1:9:inf: ++%*Le:+infinity:0:9: ++%1Le::0:-1: ++%*1Le::0:-1: ++%1Le:-infinity:0:-1: ++%*1Le:-infinity:0:-1: ++%1Le:-1.79769313486231570814527423731704357e+308:0:-1: ++%*1Le:-1.79769313486231570814527423731704357e+308:0:-1: ++%1Le:-1.79769313486231570814527423731704357e308:0:-1: ++%*1Le:-1.79769313486231570814527423731704357e308:0:-1: ++%1Le:-2.3441674165664682593913711430784253952e+37:0:-1: ++%*1Le:-2.3441674165664682593913711430784253952e+37:0:-1: ++%1Le:-2.3441674165664682593913711430784253952e037:0:-1: ++%*1Le:-2.3441674165664682593913711430784253952e037:0:-1: ++%1Le:-2.22507385850720138309023271733240406e-308:0:-1: ++%*1Le:-2.22507385850720138309023271733240406e-308:0:-1: ++%1Le:-0e+0:0:-1: ++%*1Le:-0e+0:0:-1: ++%1Le:-0e0:0:-1: ++%*1Le:-0e0:0:-1: ++%1Le:-nan(09A_Zaz):0:-1: ++%*1Le:-nan(09A_Zaz):0:-1: ++%1Le:-nan():0:-1: ++%*1Le:-nan():0:-1: ++%1Le:nan():0:-1: ++%*1Le:nan():0:-1: ++%1Le:nan(09A_Zaz):0:-1: ++%*1Le:nan(09A_Zaz):0:-1: ++%1Le:0e0:1:1:0x0: ++%*1Le:0e0:0:1: ++%1Le:0e+0:1:1:0x0: ++%*1Le:0e+0:0:1: ++%1Le:2.22507385850720138309023271733240406e-308:1:1:0x1p1: ++%*1Le:2.22507385850720138309023271733240406e-308:0:1: ++%1Le:2.3441674165664682593913711430784253952e037:1:1:0x1p1: ++%*1Le:2.3441674165664682593913711430784253952e037:0:1: ++%1Le:2.3441674165664682593913711430784253952e+37:1:1:0x1p1: ++%*1Le:2.3441674165664682593913711430784253952e+37:0:1: ++%1Le:1.79769313486231570814527423731704357e308:1:1:0x1: ++%*1Le:1.79769313486231570814527423731704357e308:0:1: ++%1Le:1.79769313486231570814527423731704357e+308:1:1:0x1: ++%*1Le:1.79769313486231570814527423731704357e+308:0:1: ++%1Le:infinity:0:-1: ++%*1Le:infinity:0:-1: ++%1Le:+nan():0:-1: ++%*1Le:+nan():0:-1: ++%1Le:+nan(09A_Zaz):0:-1: ++%*1Le:+nan(09A_Zaz):0:-1: ++%1Le:+0e0:0:-1: ++%*1Le:+0e0:0:-1: ++%1Le:+0e+0:0:-1: ++%*1Le:+0e+0:0:-1: ++%1Le:+2.22507385850720138309023271733240406e-308:0:-1: ++%*1Le:+2.22507385850720138309023271733240406e-308:0:-1: ++%1Le:+2.3441674165664682593913711430784253952e037:0:-1: ++%*1Le:+2.3441674165664682593913711430784253952e037:0:-1: ++%1Le:+2.3441674165664682593913711430784253952e+37:0:-1: ++%*1Le:+2.3441674165664682593913711430784253952e+37:0:-1: ++%1Le:+1.79769313486231570814527423731704357e308:0:-1: ++%*1Le:+1.79769313486231570814527423731704357e308:0:-1: ++%1Le:+1.79769313486231570814527423731704357e+308:0:-1: ++%*1Le:+1.79769313486231570814527423731704357e+308:0:-1: ++%1Le:+infinity:0:-1: ++%*1Le:+infinity:0:-1: ++%2Le::0:-1: ++%*2Le::0:-1: ++%2Le:-infinity:0:-1: ++%*2Le:-infinity:0:-1: ++%2Le:-1.79769313486231570814527423731704357e+308:1:2:-0x1: ++%*2Le:-1.79769313486231570814527423731704357e+308:0:2: ++%2Le:-1.79769313486231570814527423731704357e308:1:2:-0x1: ++%*2Le:-1.79769313486231570814527423731704357e308:0:2: ++%2Le:-2.3441674165664682593913711430784253952e+37:1:2:-0x1p1: ++%*2Le:-2.3441674165664682593913711430784253952e+37:0:2: ++%2Le:-2.3441674165664682593913711430784253952e037:1:2:-0x1p1: ++%*2Le:-2.3441674165664682593913711430784253952e037:0:2: ++%2Le:-2.22507385850720138309023271733240406e-308:1:2:-0x1p1: ++%*2Le:-2.22507385850720138309023271733240406e-308:0:2: ++%2Le:-0e+0:1:2:-0x0: ++%*2Le:-0e+0:0:2: ++%2Le:-0e0:1:2:-0x0: ++%*2Le:-0e0:0:2: ++%2Le:-nan(09A_Zaz):0:-1: ++%*2Le:-nan(09A_Zaz):0:-1: ++%2Le:-nan():0:-1: ++%*2Le:-nan():0:-1: ++%2Le:nan():0:-1: ++%*2Le:nan():0:-1: ++%2Le:nan(09A_Zaz):0:-1: ++%*2Le:nan(09A_Zaz):0:-1: ++# BZ12701 %2Le:0e0:0:-1: ++# BZ12701 %*2Le:0e0:0:-1: ++# BZ12701 %2Le:0e+0:0:-1: ++# BZ12701 %*2Le:0e+0:0:-1: ++%2Le:2.22507385850720138309023271733240406e-308:1:2:0x1p1: ++%*2Le:2.22507385850720138309023271733240406e-308:0:2: ++%2Le:2.3441674165664682593913711430784253952e037:1:2:0x1p1: ++%*2Le:2.3441674165664682593913711430784253952e037:0:2: ++%2Le:2.3441674165664682593913711430784253952e+37:1:2:0x1p1: ++%*2Le:2.3441674165664682593913711430784253952e+37:0:2: ++%2Le:1.79769313486231570814527423731704357e308:1:2:0x1: ++%*2Le:1.79769313486231570814527423731704357e308:0:2: ++%2Le:1.79769313486231570814527423731704357e+308:1:2:0x1: ++%*2Le:1.79769313486231570814527423731704357e+308:0:2: ++%2Le:infinity:0:-1: ++%*2Le:infinity:0:-1: ++%2Le:+nan():0:-1: ++%*2Le:+nan():0:-1: ++%2Le:+nan(09A_Zaz):0:-1: ++%*2Le:+nan(09A_Zaz):0:-1: ++%2Le:+0e0:1:2:0x0: ++%*2Le:+0e0:0:2: ++%2Le:+0e+0:1:2:0x0: ++%*2Le:+0e+0:0:2: ++%2Le:+2.22507385850720138309023271733240406e-308:1:2:0x1p1: ++%*2Le:+2.22507385850720138309023271733240406e-308:0:2: ++%2Le:+2.3441674165664682593913711430784253952e037:1:2:0x1p1: ++%*2Le:+2.3441674165664682593913711430784253952e037:0:2: ++%2Le:+2.3441674165664682593913711430784253952e+37:1:2:0x1p1: ++%*2Le:+2.3441674165664682593913711430784253952e+37:0:2: ++%2Le:+1.79769313486231570814527423731704357e308:1:2:0x1: ++%*2Le:+1.79769313486231570814527423731704357e308:0:2: ++%2Le:+1.79769313486231570814527423731704357e+308:1:2:0x1: ++%*2Le:+1.79769313486231570814527423731704357e+308:0:2: ++%2Le:+infinity:0:-1: ++%*2Le:+infinity:0:-1: ++%3Le::0:-1: ++%*3Le::0:-1: ++%3Le:-infinity:0:-1: ++%*3Le:-infinity:0:-1: ++%3Le:-1.79769313486231570814527423731704357e+308:1:3:-0x1: ++%*3Le:-1.79769313486231570814527423731704357e+308:0:3: ++%3Le:-1.79769313486231570814527423731704357e308:1:3:-0x1: ++%*3Le:-1.79769313486231570814527423731704357e308:0:3: ++%3Le:-2.3441674165664682593913711430784253952e+37:1:3:-0x1p1: ++%*3Le:-2.3441674165664682593913711430784253952e+37:0:3: ++%3Le:-2.3441674165664682593913711430784253952e037:1:3:-0x1p1: ++%*3Le:-2.3441674165664682593913711430784253952e037:0:3: ++%3Le:-2.22507385850720138309023271733240406e-308:1:3:-0x1p1: ++%*3Le:-2.22507385850720138309023271733240406e-308:0:3: ++# BZ12701 %3Le:-0e+0:0:-1: ++# BZ12701 %*3Le:-0e+0:0:-1: ++# BZ12701 %3Le:-0e0:0:-1: ++# BZ12701 %*3Le:-0e0:0:-1: ++%3Le:-nan(09A_Zaz):0:-1: ++%*3Le:-nan(09A_Zaz):0:-1: ++%3Le:-nan():0:-1: ++%*3Le:-nan():0:-1: ++%3Le:nan():1:3:nan: ++%*3Le:nan():0:3: ++%3Le:nan(09A_Zaz):1:3:nan: ++%*3Le:nan(09A_Zaz):0:3: ++%3Le:0e0:1:3:0x0: ++%*3Le:0e0:0:3: ++# BZ12701 %3Le:0e+0:0:-1: ++# BZ12701 %*3Le:0e+0:0:-1: ++%3Le:2.22507385850720138309023271733240406e-308:1:3:0x1.199999999999ap1: ++%*3Le:2.22507385850720138309023271733240406e-308:0:3: ++%3Le:2.3441674165664682593913711430784253952e037:1:3:0x1.2666666666666p1: ++%*3Le:2.3441674165664682593913711430784253952e037:0:3: ++%3Le:2.3441674165664682593913711430784253952e+37:1:3:0x1.2666666666666p1: ++%*3Le:2.3441674165664682593913711430784253952e+37:0:3: ++%3Le:1.79769313486231570814527423731704357e308:1:3:0x1.b333333333333: ++%*3Le:1.79769313486231570814527423731704357e308:0:3: ++%3Le:1.79769313486231570814527423731704357e+308:1:3:0x1.b333333333333: ++%*3Le:1.79769313486231570814527423731704357e+308:0:3: ++%3Le:infinity:1:3:inf: ++%*3Le:infinity:0:3: ++%3Le:+nan():0:-1: ++%*3Le:+nan():0:-1: ++%3Le:+nan(09A_Zaz):0:-1: ++%*3Le:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Le:+0e0:0:-1: ++# BZ12701 %*3Le:+0e0:0:-1: ++# BZ12701 %3Le:+0e+0:0:-1: ++# BZ12701 %*3Le:+0e+0:0:-1: ++%3Le:+2.22507385850720138309023271733240406e-308:1:3:0x1p1: ++%*3Le:+2.22507385850720138309023271733240406e-308:0:3: ++%3Le:+2.3441674165664682593913711430784253952e037:1:3:0x1p1: ++%*3Le:+2.3441674165664682593913711430784253952e037:0:3: ++%3Le:+2.3441674165664682593913711430784253952e+37:1:3:0x1p1: ++%*3Le:+2.3441674165664682593913711430784253952e+37:0:3: ++%3Le:+1.79769313486231570814527423731704357e308:1:3:0x1: ++%*3Le:+1.79769313486231570814527423731704357e308:0:3: ++%3Le:+1.79769313486231570814527423731704357e+308:1:3:0x1: ++%*3Le:+1.79769313486231570814527423731704357e+308:0:3: ++%3Le:+infinity:0:-1: ++%*3Le:+infinity:0:-1: ++%4Le::0:-1: ++%*4Le::0:-1: ++%4Le:-infinity:1:4:-inf: ++%*4Le:-infinity:0:4: ++%4Le:-1.79769313486231570814527423731704357e+308:1:4:-0x1.b333333333333: ++%*4Le:-1.79769313486231570814527423731704357e+308:0:4: ++%4Le:-1.79769313486231570814527423731704357e308:1:4:-0x1.b333333333333: ++%*4Le:-1.79769313486231570814527423731704357e308:0:4: ++%4Le:-2.3441674165664682593913711430784253952e+37:1:4:-0x1.2666666666666p1: ++%*4Le:-2.3441674165664682593913711430784253952e+37:0:4: ++%4Le:-2.3441674165664682593913711430784253952e037:1:4:-0x1.2666666666666p1: ++%*4Le:-2.3441674165664682593913711430784253952e037:0:4: ++%4Le:-2.22507385850720138309023271733240406e-308:1:4:-0x1.199999999999ap1: ++%*4Le:-2.22507385850720138309023271733240406e-308:0:4: ++# BZ12701 %4Le:-0e+0:0:-1: ++# BZ12701 %*4Le:-0e+0:0:-1: ++%4Le:-0e0:1:4:-0x0: ++%*4Le:-0e0:0:4: ++%4Le:-nan(09A_Zaz):1:4:-nan: ++%*4Le:-nan(09A_Zaz):0:4: ++%4Le:-nan():1:4:-nan: ++%*4Le:-nan():0:4: ++%4Le:nan():0:-1: ++%*4Le:nan():0:-1: ++%4Le:nan(09A_Zaz):0:-1: ++%*4Le:nan(09A_Zaz):0:-1: ++%4Le:0e0:1:3:0x0: ++%*4Le:0e0:0:3: ++%4Le:0e+0:1:4:0x0: ++%*4Le:0e+0:0:4: ++%4Le:2.22507385850720138309023271733240406e-308:1:4:0x1.1c28f5c28f5c3p1: ++%*4Le:2.22507385850720138309023271733240406e-308:0:4: ++%4Le:2.3441674165664682593913711430784253952e037:1:4:0x1.2b851eb851eb8p1: ++%*4Le:2.3441674165664682593913711430784253952e037:0:4: ++%4Le:2.3441674165664682593913711430784253952e+37:1:4:0x1.2b851eb851eb8p1: ++%*4Le:2.3441674165664682593913711430784253952e+37:0:4: ++%4Le:1.79769313486231570814527423731704357e308:1:4:0x1.ca3d70a3d70a4: ++%*4Le:1.79769313486231570814527423731704357e308:0:4: ++%4Le:1.79769313486231570814527423731704357e+308:1:4:0x1.ca3d70a3d70a4: ++%*4Le:1.79769313486231570814527423731704357e+308:0:4: ++%4Le:infinity:0:-1: ++%*4Le:infinity:0:-1: ++%4Le:+nan():1:4:nan: ++%*4Le:+nan():0:4: ++%4Le:+nan(09A_Zaz):1:4:nan: ++%*4Le:+nan(09A_Zaz):0:4: ++%4Le:+0e0:1:4:0x0: ++%*4Le:+0e0:0:4: ++# BZ12701 %4Le:+0e+0:0:-1: ++# BZ12701 %*4Le:+0e+0:0:-1: ++%4Le:+2.22507385850720138309023271733240406e-308:1:4:0x1.199999999999ap1: ++%*4Le:+2.22507385850720138309023271733240406e-308:0:4: ++%4Le:+2.3441674165664682593913711430784253952e037:1:4:0x1.2666666666666p1: ++%*4Le:+2.3441674165664682593913711430784253952e037:0:4: ++%4Le:+2.3441674165664682593913711430784253952e+37:1:4:0x1.2666666666666p1: ++%*4Le:+2.3441674165664682593913711430784253952e+37:0:4: ++%4Le:+1.79769313486231570814527423731704357e308:1:4:0x1.b333333333333: ++%*4Le:+1.79769313486231570814527423731704357e308:0:4: ++%4Le:+1.79769313486231570814527423731704357e+308:1:4:0x1.b333333333333: ++%*4Le:+1.79769313486231570814527423731704357e+308:0:4: ++%4Le:+infinity:1:4:inf: ++%*4Le:+infinity:0:4: ++%40Le::0:-1: ++%*40Le::0:-1: ++%40Le:-infinity:1:9:-inf: ++%*40Le:-infinity:0:9: ++# BZ12701 %40Le:-1.79769313486231570814527423731704357e+308:0:-1: ++# BZ12701 %*40Le:-1.79769313486231570814527423731704357e+308:0:-1: ++%40Le:-1.79769313486231570814527423731704357e308:1:40:-0x1.c16c5c5253574p10: ++%*40Le:-1.79769313486231570814527423731704357e308:0:40: ++%40Le:-2.3441674165664682593913711430784253952e+37:1:40:-0x1.2c0dad8b403aap1: ++%*40Le:-2.3441674165664682593913711430784253952e+37:0:40: ++%40Le:-2.3441674165664682593913711430784253952e037:1:40:-0x1.2c0dad8b403aap1: ++%*40Le:-2.3441674165664682593913711430784253952e037:0:40: ++# BZ12701 %40Le:-2.22507385850720138309023271733240406e-308:0:-1: ++# BZ12701 %*40Le:-2.22507385850720138309023271733240406e-308:0:-1: ++%40Le:-0e+0:1:5:-0x0: ++%*40Le:-0e+0:0:5: ++%40Le:-0e0:1:4:-0x0: ++%*40Le:-0e0:0:4: ++%40Le:-nan(09A_Zaz):1:13:-nan: ++%*40Le:-nan(09A_Zaz):0:13: ++%40Le:-nan():1:6:-nan: ++%*40Le:-nan():0:6: ++%40Le:nan():1:5:nan: ++%*40Le:nan():0:5: ++%40Le:nan(09A_Zaz):1:12:nan: ++%*40Le:nan(09A_Zaz):0:12: ++%40Le:0e0:1:3:0x0: ++%*40Le:0e0:0:3: ++%40Le:0e+0:1:4:0x0: ++%*40Le:0e+0:0:4: ++%40Le:2.22507385850720138309023271733240406e-308:1:40:0x1.23a516e82d9bap-9: ++%*40Le:2.22507385850720138309023271733240406e-308:0:40: ++# BZ12701 %40Le:2.3441674165664682593913711430784253952e037:0:-1: ++# BZ12701 %*40Le:2.3441674165664682593913711430784253952e037:0:-1: ++# BZ12701 %40Le:2.3441674165664682593913711430784253952e+37:0:-1: ++# BZ12701 %*40Le:2.3441674165664682593913711430784253952e+37:0:-1: ++%40Le:1.79769313486231570814527423731704357e308:1:40:0x1.6b0a8e891ffffp100: ++%*40Le:1.79769313486231570814527423731704357e308:0:40: ++%40Le:1.79769313486231570814527423731704357e+308:1:40:0x1.c16c5c5253574p10: ++%*40Le:1.79769313486231570814527423731704357e+308:0:40: ++%40Le:infinity:1:8:inf: ++%*40Le:infinity:0:8: ++%40Le:+nan():1:6:nan: ++%*40Le:+nan():0:6: ++%40Le:+nan(09A_Zaz):1:13:nan: ++%*40Le:+nan(09A_Zaz):0:13: ++%40Le:+0e0:1:4:0x0: ++%*40Le:+0e0:0:4: ++%40Le:+0e+0:1:5:0x0: ++%*40Le:+0e+0:0:5: ++# BZ12701 %40Le:+2.22507385850720138309023271733240406e-308:0:-1: ++# BZ12701 %*40Le:+2.22507385850720138309023271733240406e-308:0:-1: ++%40Le:+2.3441674165664682593913711430784253952e037:1:40:0x1.2c0dad8b403aap1: ++%*40Le:+2.3441674165664682593913711430784253952e037:0:40: ++%40Le:+2.3441674165664682593913711430784253952e+37:1:40:0x1.2c0dad8b403aap1: ++%*40Le:+2.3441674165664682593913711430784253952e+37:0:40: ++%40Le:+1.79769313486231570814527423731704357e308:1:40:0x1.c16c5c5253574p10: ++%*40Le:+1.79769313486231570814527423731704357e308:0:40: ++# BZ12701 %40Le:+1.79769313486231570814527423731704357e+308:0:-1: ++# BZ12701 %*40Le:+1.79769313486231570814527423731704357e+308:0:-1: ++%40Le:+infinity:1:9:inf: ++%*40Le:+infinity:0:9: ++%48Le::0:-1: ++%*48Le::0:-1: ++%48Le:-infinity:1:9:-inf: ++%*48Le:-infinity:0:9: ++%48Le:-1.79769313486231570814527423731704357e+308:1:43:-0x1.fffffffffffffp1023: ++%*48Le:-1.79769313486231570814527423731704357e+308:0:43: ++%48Le:-1.79769313486231570814527423731704357e308:1:42:-0x1.fffffffffffffp1023: ++%*48Le:-1.79769313486231570814527423731704357e308:0:42: ++%48Le:-2.3441674165664682593913711430784253952e+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48Le:-2.3441674165664682593913711430784253952e+37:0:44: ++%48Le:-2.3441674165664682593913711430784253952e037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48Le:-2.3441674165664682593913711430784253952e037:0:44: ++%48Le:-2.22507385850720138309023271733240406e-308:1:43:-0x1p-1022: ++%*48Le:-2.22507385850720138309023271733240406e-308:0:43: ++%48Le:-0e+0:1:5:-0x0: ++%*48Le:-0e+0:0:5: ++%48Le:-0e0:1:4:-0x0: ++%*48Le:-0e0:0:4: ++%48Le:-nan(09A_Zaz):1:13:-nan: ++%*48Le:-nan(09A_Zaz):0:13: ++%48Le:-nan():1:6:-nan: ++%*48Le:-nan():0:6: ++%48Le:nan():1:5:nan: ++%*48Le:nan():0:5: ++%48Le:nan(09A_Zaz):1:12:nan: ++%*48Le:nan(09A_Zaz):0:12: ++%48Le:0e0:1:3:0x0: ++%*48Le:0e0:0:3: ++%48Le:0e+0:1:4:0x0: ++%*48Le:0e+0:0:4: ++%48Le:2.22507385850720138309023271733240406e-308:1:42:0x1p-1022: ++%*48Le:2.22507385850720138309023271733240406e-308:0:42: ++%48Le:2.3441674165664682593913711430784253952e037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48Le:2.3441674165664682593913711430784253952e037:0:43: ++%48Le:2.3441674165664682593913711430784253952e+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48Le:2.3441674165664682593913711430784253952e+37:0:43: ++%48Le:1.79769313486231570814527423731704357e308:1:41:0x1.fffffffffffffp1023: ++%*48Le:1.79769313486231570814527423731704357e308:0:41: ++%48Le:1.79769313486231570814527423731704357e+308:1:42:0x1.fffffffffffffp1023: ++%*48Le:1.79769313486231570814527423731704357e+308:0:42: ++%48Le:infinity:1:8:inf: ++%*48Le:infinity:0:8: ++%48Le:+nan():1:6:nan: ++%*48Le:+nan():0:6: ++%48Le:+nan(09A_Zaz):1:13:nan: ++%*48Le:+nan(09A_Zaz):0:13: ++%48Le:+0e0:1:4:0x0: ++%*48Le:+0e0:0:4: ++%48Le:+0e+0:1:5:0x0: ++%*48Le:+0e+0:0:5: ++%48Le:+2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*48Le:+2.22507385850720138309023271733240406e-308:0:43: ++%48Le:+2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48Le:+2.3441674165664682593913711430784253952e037:0:44: ++%48Le:+2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48Le:+2.3441674165664682593913711430784253952e+37:0:44: ++%48Le:+1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*48Le:+1.79769313486231570814527423731704357e308:0:42: ++%48Le:+1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*48Le:+1.79769313486231570814527423731704357e+308:0:43: ++%48Le:+infinity:1:9:inf: ++%*48Le:+infinity:0:9: ++%3Le: :0:-1: ++%*3Le: :0:-1: ++%3Le: -infinity:0:-1: ++%*3Le: -infinity:0:-1: ++%3Le: -1.79769313486231570814527423731704357e+308:1:4:-0x1: ++%*3Le: -1.79769313486231570814527423731704357e+308:0:4: ++%3Le: -1.79769313486231570814527423731704357e308:1:4:-0x1: ++%*3Le: -1.79769313486231570814527423731704357e308:0:4: ++%3Le: -2.3441674165664682593913711430784253952e+37:1:4:-0x1p1: ++%*3Le: -2.3441674165664682593913711430784253952e+37:0:4: ++%3Le: -2.3441674165664682593913711430784253952e037:1:4:-0x1p1: ++%*3Le: -2.3441674165664682593913711430784253952e037:0:4: ++%3Le: -2.22507385850720138309023271733240406e-308:1:4:-0x1p1: ++%*3Le: -2.22507385850720138309023271733240406e-308:0:4: ++# BZ12701 %3Le: -0e+0:0:-1: ++# BZ12701 %*3Le: -0e+0:0:-1: ++# BZ12701 %3Le: -0e0:0:-1: ++# BZ12701 %*3Le: -0e0:0:-1: ++%3Le: -nan(09A_Zaz):0:-1: ++%*3Le: -nan(09A_Zaz):0:-1: ++%3Le: -nan():0:-1: ++%*3Le: -nan():0:-1: ++%3Le: nan():1:4:nan: ++%*3Le: nan():0:4: ++%3Le: nan(09A_Zaz):1:4:nan: ++%*3Le: nan(09A_Zaz):0:4: ++%3Le: 0e0:1:4:0x0: ++%*3Le: 0e0:0:4: ++# BZ12701 %3Le: 0e+0:0:-1: ++# BZ12701 %*3Le: 0e+0:0:-1: ++%3Le: 2.22507385850720138309023271733240406e-308:1:4:0x1.199999999999ap1: ++%*3Le: 2.22507385850720138309023271733240406e-308:0:4: ++%3Le: 2.3441674165664682593913711430784253952e037:1:4:0x1.2666666666666p1: ++%*3Le: 2.3441674165664682593913711430784253952e037:0:4: ++%3Le: 2.3441674165664682593913711430784253952e+37:1:4:0x1.2666666666666p1: ++%*3Le: 2.3441674165664682593913711430784253952e+37:0:4: ++%3Le: 1.79769313486231570814527423731704357e308:1:4:0x1.b333333333333: ++%*3Le: 1.79769313486231570814527423731704357e308:0:4: ++%3Le: 1.79769313486231570814527423731704357e+308:1:4:0x1.b333333333333: ++%*3Le: 1.79769313486231570814527423731704357e+308:0:4: ++%3Le: infinity:1:4:inf: ++%*3Le: infinity:0:4: ++%3Le: +nan():0:-1: ++%*3Le: +nan():0:-1: ++%3Le: +nan(09A_Zaz):0:-1: ++%*3Le: +nan(09A_Zaz):0:-1: ++# BZ12701 %3Le: +0e0:0:-1: ++# BZ12701 %*3Le: +0e0:0:-1: ++# BZ12701 %3Le: +0e+0:0:-1: ++# BZ12701 %*3Le: +0e+0:0:-1: ++%3Le: +2.22507385850720138309023271733240406e-308:1:4:0x1p1: ++%*3Le: +2.22507385850720138309023271733240406e-308:0:4: ++%3Le: +2.3441674165664682593913711430784253952e037:1:4:0x1p1: ++%*3Le: +2.3441674165664682593913711430784253952e037:0:4: ++%3Le: +2.3441674165664682593913711430784253952e+37:1:4:0x1p1: ++%*3Le: +2.3441674165664682593913711430784253952e+37:0:4: ++%3Le: +1.79769313486231570814527423731704357e308:1:4:0x1: ++%*3Le: +1.79769313486231570814527423731704357e308:0:4: ++%3Le: +1.79769313486231570814527423731704357e+308:1:4:0x1: ++%*3Le: +1.79769313486231570814527423731704357e+308:0:4: ++%3Le: +infinity:0:-1: ++%*3Le: +infinity:0:-1: ++%48Le: :0:-1: ++%*48Le: :0:-1: ++%48Le: -infinity:1:10:-inf: ++%*48Le: -infinity:0:10: ++%48Le: -1.79769313486231570814527423731704357e+308:1:44:-0x1.fffffffffffffp1023: ++%*48Le: -1.79769313486231570814527423731704357e+308:0:44: ++%48Le: -1.79769313486231570814527423731704357e308:1:43:-0x1.fffffffffffffp1023: ++%*48Le: -1.79769313486231570814527423731704357e308:0:43: ++%48Le: -2.3441674165664682593913711430784253952e+37:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48Le: -2.3441674165664682593913711430784253952e+37:0:45: ++%48Le: -2.3441674165664682593913711430784253952e037:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48Le: -2.3441674165664682593913711430784253952e037:0:45: ++%48Le: -2.22507385850720138309023271733240406e-308:1:44:-0x1p-1022: ++%*48Le: -2.22507385850720138309023271733240406e-308:0:44: ++%48Le: -0e+0:1:6:-0x0: ++%*48Le: -0e+0:0:6: ++%48Le: -0e0:1:5:-0x0: ++%*48Le: -0e0:0:5: ++%48Le: -nan(09A_Zaz):1:14:-nan: ++%*48Le: -nan(09A_Zaz):0:14: ++%48Le: -nan():1:7:-nan: ++%*48Le: -nan():0:7: ++%48Le: nan():1:6:nan: ++%*48Le: nan():0:6: ++%48Le: nan(09A_Zaz):1:13:nan: ++%*48Le: nan(09A_Zaz):0:13: ++%48Le: 0e0:1:4:0x0: ++%*48Le: 0e0:0:4: ++%48Le: 0e+0:1:5:0x0: ++%*48Le: 0e+0:0:5: ++%48Le: 2.22507385850720138309023271733240406e-308:1:43:0x1p-1022: ++%*48Le: 2.22507385850720138309023271733240406e-308:0:43: ++%48Le: 2.3441674165664682593913711430784253952e037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48Le: 2.3441674165664682593913711430784253952e037:0:44: ++%48Le: 2.3441674165664682593913711430784253952e+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48Le: 2.3441674165664682593913711430784253952e+37:0:44: ++%48Le: 1.79769313486231570814527423731704357e308:1:42:0x1.fffffffffffffp1023: ++%*48Le: 1.79769313486231570814527423731704357e308:0:42: ++%48Le: 1.79769313486231570814527423731704357e+308:1:43:0x1.fffffffffffffp1023: ++%*48Le: 1.79769313486231570814527423731704357e+308:0:43: ++%48Le: infinity:1:9:inf: ++%*48Le: infinity:0:9: ++%48Le: +nan():1:7:nan: ++%*48Le: +nan():0:7: ++%48Le: +nan(09A_Zaz):1:14:nan: ++%*48Le: +nan(09A_Zaz):0:14: ++%48Le: +0e0:1:5:0x0: ++%*48Le: +0e0:0:5: ++%48Le: +0e+0:1:6:0x0: ++%*48Le: +0e+0:0:6: ++%48Le: +2.22507385850720138309023271733240406e-308:1:44:0x1p-1022: ++%*48Le: +2.22507385850720138309023271733240406e-308:0:44: ++%48Le: +2.3441674165664682593913711430784253952e037:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48Le: +2.3441674165664682593913711430784253952e037:0:45: ++%48Le: +2.3441674165664682593913711430784253952e+37:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48Le: +2.3441674165664682593913711430784253952e+37:0:45: ++%48Le: +1.79769313486231570814527423731704357e308:1:43:0x1.fffffffffffffp1023: ++%*48Le: +1.79769313486231570814527423731704357e308:0:43: ++%48Le: +1.79769313486231570814527423731704357e+308:1:44:0x1.fffffffffffffp1023: ++%*48Le: +1.79769313486231570814527423731704357e+308:0:44: ++%48Le: +infinity:1:10:inf: ++%*48Le: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input +new file mode 100644 +index 0000000000000000..6fb575513e9e3379 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input +@@ -0,0 +1,558 @@ ++%LE::0:-1: ++%*LE::0:-1: ++%LE:-INFINITY:1:9:-inf: ++%*LE:-INFINITY:0:9: ++%LE:-1.79769313486231570814527423731704357E+308:1:43:-0x1.fffffffffffffp1023: ++%*LE:-1.79769313486231570814527423731704357E+308:0:43: ++%LE:-1.79769313486231570814527423731704357E308:1:42:-0x1.fffffffffffffp1023: ++%*LE:-1.79769313486231570814527423731704357E308:0:42: ++%LE:-2.3441674165664682593913711430784253952E+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*LE:-2.3441674165664682593913711430784253952E+37:0:44: ++%LE:-2.3441674165664682593913711430784253952E037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*LE:-2.3441674165664682593913711430784253952E037:0:44: ++%LE:-2.22507385850720138309023271733240406E-308:1:43:-0x1p-1022: ++%*LE:-2.22507385850720138309023271733240406E-308:0:43: ++%LE:-0E+0:1:5:-0x0: ++%*LE:-0E+0:0:5: ++%LE:-0E0:1:4:-0x0: ++%*LE:-0E0:0:4: ++%LE:-NAN(09A_Zaz):1:13:-nan: ++%*LE:-NAN(09A_Zaz):0:13: ++%LE:-NAN():1:6:-nan: ++%*LE:-NAN():0:6: ++%LE:NAN():1:5:nan: ++%*LE:NAN():0:5: ++%LE:NAN(09A_Zaz):1:12:nan: ++%*LE:NAN(09A_Zaz):0:12: ++%LE:0E0:1:3:0x0: ++%*LE:0E0:0:3: ++%LE:0E+0:1:4:0x0: ++%*LE:0E+0:0:4: ++%LE:2.22507385850720138309023271733240406E-308:1:42:0x1p-1022: ++%*LE:2.22507385850720138309023271733240406E-308:0:42: ++%LE:2.3441674165664682593913711430784253952E037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*LE:2.3441674165664682593913711430784253952E037:0:43: ++%LE:2.3441674165664682593913711430784253952E+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*LE:2.3441674165664682593913711430784253952E+37:0:43: ++%LE:1.79769313486231570814527423731704357E308:1:41:0x1.fffffffffffffp1023: ++%*LE:1.79769313486231570814527423731704357E308:0:41: ++%LE:1.79769313486231570814527423731704357E+308:1:42:0x1.fffffffffffffp1023: ++%*LE:1.79769313486231570814527423731704357E+308:0:42: ++%LE:INFINITY:1:8:inf: ++%*LE:INFINITY:0:8: ++%LE:+NAN():1:6:nan: ++%*LE:+NAN():0:6: ++%LE:+NAN(09A_Zaz):1:13:nan: ++%*LE:+NAN(09A_Zaz):0:13: ++%LE:+0E0:1:4:0x0: ++%*LE:+0E0:0:4: ++%LE:+0E+0:1:5:0x0: ++%*LE:+0E+0:0:5: ++%LE:+2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*LE:+2.22507385850720138309023271733240406E-308:0:43: ++%LE:+2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*LE:+2.3441674165664682593913711430784253952E037:0:44: ++%LE:+2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*LE:+2.3441674165664682593913711430784253952E+37:0:44: ++%LE:+1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*LE:+1.79769313486231570814527423731704357E308:0:42: ++%LE:+1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*LE:+1.79769313486231570814527423731704357E+308:0:43: ++%LE:+INFINITY:1:9:inf: ++%*LE:+INFINITY:0:9: ++%1LE::0:-1: ++%*1LE::0:-1: ++%1LE:-INFINITY:0:-1: ++%*1LE:-INFINITY:0:-1: ++%1LE:-1.79769313486231570814527423731704357E+308:0:-1: ++%*1LE:-1.79769313486231570814527423731704357E+308:0:-1: ++%1LE:-1.79769313486231570814527423731704357E308:0:-1: ++%*1LE:-1.79769313486231570814527423731704357E308:0:-1: ++%1LE:-2.3441674165664682593913711430784253952E+37:0:-1: ++%*1LE:-2.3441674165664682593913711430784253952E+37:0:-1: ++%1LE:-2.3441674165664682593913711430784253952E037:0:-1: ++%*1LE:-2.3441674165664682593913711430784253952E037:0:-1: ++%1LE:-2.22507385850720138309023271733240406E-308:0:-1: ++%*1LE:-2.22507385850720138309023271733240406E-308:0:-1: ++%1LE:-0E+0:0:-1: ++%*1LE:-0E+0:0:-1: ++%1LE:-0E0:0:-1: ++%*1LE:-0E0:0:-1: ++%1LE:-NAN(09A_Zaz):0:-1: ++%*1LE:-NAN(09A_Zaz):0:-1: ++%1LE:-NAN():0:-1: ++%*1LE:-NAN():0:-1: ++%1LE:NAN():0:-1: ++%*1LE:NAN():0:-1: ++%1LE:NAN(09A_Zaz):0:-1: ++%*1LE:NAN(09A_Zaz):0:-1: ++%1LE:0E0:1:1:0x0: ++%*1LE:0E0:0:1: ++%1LE:0E+0:1:1:0x0: ++%*1LE:0E+0:0:1: ++%1LE:2.22507385850720138309023271733240406E-308:1:1:0x1p1: ++%*1LE:2.22507385850720138309023271733240406E-308:0:1: ++%1LE:2.3441674165664682593913711430784253952E037:1:1:0x1p1: ++%*1LE:2.3441674165664682593913711430784253952E037:0:1: ++%1LE:2.3441674165664682593913711430784253952E+37:1:1:0x1p1: ++%*1LE:2.3441674165664682593913711430784253952E+37:0:1: ++%1LE:1.79769313486231570814527423731704357E308:1:1:0x1: ++%*1LE:1.79769313486231570814527423731704357E308:0:1: ++%1LE:1.79769313486231570814527423731704357E+308:1:1:0x1: ++%*1LE:1.79769313486231570814527423731704357E+308:0:1: ++%1LE:INFINITY:0:-1: ++%*1LE:INFINITY:0:-1: ++%1LE:+NAN():0:-1: ++%*1LE:+NAN():0:-1: ++%1LE:+NAN(09A_Zaz):0:-1: ++%*1LE:+NAN(09A_Zaz):0:-1: ++%1LE:+0E0:0:-1: ++%*1LE:+0E0:0:-1: ++%1LE:+0E+0:0:-1: ++%*1LE:+0E+0:0:-1: ++%1LE:+2.22507385850720138309023271733240406E-308:0:-1: ++%*1LE:+2.22507385850720138309023271733240406E-308:0:-1: ++%1LE:+2.3441674165664682593913711430784253952E037:0:-1: ++%*1LE:+2.3441674165664682593913711430784253952E037:0:-1: ++%1LE:+2.3441674165664682593913711430784253952E+37:0:-1: ++%*1LE:+2.3441674165664682593913711430784253952E+37:0:-1: ++%1LE:+1.79769313486231570814527423731704357E308:0:-1: ++%*1LE:+1.79769313486231570814527423731704357E308:0:-1: ++%1LE:+1.79769313486231570814527423731704357E+308:0:-1: ++%*1LE:+1.79769313486231570814527423731704357E+308:0:-1: ++%1LE:+INFINITY:0:-1: ++%*1LE:+INFINITY:0:-1: ++%2LE::0:-1: ++%*2LE::0:-1: ++%2LE:-INFINITY:0:-1: ++%*2LE:-INFINITY:0:-1: ++%2LE:-1.79769313486231570814527423731704357E+308:1:2:-0x1: ++%*2LE:-1.79769313486231570814527423731704357E+308:0:2: ++%2LE:-1.79769313486231570814527423731704357E308:1:2:-0x1: ++%*2LE:-1.79769313486231570814527423731704357E308:0:2: ++%2LE:-2.3441674165664682593913711430784253952E+37:1:2:-0x1p1: ++%*2LE:-2.3441674165664682593913711430784253952E+37:0:2: ++%2LE:-2.3441674165664682593913711430784253952E037:1:2:-0x1p1: ++%*2LE:-2.3441674165664682593913711430784253952E037:0:2: ++%2LE:-2.22507385850720138309023271733240406E-308:1:2:-0x1p1: ++%*2LE:-2.22507385850720138309023271733240406E-308:0:2: ++%2LE:-0E+0:1:2:-0x0: ++%*2LE:-0E+0:0:2: ++%2LE:-0E0:1:2:-0x0: ++%*2LE:-0E0:0:2: ++%2LE:-NAN(09A_Zaz):0:-1: ++%*2LE:-NAN(09A_Zaz):0:-1: ++%2LE:-NAN():0:-1: ++%*2LE:-NAN():0:-1: ++%2LE:NAN():0:-1: ++%*2LE:NAN():0:-1: ++%2LE:NAN(09A_Zaz):0:-1: ++%*2LE:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LE:0E0:0:-1: ++# BZ12701 %*2LE:0E0:0:-1: ++# BZ12701 %2LE:0E+0:0:-1: ++# BZ12701 %*2LE:0E+0:0:-1: ++%2LE:2.22507385850720138309023271733240406E-308:1:2:0x1p1: ++%*2LE:2.22507385850720138309023271733240406E-308:0:2: ++%2LE:2.3441674165664682593913711430784253952E037:1:2:0x1p1: ++%*2LE:2.3441674165664682593913711430784253952E037:0:2: ++%2LE:2.3441674165664682593913711430784253952E+37:1:2:0x1p1: ++%*2LE:2.3441674165664682593913711430784253952E+37:0:2: ++%2LE:1.79769313486231570814527423731704357E308:1:2:0x1: ++%*2LE:1.79769313486231570814527423731704357E308:0:2: ++%2LE:1.79769313486231570814527423731704357E+308:1:2:0x1: ++%*2LE:1.79769313486231570814527423731704357E+308:0:2: ++%2LE:INFINITY:0:-1: ++%*2LE:INFINITY:0:-1: ++%2LE:+NAN():0:-1: ++%*2LE:+NAN():0:-1: ++%2LE:+NAN(09A_Zaz):0:-1: ++%*2LE:+NAN(09A_Zaz):0:-1: ++%2LE:+0E0:1:2:0x0: ++%*2LE:+0E0:0:2: ++%2LE:+0E+0:1:2:0x0: ++%*2LE:+0E+0:0:2: ++%2LE:+2.22507385850720138309023271733240406E-308:1:2:0x1p1: ++%*2LE:+2.22507385850720138309023271733240406E-308:0:2: ++%2LE:+2.3441674165664682593913711430784253952E037:1:2:0x1p1: ++%*2LE:+2.3441674165664682593913711430784253952E037:0:2: ++%2LE:+2.3441674165664682593913711430784253952E+37:1:2:0x1p1: ++%*2LE:+2.3441674165664682593913711430784253952E+37:0:2: ++%2LE:+1.79769313486231570814527423731704357E308:1:2:0x1: ++%*2LE:+1.79769313486231570814527423731704357E308:0:2: ++%2LE:+1.79769313486231570814527423731704357E+308:1:2:0x1: ++%*2LE:+1.79769313486231570814527423731704357E+308:0:2: ++%2LE:+INFINITY:0:-1: ++%*2LE:+INFINITY:0:-1: ++%3LE::0:-1: ++%*3LE::0:-1: ++%3LE:-INFINITY:0:-1: ++%*3LE:-INFINITY:0:-1: ++%3LE:-1.79769313486231570814527423731704357E+308:1:3:-0x1: ++%*3LE:-1.79769313486231570814527423731704357E+308:0:3: ++%3LE:-1.79769313486231570814527423731704357E308:1:3:-0x1: ++%*3LE:-1.79769313486231570814527423731704357E308:0:3: ++%3LE:-2.3441674165664682593913711430784253952E+37:1:3:-0x1p1: ++%*3LE:-2.3441674165664682593913711430784253952E+37:0:3: ++%3LE:-2.3441674165664682593913711430784253952E037:1:3:-0x1p1: ++%*3LE:-2.3441674165664682593913711430784253952E037:0:3: ++%3LE:-2.22507385850720138309023271733240406E-308:1:3:-0x1p1: ++%*3LE:-2.22507385850720138309023271733240406E-308:0:3: ++# BZ12701 %3LE:-0E+0:0:-1: ++# BZ12701 %*3LE:-0E+0:0:-1: ++# BZ12701 %3LE:-0E0:0:-1: ++# BZ12701 %*3LE:-0E0:0:-1: ++%3LE:-NAN(09A_Zaz):0:-1: ++%*3LE:-NAN(09A_Zaz):0:-1: ++%3LE:-NAN():0:-1: ++%*3LE:-NAN():0:-1: ++%3LE:NAN():1:3:nan: ++%*3LE:NAN():0:3: ++%3LE:NAN(09A_Zaz):1:3:nan: ++%*3LE:NAN(09A_Zaz):0:3: ++%3LE:0E0:1:3:0x0: ++%*3LE:0E0:0:3: ++# BZ12701 %3LE:0E+0:0:-1: ++# BZ12701 %*3LE:0E+0:0:-1: ++%3LE:2.22507385850720138309023271733240406E-308:1:3:0x1.199999999999ap1: ++%*3LE:2.22507385850720138309023271733240406E-308:0:3: ++%3LE:2.3441674165664682593913711430784253952E037:1:3:0x1.2666666666666p1: ++%*3LE:2.3441674165664682593913711430784253952E037:0:3: ++%3LE:2.3441674165664682593913711430784253952E+37:1:3:0x1.2666666666666p1: ++%*3LE:2.3441674165664682593913711430784253952E+37:0:3: ++%3LE:1.79769313486231570814527423731704357E308:1:3:0x1.b333333333333: ++%*3LE:1.79769313486231570814527423731704357E308:0:3: ++%3LE:1.79769313486231570814527423731704357E+308:1:3:0x1.b333333333333: ++%*3LE:1.79769313486231570814527423731704357E+308:0:3: ++%3LE:INFINITY:1:3:inf: ++%*3LE:INFINITY:0:3: ++%3LE:+NAN():0:-1: ++%*3LE:+NAN():0:-1: ++%3LE:+NAN(09A_Zaz):0:-1: ++%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE:+0E0:0:-1: ++# BZ12701 %*3LE:+0E0:0:-1: ++# BZ12701 %3LE:+0E+0:0:-1: ++# BZ12701 %*3LE:+0E+0:0:-1: ++%3LE:+2.22507385850720138309023271733240406E-308:1:3:0x1p1: ++%*3LE:+2.22507385850720138309023271733240406E-308:0:3: ++%3LE:+2.3441674165664682593913711430784253952E037:1:3:0x1p1: ++%*3LE:+2.3441674165664682593913711430784253952E037:0:3: ++%3LE:+2.3441674165664682593913711430784253952E+37:1:3:0x1p1: ++%*3LE:+2.3441674165664682593913711430784253952E+37:0:3: ++%3LE:+1.79769313486231570814527423731704357E308:1:3:0x1: ++%*3LE:+1.79769313486231570814527423731704357E308:0:3: ++%3LE:+1.79769313486231570814527423731704357E+308:1:3:0x1: ++%*3LE:+1.79769313486231570814527423731704357E+308:0:3: ++%3LE:+INFINITY:0:-1: ++%*3LE:+INFINITY:0:-1: ++%4LE::0:-1: ++%*4LE::0:-1: ++%4LE:-INFINITY:1:4:-inf: ++%*4LE:-INFINITY:0:4: ++%4LE:-1.79769313486231570814527423731704357E+308:1:4:-0x1.b333333333333: ++%*4LE:-1.79769313486231570814527423731704357E+308:0:4: ++%4LE:-1.79769313486231570814527423731704357E308:1:4:-0x1.b333333333333: ++%*4LE:-1.79769313486231570814527423731704357E308:0:4: ++%4LE:-2.3441674165664682593913711430784253952E+37:1:4:-0x1.2666666666666p1: ++%*4LE:-2.3441674165664682593913711430784253952E+37:0:4: ++%4LE:-2.3441674165664682593913711430784253952E037:1:4:-0x1.2666666666666p1: ++%*4LE:-2.3441674165664682593913711430784253952E037:0:4: ++%4LE:-2.22507385850720138309023271733240406E-308:1:4:-0x1.199999999999ap1: ++%*4LE:-2.22507385850720138309023271733240406E-308:0:4: ++# BZ12701 %4LE:-0E+0:0:-1: ++# BZ12701 %*4LE:-0E+0:0:-1: ++%4LE:-0E0:1:4:-0x0: ++%*4LE:-0E0:0:4: ++%4LE:-NAN(09A_Zaz):1:4:-nan: ++%*4LE:-NAN(09A_Zaz):0:4: ++%4LE:-NAN():1:4:-nan: ++%*4LE:-NAN():0:4: ++%4LE:NAN():0:-1: ++%*4LE:NAN():0:-1: ++%4LE:NAN(09A_Zaz):0:-1: ++%*4LE:NAN(09A_Zaz):0:-1: ++%4LE:0E0:1:3:0x0: ++%*4LE:0E0:0:3: ++%4LE:0E+0:1:4:0x0: ++%*4LE:0E+0:0:4: ++%4LE:2.22507385850720138309023271733240406E-308:1:4:0x1.1c28f5c28f5c3p1: ++%*4LE:2.22507385850720138309023271733240406E-308:0:4: ++%4LE:2.3441674165664682593913711430784253952E037:1:4:0x1.2b851eb851eb8p1: ++%*4LE:2.3441674165664682593913711430784253952E037:0:4: ++%4LE:2.3441674165664682593913711430784253952E+37:1:4:0x1.2b851eb851eb8p1: ++%*4LE:2.3441674165664682593913711430784253952E+37:0:4: ++%4LE:1.79769313486231570814527423731704357E308:1:4:0x1.ca3d70a3d70a4: ++%*4LE:1.79769313486231570814527423731704357E308:0:4: ++%4LE:1.79769313486231570814527423731704357E+308:1:4:0x1.ca3d70a3d70a4: ++%*4LE:1.79769313486231570814527423731704357E+308:0:4: ++%4LE:INFINITY:0:-1: ++%*4LE:INFINITY:0:-1: ++%4LE:+NAN():1:4:nan: ++%*4LE:+NAN():0:4: ++%4LE:+NAN(09A_Zaz):1:4:nan: ++%*4LE:+NAN(09A_Zaz):0:4: ++%4LE:+0E0:1:4:0x0: ++%*4LE:+0E0:0:4: ++# BZ12701 %4LE:+0E+0:0:-1: ++# BZ12701 %*4LE:+0E+0:0:-1: ++%4LE:+2.22507385850720138309023271733240406E-308:1:4:0x1.199999999999ap1: ++%*4LE:+2.22507385850720138309023271733240406E-308:0:4: ++%4LE:+2.3441674165664682593913711430784253952E037:1:4:0x1.2666666666666p1: ++%*4LE:+2.3441674165664682593913711430784253952E037:0:4: ++%4LE:+2.3441674165664682593913711430784253952E+37:1:4:0x1.2666666666666p1: ++%*4LE:+2.3441674165664682593913711430784253952E+37:0:4: ++%4LE:+1.79769313486231570814527423731704357E308:1:4:0x1.b333333333333: ++%*4LE:+1.79769313486231570814527423731704357E308:0:4: ++%4LE:+1.79769313486231570814527423731704357E+308:1:4:0x1.b333333333333: ++%*4LE:+1.79769313486231570814527423731704357E+308:0:4: ++%4LE:+INFINITY:1:4:inf: ++%*4LE:+INFINITY:0:4: ++%40LE::0:-1: ++%*40LE::0:-1: ++%40LE:-INFINITY:1:9:-inf: ++%*40LE:-INFINITY:0:9: ++# BZ12701 %40LE:-1.79769313486231570814527423731704357E+308:0:-1: ++# BZ12701 %*40LE:-1.79769313486231570814527423731704357E+308:0:-1: ++%40LE:-1.79769313486231570814527423731704357E308:1:40:-0x1.c16c5c5253574p10: ++%*40LE:-1.79769313486231570814527423731704357E308:0:40: ++%40LE:-2.3441674165664682593913711430784253952E+37:1:40:-0x1.2c0dad8b403aap1: ++%*40LE:-2.3441674165664682593913711430784253952E+37:0:40: ++%40LE:-2.3441674165664682593913711430784253952E037:1:40:-0x1.2c0dad8b403aap1: ++%*40LE:-2.3441674165664682593913711430784253952E037:0:40: ++# BZ12701 %40LE:-2.22507385850720138309023271733240406E-308:0:-1: ++# BZ12701 %*40LE:-2.22507385850720138309023271733240406E-308:0:-1: ++%40LE:-0E+0:1:5:-0x0: ++%*40LE:-0E+0:0:5: ++%40LE:-0E0:1:4:-0x0: ++%*40LE:-0E0:0:4: ++%40LE:-NAN(09A_Zaz):1:13:-nan: ++%*40LE:-NAN(09A_Zaz):0:13: ++%40LE:-NAN():1:6:-nan: ++%*40LE:-NAN():0:6: ++%40LE:NAN():1:5:nan: ++%*40LE:NAN():0:5: ++%40LE:NAN(09A_Zaz):1:12:nan: ++%*40LE:NAN(09A_Zaz):0:12: ++%40LE:0E0:1:3:0x0: ++%*40LE:0E0:0:3: ++%40LE:0E+0:1:4:0x0: ++%*40LE:0E+0:0:4: ++%40LE:2.22507385850720138309023271733240406E-308:1:40:0x1.23a516e82d9bap-9: ++%*40LE:2.22507385850720138309023271733240406E-308:0:40: ++# BZ12701 %40LE:2.3441674165664682593913711430784253952E037:0:-1: ++# BZ12701 %*40LE:2.3441674165664682593913711430784253952E037:0:-1: ++# BZ12701 %40LE:2.3441674165664682593913711430784253952E+37:0:-1: ++# BZ12701 %*40LE:2.3441674165664682593913711430784253952E+37:0:-1: ++%40LE:1.79769313486231570814527423731704357E308:1:40:0x1.6b0a8e891ffffp100: ++%*40LE:1.79769313486231570814527423731704357E308:0:40: ++%40LE:1.79769313486231570814527423731704357E+308:1:40:0x1.c16c5c5253574p10: ++%*40LE:1.79769313486231570814527423731704357E+308:0:40: ++%40LE:INFINITY:1:8:inf: ++%*40LE:INFINITY:0:8: ++%40LE:+NAN():1:6:nan: ++%*40LE:+NAN():0:6: ++%40LE:+NAN(09A_Zaz):1:13:nan: ++%*40LE:+NAN(09A_Zaz):0:13: ++%40LE:+0E0:1:4:0x0: ++%*40LE:+0E0:0:4: ++%40LE:+0E+0:1:5:0x0: ++%*40LE:+0E+0:0:5: ++# BZ12701 %40LE:+2.22507385850720138309023271733240406E-308:0:-1: ++# BZ12701 %*40LE:+2.22507385850720138309023271733240406E-308:0:-1: ++%40LE:+2.3441674165664682593913711430784253952E037:1:40:0x1.2c0dad8b403aap1: ++%*40LE:+2.3441674165664682593913711430784253952E037:0:40: ++%40LE:+2.3441674165664682593913711430784253952E+37:1:40:0x1.2c0dad8b403aap1: ++%*40LE:+2.3441674165664682593913711430784253952E+37:0:40: ++%40LE:+1.79769313486231570814527423731704357E308:1:40:0x1.c16c5c5253574p10: ++%*40LE:+1.79769313486231570814527423731704357E308:0:40: ++# BZ12701 %40LE:+1.79769313486231570814527423731704357E+308:0:-1: ++# BZ12701 %*40LE:+1.79769313486231570814527423731704357E+308:0:-1: ++%40LE:+INFINITY:1:9:inf: ++%*40LE:+INFINITY:0:9: ++%48LE::0:-1: ++%*48LE::0:-1: ++%48LE:-INFINITY:1:9:-inf: ++%*48LE:-INFINITY:0:9: ++%48LE:-1.79769313486231570814527423731704357E+308:1:43:-0x1.fffffffffffffp1023: ++%*48LE:-1.79769313486231570814527423731704357E+308:0:43: ++%48LE:-1.79769313486231570814527423731704357E308:1:42:-0x1.fffffffffffffp1023: ++%*48LE:-1.79769313486231570814527423731704357E308:0:42: ++%48LE:-2.3441674165664682593913711430784253952E+37:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48LE:-2.3441674165664682593913711430784253952E+37:0:44: ++%48LE:-2.3441674165664682593913711430784253952E037:1:44:-0x1.1a2b3c4d5e6ffp124: ++%*48LE:-2.3441674165664682593913711430784253952E037:0:44: ++%48LE:-2.22507385850720138309023271733240406E-308:1:43:-0x1p-1022: ++%*48LE:-2.22507385850720138309023271733240406E-308:0:43: ++%48LE:-0E+0:1:5:-0x0: ++%*48LE:-0E+0:0:5: ++%48LE:-0E0:1:4:-0x0: ++%*48LE:-0E0:0:4: ++%48LE:-NAN(09A_Zaz):1:13:-nan: ++%*48LE:-NAN(09A_Zaz):0:13: ++%48LE:-NAN():1:6:-nan: ++%*48LE:-NAN():0:6: ++%48LE:NAN():1:5:nan: ++%*48LE:NAN():0:5: ++%48LE:NAN(09A_Zaz):1:12:nan: ++%*48LE:NAN(09A_Zaz):0:12: ++%48LE:0E0:1:3:0x0: ++%*48LE:0E0:0:3: ++%48LE:0E+0:1:4:0x0: ++%*48LE:0E+0:0:4: ++%48LE:2.22507385850720138309023271733240406E-308:1:42:0x1p-1022: ++%*48LE:2.22507385850720138309023271733240406E-308:0:42: ++%48LE:2.3441674165664682593913711430784253952E037:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48LE:2.3441674165664682593913711430784253952E037:0:43: ++%48LE:2.3441674165664682593913711430784253952E+37:1:43:0x1.1a2b3c4d5e6ffp124: ++%*48LE:2.3441674165664682593913711430784253952E+37:0:43: ++%48LE:1.79769313486231570814527423731704357E308:1:41:0x1.fffffffffffffp1023: ++%*48LE:1.79769313486231570814527423731704357E308:0:41: ++%48LE:1.79769313486231570814527423731704357E+308:1:42:0x1.fffffffffffffp1023: ++%*48LE:1.79769313486231570814527423731704357E+308:0:42: ++%48LE:INFINITY:1:8:inf: ++%*48LE:INFINITY:0:8: ++%48LE:+NAN():1:6:nan: ++%*48LE:+NAN():0:6: ++%48LE:+NAN(09A_Zaz):1:13:nan: ++%*48LE:+NAN(09A_Zaz):0:13: ++%48LE:+0E0:1:4:0x0: ++%*48LE:+0E0:0:4: ++%48LE:+0E+0:1:5:0x0: ++%*48LE:+0E+0:0:5: ++%48LE:+2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*48LE:+2.22507385850720138309023271733240406E-308:0:43: ++%48LE:+2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48LE:+2.3441674165664682593913711430784253952E037:0:44: ++%48LE:+2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48LE:+2.3441674165664682593913711430784253952E+37:0:44: ++%48LE:+1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*48LE:+1.79769313486231570814527423731704357E308:0:42: ++%48LE:+1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*48LE:+1.79769313486231570814527423731704357E+308:0:43: ++%48LE:+INFINITY:1:9:inf: ++%*48LE:+INFINITY:0:9: ++%3LE: :0:-1: ++%*3LE: :0:-1: ++%3LE: -INFINITY:0:-1: ++%*3LE: -INFINITY:0:-1: ++%3LE: -1.79769313486231570814527423731704357E+308:1:4:-0x1: ++%*3LE: -1.79769313486231570814527423731704357E+308:0:4: ++%3LE: -1.79769313486231570814527423731704357E308:1:4:-0x1: ++%*3LE: -1.79769313486231570814527423731704357E308:0:4: ++%3LE: -2.3441674165664682593913711430784253952E+37:1:4:-0x1p1: ++%*3LE: -2.3441674165664682593913711430784253952E+37:0:4: ++%3LE: -2.3441674165664682593913711430784253952E037:1:4:-0x1p1: ++%*3LE: -2.3441674165664682593913711430784253952E037:0:4: ++%3LE: -2.22507385850720138309023271733240406E-308:1:4:-0x1p1: ++%*3LE: -2.22507385850720138309023271733240406E-308:0:4: ++# BZ12701 %3LE: -0E+0:0:-1: ++# BZ12701 %*3LE: -0E+0:0:-1: ++# BZ12701 %3LE: -0E0:0:-1: ++# BZ12701 %*3LE: -0E0:0:-1: ++%3LE: -NAN(09A_Zaz):0:-1: ++%*3LE: -NAN(09A_Zaz):0:-1: ++%3LE: -NAN():0:-1: ++%*3LE: -NAN():0:-1: ++%3LE: NAN():1:4:nan: ++%*3LE: NAN():0:4: ++%3LE: NAN(09A_Zaz):1:4:nan: ++%*3LE: NAN(09A_Zaz):0:4: ++%3LE: 0E0:1:4:0x0: ++%*3LE: 0E0:0:4: ++# BZ12701 %3LE: 0E+0:0:-1: ++# BZ12701 %*3LE: 0E+0:0:-1: ++%3LE: 2.22507385850720138309023271733240406E-308:1:4:0x1.199999999999ap1: ++%*3LE: 2.22507385850720138309023271733240406E-308:0:4: ++%3LE: 2.3441674165664682593913711430784253952E037:1:4:0x1.2666666666666p1: ++%*3LE: 2.3441674165664682593913711430784253952E037:0:4: ++%3LE: 2.3441674165664682593913711430784253952E+37:1:4:0x1.2666666666666p1: ++%*3LE: 2.3441674165664682593913711430784253952E+37:0:4: ++%3LE: 1.79769313486231570814527423731704357E308:1:4:0x1.b333333333333: ++%*3LE: 1.79769313486231570814527423731704357E308:0:4: ++%3LE: 1.79769313486231570814527423731704357E+308:1:4:0x1.b333333333333: ++%*3LE: 1.79769313486231570814527423731704357E+308:0:4: ++%3LE: INFINITY:1:4:inf: ++%*3LE: INFINITY:0:4: ++%3LE: +NAN():0:-1: ++%*3LE: +NAN():0:-1: ++%3LE: +NAN(09A_Zaz):0:-1: ++%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE: +0E0:0:-1: ++# BZ12701 %*3LE: +0E0:0:-1: ++# BZ12701 %3LE: +0E+0:0:-1: ++# BZ12701 %*3LE: +0E+0:0:-1: ++%3LE: +2.22507385850720138309023271733240406E-308:1:4:0x1p1: ++%*3LE: +2.22507385850720138309023271733240406E-308:0:4: ++%3LE: +2.3441674165664682593913711430784253952E037:1:4:0x1p1: ++%*3LE: +2.3441674165664682593913711430784253952E037:0:4: ++%3LE: +2.3441674165664682593913711430784253952E+37:1:4:0x1p1: ++%*3LE: +2.3441674165664682593913711430784253952E+37:0:4: ++%3LE: +1.79769313486231570814527423731704357E308:1:4:0x1: ++%*3LE: +1.79769313486231570814527423731704357E308:0:4: ++%3LE: +1.79769313486231570814527423731704357E+308:1:4:0x1: ++%*3LE: +1.79769313486231570814527423731704357E+308:0:4: ++%3LE: +INFINITY:0:-1: ++%*3LE: +INFINITY:0:-1: ++%48LE: :0:-1: ++%*48LE: :0:-1: ++%48LE: -INFINITY:1:10:-inf: ++%*48LE: -INFINITY:0:10: ++%48LE: -1.79769313486231570814527423731704357E+308:1:44:-0x1.fffffffffffffp1023: ++%*48LE: -1.79769313486231570814527423731704357E+308:0:44: ++%48LE: -1.79769313486231570814527423731704357E308:1:43:-0x1.fffffffffffffp1023: ++%*48LE: -1.79769313486231570814527423731704357E308:0:43: ++%48LE: -2.3441674165664682593913711430784253952E+37:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48LE: -2.3441674165664682593913711430784253952E+37:0:45: ++%48LE: -2.3441674165664682593913711430784253952E037:1:45:-0x1.1a2b3c4d5e6ffp124: ++%*48LE: -2.3441674165664682593913711430784253952E037:0:45: ++%48LE: -2.22507385850720138309023271733240406E-308:1:44:-0x1p-1022: ++%*48LE: -2.22507385850720138309023271733240406E-308:0:44: ++%48LE: -0E+0:1:6:-0x0: ++%*48LE: -0E+0:0:6: ++%48LE: -0E0:1:5:-0x0: ++%*48LE: -0E0:0:5: ++%48LE: -NAN(09A_Zaz):1:14:-nan: ++%*48LE: -NAN(09A_Zaz):0:14: ++%48LE: -NAN():1:7:-nan: ++%*48LE: -NAN():0:7: ++%48LE: NAN():1:6:nan: ++%*48LE: NAN():0:6: ++%48LE: NAN(09A_Zaz):1:13:nan: ++%*48LE: NAN(09A_Zaz):0:13: ++%48LE: 0E0:1:4:0x0: ++%*48LE: 0E0:0:4: ++%48LE: 0E+0:1:5:0x0: ++%*48LE: 0E+0:0:5: ++%48LE: 2.22507385850720138309023271733240406E-308:1:43:0x1p-1022: ++%*48LE: 2.22507385850720138309023271733240406E-308:0:43: ++%48LE: 2.3441674165664682593913711430784253952E037:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48LE: 2.3441674165664682593913711430784253952E037:0:44: ++%48LE: 2.3441674165664682593913711430784253952E+37:1:44:0x1.1a2b3c4d5e6ffp124: ++%*48LE: 2.3441674165664682593913711430784253952E+37:0:44: ++%48LE: 1.79769313486231570814527423731704357E308:1:42:0x1.fffffffffffffp1023: ++%*48LE: 1.79769313486231570814527423731704357E308:0:42: ++%48LE: 1.79769313486231570814527423731704357E+308:1:43:0x1.fffffffffffffp1023: ++%*48LE: 1.79769313486231570814527423731704357E+308:0:43: ++%48LE: INFINITY:1:9:inf: ++%*48LE: INFINITY:0:9: ++%48LE: +NAN():1:7:nan: ++%*48LE: +NAN():0:7: ++%48LE: +NAN(09A_Zaz):1:14:nan: ++%*48LE: +NAN(09A_Zaz):0:14: ++%48LE: +0E0:1:5:0x0: ++%*48LE: +0E0:0:5: ++%48LE: +0E+0:1:6:0x0: ++%*48LE: +0E+0:0:6: ++%48LE: +2.22507385850720138309023271733240406E-308:1:44:0x1p-1022: ++%*48LE: +2.22507385850720138309023271733240406E-308:0:44: ++%48LE: +2.3441674165664682593913711430784253952E037:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48LE: +2.3441674165664682593913711430784253952E037:0:45: ++%48LE: +2.3441674165664682593913711430784253952E+37:1:45:0x1.1a2b3c4d5e6ffp124: ++%*48LE: +2.3441674165664682593913711430784253952E+37:0:45: ++%48LE: +1.79769313486231570814527423731704357E308:1:43:0x1.fffffffffffffp1023: ++%*48LE: +1.79769313486231570814527423731704357E308:0:43: ++%48LE: +1.79769313486231570814527423731704357E+308:1:44:0x1.fffffffffffffp1023: ++%*48LE: +1.79769313486231570814527423731704357E+308:0:44: ++%48LE: +INFINITY:1:10:inf: ++%*48LE: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input +new file mode 100644 +index 0000000000000000..a506658d25fff3a5 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input +@@ -0,0 +1,558 @@ ++%Lf::0:-1: ++%*Lf::0:-1: ++%Lf:-infinity:1:9:-inf: ++%*Lf:-infinity:0:9: ++%Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%Lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*Lf:-023441674165664682593913711430784253952.0:0:42: ++%Lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*Lf:-23441674165664682593913711430784253952:0:39: ++%Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%Lf:-0.0:1:4:-0x0: ++%*Lf:-0.0:0:4: ++%Lf:-0:1:2:-0x0: ++%*Lf:-0:0:2: ++%Lf:-nan(09A_Zaz):1:13:-nan: ++%*Lf:-nan(09A_Zaz):0:13: ++%Lf:-nan():1:6:-nan: ++%*Lf:-nan():0:6: ++%Lf:nan():1:5:nan: ++%*Lf:nan():0:5: ++%Lf:nan(09A_Zaz):1:12:nan: ++%*Lf:nan(09A_Zaz):0:12: ++%Lf:0:1:1:0x0: ++%*Lf:0:0:1: ++%Lf:0.0:1:3:0x0: ++%*Lf:0.0:0:3: ++%Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%Lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*Lf:23441674165664682593913711430784253952:0:38: ++%Lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*Lf:023441674165664682593913711430784253952.0:0:41: ++%Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%Lf:infinity:1:8:inf: ++%*Lf:infinity:0:8: ++%Lf:+nan():1:6:nan: ++%*Lf:+nan():0:6: ++%Lf:+nan(09A_Zaz):1:13:nan: ++%*Lf:+nan(09A_Zaz):0:13: ++%Lf:+0:1:2:0x0: ++%*Lf:+0:0:2: ++%Lf:+0.0:1:4:0x0: ++%*Lf:+0.0:0:4: ++%Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%Lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*Lf:+23441674165664682593913711430784253952:0:39: ++%Lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*Lf:+023441674165664682593913711430784253952.0:0:42: ++%Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%Lf:+infinity:1:9:inf: ++%*Lf:+infinity:0:9: ++%1Lf::0:-1: ++%*1Lf::0:-1: ++%1Lf:-infinity:0:-1: ++%*1Lf:-infinity:0:-1: ++%1Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1Lf:-023441674165664682593913711430784253952.0:0:-1: ++%*1Lf:-023441674165664682593913711430784253952.0:0:-1: ++%1Lf:-23441674165664682593913711430784253952:0:-1: ++%*1Lf:-23441674165664682593913711430784253952:0:-1: ++%1Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1Lf:-0.0:0:-1: ++%*1Lf:-0.0:0:-1: ++%1Lf:-0:0:-1: ++%*1Lf:-0:0:-1: ++%1Lf:-nan(09A_Zaz):0:-1: ++%*1Lf:-nan(09A_Zaz):0:-1: ++%1Lf:-nan():0:-1: ++%*1Lf:-nan():0:-1: ++%1Lf:nan():0:-1: ++%*1Lf:nan():0:-1: ++%1Lf:nan(09A_Zaz):0:-1: ++%*1Lf:nan(09A_Zaz):0:-1: ++%1Lf:0:1:1:0x0: ++%*1Lf:0:0:1: ++%1Lf:0.0:1:1:0x0: ++%*1Lf:0.0:0:1: ++%1Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:1:0x0: ++%*1Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:1: ++%1Lf:23441674165664682593913711430784253952:1:1:0x1p1: ++%*1Lf:23441674165664682593913711430784253952:0:1: ++%1Lf:023441674165664682593913711430784253952.0:1:1:0x0: ++%*1Lf:023441674165664682593913711430784253952.0:0:1: ++%1Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:1:0x1: ++%*1Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:1: ++%1Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:1:0x0: ++%*1Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: ++%1Lf:infinity:0:-1: ++%*1Lf:infinity:0:-1: ++%1Lf:+nan():0:-1: ++%*1Lf:+nan():0:-1: ++%1Lf:+nan(09A_Zaz):0:-1: ++%*1Lf:+nan(09A_Zaz):0:-1: ++%1Lf:+0:0:-1: ++%*1Lf:+0:0:-1: ++%1Lf:+0.0:0:-1: ++%*1Lf:+0.0:0:-1: ++%1Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1Lf:+23441674165664682593913711430784253952:0:-1: ++%*1Lf:+23441674165664682593913711430784253952:0:-1: ++%1Lf:+023441674165664682593913711430784253952.0:0:-1: ++%*1Lf:+023441674165664682593913711430784253952.0:0:-1: ++%1Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1Lf:+infinity:0:-1: ++%*1Lf:+infinity:0:-1: ++%2Lf::0:-1: ++%*2Lf::0:-1: ++%2Lf:-infinity:0:-1: ++%*2Lf:-infinity:0:-1: ++%2Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:-0x0: ++%*2Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:-0x1: ++%*2Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2Lf:-023441674165664682593913711430784253952.0:1:2:-0x0: ++%*2Lf:-023441674165664682593913711430784253952.0:0:2: ++%2Lf:-23441674165664682593913711430784253952:1:2:-0x1p1: ++%*2Lf:-23441674165664682593913711430784253952:0:2: ++%2Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:-0x0: ++%*2Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2Lf:-0.0:1:2:-0x0: ++%*2Lf:-0.0:0:2: ++%2Lf:-0:1:2:-0x0: ++%*2Lf:-0:0:2: ++%2Lf:-nan(09A_Zaz):0:-1: ++%*2Lf:-nan(09A_Zaz):0:-1: ++%2Lf:-nan():0:-1: ++%*2Lf:-nan():0:-1: ++%2Lf:nan():0:-1: ++%*2Lf:nan():0:-1: ++%2Lf:nan(09A_Zaz):0:-1: ++%*2Lf:nan(09A_Zaz):0:-1: ++%2Lf:0:1:1:0x0: ++%*2Lf:0:0:1: ++%2Lf:0.0:1:2:0x0: ++%*2Lf:0.0:0:2: ++%2Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2Lf:23441674165664682593913711430784253952:1:2:0x1.7p+4: ++%*2Lf:23441674165664682593913711430784253952:0:2: ++%2Lf:023441674165664682593913711430784253952.0:1:2:0x1p1: ++%*2Lf:023441674165664682593913711430784253952.0:0:2: ++%2Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1.1p+4: ++%*2Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x1: ++%*2Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2Lf:infinity:0:-1: ++%*2Lf:infinity:0:-1: ++%2Lf:+nan():0:-1: ++%*2Lf:+nan():0:-1: ++%2Lf:+nan(09A_Zaz):0:-1: ++%*2Lf:+nan(09A_Zaz):0:-1: ++%2Lf:+0:1:2:0x0: ++%*2Lf:+0:0:2: ++%2Lf:+0.0:1:2:0x0: ++%*2Lf:+0.0:0:2: ++%2Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2Lf:+23441674165664682593913711430784253952:1:2:0x1p1: ++%*2Lf:+23441674165664682593913711430784253952:0:2: ++%2Lf:+023441674165664682593913711430784253952.0:1:2:0x0: ++%*2Lf:+023441674165664682593913711430784253952.0:0:2: ++%2Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1: ++%*2Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x0: ++%*2Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2Lf:+infinity:0:-1: ++%*2Lf:+infinity:0:-1: ++%3Lf::0:-1: ++%*3Lf::0:-1: ++%3Lf:-infinity:0:-1: ++%*3Lf:-infinity:0:-1: ++%3Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:-0x1: ++%*3Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:-0x1.1p+4: ++%*3Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3Lf:-023441674165664682593913711430784253952.0:1:3:-0x1p1: ++%*3Lf:-023441674165664682593913711430784253952.0:0:3: ++%3Lf:-23441674165664682593913711430784253952:1:3:-0x1.7p+4: ++%*3Lf:-23441674165664682593913711430784253952:0:3: ++%3Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:-0x0: ++%*3Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3Lf:-0.0:1:3:-0x0: ++%*3Lf:-0.0:0:3: ++%3Lf:-0:1:2:-0x0: ++%*3Lf:-0:0:2: ++%3Lf:-nan(09A_Zaz):0:-1: ++%*3Lf:-nan(09A_Zaz):0:-1: ++%3Lf:-nan():0:-1: ++%*3Lf:-nan():0:-1: ++%3Lf:nan():1:3:nan: ++%*3Lf:nan():0:3: ++%3Lf:nan(09A_Zaz):1:3:nan: ++%*3Lf:nan(09A_Zaz):0:3: ++%3Lf:0:1:1:0x0: ++%*3Lf:0:0:1: ++%3Lf:0.0:1:3:0x0: ++%*3Lf:0.0:0:3: ++%3Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3Lf:23441674165664682593913711430784253952:1:3:0x1.d4p+7: ++%*3Lf:23441674165664682593913711430784253952:0:3: ++%3Lf:023441674165664682593913711430784253952.0:1:3:0x1.7p+4: ++%*3Lf:023441674165664682593913711430784253952.0:0:3: ++%3Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.66p+7: ++%*3Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1.1p4: ++%*3Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3Lf:infinity:1:3:inf: ++%*3Lf:infinity:0:3: ++%3Lf:+nan():0:-1: ++%*3Lf:+nan():0:-1: ++%3Lf:+nan(09A_Zaz):0:-1: ++%*3Lf:+nan(09A_Zaz):0:-1: ++%3Lf:+0:1:2:0x0: ++%*3Lf:+0:0:2: ++%3Lf:+0.0:1:3:0x0: ++%*3Lf:+0.0:0:3: ++%3Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3Lf:+23441674165664682593913711430784253952:1:3:0x1.7p+4: ++%*3Lf:+23441674165664682593913711430784253952:0:3: ++%3Lf:+023441674165664682593913711430784253952.0:1:3:0x1p1: ++%*3Lf:+023441674165664682593913711430784253952.0:0:3: ++%3Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.1p4: ++%*3Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1: ++%*3Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3Lf:+infinity:0:-1: ++%*3Lf:+infinity:0:-1: ++%4Lf::0:-1: ++%*4Lf::0:-1: ++%4Lf:-infinity:1:4:-inf: ++%*4Lf:-infinity:0:4: ++%4Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1.1p4: ++%*4Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.66p+7: ++%*4Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4Lf:-023441674165664682593913711430784253952.0:1:4:-0x1.7p+4: ++%*4Lf:-023441674165664682593913711430784253952.0:0:4: ++%4Lf:-23441674165664682593913711430784253952:1:4:-0x1.d4p+7: ++%*4Lf:-23441674165664682593913711430784253952:0:4: ++%4Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*4Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4Lf:-0.0:1:4:-0x0: ++%*4Lf:-0.0:0:4: ++%4Lf:-0:1:2:-0x0: ++%*4Lf:-0:0:2: ++%4Lf:-nan(09A_Zaz):1:4:-nan: ++%*4Lf:-nan(09A_Zaz):0:4: ++%4Lf:-nan():1:4:-nan: ++%*4Lf:-nan():0:4: ++%4Lf:nan():0:-1: ++%*4Lf:nan():0:-1: ++%4Lf:nan(09A_Zaz):0:-1: ++%*4Lf:nan(09A_Zaz):0:-1: ++%4Lf:0:1:1:0x0: ++%*4Lf:0:0:1: ++%4Lf:0.0:1:3:0x0: ++%*4Lf:0.0:0:3: ++%4Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4Lf:23441674165664682593913711430784253952:1:4:0x1.25p11: ++%*4Lf:23441674165664682593913711430784253952:0:4: ++%4Lf:023441674165664682593913711430784253952.0:1:4:0x1.d4p+7: ++%*4Lf:023441674165664682593913711430784253952.0:0:4: ++%4Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.c14p+10: ++%*4Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.66p+7: ++%*4Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4Lf:infinity:0:-1: ++%*4Lf:infinity:0:-1: ++%4Lf:+nan():1:4:nan: ++%*4Lf:+nan():0:4: ++%4Lf:+nan(09A_Zaz):1:4:nan: ++%*4Lf:+nan(09A_Zaz):0:4: ++%4Lf:+0:1:2:0x0: ++%*4Lf:+0:0:2: ++%4Lf:+0.0:1:4:0x0: ++%*4Lf:+0.0:0:4: ++%4Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4Lf:+23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*4Lf:+23441674165664682593913711430784253952:0:4: ++%4Lf:+023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*4Lf:+023441674165664682593913711430784253952.0:0:4: ++%4Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*4Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*4Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4Lf:+infinity:1:4:inf: ++%*4Lf:+infinity:0:4: ++%311Lf::0:-1: ++%*311Lf::0:-1: ++%311Lf:-infinity:1:9:-inf: ++%*311Lf:-infinity:0:9: ++%311Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:-0x1.fffffffffffffp1023: ++%*311Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*311Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311Lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*311Lf:-023441674165664682593913711430784253952.0:0:42: ++%311Lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*311Lf:-23441674165664682593913711430784253952:0:39: ++%311Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:-0x1.cc359e067a348p-1023: ++%*311Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311Lf:-0.0:1:4:-0x0: ++%*311Lf:-0.0:0:4: ++%311Lf:-0:1:2:-0x0: ++%*311Lf:-0:0:2: ++%311Lf:-nan(09A_Zaz):1:13:-nan: ++%*311Lf:-nan(09A_Zaz):0:13: ++%311Lf:-nan():1:6:-nan: ++%*311Lf:-nan():0:6: ++%311Lf:nan():1:5:nan: ++%*311Lf:nan():0:5: ++%311Lf:nan(09A_Zaz):1:12:nan: ++%*311Lf:nan(09A_Zaz):0:12: ++%311Lf:0:1:1:0x0: ++%*311Lf:0:0:1: ++%311Lf:0.0:1:3:0x0: ++%*311Lf:0.0:0:3: ++%311Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.fa3afaa0b9a04p-1023: ++%*311Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311Lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*311Lf:23441674165664682593913711430784253952:0:38: ++%311Lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*311Lf:023441674165664682593913711430784253952.0:0:41: ++%311Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*311Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%311Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311Lf:infinity:1:8:inf: ++%*311Lf:infinity:0:8: ++%311Lf:+nan():1:6:nan: ++%*311Lf:+nan():0:6: ++%311Lf:+nan(09A_Zaz):1:13:nan: ++%*311Lf:+nan(09A_Zaz):0:13: ++%311Lf:+0:1:2:0x0: ++%*311Lf:+0:0:2: ++%311Lf:+0.0:1:4:0x0: ++%*311Lf:+0.0:0:4: ++%311Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.cc359e067a348p-1023: ++%*311Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311Lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*311Lf:+23441674165664682593913711430784253952:0:39: ++%311Lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*311Lf:+023441674165664682593913711430784253952.0:0:42: ++%311Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*311Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311Lf:+infinity:1:9:inf: ++%*311Lf:+infinity:0:9: ++%350Lf::0:-1: ++%*350Lf::0:-1: ++%350Lf:-infinity:1:9:-inf: ++%*350Lf:-infinity:0:9: ++%350Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*350Lf:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*350Lf:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350Lf:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*350Lf:-023441674165664682593913711430784253952.0:0:42: ++%350Lf:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*350Lf:-23441674165664682593913711430784253952:0:39: ++%350Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*350Lf:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350Lf:-0.0:1:4:-0x0: ++%*350Lf:-0.0:0:4: ++%350Lf:-0:1:2:-0x0: ++%*350Lf:-0:0:2: ++%350Lf:-nan(09A_Zaz):1:13:-nan: ++%*350Lf:-nan(09A_Zaz):0:13: ++%350Lf:-nan():1:6:-nan: ++%*350Lf:-nan():0:6: ++%350Lf:nan():1:5:nan: ++%*350Lf:nan():0:5: ++%350Lf:nan(09A_Zaz):1:12:nan: ++%*350Lf:nan(09A_Zaz):0:12: ++%350Lf:0:1:1:0x0: ++%*350Lf:0:0:1: ++%350Lf:0.0:1:3:0x0: ++%*350Lf:0.0:0:3: ++%350Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*350Lf:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%350Lf:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*350Lf:23441674165664682593913711430784253952:0:38: ++%350Lf:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*350Lf:023441674165664682593913711430784253952.0:0:41: ++%350Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*350Lf:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%350Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*350Lf:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%350Lf:infinity:1:8:inf: ++%*350Lf:infinity:0:8: ++%350Lf:+nan():1:6:nan: ++%*350Lf:+nan():0:6: ++%350Lf:+nan(09A_Zaz):1:13:nan: ++%*350Lf:+nan(09A_Zaz):0:13: ++%350Lf:+0:1:2:0x0: ++%*350Lf:+0:0:2: ++%350Lf:+0.0:1:4:0x0: ++%*350Lf:+0.0:0:4: ++%350Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350Lf:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350Lf:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350Lf:+23441674165664682593913711430784253952:0:39: ++%350Lf:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350Lf:+023441674165664682593913711430784253952.0:0:42: ++%350Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350Lf:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350Lf:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350Lf:+infinity:1:9:inf: ++%*350Lf:+infinity:0:9: ++%3Lf: :0:-1: ++%*3Lf: :0:-1: ++%3Lf: -infinity:0:-1: ++%*3Lf: -infinity:0:-1: ++%3Lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1: ++%*3Lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3Lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.1p+4: ++%*3Lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3Lf: -023441674165664682593913711430784253952.0:1:4:-0x1p1: ++%*3Lf: -023441674165664682593913711430784253952.0:0:4: ++%3Lf: -23441674165664682593913711430784253952:1:4:-0x1.7p+4: ++%*3Lf: -23441674165664682593913711430784253952:0:4: ++%3Lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*3Lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3Lf: -0.0:1:4:-0x0: ++%*3Lf: -0.0:0:4: ++%3Lf: -0:1:3:-0x0: ++%*3Lf: -0:0:3: ++%3Lf: -nan(09A_Zaz):0:-1: ++%*3Lf: -nan(09A_Zaz):0:-1: ++%3Lf: -nan():0:-1: ++%*3Lf: -nan():0:-1: ++%3Lf: nan():1:4:nan: ++%*3Lf: nan():0:4: ++%3Lf: nan(09A_Zaz):1:4:nan: ++%*3Lf: nan(09A_Zaz):0:4: ++%3Lf: 0:1:2:0x0: ++%*3Lf: 0:0:2: ++%3Lf: 0.0:1:4:0x0: ++%*3Lf: 0.0:0:4: ++%3Lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3Lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3Lf: 23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*3Lf: 23441674165664682593913711430784253952:0:4: ++%3Lf: 023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*3Lf: 023441674165664682593913711430784253952.0:0:4: ++%3Lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*3Lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*3Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3Lf: infinity:1:4:inf: ++%*3Lf: infinity:0:4: ++%3Lf: +nan():0:-1: ++%*3Lf: +nan():0:-1: ++%3Lf: +nan(09A_Zaz):0:-1: ++%*3Lf: +nan(09A_Zaz):0:-1: ++%3Lf: +0:1:3:0x0: ++%*3Lf: +0:0:3: ++%3Lf: +0.0:1:4:0x0: ++%*3Lf: +0.0:0:4: ++%3Lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3Lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3Lf: +23441674165664682593913711430784253952:1:4:0x1.7p+4: ++%*3Lf: +23441674165664682593913711430784253952:0:4: ++%3Lf: +023441674165664682593913711430784253952.0:1:4:0x1p1: ++%*3Lf: +023441674165664682593913711430784253952.0:0:4: ++%3Lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.1p4: ++%*3Lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3Lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1: ++%*3Lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3Lf: +infinity:0:-1: ++%*3Lf: +infinity:0:-1: ++%350Lf: :0:-1: ++%*350Lf: :0:-1: ++%350Lf: -infinity:1:10:-inf: ++%*350Lf: -infinity:0:10: ++%350Lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:-0x1.fffffffffffffp1023: ++%*350Lf: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350Lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:-0x1.fffffffffffffp1023: ++%*350Lf: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350Lf: -023441674165664682593913711430784253952.0:1:43:-0x1.1a2b3c4d5e6ffp124: ++%*350Lf: -023441674165664682593913711430784253952.0:0:43: ++%350Lf: -23441674165664682593913711430784253952:1:40:-0x1.1a2b3c4d5e6ffp124: ++%*350Lf: -23441674165664682593913711430784253952:0:40: ++%350Lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:-0x1p-1022: ++%*350Lf: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350Lf: -0.0:1:5:-0x0: ++%*350Lf: -0.0:0:5: ++%350Lf: -0:1:3:-0x0: ++%*350Lf: -0:0:3: ++%350Lf: -nan(09A_Zaz):1:14:-nan: ++%*350Lf: -nan(09A_Zaz):0:14: ++%350Lf: -nan():1:7:-nan: ++%*350Lf: -nan():0:7: ++%350Lf: nan():1:6:nan: ++%*350Lf: nan():0:6: ++%350Lf: nan(09A_Zaz):1:13:nan: ++%*350Lf: nan(09A_Zaz):0:13: ++%350Lf: 0:1:2:0x0: ++%*350Lf: 0:0:2: ++%350Lf: 0.0:1:4:0x0: ++%*350Lf: 0.0:0:4: ++%350Lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350Lf: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350Lf: 23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350Lf: 23441674165664682593913711430784253952:0:39: ++%350Lf: 023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350Lf: 023441674165664682593913711430784253952.0:0:42: ++%350Lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350Lf: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350Lf: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350Lf: infinity:1:9:inf: ++%*350Lf: infinity:0:9: ++%350Lf: +nan():1:7:nan: ++%*350Lf: +nan():0:7: ++%350Lf: +nan(09A_Zaz):1:14:nan: ++%*350Lf: +nan(09A_Zaz):0:14: ++%350Lf: +0:1:3:0x0: ++%*350Lf: +0:0:3: ++%350Lf: +0.0:1:5:0x0: ++%*350Lf: +0.0:0:5: ++%350Lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:0x1p-1022: ++%*350Lf: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350Lf: +23441674165664682593913711430784253952:1:40:0x1.1a2b3c4d5e6ffp124: ++%*350Lf: +23441674165664682593913711430784253952:0:40: ++%350Lf: +023441674165664682593913711430784253952.0:1:43:0x1.1a2b3c4d5e6ffp124: ++%*350Lf: +023441674165664682593913711430784253952.0:0:43: ++%350Lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:0x1.fffffffffffffp1023: ++%*350Lf: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350Lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:0x1.fffffffffffffp1023: ++%*350Lf: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350Lf: +infinity:1:10:inf: ++%*350Lf: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input +new file mode 100644 +index 0000000000000000..03dedfca801bf8ca +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input +@@ -0,0 +1,558 @@ ++%LF::0:-1: ++%*LF::0:-1: ++%LF:-INFINITY:1:9:-inf: ++%*LF:-INFINITY:0:9: ++%LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%LF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*LF:-023441674165664682593913711430784253952.0:0:42: ++%LF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*LF:-23441674165664682593913711430784253952:0:39: ++%LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%LF:-0.0:1:4:-0x0: ++%*LF:-0.0:0:4: ++%LF:-0:1:2:-0x0: ++%*LF:-0:0:2: ++%LF:-NAN(09A_Zaz):1:13:-nan: ++%*LF:-NAN(09A_Zaz):0:13: ++%LF:-NAN():1:6:-nan: ++%*LF:-NAN():0:6: ++%LF:NAN():1:5:nan: ++%*LF:NAN():0:5: ++%LF:NAN(09A_Zaz):1:12:nan: ++%*LF:NAN(09A_Zaz):0:12: ++%LF:0:1:1:0x0: ++%*LF:0:0:1: ++%LF:0.0:1:3:0x0: ++%*LF:0.0:0:3: ++%LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%LF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*LF:23441674165664682593913711430784253952:0:38: ++%LF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*LF:023441674165664682593913711430784253952.0:0:41: ++%LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%LF:INFINITY:1:8:inf: ++%*LF:INFINITY:0:8: ++%LF:+NAN():1:6:nan: ++%*LF:+NAN():0:6: ++%LF:+NAN(09A_Zaz):1:13:nan: ++%*LF:+NAN(09A_Zaz):0:13: ++%LF:+0:1:2:0x0: ++%*LF:+0:0:2: ++%LF:+0.0:1:4:0x0: ++%*LF:+0.0:0:4: ++%LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%LF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*LF:+23441674165664682593913711430784253952:0:39: ++%LF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*LF:+023441674165664682593913711430784253952.0:0:42: ++%LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%LF:+INFINITY:1:9:inf: ++%*LF:+INFINITY:0:9: ++%1LF::0:-1: ++%*1LF::0:-1: ++%1LF:-INFINITY:0:-1: ++%*1LF:-INFINITY:0:-1: ++%1LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1LF:-023441674165664682593913711430784253952.0:0:-1: ++%*1LF:-023441674165664682593913711430784253952.0:0:-1: ++%1LF:-23441674165664682593913711430784253952:0:-1: ++%*1LF:-23441674165664682593913711430784253952:0:-1: ++%1LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1LF:-0.0:0:-1: ++%*1LF:-0.0:0:-1: ++%1LF:-0:0:-1: ++%*1LF:-0:0:-1: ++%1LF:-NAN(09A_Zaz):0:-1: ++%*1LF:-NAN(09A_Zaz):0:-1: ++%1LF:-NAN():0:-1: ++%*1LF:-NAN():0:-1: ++%1LF:NAN():0:-1: ++%*1LF:NAN():0:-1: ++%1LF:NAN(09A_Zaz):0:-1: ++%*1LF:NAN(09A_Zaz):0:-1: ++%1LF:0:1:1:0x0: ++%*1LF:0:0:1: ++%1LF:0.0:1:1:0x0: ++%*1LF:0.0:0:1: ++%1LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:1:0x0: ++%*1LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:1: ++%1LF:23441674165664682593913711430784253952:1:1:0x1p1: ++%*1LF:23441674165664682593913711430784253952:0:1: ++%1LF:023441674165664682593913711430784253952.0:1:1:0x0: ++%*1LF:023441674165664682593913711430784253952.0:0:1: ++%1LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:1:0x1: ++%*1LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:1: ++%1LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:1:0x0: ++%*1LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:1: ++%1LF:INFINITY:0:-1: ++%*1LF:INFINITY:0:-1: ++%1LF:+NAN():0:-1: ++%*1LF:+NAN():0:-1: ++%1LF:+NAN(09A_Zaz):0:-1: ++%*1LF:+NAN(09A_Zaz):0:-1: ++%1LF:+0:0:-1: ++%*1LF:+0:0:-1: ++%1LF:+0.0:0:-1: ++%*1LF:+0.0:0:-1: ++%1LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%*1LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:-1: ++%1LF:+23441674165664682593913711430784253952:0:-1: ++%*1LF:+23441674165664682593913711430784253952:0:-1: ++%1LF:+023441674165664682593913711430784253952.0:0:-1: ++%*1LF:+023441674165664682593913711430784253952.0:0:-1: ++%1LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%*1LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:-1: ++%1LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%*1LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:-1: ++%1LF:+INFINITY:0:-1: ++%*1LF:+INFINITY:0:-1: ++%2LF::0:-1: ++%*2LF::0:-1: ++%2LF:-INFINITY:0:-1: ++%*2LF:-INFINITY:0:-1: ++%2LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:-0x0: ++%*2LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:-0x1: ++%*2LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2LF:-023441674165664682593913711430784253952.0:1:2:-0x0: ++%*2LF:-023441674165664682593913711430784253952.0:0:2: ++%2LF:-23441674165664682593913711430784253952:1:2:-0x1p1: ++%*2LF:-23441674165664682593913711430784253952:0:2: ++%2LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:-0x0: ++%*2LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2LF:-0.0:1:2:-0x0: ++%*2LF:-0.0:0:2: ++%2LF:-0:1:2:-0x0: ++%*2LF:-0:0:2: ++%2LF:-NAN(09A_Zaz):0:-1: ++%*2LF:-NAN(09A_Zaz):0:-1: ++%2LF:-NAN():0:-1: ++%*2LF:-NAN():0:-1: ++%2LF:NAN():0:-1: ++%*2LF:NAN():0:-1: ++%2LF:NAN(09A_Zaz):0:-1: ++%*2LF:NAN(09A_Zaz):0:-1: ++%2LF:0:1:1:0x0: ++%*2LF:0:0:1: ++%2LF:0.0:1:2:0x0: ++%*2LF:0.0:0:2: ++%2LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2LF:23441674165664682593913711430784253952:1:2:0x1.7p+4: ++%*2LF:23441674165664682593913711430784253952:0:2: ++%2LF:023441674165664682593913711430784253952.0:1:2:0x1p1: ++%*2LF:023441674165664682593913711430784253952.0:0:2: ++%2LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1.1p+4: ++%*2LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x1: ++%*2LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2LF:INFINITY:0:-1: ++%*2LF:INFINITY:0:-1: ++%2LF:+NAN():0:-1: ++%*2LF:+NAN():0:-1: ++%2LF:+NAN(09A_Zaz):0:-1: ++%*2LF:+NAN(09A_Zaz):0:-1: ++%2LF:+0:1:2:0x0: ++%*2LF:+0:0:2: ++%2LF:+0.0:1:2:0x0: ++%*2LF:+0.0:0:2: ++%2LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:2:0x0: ++%*2LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:2: ++%2LF:+23441674165664682593913711430784253952:1:2:0x1p1: ++%*2LF:+23441674165664682593913711430784253952:0:2: ++%2LF:+023441674165664682593913711430784253952.0:1:2:0x0: ++%*2LF:+023441674165664682593913711430784253952.0:0:2: ++%2LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:2:0x1: ++%*2LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:2: ++%2LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:2:0x0: ++%*2LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:2: ++%2LF:+INFINITY:0:-1: ++%*2LF:+INFINITY:0:-1: ++%3LF::0:-1: ++%*3LF::0:-1: ++%3LF:-INFINITY:0:-1: ++%*3LF:-INFINITY:0:-1: ++%3LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:-0x1: ++%*3LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:-0x1.1p+4: ++%*3LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3LF:-023441674165664682593913711430784253952.0:1:3:-0x1p1: ++%*3LF:-023441674165664682593913711430784253952.0:0:3: ++%3LF:-23441674165664682593913711430784253952:1:3:-0x1.7p+4: ++%*3LF:-23441674165664682593913711430784253952:0:3: ++%3LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:-0x0: ++%*3LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3LF:-0.0:1:3:-0x0: ++%*3LF:-0.0:0:3: ++%3LF:-0:1:2:-0x0: ++%*3LF:-0:0:2: ++%3LF:-NAN(09A_Zaz):0:-1: ++%*3LF:-NAN(09A_Zaz):0:-1: ++%3LF:-NAN():0:-1: ++%*3LF:-NAN():0:-1: ++%3LF:NAN():1:3:nan: ++%*3LF:NAN():0:3: ++%3LF:NAN(09A_Zaz):1:3:nan: ++%*3LF:NAN(09A_Zaz):0:3: ++%3LF:0:1:1:0x0: ++%*3LF:0:0:1: ++%3LF:0.0:1:3:0x0: ++%*3LF:0.0:0:3: ++%3LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3LF:23441674165664682593913711430784253952:1:3:0x1.d4p+7: ++%*3LF:23441674165664682593913711430784253952:0:3: ++%3LF:023441674165664682593913711430784253952.0:1:3:0x1.7p+4: ++%*3LF:023441674165664682593913711430784253952.0:0:3: ++%3LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.66p+7: ++%*3LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1.1p4: ++%*3LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3LF:INFINITY:1:3:inf: ++%*3LF:INFINITY:0:3: ++%3LF:+NAN():0:-1: ++%*3LF:+NAN():0:-1: ++%3LF:+NAN(09A_Zaz):0:-1: ++%*3LF:+NAN(09A_Zaz):0:-1: ++%3LF:+0:1:2:0x0: ++%*3LF:+0:0:2: ++%3LF:+0.0:1:3:0x0: ++%*3LF:+0.0:0:3: ++%3LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:3:0x0: ++%*3LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:3: ++%3LF:+23441674165664682593913711430784253952:1:3:0x1.7p+4: ++%*3LF:+23441674165664682593913711430784253952:0:3: ++%3LF:+023441674165664682593913711430784253952.0:1:3:0x1p1: ++%*3LF:+023441674165664682593913711430784253952.0:0:3: ++%3LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:3:0x1.1p4: ++%*3LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:3: ++%3LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:3:0x1: ++%*3LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:3: ++%3LF:+INFINITY:0:-1: ++%*3LF:+INFINITY:0:-1: ++%4LF::0:-1: ++%*4LF::0:-1: ++%4LF:-INFINITY:1:4:-inf: ++%*4LF:-INFINITY:0:4: ++%4LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1.1p4: ++%*4LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.66p+7: ++%*4LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4LF:-023441674165664682593913711430784253952.0:1:4:-0x1.7p+4: ++%*4LF:-023441674165664682593913711430784253952.0:0:4: ++%4LF:-23441674165664682593913711430784253952:1:4:-0x1.d4p+7: ++%*4LF:-23441674165664682593913711430784253952:0:4: ++%4LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*4LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4LF:-0.0:1:4:-0x0: ++%*4LF:-0.0:0:4: ++%4LF:-0:1:2:-0x0: ++%*4LF:-0:0:2: ++%4LF:-NAN(09A_Zaz):1:4:-nan: ++%*4LF:-NAN(09A_Zaz):0:4: ++%4LF:-NAN():1:4:-nan: ++%*4LF:-NAN():0:4: ++%4LF:NAN():0:-1: ++%*4LF:NAN():0:-1: ++%4LF:NAN(09A_Zaz):0:-1: ++%*4LF:NAN(09A_Zaz):0:-1: ++%4LF:0:1:1:0x0: ++%*4LF:0:0:1: ++%4LF:0.0:1:3:0x0: ++%*4LF:0.0:0:3: ++%4LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4LF:23441674165664682593913711430784253952:1:4:0x1.25p11: ++%*4LF:23441674165664682593913711430784253952:0:4: ++%4LF:023441674165664682593913711430784253952.0:1:4:0x1.d4p+7: ++%*4LF:023441674165664682593913711430784253952.0:0:4: ++%4LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.c14p+10: ++%*4LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.66p+7: ++%*4LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4LF:INFINITY:0:-1: ++%*4LF:INFINITY:0:-1: ++%4LF:+NAN():1:4:nan: ++%*4LF:+NAN():0:4: ++%4LF:+NAN(09A_Zaz):1:4:nan: ++%*4LF:+NAN(09A_Zaz):0:4: ++%4LF:+0:1:2:0x0: ++%*4LF:+0:0:2: ++%4LF:+0.0:1:4:0x0: ++%*4LF:+0.0:0:4: ++%4LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*4LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%4LF:+23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*4LF:+23441674165664682593913711430784253952:0:4: ++%4LF:+023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*4LF:+023441674165664682593913711430784253952.0:0:4: ++%4LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*4LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%4LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*4LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%4LF:+INFINITY:1:4:inf: ++%*4LF:+INFINITY:0:4: ++%311LF::0:-1: ++%*311LF::0:-1: ++%311LF:-INFINITY:1:9:-inf: ++%*311LF:-INFINITY:0:9: ++%311LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:-0x1.fffffffffffffp1023: ++%*311LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*311LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311LF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*311LF:-023441674165664682593913711430784253952.0:0:42: ++%311LF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*311LF:-23441674165664682593913711430784253952:0:39: ++%311LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:-0x1.cc359e067a348p-1023: ++%*311LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311LF:-0.0:1:4:-0x0: ++%*311LF:-0.0:0:4: ++%311LF:-0:1:2:-0x0: ++%*311LF:-0:0:2: ++%311LF:-NAN(09A_Zaz):1:13:-nan: ++%*311LF:-NAN(09A_Zaz):0:13: ++%311LF:-NAN():1:6:-nan: ++%*311LF:-NAN():0:6: ++%311LF:NAN():1:5:nan: ++%*311LF:NAN():0:5: ++%311LF:NAN(09A_Zaz):1:12:nan: ++%*311LF:NAN(09A_Zaz):0:12: ++%311LF:0:1:1:0x0: ++%*311LF:0:0:1: ++%311LF:0.0:1:3:0x0: ++%*311LF:0.0:0:3: ++%311LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.fa3afaa0b9a04p-1023: ++%*311LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311LF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*311LF:23441674165664682593913711430784253952:0:38: ++%311LF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*311LF:023441674165664682593913711430784253952.0:0:41: ++%311LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*311LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%311LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311LF:INFINITY:1:8:inf: ++%*311LF:INFINITY:0:8: ++%311LF:+NAN():1:6:nan: ++%*311LF:+NAN():0:6: ++%311LF:+NAN(09A_Zaz):1:13:nan: ++%*311LF:+NAN(09A_Zaz):0:13: ++%311LF:+0:1:2:0x0: ++%*311LF:+0:0:2: ++%311LF:+0.0:1:4:0x0: ++%*311LF:+0.0:0:4: ++%311LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:311:0x1.cc359e067a348p-1023: ++%*311LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:311: ++%311LF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*311LF:+23441674165664682593913711430784253952:0:39: ++%311LF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*311LF:+023441674165664682593913711430784253952.0:0:42: ++%311LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*311LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%311LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:311:0x1.fffffffffffffp1023: ++%*311LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:311: ++%311LF:+INFINITY:1:9:inf: ++%*311LF:+INFINITY:0:9: ++%350LF::0:-1: ++%*350LF::0:-1: ++%350LF:-INFINITY:1:9:-inf: ++%*350LF:-INFINITY:0:9: ++%350LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:-0x1.fffffffffffffp1023: ++%*350LF:-0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:-0x1.fffffffffffffp1023: ++%*350LF:-179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350LF:-023441674165664682593913711430784253952.0:1:42:-0x1.1a2b3c4d5e6ffp124: ++%*350LF:-023441674165664682593913711430784253952.0:0:42: ++%350LF:-23441674165664682593913711430784253952:1:39:-0x1.1a2b3c4d5e6ffp124: ++%*350LF:-23441674165664682593913711430784253952:0:39: ++%350LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:-0x1p-1022: ++%*350LF:-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350LF:-0.0:1:4:-0x0: ++%*350LF:-0.0:0:4: ++%350LF:-0:1:2:-0x0: ++%*350LF:-0:0:2: ++%350LF:-NAN(09A_Zaz):1:13:-nan: ++%*350LF:-NAN(09A_Zaz):0:13: ++%350LF:-NAN():1:6:-nan: ++%*350LF:-NAN():0:6: ++%350LF:NAN():1:5:nan: ++%*350LF:NAN():0:5: ++%350LF:NAN(09A_Zaz):1:12:nan: ++%*350LF:NAN(09A_Zaz):0:12: ++%350LF:0:1:1:0x0: ++%*350LF:0:0:1: ++%350LF:0.0:1:3:0x0: ++%*350LF:0.0:0:3: ++%350LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:341:0x1p-1022: ++%*350LF:0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:341: ++%350LF:23441674165664682593913711430784253952:1:38:0x1.1a2b3c4d5e6ffp124: ++%*350LF:23441674165664682593913711430784253952:0:38: ++%350LF:023441674165664682593913711430784253952.0:1:41:0x1.1a2b3c4d5e6ffp124: ++%*350LF:023441674165664682593913711430784253952.0:0:41: ++%350LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:309:0x1.fffffffffffffp1023: ++%*350LF:179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:309: ++%350LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:312:0x1.fffffffffffffp1023: ++%*350LF:0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:312: ++%350LF:INFINITY:1:8:inf: ++%*350LF:INFINITY:0:8: ++%350LF:+NAN():1:6:nan: ++%*350LF:+NAN():0:6: ++%350LF:+NAN(09A_Zaz):1:13:nan: ++%*350LF:+NAN(09A_Zaz):0:13: ++%350LF:+0:1:2:0x0: ++%*350LF:+0:0:2: ++%350LF:+0.0:1:4:0x0: ++%*350LF:+0.0:0:4: ++%350LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350LF:+0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350LF:+23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350LF:+23441674165664682593913711430784253952:0:39: ++%350LF:+023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350LF:+023441674165664682593913711430784253952.0:0:42: ++%350LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350LF:+179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350LF:+0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350LF:+INFINITY:1:9:inf: ++%*350LF:+INFINITY:0:9: ++%3LF: :0:-1: ++%*3LF: :0:-1: ++%3LF: -INFINITY:0:-1: ++%*3LF: -INFINITY:0:-1: ++%3LF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:-0x1: ++%*3LF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3LF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:-0x1.1p+4: ++%*3LF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3LF: -023441674165664682593913711430784253952.0:1:4:-0x1p1: ++%*3LF: -023441674165664682593913711430784253952.0:0:4: ++%3LF: -23441674165664682593913711430784253952:1:4:-0x1.7p+4: ++%*3LF: -23441674165664682593913711430784253952:0:4: ++%3LF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:-0x0: ++%*3LF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3LF: -0.0:1:4:-0x0: ++%*3LF: -0.0:0:4: ++%3LF: -0:1:3:-0x0: ++%*3LF: -0:0:3: ++%3LF: -NAN(09A_Zaz):0:-1: ++%*3LF: -NAN(09A_Zaz):0:-1: ++%3LF: -NAN():0:-1: ++%*3LF: -NAN():0:-1: ++%3LF: NAN():1:4:nan: ++%*3LF: NAN():0:4: ++%3LF: NAN(09A_Zaz):1:4:nan: ++%*3LF: NAN(09A_Zaz):0:4: ++%3LF: 0:1:2:0x0: ++%*3LF: 0:0:2: ++%3LF: 0.0:1:4:0x0: ++%*3LF: 0.0:0:4: ++%3LF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3LF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3LF: 23441674165664682593913711430784253952:1:4:0x1.d4p+7: ++%*3LF: 23441674165664682593913711430784253952:0:4: ++%3LF: 023441674165664682593913711430784253952.0:1:4:0x1.7p+4: ++%*3LF: 023441674165664682593913711430784253952.0:0:4: ++%3LF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.66p+7: ++%*3LF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1.1p4: ++%*3LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3LF: INFINITY:1:4:inf: ++%*3LF: INFINITY:0:4: ++%3LF: +NAN():0:-1: ++%*3LF: +NAN():0:-1: ++%3LF: +NAN(09A_Zaz):0:-1: ++%*3LF: +NAN(09A_Zaz):0:-1: ++%3LF: +0:1:3:0x0: ++%*3LF: +0:0:3: ++%3LF: +0.0:1:4:0x0: ++%*3LF: +0.0:0:4: ++%3LF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:4:0x0: ++%*3LF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:4: ++%3LF: +23441674165664682593913711430784253952:1:4:0x1.7p+4: ++%*3LF: +23441674165664682593913711430784253952:0:4: ++%3LF: +023441674165664682593913711430784253952.0:1:4:0x1p1: ++%*3LF: +023441674165664682593913711430784253952.0:0:4: ++%3LF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:4:0x1.1p4: ++%*3LF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:4: ++%3LF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:4:0x1: ++%*3LF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:4: ++%3LF: +INFINITY:0:-1: ++%*3LF: +INFINITY:0:-1: ++%350LF: :0:-1: ++%*350LF: :0:-1: ++%350LF: -INFINITY:1:10:-inf: ++%*350LF: -INFINITY:0:10: ++%350LF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:-0x1.fffffffffffffp1023: ++%*350LF: -0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350LF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:-0x1.fffffffffffffp1023: ++%*350LF: -179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350LF: -023441674165664682593913711430784253952.0:1:43:-0x1.1a2b3c4d5e6ffp124: ++%*350LF: -023441674165664682593913711430784253952.0:0:43: ++%350LF: -23441674165664682593913711430784253952:1:40:-0x1.1a2b3c4d5e6ffp124: ++%*350LF: -23441674165664682593913711430784253952:0:40: ++%350LF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:-0x1p-1022: ++%*350LF: -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350LF: -0.0:1:5:-0x0: ++%*350LF: -0.0:0:5: ++%350LF: -0:1:3:-0x0: ++%*350LF: -0:0:3: ++%350LF: -NAN(09A_Zaz):1:14:-nan: ++%*350LF: -NAN(09A_Zaz):0:14: ++%350LF: -NAN():1:7:-nan: ++%*350LF: -NAN():0:7: ++%350LF: NAN():1:6:nan: ++%*350LF: NAN():0:6: ++%350LF: NAN(09A_Zaz):1:13:nan: ++%*350LF: NAN(09A_Zaz):0:13: ++%350LF: 0:1:2:0x0: ++%*350LF: 0:0:2: ++%350LF: 0.0:1:4:0x0: ++%*350LF: 0.0:0:4: ++%350LF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:342:0x1p-1022: ++%*350LF: 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:342: ++%350LF: 23441674165664682593913711430784253952:1:39:0x1.1a2b3c4d5e6ffp124: ++%*350LF: 23441674165664682593913711430784253952:0:39: ++%350LF: 023441674165664682593913711430784253952.0:1:42:0x1.1a2b3c4d5e6ffp124: ++%*350LF: 023441674165664682593913711430784253952.0:0:42: ++%350LF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:310:0x1.fffffffffffffp1023: ++%*350LF: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:310: ++%350LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:313:0x1.fffffffffffffp1023: ++%*350LF: 0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:313: ++%350LF: INFINITY:1:9:inf: ++%*350LF: INFINITY:0:9: ++%350LF: +NAN():1:7:nan: ++%*350LF: +NAN():0:7: ++%350LF: +NAN(09A_Zaz):1:14:nan: ++%*350LF: +NAN(09A_Zaz):0:14: ++%350LF: +0:1:3:0x0: ++%*350LF: +0:0:3: ++%350LF: +0.0:1:5:0x0: ++%*350LF: +0.0:0:5: ++%350LF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:1:343:0x1p-1022: ++%*350LF: +0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072013830902327173324:0:343: ++%350LF: +23441674165664682593913711430784253952:1:40:0x1.1a2b3c4d5e6ffp124: ++%*350LF: +23441674165664682593913711430784253952:0:40: ++%350LF: +023441674165664682593913711430784253952.0:1:43:0x1.1a2b3c4d5e6ffp124: ++%*350LF: +023441674165664682593913711430784253952.0:0:43: ++%350LF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:1:311:0x1.fffffffffffffp1023: ++%*350LF: +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368:0:311: ++%350LF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:1:314:0x1.fffffffffffffp1023: ++%*350LF: +0179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0:0:314: ++%350LF: +INFINITY:1:10:inf: ++%*350LF: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input +new file mode 100644 +index 0000000000000000..ed8aac9247f36c61 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input +@@ -0,0 +1,682 @@ ++%Lg::0:-1: ++%*Lg::0:-1: ++%Lg:-infinity:1:9:-inf: ++%*Lg:-infinity:0:9: ++%Lg:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*Lg:-0xf.ffffffffffff8p+1020:0:24: ++%Lg:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*Lg:-0x7.ffffffffffffcp1021:0:23: ++%Lg:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*Lg:-0x2.3456789abcdfep+123:0:23: ++%Lg:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*Lg:-0x2.3456789abcdfep0123:0:23: ++%Lg:-0x8p-1025:1:10:-0x1p-1022: ++%*Lg:-0x8p-1025:0:10: ++%Lg:-0x0p+0:1:7:-0x0: ++%*Lg:-0x0p+0:0:7: ++%Lg:-0x0p0:1:6:-0x0: ++%*Lg:-0x0p0:0:6: ++%Lg:-nan(09A_Zaz):1:13:-nan: ++%*Lg:-nan(09A_Zaz):0:13: ++%Lg:-nan():1:6:-nan: ++%*Lg:-nan():0:6: ++%Lg:nan():1:5:nan: ++%*Lg:nan():0:5: ++%Lg:nan(09A_Zaz):1:12:nan: ++%*Lg:nan(09A_Zaz):0:12: ++%Lg:0x0p0:1:5:0x0: ++%*Lg:0x0p0:0:5: ++%Lg:0x0p+0:1:6:0x0: ++%*Lg:0x0p+0:0:6: ++%Lg:0x8p-1025:1:9:0x1p-1022: ++%*Lg:0x8p-1025:0:9: ++%Lg:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*Lg:0x2.3456789abcdfep0123:0:22: ++%Lg:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*Lg:0x2.3456789abcdfep+123:0:22: ++%Lg:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*Lg:0x7.ffffffffffffcp1021:0:22: ++%Lg:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*Lg:0xf.ffffffffffff8p+1020:0:23: ++%Lg:infinity:1:8:inf: ++%*Lg:infinity:0:8: ++%Lg:+nan():1:6:nan: ++%*Lg:+nan():0:6: ++%Lg:+nan(09A_Zaz):1:13:nan: ++%*Lg:+nan(09A_Zaz):0:13: ++%Lg:+0x0p0:1:6:0x0: ++%*Lg:+0x0p0:0:6: ++%Lg:+0x0p+0:1:7:0x0: ++%*Lg:+0x0p+0:0:7: ++%Lg:+0x8p-1025:1:10:0x1p-1022: ++%*Lg:+0x8p-1025:0:10: ++%Lg:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*Lg:+0x2.3456789abcdfep0123:0:23: ++%Lg:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*Lg:+0x2.3456789abcdfep+123:0:23: ++%Lg:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*Lg:+0x7.ffffffffffffcp1021:0:23: ++%Lg:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*Lg:+0xf.ffffffffffff8p+1020:0:24: ++%Lg:+infinity:1:9:inf: ++%*Lg:+infinity:0:9: ++%1Lg::0:-1: ++%*1Lg::0:-1: ++%1Lg:-infinity:0:-1: ++%*1Lg:-infinity:0:-1: ++%1Lg:-0xf.ffffffffffff8p+1020:0:-1: ++%*1Lg:-0xf.ffffffffffff8p+1020:0:-1: ++%1Lg:-0x7.ffffffffffffcp1021:0:-1: ++%*1Lg:-0x7.ffffffffffffcp1021:0:-1: ++%1Lg:-0x2.3456789abcdfep+123:0:-1: ++%*1Lg:-0x2.3456789abcdfep+123:0:-1: ++%1Lg:-0x2.3456789abcdfep0123:0:-1: ++%*1Lg:-0x2.3456789abcdfep0123:0:-1: ++%1Lg:-0x8p-1025:0:-1: ++%*1Lg:-0x8p-1025:0:-1: ++%1Lg:-0x0p+0:0:-1: ++%*1Lg:-0x0p+0:0:-1: ++%1Lg:-0x0p0:0:-1: ++%*1Lg:-0x0p0:0:-1: ++%1Lg:-nan(09A_Zaz):0:-1: ++%*1Lg:-nan(09A_Zaz):0:-1: ++%1Lg:-nan():0:-1: ++%*1Lg:-nan():0:-1: ++%1Lg:nan():0:-1: ++%*1Lg:nan():0:-1: ++%1Lg:nan(09A_Zaz):0:-1: ++%*1Lg:nan(09A_Zaz):0:-1: ++%1Lg:0x0p0:1:1:0x0: ++%*1Lg:0x0p0:0:1: ++%1Lg:0x0p+0:1:1:0x0: ++%*1Lg:0x0p+0:0:1: ++%1Lg:0x8p-1025:1:1:0x0: ++%*1Lg:0x8p-1025:0:1: ++%1Lg:0x2.3456789abcdfep0123:1:1:0x0: ++%*1Lg:0x2.3456789abcdfep0123:0:1: ++%1Lg:0x2.3456789abcdfep+123:1:1:0x0: ++%*1Lg:0x2.3456789abcdfep+123:0:1: ++%1Lg:0x7.ffffffffffffcp1021:1:1:0x0: ++%*1Lg:0x7.ffffffffffffcp1021:0:1: ++%1Lg:0xf.ffffffffffff8p+1020:1:1:0x0: ++%*1Lg:0xf.ffffffffffff8p+1020:0:1: ++%1Lg:infinity:0:-1: ++%*1Lg:infinity:0:-1: ++%1Lg:+nan():0:-1: ++%*1Lg:+nan():0:-1: ++%1Lg:+nan(09A_Zaz):0:-1: ++%*1Lg:+nan(09A_Zaz):0:-1: ++%1Lg:+0x0p0:0:-1: ++%*1Lg:+0x0p0:0:-1: ++%1Lg:+0x0p+0:0:-1: ++%*1Lg:+0x0p+0:0:-1: ++%1Lg:+0x8p-1025:0:-1: ++%*1Lg:+0x8p-1025:0:-1: ++%1Lg:+0x2.3456789abcdfep0123:0:-1: ++%*1Lg:+0x2.3456789abcdfep0123:0:-1: ++%1Lg:+0x2.3456789abcdfep+123:0:-1: ++%*1Lg:+0x2.3456789abcdfep+123:0:-1: ++%1Lg:+0x7.ffffffffffffcp1021:0:-1: ++%*1Lg:+0x7.ffffffffffffcp1021:0:-1: ++%1Lg:+0xf.ffffffffffff8p+1020:0:-1: ++%*1Lg:+0xf.ffffffffffff8p+1020:0:-1: ++%1Lg:+infinity:0:-1: ++%*1Lg:+infinity:0:-1: ++%2Lg::0:-1: ++%*2Lg::0:-1: ++%2Lg:-infinity:0:-1: ++%*2Lg:-infinity:0:-1: ++%2Lg:-0xf.ffffffffffff8p+1020:1:2:-0x0: ++%*2Lg:-0xf.ffffffffffff8p+1020:0:2: ++%2Lg:-0x7.ffffffffffffcp1021:1:2:-0x0: ++%*2Lg:-0x7.ffffffffffffcp1021:0:2: ++%2Lg:-0x2.3456789abcdfep+123:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdfep+123:0:2: ++%2Lg:-0x2.3456789abcdfep0123:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdfep0123:0:2: ++%2Lg:-0x8p-1025:1:2:-0x0: ++%*2Lg:-0x8p-1025:0:2: ++%2Lg:-0x0p+0:1:2:-0x0: ++%*2Lg:-0x0p+0:0:2: ++%2Lg:-0x0p0:1:2:-0x0: ++%*2Lg:-0x0p0:0:2: ++%2Lg:-nan(09A_Zaz):0:-1: ++%*2Lg:-nan(09A_Zaz):0:-1: ++%2Lg:-nan():0:-1: ++%*2Lg:-nan():0:-1: ++%2Lg:nan():0:-1: ++%*2Lg:nan():0:-1: ++%2Lg:nan(09A_Zaz):0:-1: ++%*2Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %2Lg:0x0p0:0:-1: ++# BZ12701 %*2Lg:0x0p0:0:-1: ++# BZ12701 %2Lg:0x0p+0:0:-1: ++# BZ12701 %*2Lg:0x0p+0:0:-1: ++# BZ12701 %2Lg:0x8p-1025:0:-1: ++# BZ12701 %*2Lg:0x8p-1025:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %2Lg:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*2Lg:0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %2Lg:0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*2Lg:0xf.ffffffffffff8p+1020:0:-1: ++%2Lg:infinity:0:-1: ++%*2Lg:infinity:0:-1: ++%2Lg:+nan():0:-1: ++%*2Lg:+nan():0:-1: ++%2Lg:+nan(09A_Zaz):0:-1: ++%*2Lg:+nan(09A_Zaz):0:-1: ++%2Lg:+0x0p0:1:2:0x0: ++%*2Lg:+0x0p0:0:2: ++%2Lg:+0x0p+0:1:2:0x0: ++%*2Lg:+0x0p+0:0:2: ++%2Lg:+0x8p-1025:1:2:0x0: ++%*2Lg:+0x8p-1025:0:2: ++%2Lg:+0x2.3456789abcdfep0123:1:2:0x0: ++%*2Lg:+0x2.3456789abcdfep0123:0:2: ++%2Lg:+0x2.3456789abcdfep+123:1:2:0x0: ++%*2Lg:+0x2.3456789abcdfep+123:0:2: ++%2Lg:+0x7.ffffffffffffcp1021:1:2:0x0: ++%*2Lg:+0x7.ffffffffffffcp1021:0:2: ++%2Lg:+0xf.ffffffffffff8p+1020:1:2:0x0: ++%*2Lg:+0xf.ffffffffffff8p+1020:0:2: ++%2Lg:+infinity:0:-1: ++%*2Lg:+infinity:0:-1: ++%3Lg::0:-1: ++%*3Lg::0:-1: ++%3Lg:-infinity:0:-1: ++%*3Lg:-infinity:0:-1: ++# BZ12701 %3Lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3Lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %3Lg:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3Lg:-0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3Lg:-0x8p-1025:0:-1: ++# BZ12701 %*3Lg:-0x8p-1025:0:-1: ++# BZ12701 %3Lg:-0x0p+0:0:-1: ++# BZ12701 %*3Lg:-0x0p+0:0:-1: ++# BZ12701 %3Lg:-0x0p0:0:-1: ++# BZ12701 %*3Lg:-0x0p0:0:-1: ++%3Lg:-nan(09A_Zaz):0:-1: ++%*3Lg:-nan(09A_Zaz):0:-1: ++%3Lg:-nan():0:-1: ++%*3Lg:-nan():0:-1: ++%3Lg:nan():1:3:nan: ++%*3Lg:nan():0:3: ++%3Lg:nan(09A_Zaz):1:3:nan: ++%*3Lg:nan(09A_Zaz):0:3: ++%3Lg:0x0p0:1:3:0x0: ++%*3Lg:0x0p0:0:3: ++%3Lg:0x0p+0:1:3:0x0: ++%*3Lg:0x0p+0:0:3: ++%3Lg:0x8p-1025:1:3:0x1p3: ++%*3Lg:0x8p-1025:0:3: ++%3Lg:0x2.3456789abcdfep0123:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdfep0123:0:3: ++%3Lg:0x2.3456789abcdfep+123:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdfep+123:0:3: ++%3Lg:0x7.ffffffffffffcp1021:1:3:0x1.cp2: ++%*3Lg:0x7.ffffffffffffcp1021:0:3: ++%3Lg:0xf.ffffffffffff8p+1020:1:3:0x1.ep3: ++%*3Lg:0xf.ffffffffffff8p+1020:0:3: ++%3Lg:infinity:1:3:inf: ++%*3Lg:infinity:0:3: ++%3Lg:+nan():0:-1: ++%*3Lg:+nan():0:-1: ++%3Lg:+nan(09A_Zaz):0:-1: ++%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Lg:+0x0p0:0:-1: ++# BZ12701 %*3Lg:+0x0p0:0:-1: ++# BZ12701 %3Lg:+0x0p+0:0:-1: ++# BZ12701 %*3Lg:+0x0p+0:0:-1: ++# BZ12701 %3Lg:+0x8p-1025:0:-1: ++# BZ12701 %*3Lg:+0x8p-1025:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdfep0123:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %3Lg:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %*3Lg:+0x7.ffffffffffffcp1021:0:-1: ++# BZ12701 %3Lg:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*3Lg:+0xf.ffffffffffff8p+1020:0:-1: ++%3Lg:+infinity:0:-1: ++%*3Lg:+infinity:0:-1: ++%4Lg::0:-1: ++%*4Lg::0:-1: ++%4Lg:-infinity:1:4:-inf: ++%*4Lg:-infinity:0:4: ++%4Lg:-0xf.ffffffffffff8p+1020:1:4:-0x1.ep3: ++%*4Lg:-0xf.ffffffffffff8p+1020:0:4: ++%4Lg:-0x7.ffffffffffffcp1021:1:4:-0x1.cp2: ++%*4Lg:-0x7.ffffffffffffcp1021:0:4: ++%4Lg:-0x2.3456789abcdfep+123:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdfep+123:0:4: ++%4Lg:-0x2.3456789abcdfep0123:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdfep0123:0:4: ++%4Lg:-0x8p-1025:1:4:-0x1p3: ++%*4Lg:-0x8p-1025:0:4: ++%4Lg:-0x0p+0:1:4:-0x0: ++%*4Lg:-0x0p+0:0:4: ++%4Lg:-0x0p0:1:4:-0x0: ++%*4Lg:-0x0p0:0:4: ++%4Lg:-nan(09A_Zaz):1:4:-nan: ++%*4Lg:-nan(09A_Zaz):0:4: ++%4Lg:-nan():1:4:-nan: ++%*4Lg:-nan():0:4: ++%4Lg:nan():0:-1: ++%*4Lg:nan():0:-1: ++%4Lg:nan(09A_Zaz):0:-1: ++%*4Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %4Lg:0x0p0:0:-1: ++# BZ12701 %*4Lg:0x0p0:0:-1: ++# BZ12701 %4Lg:0x0p+0:0:-1: ++# BZ12701 %*4Lg:0x0p+0:0:-1: ++# BZ12701 %4Lg:0x8p-1025:0:-1: ++# BZ12701 %*4Lg:0x8p-1025:0:-1: ++%4Lg:0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdfep0123:0:4: ++%4Lg:0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdfep+123:0:4: ++%4Lg:0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4Lg:0x7.ffffffffffffcp1021:0:4: ++%4Lg:0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4Lg:0xf.ffffffffffff8p+1020:0:4: ++%4Lg:infinity:0:-1: ++%*4Lg:infinity:0:-1: ++%4Lg:+nan():1:4:nan: ++%*4Lg:+nan():0:4: ++%4Lg:+nan(09A_Zaz):1:4:nan: ++%*4Lg:+nan(09A_Zaz):0:4: ++%4Lg:+0x0p0:1:4:0x0: ++%*4Lg:+0x0p0:0:4: ++%4Lg:+0x0p+0:1:4:0x0: ++%*4Lg:+0x0p+0:0:4: ++%4Lg:+0x8p-1025:1:4:0x1p3: ++%*4Lg:+0x8p-1025:0:4: ++%4Lg:+0x2.3456789abcdfep0123:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdfep0123:0:4: ++%4Lg:+0x2.3456789abcdfep+123:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdfep+123:0:4: ++%4Lg:+0x7.ffffffffffffcp1021:1:4:0x1.cp2: ++%*4Lg:+0x7.ffffffffffffcp1021:0:4: ++%4Lg:+0xf.ffffffffffff8p+1020:1:4:0x1.ep3: ++%*4Lg:+0xf.ffffffffffff8p+1020:0:4: ++%4Lg:+infinity:1:4:inf: ++%*4Lg:+infinity:0:4: ++%5Lg::0:-1: ++%*5Lg::0:-1: ++%5Lg:-infinity:0:-1: ++%*5Lg:-infinity:0:-1: ++%5Lg:-0xf.ffffffffffff8p+1020:1:5:-0x1.ep3: ++%*5Lg:-0xf.ffffffffffff8p+1020:0:5: ++%5Lg:-0x7.ffffffffffffcp1021:1:5:-0x1.cp2: ++%*5Lg:-0x7.ffffffffffffcp1021:0:5: ++%5Lg:-0x2.3456789abcdfep+123:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdfep+123:0:5: ++%5Lg:-0x2.3456789abcdfep0123:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdfep0123:0:5: ++# BZ12701 %5Lg:-0x8p-1025:0:-1: ++# BZ12701 %*5Lg:-0x8p-1025:0:-1: ++# BZ12701 %5Lg:-0x0p+0:0:-1: ++# BZ12701 %*5Lg:-0x0p+0:0:-1: ++# BZ12701 %5Lg:-0x0p0:0:-1: ++# BZ12701 %*5Lg:-0x0p0:0:-1: ++%5Lg:-nan(09A_Zaz):0:-1: ++%*5Lg:-nan(09A_Zaz):0:-1: ++%5Lg:-nan():0:-1: ++%*5Lg:-nan():0:-1: ++%5Lg:nan():1:5:nan: ++%*5Lg:nan():0:5: ++%5Lg:nan(09A_Zaz):0:-1: ++%*5Lg:nan(09A_Zaz):0:-1: ++%5Lg:0x0p0:1:5:0x0: ++%*5Lg:0x0p0:0:5: ++# BZ12701 %5Lg:0x0p+0:0:-1: ++# BZ12701 %*5Lg:0x0p+0:0:-1: ++# BZ12701 %5Lg:0x8p-1025:0:-1: ++# BZ12701 %*5Lg:0x8p-1025:0:-1: ++%5Lg:0x2.3456789abcdfep0123:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdfep0123:0:5: ++%5Lg:0x2.3456789abcdfep+123:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdfep+123:0:5: ++%5Lg:0x7.ffffffffffffcp1021:1:5:0x1.fcp2: ++%*5Lg:0x7.ffffffffffffcp1021:0:5: ++%5Lg:0xf.ffffffffffff8p+1020:1:5:0x1.fep3: ++%*5Lg:0xf.ffffffffffff8p+1020:0:5: ++%5Lg:infinity:0:-1: ++%*5Lg:infinity:0:-1: ++%5Lg:+nan():0:-1: ++%*5Lg:+nan():0:-1: ++%5Lg:+nan(09A_Zaz):0:-1: ++%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg:+0x0p0:0:-1: ++# BZ12701 %*5Lg:+0x0p0:0:-1: ++# BZ12701 %5Lg:+0x0p+0:0:-1: ++# BZ12701 %*5Lg:+0x0p+0:0:-1: ++# BZ12701 %5Lg:+0x8p-1025:0:-1: ++# BZ12701 %*5Lg:+0x8p-1025:0:-1: ++%5Lg:+0x2.3456789abcdfep0123:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdfep0123:0:5: ++%5Lg:+0x2.3456789abcdfep+123:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdfep+123:0:5: ++%5Lg:+0x7.ffffffffffffcp1021:1:5:0x1.cp2: ++%*5Lg:+0x7.ffffffffffffcp1021:0:5: ++%5Lg:+0xf.ffffffffffff8p+1020:1:5:0x1.ep3: ++%*5Lg:+0xf.ffffffffffff8p+1020:0:5: ++%5Lg:+infinity:0:-1: ++%*5Lg:+infinity:0:-1: ++%6Lg::0:-1: ++%*6Lg::0:-1: ++%6Lg:-infinity:0:-1: ++%*6Lg:-infinity:0:-1: ++%6Lg:-0xf.ffffffffffff8p+1020:1:6:-0x1.fep3: ++%*6Lg:-0xf.ffffffffffff8p+1020:0:6: ++%6Lg:-0x7.ffffffffffffcp1021:1:6:-0x1.fcp2: ++%*6Lg:-0x7.ffffffffffffcp1021:0:6: ++%6Lg:-0x2.3456789abcdfep+123:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdfep+123:0:6: ++%6Lg:-0x2.3456789abcdfep0123:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdfep0123:0:6: ++# BZ12701 %6Lg:-0x8p-1025:0:-1: ++# BZ12701 %*6Lg:-0x8p-1025:0:-1: ++# BZ12701 %6Lg:-0x0p+0:0:-1: ++# BZ12701 %*6Lg:-0x0p+0:0:-1: ++%6Lg:-0x0p0:1:6:-0x0: ++%*6Lg:-0x0p0:0:6: ++%6Lg:-nan(09A_Zaz):0:-1: ++%*6Lg:-nan(09A_Zaz):0:-1: ++%6Lg:-nan():1:6:-nan: ++%*6Lg:-nan():0:6: ++%6Lg:nan():1:5:nan: ++%*6Lg:nan():0:5: ++%6Lg:nan(09A_Zaz):0:-1: ++%*6Lg:nan(09A_Zaz):0:-1: ++%6Lg:0x0p0:1:5:0x0: ++%*6Lg:0x0p0:0:5: ++%6Lg:0x0p+0:1:6:0x0: ++%*6Lg:0x0p+0:0:6: ++%6Lg:0x8p-1025:1:6:0x1p2: ++%*6Lg:0x8p-1025:0:6: ++%6Lg:0x2.3456789abcdfep0123:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdfep0123:0:6: ++%6Lg:0x2.3456789abcdfep+123:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdfep+123:0:6: ++%6Lg:0x7.ffffffffffffcp1021:1:6:0x1.ffcp2: ++%*6Lg:0x7.ffffffffffffcp1021:0:6: ++%6Lg:0xf.ffffffffffff8p+1020:1:6:0x1.ffep3: ++%*6Lg:0xf.ffffffffffff8p+1020:0:6: ++%6Lg:infinity:0:-1: ++%*6Lg:infinity:0:-1: ++%6Lg:+nan():1:6:nan: ++%*6Lg:+nan():0:6: ++%6Lg:+nan(09A_Zaz):0:-1: ++%*6Lg:+nan(09A_Zaz):0:-1: ++%6Lg:+0x0p0:1:6:0x0: ++%*6Lg:+0x0p0:0:6: ++# BZ12701 %6Lg:+0x0p+0:0:-1: ++# BZ12701 %*6Lg:+0x0p+0:0:-1: ++# BZ12701 %6Lg:+0x8p-1025:0:-1: ++# BZ12701 %*6Lg:+0x8p-1025:0:-1: ++%6Lg:+0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdfep0123:0:6: ++%6Lg:+0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdfep+123:0:6: ++%6Lg:+0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*6Lg:+0x7.ffffffffffffcp1021:0:6: ++%6Lg:+0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*6Lg:+0xf.ffffffffffff8p+1020:0:6: ++%6Lg:+infinity:0:-1: ++%*6Lg:+infinity:0:-1: ++%20Lg::0:-1: ++%*20Lg::0:-1: ++%20Lg:-infinity:1:9:-inf: ++%*20Lg:-infinity:0:9: ++# BZ12701 %20Lg:-0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20Lg:-0xf.ffffffffffff8p+1020:0:-1: ++%20Lg:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3: ++%*20Lg:-0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20Lg:-0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20Lg:-0x2.3456789abcdfep+123:0:-1: ++%20Lg:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20Lg:-0x2.3456789abcdfep0123:0:20: ++%20Lg:-0x8p-1025:1:10:-0x1p-1022: ++%*20Lg:-0x8p-1025:0:10: ++%20Lg:-0x0p+0:1:7:-0x0: ++%*20Lg:-0x0p+0:0:7: ++%20Lg:-0x0p0:1:6:-0x0: ++%*20Lg:-0x0p0:0:6: ++%20Lg:-nan(09A_Zaz):1:13:-nan: ++%*20Lg:-nan(09A_Zaz):0:13: ++%20Lg:-nan():1:6:-nan: ++%*20Lg:-nan():0:6: ++%20Lg:nan():1:5:nan: ++%*20Lg:nan():0:5: ++%20Lg:nan(09A_Zaz):1:12:nan: ++%*20Lg:nan(09A_Zaz):0:12: ++%20Lg:0x0p0:1:5:0x0: ++%*20Lg:0x0p0:0:5: ++%20Lg:0x0p+0:1:6:0x0: ++%*20Lg:0x0p+0:0:6: ++%20Lg:0x8p-1025:1:9:0x1p-1022: ++%*20Lg:0x8p-1025:0:9: ++%20Lg:0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20Lg:0x2.3456789abcdfep0123:0:20: ++%20Lg:0x2.3456789abcdfep+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20Lg:0x2.3456789abcdfep+123:0:20: ++%20Lg:0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp12: ++%*20Lg:0x7.ffffffffffffcp1021:0:20: ++%20Lg:0xf.ffffffffffff8p+1020:1:20:0x1.fffffffffffffp4: ++%*20Lg:0xf.ffffffffffff8p+1020:0:20: ++%20Lg:infinity:1:8:inf: ++%*20Lg:infinity:0:8: ++%20Lg:+nan():1:6:nan: ++%*20Lg:+nan():0:6: ++%20Lg:+nan(09A_Zaz):1:13:nan: ++%*20Lg:+nan(09A_Zaz):0:13: ++%20Lg:+0x0p0:1:6:0x0: ++%*20Lg:+0x0p0:0:6: ++%20Lg:+0x0p+0:1:7:0x0: ++%*20Lg:+0x0p+0:0:7: ++%20Lg:+0x8p-1025:1:10:0x1p-1022: ++%*20Lg:+0x8p-1025:0:10: ++%20Lg:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20Lg:+0x2.3456789abcdfep0123:0:20: ++# BZ12701 %20Lg:+0x2.3456789abcdfep+123:0:-1: ++# BZ12701 %*20Lg:+0x2.3456789abcdfep+123:0:-1: ++%20Lg:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3: ++%*20Lg:+0x7.ffffffffffffcp1021:0:20: ++# BZ12701 %20Lg:+0xf.ffffffffffff8p+1020:0:-1: ++# BZ12701 %*20Lg:+0xf.ffffffffffff8p+1020:0:-1: ++%20Lg:+infinity:1:9:inf: ++%*20Lg:+infinity:0:9: ++%32Lg::0:-1: ++%*32Lg::0:-1: ++%32Lg:-infinity:1:9:-inf: ++%*32Lg:-infinity:0:9: ++%32Lg:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023: ++%*32Lg:-0xf.ffffffffffff8p+1020:0:24: ++%32Lg:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023: ++%*32Lg:-0x7.ffffffffffffcp1021:0:23: ++%32Lg:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32Lg:-0x2.3456789abcdfep+123:0:23: ++%32Lg:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32Lg:-0x2.3456789abcdfep0123:0:23: ++%32Lg:-0x8p-1025:1:10:-0x1p-1022: ++%*32Lg:-0x8p-1025:0:10: ++%32Lg:-0x0p+0:1:7:-0x0: ++%*32Lg:-0x0p+0:0:7: ++%32Lg:-0x0p0:1:6:-0x0: ++%*32Lg:-0x0p0:0:6: ++%32Lg:-nan(09A_Zaz):1:13:-nan: ++%*32Lg:-nan(09A_Zaz):0:13: ++%32Lg:-nan():1:6:-nan: ++%*32Lg:-nan():0:6: ++%32Lg:nan():1:5:nan: ++%*32Lg:nan():0:5: ++%32Lg:nan(09A_Zaz):1:12:nan: ++%*32Lg:nan(09A_Zaz):0:12: ++%32Lg:0x0p0:1:5:0x0: ++%*32Lg:0x0p0:0:5: ++%32Lg:0x0p+0:1:6:0x0: ++%*32Lg:0x0p+0:0:6: ++%32Lg:0x8p-1025:1:9:0x1p-1022: ++%*32Lg:0x8p-1025:0:9: ++%32Lg:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32Lg:0x2.3456789abcdfep0123:0:22: ++%32Lg:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32Lg:0x2.3456789abcdfep+123:0:22: ++%32Lg:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023: ++%*32Lg:0x7.ffffffffffffcp1021:0:22: ++%32Lg:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023: ++%*32Lg:0xf.ffffffffffff8p+1020:0:23: ++%32Lg:infinity:1:8:inf: ++%*32Lg:infinity:0:8: ++%32Lg:+nan():1:6:nan: ++%*32Lg:+nan():0:6: ++%32Lg:+nan(09A_Zaz):1:13:nan: ++%*32Lg:+nan(09A_Zaz):0:13: ++%32Lg:+0x0p0:1:6:0x0: ++%*32Lg:+0x0p0:0:6: ++%32Lg:+0x0p+0:1:7:0x0: ++%*32Lg:+0x0p+0:0:7: ++%32Lg:+0x8p-1025:1:10:0x1p-1022: ++%*32Lg:+0x8p-1025:0:10: ++%32Lg:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32Lg:+0x2.3456789abcdfep0123:0:23: ++%32Lg:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32Lg:+0x2.3456789abcdfep+123:0:23: ++%32Lg:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32Lg:+0x7.ffffffffffffcp1021:0:23: ++%32Lg:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32Lg:+0xf.ffffffffffff8p+1020:0:24: ++%32Lg:+infinity:1:9:inf: ++%*32Lg:+infinity:0:9: ++%5Lg: :0:-1: ++%*5Lg: :0:-1: ++%5Lg: -infinity:0:-1: ++%*5Lg: -infinity:0:-1: ++%5Lg: -0xf.ffffffffffff8p+1020:1:6:-0x1.ep3: ++%*5Lg: -0xf.ffffffffffff8p+1020:0:6: ++%5Lg: -0x7.ffffffffffffcp1021:1:6:-0x1.cp2: ++%*5Lg: -0x7.ffffffffffffcp1021:0:6: ++%5Lg: -0x2.3456789abcdfep+123:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdfep+123:0:6: ++%5Lg: -0x2.3456789abcdfep0123:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdfep0123:0:6: ++# BZ12701 %5Lg: -0x8p-1025:0:-1: ++# BZ12701 %*5Lg: -0x8p-1025:0:-1: ++# BZ12701 %5Lg: -0x0p+0:0:-1: ++# BZ12701 %*5Lg: -0x0p+0:0:-1: ++# BZ12701 %5Lg: -0x0p0:0:-1: ++# BZ12701 %*5Lg: -0x0p0:0:-1: ++%5Lg: -nan(09A_Zaz):0:-1: ++%*5Lg: -nan(09A_Zaz):0:-1: ++%5Lg: -nan():0:-1: ++%*5Lg: -nan():0:-1: ++%5Lg: nan():1:6:nan: ++%*5Lg: nan():0:6: ++%5Lg: nan(09A_Zaz):0:-1: ++%*5Lg: nan(09A_Zaz):0:-1: ++%5Lg: 0x0p0:1:6:0x0: ++%*5Lg: 0x0p0:0:6: ++# BZ12701 %5Lg: 0x0p+0:0:-1: ++# BZ12701 %*5Lg: 0x0p+0:0:-1: ++# BZ12701 %5Lg: 0x8p-1025:0:-1: ++# BZ12701 %*5Lg: 0x8p-1025:0:-1: ++%5Lg: 0x2.3456789abcdfep0123:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdfep0123:0:6: ++%5Lg: 0x2.3456789abcdfep+123:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdfep+123:0:6: ++%5Lg: 0x7.ffffffffffffcp1021:1:6:0x1.fcp2: ++%*5Lg: 0x7.ffffffffffffcp1021:0:6: ++%5Lg: 0xf.ffffffffffff8p+1020:1:6:0x1.fep3: ++%*5Lg: 0xf.ffffffffffff8p+1020:0:6: ++%5Lg: infinity:0:-1: ++%*5Lg: infinity:0:-1: ++%5Lg: +nan():0:-1: ++%*5Lg: +nan():0:-1: ++%5Lg: +nan(09A_Zaz):0:-1: ++%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg: +0x0p0:0:-1: ++# BZ12701 %*5Lg: +0x0p0:0:-1: ++# BZ12701 %5Lg: +0x0p+0:0:-1: ++# BZ12701 %*5Lg: +0x0p+0:0:-1: ++# BZ12701 %5Lg: +0x8p-1025:0:-1: ++# BZ12701 %*5Lg: +0x8p-1025:0:-1: ++%5Lg: +0x2.3456789abcdfep0123:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdfep0123:0:6: ++%5Lg: +0x2.3456789abcdfep+123:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdfep+123:0:6: ++%5Lg: +0x7.ffffffffffffcp1021:1:6:0x1.cp2: ++%*5Lg: +0x7.ffffffffffffcp1021:0:6: ++%5Lg: +0xf.ffffffffffff8p+1020:1:6:0x1.ep3: ++%*5Lg: +0xf.ffffffffffff8p+1020:0:6: ++%5Lg: +infinity:0:-1: ++%*5Lg: +infinity:0:-1: ++%32Lg: :0:-1: ++%*32Lg: :0:-1: ++%32Lg: -infinity:1:10:-inf: ++%*32Lg: -infinity:0:10: ++%32Lg: -0xf.ffffffffffff8p+1020:1:25:-0x1.fffffffffffffp1023: ++%*32Lg: -0xf.ffffffffffff8p+1020:0:25: ++%32Lg: -0x7.ffffffffffffcp1021:1:24:-0x1.fffffffffffffp1023: ++%*32Lg: -0x7.ffffffffffffcp1021:0:24: ++%32Lg: -0x2.3456789abcdfep+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32Lg: -0x2.3456789abcdfep+123:0:24: ++%32Lg: -0x2.3456789abcdfep0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32Lg: -0x2.3456789abcdfep0123:0:24: ++%32Lg: -0x8p-1025:1:11:-0x1p-1022: ++%*32Lg: -0x8p-1025:0:11: ++%32Lg: -0x0p+0:1:8:-0x0: ++%*32Lg: -0x0p+0:0:8: ++%32Lg: -0x0p0:1:7:-0x0: ++%*32Lg: -0x0p0:0:7: ++%32Lg: -nan(09A_Zaz):1:14:-nan: ++%*32Lg: -nan(09A_Zaz):0:14: ++%32Lg: -nan():1:7:-nan: ++%*32Lg: -nan():0:7: ++%32Lg: nan():1:6:nan: ++%*32Lg: nan():0:6: ++%32Lg: nan(09A_Zaz):1:13:nan: ++%*32Lg: nan(09A_Zaz):0:13: ++%32Lg: 0x0p0:1:6:0x0: ++%*32Lg: 0x0p0:0:6: ++%32Lg: 0x0p+0:1:7:0x0: ++%*32Lg: 0x0p+0:0:7: ++%32Lg: 0x8p-1025:1:10:0x1p-1022: ++%*32Lg: 0x8p-1025:0:10: ++%32Lg: 0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32Lg: 0x2.3456789abcdfep0123:0:23: ++%32Lg: 0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32Lg: 0x2.3456789abcdfep+123:0:23: ++%32Lg: 0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023: ++%*32Lg: 0x7.ffffffffffffcp1021:0:23: ++%32Lg: 0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023: ++%*32Lg: 0xf.ffffffffffff8p+1020:0:24: ++%32Lg: infinity:1:9:inf: ++%*32Lg: infinity:0:9: ++%32Lg: +nan():1:7:nan: ++%*32Lg: +nan():0:7: ++%32Lg: +nan(09A_Zaz):1:14:nan: ++%*32Lg: +nan(09A_Zaz):0:14: ++%32Lg: +0x0p0:1:7:0x0: ++%*32Lg: +0x0p0:0:7: ++%32Lg: +0x0p+0:1:8:0x0: ++%*32Lg: +0x0p+0:0:8: ++%32Lg: +0x8p-1025:1:11:0x1p-1022: ++%*32Lg: +0x8p-1025:0:11: ++%32Lg: +0x2.3456789abcdfep0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32Lg: +0x2.3456789abcdfep0123:0:24: ++%32Lg: +0x2.3456789abcdfep+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32Lg: +0x2.3456789abcdfep+123:0:24: ++%32Lg: +0x7.ffffffffffffcp1021:1:24:0x1.fffffffffffffp1023: ++%*32Lg: +0x7.ffffffffffffcp1021:0:24: ++%32Lg: +0xf.ffffffffffff8p+1020:1:25:0x1.fffffffffffffp1023: ++%*32Lg: +0xf.ffffffffffff8p+1020:0:25: ++%32Lg: +infinity:1:10:inf: ++%*32Lg: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input +new file mode 100644 +index 0000000000000000..08684574e561f1c1 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input +@@ -0,0 +1,682 @@ ++%LG::0:-1: ++%*LG::0:-1: ++%LG:-INFINITY:1:9:-inf: ++%*LG:-INFINITY:0:9: ++%LG:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*LG:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%LG:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*LG:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%LG:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*LG:-0X2.3456789ABCDFEP+123:0:23: ++%LG:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*LG:-0X2.3456789ABCDFEP0123:0:23: ++%LG:-0X8P-1025:1:10:-0x1p-1022: ++%*LG:-0X8P-1025:0:10: ++%LG:-0X0P+0:1:7:-0x0: ++%*LG:-0X0P+0:0:7: ++%LG:-0X0P0:1:6:-0x0: ++%*LG:-0X0P0:0:6: ++%LG:-NAN(09A_Zaz):1:13:-nan: ++%*LG:-NAN(09A_Zaz):0:13: ++%LG:-NAN():1:6:-nan: ++%*LG:-NAN():0:6: ++%LG:NAN():1:5:nan: ++%*LG:NAN():0:5: ++%LG:NAN(09A_Zaz):1:12:nan: ++%*LG:NAN(09A_Zaz):0:12: ++%LG:0X0P0:1:5:0x0: ++%*LG:0X0P0:0:5: ++%LG:0X0P+0:1:6:0x0: ++%*LG:0X0P+0:0:6: ++%LG:0X8P-1025:1:9:0x1p-1022: ++%*LG:0X8P-1025:0:9: ++%LG:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*LG:0X2.3456789ABCDFEP0123:0:22: ++%LG:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*LG:0X2.3456789ABCDFEP+123:0:22: ++%LG:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*LG:0X7.FFFFFFFFFFFFCP1021:0:22: ++%LG:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*LG:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%LG:INFINITY:1:8:inf: ++%*LG:INFINITY:0:8: ++%LG:+NAN():1:6:nan: ++%*LG:+NAN():0:6: ++%LG:+NAN(09A_Zaz):1:13:nan: ++%*LG:+NAN(09A_Zaz):0:13: ++%LG:+0X0P0:1:6:0x0: ++%*LG:+0X0P0:0:6: ++%LG:+0X0P+0:1:7:0x0: ++%*LG:+0X0P+0:0:7: ++%LG:+0X8P-1025:1:10:0x1p-1022: ++%*LG:+0X8P-1025:0:10: ++%LG:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*LG:+0X2.3456789ABCDFEP0123:0:23: ++%LG:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*LG:+0X2.3456789ABCDFEP+123:0:23: ++%LG:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*LG:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%LG:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*LG:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%LG:+INFINITY:1:9:inf: ++%*LG:+INFINITY:0:9: ++%1LG::0:-1: ++%*1LG::0:-1: ++%1LG:-INFINITY:0:-1: ++%*1LG:-INFINITY:0:-1: ++%1LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1LG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1LG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1LG:-0X2.3456789ABCDFEP+123:0:-1: ++%*1LG:-0X2.3456789ABCDFEP+123:0:-1: ++%1LG:-0X2.3456789ABCDFEP0123:0:-1: ++%*1LG:-0X2.3456789ABCDFEP0123:0:-1: ++%1LG:-0X8P-1025:0:-1: ++%*1LG:-0X8P-1025:0:-1: ++%1LG:-0X0P+0:0:-1: ++%*1LG:-0X0P+0:0:-1: ++%1LG:-0X0P0:0:-1: ++%*1LG:-0X0P0:0:-1: ++%1LG:-NAN(09A_Zaz):0:-1: ++%*1LG:-NAN(09A_Zaz):0:-1: ++%1LG:-NAN():0:-1: ++%*1LG:-NAN():0:-1: ++%1LG:NAN():0:-1: ++%*1LG:NAN():0:-1: ++%1LG:NAN(09A_Zaz):0:-1: ++%*1LG:NAN(09A_Zaz):0:-1: ++%1LG:0X0P0:1:1:0x0: ++%*1LG:0X0P0:0:1: ++%1LG:0X0P+0:1:1:0x0: ++%*1LG:0X0P+0:0:1: ++%1LG:0X8P-1025:1:1:0x0: ++%*1LG:0X8P-1025:0:1: ++%1LG:0X2.3456789ABCDFEP0123:1:1:0x0: ++%*1LG:0X2.3456789ABCDFEP0123:0:1: ++%1LG:0X2.3456789ABCDFEP+123:1:1:0x0: ++%*1LG:0X2.3456789ABCDFEP+123:0:1: ++%1LG:0X7.FFFFFFFFFFFFCP1021:1:1:0x0: ++%*1LG:0X7.FFFFFFFFFFFFCP1021:0:1: ++%1LG:0XF.FFFFFFFFFFFF8P+1020:1:1:0x0: ++%*1LG:0XF.FFFFFFFFFFFF8P+1020:0:1: ++%1LG:INFINITY:0:-1: ++%*1LG:INFINITY:0:-1: ++%1LG:+NAN():0:-1: ++%*1LG:+NAN():0:-1: ++%1LG:+NAN(09A_Zaz):0:-1: ++%*1LG:+NAN(09A_Zaz):0:-1: ++%1LG:+0X0P0:0:-1: ++%*1LG:+0X0P0:0:-1: ++%1LG:+0X0P+0:0:-1: ++%*1LG:+0X0P+0:0:-1: ++%1LG:+0X8P-1025:0:-1: ++%*1LG:+0X8P-1025:0:-1: ++%1LG:+0X2.3456789ABCDFEP0123:0:-1: ++%*1LG:+0X2.3456789ABCDFEP0123:0:-1: ++%1LG:+0X2.3456789ABCDFEP+123:0:-1: ++%*1LG:+0X2.3456789ABCDFEP+123:0:-1: ++%1LG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%*1LG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++%1LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%*1LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%1LG:+INFINITY:0:-1: ++%*1LG:+INFINITY:0:-1: ++%2LG::0:-1: ++%*2LG::0:-1: ++%2LG:-INFINITY:0:-1: ++%*2LG:-INFINITY:0:-1: ++%2LG:-0XF.FFFFFFFFFFFF8P+1020:1:2:-0x0: ++%*2LG:-0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2LG:-0X7.FFFFFFFFFFFFCP1021:1:2:-0x0: ++%*2LG:-0X7.FFFFFFFFFFFFCP1021:0:2: ++%2LG:-0X2.3456789ABCDFEP+123:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDFEP+123:0:2: ++%2LG:-0X2.3456789ABCDFEP0123:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDFEP0123:0:2: ++%2LG:-0X8P-1025:1:2:-0x0: ++%*2LG:-0X8P-1025:0:2: ++%2LG:-0X0P+0:1:2:-0x0: ++%*2LG:-0X0P+0:0:2: ++%2LG:-0X0P0:1:2:-0x0: ++%*2LG:-0X0P0:0:2: ++%2LG:-NAN(09A_Zaz):0:-1: ++%*2LG:-NAN(09A_Zaz):0:-1: ++%2LG:-NAN():0:-1: ++%*2LG:-NAN():0:-1: ++%2LG:NAN():0:-1: ++%*2LG:NAN():0:-1: ++%2LG:NAN(09A_Zaz):0:-1: ++%*2LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LG:0X0P0:0:-1: ++# BZ12701 %*2LG:0X0P0:0:-1: ++# BZ12701 %2LG:0X0P+0:0:-1: ++# BZ12701 %*2LG:0X0P+0:0:-1: ++# BZ12701 %2LG:0X8P-1025:0:-1: ++# BZ12701 %*2LG:0X8P-1025:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %2LG:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*2LG:0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %2LG:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*2LG:0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%2LG:INFINITY:0:-1: ++%*2LG:INFINITY:0:-1: ++%2LG:+NAN():0:-1: ++%*2LG:+NAN():0:-1: ++%2LG:+NAN(09A_Zaz):0:-1: ++%*2LG:+NAN(09A_Zaz):0:-1: ++%2LG:+0X0P0:1:2:0x0: ++%*2LG:+0X0P0:0:2: ++%2LG:+0X0P+0:1:2:0x0: ++%*2LG:+0X0P+0:0:2: ++%2LG:+0X8P-1025:1:2:0x0: ++%*2LG:+0X8P-1025:0:2: ++%2LG:+0X2.3456789ABCDFEP0123:1:2:0x0: ++%*2LG:+0X2.3456789ABCDFEP0123:0:2: ++%2LG:+0X2.3456789ABCDFEP+123:1:2:0x0: ++%*2LG:+0X2.3456789ABCDFEP+123:0:2: ++%2LG:+0X7.FFFFFFFFFFFFCP1021:1:2:0x0: ++%*2LG:+0X7.FFFFFFFFFFFFCP1021:0:2: ++%2LG:+0XF.FFFFFFFFFFFF8P+1020:1:2:0x0: ++%*2LG:+0XF.FFFFFFFFFFFF8P+1020:0:2: ++%2LG:+INFINITY:0:-1: ++%*2LG:+INFINITY:0:-1: ++%3LG::0:-1: ++%*3LG::0:-1: ++%3LG:-INFINITY:0:-1: ++%*3LG:-INFINITY:0:-1: ++# BZ12701 %3LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %3LG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3LG:-0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3LG:-0X8P-1025:0:-1: ++# BZ12701 %*3LG:-0X8P-1025:0:-1: ++# BZ12701 %3LG:-0X0P+0:0:-1: ++# BZ12701 %*3LG:-0X0P+0:0:-1: ++# BZ12701 %3LG:-0X0P0:0:-1: ++# BZ12701 %*3LG:-0X0P0:0:-1: ++%3LG:-NAN(09A_Zaz):0:-1: ++%*3LG:-NAN(09A_Zaz):0:-1: ++%3LG:-NAN():0:-1: ++%*3LG:-NAN():0:-1: ++%3LG:NAN():1:3:nan: ++%*3LG:NAN():0:3: ++%3LG:NAN(09A_Zaz):1:3:nan: ++%*3LG:NAN(09A_Zaz):0:3: ++%3LG:0X0P0:1:3:0x0: ++%*3LG:0X0P0:0:3: ++%3LG:0X0P+0:1:3:0x0: ++%*3LG:0X0P+0:0:3: ++%3LG:0X8P-1025:1:3:0x1p3: ++%*3LG:0X8P-1025:0:3: ++%3LG:0X2.3456789ABCDFEP0123:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDFEP0123:0:3: ++%3LG:0X2.3456789ABCDFEP+123:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDFEP+123:0:3: ++%3LG:0X7.FFFFFFFFFFFFCP1021:1:3:0x1.cp2: ++%*3LG:0X7.FFFFFFFFFFFFCP1021:0:3: ++%3LG:0XF.FFFFFFFFFFFF8P+1020:1:3:0x1.ep3: ++%*3LG:0XF.FFFFFFFFFFFF8P+1020:0:3: ++%3LG:INFINITY:1:3:inf: ++%*3LG:INFINITY:0:3: ++%3LG:+NAN():0:-1: ++%*3LG:+NAN():0:-1: ++%3LG:+NAN(09A_Zaz):0:-1: ++%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LG:+0X0P0:0:-1: ++# BZ12701 %*3LG:+0X0P0:0:-1: ++# BZ12701 %3LG:+0X0P+0:0:-1: ++# BZ12701 %*3LG:+0X0P+0:0:-1: ++# BZ12701 %3LG:+0X8P-1025:0:-1: ++# BZ12701 %*3LG:+0X8P-1025:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDFEP0123:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %3LG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %*3LG:+0X7.FFFFFFFFFFFFCP1021:0:-1: ++# BZ12701 %3LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*3LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%3LG:+INFINITY:0:-1: ++%*3LG:+INFINITY:0:-1: ++%4LG::0:-1: ++%*4LG::0:-1: ++%4LG:-INFINITY:1:4:-inf: ++%*4LG:-INFINITY:0:4: ++%4LG:-0XF.FFFFFFFFFFFF8P+1020:1:4:-0x1.ep3: ++%*4LG:-0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LG:-0X7.FFFFFFFFFFFFCP1021:1:4:-0x1.cp2: ++%*4LG:-0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LG:-0X2.3456789ABCDFEP+123:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDFEP+123:0:4: ++%4LG:-0X2.3456789ABCDFEP0123:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDFEP0123:0:4: ++%4LG:-0X8P-1025:1:4:-0x1p3: ++%*4LG:-0X8P-1025:0:4: ++%4LG:-0X0P+0:1:4:-0x0: ++%*4LG:-0X0P+0:0:4: ++%4LG:-0X0P0:1:4:-0x0: ++%*4LG:-0X0P0:0:4: ++%4LG:-NAN(09A_Zaz):1:4:-nan: ++%*4LG:-NAN(09A_Zaz):0:4: ++%4LG:-NAN():1:4:-nan: ++%*4LG:-NAN():0:4: ++%4LG:NAN():0:-1: ++%*4LG:NAN():0:-1: ++%4LG:NAN(09A_Zaz):0:-1: ++%*4LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LG:0X0P0:0:-1: ++# BZ12701 %*4LG:0X0P0:0:-1: ++# BZ12701 %4LG:0X0P+0:0:-1: ++# BZ12701 %*4LG:0X0P+0:0:-1: ++# BZ12701 %4LG:0X8P-1025:0:-1: ++# BZ12701 %*4LG:0X8P-1025:0:-1: ++%4LG:0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDFEP0123:0:4: ++%4LG:0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDFEP+123:0:4: ++%4LG:0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4LG:0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LG:0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4LG:0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LG:INFINITY:0:-1: ++%*4LG:INFINITY:0:-1: ++%4LG:+NAN():1:4:nan: ++%*4LG:+NAN():0:4: ++%4LG:+NAN(09A_Zaz):1:4:nan: ++%*4LG:+NAN(09A_Zaz):0:4: ++%4LG:+0X0P0:1:4:0x0: ++%*4LG:+0X0P0:0:4: ++%4LG:+0X0P+0:1:4:0x0: ++%*4LG:+0X0P+0:0:4: ++%4LG:+0X8P-1025:1:4:0x1p3: ++%*4LG:+0X8P-1025:0:4: ++%4LG:+0X2.3456789ABCDFEP0123:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDFEP0123:0:4: ++%4LG:+0X2.3456789ABCDFEP+123:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDFEP+123:0:4: ++%4LG:+0X7.FFFFFFFFFFFFCP1021:1:4:0x1.cp2: ++%*4LG:+0X7.FFFFFFFFFFFFCP1021:0:4: ++%4LG:+0XF.FFFFFFFFFFFF8P+1020:1:4:0x1.ep3: ++%*4LG:+0XF.FFFFFFFFFFFF8P+1020:0:4: ++%4LG:+INFINITY:1:4:inf: ++%*4LG:+INFINITY:0:4: ++%5LG::0:-1: ++%*5LG::0:-1: ++%5LG:-INFINITY:0:-1: ++%*5LG:-INFINITY:0:-1: ++%5LG:-0XF.FFFFFFFFFFFF8P+1020:1:5:-0x1.ep3: ++%*5LG:-0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LG:-0X7.FFFFFFFFFFFFCP1021:1:5:-0x1.cp2: ++%*5LG:-0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LG:-0X2.3456789ABCDFEP+123:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDFEP+123:0:5: ++%5LG:-0X2.3456789ABCDFEP0123:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDFEP0123:0:5: ++# BZ12701 %5LG:-0X8P-1025:0:-1: ++# BZ12701 %*5LG:-0X8P-1025:0:-1: ++# BZ12701 %5LG:-0X0P+0:0:-1: ++# BZ12701 %*5LG:-0X0P+0:0:-1: ++# BZ12701 %5LG:-0X0P0:0:-1: ++# BZ12701 %*5LG:-0X0P0:0:-1: ++%5LG:-NAN(09A_Zaz):0:-1: ++%*5LG:-NAN(09A_Zaz):0:-1: ++%5LG:-NAN():0:-1: ++%*5LG:-NAN():0:-1: ++%5LG:NAN():1:5:nan: ++%*5LG:NAN():0:5: ++%5LG:NAN(09A_Zaz):0:-1: ++%*5LG:NAN(09A_Zaz):0:-1: ++%5LG:0X0P0:1:5:0x0: ++%*5LG:0X0P0:0:5: ++# BZ12701 %5LG:0X0P+0:0:-1: ++# BZ12701 %*5LG:0X0P+0:0:-1: ++# BZ12701 %5LG:0X8P-1025:0:-1: ++# BZ12701 %*5LG:0X8P-1025:0:-1: ++%5LG:0X2.3456789ABCDFEP0123:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDFEP0123:0:5: ++%5LG:0X2.3456789ABCDFEP+123:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDFEP+123:0:5: ++%5LG:0X7.FFFFFFFFFFFFCP1021:1:5:0x1.fcp2: ++%*5LG:0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LG:0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.fep3: ++%*5LG:0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LG:INFINITY:0:-1: ++%*5LG:INFINITY:0:-1: ++%5LG:+NAN():0:-1: ++%*5LG:+NAN():0:-1: ++%5LG:+NAN(09A_Zaz):0:-1: ++%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG:+0X0P0:0:-1: ++# BZ12701 %*5LG:+0X0P0:0:-1: ++# BZ12701 %5LG:+0X0P+0:0:-1: ++# BZ12701 %*5LG:+0X0P+0:0:-1: ++# BZ12701 %5LG:+0X8P-1025:0:-1: ++# BZ12701 %*5LG:+0X8P-1025:0:-1: ++%5LG:+0X2.3456789ABCDFEP0123:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDFEP0123:0:5: ++%5LG:+0X2.3456789ABCDFEP+123:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDFEP+123:0:5: ++%5LG:+0X7.FFFFFFFFFFFFCP1021:1:5:0x1.cp2: ++%*5LG:+0X7.FFFFFFFFFFFFCP1021:0:5: ++%5LG:+0XF.FFFFFFFFFFFF8P+1020:1:5:0x1.ep3: ++%*5LG:+0XF.FFFFFFFFFFFF8P+1020:0:5: ++%5LG:+INFINITY:0:-1: ++%*5LG:+INFINITY:0:-1: ++%6LG::0:-1: ++%*6LG::0:-1: ++%6LG:-INFINITY:0:-1: ++%*6LG:-INFINITY:0:-1: ++%6LG:-0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.fep3: ++%*6LG:-0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LG:-0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.fcp2: ++%*6LG:-0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LG:-0X2.3456789ABCDFEP+123:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDFEP+123:0:6: ++%6LG:-0X2.3456789ABCDFEP0123:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %6LG:-0X8P-1025:0:-1: ++# BZ12701 %*6LG:-0X8P-1025:0:-1: ++# BZ12701 %6LG:-0X0P+0:0:-1: ++# BZ12701 %*6LG:-0X0P+0:0:-1: ++%6LG:-0X0P0:1:6:-0x0: ++%*6LG:-0X0P0:0:6: ++%6LG:-NAN(09A_Zaz):0:-1: ++%*6LG:-NAN(09A_Zaz):0:-1: ++%6LG:-NAN():1:6:-nan: ++%*6LG:-NAN():0:6: ++%6LG:NAN():1:5:nan: ++%*6LG:NAN():0:5: ++%6LG:NAN(09A_Zaz):0:-1: ++%*6LG:NAN(09A_Zaz):0:-1: ++%6LG:0X0P0:1:5:0x0: ++%*6LG:0X0P0:0:5: ++%6LG:0X0P+0:1:6:0x0: ++%*6LG:0X0P+0:0:6: ++%6LG:0X8P-1025:1:6:0x1p2: ++%*6LG:0X8P-1025:0:6: ++%6LG:0X2.3456789ABCDFEP0123:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDFEP0123:0:6: ++%6LG:0X2.3456789ABCDFEP+123:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDFEP+123:0:6: ++%6LG:0X7.FFFFFFFFFFFFCP1021:1:6:0x1.ffcp2: ++%*6LG:0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LG:0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ffep3: ++%*6LG:0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LG:INFINITY:0:-1: ++%*6LG:INFINITY:0:-1: ++%6LG:+NAN():1:6:nan: ++%*6LG:+NAN():0:6: ++%6LG:+NAN(09A_Zaz):0:-1: ++%*6LG:+NAN(09A_Zaz):0:-1: ++%6LG:+0X0P0:1:6:0x0: ++%*6LG:+0X0P0:0:6: ++# BZ12701 %6LG:+0X0P+0:0:-1: ++# BZ12701 %*6LG:+0X0P+0:0:-1: ++# BZ12701 %6LG:+0X8P-1025:0:-1: ++# BZ12701 %*6LG:+0X8P-1025:0:-1: ++%6LG:+0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDFEP0123:0:6: ++%6LG:+0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDFEP+123:0:6: ++%6LG:+0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*6LG:+0X7.FFFFFFFFFFFFCP1021:0:6: ++%6LG:+0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*6LG:+0XF.FFFFFFFFFFFF8P+1020:0:6: ++%6LG:+INFINITY:0:-1: ++%*6LG:+INFINITY:0:-1: ++%20LG::0:-1: ++%*20LG::0:-1: ++%20LG:-INFINITY:1:9:-inf: ++%*20LG:-INFINITY:0:9: ++# BZ12701 %20LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20LG:-0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20LG:-0X7.FFFFFFFFFFFFCP1021:1:20:-0x1.fffffffffffffp3: ++%*20LG:-0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20LG:-0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20LG:-0X2.3456789ABCDFEP+123:0:-1: ++%20LG:-0X2.3456789ABCDFEP0123:1:20:-0x1.1a2b3c4d5e6ffp1: ++%*20LG:-0X2.3456789ABCDFEP0123:0:20: ++%20LG:-0X8P-1025:1:10:-0x1p-1022: ++%*20LG:-0X8P-1025:0:10: ++%20LG:-0X0P+0:1:7:-0x0: ++%*20LG:-0X0P+0:0:7: ++%20LG:-0X0P0:1:6:-0x0: ++%*20LG:-0X0P0:0:6: ++%20LG:-NAN(09A_Zaz):1:13:-nan: ++%*20LG:-NAN(09A_Zaz):0:13: ++%20LG:-NAN():1:6:-nan: ++%*20LG:-NAN():0:6: ++%20LG:NAN():1:5:nan: ++%*20LG:NAN():0:5: ++%20LG:NAN(09A_Zaz):1:12:nan: ++%*20LG:NAN(09A_Zaz):0:12: ++%20LG:0X0P0:1:5:0x0: ++%*20LG:0X0P0:0:5: ++%20LG:0X0P+0:1:6:0x0: ++%*20LG:0X0P+0:0:6: ++%20LG:0X8P-1025:1:9:0x1p-1022: ++%*20LG:0X8P-1025:0:9: ++%20LG:0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20LG:0X2.3456789ABCDFEP0123:0:20: ++%20LG:0X2.3456789ABCDFEP+123:1:20:0x1.1a2b3c4d5e6ffp2: ++%*20LG:0X2.3456789ABCDFEP+123:0:20: ++%20LG:0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp12: ++%*20LG:0X7.FFFFFFFFFFFFCP1021:0:20: ++%20LG:0XF.FFFFFFFFFFFF8P+1020:1:20:0x1.fffffffffffffp4: ++%*20LG:0XF.FFFFFFFFFFFF8P+1020:0:20: ++%20LG:INFINITY:1:8:inf: ++%*20LG:INFINITY:0:8: ++%20LG:+NAN():1:6:nan: ++%*20LG:+NAN():0:6: ++%20LG:+NAN(09A_Zaz):1:13:nan: ++%*20LG:+NAN(09A_Zaz):0:13: ++%20LG:+0X0P0:1:6:0x0: ++%*20LG:+0X0P0:0:6: ++%20LG:+0X0P+0:1:7:0x0: ++%*20LG:+0X0P+0:0:7: ++%20LG:+0X8P-1025:1:10:0x1p-1022: ++%*20LG:+0X8P-1025:0:10: ++%20LG:+0X2.3456789ABCDFEP0123:1:20:0x1.1a2b3c4d5e6ffp1: ++%*20LG:+0X2.3456789ABCDFEP0123:0:20: ++# BZ12701 %20LG:+0X2.3456789ABCDFEP+123:0:-1: ++# BZ12701 %*20LG:+0X2.3456789ABCDFEP+123:0:-1: ++%20LG:+0X7.FFFFFFFFFFFFCP1021:1:20:0x1.fffffffffffffp3: ++%*20LG:+0X7.FFFFFFFFFFFFCP1021:0:20: ++# BZ12701 %20LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++# BZ12701 %*20LG:+0XF.FFFFFFFFFFFF8P+1020:0:-1: ++%20LG:+INFINITY:1:9:inf: ++%*20LG:+INFINITY:0:9: ++%32LG::0:-1: ++%*32LG::0:-1: ++%32LG:-INFINITY:1:9:-inf: ++%*32LG:-INFINITY:0:9: ++%32LG:-0XF.FFFFFFFFFFFF8P+1020:1:24:-0x1.fffffffffffffp1023: ++%*32LG:-0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LG:-0X7.FFFFFFFFFFFFCP1021:1:23:-0x1.fffffffffffffp1023: ++%*32LG:-0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LG:-0X2.3456789ABCDFEP+123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32LG:-0X2.3456789ABCDFEP+123:0:23: ++%32LG:-0X2.3456789ABCDFEP0123:1:23:-0x1.1a2b3c4d5e6ffp124: ++%*32LG:-0X2.3456789ABCDFEP0123:0:23: ++%32LG:-0X8P-1025:1:10:-0x1p-1022: ++%*32LG:-0X8P-1025:0:10: ++%32LG:-0X0P+0:1:7:-0x0: ++%*32LG:-0X0P+0:0:7: ++%32LG:-0X0P0:1:6:-0x0: ++%*32LG:-0X0P0:0:6: ++%32LG:-NAN(09A_Zaz):1:13:-nan: ++%*32LG:-NAN(09A_Zaz):0:13: ++%32LG:-NAN():1:6:-nan: ++%*32LG:-NAN():0:6: ++%32LG:NAN():1:5:nan: ++%*32LG:NAN():0:5: ++%32LG:NAN(09A_Zaz):1:12:nan: ++%*32LG:NAN(09A_Zaz):0:12: ++%32LG:0X0P0:1:5:0x0: ++%*32LG:0X0P0:0:5: ++%32LG:0X0P+0:1:6:0x0: ++%*32LG:0X0P+0:0:6: ++%32LG:0X8P-1025:1:9:0x1p-1022: ++%*32LG:0X8P-1025:0:9: ++%32LG:0X2.3456789ABCDFEP0123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32LG:0X2.3456789ABCDFEP0123:0:22: ++%32LG:0X2.3456789ABCDFEP+123:1:22:0x1.1a2b3c4d5e6ffp124: ++%*32LG:0X2.3456789ABCDFEP+123:0:22: ++%32LG:0X7.FFFFFFFFFFFFCP1021:1:22:0x1.fffffffffffffp1023: ++%*32LG:0X7.FFFFFFFFFFFFCP1021:0:22: ++%32LG:0XF.FFFFFFFFFFFF8P+1020:1:23:0x1.fffffffffffffp1023: ++%*32LG:0XF.FFFFFFFFFFFF8P+1020:0:23: ++%32LG:INFINITY:1:8:inf: ++%*32LG:INFINITY:0:8: ++%32LG:+NAN():1:6:nan: ++%*32LG:+NAN():0:6: ++%32LG:+NAN(09A_Zaz):1:13:nan: ++%*32LG:+NAN(09A_Zaz):0:13: ++%32LG:+0X0P0:1:6:0x0: ++%*32LG:+0X0P0:0:6: ++%32LG:+0X0P+0:1:7:0x0: ++%*32LG:+0X0P+0:0:7: ++%32LG:+0X8P-1025:1:10:0x1p-1022: ++%*32LG:+0X8P-1025:0:10: ++%32LG:+0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LG:+0X2.3456789ABCDFEP0123:0:23: ++%32LG:+0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LG:+0X2.3456789ABCDFEP+123:0:23: ++%32LG:+0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32LG:+0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LG:+0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32LG:+0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LG:+INFINITY:1:9:inf: ++%*32LG:+INFINITY:0:9: ++%5LG: :0:-1: ++%*5LG: :0:-1: ++%5LG: -INFINITY:0:-1: ++%*5LG: -INFINITY:0:-1: ++%5LG: -0XF.FFFFFFFFFFFF8P+1020:1:6:-0x1.ep3: ++%*5LG: -0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LG: -0X7.FFFFFFFFFFFFCP1021:1:6:-0x1.cp2: ++%*5LG: -0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LG: -0X2.3456789ABCDFEP+123:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDFEP+123:0:6: ++%5LG: -0X2.3456789ABCDFEP0123:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDFEP0123:0:6: ++# BZ12701 %5LG: -0X8P-1025:0:-1: ++# BZ12701 %*5LG: -0X8P-1025:0:-1: ++# BZ12701 %5LG: -0X0P+0:0:-1: ++# BZ12701 %*5LG: -0X0P+0:0:-1: ++# BZ12701 %5LG: -0X0P0:0:-1: ++# BZ12701 %*5LG: -0X0P0:0:-1: ++%5LG: -NAN(09A_Zaz):0:-1: ++%*5LG: -NAN(09A_Zaz):0:-1: ++%5LG: -NAN():0:-1: ++%*5LG: -NAN():0:-1: ++%5LG: NAN():1:6:nan: ++%*5LG: NAN():0:6: ++%5LG: NAN(09A_Zaz):0:-1: ++%*5LG: NAN(09A_Zaz):0:-1: ++%5LG: 0X0P0:1:6:0x0: ++%*5LG: 0X0P0:0:6: ++# BZ12701 %5LG: 0X0P+0:0:-1: ++# BZ12701 %*5LG: 0X0P+0:0:-1: ++# BZ12701 %5LG: 0X8P-1025:0:-1: ++# BZ12701 %*5LG: 0X8P-1025:0:-1: ++%5LG: 0X2.3456789ABCDFEP0123:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDFEP0123:0:6: ++%5LG: 0X2.3456789ABCDFEP+123:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDFEP+123:0:6: ++%5LG: 0X7.FFFFFFFFFFFFCP1021:1:6:0x1.fcp2: ++%*5LG: 0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LG: 0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.fep3: ++%*5LG: 0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LG: INFINITY:0:-1: ++%*5LG: INFINITY:0:-1: ++%5LG: +NAN():0:-1: ++%*5LG: +NAN():0:-1: ++%5LG: +NAN(09A_Zaz):0:-1: ++%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG: +0X0P0:0:-1: ++# BZ12701 %*5LG: +0X0P0:0:-1: ++# BZ12701 %5LG: +0X0P+0:0:-1: ++# BZ12701 %*5LG: +0X0P+0:0:-1: ++# BZ12701 %5LG: +0X8P-1025:0:-1: ++# BZ12701 %*5LG: +0X8P-1025:0:-1: ++%5LG: +0X2.3456789ABCDFEP0123:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDFEP0123:0:6: ++%5LG: +0X2.3456789ABCDFEP+123:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDFEP+123:0:6: ++%5LG: +0X7.FFFFFFFFFFFFCP1021:1:6:0x1.cp2: ++%*5LG: +0X7.FFFFFFFFFFFFCP1021:0:6: ++%5LG: +0XF.FFFFFFFFFFFF8P+1020:1:6:0x1.ep3: ++%*5LG: +0XF.FFFFFFFFFFFF8P+1020:0:6: ++%5LG: +INFINITY:0:-1: ++%*5LG: +INFINITY:0:-1: ++%32LG: :0:-1: ++%*32LG: :0:-1: ++%32LG: -INFINITY:1:10:-inf: ++%*32LG: -INFINITY:0:10: ++%32LG: -0XF.FFFFFFFFFFFF8P+1020:1:25:-0x1.fffffffffffffp1023: ++%*32LG: -0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32LG: -0X7.FFFFFFFFFFFFCP1021:1:24:-0x1.fffffffffffffp1023: ++%*32LG: -0X7.FFFFFFFFFFFFCP1021:0:24: ++%32LG: -0X2.3456789ABCDFEP+123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32LG: -0X2.3456789ABCDFEP+123:0:24: ++%32LG: -0X2.3456789ABCDFEP0123:1:24:-0x1.1a2b3c4d5e6ffp124: ++%*32LG: -0X2.3456789ABCDFEP0123:0:24: ++%32LG: -0X8P-1025:1:11:-0x1p-1022: ++%*32LG: -0X8P-1025:0:11: ++%32LG: -0X0P+0:1:8:-0x0: ++%*32LG: -0X0P+0:0:8: ++%32LG: -0X0P0:1:7:-0x0: ++%*32LG: -0X0P0:0:7: ++%32LG: -NAN(09A_Zaz):1:14:-nan: ++%*32LG: -NAN(09A_Zaz):0:14: ++%32LG: -NAN():1:7:-nan: ++%*32LG: -NAN():0:7: ++%32LG: NAN():1:6:nan: ++%*32LG: NAN():0:6: ++%32LG: NAN(09A_Zaz):1:13:nan: ++%*32LG: NAN(09A_Zaz):0:13: ++%32LG: 0X0P0:1:6:0x0: ++%*32LG: 0X0P0:0:6: ++%32LG: 0X0P+0:1:7:0x0: ++%*32LG: 0X0P+0:0:7: ++%32LG: 0X8P-1025:1:10:0x1p-1022: ++%*32LG: 0X8P-1025:0:10: ++%32LG: 0X2.3456789ABCDFEP0123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LG: 0X2.3456789ABCDFEP0123:0:23: ++%32LG: 0X2.3456789ABCDFEP+123:1:23:0x1.1a2b3c4d5e6ffp124: ++%*32LG: 0X2.3456789ABCDFEP+123:0:23: ++%32LG: 0X7.FFFFFFFFFFFFCP1021:1:23:0x1.fffffffffffffp1023: ++%*32LG: 0X7.FFFFFFFFFFFFCP1021:0:23: ++%32LG: 0XF.FFFFFFFFFFFF8P+1020:1:24:0x1.fffffffffffffp1023: ++%*32LG: 0XF.FFFFFFFFFFFF8P+1020:0:24: ++%32LG: INFINITY:1:9:inf: ++%*32LG: INFINITY:0:9: ++%32LG: +NAN():1:7:nan: ++%*32LG: +NAN():0:7: ++%32LG: +NAN(09A_Zaz):1:14:nan: ++%*32LG: +NAN(09A_Zaz):0:14: ++%32LG: +0X0P0:1:7:0x0: ++%*32LG: +0X0P0:0:7: ++%32LG: +0X0P+0:1:8:0x0: ++%*32LG: +0X0P+0:0:8: ++%32LG: +0X8P-1025:1:11:0x1p-1022: ++%*32LG: +0X8P-1025:0:11: ++%32LG: +0X2.3456789ABCDFEP0123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32LG: +0X2.3456789ABCDFEP0123:0:24: ++%32LG: +0X2.3456789ABCDFEP+123:1:24:0x1.1a2b3c4d5e6ffp124: ++%*32LG: +0X2.3456789ABCDFEP+123:0:24: ++%32LG: +0X7.FFFFFFFFFFFFCP1021:1:24:0x1.fffffffffffffp1023: ++%*32LG: +0X7.FFFFFFFFFFFFCP1021:0:24: ++%32LG: +0XF.FFFFFFFFFFFF8P+1020:1:25:0x1.fffffffffffffp1023: ++%*32LG: +0XF.FFFFFFFFFFFF8P+1020:0:25: ++%32LG: +INFINITY:1:10:inf: ++%*32LG: +INFINITY:0:10: diff --git a/glibc-RHEL-119433-8.patch b/glibc-RHEL-119433-8.patch new file mode 100644 index 0000000..ac1782c --- /dev/null +++ b/glibc-RHEL-119433-8.patch @@ -0,0 +1,4984 @@ +commit 4bea073069e9e457258d082786297a867593d05b +Author: Maciej W. Rozycki +Date: Tue Mar 25 09:40:20 2025 +0000 + + stdio-common: Add scanf long double data for IBM 128-bit format + + Add Makefile infrastructure and IBM 128-bit 'long double' real input for + targets switching between the IEEE 754 binary128 and IBM 128-bit formats + with '-mabi=ieeelongdouble' and '-mabi=ibmlongdouble'. Reuse IEEE 754 + binary128 input data but with modified output file names so as not to + clash with the names used for IBM 128-bit format tests made with common + rules for the 'long double' data type. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile +index 34273a5f5841373f..495cdda8612007c5 100644 +--- a/sysdeps/ieee754/ldbl-128ibm-compat/Makefile ++++ b/sysdeps/ieee754/ldbl-128ibm-compat/Makefile +@@ -78,6 +78,55 @@ CFLAGS-vfwprintf-internal.c += -mfloat128 -mabi=ibmlongdouble + CFLAGS-vfscanf-internal.c += -mfloat128 -mabi=ibmlongdouble + CFLAGS-vfwscanf-internal.c += -mfloat128 -mabi=ibmlongdouble + ++ifeq ($(subdir),stdio-common) ++# We already have the long double conversion defined with our common rules ++# for the IBM format, so define these special rules to build and run extra ++# executables for the IEEE binary128 format, reusing the same sources and ++# inputs. ++define tst-scanf-format-128ibm-compat-tests ++test-srcs += \ ++ tst-scanf-format-$(1)-ldouble-128ibm-compat \ ++ # test-srcs ++ ++$$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat.o: \ ++ tst-scanf-format-$(1)-ldouble.c $$(before-compile) ++ $$(compile-command.c) ++$$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat: $$(libm) ++endef ++$(foreach p,$(xscanf-funcs), \ ++ $(eval $(call tst-scanf-format-128ibm-compat-tests,$(p)))) ++ ++ifeq ($(run-built-tests),yes) ++define tst-scanf-format-128ibm-compat-rule ++tests-special += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2).out \ ++ # tests-special ++ ++$$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2).out: \ ++ ../sysdeps/ieee754/ldbl-128/tst-scanf-format-ldouble-$(2).input \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat ++ $$(make-tst-scanf-format-out) > $$@ < $$<; \ ++ $$(evaluate-test) ++ ++ifeq (yes,$(build-shared)) ++ifneq ($(PERL),no) ++tests-special += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2)-mem.out \ ++ # tests-special ++ ++generated += \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2)-mem.out \ ++ $$(objpfx)tst-scanf-format-$(1)-ldouble-128ibm-compat-$(2).mtrace \ ++ # generated ++endif ++endif ++endef ++$(foreach f,$(fmts-xscanf-real), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(eval $(call tst-scanf-format-128ibm-compat-rule,$(p),$(f))))) ++endif # $(run-built-tests) == yes ++endif # $(subdir) == stdio-common ++ + # Basic tests for the implementation of long double with IEEE binary128 + # format and for the related redirections in installed headers. + tests-internal += test-printf-ieee128 test-printf-ibm128 +diff --git a/sysdeps/ieee754/ldbl-128ibm/Makefile b/sysdeps/ieee754/ldbl-128ibm/Makefile +index c38d4f6ac203fb8e..4dfe44032eb6f9d3 100644 +--- a/sysdeps/ieee754/ldbl-128ibm/Makefile ++++ b/sysdeps/ieee754/ldbl-128ibm/Makefile +@@ -17,6 +17,16 @@ ifeq ($(subdir),math) + tests += $(ldbl-tests) + endif + ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-real-convs += ldouble ++ ++# Use the IBM format for long double scanf format tests. ++$(foreach suf,$(all-object-suffixes), \ ++ $(foreach p,$(xscanf-funcs), \ ++ $(objpfx)tst-scanf-format-$(p)-ldouble$(suf))): \ ++ sysdep-CFLAGS += $(type-ldouble-CFLAGS) ++endif ++ + # Long double files may need extra CFLAGS. + ldbl-128ibm-routines = s_nexttoward s_nexttowardf \ + $(type-ldouble-routines) \ +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input +new file mode 100644 +index 0000000000000000..a7377d55575f2d75 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-a.input +@@ -0,0 +1,682 @@ ++%La::0:-1: ++%*La::0:-1: ++%La:-infinity:1:9:-inf: ++%*La:-infinity:0:9: ++%La:-0xf.ffffffffffffbffffffffffffcp+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:-0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%La:-0x7.ffffffffffffdffffffffffffep1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:-0x7.ffffffffffffdffffffffffffep1021:0:36: ++%La:-0x2.3456789abcdef0123456789abcp+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:-0x2.3456789abcdef0123456789abcp+123:0:36: ++%La:-0x2.3456789abcdef0123456789abcp0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:-0x2.3456789abcdef0123456789abcp0123:0:36: ++%La:-0x8p-972:1:9:-0x1p-969: ++%*La:-0x8p-972:0:9: ++%La:-0x0p+0:1:7:-0x0: ++%*La:-0x0p+0:0:7: ++%La:-0x0p0:1:6:-0x0: ++%*La:-0x0p0:0:6: ++%La:-nan(09A_Zaz):1:13:-nan: ++%*La:-nan(09A_Zaz):0:13: ++%La:-nan():1:6:-nan: ++%*La:-nan():0:6: ++%La:nan():1:5:nan: ++%*La:nan():0:5: ++%La:nan(09A_Zaz):1:12:nan: ++%*La:nan(09A_Zaz):0:12: ++%La:0x0p0:1:5:0x0: ++%*La:0x0p0:0:5: ++%La:0x0p+0:1:6:0x0: ++%*La:0x0p+0:0:6: ++%La:0x8p-972:1:8:0x1p-969: ++%*La:0x8p-972:0:8: ++%La:0x2.3456789abcdef0123456789abcp0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:0x2.3456789abcdef0123456789abcp0123:0:35: ++%La:0x2.3456789abcdef0123456789abcp+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:0x2.3456789abcdef0123456789abcp+123:0:35: ++%La:0x7.ffffffffffffdffffffffffffep1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:0x7.ffffffffffffdffffffffffffep1021:0:35: ++%La:0xf.ffffffffffffbffffffffffffcp+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:0xf.ffffffffffffbffffffffffffcp+1020:0:36: ++%La:infinity:1:8:inf: ++%*La:infinity:0:8: ++%La:+nan():1:6:nan: ++%*La:+nan():0:6: ++%La:+nan(09A_Zaz):1:13:nan: ++%*La:+nan(09A_Zaz):0:13: ++%La:+0x0p0:1:6:0x0: ++%*La:+0x0p0:0:6: ++%La:+0x0p+0:1:7:0x0: ++%*La:+0x0p+0:0:7: ++%La:+0x8p-972:1:9:0x1p-969: ++%*La:+0x8p-972:0:9: ++%La:+0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:+0x2.3456789abcdef0123456789abcp0123:0:36: ++%La:+0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*La:+0x2.3456789abcdef0123456789abcp+123:0:36: ++%La:+0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:+0x7.ffffffffffffdffffffffffffep1021:0:36: ++%La:+0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*La:+0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%La:+infinity:1:9:inf: ++%*La:+infinity:0:9: ++%1La::0:-1: ++%*1La::0:-1: ++%1La:-infinity:0:-1: ++%*1La:-infinity:0:-1: ++%1La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%*1La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%1La:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%*1La:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%1La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%*1La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%1La:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++%*1La:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++%1La:-0x8p-972:0:-1: ++%*1La:-0x8p-972:0:-1: ++%1La:-0x0p+0:0:-1: ++%*1La:-0x0p+0:0:-1: ++%1La:-0x0p0:0:-1: ++%*1La:-0x0p0:0:-1: ++%1La:-nan(09A_Zaz):0:-1: ++%*1La:-nan(09A_Zaz):0:-1: ++%1La:-nan():0:-1: ++%*1La:-nan():0:-1: ++%1La:nan():0:-1: ++%*1La:nan():0:-1: ++%1La:nan(09A_Zaz):0:-1: ++%*1La:nan(09A_Zaz):0:-1: ++%1La:0x0p0:1:1:0x0: ++%*1La:0x0p0:0:1: ++%1La:0x0p+0:1:1:0x0: ++%*1La:0x0p+0:0:1: ++%1La:0x8p-972:1:1:0x0: ++%*1La:0x8p-972:0:1: ++%1La:0x2.3456789abcdef0123456789abcp0123:1:1:0x0: ++%*1La:0x2.3456789abcdef0123456789abcp0123:0:1: ++%1La:0x2.3456789abcdef0123456789abcp+123:1:1:0x0: ++%*1La:0x2.3456789abcdef0123456789abcp+123:0:1: ++%1La:0x7.ffffffffffffdffffffffffffep1021:1:1:0x0: ++%*1La:0x7.ffffffffffffdffffffffffffep1021:0:1: ++%1La:0xf.ffffffffffffbffffffffffffcp+1020:1:1:0x0: ++%*1La:0xf.ffffffffffffbffffffffffffcp+1020:0:1: ++%1La:infinity:0:-1: ++%*1La:infinity:0:-1: ++%1La:+nan():0:-1: ++%*1La:+nan():0:-1: ++%1La:+nan(09A_Zaz):0:-1: ++%*1La:+nan(09A_Zaz):0:-1: ++%1La:+0x0p0:0:-1: ++%*1La:+0x0p0:0:-1: ++%1La:+0x0p+0:0:-1: ++%*1La:+0x0p+0:0:-1: ++%1La:+0x8p-972:0:-1: ++%*1La:+0x8p-972:0:-1: ++%1La:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++%*1La:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++%1La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%*1La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%1La:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%*1La:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%1La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%*1La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%1La:+infinity:0:-1: ++%*1La:+infinity:0:-1: ++%2La::0:-1: ++%*2La::0:-1: ++%2La:-infinity:0:-1: ++%*2La:-infinity:0:-1: ++%2La:-0xf.ffffffffffffbffffffffffffcp+1020:1:2:-0x0: ++%*2La:-0xf.ffffffffffffbffffffffffffcp+1020:0:2: ++%2La:-0x7.ffffffffffffdffffffffffffep1021:1:2:-0x0: ++%*2La:-0x7.ffffffffffffdffffffffffffep1021:0:2: ++%2La:-0x2.3456789abcdef0123456789abcp+123:1:2:-0x0: ++%*2La:-0x2.3456789abcdef0123456789abcp+123:0:2: ++%2La:-0x2.3456789abcdef0123456789abcp0123:1:2:-0x0: ++%*2La:-0x2.3456789abcdef0123456789abcp0123:0:2: ++%2La:-0x8p-972:1:2:-0x0: ++%*2La:-0x8p-972:0:2: ++%2La:-0x0p+0:1:2:-0x0: ++%*2La:-0x0p+0:0:2: ++%2La:-0x0p0:1:2:-0x0: ++%*2La:-0x0p0:0:2: ++%2La:-nan(09A_Zaz):0:-1: ++%*2La:-nan(09A_Zaz):0:-1: ++%2La:-nan():0:-1: ++%*2La:-nan():0:-1: ++%2La:nan():0:-1: ++%*2La:nan():0:-1: ++%2La:nan(09A_Zaz):0:-1: ++%*2La:nan(09A_Zaz):0:-1: ++# BZ12701 %2La:0x0p0:0:-1: ++# BZ12701 %*2La:0x0p0:0:-1: ++# BZ12701 %2La:0x0p+0:0:-1: ++# BZ12701 %*2La:0x0p+0:0:-1: ++# BZ12701 %2La:0x8p-972:0:-1: ++# BZ12701 %*2La:0x8p-972:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %2La:0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*2La:0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %2La:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*2La:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%2La:infinity:0:-1: ++%*2La:infinity:0:-1: ++%2La:+nan():0:-1: ++%*2La:+nan():0:-1: ++%2La:+nan(09A_Zaz):0:-1: ++%*2La:+nan(09A_Zaz):0:-1: ++%2La:+0x0p0:1:2:0x0: ++%*2La:+0x0p0:0:2: ++%2La:+0x0p+0:1:2:0x0: ++%*2La:+0x0p+0:0:2: ++%2La:+0x8p-972:1:2:0x0: ++%*2La:+0x8p-972:0:2: ++%2La:+0x2.3456789abcdef0123456789abcp0123:1:2:0x0: ++%*2La:+0x2.3456789abcdef0123456789abcp0123:0:2: ++%2La:+0x2.3456789abcdef0123456789abcp+123:1:2:0x0: ++%*2La:+0x2.3456789abcdef0123456789abcp+123:0:2: ++%2La:+0x7.ffffffffffffdffffffffffffep1021:1:2:0x0: ++%*2La:+0x7.ffffffffffffdffffffffffffep1021:0:2: ++%2La:+0xf.ffffffffffffbffffffffffffcp+1020:1:2:0x0: ++%*2La:+0xf.ffffffffffffbffffffffffffcp+1020:0:2: ++%2La:+infinity:0:-1: ++%*2La:+infinity:0:-1: ++%3La::0:-1: ++%*3La::0:-1: ++%3La:-infinity:0:-1: ++%*3La:-infinity:0:-1: ++# BZ12701 %3La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*3La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %3La:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*3La:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %3La:-0x8p-972:0:-1: ++# BZ12701 %*3La:-0x8p-972:0:-1: ++# BZ12701 %3La:-0x0p+0:0:-1: ++# BZ12701 %*3La:-0x0p+0:0:-1: ++# BZ12701 %3La:-0x0p0:0:-1: ++# BZ12701 %*3La:-0x0p0:0:-1: ++%3La:-nan(09A_Zaz):0:-1: ++%*3La:-nan(09A_Zaz):0:-1: ++%3La:-nan():0:-1: ++%*3La:-nan():0:-1: ++%3La:nan():1:3:nan: ++%*3La:nan():0:3: ++%3La:nan(09A_Zaz):1:3:nan: ++%*3La:nan(09A_Zaz):0:3: ++%3La:0x0p0:1:3:0x0: ++%*3La:0x0p0:0:3: ++%3La:0x0p+0:1:3:0x0: ++%*3La:0x0p+0:0:3: ++%3La:0x8p-972:1:3:0x1p3: ++%*3La:0x8p-972:0:3: ++%3La:0x2.3456789abcdef0123456789abcp0123:1:3:0x1p1: ++%*3La:0x2.3456789abcdef0123456789abcp0123:0:3: ++%3La:0x2.3456789abcdef0123456789abcp+123:1:3:0x1p1: ++%*3La:0x2.3456789abcdef0123456789abcp+123:0:3: ++%3La:0x7.ffffffffffffdffffffffffffep1021:1:3:0x1.cp2: ++%*3La:0x7.ffffffffffffdffffffffffffep1021:0:3: ++%3La:0xf.ffffffffffffbffffffffffffcp+1020:1:3:0x1.ep3: ++%*3La:0xf.ffffffffffffbffffffffffffcp+1020:0:3: ++%3La:infinity:1:3:inf: ++%*3La:infinity:0:3: ++%3La:+nan():0:-1: ++%*3La:+nan():0:-1: ++%3La:+nan(09A_Zaz):0:-1: ++%*3La:+nan(09A_Zaz):0:-1: ++# BZ12701 %3La:+0x0p0:0:-1: ++# BZ12701 %*3La:+0x0p0:0:-1: ++# BZ12701 %3La:+0x0p+0:0:-1: ++# BZ12701 %*3La:+0x0p+0:0:-1: ++# BZ12701 %3La:+0x8p-972:0:-1: ++# BZ12701 %*3La:+0x8p-972:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %3La:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*3La:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %3La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*3La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%3La:+infinity:0:-1: ++%*3La:+infinity:0:-1: ++%4La::0:-1: ++%*4La::0:-1: ++%4La:-infinity:1:4:-inf: ++%*4La:-infinity:0:4: ++%4La:-0xf.ffffffffffffbffffffffffffcp+1020:1:4:-0x1.ep3: ++%*4La:-0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4La:-0x7.ffffffffffffdffffffffffffep1021:1:4:-0x1.cp2: ++%*4La:-0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4La:-0x2.3456789abcdef0123456789abcp+123:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef0123456789abcp+123:0:4: ++%4La:-0x2.3456789abcdef0123456789abcp0123:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef0123456789abcp0123:0:4: ++%4La:-0x8p-972:1:4:-0x1p3: ++%*4La:-0x8p-972:0:4: ++%4La:-0x0p+0:1:4:-0x0: ++%*4La:-0x0p+0:0:4: ++%4La:-0x0p0:1:4:-0x0: ++%*4La:-0x0p0:0:4: ++%4La:-nan(09A_Zaz):1:4:-nan: ++%*4La:-nan(09A_Zaz):0:4: ++%4La:-nan():1:4:-nan: ++%*4La:-nan():0:4: ++%4La:nan():0:-1: ++%*4La:nan():0:-1: ++%4La:nan(09A_Zaz):0:-1: ++%*4La:nan(09A_Zaz):0:-1: ++# BZ12701 %4La:0x0p0:0:-1: ++# BZ12701 %*4La:0x0p0:0:-1: ++# BZ12701 %4La:0x0p+0:0:-1: ++# BZ12701 %*4La:0x0p+0:0:-1: ++# BZ12701 %4La:0x8p-972:0:-1: ++# BZ12701 %*4La:0x8p-972:0:-1: ++%4La:0x2.3456789abcdef0123456789abcp0123:1:4:0x1p1: ++%*4La:0x2.3456789abcdef0123456789abcp0123:0:4: ++%4La:0x2.3456789abcdef0123456789abcp+123:1:4:0x1p1: ++%*4La:0x2.3456789abcdef0123456789abcp+123:0:4: ++%4La:0x7.ffffffffffffdffffffffffffep1021:1:4:0x1.cp2: ++%*4La:0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4La:0xf.ffffffffffffbffffffffffffcp+1020:1:4:0x1.ep3: ++%*4La:0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4La:infinity:0:-1: ++%*4La:infinity:0:-1: ++%4La:+nan():1:4:nan: ++%*4La:+nan():0:4: ++%4La:+nan(09A_Zaz):1:4:nan: ++%*4La:+nan(09A_Zaz):0:4: ++%4La:+0x0p0:1:4:0x0: ++%*4La:+0x0p0:0:4: ++%4La:+0x0p+0:1:4:0x0: ++%*4La:+0x0p+0:0:4: ++%4La:+0x8p-972:1:4:0x1p3: ++%*4La:+0x8p-972:0:4: ++%4La:+0x2.3456789abcdef0123456789abcp0123:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef0123456789abcp0123:0:4: ++%4La:+0x2.3456789abcdef0123456789abcp+123:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef0123456789abcp+123:0:4: ++%4La:+0x7.ffffffffffffdffffffffffffep1021:1:4:0x1.cp2: ++%*4La:+0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4La:+0xf.ffffffffffffbffffffffffffcp+1020:1:4:0x1.ep3: ++%*4La:+0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4La:+infinity:1:4:inf: ++%*4La:+infinity:0:4: ++%5La::0:-1: ++%*5La::0:-1: ++%5La:-infinity:0:-1: ++%*5La:-infinity:0:-1: ++%5La:-0xf.ffffffffffffbffffffffffffcp+1020:1:5:-0x1.ep3: ++%*5La:-0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5La:-0x7.ffffffffffffdffffffffffffep1021:1:5:-0x1.cp2: ++%*5La:-0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5La:-0x2.3456789abcdef0123456789abcp+123:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef0123456789abcp+123:0:5: ++%5La:-0x2.3456789abcdef0123456789abcp0123:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef0123456789abcp0123:0:5: ++# BZ12701 %5La:-0x8p-972:0:-1: ++# BZ12701 %*5La:-0x8p-972:0:-1: ++# BZ12701 %5La:-0x0p+0:0:-1: ++# BZ12701 %*5La:-0x0p+0:0:-1: ++# BZ12701 %5La:-0x0p0:0:-1: ++# BZ12701 %*5La:-0x0p0:0:-1: ++%5La:-nan(09A_Zaz):0:-1: ++%*5La:-nan(09A_Zaz):0:-1: ++%5La:-nan():0:-1: ++%*5La:-nan():0:-1: ++%5La:nan():1:5:nan: ++%*5La:nan():0:5: ++%5La:nan(09A_Zaz):0:-1: ++%*5La:nan(09A_Zaz):0:-1: ++%5La:0x0p0:1:5:0x0: ++%*5La:0x0p0:0:5: ++# BZ12701 %5La:0x0p+0:0:-1: ++# BZ12701 %*5La:0x0p+0:0:-1: ++# BZ12701 %5La:0x8p-972:0:-1: ++# BZ12701 %*5La:0x8p-972:0:-1: ++%5La:0x2.3456789abcdef0123456789abcp0123:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef0123456789abcp0123:0:5: ++%5La:0x2.3456789abcdef0123456789abcp+123:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef0123456789abcp+123:0:5: ++%5La:0x7.ffffffffffffdffffffffffffep1021:1:5:0x1.fcp2: ++%*5La:0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5La:0xf.ffffffffffffbffffffffffffcp+1020:1:5:0x1.fep3: ++%*5La:0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5La:infinity:0:-1: ++%*5La:infinity:0:-1: ++%5La:+nan():0:-1: ++%*5La:+nan():0:-1: ++%5La:+nan(09A_Zaz):0:-1: ++%*5La:+nan(09A_Zaz):0:-1: ++# BZ12701 %5La:+0x0p0:0:-1: ++# BZ12701 %*5La:+0x0p0:0:-1: ++# BZ12701 %5La:+0x0p+0:0:-1: ++# BZ12701 %*5La:+0x0p+0:0:-1: ++# BZ12701 %5La:+0x8p-972:0:-1: ++# BZ12701 %*5La:+0x8p-972:0:-1: ++%5La:+0x2.3456789abcdef0123456789abcp0123:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef0123456789abcp0123:0:5: ++%5La:+0x2.3456789abcdef0123456789abcp+123:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef0123456789abcp+123:0:5: ++%5La:+0x7.ffffffffffffdffffffffffffep1021:1:5:0x1.cp2: ++%*5La:+0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5La:+0xf.ffffffffffffbffffffffffffcp+1020:1:5:0x1.ep3: ++%*5La:+0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5La:+infinity:0:-1: ++%*5La:+infinity:0:-1: ++%6La::0:-1: ++%*6La::0:-1: ++%6La:-infinity:0:-1: ++%*6La:-infinity:0:-1: ++%6La:-0xf.ffffffffffffbffffffffffffcp+1020:1:6:-0x1.fep3: ++%*6La:-0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6La:-0x7.ffffffffffffdffffffffffffep1021:1:6:-0x1.fcp2: ++%*6La:-0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6La:-0x2.3456789abcdef0123456789abcp+123:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef0123456789abcp+123:0:6: ++%6La:-0x2.3456789abcdef0123456789abcp0123:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef0123456789abcp0123:0:6: ++# BZ12701 %6La:-0x8p-972:0:-1: ++# BZ12701 %*6La:-0x8p-972:0:-1: ++# BZ12701 %6La:-0x0p+0:0:-1: ++# BZ12701 %*6La:-0x0p+0:0:-1: ++%6La:-0x0p0:1:6:-0x0: ++%*6La:-0x0p0:0:6: ++%6La:-nan(09A_Zaz):0:-1: ++%*6La:-nan(09A_Zaz):0:-1: ++%6La:-nan():1:6:-nan: ++%*6La:-nan():0:6: ++%6La:nan():1:5:nan: ++%*6La:nan():0:5: ++%6La:nan(09A_Zaz):0:-1: ++%*6La:nan(09A_Zaz):0:-1: ++%6La:0x0p0:1:5:0x0: ++%*6La:0x0p0:0:5: ++%6La:0x0p+0:1:6:0x0: ++%*6La:0x0p+0:0:6: ++%6La:0x8p-972:1:6:0x1p-6: ++%*6La:0x8p-972:0:6: ++%6La:0x2.3456789abcdef0123456789abcp0123:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef0123456789abcp0123:0:6: ++%6La:0x2.3456789abcdef0123456789abcp+123:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef0123456789abcp+123:0:6: ++%6La:0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.ffcp2: ++%*6La:0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6La:0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.ffep3: ++%*6La:0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6La:infinity:0:-1: ++%*6La:infinity:0:-1: ++%6La:+nan():1:6:nan: ++%*6La:+nan():0:6: ++%6La:+nan(09A_Zaz):0:-1: ++%*6La:+nan(09A_Zaz):0:-1: ++%6La:+0x0p0:1:6:0x0: ++%*6La:+0x0p0:0:6: ++# BZ12701 %6La:+0x0p+0:0:-1: ++# BZ12701 %*6La:+0x0p+0:0:-1: ++# BZ12701 %6La:+0x8p-972:0:-1: ++# BZ12701 %*6La:+0x8p-972:0:-1: ++%6La:+0x2.3456789abcdef0123456789abcp0123:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef0123456789abcp0123:0:6: ++%6La:+0x2.3456789abcdef0123456789abcp+123:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef0123456789abcp+123:0:6: ++%6La:+0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.fcp2: ++%*6La:+0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6La:+0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.fep3: ++%*6La:+0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6La:+infinity:0:-1: ++%*6La:+infinity:0:-1: ++%33La::0:-1: ++%*33La::0:-1: ++%33La:-infinity:1:9:-inf: ++%*33La:-infinity:0:9: ++# BZ12701 %33La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*33La:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%33La:-0x7.ffffffffffffdffffffffffffep1021:1:33:-0x1.fffffffffffff7ffffffffffff8p3: ++%*33La:-0x7.ffffffffffffdffffffffffffep1021:0:33: ++# BZ12701 %33La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*33La:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%33La:-0x2.3456789abcdef0123456789abcp0123:1:33:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33La:-0x2.3456789abcdef0123456789abcp0123:0:33: ++%33La:-0x8p-972:1:9:-0x1p-969: ++%*33La:-0x8p-972:0:9: ++%33La:-0x0p+0:1:7:-0x0: ++%*33La:-0x0p+0:0:7: ++%33La:-0x0p0:1:6:-0x0: ++%*33La:-0x0p0:0:6: ++%33La:-nan(09A_Zaz):1:13:-nan: ++%*33La:-nan(09A_Zaz):0:13: ++%33La:-nan():1:6:-nan: ++%*33La:-nan():0:6: ++%33La:nan():1:5:nan: ++%*33La:nan():0:5: ++%33La:nan(09A_Zaz):1:12:nan: ++%*33La:nan(09A_Zaz):0:12: ++%33La:0x0p0:1:5:0x0: ++%*33La:0x0p0:0:5: ++%33La:0x0p+0:1:6:0x0: ++%*33La:0x0p+0:0:6: ++%33La:0x8p-972:1:8:0x1p-969: ++%*33La:0x8p-972:0:8: ++%33La:0x2.3456789abcdef0123456789abcp0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33La:0x2.3456789abcdef0123456789abcp0123:0:33: ++%33La:0x2.3456789abcdef0123456789abcp+123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33La:0x2.3456789abcdef0123456789abcp+123:0:33: ++%33La:0x7.ffffffffffffdffffffffffffep1021:1:33:0x1.fffffffffffff7ffffffffffff8p12: ++%*33La:0x7.ffffffffffffdffffffffffffep1021:0:33: ++%33La:0xf.ffffffffffffbffffffffffffcp+1020:1:33:0x1.fffffffffffff7ffffffffffff8p4: ++%*33La:0xf.ffffffffffffbffffffffffffcp+1020:0:33: ++%33La:infinity:1:8:inf: ++%*33La:infinity:0:8: ++%33La:+nan():1:6:nan: ++%*33La:+nan():0:6: ++%33La:+nan(09A_Zaz):1:13:nan: ++%*33La:+nan(09A_Zaz):0:13: ++%33La:+0x0p0:1:6:0x0: ++%*33La:+0x0p0:0:6: ++%33La:+0x0p+0:1:7:0x0: ++%*33La:+0x0p+0:0:7: ++%33La:+0x8p-972:1:9:0x1p-969: ++%*33La:+0x8p-972:0:9: ++%33La:+0x2.3456789abcdef0123456789abcp0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33La:+0x2.3456789abcdef0123456789abcp0123:0:33: ++# BZ12701 %33La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*33La:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%33La:+0x7.ffffffffffffdffffffffffffep1021:1:33:0x1.fffffffffffff7ffffffffffff8p3: ++%*33La:+0x7.ffffffffffffdffffffffffffep1021:0:33: ++# BZ12701 %33La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*33La:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%33La:+infinity:1:9:inf: ++%*33La:+infinity:0:9: ++%50La::0:-1: ++%*50La::0:-1: ++%50La:-infinity:1:9:-inf: ++%*50La:-infinity:0:9: ++%50La:-0xf.ffffffffffffbffffffffffffcp+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:-0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50La:-0x7.ffffffffffffdffffffffffffep1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:-0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50La:-0x2.3456789abcdef0123456789abcp+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:-0x2.3456789abcdef0123456789abcp+123:0:36: ++%50La:-0x2.3456789abcdef0123456789abcp0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:-0x2.3456789abcdef0123456789abcp0123:0:36: ++%50La:-0x8p-972:1:9:-0x1p-969: ++%*50La:-0x8p-972:0:9: ++%50La:-0x0p+0:1:7:-0x0: ++%*50La:-0x0p+0:0:7: ++%50La:-0x0p0:1:6:-0x0: ++%*50La:-0x0p0:0:6: ++%50La:-nan(09A_Zaz):1:13:-nan: ++%*50La:-nan(09A_Zaz):0:13: ++%50La:-nan():1:6:-nan: ++%*50La:-nan():0:6: ++%50La:nan():1:5:nan: ++%*50La:nan():0:5: ++%50La:nan(09A_Zaz):1:12:nan: ++%*50La:nan(09A_Zaz):0:12: ++%50La:0x0p0:1:5:0x0: ++%*50La:0x0p0:0:5: ++%50La:0x0p+0:1:6:0x0: ++%*50La:0x0p+0:0:6: ++%50La:0x8p-972:1:8:0x1p-969: ++%*50La:0x8p-972:0:8: ++%50La:0x2.3456789abcdef0123456789abcp0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:0x2.3456789abcdef0123456789abcp0123:0:35: ++%50La:0x2.3456789abcdef0123456789abcp+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:0x2.3456789abcdef0123456789abcp+123:0:35: ++%50La:0x7.ffffffffffffdffffffffffffep1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:0x7.ffffffffffffdffffffffffffep1021:0:35: ++%50La:0xf.ffffffffffffbffffffffffffcp+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:0xf.ffffffffffffbffffffffffffcp+1020:0:36: ++%50La:infinity:1:8:inf: ++%*50La:infinity:0:8: ++%50La:+nan():1:6:nan: ++%*50La:+nan():0:6: ++%50La:+nan(09A_Zaz):1:13:nan: ++%*50La:+nan(09A_Zaz):0:13: ++%50La:+0x0p0:1:6:0x0: ++%*50La:+0x0p0:0:6: ++%50La:+0x0p+0:1:7:0x0: ++%*50La:+0x0p+0:0:7: ++%50La:+0x8p-972:1:9:0x1p-969: ++%*50La:+0x8p-972:0:9: ++%50La:+0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:+0x2.3456789abcdef0123456789abcp0123:0:36: ++%50La:+0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La:+0x2.3456789abcdef0123456789abcp+123:0:36: ++%50La:+0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:+0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50La:+0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La:+0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50La:+infinity:1:9:inf: ++%*50La:+infinity:0:9: ++%5La: :0:-1: ++%*5La: :0:-1: ++%5La: -infinity:0:-1: ++%*5La: -infinity:0:-1: ++%5La: -0xf.ffffffffffffbffffffffffffcp+1020:1:6:-0x1.ep3: ++%*5La: -0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5La: -0x7.ffffffffffffdffffffffffffep1021:1:6:-0x1.cp2: ++%*5La: -0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5La: -0x2.3456789abcdef0123456789abcp+123:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef0123456789abcp+123:0:6: ++%5La: -0x2.3456789abcdef0123456789abcp0123:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef0123456789abcp0123:0:6: ++# BZ12701 %5La: -0x8p-972:0:-1: ++# BZ12701 %*5La: -0x8p-972:0:-1: ++# BZ12701 %5La: -0x0p+0:0:-1: ++# BZ12701 %*5La: -0x0p+0:0:-1: ++# BZ12701 %5La: -0x0p0:0:-1: ++# BZ12701 %*5La: -0x0p0:0:-1: ++%5La: -nan(09A_Zaz):0:-1: ++%*5La: -nan(09A_Zaz):0:-1: ++%5La: -nan():0:-1: ++%*5La: -nan():0:-1: ++%5La: nan():1:6:nan: ++%*5La: nan():0:6: ++%5La: nan(09A_Zaz):0:-1: ++%*5La: nan(09A_Zaz):0:-1: ++%5La: 0x0p0:1:6:0x0: ++%*5La: 0x0p0:0:6: ++# BZ12701 %5La: 0x0p+0:0:-1: ++# BZ12701 %*5La: 0x0p+0:0:-1: ++# BZ12701 %5La: 0x8p-972:0:-1: ++# BZ12701 %*5La: 0x8p-972:0:-1: ++%5La: 0x2.3456789abcdef0123456789abcp0123:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef0123456789abcp0123:0:6: ++%5La: 0x2.3456789abcdef0123456789abcp+123:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef0123456789abcp+123:0:6: ++%5La: 0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.fcp2: ++%*5La: 0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5La: 0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.fep3: ++%*5La: 0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5La: infinity:0:-1: ++%*5La: infinity:0:-1: ++%5La: +nan():0:-1: ++%*5La: +nan():0:-1: ++%5La: +nan(09A_Zaz):0:-1: ++%*5La: +nan(09A_Zaz):0:-1: ++# BZ12701 %5La: +0x0p0:0:-1: ++# BZ12701 %*5La: +0x0p0:0:-1: ++# BZ12701 %5La: +0x0p+0:0:-1: ++# BZ12701 %*5La: +0x0p+0:0:-1: ++# BZ12701 %5La: +0x8p-972:0:-1: ++# BZ12701 %*5La: +0x8p-972:0:-1: ++%5La: +0x2.3456789abcdef0123456789abcp0123:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef0123456789abcp0123:0:6: ++%5La: +0x2.3456789abcdef0123456789abcp+123:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef0123456789abcp+123:0:6: ++%5La: +0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.cp2: ++%*5La: +0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5La: +0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.ep3: ++%*5La: +0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5La: +infinity:0:-1: ++%*5La: +infinity:0:-1: ++%50La: :0:-1: ++%*50La: :0:-1: ++%50La: -infinity:1:10:-inf: ++%*50La: -infinity:0:10: ++%50La: -0xf.ffffffffffffbffffffffffffcp+1020:1:38:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: -0xf.ffffffffffffbffffffffffffcp+1020:0:38: ++%50La: -0x7.ffffffffffffdffffffffffffep1021:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: -0x7.ffffffffffffdffffffffffffep1021:0:37: ++%50La: -0x2.3456789abcdef0123456789abcp+123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: -0x2.3456789abcdef0123456789abcp+123:0:37: ++%50La: -0x2.3456789abcdef0123456789abcp0123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: -0x2.3456789abcdef0123456789abcp0123:0:37: ++%50La: -0x8p-972:1:10:-0x1p-969: ++%*50La: -0x8p-972:0:10: ++%50La: -0x0p+0:1:8:-0x0: ++%*50La: -0x0p+0:0:8: ++%50La: -0x0p0:1:7:-0x0: ++%*50La: -0x0p0:0:7: ++%50La: -nan(09A_Zaz):1:14:-nan: ++%*50La: -nan(09A_Zaz):0:14: ++%50La: -nan():1:7:-nan: ++%*50La: -nan():0:7: ++%50La: nan():1:6:nan: ++%*50La: nan():0:6: ++%50La: nan(09A_Zaz):1:13:nan: ++%*50La: nan(09A_Zaz):0:13: ++%50La: 0x0p0:1:6:0x0: ++%*50La: 0x0p0:0:6: ++%50La: 0x0p+0:1:7:0x0: ++%*50La: 0x0p+0:0:7: ++%50La: 0x8p-972:1:9:0x1p-969: ++%*50La: 0x8p-972:0:9: ++%50La: 0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: 0x2.3456789abcdef0123456789abcp0123:0:36: ++%50La: 0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: 0x2.3456789abcdef0123456789abcp+123:0:36: ++%50La: 0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: 0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50La: 0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: 0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50La: infinity:1:9:inf: ++%*50La: infinity:0:9: ++%50La: +nan():1:7:nan: ++%*50La: +nan():0:7: ++%50La: +nan(09A_Zaz):1:14:nan: ++%*50La: +nan(09A_Zaz):0:14: ++%50La: +0x0p0:1:7:0x0: ++%*50La: +0x0p0:0:7: ++%50La: +0x0p+0:1:8:0x0: ++%*50La: +0x0p+0:0:8: ++%50La: +0x8p-972:1:10:0x1p-969: ++%*50La: +0x8p-972:0:10: ++%50La: +0x2.3456789abcdef0123456789abcp0123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: +0x2.3456789abcdef0123456789abcp0123:0:37: ++%50La: +0x2.3456789abcdef0123456789abcp+123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50La: +0x2.3456789abcdef0123456789abcp+123:0:37: ++%50La: +0x7.ffffffffffffdffffffffffffep1021:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: +0x7.ffffffffffffdffffffffffffep1021:0:37: ++%50La: +0xf.ffffffffffffbffffffffffffcp+1020:1:38:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50La: +0xf.ffffffffffffbffffffffffffcp+1020:0:38: ++%50La: +infinity:1:10:inf: ++%*50La: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input +new file mode 100644 +index 0000000000000000..1dc2c558ced97273 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-aa.input +@@ -0,0 +1,682 @@ ++%LA::0:-1: ++%*LA::0:-1: ++%LA:-INFINITY:1:9:-inf: ++%*LA:-INFINITY:0:9: ++%LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%LA:-0X8P-972:1:9:-0x1p-969: ++%*LA:-0X8P-972:0:9: ++%LA:-0X0P+0:1:7:-0x0: ++%*LA:-0X0P+0:0:7: ++%LA:-0X0P0:1:6:-0x0: ++%*LA:-0X0P0:0:6: ++%LA:-NAN(09A_Zaz):1:13:-nan: ++%*LA:-NAN(09A_Zaz):0:13: ++%LA:-NAN():1:6:-nan: ++%*LA:-NAN():0:6: ++%LA:NAN():1:5:nan: ++%*LA:NAN():0:5: ++%LA:NAN(09A_Zaz):1:12:nan: ++%*LA:NAN(09A_Zaz):0:12: ++%LA:0X0P0:1:5:0x0: ++%*LA:0X0P0:0:5: ++%LA:0X0P+0:1:6:0x0: ++%*LA:0X0P+0:0:6: ++%LA:0X8P-972:1:8:0x1p-969: ++%*LA:0X8P-972:0:8: ++%LA:0X2.3456789ABCDEF0123456789ABCP0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:0X2.3456789ABCDEF0123456789ABCP0123:0:35: ++%LA:0X2.3456789ABCDEF0123456789ABCP+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:0X2.3456789ABCDEF0123456789ABCP+123:0:35: ++%LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:35: ++%LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: ++%LA:INFINITY:1:8:inf: ++%*LA:INFINITY:0:8: ++%LA:+NAN():1:6:nan: ++%*LA:+NAN():0:6: ++%LA:+NAN(09A_Zaz):1:13:nan: ++%*LA:+NAN(09A_Zaz):0:13: ++%LA:+0X0P0:1:6:0x0: ++%*LA:+0X0P0:0:6: ++%LA:+0X0P+0:1:7:0x0: ++%*LA:+0X0P+0:0:7: ++%LA:+0X8P-972:1:9:0x1p-969: ++%*LA:+0X8P-972:0:9: ++%LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%LA:+INFINITY:1:9:inf: ++%*LA:+INFINITY:0:9: ++%1LA::0:-1: ++%*1LA::0:-1: ++%1LA:-INFINITY:0:-1: ++%*1LA:-INFINITY:0:-1: ++%1LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%*1LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%1LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%*1LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%1LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%*1LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%1LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%*1LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%1LA:-0X8P-972:0:-1: ++%*1LA:-0X8P-972:0:-1: ++%1LA:-0X0P+0:0:-1: ++%*1LA:-0X0P+0:0:-1: ++%1LA:-0X0P0:0:-1: ++%*1LA:-0X0P0:0:-1: ++%1LA:-NAN(09A_Zaz):0:-1: ++%*1LA:-NAN(09A_Zaz):0:-1: ++%1LA:-NAN():0:-1: ++%*1LA:-NAN():0:-1: ++%1LA:NAN():0:-1: ++%*1LA:NAN():0:-1: ++%1LA:NAN(09A_Zaz):0:-1: ++%*1LA:NAN(09A_Zaz):0:-1: ++%1LA:0X0P0:1:1:0x0: ++%*1LA:0X0P0:0:1: ++%1LA:0X0P+0:1:1:0x0: ++%*1LA:0X0P+0:0:1: ++%1LA:0X8P-972:1:1:0x0: ++%*1LA:0X8P-972:0:1: ++%1LA:0X2.3456789ABCDEF0123456789ABCP0123:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF0123456789ABCP0123:0:1: ++%1LA:0X2.3456789ABCDEF0123456789ABCP+123:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF0123456789ABCP+123:0:1: ++%1LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:1:0x0: ++%*1LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:1: ++%1LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:1:0x0: ++%*1LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:1: ++%1LA:INFINITY:0:-1: ++%*1LA:INFINITY:0:-1: ++%1LA:+NAN():0:-1: ++%*1LA:+NAN():0:-1: ++%1LA:+NAN(09A_Zaz):0:-1: ++%*1LA:+NAN(09A_Zaz):0:-1: ++%1LA:+0X0P0:0:-1: ++%*1LA:+0X0P0:0:-1: ++%1LA:+0X0P+0:0:-1: ++%*1LA:+0X0P+0:0:-1: ++%1LA:+0X8P-972:0:-1: ++%*1LA:+0X8P-972:0:-1: ++%1LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%*1LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%1LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%*1LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%1LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%*1LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%1LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%*1LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%1LA:+INFINITY:0:-1: ++%*1LA:+INFINITY:0:-1: ++%2LA::0:-1: ++%*2LA::0:-1: ++%2LA:-INFINITY:0:-1: ++%*2LA:-INFINITY:0:-1: ++%2LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:2:-0x0: ++%*2LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:2: ++%2LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:2:-0x0: ++%*2LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:2: ++%2LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:2: ++%2LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:2: ++%2LA:-0X8P-972:1:2:-0x0: ++%*2LA:-0X8P-972:0:2: ++%2LA:-0X0P+0:1:2:-0x0: ++%*2LA:-0X0P+0:0:2: ++%2LA:-0X0P0:1:2:-0x0: ++%*2LA:-0X0P0:0:2: ++%2LA:-NAN(09A_Zaz):0:-1: ++%*2LA:-NAN(09A_Zaz):0:-1: ++%2LA:-NAN():0:-1: ++%*2LA:-NAN():0:-1: ++%2LA:NAN():0:-1: ++%*2LA:NAN():0:-1: ++%2LA:NAN(09A_Zaz):0:-1: ++%*2LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LA:0X0P0:0:-1: ++# BZ12701 %*2LA:0X0P0:0:-1: ++# BZ12701 %2LA:0X0P+0:0:-1: ++# BZ12701 %*2LA:0X0P+0:0:-1: ++# BZ12701 %2LA:0X8P-972:0:-1: ++# BZ12701 %*2LA:0X8P-972:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %2LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*2LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %2LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*2LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%2LA:INFINITY:0:-1: ++%*2LA:INFINITY:0:-1: ++%2LA:+NAN():0:-1: ++%*2LA:+NAN():0:-1: ++%2LA:+NAN(09A_Zaz):0:-1: ++%*2LA:+NAN(09A_Zaz):0:-1: ++%2LA:+0X0P0:1:2:0x0: ++%*2LA:+0X0P0:0:2: ++%2LA:+0X0P+0:1:2:0x0: ++%*2LA:+0X0P+0:0:2: ++%2LA:+0X8P-972:1:2:0x0: ++%*2LA:+0X8P-972:0:2: ++%2LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:2: ++%2LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:2: ++%2LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:2:0x0: ++%*2LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:2: ++%2LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:2:0x0: ++%*2LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:2: ++%2LA:+INFINITY:0:-1: ++%*2LA:+INFINITY:0:-1: ++%3LA::0:-1: ++%*3LA::0:-1: ++%3LA:-INFINITY:0:-1: ++%*3LA:-INFINITY:0:-1: ++# BZ12701 %3LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*3LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %3LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*3LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %3LA:-0X8P-972:0:-1: ++# BZ12701 %*3LA:-0X8P-972:0:-1: ++# BZ12701 %3LA:-0X0P+0:0:-1: ++# BZ12701 %*3LA:-0X0P+0:0:-1: ++# BZ12701 %3LA:-0X0P0:0:-1: ++# BZ12701 %*3LA:-0X0P0:0:-1: ++%3LA:-NAN(09A_Zaz):0:-1: ++%*3LA:-NAN(09A_Zaz):0:-1: ++%3LA:-NAN():0:-1: ++%*3LA:-NAN():0:-1: ++%3LA:NAN():1:3:nan: ++%*3LA:NAN():0:3: ++%3LA:NAN(09A_Zaz):1:3:nan: ++%*3LA:NAN(09A_Zaz):0:3: ++%3LA:0X0P0:1:3:0x0: ++%*3LA:0X0P0:0:3: ++%3LA:0X0P+0:1:3:0x0: ++%*3LA:0X0P+0:0:3: ++%3LA:0X8P-972:1:3:0x1p3: ++%*3LA:0X8P-972:0:3: ++%3LA:0X2.3456789ABCDEF0123456789ABCP0123:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF0123456789ABCP0123:0:3: ++%3LA:0X2.3456789ABCDEF0123456789ABCP+123:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF0123456789ABCP+123:0:3: ++%3LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:3:0x1.cp2: ++%*3LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:3: ++%3LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:3:0x1.ep3: ++%*3LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:3: ++%3LA:INFINITY:1:3:inf: ++%*3LA:INFINITY:0:3: ++%3LA:+NAN():0:-1: ++%*3LA:+NAN():0:-1: ++%3LA:+NAN(09A_Zaz):0:-1: ++%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LA:+0X0P0:0:-1: ++# BZ12701 %*3LA:+0X0P0:0:-1: ++# BZ12701 %3LA:+0X0P+0:0:-1: ++# BZ12701 %*3LA:+0X0P+0:0:-1: ++# BZ12701 %3LA:+0X8P-972:0:-1: ++# BZ12701 %*3LA:+0X8P-972:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %3LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*3LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %3LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*3LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%3LA:+INFINITY:0:-1: ++%*3LA:+INFINITY:0:-1: ++%4LA::0:-1: ++%*4LA::0:-1: ++%4LA:-INFINITY:1:4:-inf: ++%*4LA:-INFINITY:0:4: ++%4LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:-0x1.ep3: ++%*4LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:-0x1.cp2: ++%*4LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LA:-0X8P-972:1:4:-0x1p3: ++%*4LA:-0X8P-972:0:4: ++%4LA:-0X0P+0:1:4:-0x0: ++%*4LA:-0X0P+0:0:4: ++%4LA:-0X0P0:1:4:-0x0: ++%*4LA:-0X0P0:0:4: ++%4LA:-NAN(09A_Zaz):1:4:-nan: ++%*4LA:-NAN(09A_Zaz):0:4: ++%4LA:-NAN():1:4:-nan: ++%*4LA:-NAN():0:4: ++%4LA:NAN():0:-1: ++%*4LA:NAN():0:-1: ++%4LA:NAN(09A_Zaz):0:-1: ++%*4LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LA:0X0P0:0:-1: ++# BZ12701 %*4LA:0X0P0:0:-1: ++# BZ12701 %4LA:0X0P+0:0:-1: ++# BZ12701 %*4LA:0X0P+0:0:-1: ++# BZ12701 %4LA:0X8P-972:0:-1: ++# BZ12701 %*4LA:0X8P-972:0:-1: ++%4LA:0X2.3456789ABCDEF0123456789ABCP0123:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LA:0X2.3456789ABCDEF0123456789ABCP+123:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:0x1.cp2: ++%*4LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:0x1.ep3: ++%*4LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LA:INFINITY:0:-1: ++%*4LA:INFINITY:0:-1: ++%4LA:+NAN():1:4:nan: ++%*4LA:+NAN():0:4: ++%4LA:+NAN(09A_Zaz):1:4:nan: ++%*4LA:+NAN(09A_Zaz):0:4: ++%4LA:+0X0P0:1:4:0x0: ++%*4LA:+0X0P0:0:4: ++%4LA:+0X0P+0:1:4:0x0: ++%*4LA:+0X0P+0:0:4: ++%4LA:+0X8P-972:1:4:0x1p3: ++%*4LA:+0X8P-972:0:4: ++%4LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:0x1.cp2: ++%*4LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:0x1.ep3: ++%*4LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LA:+INFINITY:1:4:inf: ++%*4LA:+INFINITY:0:4: ++%5LA::0:-1: ++%*5LA::0:-1: ++%5LA:-INFINITY:0:-1: ++%*5LA:-INFINITY:0:-1: ++%5LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:-0x1.ep3: ++%*5LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:-0x1.cp2: ++%*5LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++# BZ12701 %5LA:-0X8P-972:0:-1: ++# BZ12701 %*5LA:-0X8P-972:0:-1: ++# BZ12701 %5LA:-0X0P+0:0:-1: ++# BZ12701 %*5LA:-0X0P+0:0:-1: ++# BZ12701 %5LA:-0X0P0:0:-1: ++# BZ12701 %*5LA:-0X0P0:0:-1: ++%5LA:-NAN(09A_Zaz):0:-1: ++%*5LA:-NAN(09A_Zaz):0:-1: ++%5LA:-NAN():0:-1: ++%*5LA:-NAN():0:-1: ++%5LA:NAN():1:5:nan: ++%*5LA:NAN():0:5: ++%5LA:NAN(09A_Zaz):0:-1: ++%*5LA:NAN(09A_Zaz):0:-1: ++%5LA:0X0P0:1:5:0x0: ++%*5LA:0X0P0:0:5: ++# BZ12701 %5LA:0X0P+0:0:-1: ++# BZ12701 %*5LA:0X0P+0:0:-1: ++# BZ12701 %5LA:0X8P-972:0:-1: ++# BZ12701 %*5LA:0X8P-972:0:-1: ++%5LA:0X2.3456789ABCDEF0123456789ABCP0123:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++%5LA:0X2.3456789ABCDEF0123456789ABCP+123:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:0x1.fcp2: ++%*5LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:0x1.fep3: ++%*5LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LA:INFINITY:0:-1: ++%*5LA:INFINITY:0:-1: ++%5LA:+NAN():0:-1: ++%*5LA:+NAN():0:-1: ++%5LA:+NAN(09A_Zaz):0:-1: ++%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA:+0X0P0:0:-1: ++# BZ12701 %*5LA:+0X0P0:0:-1: ++# BZ12701 %5LA:+0X0P+0:0:-1: ++# BZ12701 %*5LA:+0X0P+0:0:-1: ++# BZ12701 %5LA:+0X8P-972:0:-1: ++# BZ12701 %*5LA:+0X8P-972:0:-1: ++%5LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++%5LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:0x1.cp2: ++%*5LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:0x1.ep3: ++%*5LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LA:+INFINITY:0:-1: ++%*5LA:+INFINITY:0:-1: ++%6LA::0:-1: ++%*6LA::0:-1: ++%6LA:-INFINITY:0:-1: ++%*6LA:-INFINITY:0:-1: ++%6LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:-0x1.fep3: ++%*6LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:-0x1.fcp2: ++%*6LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++# BZ12701 %6LA:-0X8P-972:0:-1: ++# BZ12701 %*6LA:-0X8P-972:0:-1: ++# BZ12701 %6LA:-0X0P+0:0:-1: ++# BZ12701 %*6LA:-0X0P+0:0:-1: ++%6LA:-0X0P0:1:6:-0x0: ++%*6LA:-0X0P0:0:6: ++%6LA:-NAN(09A_Zaz):0:-1: ++%*6LA:-NAN(09A_Zaz):0:-1: ++%6LA:-NAN():1:6:-nan: ++%*6LA:-NAN():0:6: ++%6LA:NAN():1:5:nan: ++%*6LA:NAN():0:5: ++%6LA:NAN(09A_Zaz):0:-1: ++%*6LA:NAN(09A_Zaz):0:-1: ++%6LA:0X0P0:1:5:0x0: ++%*6LA:0X0P0:0:5: ++%6LA:0X0P+0:1:6:0x0: ++%*6LA:0X0P+0:0:6: ++%6LA:0X8P-972:1:6:0x1p-6: ++%*6LA:0X8P-972:0:6: ++%6LA:0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%6LA:0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.ffcp2: ++%*6LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.ffep3: ++%*6LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LA:INFINITY:0:-1: ++%*6LA:INFINITY:0:-1: ++%6LA:+NAN():1:6:nan: ++%*6LA:+NAN():0:6: ++%6LA:+NAN(09A_Zaz):0:-1: ++%*6LA:+NAN(09A_Zaz):0:-1: ++%6LA:+0X0P0:1:6:0x0: ++%*6LA:+0X0P0:0:6: ++# BZ12701 %6LA:+0X0P+0:0:-1: ++# BZ12701 %*6LA:+0X0P+0:0:-1: ++# BZ12701 %6LA:+0X8P-972:0:-1: ++# BZ12701 %*6LA:+0X8P-972:0:-1: ++%6LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%6LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.fcp2: ++%*6LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.fep3: ++%*6LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LA:+INFINITY:0:-1: ++%*6LA:+INFINITY:0:-1: ++%33LA::0:-1: ++%*33LA::0:-1: ++%33LA:-INFINITY:1:9:-inf: ++%*33LA:-INFINITY:0:9: ++# BZ12701 %33LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*33LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%33LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:-0x1.fffffffffffff7ffffffffffff8p3: ++%*33LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++# BZ12701 %33LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*33LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%33LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:33:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++%33LA:-0X8P-972:1:9:-0x1p-969: ++%*33LA:-0X8P-972:0:9: ++%33LA:-0X0P+0:1:7:-0x0: ++%*33LA:-0X0P+0:0:7: ++%33LA:-0X0P0:1:6:-0x0: ++%*33LA:-0X0P0:0:6: ++%33LA:-NAN(09A_Zaz):1:13:-nan: ++%*33LA:-NAN(09A_Zaz):0:13: ++%33LA:-NAN():1:6:-nan: ++%*33LA:-NAN():0:6: ++%33LA:NAN():1:5:nan: ++%*33LA:NAN():0:5: ++%33LA:NAN(09A_Zaz):1:12:nan: ++%*33LA:NAN(09A_Zaz):0:12: ++%33LA:0X0P0:1:5:0x0: ++%*33LA:0X0P0:0:5: ++%33LA:0X0P+0:1:6:0x0: ++%*33LA:0X0P+0:0:6: ++%33LA:0X8P-972:1:8:0x1p-969: ++%*33LA:0X8P-972:0:8: ++%33LA:0X2.3456789ABCDEF0123456789ABCP0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33LA:0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++%33LA:0X2.3456789ABCDEF0123456789ABCP+123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33LA:0X2.3456789ABCDEF0123456789ABCP+123:0:33: ++%33LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:0x1.fffffffffffff7ffffffffffff8p12: ++%*33LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++%33LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:33:0x1.fffffffffffff7ffffffffffff8p4: ++%*33LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:33: ++%33LA:INFINITY:1:8:inf: ++%*33LA:INFINITY:0:8: ++%33LA:+NAN():1:6:nan: ++%*33LA:+NAN():0:6: ++%33LA:+NAN(09A_Zaz):1:13:nan: ++%*33LA:+NAN(09A_Zaz):0:13: ++%33LA:+0X0P0:1:6:0x0: ++%*33LA:+0X0P0:0:6: ++%33LA:+0X0P+0:1:7:0x0: ++%*33LA:+0X0P+0:0:7: ++%33LA:+0X8P-972:1:9:0x1p-969: ++%*33LA:+0X8P-972:0:9: ++%33LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++# BZ12701 %33LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*33LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%33LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:0x1.fffffffffffff7ffffffffffff8p3: ++%*33LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++# BZ12701 %33LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*33LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%33LA:+INFINITY:1:9:inf: ++%*33LA:+INFINITY:0:9: ++%50LA::0:-1: ++%*50LA::0:-1: ++%50LA:-INFINITY:1:9:-inf: ++%*50LA:-INFINITY:0:9: ++%50LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LA:-0X2.3456789ABCDEF0123456789ABCP+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:-0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LA:-0X2.3456789ABCDEF0123456789ABCP0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:-0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LA:-0X8P-972:1:9:-0x1p-969: ++%*50LA:-0X8P-972:0:9: ++%50LA:-0X0P+0:1:7:-0x0: ++%*50LA:-0X0P+0:0:7: ++%50LA:-0X0P0:1:6:-0x0: ++%*50LA:-0X0P0:0:6: ++%50LA:-NAN(09A_Zaz):1:13:-nan: ++%*50LA:-NAN(09A_Zaz):0:13: ++%50LA:-NAN():1:6:-nan: ++%*50LA:-NAN():0:6: ++%50LA:NAN():1:5:nan: ++%*50LA:NAN():0:5: ++%50LA:NAN(09A_Zaz):1:12:nan: ++%*50LA:NAN(09A_Zaz):0:12: ++%50LA:0X0P0:1:5:0x0: ++%*50LA:0X0P0:0:5: ++%50LA:0X0P+0:1:6:0x0: ++%*50LA:0X0P+0:0:6: ++%50LA:0X8P-972:1:8:0x1p-969: ++%*50LA:0X8P-972:0:8: ++%50LA:0X2.3456789ABCDEF0123456789ABCP0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:0X2.3456789ABCDEF0123456789ABCP0123:0:35: ++%50LA:0X2.3456789ABCDEF0123456789ABCP+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:0X2.3456789ABCDEF0123456789ABCP+123:0:35: ++%50LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:35: ++%50LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: ++%50LA:INFINITY:1:8:inf: ++%*50LA:INFINITY:0:8: ++%50LA:+NAN():1:6:nan: ++%*50LA:+NAN():0:6: ++%50LA:+NAN(09A_Zaz):1:13:nan: ++%*50LA:+NAN(09A_Zaz):0:13: ++%50LA:+0X0P0:1:6:0x0: ++%*50LA:+0X0P0:0:6: ++%50LA:+0X0P+0:1:7:0x0: ++%*50LA:+0X0P+0:0:7: ++%50LA:+0X8P-972:1:9:0x1p-969: ++%*50LA:+0X8P-972:0:9: ++%50LA:+0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:+0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LA:+0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA:+0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LA:+INFINITY:1:9:inf: ++%*50LA:+INFINITY:0:9: ++%5LA: :0:-1: ++%*5LA: :0:-1: ++%5LA: -INFINITY:0:-1: ++%*5LA: -INFINITY:0:-1: ++%5LA: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:-0x1.ep3: ++%*5LA: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LA: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:-0x1.cp2: ++%*5LA: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LA: -0X2.3456789ABCDEF0123456789ABCP+123:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LA: -0X2.3456789ABCDEF0123456789ABCP0123:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++# BZ12701 %5LA: -0X8P-972:0:-1: ++# BZ12701 %*5LA: -0X8P-972:0:-1: ++# BZ12701 %5LA: -0X0P+0:0:-1: ++# BZ12701 %*5LA: -0X0P+0:0:-1: ++# BZ12701 %5LA: -0X0P0:0:-1: ++# BZ12701 %*5LA: -0X0P0:0:-1: ++%5LA: -NAN(09A_Zaz):0:-1: ++%*5LA: -NAN(09A_Zaz):0:-1: ++%5LA: -NAN():0:-1: ++%*5LA: -NAN():0:-1: ++%5LA: NAN():1:6:nan: ++%*5LA: NAN():0:6: ++%5LA: NAN(09A_Zaz):0:-1: ++%*5LA: NAN(09A_Zaz):0:-1: ++%5LA: 0X0P0:1:6:0x0: ++%*5LA: 0X0P0:0:6: ++# BZ12701 %5LA: 0X0P+0:0:-1: ++# BZ12701 %*5LA: 0X0P+0:0:-1: ++# BZ12701 %5LA: 0X8P-972:0:-1: ++# BZ12701 %*5LA: 0X8P-972:0:-1: ++%5LA: 0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%5LA: 0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LA: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.fcp2: ++%*5LA: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.fep3: ++%*5LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LA: INFINITY:0:-1: ++%*5LA: INFINITY:0:-1: ++%5LA: +NAN():0:-1: ++%*5LA: +NAN():0:-1: ++%5LA: +NAN(09A_Zaz):0:-1: ++%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA: +0X0P0:0:-1: ++# BZ12701 %*5LA: +0X0P0:0:-1: ++# BZ12701 %5LA: +0X0P+0:0:-1: ++# BZ12701 %*5LA: +0X0P+0:0:-1: ++# BZ12701 %5LA: +0X8P-972:0:-1: ++# BZ12701 %*5LA: +0X8P-972:0:-1: ++%5LA: +0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%5LA: +0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LA: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.cp2: ++%*5LA: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LA: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.ep3: ++%*5LA: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LA: +INFINITY:0:-1: ++%*5LA: +INFINITY:0:-1: ++%50LA: :0:-1: ++%*50LA: :0:-1: ++%50LA: -INFINITY:1:10:-inf: ++%*50LA: -INFINITY:0:10: ++%50LA: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:38:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:38: ++%50LA: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:37: ++%50LA: -0X2.3456789ABCDEF0123456789ABCP+123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: -0X2.3456789ABCDEF0123456789ABCP+123:0:37: ++%50LA: -0X2.3456789ABCDEF0123456789ABCP0123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: -0X2.3456789ABCDEF0123456789ABCP0123:0:37: ++%50LA: -0X8P-972:1:10:-0x1p-969: ++%*50LA: -0X8P-972:0:10: ++%50LA: -0X0P+0:1:8:-0x0: ++%*50LA: -0X0P+0:0:8: ++%50LA: -0X0P0:1:7:-0x0: ++%*50LA: -0X0P0:0:7: ++%50LA: -NAN(09A_Zaz):1:14:-nan: ++%*50LA: -NAN(09A_Zaz):0:14: ++%50LA: -NAN():1:7:-nan: ++%*50LA: -NAN():0:7: ++%50LA: NAN():1:6:nan: ++%*50LA: NAN():0:6: ++%50LA: NAN(09A_Zaz):1:13:nan: ++%*50LA: NAN(09A_Zaz):0:13: ++%50LA: 0X0P0:1:6:0x0: ++%*50LA: 0X0P0:0:6: ++%50LA: 0X0P+0:1:7:0x0: ++%*50LA: 0X0P+0:0:7: ++%50LA: 0X8P-972:1:9:0x1p-969: ++%*50LA: 0X8P-972:0:9: ++%50LA: 0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: 0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LA: 0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: 0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LA: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LA: INFINITY:1:9:inf: ++%*50LA: INFINITY:0:9: ++%50LA: +NAN():1:7:nan: ++%*50LA: +NAN():0:7: ++%50LA: +NAN(09A_Zaz):1:14:nan: ++%*50LA: +NAN(09A_Zaz):0:14: ++%50LA: +0X0P0:1:7:0x0: ++%*50LA: +0X0P0:0:7: ++%50LA: +0X0P+0:1:8:0x0: ++%*50LA: +0X0P+0:0:8: ++%50LA: +0X8P-972:1:10:0x1p-969: ++%*50LA: +0X8P-972:0:10: ++%50LA: +0X2.3456789ABCDEF0123456789ABCP0123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: +0X2.3456789ABCDEF0123456789ABCP0123:0:37: ++%50LA: +0X2.3456789ABCDEF0123456789ABCP+123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LA: +0X2.3456789ABCDEF0123456789ABCP+123:0:37: ++%50LA: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:37: ++%50LA: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:38:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LA: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:38: ++%50LA: +INFINITY:1:10:inf: ++%*50LA: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input +new file mode 100644 +index 0000000000000000..f61b0d0fd382c113 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-e.input +@@ -0,0 +1,558 @@ ++%Le::0:-1: ++%*Le::0:-1: ++%Le:-infinity:1:9:-inf: ++%*Le:-infinity:0:9: ++%Le:-1.79769313486231580793728971405301199e+308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:-1.79769313486231580793728971405301199e+308:0:43: ++%Le:-1.79769313486231580793728971405301199e308:1:42:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:-1.79769313486231580793728971405301199e308:0:42: ++%Le:-2.3441674165664647186659237648155017216e+37:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:-2.3441674165664647186659237648155017216e+37:0:44: ++%Le:-2.3441674165664647186659237648155017216e037:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:-2.3441674165664647186659237648155017216e037:0:44: ++%Le:-2.00416836000897277799610805135016205e-292:1:43:-0x1p-969: ++%*Le:-2.00416836000897277799610805135016205e-292:0:43: ++%Le:-0e+0:1:5:-0x0: ++%*Le:-0e+0:0:5: ++%Le:-0e0:1:4:-0x0: ++%*Le:-0e0:0:4: ++%Le:-nan(09A_Zaz):1:13:-nan: ++%*Le:-nan(09A_Zaz):0:13: ++%Le:-nan():1:6:-nan: ++%*Le:-nan():0:6: ++%Le:nan():1:5:nan: ++%*Le:nan():0:5: ++%Le:nan(09A_Zaz):1:12:nan: ++%*Le:nan(09A_Zaz):0:12: ++%Le:0e0:1:3:0x0: ++%*Le:0e0:0:3: ++%Le:0e+0:1:4:0x0: ++%*Le:0e+0:0:4: ++%Le:2.00416836000897277799610805135016205e-292:1:42:0x1p-969: ++%*Le:2.00416836000897277799610805135016205e-292:0:42: ++%Le:2.3441674165664647186659237648155017216e037:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:2.3441674165664647186659237648155017216e037:0:43: ++%Le:2.3441674165664647186659237648155017216e+37:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:2.3441674165664647186659237648155017216e+37:0:43: ++%Le:1.79769313486231580793728971405301199e308:1:41:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:1.79769313486231580793728971405301199e308:0:41: ++%Le:1.79769313486231580793728971405301199e+308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:1.79769313486231580793728971405301199e+308:0:42: ++%Le:infinity:1:8:inf: ++%*Le:infinity:0:8: ++%Le:+nan():1:6:nan: ++%*Le:+nan():0:6: ++%Le:+nan(09A_Zaz):1:13:nan: ++%*Le:+nan(09A_Zaz):0:13: ++%Le:+0e0:1:4:0x0: ++%*Le:+0e0:0:4: ++%Le:+0e+0:1:5:0x0: ++%*Le:+0e+0:0:5: ++%Le:+2.00416836000897277799610805135016205e-292:1:43:0x1p-969: ++%*Le:+2.00416836000897277799610805135016205e-292:0:43: ++%Le:+2.3441674165664647186659237648155017216e037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:+2.3441674165664647186659237648155017216e037:0:44: ++%Le:+2.3441674165664647186659237648155017216e+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Le:+2.3441674165664647186659237648155017216e+37:0:44: ++%Le:+1.79769313486231580793728971405301199e308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:+1.79769313486231580793728971405301199e308:0:42: ++%Le:+1.79769313486231580793728971405301199e+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Le:+1.79769313486231580793728971405301199e+308:0:43: ++%Le:+infinity:1:9:inf: ++%*Le:+infinity:0:9: ++%1Le::0:-1: ++%*1Le::0:-1: ++%1Le:-infinity:0:-1: ++%*1Le:-infinity:0:-1: ++%1Le:-1.79769313486231580793728971405301199e+308:0:-1: ++%*1Le:-1.79769313486231580793728971405301199e+308:0:-1: ++%1Le:-1.79769313486231580793728971405301199e308:0:-1: ++%*1Le:-1.79769313486231580793728971405301199e308:0:-1: ++%1Le:-2.3441674165664647186659237648155017216e+37:0:-1: ++%*1Le:-2.3441674165664647186659237648155017216e+37:0:-1: ++%1Le:-2.3441674165664647186659237648155017216e037:0:-1: ++%*1Le:-2.3441674165664647186659237648155017216e037:0:-1: ++%1Le:-2.00416836000897277799610805135016205e-292:0:-1: ++%*1Le:-2.00416836000897277799610805135016205e-292:0:-1: ++%1Le:-0e+0:0:-1: ++%*1Le:-0e+0:0:-1: ++%1Le:-0e0:0:-1: ++%*1Le:-0e0:0:-1: ++%1Le:-nan(09A_Zaz):0:-1: ++%*1Le:-nan(09A_Zaz):0:-1: ++%1Le:-nan():0:-1: ++%*1Le:-nan():0:-1: ++%1Le:nan():0:-1: ++%*1Le:nan():0:-1: ++%1Le:nan(09A_Zaz):0:-1: ++%*1Le:nan(09A_Zaz):0:-1: ++%1Le:0e0:1:1:0x0: ++%*1Le:0e0:0:1: ++%1Le:0e+0:1:1:0x0: ++%*1Le:0e+0:0:1: ++%1Le:2.00416836000897277799610805135016205e-292:1:1:0x1p1: ++%*1Le:2.00416836000897277799610805135016205e-292:0:1: ++%1Le:2.3441674165664647186659237648155017216e037:1:1:0x1p1: ++%*1Le:2.3441674165664647186659237648155017216e037:0:1: ++%1Le:2.3441674165664647186659237648155017216e+37:1:1:0x1p1: ++%*1Le:2.3441674165664647186659237648155017216e+37:0:1: ++%1Le:1.79769313486231580793728971405301199e308:1:1:0x1: ++%*1Le:1.79769313486231580793728971405301199e308:0:1: ++%1Le:1.79769313486231580793728971405301199e+308:1:1:0x1: ++%*1Le:1.79769313486231580793728971405301199e+308:0:1: ++%1Le:infinity:0:-1: ++%*1Le:infinity:0:-1: ++%1Le:+nan():0:-1: ++%*1Le:+nan():0:-1: ++%1Le:+nan(09A_Zaz):0:-1: ++%*1Le:+nan(09A_Zaz):0:-1: ++%1Le:+0e0:0:-1: ++%*1Le:+0e0:0:-1: ++%1Le:+0e+0:0:-1: ++%*1Le:+0e+0:0:-1: ++%1Le:+2.00416836000897277799610805135016205e-292:0:-1: ++%*1Le:+2.00416836000897277799610805135016205e-292:0:-1: ++%1Le:+2.3441674165664647186659237648155017216e037:0:-1: ++%*1Le:+2.3441674165664647186659237648155017216e037:0:-1: ++%1Le:+2.3441674165664647186659237648155017216e+37:0:-1: ++%*1Le:+2.3441674165664647186659237648155017216e+37:0:-1: ++%1Le:+1.79769313486231580793728971405301199e308:0:-1: ++%*1Le:+1.79769313486231580793728971405301199e308:0:-1: ++%1Le:+1.79769313486231580793728971405301199e+308:0:-1: ++%*1Le:+1.79769313486231580793728971405301199e+308:0:-1: ++%1Le:+infinity:0:-1: ++%*1Le:+infinity:0:-1: ++%2Le::0:-1: ++%*2Le::0:-1: ++%2Le:-infinity:0:-1: ++%*2Le:-infinity:0:-1: ++%2Le:-1.79769313486231580793728971405301199e+308:1:2:-0x1: ++%*2Le:-1.79769313486231580793728971405301199e+308:0:2: ++%2Le:-1.79769313486231580793728971405301199e308:1:2:-0x1: ++%*2Le:-1.79769313486231580793728971405301199e308:0:2: ++%2Le:-2.3441674165664647186659237648155017216e+37:1:2:-0x1p1: ++%*2Le:-2.3441674165664647186659237648155017216e+37:0:2: ++%2Le:-2.3441674165664647186659237648155017216e037:1:2:-0x1p1: ++%*2Le:-2.3441674165664647186659237648155017216e037:0:2: ++%2Le:-2.00416836000897277799610805135016205e-292:1:2:-0x1p1: ++%*2Le:-2.00416836000897277799610805135016205e-292:0:2: ++%2Le:-0e+0:1:2:-0x0: ++%*2Le:-0e+0:0:2: ++%2Le:-0e0:1:2:-0x0: ++%*2Le:-0e0:0:2: ++%2Le:-nan(09A_Zaz):0:-1: ++%*2Le:-nan(09A_Zaz):0:-1: ++%2Le:-nan():0:-1: ++%*2Le:-nan():0:-1: ++%2Le:nan():0:-1: ++%*2Le:nan():0:-1: ++%2Le:nan(09A_Zaz):0:-1: ++%*2Le:nan(09A_Zaz):0:-1: ++# BZ12701 %2Le:0e0:0:-1: ++# BZ12701 %*2Le:0e0:0:-1: ++# BZ12701 %2Le:0e+0:0:-1: ++# BZ12701 %*2Le:0e+0:0:-1: ++%2Le:2.00416836000897277799610805135016205e-292:1:2:0x1p1: ++%*2Le:2.00416836000897277799610805135016205e-292:0:2: ++%2Le:2.3441674165664647186659237648155017216e037:1:2:0x1p1: ++%*2Le:2.3441674165664647186659237648155017216e037:0:2: ++%2Le:2.3441674165664647186659237648155017216e+37:1:2:0x1p1: ++%*2Le:2.3441674165664647186659237648155017216e+37:0:2: ++%2Le:1.79769313486231580793728971405301199e308:1:2:0x1: ++%*2Le:1.79769313486231580793728971405301199e308:0:2: ++%2Le:1.79769313486231580793728971405301199e+308:1:2:0x1: ++%*2Le:1.79769313486231580793728971405301199e+308:0:2: ++%2Le:infinity:0:-1: ++%*2Le:infinity:0:-1: ++%2Le:+nan():0:-1: ++%*2Le:+nan():0:-1: ++%2Le:+nan(09A_Zaz):0:-1: ++%*2Le:+nan(09A_Zaz):0:-1: ++%2Le:+0e0:1:2:0x0: ++%*2Le:+0e0:0:2: ++%2Le:+0e+0:1:2:0x0: ++%*2Le:+0e+0:0:2: ++%2Le:+2.00416836000897277799610805135016205e-292:1:2:0x1p1: ++%*2Le:+2.00416836000897277799610805135016205e-292:0:2: ++%2Le:+2.3441674165664647186659237648155017216e037:1:2:0x1p1: ++%*2Le:+2.3441674165664647186659237648155017216e037:0:2: ++%2Le:+2.3441674165664647186659237648155017216e+37:1:2:0x1p1: ++%*2Le:+2.3441674165664647186659237648155017216e+37:0:2: ++%2Le:+1.79769313486231580793728971405301199e308:1:2:0x1: ++%*2Le:+1.79769313486231580793728971405301199e308:0:2: ++%2Le:+1.79769313486231580793728971405301199e+308:1:2:0x1: ++%*2Le:+1.79769313486231580793728971405301199e+308:0:2: ++%2Le:+infinity:0:-1: ++%*2Le:+infinity:0:-1: ++%3Le::0:-1: ++%*3Le::0:-1: ++%3Le:-infinity:0:-1: ++%*3Le:-infinity:0:-1: ++%3Le:-1.79769313486231580793728971405301199e+308:1:3:-0x1: ++%*3Le:-1.79769313486231580793728971405301199e+308:0:3: ++%3Le:-1.79769313486231580793728971405301199e308:1:3:-0x1: ++%*3Le:-1.79769313486231580793728971405301199e308:0:3: ++%3Le:-2.3441674165664647186659237648155017216e+37:1:3:-0x1p1: ++%*3Le:-2.3441674165664647186659237648155017216e+37:0:3: ++%3Le:-2.3441674165664647186659237648155017216e037:1:3:-0x1p1: ++%*3Le:-2.3441674165664647186659237648155017216e037:0:3: ++%3Le:-2.00416836000897277799610805135016205e-292:1:3:-0x1p1: ++%*3Le:-2.00416836000897277799610805135016205e-292:0:3: ++# BZ12701 %3Le:-0e+0:0:-1: ++# BZ12701 %*3Le:-0e+0:0:-1: ++# BZ12701 %3Le:-0e0:0:-1: ++# BZ12701 %*3Le:-0e0:0:-1: ++%3Le:-nan(09A_Zaz):0:-1: ++%*3Le:-nan(09A_Zaz):0:-1: ++%3Le:-nan():0:-1: ++%*3Le:-nan():0:-1: ++%3Le:nan():1:3:nan: ++%*3Le:nan():0:3: ++%3Le:nan(09A_Zaz):1:3:nan: ++%*3Le:nan(09A_Zaz):0:3: ++%3Le:0e0:1:3:0x0: ++%*3Le:0e0:0:3: ++# BZ12701 %3Le:0e+0:0:-1: ++# BZ12701 %*3Le:0e+0:0:-1: ++%3Le:2.00416836000897277799610805135016205e-292:1:3:0x1p1: ++%*3Le:2.00416836000897277799610805135016205e-292:0:3: ++%3Le:2.3441674165664647186659237648155017216e037:1:3:0x1.266666666666666666666666668p1: ++%*3Le:2.3441674165664647186659237648155017216e037:0:3: ++%3Le:2.3441674165664647186659237648155017216e+37:1:3:0x1.266666666666666666666666668p1: ++%*3Le:2.3441674165664647186659237648155017216e+37:0:3: ++%3Le:1.79769313486231580793728971405301199e308:1:3:0x1.b3333333333333333333333333: ++%*3Le:1.79769313486231580793728971405301199e308:0:3: ++%3Le:1.79769313486231580793728971405301199e+308:1:3:0x1.b3333333333333333333333333: ++%*3Le:1.79769313486231580793728971405301199e+308:0:3: ++%3Le:infinity:1:3:inf: ++%*3Le:infinity:0:3: ++%3Le:+nan():0:-1: ++%*3Le:+nan():0:-1: ++%3Le:+nan(09A_Zaz):0:-1: ++%*3Le:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Le:+0e0:0:-1: ++# BZ12701 %*3Le:+0e0:0:-1: ++# BZ12701 %3Le:+0e+0:0:-1: ++# BZ12701 %*3Le:+0e+0:0:-1: ++%3Le:+2.00416836000897277799610805135016205e-292:1:3:0x1p1: ++%*3Le:+2.00416836000897277799610805135016205e-292:0:3: ++%3Le:+2.3441674165664647186659237648155017216e037:1:3:0x1p1: ++%*3Le:+2.3441674165664647186659237648155017216e037:0:3: ++%3Le:+2.3441674165664647186659237648155017216e+37:1:3:0x1p1: ++%*3Le:+2.3441674165664647186659237648155017216e+37:0:3: ++%3Le:+1.79769313486231580793728971405301199e308:1:3:0x1: ++%*3Le:+1.79769313486231580793728971405301199e308:0:3: ++%3Le:+1.79769313486231580793728971405301199e+308:1:3:0x1: ++%*3Le:+1.79769313486231580793728971405301199e+308:0:3: ++%3Le:+infinity:0:-1: ++%*3Le:+infinity:0:-1: ++%4Le::0:-1: ++%*4Le::0:-1: ++%4Le:-infinity:1:4:-inf: ++%*4Le:-infinity:0:4: ++%4Le:-1.79769313486231580793728971405301199e+308:1:4:-0x1.b3333333333333333333333333: ++%*4Le:-1.79769313486231580793728971405301199e+308:0:4: ++%4Le:-1.79769313486231580793728971405301199e308:1:4:-0x1.b3333333333333333333333333: ++%*4Le:-1.79769313486231580793728971405301199e308:0:4: ++%4Le:-2.3441674165664647186659237648155017216e+37:1:4:-0x1.266666666666666666666666668p1: ++%*4Le:-2.3441674165664647186659237648155017216e+37:0:4: ++%4Le:-2.3441674165664647186659237648155017216e037:1:4:-0x1.266666666666666666666666668p1: ++%*4Le:-2.3441674165664647186659237648155017216e037:0:4: ++%4Le:-2.00416836000897277799610805135016205e-292:1:4:-0x1p1: ++%*4Le:-2.00416836000897277799610805135016205e-292:0:4: ++# BZ12701 %4Le:-0e+0:0:-1: ++# BZ12701 %*4Le:-0e+0:0:-1: ++%4Le:-0e0:1:4:-0x0: ++%*4Le:-0e0:0:4: ++%4Le:-nan(09A_Zaz):1:4:-nan: ++%*4Le:-nan(09A_Zaz):0:4: ++%4Le:-nan():1:4:-nan: ++%*4Le:-nan():0:4: ++%4Le:nan():0:-1: ++%*4Le:nan():0:-1: ++%4Le:nan(09A_Zaz):0:-1: ++%*4Le:nan(09A_Zaz):0:-1: ++%4Le:0e0:1:3:0x0: ++%*4Le:0e0:0:3: ++%4Le:0e+0:1:4:0x0: ++%*4Le:0e+0:0:4: ++%4Le:2.00416836000897277799610805135016205e-292:1:4:0x1p1: ++%*4Le:2.00416836000897277799610805135016205e-292:0:4: ++%4Le:2.3441674165664647186659237648155017216e037:1:4:0x1.2b851eb851eb851eb851eb851e8p1: ++%*4Le:2.3441674165664647186659237648155017216e037:0:4: ++%4Le:2.3441674165664647186659237648155017216e+37:1:4:0x1.2b851eb851eb851eb851eb851e8p1: ++%*4Le:2.3441674165664647186659237648155017216e+37:0:4: ++%4Le:1.79769313486231580793728971405301199e308:1:4:0x1.ca3d70a3d70a3d70a3d70a3d708: ++%*4Le:1.79769313486231580793728971405301199e308:0:4: ++%4Le:1.79769313486231580793728971405301199e+308:1:4:0x1.ca3d70a3d70a3d70a3d70a3d708: ++%*4Le:1.79769313486231580793728971405301199e+308:0:4: ++%4Le:infinity:0:-1: ++%*4Le:infinity:0:-1: ++%4Le:+nan():1:4:nan: ++%*4Le:+nan():0:4: ++%4Le:+nan(09A_Zaz):1:4:nan: ++%*4Le:+nan(09A_Zaz):0:4: ++%4Le:+0e0:1:4:0x0: ++%*4Le:+0e0:0:4: ++# BZ12701 %4Le:+0e+0:0:-1: ++# BZ12701 %*4Le:+0e+0:0:-1: ++%4Le:+2.00416836000897277799610805135016205e-292:1:4:0x1p1: ++%*4Le:+2.00416836000897277799610805135016205e-292:0:4: ++%4Le:+2.3441674165664647186659237648155017216e037:1:4:0x1.266666666666666666666666668p1: ++%*4Le:+2.3441674165664647186659237648155017216e037:0:4: ++%4Le:+2.3441674165664647186659237648155017216e+37:1:4:0x1.266666666666666666666666668p1: ++%*4Le:+2.3441674165664647186659237648155017216e+37:0:4: ++%4Le:+1.79769313486231580793728971405301199e308:1:4:0x1.b3333333333333333333333333: ++%*4Le:+1.79769313486231580793728971405301199e308:0:4: ++%4Le:+1.79769313486231580793728971405301199e+308:1:4:0x1.b3333333333333333333333333: ++%*4Le:+1.79769313486231580793728971405301199e+308:0:4: ++%4Le:+infinity:1:4:inf: ++%*4Le:+infinity:0:4: ++%40Le::0:-1: ++%*40Le::0:-1: ++%40Le:-infinity:1:9:-inf: ++%*40Le:-infinity:0:9: ++# BZ12701 %40Le:-1.79769313486231580793728971405301199e+308:0:-1: ++# BZ12701 %*40Le:-1.79769313486231580793728971405301199e+308:0:-1: ++%40Le:-1.79769313486231580793728971405301199e308:1:40:-0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40Le:-1.79769313486231580793728971405301199e308:0:40: ++%40Le:-2.3441674165664647186659237648155017216e+37:1:40:-0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40Le:-2.3441674165664647186659237648155017216e+37:0:40: ++%40Le:-2.3441674165664647186659237648155017216e037:1:40:-0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40Le:-2.3441674165664647186659237648155017216e037:0:40: ++# BZ12701 %40Le:-2.00416836000897277799610805135016205e-292:0:-1: ++# BZ12701 %*40Le:-2.00416836000897277799610805135016205e-292:0:-1: ++%40Le:-0e+0:1:5:-0x0: ++%*40Le:-0e+0:0:5: ++%40Le:-0e0:1:4:-0x0: ++%*40Le:-0e0:0:4: ++%40Le:-nan(09A_Zaz):1:13:-nan: ++%*40Le:-nan(09A_Zaz):0:13: ++%40Le:-nan():1:6:-nan: ++%*40Le:-nan():0:6: ++%40Le:nan():1:5:nan: ++%*40Le:nan():0:5: ++%40Le:nan(09A_Zaz):1:12:nan: ++%*40Le:nan(09A_Zaz):0:12: ++%40Le:0e0:1:3:0x0: ++%*40Le:0e0:0:3: ++%40Le:0e+0:1:4:0x0: ++%*40Le:0e+0:0:4: ++%40Le:2.00416836000897277799610805135016205e-292:1:40:0x1.485ce9e7a065ea4b747cf9516fp-6: ++%*40Le:2.00416836000897277799610805135016205e-292:0:40: ++# BZ12701 %40Le:2.3441674165664647186659237648155017216e037:0:-1: ++# BZ12701 %*40Le:2.3441674165664647186659237648155017216e037:0:-1: ++# BZ12701 %40Le:2.3441674165664647186659237648155017216e+37:0:-1: ++# BZ12701 %*40Le:2.3441674165664647186659237648155017216e+37:0:-1: ++%40Le:1.79769313486231580793728971405301199e308:1:40:0x1.6b0a8e891ffff0af2d6def985p100: ++%*40Le:1.79769313486231580793728971405301199e308:0:40: ++%40Le:1.79769313486231580793728971405301199e+308:1:40:0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40Le:1.79769313486231580793728971405301199e+308:0:40: ++%40Le:infinity:1:8:inf: ++%*40Le:infinity:0:8: ++%40Le:+nan():1:6:nan: ++%*40Le:+nan():0:6: ++%40Le:+nan(09A_Zaz):1:13:nan: ++%*40Le:+nan(09A_Zaz):0:13: ++%40Le:+0e0:1:4:0x0: ++%*40Le:+0e0:0:4: ++%40Le:+0e+0:1:5:0x0: ++%*40Le:+0e+0:0:5: ++# BZ12701 %40Le:+2.00416836000897277799610805135016205e-292:0:-1: ++# BZ12701 %*40Le:+2.00416836000897277799610805135016205e-292:0:-1: ++%40Le:+2.3441674165664647186659237648155017216e037:1:40:0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40Le:+2.3441674165664647186659237648155017216e037:0:40: ++%40Le:+2.3441674165664647186659237648155017216e+37:1:40:0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40Le:+2.3441674165664647186659237648155017216e+37:0:40: ++%40Le:+1.79769313486231580793728971405301199e308:1:40:0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40Le:+1.79769313486231580793728971405301199e308:0:40: ++# BZ12701 %40Le:+1.79769313486231580793728971405301199e+308:0:-1: ++# BZ12701 %*40Le:+1.79769313486231580793728971405301199e+308:0:-1: ++%40Le:+infinity:1:9:inf: ++%*40Le:+infinity:0:9: ++%48Le::0:-1: ++%*48Le::0:-1: ++%48Le:-infinity:1:9:-inf: ++%*48Le:-infinity:0:9: ++%48Le:-1.79769313486231580793728971405301199e+308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:-1.79769313486231580793728971405301199e+308:0:43: ++%48Le:-1.79769313486231580793728971405301199e308:1:42:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:-1.79769313486231580793728971405301199e308:0:42: ++%48Le:-2.3441674165664647186659237648155017216e+37:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:-2.3441674165664647186659237648155017216e+37:0:44: ++%48Le:-2.3441674165664647186659237648155017216e037:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:-2.3441674165664647186659237648155017216e037:0:44: ++%48Le:-2.00416836000897277799610805135016205e-292:1:43:-0x1p-969: ++%*48Le:-2.00416836000897277799610805135016205e-292:0:43: ++%48Le:-0e+0:1:5:-0x0: ++%*48Le:-0e+0:0:5: ++%48Le:-0e0:1:4:-0x0: ++%*48Le:-0e0:0:4: ++%48Le:-nan(09A_Zaz):1:13:-nan: ++%*48Le:-nan(09A_Zaz):0:13: ++%48Le:-nan():1:6:-nan: ++%*48Le:-nan():0:6: ++%48Le:nan():1:5:nan: ++%*48Le:nan():0:5: ++%48Le:nan(09A_Zaz):1:12:nan: ++%*48Le:nan(09A_Zaz):0:12: ++%48Le:0e0:1:3:0x0: ++%*48Le:0e0:0:3: ++%48Le:0e+0:1:4:0x0: ++%*48Le:0e+0:0:4: ++%48Le:2.00416836000897277799610805135016205e-292:1:42:0x1p-969: ++%*48Le:2.00416836000897277799610805135016205e-292:0:42: ++%48Le:2.3441674165664647186659237648155017216e037:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:2.3441674165664647186659237648155017216e037:0:43: ++%48Le:2.3441674165664647186659237648155017216e+37:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:2.3441674165664647186659237648155017216e+37:0:43: ++%48Le:1.79769313486231580793728971405301199e308:1:41:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:1.79769313486231580793728971405301199e308:0:41: ++%48Le:1.79769313486231580793728971405301199e+308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:1.79769313486231580793728971405301199e+308:0:42: ++%48Le:infinity:1:8:inf: ++%*48Le:infinity:0:8: ++%48Le:+nan():1:6:nan: ++%*48Le:+nan():0:6: ++%48Le:+nan(09A_Zaz):1:13:nan: ++%*48Le:+nan(09A_Zaz):0:13: ++%48Le:+0e0:1:4:0x0: ++%*48Le:+0e0:0:4: ++%48Le:+0e+0:1:5:0x0: ++%*48Le:+0e+0:0:5: ++%48Le:+2.00416836000897277799610805135016205e-292:1:43:0x1p-969: ++%*48Le:+2.00416836000897277799610805135016205e-292:0:43: ++%48Le:+2.3441674165664647186659237648155017216e037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:+2.3441674165664647186659237648155017216e037:0:44: ++%48Le:+2.3441674165664647186659237648155017216e+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le:+2.3441674165664647186659237648155017216e+37:0:44: ++%48Le:+1.79769313486231580793728971405301199e308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:+1.79769313486231580793728971405301199e308:0:42: ++%48Le:+1.79769313486231580793728971405301199e+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le:+1.79769313486231580793728971405301199e+308:0:43: ++%48Le:+infinity:1:9:inf: ++%*48Le:+infinity:0:9: ++%3Le: :0:-1: ++%*3Le: :0:-1: ++%3Le: -infinity:0:-1: ++%*3Le: -infinity:0:-1: ++%3Le: -1.79769313486231580793728971405301199e+308:1:4:-0x1: ++%*3Le: -1.79769313486231580793728971405301199e+308:0:4: ++%3Le: -1.79769313486231580793728971405301199e308:1:4:-0x1: ++%*3Le: -1.79769313486231580793728971405301199e308:0:4: ++%3Le: -2.3441674165664647186659237648155017216e+37:1:4:-0x1p1: ++%*3Le: -2.3441674165664647186659237648155017216e+37:0:4: ++%3Le: -2.3441674165664647186659237648155017216e037:1:4:-0x1p1: ++%*3Le: -2.3441674165664647186659237648155017216e037:0:4: ++%3Le: -2.00416836000897277799610805135016205e-292:1:4:-0x1p1: ++%*3Le: -2.00416836000897277799610805135016205e-292:0:4: ++# BZ12701 %3Le: -0e+0:0:-1: ++# BZ12701 %*3Le: -0e+0:0:-1: ++# BZ12701 %3Le: -0e0:0:-1: ++# BZ12701 %*3Le: -0e0:0:-1: ++%3Le: -nan(09A_Zaz):0:-1: ++%*3Le: -nan(09A_Zaz):0:-1: ++%3Le: -nan():0:-1: ++%*3Le: -nan():0:-1: ++%3Le: nan():1:4:nan: ++%*3Le: nan():0:4: ++%3Le: nan(09A_Zaz):1:4:nan: ++%*3Le: nan(09A_Zaz):0:4: ++%3Le: 0e0:1:4:0x0: ++%*3Le: 0e0:0:4: ++# BZ12701 %3Le: 0e+0:0:-1: ++# BZ12701 %*3Le: 0e+0:0:-1: ++%3Le: 2.00416836000897277799610805135016205e-292:1:4:0x1p1: ++%*3Le: 2.00416836000897277799610805135016205e-292:0:4: ++%3Le: 2.3441674165664647186659237648155017216e037:1:4:0x1.266666666666666666666666668p1: ++%*3Le: 2.3441674165664647186659237648155017216e037:0:4: ++%3Le: 2.3441674165664647186659237648155017216e+37:1:4:0x1.266666666666666666666666668p1: ++%*3Le: 2.3441674165664647186659237648155017216e+37:0:4: ++%3Le: 1.79769313486231580793728971405301199e308:1:4:0x1.b3333333333333333333333333: ++%*3Le: 1.79769313486231580793728971405301199e308:0:4: ++%3Le: 1.79769313486231580793728971405301199e+308:1:4:0x1.b3333333333333333333333333: ++%*3Le: 1.79769313486231580793728971405301199e+308:0:4: ++%3Le: infinity:1:4:inf: ++%*3Le: infinity:0:4: ++%3Le: +nan():0:-1: ++%*3Le: +nan():0:-1: ++%3Le: +nan(09A_Zaz):0:-1: ++%*3Le: +nan(09A_Zaz):0:-1: ++# BZ12701 %3Le: +0e0:0:-1: ++# BZ12701 %*3Le: +0e0:0:-1: ++# BZ12701 %3Le: +0e+0:0:-1: ++# BZ12701 %*3Le: +0e+0:0:-1: ++%3Le: +2.00416836000897277799610805135016205e-292:1:4:0x1p1: ++%*3Le: +2.00416836000897277799610805135016205e-292:0:4: ++%3Le: +2.3441674165664647186659237648155017216e037:1:4:0x1p1: ++%*3Le: +2.3441674165664647186659237648155017216e037:0:4: ++%3Le: +2.3441674165664647186659237648155017216e+37:1:4:0x1p1: ++%*3Le: +2.3441674165664647186659237648155017216e+37:0:4: ++%3Le: +1.79769313486231580793728971405301199e308:1:4:0x1: ++%*3Le: +1.79769313486231580793728971405301199e308:0:4: ++%3Le: +1.79769313486231580793728971405301199e+308:1:4:0x1: ++%*3Le: +1.79769313486231580793728971405301199e+308:0:4: ++%3Le: +infinity:0:-1: ++%*3Le: +infinity:0:-1: ++%48Le: :0:-1: ++%*48Le: :0:-1: ++%48Le: -infinity:1:10:-inf: ++%*48Le: -infinity:0:10: ++%48Le: -1.79769313486231580793728971405301199e+308:1:44:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: -1.79769313486231580793728971405301199e+308:0:44: ++%48Le: -1.79769313486231580793728971405301199e308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: -1.79769313486231580793728971405301199e308:0:43: ++%48Le: -2.3441674165664647186659237648155017216e+37:1:45:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: -2.3441674165664647186659237648155017216e+37:0:45: ++%48Le: -2.3441674165664647186659237648155017216e037:1:45:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: -2.3441674165664647186659237648155017216e037:0:45: ++%48Le: -2.00416836000897277799610805135016205e-292:1:44:-0x1p-969: ++%*48Le: -2.00416836000897277799610805135016205e-292:0:44: ++%48Le: -0e+0:1:6:-0x0: ++%*48Le: -0e+0:0:6: ++%48Le: -0e0:1:5:-0x0: ++%*48Le: -0e0:0:5: ++%48Le: -nan(09A_Zaz):1:14:-nan: ++%*48Le: -nan(09A_Zaz):0:14: ++%48Le: -nan():1:7:-nan: ++%*48Le: -nan():0:7: ++%48Le: nan():1:6:nan: ++%*48Le: nan():0:6: ++%48Le: nan(09A_Zaz):1:13:nan: ++%*48Le: nan(09A_Zaz):0:13: ++%48Le: 0e0:1:4:0x0: ++%*48Le: 0e0:0:4: ++%48Le: 0e+0:1:5:0x0: ++%*48Le: 0e+0:0:5: ++%48Le: 2.00416836000897277799610805135016205e-292:1:43:0x1p-969: ++%*48Le: 2.00416836000897277799610805135016205e-292:0:43: ++%48Le: 2.3441674165664647186659237648155017216e037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: 2.3441674165664647186659237648155017216e037:0:44: ++%48Le: 2.3441674165664647186659237648155017216e+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: 2.3441674165664647186659237648155017216e+37:0:44: ++%48Le: 1.79769313486231580793728971405301199e308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: 1.79769313486231580793728971405301199e308:0:42: ++%48Le: 1.79769313486231580793728971405301199e+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: 1.79769313486231580793728971405301199e+308:0:43: ++%48Le: infinity:1:9:inf: ++%*48Le: infinity:0:9: ++%48Le: +nan():1:7:nan: ++%*48Le: +nan():0:7: ++%48Le: +nan(09A_Zaz):1:14:nan: ++%*48Le: +nan(09A_Zaz):0:14: ++%48Le: +0e0:1:5:0x0: ++%*48Le: +0e0:0:5: ++%48Le: +0e+0:1:6:0x0: ++%*48Le: +0e+0:0:6: ++%48Le: +2.00416836000897277799610805135016205e-292:1:44:0x1p-969: ++%*48Le: +2.00416836000897277799610805135016205e-292:0:44: ++%48Le: +2.3441674165664647186659237648155017216e037:1:45:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: +2.3441674165664647186659237648155017216e037:0:45: ++%48Le: +2.3441674165664647186659237648155017216e+37:1:45:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48Le: +2.3441674165664647186659237648155017216e+37:0:45: ++%48Le: +1.79769313486231580793728971405301199e308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: +1.79769313486231580793728971405301199e308:0:43: ++%48Le: +1.79769313486231580793728971405301199e+308:1:44:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48Le: +1.79769313486231580793728971405301199e+308:0:44: ++%48Le: +infinity:1:10:inf: ++%*48Le: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input +new file mode 100644 +index 0000000000000000..3a543bc5366ba403 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ee.input +@@ -0,0 +1,558 @@ ++%LE::0:-1: ++%*LE::0:-1: ++%LE:-INFINITY:1:9:-inf: ++%*LE:-INFINITY:0:9: ++%LE:-1.79769313486231580793728971405301199E+308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:-1.79769313486231580793728971405301199E+308:0:43: ++%LE:-1.79769313486231580793728971405301199E308:1:42:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:-1.79769313486231580793728971405301199E308:0:42: ++%LE:-2.3441674165664647186659237648155017216E+37:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:-2.3441674165664647186659237648155017216E+37:0:44: ++%LE:-2.3441674165664647186659237648155017216E037:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:-2.3441674165664647186659237648155017216E037:0:44: ++%LE:-2.00416836000897277799610805135016205E-292:1:43:-0x1p-969: ++%*LE:-2.00416836000897277799610805135016205E-292:0:43: ++%LE:-0E+0:1:5:-0x0: ++%*LE:-0E+0:0:5: ++%LE:-0E0:1:4:-0x0: ++%*LE:-0E0:0:4: ++%LE:-NAN(09A_Zaz):1:13:-nan: ++%*LE:-NAN(09A_Zaz):0:13: ++%LE:-NAN():1:6:-nan: ++%*LE:-NAN():0:6: ++%LE:NAN():1:5:nan: ++%*LE:NAN():0:5: ++%LE:NAN(09A_Zaz):1:12:nan: ++%*LE:NAN(09A_Zaz):0:12: ++%LE:0E0:1:3:0x0: ++%*LE:0E0:0:3: ++%LE:0E+0:1:4:0x0: ++%*LE:0E+0:0:4: ++%LE:2.00416836000897277799610805135016205E-292:1:42:0x1p-969: ++%*LE:2.00416836000897277799610805135016205E-292:0:42: ++%LE:2.3441674165664647186659237648155017216E037:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:2.3441674165664647186659237648155017216E037:0:43: ++%LE:2.3441674165664647186659237648155017216E+37:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:2.3441674165664647186659237648155017216E+37:0:43: ++%LE:1.79769313486231580793728971405301199E308:1:41:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:1.79769313486231580793728971405301199E308:0:41: ++%LE:1.79769313486231580793728971405301199E+308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:1.79769313486231580793728971405301199E+308:0:42: ++%LE:INFINITY:1:8:inf: ++%*LE:INFINITY:0:8: ++%LE:+NAN():1:6:nan: ++%*LE:+NAN():0:6: ++%LE:+NAN(09A_Zaz):1:13:nan: ++%*LE:+NAN(09A_Zaz):0:13: ++%LE:+0E0:1:4:0x0: ++%*LE:+0E0:0:4: ++%LE:+0E+0:1:5:0x0: ++%*LE:+0E+0:0:5: ++%LE:+2.00416836000897277799610805135016205E-292:1:43:0x1p-969: ++%*LE:+2.00416836000897277799610805135016205E-292:0:43: ++%LE:+2.3441674165664647186659237648155017216E037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:+2.3441674165664647186659237648155017216E037:0:44: ++%LE:+2.3441674165664647186659237648155017216E+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LE:+2.3441674165664647186659237648155017216E+37:0:44: ++%LE:+1.79769313486231580793728971405301199E308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:+1.79769313486231580793728971405301199E308:0:42: ++%LE:+1.79769313486231580793728971405301199E+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LE:+1.79769313486231580793728971405301199E+308:0:43: ++%LE:+INFINITY:1:9:inf: ++%*LE:+INFINITY:0:9: ++%1LE::0:-1: ++%*1LE::0:-1: ++%1LE:-INFINITY:0:-1: ++%*1LE:-INFINITY:0:-1: ++%1LE:-1.79769313486231580793728971405301199E+308:0:-1: ++%*1LE:-1.79769313486231580793728971405301199E+308:0:-1: ++%1LE:-1.79769313486231580793728971405301199E308:0:-1: ++%*1LE:-1.79769313486231580793728971405301199E308:0:-1: ++%1LE:-2.3441674165664647186659237648155017216E+37:0:-1: ++%*1LE:-2.3441674165664647186659237648155017216E+37:0:-1: ++%1LE:-2.3441674165664647186659237648155017216E037:0:-1: ++%*1LE:-2.3441674165664647186659237648155017216E037:0:-1: ++%1LE:-2.00416836000897277799610805135016205E-292:0:-1: ++%*1LE:-2.00416836000897277799610805135016205E-292:0:-1: ++%1LE:-0E+0:0:-1: ++%*1LE:-0E+0:0:-1: ++%1LE:-0E0:0:-1: ++%*1LE:-0E0:0:-1: ++%1LE:-NAN(09A_Zaz):0:-1: ++%*1LE:-NAN(09A_Zaz):0:-1: ++%1LE:-NAN():0:-1: ++%*1LE:-NAN():0:-1: ++%1LE:NAN():0:-1: ++%*1LE:NAN():0:-1: ++%1LE:NAN(09A_Zaz):0:-1: ++%*1LE:NAN(09A_Zaz):0:-1: ++%1LE:0E0:1:1:0x0: ++%*1LE:0E0:0:1: ++%1LE:0E+0:1:1:0x0: ++%*1LE:0E+0:0:1: ++%1LE:2.00416836000897277799610805135016205E-292:1:1:0x1p1: ++%*1LE:2.00416836000897277799610805135016205E-292:0:1: ++%1LE:2.3441674165664647186659237648155017216E037:1:1:0x1p1: ++%*1LE:2.3441674165664647186659237648155017216E037:0:1: ++%1LE:2.3441674165664647186659237648155017216E+37:1:1:0x1p1: ++%*1LE:2.3441674165664647186659237648155017216E+37:0:1: ++%1LE:1.79769313486231580793728971405301199E308:1:1:0x1: ++%*1LE:1.79769313486231580793728971405301199E308:0:1: ++%1LE:1.79769313486231580793728971405301199E+308:1:1:0x1: ++%*1LE:1.79769313486231580793728971405301199E+308:0:1: ++%1LE:INFINITY:0:-1: ++%*1LE:INFINITY:0:-1: ++%1LE:+NAN():0:-1: ++%*1LE:+NAN():0:-1: ++%1LE:+NAN(09A_Zaz):0:-1: ++%*1LE:+NAN(09A_Zaz):0:-1: ++%1LE:+0E0:0:-1: ++%*1LE:+0E0:0:-1: ++%1LE:+0E+0:0:-1: ++%*1LE:+0E+0:0:-1: ++%1LE:+2.00416836000897277799610805135016205E-292:0:-1: ++%*1LE:+2.00416836000897277799610805135016205E-292:0:-1: ++%1LE:+2.3441674165664647186659237648155017216E037:0:-1: ++%*1LE:+2.3441674165664647186659237648155017216E037:0:-1: ++%1LE:+2.3441674165664647186659237648155017216E+37:0:-1: ++%*1LE:+2.3441674165664647186659237648155017216E+37:0:-1: ++%1LE:+1.79769313486231580793728971405301199E308:0:-1: ++%*1LE:+1.79769313486231580793728971405301199E308:0:-1: ++%1LE:+1.79769313486231580793728971405301199E+308:0:-1: ++%*1LE:+1.79769313486231580793728971405301199E+308:0:-1: ++%1LE:+INFINITY:0:-1: ++%*1LE:+INFINITY:0:-1: ++%2LE::0:-1: ++%*2LE::0:-1: ++%2LE:-INFINITY:0:-1: ++%*2LE:-INFINITY:0:-1: ++%2LE:-1.79769313486231580793728971405301199E+308:1:2:-0x1: ++%*2LE:-1.79769313486231580793728971405301199E+308:0:2: ++%2LE:-1.79769313486231580793728971405301199E308:1:2:-0x1: ++%*2LE:-1.79769313486231580793728971405301199E308:0:2: ++%2LE:-2.3441674165664647186659237648155017216E+37:1:2:-0x1p1: ++%*2LE:-2.3441674165664647186659237648155017216E+37:0:2: ++%2LE:-2.3441674165664647186659237648155017216E037:1:2:-0x1p1: ++%*2LE:-2.3441674165664647186659237648155017216E037:0:2: ++%2LE:-2.00416836000897277799610805135016205E-292:1:2:-0x1p1: ++%*2LE:-2.00416836000897277799610805135016205E-292:0:2: ++%2LE:-0E+0:1:2:-0x0: ++%*2LE:-0E+0:0:2: ++%2LE:-0E0:1:2:-0x0: ++%*2LE:-0E0:0:2: ++%2LE:-NAN(09A_Zaz):0:-1: ++%*2LE:-NAN(09A_Zaz):0:-1: ++%2LE:-NAN():0:-1: ++%*2LE:-NAN():0:-1: ++%2LE:NAN():0:-1: ++%*2LE:NAN():0:-1: ++%2LE:NAN(09A_Zaz):0:-1: ++%*2LE:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LE:0E0:0:-1: ++# BZ12701 %*2LE:0E0:0:-1: ++# BZ12701 %2LE:0E+0:0:-1: ++# BZ12701 %*2LE:0E+0:0:-1: ++%2LE:2.00416836000897277799610805135016205E-292:1:2:0x1p1: ++%*2LE:2.00416836000897277799610805135016205E-292:0:2: ++%2LE:2.3441674165664647186659237648155017216E037:1:2:0x1p1: ++%*2LE:2.3441674165664647186659237648155017216E037:0:2: ++%2LE:2.3441674165664647186659237648155017216E+37:1:2:0x1p1: ++%*2LE:2.3441674165664647186659237648155017216E+37:0:2: ++%2LE:1.79769313486231580793728971405301199E308:1:2:0x1: ++%*2LE:1.79769313486231580793728971405301199E308:0:2: ++%2LE:1.79769313486231580793728971405301199E+308:1:2:0x1: ++%*2LE:1.79769313486231580793728971405301199E+308:0:2: ++%2LE:INFINITY:0:-1: ++%*2LE:INFINITY:0:-1: ++%2LE:+NAN():0:-1: ++%*2LE:+NAN():0:-1: ++%2LE:+NAN(09A_Zaz):0:-1: ++%*2LE:+NAN(09A_Zaz):0:-1: ++%2LE:+0E0:1:2:0x0: ++%*2LE:+0E0:0:2: ++%2LE:+0E+0:1:2:0x0: ++%*2LE:+0E+0:0:2: ++%2LE:+2.00416836000897277799610805135016205E-292:1:2:0x1p1: ++%*2LE:+2.00416836000897277799610805135016205E-292:0:2: ++%2LE:+2.3441674165664647186659237648155017216E037:1:2:0x1p1: ++%*2LE:+2.3441674165664647186659237648155017216E037:0:2: ++%2LE:+2.3441674165664647186659237648155017216E+37:1:2:0x1p1: ++%*2LE:+2.3441674165664647186659237648155017216E+37:0:2: ++%2LE:+1.79769313486231580793728971405301199E308:1:2:0x1: ++%*2LE:+1.79769313486231580793728971405301199E308:0:2: ++%2LE:+1.79769313486231580793728971405301199E+308:1:2:0x1: ++%*2LE:+1.79769313486231580793728971405301199E+308:0:2: ++%2LE:+INFINITY:0:-1: ++%*2LE:+INFINITY:0:-1: ++%3LE::0:-1: ++%*3LE::0:-1: ++%3LE:-INFINITY:0:-1: ++%*3LE:-INFINITY:0:-1: ++%3LE:-1.79769313486231580793728971405301199E+308:1:3:-0x1: ++%*3LE:-1.79769313486231580793728971405301199E+308:0:3: ++%3LE:-1.79769313486231580793728971405301199E308:1:3:-0x1: ++%*3LE:-1.79769313486231580793728971405301199E308:0:3: ++%3LE:-2.3441674165664647186659237648155017216E+37:1:3:-0x1p1: ++%*3LE:-2.3441674165664647186659237648155017216E+37:0:3: ++%3LE:-2.3441674165664647186659237648155017216E037:1:3:-0x1p1: ++%*3LE:-2.3441674165664647186659237648155017216E037:0:3: ++%3LE:-2.00416836000897277799610805135016205E-292:1:3:-0x1p1: ++%*3LE:-2.00416836000897277799610805135016205E-292:0:3: ++# BZ12701 %3LE:-0E+0:0:-1: ++# BZ12701 %*3LE:-0E+0:0:-1: ++# BZ12701 %3LE:-0E0:0:-1: ++# BZ12701 %*3LE:-0E0:0:-1: ++%3LE:-NAN(09A_Zaz):0:-1: ++%*3LE:-NAN(09A_Zaz):0:-1: ++%3LE:-NAN():0:-1: ++%*3LE:-NAN():0:-1: ++%3LE:NAN():1:3:nan: ++%*3LE:NAN():0:3: ++%3LE:NAN(09A_Zaz):1:3:nan: ++%*3LE:NAN(09A_Zaz):0:3: ++%3LE:0E0:1:3:0x0: ++%*3LE:0E0:0:3: ++# BZ12701 %3LE:0E+0:0:-1: ++# BZ12701 %*3LE:0E+0:0:-1: ++%3LE:2.00416836000897277799610805135016205E-292:1:3:0x1p1: ++%*3LE:2.00416836000897277799610805135016205E-292:0:3: ++%3LE:2.3441674165664647186659237648155017216E037:1:3:0x1.266666666666666666666666668p1: ++%*3LE:2.3441674165664647186659237648155017216E037:0:3: ++%3LE:2.3441674165664647186659237648155017216E+37:1:3:0x1.266666666666666666666666668p1: ++%*3LE:2.3441674165664647186659237648155017216E+37:0:3: ++%3LE:1.79769313486231580793728971405301199E308:1:3:0x1.b3333333333333333333333333: ++%*3LE:1.79769313486231580793728971405301199E308:0:3: ++%3LE:1.79769313486231580793728971405301199E+308:1:3:0x1.b3333333333333333333333333: ++%*3LE:1.79769313486231580793728971405301199E+308:0:3: ++%3LE:INFINITY:1:3:inf: ++%*3LE:INFINITY:0:3: ++%3LE:+NAN():0:-1: ++%*3LE:+NAN():0:-1: ++%3LE:+NAN(09A_Zaz):0:-1: ++%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE:+0E0:0:-1: ++# BZ12701 %*3LE:+0E0:0:-1: ++# BZ12701 %3LE:+0E+0:0:-1: ++# BZ12701 %*3LE:+0E+0:0:-1: ++%3LE:+2.00416836000897277799610805135016205E-292:1:3:0x1p1: ++%*3LE:+2.00416836000897277799610805135016205E-292:0:3: ++%3LE:+2.3441674165664647186659237648155017216E037:1:3:0x1p1: ++%*3LE:+2.3441674165664647186659237648155017216E037:0:3: ++%3LE:+2.3441674165664647186659237648155017216E+37:1:3:0x1p1: ++%*3LE:+2.3441674165664647186659237648155017216E+37:0:3: ++%3LE:+1.79769313486231580793728971405301199E308:1:3:0x1: ++%*3LE:+1.79769313486231580793728971405301199E308:0:3: ++%3LE:+1.79769313486231580793728971405301199E+308:1:3:0x1: ++%*3LE:+1.79769313486231580793728971405301199E+308:0:3: ++%3LE:+INFINITY:0:-1: ++%*3LE:+INFINITY:0:-1: ++%4LE::0:-1: ++%*4LE::0:-1: ++%4LE:-INFINITY:1:4:-inf: ++%*4LE:-INFINITY:0:4: ++%4LE:-1.79769313486231580793728971405301199E+308:1:4:-0x1.b3333333333333333333333333: ++%*4LE:-1.79769313486231580793728971405301199E+308:0:4: ++%4LE:-1.79769313486231580793728971405301199E308:1:4:-0x1.b3333333333333333333333333: ++%*4LE:-1.79769313486231580793728971405301199E308:0:4: ++%4LE:-2.3441674165664647186659237648155017216E+37:1:4:-0x1.266666666666666666666666668p1: ++%*4LE:-2.3441674165664647186659237648155017216E+37:0:4: ++%4LE:-2.3441674165664647186659237648155017216E037:1:4:-0x1.266666666666666666666666668p1: ++%*4LE:-2.3441674165664647186659237648155017216E037:0:4: ++%4LE:-2.00416836000897277799610805135016205E-292:1:4:-0x1p1: ++%*4LE:-2.00416836000897277799610805135016205E-292:0:4: ++# BZ12701 %4LE:-0E+0:0:-1: ++# BZ12701 %*4LE:-0E+0:0:-1: ++%4LE:-0E0:1:4:-0x0: ++%*4LE:-0E0:0:4: ++%4LE:-NAN(09A_Zaz):1:4:-nan: ++%*4LE:-NAN(09A_Zaz):0:4: ++%4LE:-NAN():1:4:-nan: ++%*4LE:-NAN():0:4: ++%4LE:NAN():0:-1: ++%*4LE:NAN():0:-1: ++%4LE:NAN(09A_Zaz):0:-1: ++%*4LE:NAN(09A_Zaz):0:-1: ++%4LE:0E0:1:3:0x0: ++%*4LE:0E0:0:3: ++%4LE:0E+0:1:4:0x0: ++%*4LE:0E+0:0:4: ++%4LE:2.00416836000897277799610805135016205E-292:1:4:0x1p1: ++%*4LE:2.00416836000897277799610805135016205E-292:0:4: ++%4LE:2.3441674165664647186659237648155017216E037:1:4:0x1.2b851eb851eb851eb851eb851e8p1: ++%*4LE:2.3441674165664647186659237648155017216E037:0:4: ++%4LE:2.3441674165664647186659237648155017216E+37:1:4:0x1.2b851eb851eb851eb851eb851e8p1: ++%*4LE:2.3441674165664647186659237648155017216E+37:0:4: ++%4LE:1.79769313486231580793728971405301199E308:1:4:0x1.ca3d70a3d70a3d70a3d70a3d708: ++%*4LE:1.79769313486231580793728971405301199E308:0:4: ++%4LE:1.79769313486231580793728971405301199E+308:1:4:0x1.ca3d70a3d70a3d70a3d70a3d708: ++%*4LE:1.79769313486231580793728971405301199E+308:0:4: ++%4LE:INFINITY:0:-1: ++%*4LE:INFINITY:0:-1: ++%4LE:+NAN():1:4:nan: ++%*4LE:+NAN():0:4: ++%4LE:+NAN(09A_Zaz):1:4:nan: ++%*4LE:+NAN(09A_Zaz):0:4: ++%4LE:+0E0:1:4:0x0: ++%*4LE:+0E0:0:4: ++# BZ12701 %4LE:+0E+0:0:-1: ++# BZ12701 %*4LE:+0E+0:0:-1: ++%4LE:+2.00416836000897277799610805135016205E-292:1:4:0x1p1: ++%*4LE:+2.00416836000897277799610805135016205E-292:0:4: ++%4LE:+2.3441674165664647186659237648155017216E037:1:4:0x1.266666666666666666666666668p1: ++%*4LE:+2.3441674165664647186659237648155017216E037:0:4: ++%4LE:+2.3441674165664647186659237648155017216E+37:1:4:0x1.266666666666666666666666668p1: ++%*4LE:+2.3441674165664647186659237648155017216E+37:0:4: ++%4LE:+1.79769313486231580793728971405301199E308:1:4:0x1.b3333333333333333333333333: ++%*4LE:+1.79769313486231580793728971405301199E308:0:4: ++%4LE:+1.79769313486231580793728971405301199E+308:1:4:0x1.b3333333333333333333333333: ++%*4LE:+1.79769313486231580793728971405301199E+308:0:4: ++%4LE:+INFINITY:1:4:inf: ++%*4LE:+INFINITY:0:4: ++%40LE::0:-1: ++%*40LE::0:-1: ++%40LE:-INFINITY:1:9:-inf: ++%*40LE:-INFINITY:0:9: ++# BZ12701 %40LE:-1.79769313486231580793728971405301199E+308:0:-1: ++# BZ12701 %*40LE:-1.79769313486231580793728971405301199E+308:0:-1: ++%40LE:-1.79769313486231580793728971405301199E308:1:40:-0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40LE:-1.79769313486231580793728971405301199E308:0:40: ++%40LE:-2.3441674165664647186659237648155017216E+37:1:40:-0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40LE:-2.3441674165664647186659237648155017216E+37:0:40: ++%40LE:-2.3441674165664647186659237648155017216E037:1:40:-0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40LE:-2.3441674165664647186659237648155017216E037:0:40: ++# BZ12701 %40LE:-2.00416836000897277799610805135016205E-292:0:-1: ++# BZ12701 %*40LE:-2.00416836000897277799610805135016205E-292:0:-1: ++%40LE:-0E+0:1:5:-0x0: ++%*40LE:-0E+0:0:5: ++%40LE:-0E0:1:4:-0x0: ++%*40LE:-0E0:0:4: ++%40LE:-NAN(09A_Zaz):1:13:-nan: ++%*40LE:-NAN(09A_Zaz):0:13: ++%40LE:-NAN():1:6:-nan: ++%*40LE:-NAN():0:6: ++%40LE:NAN():1:5:nan: ++%*40LE:NAN():0:5: ++%40LE:NAN(09A_Zaz):1:12:nan: ++%*40LE:NAN(09A_Zaz):0:12: ++%40LE:0E0:1:3:0x0: ++%*40LE:0E0:0:3: ++%40LE:0E+0:1:4:0x0: ++%*40LE:0E+0:0:4: ++%40LE:2.00416836000897277799610805135016205E-292:1:40:0x1.485ce9e7a065ea4b747cf9516fp-6: ++%*40LE:2.00416836000897277799610805135016205E-292:0:40: ++# BZ12701 %40LE:2.3441674165664647186659237648155017216E037:0:-1: ++# BZ12701 %*40LE:2.3441674165664647186659237648155017216E037:0:-1: ++# BZ12701 %40LE:2.3441674165664647186659237648155017216E+37:0:-1: ++# BZ12701 %*40LE:2.3441674165664647186659237648155017216E+37:0:-1: ++%40LE:1.79769313486231580793728971405301199E308:1:40:0x1.6b0a8e891ffff0af2d6def985p100: ++%*40LE:1.79769313486231580793728971405301199E308:0:40: ++%40LE:1.79769313486231580793728971405301199E+308:1:40:0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40LE:1.79769313486231580793728971405301199E+308:0:40: ++%40LE:INFINITY:1:8:inf: ++%*40LE:INFINITY:0:8: ++%40LE:+NAN():1:6:nan: ++%*40LE:+NAN():0:6: ++%40LE:+NAN(09A_Zaz):1:13:nan: ++%*40LE:+NAN(09A_Zaz):0:13: ++%40LE:+0E0:1:4:0x0: ++%*40LE:+0E0:0:4: ++%40LE:+0E+0:1:5:0x0: ++%*40LE:+0E+0:0:5: ++# BZ12701 %40LE:+2.00416836000897277799610805135016205E-292:0:-1: ++# BZ12701 %*40LE:+2.00416836000897277799610805135016205E-292:0:-1: ++%40LE:+2.3441674165664647186659237648155017216E037:1:40:0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40LE:+2.3441674165664647186659237648155017216E037:0:40: ++%40LE:+2.3441674165664647186659237648155017216E+37:1:40:0x1.2c0dad8b403a263b1b54af6b6f8p1: ++%*40LE:+2.3441674165664647186659237648155017216E+37:0:40: ++%40LE:+1.79769313486231580793728971405301199E308:1:40:0x1.c16c5c5253574972b4c4520a9f8p10: ++%*40LE:+1.79769313486231580793728971405301199E308:0:40: ++# BZ12701 %40LE:+1.79769313486231580793728971405301199E+308:0:-1: ++# BZ12701 %*40LE:+1.79769313486231580793728971405301199E+308:0:-1: ++%40LE:+INFINITY:1:9:inf: ++%*40LE:+INFINITY:0:9: ++%48LE::0:-1: ++%*48LE::0:-1: ++%48LE:-INFINITY:1:9:-inf: ++%*48LE:-INFINITY:0:9: ++%48LE:-1.79769313486231580793728971405301199E+308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:-1.79769313486231580793728971405301199E+308:0:43: ++%48LE:-1.79769313486231580793728971405301199E308:1:42:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:-1.79769313486231580793728971405301199E308:0:42: ++%48LE:-2.3441674165664647186659237648155017216E+37:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:-2.3441674165664647186659237648155017216E+37:0:44: ++%48LE:-2.3441674165664647186659237648155017216E037:1:44:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:-2.3441674165664647186659237648155017216E037:0:44: ++%48LE:-2.00416836000897277799610805135016205E-292:1:43:-0x1p-969: ++%*48LE:-2.00416836000897277799610805135016205E-292:0:43: ++%48LE:-0E+0:1:5:-0x0: ++%*48LE:-0E+0:0:5: ++%48LE:-0E0:1:4:-0x0: ++%*48LE:-0E0:0:4: ++%48LE:-NAN(09A_Zaz):1:13:-nan: ++%*48LE:-NAN(09A_Zaz):0:13: ++%48LE:-NAN():1:6:-nan: ++%*48LE:-NAN():0:6: ++%48LE:NAN():1:5:nan: ++%*48LE:NAN():0:5: ++%48LE:NAN(09A_Zaz):1:12:nan: ++%*48LE:NAN(09A_Zaz):0:12: ++%48LE:0E0:1:3:0x0: ++%*48LE:0E0:0:3: ++%48LE:0E+0:1:4:0x0: ++%*48LE:0E+0:0:4: ++%48LE:2.00416836000897277799610805135016205E-292:1:42:0x1p-969: ++%*48LE:2.00416836000897277799610805135016205E-292:0:42: ++%48LE:2.3441674165664647186659237648155017216E037:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:2.3441674165664647186659237648155017216E037:0:43: ++%48LE:2.3441674165664647186659237648155017216E+37:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:2.3441674165664647186659237648155017216E+37:0:43: ++%48LE:1.79769313486231580793728971405301199E308:1:41:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:1.79769313486231580793728971405301199E308:0:41: ++%48LE:1.79769313486231580793728971405301199E+308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:1.79769313486231580793728971405301199E+308:0:42: ++%48LE:INFINITY:1:8:inf: ++%*48LE:INFINITY:0:8: ++%48LE:+NAN():1:6:nan: ++%*48LE:+NAN():0:6: ++%48LE:+NAN(09A_Zaz):1:13:nan: ++%*48LE:+NAN(09A_Zaz):0:13: ++%48LE:+0E0:1:4:0x0: ++%*48LE:+0E0:0:4: ++%48LE:+0E+0:1:5:0x0: ++%*48LE:+0E+0:0:5: ++%48LE:+2.00416836000897277799610805135016205E-292:1:43:0x1p-969: ++%*48LE:+2.00416836000897277799610805135016205E-292:0:43: ++%48LE:+2.3441674165664647186659237648155017216E037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:+2.3441674165664647186659237648155017216E037:0:44: ++%48LE:+2.3441674165664647186659237648155017216E+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE:+2.3441674165664647186659237648155017216E+37:0:44: ++%48LE:+1.79769313486231580793728971405301199E308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:+1.79769313486231580793728971405301199E308:0:42: ++%48LE:+1.79769313486231580793728971405301199E+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE:+1.79769313486231580793728971405301199E+308:0:43: ++%48LE:+INFINITY:1:9:inf: ++%*48LE:+INFINITY:0:9: ++%3LE: :0:-1: ++%*3LE: :0:-1: ++%3LE: -INFINITY:0:-1: ++%*3LE: -INFINITY:0:-1: ++%3LE: -1.79769313486231580793728971405301199E+308:1:4:-0x1: ++%*3LE: -1.79769313486231580793728971405301199E+308:0:4: ++%3LE: -1.79769313486231580793728971405301199E308:1:4:-0x1: ++%*3LE: -1.79769313486231580793728971405301199E308:0:4: ++%3LE: -2.3441674165664647186659237648155017216E+37:1:4:-0x1p1: ++%*3LE: -2.3441674165664647186659237648155017216E+37:0:4: ++%3LE: -2.3441674165664647186659237648155017216E037:1:4:-0x1p1: ++%*3LE: -2.3441674165664647186659237648155017216E037:0:4: ++%3LE: -2.00416836000897277799610805135016205E-292:1:4:-0x1p1: ++%*3LE: -2.00416836000897277799610805135016205E-292:0:4: ++# BZ12701 %3LE: -0E+0:0:-1: ++# BZ12701 %*3LE: -0E+0:0:-1: ++# BZ12701 %3LE: -0E0:0:-1: ++# BZ12701 %*3LE: -0E0:0:-1: ++%3LE: -NAN(09A_Zaz):0:-1: ++%*3LE: -NAN(09A_Zaz):0:-1: ++%3LE: -NAN():0:-1: ++%*3LE: -NAN():0:-1: ++%3LE: NAN():1:4:nan: ++%*3LE: NAN():0:4: ++%3LE: NAN(09A_Zaz):1:4:nan: ++%*3LE: NAN(09A_Zaz):0:4: ++%3LE: 0E0:1:4:0x0: ++%*3LE: 0E0:0:4: ++# BZ12701 %3LE: 0E+0:0:-1: ++# BZ12701 %*3LE: 0E+0:0:-1: ++%3LE: 2.00416836000897277799610805135016205E-292:1:4:0x1p1: ++%*3LE: 2.00416836000897277799610805135016205E-292:0:4: ++%3LE: 2.3441674165664647186659237648155017216E037:1:4:0x1.266666666666666666666666668p1: ++%*3LE: 2.3441674165664647186659237648155017216E037:0:4: ++%3LE: 2.3441674165664647186659237648155017216E+37:1:4:0x1.266666666666666666666666668p1: ++%*3LE: 2.3441674165664647186659237648155017216E+37:0:4: ++%3LE: 1.79769313486231580793728971405301199E308:1:4:0x1.b3333333333333333333333333: ++%*3LE: 1.79769313486231580793728971405301199E308:0:4: ++%3LE: 1.79769313486231580793728971405301199E+308:1:4:0x1.b3333333333333333333333333: ++%*3LE: 1.79769313486231580793728971405301199E+308:0:4: ++%3LE: INFINITY:1:4:inf: ++%*3LE: INFINITY:0:4: ++%3LE: +NAN():0:-1: ++%*3LE: +NAN():0:-1: ++%3LE: +NAN(09A_Zaz):0:-1: ++%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE: +0E0:0:-1: ++# BZ12701 %*3LE: +0E0:0:-1: ++# BZ12701 %3LE: +0E+0:0:-1: ++# BZ12701 %*3LE: +0E+0:0:-1: ++%3LE: +2.00416836000897277799610805135016205E-292:1:4:0x1p1: ++%*3LE: +2.00416836000897277799610805135016205E-292:0:4: ++%3LE: +2.3441674165664647186659237648155017216E037:1:4:0x1p1: ++%*3LE: +2.3441674165664647186659237648155017216E037:0:4: ++%3LE: +2.3441674165664647186659237648155017216E+37:1:4:0x1p1: ++%*3LE: +2.3441674165664647186659237648155017216E+37:0:4: ++%3LE: +1.79769313486231580793728971405301199E308:1:4:0x1: ++%*3LE: +1.79769313486231580793728971405301199E308:0:4: ++%3LE: +1.79769313486231580793728971405301199E+308:1:4:0x1: ++%*3LE: +1.79769313486231580793728971405301199E+308:0:4: ++%3LE: +INFINITY:0:-1: ++%*3LE: +INFINITY:0:-1: ++%48LE: :0:-1: ++%*48LE: :0:-1: ++%48LE: -INFINITY:1:10:-inf: ++%*48LE: -INFINITY:0:10: ++%48LE: -1.79769313486231580793728971405301199E+308:1:44:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: -1.79769313486231580793728971405301199E+308:0:44: ++%48LE: -1.79769313486231580793728971405301199E308:1:43:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: -1.79769313486231580793728971405301199E308:0:43: ++%48LE: -2.3441674165664647186659237648155017216E+37:1:45:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: -2.3441674165664647186659237648155017216E+37:0:45: ++%48LE: -2.3441674165664647186659237648155017216E037:1:45:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: -2.3441674165664647186659237648155017216E037:0:45: ++%48LE: -2.00416836000897277799610805135016205E-292:1:44:-0x1p-969: ++%*48LE: -2.00416836000897277799610805135016205E-292:0:44: ++%48LE: -0E+0:1:6:-0x0: ++%*48LE: -0E+0:0:6: ++%48LE: -0E0:1:5:-0x0: ++%*48LE: -0E0:0:5: ++%48LE: -NAN(09A_Zaz):1:14:-nan: ++%*48LE: -NAN(09A_Zaz):0:14: ++%48LE: -NAN():1:7:-nan: ++%*48LE: -NAN():0:7: ++%48LE: NAN():1:6:nan: ++%*48LE: NAN():0:6: ++%48LE: NAN(09A_Zaz):1:13:nan: ++%*48LE: NAN(09A_Zaz):0:13: ++%48LE: 0E0:1:4:0x0: ++%*48LE: 0E0:0:4: ++%48LE: 0E+0:1:5:0x0: ++%*48LE: 0E+0:0:5: ++%48LE: 2.00416836000897277799610805135016205E-292:1:43:0x1p-969: ++%*48LE: 2.00416836000897277799610805135016205E-292:0:43: ++%48LE: 2.3441674165664647186659237648155017216E037:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: 2.3441674165664647186659237648155017216E037:0:44: ++%48LE: 2.3441674165664647186659237648155017216E+37:1:44:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: 2.3441674165664647186659237648155017216E+37:0:44: ++%48LE: 1.79769313486231580793728971405301199E308:1:42:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: 1.79769313486231580793728971405301199E308:0:42: ++%48LE: 1.79769313486231580793728971405301199E+308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: 1.79769313486231580793728971405301199E+308:0:43: ++%48LE: INFINITY:1:9:inf: ++%*48LE: INFINITY:0:9: ++%48LE: +NAN():1:7:nan: ++%*48LE: +NAN():0:7: ++%48LE: +NAN(09A_Zaz):1:14:nan: ++%*48LE: +NAN(09A_Zaz):0:14: ++%48LE: +0E0:1:5:0x0: ++%*48LE: +0E0:0:5: ++%48LE: +0E+0:1:6:0x0: ++%*48LE: +0E+0:0:6: ++%48LE: +2.00416836000897277799610805135016205E-292:1:44:0x1p-969: ++%*48LE: +2.00416836000897277799610805135016205E-292:0:44: ++%48LE: +2.3441674165664647186659237648155017216E037:1:45:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: +2.3441674165664647186659237648155017216E037:0:45: ++%48LE: +2.3441674165664647186659237648155017216E+37:1:45:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*48LE: +2.3441674165664647186659237648155017216E+37:0:45: ++%48LE: +1.79769313486231580793728971405301199E308:1:43:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: +1.79769313486231580793728971405301199E308:0:43: ++%48LE: +1.79769313486231580793728971405301199E+308:1:44:0x1.fffffffffffff7ffffffffffff8p1023: ++%*48LE: +1.79769313486231580793728971405301199E+308:0:44: ++%48LE: +INFINITY:1:10:inf: ++%*48LE: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input +new file mode 100644 +index 0000000000000000..9d4fd75fd0250a93 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-f.input +@@ -0,0 +1,496 @@ ++%Lf::0:-1: ++%*Lf::0:-1: ++%Lf:-infinity:1:9:-inf: ++%*Lf:-infinity:0:9: ++%Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%Lf:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:-023441674165664647186659237648155017216.0:0:42: ++%Lf:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:-23441674165664647186659237648155017216:0:39: ++%Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:-0x1p-969: ++%*Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%Lf:-0.0:1:4:-0x0: ++%*Lf:-0.0:0:4: ++%Lf:-0:1:2:-0x0: ++%*Lf:-0:0:2: ++%Lf:-nan(09A_Zaz):1:13:-nan: ++%*Lf:-nan(09A_Zaz):0:13: ++%Lf:-nan():1:6:-nan: ++%*Lf:-nan():0:6: ++%Lf:nan():1:5:nan: ++%*Lf:nan():0:5: ++%Lf:nan(09A_Zaz):1:12:nan: ++%*Lf:nan(09A_Zaz):0:12: ++%Lf:0:1:1:0x0: ++%*Lf:0:0:1: ++%Lf:0.0:1:3:0x0: ++%*Lf:0.0:0:3: ++%Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:327:0x1p-969: ++%*Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:327: ++%Lf:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:23441674165664647186659237648155017216:0:38: ++%Lf:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:023441674165664647186659237648155017216.0:0:41: ++%Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:309:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:309: ++%Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:312:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: ++%Lf:infinity:1:8:inf: ++%*Lf:infinity:0:8: ++%Lf:+nan():1:6:nan: ++%*Lf:+nan():0:6: ++%Lf:+nan(09A_Zaz):1:13:nan: ++%*Lf:+nan(09A_Zaz):0:13: ++%Lf:+0:1:2:0x0: ++%*Lf:+0:0:2: ++%Lf:+0.0:1:4:0x0: ++%*Lf:+0.0:0:4: ++%Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%Lf:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:+23441674165664647186659237648155017216:0:39: ++%Lf:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lf:+023441674165664647186659237648155017216.0:0:42: ++%Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%Lf:+infinity:1:9:inf: ++%*Lf:+infinity:0:9: ++%1Lf::0:-1: ++%*1Lf::0:-1: ++%1Lf:-infinity:0:-1: ++%*1Lf:-infinity:0:-1: ++%1Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%*1Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%1Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%*1Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%1Lf:-023441674165664647186659237648155017216.0:0:-1: ++%*1Lf:-023441674165664647186659237648155017216.0:0:-1: ++%1Lf:-23441674165664647186659237648155017216:0:-1: ++%*1Lf:-23441674165664647186659237648155017216:0:-1: ++%1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%*1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%1Lf:-0.0:0:-1: ++%*1Lf:-0.0:0:-1: ++%1Lf:-0:0:-1: ++%*1Lf:-0:0:-1: ++%1Lf:-nan(09A_Zaz):0:-1: ++%*1Lf:-nan(09A_Zaz):0:-1: ++%1Lf:-nan():0:-1: ++%*1Lf:-nan():0:-1: ++%1Lf:nan():0:-1: ++%*1Lf:nan():0:-1: ++%1Lf:nan(09A_Zaz):0:-1: ++%*1Lf:nan(09A_Zaz):0:-1: ++%1Lf:0:1:1:0x0: ++%*1Lf:0:0:1: ++%1Lf:0.0:1:1:0x0: ++%*1Lf:0.0:0:1: ++%1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:1:0x0: ++%*1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:1: ++%1Lf:23441674165664647186659237648155017216:1:1:0x1p1: ++%*1Lf:23441674165664647186659237648155017216:0:1: ++%1Lf:023441674165664647186659237648155017216.0:1:1:0x0: ++%*1Lf:023441674165664647186659237648155017216.0:0:1: ++%1Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:1:0x1: ++%*1Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:1: ++%1Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:1:0x0: ++%*1Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:1: ++%1Lf:infinity:0:-1: ++%*1Lf:infinity:0:-1: ++%1Lf:+nan():0:-1: ++%*1Lf:+nan():0:-1: ++%1Lf:+nan(09A_Zaz):0:-1: ++%*1Lf:+nan(09A_Zaz):0:-1: ++%1Lf:+0:0:-1: ++%*1Lf:+0:0:-1: ++%1Lf:+0.0:0:-1: ++%*1Lf:+0.0:0:-1: ++%1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%*1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%1Lf:+23441674165664647186659237648155017216:0:-1: ++%*1Lf:+23441674165664647186659237648155017216:0:-1: ++%1Lf:+023441674165664647186659237648155017216.0:0:-1: ++%*1Lf:+023441674165664647186659237648155017216.0:0:-1: ++%1Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%*1Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%1Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%*1Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%1Lf:+infinity:0:-1: ++%*1Lf:+infinity:0:-1: ++%2Lf::0:-1: ++%*2Lf::0:-1: ++%2Lf:-infinity:0:-1: ++%*2Lf:-infinity:0:-1: ++%2Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:-0x0: ++%*2Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:-0x1: ++%*2Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2Lf:-023441674165664647186659237648155017216.0:1:2:-0x0: ++%*2Lf:-023441674165664647186659237648155017216.0:0:2: ++%2Lf:-23441674165664647186659237648155017216:1:2:-0x1p1: ++%*2Lf:-23441674165664647186659237648155017216:0:2: ++%2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:-0x0: ++%*2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2Lf:-0.0:1:2:-0x0: ++%*2Lf:-0.0:0:2: ++%2Lf:-0:1:2:-0x0: ++%*2Lf:-0:0:2: ++%2Lf:-nan(09A_Zaz):0:-1: ++%*2Lf:-nan(09A_Zaz):0:-1: ++%2Lf:-nan():0:-1: ++%*2Lf:-nan():0:-1: ++%2Lf:nan():0:-1: ++%*2Lf:nan():0:-1: ++%2Lf:nan(09A_Zaz):0:-1: ++%*2Lf:nan(09A_Zaz):0:-1: ++%2Lf:0:1:1:0x0: ++%*2Lf:0:0:1: ++%2Lf:0.0:1:2:0x0: ++%*2Lf:0.0:0:2: ++%2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:0x0: ++%*2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2Lf:23441674165664647186659237648155017216:1:2:0x1.7p4: ++%*2Lf:23441674165664647186659237648155017216:0:2: ++%2Lf:023441674165664647186659237648155017216.0:1:2:0x1p1: ++%*2Lf:023441674165664647186659237648155017216.0:0:2: ++%2Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:0x1.1p4: ++%*2Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:0x1: ++%*2Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2Lf:infinity:0:-1: ++%*2Lf:infinity:0:-1: ++%2Lf:+nan():0:-1: ++%*2Lf:+nan():0:-1: ++%2Lf:+nan(09A_Zaz):0:-1: ++%*2Lf:+nan(09A_Zaz):0:-1: ++%2Lf:+0:1:2:0x0: ++%*2Lf:+0:0:2: ++%2Lf:+0.0:1:2:0x0: ++%*2Lf:+0.0:0:2: ++%2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:0x0: ++%*2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2Lf:+23441674165664647186659237648155017216:1:2:0x1p1: ++%*2Lf:+23441674165664647186659237648155017216:0:2: ++%2Lf:+023441674165664647186659237648155017216.0:1:2:0x0: ++%*2Lf:+023441674165664647186659237648155017216.0:0:2: ++%2Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:0x1: ++%*2Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:0x0: ++%*2Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2Lf:+infinity:0:-1: ++%*2Lf:+infinity:0:-1: ++%3Lf::0:-1: ++%*3Lf::0:-1: ++%3Lf:-infinity:0:-1: ++%*3Lf:-infinity:0:-1: ++%3Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:-0x1: ++%*3Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:-0x1.1p4: ++%*3Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3Lf:-023441674165664647186659237648155017216.0:1:3:-0x1p1: ++%*3Lf:-023441674165664647186659237648155017216.0:0:3: ++%3Lf:-23441674165664647186659237648155017216:1:3:-0x1.7p4: ++%*3Lf:-23441674165664647186659237648155017216:0:3: ++%3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:-0x0: ++%*3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3Lf:-0.0:1:3:-0x0: ++%*3Lf:-0.0:0:3: ++%3Lf:-0:1:2:-0x0: ++%*3Lf:-0:0:2: ++%3Lf:-nan(09A_Zaz):0:-1: ++%*3Lf:-nan(09A_Zaz):0:-1: ++%3Lf:-nan():0:-1: ++%*3Lf:-nan():0:-1: ++%3Lf:nan():1:3:nan: ++%*3Lf:nan():0:3: ++%3Lf:nan(09A_Zaz):1:3:nan: ++%*3Lf:nan(09A_Zaz):0:3: ++%3Lf:0:1:1:0x0: ++%*3Lf:0:0:1: ++%3Lf:0.0:1:3:0x0: ++%*3Lf:0.0:0:3: ++%3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:0x0: ++%*3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3Lf:23441674165664647186659237648155017216:1:3:0x1.d4p7: ++%*3Lf:23441674165664647186659237648155017216:0:3: ++%3Lf:023441674165664647186659237648155017216.0:1:3:0x1.7p4: ++%*3Lf:023441674165664647186659237648155017216.0:0:3: ++%3Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:0x1.66p7: ++%*3Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:0x1.1p4: ++%*3Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3Lf:infinity:1:3:inf: ++%*3Lf:infinity:0:3: ++%3Lf:+nan():0:-1: ++%*3Lf:+nan():0:-1: ++%3Lf:+nan(09A_Zaz):0:-1: ++%*3Lf:+nan(09A_Zaz):0:-1: ++%3Lf:+0:1:2:0x0: ++%*3Lf:+0:0:2: ++%3Lf:+0.0:1:3:0x0: ++%*3Lf:+0.0:0:3: ++%3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:0x0: ++%*3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3Lf:+23441674165664647186659237648155017216:1:3:0x1.7p4: ++%*3Lf:+23441674165664647186659237648155017216:0:3: ++%3Lf:+023441674165664647186659237648155017216.0:1:3:0x1p1: ++%*3Lf:+023441674165664647186659237648155017216.0:0:3: ++%3Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:0x1.1p4: ++%*3Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:0x1: ++%*3Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3Lf:+infinity:0:-1: ++%*3Lf:+infinity:0:-1: ++%295Lf::0:-1: ++%*295Lf::0:-1: ++%295Lf:-infinity:1:9:-inf: ++%*295Lf:-infinity:0:9: ++%295Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:-0x1.cd2b297d889bbb81ebb786ae838p970: ++%*295Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:-0x1.203af9ee756155313352b42d12p+974: ++%*295Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295Lf:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:-023441674165664647186659237648155017216.0:0:42: ++%295Lf:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:-23441674165664647186659237648155017216:0:39: ++%295Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:-0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295Lf:-0.0:1:4:-0x0: ++%*295Lf:-0.0:0:4: ++%295Lf:-0:1:2:-0x0: ++%*295Lf:-0:0:2: ++%295Lf:-nan(09A_Zaz):1:13:-nan: ++%*295Lf:-nan(09A_Zaz):0:13: ++%295Lf:-nan():1:6:-nan: ++%*295Lf:-nan():0:6: ++%295Lf:nan():1:5:nan: ++%*295Lf:nan():0:5: ++%295Lf:nan(09A_Zaz):1:12:nan: ++%*295Lf:nan(09A_Zaz):0:12: ++%295Lf:0:1:1:0x0: ++%*295Lf:0:0:1: ++%295Lf:0.0:1:3:0x0: ++%*295Lf:0.0:0:3: ++%295Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295Lf:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:23441674165664647186659237648155017216:0:38: ++%295Lf:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:023441674165664647186659237648155017216.0:0:41: ++%295Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:0x1.6849b86a12b9aa7d8027613857p+977: ++%*295Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:0x1.203af9ee756155313352b42d12p+974: ++%*295Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295Lf:infinity:1:8:inf: ++%*295Lf:infinity:0:8: ++%295Lf:+nan():1:6:nan: ++%*295Lf:+nan():0:6: ++%295Lf:+nan(09A_Zaz):1:13:nan: ++%*295Lf:+nan(09A_Zaz):0:13: ++%295Lf:+0:1:2:0x0: ++%*295Lf:+0:0:2: ++%295Lf:+0.0:1:4:0x0: ++%*295Lf:+0.0:0:4: ++%295Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295Lf:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:+23441674165664647186659237648155017216:0:39: ++%295Lf:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295Lf:+023441674165664647186659237648155017216.0:0:42: ++%295Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:0x1.203af9ee756155313352b42d12p+974: ++%*295Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:0x1.cd2b297d889bbb81ebb786ae838p970: ++%*295Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295Lf:+infinity:1:9:inf: ++%*295Lf:+infinity:0:9: ++%340Lf::0:-1: ++%*340Lf::0:-1: ++%340Lf:-infinity:1:9:-inf: ++%*340Lf:-infinity:0:9: ++%340Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340Lf:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:-023441674165664647186659237648155017216.0:0:42: ++%340Lf:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:-23441674165664647186659237648155017216:0:39: ++%340Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:-0x1p-969: ++%*340Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340Lf:-0.0:1:4:-0x0: ++%*340Lf:-0.0:0:4: ++%340Lf:-0:1:2:-0x0: ++%*340Lf:-0:0:2: ++%340Lf:-nan(09A_Zaz):1:13:-nan: ++%*340Lf:-nan(09A_Zaz):0:13: ++%340Lf:-nan():1:6:-nan: ++%*340Lf:-nan():0:6: ++%340Lf:nan():1:5:nan: ++%*340Lf:nan():0:5: ++%340Lf:nan(09A_Zaz):1:12:nan: ++%*340Lf:nan(09A_Zaz):0:12: ++%340Lf:0:1:1:0x0: ++%*340Lf:0:0:1: ++%340Lf:0.0:1:3:0x0: ++%*340Lf:0.0:0:3: ++%340Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:327:0x1p-969: ++%*340Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:327: ++%340Lf:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:23441674165664647186659237648155017216:0:38: ++%340Lf:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:023441674165664647186659237648155017216.0:0:41: ++%340Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:309:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:309: ++%340Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:312:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: ++%340Lf:infinity:1:8:inf: ++%*340Lf:infinity:0:8: ++%340Lf:+nan():1:6:nan: ++%*340Lf:+nan():0:6: ++%340Lf:+nan(09A_Zaz):1:13:nan: ++%*340Lf:+nan(09A_Zaz):0:13: ++%340Lf:+0:1:2:0x0: ++%*340Lf:+0:0:2: ++%340Lf:+0.0:1:4:0x0: ++%*340Lf:+0.0:0:4: ++%340Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*340Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340Lf:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:+23441674165664647186659237648155017216:0:39: ++%340Lf:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf:+023441674165664647186659237648155017216.0:0:42: ++%340Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340Lf:+infinity:1:9:inf: ++%*340Lf:+infinity:0:9: ++%3Lf: :0:-1: ++%*3Lf: :0:-1: ++%3Lf: -infinity:0:-1: ++%*3Lf: -infinity:0:-1: ++%3Lf: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:-0x1: ++%*3Lf: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3Lf: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:-0x1.1p4: ++%*3Lf: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3Lf: -023441674165664647186659237648155017216.0:1:4:-0x1p1: ++%*3Lf: -023441674165664647186659237648155017216.0:0:4: ++%3Lf: -23441674165664647186659237648155017216:1:4:-0x1.7p4: ++%*3Lf: -23441674165664647186659237648155017216:0:4: ++%3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:-0x0: ++%*3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3Lf: -0.0:1:4:-0x0: ++%*3Lf: -0.0:0:4: ++%3Lf: -0:1:3:-0x0: ++%*3Lf: -0:0:3: ++%3Lf: -nan(09A_Zaz):0:-1: ++%*3Lf: -nan(09A_Zaz):0:-1: ++%3Lf: -nan():0:-1: ++%*3Lf: -nan():0:-1: ++%3Lf: nan():1:4:nan: ++%*3Lf: nan():0:4: ++%3Lf: nan(09A_Zaz):1:4:nan: ++%*3Lf: nan(09A_Zaz):0:4: ++%3Lf: 0:1:2:0x0: ++%*3Lf: 0:0:2: ++%3Lf: 0.0:1:4:0x0: ++%*3Lf: 0.0:0:4: ++%3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:0x0: ++%*3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3Lf: 23441674165664647186659237648155017216:1:4:0x1.d4p7: ++%*3Lf: 23441674165664647186659237648155017216:0:4: ++%3Lf: 023441674165664647186659237648155017216.0:1:4:0x1.7p4: ++%*3Lf: 023441674165664647186659237648155017216.0:0:4: ++%3Lf: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:0x1.66p7: ++%*3Lf: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:0x1.1p4: ++%*3Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3Lf: infinity:1:4:inf: ++%*3Lf: infinity:0:4: ++%3Lf: +nan():0:-1: ++%*3Lf: +nan():0:-1: ++%3Lf: +nan(09A_Zaz):0:-1: ++%*3Lf: +nan(09A_Zaz):0:-1: ++%3Lf: +0:1:3:0x0: ++%*3Lf: +0:0:3: ++%3Lf: +0.0:1:4:0x0: ++%*3Lf: +0.0:0:4: ++%3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:0x0: ++%*3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3Lf: +23441674165664647186659237648155017216:1:4:0x1.7p4: ++%*3Lf: +23441674165664647186659237648155017216:0:4: ++%3Lf: +023441674165664647186659237648155017216.0:1:4:0x1p1: ++%*3Lf: +023441674165664647186659237648155017216.0:0:4: ++%3Lf: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:0x1.1p4: ++%*3Lf: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3Lf: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:0x1: ++%*3Lf: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3Lf: +infinity:0:-1: ++%*3Lf: +infinity:0:-1: ++%340Lf: :0:-1: ++%*340Lf: :0:-1: ++%340Lf: -infinity:1:10:-inf: ++%*340Lf: -infinity:0:10: ++%340Lf: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:314:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:314: ++%340Lf: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:311:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:311: ++%340Lf: -023441674165664647186659237648155017216.0:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: -023441674165664647186659237648155017216.0:0:43: ++%340Lf: -23441674165664647186659237648155017216:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: -23441674165664647186659237648155017216:0:40: ++%340Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:329:-0x1p-969: ++%*340Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:329: ++%340Lf: -0.0:1:5:-0x0: ++%*340Lf: -0.0:0:5: ++%340Lf: -0:1:3:-0x0: ++%*340Lf: -0:0:3: ++%340Lf: -nan(09A_Zaz):1:14:-nan: ++%*340Lf: -nan(09A_Zaz):0:14: ++%340Lf: -nan():1:7:-nan: ++%*340Lf: -nan():0:7: ++%340Lf: nan():1:6:nan: ++%*340Lf: nan():0:6: ++%340Lf: nan(09A_Zaz):1:13:nan: ++%*340Lf: nan(09A_Zaz):0:13: ++%340Lf: 0:1:2:0x0: ++%*340Lf: 0:0:2: ++%340Lf: 0.0:1:4:0x0: ++%*340Lf: 0.0:0:4: ++%340Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*340Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340Lf: 23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: 23441674165664647186659237648155017216:0:39: ++%340Lf: 023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: 023441674165664647186659237648155017216.0:0:42: ++%340Lf: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340Lf: infinity:1:9:inf: ++%*340Lf: infinity:0:9: ++%340Lf: +nan():1:7:nan: ++%*340Lf: +nan():0:7: ++%340Lf: +nan(09A_Zaz):1:14:nan: ++%*340Lf: +nan(09A_Zaz):0:14: ++%340Lf: +0:1:3:0x0: ++%*340Lf: +0:0:3: ++%340Lf: +0.0:1:5:0x0: ++%*340Lf: +0.0:0:5: ++%340Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:329:0x1p-969: ++%*340Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:329: ++%340Lf: +23441674165664647186659237648155017216:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: +23441674165664647186659237648155017216:0:40: ++%340Lf: +023441674165664647186659237648155017216.0:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340Lf: +023441674165664647186659237648155017216.0:0:43: ++%340Lf: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:311:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:311: ++%340Lf: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:314:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340Lf: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:314: ++%340Lf: +infinity:1:10:inf: ++%*340Lf: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input +new file mode 100644 +index 0000000000000000..bb7098a00dd383b3 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-ff.input +@@ -0,0 +1,496 @@ ++%LF::0:-1: ++%*LF::0:-1: ++%LF:-INFINITY:1:9:-inf: ++%*LF:-INFINITY:0:9: ++%LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%LF:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:-023441674165664647186659237648155017216.0:0:42: ++%LF:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:-23441674165664647186659237648155017216:0:39: ++%LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:-0x1p-969: ++%*LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%LF:-0.0:1:4:-0x0: ++%*LF:-0.0:0:4: ++%LF:-0:1:2:-0x0: ++%*LF:-0:0:2: ++%LF:-NAN(09A_Zaz):1:13:-nan: ++%*LF:-NAN(09A_Zaz):0:13: ++%LF:-NAN():1:6:-nan: ++%*LF:-NAN():0:6: ++%LF:NAN():1:5:nan: ++%*LF:NAN():0:5: ++%LF:NAN(09A_Zaz):1:12:nan: ++%*LF:NAN(09A_Zaz):0:12: ++%LF:0:1:1:0x0: ++%*LF:0:0:1: ++%LF:0.0:1:3:0x0: ++%*LF:0.0:0:3: ++%LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:327:0x1p-969: ++%*LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:327: ++%LF:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:23441674165664647186659237648155017216:0:38: ++%LF:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:023441674165664647186659237648155017216.0:0:41: ++%LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:309:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:309: ++%LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:312:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: ++%LF:INFINITY:1:8:inf: ++%*LF:INFINITY:0:8: ++%LF:+NAN():1:6:nan: ++%*LF:+NAN():0:6: ++%LF:+NAN(09A_Zaz):1:13:nan: ++%*LF:+NAN(09A_Zaz):0:13: ++%LF:+0:1:2:0x0: ++%*LF:+0:0:2: ++%LF:+0.0:1:4:0x0: ++%*LF:+0.0:0:4: ++%LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%LF:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:+23441674165664647186659237648155017216:0:39: ++%LF:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LF:+023441674165664647186659237648155017216.0:0:42: ++%LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%LF:+INFINITY:1:9:inf: ++%*LF:+INFINITY:0:9: ++%1LF::0:-1: ++%*1LF::0:-1: ++%1LF:-INFINITY:0:-1: ++%*1LF:-INFINITY:0:-1: ++%1LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%*1LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%1LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%*1LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%1LF:-023441674165664647186659237648155017216.0:0:-1: ++%*1LF:-023441674165664647186659237648155017216.0:0:-1: ++%1LF:-23441674165664647186659237648155017216:0:-1: ++%*1LF:-23441674165664647186659237648155017216:0:-1: ++%1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%*1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%1LF:-0.0:0:-1: ++%*1LF:-0.0:0:-1: ++%1LF:-0:0:-1: ++%*1LF:-0:0:-1: ++%1LF:-NAN(09A_Zaz):0:-1: ++%*1LF:-NAN(09A_Zaz):0:-1: ++%1LF:-NAN():0:-1: ++%*1LF:-NAN():0:-1: ++%1LF:NAN():0:-1: ++%*1LF:NAN():0:-1: ++%1LF:NAN(09A_Zaz):0:-1: ++%*1LF:NAN(09A_Zaz):0:-1: ++%1LF:0:1:1:0x0: ++%*1LF:0:0:1: ++%1LF:0.0:1:1:0x0: ++%*1LF:0.0:0:1: ++%1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:1:0x0: ++%*1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:1: ++%1LF:23441674165664647186659237648155017216:1:1:0x1p1: ++%*1LF:23441674165664647186659237648155017216:0:1: ++%1LF:023441674165664647186659237648155017216.0:1:1:0x0: ++%*1LF:023441674165664647186659237648155017216.0:0:1: ++%1LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:1:0x1: ++%*1LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:1: ++%1LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:1:0x0: ++%*1LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:1: ++%1LF:INFINITY:0:-1: ++%*1LF:INFINITY:0:-1: ++%1LF:+NAN():0:-1: ++%*1LF:+NAN():0:-1: ++%1LF:+NAN(09A_Zaz):0:-1: ++%*1LF:+NAN(09A_Zaz):0:-1: ++%1LF:+0:0:-1: ++%*1LF:+0:0:-1: ++%1LF:+0.0:0:-1: ++%*1LF:+0.0:0:-1: ++%1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%*1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:-1: ++%1LF:+23441674165664647186659237648155017216:0:-1: ++%*1LF:+23441674165664647186659237648155017216:0:-1: ++%1LF:+023441674165664647186659237648155017216.0:0:-1: ++%*1LF:+023441674165664647186659237648155017216.0:0:-1: ++%1LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%*1LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:-1: ++%1LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%*1LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:-1: ++%1LF:+INFINITY:0:-1: ++%*1LF:+INFINITY:0:-1: ++%2LF::0:-1: ++%*2LF::0:-1: ++%2LF:-INFINITY:0:-1: ++%*2LF:-INFINITY:0:-1: ++%2LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:-0x0: ++%*2LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:-0x1: ++%*2LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2LF:-023441674165664647186659237648155017216.0:1:2:-0x0: ++%*2LF:-023441674165664647186659237648155017216.0:0:2: ++%2LF:-23441674165664647186659237648155017216:1:2:-0x1p1: ++%*2LF:-23441674165664647186659237648155017216:0:2: ++%2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:-0x0: ++%*2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2LF:-0.0:1:2:-0x0: ++%*2LF:-0.0:0:2: ++%2LF:-0:1:2:-0x0: ++%*2LF:-0:0:2: ++%2LF:-NAN(09A_Zaz):0:-1: ++%*2LF:-NAN(09A_Zaz):0:-1: ++%2LF:-NAN():0:-1: ++%*2LF:-NAN():0:-1: ++%2LF:NAN():0:-1: ++%*2LF:NAN():0:-1: ++%2LF:NAN(09A_Zaz):0:-1: ++%*2LF:NAN(09A_Zaz):0:-1: ++%2LF:0:1:1:0x0: ++%*2LF:0:0:1: ++%2LF:0.0:1:2:0x0: ++%*2LF:0.0:0:2: ++%2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:0x0: ++%*2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2LF:23441674165664647186659237648155017216:1:2:0x1.7p4: ++%*2LF:23441674165664647186659237648155017216:0:2: ++%2LF:023441674165664647186659237648155017216.0:1:2:0x1p1: ++%*2LF:023441674165664647186659237648155017216.0:0:2: ++%2LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:0x1.1p4: ++%*2LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:0x1: ++%*2LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2LF:INFINITY:0:-1: ++%*2LF:INFINITY:0:-1: ++%2LF:+NAN():0:-1: ++%*2LF:+NAN():0:-1: ++%2LF:+NAN(09A_Zaz):0:-1: ++%*2LF:+NAN(09A_Zaz):0:-1: ++%2LF:+0:1:2:0x0: ++%*2LF:+0:0:2: ++%2LF:+0.0:1:2:0x0: ++%*2LF:+0.0:0:2: ++%2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:2:0x0: ++%*2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:2: ++%2LF:+23441674165664647186659237648155017216:1:2:0x1p1: ++%*2LF:+23441674165664647186659237648155017216:0:2: ++%2LF:+023441674165664647186659237648155017216.0:1:2:0x0: ++%*2LF:+023441674165664647186659237648155017216.0:0:2: ++%2LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:2:0x1: ++%*2LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:2: ++%2LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:2:0x0: ++%*2LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:2: ++%2LF:+INFINITY:0:-1: ++%*2LF:+INFINITY:0:-1: ++%3LF::0:-1: ++%*3LF::0:-1: ++%3LF:-INFINITY:0:-1: ++%*3LF:-INFINITY:0:-1: ++%3LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:-0x1: ++%*3LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:-0x1.1p4: ++%*3LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3LF:-023441674165664647186659237648155017216.0:1:3:-0x1p1: ++%*3LF:-023441674165664647186659237648155017216.0:0:3: ++%3LF:-23441674165664647186659237648155017216:1:3:-0x1.7p4: ++%*3LF:-23441674165664647186659237648155017216:0:3: ++%3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:-0x0: ++%*3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3LF:-0.0:1:3:-0x0: ++%*3LF:-0.0:0:3: ++%3LF:-0:1:2:-0x0: ++%*3LF:-0:0:2: ++%3LF:-NAN(09A_Zaz):0:-1: ++%*3LF:-NAN(09A_Zaz):0:-1: ++%3LF:-NAN():0:-1: ++%*3LF:-NAN():0:-1: ++%3LF:NAN():1:3:nan: ++%*3LF:NAN():0:3: ++%3LF:NAN(09A_Zaz):1:3:nan: ++%*3LF:NAN(09A_Zaz):0:3: ++%3LF:0:1:1:0x0: ++%*3LF:0:0:1: ++%3LF:0.0:1:3:0x0: ++%*3LF:0.0:0:3: ++%3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:0x0: ++%*3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3LF:23441674165664647186659237648155017216:1:3:0x1.d4p7: ++%*3LF:23441674165664647186659237648155017216:0:3: ++%3LF:023441674165664647186659237648155017216.0:1:3:0x1.7p4: ++%*3LF:023441674165664647186659237648155017216.0:0:3: ++%3LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:0x1.66p7: ++%*3LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:0x1.1p4: ++%*3LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3LF:INFINITY:1:3:inf: ++%*3LF:INFINITY:0:3: ++%3LF:+NAN():0:-1: ++%*3LF:+NAN():0:-1: ++%3LF:+NAN(09A_Zaz):0:-1: ++%*3LF:+NAN(09A_Zaz):0:-1: ++%3LF:+0:1:2:0x0: ++%*3LF:+0:0:2: ++%3LF:+0.0:1:3:0x0: ++%*3LF:+0.0:0:3: ++%3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:3:0x0: ++%*3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:3: ++%3LF:+23441674165664647186659237648155017216:1:3:0x1.7p4: ++%*3LF:+23441674165664647186659237648155017216:0:3: ++%3LF:+023441674165664647186659237648155017216.0:1:3:0x1p1: ++%*3LF:+023441674165664647186659237648155017216.0:0:3: ++%3LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:3:0x1.1p4: ++%*3LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:3: ++%3LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:3:0x1: ++%*3LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:3: ++%3LF:+INFINITY:0:-1: ++%*3LF:+INFINITY:0:-1: ++%295LF::0:-1: ++%*295LF::0:-1: ++%295LF:-INFINITY:1:9:-inf: ++%*295LF:-INFINITY:0:9: ++%295LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:-0x1.cd2b297d889bbb81ebb786ae838p970: ++%*295LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:-0x1.203af9ee756155313352b42d12p+974: ++%*295LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295LF:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:-023441674165664647186659237648155017216.0:0:42: ++%295LF:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:-23441674165664647186659237648155017216:0:39: ++%295LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:-0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295LF:-0.0:1:4:-0x0: ++%*295LF:-0.0:0:4: ++%295LF:-0:1:2:-0x0: ++%*295LF:-0:0:2: ++%295LF:-NAN(09A_Zaz):1:13:-nan: ++%*295LF:-NAN(09A_Zaz):0:13: ++%295LF:-NAN():1:6:-nan: ++%*295LF:-NAN():0:6: ++%295LF:NAN():1:5:nan: ++%*295LF:NAN():0:5: ++%295LF:NAN(09A_Zaz):1:12:nan: ++%*295LF:NAN(09A_Zaz):0:12: ++%295LF:0:1:1:0x0: ++%*295LF:0:0:1: ++%295LF:0.0:1:3:0x0: ++%*295LF:0.0:0:3: ++%295LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295LF:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:23441674165664647186659237648155017216:0:38: ++%295LF:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:023441674165664647186659237648155017216.0:0:41: ++%295LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:0x1.6849b86a12b9aa7d8027613857p+977: ++%*295LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:0x1.203af9ee756155313352b42d12p+974: ++%*295LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295LF:INFINITY:1:8:inf: ++%*295LF:INFINITY:0:8: ++%295LF:+NAN():1:6:nan: ++%*295LF:+NAN():0:6: ++%295LF:+NAN(09A_Zaz):1:13:nan: ++%*295LF:+NAN(09A_Zaz):0:13: ++%295LF:+0:1:2:0x0: ++%*295LF:+0:0:2: ++%295LF:+0.0:1:4:0x0: ++%*295LF:+0.0:0:4: ++%295LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:295:0x1.feef63f97d79b89e4bd1d13827p-970: ++%*295LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:295: ++%295LF:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:+23441674165664647186659237648155017216:0:39: ++%295LF:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*295LF:+023441674165664647186659237648155017216.0:0:42: ++%295LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:295:0x1.203af9ee756155313352b42d12p+974: ++%*295LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:295: ++%295LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:295:0x1.cd2b297d889bbb81ebb786ae838p970: ++%*295LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:295: ++%295LF:+INFINITY:1:9:inf: ++%*295LF:+INFINITY:0:9: ++%340LF::0:-1: ++%*340LF::0:-1: ++%340LF:-INFINITY:1:9:-inf: ++%*340LF:-INFINITY:0:9: ++%340LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:-0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:-179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340LF:-023441674165664647186659237648155017216.0:1:42:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:-023441674165664647186659237648155017216.0:0:42: ++%340LF:-23441674165664647186659237648155017216:1:39:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:-23441674165664647186659237648155017216:0:39: ++%340LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:-0x1p-969: ++%*340LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340LF:-0.0:1:4:-0x0: ++%*340LF:-0.0:0:4: ++%340LF:-0:1:2:-0x0: ++%*340LF:-0:0:2: ++%340LF:-NAN(09A_Zaz):1:13:-nan: ++%*340LF:-NAN(09A_Zaz):0:13: ++%340LF:-NAN():1:6:-nan: ++%*340LF:-NAN():0:6: ++%340LF:NAN():1:5:nan: ++%*340LF:NAN():0:5: ++%340LF:NAN(09A_Zaz):1:12:nan: ++%*340LF:NAN(09A_Zaz):0:12: ++%340LF:0:1:1:0x0: ++%*340LF:0:0:1: ++%340LF:0.0:1:3:0x0: ++%*340LF:0.0:0:3: ++%340LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:327:0x1p-969: ++%*340LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:327: ++%340LF:23441674165664647186659237648155017216:1:38:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:23441674165664647186659237648155017216:0:38: ++%340LF:023441674165664647186659237648155017216.0:1:41:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:023441674165664647186659237648155017216.0:0:41: ++%340LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:309:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:309: ++%340LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:312:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:312: ++%340LF:INFINITY:1:8:inf: ++%*340LF:INFINITY:0:8: ++%340LF:+NAN():1:6:nan: ++%*340LF:+NAN():0:6: ++%340LF:+NAN(09A_Zaz):1:13:nan: ++%*340LF:+NAN(09A_Zaz):0:13: ++%340LF:+0:1:2:0x0: ++%*340LF:+0:0:2: ++%340LF:+0.0:1:4:0x0: ++%*340LF:+0.0:0:4: ++%340LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*340LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340LF:+23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:+23441674165664647186659237648155017216:0:39: ++%340LF:+023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF:+023441674165664647186659237648155017216.0:0:42: ++%340LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:+179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF:+0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340LF:+INFINITY:1:9:inf: ++%*340LF:+INFINITY:0:9: ++%3LF: :0:-1: ++%*3LF: :0:-1: ++%3LF: -INFINITY:0:-1: ++%*3LF: -INFINITY:0:-1: ++%3LF: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:-0x1: ++%*3LF: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3LF: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:-0x1.1p4: ++%*3LF: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3LF: -023441674165664647186659237648155017216.0:1:4:-0x1p1: ++%*3LF: -023441674165664647186659237648155017216.0:0:4: ++%3LF: -23441674165664647186659237648155017216:1:4:-0x1.7p4: ++%*3LF: -23441674165664647186659237648155017216:0:4: ++%3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:-0x0: ++%*3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3LF: -0.0:1:4:-0x0: ++%*3LF: -0.0:0:4: ++%3LF: -0:1:3:-0x0: ++%*3LF: -0:0:3: ++%3LF: -NAN(09A_Zaz):0:-1: ++%*3LF: -NAN(09A_Zaz):0:-1: ++%3LF: -NAN():0:-1: ++%*3LF: -NAN():0:-1: ++%3LF: NAN():1:4:nan: ++%*3LF: NAN():0:4: ++%3LF: NAN(09A_Zaz):1:4:nan: ++%*3LF: NAN(09A_Zaz):0:4: ++%3LF: 0:1:2:0x0: ++%*3LF: 0:0:2: ++%3LF: 0.0:1:4:0x0: ++%*3LF: 0.0:0:4: ++%3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:0x0: ++%*3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3LF: 23441674165664647186659237648155017216:1:4:0x1.d4p7: ++%*3LF: 23441674165664647186659237648155017216:0:4: ++%3LF: 023441674165664647186659237648155017216.0:1:4:0x1.7p4: ++%*3LF: 023441674165664647186659237648155017216.0:0:4: ++%3LF: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:0x1.66p7: ++%*3LF: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:0x1.1p4: ++%*3LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3LF: INFINITY:1:4:inf: ++%*3LF: INFINITY:0:4: ++%3LF: +NAN():0:-1: ++%*3LF: +NAN():0:-1: ++%3LF: +NAN(09A_Zaz):0:-1: ++%*3LF: +NAN(09A_Zaz):0:-1: ++%3LF: +0:1:3:0x0: ++%*3LF: +0:0:3: ++%3LF: +0.0:1:4:0x0: ++%*3LF: +0.0:0:4: ++%3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:4:0x0: ++%*3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:4: ++%3LF: +23441674165664647186659237648155017216:1:4:0x1.7p4: ++%*3LF: +23441674165664647186659237648155017216:0:4: ++%3LF: +023441674165664647186659237648155017216.0:1:4:0x1p1: ++%*3LF: +023441674165664647186659237648155017216.0:0:4: ++%3LF: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:4:0x1.1p4: ++%*3LF: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:4: ++%3LF: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:4:0x1: ++%*3LF: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:4: ++%3LF: +INFINITY:0:-1: ++%*3LF: +INFINITY:0:-1: ++%340LF: :0:-1: ++%*340LF: :0:-1: ++%340LF: -INFINITY:1:10:-inf: ++%*340LF: -INFINITY:0:10: ++%340LF: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:314:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: -0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:314: ++%340LF: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:311:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: -179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:311: ++%340LF: -023441674165664647186659237648155017216.0:1:43:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: -023441674165664647186659237648155017216.0:0:43: ++%340LF: -23441674165664647186659237648155017216:1:40:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: -23441674165664647186659237648155017216:0:40: ++%340LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:329:-0x1p-969: ++%*340LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:329: ++%340LF: -0.0:1:5:-0x0: ++%*340LF: -0.0:0:5: ++%340LF: -0:1:3:-0x0: ++%*340LF: -0:0:3: ++%340LF: -NAN(09A_Zaz):1:14:-nan: ++%*340LF: -NAN(09A_Zaz):0:14: ++%340LF: -NAN():1:7:-nan: ++%*340LF: -NAN():0:7: ++%340LF: NAN():1:6:nan: ++%*340LF: NAN():0:6: ++%340LF: NAN(09A_Zaz):1:13:nan: ++%*340LF: NAN(09A_Zaz):0:13: ++%340LF: 0:1:2:0x0: ++%*340LF: 0:0:2: ++%340LF: 0.0:1:4:0x0: ++%*340LF: 0.0:0:4: ++%340LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:328:0x1p-969: ++%*340LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:328: ++%340LF: 23441674165664647186659237648155017216:1:39:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: 23441674165664647186659237648155017216:0:39: ++%340LF: 023441674165664647186659237648155017216.0:1:42:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: 023441674165664647186659237648155017216.0:0:42: ++%340LF: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:310:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: 179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:310: ++%340LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:313:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: 0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:313: ++%340LF: INFINITY:1:9:inf: ++%*340LF: INFINITY:0:9: ++%340LF: +NAN():1:7:nan: ++%*340LF: +NAN():0:7: ++%340LF: +NAN(09A_Zaz):1:14:nan: ++%*340LF: +NAN(09A_Zaz):0:14: ++%340LF: +0:1:3:0x0: ++%*340LF: +0:0:3: ++%340LF: +0.0:1:5:0x0: ++%*340LF: +0.0:0:5: ++%340LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:1:329:0x1p-969: ++%*340LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002004168360008972777996108051350162:0:329: ++%340LF: +23441674165664647186659237648155017216:1:40:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: +23441674165664647186659237648155017216:0:40: ++%340LF: +023441674165664647186659237648155017216.0:1:43:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*340LF: +023441674165664647186659237648155017216.0:0:43: ++%340LF: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:1:311:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: +179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648:0:311: ++%340LF: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:1:314:0x1.fffffffffffff7ffffffffffff8p1023: ++%*340LF: +0179769313486231580793728971405301199252069012264752390332004544495176179865349768338004270583473493681874097135387894924752516923758125018237039690323659469736010689648748751591634331824498526377862231967249520608291850653495428451067676993116107021027413767397958053860876625383538022115414866471826801819648.0:0:314: ++%340LF: +INFINITY:1:10:inf: ++%*340LF: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input +new file mode 100644 +index 0000000000000000..c500aa8d012c5c89 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-g.input +@@ -0,0 +1,682 @@ ++%Lg::0:-1: ++%*Lg::0:-1: ++%Lg:-infinity:1:9:-inf: ++%*Lg:-infinity:0:9: ++%Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%Lg:-0x7.ffffffffffffdffffffffffffep1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:-0x7.ffffffffffffdffffffffffffep1021:0:36: ++%Lg:-0x2.3456789abcdef0123456789abcp+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:-0x2.3456789abcdef0123456789abcp+123:0:36: ++%Lg:-0x2.3456789abcdef0123456789abcp0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:-0x2.3456789abcdef0123456789abcp0123:0:36: ++%Lg:-0x8p-972:1:9:-0x1p-969: ++%*Lg:-0x8p-972:0:9: ++%Lg:-0x0p+0:1:7:-0x0: ++%*Lg:-0x0p+0:0:7: ++%Lg:-0x0p0:1:6:-0x0: ++%*Lg:-0x0p0:0:6: ++%Lg:-nan(09A_Zaz):1:13:-nan: ++%*Lg:-nan(09A_Zaz):0:13: ++%Lg:-nan():1:6:-nan: ++%*Lg:-nan():0:6: ++%Lg:nan():1:5:nan: ++%*Lg:nan():0:5: ++%Lg:nan(09A_Zaz):1:12:nan: ++%*Lg:nan(09A_Zaz):0:12: ++%Lg:0x0p0:1:5:0x0: ++%*Lg:0x0p0:0:5: ++%Lg:0x0p+0:1:6:0x0: ++%*Lg:0x0p+0:0:6: ++%Lg:0x8p-972:1:8:0x1p-969: ++%*Lg:0x8p-972:0:8: ++%Lg:0x2.3456789abcdef0123456789abcp0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:0x2.3456789abcdef0123456789abcp0123:0:35: ++%Lg:0x2.3456789abcdef0123456789abcp+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:0x2.3456789abcdef0123456789abcp+123:0:35: ++%Lg:0x7.ffffffffffffdffffffffffffep1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:0x7.ffffffffffffdffffffffffffep1021:0:35: ++%Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:36: ++%Lg:infinity:1:8:inf: ++%*Lg:infinity:0:8: ++%Lg:+nan():1:6:nan: ++%*Lg:+nan():0:6: ++%Lg:+nan(09A_Zaz):1:13:nan: ++%*Lg:+nan(09A_Zaz):0:13: ++%Lg:+0x0p0:1:6:0x0: ++%*Lg:+0x0p0:0:6: ++%Lg:+0x0p+0:1:7:0x0: ++%*Lg:+0x0p+0:0:7: ++%Lg:+0x8p-972:1:9:0x1p-969: ++%*Lg:+0x8p-972:0:9: ++%Lg:+0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:+0x2.3456789abcdef0123456789abcp0123:0:36: ++%Lg:+0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*Lg:+0x2.3456789abcdef0123456789abcp+123:0:36: ++%Lg:+0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:+0x7.ffffffffffffdffffffffffffep1021:0:36: ++%Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%Lg:+infinity:1:9:inf: ++%*Lg:+infinity:0:9: ++%1Lg::0:-1: ++%*1Lg::0:-1: ++%1Lg:-infinity:0:-1: ++%*1Lg:-infinity:0:-1: ++%1Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%*1Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%1Lg:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%*1Lg:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%1Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%*1Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%1Lg:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++%*1Lg:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++%1Lg:-0x8p-972:0:-1: ++%*1Lg:-0x8p-972:0:-1: ++%1Lg:-0x0p+0:0:-1: ++%*1Lg:-0x0p+0:0:-1: ++%1Lg:-0x0p0:0:-1: ++%*1Lg:-0x0p0:0:-1: ++%1Lg:-nan(09A_Zaz):0:-1: ++%*1Lg:-nan(09A_Zaz):0:-1: ++%1Lg:-nan():0:-1: ++%*1Lg:-nan():0:-1: ++%1Lg:nan():0:-1: ++%*1Lg:nan():0:-1: ++%1Lg:nan(09A_Zaz):0:-1: ++%*1Lg:nan(09A_Zaz):0:-1: ++%1Lg:0x0p0:1:1:0x0: ++%*1Lg:0x0p0:0:1: ++%1Lg:0x0p+0:1:1:0x0: ++%*1Lg:0x0p+0:0:1: ++%1Lg:0x8p-972:1:1:0x0: ++%*1Lg:0x8p-972:0:1: ++%1Lg:0x2.3456789abcdef0123456789abcp0123:1:1:0x0: ++%*1Lg:0x2.3456789abcdef0123456789abcp0123:0:1: ++%1Lg:0x2.3456789abcdef0123456789abcp+123:1:1:0x0: ++%*1Lg:0x2.3456789abcdef0123456789abcp+123:0:1: ++%1Lg:0x7.ffffffffffffdffffffffffffep1021:1:1:0x0: ++%*1Lg:0x7.ffffffffffffdffffffffffffep1021:0:1: ++%1Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:1:0x0: ++%*1Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:1: ++%1Lg:infinity:0:-1: ++%*1Lg:infinity:0:-1: ++%1Lg:+nan():0:-1: ++%*1Lg:+nan():0:-1: ++%1Lg:+nan(09A_Zaz):0:-1: ++%*1Lg:+nan(09A_Zaz):0:-1: ++%1Lg:+0x0p0:0:-1: ++%*1Lg:+0x0p0:0:-1: ++%1Lg:+0x0p+0:0:-1: ++%*1Lg:+0x0p+0:0:-1: ++%1Lg:+0x8p-972:0:-1: ++%*1Lg:+0x8p-972:0:-1: ++%1Lg:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++%*1Lg:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++%1Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%*1Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%1Lg:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%*1Lg:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++%1Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%*1Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%1Lg:+infinity:0:-1: ++%*1Lg:+infinity:0:-1: ++%2Lg::0:-1: ++%*2Lg::0:-1: ++%2Lg:-infinity:0:-1: ++%*2Lg:-infinity:0:-1: ++%2Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:2:-0x0: ++%*2Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:2: ++%2Lg:-0x7.ffffffffffffdffffffffffffep1021:1:2:-0x0: ++%*2Lg:-0x7.ffffffffffffdffffffffffffep1021:0:2: ++%2Lg:-0x2.3456789abcdef0123456789abcp+123:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef0123456789abcp+123:0:2: ++%2Lg:-0x2.3456789abcdef0123456789abcp0123:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef0123456789abcp0123:0:2: ++%2Lg:-0x8p-972:1:2:-0x0: ++%*2Lg:-0x8p-972:0:2: ++%2Lg:-0x0p+0:1:2:-0x0: ++%*2Lg:-0x0p+0:0:2: ++%2Lg:-0x0p0:1:2:-0x0: ++%*2Lg:-0x0p0:0:2: ++%2Lg:-nan(09A_Zaz):0:-1: ++%*2Lg:-nan(09A_Zaz):0:-1: ++%2Lg:-nan():0:-1: ++%*2Lg:-nan():0:-1: ++%2Lg:nan():0:-1: ++%*2Lg:nan():0:-1: ++%2Lg:nan(09A_Zaz):0:-1: ++%*2Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %2Lg:0x0p0:0:-1: ++# BZ12701 %*2Lg:0x0p0:0:-1: ++# BZ12701 %2Lg:0x0p+0:0:-1: ++# BZ12701 %*2Lg:0x0p+0:0:-1: ++# BZ12701 %2Lg:0x8p-972:0:-1: ++# BZ12701 %*2Lg:0x8p-972:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %2Lg:0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*2Lg:0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %2Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*2Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%2Lg:infinity:0:-1: ++%*2Lg:infinity:0:-1: ++%2Lg:+nan():0:-1: ++%*2Lg:+nan():0:-1: ++%2Lg:+nan(09A_Zaz):0:-1: ++%*2Lg:+nan(09A_Zaz):0:-1: ++%2Lg:+0x0p0:1:2:0x0: ++%*2Lg:+0x0p0:0:2: ++%2Lg:+0x0p+0:1:2:0x0: ++%*2Lg:+0x0p+0:0:2: ++%2Lg:+0x8p-972:1:2:0x0: ++%*2Lg:+0x8p-972:0:2: ++%2Lg:+0x2.3456789abcdef0123456789abcp0123:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef0123456789abcp0123:0:2: ++%2Lg:+0x2.3456789abcdef0123456789abcp+123:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef0123456789abcp+123:0:2: ++%2Lg:+0x7.ffffffffffffdffffffffffffep1021:1:2:0x0: ++%*2Lg:+0x7.ffffffffffffdffffffffffffep1021:0:2: ++%2Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:2:0x0: ++%*2Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:2: ++%2Lg:+infinity:0:-1: ++%*2Lg:+infinity:0:-1: ++%3Lg::0:-1: ++%*3Lg::0:-1: ++%3Lg:-infinity:0:-1: ++%*3Lg:-infinity:0:-1: ++# BZ12701 %3Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*3Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %3Lg:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*3Lg:-0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %3Lg:-0x8p-972:0:-1: ++# BZ12701 %*3Lg:-0x8p-972:0:-1: ++# BZ12701 %3Lg:-0x0p+0:0:-1: ++# BZ12701 %*3Lg:-0x0p+0:0:-1: ++# BZ12701 %3Lg:-0x0p0:0:-1: ++# BZ12701 %*3Lg:-0x0p0:0:-1: ++%3Lg:-nan(09A_Zaz):0:-1: ++%*3Lg:-nan(09A_Zaz):0:-1: ++%3Lg:-nan():0:-1: ++%*3Lg:-nan():0:-1: ++%3Lg:nan():1:3:nan: ++%*3Lg:nan():0:3: ++%3Lg:nan(09A_Zaz):1:3:nan: ++%*3Lg:nan(09A_Zaz):0:3: ++%3Lg:0x0p0:1:3:0x0: ++%*3Lg:0x0p0:0:3: ++%3Lg:0x0p+0:1:3:0x0: ++%*3Lg:0x0p+0:0:3: ++%3Lg:0x8p-972:1:3:0x1p3: ++%*3Lg:0x8p-972:0:3: ++%3Lg:0x2.3456789abcdef0123456789abcp0123:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef0123456789abcp0123:0:3: ++%3Lg:0x2.3456789abcdef0123456789abcp+123:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef0123456789abcp+123:0:3: ++%3Lg:0x7.ffffffffffffdffffffffffffep1021:1:3:0x1.cp2: ++%*3Lg:0x7.ffffffffffffdffffffffffffep1021:0:3: ++%3Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:3:0x1.ep3: ++%*3Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:3: ++%3Lg:infinity:1:3:inf: ++%*3Lg:infinity:0:3: ++%3Lg:+nan():0:-1: ++%*3Lg:+nan():0:-1: ++%3Lg:+nan(09A_Zaz):0:-1: ++%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Lg:+0x0p0:0:-1: ++# BZ12701 %*3Lg:+0x0p0:0:-1: ++# BZ12701 %3Lg:+0x0p+0:0:-1: ++# BZ12701 %*3Lg:+0x0p+0:0:-1: ++# BZ12701 %3Lg:+0x8p-972:0:-1: ++# BZ12701 %*3Lg:+0x8p-972:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef0123456789abcp0123:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %3Lg:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %*3Lg:+0x7.ffffffffffffdffffffffffffep1021:0:-1: ++# BZ12701 %3Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*3Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%3Lg:+infinity:0:-1: ++%*3Lg:+infinity:0:-1: ++%4Lg::0:-1: ++%*4Lg::0:-1: ++%4Lg:-infinity:1:4:-inf: ++%*4Lg:-infinity:0:4: ++%4Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:4:-0x1.ep3: ++%*4Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4Lg:-0x7.ffffffffffffdffffffffffffep1021:1:4:-0x1.cp2: ++%*4Lg:-0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4Lg:-0x2.3456789abcdef0123456789abcp+123:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef0123456789abcp+123:0:4: ++%4Lg:-0x2.3456789abcdef0123456789abcp0123:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef0123456789abcp0123:0:4: ++%4Lg:-0x8p-972:1:4:-0x1p3: ++%*4Lg:-0x8p-972:0:4: ++%4Lg:-0x0p+0:1:4:-0x0: ++%*4Lg:-0x0p+0:0:4: ++%4Lg:-0x0p0:1:4:-0x0: ++%*4Lg:-0x0p0:0:4: ++%4Lg:-nan(09A_Zaz):1:4:-nan: ++%*4Lg:-nan(09A_Zaz):0:4: ++%4Lg:-nan():1:4:-nan: ++%*4Lg:-nan():0:4: ++%4Lg:nan():0:-1: ++%*4Lg:nan():0:-1: ++%4Lg:nan(09A_Zaz):0:-1: ++%*4Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %4Lg:0x0p0:0:-1: ++# BZ12701 %*4Lg:0x0p0:0:-1: ++# BZ12701 %4Lg:0x0p+0:0:-1: ++# BZ12701 %*4Lg:0x0p+0:0:-1: ++# BZ12701 %4Lg:0x8p-972:0:-1: ++# BZ12701 %*4Lg:0x8p-972:0:-1: ++%4Lg:0x2.3456789abcdef0123456789abcp0123:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef0123456789abcp0123:0:4: ++%4Lg:0x2.3456789abcdef0123456789abcp+123:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef0123456789abcp+123:0:4: ++%4Lg:0x7.ffffffffffffdffffffffffffep1021:1:4:0x1.cp2: ++%*4Lg:0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:4:0x1.ep3: ++%*4Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4Lg:infinity:0:-1: ++%*4Lg:infinity:0:-1: ++%4Lg:+nan():1:4:nan: ++%*4Lg:+nan():0:4: ++%4Lg:+nan(09A_Zaz):1:4:nan: ++%*4Lg:+nan(09A_Zaz):0:4: ++%4Lg:+0x0p0:1:4:0x0: ++%*4Lg:+0x0p0:0:4: ++%4Lg:+0x0p+0:1:4:0x0: ++%*4Lg:+0x0p+0:0:4: ++%4Lg:+0x8p-972:1:4:0x1p3: ++%*4Lg:+0x8p-972:0:4: ++%4Lg:+0x2.3456789abcdef0123456789abcp0123:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef0123456789abcp0123:0:4: ++%4Lg:+0x2.3456789abcdef0123456789abcp+123:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef0123456789abcp+123:0:4: ++%4Lg:+0x7.ffffffffffffdffffffffffffep1021:1:4:0x1.cp2: ++%*4Lg:+0x7.ffffffffffffdffffffffffffep1021:0:4: ++%4Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:4:0x1.ep3: ++%*4Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:4: ++%4Lg:+infinity:1:4:inf: ++%*4Lg:+infinity:0:4: ++%5Lg::0:-1: ++%*5Lg::0:-1: ++%5Lg:-infinity:0:-1: ++%*5Lg:-infinity:0:-1: ++%5Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:5:-0x1.ep3: ++%*5Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5Lg:-0x7.ffffffffffffdffffffffffffep1021:1:5:-0x1.cp2: ++%*5Lg:-0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5Lg:-0x2.3456789abcdef0123456789abcp+123:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef0123456789abcp+123:0:5: ++%5Lg:-0x2.3456789abcdef0123456789abcp0123:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef0123456789abcp0123:0:5: ++# BZ12701 %5Lg:-0x8p-972:0:-1: ++# BZ12701 %*5Lg:-0x8p-972:0:-1: ++# BZ12701 %5Lg:-0x0p+0:0:-1: ++# BZ12701 %*5Lg:-0x0p+0:0:-1: ++# BZ12701 %5Lg:-0x0p0:0:-1: ++# BZ12701 %*5Lg:-0x0p0:0:-1: ++%5Lg:-nan(09A_Zaz):0:-1: ++%*5Lg:-nan(09A_Zaz):0:-1: ++%5Lg:-nan():0:-1: ++%*5Lg:-nan():0:-1: ++%5Lg:nan():1:5:nan: ++%*5Lg:nan():0:5: ++%5Lg:nan(09A_Zaz):0:-1: ++%*5Lg:nan(09A_Zaz):0:-1: ++%5Lg:0x0p0:1:5:0x0: ++%*5Lg:0x0p0:0:5: ++# BZ12701 %5Lg:0x0p+0:0:-1: ++# BZ12701 %*5Lg:0x0p+0:0:-1: ++# BZ12701 %5Lg:0x8p-972:0:-1: ++# BZ12701 %*5Lg:0x8p-972:0:-1: ++%5Lg:0x2.3456789abcdef0123456789abcp0123:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef0123456789abcp0123:0:5: ++%5Lg:0x2.3456789abcdef0123456789abcp+123:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef0123456789abcp+123:0:5: ++%5Lg:0x7.ffffffffffffdffffffffffffep1021:1:5:0x1.fcp2: ++%*5Lg:0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:5:0x1.fep3: ++%*5Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5Lg:infinity:0:-1: ++%*5Lg:infinity:0:-1: ++%5Lg:+nan():0:-1: ++%*5Lg:+nan():0:-1: ++%5Lg:+nan(09A_Zaz):0:-1: ++%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg:+0x0p0:0:-1: ++# BZ12701 %*5Lg:+0x0p0:0:-1: ++# BZ12701 %5Lg:+0x0p+0:0:-1: ++# BZ12701 %*5Lg:+0x0p+0:0:-1: ++# BZ12701 %5Lg:+0x8p-972:0:-1: ++# BZ12701 %*5Lg:+0x8p-972:0:-1: ++%5Lg:+0x2.3456789abcdef0123456789abcp0123:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef0123456789abcp0123:0:5: ++%5Lg:+0x2.3456789abcdef0123456789abcp+123:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef0123456789abcp+123:0:5: ++%5Lg:+0x7.ffffffffffffdffffffffffffep1021:1:5:0x1.cp2: ++%*5Lg:+0x7.ffffffffffffdffffffffffffep1021:0:5: ++%5Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:5:0x1.ep3: ++%*5Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:5: ++%5Lg:+infinity:0:-1: ++%*5Lg:+infinity:0:-1: ++%6Lg::0:-1: ++%*6Lg::0:-1: ++%6Lg:-infinity:0:-1: ++%*6Lg:-infinity:0:-1: ++%6Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:6:-0x1.fep3: ++%*6Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6Lg:-0x7.ffffffffffffdffffffffffffep1021:1:6:-0x1.fcp2: ++%*6Lg:-0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6Lg:-0x2.3456789abcdef0123456789abcp+123:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef0123456789abcp+123:0:6: ++%6Lg:-0x2.3456789abcdef0123456789abcp0123:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef0123456789abcp0123:0:6: ++# BZ12701 %6Lg:-0x8p-972:0:-1: ++# BZ12701 %*6Lg:-0x8p-972:0:-1: ++# BZ12701 %6Lg:-0x0p+0:0:-1: ++# BZ12701 %*6Lg:-0x0p+0:0:-1: ++%6Lg:-0x0p0:1:6:-0x0: ++%*6Lg:-0x0p0:0:6: ++%6Lg:-nan(09A_Zaz):0:-1: ++%*6Lg:-nan(09A_Zaz):0:-1: ++%6Lg:-nan():1:6:-nan: ++%*6Lg:-nan():0:6: ++%6Lg:nan():1:5:nan: ++%*6Lg:nan():0:5: ++%6Lg:nan(09A_Zaz):0:-1: ++%*6Lg:nan(09A_Zaz):0:-1: ++%6Lg:0x0p0:1:5:0x0: ++%*6Lg:0x0p0:0:5: ++%6Lg:0x0p+0:1:6:0x0: ++%*6Lg:0x0p+0:0:6: ++%6Lg:0x8p-972:1:6:0x1p-6: ++%*6Lg:0x8p-972:0:6: ++%6Lg:0x2.3456789abcdef0123456789abcp0123:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef0123456789abcp0123:0:6: ++%6Lg:0x2.3456789abcdef0123456789abcp+123:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef0123456789abcp+123:0:6: ++%6Lg:0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.ffcp2: ++%*6Lg:0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.ffep3: ++%*6Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6Lg:infinity:0:-1: ++%*6Lg:infinity:0:-1: ++%6Lg:+nan():1:6:nan: ++%*6Lg:+nan():0:6: ++%6Lg:+nan(09A_Zaz):0:-1: ++%*6Lg:+nan(09A_Zaz):0:-1: ++%6Lg:+0x0p0:1:6:0x0: ++%*6Lg:+0x0p0:0:6: ++# BZ12701 %6Lg:+0x0p+0:0:-1: ++# BZ12701 %*6Lg:+0x0p+0:0:-1: ++# BZ12701 %6Lg:+0x8p-972:0:-1: ++# BZ12701 %*6Lg:+0x8p-972:0:-1: ++%6Lg:+0x2.3456789abcdef0123456789abcp0123:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef0123456789abcp0123:0:6: ++%6Lg:+0x2.3456789abcdef0123456789abcp+123:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef0123456789abcp+123:0:6: ++%6Lg:+0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.fcp2: ++%*6Lg:+0x7.ffffffffffffdffffffffffffep1021:0:6: ++%6Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.fep3: ++%*6Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%6Lg:+infinity:0:-1: ++%*6Lg:+infinity:0:-1: ++%33Lg::0:-1: ++%*33Lg::0:-1: ++%33Lg:-infinity:1:9:-inf: ++%*33Lg:-infinity:0:9: ++# BZ12701 %33Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*33Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%33Lg:-0x7.ffffffffffffdffffffffffffep1021:1:33:-0x1.fffffffffffff7ffffffffffff8p3: ++%*33Lg:-0x7.ffffffffffffdffffffffffffep1021:0:33: ++# BZ12701 %33Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*33Lg:-0x2.3456789abcdef0123456789abcp+123:0:-1: ++%33Lg:-0x2.3456789abcdef0123456789abcp0123:1:33:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33Lg:-0x2.3456789abcdef0123456789abcp0123:0:33: ++%33Lg:-0x8p-972:1:9:-0x1p-969: ++%*33Lg:-0x8p-972:0:9: ++%33Lg:-0x0p+0:1:7:-0x0: ++%*33Lg:-0x0p+0:0:7: ++%33Lg:-0x0p0:1:6:-0x0: ++%*33Lg:-0x0p0:0:6: ++%33Lg:-nan(09A_Zaz):1:13:-nan: ++%*33Lg:-nan(09A_Zaz):0:13: ++%33Lg:-nan():1:6:-nan: ++%*33Lg:-nan():0:6: ++%33Lg:nan():1:5:nan: ++%*33Lg:nan():0:5: ++%33Lg:nan(09A_Zaz):1:12:nan: ++%*33Lg:nan(09A_Zaz):0:12: ++%33Lg:0x0p0:1:5:0x0: ++%*33Lg:0x0p0:0:5: ++%33Lg:0x0p+0:1:6:0x0: ++%*33Lg:0x0p+0:0:6: ++%33Lg:0x8p-972:1:8:0x1p-969: ++%*33Lg:0x8p-972:0:8: ++%33Lg:0x2.3456789abcdef0123456789abcp0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33Lg:0x2.3456789abcdef0123456789abcp0123:0:33: ++%33Lg:0x2.3456789abcdef0123456789abcp+123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33Lg:0x2.3456789abcdef0123456789abcp+123:0:33: ++%33Lg:0x7.ffffffffffffdffffffffffffep1021:1:33:0x1.fffffffffffff7ffffffffffff8p12: ++%*33Lg:0x7.ffffffffffffdffffffffffffep1021:0:33: ++%33Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:33:0x1.fffffffffffff7ffffffffffff8p4: ++%*33Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:33: ++%33Lg:infinity:1:8:inf: ++%*33Lg:infinity:0:8: ++%33Lg:+nan():1:6:nan: ++%*33Lg:+nan():0:6: ++%33Lg:+nan(09A_Zaz):1:13:nan: ++%*33Lg:+nan(09A_Zaz):0:13: ++%33Lg:+0x0p0:1:6:0x0: ++%*33Lg:+0x0p0:0:6: ++%33Lg:+0x0p+0:1:7:0x0: ++%*33Lg:+0x0p+0:0:7: ++%33Lg:+0x8p-972:1:9:0x1p-969: ++%*33Lg:+0x8p-972:0:9: ++%33Lg:+0x2.3456789abcdef0123456789abcp0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33Lg:+0x2.3456789abcdef0123456789abcp0123:0:33: ++# BZ12701 %33Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++# BZ12701 %*33Lg:+0x2.3456789abcdef0123456789abcp+123:0:-1: ++%33Lg:+0x7.ffffffffffffdffffffffffffep1021:1:33:0x1.fffffffffffff7ffffffffffff8p3: ++%*33Lg:+0x7.ffffffffffffdffffffffffffep1021:0:33: ++# BZ12701 %33Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++# BZ12701 %*33Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:-1: ++%33Lg:+infinity:1:9:inf: ++%*33Lg:+infinity:0:9: ++%50Lg::0:-1: ++%*50Lg::0:-1: ++%50Lg:-infinity:1:9:-inf: ++%*50Lg:-infinity:0:9: ++%50Lg:-0xf.ffffffffffffbffffffffffffcp+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:-0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50Lg:-0x7.ffffffffffffdffffffffffffep1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:-0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50Lg:-0x2.3456789abcdef0123456789abcp+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:-0x2.3456789abcdef0123456789abcp+123:0:36: ++%50Lg:-0x2.3456789abcdef0123456789abcp0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:-0x2.3456789abcdef0123456789abcp0123:0:36: ++%50Lg:-0x8p-972:1:9:-0x1p-969: ++%*50Lg:-0x8p-972:0:9: ++%50Lg:-0x0p+0:1:7:-0x0: ++%*50Lg:-0x0p+0:0:7: ++%50Lg:-0x0p0:1:6:-0x0: ++%*50Lg:-0x0p0:0:6: ++%50Lg:-nan(09A_Zaz):1:13:-nan: ++%*50Lg:-nan(09A_Zaz):0:13: ++%50Lg:-nan():1:6:-nan: ++%*50Lg:-nan():0:6: ++%50Lg:nan():1:5:nan: ++%*50Lg:nan():0:5: ++%50Lg:nan(09A_Zaz):1:12:nan: ++%*50Lg:nan(09A_Zaz):0:12: ++%50Lg:0x0p0:1:5:0x0: ++%*50Lg:0x0p0:0:5: ++%50Lg:0x0p+0:1:6:0x0: ++%*50Lg:0x0p+0:0:6: ++%50Lg:0x8p-972:1:8:0x1p-969: ++%*50Lg:0x8p-972:0:8: ++%50Lg:0x2.3456789abcdef0123456789abcp0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:0x2.3456789abcdef0123456789abcp0123:0:35: ++%50Lg:0x2.3456789abcdef0123456789abcp+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:0x2.3456789abcdef0123456789abcp+123:0:35: ++%50Lg:0x7.ffffffffffffdffffffffffffep1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:0x7.ffffffffffffdffffffffffffep1021:0:35: ++%50Lg:0xf.ffffffffffffbffffffffffffcp+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:0xf.ffffffffffffbffffffffffffcp+1020:0:36: ++%50Lg:infinity:1:8:inf: ++%*50Lg:infinity:0:8: ++%50Lg:+nan():1:6:nan: ++%*50Lg:+nan():0:6: ++%50Lg:+nan(09A_Zaz):1:13:nan: ++%*50Lg:+nan(09A_Zaz):0:13: ++%50Lg:+0x0p0:1:6:0x0: ++%*50Lg:+0x0p0:0:6: ++%50Lg:+0x0p+0:1:7:0x0: ++%*50Lg:+0x0p+0:0:7: ++%50Lg:+0x8p-972:1:9:0x1p-969: ++%*50Lg:+0x8p-972:0:9: ++%50Lg:+0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:+0x2.3456789abcdef0123456789abcp0123:0:36: ++%50Lg:+0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg:+0x2.3456789abcdef0123456789abcp+123:0:36: ++%50Lg:+0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:+0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50Lg:+0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg:+0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50Lg:+infinity:1:9:inf: ++%*50Lg:+infinity:0:9: ++%5Lg: :0:-1: ++%*5Lg: :0:-1: ++%5Lg: -infinity:0:-1: ++%*5Lg: -infinity:0:-1: ++%5Lg: -0xf.ffffffffffffbffffffffffffcp+1020:1:6:-0x1.ep3: ++%*5Lg: -0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5Lg: -0x7.ffffffffffffdffffffffffffep1021:1:6:-0x1.cp2: ++%*5Lg: -0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5Lg: -0x2.3456789abcdef0123456789abcp+123:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef0123456789abcp+123:0:6: ++%5Lg: -0x2.3456789abcdef0123456789abcp0123:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef0123456789abcp0123:0:6: ++# BZ12701 %5Lg: -0x8p-972:0:-1: ++# BZ12701 %*5Lg: -0x8p-972:0:-1: ++# BZ12701 %5Lg: -0x0p+0:0:-1: ++# BZ12701 %*5Lg: -0x0p+0:0:-1: ++# BZ12701 %5Lg: -0x0p0:0:-1: ++# BZ12701 %*5Lg: -0x0p0:0:-1: ++%5Lg: -nan(09A_Zaz):0:-1: ++%*5Lg: -nan(09A_Zaz):0:-1: ++%5Lg: -nan():0:-1: ++%*5Lg: -nan():0:-1: ++%5Lg: nan():1:6:nan: ++%*5Lg: nan():0:6: ++%5Lg: nan(09A_Zaz):0:-1: ++%*5Lg: nan(09A_Zaz):0:-1: ++%5Lg: 0x0p0:1:6:0x0: ++%*5Lg: 0x0p0:0:6: ++# BZ12701 %5Lg: 0x0p+0:0:-1: ++# BZ12701 %*5Lg: 0x0p+0:0:-1: ++# BZ12701 %5Lg: 0x8p-972:0:-1: ++# BZ12701 %*5Lg: 0x8p-972:0:-1: ++%5Lg: 0x2.3456789abcdef0123456789abcp0123:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef0123456789abcp0123:0:6: ++%5Lg: 0x2.3456789abcdef0123456789abcp+123:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef0123456789abcp+123:0:6: ++%5Lg: 0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.fcp2: ++%*5Lg: 0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5Lg: 0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.fep3: ++%*5Lg: 0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5Lg: infinity:0:-1: ++%*5Lg: infinity:0:-1: ++%5Lg: +nan():0:-1: ++%*5Lg: +nan():0:-1: ++%5Lg: +nan(09A_Zaz):0:-1: ++%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg: +0x0p0:0:-1: ++# BZ12701 %*5Lg: +0x0p0:0:-1: ++# BZ12701 %5Lg: +0x0p+0:0:-1: ++# BZ12701 %*5Lg: +0x0p+0:0:-1: ++# BZ12701 %5Lg: +0x8p-972:0:-1: ++# BZ12701 %*5Lg: +0x8p-972:0:-1: ++%5Lg: +0x2.3456789abcdef0123456789abcp0123:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef0123456789abcp0123:0:6: ++%5Lg: +0x2.3456789abcdef0123456789abcp+123:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef0123456789abcp+123:0:6: ++%5Lg: +0x7.ffffffffffffdffffffffffffep1021:1:6:0x1.cp2: ++%*5Lg: +0x7.ffffffffffffdffffffffffffep1021:0:6: ++%5Lg: +0xf.ffffffffffffbffffffffffffcp+1020:1:6:0x1.ep3: ++%*5Lg: +0xf.ffffffffffffbffffffffffffcp+1020:0:6: ++%5Lg: +infinity:0:-1: ++%*5Lg: +infinity:0:-1: ++%50Lg: :0:-1: ++%*50Lg: :0:-1: ++%50Lg: -infinity:1:10:-inf: ++%*50Lg: -infinity:0:10: ++%50Lg: -0xf.ffffffffffffbffffffffffffcp+1020:1:38:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: -0xf.ffffffffffffbffffffffffffcp+1020:0:38: ++%50Lg: -0x7.ffffffffffffdffffffffffffep1021:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: -0x7.ffffffffffffdffffffffffffep1021:0:37: ++%50Lg: -0x2.3456789abcdef0123456789abcp+123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: -0x2.3456789abcdef0123456789abcp+123:0:37: ++%50Lg: -0x2.3456789abcdef0123456789abcp0123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: -0x2.3456789abcdef0123456789abcp0123:0:37: ++%50Lg: -0x8p-972:1:10:-0x1p-969: ++%*50Lg: -0x8p-972:0:10: ++%50Lg: -0x0p+0:1:8:-0x0: ++%*50Lg: -0x0p+0:0:8: ++%50Lg: -0x0p0:1:7:-0x0: ++%*50Lg: -0x0p0:0:7: ++%50Lg: -nan(09A_Zaz):1:14:-nan: ++%*50Lg: -nan(09A_Zaz):0:14: ++%50Lg: -nan():1:7:-nan: ++%*50Lg: -nan():0:7: ++%50Lg: nan():1:6:nan: ++%*50Lg: nan():0:6: ++%50Lg: nan(09A_Zaz):1:13:nan: ++%*50Lg: nan(09A_Zaz):0:13: ++%50Lg: 0x0p0:1:6:0x0: ++%*50Lg: 0x0p0:0:6: ++%50Lg: 0x0p+0:1:7:0x0: ++%*50Lg: 0x0p+0:0:7: ++%50Lg: 0x8p-972:1:9:0x1p-969: ++%*50Lg: 0x8p-972:0:9: ++%50Lg: 0x2.3456789abcdef0123456789abcp0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: 0x2.3456789abcdef0123456789abcp0123:0:36: ++%50Lg: 0x2.3456789abcdef0123456789abcp+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: 0x2.3456789abcdef0123456789abcp+123:0:36: ++%50Lg: 0x7.ffffffffffffdffffffffffffep1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: 0x7.ffffffffffffdffffffffffffep1021:0:36: ++%50Lg: 0xf.ffffffffffffbffffffffffffcp+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: 0xf.ffffffffffffbffffffffffffcp+1020:0:37: ++%50Lg: infinity:1:9:inf: ++%*50Lg: infinity:0:9: ++%50Lg: +nan():1:7:nan: ++%*50Lg: +nan():0:7: ++%50Lg: +nan(09A_Zaz):1:14:nan: ++%*50Lg: +nan(09A_Zaz):0:14: ++%50Lg: +0x0p0:1:7:0x0: ++%*50Lg: +0x0p0:0:7: ++%50Lg: +0x0p+0:1:8:0x0: ++%*50Lg: +0x0p+0:0:8: ++%50Lg: +0x8p-972:1:10:0x1p-969: ++%*50Lg: +0x8p-972:0:10: ++%50Lg: +0x2.3456789abcdef0123456789abcp0123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: +0x2.3456789abcdef0123456789abcp0123:0:37: ++%50Lg: +0x2.3456789abcdef0123456789abcp+123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50Lg: +0x2.3456789abcdef0123456789abcp+123:0:37: ++%50Lg: +0x7.ffffffffffffdffffffffffffep1021:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: +0x7.ffffffffffffdffffffffffffep1021:0:37: ++%50Lg: +0xf.ffffffffffffbffffffffffffcp+1020:1:38:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50Lg: +0xf.ffffffffffffbffffffffffffcp+1020:0:38: ++%50Lg: +infinity:1:10:inf: ++%*50Lg: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input +new file mode 100644 +index 0000000000000000..00e8a241e240fa13 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-128ibm/tst-scanf-format-ldouble-gg.input +@@ -0,0 +1,682 @@ ++%LG::0:-1: ++%*LG::0:-1: ++%LG:-INFINITY:1:9:-inf: ++%*LG:-INFINITY:0:9: ++%LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%LG:-0X8P-972:1:9:-0x1p-969: ++%*LG:-0X8P-972:0:9: ++%LG:-0X0P+0:1:7:-0x0: ++%*LG:-0X0P+0:0:7: ++%LG:-0X0P0:1:6:-0x0: ++%*LG:-0X0P0:0:6: ++%LG:-NAN(09A_Zaz):1:13:-nan: ++%*LG:-NAN(09A_Zaz):0:13: ++%LG:-NAN():1:6:-nan: ++%*LG:-NAN():0:6: ++%LG:NAN():1:5:nan: ++%*LG:NAN():0:5: ++%LG:NAN(09A_Zaz):1:12:nan: ++%*LG:NAN(09A_Zaz):0:12: ++%LG:0X0P0:1:5:0x0: ++%*LG:0X0P0:0:5: ++%LG:0X0P+0:1:6:0x0: ++%*LG:0X0P+0:0:6: ++%LG:0X8P-972:1:8:0x1p-969: ++%*LG:0X8P-972:0:8: ++%LG:0X2.3456789ABCDEF0123456789ABCP0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:0X2.3456789ABCDEF0123456789ABCP0123:0:35: ++%LG:0X2.3456789ABCDEF0123456789ABCP+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:0X2.3456789ABCDEF0123456789ABCP+123:0:35: ++%LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:35: ++%LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: ++%LG:INFINITY:1:8:inf: ++%*LG:INFINITY:0:8: ++%LG:+NAN():1:6:nan: ++%*LG:+NAN():0:6: ++%LG:+NAN(09A_Zaz):1:13:nan: ++%*LG:+NAN(09A_Zaz):0:13: ++%LG:+0X0P0:1:6:0x0: ++%*LG:+0X0P0:0:6: ++%LG:+0X0P+0:1:7:0x0: ++%*LG:+0X0P+0:0:7: ++%LG:+0X8P-972:1:9:0x1p-969: ++%*LG:+0X8P-972:0:9: ++%LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%LG:+INFINITY:1:9:inf: ++%*LG:+INFINITY:0:9: ++%1LG::0:-1: ++%*1LG::0:-1: ++%1LG:-INFINITY:0:-1: ++%*1LG:-INFINITY:0:-1: ++%1LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%*1LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%1LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%*1LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%1LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%*1LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%1LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%*1LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%1LG:-0X8P-972:0:-1: ++%*1LG:-0X8P-972:0:-1: ++%1LG:-0X0P+0:0:-1: ++%*1LG:-0X0P+0:0:-1: ++%1LG:-0X0P0:0:-1: ++%*1LG:-0X0P0:0:-1: ++%1LG:-NAN(09A_Zaz):0:-1: ++%*1LG:-NAN(09A_Zaz):0:-1: ++%1LG:-NAN():0:-1: ++%*1LG:-NAN():0:-1: ++%1LG:NAN():0:-1: ++%*1LG:NAN():0:-1: ++%1LG:NAN(09A_Zaz):0:-1: ++%*1LG:NAN(09A_Zaz):0:-1: ++%1LG:0X0P0:1:1:0x0: ++%*1LG:0X0P0:0:1: ++%1LG:0X0P+0:1:1:0x0: ++%*1LG:0X0P+0:0:1: ++%1LG:0X8P-972:1:1:0x0: ++%*1LG:0X8P-972:0:1: ++%1LG:0X2.3456789ABCDEF0123456789ABCP0123:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF0123456789ABCP0123:0:1: ++%1LG:0X2.3456789ABCDEF0123456789ABCP+123:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF0123456789ABCP+123:0:1: ++%1LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:1:0x0: ++%*1LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:1: ++%1LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:1:0x0: ++%*1LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:1: ++%1LG:INFINITY:0:-1: ++%*1LG:INFINITY:0:-1: ++%1LG:+NAN():0:-1: ++%*1LG:+NAN():0:-1: ++%1LG:+NAN(09A_Zaz):0:-1: ++%*1LG:+NAN(09A_Zaz):0:-1: ++%1LG:+0X0P0:0:-1: ++%*1LG:+0X0P0:0:-1: ++%1LG:+0X0P+0:0:-1: ++%*1LG:+0X0P+0:0:-1: ++%1LG:+0X8P-972:0:-1: ++%*1LG:+0X8P-972:0:-1: ++%1LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%*1LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++%1LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%*1LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%1LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%*1LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++%1LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%*1LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%1LG:+INFINITY:0:-1: ++%*1LG:+INFINITY:0:-1: ++%2LG::0:-1: ++%*2LG::0:-1: ++%2LG:-INFINITY:0:-1: ++%*2LG:-INFINITY:0:-1: ++%2LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:2:-0x0: ++%*2LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:2: ++%2LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:2:-0x0: ++%*2LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:2: ++%2LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:2: ++%2LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:2: ++%2LG:-0X8P-972:1:2:-0x0: ++%*2LG:-0X8P-972:0:2: ++%2LG:-0X0P+0:1:2:-0x0: ++%*2LG:-0X0P+0:0:2: ++%2LG:-0X0P0:1:2:-0x0: ++%*2LG:-0X0P0:0:2: ++%2LG:-NAN(09A_Zaz):0:-1: ++%*2LG:-NAN(09A_Zaz):0:-1: ++%2LG:-NAN():0:-1: ++%*2LG:-NAN():0:-1: ++%2LG:NAN():0:-1: ++%*2LG:NAN():0:-1: ++%2LG:NAN(09A_Zaz):0:-1: ++%*2LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LG:0X0P0:0:-1: ++# BZ12701 %*2LG:0X0P0:0:-1: ++# BZ12701 %2LG:0X0P+0:0:-1: ++# BZ12701 %*2LG:0X0P+0:0:-1: ++# BZ12701 %2LG:0X8P-972:0:-1: ++# BZ12701 %*2LG:0X8P-972:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %2LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*2LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %2LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*2LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%2LG:INFINITY:0:-1: ++%*2LG:INFINITY:0:-1: ++%2LG:+NAN():0:-1: ++%*2LG:+NAN():0:-1: ++%2LG:+NAN(09A_Zaz):0:-1: ++%*2LG:+NAN(09A_Zaz):0:-1: ++%2LG:+0X0P0:1:2:0x0: ++%*2LG:+0X0P0:0:2: ++%2LG:+0X0P+0:1:2:0x0: ++%*2LG:+0X0P+0:0:2: ++%2LG:+0X8P-972:1:2:0x0: ++%*2LG:+0X8P-972:0:2: ++%2LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:2: ++%2LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:2: ++%2LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:2:0x0: ++%*2LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:2: ++%2LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:2:0x0: ++%*2LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:2: ++%2LG:+INFINITY:0:-1: ++%*2LG:+INFINITY:0:-1: ++%3LG::0:-1: ++%*3LG::0:-1: ++%3LG:-INFINITY:0:-1: ++%*3LG:-INFINITY:0:-1: ++# BZ12701 %3LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*3LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %3LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*3LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %3LG:-0X8P-972:0:-1: ++# BZ12701 %*3LG:-0X8P-972:0:-1: ++# BZ12701 %3LG:-0X0P+0:0:-1: ++# BZ12701 %*3LG:-0X0P+0:0:-1: ++# BZ12701 %3LG:-0X0P0:0:-1: ++# BZ12701 %*3LG:-0X0P0:0:-1: ++%3LG:-NAN(09A_Zaz):0:-1: ++%*3LG:-NAN(09A_Zaz):0:-1: ++%3LG:-NAN():0:-1: ++%*3LG:-NAN():0:-1: ++%3LG:NAN():1:3:nan: ++%*3LG:NAN():0:3: ++%3LG:NAN(09A_Zaz):1:3:nan: ++%*3LG:NAN(09A_Zaz):0:3: ++%3LG:0X0P0:1:3:0x0: ++%*3LG:0X0P0:0:3: ++%3LG:0X0P+0:1:3:0x0: ++%*3LG:0X0P+0:0:3: ++%3LG:0X8P-972:1:3:0x1p3: ++%*3LG:0X8P-972:0:3: ++%3LG:0X2.3456789ABCDEF0123456789ABCP0123:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF0123456789ABCP0123:0:3: ++%3LG:0X2.3456789ABCDEF0123456789ABCP+123:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF0123456789ABCP+123:0:3: ++%3LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:3:0x1.cp2: ++%*3LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:3: ++%3LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:3:0x1.ep3: ++%*3LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:3: ++%3LG:INFINITY:1:3:inf: ++%*3LG:INFINITY:0:3: ++%3LG:+NAN():0:-1: ++%*3LG:+NAN():0:-1: ++%3LG:+NAN(09A_Zaz):0:-1: ++%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LG:+0X0P0:0:-1: ++# BZ12701 %*3LG:+0X0P0:0:-1: ++# BZ12701 %3LG:+0X0P+0:0:-1: ++# BZ12701 %*3LG:+0X0P+0:0:-1: ++# BZ12701 %3LG:+0X8P-972:0:-1: ++# BZ12701 %*3LG:+0X8P-972:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %3LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %*3LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:-1: ++# BZ12701 %3LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*3LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%3LG:+INFINITY:0:-1: ++%*3LG:+INFINITY:0:-1: ++%4LG::0:-1: ++%*4LG::0:-1: ++%4LG:-INFINITY:1:4:-inf: ++%*4LG:-INFINITY:0:4: ++%4LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:-0x1.ep3: ++%*4LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:-0x1.cp2: ++%*4LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LG:-0X8P-972:1:4:-0x1p3: ++%*4LG:-0X8P-972:0:4: ++%4LG:-0X0P+0:1:4:-0x0: ++%*4LG:-0X0P+0:0:4: ++%4LG:-0X0P0:1:4:-0x0: ++%*4LG:-0X0P0:0:4: ++%4LG:-NAN(09A_Zaz):1:4:-nan: ++%*4LG:-NAN(09A_Zaz):0:4: ++%4LG:-NAN():1:4:-nan: ++%*4LG:-NAN():0:4: ++%4LG:NAN():0:-1: ++%*4LG:NAN():0:-1: ++%4LG:NAN(09A_Zaz):0:-1: ++%*4LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LG:0X0P0:0:-1: ++# BZ12701 %*4LG:0X0P0:0:-1: ++# BZ12701 %4LG:0X0P+0:0:-1: ++# BZ12701 %*4LG:0X0P+0:0:-1: ++# BZ12701 %4LG:0X8P-972:0:-1: ++# BZ12701 %*4LG:0X8P-972:0:-1: ++%4LG:0X2.3456789ABCDEF0123456789ABCP0123:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LG:0X2.3456789ABCDEF0123456789ABCP+123:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:0x1.cp2: ++%*4LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:0x1.ep3: ++%*4LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LG:INFINITY:0:-1: ++%*4LG:INFINITY:0:-1: ++%4LG:+NAN():1:4:nan: ++%*4LG:+NAN():0:4: ++%4LG:+NAN(09A_Zaz):1:4:nan: ++%*4LG:+NAN(09A_Zaz):0:4: ++%4LG:+0X0P0:1:4:0x0: ++%*4LG:+0X0P0:0:4: ++%4LG:+0X0P+0:1:4:0x0: ++%*4LG:+0X0P+0:0:4: ++%4LG:+0X8P-972:1:4:0x1p3: ++%*4LG:+0X8P-972:0:4: ++%4LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:4: ++%4LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:4: ++%4LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:4:0x1.cp2: ++%*4LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:4: ++%4LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:4:0x1.ep3: ++%*4LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:4: ++%4LG:+INFINITY:1:4:inf: ++%*4LG:+INFINITY:0:4: ++%5LG::0:-1: ++%*5LG::0:-1: ++%5LG:-INFINITY:0:-1: ++%*5LG:-INFINITY:0:-1: ++%5LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:-0x1.ep3: ++%*5LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:-0x1.cp2: ++%*5LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++# BZ12701 %5LG:-0X8P-972:0:-1: ++# BZ12701 %*5LG:-0X8P-972:0:-1: ++# BZ12701 %5LG:-0X0P+0:0:-1: ++# BZ12701 %*5LG:-0X0P+0:0:-1: ++# BZ12701 %5LG:-0X0P0:0:-1: ++# BZ12701 %*5LG:-0X0P0:0:-1: ++%5LG:-NAN(09A_Zaz):0:-1: ++%*5LG:-NAN(09A_Zaz):0:-1: ++%5LG:-NAN():0:-1: ++%*5LG:-NAN():0:-1: ++%5LG:NAN():1:5:nan: ++%*5LG:NAN():0:5: ++%5LG:NAN(09A_Zaz):0:-1: ++%*5LG:NAN(09A_Zaz):0:-1: ++%5LG:0X0P0:1:5:0x0: ++%*5LG:0X0P0:0:5: ++# BZ12701 %5LG:0X0P+0:0:-1: ++# BZ12701 %*5LG:0X0P+0:0:-1: ++# BZ12701 %5LG:0X8P-972:0:-1: ++# BZ12701 %*5LG:0X8P-972:0:-1: ++%5LG:0X2.3456789ABCDEF0123456789ABCP0123:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++%5LG:0X2.3456789ABCDEF0123456789ABCP+123:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:0x1.fcp2: ++%*5LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:0x1.fep3: ++%*5LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LG:INFINITY:0:-1: ++%*5LG:INFINITY:0:-1: ++%5LG:+NAN():0:-1: ++%*5LG:+NAN():0:-1: ++%5LG:+NAN(09A_Zaz):0:-1: ++%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG:+0X0P0:0:-1: ++# BZ12701 %*5LG:+0X0P0:0:-1: ++# BZ12701 %5LG:+0X0P+0:0:-1: ++# BZ12701 %*5LG:+0X0P+0:0:-1: ++# BZ12701 %5LG:+0X8P-972:0:-1: ++# BZ12701 %*5LG:+0X8P-972:0:-1: ++%5LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:5: ++%5LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:5: ++%5LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:5:0x1.cp2: ++%*5LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:5: ++%5LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:5:0x1.ep3: ++%*5LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:5: ++%5LG:+INFINITY:0:-1: ++%*5LG:+INFINITY:0:-1: ++%6LG::0:-1: ++%*6LG::0:-1: ++%6LG:-INFINITY:0:-1: ++%*6LG:-INFINITY:0:-1: ++%6LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:-0x1.fep3: ++%*6LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:-0x1.fcp2: ++%*6LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++# BZ12701 %6LG:-0X8P-972:0:-1: ++# BZ12701 %*6LG:-0X8P-972:0:-1: ++# BZ12701 %6LG:-0X0P+0:0:-1: ++# BZ12701 %*6LG:-0X0P+0:0:-1: ++%6LG:-0X0P0:1:6:-0x0: ++%*6LG:-0X0P0:0:6: ++%6LG:-NAN(09A_Zaz):0:-1: ++%*6LG:-NAN(09A_Zaz):0:-1: ++%6LG:-NAN():1:6:-nan: ++%*6LG:-NAN():0:6: ++%6LG:NAN():1:5:nan: ++%*6LG:NAN():0:5: ++%6LG:NAN(09A_Zaz):0:-1: ++%*6LG:NAN(09A_Zaz):0:-1: ++%6LG:0X0P0:1:5:0x0: ++%*6LG:0X0P0:0:5: ++%6LG:0X0P+0:1:6:0x0: ++%*6LG:0X0P+0:0:6: ++%6LG:0X8P-972:1:6:0x1p-6: ++%*6LG:0X8P-972:0:6: ++%6LG:0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%6LG:0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.ffcp2: ++%*6LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.ffep3: ++%*6LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LG:INFINITY:0:-1: ++%*6LG:INFINITY:0:-1: ++%6LG:+NAN():1:6:nan: ++%*6LG:+NAN():0:6: ++%6LG:+NAN(09A_Zaz):0:-1: ++%*6LG:+NAN(09A_Zaz):0:-1: ++%6LG:+0X0P0:1:6:0x0: ++%*6LG:+0X0P0:0:6: ++# BZ12701 %6LG:+0X0P+0:0:-1: ++# BZ12701 %*6LG:+0X0P+0:0:-1: ++# BZ12701 %6LG:+0X8P-972:0:-1: ++# BZ12701 %*6LG:+0X8P-972:0:-1: ++%6LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%6LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%6LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.fcp2: ++%*6LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%6LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.fep3: ++%*6LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%6LG:+INFINITY:0:-1: ++%*6LG:+INFINITY:0:-1: ++%33LG::0:-1: ++%*33LG::0:-1: ++%33LG:-INFINITY:1:9:-inf: ++%*33LG:-INFINITY:0:9: ++# BZ12701 %33LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*33LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%33LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:-0x1.fffffffffffff7ffffffffffff8p3: ++%*33LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++# BZ12701 %33LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*33LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%33LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:33:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++%33LG:-0X8P-972:1:9:-0x1p-969: ++%*33LG:-0X8P-972:0:9: ++%33LG:-0X0P+0:1:7:-0x0: ++%*33LG:-0X0P+0:0:7: ++%33LG:-0X0P0:1:6:-0x0: ++%*33LG:-0X0P0:0:6: ++%33LG:-NAN(09A_Zaz):1:13:-nan: ++%*33LG:-NAN(09A_Zaz):0:13: ++%33LG:-NAN():1:6:-nan: ++%*33LG:-NAN():0:6: ++%33LG:NAN():1:5:nan: ++%*33LG:NAN():0:5: ++%33LG:NAN(09A_Zaz):1:12:nan: ++%*33LG:NAN(09A_Zaz):0:12: ++%33LG:0X0P0:1:5:0x0: ++%*33LG:0X0P0:0:5: ++%33LG:0X0P+0:1:6:0x0: ++%*33LG:0X0P+0:0:6: ++%33LG:0X8P-972:1:8:0x1p-969: ++%*33LG:0X8P-972:0:8: ++%33LG:0X2.3456789ABCDEF0123456789ABCP0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33LG:0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++%33LG:0X2.3456789ABCDEF0123456789ABCP+123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep2: ++%*33LG:0X2.3456789ABCDEF0123456789ABCP+123:0:33: ++%33LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:0x1.fffffffffffff7ffffffffffff8p12: ++%*33LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++%33LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:33:0x1.fffffffffffff7ffffffffffff8p4: ++%*33LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:33: ++%33LG:INFINITY:1:8:inf: ++%*33LG:INFINITY:0:8: ++%33LG:+NAN():1:6:nan: ++%*33LG:+NAN():0:6: ++%33LG:+NAN(09A_Zaz):1:13:nan: ++%*33LG:+NAN(09A_Zaz):0:13: ++%33LG:+0X0P0:1:6:0x0: ++%*33LG:+0X0P0:0:6: ++%33LG:+0X0P+0:1:7:0x0: ++%*33LG:+0X0P+0:0:7: ++%33LG:+0X8P-972:1:9:0x1p-969: ++%*33LG:+0X8P-972:0:9: ++%33LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:33:0x1.1a2b3c4d5e6f78091a2b3c4d5ep1: ++%*33LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:33: ++# BZ12701 %33LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++# BZ12701 %*33LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:-1: ++%33LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:33:0x1.fffffffffffff7ffffffffffff8p3: ++%*33LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:33: ++# BZ12701 %33LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++# BZ12701 %*33LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:-1: ++%33LG:+INFINITY:1:9:inf: ++%*33LG:+INFINITY:0:9: ++%50LG::0:-1: ++%*50LG::0:-1: ++%50LG:-INFINITY:1:9:-inf: ++%*50LG:-INFINITY:0:9: ++%50LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:-0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:-0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LG:-0X2.3456789ABCDEF0123456789ABCP+123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:-0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LG:-0X2.3456789ABCDEF0123456789ABCP0123:1:36:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:-0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LG:-0X8P-972:1:9:-0x1p-969: ++%*50LG:-0X8P-972:0:9: ++%50LG:-0X0P+0:1:7:-0x0: ++%*50LG:-0X0P+0:0:7: ++%50LG:-0X0P0:1:6:-0x0: ++%*50LG:-0X0P0:0:6: ++%50LG:-NAN(09A_Zaz):1:13:-nan: ++%*50LG:-NAN(09A_Zaz):0:13: ++%50LG:-NAN():1:6:-nan: ++%*50LG:-NAN():0:6: ++%50LG:NAN():1:5:nan: ++%*50LG:NAN():0:5: ++%50LG:NAN(09A_Zaz):1:12:nan: ++%*50LG:NAN(09A_Zaz):0:12: ++%50LG:0X0P0:1:5:0x0: ++%*50LG:0X0P0:0:5: ++%50LG:0X0P+0:1:6:0x0: ++%*50LG:0X0P+0:0:6: ++%50LG:0X8P-972:1:8:0x1p-969: ++%*50LG:0X8P-972:0:8: ++%50LG:0X2.3456789ABCDEF0123456789ABCP0123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:0X2.3456789ABCDEF0123456789ABCP0123:0:35: ++%50LG:0X2.3456789ABCDEF0123456789ABCP+123:1:35:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:0X2.3456789ABCDEF0123456789ABCP+123:0:35: ++%50LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:35:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:35: ++%50LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:36: ++%50LG:INFINITY:1:8:inf: ++%*50LG:INFINITY:0:8: ++%50LG:+NAN():1:6:nan: ++%*50LG:+NAN():0:6: ++%50LG:+NAN(09A_Zaz):1:13:nan: ++%*50LG:+NAN(09A_Zaz):0:13: ++%50LG:+0X0P0:1:6:0x0: ++%*50LG:+0X0P0:0:6: ++%50LG:+0X0P+0:1:7:0x0: ++%*50LG:+0X0P+0:0:7: ++%50LG:+0X8P-972:1:9:0x1p-969: ++%*50LG:+0X8P-972:0:9: ++%50LG:+0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:+0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LG:+0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG:+0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:+0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG:+0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LG:+INFINITY:1:9:inf: ++%*50LG:+INFINITY:0:9: ++%5LG: :0:-1: ++%*5LG: :0:-1: ++%5LG: -INFINITY:0:-1: ++%*5LG: -INFINITY:0:-1: ++%5LG: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:-0x1.ep3: ++%*5LG: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LG: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:-0x1.cp2: ++%*5LG: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LG: -0X2.3456789ABCDEF0123456789ABCP+123:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LG: -0X2.3456789ABCDEF0123456789ABCP0123:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++# BZ12701 %5LG: -0X8P-972:0:-1: ++# BZ12701 %*5LG: -0X8P-972:0:-1: ++# BZ12701 %5LG: -0X0P+0:0:-1: ++# BZ12701 %*5LG: -0X0P+0:0:-1: ++# BZ12701 %5LG: -0X0P0:0:-1: ++# BZ12701 %*5LG: -0X0P0:0:-1: ++%5LG: -NAN(09A_Zaz):0:-1: ++%*5LG: -NAN(09A_Zaz):0:-1: ++%5LG: -NAN():0:-1: ++%*5LG: -NAN():0:-1: ++%5LG: NAN():1:6:nan: ++%*5LG: NAN():0:6: ++%5LG: NAN(09A_Zaz):0:-1: ++%*5LG: NAN(09A_Zaz):0:-1: ++%5LG: 0X0P0:1:6:0x0: ++%*5LG: 0X0P0:0:6: ++# BZ12701 %5LG: 0X0P+0:0:-1: ++# BZ12701 %*5LG: 0X0P+0:0:-1: ++# BZ12701 %5LG: 0X8P-972:0:-1: ++# BZ12701 %*5LG: 0X8P-972:0:-1: ++%5LG: 0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%5LG: 0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LG: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.fcp2: ++%*5LG: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.fep3: ++%*5LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LG: INFINITY:0:-1: ++%*5LG: INFINITY:0:-1: ++%5LG: +NAN():0:-1: ++%*5LG: +NAN():0:-1: ++%5LG: +NAN(09A_Zaz):0:-1: ++%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG: +0X0P0:0:-1: ++# BZ12701 %*5LG: +0X0P0:0:-1: ++# BZ12701 %5LG: +0X0P+0:0:-1: ++# BZ12701 %*5LG: +0X0P+0:0:-1: ++# BZ12701 %5LG: +0X8P-972:0:-1: ++# BZ12701 %*5LG: +0X8P-972:0:-1: ++%5LG: +0X2.3456789ABCDEF0123456789ABCP0123:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF0123456789ABCP0123:0:6: ++%5LG: +0X2.3456789ABCDEF0123456789ABCP+123:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF0123456789ABCP+123:0:6: ++%5LG: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:6:0x1.cp2: ++%*5LG: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:6: ++%5LG: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:6:0x1.ep3: ++%*5LG: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:6: ++%5LG: +INFINITY:0:-1: ++%*5LG: +INFINITY:0:-1: ++%50LG: :0:-1: ++%*50LG: :0:-1: ++%50LG: -INFINITY:1:10:-inf: ++%*50LG: -INFINITY:0:10: ++%50LG: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:38:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: -0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:38: ++%50LG: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:37:-0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: -0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:37: ++%50LG: -0X2.3456789ABCDEF0123456789ABCP+123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: -0X2.3456789ABCDEF0123456789ABCP+123:0:37: ++%50LG: -0X2.3456789ABCDEF0123456789ABCP0123:1:37:-0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: -0X2.3456789ABCDEF0123456789ABCP0123:0:37: ++%50LG: -0X8P-972:1:10:-0x1p-969: ++%*50LG: -0X8P-972:0:10: ++%50LG: -0X0P+0:1:8:-0x0: ++%*50LG: -0X0P+0:0:8: ++%50LG: -0X0P0:1:7:-0x0: ++%*50LG: -0X0P0:0:7: ++%50LG: -NAN(09A_Zaz):1:14:-nan: ++%*50LG: -NAN(09A_Zaz):0:14: ++%50LG: -NAN():1:7:-nan: ++%*50LG: -NAN():0:7: ++%50LG: NAN():1:6:nan: ++%*50LG: NAN():0:6: ++%50LG: NAN(09A_Zaz):1:13:nan: ++%*50LG: NAN(09A_Zaz):0:13: ++%50LG: 0X0P0:1:6:0x0: ++%*50LG: 0X0P0:0:6: ++%50LG: 0X0P+0:1:7:0x0: ++%*50LG: 0X0P+0:0:7: ++%50LG: 0X8P-972:1:9:0x1p-969: ++%*50LG: 0X8P-972:0:9: ++%50LG: 0X2.3456789ABCDEF0123456789ABCP0123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: 0X2.3456789ABCDEF0123456789ABCP0123:0:36: ++%50LG: 0X2.3456789ABCDEF0123456789ABCP+123:1:36:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: 0X2.3456789ABCDEF0123456789ABCP+123:0:36: ++%50LG: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:36:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: 0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:36: ++%50LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: 0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:37: ++%50LG: INFINITY:1:9:inf: ++%*50LG: INFINITY:0:9: ++%50LG: +NAN():1:7:nan: ++%*50LG: +NAN():0:7: ++%50LG: +NAN(09A_Zaz):1:14:nan: ++%*50LG: +NAN(09A_Zaz):0:14: ++%50LG: +0X0P0:1:7:0x0: ++%*50LG: +0X0P0:0:7: ++%50LG: +0X0P+0:1:8:0x0: ++%*50LG: +0X0P+0:0:8: ++%50LG: +0X8P-972:1:10:0x1p-969: ++%*50LG: +0X8P-972:0:10: ++%50LG: +0X2.3456789ABCDEF0123456789ABCP0123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: +0X2.3456789ABCDEF0123456789ABCP0123:0:37: ++%50LG: +0X2.3456789ABCDEF0123456789ABCP+123:1:37:0x1.1a2b3c4d5e6f78091a2b3c4d5ep124: ++%*50LG: +0X2.3456789ABCDEF0123456789ABCP+123:0:37: ++%50LG: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:1:37:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: +0X7.FFFFFFFFFFFFDFFFFFFFFFFFFEP1021:0:37: ++%50LG: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:1:38:0x1.fffffffffffff7ffffffffffff8p1023: ++%*50LG: +0XF.FFFFFFFFFFFFBFFFFFFFFFFFFCP+1020:0:38: ++%50LG: +INFINITY:1:10:inf: ++%*50LG: +INFINITY:0:10: diff --git a/glibc-RHEL-119433-9.patch b/glibc-RHEL-119433-9.patch new file mode 100644 index 0000000..4101173 --- /dev/null +++ b/glibc-RHEL-119433-9.patch @@ -0,0 +1,4953 @@ +commit d527f34cb1d487a4788fe88278a9ad832c53c3ee +Author: Maciej W. Rozycki +Date: Fri Mar 28 12:35:52 2025 +0000 + + stdio-common: Add scanf long double data for Intel/Motorola 80-bit format + + Add Makefile infrastructure, a format-specific test skeleton providing a + data comparison implementation that ignores bits of data representation + in memory that do not participate in holding floating-point data, and + `long double' real input data for targets using the Intel/Motorola + 80-bit format. + + Keep input data disabled and referring to BZ #12701 for entries that are + are currently incorrectly accepted as valid data, such as '0e', '0e+', + '0x', '0x8p', '0x0p-', etc. + + Reviewed-by: Joseph Myers + +diff --git a/sysdeps/ieee754/ldbl-96/Makefile b/sysdeps/ieee754/ldbl-96/Makefile +index 170e77b2f9fe6095..d3dd3ed73fb3972f 100644 +--- a/sysdeps/ieee754/ldbl-96/Makefile ++++ b/sysdeps/ieee754/ldbl-96/Makefile +@@ -148,3 +148,7 @@ CFLAGS-s_y1l.c += -fno-builtin-y1f64x + CFLAGS-s_ynl.c += -fno-builtin-ynf64x + + endif # $(subdir) == math ++ ++ifeq ($(subdir),stdio-common) ++fmt-xscanf-real-convs += ldouble ++endif +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input +new file mode 100644 +index 0000000000000000..0ed781ea87fb4b4a +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-a.input +@@ -0,0 +1,682 @@ ++%La::0:-1: ++%*La::0:-1: ++%La:-infinity:1:9:-inf: ++%*La:-infinity:0:9: ++%La:-0xf.fffffffffffffffp+16380:1:27:-0x1.fffffffffffffffep16383: ++%*La:-0xf.fffffffffffffffp+16380:0:27: ++%La:-0x7.fffffffffffffff8p16381:1:27:-0x1.fffffffffffffffep16383: ++%*La:-0x7.fffffffffffffff8p16381:0:27: ++%La:-0x2.3456789abcdef01p+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*La:-0x2.3456789abcdef01p+12345:0:27: ++%La:-0x2.3456789abcdef01p012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*La:-0x2.3456789abcdef01p012345:0:27: ++%La:-0x8p-16385:1:11:-0x1p-16382: ++%*La:-0x8p-16385:0:11: ++%La:-0x0p+0:1:7:-0x0: ++%*La:-0x0p+0:0:7: ++%La:-0x0p0:1:6:-0x0: ++%*La:-0x0p0:0:6: ++%La:-nan(09A_Zaz):1:13:-nan: ++%*La:-nan(09A_Zaz):0:13: ++%La:-nan():1:6:-nan: ++%*La:-nan():0:6: ++%La:nan():1:5:nan: ++%*La:nan():0:5: ++%La:nan(09A_Zaz):1:12:nan: ++%*La:nan(09A_Zaz):0:12: ++%La:0x0p0:1:5:0x0: ++%*La:0x0p0:0:5: ++%La:0x0p+0:1:6:0x0: ++%*La:0x0p+0:0:6: ++%La:0x8p-16385:1:10:0x1p-16382: ++%*La:0x8p-16385:0:10: ++%La:0x2.3456789abcdef01p012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*La:0x2.3456789abcdef01p012345:0:26: ++%La:0x2.3456789abcdef01p+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*La:0x2.3456789abcdef01p+12345:0:26: ++%La:0x7.fffffffffffffff8p16381:1:26:0x1.fffffffffffffffep16383: ++%*La:0x7.fffffffffffffff8p16381:0:26: ++%La:0xf.fffffffffffffffp+16380:1:26:0x1.fffffffffffffffep16383: ++%*La:0xf.fffffffffffffffp+16380:0:26: ++%La:infinity:1:8:inf: ++%*La:infinity:0:8: ++%La:+nan():1:6:nan: ++%*La:+nan():0:6: ++%La:+nan(09A_Zaz):1:13:nan: ++%*La:+nan(09A_Zaz):0:13: ++%La:+0x0p0:1:6:0x0: ++%*La:+0x0p0:0:6: ++%La:+0x0p+0:1:7:0x0: ++%*La:+0x0p+0:0:7: ++%La:+0x8p-16385:1:11:0x1p-16382: ++%*La:+0x8p-16385:0:11: ++%La:+0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*La:+0x2.3456789abcdef01p012345:0:27: ++%La:+0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*La:+0x2.3456789abcdef01p+12345:0:27: ++%La:+0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*La:+0x7.fffffffffffffff8p16381:0:27: ++%La:+0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*La:+0xf.fffffffffffffffp+16380:0:27: ++%La:+infinity:1:9:inf: ++%*La:+infinity:0:9: ++%1La::0:-1: ++%*1La::0:-1: ++%1La:-infinity:0:-1: ++%*1La:-infinity:0:-1: ++%1La:-0xf.fffffffffffffffp+16380:0:-1: ++%*1La:-0xf.fffffffffffffffp+16380:0:-1: ++%1La:-0x7.fffffffffffffff8p16381:0:-1: ++%*1La:-0x7.fffffffffffffff8p16381:0:-1: ++%1La:-0x2.3456789abcdef01p+12345:0:-1: ++%*1La:-0x2.3456789abcdef01p+12345:0:-1: ++%1La:-0x2.3456789abcdef01p012345:0:-1: ++%*1La:-0x2.3456789abcdef01p012345:0:-1: ++%1La:-0x8p-16385:0:-1: ++%*1La:-0x8p-16385:0:-1: ++%1La:-0x0p+0:0:-1: ++%*1La:-0x0p+0:0:-1: ++%1La:-0x0p0:0:-1: ++%*1La:-0x0p0:0:-1: ++%1La:-nan(09A_Zaz):0:-1: ++%*1La:-nan(09A_Zaz):0:-1: ++%1La:-nan():0:-1: ++%*1La:-nan():0:-1: ++%1La:nan():0:-1: ++%*1La:nan():0:-1: ++%1La:nan(09A_Zaz):0:-1: ++%*1La:nan(09A_Zaz):0:-1: ++%1La:0x0p0:1:1:0x0: ++%*1La:0x0p0:0:1: ++%1La:0x0p+0:1:1:0x0: ++%*1La:0x0p+0:0:1: ++%1La:0x8p-16385:1:1:0x0: ++%*1La:0x8p-16385:0:1: ++%1La:0x2.3456789abcdef01p012345:1:1:0x0: ++%*1La:0x2.3456789abcdef01p012345:0:1: ++%1La:0x2.3456789abcdef01p+12345:1:1:0x0: ++%*1La:0x2.3456789abcdef01p+12345:0:1: ++%1La:0x7.fffffffffffffff8p16381:1:1:0x0: ++%*1La:0x7.fffffffffffffff8p16381:0:1: ++%1La:0xf.fffffffffffffffp+16380:1:1:0x0: ++%*1La:0xf.fffffffffffffffp+16380:0:1: ++%1La:infinity:0:-1: ++%*1La:infinity:0:-1: ++%1La:+nan():0:-1: ++%*1La:+nan():0:-1: ++%1La:+nan(09A_Zaz):0:-1: ++%*1La:+nan(09A_Zaz):0:-1: ++%1La:+0x0p0:0:-1: ++%*1La:+0x0p0:0:-1: ++%1La:+0x0p+0:0:-1: ++%*1La:+0x0p+0:0:-1: ++%1La:+0x8p-16385:0:-1: ++%*1La:+0x8p-16385:0:-1: ++%1La:+0x2.3456789abcdef01p012345:0:-1: ++%*1La:+0x2.3456789abcdef01p012345:0:-1: ++%1La:+0x2.3456789abcdef01p+12345:0:-1: ++%*1La:+0x2.3456789abcdef01p+12345:0:-1: ++%1La:+0x7.fffffffffffffff8p16381:0:-1: ++%*1La:+0x7.fffffffffffffff8p16381:0:-1: ++%1La:+0xf.fffffffffffffffp+16380:0:-1: ++%*1La:+0xf.fffffffffffffffp+16380:0:-1: ++%1La:+infinity:0:-1: ++%*1La:+infinity:0:-1: ++%2La::0:-1: ++%*2La::0:-1: ++%2La:-infinity:0:-1: ++%*2La:-infinity:0:-1: ++%2La:-0xf.fffffffffffffffp+16380:1:2:-0x0: ++%*2La:-0xf.fffffffffffffffp+16380:0:2: ++%2La:-0x7.fffffffffffffff8p16381:1:2:-0x0: ++%*2La:-0x7.fffffffffffffff8p16381:0:2: ++%2La:-0x2.3456789abcdef01p+12345:1:2:-0x0: ++%*2La:-0x2.3456789abcdef01p+12345:0:2: ++%2La:-0x2.3456789abcdef01p012345:1:2:-0x0: ++%*2La:-0x2.3456789abcdef01p012345:0:2: ++%2La:-0x8p-16385:1:2:-0x0: ++%*2La:-0x8p-16385:0:2: ++%2La:-0x0p+0:1:2:-0x0: ++%*2La:-0x0p+0:0:2: ++%2La:-0x0p0:1:2:-0x0: ++%*2La:-0x0p0:0:2: ++%2La:-nan(09A_Zaz):0:-1: ++%*2La:-nan(09A_Zaz):0:-1: ++%2La:-nan():0:-1: ++%*2La:-nan():0:-1: ++%2La:nan():0:-1: ++%*2La:nan():0:-1: ++%2La:nan(09A_Zaz):0:-1: ++%*2La:nan(09A_Zaz):0:-1: ++# BZ12701 %2La:0x0p0:0:-1: ++# BZ12701 %*2La:0x0p0:0:-1: ++# BZ12701 %2La:0x0p+0:0:-1: ++# BZ12701 %*2La:0x0p+0:0:-1: ++# BZ12701 %2La:0x8p-16385:0:-1: ++# BZ12701 %*2La:0x8p-16385:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %2La:0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*2La:0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %2La:0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*2La:0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %2La:0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*2La:0xf.fffffffffffffffp+16380:0:-1: ++%2La:infinity:0:-1: ++%*2La:infinity:0:-1: ++%2La:+nan():0:-1: ++%*2La:+nan():0:-1: ++%2La:+nan(09A_Zaz):0:-1: ++%*2La:+nan(09A_Zaz):0:-1: ++%2La:+0x0p0:1:2:0x0: ++%*2La:+0x0p0:0:2: ++%2La:+0x0p+0:1:2:0x0: ++%*2La:+0x0p+0:0:2: ++%2La:+0x8p-16385:1:2:0x0: ++%*2La:+0x8p-16385:0:2: ++%2La:+0x2.3456789abcdef01p012345:1:2:0x0: ++%*2La:+0x2.3456789abcdef01p012345:0:2: ++%2La:+0x2.3456789abcdef01p+12345:1:2:0x0: ++%*2La:+0x2.3456789abcdef01p+12345:0:2: ++%2La:+0x7.fffffffffffffff8p16381:1:2:0x0: ++%*2La:+0x7.fffffffffffffff8p16381:0:2: ++%2La:+0xf.fffffffffffffffp+16380:1:2:0x0: ++%*2La:+0xf.fffffffffffffffp+16380:0:2: ++%2La:+infinity:0:-1: ++%*2La:+infinity:0:-1: ++%3La::0:-1: ++%*3La::0:-1: ++%3La:-infinity:0:-1: ++%*3La:-infinity:0:-1: ++# BZ12701 %3La:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*3La:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %3La:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*3La:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %3La:-0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*3La:-0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %3La:-0x8p-16385:0:-1: ++# BZ12701 %*3La:-0x8p-16385:0:-1: ++# BZ12701 %3La:-0x0p+0:0:-1: ++# BZ12701 %*3La:-0x0p+0:0:-1: ++# BZ12701 %3La:-0x0p0:0:-1: ++# BZ12701 %*3La:-0x0p0:0:-1: ++%3La:-nan(09A_Zaz):0:-1: ++%*3La:-nan(09A_Zaz):0:-1: ++%3La:-nan():0:-1: ++%*3La:-nan():0:-1: ++%3La:nan():1:3:nan: ++%*3La:nan():0:3: ++%3La:nan(09A_Zaz):1:3:nan: ++%*3La:nan(09A_Zaz):0:3: ++%3La:0x0p0:1:3:0x0: ++%*3La:0x0p0:0:3: ++%3La:0x0p+0:1:3:0x0: ++%*3La:0x0p+0:0:3: ++%3La:0x8p-16385:1:3:0x1p3: ++%*3La:0x8p-16385:0:3: ++%3La:0x2.3456789abcdef01p012345:1:3:0x1p1: ++%*3La:0x2.3456789abcdef01p012345:0:3: ++%3La:0x2.3456789abcdef01p+12345:1:3:0x1p1: ++%*3La:0x2.3456789abcdef01p+12345:0:3: ++%3La:0x7.fffffffffffffff8p16381:1:3:0x1.cp2: ++%*3La:0x7.fffffffffffffff8p16381:0:3: ++%3La:0xf.fffffffffffffffp+16380:1:3:0x1.ep3: ++%*3La:0xf.fffffffffffffffp+16380:0:3: ++%3La:infinity:1:3:inf: ++%*3La:infinity:0:3: ++%3La:+nan():0:-1: ++%*3La:+nan():0:-1: ++%3La:+nan(09A_Zaz):0:-1: ++%*3La:+nan(09A_Zaz):0:-1: ++# BZ12701 %3La:+0x0p0:0:-1: ++# BZ12701 %*3La:+0x0p0:0:-1: ++# BZ12701 %3La:+0x0p+0:0:-1: ++# BZ12701 %*3La:+0x0p+0:0:-1: ++# BZ12701 %3La:+0x8p-16385:0:-1: ++# BZ12701 %*3La:+0x8p-16385:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %3La:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*3La:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %3La:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*3La:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %3La:+0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*3La:+0xf.fffffffffffffffp+16380:0:-1: ++%3La:+infinity:0:-1: ++%*3La:+infinity:0:-1: ++%4La::0:-1: ++%*4La::0:-1: ++%4La:-infinity:1:4:-inf: ++%*4La:-infinity:0:4: ++%4La:-0xf.fffffffffffffffp+16380:1:4:-0x1.ep3: ++%*4La:-0xf.fffffffffffffffp+16380:0:4: ++%4La:-0x7.fffffffffffffff8p16381:1:4:-0x1.cp2: ++%*4La:-0x7.fffffffffffffff8p16381:0:4: ++%4La:-0x2.3456789abcdef01p+12345:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef01p+12345:0:4: ++%4La:-0x2.3456789abcdef01p012345:1:4:-0x1p1: ++%*4La:-0x2.3456789abcdef01p012345:0:4: ++%4La:-0x8p-16385:1:4:-0x1p3: ++%*4La:-0x8p-16385:0:4: ++%4La:-0x0p+0:1:4:-0x0: ++%*4La:-0x0p+0:0:4: ++%4La:-0x0p0:1:4:-0x0: ++%*4La:-0x0p0:0:4: ++%4La:-nan(09A_Zaz):1:4:-nan: ++%*4La:-nan(09A_Zaz):0:4: ++%4La:-nan():1:4:-nan: ++%*4La:-nan():0:4: ++%4La:nan():0:-1: ++%*4La:nan():0:-1: ++%4La:nan(09A_Zaz):0:-1: ++%*4La:nan(09A_Zaz):0:-1: ++# BZ12701 %4La:0x0p0:0:-1: ++# BZ12701 %*4La:0x0p0:0:-1: ++# BZ12701 %4La:0x0p+0:0:-1: ++# BZ12701 %*4La:0x0p+0:0:-1: ++# BZ12701 %4La:0x8p-16385:0:-1: ++# BZ12701 %*4La:0x8p-16385:0:-1: ++%4La:0x2.3456789abcdef01p012345:1:4:0x1p1: ++%*4La:0x2.3456789abcdef01p012345:0:4: ++%4La:0x2.3456789abcdef01p+12345:1:4:0x1p1: ++%*4La:0x2.3456789abcdef01p+12345:0:4: ++%4La:0x7.fffffffffffffff8p16381:1:4:0x1.cp2: ++%*4La:0x7.fffffffffffffff8p16381:0:4: ++%4La:0xf.fffffffffffffffp+16380:1:4:0x1.ep3: ++%*4La:0xf.fffffffffffffffp+16380:0:4: ++%4La:infinity:0:-1: ++%*4La:infinity:0:-1: ++%4La:+nan():1:4:nan: ++%*4La:+nan():0:4: ++%4La:+nan(09A_Zaz):1:4:nan: ++%*4La:+nan(09A_Zaz):0:4: ++%4La:+0x0p0:1:4:0x0: ++%*4La:+0x0p0:0:4: ++%4La:+0x0p+0:1:4:0x0: ++%*4La:+0x0p+0:0:4: ++%4La:+0x8p-16385:1:4:0x1p3: ++%*4La:+0x8p-16385:0:4: ++%4La:+0x2.3456789abcdef01p012345:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef01p012345:0:4: ++%4La:+0x2.3456789abcdef01p+12345:1:4:0x1p1: ++%*4La:+0x2.3456789abcdef01p+12345:0:4: ++%4La:+0x7.fffffffffffffff8p16381:1:4:0x1.cp2: ++%*4La:+0x7.fffffffffffffff8p16381:0:4: ++%4La:+0xf.fffffffffffffffp+16380:1:4:0x1.ep3: ++%*4La:+0xf.fffffffffffffffp+16380:0:4: ++%4La:+infinity:1:4:inf: ++%*4La:+infinity:0:4: ++%5La::0:-1: ++%*5La::0:-1: ++%5La:-infinity:0:-1: ++%*5La:-infinity:0:-1: ++%5La:-0xf.fffffffffffffffp+16380:1:5:-0x1.ep3: ++%*5La:-0xf.fffffffffffffffp+16380:0:5: ++%5La:-0x7.fffffffffffffff8p16381:1:5:-0x1.cp2: ++%*5La:-0x7.fffffffffffffff8p16381:0:5: ++%5La:-0x2.3456789abcdef01p+12345:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef01p+12345:0:5: ++%5La:-0x2.3456789abcdef01p012345:1:5:-0x1p1: ++%*5La:-0x2.3456789abcdef01p012345:0:5: ++# BZ12701 %5La:-0x8p-16385:0:-1: ++# BZ12701 %*5La:-0x8p-16385:0:-1: ++# BZ12701 %5La:-0x0p+0:0:-1: ++# BZ12701 %*5La:-0x0p+0:0:-1: ++# BZ12701 %5La:-0x0p0:0:-1: ++# BZ12701 %*5La:-0x0p0:0:-1: ++%5La:-nan(09A_Zaz):0:-1: ++%*5La:-nan(09A_Zaz):0:-1: ++%5La:-nan():0:-1: ++%*5La:-nan():0:-1: ++%5La:nan():1:5:nan: ++%*5La:nan():0:5: ++%5La:nan(09A_Zaz):0:-1: ++%*5La:nan(09A_Zaz):0:-1: ++%5La:0x0p0:1:5:0x0: ++%*5La:0x0p0:0:5: ++# BZ12701 %5La:0x0p+0:0:-1: ++# BZ12701 %*5La:0x0p+0:0:-1: ++# BZ12701 %5La:0x8p-16385:0:-1: ++# BZ12701 %*5La:0x8p-16385:0:-1: ++%5La:0x2.3456789abcdef01p012345:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef01p012345:0:5: ++%5La:0x2.3456789abcdef01p+12345:1:5:0x1.18p1: ++%*5La:0x2.3456789abcdef01p+12345:0:5: ++%5La:0x7.fffffffffffffff8p16381:1:5:0x1.fcp2: ++%*5La:0x7.fffffffffffffff8p16381:0:5: ++%5La:0xf.fffffffffffffffp+16380:1:5:0x1.fep3: ++%*5La:0xf.fffffffffffffffp+16380:0:5: ++%5La:infinity:0:-1: ++%*5La:infinity:0:-1: ++%5La:+nan():0:-1: ++%*5La:+nan():0:-1: ++%5La:+nan(09A_Zaz):0:-1: ++%*5La:+nan(09A_Zaz):0:-1: ++# BZ12701 %5La:+0x0p0:0:-1: ++# BZ12701 %*5La:+0x0p0:0:-1: ++# BZ12701 %5La:+0x0p+0:0:-1: ++# BZ12701 %*5La:+0x0p+0:0:-1: ++# BZ12701 %5La:+0x8p-16385:0:-1: ++# BZ12701 %*5La:+0x8p-16385:0:-1: ++%5La:+0x2.3456789abcdef01p012345:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef01p012345:0:5: ++%5La:+0x2.3456789abcdef01p+12345:1:5:0x1p1: ++%*5La:+0x2.3456789abcdef01p+12345:0:5: ++%5La:+0x7.fffffffffffffff8p16381:1:5:0x1.cp2: ++%*5La:+0x7.fffffffffffffff8p16381:0:5: ++%5La:+0xf.fffffffffffffffp+16380:1:5:0x1.ep3: ++%*5La:+0xf.fffffffffffffffp+16380:0:5: ++%5La:+infinity:0:-1: ++%*5La:+infinity:0:-1: ++%6La::0:-1: ++%*6La::0:-1: ++%6La:-infinity:0:-1: ++%*6La:-infinity:0:-1: ++%6La:-0xf.fffffffffffffffp+16380:1:6:-0x1.fep3: ++%*6La:-0xf.fffffffffffffffp+16380:0:6: ++%6La:-0x7.fffffffffffffff8p16381:1:6:-0x1.fcp2: ++%*6La:-0x7.fffffffffffffff8p16381:0:6: ++%6La:-0x2.3456789abcdef01p+12345:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef01p+12345:0:6: ++%6La:-0x2.3456789abcdef01p012345:1:6:-0x1.18p1: ++%*6La:-0x2.3456789abcdef01p012345:0:6: ++# BZ12701 %6La:-0x8p-16385:0:-1: ++# BZ12701 %*6La:-0x8p-16385:0:-1: ++# BZ12701 %6La:-0x0p+0:0:-1: ++# BZ12701 %*6La:-0x0p+0:0:-1: ++%6La:-0x0p0:1:6:-0x0: ++%*6La:-0x0p0:0:6: ++%6La:-nan(09A_Zaz):0:-1: ++%*6La:-nan(09A_Zaz):0:-1: ++%6La:-nan():1:6:-nan: ++%*6La:-nan():0:6: ++%6La:nan():1:5:nan: ++%*6La:nan():0:5: ++%6La:nan(09A_Zaz):0:-1: ++%*6La:nan(09A_Zaz):0:-1: ++%6La:0x0p0:1:5:0x0: ++%*6La:0x0p0:0:5: ++%6La:0x0p+0:1:6:0x0: ++%*6La:0x0p+0:0:6: ++%6La:0x8p-16385:1:6:0x1p2: ++%*6La:0x8p-16385:0:6: ++%6La:0x2.3456789abcdef01p012345:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef01p012345:0:6: ++%6La:0x2.3456789abcdef01p+12345:1:6:0x1.1ap1: ++%*6La:0x2.3456789abcdef01p+12345:0:6: ++%6La:0x7.fffffffffffffff8p16381:1:6:0x1.ffcp2: ++%*6La:0x7.fffffffffffffff8p16381:0:6: ++%6La:0xf.fffffffffffffffp+16380:1:6:0x1.ffep3: ++%*6La:0xf.fffffffffffffffp+16380:0:6: ++%6La:infinity:0:-1: ++%*6La:infinity:0:-1: ++%6La:+nan():1:6:nan: ++%*6La:+nan():0:6: ++%6La:+nan(09A_Zaz):0:-1: ++%*6La:+nan(09A_Zaz):0:-1: ++%6La:+0x0p0:1:6:0x0: ++%*6La:+0x0p0:0:6: ++# BZ12701 %6La:+0x0p+0:0:-1: ++# BZ12701 %*6La:+0x0p+0:0:-1: ++# BZ12701 %6La:+0x8p-16385:0:-1: ++# BZ12701 %*6La:+0x8p-16385:0:-1: ++%6La:+0x2.3456789abcdef01p012345:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef01p012345:0:6: ++%6La:+0x2.3456789abcdef01p+12345:1:6:0x1.18p1: ++%*6La:+0x2.3456789abcdef01p+12345:0:6: ++%6La:+0x7.fffffffffffffff8p16381:1:6:0x1.fcp2: ++%*6La:+0x7.fffffffffffffff8p16381:0:6: ++%6La:+0xf.fffffffffffffffp+16380:1:6:0x1.fep3: ++%*6La:+0xf.fffffffffffffffp+16380:0:6: ++%6La:+infinity:0:-1: ++%*6La:+infinity:0:-1: ++%22La::0:-1: ++%*22La::0:-1: ++%22La:-infinity:1:9:-inf: ++%*22La:-infinity:0:9: ++# BZ12701 %22La:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*22La:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %22La:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*22La:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %22La:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*22La:-0x2.3456789abcdef01p+12345:0:-1: ++%22La:-0x2.3456789abcdef01p012345:1:22:-0x1.1a2b3c4d5e6f7808p1: ++%*22La:-0x2.3456789abcdef01p012345:0:22: ++%22La:-0x8p-16385:1:11:-0x1p-16382: ++%*22La:-0x8p-16385:0:11: ++%22La:-0x0p+0:1:7:-0x0: ++%*22La:-0x0p+0:0:7: ++%22La:-0x0p0:1:6:-0x0: ++%*22La:-0x0p0:0:6: ++%22La:-nan(09A_Zaz):1:13:-nan: ++%*22La:-nan(09A_Zaz):0:13: ++%22La:-nan():1:6:-nan: ++%*22La:-nan():0:6: ++%22La:nan():1:5:nan: ++%*22La:nan():0:5: ++%22La:nan(09A_Zaz):1:12:nan: ++%*22La:nan(09A_Zaz):0:12: ++%22La:0x0p0:1:5:0x0: ++%*22La:0x0p0:0:5: ++%22La:0x0p+0:1:6:0x0: ++%*22La:0x0p+0:0:6: ++%22La:0x8p-16385:1:10:0x1p-16382: ++%*22La:0x8p-16385:0:10: ++%22La:0x2.3456789abcdef01p012345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22La:0x2.3456789abcdef01p012345:0:22: ++%22La:0x2.3456789abcdef01p+12345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22La:0x2.3456789abcdef01p+12345:0:22: ++%22La:0x7.fffffffffffffff8p16381:1:22:0x1.fffffffffffffffep3: ++%*22La:0x7.fffffffffffffff8p16381:0:22: ++%22La:0xf.fffffffffffffffp+16380:1:22:0x1.fffffffffffffffep4: ++%*22La:0xf.fffffffffffffffp+16380:0:22: ++%22La:infinity:1:8:inf: ++%*22La:infinity:0:8: ++%22La:+nan():1:6:nan: ++%*22La:+nan():0:6: ++%22La:+nan(09A_Zaz):1:13:nan: ++%*22La:+nan(09A_Zaz):0:13: ++%22La:+0x0p0:1:6:0x0: ++%*22La:+0x0p0:0:6: ++%22La:+0x0p+0:1:7:0x0: ++%*22La:+0x0p+0:0:7: ++%22La:+0x8p-16385:1:11:0x1p-16382: ++%*22La:+0x8p-16385:0:11: ++%22La:+0x2.3456789abcdef01p012345:1:22:0x1.1a2b3c4d5e6f7808p1: ++%*22La:+0x2.3456789abcdef01p012345:0:22: ++# BZ12701 %22La:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*22La:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %22La:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*22La:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %22La:+0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*22La:+0xf.fffffffffffffffp+16380:0:-1: ++%22La:+infinity:1:9:inf: ++%*22La:+infinity:0:9: ++%37La::0:-1: ++%*37La::0:-1: ++%37La:-infinity:1:9:-inf: ++%*37La:-infinity:0:9: ++%37La:-0xf.fffffffffffffffp+16380:1:27:-0x1.fffffffffffffffep16383: ++%*37La:-0xf.fffffffffffffffp+16380:0:27: ++%37La:-0x7.fffffffffffffff8p16381:1:27:-0x1.fffffffffffffffep16383: ++%*37La:-0x7.fffffffffffffff8p16381:0:27: ++%37La:-0x2.3456789abcdef01p+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37La:-0x2.3456789abcdef01p+12345:0:27: ++%37La:-0x2.3456789abcdef01p012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37La:-0x2.3456789abcdef01p012345:0:27: ++%37La:-0x8p-16385:1:11:-0x1p-16382: ++%*37La:-0x8p-16385:0:11: ++%37La:-0x0p+0:1:7:-0x0: ++%*37La:-0x0p+0:0:7: ++%37La:-0x0p0:1:6:-0x0: ++%*37La:-0x0p0:0:6: ++%37La:-nan(09A_Zaz):1:13:-nan: ++%*37La:-nan(09A_Zaz):0:13: ++%37La:-nan():1:6:-nan: ++%*37La:-nan():0:6: ++%37La:nan():1:5:nan: ++%*37La:nan():0:5: ++%37La:nan(09A_Zaz):1:12:nan: ++%*37La:nan(09A_Zaz):0:12: ++%37La:0x0p0:1:5:0x0: ++%*37La:0x0p0:0:5: ++%37La:0x0p+0:1:6:0x0: ++%*37La:0x0p+0:0:6: ++%37La:0x8p-16385:1:10:0x1p-16382: ++%*37La:0x8p-16385:0:10: ++%37La:0x2.3456789abcdef01p012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37La:0x2.3456789abcdef01p012345:0:26: ++%37La:0x2.3456789abcdef01p+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37La:0x2.3456789abcdef01p+12345:0:26: ++%37La:0x7.fffffffffffffff8p16381:1:26:0x1.fffffffffffffffep16383: ++%*37La:0x7.fffffffffffffff8p16381:0:26: ++%37La:0xf.fffffffffffffffp+16380:1:26:0x1.fffffffffffffffep16383: ++%*37La:0xf.fffffffffffffffp+16380:0:26: ++%37La:infinity:1:8:inf: ++%*37La:infinity:0:8: ++%37La:+nan():1:6:nan: ++%*37La:+nan():0:6: ++%37La:+nan(09A_Zaz):1:13:nan: ++%*37La:+nan(09A_Zaz):0:13: ++%37La:+0x0p0:1:6:0x0: ++%*37La:+0x0p0:0:6: ++%37La:+0x0p+0:1:7:0x0: ++%*37La:+0x0p+0:0:7: ++%37La:+0x8p-16385:1:11:0x1p-16382: ++%*37La:+0x8p-16385:0:11: ++%37La:+0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37La:+0x2.3456789abcdef01p012345:0:27: ++%37La:+0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37La:+0x2.3456789abcdef01p+12345:0:27: ++%37La:+0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*37La:+0x7.fffffffffffffff8p16381:0:27: ++%37La:+0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*37La:+0xf.fffffffffffffffp+16380:0:27: ++%37La:+infinity:1:9:inf: ++%*37La:+infinity:0:9: ++%5La: :0:-1: ++%*5La: :0:-1: ++%5La: -infinity:0:-1: ++%*5La: -infinity:0:-1: ++%5La: -0xf.fffffffffffffffp+16380:1:6:-0x1.ep3: ++%*5La: -0xf.fffffffffffffffp+16380:0:6: ++%5La: -0x7.fffffffffffffff8p16381:1:6:-0x1.cp2: ++%*5La: -0x7.fffffffffffffff8p16381:0:6: ++%5La: -0x2.3456789abcdef01p+12345:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef01p+12345:0:6: ++%5La: -0x2.3456789abcdef01p012345:1:6:-0x1p1: ++%*5La: -0x2.3456789abcdef01p012345:0:6: ++# BZ12701 %5La: -0x8p-16385:0:-1: ++# BZ12701 %*5La: -0x8p-16385:0:-1: ++# BZ12701 %5La: -0x0p+0:0:-1: ++# BZ12701 %*5La: -0x0p+0:0:-1: ++# BZ12701 %5La: -0x0p0:0:-1: ++# BZ12701 %*5La: -0x0p0:0:-1: ++%5La: -nan(09A_Zaz):0:-1: ++%*5La: -nan(09A_Zaz):0:-1: ++%5La: -nan():0:-1: ++%*5La: -nan():0:-1: ++%5La: nan():1:6:nan: ++%*5La: nan():0:6: ++%5La: nan(09A_Zaz):0:-1: ++%*5La: nan(09A_Zaz):0:-1: ++%5La: 0x0p0:1:6:0x0: ++%*5La: 0x0p0:0:6: ++# BZ12701 %5La: 0x0p+0:0:-1: ++# BZ12701 %*5La: 0x0p+0:0:-1: ++# BZ12701 %5La: 0x8p-16385:0:-1: ++# BZ12701 %*5La: 0x8p-16385:0:-1: ++%5La: 0x2.3456789abcdef01p012345:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef01p012345:0:6: ++%5La: 0x2.3456789abcdef01p+12345:1:6:0x1.18p1: ++%*5La: 0x2.3456789abcdef01p+12345:0:6: ++%5La: 0x7.fffffffffffffff8p16381:1:6:0x1.fcp2: ++%*5La: 0x7.fffffffffffffff8p16381:0:6: ++%5La: 0xf.fffffffffffffffp+16380:1:6:0x1.fep3: ++%*5La: 0xf.fffffffffffffffp+16380:0:6: ++%5La: infinity:0:-1: ++%*5La: infinity:0:-1: ++%5La: +nan():0:-1: ++%*5La: +nan():0:-1: ++%5La: +nan(09A_Zaz):0:-1: ++%*5La: +nan(09A_Zaz):0:-1: ++# BZ12701 %5La: +0x0p0:0:-1: ++# BZ12701 %*5La: +0x0p0:0:-1: ++# BZ12701 %5La: +0x0p+0:0:-1: ++# BZ12701 %*5La: +0x0p+0:0:-1: ++# BZ12701 %5La: +0x8p-16385:0:-1: ++# BZ12701 %*5La: +0x8p-16385:0:-1: ++%5La: +0x2.3456789abcdef01p012345:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef01p012345:0:6: ++%5La: +0x2.3456789abcdef01p+12345:1:6:0x1p1: ++%*5La: +0x2.3456789abcdef01p+12345:0:6: ++%5La: +0x7.fffffffffffffff8p16381:1:6:0x1.cp2: ++%*5La: +0x7.fffffffffffffff8p16381:0:6: ++%5La: +0xf.fffffffffffffffp+16380:1:6:0x1.ep3: ++%*5La: +0xf.fffffffffffffffp+16380:0:6: ++%5La: +infinity:0:-1: ++%*5La: +infinity:0:-1: ++%37La: :0:-1: ++%*37La: :0:-1: ++%37La: -infinity:1:10:-inf: ++%*37La: -infinity:0:10: ++%37La: -0xf.fffffffffffffffp+16380:1:28:-0x1.fffffffffffffffep16383: ++%*37La: -0xf.fffffffffffffffp+16380:0:28: ++%37La: -0x7.fffffffffffffff8p16381:1:28:-0x1.fffffffffffffffep16383: ++%*37La: -0x7.fffffffffffffff8p16381:0:28: ++%37La: -0x2.3456789abcdef01p+12345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37La: -0x2.3456789abcdef01p+12345:0:28: ++%37La: -0x2.3456789abcdef01p012345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37La: -0x2.3456789abcdef01p012345:0:28: ++%37La: -0x8p-16385:1:12:-0x1p-16382: ++%*37La: -0x8p-16385:0:12: ++%37La: -0x0p+0:1:8:-0x0: ++%*37La: -0x0p+0:0:8: ++%37La: -0x0p0:1:7:-0x0: ++%*37La: -0x0p0:0:7: ++%37La: -nan(09A_Zaz):1:14:-nan: ++%*37La: -nan(09A_Zaz):0:14: ++%37La: -nan():1:7:-nan: ++%*37La: -nan():0:7: ++%37La: nan():1:6:nan: ++%*37La: nan():0:6: ++%37La: nan(09A_Zaz):1:13:nan: ++%*37La: nan(09A_Zaz):0:13: ++%37La: 0x0p0:1:6:0x0: ++%*37La: 0x0p0:0:6: ++%37La: 0x0p+0:1:7:0x0: ++%*37La: 0x0p+0:0:7: ++%37La: 0x8p-16385:1:11:0x1p-16382: ++%*37La: 0x8p-16385:0:11: ++%37La: 0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37La: 0x2.3456789abcdef01p012345:0:27: ++%37La: 0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37La: 0x2.3456789abcdef01p+12345:0:27: ++%37La: 0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*37La: 0x7.fffffffffffffff8p16381:0:27: ++%37La: 0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*37La: 0xf.fffffffffffffffp+16380:0:27: ++%37La: infinity:1:9:inf: ++%*37La: infinity:0:9: ++%37La: +nan():1:7:nan: ++%*37La: +nan():0:7: ++%37La: +nan(09A_Zaz):1:14:nan: ++%*37La: +nan(09A_Zaz):0:14: ++%37La: +0x0p0:1:7:0x0: ++%*37La: +0x0p0:0:7: ++%37La: +0x0p+0:1:8:0x0: ++%*37La: +0x0p+0:0:8: ++%37La: +0x8p-16385:1:12:0x1p-16382: ++%*37La: +0x8p-16385:0:12: ++%37La: +0x2.3456789abcdef01p012345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37La: +0x2.3456789abcdef01p012345:0:28: ++%37La: +0x2.3456789abcdef01p+12345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37La: +0x2.3456789abcdef01p+12345:0:28: ++%37La: +0x7.fffffffffffffff8p16381:1:28:0x1.fffffffffffffffep16383: ++%*37La: +0x7.fffffffffffffff8p16381:0:28: ++%37La: +0xf.fffffffffffffffp+16380:1:28:0x1.fffffffffffffffep16383: ++%*37La: +0xf.fffffffffffffffp+16380:0:28: ++%37La: +infinity:1:10:inf: ++%*37La: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input +new file mode 100644 +index 0000000000000000..231fc78d225363d5 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-aa.input +@@ -0,0 +1,682 @@ ++%LA::0:-1: ++%*LA::0:-1: ++%LA:-INFINITY:1:9:-inf: ++%*LA:-INFINITY:0:9: ++%LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:27:-0x1.fffffffffffffffep16383: ++%*LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:27:-0x1.fffffffffffffffep16383: ++%*LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%LA:-0X2.3456789ABCDEF01P+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*LA:-0X2.3456789ABCDEF01P+12345:0:27: ++%LA:-0X2.3456789ABCDEF01P012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*LA:-0X2.3456789ABCDEF01P012345:0:27: ++%LA:-0X8P-16385:1:11:-0x1p-16382: ++%*LA:-0X8P-16385:0:11: ++%LA:-0X0P+0:1:7:-0x0: ++%*LA:-0X0P+0:0:7: ++%LA:-0X0P0:1:6:-0x0: ++%*LA:-0X0P0:0:6: ++%LA:-NAN(09A_Zaz):1:13:-nan: ++%*LA:-NAN(09A_Zaz):0:13: ++%LA:-NAN():1:6:-nan: ++%*LA:-NAN():0:6: ++%LA:NAN():1:5:nan: ++%*LA:NAN():0:5: ++%LA:NAN(09A_Zaz):1:12:nan: ++%*LA:NAN(09A_Zaz):0:12: ++%LA:0X0P0:1:5:0x0: ++%*LA:0X0P0:0:5: ++%LA:0X0P+0:1:6:0x0: ++%*LA:0X0P+0:0:6: ++%LA:0X8P-16385:1:10:0x1p-16382: ++%*LA:0X8P-16385:0:10: ++%LA:0X2.3456789ABCDEF01P012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*LA:0X2.3456789ABCDEF01P012345:0:26: ++%LA:0X2.3456789ABCDEF01P+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*LA:0X2.3456789ABCDEF01P+12345:0:26: ++%LA:0X7.FFFFFFFFFFFFFFF8P16381:1:26:0x1.fffffffffffffffep16383: ++%*LA:0X7.FFFFFFFFFFFFFFF8P16381:0:26: ++%LA:0XF.FFFFFFFFFFFFFFFP+16380:1:26:0x1.fffffffffffffffep16383: ++%*LA:0XF.FFFFFFFFFFFFFFFP+16380:0:26: ++%LA:INFINITY:1:8:inf: ++%*LA:INFINITY:0:8: ++%LA:+NAN():1:6:nan: ++%*LA:+NAN():0:6: ++%LA:+NAN(09A_Zaz):1:13:nan: ++%*LA:+NAN(09A_Zaz):0:13: ++%LA:+0X0P0:1:6:0x0: ++%*LA:+0X0P0:0:6: ++%LA:+0X0P+0:1:7:0x0: ++%*LA:+0X0P+0:0:7: ++%LA:+0X8P-16385:1:11:0x1p-16382: ++%*LA:+0X8P-16385:0:11: ++%LA:+0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*LA:+0X2.3456789ABCDEF01P012345:0:27: ++%LA:+0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*LA:+0X2.3456789ABCDEF01P+12345:0:27: ++%LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%LA:+INFINITY:1:9:inf: ++%*LA:+INFINITY:0:9: ++%1LA::0:-1: ++%*1LA::0:-1: ++%1LA:-INFINITY:0:-1: ++%*1LA:-INFINITY:0:-1: ++%1LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%*1LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%1LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%*1LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%1LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++%*1LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++%1LA:-0X2.3456789ABCDEF01P012345:0:-1: ++%*1LA:-0X2.3456789ABCDEF01P012345:0:-1: ++%1LA:-0X8P-16385:0:-1: ++%*1LA:-0X8P-16385:0:-1: ++%1LA:-0X0P+0:0:-1: ++%*1LA:-0X0P+0:0:-1: ++%1LA:-0X0P0:0:-1: ++%*1LA:-0X0P0:0:-1: ++%1LA:-NAN(09A_Zaz):0:-1: ++%*1LA:-NAN(09A_Zaz):0:-1: ++%1LA:-NAN():0:-1: ++%*1LA:-NAN():0:-1: ++%1LA:NAN():0:-1: ++%*1LA:NAN():0:-1: ++%1LA:NAN(09A_Zaz):0:-1: ++%*1LA:NAN(09A_Zaz):0:-1: ++%1LA:0X0P0:1:1:0x0: ++%*1LA:0X0P0:0:1: ++%1LA:0X0P+0:1:1:0x0: ++%*1LA:0X0P+0:0:1: ++%1LA:0X8P-16385:1:1:0x0: ++%*1LA:0X8P-16385:0:1: ++%1LA:0X2.3456789ABCDEF01P012345:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF01P012345:0:1: ++%1LA:0X2.3456789ABCDEF01P+12345:1:1:0x0: ++%*1LA:0X2.3456789ABCDEF01P+12345:0:1: ++%1LA:0X7.FFFFFFFFFFFFFFF8P16381:1:1:0x0: ++%*1LA:0X7.FFFFFFFFFFFFFFF8P16381:0:1: ++%1LA:0XF.FFFFFFFFFFFFFFFP+16380:1:1:0x0: ++%*1LA:0XF.FFFFFFFFFFFFFFFP+16380:0:1: ++%1LA:INFINITY:0:-1: ++%*1LA:INFINITY:0:-1: ++%1LA:+NAN():0:-1: ++%*1LA:+NAN():0:-1: ++%1LA:+NAN(09A_Zaz):0:-1: ++%*1LA:+NAN(09A_Zaz):0:-1: ++%1LA:+0X0P0:0:-1: ++%*1LA:+0X0P0:0:-1: ++%1LA:+0X0P+0:0:-1: ++%*1LA:+0X0P+0:0:-1: ++%1LA:+0X8P-16385:0:-1: ++%*1LA:+0X8P-16385:0:-1: ++%1LA:+0X2.3456789ABCDEF01P012345:0:-1: ++%*1LA:+0X2.3456789ABCDEF01P012345:0:-1: ++%1LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++%*1LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++%1LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%*1LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%1LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%*1LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%1LA:+INFINITY:0:-1: ++%*1LA:+INFINITY:0:-1: ++%2LA::0:-1: ++%*2LA::0:-1: ++%2LA:-INFINITY:0:-1: ++%*2LA:-INFINITY:0:-1: ++%2LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:2:-0x0: ++%*2LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:2: ++%2LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:2:-0x0: ++%*2LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:2: ++%2LA:-0X2.3456789ABCDEF01P+12345:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF01P+12345:0:2: ++%2LA:-0X2.3456789ABCDEF01P012345:1:2:-0x0: ++%*2LA:-0X2.3456789ABCDEF01P012345:0:2: ++%2LA:-0X8P-16385:1:2:-0x0: ++%*2LA:-0X8P-16385:0:2: ++%2LA:-0X0P+0:1:2:-0x0: ++%*2LA:-0X0P+0:0:2: ++%2LA:-0X0P0:1:2:-0x0: ++%*2LA:-0X0P0:0:2: ++%2LA:-NAN(09A_Zaz):0:-1: ++%*2LA:-NAN(09A_Zaz):0:-1: ++%2LA:-NAN():0:-1: ++%*2LA:-NAN():0:-1: ++%2LA:NAN():0:-1: ++%*2LA:NAN():0:-1: ++%2LA:NAN(09A_Zaz):0:-1: ++%*2LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LA:0X0P0:0:-1: ++# BZ12701 %*2LA:0X0P0:0:-1: ++# BZ12701 %2LA:0X0P+0:0:-1: ++# BZ12701 %*2LA:0X0P+0:0:-1: ++# BZ12701 %2LA:0X8P-16385:0:-1: ++# BZ12701 %*2LA:0X8P-16385:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %2LA:0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*2LA:0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %2LA:0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*2LA:0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %2LA:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*2LA:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%2LA:INFINITY:0:-1: ++%*2LA:INFINITY:0:-1: ++%2LA:+NAN():0:-1: ++%*2LA:+NAN():0:-1: ++%2LA:+NAN(09A_Zaz):0:-1: ++%*2LA:+NAN(09A_Zaz):0:-1: ++%2LA:+0X0P0:1:2:0x0: ++%*2LA:+0X0P0:0:2: ++%2LA:+0X0P+0:1:2:0x0: ++%*2LA:+0X0P+0:0:2: ++%2LA:+0X8P-16385:1:2:0x0: ++%*2LA:+0X8P-16385:0:2: ++%2LA:+0X2.3456789ABCDEF01P012345:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF01P012345:0:2: ++%2LA:+0X2.3456789ABCDEF01P+12345:1:2:0x0: ++%*2LA:+0X2.3456789ABCDEF01P+12345:0:2: ++%2LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:2:0x0: ++%*2LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:2: ++%2LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:2:0x0: ++%*2LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:2: ++%2LA:+INFINITY:0:-1: ++%*2LA:+INFINITY:0:-1: ++%3LA::0:-1: ++%*3LA::0:-1: ++%3LA:-INFINITY:0:-1: ++%*3LA:-INFINITY:0:-1: ++# BZ12701 %3LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*3LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %3LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*3LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %3LA:-0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*3LA:-0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %3LA:-0X8P-16385:0:-1: ++# BZ12701 %*3LA:-0X8P-16385:0:-1: ++# BZ12701 %3LA:-0X0P+0:0:-1: ++# BZ12701 %*3LA:-0X0P+0:0:-1: ++# BZ12701 %3LA:-0X0P0:0:-1: ++# BZ12701 %*3LA:-0X0P0:0:-1: ++%3LA:-NAN(09A_Zaz):0:-1: ++%*3LA:-NAN(09A_Zaz):0:-1: ++%3LA:-NAN():0:-1: ++%*3LA:-NAN():0:-1: ++%3LA:NAN():1:3:nan: ++%*3LA:NAN():0:3: ++%3LA:NAN(09A_Zaz):1:3:nan: ++%*3LA:NAN(09A_Zaz):0:3: ++%3LA:0X0P0:1:3:0x0: ++%*3LA:0X0P0:0:3: ++%3LA:0X0P+0:1:3:0x0: ++%*3LA:0X0P+0:0:3: ++%3LA:0X8P-16385:1:3:0x1p3: ++%*3LA:0X8P-16385:0:3: ++%3LA:0X2.3456789ABCDEF01P012345:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF01P012345:0:3: ++%3LA:0X2.3456789ABCDEF01P+12345:1:3:0x1p1: ++%*3LA:0X2.3456789ABCDEF01P+12345:0:3: ++%3LA:0X7.FFFFFFFFFFFFFFF8P16381:1:3:0x1.cp2: ++%*3LA:0X7.FFFFFFFFFFFFFFF8P16381:0:3: ++%3LA:0XF.FFFFFFFFFFFFFFFP+16380:1:3:0x1.ep3: ++%*3LA:0XF.FFFFFFFFFFFFFFFP+16380:0:3: ++%3LA:INFINITY:1:3:inf: ++%*3LA:INFINITY:0:3: ++%3LA:+NAN():0:-1: ++%*3LA:+NAN():0:-1: ++%3LA:+NAN(09A_Zaz):0:-1: ++%*3LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LA:+0X0P0:0:-1: ++# BZ12701 %*3LA:+0X0P0:0:-1: ++# BZ12701 %3LA:+0X0P+0:0:-1: ++# BZ12701 %*3LA:+0X0P+0:0:-1: ++# BZ12701 %3LA:+0X8P-16385:0:-1: ++# BZ12701 %*3LA:+0X8P-16385:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %3LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*3LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %3LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*3LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %3LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*3LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%3LA:+INFINITY:0:-1: ++%*3LA:+INFINITY:0:-1: ++%4LA::0:-1: ++%*4LA::0:-1: ++%4LA:-INFINITY:1:4:-inf: ++%*4LA:-INFINITY:0:4: ++%4LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:4:-0x1.ep3: ++%*4LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:4:-0x1.cp2: ++%*4LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LA:-0X2.3456789ABCDEF01P+12345:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF01P+12345:0:4: ++%4LA:-0X2.3456789ABCDEF01P012345:1:4:-0x1p1: ++%*4LA:-0X2.3456789ABCDEF01P012345:0:4: ++%4LA:-0X8P-16385:1:4:-0x1p3: ++%*4LA:-0X8P-16385:0:4: ++%4LA:-0X0P+0:1:4:-0x0: ++%*4LA:-0X0P+0:0:4: ++%4LA:-0X0P0:1:4:-0x0: ++%*4LA:-0X0P0:0:4: ++%4LA:-NAN(09A_Zaz):1:4:-nan: ++%*4LA:-NAN(09A_Zaz):0:4: ++%4LA:-NAN():1:4:-nan: ++%*4LA:-NAN():0:4: ++%4LA:NAN():0:-1: ++%*4LA:NAN():0:-1: ++%4LA:NAN(09A_Zaz):0:-1: ++%*4LA:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LA:0X0P0:0:-1: ++# BZ12701 %*4LA:0X0P0:0:-1: ++# BZ12701 %4LA:0X0P+0:0:-1: ++# BZ12701 %*4LA:0X0P+0:0:-1: ++# BZ12701 %4LA:0X8P-16385:0:-1: ++# BZ12701 %*4LA:0X8P-16385:0:-1: ++%4LA:0X2.3456789ABCDEF01P012345:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF01P012345:0:4: ++%4LA:0X2.3456789ABCDEF01P+12345:1:4:0x1p1: ++%*4LA:0X2.3456789ABCDEF01P+12345:0:4: ++%4LA:0X7.FFFFFFFFFFFFFFF8P16381:1:4:0x1.cp2: ++%*4LA:0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LA:0XF.FFFFFFFFFFFFFFFP+16380:1:4:0x1.ep3: ++%*4LA:0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LA:INFINITY:0:-1: ++%*4LA:INFINITY:0:-1: ++%4LA:+NAN():1:4:nan: ++%*4LA:+NAN():0:4: ++%4LA:+NAN(09A_Zaz):1:4:nan: ++%*4LA:+NAN(09A_Zaz):0:4: ++%4LA:+0X0P0:1:4:0x0: ++%*4LA:+0X0P0:0:4: ++%4LA:+0X0P+0:1:4:0x0: ++%*4LA:+0X0P+0:0:4: ++%4LA:+0X8P-16385:1:4:0x1p3: ++%*4LA:+0X8P-16385:0:4: ++%4LA:+0X2.3456789ABCDEF01P012345:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF01P012345:0:4: ++%4LA:+0X2.3456789ABCDEF01P+12345:1:4:0x1p1: ++%*4LA:+0X2.3456789ABCDEF01P+12345:0:4: ++%4LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:4:0x1.cp2: ++%*4LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:4:0x1.ep3: ++%*4LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LA:+INFINITY:1:4:inf: ++%*4LA:+INFINITY:0:4: ++%5LA::0:-1: ++%*5LA::0:-1: ++%5LA:-INFINITY:0:-1: ++%*5LA:-INFINITY:0:-1: ++%5LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:5:-0x1.ep3: ++%*5LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:5:-0x1.cp2: ++%*5LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LA:-0X2.3456789ABCDEF01P+12345:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF01P+12345:0:5: ++%5LA:-0X2.3456789ABCDEF01P012345:1:5:-0x1p1: ++%*5LA:-0X2.3456789ABCDEF01P012345:0:5: ++# BZ12701 %5LA:-0X8P-16385:0:-1: ++# BZ12701 %*5LA:-0X8P-16385:0:-1: ++# BZ12701 %5LA:-0X0P+0:0:-1: ++# BZ12701 %*5LA:-0X0P+0:0:-1: ++# BZ12701 %5LA:-0X0P0:0:-1: ++# BZ12701 %*5LA:-0X0P0:0:-1: ++%5LA:-NAN(09A_Zaz):0:-1: ++%*5LA:-NAN(09A_Zaz):0:-1: ++%5LA:-NAN():0:-1: ++%*5LA:-NAN():0:-1: ++%5LA:NAN():1:5:nan: ++%*5LA:NAN():0:5: ++%5LA:NAN(09A_Zaz):0:-1: ++%*5LA:NAN(09A_Zaz):0:-1: ++%5LA:0X0P0:1:5:0x0: ++%*5LA:0X0P0:0:5: ++# BZ12701 %5LA:0X0P+0:0:-1: ++# BZ12701 %*5LA:0X0P+0:0:-1: ++# BZ12701 %5LA:0X8P-16385:0:-1: ++# BZ12701 %*5LA:0X8P-16385:0:-1: ++%5LA:0X2.3456789ABCDEF01P012345:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF01P012345:0:5: ++%5LA:0X2.3456789ABCDEF01P+12345:1:5:0x1.18p1: ++%*5LA:0X2.3456789ABCDEF01P+12345:0:5: ++%5LA:0X7.FFFFFFFFFFFFFFF8P16381:1:5:0x1.fcp2: ++%*5LA:0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LA:0XF.FFFFFFFFFFFFFFFP+16380:1:5:0x1.fep3: ++%*5LA:0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LA:INFINITY:0:-1: ++%*5LA:INFINITY:0:-1: ++%5LA:+NAN():0:-1: ++%*5LA:+NAN():0:-1: ++%5LA:+NAN(09A_Zaz):0:-1: ++%*5LA:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA:+0X0P0:0:-1: ++# BZ12701 %*5LA:+0X0P0:0:-1: ++# BZ12701 %5LA:+0X0P+0:0:-1: ++# BZ12701 %*5LA:+0X0P+0:0:-1: ++# BZ12701 %5LA:+0X8P-16385:0:-1: ++# BZ12701 %*5LA:+0X8P-16385:0:-1: ++%5LA:+0X2.3456789ABCDEF01P012345:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF01P012345:0:5: ++%5LA:+0X2.3456789ABCDEF01P+12345:1:5:0x1p1: ++%*5LA:+0X2.3456789ABCDEF01P+12345:0:5: ++%5LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:5:0x1.cp2: ++%*5LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:5:0x1.ep3: ++%*5LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LA:+INFINITY:0:-1: ++%*5LA:+INFINITY:0:-1: ++%6LA::0:-1: ++%*6LA::0:-1: ++%6LA:-INFINITY:0:-1: ++%*6LA:-INFINITY:0:-1: ++%6LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:6:-0x1.fep3: ++%*6LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:6:-0x1.fcp2: ++%*6LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LA:-0X2.3456789ABCDEF01P+12345:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF01P+12345:0:6: ++%6LA:-0X2.3456789ABCDEF01P012345:1:6:-0x1.18p1: ++%*6LA:-0X2.3456789ABCDEF01P012345:0:6: ++# BZ12701 %6LA:-0X8P-16385:0:-1: ++# BZ12701 %*6LA:-0X8P-16385:0:-1: ++# BZ12701 %6LA:-0X0P+0:0:-1: ++# BZ12701 %*6LA:-0X0P+0:0:-1: ++%6LA:-0X0P0:1:6:-0x0: ++%*6LA:-0X0P0:0:6: ++%6LA:-NAN(09A_Zaz):0:-1: ++%*6LA:-NAN(09A_Zaz):0:-1: ++%6LA:-NAN():1:6:-nan: ++%*6LA:-NAN():0:6: ++%6LA:NAN():1:5:nan: ++%*6LA:NAN():0:5: ++%6LA:NAN(09A_Zaz):0:-1: ++%*6LA:NAN(09A_Zaz):0:-1: ++%6LA:0X0P0:1:5:0x0: ++%*6LA:0X0P0:0:5: ++%6LA:0X0P+0:1:6:0x0: ++%*6LA:0X0P+0:0:6: ++%6LA:0X8P-16385:1:6:0x1p2: ++%*6LA:0X8P-16385:0:6: ++%6LA:0X2.3456789ABCDEF01P012345:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF01P012345:0:6: ++%6LA:0X2.3456789ABCDEF01P+12345:1:6:0x1.1ap1: ++%*6LA:0X2.3456789ABCDEF01P+12345:0:6: ++%6LA:0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.ffcp2: ++%*6LA:0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LA:0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.ffep3: ++%*6LA:0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LA:INFINITY:0:-1: ++%*6LA:INFINITY:0:-1: ++%6LA:+NAN():1:6:nan: ++%*6LA:+NAN():0:6: ++%6LA:+NAN(09A_Zaz):0:-1: ++%*6LA:+NAN(09A_Zaz):0:-1: ++%6LA:+0X0P0:1:6:0x0: ++%*6LA:+0X0P0:0:6: ++# BZ12701 %6LA:+0X0P+0:0:-1: ++# BZ12701 %*6LA:+0X0P+0:0:-1: ++# BZ12701 %6LA:+0X8P-16385:0:-1: ++# BZ12701 %*6LA:+0X8P-16385:0:-1: ++%6LA:+0X2.3456789ABCDEF01P012345:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF01P012345:0:6: ++%6LA:+0X2.3456789ABCDEF01P+12345:1:6:0x1.18p1: ++%*6LA:+0X2.3456789ABCDEF01P+12345:0:6: ++%6LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.fcp2: ++%*6LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.fep3: ++%*6LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LA:+INFINITY:0:-1: ++%*6LA:+INFINITY:0:-1: ++%22LA::0:-1: ++%*22LA::0:-1: ++%22LA:-INFINITY:1:9:-inf: ++%*22LA:-INFINITY:0:9: ++# BZ12701 %22LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*22LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %22LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*22LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %22LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*22LA:-0X2.3456789ABCDEF01P+12345:0:-1: ++%22LA:-0X2.3456789ABCDEF01P012345:1:22:-0x1.1a2b3c4d5e6f7808p1: ++%*22LA:-0X2.3456789ABCDEF01P012345:0:22: ++%22LA:-0X8P-16385:1:11:-0x1p-16382: ++%*22LA:-0X8P-16385:0:11: ++%22LA:-0X0P+0:1:7:-0x0: ++%*22LA:-0X0P+0:0:7: ++%22LA:-0X0P0:1:6:-0x0: ++%*22LA:-0X0P0:0:6: ++%22LA:-NAN(09A_Zaz):1:13:-nan: ++%*22LA:-NAN(09A_Zaz):0:13: ++%22LA:-NAN():1:6:-nan: ++%*22LA:-NAN():0:6: ++%22LA:NAN():1:5:nan: ++%*22LA:NAN():0:5: ++%22LA:NAN(09A_Zaz):1:12:nan: ++%*22LA:NAN(09A_Zaz):0:12: ++%22LA:0X0P0:1:5:0x0: ++%*22LA:0X0P0:0:5: ++%22LA:0X0P+0:1:6:0x0: ++%*22LA:0X0P+0:0:6: ++%22LA:0X8P-16385:1:10:0x1p-16382: ++%*22LA:0X8P-16385:0:10: ++%22LA:0X2.3456789ABCDEF01P012345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22LA:0X2.3456789ABCDEF01P012345:0:22: ++%22LA:0X2.3456789ABCDEF01P+12345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22LA:0X2.3456789ABCDEF01P+12345:0:22: ++%22LA:0X7.FFFFFFFFFFFFFFF8P16381:1:22:0x1.fffffffffffffffep3: ++%*22LA:0X7.FFFFFFFFFFFFFFF8P16381:0:22: ++%22LA:0XF.FFFFFFFFFFFFFFFP+16380:1:22:0x1.fffffffffffffffep4: ++%*22LA:0XF.FFFFFFFFFFFFFFFP+16380:0:22: ++%22LA:INFINITY:1:8:inf: ++%*22LA:INFINITY:0:8: ++%22LA:+NAN():1:6:nan: ++%*22LA:+NAN():0:6: ++%22LA:+NAN(09A_Zaz):1:13:nan: ++%*22LA:+NAN(09A_Zaz):0:13: ++%22LA:+0X0P0:1:6:0x0: ++%*22LA:+0X0P0:0:6: ++%22LA:+0X0P+0:1:7:0x0: ++%*22LA:+0X0P+0:0:7: ++%22LA:+0X8P-16385:1:11:0x1p-16382: ++%*22LA:+0X8P-16385:0:11: ++%22LA:+0X2.3456789ABCDEF01P012345:1:22:0x1.1a2b3c4d5e6f7808p1: ++%*22LA:+0X2.3456789ABCDEF01P012345:0:22: ++# BZ12701 %22LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*22LA:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %22LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*22LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %22LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*22LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%22LA:+INFINITY:1:9:inf: ++%*22LA:+INFINITY:0:9: ++%37LA::0:-1: ++%*37LA::0:-1: ++%37LA:-INFINITY:1:9:-inf: ++%*37LA:-INFINITY:0:9: ++%37LA:-0XF.FFFFFFFFFFFFFFFP+16380:1:27:-0x1.fffffffffffffffep16383: ++%*37LA:-0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LA:-0X7.FFFFFFFFFFFFFFF8P16381:1:27:-0x1.fffffffffffffffep16383: ++%*37LA:-0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LA:-0X2.3456789ABCDEF01P+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:-0X2.3456789ABCDEF01P+12345:0:27: ++%37LA:-0X2.3456789ABCDEF01P012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:-0X2.3456789ABCDEF01P012345:0:27: ++%37LA:-0X8P-16385:1:11:-0x1p-16382: ++%*37LA:-0X8P-16385:0:11: ++%37LA:-0X0P+0:1:7:-0x0: ++%*37LA:-0X0P+0:0:7: ++%37LA:-0X0P0:1:6:-0x0: ++%*37LA:-0X0P0:0:6: ++%37LA:-NAN(09A_Zaz):1:13:-nan: ++%*37LA:-NAN(09A_Zaz):0:13: ++%37LA:-NAN():1:6:-nan: ++%*37LA:-NAN():0:6: ++%37LA:NAN():1:5:nan: ++%*37LA:NAN():0:5: ++%37LA:NAN(09A_Zaz):1:12:nan: ++%*37LA:NAN(09A_Zaz):0:12: ++%37LA:0X0P0:1:5:0x0: ++%*37LA:0X0P0:0:5: ++%37LA:0X0P+0:1:6:0x0: ++%*37LA:0X0P+0:0:6: ++%37LA:0X8P-16385:1:10:0x1p-16382: ++%*37LA:0X8P-16385:0:10: ++%37LA:0X2.3456789ABCDEF01P012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:0X2.3456789ABCDEF01P012345:0:26: ++%37LA:0X2.3456789ABCDEF01P+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:0X2.3456789ABCDEF01P+12345:0:26: ++%37LA:0X7.FFFFFFFFFFFFFFF8P16381:1:26:0x1.fffffffffffffffep16383: ++%*37LA:0X7.FFFFFFFFFFFFFFF8P16381:0:26: ++%37LA:0XF.FFFFFFFFFFFFFFFP+16380:1:26:0x1.fffffffffffffffep16383: ++%*37LA:0XF.FFFFFFFFFFFFFFFP+16380:0:26: ++%37LA:INFINITY:1:8:inf: ++%*37LA:INFINITY:0:8: ++%37LA:+NAN():1:6:nan: ++%*37LA:+NAN():0:6: ++%37LA:+NAN(09A_Zaz):1:13:nan: ++%*37LA:+NAN(09A_Zaz):0:13: ++%37LA:+0X0P0:1:6:0x0: ++%*37LA:+0X0P0:0:6: ++%37LA:+0X0P+0:1:7:0x0: ++%*37LA:+0X0P+0:0:7: ++%37LA:+0X8P-16385:1:11:0x1p-16382: ++%*37LA:+0X8P-16385:0:11: ++%37LA:+0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:+0X2.3456789ABCDEF01P012345:0:27: ++%37LA:+0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA:+0X2.3456789ABCDEF01P+12345:0:27: ++%37LA:+0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*37LA:+0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LA:+0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*37LA:+0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LA:+INFINITY:1:9:inf: ++%*37LA:+INFINITY:0:9: ++%5LA: :0:-1: ++%*5LA: :0:-1: ++%5LA: -INFINITY:0:-1: ++%*5LA: -INFINITY:0:-1: ++%5LA: -0XF.FFFFFFFFFFFFFFFP+16380:1:6:-0x1.ep3: ++%*5LA: -0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LA: -0X7.FFFFFFFFFFFFFFF8P16381:1:6:-0x1.cp2: ++%*5LA: -0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LA: -0X2.3456789ABCDEF01P+12345:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF01P+12345:0:6: ++%5LA: -0X2.3456789ABCDEF01P012345:1:6:-0x1p1: ++%*5LA: -0X2.3456789ABCDEF01P012345:0:6: ++# BZ12701 %5LA: -0X8P-16385:0:-1: ++# BZ12701 %*5LA: -0X8P-16385:0:-1: ++# BZ12701 %5LA: -0X0P+0:0:-1: ++# BZ12701 %*5LA: -0X0P+0:0:-1: ++# BZ12701 %5LA: -0X0P0:0:-1: ++# BZ12701 %*5LA: -0X0P0:0:-1: ++%5LA: -NAN(09A_Zaz):0:-1: ++%*5LA: -NAN(09A_Zaz):0:-1: ++%5LA: -NAN():0:-1: ++%*5LA: -NAN():0:-1: ++%5LA: NAN():1:6:nan: ++%*5LA: NAN():0:6: ++%5LA: NAN(09A_Zaz):0:-1: ++%*5LA: NAN(09A_Zaz):0:-1: ++%5LA: 0X0P0:1:6:0x0: ++%*5LA: 0X0P0:0:6: ++# BZ12701 %5LA: 0X0P+0:0:-1: ++# BZ12701 %*5LA: 0X0P+0:0:-1: ++# BZ12701 %5LA: 0X8P-16385:0:-1: ++# BZ12701 %*5LA: 0X8P-16385:0:-1: ++%5LA: 0X2.3456789ABCDEF01P012345:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF01P012345:0:6: ++%5LA: 0X2.3456789ABCDEF01P+12345:1:6:0x1.18p1: ++%*5LA: 0X2.3456789ABCDEF01P+12345:0:6: ++%5LA: 0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.fcp2: ++%*5LA: 0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LA: 0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.fep3: ++%*5LA: 0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LA: INFINITY:0:-1: ++%*5LA: INFINITY:0:-1: ++%5LA: +NAN():0:-1: ++%*5LA: +NAN():0:-1: ++%5LA: +NAN(09A_Zaz):0:-1: ++%*5LA: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LA: +0X0P0:0:-1: ++# BZ12701 %*5LA: +0X0P0:0:-1: ++# BZ12701 %5LA: +0X0P+0:0:-1: ++# BZ12701 %*5LA: +0X0P+0:0:-1: ++# BZ12701 %5LA: +0X8P-16385:0:-1: ++# BZ12701 %*5LA: +0X8P-16385:0:-1: ++%5LA: +0X2.3456789ABCDEF01P012345:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF01P012345:0:6: ++%5LA: +0X2.3456789ABCDEF01P+12345:1:6:0x1p1: ++%*5LA: +0X2.3456789ABCDEF01P+12345:0:6: ++%5LA: +0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.cp2: ++%*5LA: +0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LA: +0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.ep3: ++%*5LA: +0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LA: +INFINITY:0:-1: ++%*5LA: +INFINITY:0:-1: ++%37LA: :0:-1: ++%*37LA: :0:-1: ++%37LA: -INFINITY:1:10:-inf: ++%*37LA: -INFINITY:0:10: ++%37LA: -0XF.FFFFFFFFFFFFFFFP+16380:1:28:-0x1.fffffffffffffffep16383: ++%*37LA: -0XF.FFFFFFFFFFFFFFFP+16380:0:28: ++%37LA: -0X7.FFFFFFFFFFFFFFF8P16381:1:28:-0x1.fffffffffffffffep16383: ++%*37LA: -0X7.FFFFFFFFFFFFFFF8P16381:0:28: ++%37LA: -0X2.3456789ABCDEF01P+12345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: -0X2.3456789ABCDEF01P+12345:0:28: ++%37LA: -0X2.3456789ABCDEF01P012345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: -0X2.3456789ABCDEF01P012345:0:28: ++%37LA: -0X8P-16385:1:12:-0x1p-16382: ++%*37LA: -0X8P-16385:0:12: ++%37LA: -0X0P+0:1:8:-0x0: ++%*37LA: -0X0P+0:0:8: ++%37LA: -0X0P0:1:7:-0x0: ++%*37LA: -0X0P0:0:7: ++%37LA: -NAN(09A_Zaz):1:14:-nan: ++%*37LA: -NAN(09A_Zaz):0:14: ++%37LA: -NAN():1:7:-nan: ++%*37LA: -NAN():0:7: ++%37LA: NAN():1:6:nan: ++%*37LA: NAN():0:6: ++%37LA: NAN(09A_Zaz):1:13:nan: ++%*37LA: NAN(09A_Zaz):0:13: ++%37LA: 0X0P0:1:6:0x0: ++%*37LA: 0X0P0:0:6: ++%37LA: 0X0P+0:1:7:0x0: ++%*37LA: 0X0P+0:0:7: ++%37LA: 0X8P-16385:1:11:0x1p-16382: ++%*37LA: 0X8P-16385:0:11: ++%37LA: 0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: 0X2.3456789ABCDEF01P012345:0:27: ++%37LA: 0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: 0X2.3456789ABCDEF01P+12345:0:27: ++%37LA: 0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*37LA: 0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LA: 0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*37LA: 0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LA: INFINITY:1:9:inf: ++%*37LA: INFINITY:0:9: ++%37LA: +NAN():1:7:nan: ++%*37LA: +NAN():0:7: ++%37LA: +NAN(09A_Zaz):1:14:nan: ++%*37LA: +NAN(09A_Zaz):0:14: ++%37LA: +0X0P0:1:7:0x0: ++%*37LA: +0X0P0:0:7: ++%37LA: +0X0P+0:1:8:0x0: ++%*37LA: +0X0P+0:0:8: ++%37LA: +0X8P-16385:1:12:0x1p-16382: ++%*37LA: +0X8P-16385:0:12: ++%37LA: +0X2.3456789ABCDEF01P012345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: +0X2.3456789ABCDEF01P012345:0:28: ++%37LA: +0X2.3456789ABCDEF01P+12345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37LA: +0X2.3456789ABCDEF01P+12345:0:28: ++%37LA: +0X7.FFFFFFFFFFFFFFF8P16381:1:28:0x1.fffffffffffffffep16383: ++%*37LA: +0X7.FFFFFFFFFFFFFFF8P16381:0:28: ++%37LA: +0XF.FFFFFFFFFFFFFFFP+16380:1:28:0x1.fffffffffffffffep16383: ++%*37LA: +0XF.FFFFFFFFFFFFFFFP+16380:0:28: ++%37LA: +INFINITY:1:10:inf: ++%*37LA: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input +new file mode 100644 +index 0000000000000000..61a9c901c205f897 +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-e.input +@@ -0,0 +1,558 @@ ++%Le::0:-1: ++%*Le::0:-1: ++%Le:-infinity:1:9:-inf: ++%*Le:-infinity:0:9: ++%Le:-1.18973149535723176502126385303097021e+4932:1:44:-0x1.fffffffffffffffep16383: ++%*Le:-1.18973149535723176502126385303097021e+4932:0:44: ++%Le:-1.18973149535723176502126385303097021e4932:1:43:-0x1.fffffffffffffffep16383: ++%*Le:-1.18973149535723176502126385303097021e4932:0:43: ++%Le:-3.619058724505602958194804115432455e+3716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*Le:-3.619058724505602958194804115432455e+3716:0:42: ++%Le:-3.619058724505602958194804115432455e03716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*Le:-3.619058724505602958194804115432455e03716:0:42: ++%Le:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*Le:-3.36210314311209350626267781732175260e-4932:0:44: ++%Le:-0e+0:1:5:-0x0: ++%*Le:-0e+0:0:5: ++%Le:-0e0:1:4:-0x0: ++%*Le:-0e0:0:4: ++%Le:-nan(09A_Zaz):1:13:-nan: ++%*Le:-nan(09A_Zaz):0:13: ++%Le:-nan():1:6:-nan: ++%*Le:-nan():0:6: ++%Le:nan():1:5:nan: ++%*Le:nan():0:5: ++%Le:nan(09A_Zaz):1:12:nan: ++%*Le:nan(09A_Zaz):0:12: ++%Le:0e0:1:3:0x0: ++%*Le:0e0:0:3: ++%Le:0e+0:1:4:0x0: ++%*Le:0e+0:0:4: ++%Le:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*Le:3.36210314311209350626267781732175260e-4932:0:43: ++%Le:3.619058724505602958194804115432455e03716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*Le:3.619058724505602958194804115432455e03716:0:41: ++%Le:3.619058724505602958194804115432455e+3716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*Le:3.619058724505602958194804115432455e+3716:0:41: ++%Le:1.18973149535723176502126385303097021e4932:1:42:0x1.fffffffffffffffep16383: ++%*Le:1.18973149535723176502126385303097021e4932:0:42: ++%Le:1.18973149535723176502126385303097021e+4932:1:43:0x1.fffffffffffffffep16383: ++%*Le:1.18973149535723176502126385303097021e+4932:0:43: ++%Le:infinity:1:8:inf: ++%*Le:infinity:0:8: ++%Le:+nan():1:6:nan: ++%*Le:+nan():0:6: ++%Le:+nan(09A_Zaz):1:13:nan: ++%*Le:+nan(09A_Zaz):0:13: ++%Le:+0e0:1:4:0x0: ++%*Le:+0e0:0:4: ++%Le:+0e+0:1:5:0x0: ++%*Le:+0e+0:0:5: ++%Le:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*Le:+3.36210314311209350626267781732175260e-4932:0:44: ++%Le:+3.619058724505602958194804115432455e03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*Le:+3.619058724505602958194804115432455e03716:0:42: ++%Le:+3.619058724505602958194804115432455e+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*Le:+3.619058724505602958194804115432455e+3716:0:42: ++%Le:+1.18973149535723176502126385303097021e4932:1:43:0x1.fffffffffffffffep16383: ++%*Le:+1.18973149535723176502126385303097021e4932:0:43: ++%Le:+1.18973149535723176502126385303097021e+4932:1:44:0x1.fffffffffffffffep16383: ++%*Le:+1.18973149535723176502126385303097021e+4932:0:44: ++%Le:+infinity:1:9:inf: ++%*Le:+infinity:0:9: ++%1Le::0:-1: ++%*1Le::0:-1: ++%1Le:-infinity:0:-1: ++%*1Le:-infinity:0:-1: ++%1Le:-1.18973149535723176502126385303097021e+4932:0:-1: ++%*1Le:-1.18973149535723176502126385303097021e+4932:0:-1: ++%1Le:-1.18973149535723176502126385303097021e4932:0:-1: ++%*1Le:-1.18973149535723176502126385303097021e4932:0:-1: ++%1Le:-3.619058724505602958194804115432455e+3716:0:-1: ++%*1Le:-3.619058724505602958194804115432455e+3716:0:-1: ++%1Le:-3.619058724505602958194804115432455e03716:0:-1: ++%*1Le:-3.619058724505602958194804115432455e03716:0:-1: ++%1Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%*1Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%1Le:-0e+0:0:-1: ++%*1Le:-0e+0:0:-1: ++%1Le:-0e0:0:-1: ++%*1Le:-0e0:0:-1: ++%1Le:-nan(09A_Zaz):0:-1: ++%*1Le:-nan(09A_Zaz):0:-1: ++%1Le:-nan():0:-1: ++%*1Le:-nan():0:-1: ++%1Le:nan():0:-1: ++%*1Le:nan():0:-1: ++%1Le:nan(09A_Zaz):0:-1: ++%*1Le:nan(09A_Zaz):0:-1: ++%1Le:0e0:1:1:0x0: ++%*1Le:0e0:0:1: ++%1Le:0e+0:1:1:0x0: ++%*1Le:0e+0:0:1: ++%1Le:3.36210314311209350626267781732175260e-4932:1:1:0x1.8p1: ++%*1Le:3.36210314311209350626267781732175260e-4932:0:1: ++%1Le:3.619058724505602958194804115432455e03716:1:1:0x1.8p1: ++%*1Le:3.619058724505602958194804115432455e03716:0:1: ++%1Le:3.619058724505602958194804115432455e+3716:1:1:0x1.8p1: ++%*1Le:3.619058724505602958194804115432455e+3716:0:1: ++%1Le:1.18973149535723176502126385303097021e4932:1:1:0x1: ++%*1Le:1.18973149535723176502126385303097021e4932:0:1: ++%1Le:1.18973149535723176502126385303097021e+4932:1:1:0x1: ++%*1Le:1.18973149535723176502126385303097021e+4932:0:1: ++%1Le:infinity:0:-1: ++%*1Le:infinity:0:-1: ++%1Le:+nan():0:-1: ++%*1Le:+nan():0:-1: ++%1Le:+nan(09A_Zaz):0:-1: ++%*1Le:+nan(09A_Zaz):0:-1: ++%1Le:+0e0:0:-1: ++%*1Le:+0e0:0:-1: ++%1Le:+0e+0:0:-1: ++%*1Le:+0e+0:0:-1: ++%1Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%*1Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%1Le:+3.619058724505602958194804115432455e03716:0:-1: ++%*1Le:+3.619058724505602958194804115432455e03716:0:-1: ++%1Le:+3.619058724505602958194804115432455e+3716:0:-1: ++%*1Le:+3.619058724505602958194804115432455e+3716:0:-1: ++%1Le:+1.18973149535723176502126385303097021e4932:0:-1: ++%*1Le:+1.18973149535723176502126385303097021e4932:0:-1: ++%1Le:+1.18973149535723176502126385303097021e+4932:0:-1: ++%*1Le:+1.18973149535723176502126385303097021e+4932:0:-1: ++%1Le:+infinity:0:-1: ++%*1Le:+infinity:0:-1: ++%2Le::0:-1: ++%*2Le::0:-1: ++%2Le:-infinity:0:-1: ++%*2Le:-infinity:0:-1: ++%2Le:-1.18973149535723176502126385303097021e+4932:1:2:-0x1: ++%*2Le:-1.18973149535723176502126385303097021e+4932:0:2: ++%2Le:-1.18973149535723176502126385303097021e4932:1:2:-0x1: ++%*2Le:-1.18973149535723176502126385303097021e4932:0:2: ++%2Le:-3.619058724505602958194804115432455e+3716:1:2:-0x1.8p1: ++%*2Le:-3.619058724505602958194804115432455e+3716:0:2: ++%2Le:-3.619058724505602958194804115432455e03716:1:2:-0x1.8p1: ++%*2Le:-3.619058724505602958194804115432455e03716:0:2: ++%2Le:-3.36210314311209350626267781732175260e-4932:1:2:-0x1.8p1: ++%*2Le:-3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:-0e+0:1:2:-0x0: ++%*2Le:-0e+0:0:2: ++%2Le:-0e0:1:2:-0x0: ++%*2Le:-0e0:0:2: ++%2Le:-nan(09A_Zaz):0:-1: ++%*2Le:-nan(09A_Zaz):0:-1: ++%2Le:-nan():0:-1: ++%*2Le:-nan():0:-1: ++%2Le:nan():0:-1: ++%*2Le:nan():0:-1: ++%2Le:nan(09A_Zaz):0:-1: ++%*2Le:nan(09A_Zaz):0:-1: ++# BZ12701 %2Le:0e0:0:-1: ++# BZ12701 %*2Le:0e0:0:-1: ++# BZ12701 %2Le:0e+0:0:-1: ++# BZ12701 %*2Le:0e+0:0:-1: ++%2Le:3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2Le:3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:3.619058724505602958194804115432455e03716:1:2:0x1.8p1: ++%*2Le:3.619058724505602958194804115432455e03716:0:2: ++%2Le:3.619058724505602958194804115432455e+3716:1:2:0x1.8p1: ++%*2Le:3.619058724505602958194804115432455e+3716:0:2: ++%2Le:1.18973149535723176502126385303097021e4932:1:2:0x1: ++%*2Le:1.18973149535723176502126385303097021e4932:0:2: ++%2Le:1.18973149535723176502126385303097021e+4932:1:2:0x1: ++%*2Le:1.18973149535723176502126385303097021e+4932:0:2: ++%2Le:infinity:0:-1: ++%*2Le:infinity:0:-1: ++%2Le:+nan():0:-1: ++%*2Le:+nan():0:-1: ++%2Le:+nan(09A_Zaz):0:-1: ++%*2Le:+nan(09A_Zaz):0:-1: ++%2Le:+0e0:1:2:0x0: ++%*2Le:+0e0:0:2: ++%2Le:+0e+0:1:2:0x0: ++%*2Le:+0e+0:0:2: ++%2Le:+3.36210314311209350626267781732175260e-4932:1:2:0x1.8p1: ++%*2Le:+3.36210314311209350626267781732175260e-4932:0:2: ++%2Le:+3.619058724505602958194804115432455e03716:1:2:0x1.8p1: ++%*2Le:+3.619058724505602958194804115432455e03716:0:2: ++%2Le:+3.619058724505602958194804115432455e+3716:1:2:0x1.8p1: ++%*2Le:+3.619058724505602958194804115432455e+3716:0:2: ++%2Le:+1.18973149535723176502126385303097021e4932:1:2:0x1: ++%*2Le:+1.18973149535723176502126385303097021e4932:0:2: ++%2Le:+1.18973149535723176502126385303097021e+4932:1:2:0x1: ++%*2Le:+1.18973149535723176502126385303097021e+4932:0:2: ++%2Le:+infinity:0:-1: ++%*2Le:+infinity:0:-1: ++%3Le::0:-1: ++%*3Le::0:-1: ++%3Le:-infinity:0:-1: ++%*3Le:-infinity:0:-1: ++%3Le:-1.18973149535723176502126385303097021e+4932:1:3:-0x1: ++%*3Le:-1.18973149535723176502126385303097021e+4932:0:3: ++%3Le:-1.18973149535723176502126385303097021e4932:1:3:-0x1: ++%*3Le:-1.18973149535723176502126385303097021e4932:0:3: ++%3Le:-3.619058724505602958194804115432455e+3716:1:3:-0x1.8p1: ++%*3Le:-3.619058724505602958194804115432455e+3716:0:3: ++%3Le:-3.619058724505602958194804115432455e03716:1:3:-0x1.8p1: ++%*3Le:-3.619058724505602958194804115432455e03716:0:3: ++%3Le:-3.36210314311209350626267781732175260e-4932:1:3:-0x1.8p1: ++%*3Le:-3.36210314311209350626267781732175260e-4932:0:3: ++# BZ12701 %3Le:-0e+0:0:-1: ++# BZ12701 %*3Le:-0e+0:0:-1: ++# BZ12701 %3Le:-0e0:0:-1: ++# BZ12701 %*3Le:-0e0:0:-1: ++%3Le:-nan(09A_Zaz):0:-1: ++%*3Le:-nan(09A_Zaz):0:-1: ++%3Le:-nan():0:-1: ++%*3Le:-nan():0:-1: ++%3Le:nan():1:3:nan: ++%*3Le:nan():0:3: ++%3Le:nan(09A_Zaz):1:3:nan: ++%*3Le:nan(09A_Zaz):0:3: ++%3Le:0e0:1:3:0x0: ++%*3Le:0e0:0:3: ++# BZ12701 %3Le:0e+0:0:-1: ++# BZ12701 %*3Le:0e+0:0:-1: ++%3Le:3.36210314311209350626267781732175260e-4932:1:3:0x1.a666666666666666p1: ++%*3Le:3.36210314311209350626267781732175260e-4932:0:3: ++%3Le:3.619058724505602958194804115432455e03716:1:3:0x1.ccccccccccccccccp1: ++%*3Le:3.619058724505602958194804115432455e03716:0:3: ++%3Le:3.619058724505602958194804115432455e+3716:1:3:0x1.ccccccccccccccccp1: ++%*3Le:3.619058724505602958194804115432455e+3716:0:3: ++%3Le:1.18973149535723176502126385303097021e4932:1:3:0x1.199999999999999a: ++%*3Le:1.18973149535723176502126385303097021e4932:0:3: ++%3Le:1.18973149535723176502126385303097021e+4932:1:3:0x1.199999999999999a: ++%*3Le:1.18973149535723176502126385303097021e+4932:0:3: ++%3Le:infinity:1:3:inf: ++%*3Le:infinity:0:3: ++%3Le:+nan():0:-1: ++%*3Le:+nan():0:-1: ++%3Le:+nan(09A_Zaz):0:-1: ++%*3Le:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Le:+0e0:0:-1: ++# BZ12701 %*3Le:+0e0:0:-1: ++# BZ12701 %3Le:+0e+0:0:-1: ++# BZ12701 %*3Le:+0e+0:0:-1: ++%3Le:+3.36210314311209350626267781732175260e-4932:1:3:0x1.8p1: ++%*3Le:+3.36210314311209350626267781732175260e-4932:0:3: ++%3Le:+3.619058724505602958194804115432455e03716:1:3:0x1.8p1: ++%*3Le:+3.619058724505602958194804115432455e03716:0:3: ++%3Le:+3.619058724505602958194804115432455e+3716:1:3:0x1.8p1: ++%*3Le:+3.619058724505602958194804115432455e+3716:0:3: ++%3Le:+1.18973149535723176502126385303097021e4932:1:3:0x1: ++%*3Le:+1.18973149535723176502126385303097021e4932:0:3: ++%3Le:+1.18973149535723176502126385303097021e+4932:1:3:0x1: ++%*3Le:+1.18973149535723176502126385303097021e+4932:0:3: ++%3Le:+infinity:0:-1: ++%*3Le:+infinity:0:-1: ++%4Le::0:-1: ++%*4Le::0:-1: ++%4Le:-infinity:1:4:-inf: ++%*4Le:-infinity:0:4: ++%4Le:-1.18973149535723176502126385303097021e+4932:1:4:-0x1.199999999999999a: ++%*4Le:-1.18973149535723176502126385303097021e+4932:0:4: ++%4Le:-1.18973149535723176502126385303097021e4932:1:4:-0x1.199999999999999a: ++%*4Le:-1.18973149535723176502126385303097021e4932:0:4: ++%4Le:-3.619058724505602958194804115432455e+3716:1:4:-0x1.ccccccccccccccccp1: ++%*4Le:-3.619058724505602958194804115432455e+3716:0:4: ++%4Le:-3.619058724505602958194804115432455e03716:1:4:-0x1.ccccccccccccccccp1: ++%*4Le:-3.619058724505602958194804115432455e03716:0:4: ++%4Le:-3.36210314311209350626267781732175260e-4932:1:4:-0x1.a666666666666666p1: ++%*4Le:-3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %4Le:-0e+0:0:-1: ++# BZ12701 %*4Le:-0e+0:0:-1: ++%4Le:-0e0:1:4:-0x0: ++%*4Le:-0e0:0:4: ++%4Le:-nan(09A_Zaz):1:4:-nan: ++%*4Le:-nan(09A_Zaz):0:4: ++%4Le:-nan():1:4:-nan: ++%*4Le:-nan():0:4: ++%4Le:nan():0:-1: ++%*4Le:nan():0:-1: ++%4Le:nan(09A_Zaz):0:-1: ++%*4Le:nan(09A_Zaz):0:-1: ++%4Le:0e0:1:3:0x0: ++%*4Le:0e0:0:3: ++%4Le:0e+0:1:4:0x0: ++%*4Le:0e+0:0:4: ++%4Le:3.36210314311209350626267781732175260e-4932:1:4:0x1.ae147ae147ae147ap1: ++%*4Le:3.36210314311209350626267781732175260e-4932:0:4: ++%4Le:3.619058724505602958194804115432455e03716:1:4:0x1.ce147ae147ae147ap1: ++%*4Le:3.619058724505602958194804115432455e03716:0:4: ++%4Le:3.619058724505602958194804115432455e+3716:1:4:0x1.ce147ae147ae147ap1: ++%*4Le:3.619058724505602958194804115432455e+3716:0:4: ++%4Le:1.18973149535723176502126385303097021e4932:1:4:0x1.2e147ae147ae147a: ++%*4Le:1.18973149535723176502126385303097021e4932:0:4: ++%4Le:1.18973149535723176502126385303097021e+4932:1:4:0x1.2e147ae147ae147a: ++%*4Le:1.18973149535723176502126385303097021e+4932:0:4: ++%4Le:infinity:0:-1: ++%*4Le:infinity:0:-1: ++%4Le:+nan():1:4:nan: ++%*4Le:+nan():0:4: ++%4Le:+nan(09A_Zaz):1:4:nan: ++%*4Le:+nan(09A_Zaz):0:4: ++%4Le:+0e0:1:4:0x0: ++%*4Le:+0e0:0:4: ++# BZ12701 %4Le:+0e+0:0:-1: ++# BZ12701 %*4Le:+0e+0:0:-1: ++%4Le:+3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666p1: ++%*4Le:+3.36210314311209350626267781732175260e-4932:0:4: ++%4Le:+3.619058724505602958194804115432455e03716:1:4:0x1.ccccccccccccccccp1: ++%*4Le:+3.619058724505602958194804115432455e03716:0:4: ++%4Le:+3.619058724505602958194804115432455e+3716:1:4:0x1.ccccccccccccccccp1: ++%*4Le:+3.619058724505602958194804115432455e+3716:0:4: ++%4Le:+1.18973149535723176502126385303097021e4932:1:4:0x1.199999999999999a: ++%*4Le:+1.18973149535723176502126385303097021e4932:0:4: ++%4Le:+1.18973149535723176502126385303097021e+4932:1:4:0x1.199999999999999a: ++%*4Le:+1.18973149535723176502126385303097021e+4932:0:4: ++%4Le:+infinity:1:4:inf: ++%*4Le:+infinity:0:4: ++%40Le::0:-1: ++%*40Le::0:-1: ++%40Le:-infinity:1:9:-inf: ++%*40Le:-infinity:0:9: ++# BZ12701 %40Le:-1.18973149535723176502126385303097021e+4932:0:-1: ++# BZ12701 %*40Le:-1.18973149535723176502126385303097021e+4932:0:-1: ++%40Le:-1.18973149535723176502126385303097021e4932:1:40:-0x1.73ca850660e6e6c4p13: ++%*40Le:-1.18973149535723176502126385303097021e4932:0:40: ++%40Le:-3.619058724505602958194804115432455e+3716:1:40:-0x1.b3a0db6a2433ca1ap124: ++%*40Le:-3.619058724505602958194804115432455e+3716:0:40: ++%40Le:-3.619058724505602958194804115432455e03716:1:40:-0x1.b3a0db6a2433ca1ap124: ++%*40Le:-3.619058724505602958194804115432455e03716:0:40: ++# BZ12701 %40Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40Le:-3.36210314311209350626267781732175260e-4932:0:-1: ++%40Le:-0e+0:1:5:-0x0: ++%*40Le:-0e+0:0:5: ++%40Le:-0e0:1:4:-0x0: ++%*40Le:-0e0:0:4: ++%40Le:-nan(09A_Zaz):1:13:-nan: ++%*40Le:-nan(09A_Zaz):0:13: ++%40Le:-nan():1:6:-nan: ++%*40Le:-nan():0:6: ++%40Le:nan():1:5:nan: ++%*40Le:nan():0:5: ++%40Le:nan(09A_Zaz):1:12:nan: ++%*40Le:nan(09A_Zaz):0:12: ++%40Le:0e0:1:3:0x0: ++%*40Le:0e0:0:3: ++%40Le:0e+0:1:4:0x0: ++%*40Le:0e+0:0:4: ++%40Le:3.36210314311209350626267781732175260e-4932:1:40:0x1.608ac4df6a146bcep-12: ++%*40Le:3.36210314311209350626267781732175260e-4932:0:40: ++%40Le:3.619058724505602958194804115432455e03716:1:40:0x1.39330d0cb7b0b968p1234: ++%*40Le:3.619058724505602958194804115432455e03716:0:40: ++%40Le:3.619058724505602958194804115432455e+3716:1:40:0x1.39330d0cb7b0b968p1234: ++%*40Le:3.619058724505602958194804115432455e+3716:0:40: ++%40Le:1.18973149535723176502126385303097021e4932:1:40:0x1.047ec1b6d6390a5cp163: ++%*40Le:1.18973149535723176502126385303097021e4932:0:40: ++%40Le:1.18973149535723176502126385303097021e+4932:1:40:0x1.73ca850660e6e6c4p13: ++%*40Le:1.18973149535723176502126385303097021e+4932:0:40: ++%40Le:infinity:1:8:inf: ++%*40Le:infinity:0:8: ++%40Le:+nan():1:6:nan: ++%*40Le:+nan():0:6: ++%40Le:+nan(09A_Zaz):1:13:nan: ++%*40Le:+nan(09A_Zaz):0:13: ++%40Le:+0e0:1:4:0x0: ++%*40Le:+0e0:0:4: ++%40Le:+0e+0:1:5:0x0: ++%*40Le:+0e+0:0:5: ++# BZ12701 %40Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40Le:+3.36210314311209350626267781732175260e-4932:0:-1: ++%40Le:+3.619058724505602958194804115432455e03716:1:40:0x1.b3a0db6a2433ca1ap124: ++%*40Le:+3.619058724505602958194804115432455e03716:0:40: ++%40Le:+3.619058724505602958194804115432455e+3716:1:40:0x1.b3a0db6a2433ca1ap124: ++%*40Le:+3.619058724505602958194804115432455e+3716:0:40: ++%40Le:+1.18973149535723176502126385303097021e4932:1:40:0x1.73ca850660e6e6c4p13: ++%*40Le:+1.18973149535723176502126385303097021e4932:0:40: ++# BZ12701 %40Le:+1.18973149535723176502126385303097021e+4932:0:-1: ++# BZ12701 %*40Le:+1.18973149535723176502126385303097021e+4932:0:-1: ++%40Le:+infinity:1:9:inf: ++%*40Le:+infinity:0:9: ++%48Le::0:-1: ++%*48Le::0:-1: ++%48Le:-infinity:1:9:-inf: ++%*48Le:-infinity:0:9: ++%48Le:-1.18973149535723176502126385303097021e+4932:1:44:-0x1.fffffffffffffffep16383: ++%*48Le:-1.18973149535723176502126385303097021e+4932:0:44: ++%48Le:-1.18973149535723176502126385303097021e4932:1:43:-0x1.fffffffffffffffep16383: ++%*48Le:-1.18973149535723176502126385303097021e4932:0:43: ++%48Le:-3.619058724505602958194804115432455e+3716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:-3.619058724505602958194804115432455e+3716:0:42: ++%48Le:-3.619058724505602958194804115432455e03716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:-3.619058724505602958194804115432455e03716:0:42: ++%48Le:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*48Le:-3.36210314311209350626267781732175260e-4932:0:44: ++%48Le:-0e+0:1:5:-0x0: ++%*48Le:-0e+0:0:5: ++%48Le:-0e0:1:4:-0x0: ++%*48Le:-0e0:0:4: ++%48Le:-nan(09A_Zaz):1:13:-nan: ++%*48Le:-nan(09A_Zaz):0:13: ++%48Le:-nan():1:6:-nan: ++%*48Le:-nan():0:6: ++%48Le:nan():1:5:nan: ++%*48Le:nan():0:5: ++%48Le:nan(09A_Zaz):1:12:nan: ++%*48Le:nan(09A_Zaz):0:12: ++%48Le:0e0:1:3:0x0: ++%*48Le:0e0:0:3: ++%48Le:0e+0:1:4:0x0: ++%*48Le:0e+0:0:4: ++%48Le:3.36210314311209350626267781732175260e-4932:1:43:0x1p-16382: ++%*48Le:3.36210314311209350626267781732175260e-4932:0:43: ++%48Le:3.619058724505602958194804115432455e03716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:3.619058724505602958194804115432455e03716:0:41: ++%48Le:3.619058724505602958194804115432455e+3716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:3.619058724505602958194804115432455e+3716:0:41: ++%48Le:1.18973149535723176502126385303097021e4932:1:42:0x1.fffffffffffffffep16383: ++%*48Le:1.18973149535723176502126385303097021e4932:0:42: ++%48Le:1.18973149535723176502126385303097021e+4932:1:43:0x1.fffffffffffffffep16383: ++%*48Le:1.18973149535723176502126385303097021e+4932:0:43: ++%48Le:infinity:1:8:inf: ++%*48Le:infinity:0:8: ++%48Le:+nan():1:6:nan: ++%*48Le:+nan():0:6: ++%48Le:+nan(09A_Zaz):1:13:nan: ++%*48Le:+nan(09A_Zaz):0:13: ++%48Le:+0e0:1:4:0x0: ++%*48Le:+0e0:0:4: ++%48Le:+0e+0:1:5:0x0: ++%*48Le:+0e+0:0:5: ++%48Le:+3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48Le:+3.36210314311209350626267781732175260e-4932:0:44: ++%48Le:+3.619058724505602958194804115432455e03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:+3.619058724505602958194804115432455e03716:0:42: ++%48Le:+3.619058724505602958194804115432455e+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le:+3.619058724505602958194804115432455e+3716:0:42: ++%48Le:+1.18973149535723176502126385303097021e4932:1:43:0x1.fffffffffffffffep16383: ++%*48Le:+1.18973149535723176502126385303097021e4932:0:43: ++%48Le:+1.18973149535723176502126385303097021e+4932:1:44:0x1.fffffffffffffffep16383: ++%*48Le:+1.18973149535723176502126385303097021e+4932:0:44: ++%48Le:+infinity:1:9:inf: ++%*48Le:+infinity:0:9: ++%3Le: :0:-1: ++%*3Le: :0:-1: ++%3Le: -infinity:0:-1: ++%*3Le: -infinity:0:-1: ++%3Le: -1.18973149535723176502126385303097021e+4932:1:4:-0x1: ++%*3Le: -1.18973149535723176502126385303097021e+4932:0:4: ++%3Le: -1.18973149535723176502126385303097021e4932:1:4:-0x1: ++%*3Le: -1.18973149535723176502126385303097021e4932:0:4: ++%3Le: -3.619058724505602958194804115432455e+3716:1:4:-0x1.8p1: ++%*3Le: -3.619058724505602958194804115432455e+3716:0:4: ++%3Le: -3.619058724505602958194804115432455e03716:1:4:-0x1.8p1: ++%*3Le: -3.619058724505602958194804115432455e03716:0:4: ++%3Le: -3.36210314311209350626267781732175260e-4932:1:4:-0x1.8p1: ++%*3Le: -3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %3Le: -0e+0:0:-1: ++# BZ12701 %*3Le: -0e+0:0:-1: ++# BZ12701 %3Le: -0e0:0:-1: ++# BZ12701 %*3Le: -0e0:0:-1: ++%3Le: -nan(09A_Zaz):0:-1: ++%*3Le: -nan(09A_Zaz):0:-1: ++%3Le: -nan():0:-1: ++%*3Le: -nan():0:-1: ++%3Le: nan():1:4:nan: ++%*3Le: nan():0:4: ++%3Le: nan(09A_Zaz):1:4:nan: ++%*3Le: nan(09A_Zaz):0:4: ++%3Le: 0e0:1:4:0x0: ++%*3Le: 0e0:0:4: ++# BZ12701 %3Le: 0e+0:0:-1: ++# BZ12701 %*3Le: 0e+0:0:-1: ++%3Le: 3.36210314311209350626267781732175260e-4932:1:4:0x1.a666666666666666p1: ++%*3Le: 3.36210314311209350626267781732175260e-4932:0:4: ++%3Le: 3.619058724505602958194804115432455e03716:1:4:0x1.ccccccccccccccccp1: ++%*3Le: 3.619058724505602958194804115432455e03716:0:4: ++%3Le: 3.619058724505602958194804115432455e+3716:1:4:0x1.ccccccccccccccccp1: ++%*3Le: 3.619058724505602958194804115432455e+3716:0:4: ++%3Le: 1.18973149535723176502126385303097021e4932:1:4:0x1.199999999999999a: ++%*3Le: 1.18973149535723176502126385303097021e4932:0:4: ++%3Le: 1.18973149535723176502126385303097021e+4932:1:4:0x1.199999999999999a: ++%*3Le: 1.18973149535723176502126385303097021e+4932:0:4: ++%3Le: infinity:1:4:inf: ++%*3Le: infinity:0:4: ++%3Le: +nan():0:-1: ++%*3Le: +nan():0:-1: ++%3Le: +nan(09A_Zaz):0:-1: ++%*3Le: +nan(09A_Zaz):0:-1: ++# BZ12701 %3Le: +0e0:0:-1: ++# BZ12701 %*3Le: +0e0:0:-1: ++# BZ12701 %3Le: +0e+0:0:-1: ++# BZ12701 %*3Le: +0e+0:0:-1: ++%3Le: +3.36210314311209350626267781732175260e-4932:1:4:0x1.8p1: ++%*3Le: +3.36210314311209350626267781732175260e-4932:0:4: ++%3Le: +3.619058724505602958194804115432455e03716:1:4:0x1.8p1: ++%*3Le: +3.619058724505602958194804115432455e03716:0:4: ++%3Le: +3.619058724505602958194804115432455e+3716:1:4:0x1.8p1: ++%*3Le: +3.619058724505602958194804115432455e+3716:0:4: ++%3Le: +1.18973149535723176502126385303097021e4932:1:4:0x1: ++%*3Le: +1.18973149535723176502126385303097021e4932:0:4: ++%3Le: +1.18973149535723176502126385303097021e+4932:1:4:0x1: ++%*3Le: +1.18973149535723176502126385303097021e+4932:0:4: ++%3Le: +infinity:0:-1: ++%*3Le: +infinity:0:-1: ++%48Le: :0:-1: ++%*48Le: :0:-1: ++%48Le: -infinity:1:10:-inf: ++%*48Le: -infinity:0:10: ++%48Le: -1.18973149535723176502126385303097021e+4932:1:45:-0x1.fffffffffffffffep16383: ++%*48Le: -1.18973149535723176502126385303097021e+4932:0:45: ++%48Le: -1.18973149535723176502126385303097021e4932:1:44:-0x1.fffffffffffffffep16383: ++%*48Le: -1.18973149535723176502126385303097021e4932:0:44: ++%48Le: -3.619058724505602958194804115432455e+3716:1:43:-0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: -3.619058724505602958194804115432455e+3716:0:43: ++%48Le: -3.619058724505602958194804115432455e03716:1:43:-0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: -3.619058724505602958194804115432455e03716:0:43: ++%48Le: -3.36210314311209350626267781732175260e-4932:1:45:-0x1p-16382: ++%*48Le: -3.36210314311209350626267781732175260e-4932:0:45: ++%48Le: -0e+0:1:6:-0x0: ++%*48Le: -0e+0:0:6: ++%48Le: -0e0:1:5:-0x0: ++%*48Le: -0e0:0:5: ++%48Le: -nan(09A_Zaz):1:14:-nan: ++%*48Le: -nan(09A_Zaz):0:14: ++%48Le: -nan():1:7:-nan: ++%*48Le: -nan():0:7: ++%48Le: nan():1:6:nan: ++%*48Le: nan():0:6: ++%48Le: nan(09A_Zaz):1:13:nan: ++%*48Le: nan(09A_Zaz):0:13: ++%48Le: 0e0:1:4:0x0: ++%*48Le: 0e0:0:4: ++%48Le: 0e+0:1:5:0x0: ++%*48Le: 0e+0:0:5: ++%48Le: 3.36210314311209350626267781732175260e-4932:1:44:0x1p-16382: ++%*48Le: 3.36210314311209350626267781732175260e-4932:0:44: ++%48Le: 3.619058724505602958194804115432455e03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: 3.619058724505602958194804115432455e03716:0:42: ++%48Le: 3.619058724505602958194804115432455e+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: 3.619058724505602958194804115432455e+3716:0:42: ++%48Le: 1.18973149535723176502126385303097021e4932:1:43:0x1.fffffffffffffffep16383: ++%*48Le: 1.18973149535723176502126385303097021e4932:0:43: ++%48Le: 1.18973149535723176502126385303097021e+4932:1:44:0x1.fffffffffffffffep16383: ++%*48Le: 1.18973149535723176502126385303097021e+4932:0:44: ++%48Le: infinity:1:9:inf: ++%*48Le: infinity:0:9: ++%48Le: +nan():1:7:nan: ++%*48Le: +nan():0:7: ++%48Le: +nan(09A_Zaz):1:14:nan: ++%*48Le: +nan(09A_Zaz):0:14: ++%48Le: +0e0:1:5:0x0: ++%*48Le: +0e0:0:5: ++%48Le: +0e+0:1:6:0x0: ++%*48Le: +0e+0:0:6: ++%48Le: +3.36210314311209350626267781732175260e-4932:1:45:0x1p-16382: ++%*48Le: +3.36210314311209350626267781732175260e-4932:0:45: ++%48Le: +3.619058724505602958194804115432455e03716:1:43:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: +3.619058724505602958194804115432455e03716:0:43: ++%48Le: +3.619058724505602958194804115432455e+3716:1:43:0x1.1a2b3c4d5e6f7808p12346: ++%*48Le: +3.619058724505602958194804115432455e+3716:0:43: ++%48Le: +1.18973149535723176502126385303097021e4932:1:44:0x1.fffffffffffffffep16383: ++%*48Le: +1.18973149535723176502126385303097021e4932:0:44: ++%48Le: +1.18973149535723176502126385303097021e+4932:1:45:0x1.fffffffffffffffep16383: ++%*48Le: +1.18973149535723176502126385303097021e+4932:0:45: ++%48Le: +infinity:1:10:inf: ++%*48Le: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input +new file mode 100644 +index 0000000000000000..2362eab7e1e3702b +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ee.input +@@ -0,0 +1,558 @@ ++%LE::0:-1: ++%*LE::0:-1: ++%LE:-INFINITY:1:9:-inf: ++%*LE:-INFINITY:0:9: ++%LE:-1.18973149535723176502126385303097021E+4932:1:44:-0x1.fffffffffffffffep16383: ++%*LE:-1.18973149535723176502126385303097021E+4932:0:44: ++%LE:-1.18973149535723176502126385303097021E4932:1:43:-0x1.fffffffffffffffep16383: ++%*LE:-1.18973149535723176502126385303097021E4932:0:43: ++%LE:-3.619058724505602958194804115432455E+3716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*LE:-3.619058724505602958194804115432455E+3716:0:42: ++%LE:-3.619058724505602958194804115432455E03716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*LE:-3.619058724505602958194804115432455E03716:0:42: ++%LE:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*LE:-3.36210314311209350626267781732175260e-4932:0:44: ++%LE:-0E+0:1:5:-0x0: ++%*LE:-0E+0:0:5: ++%LE:-0E0:1:4:-0x0: ++%*LE:-0E0:0:4: ++%LE:-NAN(09A_Zaz):1:13:-nan: ++%*LE:-NAN(09A_Zaz):0:13: ++%LE:-NAN():1:6:-nan: ++%*LE:-NAN():0:6: ++%LE:NAN():1:5:nan: ++%*LE:NAN():0:5: ++%LE:NAN(09A_Zaz):1:12:nan: ++%*LE:NAN(09A_Zaz):0:12: ++%LE:0E0:1:3:0x0: ++%*LE:0E0:0:3: ++%LE:0E+0:1:4:0x0: ++%*LE:0E+0:0:4: ++%LE:3.36210314311209350626267781732175260E-4932:1:43:0x1p-16382: ++%*LE:3.36210314311209350626267781732175260E-4932:0:43: ++%LE:3.619058724505602958194804115432455E03716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*LE:3.619058724505602958194804115432455E03716:0:41: ++%LE:3.619058724505602958194804115432455E+3716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*LE:3.619058724505602958194804115432455E+3716:0:41: ++%LE:1.18973149535723176502126385303097021E4932:1:42:0x1.fffffffffffffffep16383: ++%*LE:1.18973149535723176502126385303097021E4932:0:42: ++%LE:1.18973149535723176502126385303097021E+4932:1:43:0x1.fffffffffffffffep16383: ++%*LE:1.18973149535723176502126385303097021E+4932:0:43: ++%LE:INFINITY:1:8:inf: ++%*LE:INFINITY:0:8: ++%LE:+NAN():1:6:nan: ++%*LE:+NAN():0:6: ++%LE:+NAN(09A_Zaz):1:13:nan: ++%*LE:+NAN(09A_Zaz):0:13: ++%LE:+0E0:1:4:0x0: ++%*LE:+0E0:0:4: ++%LE:+0E+0:1:5:0x0: ++%*LE:+0E+0:0:5: ++%LE:+3.36210314311209350626267781732175260E-4932:1:44:0x1p-16382: ++%*LE:+3.36210314311209350626267781732175260E-4932:0:44: ++%LE:+3.619058724505602958194804115432455E03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*LE:+3.619058724505602958194804115432455E03716:0:42: ++%LE:+3.619058724505602958194804115432455E+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*LE:+3.619058724505602958194804115432455E+3716:0:42: ++%LE:+1.18973149535723176502126385303097021E4932:1:43:0x1.fffffffffffffffep16383: ++%*LE:+1.18973149535723176502126385303097021E4932:0:43: ++%LE:+1.18973149535723176502126385303097021E+4932:1:44:0x1.fffffffffffffffep16383: ++%*LE:+1.18973149535723176502126385303097021E+4932:0:44: ++%LE:+INFINITY:1:9:inf: ++%*LE:+INFINITY:0:9: ++%1LE::0:-1: ++%*1LE::0:-1: ++%1LE:-INFINITY:0:-1: ++%*1LE:-INFINITY:0:-1: ++%1LE:-1.18973149535723176502126385303097021E+4932:0:-1: ++%*1LE:-1.18973149535723176502126385303097021E+4932:0:-1: ++%1LE:-1.18973149535723176502126385303097021E4932:0:-1: ++%*1LE:-1.18973149535723176502126385303097021E4932:0:-1: ++%1LE:-3.619058724505602958194804115432455E+3716:0:-1: ++%*1LE:-3.619058724505602958194804115432455E+3716:0:-1: ++%1LE:-3.619058724505602958194804115432455E03716:0:-1: ++%*1LE:-3.619058724505602958194804115432455E03716:0:-1: ++%1LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%*1LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%1LE:-0E+0:0:-1: ++%*1LE:-0E+0:0:-1: ++%1LE:-0E0:0:-1: ++%*1LE:-0E0:0:-1: ++%1LE:-NAN(09A_Zaz):0:-1: ++%*1LE:-NAN(09A_Zaz):0:-1: ++%1LE:-NAN():0:-1: ++%*1LE:-NAN():0:-1: ++%1LE:NAN():0:-1: ++%*1LE:NAN():0:-1: ++%1LE:NAN(09A_Zaz):0:-1: ++%*1LE:NAN(09A_Zaz):0:-1: ++%1LE:0E0:1:1:0x0: ++%*1LE:0E0:0:1: ++%1LE:0E+0:1:1:0x0: ++%*1LE:0E+0:0:1: ++%1LE:3.36210314311209350626267781732175260E-4932:1:1:0x1.8p1: ++%*1LE:3.36210314311209350626267781732175260E-4932:0:1: ++%1LE:3.619058724505602958194804115432455E03716:1:1:0x1.8p1: ++%*1LE:3.619058724505602958194804115432455E03716:0:1: ++%1LE:3.619058724505602958194804115432455E+3716:1:1:0x1.8p1: ++%*1LE:3.619058724505602958194804115432455E+3716:0:1: ++%1LE:1.18973149535723176502126385303097021E4932:1:1:0x1: ++%*1LE:1.18973149535723176502126385303097021E4932:0:1: ++%1LE:1.18973149535723176502126385303097021E+4932:1:1:0x1: ++%*1LE:1.18973149535723176502126385303097021E+4932:0:1: ++%1LE:INFINITY:0:-1: ++%*1LE:INFINITY:0:-1: ++%1LE:+NAN():0:-1: ++%*1LE:+NAN():0:-1: ++%1LE:+NAN(09A_Zaz):0:-1: ++%*1LE:+NAN(09A_Zaz):0:-1: ++%1LE:+0E0:0:-1: ++%*1LE:+0E0:0:-1: ++%1LE:+0E+0:0:-1: ++%*1LE:+0E+0:0:-1: ++%1LE:+3.36210314311209350626267781732175260E-4932:0:-1: ++%*1LE:+3.36210314311209350626267781732175260E-4932:0:-1: ++%1LE:+3.619058724505602958194804115432455E03716:0:-1: ++%*1LE:+3.619058724505602958194804115432455E03716:0:-1: ++%1LE:+3.619058724505602958194804115432455E+3716:0:-1: ++%*1LE:+3.619058724505602958194804115432455E+3716:0:-1: ++%1LE:+1.18973149535723176502126385303097021E4932:0:-1: ++%*1LE:+1.18973149535723176502126385303097021E4932:0:-1: ++%1LE:+1.18973149535723176502126385303097021E+4932:0:-1: ++%*1LE:+1.18973149535723176502126385303097021E+4932:0:-1: ++%1LE:+INFINITY:0:-1: ++%*1LE:+INFINITY:0:-1: ++%2LE::0:-1: ++%*2LE::0:-1: ++%2LE:-INFINITY:0:-1: ++%*2LE:-INFINITY:0:-1: ++%2LE:-1.18973149535723176502126385303097021E+4932:1:2:-0x1: ++%*2LE:-1.18973149535723176502126385303097021E+4932:0:2: ++%2LE:-1.18973149535723176502126385303097021E4932:1:2:-0x1: ++%*2LE:-1.18973149535723176502126385303097021E4932:0:2: ++%2LE:-3.619058724505602958194804115432455E+3716:1:2:-0x1.8p1: ++%*2LE:-3.619058724505602958194804115432455E+3716:0:2: ++%2LE:-3.619058724505602958194804115432455E03716:1:2:-0x1.8p1: ++%*2LE:-3.619058724505602958194804115432455E03716:0:2: ++%2LE:-3.36210314311209350626267781732175260e-4932:1:2:-0x1.8p1: ++%*2LE:-3.36210314311209350626267781732175260e-4932:0:2: ++%2LE:-0E+0:1:2:-0x0: ++%*2LE:-0E+0:0:2: ++%2LE:-0E0:1:2:-0x0: ++%*2LE:-0E0:0:2: ++%2LE:-NAN(09A_Zaz):0:-1: ++%*2LE:-NAN(09A_Zaz):0:-1: ++%2LE:-NAN():0:-1: ++%*2LE:-NAN():0:-1: ++%2LE:NAN():0:-1: ++%*2LE:NAN():0:-1: ++%2LE:NAN(09A_Zaz):0:-1: ++%*2LE:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LE:0E0:0:-1: ++# BZ12701 %*2LE:0E0:0:-1: ++# BZ12701 %2LE:0E+0:0:-1: ++# BZ12701 %*2LE:0E+0:0:-1: ++%2LE:3.36210314311209350626267781732175260E-4932:1:2:0x1.8p1: ++%*2LE:3.36210314311209350626267781732175260E-4932:0:2: ++%2LE:3.619058724505602958194804115432455E03716:1:2:0x1.8p1: ++%*2LE:3.619058724505602958194804115432455E03716:0:2: ++%2LE:3.619058724505602958194804115432455E+3716:1:2:0x1.8p1: ++%*2LE:3.619058724505602958194804115432455E+3716:0:2: ++%2LE:1.18973149535723176502126385303097021E4932:1:2:0x1: ++%*2LE:1.18973149535723176502126385303097021E4932:0:2: ++%2LE:1.18973149535723176502126385303097021E+4932:1:2:0x1: ++%*2LE:1.18973149535723176502126385303097021E+4932:0:2: ++%2LE:INFINITY:0:-1: ++%*2LE:INFINITY:0:-1: ++%2LE:+NAN():0:-1: ++%*2LE:+NAN():0:-1: ++%2LE:+NAN(09A_Zaz):0:-1: ++%*2LE:+NAN(09A_Zaz):0:-1: ++%2LE:+0E0:1:2:0x0: ++%*2LE:+0E0:0:2: ++%2LE:+0E+0:1:2:0x0: ++%*2LE:+0E+0:0:2: ++%2LE:+3.36210314311209350626267781732175260E-4932:1:2:0x1.8p1: ++%*2LE:+3.36210314311209350626267781732175260E-4932:0:2: ++%2LE:+3.619058724505602958194804115432455E03716:1:2:0x1.8p1: ++%*2LE:+3.619058724505602958194804115432455E03716:0:2: ++%2LE:+3.619058724505602958194804115432455E+3716:1:2:0x1.8p1: ++%*2LE:+3.619058724505602958194804115432455E+3716:0:2: ++%2LE:+1.18973149535723176502126385303097021E4932:1:2:0x1: ++%*2LE:+1.18973149535723176502126385303097021E4932:0:2: ++%2LE:+1.18973149535723176502126385303097021E+4932:1:2:0x1: ++%*2LE:+1.18973149535723176502126385303097021E+4932:0:2: ++%2LE:+INFINITY:0:-1: ++%*2LE:+INFINITY:0:-1: ++%3LE::0:-1: ++%*3LE::0:-1: ++%3LE:-INFINITY:0:-1: ++%*3LE:-INFINITY:0:-1: ++%3LE:-1.18973149535723176502126385303097021E+4932:1:3:-0x1: ++%*3LE:-1.18973149535723176502126385303097021E+4932:0:3: ++%3LE:-1.18973149535723176502126385303097021E4932:1:3:-0x1: ++%*3LE:-1.18973149535723176502126385303097021E4932:0:3: ++%3LE:-3.619058724505602958194804115432455E+3716:1:3:-0x1.8p1: ++%*3LE:-3.619058724505602958194804115432455E+3716:0:3: ++%3LE:-3.619058724505602958194804115432455E03716:1:3:-0x1.8p1: ++%*3LE:-3.619058724505602958194804115432455E03716:0:3: ++%3LE:-3.36210314311209350626267781732175260e-4932:1:3:-0x1.8p1: ++%*3LE:-3.36210314311209350626267781732175260e-4932:0:3: ++# BZ12701 %3LE:-0E+0:0:-1: ++# BZ12701 %*3LE:-0E+0:0:-1: ++# BZ12701 %3LE:-0E0:0:-1: ++# BZ12701 %*3LE:-0E0:0:-1: ++%3LE:-NAN(09A_Zaz):0:-1: ++%*3LE:-NAN(09A_Zaz):0:-1: ++%3LE:-NAN():0:-1: ++%*3LE:-NAN():0:-1: ++%3LE:NAN():1:3:nan: ++%*3LE:NAN():0:3: ++%3LE:NAN(09A_Zaz):1:3:nan: ++%*3LE:NAN(09A_Zaz):0:3: ++%3LE:0E0:1:3:0x0: ++%*3LE:0E0:0:3: ++# BZ12701 %3LE:0E+0:0:-1: ++# BZ12701 %*3LE:0E+0:0:-1: ++%3LE:3.36210314311209350626267781732175260E-4932:1:3:0x1.a666666666666666p1: ++%*3LE:3.36210314311209350626267781732175260E-4932:0:3: ++%3LE:3.619058724505602958194804115432455E03716:1:3:0x1.ccccccccccccccccp1: ++%*3LE:3.619058724505602958194804115432455E03716:0:3: ++%3LE:3.619058724505602958194804115432455E+3716:1:3:0x1.ccccccccccccccccp1: ++%*3LE:3.619058724505602958194804115432455E+3716:0:3: ++%3LE:1.18973149535723176502126385303097021E4932:1:3:0x1.199999999999999a: ++%*3LE:1.18973149535723176502126385303097021E4932:0:3: ++%3LE:1.18973149535723176502126385303097021E+4932:1:3:0x1.199999999999999a: ++%*3LE:1.18973149535723176502126385303097021E+4932:0:3: ++%3LE:INFINITY:1:3:inf: ++%*3LE:INFINITY:0:3: ++%3LE:+NAN():0:-1: ++%*3LE:+NAN():0:-1: ++%3LE:+NAN(09A_Zaz):0:-1: ++%*3LE:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE:+0E0:0:-1: ++# BZ12701 %*3LE:+0E0:0:-1: ++# BZ12701 %3LE:+0E+0:0:-1: ++# BZ12701 %*3LE:+0E+0:0:-1: ++%3LE:+3.36210314311209350626267781732175260E-4932:1:3:0x1.8p1: ++%*3LE:+3.36210314311209350626267781732175260E-4932:0:3: ++%3LE:+3.619058724505602958194804115432455E03716:1:3:0x1.8p1: ++%*3LE:+3.619058724505602958194804115432455E03716:0:3: ++%3LE:+3.619058724505602958194804115432455E+3716:1:3:0x1.8p1: ++%*3LE:+3.619058724505602958194804115432455E+3716:0:3: ++%3LE:+1.18973149535723176502126385303097021E4932:1:3:0x1: ++%*3LE:+1.18973149535723176502126385303097021E4932:0:3: ++%3LE:+1.18973149535723176502126385303097021E+4932:1:3:0x1: ++%*3LE:+1.18973149535723176502126385303097021E+4932:0:3: ++%3LE:+INFINITY:0:-1: ++%*3LE:+INFINITY:0:-1: ++%4LE::0:-1: ++%*4LE::0:-1: ++%4LE:-INFINITY:1:4:-inf: ++%*4LE:-INFINITY:0:4: ++%4LE:-1.18973149535723176502126385303097021E+4932:1:4:-0x1.199999999999999a: ++%*4LE:-1.18973149535723176502126385303097021E+4932:0:4: ++%4LE:-1.18973149535723176502126385303097021E4932:1:4:-0x1.199999999999999a: ++%*4LE:-1.18973149535723176502126385303097021E4932:0:4: ++%4LE:-3.619058724505602958194804115432455E+3716:1:4:-0x1.ccccccccccccccccp1: ++%*4LE:-3.619058724505602958194804115432455E+3716:0:4: ++%4LE:-3.619058724505602958194804115432455E03716:1:4:-0x1.ccccccccccccccccp1: ++%*4LE:-3.619058724505602958194804115432455E03716:0:4: ++%4LE:-3.36210314311209350626267781732175260e-4932:1:4:-0x1.a666666666666666p1: ++%*4LE:-3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %4LE:-0E+0:0:-1: ++# BZ12701 %*4LE:-0E+0:0:-1: ++%4LE:-0E0:1:4:-0x0: ++%*4LE:-0E0:0:4: ++%4LE:-NAN(09A_Zaz):1:4:-nan: ++%*4LE:-NAN(09A_Zaz):0:4: ++%4LE:-NAN():1:4:-nan: ++%*4LE:-NAN():0:4: ++%4LE:NAN():0:-1: ++%*4LE:NAN():0:-1: ++%4LE:NAN(09A_Zaz):0:-1: ++%*4LE:NAN(09A_Zaz):0:-1: ++%4LE:0E0:1:3:0x0: ++%*4LE:0E0:0:3: ++%4LE:0E+0:1:4:0x0: ++%*4LE:0E+0:0:4: ++%4LE:3.36210314311209350626267781732175260E-4932:1:4:0x1.ae147ae147ae147Ap1: ++%*4LE:3.36210314311209350626267781732175260E-4932:0:4: ++%4LE:3.619058724505602958194804115432455E03716:1:4:0x1.ce147ae147ae147ap1: ++%*4LE:3.619058724505602958194804115432455E03716:0:4: ++%4LE:3.619058724505602958194804115432455E+3716:1:4:0x1.ce147ae147ae147ap1: ++%*4LE:3.619058724505602958194804115432455E+3716:0:4: ++%4LE:1.18973149535723176502126385303097021E4932:1:4:0x1.2e147ae147ae147a: ++%*4LE:1.18973149535723176502126385303097021E4932:0:4: ++%4LE:1.18973149535723176502126385303097021E+4932:1:4:0x1.2e147ae147ae147a: ++%*4LE:1.18973149535723176502126385303097021E+4932:0:4: ++%4LE:INFINITY:0:-1: ++%*4LE:INFINITY:0:-1: ++%4LE:+NAN():1:4:nan: ++%*4LE:+NAN():0:4: ++%4LE:+NAN(09A_Zaz):1:4:nan: ++%*4LE:+NAN(09A_Zaz):0:4: ++%4LE:+0E0:1:4:0x0: ++%*4LE:+0E0:0:4: ++# BZ12701 %4LE:+0E+0:0:-1: ++# BZ12701 %*4LE:+0E+0:0:-1: ++%4LE:+3.36210314311209350626267781732175260E-4932:1:4:0x1.a666666666666666p1: ++%*4LE:+3.36210314311209350626267781732175260E-4932:0:4: ++%4LE:+3.619058724505602958194804115432455E03716:1:4:0x1.ccccccccccccccccp1: ++%*4LE:+3.619058724505602958194804115432455E03716:0:4: ++%4LE:+3.619058724505602958194804115432455E+3716:1:4:0x1.ccccccccccccccccp1: ++%*4LE:+3.619058724505602958194804115432455E+3716:0:4: ++%4LE:+1.18973149535723176502126385303097021E4932:1:4:0x1.199999999999999a: ++%*4LE:+1.18973149535723176502126385303097021E4932:0:4: ++%4LE:+1.18973149535723176502126385303097021E+4932:1:4:0x1.199999999999999a: ++%*4LE:+1.18973149535723176502126385303097021E+4932:0:4: ++%4LE:+INFINITY:1:4:inf: ++%*4LE:+INFINITY:0:4: ++%40LE::0:-1: ++%*40LE::0:-1: ++%40LE:-INFINITY:1:9:-inf: ++%*40LE:-INFINITY:0:9: ++# BZ12701 %40LE:-1.18973149535723176502126385303097021E+4932:0:-1: ++# BZ12701 %*40LE:-1.18973149535723176502126385303097021E+4932:0:-1: ++%40LE:-1.18973149535723176502126385303097021E4932:1:40:-0x1.73CA850660E6E6C4p13: ++%*40LE:-1.18973149535723176502126385303097021E4932:0:40: ++%40LE:-3.619058724505602958194804115432455E+3716:1:40:-0x1.b3a0db6a2433ca1ap124: ++%*40LE:-3.619058724505602958194804115432455E+3716:0:40: ++%40LE:-3.619058724505602958194804115432455E03716:1:40:-0x1.b3a0db6a2433ca1ap124: ++%*40LE:-3.619058724505602958194804115432455E03716:0:40: ++# BZ12701 %40LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++# BZ12701 %*40LE:-3.36210314311209350626267781732175260e-4932:0:-1: ++%40LE:-0E+0:1:5:-0x0: ++%*40LE:-0E+0:0:5: ++%40LE:-0E0:1:4:-0x0: ++%*40LE:-0E0:0:4: ++%40LE:-NAN(09A_Zaz):1:13:-nan: ++%*40LE:-NAN(09A_Zaz):0:13: ++%40LE:-NAN():1:6:-nan: ++%*40LE:-NAN():0:6: ++%40LE:NAN():1:5:nan: ++%*40LE:NAN():0:5: ++%40LE:NAN(09A_Zaz):1:12:nan: ++%*40LE:NAN(09A_Zaz):0:12: ++%40LE:0E0:1:3:0x0: ++%*40LE:0E0:0:3: ++%40LE:0E+0:1:4:0x0: ++%*40LE:0E+0:0:4: ++%40LE:3.36210314311209350626267781732175260E-4932:1:40:0x1.608ac4df6a146bcep-12: ++%*40LE:3.36210314311209350626267781732175260E-4932:0:40: ++%40LE:3.619058724505602958194804115432455E03716:1:40:0x1.39330d0cb7b0b968p1234: ++%*40LE:3.619058724505602958194804115432455E03716:0:40: ++%40LE:3.619058724505602958194804115432455E+3716:1:40:0x1.39330d0cb7b0b968p1234: ++%*40LE:3.619058724505602958194804115432455E+3716:0:40: ++%40LE:1.18973149535723176502126385303097021E4932:1:40:0x1.047ec1b6d6390a5cp163: ++%*40LE:1.18973149535723176502126385303097021E4932:0:40: ++%40LE:1.18973149535723176502126385303097021E+4932:1:40:0x1.73ca850660e6e6c4p13: ++%*40LE:1.18973149535723176502126385303097021E+4932:0:40: ++%40LE:INFINITY:1:8:inf: ++%*40LE:INFINITY:0:8: ++%40LE:+NAN():1:6:nan: ++%*40LE:+NAN():0:6: ++%40LE:+NAN(09A_Zaz):1:13:nan: ++%*40LE:+NAN(09A_Zaz):0:13: ++%40LE:+0E0:1:4:0x0: ++%*40LE:+0E0:0:4: ++%40LE:+0E+0:1:5:0x0: ++%*40LE:+0E+0:0:5: ++# BZ12701 %40LE:+3.36210314311209350626267781732175260E-4932:0:-1: ++# BZ12701 %*40LE:+3.36210314311209350626267781732175260E-4932:0:-1: ++%40LE:+3.619058724505602958194804115432455E03716:1:40:0x1.b3a0db6a2433ca1ap124: ++%*40LE:+3.619058724505602958194804115432455E03716:0:40: ++%40LE:+3.619058724505602958194804115432455E+3716:1:40:0x1.b3a0db6a2433ca1ap124: ++%*40LE:+3.619058724505602958194804115432455E+3716:0:40: ++%40LE:+1.18973149535723176502126385303097021E4932:1:40:0x1.73CA850660E6E6C4p13: ++%*40LE:+1.18973149535723176502126385303097021E4932:0:40: ++# BZ12701 %40LE:+1.18973149535723176502126385303097021E+4932:0:-1: ++# BZ12701 %*40LE:+1.18973149535723176502126385303097021E+4932:0:-1: ++%40LE:+INFINITY:1:9:inf: ++%*40LE:+INFINITY:0:9: ++%48LE::0:-1: ++%*48LE::0:-1: ++%48LE:-INFINITY:1:9:-inf: ++%*48LE:-INFINITY:0:9: ++%48LE:-1.18973149535723176502126385303097021E+4932:1:44:-0x1.fffffffffffffffep16383: ++%*48LE:-1.18973149535723176502126385303097021E+4932:0:44: ++%48LE:-1.18973149535723176502126385303097021E4932:1:43:-0x1.fffffffffffffffep16383: ++%*48LE:-1.18973149535723176502126385303097021E4932:0:43: ++%48LE:-3.619058724505602958194804115432455E+3716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:-3.619058724505602958194804115432455E+3716:0:42: ++%48LE:-3.619058724505602958194804115432455E03716:1:42:-0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:-3.619058724505602958194804115432455E03716:0:42: ++%48LE:-3.36210314311209350626267781732175260e-4932:1:44:-0x1p-16382: ++%*48LE:-3.36210314311209350626267781732175260e-4932:0:44: ++%48LE:-0E+0:1:5:-0x0: ++%*48LE:-0E+0:0:5: ++%48LE:-0E0:1:4:-0x0: ++%*48LE:-0E0:0:4: ++%48LE:-NAN(09A_Zaz):1:13:-nan: ++%*48LE:-NAN(09A_Zaz):0:13: ++%48LE:-NAN():1:6:-nan: ++%*48LE:-NAN():0:6: ++%48LE:NAN():1:5:nan: ++%*48LE:NAN():0:5: ++%48LE:NAN(09A_Zaz):1:12:nan: ++%*48LE:NAN(09A_Zaz):0:12: ++%48LE:0E0:1:3:0x0: ++%*48LE:0E0:0:3: ++%48LE:0E+0:1:4:0x0: ++%*48LE:0E+0:0:4: ++%48LE:3.36210314311209350626267781732175260E-4932:1:43:0x1p-16382: ++%*48LE:3.36210314311209350626267781732175260E-4932:0:43: ++%48LE:3.619058724505602958194804115432455E03716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:3.619058724505602958194804115432455E03716:0:41: ++%48LE:3.619058724505602958194804115432455E+3716:1:41:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:3.619058724505602958194804115432455E+3716:0:41: ++%48LE:1.18973149535723176502126385303097021E4932:1:42:0x1.fffffffffffffffep16383: ++%*48LE:1.18973149535723176502126385303097021E4932:0:42: ++%48LE:1.18973149535723176502126385303097021E+4932:1:43:0x1.fffffffffffffffep16383: ++%*48LE:1.18973149535723176502126385303097021E+4932:0:43: ++%48LE:INFINITY:1:8:inf: ++%*48LE:INFINITY:0:8: ++%48LE:+NAN():1:6:nan: ++%*48LE:+NAN():0:6: ++%48LE:+NAN(09A_Zaz):1:13:nan: ++%*48LE:+NAN(09A_Zaz):0:13: ++%48LE:+0E0:1:4:0x0: ++%*48LE:+0E0:0:4: ++%48LE:+0E+0:1:5:0x0: ++%*48LE:+0E+0:0:5: ++%48LE:+3.36210314311209350626267781732175260E-4932:1:44:0x1p-16382: ++%*48LE:+3.36210314311209350626267781732175260E-4932:0:44: ++%48LE:+3.619058724505602958194804115432455E03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:+3.619058724505602958194804115432455E03716:0:42: ++%48LE:+3.619058724505602958194804115432455E+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE:+3.619058724505602958194804115432455E+3716:0:42: ++%48LE:+1.18973149535723176502126385303097021E4932:1:43:0x1.fffffffffffffffep16383: ++%*48LE:+1.18973149535723176502126385303097021E4932:0:43: ++%48LE:+1.18973149535723176502126385303097021E+4932:1:44:0x1.fffffffffffffffep16383: ++%*48LE:+1.18973149535723176502126385303097021E+4932:0:44: ++%48LE:+INFINITY:1:9:inf: ++%*48LE:+INFINITY:0:9: ++%3LE: :0:-1: ++%*3LE: :0:-1: ++%3LE: -INFINITY:0:-1: ++%*3LE: -INFINITY:0:-1: ++%3LE: -1.18973149535723176502126385303097021E+4932:1:4:-0x1: ++%*3LE: -1.18973149535723176502126385303097021E+4932:0:4: ++%3LE: -1.18973149535723176502126385303097021E4932:1:4:-0x1: ++%*3LE: -1.18973149535723176502126385303097021E4932:0:4: ++%3LE: -3.619058724505602958194804115432455E+3716:1:4:-0x1.8p1: ++%*3LE: -3.619058724505602958194804115432455E+3716:0:4: ++%3LE: -3.619058724505602958194804115432455E03716:1:4:-0x1.8p1: ++%*3LE: -3.619058724505602958194804115432455E03716:0:4: ++%3LE: -3.36210314311209350626267781732175260e-4932:1:4:-0x1.8p1: ++%*3LE: -3.36210314311209350626267781732175260e-4932:0:4: ++# BZ12701 %3LE: -0E+0:0:-1: ++# BZ12701 %*3LE: -0E+0:0:-1: ++# BZ12701 %3LE: -0E0:0:-1: ++# BZ12701 %*3LE: -0E0:0:-1: ++%3LE: -NAN(09A_Zaz):0:-1: ++%*3LE: -NAN(09A_Zaz):0:-1: ++%3LE: -NAN():0:-1: ++%*3LE: -NAN():0:-1: ++%3LE: NAN():1:4:nan: ++%*3LE: NAN():0:4: ++%3LE: NAN(09A_Zaz):1:4:nan: ++%*3LE: NAN(09A_Zaz):0:4: ++%3LE: 0E0:1:4:0x0: ++%*3LE: 0E0:0:4: ++# BZ12701 %3LE: 0E+0:0:-1: ++# BZ12701 %*3LE: 0E+0:0:-1: ++%3LE: 3.36210314311209350626267781732175260E-4932:1:4:0x1.a666666666666666p1: ++%*3LE: 3.36210314311209350626267781732175260E-4932:0:4: ++%3LE: 3.619058724505602958194804115432455E03716:1:4:0x1.ccccccccccccccccp1: ++%*3LE: 3.619058724505602958194804115432455E03716:0:4: ++%3LE: 3.619058724505602958194804115432455E+3716:1:4:0x1.ccccccccccccccccp1: ++%*3LE: 3.619058724505602958194804115432455E+3716:0:4: ++%3LE: 1.18973149535723176502126385303097021E4932:1:4:0x1.199999999999999a: ++%*3LE: 1.18973149535723176502126385303097021E4932:0:4: ++%3LE: 1.18973149535723176502126385303097021E+4932:1:4:0x1.199999999999999a: ++%*3LE: 1.18973149535723176502126385303097021E+4932:0:4: ++%3LE: INFINITY:1:4:inf: ++%*3LE: INFINITY:0:4: ++%3LE: +NAN():0:-1: ++%*3LE: +NAN():0:-1: ++%3LE: +NAN(09A_Zaz):0:-1: ++%*3LE: +NAN(09A_Zaz):0:-1: ++# BZ12701 %3LE: +0E0:0:-1: ++# BZ12701 %*3LE: +0E0:0:-1: ++# BZ12701 %3LE: +0E+0:0:-1: ++# BZ12701 %*3LE: +0E+0:0:-1: ++%3LE: +3.36210314311209350626267781732175260E-4932:1:4:0x1.8p1: ++%*3LE: +3.36210314311209350626267781732175260E-4932:0:4: ++%3LE: +3.619058724505602958194804115432455E03716:1:4:0x1.8p1: ++%*3LE: +3.619058724505602958194804115432455E03716:0:4: ++%3LE: +3.619058724505602958194804115432455E+3716:1:4:0x1.8p1: ++%*3LE: +3.619058724505602958194804115432455E+3716:0:4: ++%3LE: +1.18973149535723176502126385303097021E4932:1:4:0x1: ++%*3LE: +1.18973149535723176502126385303097021E4932:0:4: ++%3LE: +1.18973149535723176502126385303097021E+4932:1:4:0x1: ++%*3LE: +1.18973149535723176502126385303097021E+4932:0:4: ++%3LE: +INFINITY:0:-1: ++%*3LE: +INFINITY:0:-1: ++%48LE: :0:-1: ++%*48LE: :0:-1: ++%48LE: -INFINITY:1:10:-inf: ++%*48LE: -INFINITY:0:10: ++%48LE: -1.18973149535723176502126385303097021E+4932:1:45:-0x1.fffffffffffffffep16383: ++%*48LE: -1.18973149535723176502126385303097021E+4932:0:45: ++%48LE: -1.18973149535723176502126385303097021E4932:1:44:-0x1.fffffffffffffffep16383: ++%*48LE: -1.18973149535723176502126385303097021E4932:0:44: ++%48LE: -3.619058724505602958194804115432455E+3716:1:43:-0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: -3.619058724505602958194804115432455E+3716:0:43: ++%48LE: -3.619058724505602958194804115432455E03716:1:43:-0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: -3.619058724505602958194804115432455E03716:0:43: ++%48LE: -3.36210314311209350626267781732175260e-4932:1:45:-0x1p-16382: ++%*48LE: -3.36210314311209350626267781732175260e-4932:0:45: ++%48LE: -0E+0:1:6:-0x0: ++%*48LE: -0E+0:0:6: ++%48LE: -0E0:1:5:-0x0: ++%*48LE: -0E0:0:5: ++%48LE: -NAN(09A_Zaz):1:14:-nan: ++%*48LE: -NAN(09A_Zaz):0:14: ++%48LE: -NAN():1:7:-nan: ++%*48LE: -NAN():0:7: ++%48LE: NAN():1:6:nan: ++%*48LE: NAN():0:6: ++%48LE: NAN(09A_Zaz):1:13:nan: ++%*48LE: NAN(09A_Zaz):0:13: ++%48LE: 0E0:1:4:0x0: ++%*48LE: 0E0:0:4: ++%48LE: 0E+0:1:5:0x0: ++%*48LE: 0E+0:0:5: ++%48LE: 3.36210314311209350626267781732175260E-4932:1:44:0x1p-16382: ++%*48LE: 3.36210314311209350626267781732175260E-4932:0:44: ++%48LE: 3.619058724505602958194804115432455E03716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: 3.619058724505602958194804115432455E03716:0:42: ++%48LE: 3.619058724505602958194804115432455E+3716:1:42:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: 3.619058724505602958194804115432455E+3716:0:42: ++%48LE: 1.18973149535723176502126385303097021E4932:1:43:0x1.fffffffffffffffep16383: ++%*48LE: 1.18973149535723176502126385303097021E4932:0:43: ++%48LE: 1.18973149535723176502126385303097021E+4932:1:44:0x1.fffffffffffffffep16383: ++%*48LE: 1.18973149535723176502126385303097021E+4932:0:44: ++%48LE: INFINITY:1:9:inf: ++%*48LE: INFINITY:0:9: ++%48LE: +NAN():1:7:nan: ++%*48LE: +NAN():0:7: ++%48LE: +NAN(09A_Zaz):1:14:nan: ++%*48LE: +NAN(09A_Zaz):0:14: ++%48LE: +0E0:1:5:0x0: ++%*48LE: +0E0:0:5: ++%48LE: +0E+0:1:6:0x0: ++%*48LE: +0E+0:0:6: ++%48LE: +3.36210314311209350626267781732175260E-4932:1:45:0x1p-16382: ++%*48LE: +3.36210314311209350626267781732175260E-4932:0:45: ++%48LE: +3.619058724505602958194804115432455E03716:1:43:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: +3.619058724505602958194804115432455E03716:0:43: ++%48LE: +3.619058724505602958194804115432455E+3716:1:43:0x1.1a2b3c4d5e6f7808p12346: ++%*48LE: +3.619058724505602958194804115432455E+3716:0:43: ++%48LE: +1.18973149535723176502126385303097021E4932:1:44:0x1.fffffffffffffffep16383: ++%*48LE: +1.18973149535723176502126385303097021E4932:0:44: ++%48LE: +1.18973149535723176502126385303097021E+4932:1:45:0x1.fffffffffffffffep16383: ++%*48LE: +1.18973149535723176502126385303097021E+4932:0:45: ++%48LE: +INFINITY:1:10:inf: ++%*48LE: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input +new file mode 100644 +index 0000000000000000..7c06a3260a0496ba +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-f.input +@@ -0,0 +1,496 @@ ++%Lf::0:-1: ++%*Lf::0:-1: ++%Lf:-infinity:1:9:-inf: ++%*Lf:-infinity:0:9: ++%Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:-0x1.fffffffffffffffep16383: ++%*Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%Lf:-0.0:1:4:-0x0: ++%*Lf:-0.0:0:4: ++%Lf:-0:1:2:-0x0: ++%*Lf:-0:0:2: ++%Lf:-nan(09A_Zaz):1:13:-nan: ++%*Lf:-nan(09A_Zaz):0:13: ++%Lf:-nan():1:6:-nan: ++%*Lf:-nan():0:6: ++%Lf:nan():1:5:nan: ++%*Lf:nan():0:5: ++%Lf:nan(09A_Zaz):1:12:nan: ++%*Lf:nan(09A_Zaz):0:12: ++%Lf:0:1:1:0x0: ++%*Lf:0:0:1: ++%Lf:0.0:1:3:0x0: ++%*Lf:0.0:0:3: ++%Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4936:0x1.fffffffffffffffep16383: ++%*Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: ++%Lf:infinity:1:8:inf: ++%*Lf:infinity:0:8: ++%Lf:+nan():1:6:nan: ++%*Lf:+nan():0:6: ++%Lf:+nan(09A_Zaz):1:13:nan: ++%*Lf:+nan(09A_Zaz):0:13: ++%Lf:+0:1:2:0x0: ++%*Lf:+0:0:2: ++%Lf:+0.0:1:4:0x0: ++%*Lf:+0.0:0:4: ++%Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%Lf:+infinity:1:9:inf: ++%*Lf:+infinity:0:9: ++%1Lf::0:-1: ++%*1Lf::0:-1: ++%1Lf:-infinity:0:-1: ++%*1Lf:-infinity:0:-1: ++%1Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%*1Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%1Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%*1Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%1Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%*1Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%1Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%*1Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1Lf:-0.0:0:-1: ++%*1Lf:-0.0:0:-1: ++%1Lf:-0:0:-1: ++%*1Lf:-0:0:-1: ++%1Lf:-nan(09A_Zaz):0:-1: ++%*1Lf:-nan(09A_Zaz):0:-1: ++%1Lf:-nan():0:-1: ++%*1Lf:-nan():0:-1: ++%1Lf:nan():0:-1: ++%*1Lf:nan():0:-1: ++%1Lf:nan(09A_Zaz):0:-1: ++%*1Lf:nan(09A_Zaz):0:-1: ++%1Lf:0:1:1:0x0: ++%*1Lf:0:0:1: ++%1Lf:0.0:1:1:0x0: ++%*1Lf:0.0:0:1: ++%1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:1:0x0: ++%*1Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:1: ++%1Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:1:0x1.8p1: ++%*1Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:1: ++%1Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:1:0x0: ++%*1Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:1: ++%1Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:1:0x1: ++%*1Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:1: ++%1Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:1:0x0: ++%*1Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:1: ++%1Lf:infinity:0:-1: ++%*1Lf:infinity:0:-1: ++%1Lf:+nan():0:-1: ++%*1Lf:+nan():0:-1: ++%1Lf:+nan(09A_Zaz):0:-1: ++%*1Lf:+nan(09A_Zaz):0:-1: ++%1Lf:+0:0:-1: ++%*1Lf:+0:0:-1: ++%1Lf:+0.0:0:-1: ++%*1Lf:+0.0:0:-1: ++%1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%*1Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%1Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%*1Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%1Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%*1Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%1Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%*1Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%1Lf:+infinity:0:-1: ++%*1Lf:+infinity:0:-1: ++%2Lf::0:-1: ++%*2Lf::0:-1: ++%2Lf:-infinity:0:-1: ++%*2Lf:-infinity:0:-1: ++%2Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:-0x0: ++%*2Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:-0x1: ++%*2Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:-0x0: ++%*2Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:-0x1.8p1: ++%*2Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:-0x0: ++%*2Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:-0.0:1:2:-0x0: ++%*2Lf:-0.0:0:2: ++%2Lf:-0:1:2:-0x0: ++%*2Lf:-0:0:2: ++%2Lf:-nan(09A_Zaz):0:-1: ++%*2Lf:-nan(09A_Zaz):0:-1: ++%2Lf:-nan():0:-1: ++%*2Lf:-nan():0:-1: ++%2Lf:nan():0:-1: ++%*2Lf:nan():0:-1: ++%2Lf:nan(09A_Zaz):0:-1: ++%*2Lf:nan(09A_Zaz):0:-1: ++%2Lf:0:1:1:0x0: ++%*2Lf:0:0:1: ++%2Lf:0.0:1:2:0x0: ++%*2Lf:0.0:0:2: ++%2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:0x1.2p5: ++%*2Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:0x1.8p1: ++%*2Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:0x1.6p3: ++%*2Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:0x1: ++%*2Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2Lf:infinity:0:-1: ++%*2Lf:infinity:0:-1: ++%2Lf:+nan():0:-1: ++%*2Lf:+nan():0:-1: ++%2Lf:+nan(09A_Zaz):0:-1: ++%*2Lf:+nan(09A_Zaz):0:-1: ++%2Lf:+0:1:2:0x0: ++%*2Lf:+0:0:2: ++%2Lf:+0.0:1:2:0x0: ++%*2Lf:+0.0:0:2: ++%2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:0x1.8p1: ++%*2Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:0x0: ++%*2Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:0x1: ++%*2Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:0x0: ++%*2Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2Lf:+infinity:0:-1: ++%*2Lf:+infinity:0:-1: ++%3Lf::0:-1: ++%*3Lf::0:-1: ++%3Lf:-infinity:0:-1: ++%*3Lf:-infinity:0:-1: ++%3Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:-0x1: ++%*3Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:-0x1.6p3: ++%*3Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:-0x1.8p1: ++%*3Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:-0x1.2p5: ++%*3Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:-0x0: ++%*3Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:-0.0:1:3:-0x0: ++%*3Lf:-0.0:0:3: ++%3Lf:-0:1:2:-0x0: ++%*3Lf:-0:0:2: ++%3Lf:-nan(09A_Zaz):0:-1: ++%*3Lf:-nan(09A_Zaz):0:-1: ++%3Lf:-nan():0:-1: ++%*3Lf:-nan():0:-1: ++%3Lf:nan():1:3:nan: ++%*3Lf:nan():0:3: ++%3Lf:nan(09A_Zaz):1:3:nan: ++%*3Lf:nan(09A_Zaz):0:3: ++%3Lf:0:1:1:0x0: ++%*3Lf:0:0:1: ++%3Lf:0.0:1:3:0x0: ++%*3Lf:0.0:0:3: ++%3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:0x1.69p8: ++%*3Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:0x1.2p5: ++%*3Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:0x1.d8p6: ++%*3Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:0x1.6p3: ++%*3Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3Lf:infinity:1:3:inf: ++%*3Lf:infinity:0:3: ++%3Lf:+nan():0:-1: ++%*3Lf:+nan():0:-1: ++%3Lf:+nan(09A_Zaz):0:-1: ++%*3Lf:+nan(09A_Zaz):0:-1: ++%3Lf:+0:1:2:0x0: ++%*3Lf:+0:0:2: ++%3Lf:+0.0:1:3:0x0: ++%*3Lf:+0.0:0:3: ++%3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:0x1.2p5: ++%*3Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:0x1.8p1: ++%*3Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:0x1.6p3: ++%*3Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:0x1: ++%*3Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3Lf:+infinity:0:-1: ++%*3Lf:+infinity:0:-1: ++%4935Lf::0:-1: ++%*4935Lf::0:-1: ++%4935Lf:-infinity:1:9:-inf: ++%*4935Lf:-infinity:0:9: ++%4935Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:-0x1.fffffffffffffffep16383: ++%*4935Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*4935Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%4935Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%4935Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%4935Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:-0x1.c8db5d6b5ee81f44p-16383: ++%*4935Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:-0.0:1:4:-0x0: ++%*4935Lf:-0.0:0:4: ++%4935Lf:-0:1:2:-0x0: ++%*4935Lf:-0:0:2: ++%4935Lf:-nan(09A_Zaz):1:13:-nan: ++%*4935Lf:-nan(09A_Zaz):0:13: ++%4935Lf:-nan():1:6:-nan: ++%*4935Lf:-nan():0:6: ++%4935Lf:nan():1:5:nan: ++%*4935Lf:nan():0:5: ++%4935Lf:nan(09A_Zaz):1:12:nan: ++%*4935Lf:nan(09A_Zaz):0:12: ++%4935Lf:0:1:1:0x0: ++%*4935Lf:0:0:1: ++%4935Lf:0.0:1:3:0x0: ++%*4935Lf:0.0:0:3: ++%4935Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.f68ae6c2e865bbfcp-16383: ++%*4935Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%4935Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%4935Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*4935Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%4935Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:0x1.fffffffffffffffep16383: ++%*4935Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935Lf:infinity:1:8:inf: ++%*4935Lf:infinity:0:8: ++%4935Lf:+nan():1:6:nan: ++%*4935Lf:+nan():0:6: ++%4935Lf:+nan(09A_Zaz):1:13:nan: ++%*4935Lf:+nan(09A_Zaz):0:13: ++%4935Lf:+0:1:2:0x0: ++%*4935Lf:+0:0:2: ++%4935Lf:+0.0:1:4:0x0: ++%*4935Lf:+0.0:0:4: ++%4935Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.c8db5d6b5ee81f44p-16383: ++%*4935Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%4935Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*4935Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%4935Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*4935Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%4935Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:0x1.fffffffffffffffep16383: ++%*4935Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935Lf:+infinity:1:9:inf: ++%*4935Lf:+infinity:0:9: ++%5000Lf::0:-1: ++%*5000Lf::0:-1: ++%5000Lf:-infinity:1:9:-inf: ++%*5000Lf:-infinity:0:9: ++%5000Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:-0x1.fffffffffffffffep16383: ++%*5000Lf:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*5000Lf:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*5000Lf:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf:-0.0:1:4:-0x0: ++%*5000Lf:-0.0:0:4: ++%5000Lf:-0:1:2:-0x0: ++%*5000Lf:-0:0:2: ++%5000Lf:-nan(09A_Zaz):1:13:-nan: ++%*5000Lf:-nan(09A_Zaz):0:13: ++%5000Lf:-nan():1:6:-nan: ++%*5000Lf:-nan():0:6: ++%5000Lf:nan():1:5:nan: ++%*5000Lf:nan():0:5: ++%5000Lf:nan(09A_Zaz):1:12:nan: ++%*5000Lf:nan(09A_Zaz):0:12: ++%5000Lf:0:1:1:0x0: ++%*5000Lf:0:0:1: ++%5000Lf:0.0:1:3:0x0: ++%*5000Lf:0.0:0:3: ++%5000Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*5000Lf:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%5000Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%5000Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%5000Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*5000Lf:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%5000Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4936:0x1.fffffffffffffffep16383: ++%*5000Lf:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: ++%5000Lf:infinity:1:8:inf: ++%*5000Lf:infinity:0:8: ++%5000Lf:+nan():1:6:nan: ++%*5000Lf:+nan():0:6: ++%5000Lf:+nan(09A_Zaz):1:13:nan: ++%*5000Lf:+nan(09A_Zaz):0:13: ++%5000Lf:+0:1:2:0x0: ++%*5000Lf:+0:0:2: ++%5000Lf:+0.0:1:4:0x0: ++%*5000Lf:+0.0:0:4: ++%5000Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000Lf:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*5000Lf:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*5000Lf:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000Lf:+infinity:1:9:inf: ++%*5000Lf:+infinity:0:9: ++%3Lf: :0:-1: ++%*3Lf: :0:-1: ++%3Lf: -infinity:0:-1: ++%*3Lf: -infinity:0:-1: ++%3Lf: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:-0x1: ++%*3Lf: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3Lf: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:-0x1.6p3: ++%*3Lf: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3Lf: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:-0x1.8p1: ++%*3Lf: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3Lf: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:-0x1.2p5: ++%*3Lf: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:-0x0: ++%*3Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: -0.0:1:4:-0x0: ++%*3Lf: -0.0:0:4: ++%3Lf: -0:1:3:-0x0: ++%*3Lf: -0:0:3: ++%3Lf: -nan(09A_Zaz):0:-1: ++%*3Lf: -nan(09A_Zaz):0:-1: ++%3Lf: -nan():0:-1: ++%*3Lf: -nan():0:-1: ++%3Lf: nan():1:4:nan: ++%*3Lf: nan():0:4: ++%3Lf: nan(09A_Zaz):1:4:nan: ++%*3Lf: nan(09A_Zaz):0:4: ++%3Lf: 0:1:2:0x0: ++%*3Lf: 0:0:2: ++%3Lf: 0.0:1:4:0x0: ++%*3Lf: 0.0:0:4: ++%3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:0x1.69p8: ++%*3Lf: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3Lf: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:0x1.2p5: ++%*3Lf: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3Lf: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:0x1.d8p6: ++%*3Lf: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:0x1.6p3: ++%*3Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3Lf: infinity:1:4:inf: ++%*3Lf: infinity:0:4: ++%3Lf: +nan():0:-1: ++%*3Lf: +nan():0:-1: ++%3Lf: +nan(09A_Zaz):0:-1: ++%*3Lf: +nan(09A_Zaz):0:-1: ++%3Lf: +0:1:3:0x0: ++%*3Lf: +0:0:3: ++%3Lf: +0.0:1:4:0x0: ++%*3Lf: +0.0:0:4: ++%3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3Lf: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:0x1.2p5: ++%*3Lf: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3Lf: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:0x1.8p1: ++%*3Lf: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3Lf: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:0x1.6p3: ++%*3Lf: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3Lf: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:0x1: ++%*3Lf: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3Lf: +infinity:0:-1: ++%*3Lf: +infinity:0:-1: ++%5000Lf: :0:-1: ++%*5000Lf: :0:-1: ++%5000Lf: -infinity:1:10:-inf: ++%*5000Lf: -infinity:0:10: ++%5000Lf: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4938:-0x1.fffffffffffffffep16383: ++%*5000Lf: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4938: ++%5000Lf: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4935:-0x1.fffffffffffffffep16383: ++%*5000Lf: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4935: ++%5000Lf: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3722:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3722: ++%5000Lf: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3719:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3719: ++%5000Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:-0x1p-16382: ++%*5000Lf: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000Lf: -0.0:1:5:-0x0: ++%*5000Lf: -0.0:0:5: ++%5000Lf: -0:1:3:-0x0: ++%*5000Lf: -0:0:3: ++%5000Lf: -nan(09A_Zaz):1:14:-nan: ++%*5000Lf: -nan(09A_Zaz):0:14: ++%5000Lf: -nan():1:7:-nan: ++%*5000Lf: -nan():0:7: ++%5000Lf: nan():1:6:nan: ++%*5000Lf: nan():0:6: ++%5000Lf: nan(09A_Zaz):1:13:nan: ++%*5000Lf: nan(09A_Zaz):0:13: ++%5000Lf: 0:1:2:0x0: ++%*5000Lf: 0:0:2: ++%5000Lf: 0.0:1:4:0x0: ++%*5000Lf: 0.0:0:4: ++%5000Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000Lf: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000Lf: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000Lf: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000Lf: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*5000Lf: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*5000Lf: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000Lf: infinity:1:9:inf: ++%*5000Lf: infinity:0:9: ++%5000Lf: +nan():1:7:nan: ++%*5000Lf: +nan():0:7: ++%5000Lf: +nan(09A_Zaz):1:14:nan: ++%*5000Lf: +nan(09A_Zaz):0:14: ++%5000Lf: +0:1:3:0x0: ++%*5000Lf: +0:0:3: ++%5000Lf: +0.0:1:5:0x0: ++%*5000Lf: +0.0:0:5: ++%5000Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:0x1p-16382: ++%*5000Lf: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000Lf: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3719:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3719: ++%5000Lf: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3722:0x1.1a2b3c4d5e6f7808p12346: ++%*5000Lf: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3722: ++%5000Lf: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4935:0x1.fffffffffffffffep16383: ++%*5000Lf: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4935: ++%5000Lf: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4938:0x1.fffffffffffffffep16383: ++%*5000Lf: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4938: ++%5000Lf: +infinity:1:10:inf: ++%*5000Lf: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input +new file mode 100644 +index 0000000000000000..1612fc41c412479e +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-ff.input +@@ -0,0 +1,496 @@ ++%LF::0:-1: ++%*LF::0:-1: ++%LF:-INFINITY:1:9:-inf: ++%*LF:-INFINITY:0:9: ++%LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:-0x1.fffffffffffffffep16383: ++%*LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%LF:-0.0:1:4:-0x0: ++%*LF:-0.0:0:4: ++%LF:-0:1:2:-0x0: ++%*LF:-0:0:2: ++%LF:-NAN(09A_Zaz):1:13:-nan: ++%*LF:-NAN(09A_Zaz):0:13: ++%LF:-NAN():1:6:-nan: ++%*LF:-NAN():0:6: ++%LF:NAN():1:5:nan: ++%*LF:NAN():0:5: ++%LF:NAN(09A_Zaz):1:12:nan: ++%*LF:NAN(09A_Zaz):0:12: ++%LF:0:1:1:0x0: ++%*LF:0:0:1: ++%LF:0.0:1:3:0x0: ++%*LF:0.0:0:3: ++%LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4936:0x1.fffffffffffffffep16383: ++%*LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: ++%LF:INFINITY:1:8:inf: ++%*LF:INFINITY:0:8: ++%LF:+NAN():1:6:nan: ++%*LF:+NAN():0:6: ++%LF:+NAN(09A_Zaz):1:13:nan: ++%*LF:+NAN(09A_Zaz):0:13: ++%LF:+0:1:2:0x0: ++%*LF:+0:0:2: ++%LF:+0.0:1:4:0x0: ++%*LF:+0.0:0:4: ++%LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%LF:+INFINITY:1:9:inf: ++%*LF:+INFINITY:0:9: ++%1LF::0:-1: ++%*1LF::0:-1: ++%1LF:-INFINITY:0:-1: ++%*1LF:-INFINITY:0:-1: ++%1LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%*1LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%1LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%*1LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%1LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%*1LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%1LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%*1LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1LF:-0.0:0:-1: ++%*1LF:-0.0:0:-1: ++%1LF:-0:0:-1: ++%*1LF:-0:0:-1: ++%1LF:-NAN(09A_Zaz):0:-1: ++%*1LF:-NAN(09A_Zaz):0:-1: ++%1LF:-NAN():0:-1: ++%*1LF:-NAN():0:-1: ++%1LF:NAN():0:-1: ++%*1LF:NAN():0:-1: ++%1LF:NAN(09A_Zaz):0:-1: ++%*1LF:NAN(09A_Zaz):0:-1: ++%1LF:0:1:1:0x0: ++%*1LF:0:0:1: ++%1LF:0.0:1:1:0x0: ++%*1LF:0.0:0:1: ++%1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:1:0x0: ++%*1LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:1: ++%1LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:1:0x1.8p1: ++%*1LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:1: ++%1LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:1:0x0: ++%*1LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:1: ++%1LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:1:0x1: ++%*1LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:1: ++%1LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:1:0x0: ++%*1LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:1: ++%1LF:INFINITY:0:-1: ++%*1LF:INFINITY:0:-1: ++%1LF:+NAN():0:-1: ++%*1LF:+NAN():0:-1: ++%1LF:+NAN(09A_Zaz):0:-1: ++%*1LF:+NAN(09A_Zaz):0:-1: ++%1LF:+0:0:-1: ++%*1LF:+0:0:-1: ++%1LF:+0.0:0:-1: ++%*1LF:+0.0:0:-1: ++%1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%*1LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:-1: ++%1LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%*1LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:-1: ++%1LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%*1LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:-1: ++%1LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%*1LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:-1: ++%1LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%*1LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:-1: ++%1LF:+INFINITY:0:-1: ++%*1LF:+INFINITY:0:-1: ++%2LF::0:-1: ++%*2LF::0:-1: ++%2LF:-INFINITY:0:-1: ++%*2LF:-INFINITY:0:-1: ++%2LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:-0x0: ++%*2LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:-0x1: ++%*2LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:-0x0: ++%*2LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:-0x1.8p1: ++%*2LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:-0x0: ++%*2LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:-0.0:1:2:-0x0: ++%*2LF:-0.0:0:2: ++%2LF:-0:1:2:-0x0: ++%*2LF:-0:0:2: ++%2LF:-NAN(09A_Zaz):0:-1: ++%*2LF:-NAN(09A_Zaz):0:-1: ++%2LF:-NAN():0:-1: ++%*2LF:-NAN():0:-1: ++%2LF:NAN():0:-1: ++%*2LF:NAN():0:-1: ++%2LF:NAN(09A_Zaz):0:-1: ++%*2LF:NAN(09A_Zaz):0:-1: ++%2LF:0:1:1:0x0: ++%*2LF:0:0:1: ++%2LF:0.0:1:2:0x0: ++%*2LF:0.0:0:2: ++%2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:0x1.2p5: ++%*2LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:0x1.8p1: ++%*2LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:0x1.6p3: ++%*2LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:0x1: ++%*2LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2LF:INFINITY:0:-1: ++%*2LF:INFINITY:0:-1: ++%2LF:+NAN():0:-1: ++%*2LF:+NAN():0:-1: ++%2LF:+NAN(09A_Zaz):0:-1: ++%*2LF:+NAN(09A_Zaz):0:-1: ++%2LF:+0:1:2:0x0: ++%*2LF:+0:0:2: ++%2LF:+0.0:1:2:0x0: ++%*2LF:+0.0:0:2: ++%2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:2:0x0: ++%*2LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:2: ++%2LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:2:0x1.8p1: ++%*2LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:2: ++%2LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:2:0x0: ++%*2LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:2: ++%2LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:2:0x1: ++%*2LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:2: ++%2LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:2:0x0: ++%*2LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:2: ++%2LF:+INFINITY:0:-1: ++%*2LF:+INFINITY:0:-1: ++%3LF::0:-1: ++%*3LF::0:-1: ++%3LF:-INFINITY:0:-1: ++%*3LF:-INFINITY:0:-1: ++%3LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:-0x1: ++%*3LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:-0x1.6p3: ++%*3LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:-0x1.8p1: ++%*3LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:-0x1.2p5: ++%*3LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:-0x0: ++%*3LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:-0.0:1:3:-0x0: ++%*3LF:-0.0:0:3: ++%3LF:-0:1:2:-0x0: ++%*3LF:-0:0:2: ++%3LF:-NAN(09A_Zaz):0:-1: ++%*3LF:-NAN(09A_Zaz):0:-1: ++%3LF:-NAN():0:-1: ++%*3LF:-NAN():0:-1: ++%3LF:NAN():1:3:nan: ++%*3LF:NAN():0:3: ++%3LF:NAN(09A_Zaz):1:3:nan: ++%*3LF:NAN(09A_Zaz):0:3: ++%3LF:0:1:1:0x0: ++%*3LF:0:0:1: ++%3LF:0.0:1:3:0x0: ++%*3LF:0.0:0:3: ++%3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:0x1.69p8: ++%*3LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:0x1.2p5: ++%*3LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:0x1.d8p6: ++%*3LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:0x1.6p3: ++%*3LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3LF:INFINITY:1:3:inf: ++%*3LF:INFINITY:0:3: ++%3LF:+NAN():0:-1: ++%*3LF:+NAN():0:-1: ++%3LF:+NAN(09A_Zaz):0:-1: ++%*3LF:+NAN(09A_Zaz):0:-1: ++%3LF:+0:1:2:0x0: ++%*3LF:+0:0:2: ++%3LF:+0.0:1:3:0x0: ++%*3LF:+0.0:0:3: ++%3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:3:0x0: ++%*3LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:3: ++%3LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3:0x1.2p5: ++%*3LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3: ++%3LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3:0x1.8p1: ++%*3LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3: ++%3LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:3:0x1.6p3: ++%*3LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:3: ++%3LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:3:0x1: ++%*3LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:3: ++%3LF:+INFINITY:0:-1: ++%*3LF:+INFINITY:0:-1: ++%4935LF::0:-1: ++%*4935LF::0:-1: ++%4935LF:-INFINITY:1:9:-inf: ++%*4935LF:-INFINITY:0:9: ++%4935LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:-0x1.fffffffffffffffep16383: ++%*4935LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*4935LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%4935LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%4935LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%4935LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:-0x1.c8db5d6b5ee81f44p-16383: ++%*4935LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:-0.0:1:4:-0x0: ++%*4935LF:-0.0:0:4: ++%4935LF:-0:1:2:-0x0: ++%*4935LF:-0:0:2: ++%4935LF:-NAN(09A_Zaz):1:13:-nan: ++%*4935LF:-NAN(09A_Zaz):0:13: ++%4935LF:-NAN():1:6:-nan: ++%*4935LF:-NAN():0:6: ++%4935LF:NAN():1:5:nan: ++%*4935LF:NAN():0:5: ++%4935LF:NAN(09A_Zaz):1:12:nan: ++%*4935LF:NAN(09A_Zaz):0:12: ++%4935LF:0:1:1:0x0: ++%*4935LF:0:0:1: ++%4935LF:0.0:1:3:0x0: ++%*4935LF:0.0:0:3: ++%4935LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.f68ae6c2e865bbfcp-16383: ++%*4935LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%4935LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%4935LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*4935LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%4935LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:0x1.fffffffffffffffep16383: ++%*4935LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935LF:INFINITY:1:8:inf: ++%*4935LF:INFINITY:0:8: ++%4935LF:+NAN():1:6:nan: ++%*4935LF:+NAN():0:6: ++%4935LF:+NAN(09A_Zaz):1:13:nan: ++%*4935LF:+NAN(09A_Zaz):0:13: ++%4935LF:+0:1:2:0x0: ++%*4935LF:+0:0:2: ++%4935LF:+0.0:1:4:0x0: ++%*4935LF:+0.0:0:4: ++%4935LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4935:0x1.c8db5d6b5ee81f44p-16383: ++%*4935LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4935: ++%4935LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%4935LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*4935LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%4935LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*4935LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%4935LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4935:0x1.fffffffffffffffep16383: ++%*4935LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4935: ++%4935LF:+INFINITY:1:9:inf: ++%*4935LF:+INFINITY:0:9: ++%5000LF::0:-1: ++%*5000LF::0:-1: ++%5000LF:-INFINITY:1:9:-inf: ++%*5000LF:-INFINITY:0:9: ++%5000LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:-0x1.fffffffffffffffep16383: ++%*5000LF:-01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:-0x1.fffffffffffffffep16383: ++%*5000LF:-1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:-0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:-361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:-0x1p-16382: ++%*5000LF:-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF:-0.0:1:4:-0x0: ++%*5000LF:-0.0:0:4: ++%5000LF:-0:1:2:-0x0: ++%*5000LF:-0:0:2: ++%5000LF:-NAN(09A_Zaz):1:13:-nan: ++%*5000LF:-NAN(09A_Zaz):0:13: ++%5000LF:-NAN():1:6:-nan: ++%*5000LF:-NAN():0:6: ++%5000LF:NAN():1:5:nan: ++%*5000LF:NAN():0:5: ++%5000LF:NAN(09A_Zaz):1:12:nan: ++%*5000LF:NAN(09A_Zaz):0:12: ++%5000LF:0:1:1:0x0: ++%*5000LF:0:0:1: ++%5000LF:0.0:1:3:0x0: ++%*5000LF:0.0:0:3: ++%5000LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4968:0x1p-16382: ++%*5000LF:0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4968: ++%5000LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3717:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3717: ++%5000LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3720:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3720: ++%5000LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4933:0x1.fffffffffffffffep16383: ++%*5000LF:1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4933: ++%5000LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4936:0x1.fffffffffffffffep16383: ++%*5000LF:01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4936: ++%5000LF:INFINITY:1:8:inf: ++%*5000LF:INFINITY:0:8: ++%5000LF:+NAN():1:6:nan: ++%*5000LF:+NAN():0:6: ++%5000LF:+NAN(09A_Zaz):1:13:nan: ++%*5000LF:+NAN(09A_Zaz):0:13: ++%5000LF:+0:1:2:0x0: ++%*5000LF:+0:0:2: ++%5000LF:+0.0:1:4:0x0: ++%*5000LF:+0.0:0:4: ++%5000LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000LF:+0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:+361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF:+0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*5000LF:+1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*5000LF:+01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000LF:+INFINITY:1:9:inf: ++%*5000LF:+INFINITY:0:9: ++%3LF: :0:-1: ++%*3LF: :0:-1: ++%3LF: -INFINITY:0:-1: ++%*3LF: -INFINITY:0:-1: ++%3LF: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:-0x1: ++%*3LF: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3LF: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:-0x1.6p3: ++%*3LF: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3LF: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:-0x1.8p1: ++%*3LF: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3LF: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:-0x1.2p5: ++%*3LF: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:-0x0: ++%*3LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: -0.0:1:4:-0x0: ++%*3LF: -0.0:0:4: ++%3LF: -0:1:3:-0x0: ++%*3LF: -0:0:3: ++%3LF: -NAN(09A_Zaz):0:-1: ++%*3LF: -NAN(09A_Zaz):0:-1: ++%3LF: -NAN():0:-1: ++%*3LF: -NAN():0:-1: ++%3LF: NAN():1:4:nan: ++%*3LF: NAN():0:4: ++%3LF: NAN(09A_Zaz):1:4:nan: ++%*3LF: NAN(09A_Zaz):0:4: ++%3LF: 0:1:2:0x0: ++%*3LF: 0:0:2: ++%3LF: 0.0:1:4:0x0: ++%*3LF: 0.0:0:4: ++%3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:0x1.69p8: ++%*3LF: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3LF: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:0x1.2p5: ++%*3LF: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3LF: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:0x1.d8p6: ++%*3LF: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:0x1.6p3: ++%*3LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3LF: INFINITY:1:4:inf: ++%*3LF: INFINITY:0:4: ++%3LF: +NAN():0:-1: ++%*3LF: +NAN():0:-1: ++%3LF: +NAN(09A_Zaz):0:-1: ++%*3LF: +NAN(09A_Zaz):0:-1: ++%3LF: +0:1:3:0x0: ++%*3LF: +0:0:3: ++%3LF: +0.0:1:4:0x0: ++%*3LF: +0.0:0:4: ++%3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4:0x0: ++%*3LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4: ++%3LF: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:4:0x1.2p5: ++%*3LF: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:4: ++%3LF: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:4:0x1.8p1: ++%*3LF: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:4: ++%3LF: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4:0x1.6p3: ++%*3LF: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4: ++%3LF: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4:0x1: ++%*3LF: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4: ++%3LF: +INFINITY:0:-1: ++%*3LF: +INFINITY:0:-1: ++%5000LF: :0:-1: ++%*5000LF: :0:-1: ++%5000LF: -INFINITY:1:10:-inf: ++%*5000LF: -INFINITY:0:10: ++%5000LF: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4938:-0x1.fffffffffffffffep16383: ++%*5000LF: -01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4938: ++%5000LF: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4935:-0x1.fffffffffffffffep16383: ++%*5000LF: -1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4935: ++%5000LF: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3722:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: -0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3722: ++%5000LF: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3719:-0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: -361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3719: ++%5000LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:-0x1p-16382: ++%*5000LF: -0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000LF: -0.0:1:5:-0x0: ++%*5000LF: -0.0:0:5: ++%5000LF: -0:1:3:-0x0: ++%*5000LF: -0:0:3: ++%5000LF: -NAN(09A_Zaz):1:14:-nan: ++%*5000LF: -NAN(09A_Zaz):0:14: ++%5000LF: -NAN():1:7:-nan: ++%*5000LF: -NAN():0:7: ++%5000LF: NAN():1:6:nan: ++%*5000LF: NAN():0:6: ++%5000LF: NAN(09A_Zaz):1:13:nan: ++%*5000LF: NAN(09A_Zaz):0:13: ++%5000LF: 0:1:2:0x0: ++%*5000LF: 0:0:2: ++%5000LF: 0.0:1:4:0x0: ++%*5000LF: 0.0:0:4: ++%5000LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4969:0x1p-16382: ++%*5000LF: 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4969: ++%5000LF: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3718:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: 361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3718: ++%5000LF: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3721:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: 0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3721: ++%5000LF: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4934:0x1.fffffffffffffffep16383: ++%*5000LF: 1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4934: ++%5000LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4937:0x1.fffffffffffffffep16383: ++%*5000LF: 01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4937: ++%5000LF: INFINITY:1:9:inf: ++%*5000LF: INFINITY:0:9: ++%5000LF: +NAN():1:7:nan: ++%*5000LF: +NAN():0:7: ++%5000LF: +NAN(09A_Zaz):1:14:nan: ++%*5000LF: +NAN(09A_Zaz):0:14: ++%5000LF: +0:1:3:0x0: ++%*5000LF: +0:0:3: ++%5000LF: +0.0:1:5:0x0: ++%*5000LF: +0.0:0:5: ++%5000LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:1:4970:0x1p-16382: ++%*5000LF: +0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033621031431120935062626778173217526:0:4970: ++%5000LF: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:1:3719:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: +361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160:0:3719: ++%5000LF: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:1:3722:0x1.1a2b3c4d5e6f7808p12346: ++%*5000LF: +0361905872450560295819480411543245526847052478586835263848843649369958208725391651796963150372059643310038517602474542531282298199032132973307120376416598037677025266087492936446369592708865254406101014934972727353013119736145892686543942178576966489200341000611841613367796952653646347895032716827613986288218843058733913301265307967700031366130404721313352234403490664798927799280181848568471267479854546698478144752789504895625256686141819795980758834952603015688620617661569984051245680986325326627137652216877901729169121857439124324426893325163596187558977911213762791955583723453838489679379266870019562482375848454881602686403462582133429044211682473921256852664331678140455271688831730747210968850679525323455310140563056206997460352606653103297272674285545298553226850442904962170407387344493647001994904459835485852785467773649435128349998092288930824136026432861340396384684166321837897690143037277928065301493528721639787696027443153424873845151988657227937794247490485618262311461360871244689060580476035664279518200164043305269024504063936624562712347788614099920092991248497462115968933518754361524730511592996243142431399069824173235976059456598497106267509054739551395632981955098141805597011554927284486081902580154209602131939199835744996105724950363866853608246460146969269638320408322662926858835048208051469869845855509083816060005363439941161158781095610686416800878872399567412799714533070411229812893026841149391962022938326795586970729558884499855352295381620246313003735273128485815514109690550746145133910639985121656876921170178342981345954950387976821026561852498986629404496377482391348354425454951635990881513146326779154373946872348686026411950854733138654168056300404854494951012613793664970333262444143060649577874794710668610899388250407306882053558751182006821413869662423000762596550191178177804441867216305499445797925308355660615535661039842981024093893324660877467524391543350688449305932511476848777503721729471684726222413592472640311559348726223187346776783793550705105850351360181418754091764843115711122641345055853491257954992922931807727536230542990336127450409174664280281367511616550940288718648790535168243149110818182655362045528677541030482413224585129229424999068724834946112666725838338925068036248389070812002210271768323276865138214569179310413983036212311316016010110415436461240072609369678463186961373320729430688363045858590647691891076479638557547248518360265467443221182251072026296129862213617484234291066257680813496924062069914900775054424748161504846470642978892677917136545938718707136794850244793994673650762803348465145979659251014567695765879425889592237150484514051904440958358742366134354023643858865233776727161357710475830183164187519318707196095998201714973488589328332769241306264403794031513946506853494689439110380926140495721491068290949307608115602364348351819211973035491804106025130554227502222919625446324034927732540957066712818345560808489733866235021731021751627783062972140958112890617003751664291380119196162709159875947794745614479287899625635350699695091474660027585052466563570458876858558382315178439064900036070387544934219863046193769445139245149131479132991888770084486680416015747240059374914020586039303288667187884459846499586686912600553246738310225240729316607771438194402926031530633627237081593168198067971685763650064432237550685717340261175859271201884534177126995809028006506030125184386401996071964951336708342792312423132502365601109987705048267009982686611306991298007448768847589174859141175048505432571980287350564106213716472574408917396416743302688341543356151989735524083795316678584628075173832695542867423839866757704690641113616299535206178427955705840594091608836664878027443851354077763603697500160.0:0:3722: ++%5000LF: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:1:4935:0x1.fffffffffffffffep16383: ++%*5000LF: +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240:0:4935: ++%5000LF: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:1:4938:0x1.fffffffffffffffep16383: ++%*5000LF: +01189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670288434198125573853743678673593200706973263201915918282961524365529510646791086614311790632169778838896134786560600399148753433211454911160088679845154866512852340149773037600009125479393966223151383622417838542743917838138717805889487540575168226347659235576974805113725649020884855222494791399377585026011773549180099796226026859508558883608159846900235645132346594476384939859276456284579661772930407806609229102715046085388087959327781622986827547830768080040150694942303411728957777100335714010559775242124057347007386251660110828379119623008469277200965153500208474470792443848545912886723000619085126472111951361467527633519562927597957250278002980795904193139603021470997035276467445530922022679656280991498232083329641241038509239184734786121921697210543484287048353408113042573002216421348917347174234800714880751002064390517234247656004721768096486107994943415703476320643558624207443504424380566136017608837478165389027809576975977286860071487028287955567141404632615832623602762896316173978484254486860609948270867968048078702511858930838546584223040908805996294594586201903766048446790926002225410530775901065760671347200125846406957030257138960983757998926954553052368560758683179223113639519468850880771872104705203957587480013143131444254943919940175753169339392366881856189129931729104252921236835159922322050998001677102784035360140829296398115122877768135706045789343535451696539561254048846447169786893211671087229088082778350518228857646062218739702851655083720992349483334435228984751232753726636066213902281264706234075352071724058665079518217303463782631353393706774901950197841690441824738063162828586857741432581165364040218402724913393320949219498422442730427019873044536620350262386957804682003601447291997123095530057206141866974852846856186514832715974481203121946751686379343096189615107330065552421485195201762858595091051839472502863871632494167613804996319791441870254302706758495192008837915169401581740046711477877201459644461175204059453504764721807975761111720846273639279600339670470037613374509553184150073796412605047923251661354841291884211340823015473304754067072818763503617332908005951896325207071673904547777129682265206225651439919376804400292380903112437912614776255964694221981375146967079446870358004392507659451618379811859392049544036114915310782251072691486979809240946772142727012404377187409216756613634938900451232351668146089322400697993176017805338191849981933008410985993938760292601390911414526003720284872132411955424282101831204216104467404621635336900583664606591156298764745525068145003932941404131495400677602951005962253022823003631473824681059648442441324864573137437595096416168048024129351876204668135636877532814675538798871771836512893947195335061885003267607354388673368002074387849657014576090349857571243045102038730494854256702479339322809110526041538528994849203991091946129912491633289917998094380337879522093131466946149705939664152375949285890960489916121944989986384837022486672249148924678410206183364627416969576307632480235587975245253737035433882960862753427740016333434055083537048507374544819754722228975281083020898682633020285259923084168054539687911418297629988964576482765287504562854924265165217750799516259669229114977788962356670956627138482018191348321687995863652637620978285070099337294396784639879024914514222742527006363942327998483976739987154418554201562244154926653014515504685489258620276085761837129763358761215382565129633538141663949516556000264159186554850057052611431952919918807954522394649627635630178580896692226406235382898535867595990647008385687123810329591926494846250768992258419305480763620215089022149220528069842018350840586938493815498909445461977893029113576516775406232278298314033473276603952231603422824717528181818844304880921321933550869873395861276073670866652375555675803171490108477320096424318780070008797346032906278943553743564448851907191616455141155761939399690767415156402826543664026760095087523945507341556135867933066031744720924446513532366647649735400851967040771103640538150073486891798364049570606189535005089840913826869535090066783324472578712196604415284924840041850932811908963634175739897166596000759487800619164094854338758520657116541072260996288150123144377944008749301944744330784388995701842710004808305012177123560622895076269042856800047718893158089358515593863176652948089031267747029662545110861548958395087796755464137944895960527975209874813839762578592105756284401759349324162148339565350189196811389091843795734703269406342890087805846940352453479398080674273236297887100867175802531561302356064878709259865288416350972529537091114317204887747405539054009425375424119317944175137064689643861517718849867010341532542385911089624710885385808688837777258648564145934262121086647588489260031762345960769508849149662444156604419552086811989770240.0:0:4938: ++%5000LF: +INFINITY:1:10:inf: ++%*5000LF: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input +new file mode 100644 +index 0000000000000000..af43cfe2cde3b19a +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-g.input +@@ -0,0 +1,682 @@ ++%Lg::0:-1: ++%*Lg::0:-1: ++%Lg:-infinity:1:9:-inf: ++%*Lg:-infinity:0:9: ++%Lg:-0xf.fffffffffffffffp+16380:1:27:-0x1.fffffffffffffffep16383: ++%*Lg:-0xf.fffffffffffffffp+16380:0:27: ++%Lg:-0x7.fffffffffffffff8p16381:1:27:-0x1.fffffffffffffffep16383: ++%*Lg:-0x7.fffffffffffffff8p16381:0:27: ++%Lg:-0x2.3456789abcdef01p+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:-0x2.3456789abcdef01p+12345:0:27: ++%Lg:-0x2.3456789abcdef01p012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:-0x2.3456789abcdef01p012345:0:27: ++%Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*Lg:-0x8p-16385:0:11: ++%Lg:-0x0p+0:1:7:-0x0: ++%*Lg:-0x0p+0:0:7: ++%Lg:-0x0p0:1:6:-0x0: ++%*Lg:-0x0p0:0:6: ++%Lg:-nan(09A_Zaz):1:13:-nan: ++%*Lg:-nan(09A_Zaz):0:13: ++%Lg:-nan():1:6:-nan: ++%*Lg:-nan():0:6: ++%Lg:nan():1:5:nan: ++%*Lg:nan():0:5: ++%Lg:nan(09A_Zaz):1:12:nan: ++%*Lg:nan(09A_Zaz):0:12: ++%Lg:0x0p0:1:5:0x0: ++%*Lg:0x0p0:0:5: ++%Lg:0x0p+0:1:6:0x0: ++%*Lg:0x0p+0:0:6: ++%Lg:0x8p-16385:1:10:0x1p-16382: ++%*Lg:0x8p-16385:0:10: ++%Lg:0x2.3456789abcdef01p012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:0x2.3456789abcdef01p012345:0:26: ++%Lg:0x2.3456789abcdef01p+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:0x2.3456789abcdef01p+12345:0:26: ++%Lg:0x7.fffffffffffffff8p16381:1:26:0x1.fffffffffffffffep16383: ++%*Lg:0x7.fffffffffffffff8p16381:0:26: ++%Lg:0xf.fffffffffffffffp+16380:1:26:0x1.fffffffffffffffep16383: ++%*Lg:0xf.fffffffffffffffp+16380:0:26: ++%Lg:infinity:1:8:inf: ++%*Lg:infinity:0:8: ++%Lg:+nan():1:6:nan: ++%*Lg:+nan():0:6: ++%Lg:+nan(09A_Zaz):1:13:nan: ++%*Lg:+nan(09A_Zaz):0:13: ++%Lg:+0x0p0:1:6:0x0: ++%*Lg:+0x0p0:0:6: ++%Lg:+0x0p+0:1:7:0x0: ++%*Lg:+0x0p+0:0:7: ++%Lg:+0x8p-16385:1:11:0x1p-16382: ++%*Lg:+0x8p-16385:0:11: ++%Lg:+0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:+0x2.3456789abcdef01p012345:0:27: ++%Lg:+0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*Lg:+0x2.3456789abcdef01p+12345:0:27: ++%Lg:+0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*Lg:+0x7.fffffffffffffff8p16381:0:27: ++%Lg:+0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*Lg:+0xf.fffffffffffffffp+16380:0:27: ++%Lg:+infinity:1:9:inf: ++%*Lg:+infinity:0:9: ++%1Lg::0:-1: ++%*1Lg::0:-1: ++%1Lg:-infinity:0:-1: ++%*1Lg:-infinity:0:-1: ++%1Lg:-0xf.fffffffffffffffp+16380:0:-1: ++%*1Lg:-0xf.fffffffffffffffp+16380:0:-1: ++%1Lg:-0x7.fffffffffffffff8p16381:0:-1: ++%*1Lg:-0x7.fffffffffffffff8p16381:0:-1: ++%1Lg:-0x2.3456789abcdef01p+12345:0:-1: ++%*1Lg:-0x2.3456789abcdef01p+12345:0:-1: ++%1Lg:-0x2.3456789abcdef01p012345:0:-1: ++%*1Lg:-0x2.3456789abcdef01p012345:0:-1: ++%1Lg:-0x8p-16385:0:-1: ++%*1Lg:-0x8p-16385:0:-1: ++%1Lg:-0x0p+0:0:-1: ++%*1Lg:-0x0p+0:0:-1: ++%1Lg:-0x0p0:0:-1: ++%*1Lg:-0x0p0:0:-1: ++%1Lg:-nan(09A_Zaz):0:-1: ++%*1Lg:-nan(09A_Zaz):0:-1: ++%1Lg:-nan():0:-1: ++%*1Lg:-nan():0:-1: ++%1Lg:nan():0:-1: ++%*1Lg:nan():0:-1: ++%1Lg:nan(09A_Zaz):0:-1: ++%*1Lg:nan(09A_Zaz):0:-1: ++%1Lg:0x0p0:1:1:0x0: ++%*1Lg:0x0p0:0:1: ++%1Lg:0x0p+0:1:1:0x0: ++%*1Lg:0x0p+0:0:1: ++%1Lg:0x8p-16385:1:1:0x0: ++%*1Lg:0x8p-16385:0:1: ++%1Lg:0x2.3456789abcdef01p012345:1:1:0x0: ++%*1Lg:0x2.3456789abcdef01p012345:0:1: ++%1Lg:0x2.3456789abcdef01p+12345:1:1:0x0: ++%*1Lg:0x2.3456789abcdef01p+12345:0:1: ++%1Lg:0x7.fffffffffffffff8p16381:1:1:0x0: ++%*1Lg:0x7.fffffffffffffff8p16381:0:1: ++%1Lg:0xf.fffffffffffffffp+16380:1:1:0x0: ++%*1Lg:0xf.fffffffffffffffp+16380:0:1: ++%1Lg:infinity:0:-1: ++%*1Lg:infinity:0:-1: ++%1Lg:+nan():0:-1: ++%*1Lg:+nan():0:-1: ++%1Lg:+nan(09A_Zaz):0:-1: ++%*1Lg:+nan(09A_Zaz):0:-1: ++%1Lg:+0x0p0:0:-1: ++%*1Lg:+0x0p0:0:-1: ++%1Lg:+0x0p+0:0:-1: ++%*1Lg:+0x0p+0:0:-1: ++%1Lg:+0x8p-16385:0:-1: ++%*1Lg:+0x8p-16385:0:-1: ++%1Lg:+0x2.3456789abcdef01p012345:0:-1: ++%*1Lg:+0x2.3456789abcdef01p012345:0:-1: ++%1Lg:+0x2.3456789abcdef01p+12345:0:-1: ++%*1Lg:+0x2.3456789abcdef01p+12345:0:-1: ++%1Lg:+0x7.fffffffffffffff8p16381:0:-1: ++%*1Lg:+0x7.fffffffffffffff8p16381:0:-1: ++%1Lg:+0xf.fffffffffffffffp+16380:0:-1: ++%*1Lg:+0xf.fffffffffffffffp+16380:0:-1: ++%1Lg:+infinity:0:-1: ++%*1Lg:+infinity:0:-1: ++%2Lg::0:-1: ++%*2Lg::0:-1: ++%2Lg:-infinity:0:-1: ++%*2Lg:-infinity:0:-1: ++%2Lg:-0xf.fffffffffffffffp+16380:1:2:-0x0: ++%*2Lg:-0xf.fffffffffffffffp+16380:0:2: ++%2Lg:-0x7.fffffffffffffff8p16381:1:2:-0x0: ++%*2Lg:-0x7.fffffffffffffff8p16381:0:2: ++%2Lg:-0x2.3456789abcdef01p+12345:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef01p+12345:0:2: ++%2Lg:-0x2.3456789abcdef01p012345:1:2:-0x0: ++%*2Lg:-0x2.3456789abcdef01p012345:0:2: ++%2Lg:-0x8p-16385:1:2:-0x0: ++%*2Lg:-0x8p-16385:0:2: ++%2Lg:-0x0p+0:1:2:-0x0: ++%*2Lg:-0x0p+0:0:2: ++%2Lg:-0x0p0:1:2:-0x0: ++%*2Lg:-0x0p0:0:2: ++%2Lg:-nan(09A_Zaz):0:-1: ++%*2Lg:-nan(09A_Zaz):0:-1: ++%2Lg:-nan():0:-1: ++%*2Lg:-nan():0:-1: ++%2Lg:nan():0:-1: ++%*2Lg:nan():0:-1: ++%2Lg:nan(09A_Zaz):0:-1: ++%*2Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %2Lg:0x0p0:0:-1: ++# BZ12701 %*2Lg:0x0p0:0:-1: ++# BZ12701 %2Lg:0x0p+0:0:-1: ++# BZ12701 %*2Lg:0x0p+0:0:-1: ++# BZ12701 %2Lg:0x8p-16385:0:-1: ++# BZ12701 %*2Lg:0x8p-16385:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %2Lg:0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*2Lg:0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %2Lg:0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*2Lg:0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %2Lg:0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*2Lg:0xf.fffffffffffffffp+16380:0:-1: ++%2Lg:infinity:0:-1: ++%*2Lg:infinity:0:-1: ++%2Lg:+nan():0:-1: ++%*2Lg:+nan():0:-1: ++%2Lg:+nan(09A_Zaz):0:-1: ++%*2Lg:+nan(09A_Zaz):0:-1: ++%2Lg:+0x0p0:1:2:0x0: ++%*2Lg:+0x0p0:0:2: ++%2Lg:+0x0p+0:1:2:0x0: ++%*2Lg:+0x0p+0:0:2: ++%2Lg:+0x8p-16385:1:2:0x0: ++%*2Lg:+0x8p-16385:0:2: ++%2Lg:+0x2.3456789abcdef01p012345:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef01p012345:0:2: ++%2Lg:+0x2.3456789abcdef01p+12345:1:2:0x0: ++%*2Lg:+0x2.3456789abcdef01p+12345:0:2: ++%2Lg:+0x7.fffffffffffffff8p16381:1:2:0x0: ++%*2Lg:+0x7.fffffffffffffff8p16381:0:2: ++%2Lg:+0xf.fffffffffffffffp+16380:1:2:0x0: ++%*2Lg:+0xf.fffffffffffffffp+16380:0:2: ++%2Lg:+infinity:0:-1: ++%*2Lg:+infinity:0:-1: ++%3Lg::0:-1: ++%*3Lg::0:-1: ++%3Lg:-infinity:0:-1: ++%*3Lg:-infinity:0:-1: ++# BZ12701 %3Lg:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*3Lg:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %3Lg:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*3Lg:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %3Lg:-0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*3Lg:-0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %3Lg:-0x8p-16385:0:-1: ++# BZ12701 %*3Lg:-0x8p-16385:0:-1: ++# BZ12701 %3Lg:-0x0p+0:0:-1: ++# BZ12701 %*3Lg:-0x0p+0:0:-1: ++# BZ12701 %3Lg:-0x0p0:0:-1: ++# BZ12701 %*3Lg:-0x0p0:0:-1: ++%3Lg:-nan(09A_Zaz):0:-1: ++%*3Lg:-nan(09A_Zaz):0:-1: ++%3Lg:-nan():0:-1: ++%*3Lg:-nan():0:-1: ++%3Lg:nan():1:3:nan: ++%*3Lg:nan():0:3: ++%3Lg:nan(09A_Zaz):1:3:nan: ++%*3Lg:nan(09A_Zaz):0:3: ++%3Lg:0x0p0:1:3:0x0: ++%*3Lg:0x0p0:0:3: ++%3Lg:0x0p+0:1:3:0x0: ++%*3Lg:0x0p+0:0:3: ++%3Lg:0x8p-16385:1:3:0x1p3: ++%*3Lg:0x8p-16385:0:3: ++%3Lg:0x2.3456789abcdef01p012345:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef01p012345:0:3: ++%3Lg:0x2.3456789abcdef01p+12345:1:3:0x1p1: ++%*3Lg:0x2.3456789abcdef01p+12345:0:3: ++%3Lg:0x7.fffffffffffffff8p16381:1:3:0x1.cp2: ++%*3Lg:0x7.fffffffffffffff8p16381:0:3: ++%3Lg:0xf.fffffffffffffffp+16380:1:3:0x1.ep3: ++%*3Lg:0xf.fffffffffffffffp+16380:0:3: ++%3Lg:infinity:1:3:inf: ++%*3Lg:infinity:0:3: ++%3Lg:+nan():0:-1: ++%*3Lg:+nan():0:-1: ++%3Lg:+nan(09A_Zaz):0:-1: ++%*3Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %3Lg:+0x0p0:0:-1: ++# BZ12701 %*3Lg:+0x0p0:0:-1: ++# BZ12701 %3Lg:+0x0p+0:0:-1: ++# BZ12701 %*3Lg:+0x0p+0:0:-1: ++# BZ12701 %3Lg:+0x8p-16385:0:-1: ++# BZ12701 %*3Lg:+0x8p-16385:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef01p012345:0:-1: ++# BZ12701 %3Lg:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*3Lg:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %3Lg:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*3Lg:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %3Lg:+0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*3Lg:+0xf.fffffffffffffffp+16380:0:-1: ++%3Lg:+infinity:0:-1: ++%*3Lg:+infinity:0:-1: ++%4Lg::0:-1: ++%*4Lg::0:-1: ++%4Lg:-infinity:1:4:-inf: ++%*4Lg:-infinity:0:4: ++%4Lg:-0xf.fffffffffffffffp+16380:1:4:-0x1.ep3: ++%*4Lg:-0xf.fffffffffffffffp+16380:0:4: ++%4Lg:-0x7.fffffffffffffff8p16381:1:4:-0x1.cp2: ++%*4Lg:-0x7.fffffffffffffff8p16381:0:4: ++%4Lg:-0x2.3456789abcdef01p+12345:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef01p+12345:0:4: ++%4Lg:-0x2.3456789abcdef01p012345:1:4:-0x1p1: ++%*4Lg:-0x2.3456789abcdef01p012345:0:4: ++%4Lg:-0x8p-16385:1:4:-0x1p3: ++%*4Lg:-0x8p-16385:0:4: ++%4Lg:-0x0p+0:1:4:-0x0: ++%*4Lg:-0x0p+0:0:4: ++%4Lg:-0x0p0:1:4:-0x0: ++%*4Lg:-0x0p0:0:4: ++%4Lg:-nan(09A_Zaz):1:4:-nan: ++%*4Lg:-nan(09A_Zaz):0:4: ++%4Lg:-nan():1:4:-nan: ++%*4Lg:-nan():0:4: ++%4Lg:nan():0:-1: ++%*4Lg:nan():0:-1: ++%4Lg:nan(09A_Zaz):0:-1: ++%*4Lg:nan(09A_Zaz):0:-1: ++# BZ12701 %4Lg:0x0p0:0:-1: ++# BZ12701 %*4Lg:0x0p0:0:-1: ++# BZ12701 %4Lg:0x0p+0:0:-1: ++# BZ12701 %*4Lg:0x0p+0:0:-1: ++# BZ12701 %4Lg:0x8p-16385:0:-1: ++# BZ12701 %*4Lg:0x8p-16385:0:-1: ++%4Lg:0x2.3456789abcdef01p012345:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef01p012345:0:4: ++%4Lg:0x2.3456789abcdef01p+12345:1:4:0x1p1: ++%*4Lg:0x2.3456789abcdef01p+12345:0:4: ++%4Lg:0x7.fffffffffffffff8p16381:1:4:0x1.cp2: ++%*4Lg:0x7.fffffffffffffff8p16381:0:4: ++%4Lg:0xf.fffffffffffffffp+16380:1:4:0x1.ep3: ++%*4Lg:0xf.fffffffffffffffp+16380:0:4: ++%4Lg:infinity:0:-1: ++%*4Lg:infinity:0:-1: ++%4Lg:+nan():1:4:nan: ++%*4Lg:+nan():0:4: ++%4Lg:+nan(09A_Zaz):1:4:nan: ++%*4Lg:+nan(09A_Zaz):0:4: ++%4Lg:+0x0p0:1:4:0x0: ++%*4Lg:+0x0p0:0:4: ++%4Lg:+0x0p+0:1:4:0x0: ++%*4Lg:+0x0p+0:0:4: ++%4Lg:+0x8p-16385:1:4:0x1p3: ++%*4Lg:+0x8p-16385:0:4: ++%4Lg:+0x2.3456789abcdef01p012345:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef01p012345:0:4: ++%4Lg:+0x2.3456789abcdef01p+12345:1:4:0x1p1: ++%*4Lg:+0x2.3456789abcdef01p+12345:0:4: ++%4Lg:+0x7.fffffffffffffff8p16381:1:4:0x1.cp2: ++%*4Lg:+0x7.fffffffffffffff8p16381:0:4: ++%4Lg:+0xf.fffffffffffffffp+16380:1:4:0x1.ep3: ++%*4Lg:+0xf.fffffffffffffffp+16380:0:4: ++%4Lg:+infinity:1:4:inf: ++%*4Lg:+infinity:0:4: ++%5Lg::0:-1: ++%*5Lg::0:-1: ++%5Lg:-infinity:0:-1: ++%*5Lg:-infinity:0:-1: ++%5Lg:-0xf.fffffffffffffffp+16380:1:5:-0x1.ep3: ++%*5Lg:-0xf.fffffffffffffffp+16380:0:5: ++%5Lg:-0x7.fffffffffffffff8p16381:1:5:-0x1.cp2: ++%*5Lg:-0x7.fffffffffffffff8p16381:0:5: ++%5Lg:-0x2.3456789abcdef01p+12345:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef01p+12345:0:5: ++%5Lg:-0x2.3456789abcdef01p012345:1:5:-0x1p1: ++%*5Lg:-0x2.3456789abcdef01p012345:0:5: ++# BZ12701 %5Lg:-0x8p-16385:0:-1: ++# BZ12701 %*5Lg:-0x8p-16385:0:-1: ++# BZ12701 %5Lg:-0x0p+0:0:-1: ++# BZ12701 %*5Lg:-0x0p+0:0:-1: ++# BZ12701 %5Lg:-0x0p0:0:-1: ++# BZ12701 %*5Lg:-0x0p0:0:-1: ++%5Lg:-nan(09A_Zaz):0:-1: ++%*5Lg:-nan(09A_Zaz):0:-1: ++%5Lg:-nan():0:-1: ++%*5Lg:-nan():0:-1: ++%5Lg:nan():1:5:nan: ++%*5Lg:nan():0:5: ++%5Lg:nan(09A_Zaz):0:-1: ++%*5Lg:nan(09A_Zaz):0:-1: ++%5Lg:0x0p0:1:5:0x0: ++%*5Lg:0x0p0:0:5: ++# BZ12701 %5Lg:0x0p+0:0:-1: ++# BZ12701 %*5Lg:0x0p+0:0:-1: ++# BZ12701 %5Lg:0x8p-16385:0:-1: ++# BZ12701 %*5Lg:0x8p-16385:0:-1: ++%5Lg:0x2.3456789abcdef01p012345:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef01p012345:0:5: ++%5Lg:0x2.3456789abcdef01p+12345:1:5:0x1.18p1: ++%*5Lg:0x2.3456789abcdef01p+12345:0:5: ++%5Lg:0x7.fffffffffffffff8p16381:1:5:0x1.fcp2: ++%*5Lg:0x7.fffffffffffffff8p16381:0:5: ++%5Lg:0xf.fffffffffffffffp+16380:1:5:0x1.fep3: ++%*5Lg:0xf.fffffffffffffffp+16380:0:5: ++%5Lg:infinity:0:-1: ++%*5Lg:infinity:0:-1: ++%5Lg:+nan():0:-1: ++%*5Lg:+nan():0:-1: ++%5Lg:+nan(09A_Zaz):0:-1: ++%*5Lg:+nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg:+0x0p0:0:-1: ++# BZ12701 %*5Lg:+0x0p0:0:-1: ++# BZ12701 %5Lg:+0x0p+0:0:-1: ++# BZ12701 %*5Lg:+0x0p+0:0:-1: ++# BZ12701 %5Lg:+0x8p-16385:0:-1: ++# BZ12701 %*5Lg:+0x8p-16385:0:-1: ++%5Lg:+0x2.3456789abcdef01p012345:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef01p012345:0:5: ++%5Lg:+0x2.3456789abcdef01p+12345:1:5:0x1p1: ++%*5Lg:+0x2.3456789abcdef01p+12345:0:5: ++%5Lg:+0x7.fffffffffffffff8p16381:1:5:0x1.cp2: ++%*5Lg:+0x7.fffffffffffffff8p16381:0:5: ++%5Lg:+0xf.fffffffffffffffp+16380:1:5:0x1.ep3: ++%*5Lg:+0xf.fffffffffffffffp+16380:0:5: ++%5Lg:+infinity:0:-1: ++%*5Lg:+infinity:0:-1: ++%6Lg::0:-1: ++%*6Lg::0:-1: ++%6Lg:-infinity:0:-1: ++%*6Lg:-infinity:0:-1: ++%6Lg:-0xf.fffffffffffffffp+16380:1:6:-0x1.fep3: ++%*6Lg:-0xf.fffffffffffffffp+16380:0:6: ++%6Lg:-0x7.fffffffffffffff8p16381:1:6:-0x1.fcp2: ++%*6Lg:-0x7.fffffffffffffff8p16381:0:6: ++%6Lg:-0x2.3456789abcdef01p+12345:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef01p+12345:0:6: ++%6Lg:-0x2.3456789abcdef01p012345:1:6:-0x1.18p1: ++%*6Lg:-0x2.3456789abcdef01p012345:0:6: ++# BZ12701 %6Lg:-0x8p-16385:0:-1: ++# BZ12701 %*6Lg:-0x8p-16385:0:-1: ++# BZ12701 %6Lg:-0x0p+0:0:-1: ++# BZ12701 %*6Lg:-0x0p+0:0:-1: ++%6Lg:-0x0p0:1:6:-0x0: ++%*6Lg:-0x0p0:0:6: ++%6Lg:-nan(09A_Zaz):0:-1: ++%*6Lg:-nan(09A_Zaz):0:-1: ++%6Lg:-nan():1:6:-nan: ++%*6Lg:-nan():0:6: ++%6Lg:nan():1:5:nan: ++%*6Lg:nan():0:5: ++%6Lg:nan(09A_Zaz):0:-1: ++%*6Lg:nan(09A_Zaz):0:-1: ++%6Lg:0x0p0:1:5:0x0: ++%*6Lg:0x0p0:0:5: ++%6Lg:0x0p+0:1:6:0x0: ++%*6Lg:0x0p+0:0:6: ++%6Lg:0x8p-16385:1:6:0x1p2: ++%*6Lg:0x8p-16385:0:6: ++%6Lg:0x2.3456789abcdef01p012345:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef01p012345:0:6: ++%6Lg:0x2.3456789abcdef01p+12345:1:6:0x1.1ap1: ++%*6Lg:0x2.3456789abcdef01p+12345:0:6: ++%6Lg:0x7.fffffffffffffff8p16381:1:6:0x1.ffcp2: ++%*6Lg:0x7.fffffffffffffff8p16381:0:6: ++%6Lg:0xf.fffffffffffffffp+16380:1:6:0x1.ffep3: ++%*6Lg:0xf.fffffffffffffffp+16380:0:6: ++%6Lg:infinity:0:-1: ++%*6Lg:infinity:0:-1: ++%6Lg:+nan():1:6:nan: ++%*6Lg:+nan():0:6: ++%6Lg:+nan(09A_Zaz):0:-1: ++%*6Lg:+nan(09A_Zaz):0:-1: ++%6Lg:+0x0p0:1:6:0x0: ++%*6Lg:+0x0p0:0:6: ++# BZ12701 %6Lg:+0x0p+0:0:-1: ++# BZ12701 %*6Lg:+0x0p+0:0:-1: ++# BZ12701 %6Lg:+0x8p-16385:0:-1: ++# BZ12701 %*6Lg:+0x8p-16385:0:-1: ++%6Lg:+0x2.3456789abcdef01p012345:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef01p012345:0:6: ++%6Lg:+0x2.3456789abcdef01p+12345:1:6:0x1.18p1: ++%*6Lg:+0x2.3456789abcdef01p+12345:0:6: ++%6Lg:+0x7.fffffffffffffff8p16381:1:6:0x1.fcp2: ++%*6Lg:+0x7.fffffffffffffff8p16381:0:6: ++%6Lg:+0xf.fffffffffffffffp+16380:1:6:0x1.fep3: ++%*6Lg:+0xf.fffffffffffffffp+16380:0:6: ++%6Lg:+infinity:0:-1: ++%*6Lg:+infinity:0:-1: ++%22Lg::0:-1: ++%*22Lg::0:-1: ++%22Lg:-infinity:1:9:-inf: ++%*22Lg:-infinity:0:9: ++# BZ12701 %22Lg:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*22Lg:-0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %22Lg:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*22Lg:-0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %22Lg:-0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*22Lg:-0x2.3456789abcdef01p+12345:0:-1: ++%22Lg:-0x2.3456789abcdef01p012345:1:22:-0x1.1a2b3c4d5e6f7808p1: ++%*22Lg:-0x2.3456789abcdef01p012345:0:22: ++%22Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*22Lg:-0x8p-16385:0:11: ++%22Lg:-0x0p+0:1:7:-0x0: ++%*22Lg:-0x0p+0:0:7: ++%22Lg:-0x0p0:1:6:-0x0: ++%*22Lg:-0x0p0:0:6: ++%22Lg:-nan(09A_Zaz):1:13:-nan: ++%*22Lg:-nan(09A_Zaz):0:13: ++%22Lg:-nan():1:6:-nan: ++%*22Lg:-nan():0:6: ++%22Lg:nan():1:5:nan: ++%*22Lg:nan():0:5: ++%22Lg:nan(09A_Zaz):1:12:nan: ++%*22Lg:nan(09A_Zaz):0:12: ++%22Lg:0x0p0:1:5:0x0: ++%*22Lg:0x0p0:0:5: ++%22Lg:0x0p+0:1:6:0x0: ++%*22Lg:0x0p+0:0:6: ++%22Lg:0x8p-16385:1:10:0x1p-16382: ++%*22Lg:0x8p-16385:0:10: ++%22Lg:0x2.3456789abcdef01p012345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22Lg:0x2.3456789abcdef01p012345:0:22: ++%22Lg:0x2.3456789abcdef01p+12345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22Lg:0x2.3456789abcdef01p+12345:0:22: ++%22Lg:0x7.fffffffffffffff8p16381:1:22:0x1.fffffffffffffffep3: ++%*22Lg:0x7.fffffffffffffff8p16381:0:22: ++%22Lg:0xf.fffffffffffffffp+16380:1:22:0x1.fffffffffffffffep4: ++%*22Lg:0xf.fffffffffffffffp+16380:0:22: ++%22Lg:infinity:1:8:inf: ++%*22Lg:infinity:0:8: ++%22Lg:+nan():1:6:nan: ++%*22Lg:+nan():0:6: ++%22Lg:+nan(09A_Zaz):1:13:nan: ++%*22Lg:+nan(09A_Zaz):0:13: ++%22Lg:+0x0p0:1:6:0x0: ++%*22Lg:+0x0p0:0:6: ++%22Lg:+0x0p+0:1:7:0x0: ++%*22Lg:+0x0p+0:0:7: ++%22Lg:+0x8p-16385:1:11:0x1p-16382: ++%*22Lg:+0x8p-16385:0:11: ++%22Lg:+0x2.3456789abcdef01p012345:1:22:0x1.1a2b3c4d5e6f7808p1: ++%*22Lg:+0x2.3456789abcdef01p012345:0:22: ++# BZ12701 %22Lg:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %*22Lg:+0x2.3456789abcdef01p+12345:0:-1: ++# BZ12701 %22Lg:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %*22Lg:+0x7.fffffffffffffff8p16381:0:-1: ++# BZ12701 %22Lg:+0xf.fffffffffffffffp+16380:0:-1: ++# BZ12701 %*22Lg:+0xf.fffffffffffffffp+16380:0:-1: ++%22Lg:+infinity:1:9:inf: ++%*22Lg:+infinity:0:9: ++%37Lg::0:-1: ++%*37Lg::0:-1: ++%37Lg:-infinity:1:9:-inf: ++%*37Lg:-infinity:0:9: ++%37Lg:-0xf.fffffffffffffffp+16380:1:27:-0x1.fffffffffffffffep16383: ++%*37Lg:-0xf.fffffffffffffffp+16380:0:27: ++%37Lg:-0x7.fffffffffffffff8p16381:1:27:-0x1.fffffffffffffffep16383: ++%*37Lg:-0x7.fffffffffffffff8p16381:0:27: ++%37Lg:-0x2.3456789abcdef01p+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:-0x2.3456789abcdef01p+12345:0:27: ++%37Lg:-0x2.3456789abcdef01p012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:-0x2.3456789abcdef01p012345:0:27: ++%37Lg:-0x8p-16385:1:11:-0x1p-16382: ++%*37Lg:-0x8p-16385:0:11: ++%37Lg:-0x0p+0:1:7:-0x0: ++%*37Lg:-0x0p+0:0:7: ++%37Lg:-0x0p0:1:6:-0x0: ++%*37Lg:-0x0p0:0:6: ++%37Lg:-nan(09A_Zaz):1:13:-nan: ++%*37Lg:-nan(09A_Zaz):0:13: ++%37Lg:-nan():1:6:-nan: ++%*37Lg:-nan():0:6: ++%37Lg:nan():1:5:nan: ++%*37Lg:nan():0:5: ++%37Lg:nan(09A_Zaz):1:12:nan: ++%*37Lg:nan(09A_Zaz):0:12: ++%37Lg:0x0p0:1:5:0x0: ++%*37Lg:0x0p0:0:5: ++%37Lg:0x0p+0:1:6:0x0: ++%*37Lg:0x0p+0:0:6: ++%37Lg:0x8p-16385:1:10:0x1p-16382: ++%*37Lg:0x8p-16385:0:10: ++%37Lg:0x2.3456789abcdef01p012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:0x2.3456789abcdef01p012345:0:26: ++%37Lg:0x2.3456789abcdef01p+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:0x2.3456789abcdef01p+12345:0:26: ++%37Lg:0x7.fffffffffffffff8p16381:1:26:0x1.fffffffffffffffep16383: ++%*37Lg:0x7.fffffffffffffff8p16381:0:26: ++%37Lg:0xf.fffffffffffffffp+16380:1:26:0x1.fffffffffffffffep16383: ++%*37Lg:0xf.fffffffffffffffp+16380:0:26: ++%37Lg:infinity:1:8:inf: ++%*37Lg:infinity:0:8: ++%37Lg:+nan():1:6:nan: ++%*37Lg:+nan():0:6: ++%37Lg:+nan(09A_Zaz):1:13:nan: ++%*37Lg:+nan(09A_Zaz):0:13: ++%37Lg:+0x0p0:1:6:0x0: ++%*37Lg:+0x0p0:0:6: ++%37Lg:+0x0p+0:1:7:0x0: ++%*37Lg:+0x0p+0:0:7: ++%37Lg:+0x8p-16385:1:11:0x1p-16382: ++%*37Lg:+0x8p-16385:0:11: ++%37Lg:+0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:+0x2.3456789abcdef01p012345:0:27: ++%37Lg:+0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg:+0x2.3456789abcdef01p+12345:0:27: ++%37Lg:+0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*37Lg:+0x7.fffffffffffffff8p16381:0:27: ++%37Lg:+0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*37Lg:+0xf.fffffffffffffffp+16380:0:27: ++%37Lg:+infinity:1:9:inf: ++%*37Lg:+infinity:0:9: ++%5Lg: :0:-1: ++%*5Lg: :0:-1: ++%5Lg: -infinity:0:-1: ++%*5Lg: -infinity:0:-1: ++%5Lg: -0xf.fffffffffffffffp+16380:1:6:-0x1.ep3: ++%*5Lg: -0xf.fffffffffffffffp+16380:0:6: ++%5Lg: -0x7.fffffffffffffff8p16381:1:6:-0x1.cp2: ++%*5Lg: -0x7.fffffffffffffff8p16381:0:6: ++%5Lg: -0x2.3456789abcdef01p+12345:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef01p+12345:0:6: ++%5Lg: -0x2.3456789abcdef01p012345:1:6:-0x1p1: ++%*5Lg: -0x2.3456789abcdef01p012345:0:6: ++# BZ12701 %5Lg: -0x8p-16385:0:-1: ++# BZ12701 %*5Lg: -0x8p-16385:0:-1: ++# BZ12701 %5Lg: -0x0p+0:0:-1: ++# BZ12701 %*5Lg: -0x0p+0:0:-1: ++# BZ12701 %5Lg: -0x0p0:0:-1: ++# BZ12701 %*5Lg: -0x0p0:0:-1: ++%5Lg: -nan(09A_Zaz):0:-1: ++%*5Lg: -nan(09A_Zaz):0:-1: ++%5Lg: -nan():0:-1: ++%*5Lg: -nan():0:-1: ++%5Lg: nan():1:6:nan: ++%*5Lg: nan():0:6: ++%5Lg: nan(09A_Zaz):0:-1: ++%*5Lg: nan(09A_Zaz):0:-1: ++%5Lg: 0x0p0:1:6:0x0: ++%*5Lg: 0x0p0:0:6: ++# BZ12701 %5Lg: 0x0p+0:0:-1: ++# BZ12701 %*5Lg: 0x0p+0:0:-1: ++# BZ12701 %5Lg: 0x8p-16385:0:-1: ++# BZ12701 %*5Lg: 0x8p-16385:0:-1: ++%5Lg: 0x2.3456789abcdef01p012345:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef01p012345:0:6: ++%5Lg: 0x2.3456789abcdef01p+12345:1:6:0x1.18p1: ++%*5Lg: 0x2.3456789abcdef01p+12345:0:6: ++%5Lg: 0x7.fffffffffffffff8p16381:1:6:0x1.fcp2: ++%*5Lg: 0x7.fffffffffffffff8p16381:0:6: ++%5Lg: 0xf.fffffffffffffffp+16380:1:6:0x1.fep3: ++%*5Lg: 0xf.fffffffffffffffp+16380:0:6: ++%5Lg: infinity:0:-1: ++%*5Lg: infinity:0:-1: ++%5Lg: +nan():0:-1: ++%*5Lg: +nan():0:-1: ++%5Lg: +nan(09A_Zaz):0:-1: ++%*5Lg: +nan(09A_Zaz):0:-1: ++# BZ12701 %5Lg: +0x0p0:0:-1: ++# BZ12701 %*5Lg: +0x0p0:0:-1: ++# BZ12701 %5Lg: +0x0p+0:0:-1: ++# BZ12701 %*5Lg: +0x0p+0:0:-1: ++# BZ12701 %5Lg: +0x8p-16385:0:-1: ++# BZ12701 %*5Lg: +0x8p-16385:0:-1: ++%5Lg: +0x2.3456789abcdef01p012345:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef01p012345:0:6: ++%5Lg: +0x2.3456789abcdef01p+12345:1:6:0x1p1: ++%*5Lg: +0x2.3456789abcdef01p+12345:0:6: ++%5Lg: +0x7.fffffffffffffff8p16381:1:6:0x1.cp2: ++%*5Lg: +0x7.fffffffffffffff8p16381:0:6: ++%5Lg: +0xf.fffffffffffffffp+16380:1:6:0x1.ep3: ++%*5Lg: +0xf.fffffffffffffffp+16380:0:6: ++%5Lg: +infinity:0:-1: ++%*5Lg: +infinity:0:-1: ++%37Lg: :0:-1: ++%*37Lg: :0:-1: ++%37Lg: -infinity:1:10:-inf: ++%*37Lg: -infinity:0:10: ++%37Lg: -0xf.fffffffffffffffp+16380:1:28:-0x1.fffffffffffffffep16383: ++%*37Lg: -0xf.fffffffffffffffp+16380:0:28: ++%37Lg: -0x7.fffffffffffffff8p16381:1:28:-0x1.fffffffffffffffep16383: ++%*37Lg: -0x7.fffffffffffffff8p16381:0:28: ++%37Lg: -0x2.3456789abcdef01p+12345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: -0x2.3456789abcdef01p+12345:0:28: ++%37Lg: -0x2.3456789abcdef01p012345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: -0x2.3456789abcdef01p012345:0:28: ++%37Lg: -0x8p-16385:1:12:-0x1p-16382: ++%*37Lg: -0x8p-16385:0:12: ++%37Lg: -0x0p+0:1:8:-0x0: ++%*37Lg: -0x0p+0:0:8: ++%37Lg: -0x0p0:1:7:-0x0: ++%*37Lg: -0x0p0:0:7: ++%37Lg: -nan(09A_Zaz):1:14:-nan: ++%*37Lg: -nan(09A_Zaz):0:14: ++%37Lg: -nan():1:7:-nan: ++%*37Lg: -nan():0:7: ++%37Lg: nan():1:6:nan: ++%*37Lg: nan():0:6: ++%37Lg: nan(09A_Zaz):1:13:nan: ++%*37Lg: nan(09A_Zaz):0:13: ++%37Lg: 0x0p0:1:6:0x0: ++%*37Lg: 0x0p0:0:6: ++%37Lg: 0x0p+0:1:7:0x0: ++%*37Lg: 0x0p+0:0:7: ++%37Lg: 0x8p-16385:1:11:0x1p-16382: ++%*37Lg: 0x8p-16385:0:11: ++%37Lg: 0x2.3456789abcdef01p012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: 0x2.3456789abcdef01p012345:0:27: ++%37Lg: 0x2.3456789abcdef01p+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: 0x2.3456789abcdef01p+12345:0:27: ++%37Lg: 0x7.fffffffffffffff8p16381:1:27:0x1.fffffffffffffffep16383: ++%*37Lg: 0x7.fffffffffffffff8p16381:0:27: ++%37Lg: 0xf.fffffffffffffffp+16380:1:27:0x1.fffffffffffffffep16383: ++%*37Lg: 0xf.fffffffffffffffp+16380:0:27: ++%37Lg: infinity:1:9:inf: ++%*37Lg: infinity:0:9: ++%37Lg: +nan():1:7:nan: ++%*37Lg: +nan():0:7: ++%37Lg: +nan(09A_Zaz):1:14:nan: ++%*37Lg: +nan(09A_Zaz):0:14: ++%37Lg: +0x0p0:1:7:0x0: ++%*37Lg: +0x0p0:0:7: ++%37Lg: +0x0p+0:1:8:0x0: ++%*37Lg: +0x0p+0:0:8: ++%37Lg: +0x8p-16385:1:12:0x1p-16382: ++%*37Lg: +0x8p-16385:0:12: ++%37Lg: +0x2.3456789abcdef01p012345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: +0x2.3456789abcdef01p012345:0:28: ++%37Lg: +0x2.3456789abcdef01p+12345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37Lg: +0x2.3456789abcdef01p+12345:0:28: ++%37Lg: +0x7.fffffffffffffff8p16381:1:28:0x1.fffffffffffffffep16383: ++%*37Lg: +0x7.fffffffffffffff8p16381:0:28: ++%37Lg: +0xf.fffffffffffffffp+16380:1:28:0x1.fffffffffffffffep16383: ++%*37Lg: +0xf.fffffffffffffffp+16380:0:28: ++%37Lg: +infinity:1:10:inf: ++%*37Lg: +infinity:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input +new file mode 100644 +index 0000000000000000..a274698774017b4b +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-ldouble-gg.input +@@ -0,0 +1,682 @@ ++%LG::0:-1: ++%*LG::0:-1: ++%LG:-INFINITY:1:9:-inf: ++%*LG:-INFINITY:0:9: ++%LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:27:-0x1.fffffffffffffffep16383: ++%*LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:27:-0x1.fffffffffffffffep16383: ++%*LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%LG:-0X2.3456789ABCDEF01P+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*LG:-0X2.3456789ABCDEF01P+12345:0:27: ++%LG:-0X2.3456789ABCDEF01P012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*LG:-0X2.3456789ABCDEF01P012345:0:27: ++%LG:-0X8P-16385:1:11:-0x1p-16382: ++%*LG:-0X8P-16385:0:11: ++%LG:-0X0P+0:1:7:-0x0: ++%*LG:-0X0P+0:0:7: ++%LG:-0X0P0:1:6:-0x0: ++%*LG:-0X0P0:0:6: ++%LG:-NAN(09A_Zaz):1:13:-nan: ++%*LG:-NAN(09A_Zaz):0:13: ++%LG:-NAN():1:6:-nan: ++%*LG:-NAN():0:6: ++%LG:NAN():1:5:nan: ++%*LG:NAN():0:5: ++%LG:NAN(09A_Zaz):1:12:nan: ++%*LG:NAN(09A_Zaz):0:12: ++%LG:0X0P0:1:5:0x0: ++%*LG:0X0P0:0:5: ++%LG:0X0P+0:1:6:0x0: ++%*LG:0X0P+0:0:6: ++%LG:0X8P-16385:1:10:0x1p-16382: ++%*LG:0X8P-16385:0:10: ++%LG:0X2.3456789ABCDEF01P012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*LG:0X2.3456789ABCDEF01P012345:0:26: ++%LG:0X2.3456789ABCDEF01P+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*LG:0X2.3456789ABCDEF01P+12345:0:26: ++%LG:0X7.FFFFFFFFFFFFFFF8P16381:1:26:0x1.fffffffffffffffep16383: ++%*LG:0X7.FFFFFFFFFFFFFFF8P16381:0:26: ++%LG:0XF.FFFFFFFFFFFFFFFP+16380:1:26:0x1.fffffffffffffffep16383: ++%*LG:0XF.FFFFFFFFFFFFFFFP+16380:0:26: ++%LG:INFINITY:1:8:inf: ++%*LG:INFINITY:0:8: ++%LG:+NAN():1:6:nan: ++%*LG:+NAN():0:6: ++%LG:+NAN(09A_Zaz):1:13:nan: ++%*LG:+NAN(09A_Zaz):0:13: ++%LG:+0X0P0:1:6:0x0: ++%*LG:+0X0P0:0:6: ++%LG:+0X0P+0:1:7:0x0: ++%*LG:+0X0P+0:0:7: ++%LG:+0X8P-16385:1:11:0x1p-16382: ++%*LG:+0X8P-16385:0:11: ++%LG:+0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*LG:+0X2.3456789ABCDEF01P012345:0:27: ++%LG:+0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*LG:+0X2.3456789ABCDEF01P+12345:0:27: ++%LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%LG:+INFINITY:1:9:inf: ++%*LG:+INFINITY:0:9: ++%1LG::0:-1: ++%*1LG::0:-1: ++%1LG:-INFINITY:0:-1: ++%*1LG:-INFINITY:0:-1: ++%1LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%*1LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%1LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%*1LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%1LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++%*1LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++%1LG:-0X2.3456789ABCDEF01P012345:0:-1: ++%*1LG:-0X2.3456789ABCDEF01P012345:0:-1: ++%1LG:-0X8P-16385:0:-1: ++%*1LG:-0X8P-16385:0:-1: ++%1LG:-0X0P+0:0:-1: ++%*1LG:-0X0P+0:0:-1: ++%1LG:-0X0P0:0:-1: ++%*1LG:-0X0P0:0:-1: ++%1LG:-NAN(09A_Zaz):0:-1: ++%*1LG:-NAN(09A_Zaz):0:-1: ++%1LG:-NAN():0:-1: ++%*1LG:-NAN():0:-1: ++%1LG:NAN():0:-1: ++%*1LG:NAN():0:-1: ++%1LG:NAN(09A_Zaz):0:-1: ++%*1LG:NAN(09A_Zaz):0:-1: ++%1LG:0X0P0:1:1:0x0: ++%*1LG:0X0P0:0:1: ++%1LG:0X0P+0:1:1:0x0: ++%*1LG:0X0P+0:0:1: ++%1LG:0X8P-16385:1:1:0x0: ++%*1LG:0X8P-16385:0:1: ++%1LG:0X2.3456789ABCDEF01P012345:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF01P012345:0:1: ++%1LG:0X2.3456789ABCDEF01P+12345:1:1:0x0: ++%*1LG:0X2.3456789ABCDEF01P+12345:0:1: ++%1LG:0X7.FFFFFFFFFFFFFFF8P16381:1:1:0x0: ++%*1LG:0X7.FFFFFFFFFFFFFFF8P16381:0:1: ++%1LG:0XF.FFFFFFFFFFFFFFFP+16380:1:1:0x0: ++%*1LG:0XF.FFFFFFFFFFFFFFFP+16380:0:1: ++%1LG:INFINITY:0:-1: ++%*1LG:INFINITY:0:-1: ++%1LG:+NAN():0:-1: ++%*1LG:+NAN():0:-1: ++%1LG:+NAN(09A_Zaz):0:-1: ++%*1LG:+NAN(09A_Zaz):0:-1: ++%1LG:+0X0P0:0:-1: ++%*1LG:+0X0P0:0:-1: ++%1LG:+0X0P+0:0:-1: ++%*1LG:+0X0P+0:0:-1: ++%1LG:+0X8P-16385:0:-1: ++%*1LG:+0X8P-16385:0:-1: ++%1LG:+0X2.3456789ABCDEF01P012345:0:-1: ++%*1LG:+0X2.3456789ABCDEF01P012345:0:-1: ++%1LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++%*1LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++%1LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%*1LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++%1LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%*1LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%1LG:+INFINITY:0:-1: ++%*1LG:+INFINITY:0:-1: ++%2LG::0:-1: ++%*2LG::0:-1: ++%2LG:-INFINITY:0:-1: ++%*2LG:-INFINITY:0:-1: ++%2LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:2:-0x0: ++%*2LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:2: ++%2LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:2:-0x0: ++%*2LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:2: ++%2LG:-0X2.3456789ABCDEF01P+12345:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF01P+12345:0:2: ++%2LG:-0X2.3456789ABCDEF01P012345:1:2:-0x0: ++%*2LG:-0X2.3456789ABCDEF01P012345:0:2: ++%2LG:-0X8P-16385:1:2:-0x0: ++%*2LG:-0X8P-16385:0:2: ++%2LG:-0X0P+0:1:2:-0x0: ++%*2LG:-0X0P+0:0:2: ++%2LG:-0X0P0:1:2:-0x0: ++%*2LG:-0X0P0:0:2: ++%2LG:-NAN(09A_Zaz):0:-1: ++%*2LG:-NAN(09A_Zaz):0:-1: ++%2LG:-NAN():0:-1: ++%*2LG:-NAN():0:-1: ++%2LG:NAN():0:-1: ++%*2LG:NAN():0:-1: ++%2LG:NAN(09A_Zaz):0:-1: ++%*2LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %2LG:0X0P0:0:-1: ++# BZ12701 %*2LG:0X0P0:0:-1: ++# BZ12701 %2LG:0X0P+0:0:-1: ++# BZ12701 %*2LG:0X0P+0:0:-1: ++# BZ12701 %2LG:0X8P-16385:0:-1: ++# BZ12701 %*2LG:0X8P-16385:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %2LG:0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*2LG:0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %2LG:0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*2LG:0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %2LG:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*2LG:0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%2LG:INFINITY:0:-1: ++%*2LG:INFINITY:0:-1: ++%2LG:+NAN():0:-1: ++%*2LG:+NAN():0:-1: ++%2LG:+NAN(09A_Zaz):0:-1: ++%*2LG:+NAN(09A_Zaz):0:-1: ++%2LG:+0X0P0:1:2:0x0: ++%*2LG:+0X0P0:0:2: ++%2LG:+0X0P+0:1:2:0x0: ++%*2LG:+0X0P+0:0:2: ++%2LG:+0X8P-16385:1:2:0x0: ++%*2LG:+0X8P-16385:0:2: ++%2LG:+0X2.3456789ABCDEF01P012345:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF01P012345:0:2: ++%2LG:+0X2.3456789ABCDEF01P+12345:1:2:0x0: ++%*2LG:+0X2.3456789ABCDEF01P+12345:0:2: ++%2LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:2:0x0: ++%*2LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:2: ++%2LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:2:0x0: ++%*2LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:2: ++%2LG:+INFINITY:0:-1: ++%*2LG:+INFINITY:0:-1: ++%3LG::0:-1: ++%*3LG::0:-1: ++%3LG:-INFINITY:0:-1: ++%*3LG:-INFINITY:0:-1: ++# BZ12701 %3LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*3LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %3LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*3LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %3LG:-0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*3LG:-0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %3LG:-0X8P-16385:0:-1: ++# BZ12701 %*3LG:-0X8P-16385:0:-1: ++# BZ12701 %3LG:-0X0P+0:0:-1: ++# BZ12701 %*3LG:-0X0P+0:0:-1: ++# BZ12701 %3LG:-0X0P0:0:-1: ++# BZ12701 %*3LG:-0X0P0:0:-1: ++%3LG:-NAN(09A_Zaz):0:-1: ++%*3LG:-NAN(09A_Zaz):0:-1: ++%3LG:-NAN():0:-1: ++%*3LG:-NAN():0:-1: ++%3LG:NAN():1:3:nan: ++%*3LG:NAN():0:3: ++%3LG:NAN(09A_Zaz):1:3:nan: ++%*3LG:NAN(09A_Zaz):0:3: ++%3LG:0X0P0:1:3:0x0: ++%*3LG:0X0P0:0:3: ++%3LG:0X0P+0:1:3:0x0: ++%*3LG:0X0P+0:0:3: ++%3LG:0X8P-16385:1:3:0x1p3: ++%*3LG:0X8P-16385:0:3: ++%3LG:0X2.3456789ABCDEF01P012345:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF01P012345:0:3: ++%3LG:0X2.3456789ABCDEF01P+12345:1:3:0x1p1: ++%*3LG:0X2.3456789ABCDEF01P+12345:0:3: ++%3LG:0X7.FFFFFFFFFFFFFFF8P16381:1:3:0x1.cp2: ++%*3LG:0X7.FFFFFFFFFFFFFFF8P16381:0:3: ++%3LG:0XF.FFFFFFFFFFFFFFFP+16380:1:3:0x1.ep3: ++%*3LG:0XF.FFFFFFFFFFFFFFFP+16380:0:3: ++%3LG:INFINITY:1:3:inf: ++%*3LG:INFINITY:0:3: ++%3LG:+NAN():0:-1: ++%*3LG:+NAN():0:-1: ++%3LG:+NAN(09A_Zaz):0:-1: ++%*3LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %3LG:+0X0P0:0:-1: ++# BZ12701 %*3LG:+0X0P0:0:-1: ++# BZ12701 %3LG:+0X0P+0:0:-1: ++# BZ12701 %*3LG:+0X0P+0:0:-1: ++# BZ12701 %3LG:+0X8P-16385:0:-1: ++# BZ12701 %*3LG:+0X8P-16385:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF01P012345:0:-1: ++# BZ12701 %3LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*3LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %3LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*3LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %3LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*3LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%3LG:+INFINITY:0:-1: ++%*3LG:+INFINITY:0:-1: ++%4LG::0:-1: ++%*4LG::0:-1: ++%4LG:-INFINITY:1:4:-inf: ++%*4LG:-INFINITY:0:4: ++%4LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:4:-0x1.ep3: ++%*4LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:4:-0x1.cp2: ++%*4LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LG:-0X2.3456789ABCDEF01P+12345:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF01P+12345:0:4: ++%4LG:-0X2.3456789ABCDEF01P012345:1:4:-0x1p1: ++%*4LG:-0X2.3456789ABCDEF01P012345:0:4: ++%4LG:-0X8P-16385:1:4:-0x1p3: ++%*4LG:-0X8P-16385:0:4: ++%4LG:-0X0P+0:1:4:-0x0: ++%*4LG:-0X0P+0:0:4: ++%4LG:-0X0P0:1:4:-0x0: ++%*4LG:-0X0P0:0:4: ++%4LG:-NAN(09A_Zaz):1:4:-nan: ++%*4LG:-NAN(09A_Zaz):0:4: ++%4LG:-NAN():1:4:-nan: ++%*4LG:-NAN():0:4: ++%4LG:NAN():0:-1: ++%*4LG:NAN():0:-1: ++%4LG:NAN(09A_Zaz):0:-1: ++%*4LG:NAN(09A_Zaz):0:-1: ++# BZ12701 %4LG:0X0P0:0:-1: ++# BZ12701 %*4LG:0X0P0:0:-1: ++# BZ12701 %4LG:0X0P+0:0:-1: ++# BZ12701 %*4LG:0X0P+0:0:-1: ++# BZ12701 %4LG:0X8P-16385:0:-1: ++# BZ12701 %*4LG:0X8P-16385:0:-1: ++%4LG:0X2.3456789ABCDEF01P012345:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF01P012345:0:4: ++%4LG:0X2.3456789ABCDEF01P+12345:1:4:0x1p1: ++%*4LG:0X2.3456789ABCDEF01P+12345:0:4: ++%4LG:0X7.FFFFFFFFFFFFFFF8P16381:1:4:0x1.cp2: ++%*4LG:0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LG:0XF.FFFFFFFFFFFFFFFP+16380:1:4:0x1.ep3: ++%*4LG:0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LG:INFINITY:0:-1: ++%*4LG:INFINITY:0:-1: ++%4LG:+NAN():1:4:nan: ++%*4LG:+NAN():0:4: ++%4LG:+NAN(09A_Zaz):1:4:nan: ++%*4LG:+NAN(09A_Zaz):0:4: ++%4LG:+0X0P0:1:4:0x0: ++%*4LG:+0X0P0:0:4: ++%4LG:+0X0P+0:1:4:0x0: ++%*4LG:+0X0P+0:0:4: ++%4LG:+0X8P-16385:1:4:0x1p3: ++%*4LG:+0X8P-16385:0:4: ++%4LG:+0X2.3456789ABCDEF01P012345:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF01P012345:0:4: ++%4LG:+0X2.3456789ABCDEF01P+12345:1:4:0x1p1: ++%*4LG:+0X2.3456789ABCDEF01P+12345:0:4: ++%4LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:4:0x1.cp2: ++%*4LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:4: ++%4LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:4:0x1.ep3: ++%*4LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:4: ++%4LG:+INFINITY:1:4:inf: ++%*4LG:+INFINITY:0:4: ++%5LG::0:-1: ++%*5LG::0:-1: ++%5LG:-INFINITY:0:-1: ++%*5LG:-INFINITY:0:-1: ++%5LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:5:-0x1.ep3: ++%*5LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:5:-0x1.cp2: ++%*5LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LG:-0X2.3456789ABCDEF01P+12345:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF01P+12345:0:5: ++%5LG:-0X2.3456789ABCDEF01P012345:1:5:-0x1p1: ++%*5LG:-0X2.3456789ABCDEF01P012345:0:5: ++# BZ12701 %5LG:-0X8P-16385:0:-1: ++# BZ12701 %*5LG:-0X8P-16385:0:-1: ++# BZ12701 %5LG:-0X0P+0:0:-1: ++# BZ12701 %*5LG:-0X0P+0:0:-1: ++# BZ12701 %5LG:-0X0P0:0:-1: ++# BZ12701 %*5LG:-0X0P0:0:-1: ++%5LG:-NAN(09A_Zaz):0:-1: ++%*5LG:-NAN(09A_Zaz):0:-1: ++%5LG:-NAN():0:-1: ++%*5LG:-NAN():0:-1: ++%5LG:NAN():1:5:nan: ++%*5LG:NAN():0:5: ++%5LG:NAN(09A_Zaz):0:-1: ++%*5LG:NAN(09A_Zaz):0:-1: ++%5LG:0X0P0:1:5:0x0: ++%*5LG:0X0P0:0:5: ++# BZ12701 %5LG:0X0P+0:0:-1: ++# BZ12701 %*5LG:0X0P+0:0:-1: ++# BZ12701 %5LG:0X8P-16385:0:-1: ++# BZ12701 %*5LG:0X8P-16385:0:-1: ++%5LG:0X2.3456789ABCDEF01P012345:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF01P012345:0:5: ++%5LG:0X2.3456789ABCDEF01P+12345:1:5:0x1.18p1: ++%*5LG:0X2.3456789ABCDEF01P+12345:0:5: ++%5LG:0X7.FFFFFFFFFFFFFFF8P16381:1:5:0x1.fcp2: ++%*5LG:0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LG:0XF.FFFFFFFFFFFFFFFP+16380:1:5:0x1.fep3: ++%*5LG:0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LG:INFINITY:0:-1: ++%*5LG:INFINITY:0:-1: ++%5LG:+NAN():0:-1: ++%*5LG:+NAN():0:-1: ++%5LG:+NAN(09A_Zaz):0:-1: ++%*5LG:+NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG:+0X0P0:0:-1: ++# BZ12701 %*5LG:+0X0P0:0:-1: ++# BZ12701 %5LG:+0X0P+0:0:-1: ++# BZ12701 %*5LG:+0X0P+0:0:-1: ++# BZ12701 %5LG:+0X8P-16385:0:-1: ++# BZ12701 %*5LG:+0X8P-16385:0:-1: ++%5LG:+0X2.3456789ABCDEF01P012345:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF01P012345:0:5: ++%5LG:+0X2.3456789ABCDEF01P+12345:1:5:0x1p1: ++%*5LG:+0X2.3456789ABCDEF01P+12345:0:5: ++%5LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:5:0x1.cp2: ++%*5LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:5: ++%5LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:5:0x1.ep3: ++%*5LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:5: ++%5LG:+INFINITY:0:-1: ++%*5LG:+INFINITY:0:-1: ++%6LG::0:-1: ++%*6LG::0:-1: ++%6LG:-INFINITY:0:-1: ++%*6LG:-INFINITY:0:-1: ++%6LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:6:-0x1.fep3: ++%*6LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:6:-0x1.fcp2: ++%*6LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LG:-0X2.3456789ABCDEF01P+12345:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF01P+12345:0:6: ++%6LG:-0X2.3456789ABCDEF01P012345:1:6:-0x1.18p1: ++%*6LG:-0X2.3456789ABCDEF01P012345:0:6: ++# BZ12701 %6LG:-0X8P-16385:0:-1: ++# BZ12701 %*6LG:-0X8P-16385:0:-1: ++# BZ12701 %6LG:-0X0P+0:0:-1: ++# BZ12701 %*6LG:-0X0P+0:0:-1: ++%6LG:-0X0P0:1:6:-0x0: ++%*6LG:-0X0P0:0:6: ++%6LG:-NAN(09A_Zaz):0:-1: ++%*6LG:-NAN(09A_Zaz):0:-1: ++%6LG:-NAN():1:6:-nan: ++%*6LG:-NAN():0:6: ++%6LG:NAN():1:5:nan: ++%*6LG:NAN():0:5: ++%6LG:NAN(09A_Zaz):0:-1: ++%*6LG:NAN(09A_Zaz):0:-1: ++%6LG:0X0P0:1:5:0x0: ++%*6LG:0X0P0:0:5: ++%6LG:0X0P+0:1:6:0x0: ++%*6LG:0X0P+0:0:6: ++%6LG:0X8P-16385:1:6:0x1p2: ++%*6LG:0X8P-16385:0:6: ++%6LG:0X2.3456789ABCDEF01P012345:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF01P012345:0:6: ++%6LG:0X2.3456789ABCDEF01P+12345:1:6:0x1.1ap1: ++%*6LG:0X2.3456789ABCDEF01P+12345:0:6: ++%6LG:0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.ffcp2: ++%*6LG:0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LG:0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.ffep3: ++%*6LG:0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LG:INFINITY:0:-1: ++%*6LG:INFINITY:0:-1: ++%6LG:+NAN():1:6:nan: ++%*6LG:+NAN():0:6: ++%6LG:+NAN(09A_Zaz):0:-1: ++%*6LG:+NAN(09A_Zaz):0:-1: ++%6LG:+0X0P0:1:6:0x0: ++%*6LG:+0X0P0:0:6: ++# BZ12701 %6LG:+0X0P+0:0:-1: ++# BZ12701 %*6LG:+0X0P+0:0:-1: ++# BZ12701 %6LG:+0X8P-16385:0:-1: ++# BZ12701 %*6LG:+0X8P-16385:0:-1: ++%6LG:+0X2.3456789ABCDEF01P012345:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF01P012345:0:6: ++%6LG:+0X2.3456789ABCDEF01P+12345:1:6:0x1.18p1: ++%*6LG:+0X2.3456789ABCDEF01P+12345:0:6: ++%6LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.fcp2: ++%*6LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%6LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.fep3: ++%*6LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%6LG:+INFINITY:0:-1: ++%*6LG:+INFINITY:0:-1: ++%22LG::0:-1: ++%*22LG::0:-1: ++%22LG:-INFINITY:1:9:-inf: ++%*22LG:-INFINITY:0:9: ++# BZ12701 %22LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*22LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %22LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*22LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %22LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*22LG:-0X2.3456789ABCDEF01P+12345:0:-1: ++%22LG:-0X2.3456789ABCDEF01P012345:1:22:-0x1.1a2b3c4d5e6f7808p1: ++%*22LG:-0X2.3456789ABCDEF01P012345:0:22: ++%22LG:-0X8P-16385:1:11:-0x1p-16382: ++%*22LG:-0X8P-16385:0:11: ++%22LG:-0X0P+0:1:7:-0x0: ++%*22LG:-0X0P+0:0:7: ++%22LG:-0X0P0:1:6:-0x0: ++%*22LG:-0X0P0:0:6: ++%22LG:-NAN(09A_Zaz):1:13:-nan: ++%*22LG:-NAN(09A_Zaz):0:13: ++%22LG:-NAN():1:6:-nan: ++%*22LG:-NAN():0:6: ++%22LG:NAN():1:5:nan: ++%*22LG:NAN():0:5: ++%22LG:NAN(09A_Zaz):1:12:nan: ++%*22LG:NAN(09A_Zaz):0:12: ++%22LG:0X0P0:1:5:0x0: ++%*22LG:0X0P0:0:5: ++%22LG:0X0P+0:1:6:0x0: ++%*22LG:0X0P+0:0:6: ++%22LG:0X8P-16385:1:10:0x1p-16382: ++%*22LG:0X8P-16385:0:10: ++%22LG:0X2.3456789ABCDEF01P012345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22LG:0X2.3456789ABCDEF01P012345:0:22: ++%22LG:0X2.3456789ABCDEF01P+12345:1:22:0x1.1a2b3c4d5e6f7808p2: ++%*22LG:0X2.3456789ABCDEF01P+12345:0:22: ++%22LG:0X7.FFFFFFFFFFFFFFF8P16381:1:22:0x1.fffffffffffffffep3: ++%*22LG:0X7.FFFFFFFFFFFFFFF8P16381:0:22: ++%22LG:0XF.FFFFFFFFFFFFFFFP+16380:1:22:0x1.fffffffffffffffep4: ++%*22LG:0XF.FFFFFFFFFFFFFFFP+16380:0:22: ++%22LG:INFINITY:1:8:inf: ++%*22LG:INFINITY:0:8: ++%22LG:+NAN():1:6:nan: ++%*22LG:+NAN():0:6: ++%22LG:+NAN(09A_Zaz):1:13:nan: ++%*22LG:+NAN(09A_Zaz):0:13: ++%22LG:+0X0P0:1:6:0x0: ++%*22LG:+0X0P0:0:6: ++%22LG:+0X0P+0:1:7:0x0: ++%*22LG:+0X0P+0:0:7: ++%22LG:+0X8P-16385:1:11:0x1p-16382: ++%*22LG:+0X8P-16385:0:11: ++%22LG:+0X2.3456789ABCDEF01P012345:1:22:0x1.1a2b3c4d5e6f7808p1: ++%*22LG:+0X2.3456789ABCDEF01P012345:0:22: ++# BZ12701 %22LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %*22LG:+0X2.3456789ABCDEF01P+12345:0:-1: ++# BZ12701 %22LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %*22LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:-1: ++# BZ12701 %22LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++# BZ12701 %*22LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:-1: ++%22LG:+INFINITY:1:9:inf: ++%*22LG:+INFINITY:0:9: ++%37LG::0:-1: ++%*37LG::0:-1: ++%37LG:-INFINITY:1:9:-inf: ++%*37LG:-INFINITY:0:9: ++%37LG:-0XF.FFFFFFFFFFFFFFFP+16380:1:27:-0x1.fffffffffffffffep16383: ++%*37LG:-0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LG:-0X7.FFFFFFFFFFFFFFF8P16381:1:27:-0x1.fffffffffffffffep16383: ++%*37LG:-0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LG:-0X2.3456789ABCDEF01P+12345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:-0X2.3456789ABCDEF01P+12345:0:27: ++%37LG:-0X2.3456789ABCDEF01P012345:1:27:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:-0X2.3456789ABCDEF01P012345:0:27: ++%37LG:-0X8P-16385:1:11:-0x1p-16382: ++%*37LG:-0X8P-16385:0:11: ++%37LG:-0X0P+0:1:7:-0x0: ++%*37LG:-0X0P+0:0:7: ++%37LG:-0X0P0:1:6:-0x0: ++%*37LG:-0X0P0:0:6: ++%37LG:-NAN(09A_Zaz):1:13:-nan: ++%*37LG:-NAN(09A_Zaz):0:13: ++%37LG:-NAN():1:6:-nan: ++%*37LG:-NAN():0:6: ++%37LG:NAN():1:5:nan: ++%*37LG:NAN():0:5: ++%37LG:NAN(09A_Zaz):1:12:nan: ++%*37LG:NAN(09A_Zaz):0:12: ++%37LG:0X0P0:1:5:0x0: ++%*37LG:0X0P0:0:5: ++%37LG:0X0P+0:1:6:0x0: ++%*37LG:0X0P+0:0:6: ++%37LG:0X8P-16385:1:10:0x1p-16382: ++%*37LG:0X8P-16385:0:10: ++%37LG:0X2.3456789ABCDEF01P012345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:0X2.3456789ABCDEF01P012345:0:26: ++%37LG:0X2.3456789ABCDEF01P+12345:1:26:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:0X2.3456789ABCDEF01P+12345:0:26: ++%37LG:0X7.FFFFFFFFFFFFFFF8P16381:1:26:0x1.fffffffffffffffep16383: ++%*37LG:0X7.FFFFFFFFFFFFFFF8P16381:0:26: ++%37LG:0XF.FFFFFFFFFFFFFFFP+16380:1:26:0x1.fffffffffffffffep16383: ++%*37LG:0XF.FFFFFFFFFFFFFFFP+16380:0:26: ++%37LG:INFINITY:1:8:inf: ++%*37LG:INFINITY:0:8: ++%37LG:+NAN():1:6:nan: ++%*37LG:+NAN():0:6: ++%37LG:+NAN(09A_Zaz):1:13:nan: ++%*37LG:+NAN(09A_Zaz):0:13: ++%37LG:+0X0P0:1:6:0x0: ++%*37LG:+0X0P0:0:6: ++%37LG:+0X0P+0:1:7:0x0: ++%*37LG:+0X0P+0:0:7: ++%37LG:+0X8P-16385:1:11:0x1p-16382: ++%*37LG:+0X8P-16385:0:11: ++%37LG:+0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:+0X2.3456789ABCDEF01P012345:0:27: ++%37LG:+0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG:+0X2.3456789ABCDEF01P+12345:0:27: ++%37LG:+0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*37LG:+0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LG:+0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*37LG:+0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LG:+INFINITY:1:9:inf: ++%*37LG:+INFINITY:0:9: ++%5LG: :0:-1: ++%*5LG: :0:-1: ++%5LG: -INFINITY:0:-1: ++%*5LG: -INFINITY:0:-1: ++%5LG: -0XF.FFFFFFFFFFFFFFFP+16380:1:6:-0x1.ep3: ++%*5LG: -0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LG: -0X7.FFFFFFFFFFFFFFF8P16381:1:6:-0x1.cp2: ++%*5LG: -0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LG: -0X2.3456789ABCDEF01P+12345:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF01P+12345:0:6: ++%5LG: -0X2.3456789ABCDEF01P012345:1:6:-0x1p1: ++%*5LG: -0X2.3456789ABCDEF01P012345:0:6: ++# BZ12701 %5LG: -0X8P-16385:0:-1: ++# BZ12701 %*5LG: -0X8P-16385:0:-1: ++# BZ12701 %5LG: -0X0P+0:0:-1: ++# BZ12701 %*5LG: -0X0P+0:0:-1: ++# BZ12701 %5LG: -0X0P0:0:-1: ++# BZ12701 %*5LG: -0X0P0:0:-1: ++%5LG: -NAN(09A_Zaz):0:-1: ++%*5LG: -NAN(09A_Zaz):0:-1: ++%5LG: -NAN():0:-1: ++%*5LG: -NAN():0:-1: ++%5LG: NAN():1:6:nan: ++%*5LG: NAN():0:6: ++%5LG: NAN(09A_Zaz):0:-1: ++%*5LG: NAN(09A_Zaz):0:-1: ++%5LG: 0X0P0:1:6:0x0: ++%*5LG: 0X0P0:0:6: ++# BZ12701 %5LG: 0X0P+0:0:-1: ++# BZ12701 %*5LG: 0X0P+0:0:-1: ++# BZ12701 %5LG: 0X8P-16385:0:-1: ++# BZ12701 %*5LG: 0X8P-16385:0:-1: ++%5LG: 0X2.3456789ABCDEF01P012345:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF01P012345:0:6: ++%5LG: 0X2.3456789ABCDEF01P+12345:1:6:0x1.18p1: ++%*5LG: 0X2.3456789ABCDEF01P+12345:0:6: ++%5LG: 0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.fcp2: ++%*5LG: 0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LG: 0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.fep3: ++%*5LG: 0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LG: INFINITY:0:-1: ++%*5LG: INFINITY:0:-1: ++%5LG: +NAN():0:-1: ++%*5LG: +NAN():0:-1: ++%5LG: +NAN(09A_Zaz):0:-1: ++%*5LG: +NAN(09A_Zaz):0:-1: ++# BZ12701 %5LG: +0X0P0:0:-1: ++# BZ12701 %*5LG: +0X0P0:0:-1: ++# BZ12701 %5LG: +0X0P+0:0:-1: ++# BZ12701 %*5LG: +0X0P+0:0:-1: ++# BZ12701 %5LG: +0X8P-16385:0:-1: ++# BZ12701 %*5LG: +0X8P-16385:0:-1: ++%5LG: +0X2.3456789ABCDEF01P012345:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF01P012345:0:6: ++%5LG: +0X2.3456789ABCDEF01P+12345:1:6:0x1p1: ++%*5LG: +0X2.3456789ABCDEF01P+12345:0:6: ++%5LG: +0X7.FFFFFFFFFFFFFFF8P16381:1:6:0x1.cp2: ++%*5LG: +0X7.FFFFFFFFFFFFFFF8P16381:0:6: ++%5LG: +0XF.FFFFFFFFFFFFFFFP+16380:1:6:0x1.ep3: ++%*5LG: +0XF.FFFFFFFFFFFFFFFP+16380:0:6: ++%5LG: +INFINITY:0:-1: ++%*5LG: +INFINITY:0:-1: ++%37LG: :0:-1: ++%*37LG: :0:-1: ++%37LG: -INFINITY:1:10:-inf: ++%*37LG: -INFINITY:0:10: ++%37LG: -0XF.FFFFFFFFFFFFFFFP+16380:1:28:-0x1.fffffffffffffffep16383: ++%*37LG: -0XF.FFFFFFFFFFFFFFFP+16380:0:28: ++%37LG: -0X7.FFFFFFFFFFFFFFF8P16381:1:28:-0x1.fffffffffffffffep16383: ++%*37LG: -0X7.FFFFFFFFFFFFFFF8P16381:0:28: ++%37LG: -0X2.3456789ABCDEF01P+12345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: -0X2.3456789ABCDEF01P+12345:0:28: ++%37LG: -0X2.3456789ABCDEF01P012345:1:28:-0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: -0X2.3456789ABCDEF01P012345:0:28: ++%37LG: -0X8P-16385:1:12:-0x1p-16382: ++%*37LG: -0X8P-16385:0:12: ++%37LG: -0X0P+0:1:8:-0x0: ++%*37LG: -0X0P+0:0:8: ++%37LG: -0X0P0:1:7:-0x0: ++%*37LG: -0X0P0:0:7: ++%37LG: -NAN(09A_Zaz):1:14:-nan: ++%*37LG: -NAN(09A_Zaz):0:14: ++%37LG: -NAN():1:7:-nan: ++%*37LG: -NAN():0:7: ++%37LG: NAN():1:6:nan: ++%*37LG: NAN():0:6: ++%37LG: NAN(09A_Zaz):1:13:nan: ++%*37LG: NAN(09A_Zaz):0:13: ++%37LG: 0X0P0:1:6:0x0: ++%*37LG: 0X0P0:0:6: ++%37LG: 0X0P+0:1:7:0x0: ++%*37LG: 0X0P+0:0:7: ++%37LG: 0X8P-16385:1:11:0x1p-16382: ++%*37LG: 0X8P-16385:0:11: ++%37LG: 0X2.3456789ABCDEF01P012345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: 0X2.3456789ABCDEF01P012345:0:27: ++%37LG: 0X2.3456789ABCDEF01P+12345:1:27:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: 0X2.3456789ABCDEF01P+12345:0:27: ++%37LG: 0X7.FFFFFFFFFFFFFFF8P16381:1:27:0x1.fffffffffffffffep16383: ++%*37LG: 0X7.FFFFFFFFFFFFFFF8P16381:0:27: ++%37LG: 0XF.FFFFFFFFFFFFFFFP+16380:1:27:0x1.fffffffffffffffep16383: ++%*37LG: 0XF.FFFFFFFFFFFFFFFP+16380:0:27: ++%37LG: INFINITY:1:9:inf: ++%*37LG: INFINITY:0:9: ++%37LG: +NAN():1:7:nan: ++%*37LG: +NAN():0:7: ++%37LG: +NAN(09A_Zaz):1:14:nan: ++%*37LG: +NAN(09A_Zaz):0:14: ++%37LG: +0X0P0:1:7:0x0: ++%*37LG: +0X0P0:0:7: ++%37LG: +0X0P+0:1:8:0x0: ++%*37LG: +0X0P+0:0:8: ++%37LG: +0X8P-16385:1:12:0x1p-16382: ++%*37LG: +0X8P-16385:0:12: ++%37LG: +0X2.3456789ABCDEF01P012345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: +0X2.3456789ABCDEF01P012345:0:28: ++%37LG: +0X2.3456789ABCDEF01P+12345:1:28:0x1.1a2b3c4d5e6f7808p12346: ++%*37LG: +0X2.3456789ABCDEF01P+12345:0:28: ++%37LG: +0X7.FFFFFFFFFFFFFFF8P16381:1:28:0x1.fffffffffffffffep16383: ++%*37LG: +0X7.FFFFFFFFFFFFFFF8P16381:0:28: ++%37LG: +0XF.FFFFFFFFFFFFFFFP+16380:1:28:0x1.fffffffffffffffep16383: ++%*37LG: +0XF.FFFFFFFFFFFFFFFP+16380:0:28: ++%37LG: +INFINITY:1:10:inf: ++%*37LG: +INFINITY:0:10: +diff --git a/sysdeps/ieee754/ldbl-96/tst-scanf-format-skeleton-ldouble.c b/sysdeps/ieee754/ldbl-96/tst-scanf-format-skeleton-ldouble.c +new file mode 100644 +index 0000000000000000..7e8c1d66a64e772e +--- /dev/null ++++ b/sysdeps/ieee754/ldbl-96/tst-scanf-format-skeleton-ldouble.c +@@ -0,0 +1,33 @@ ++/* Test skeleton for formatted scanf input for ldbl-96 conversions. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++ ++#undef compare_real ++#define compare_real(x, y) \ ++({ \ ++ ieee_long_double_shape_type ux = { .value = x }, uy = { .value = y }; \ ++ (ux.parts.lsw == uy.parts.lsw && ux.parts.msw == uy.parts.msw \ ++ && ux.parts.sign_exponent == uy.parts.sign_exponent); \ ++}) ++ ++typedef long double type_t; ++ ++#include "tst-scanf-format-skeleton.c" diff --git a/glibc-RHEL-119434-1.patch b/glibc-RHEL-119434-1.patch new file mode 100644 index 0000000..979034d --- /dev/null +++ b/glibc-RHEL-119434-1.patch @@ -0,0 +1,71 @@ +commit 04b1eb161fdc8b88876bf78b34d2bb92584aba45 +Author: Siddhesh Poyarekar +Date: Fri Nov 8 12:33:47 2024 -0500 + + support: Add xdup + + Add xdup as the error-checking version of dup for test cases. + + Signed-off-by: Siddhesh Poyarekar + Reviewed-by: Adhemerval Zanella + +diff --git a/support/Makefile b/support/Makefile +index af3f69f5df76e6f9..6b859e85ddb157f4 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -124,6 +124,7 @@ libsupport-routines = \ + xcopy_file_range \ + xdlfcn \ + xdlmopen \ ++ xdup \ + xdup2 \ + xfchmod \ + xfclose \ +diff --git a/support/xdup.c b/support/xdup.c +new file mode 100644 +index 0000000000000000..1eab317354f1f353 +--- /dev/null ++++ b/support/xdup.c +@@ -0,0 +1,30 @@ ++/* dup with error checking. ++ Copyright The GNU Toolchain Authors. ++ 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 ++ . */ ++ ++#include ++#include ++ ++int ++xdup (int from) ++{ ++ int ret = dup (from); ++ if (ret < 0) ++ FAIL_EXIT1 ("dup (%d): %m", from); ++ ++ return ret; ++} +diff --git a/support/xunistd.h b/support/xunistd.h +index 204951bce75f576b..0c6d837ac073ca2b 100644 +--- a/support/xunistd.h ++++ b/support/xunistd.h +@@ -35,6 +35,7 @@ pid_t xfork (void); + pid_t xwaitpid (pid_t, int *status, int flags); + void xpipe (int[2]); + void xdup2 (int, int); ++int xdup (int); + int xopen (const char *path, int flags, mode_t); + void support_check_stat_fd (const char *name, int fd, int result); + void support_check_stat_path (const char *name, const char *path, int result); diff --git a/glibc-RHEL-119434-2.patch b/glibc-RHEL-119434-2.patch new file mode 100644 index 0000000..26477a0 --- /dev/null +++ b/glibc-RHEL-119434-2.patch @@ -0,0 +1,119 @@ +commit 377e9733b50ce41e496c467ddcc112f73c88f3bd +Author: Joseph Myers +Date: Tue Jan 28 19:38:27 2025 +0000 + + Fix fflush after ungetc on input file (bug 5994) + + As discussed in bug 5994 (plus duplicates), POSIX requires fflush + after ungetc to discard pushed-back characters but preserve the file + position indicator. For this purpose, each ungetc decrements the file + position indicator by 1; it is unspecified after ungetc at the start + of the file, and after ungetwc, so no special handling is needed for + either of those cases. + + This is fixed with appropriate logic in _IO_new_file_sync. I haven't + made any attempt to test or change things in this area for the "old" + functions; the case of files using mmap is addressed in a subsequent + patch (and there seem to be no problems in this area with files opened + with fmemopen). + + Tested for x86_64. + +diff --git a/libio/fileops.c b/libio/fileops.c +index d49e489f55d3a283..715bcf69328e769e 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -799,6 +799,11 @@ _IO_new_file_sync (FILE *fp) + if (fp->_IO_write_ptr > fp->_IO_write_base) + if (_IO_do_flush(fp)) return EOF; + delta = fp->_IO_read_ptr - fp->_IO_read_end; ++ if (_IO_in_backup (fp)) ++ { ++ _IO_switch_to_main_get_area (fp); ++ delta += fp->_IO_read_ptr - fp->_IO_read_end; ++ } + if (delta != 0) + { + off64_t new_pos = _IO_SYSSEEK (fp, delta, 1); +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 2a842488fb69541b..501b6341711c1781 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -260,6 +260,7 @@ tests := \ + tst-swscanf \ + tst-tmpnam \ + tst-ungetc \ ++ tst-ungetc-fflush \ + tst-ungetc-leak \ + tst-ungetc-nomem \ + tst-unlockedio \ +diff --git a/stdio-common/tst-ungetc-fflush.c b/stdio-common/tst-ungetc-fflush.c +new file mode 100644 +index 0000000000000000..a86d1fdb7f8cac88 +--- /dev/null ++++ b/stdio-common/tst-ungetc-fflush.c +@@ -0,0 +1,64 @@ ++/* Test flushing input file after ungetc (bug 5994). ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++int ++do_test (void) ++{ ++ char *filename = NULL; ++ int fd = create_temp_file ("tst-ungetc-fflush", &filename); ++ TEST_VERIFY_EXIT (fd != -1); ++ xclose (fd); ++ ++ /* Test as in bug 5994. */ ++ FILE *fp = xfopen (filename, "w"); ++ TEST_VERIFY_EXIT (fputs ("#include", fp) >= 0); ++ xfclose (fp); ++ fp = xfopen (filename, "r"); ++ TEST_COMPARE (fgetc (fp), '#'); ++ TEST_COMPARE (fgetc (fp), 'i'); ++ TEST_COMPARE (ungetc ('@', fp), '@'); ++ TEST_COMPARE (fflush (fp), 0); ++ TEST_COMPARE (lseek (fileno (fp), 0, SEEK_CUR), 1); ++ TEST_COMPARE (fgetc (fp), 'i'); ++ TEST_COMPARE (fgetc (fp), 'n'); ++ xfclose (fp); ++ ++ /* Test as in bug 12799 (duplicate of 5994). */ ++ fp = xfopen (filename, "w+"); ++ TEST_VERIFY_EXIT (fputs ("hello world", fp) >= 0); ++ rewind (fp); ++ TEST_VERIFY (fileno (fp) >= 0); ++ char buffer[10]; ++ TEST_COMPARE (fread (buffer, 1, 5, fp), 5); ++ TEST_COMPARE (fgetc (fp), ' '); ++ TEST_COMPARE (ungetc ('@', fp), '@'); ++ TEST_COMPARE (fflush (fp), 0); ++ TEST_COMPARE (fgetc (fp), ' '); ++ xfclose (fp); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119434-3.patch b/glibc-RHEL-119434-3.patch new file mode 100644 index 0000000..37cd353 --- /dev/null +++ b/glibc-RHEL-119434-3.patch @@ -0,0 +1,355 @@ +commit be6818be31e756398e45f70e2819d78be0961223 +Author: Joseph Myers +Date: Tue Jan 28 20:22:56 2025 +0000 + + Make fclose seek input file to right offset (bug 12724) + + As discussed in bug 12724 and required by POSIX, before an input file + (based on an underlying seekable file descriptor) is closed, fclose is + sometimes required to seek that file descriptor to the correct offset, + so that any other file descriptors sharing the underlying open file + description are left at that offset (as a motivating example, a script + could call a sequence of commands each of which processes some data + from (seekable) stdin using stdio; fclose needs to do this so that + each successive command can read exactly the data not handled by + previous commands), but glibc fails to do this. + + The precise POSIX wording has changed a few times; in the 2024 edition + it's "If the file is not already at EOF, and the file is one capable + of seeking, the file offset of the underlying open file description + shall be set to the file position of the stream if the stream is the + active handle to the underlying file description.". + + Add appropriate logic to _IO_new_file_close_it to handle this case. I + haven't made any attempt to test or change things in this area for the + "old" functions. + + Note that there was a previous attempt to fix bug 12724, reverted in + commit eb6cbd249f4465b01f428057bf6ab61f5f0c07e3. The fix version here + addresses the original test in that bug report without breaking the + one given in a subsequent comment in that bug report (which works with + glibc before the patch, but maybe was broken by the original fix that + was reverted). + + The logic here tries to take care not to seek the file, even to its + newly computed current offset, if at EOF / possibly not the active + handle; even seeking to the current offset would be problematic + because of a potential race (fclose computes the current offset, + another thread or process with the active handle does its own seek, + fclose does a seek (not permitted by POSIX in this case) that loses + the effect of the seek on the active handle in another thread or + process). There are tests included for various cases of being or not + being the active handle, though there aren't tests for the potential + race condition. + + Tested for x86_64. + +diff --git a/libio/fileops.c b/libio/fileops.c +index 715bcf69328e769e..d96941be9e2bccd6 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -127,15 +127,48 @@ _IO_new_file_init (struct _IO_FILE_plus *fp) + int + _IO_new_file_close_it (FILE *fp) + { +- int write_status; ++ int flush_status = 0; + if (!_IO_file_is_open (fp)) + return EOF; + + if ((fp->_flags & _IO_NO_WRITES) == 0 + && (fp->_flags & _IO_CURRENTLY_PUTTING) != 0) +- write_status = _IO_do_flush (fp); +- else +- write_status = 0; ++ flush_status = _IO_do_flush (fp); ++ else if (fp->_fileno >= 0 ++ /* If this is the active handle, we must seek the ++ underlying open file description (possibly shared with ++ other file descriptors that remain open) to the correct ++ offset. But if this stream is in a state such that some ++ other handle might have become the active handle, then ++ (a) at the time it entered that state, the underlying ++ open file description had the correct offset, and (b) ++ seeking the underlying open file description, even to ++ its newly determined current offset, is not safe because ++ it can race with operations on a different active ++ handle. So check here for cases where it is necessary ++ to seek, while avoiding seeking in cases where it is ++ unsafe to do so. */ ++ && (_IO_in_backup (fp) ++ || (fp->_mode <= 0 && fp->_IO_read_ptr < fp->_IO_read_end) ++ || (_IO_vtable_offset (fp) == 0 ++ && fp->_mode > 0 && (fp->_wide_data->_IO_read_ptr ++ < fp->_wide_data->_IO_read_end)))) ++ { ++ off64_t o = _IO_SEEKOFF (fp, 0, _IO_seek_cur, 0); ++ if (o == EOF) ++ { ++ if (errno != ESPIPE) ++ flush_status = EOF; ++ } ++ else ++ { ++ if (_IO_in_backup (fp)) ++ o -= fp->_IO_save_end - fp->_IO_save_base; ++ flush_status = (_IO_SYSSEEK (fp, o, SEEK_SET) < 0 && errno != ESPIPE ++ ? EOF ++ : 0); ++ } ++ } + + _IO_unsave_markers (fp); + +@@ -160,7 +193,7 @@ _IO_new_file_close_it (FILE *fp) + fp->_fileno = -1; + fp->_offset = _IO_pos_BAD; + +- return close_status ? close_status : write_status; ++ return close_status ? close_status : flush_status; + } + libc_hidden_ver (_IO_new_file_close_it, _IO_file_close_it) + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 501b6341711c1781..aa4ba158e8ea9b44 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -206,6 +206,7 @@ tests := \ + tst-bz11319-fortify2 \ + tst-cookie \ + tst-dprintf-length \ ++ tst-fclose-offset \ + tst-fdopen \ + tst-fdopen2 \ + tst-ferror \ +diff --git a/stdio-common/tst-fclose-offset.c b/stdio-common/tst-fclose-offset.c +new file mode 100644 +index 0000000000000000..a31de1117c7dfeec +--- /dev/null ++++ b/stdio-common/tst-fclose-offset.c +@@ -0,0 +1,225 @@ ++/* Test offset of input file descriptor after close (bug 12724). ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++int ++do_test (void) ++{ ++ char *filename = NULL; ++ int fd = create_temp_file ("tst-fclose-offset", &filename); ++ TEST_VERIFY_EXIT (fd != -1); ++ ++ /* Test offset of open file description for output and input streams ++ after fclose, case from bug 12724. */ ++ ++ const char buf[] = "hello world"; ++ xwrite (fd, buf, sizeof buf); ++ TEST_COMPARE (lseek (fd, 1, SEEK_SET), 1); ++ int fd2 = xdup (fd); ++ FILE *f = fdopen (fd2, "w"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (fputc (buf[1], f), buf[1]); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 2); ++ ++ /* Likewise for an input stream. */ ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (fgetc (f), buf[2]); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 3); ++ ++ /* Test offset of open file description for output and input streams ++ after fclose, case from comment on bug 12724 (failed after first ++ attempt at fixing that bug). This verifies that the offset is ++ not reset when there has been no input or output on the FILE* (in ++ that case, the FILE* might not be the active handle). */ ++ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ xwrite (fd, buf, sizeof buf); ++ TEST_COMPARE (lseek (fd, 1, SEEK_SET), 1); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "w"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (lseek (fd, 4, SEEK_SET), 4); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 4); ++ ++ /* Likewise for an input stream. */ ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (lseek (fd, 4, SEEK_SET), 4); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 4); ++ ++ /* Further cases without specific tests in bug 12724, to verify ++ proper operation of the rules about the offset only being set ++ when the stream is the active handle. */ ++ ++ /* Test offset set by fclose after fseek and fgetc. */ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (fseek (f, 1, SEEK_SET), 0); ++ TEST_COMPARE (fgetc (f), buf[1]); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 2); ++ ++ /* Test offset not set by fclose after fseek and fgetc, if that ++ fgetc is at EOF (in which case the active handle might have ++ changed). */ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (fseek (f, sizeof buf, SEEK_SET), 0); ++ TEST_COMPARE (fgetc (f), EOF); ++ TEST_COMPARE (lseek (fd, 4, SEEK_SET), 4); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 4); ++ ++ /* Test offset not set by fclose after fseek and fgetc and fflush ++ (active handle might have changed after fflush). */ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (fseek (f, 1, SEEK_SET), 0); ++ TEST_COMPARE (fgetc (f), buf[1]); ++ TEST_COMPARE (fflush (f), 0); ++ TEST_COMPARE (lseek (fd, 4, SEEK_SET), 4); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 4); ++ ++ /* Test offset not set by fclose after fseek and fgetc, if the ++ stream is unbuffered (active handle might change at any ++ time). */ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ setbuf (f, NULL); ++ TEST_COMPARE (fseek (f, 1, SEEK_SET), 0); ++ TEST_COMPARE (fgetc (f), buf[1]); ++ TEST_COMPARE (lseek (fd, 4, SEEK_SET), 4); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 4); ++ ++ /* Also test such cases with the stream in wide mode. */ ++ ++ /* Test offset set by fclose after fseek and fgetwc. */ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (fseek (f, 1, SEEK_SET), 0); ++ TEST_COMPARE (fgetwc (f), (wint_t) buf[1]); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 2); ++ ++ /* Test offset not set by fclose after fseek and fgetwc, if that ++ fgetwc is at EOF (in which case the active handle might have ++ changed). */ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (fseek (f, sizeof buf, SEEK_SET), 0); ++ TEST_COMPARE (fgetwc (f), WEOF); ++ TEST_COMPARE (lseek (fd, 4, SEEK_SET), 4); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 4); ++ ++ /* Test offset not set by fclose after fseek and fgetwc and fflush ++ (active handle might have changed after fflush). */ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ TEST_COMPARE (fseek (f, 1, SEEK_SET), 0); ++ TEST_COMPARE (fgetwc (f), (wint_t) buf[1]); ++ TEST_COMPARE (fflush (f), 0); ++ TEST_COMPARE (lseek (fd, 4, SEEK_SET), 4); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 4); ++ ++ /* Test offset not set by fclose after fseek and fgetwc, if the ++ stream is unbuffered (active handle might change at any ++ time). */ ++ TEST_COMPARE (lseek (fd, 0, SEEK_SET), 0); ++ fd2 = xdup (fd); ++ f = fdopen (fd2, "r"); ++ TEST_VERIFY_EXIT (f != NULL); ++ setbuf (f, NULL); ++ TEST_COMPARE (fseek (f, 1, SEEK_SET), 0); ++ TEST_COMPARE (fgetwc (f), (wint_t) buf[1]); ++ TEST_COMPARE (lseek (fd, 4, SEEK_SET), 4); ++ xfclose (f); ++ errno = 0; ++ TEST_COMPARE (lseek (fd2, 0, SEEK_CUR), -1); ++ TEST_COMPARE (errno, EBADF); ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), 4); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119434-4.patch b/glibc-RHEL-119434-4.patch new file mode 100644 index 0000000..0e0b8d1 --- /dev/null +++ b/glibc-RHEL-119434-4.patch @@ -0,0 +1,150 @@ +commit 94251ae99edaa911f4cb8056748dca0874ea268c +Author: Joseph Myers +Date: Tue Jan 28 21:53:49 2025 +0000 + + Make fflush (NULL) flush input files (bug 32369) + + As discussed in bug 32369 and required by POSIX, the POSIX feature + fflush (NULL) should flush input files, not just output files. The + POSIX requirement is that "fflush() shall perform this flushing action + on all streams for which the behavior is defined above", and the + definition for input files is for "a stream open for reading with an + underlying file description, if the file is not already at EOF, and + the file is one capable of seeking". + + Implement this requirement in glibc. (The underlying flushing + implementation is what deals with avoiding errors for seeking on an + unseekable file.) + + Tested for x86_64. + +diff --git a/libio/genops.c b/libio/genops.c +index 6b2f508f853b8969..0b5344d4cca4e6d9 100644 +--- a/libio/genops.c ++++ b/libio/genops.c +@@ -705,6 +705,13 @@ _IO_flush_all (void) + ) + && _IO_OVERFLOW (fp, EOF) == EOF) + result = EOF; ++ if (_IO_fileno (fp) >= 0 ++ && ((fp->_mode <= 0 && fp->_IO_read_ptr < fp->_IO_read_end) ++ || (_IO_vtable_offset (fp) == 0 ++ && fp->_mode > 0 && (fp->_wide_data->_IO_read_ptr ++ < fp->_wide_data->_IO_read_end))) ++ && _IO_SYNC (fp) != 0) ++ result = EOF; + + _IO_funlockfile (fp); + run_fp = NULL; +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index aa4ba158e8ea9b44..c795fd752a39b1e7 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -210,6 +210,7 @@ tests := \ + tst-fdopen \ + tst-fdopen2 \ + tst-ferror \ ++ tst-fflush-all-input \ + tst-fgets \ + tst-fgets2 \ + tst-fileno \ +diff --git a/stdio-common/tst-fflush-all-input.c b/stdio-common/tst-fflush-all-input.c +new file mode 100644 +index 0000000000000000..8e3fca3a087a1699 +--- /dev/null ++++ b/stdio-common/tst-fflush-all-input.c +@@ -0,0 +1,94 @@ ++/* Test fflush (NULL) flushes input files (bug 32369). ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++int ++do_test (void) ++{ ++ FILE *temp = tmpfile (); ++ TEST_VERIFY_EXIT (temp != NULL); ++ fprintf (temp, "abc"); ++ TEST_COMPARE (fflush (temp), 0); ++ TEST_COMPARE (lseek (fileno (temp), 0, SEEK_SET), 0); ++ TEST_COMPARE (fgetc (temp), 'a'); ++ TEST_COMPARE (fflush (NULL), 0); ++ TEST_COMPARE (lseek (fileno (temp), 0, SEEK_CUR), 1); ++ xfclose (temp); ++ ++ /* Likewise, but in wide mode. */ ++ temp = tmpfile (); ++ TEST_VERIFY_EXIT (temp != NULL); ++ fwprintf (temp, L"abc"); ++ TEST_COMPARE (fflush (temp), 0); ++ TEST_COMPARE (lseek (fileno (temp), 0, SEEK_SET), 0); ++ TEST_COMPARE (fgetwc (temp), L'a'); ++ TEST_COMPARE (fflush (NULL), 0); ++ TEST_COMPARE (lseek (fileno (temp), 0, SEEK_CUR), 1); ++ xfclose (temp); ++ ++ /* Similar tests, but with the flush implicitly occurring on exit ++ (in a forked subprocess). */ ++ ++ temp = tmpfile (); ++ TEST_VERIFY_EXIT (temp != NULL); ++ pid_t pid = xfork (); ++ if (pid == 0) ++ { ++ fprintf (temp, "abc"); ++ TEST_COMPARE (fflush (temp), 0); ++ TEST_COMPARE (lseek (fileno (temp), 0, SEEK_SET), 0); ++ TEST_COMPARE (fgetc (temp), 'a'); ++ exit (EXIT_SUCCESS); ++ } ++ else ++ { ++ TEST_COMPARE (xwaitpid (pid, NULL, 0), pid); ++ TEST_COMPARE (lseek (fileno (temp), 0, SEEK_CUR), 1); ++ xfclose (temp); ++ } ++ ++ temp = tmpfile (); ++ TEST_VERIFY_EXIT (temp != NULL); ++ pid = xfork (); ++ if (pid == 0) ++ { ++ fwprintf (temp, L"abc"); ++ TEST_COMPARE (fflush (temp), 0); ++ TEST_COMPARE (lseek (fileno (temp), 0, SEEK_SET), 0); ++ TEST_COMPARE (fgetwc (temp), L'a'); ++ exit (EXIT_SUCCESS); ++ } ++ else ++ { ++ TEST_COMPARE (xwaitpid (pid, NULL, 0), pid); ++ TEST_COMPARE (lseek (fileno (temp), 0, SEEK_CUR), 1); ++ xfclose (temp); ++ } ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119434-5.patch b/glibc-RHEL-119434-5.patch new file mode 100644 index 0000000..59c5844 --- /dev/null +++ b/glibc-RHEL-119434-5.patch @@ -0,0 +1,115 @@ +commit 0dcc0b2f63051863187dc678964eb17761b1a820 +Author: Joseph Myers +Date: Tue Jan 28 22:35:21 2025 +0000 + + Fix fseek handling for mmap files after ungetc or fflush (bug 32529) + + As discussed in bug 32529, fseek fails on files opened for reading + using mmap after ungetc. The implementation of fseek for such files + has an offset computation that's also incorrect after fflush. A + combined fix addresses both problems (with tests for both included as + well) and it seems reasonable to consider them a single bug. + + Tested for x86_64. + +diff --git a/libio/fileops.c b/libio/fileops.c +index d96941be9e2bccd6..e3967c1eb8ee6993 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -1106,11 +1106,18 @@ _IO_file_seekoff_mmap (FILE *fp, off64_t offset, int dir, int mode) + if (mode == 0) + return fp->_offset - (fp->_IO_read_end - fp->_IO_read_ptr); + ++ if (_IO_in_backup (fp)) ++ { ++ if (dir == _IO_seek_cur) ++ offset += fp->_IO_read_ptr - fp->_IO_read_end; ++ _IO_switch_to_main_get_area (fp); ++ } ++ + switch (dir) + { + case _IO_seek_cur: + /* Adjust for read-ahead (bytes is buffer). */ +- offset += fp->_IO_read_ptr - fp->_IO_read_base; ++ offset += fp->_offset - (fp->_IO_read_end - fp->_IO_read_ptr); + break; + case _IO_seek_set: + break; +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index c795fd752a39b1e7..9a5d324495946385 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -223,6 +223,7 @@ tests := \ + tst-fphex-wide \ + tst-fread \ + tst-fseek \ ++ tst-fseek-mmap \ + tst-fwrite \ + tst-getline \ + tst-getline-enomem \ +diff --git a/stdio-common/tst-fseek-mmap.c b/stdio-common/tst-fseek-mmap.c +new file mode 100644 +index 0000000000000000..86fa99a1a2e3e7e9 +--- /dev/null ++++ b/stdio-common/tst-fseek-mmap.c +@@ -0,0 +1,59 @@ ++/* Test fseek on files using mmap (bug 32529). ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++int ++do_test (void) ++{ ++ char *filename = NULL; ++ int fd = create_temp_file ("tst-fseek-mmap", &filename); ++ TEST_VERIFY_EXIT (fd != -1); ++ xclose (fd); ++ ++ /* Test fseek after ungetc (bug 32529). */ ++ FILE *fp = xfopen (filename, "w"); ++ TEST_VERIFY (0 <= fputs ("test", fp)); ++ xfclose (fp); ++ ++ fp = xfopen (filename, "rm"); ++ TEST_COMPARE (fgetc (fp), 't'); ++ TEST_COMPARE (ungetc ('u', fp), 'u'); ++ TEST_COMPARE (fseek (fp, 0, SEEK_CUR), 0); ++ xfclose (fp); ++ ++ /* Test fseek positioning after fflush (another issue covered by the ++ same fix). */ ++ fp = xfopen (filename, "rm"); ++ TEST_COMPARE (fgetc (fp), 't'); ++ TEST_COMPARE (fflush (fp), 0); ++ TEST_COMPARE (ftell (fp), 1); ++ TEST_COMPARE (fseek (fp, 0, SEEK_CUR), 0); ++ TEST_COMPARE (ftell (fp), 1); ++ TEST_COMPARE (fgetc (fp), 'e'); ++ xfclose (fp); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119434-6.patch b/glibc-RHEL-119434-6.patch new file mode 100644 index 0000000..7bda950 --- /dev/null +++ b/glibc-RHEL-119434-6.patch @@ -0,0 +1,110 @@ +commit 3ff3b9997cfef891ba33a14f1dcba0310d96369c +Author: Joseph Myers +Date: Tue Jan 28 23:20:08 2025 +0000 + + Fix fflush handling for mmap files after ungetc (bug 32535) + + As discussed in bug 32535, fflush fails on files opened for reading + using mmap after ungetc. Fix the logic to handle this case and still + compute the file offset correctly. + + Tested for x86_64. + +diff --git a/libio/fileops.c b/libio/fileops.c +index e3967c1eb8ee6993..ac5ff9a4353d0201 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -858,17 +858,21 @@ libc_hidden_ver (_IO_new_file_sync, _IO_file_sync) + int + _IO_file_sync_mmap (FILE *fp) + { ++ off64_t o = fp->_offset - (fp->_IO_read_end - fp->_IO_read_ptr); + if (fp->_IO_read_ptr != fp->_IO_read_end) + { +- if (__lseek64 (fp->_fileno, fp->_IO_read_ptr - fp->_IO_buf_base, +- SEEK_SET) +- != fp->_IO_read_ptr - fp->_IO_buf_base) ++ if (_IO_in_backup (fp)) ++ { ++ _IO_switch_to_main_get_area (fp); ++ o -= fp->_IO_read_end - fp->_IO_read_base; ++ } ++ if (__lseek64 (fp->_fileno, o, SEEK_SET) != o) + { + fp->_flags |= _IO_ERR_SEEN; + return EOF; + } + } +- fp->_offset = fp->_IO_read_ptr - fp->_IO_buf_base; ++ fp->_offset = o; + fp->_IO_read_end = fp->_IO_read_ptr = fp->_IO_read_base; + return 0; + } +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 9a5d324495946385..710120820ee4e337 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -211,6 +211,7 @@ tests := \ + tst-fdopen2 \ + tst-ferror \ + tst-fflush-all-input \ ++ tst-fflush-mmap \ + tst-fgets \ + tst-fgets2 \ + tst-fileno \ +diff --git a/stdio-common/tst-fflush-mmap.c b/stdio-common/tst-fflush-mmap.c +new file mode 100644 +index 0000000000000000..3bddb909e072caf2 +--- /dev/null ++++ b/stdio-common/tst-fflush-mmap.c +@@ -0,0 +1,50 @@ ++/* Test fflush after ungetc on files using mmap (bug 32535). ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++int ++do_test (void) ++{ ++ char *filename = NULL; ++ int fd = create_temp_file ("tst-fflush-mmap", &filename); ++ TEST_VERIFY_EXIT (fd != -1); ++ xclose (fd); ++ ++ /* Test fflush after ungetc (bug 32535). */ ++ FILE *fp = xfopen (filename, "w"); ++ TEST_VERIFY (0 <= fputs ("test", fp)); ++ xfclose (fp); ++ ++ fp = xfopen (filename, "rm"); ++ TEST_COMPARE (fgetc (fp), 't'); ++ TEST_COMPARE (ungetc ('u', fp), 'u'); ++ TEST_COMPARE (fflush (fp), 0); ++ TEST_COMPARE (fgetc (fp), 't'); ++ TEST_COMPARE (fgetc (fp), 'e'); ++ xfclose (fp); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119434-7.patch b/glibc-RHEL-119434-7.patch new file mode 100644 index 0000000..74b111d --- /dev/null +++ b/glibc-RHEL-119434-7.patch @@ -0,0 +1,595 @@ +commit 203452a460143c2b0bf80e0e92027e0fd6e19fa4 +Author: Joseph Myers +Date: Tue Jan 28 23:39:12 2025 +0000 + + Add test of input file flushing / offset issues + + Having fixed several bugs relating to flushing of FILE* streams (with + fflush and other operations) and their offsets (both the file position + indicator in the FILE*, and the offset in the underlying open file + description), especially after ungetc but not limited to that case, + add a test that more systematically covers different combinations of + cases for such issues, with 57220 separate scenarios tested (which + include examples of all the five separate fixed bugs), all of which + pass given the five previous bug fixes. + + Tested for x86_64. + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 710120820ee4e337..31ff420432453dfe 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -244,6 +244,7 @@ tests := \ + tst-printf-round \ + tst-printfsz \ + tst-put-error \ ++ tst-read-offset \ + tst-renameat2 \ + tst-rndseek \ + tst-scanf-binary-c11 \ +diff --git a/stdio-common/tst-read-offset.c b/stdio-common/tst-read-offset.c +new file mode 100644 +index 0000000000000000..b8706607fc86da99 +--- /dev/null ++++ b/stdio-common/tst-read-offset.c +@@ -0,0 +1,560 @@ ++/* Test offsets in files being read, in particular with ungetc. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++static volatile bool fail = false; ++ ++/* Induce a malloc failure whenever FAIL is set. */ ++void * ++malloc (size_t sz) ++{ ++ if (fail) ++ return NULL; ++ ++ static void *(*real_malloc) (size_t); ++ ++ if (real_malloc == NULL) ++ real_malloc = dlsym (RTLD_NEXT, "malloc"); ++ ++ return real_malloc (sz); ++} ++ ++/* The name of the temporary file used by all the tests. */ ++static char *filename; ++ ++/* st_blksize value for that file, or BUFSIZ if out of range. */ ++static int blksize = BUFSIZ; ++ ++/* Test data, both written to that file and used as an in-memory ++ stream. */ ++char test_data[2 * BUFSIZ]; ++ ++/* Ways to open a test stream for reading (that may use different code ++ paths in libio). */ ++enum test_open_case ++ { ++ test_open_fopen, ++ test_open_fopen_m, ++ test_open_fopen64, ++ test_open_fopen64_m, ++ test_open_fmemopen, ++ test_open_max ++ }; ++ ++static const char *const test_open_case_name[test_open_max] = ++ { ++ "fopen", "fopen(mmap)", "fopen64", "fopen64(mmap)", "fmemopen" ++ }; ++ ++static FILE * ++open_test_stream (enum test_open_case c) ++{ ++ FILE *fp; ++ switch (c) ++ { ++ case test_open_fopen: ++ fp = fopen (filename, "r"); ++ break; ++ ++ case test_open_fopen_m: ++ fp = fopen (filename, "rm"); ++ break; ++ ++ case test_open_fopen64: ++ fp = fopen64 (filename, "r"); ++ break; ++ ++ case test_open_fopen64_m: ++ fp = fopen64 (filename, "rm"); ++ break; ++ ++ case test_open_fmemopen: ++ fp = fmemopen (test_data, 2 * BUFSIZ, "r"); ++ break; ++ ++ default: ++ abort (); ++ } ++ TEST_VERIFY_EXIT (fp != NULL); ++ return fp; ++} ++ ++/* Base locations at which the main test (ungetc calls then doing ++ something that clears ungetc characters, then checking offset) ++ starts. */ ++enum test_base_loc ++ { ++ base_loc_start, ++ base_loc_blksize, ++ base_loc_half, ++ base_loc_bufsiz, ++ base_loc_eof, ++ base_loc_max ++ }; ++ ++static int ++base_loc_to_bytes (enum test_base_loc loc, int offset) ++{ ++ switch (loc) ++ { ++ case base_loc_start: ++ return offset; ++ ++ case base_loc_blksize: ++ return blksize + offset; ++ ++ case base_loc_half: ++ return BUFSIZ / 2 + offset; ++ ++ case base_loc_bufsiz: ++ return BUFSIZ + offset; ++ ++ case base_loc_eof: ++ return 2 * BUFSIZ + offset; ++ ++ default: ++ abort (); ++ } ++} ++ ++/* Ways to clear data from ungetc. */ ++enum clear_ungetc_case ++ { ++ clear_fseek, ++ clear_fseekm1, ++ clear_fseekp1, ++ clear_fseeko, ++ clear_fseekom1, ++ clear_fseekop1, ++ clear_fseeko64, ++ clear_fseeko64m1, ++ clear_fseeko64p1, ++ clear_fsetpos, ++ clear_fsetposu, ++ clear_fsetpos64, ++ clear_fsetpos64u, ++ clear_fflush, ++ clear_fflush_null, ++ clear_fclose, ++ clear_max ++ }; ++ ++static const char *const clear_ungetc_case_name[clear_max] = ++ { ++ "fseek", "fseek(-1)", "fseek(1)", "fseeko", "fseeko(-1)", "fseeko(1)", ++ "fseeko64", "fseeko64(-1)", "fseeko64(1)", "fsetpos", "fsetpos(before)", ++ "fsetpos64", "fsetpos64(before)", "fflush", "fflush(NULL)", "fclose" ++ }; ++ ++static int ++clear_offset (enum clear_ungetc_case c, int num_ungetc) ++{ ++ switch (c) ++ { ++ case clear_fseekm1: ++ case clear_fseekom1: ++ case clear_fseeko64m1: ++ return -1; ++ ++ case clear_fseekp1: ++ case clear_fseekop1: ++ case clear_fseeko64p1: ++ return 1; ++ ++ case clear_fsetposu: ++ case clear_fsetpos64u: ++ return num_ungetc; ++ ++ default: ++ return 0; ++ } ++} ++ ++/* The offsets used with fsetpos / fsetpos64. */ ++static fpos_t pos; ++static fpos64_t pos64; ++ ++static int ++do_clear_ungetc (FILE *fp, enum clear_ungetc_case c, int num_ungetc) ++{ ++ int ret; ++ int offset = clear_offset (c, num_ungetc); ++ switch (c) ++ { ++ case clear_fseek: ++ case clear_fseekm1: ++ case clear_fseekp1: ++ ret = fseek (fp, offset, SEEK_CUR); ++ break; ++ ++ case clear_fseeko: ++ case clear_fseekom1: ++ case clear_fseekop1: ++ ret = fseeko (fp, offset, SEEK_CUR); ++ break; ++ ++ case clear_fseeko64: ++ case clear_fseeko64m1: ++ case clear_fseeko64p1: ++ ret = fseeko64 (fp, offset, SEEK_CUR); ++ break; ++ ++ case clear_fsetpos: ++ case clear_fsetposu: ++ ret = fsetpos (fp, &pos); ++ break; ++ ++ case clear_fsetpos64: ++ case clear_fsetpos64u: ++ ret = fsetpos64 (fp, &pos64); ++ break; ++ ++ case clear_fflush: ++ ret = fflush (fp); ++ break; ++ ++ case clear_fflush_null: ++ ret = fflush (NULL); ++ break; ++ ++ case clear_fclose: ++ ret = fclose (fp); ++ break; ++ ++ default: ++ abort(); ++ } ++ TEST_COMPARE (ret, 0); ++ return offset; ++} ++ ++static bool ++clear_valid (enum test_open_case c, enum clear_ungetc_case cl) ++{ ++ switch (c) ++ { ++ case test_open_fmemopen: ++ /* fflush is not valid for input memory streams, and fclose is ++ useless for this test for such streams because there is no ++ underlying open file description for which an offset could be ++ checked after fclose. */ ++ switch (cl) ++ { ++ case clear_fflush: ++ case clear_fflush_null: ++ case clear_fclose: ++ return false; ++ ++ default: ++ return true; ++ } ++ ++ default: ++ /* All ways of clearing ungetc state are valid for streams with ++ an underlying file. */ ++ return true; ++ } ++} ++ ++static bool ++clear_closes_file (enum clear_ungetc_case cl) ++{ ++ switch (cl) ++ { ++ case clear_fclose: ++ return true; ++ ++ default: ++ return false; ++ } ++} ++ ++static void ++clear_getpos_before (FILE *fp, enum clear_ungetc_case c) ++{ ++ switch (c) ++ { ++ case clear_fsetposu: ++ TEST_COMPARE (fgetpos (fp, &pos), 0); ++ break; ++ ++ case clear_fsetpos64u: ++ TEST_COMPARE (fgetpos64 (fp, &pos64), 0); ++ break; ++ ++ default: ++ break; ++ } ++} ++ ++static void ++clear_getpos_after (FILE *fp, enum clear_ungetc_case c) ++{ ++ switch (c) ++ { ++ case clear_fsetpos: ++ TEST_COMPARE (fgetpos (fp, &pos), 0); ++ break; ++ ++ case clear_fsetpos64: ++ TEST_COMPARE (fgetpos64 (fp, &pos64), 0); ++ break; ++ ++ default: ++ break; ++ } ++} ++ ++/* Ways to verify results of clearing ungetc data. */ ++enum verify_case ++ { ++ verify_read, ++ verify_ftell, ++ verify_ftello, ++ verify_ftello64, ++ verify_fd, ++ verify_max ++ }; ++ ++static const char *const verify_case_name[verify_max] = ++ { ++ "read", "ftell", "ftello", "ftello64", "fd" ++ }; ++ ++static bool ++valid_fd_offset (enum test_open_case c, enum clear_ungetc_case cl) ++{ ++ switch (c) ++ { ++ case test_open_fmemopen: ++ /* No open file description. */ ++ return false; ++ ++ default: ++ /* fseek does not necessarily set the offset for the underlying ++ open file description ("If the most recent operation, other ++ than ftell(), on a given stream is fflush(), the file offset ++ in the underlying open file description shall be adjusted to ++ reflect the location specified by fseek()." in POSIX does not ++ include the case here where getc was the last operation). ++ Similarly, fsetpos does not necessarily set that offset ++ either. */ ++ switch (cl) ++ { ++ case clear_fflush: ++ case clear_fflush_null: ++ case clear_fclose: ++ return true; ++ ++ default: ++ return false; ++ } ++ } ++} ++ ++static bool ++verify_valid (enum test_open_case c, enum clear_ungetc_case cl, ++ enum verify_case v) ++{ ++ switch (v) ++ { ++ case verify_fd: ++ return valid_fd_offset (c, cl); ++ ++ default: ++ switch (cl) ++ { ++ case clear_fclose: ++ return false; ++ ++ default: ++ return true; ++ } ++ } ++} ++ ++static bool ++verify_uses_fd (enum verify_case v) ++{ ++ switch (v) ++ { ++ case verify_fd: ++ return true; ++ ++ default: ++ return false; ++ } ++} ++ ++static int ++read_to_test_loc (FILE *fp, enum test_base_loc loc, int offset) ++{ ++ int to_read = base_loc_to_bytes (loc, offset); ++ for (int i = 0; i < to_read; i++) ++ TEST_COMPARE (getc (fp), (unsigned char) i); ++ return to_read; ++} ++ ++static void ++setup (void) ++{ ++ int fd = create_temp_file ("tst-read-offset", &filename); ++ TEST_VERIFY_EXIT (fd != -1); ++ struct stat64 st; ++ xfstat64 (fd, &st); ++ if (st.st_blksize > 0 && st.st_blksize < BUFSIZ) ++ blksize = st.st_blksize; ++ printf ("BUFSIZ = %d, blksize = %d\n", BUFSIZ, blksize); ++ xclose (fd); ++ FILE *fp = xfopen (filename, "w"); ++ for (size_t i = 0; i < 2 * BUFSIZ; i++) ++ { ++ unsigned char c = i; ++ TEST_VERIFY_EXIT (fputc (c, fp) == c); ++ test_data[i] = c; ++ } ++ xfclose (fp); ++} ++ ++static void ++test_one_case (enum test_open_case c, enum test_base_loc loc, int offset, ++ int num_ungetc, int num_ungetc_diff, bool ungetc_fallback, ++ enum clear_ungetc_case cl, enum verify_case v) ++{ ++ int full_offset = base_loc_to_bytes (loc, offset); ++ printf ("Testing %s offset %d ungetc %d different %d %s%s %s\n", ++ test_open_case_name[c], full_offset, num_ungetc, num_ungetc_diff, ++ ungetc_fallback ? "fallback " : "", clear_ungetc_case_name[cl], ++ verify_case_name[v]); ++ FILE *fp = open_test_stream (c); ++ int cur_offset = read_to_test_loc (fp, loc, offset); ++ clear_getpos_before (fp, cl); ++ for (int i = 0; i < num_ungetc; i++) ++ { ++ unsigned char c = (i >= num_ungetc - num_ungetc_diff ++ ? cur_offset ++ : cur_offset - 1); ++ if (ungetc_fallback) ++ fail = true; ++ TEST_COMPARE (ungetc (c, fp), c); ++ fail = false; ++ cur_offset--; ++ } ++ clear_getpos_after (fp, cl); ++ int fd = -1; ++ bool done_dup = false; ++ if (verify_uses_fd (v)) ++ { ++ fd = fileno (fp); ++ TEST_VERIFY (fd != -1); ++ if (clear_closes_file (cl)) ++ { ++ fd = xdup (fd); ++ done_dup = true; ++ } ++ } ++ cur_offset += do_clear_ungetc (fp, cl, num_ungetc); ++ switch (v) ++ { ++ case verify_read: ++ for (; ++ cur_offset <= full_offset + 1 && cur_offset < 2 * BUFSIZ; ++ cur_offset++) ++ TEST_COMPARE (getc (fp), (unsigned char) cur_offset); ++ break; ++ ++ case verify_ftell: ++ TEST_COMPARE (ftell (fp), cur_offset); ++ break; ++ ++ case verify_ftello: ++ TEST_COMPARE (ftello (fp), cur_offset); ++ break; ++ ++ case verify_ftello64: ++ TEST_COMPARE (ftello64 (fp), cur_offset); ++ break; ++ ++ case verify_fd: ++ TEST_COMPARE (lseek (fd, 0, SEEK_CUR), cur_offset); ++ break; ++ ++ default: ++ abort (); ++ } ++ if (! clear_closes_file (cl)) ++ { ++ int ret = fclose (fp); ++ TEST_COMPARE (ret, 0); ++ } ++ if (done_dup) ++ xclose (fd); ++} ++ ++int ++do_test (void) ++{ ++ setup (); ++ for (enum test_open_case c = 0; c < test_open_max; c++) ++ for (enum test_base_loc loc = 0; loc < base_loc_max; loc++) ++ for (int offset = -2; offset <= 3; offset++) ++ for (int num_ungetc = 0; ++ num_ungetc <= 2 && num_ungetc <= base_loc_to_bytes (loc, offset); ++ num_ungetc++) ++ for (int num_ungetc_diff = 0; ++ num_ungetc_diff <= num_ungetc; ++ num_ungetc_diff++) ++ for (int ungetc_fallback = 0; ++ ungetc_fallback <= (num_ungetc == 1 ? 1 : 0); ++ ungetc_fallback++) ++ for (enum clear_ungetc_case cl = 0; cl < clear_max; cl++) ++ { ++ if (!clear_valid (c, cl)) ++ continue; ++ if (base_loc_to_bytes (loc, offset) > 2 * BUFSIZ) ++ continue; ++ if ((base_loc_to_bytes (loc, offset) ++ - num_ungetc ++ + clear_offset (cl, num_ungetc)) < 0) ++ continue; ++ if ((base_loc_to_bytes (loc, offset) ++ - num_ungetc ++ + clear_offset (cl, num_ungetc)) > 2 * BUFSIZ) ++ continue; ++ for (enum verify_case v = 0; v < verify_max; v++) ++ { ++ if (!verify_valid (c, cl, v)) ++ continue; ++ test_one_case (c, loc, offset, num_ungetc, ++ num_ungetc_diff, ungetc_fallback, cl, v); ++ } ++ } ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119434-8.patch b/glibc-RHEL-119434-8.patch new file mode 100644 index 0000000..57ed9d1 --- /dev/null +++ b/glibc-RHEL-119434-8.patch @@ -0,0 +1,107 @@ +commit 7b47b3dd214c8ff2c699f13efe5533941be53635 +Author: Florian Weimer +Date: Tue Apr 8 18:38:38 2025 +0200 + + libio: Synthesize ESPIPE error if lseek returns 0 after reading bytes + + This is required so that fclose, when trying to seek to the right + position after filling the input buffer, does not fail with EINVAL. + This fclose code path only ignores ESPIPE errors. + + Reported by Petr Pisar on + . + + Fixes commit be6818be31e756398e45f70e2819d78be0961223 ("Make fclose + seek input file to right offset (bug 12724)"). + + Reviewed-by: Frédéric Bérat + +diff --git a/libio/fileops.c b/libio/fileops.c +index ac5ff9a4353d0201..cca52c09beb11747 100644 +--- a/libio/fileops.c ++++ b/libio/fileops.c +@@ -928,6 +928,16 @@ do_ftell (FILE *fp) + if (result == EOF) + return result; + ++ if (result == 0 && offset < 0) ++ { ++ /* This happens for some character devices that always report ++ file offset 0 even after some data has been read (instead of ++ failing with ESPIPE). The fclose path ignores this ++ error. */ ++ __set_errno (ESPIPE); ++ return EOF; ++ } ++ + result += offset; + + if (result < 0) +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 31ff420432453dfe..cee076cb7bcff2d2 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -206,6 +206,7 @@ tests := \ + tst-bz11319-fortify2 \ + tst-cookie \ + tst-dprintf-length \ ++ tst-fclose-devzero \ + tst-fclose-offset \ + tst-fdopen \ + tst-fdopen2 \ +diff --git a/stdio-common/tst-fclose-devzero.c b/stdio-common/tst-fclose-devzero.c +new file mode 100644 +index 0000000000000000..1c7b39a3e04ba80d +--- /dev/null ++++ b/stdio-common/tst-fclose-devzero.c +@@ -0,0 +1,50 @@ ++/* Test that always-zero lseek does not cause fclose failure after fread. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++ ++int ++do_test (void) ++{ ++ for (int do_ftello = 0; do_ftello < 2; ++do_ftello) ++ { ++ FILE *fp = xfopen ("/dev/zero", "r"); ++ char buf[17]; ++ memset (buf, 0xcc, sizeof (buf)); ++ xfread (buf, 1, sizeof (buf), fp); ++ static const char zeros[sizeof (buf)] = { 0 }; ++ TEST_COMPARE_BLOB (buf, sizeof (buf), zeros, sizeof (zeros)); ++ if (do_ftello) ++ { ++ errno = 0; ++ TEST_COMPARE (ftello (fp), -1); ++ TEST_COMPARE (errno, ESPIPE); ++ } ++ /* Do not use xfclose because it flushes first. */ ++ TEST_COMPARE (fclose (fp), 0); ++ } ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119435.patch b/glibc-RHEL-119435.patch new file mode 100644 index 0000000..70c7441 --- /dev/null +++ b/glibc-RHEL-119435.patch @@ -0,0 +1,249 @@ +commit 11e188659db264f6b101d8eb65824ffa5bc91a0a +Author: Frédéric Bérat +Date: Mon Sep 9 14:43:36 2024 +0200 + + libio: Add test case for fflush + + Since one path uses _IO_SYNC and the other _IO_OVERFLOW, the newly added + test cases verifies that `fflush (FILE)` and `fflush (NULL)` are + semantically equivalent from the FILE perspective. + + Reviewed-by: Joseph Myers + +diff --git a/libio/Makefile b/libio/Makefile +index efa60525b39331da..e267e6cbd9ac41fa 100644 +--- a/libio/Makefile ++++ b/libio/Makefile +@@ -98,6 +98,8 @@ tests = \ + tst-fclose-unopened \ + tst-fclose-unopened2 \ + tst-fdopen-seek-failure \ ++ tst-fflush \ ++ tst-fflush-NULL \ + tst-fgetc-after-eof \ + tst-fgetwc \ + tst-fgetws \ +diff --git a/libio/tst-fflush-NULL.c b/libio/tst-fflush-NULL.c +new file mode 100644 +index 0000000000000000..4c8fe7cb87235f34 +--- /dev/null ++++ b/libio/tst-fflush-NULL.c +@@ -0,0 +1,24 @@ ++/* Test that fflush (FILE) and fflush (NULL) are semantically equivalent. ++ This is the `fflush (NULL)` part. ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#define FILE_FLUSH_TYPE 0 ++#define S_FLUSH_TYPE "NULL" ++ ++#include "tst-fflush-skeleton.c" +diff --git a/libio/tst-fflush-skeleton.c b/libio/tst-fflush-skeleton.c +new file mode 100644 +index 0000000000000000..6341d3d07976eba8 +--- /dev/null ++++ b/libio/tst-fflush-skeleton.c +@@ -0,0 +1,158 @@ ++/* Test that fflush (FILE) and fflush (NULL) are semantically equivalent. ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++/* A success on this test doesn't imply the effectiveness of fflush as ++ we can't ensure that the file wasn't already in the expected state ++ before the call of the function. It only ensures that, if the test ++ fails, fflush is broken. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define CONTENT_SZ_MAX 32 ++#define TEST_FILE_COUNT 10 ++ ++struct file_tracking ++{ ++ FILE *file; ++ char *name; ++ int fd; ++ char *mfile; ++} files[TEST_FILE_COUNT]; ++ ++static void ++file_init (int file) ++{ ++ int fd = -1; ++ ++ assert (file < TEST_FILE_COUNT); ++ ++ files[file] = (struct file_tracking) { .fd = -1, }; ++ ++ xclose (create_temp_file ("tst-fflush", &files[file].name)); ++ ++ fd = xopen (files[file].name, O_RDONLY, 0); ++ files[file].mfile = xmmap (NULL, CONTENT_SZ_MAX, PROT_READ, MAP_SHARED, fd); ++ xclose (fd); ++} ++ ++static void ++file_cleanup (int file) ++{ ++ free (files[file].name); ++ xmunmap (files[file].mfile, CONTENT_SZ_MAX); ++ files[file] = (struct file_tracking) { .fd = -1, }; ++} ++ ++static void ++file_changed (int to_check, const char *mode) ++{ ++ struct stat stats = { }; ++ char expected[CONTENT_SZ_MAX] = { }; ++ ++ verbose_printf ("Check that %s (%d) exactly contains the data we put in\n", ++ files[to_check].name, to_check); ++ ++ /* File should contain "N:M" where both N and M are one digit exactly. */ ++ snprintf (expected, sizeof (expected), "%d:%d", FILE_FLUSH_TYPE, to_check); ++ TEST_COMPARE_BLOB (files[to_check].mfile, sizeof (expected), ++ expected, sizeof (expected)); ++ ++ TEST_VERIFY (fstat (files[to_check].fd, &stats) >= 0); ++ TEST_VERIFY (stats.st_size == 3); ++ /* In read mode we expect to be at position 1, in write mode at position 3 */ ++ TEST_COMPARE (lseek (files[to_check].fd, 0, SEEK_CUR), ++ mode[0] == 'r' ? 1 : 3); ++ ++ if (support_record_failure_is_failed ()) ++ FAIL_EXIT1 ("exiting due to previous failure"); ++ ++ /* Not reached if the data doesn't match. */ ++} ++ ++static void ++file_flush (const char *mode) ++{ ++ for (int i = 0; i < TEST_FILE_COUNT; i++) ++ { ++ files[i].file = xfopen (files[i].name, mode); ++ files[i].fd = fileno (files[i].file); ++ } ++ ++ /* Print a unique identifier in each file, that is not too long nor contain ++ new line to not trigger _IO_OVERFLOW/_IO_SYNC. */ ++ for (int i = 0; i < TEST_FILE_COUNT; i++) ++ { ++ if (mode[0] == 'r') ++ fgetc (files[i].file); ++ else ++ fprintf (files[i].file, "%d:%d", FILE_FLUSH_TYPE, i); ++ } ++ ++ if (!FILE_FLUSH_TYPE) ++ TEST_VERIFY (fflush (NULL) == 0); ++ else ++ for (int i = 0; i < TEST_FILE_COUNT; i++) ++ TEST_VERIFY (fflush (files[i].file) == 0); ++ ++ for (int i = 0; i < TEST_FILE_COUNT; i++) ++ { ++ verbose_printf ("Check that file %s has been modified after fflush\n", ++ files[i].name); ++ file_changed (i, mode); ++ } ++ ++ for (int i = 0; i < TEST_FILE_COUNT; i++) ++ xfclose (files[i].file); ++} ++ ++static int ++do_test (void) ++{ ++ for (int i = 0; i < TEST_FILE_COUNT; i++) ++ file_init (i); ++ ++ verbose_printf ("Checking fflush(" S_FLUSH_TYPE "), WRITE mode\n"); ++ file_flush ("w"); ++ ++ verbose_printf ("Checking fflush(" S_FLUSH_TYPE "), READWRITE mode\n"); ++ file_flush ("r+"); ++ ++ for (int i = 0; i < TEST_FILE_COUNT; i++) ++ file_cleanup (i); ++ ++ return 0; ++} ++ ++#include +diff --git a/libio/tst-fflush.c b/libio/tst-fflush.c +new file mode 100644 +index 0000000000000000..d3a4b78f4324c7e9 +--- /dev/null ++++ b/libio/tst-fflush.c +@@ -0,0 +1,24 @@ ++/* Test that fflush (FILE) and fflush (NULL) are semantically equivalent. ++ This is the `fflush (FILE)` part. ++ ++ Copyright (C) 2024 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 ++ . */ ++ ++#define FILE_FLUSH_TYPE 1 ++#define S_FLUSH_TYPE "FILE" ++ ++#include "tst-fflush-skeleton.c" diff --git a/glibc-RHEL-119437-1.patch b/glibc-RHEL-119437-1.patch new file mode 100644 index 0000000..49fa2b5 --- /dev/null +++ b/glibc-RHEL-119437-1.patch @@ -0,0 +1,462 @@ +commit 3270c50e4853d9356eb5892364c52cd1558860ec +Author: DJ Delorie +Date: Fri May 2 20:51:18 2025 -0400 + + manual: add more pthread functions + + Add stubs and partial docs for many undocumented pthreads functions. + While neither exhaustive nor complete, gives minimal usage docs + for many functions and expands the pthreads chapters, making it + easier to continue improving this section in the future. + + Reviewed-by: Collin Funk + +Conflicts: + manual/threads.texi + (Downstream is missing commit ee33752b5d8c53eb5a357f67ab7ab6288fba5fd9) + +diff --git a/manual/threads.texi b/manual/threads.texi +index 7b9c79636c9cc79c..5bf7fdb3157b5ea0 100644 +--- a/manual/threads.texi ++++ b/manual/threads.texi +@@ -552,14 +552,97 @@ get different values identified by the same key. On failure, + This section describes the @glibcadj{} POSIX Threads implementation. + + @menu ++* Creating and Destroying Threads:: + * Thread-specific Data:: Support for creating and + managing thread-specific data + * POSIX Semaphores:: Support for process and thread + synchronization using semaphores ++* POSIX Barriers:: Support for process and thread ++ synchronization using barriers ++* POSIX Spin Locks:: Support for process and thread ++ synchronization using spinlocks ++* POSIX Mutexes:: Support for mutual exclusion ++* POSIX Threads Other APIs:: Other Standard functions + * Non-POSIX Extensions:: Additional functions to extend + POSIX Thread functionality + @end menu + ++@node Creating and Destroying Threads ++@subsection Creating and Destroying Threads ++ ++@deftypefun int pthread_create (pthread_t *@var{newthread}, const pthread_attr_t *@var{attr}, void *(*@var{start_routine}) (void *), void *@var{arg}) ++This function creates a new thread with attributes @var{attr}. This ++thread will call @var{start_routine} and pass it @var{arg}. If ++@var{start_routine} returns, the thread will exit and the return value ++will become the thread's exit value. The new thread's ID is stored in ++@var{newthread}. Returns 0 on success. ++@manpagefunctionstub{pthread_create, 3} ++@end deftypefun ++ ++@deftypefun int pthread_detach (pthread_t @var{th}) ++Indicates that thread @var{th} must clean up after itself ++automatically when it exits, as the parent thread will not call ++@code{pthread_join} on it. ++@manpagefunctionstub{pthread_detach, 3} ++@end deftypefun ++ ++@deftypefun int pthread_join (pthread_t @var{th}, void **@var{thread_return}) ++Waits for thread @var{th} to exit, and stores its return value in ++@var{thread_return}. ++@manpagefunctionstub{pthread_join, 3} ++@end deftypefun ++ ++@deftypefun int pthread_kill (pthread_t @var{th}, int @var{signal}) ++Sends signal @var{signal} to thread @var{th}. ++@manpagefunctionstub{pthread_kill, 3} ++@end deftypefun ++ ++@deftypefun pthread_t pthread_self (void) ++Returns the ID of the thread which performed the call. ++@manpagefunctionstub{pthread_self, 3} ++@end deftypefun ++ ++Each thread has a set of attributes which are passed to ++@code{pthread_create} via the @code{pthread_attr_t} type, which should ++be considered an opaque type. ++ ++@deftypefun int pthread_attr_init (pthread_attr_t *@var{attr}) ++Initializes @var{attr} to its default values and allocates any ++resources required. Once initialized, @var{attr} can be modified by ++other @code{pthread_attr_*} functions, or used by ++@code{pthread_create}. ++@manpagefunctionstub{pthread_attr_init, 3} ++@end deftypefun ++ ++@deftypefun int pthread_attr_destroy (pthread_attr_t *@var{attr}) ++When no longer needed, @var{attr} should be destroyed with this ++function, which releases any resources allocated. Note that ++@var{attr} is only needed for the @code{pthread_create} call, not for ++the running thread itself. ++@manpagefunctionstub{pthread_attr_destroy, 3} ++@end deftypefun ++ ++@deftypefun int pthread_attr_setdetachstate (pthread_attr_t *@var{attr}, int @var{detachstate}) ++Sets the detach state attribute for @var{attr}. This attribute may be one of the following: ++ ++@table @code ++@item PTHREAD_CREATE_DETACHED ++Causes the created thread to be detached, that is, as if ++@code{pthread_detach} had been called on it. ++ ++@item PTHREAD_CREATE_JOINABLE ++Causes the created thread to be joinable, that is, @code{pthread_join} ++must be called on it. ++@end table ++ ++@manpagefunctionstub{pthread_attr_setdetachstate, 3} ++@end deftypefun ++ ++@deftypefun int pthread_attr_getdetachstate (const pthread_attr_t *@var{attr}, int *@var{detachstate}) ++Gets the detach state attribute from @var{attr}. ++@manpagefunctionstub{pthread_attr_getdetachstate, 3} ++@end deftypefun ++ + @node Thread-specific Data + @subsection Thread-specific Data + +@@ -718,6 +801,272 @@ against the clock specified by @var{clockid} rather than + @end deftypefun + + ++@node POSIX Barriers ++@subsection POSIX Barriers ++ ++A POSIX barrier works as follows: a file-local or global ++@code{pthread_barrier_t} object is initialized via ++@code{pthread_barrier_init} to require @var{count} threads to wait on ++it. After that, up to @var{count}-1 threads will wait on the barrier ++via @code{pthread_barrier_wait}. None of these calls will return ++until @var{count} threads are waiting via the next call to ++@code{pthread_barrier_wait}, at which point, all of these calls will ++return. The net result is that @var{count} threads will be ++synchronized at that point. At some point after this, the barrier is ++destroyed via @code{pthread_barrier_destroy}. Note that a barrier ++must be destroyed before being re-initialized, to ensure that all ++threads are properly synchronized, but need not be destroyed and ++re-initialized before being reused. ++ ++@deftypefun int pthread_barrier_init (pthread_barrier_t *@var{barrier}, const pthread_barrierattr_t *@var{attr}, unsigned int @var{count}) ++@standards{POSIX, pthread.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++ ++This function initializes a barrier to synchronize @var{count} ++threads. The barrier must be uninitialized or destroyed before it is ++initialized; attempting to initialize an in-use barrier results in ++undefined behavior. ++ ++The @var{attr} argument to @code{pthread_barrier_init} is typically ++NULL for a process-private barrier, but may be used to share a barrier ++across processes (documentation TBD). ++ ++On success, 0 is returned. On error, one of the following is returned: ++ ++@table @code ++@item EINVAL ++Either @var{count} is zero, or is large enough to cause an internal ++overflow. ++@end table ++ ++@end deftypefun ++ ++@deftypefun int pthread_barrier_wait (pthread_barrier_t *@var{barrier}) ++@standards{POSIX, pthread.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++ ++This function synchronizes threads. The first @var{count}-1 threads ++that wait on @var{barrier} will just wait. The next thread that waits ++on @var{barrier} will cause all @var{count} threads' calls to return. ++The @var{barrier} must be initialized with @code{pthread_barrier_init} ++and not yet destroyed with @code{pthread_barrier_destroy}. ++ ++The return value of this function is ++@code{PTHREAD_BARRIER_SERIAL_THREAD} for one thread (it is unspecified ++which thread) and 0 for the remainder, for each batch of @var{count} ++threads synchronized. After such a batch is synchronized, the ++@var{barrier} will begin synchronizing the next @var{count} threads. ++ ++@end deftypefun ++ ++ ++@deftypefun int pthread_barrier_destroy (pthread_barrier_t *@var{barrier}) ++@standards{POSIX, pthread.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++ ++Destroys @var{barrier} and releases any resources it may have ++allocated. A barrier must not be destroyed if any thread is waiting ++on it, or if it was not initialized. This call always succeeds and ++returns 0. ++ ++@end deftypefun ++ ++@node POSIX Spin Locks ++@subsection POSIX Spin Locks ++ ++A spinlock is a low overhead lock suitable for use in a realtime ++thread where it's known that the thread won't be paused by the ++scheduler. Non-realtime threads should use mutexes instead. ++ ++@deftypefun int pthread_spin_init (pthread_spinlock_t *@var{lock}, int @var{pshared}) ++Initializes a spinlock. @var{pshared} is one of: ++ ++@table @code ++@item PTHREAD_PROCESS_PRIVATE ++This spinlock is private to the process which created it. ++ ++@item PTHREAD_PROCESS_SHARED ++This spinlock is shared across any process that can access it, for ++example through shared memory. ++@end table ++ ++@manpagefunctionstub{pthread_spin_init, 3} ++@end deftypefun ++ ++@deftypefun int pthread_spin_destroy (pthread_spinlock_t *@var{lock}) ++Destroys a spinlock and releases any resources it held. ++@manpagefunctionstub{pthread_spin_destroy, 3} ++@end deftypefun ++ ++@deftypefun int pthread_spin_lock (pthread_spinlock_t *@var{lock}) ++Locks a spinlock. Only one thread at a time can lock a spinlock. If ++another thread has locked this spinlock, the calling thread waits ++until it is unlocked, then attempts to lock it. ++@manpagefunctionstub{pthread_spin_lock, 3} ++@end deftypefun ++ ++@deftypefun int pthread_spin_unlock (pthread_spinlock_t *@var{lock}) ++Unlocks a spinlock. If one or more threads are waiting for the lock ++to be unlocked, one of them (unspecified which) will succeed in ++locking it, and will return from @code{pthread_spin_lock}). ++@manpagefunctionstub{pthread_spin_unlock, 3} ++@end deftypefun ++ ++@deftypefun int pthread_spin_trylock (pthread_spinlock_t *@var{lock}) ++Like @code{pthread_spin_unlock} but returns 0 if the lock was ++unlocked, or EBUSY if it was locked. ++@manpagefunctionstub{pthread_spin_trylock, 3} ++@end deftypefun ++ ++@node POSIX Mutexes ++@subsection POSIX Mutexes ++ ++A @emph{mutex}, or ``mutual exclusion'', is a way of guaranteeing that ++only one thread at a time is able to execute a protected bit of code ++(or access any other resource). Two or more threads trying to execute ++the same code at the same time, will instead take turns, according to ++the mutex. ++ ++A mutex is much like a spinlock, but implemented in a way that is more ++appropriate for use in non-realtime threads, and is more ++resource-conserving. ++ ++@deftypefun int pthread_mutex_init (pthread_mutex_t *@var{mutex}, const pthread_mutexattr_t *@var{mutexattr}) ++Initiailizes a mutex. ++@manpagefunctionstub{pthread_mutex_init, 3} ++@end deftypefun ++ ++@deftypefun int pthread_mutex_destroy (pthread_mutex_t *@var{mutex}) ++Destroys a no-longer-needed mutex. ++@manpagefunctionstub{pthread_mutex_destroy, 3} ++@end deftypefun ++ ++@deftypefun int pthread_mutex_lock (pthread_mutex_t *@var{mutex}) ++Only one thread at a time may lock @var{mutex}, and must unlock it ++when appropriate. If a thread calls @code{pthread_mutex_lock} while ++@var{mutex} is locked by another thread, the calling thread will wait ++until @var{mutex} is unlocked, then attempt to lock it. Since there ++may be many threads waiting at the same time, the calling thread may ++need to repeat this wait-and-try many times before it successfully ++locks @var{mutex}, at which point the call to ++@code{pthread_mutex_locks} returns succesfully. ++ ++This function may fail with the following: ++ ++@table @code ++@item EAGAIN ++Too many locks were attempted. ++ ++@item EDEADLK ++The calling thread already holds a lock on @var{mutex}. ++ ++@item EINVAL ++@var{mutex} has an invalid kind, or an invalid priority was requested. ++ ++@item ENOTRECOVERABLE ++The thread holding the lock died in a way that the system cannot recover from. ++ ++@item EOWNERDEAD ++The thread holding the lock died in a way that the system can recover from. ++ ++@end table ++ ++@manpagefunctionstub{pthread_mutex_lock, 3} ++@end deftypefun ++ ++@deftypefun int pthread_mutex_trylock (pthread_mutex_t *@var{mutex}) ++Like @code{pthread_mutex_lock} but if the lock cannot be immediately ++obtained, returns EBUSY. ++@manpagefunctionstub{pthread_mutex_trylock, 3} ++@end deftypefun ++ ++@deftypefun int pthread_mutex_unlock (pthread_mutex_t *@var{mutex}) ++Unlocks @var{mutex}. Returns EPERM if the calling thread doesn't hold ++the lock on @var{mutex}. ++@manpagefunctionstub{pthread_mutex_unlock, 3} ++@end deftypefun ++ ++@deftypefun int pthread_mutex_clocklock (pthread_mutex_t *@var{mutex}, clockid_t @var{clockid}, const struct timespec *@var{abstime}) ++@end deftypefun ++ ++@deftypefun int pthread_mutex_timedlock (pthread_mutex_t *@var{mutex}, const struct timespec *@var{abstime}) ++ ++These two functions act like @code{pthread_mutex_lock} with the ++exception that the call will not wait past time @var{abstime}, as ++reported by @var{clockid} or (for @code{pthread_mutex_timedlock}) ++@code{CLOCK_REALTIME}. If @var{abstime} is reached and the mutex ++still cannot be locked, an @code{ETIMEDOUT} error is returned. ++If the time had already passed when these functions ++are called, and the mutex cannot be immediately locked, the function ++times out immediately. ++@end deftypefun ++ ++@deftypefun int pthread_mutexattr_init (const pthread_mutexattr_t *@var{attr}) ++Initializes @var{attr} with default values. ++@manpagefunctionstub{pthread_mutexattr_init, 3} ++@end deftypefun ++ ++@deftypefun int pthread_mutexattr_destroy (pthread_mutexattr_t *@var{attr}) ++Destroys @var{attr} and releases any resources it may have allocated. ++@manpagefunctionstub{pthread_mutexattr_destroy, 3} ++@end deftypefun ++ ++@deftypefun int pthread_mutexattr_settype (pthread_mutexattr_t *@var{attr}, int @var{kind}) ++This functions allow you to change what kind of mutex a mutex is, by ++changing the attributes used to initialize it. The values for ++@var{kind} are: ++ ++@table @code ++@item PTHREAD_MUTEX_NORMAL ++No attempt to detect deadlock is performed; a thread will deadlock if ++it tries to lock this mutex yet already holds a lock to it. ++Attempting to unlock a mutex not locked by the calling thread results ++in undefined behavior. ++ ++@item PTHREAD_MUTEX_ERRORCHECK ++Attemps to relock a mutex, or unlock a mutex not held, will result in an error. ++ ++@item PTHREAD_MUTEX_RECURSIVE ++Attempts to relock a mutex already held succeed, but require a ++matching number of unlocks to release it. Attempts to unlock a mutex ++not held will result in an error. ++ ++@item PTHREAD_MUTEX_DEFAULT ++Attemps to relock a mutex, or unlock a mutex not held, will result in ++undefined behavior. This is the default. ++ ++@end table ++@end deftypefun ++ ++@deftypefun int pthread_mutexattr_gettype (const pthread_mutexattr_t *@var{attr}, int *@var{kind}) ++This function gets the kind of mutex @var{mutex} is. ++@end deftypefun ++ ++@node POSIX Threads Other APIs ++@subsection POSIX Threads Other APIs ++ ++@deftypefun int pthread_equal (pthread_t @var{thread1}, pthread_t @var{thread2}) ++Compares two thread IDs. If they are the same, returns nonzero, else returns zero. ++@manpagefunctionstub{pthread_equal, 3} ++@end deftypefun ++ ++@deftypefun int pthread_getcpuclockid (pthread_t @var{th}, __clockid_t *@var{clock_id}) ++Get the clock associated with @var{th}. ++@manpagefunctionstub{pthread_getcpuclockid, 3} ++@end deftypefun ++ ++@deftypefun int pthread_once (pthread_once_t *@var{once_control}, void (*@var{init_routine}) (void)) ++Calls @var{init_routine} once for each @var{once_control}, which must ++be statically initalized to @code{PTHREAD_ONCE_INIT}. Subsequent ++calls to @code{pthread_once} with the same @var{once_control} do not ++call @var{init_routine}, even in multi-threaded environments. ++@manpagefunctionstub{pthread_once, 3} ++@end deftypefun ++ ++@deftypefun int pthread_sigmask (int @var{how}, const __sigset_t *@var{newmask}, __sigset_t *@var{oldmask}) ++@manpagefunctionstub{pthread_sigmask, 3} ++@end deftypefun ++ + @node Non-POSIX Extensions + @subsection Non-POSIX Extensions + +@@ -729,8 +1078,10 @@ the standard. + * Default Thread Attributes:: Setting default attributes for + threads in a process. + * Initial Thread Signal Mask:: Setting the initial mask of threads. ++* Thread CPU Affinity:: Limiting which CPUs can run a thread. + * Waiting with Explicit Clocks:: Functions for waiting with an + explicit clock specification. ++* Thread Names:: Changing the name of a thread. + * Single-Threaded:: Detecting single-threaded execution. + * Restartable Sequences:: Linux-specific restartable sequences + integration. +@@ -849,6 +1200,36 @@ signal mask and use @code{pthread_sigmask} to apply it to the thread. + If the signal mask was copied to a heap allocation, the copy should be + freed. + ++@node Thread CPU Affinity ++@subsubsection Thread CPU Affinity ++ ++Processes and threads normally run on any available CPU. However, ++they can be given an @emph{affinity} to one or more CPUs, which limits ++them to the CPU set specified. ++ ++@deftypefun int pthread_attr_setaffinity_np (pthread_attr_t *@var{attr}, size_t @var{cpusetsize}, const cpu_set_t *@var{cpuset}) ++Sets the CPU affinity in @var{attr}. The CPU affinity ++controls which CPUs a thread may execute on. @xref{CPU Affinity}. ++@manpagefunctionstub{pthread_attr_setaffinity_np, 3} ++@end deftypefun ++ ++@deftypefun int pthread_attr_getaffinity_np (const pthread_attr_t *@var{attr}, size_t @var{cpusetsize}, cpu_set_t *@var{cpuset}) ++Gets the CPU affinity settings from @var{attr}. ++@manpagefunctionstub{pthread_attr_getaffinity_np, 3} ++@end deftypefun ++ ++@deftypefun int pthread_setaffinity_np (pthread_t *@var{th}, size_t @var{cpusetsize}, const cpu_set_t *@var{cpuset}) ++Sets the CPU affinity for thread @var{th}. The CPU affinity controls ++which CPUs a thread may execute on. @xref{CPU Affinity}. ++@manpagefunctionstub{pthread_setaffinity_np, 3} ++@end deftypefun ++ ++@deftypefun int pthread_getaffinity_np (const pthread_t *@var{th}, size_t @var{cpusetsize}, cpu_set_t *@var{cpuset}) ++Gets the CPU affinity for thread @var{th}. The CPU affinity controls ++which CPUs a thread may execute on. @xref{CPU Affinity}. ++@manpagefunctionstub{pthread_getaffinity_np, 3} ++@end deftypefun ++ + @node Waiting with Explicit Clocks + @subsubsection Functions for Waiting According to a Specific Clock + +@@ -931,6 +1312,21 @@ Currently, @var{clockid} must be either @code{CLOCK_MONOTONIC} or + The @code{sem_clockwait} function also works using a @code{clockid_t} + argument. @xref{POSIX Semaphores}. + ++@node Thread Names ++@subsubsection Thread Names ++ ++@deftypefun int pthread_setname_np (pthread_t @var{th}, const char *@var{name}) ++Gives thread @var{th} the name @var{name}. This name shows up in ++@code{ps} when it's listing individual threads. @var{name} is a ++NUL-terminated string of no more than 15 non-NUL characters. ++@manpagefunctionstub{pthread_setname_np, 3} ++@end deftypefun ++ ++@deftypefun int pthread_getname_np (pthread_t @var{th}, char *@var{buf}, size_t @var{buflen}) ++Retrieves the name of thread @var{th}. ++@manpagefunctionstub{pthread_getname_np, 3} ++@end deftypefun ++ + @node Single-Threaded + @subsubsection Detecting Single-Threaded Execution + diff --git a/glibc-RHEL-119437-2.patch b/glibc-RHEL-119437-2.patch new file mode 100644 index 0000000..bcb2bb3 --- /dev/null +++ b/glibc-RHEL-119437-2.patch @@ -0,0 +1,231 @@ +commit 21e54f160f6245f959cca1f48bad9cca487c2570 +Author: DJ Delorie +Date: Thu Apr 24 18:03:21 2025 -0400 + + manual: add remaining CPU_* macros + + Adds remaining CPU_* macros, including the CPU_*_S macros + for dynamic-sized cpu sets. + + Reviewed-by: Collin Funk + +diff --git a/manual/resource.texi b/manual/resource.texi +index 685ddd6defc57818..409277d064cc32e1 100644 +--- a/manual/resource.texi ++++ b/manual/resource.texi +@@ -1362,26 +1362,73 @@ extent the Linux kernel interface. + @standards{GNU, sched.h} + This data set is a bitset where each bit represents a CPU. How the + system's CPUs are mapped to bits in the bitset is system dependent. +-The data type has a fixed size; in the unlikely case that the number +-of bits are not sufficient to describe the CPUs of the system a +-different interface has to be used. ++The data type has a fixed size; it is strongly recommended to allocate ++a dynamically sized set based on the actual number of CPUs detected, ++such as via @code{get_nprocs_conf()}, and use the @code{CPU_*_S} ++variants instead of the fixed-size ones. + + This type is a GNU extension and is defined in @file{sched.h}. + @end deftp + +-To manipulate the bitset, to set and reset bits, a number of macros are +-defined. Some of the macros take a CPU number as a parameter. Here +-it is important to never exceed the size of the bitset. The following +-macro specifies the number of bits in the @code{cpu_set_t} bitset. ++To manipulate the bitset, to set and reset bits, and thus add and ++remove CPUs from the sets, a number of macros are defined. Some of ++the macros take a CPU number as a parameter. Here it is important to ++never exceed the size of the bitset, either @code{CPU_SETSIZE} for ++fixed sets or the allocated size for dynamic sets. For each macro ++there is a fixed-size version (documented below) and a dynamic-sized ++version (with a @code{_S} suffix). + + @deftypevr Macro int CPU_SETSIZE + @standards{GNU, sched.h} + The value of this macro is the maximum number of CPUs which can be +-handled with a @code{cpu_set_t} object. ++handled with a fixed @code{cpu_set_t} object. + @end deftypevr + ++For applications that require CPU sets larger than the built-in size, ++a set of macros that support dynamically-sized sets are defined. ++ ++@deftypefn Macro size_t CPU_ALLOC_SIZE (size_t @var{count}) ++@standards{GNU, sched.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@c CPU_ALLOC_SIZE ok ++@c __CPU_ALLOC_SIZE ok ++Given a count of CPUs to hold, returns the size of the set to ++allocate. This return value is appropriate to be used in the *_S macros. ++ ++This macro is a GNU extension and is defined in @file{sched.h}. ++@end deftypefn ++ ++@deftypefn Macro {cpu_set_t *} CPU_ALLOC (size_t @var{count}) ++@standards{GNU, sched.h} ++@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{} @acsmem{}}} ++@c CPU_ALLOC ++@c __CPU_ALLOC ++@c __sched_cpualloc ++@c malloc ++Given the count of CPUs to hold, returns a set large enough to hold ++them; that is, the resulting set will be valid for CPUs numbered 0 ++through @var{count}-1, inclusive. This set must be freed via ++@code{CPU_FREE} to avoid memory leaks. Warning: the argument is the ++CPU @emph{count} and not the size returned by @code{CPU_ALLOC_SIZE}. ++ ++This macro is a GNU extension and is defined in @file{sched.h}. ++@end deftypefn ++ ++@deftypefn Macro void CPU_FREE (cpu_set_t *@var{set}) ++@standards{GNU, sched.h} ++@safety{@prelim{}@mtsafe{}@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{} @acsmem{}}} ++@c CPU_FREE ++@c __CPU_FREE ++@c __sched_cpufree ++@c free ++Frees a CPU set previously allocated by @code{CPU_ALLOC}. ++ ++This macro is a GNU extension and is defined in @file{sched.h}. ++@end deftypefn ++ + The type @code{cpu_set_t} should be considered opaque; all +-manipulation should happen via the next four macros. ++manipulation should happen via the @code{CPU_*} macros described ++below. + + @deftypefn Macro void CPU_ZERO (cpu_set_t *@var{set}) + @standards{GNU, sched.h} +@@ -1424,6 +1471,39 @@ evaluated more than once. + This macro is a GNU extension and is defined in @file{sched.h}. + @end deftypefn + ++@deftypefn Macro {cpu_set_t *} CPU_AND (cpu_set_t *@var{dest}, cpu_set_t *@var{src1}, cpu_set_t *@var{src2}) ++@standards{GNU, sched.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@c CPU_AND ok ++@c __CPU_OP_S ok ++This macro populates @var{dest} with only those CPUs included in both ++@var{src1} and @var{src2}. Its value is @var{dest}. ++ ++This macro is a GNU extension and is defined in @file{sched.h}. ++@end deftypefn ++ ++@deftypefn Macro {cpu_set_t *} CPU_OR (cpu_set_t *@var{dest}, cpu_set_t *@var{src1}, cpu_set_t *@var{src2}) ++@standards{GNU, sched.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@c CPU_OR ok ++@c __CPU_OP_S ok ++This macro populates @var{dest} with those CPUs included in either ++@var{src1} or @var{src2}. Its value is @var{dest}. ++ ++This macro is a GNU extension and is defined in @file{sched.h}. ++@end deftypefn ++ ++@deftypefn Macro {cpu_set_t *} CPU_XOR (cpu_set_t *@var{dest}, cpu_set_t *@var{src1}, cpu_set_t *@var{src2}) ++@standards{GNU, sched.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@c CPU_XOR ok ++@c __CPU_OP_S ok ++This macro populates @var{dest} with those CPUs included in either ++@var{src1} or @var{src2}, but not both. Its value is @var{dest}. ++ ++This macro is a GNU extension and is defined in @file{sched.h}. ++@end deftypefn ++ + @deftypefn Macro int CPU_ISSET (int @var{cpu}, const cpu_set_t *@var{set}) + @standards{GNU, sched.h} + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +@@ -1440,6 +1520,54 @@ evaluated more than once. + This macro is a GNU extension and is defined in @file{sched.h}. + @end deftypefn + ++@deftypefn Macro int CPU_COUNT (const cpu_set_t *@var{set}) ++@standards{GNU, sched.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@c CPU_COUNT ok ++@c __CPU_COUNT_S ok ++@c __sched_cpucount ok ++@c countbits ok ++This macro returns the count of CPUs (bits) set in @var{set}. ++ ++This macro is a GNU extension and is defined in @file{sched.h}. ++@end deftypefn ++ ++@deftypefn Macro int CPU_EQUAL (cpu_set_t *@var{src1}, cpu_set_t *@var{src2}) ++@standards{GNU, sched.h} ++@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} ++@c CPU_EQUAL ok ++@c __CPU_EQUAL_S ok ++@c memcmp ok ++This macro returns nonzero if the two sets @var{set1} and @var{set2} ++have the same contents; that is, the set of CPUs represented by both ++sets is identical. ++ ++This macro is a GNU extension and is defined in @file{sched.h}. ++@end deftypefn ++ ++@deftypefn Macro void CPU_ZERO_S (size_t @var{size}, cpu_set_t *@var{set}) ++@end deftypefn ++@deftypefn Macro void CPU_SET_S (int @var{cpu}, size_t @var{size}, cpu_set_t *@var{set}) ++@end deftypefn ++@deftypefn Macro void CPU_CLR_S (int @var{cpu}, size_t @var{size}, cpu_set_t *@var{set}) ++@end deftypefn ++@deftypefn Macro {cpu_set_t *} CPU_AND_S (size_t @var{size}, cpu_set_t *@var{dest}, cpu_set_t *@var{src1}, cpu_set_t *@var{src2}) ++@end deftypefn ++@deftypefn Macro {cpu_set_t *} CPU_OR_S (size_t @var{size}, cpu_set_t *@var{dest}, cpu_set_t *@var{src1}, cpu_set_t *@var{src2}) ++@end deftypefn ++@deftypefn Macro {cpu_set_t *} CPU_XOR_S (size_t @var{size}, cpu_set_t *@var{dest}, cpu_set_t *@var{src1}, cpu_set_t *@var{src2}) ++@end deftypefn ++@deftypefn Macro int CPU_ISSET_S (int @var{cpu}, size_t @var{size}, const cpu_set_t *@var{set}) ++@end deftypefn ++@deftypefn Macro int CPU_COUNT_S (size_t @var{size}, const cpu_set_t *@var{set}) ++@end deftypefn ++@deftypefn Macro int CPU_EQUAL_S (size_t @var{size}, cpu_set_t *@var{src1}, cpu_set_t *@var{src2}) ++@end deftypefn ++ ++Each of these macros performs the same action as its non-@code{_S} variant, ++but takes a @var{size} argument to specify the set size. This ++@var{size} argument is as returned by the @code{CPU_ALLOC_SIZE} macro, ++defined above. + + CPU bitsets can be constructed from scratch or the currently installed + affinity mask can be retrieved from the system. +@@ -1525,6 +1653,37 @@ The operating system does not support this function. + This function is Linux-specific and is declared in @file{sched.h}. + @end deftypefun + ++Here's an example of how to use most of the above to limit the number ++of CPUs a process runs on, not including error handling or good logic ++on CPU choices: ++ ++@example ++#define _GNU_SOURCE ++#include ++#include ++#include ++void ++limit_cpus (void) ++@{ ++ unsigned int mycpu; ++ size_t nproc, cssz, cpu; ++ cpu_set_t *cs; ++ getcpu (&mycpu, NULL); ++ nproc = get_nprocs_conf (); ++ cssz = CPU_ALLOC_SIZE (nproc); ++ cs = CPU_ALLOC (nproc); ++ sched_getaffinity (0, cssz, cs); ++ if (CPU_COUNT_S (cssz, cs) > nproc / 2) ++ @{ ++ for (cpu = nproc / 2; cpu < nproc; cpu ++) ++ if (cpu != mycpu) ++ CPU_CLR_S (cpu, cssz, cs); ++ sched_setaffinity (0, cssz, cs); ++ @} ++ CPU_FREE (cs); ++@} ++@end example ++ + @node Memory Resources + @section Querying memory available resources + diff --git a/glibc-RHEL-119437-3.patch b/glibc-RHEL-119437-3.patch new file mode 100644 index 0000000..cab120c --- /dev/null +++ b/glibc-RHEL-119437-3.patch @@ -0,0 +1,35 @@ +commit 579f8668816b35f8302e89e5255aff60b81938df +Author: DJ Delorie +Date: Thu May 15 16:38:11 2025 -0400 + + manual: add sched_getcpu() + + Reviewed-by: Collin Funk + +diff --git a/manual/resource.texi b/manual/resource.texi +index 409277d064cc32e1..824db78a97b8f387 100644 +--- a/manual/resource.texi ++++ b/manual/resource.texi +@@ -1653,6 +1653,22 @@ The operating system does not support this function. + This function is Linux-specific and is declared in @file{sched.h}. + @end deftypefun + ++@deftypefun int sched_getcpu (void) ++@standards{Linux, } ++ ++Similar to @code{getcpu} but with a simpler interface. On success, ++returns a nonnegative number identifying the CPU on which the current ++thread is running. Returns @code{-1} on failure. The following ++@code{errno} error condition is defined for this function: ++ ++@table @code ++@item ENOSYS ++The operating system does not support this function. ++@end table ++ ++This function is Linux-specific and is declared in @file{sched.h}. ++@end deftypefun ++ + Here's an example of how to use most of the above to limit the number + of CPUs a process runs on, not including error handling or good logic + on CPU choices: diff --git a/glibc-RHEL-119438-1.patch b/glibc-RHEL-119438-1.patch new file mode 100644 index 0000000..bc4b43b --- /dev/null +++ b/glibc-RHEL-119438-1.patch @@ -0,0 +1,28 @@ +commit 39183f47d8bc9eda711c9797b18d69d7a02af91c +Author: Florian Weimer +Date: Wed Jan 8 16:55:31 2025 +0100 + + elf: Minimize library dependencies of tst-nolink-libc.c + + On 32-bit Arm, -fasynchronous-unwind-tables creates a reference + to the symbol __aeabi_unwind_cpp_pr0. Compile the tests without + this flag even if it is passed as part of CC, to avoid linker + failures. + +diff --git a/elf/Makefile b/elf/Makefile +index 576d28fdbe60e19b..13ef1205667abcd4 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -3275,8 +3275,10 @@ $(objpfx)tst-hash-collision3: $(objpfx)tst-hash-collision3-mod.so + # a port adds them to the tests variables. Neither test variant is + # linked against libc.so, but tst-nolink-libc-1 is linked against + # ld.so. The test is always run directly, not under the dynamic +-# linker. +-CFLAGS-tst-nolink-libc.c += $(no-stack-protector) ++# linker. It is necessary to minimize run-time dependencies, by ++# disabling stack protection and unwinding. ++CFLAGS-tst-nolink-libc.c += $(no-stack-protector) \ ++ -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables + $(objpfx)tst-nolink-libc-1: $(objpfx)tst-nolink-libc.o $(objpfx)ld.so + $(LINK.o) -nostdlib -nostartfiles -o $@ $< \ + -Wl,--dynamic-linker=$(objpfx)ld.so,--no-as-needed $(objpfx)ld.so diff --git a/glibc-RHEL-119438-2.patch b/glibc-RHEL-119438-2.patch new file mode 100644 index 0000000..7eb4adb --- /dev/null +++ b/glibc-RHEL-119438-2.patch @@ -0,0 +1,27 @@ +commit d30f41d2c9031b0540641af692e56002eab5599f +Author: Florian Weimer +Date: Thu Jun 26 11:38:00 2025 +0200 + + elf: Add missing DSO dependencies for tst-rtld-no-malloc-{audit,preload} + + Fixes commit c1560f3f75c0e892b5522c16f91b4e303f677094 + ("elf: Switch to main malloc after final ld.so self-relocation"). + + Reviewed-by: Frédéric Bérat + +diff --git a/elf/Makefile b/elf/Makefile +index 13ef1205667abcd4..cf54ea084489b9cf 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -3245,9 +3245,11 @@ $(objpfx)tst-dlopen-auditdup.out: \ + + # Reuse an audit module which provides ample debug logging. + tst-rtld-no-malloc-audit-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so ++$(objpfx)tst-rtld-no-malloc-audit.out: $(objpfx)tst-auditmod1.so + + # Any shared object should do. + tst-rtld-no-malloc-preload-ENV = LD_PRELOAD=$(objpfx)tst-auditmod1.so ++$(objpfx)tst-rtld-no-malloc-preload.out: $(objpfx)tst-auditmod1.so + + LDFLAGS-tst-hash-collision1-mod.so = -Wl,--hash-style=both + $(objpfx)tst-hash-collision1: $(objpfx)tst-hash-collision1-mod.so diff --git a/glibc-RHEL-119451-1.patch b/glibc-RHEL-119451-1.patch new file mode 100644 index 0000000..f829d9a --- /dev/null +++ b/glibc-RHEL-119451-1.patch @@ -0,0 +1,65 @@ +commit e7b90e6e605cf236d4bd79e4930cd6a46f9932c7 +Author: Paul Eggert +Date: Thu Feb 1 11:52:46 2024 -0800 + + stdlib: fix qsort example in manual + + * manual/search.texi (Comparison Functions, Array Sort Function): + Sort an array of long ints, not doubles, to avoid hassles + with NaNs. + + Reviewed-by: Siddhesh Poyarekar + +diff --git a/manual/search.texi b/manual/search.texi +index ffaadc46f51b18f9..db577a5332651c36 100644 +--- a/manual/search.texi ++++ b/manual/search.texi +@@ -35,19 +35,22 @@ second, zero if they are ``equal'', and positive if the first argument + is ``greater''. + + Here is an example of a comparison function which works with an array of +-numbers of type @code{double}: ++numbers of type @code{long int}: + + @smallexample + int +-compare_doubles (const void *a, const void *b) ++compare_long_ints (const void *a, const void *b) + @{ +- const double *da = (const double *) a; +- const double *db = (const double *) b; ++ const long int *la = a; ++ const long int *lb = b; + +- return (*da > *db) - (*da < *db); ++ return (*la > *lb) - (*la < *lb); + @} + @end smallexample + ++(The code would have to be more complicated for an array of @code{double}, ++to handle NaNs correctly.) ++ + The header file @file{stdlib.h} defines a name for the data type of + comparison functions. This type is a GNU extension. + +@@ -183,16 +186,16 @@ in the array before making some comparisons. The only way to perform + a stable sort with @code{qsort} is to first augment the objects with a + monotonic counter of some kind. + +-Here is a simple example of sorting an array of doubles in numerical ++Here is a simple example of sorting an array of @code{long int} in numerical + order, using the comparison function defined above (@pxref{Comparison + Functions}): + + @smallexample + @{ +- double *array; +- int size; ++ long int *array; ++ size_t nmemb; + @dots{} +- qsort (array, size, sizeof (double), compare_doubles); ++ qsort (array, nmemb, sizeof *array, compare_long_ints); + @} + @end smallexample + diff --git a/glibc-RHEL-119451-2.patch b/glibc-RHEL-119451-2.patch new file mode 100644 index 0000000..c14d359 --- /dev/null +++ b/glibc-RHEL-119451-2.patch @@ -0,0 +1,142 @@ +commit 57581acd9559217e859fdac693145ce6399f4d70 +Author: Paul Eggert +Date: Sat Apr 6 08:44:01 2024 -0700 + + Fix bsearch, qsort doc to match POSIX better + + * manual/search.texi (Array Search Function): + Correct the statement about lfind’s mean runtime: + it is proportional to a number (not that number), + and this is true only if random elements are searched for. + Relax the constraint on bsearch’s array argument: + POSIX says it need not be sorted, only partially sorted. + Say that the first arg passed to bsearch’s comparison function + is the key, and the second arg is an array element, as + POSIX requires. For bsearch and qsort, say that the + comparison function should not alter the array, as POSIX + requires. For qsort, say that the comparison function + must define a total order, as POSIX requires, that + it should not depend on element addresses, that + the original array index can be used for stable sorts, + and that if qsort still works if memory allocation fails. + Be more consistent in calling the array elements + “elements” rather than “objects”. + + Co-authored-by: Zack Weinberg + +diff --git a/manual/search.texi b/manual/search.texi +index db577a5332651c36..cb08c494092ef77f 100644 +--- a/manual/search.texi ++++ b/manual/search.texi +@@ -84,8 +84,9 @@ The return value is a pointer to the matching element in the array + starting at @var{base} if it is found. If no matching element is + available @code{NULL} is returned. + +-The mean runtime of this function is @code{*@var{nmemb}}/2. This +-function should only be used if elements often get added to or deleted from ++The mean runtime of this function is proportional to @code{*@var{nmemb}/2}, ++assuming random elements of the array are searched for. This ++function should be used only if elements often get added to or deleted from + the array in which case it might not be useful to sort the array before + searching. + @end deftypefun +@@ -122,26 +123,34 @@ bytes. If one is sure the element is in the array it is better to use + calling @code{lsearch}. + @end deftypefun + +-To search a sorted array for an element matching the key, use the +-@code{bsearch} function. The prototype for this function is in ++To search a sorted or partially sorted array for an element matching the key, ++use the @code{bsearch} function. The prototype for this function is in + the header file @file{stdlib.h}. + @pindex stdlib.h + + @deftypefun {void *} bsearch (const void *@var{key}, const void *@var{array}, size_t @var{count}, size_t @var{size}, comparison_fn_t @var{compare}) + @standards{ISO, stdlib.h} + @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +-The @code{bsearch} function searches the sorted array @var{array} for an object ++The @code{bsearch} function searches @var{array} for an element + that is equivalent to @var{key}. The array contains @var{count} elements, + each of which is of size @var{size} bytes. + + The @var{compare} function is used to perform the comparison. This +-function is called with two pointer arguments and should return an ++function is called with arguments that point to the key and to an ++array element, in that order, and should return an + integer less than, equal to, or greater than zero corresponding to +-whether its first argument is considered less than, equal to, or greater +-than its second argument. The elements of the @var{array} must already +-be sorted in ascending order according to this comparison function. +- +-The return value is a pointer to the matching array element, or a null ++whether the key is considered less than, equal to, or greater than ++the array element. The function should not alter the array's contents, ++and the same array element should always compare the same way with the key. ++ ++Although the array need not be completely sorted, it should be ++partially sorted with respect to @var{key}. That is, the array should ++begin with elements that compare less than @var{key}, followed by ++elements that compare equal to @var{key}, and ending with elements ++that compare greater than @var{key}. Any or all of these element ++sequences can be empty. ++ ++The return value is a pointer to a matching array element, or a null + pointer if no match is found. If the array contains more than one element + that matches, the one that is returned is unspecified. + +@@ -171,20 +180,22 @@ array elements. This function is called with two pointer arguments and + should return an integer less than, equal to, or greater than zero + corresponding to whether its first argument is considered less than, + equal to, or greater than its second argument. ++The function must not alter the array's contents, and must define a ++total ordering on the array elements, including any unusual values ++such as floating-point NaN (@pxref{Infinity and NaN}). ++Because the sorting process can move elements, ++the function's return value must not depend on the element addresses ++or the relative positions of elements within the array, ++as these are meaningless while @code{qsort} is running. + + @cindex stable sorting +-@strong{Warning:} If two objects compare as equal, their order after ++@strong{Warning:} If two elements compare equal, their order after + sorting is unpredictable. That is to say, the sorting is not stable. + This can make a difference when the comparison considers only part of +-the elements. Two elements with the same sort key may differ in other +-respects. +- +-Although the object addresses passed to the comparison function lie +-within the array, they need not correspond with the original locations +-of those objects because the sorting algorithm may swap around objects +-in the array before making some comparisons. The only way to perform +-a stable sort with @code{qsort} is to first augment the objects with a +-monotonic counter of some kind. ++the elements and two elements that compare equal may differ in other ++respects. To ensure a stable sort in this situation, you can augment ++each element with an appropriate tie-breaking value, such as its ++original array index. + + Here is a simple example of sorting an array of @code{long int} in numerical + order, using the comparison function defined above (@pxref{Comparison +@@ -202,18 +213,19 @@ Functions}): + The @code{qsort} function derives its name from the fact that it was + originally implemented using the ``quick sort'' algorithm. + +-The implementation of @code{qsort} attempts to allocate auxiliary storage ++The implementation of @code{qsort} attempts to allocate auxiliary memory + and use the merge sort algorithm, without violating C standard requirement + that arguments passed to the comparison function point within the array. ++If the memory allocation fails, @code{qsort} resorts to a slower algorithm. + @end deftypefun + + @node Search/Sort Example + @section Searching and Sorting Example + + Here is an example showing the use of @code{qsort} and @code{bsearch} +-with an array of structures. The objects in the array are sorted ++with an array of structures. The elements of the array are sorted + by comparing their @code{name} fields with the @code{strcmp} function. +-Then, we can look up individual objects based on their names. ++Then, we can look up individual elements based on their names. + + @comment This example is dedicated to the memory of Jim Henson. RIP. + @smallexample diff --git a/glibc-RHEL-119451-3.patch b/glibc-RHEL-119451-3.patch new file mode 100644 index 0000000..f2e1eb2 --- /dev/null +++ b/glibc-RHEL-119451-3.patch @@ -0,0 +1,27 @@ +commit 7eed691cc2b6c5dbb6066ee1251606a744c7f05c +Author: Arjun Shankar +Date: Wed Jul 2 17:11:32 2025 +0200 + + stdlib/Makefile: Remove deleted test's libm dependency + + tst-qsort5 was deleted in 709fbd3ec3595f2d1076b4fec09a739327459288. + Therefore remove its redundant libm dependency. + + Reviewed-by: Florian Weimer + +Conflicts: + stdlib/Makefile + (Fixup context) + +diff --git a/stdlib/Makefile b/stdlib/Makefile +index fe663f3bb8ee1e00..81bdce4f6d90d291 100644 +--- a/stdlib/Makefile ++++ b/stdlib/Makefile +@@ -635,7 +635,6 @@ $(objpfx)tst-setcontext3.out: tst-setcontext3.sh $(objpfx)tst-setcontext3 + $(common-objpfx)stdlib/; \ + $(evaluate-test) + +-$(objpfx)tst-qsort5: $(libm) + $(objpfx)tst-getrandom2: $(shared-thread-library) + $(objpfx)tst-getenv-signal: $(shared-thread-library) + $(objpfx)tst-getenv-thread: $(shared-thread-library) diff --git a/glibc-RHEL-119657-1.patch b/glibc-RHEL-119657-1.patch new file mode 100644 index 0000000..35838c8 --- /dev/null +++ b/glibc-RHEL-119657-1.patch @@ -0,0 +1,281 @@ +commit 480660e270057e40381fd6d4c47f89116415928e +Author: Florian Weimer +Date: Thu Sep 18 19:11:38 2025 +0200 + + support: Add support_accept_oom to heuristically support OOM errors + + Some tests may trigger the kernel OOM handler under conditions + which are difficult to predict (depending on available RAM and + swap space). If we can determine specific regions which might + do this and this does not contradict the test object, the + functions support_accept_oom (true) and support_accept_oom (false) + can be called at the start and end, and the test driver will + ignore SIGKILL signals. + + Reviewed-by: Carlos O'Donell + +diff --git a/support/Makefile b/support/Makefile +index 6809c234e9314163..af3f69f5df76e6f9 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -322,6 +322,7 @@ tests = \ + tst-support-open-dev-null-range \ + tst-support-openpty \ + tst-support-process_state \ ++ tst-support_accept_oom \ + tst-support_blob_repeat \ + tst-support_capture_subprocess \ + tst-support_descriptors \ +diff --git a/support/check.h b/support/check.h +index 8f41e5b99fc17472..757b83221fddbe40 100644 +--- a/support/check.h ++++ b/support/check.h +@@ -196,9 +196,11 @@ void support_test_compare_string_wide (const wchar_t *left, + const char *left_expr, + const char *right_expr); + +-/* Internal function called by the test driver. */ ++/* Internal functions called by the test driver. */ + int support_report_failure (int status) + __attribute__ ((weak, warn_unused_result)); ++int support_is_oom_accepted (void) ++ __attribute__ ((weak, warn_unused_result)); + + /* Internal function used to test the failure recording framework. */ + void support_record_failure_reset (void); +diff --git a/support/support.h b/support/support.h +index 1a77f7979330d60c..2717e5583add690b 100644 +--- a/support/support.h ++++ b/support/support.h +@@ -239,6 +239,15 @@ int support_open_dev_null_range (int num, int flags, mode_t mode); + /* Check if kernel supports set VMA range name. */ + extern bool support_set_vma_name_supported (void); + ++/* If invoked with a true argument, it instructs the supervising ++ process to ignore unexpected termination of the test process, ++ likely due to an OOM error. (This can theoretically mask other ++ test errors, so it should be used sparingly.) ++ ++ If invoked with a false argument, the default behavior is restored, ++ and OOM-induced errors result in test failure. */ ++void support_accept_oom (bool); ++ + __END_DECLS + + #endif /* SUPPORT_H */ +diff --git a/support/support_record_failure.c b/support/support_record_failure.c +index 72ee2b232fb2b08c..7b0db19ed6bcaa7e 100644 +--- a/support/support_record_failure.c ++++ b/support/support_record_failure.c +@@ -31,6 +31,10 @@ + failure is detected, so that even if the counter wraps around to + zero, the failure of a test can be detected. + ++ If the accept_oom member is not zero, the supervisor process will ++ use heuristics to suppress process termination due to OOM ++ conditions. ++ + The init constructor function below puts *state on a shared + anonymous mapping, so that failure reports from subprocesses + propagate to the parent process. */ +@@ -38,6 +42,7 @@ struct test_failures + { + unsigned int counter; + unsigned int failed; ++ unsigned int accept_oom; + }; + static struct test_failures *state; + +@@ -122,3 +127,34 @@ support_record_failure_barrier (void) + exit (1); + } + } ++ ++void ++support_accept_oom (bool onoff) ++{ ++ if (onoff) ++ { ++ /* One thread detects the overflow. */ ++ if (__atomic_fetch_add (&state->accept_oom, 1, __ATOMIC_RELAXED) ++ == UINT_MAX) ++ { ++ puts ("error: OOM acceptance counter overflow"); ++ exit (1); ++ } ++ } ++ else ++ { ++ /* One thread detects the underflow. */ ++ if (__atomic_fetch_add (&state->accept_oom, -1, __ATOMIC_RELAXED) ++ == 0) ++ { ++ puts ("error: OOM acceptance counter underflow"); ++ exit (1); ++ } ++ } ++} ++ ++int ++support_is_oom_accepted (void) ++{ ++ return __atomic_load_n (&state->accept_oom, __ATOMIC_RELAXED) != 0; ++} +diff --git a/support/support_test_main.c b/support/support_test_main.c +index cca82d8d820f9360..85f885165c528989 100644 +--- a/support/support_test_main.c ++++ b/support/support_test_main.c +@@ -264,6 +264,20 @@ adjust_exit_status (int status) + return status; + } + ++/* Return true if the exit status looks like it may have been ++ triggered by kernel OOM handling, and support_accept_oom (true) was ++ active in the test process. This is a very approximate check. ++ Unfortunately, the SI_KERNEL value for si_code in siginfo_t is not ++ observable via waitid (it gets translated to CLD_KILLED. */ ++static bool ++accept_oom_heuristic (int status) ++{ ++ return (WIFSIGNALED (status) ++ && WTERMSIG (status) == SIGKILL ++ && support_is_oom_accepted != NULL ++ && support_is_oom_accepted ()); ++} ++ + int + support_test_main (int argc, char **argv, const struct test_config *config) + { +@@ -497,6 +511,11 @@ support_test_main (int argc, char **argv, const struct test_config *config) + /* Process was killed by timer or other signal. */ + else + { ++ if (accept_oom_heuristic (status)) ++ { ++ puts ("Heuristically determined OOM termination; SIGKILL ignored"); ++ exit (adjust_exit_status (EXIT_UNSUPPORTED)); ++ } + if (config->expected_signal == 0) + { + printf ("Didn't expect signal from child: got `%s'\n", +diff --git a/support/tst-support_accept_oom.c b/support/tst-support_accept_oom.c +new file mode 100644 +index 0000000000000000..42a4328cbc60764d +--- /dev/null ++++ b/support/tst-support_accept_oom.c +@@ -0,0 +1,115 @@ ++/* Test that OOM error suppression works. ++ Copyright (C) 2025 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 ++ . */ ++ ++/* This test reacts to the reject_oom and inject_error environment ++ variables. It is never executed automatically because it can run ++ for a very long time on large systems, and is generally stressful ++ to the system. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* If true, support_accept_oom is called. */ ++static bool accept_oom; ++ ++/* System page size. Allocations are always at least that large. */ ++static size_t page_size; ++ ++/* All allocated bytes. */ ++static size_t total_bytes; ++ ++/* Try to allocate SIZE bytes of memory, and ensure that is backed by ++ actual memory. */ ++static bool ++populate_memory (size_t size) ++{ ++ TEST_COMPARE (size % page_size, 0); ++ char *ptr = mmap (NULL, size, PROT_READ | PROT_WRITE, ++ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); ++ if (ptr == MAP_FAILED) ++ return false; ++ ++ if (accept_oom) ++ support_accept_oom (true); ++ ++ /* Ensure that the kernel allocates backing storage. Make the pages ++ distinct using the total_bytes counter. */ ++ for (size_t offset = 0; offset < size; offset += page_size) ++ { ++ memcpy (ptr + offset, &total_bytes, sizeof (total_bytes)); ++ total_bytes += page_size; ++ } ++ ++ if (accept_oom) ++ support_accept_oom (false); ++ ++ return true; ++} ++ ++static int ++do_test (void) ++{ ++ if (getenv ("oom_test_active") == NULL) ++ { ++ puts ("info: This test does nothing by default."); ++ puts ("info: Set the oom_test_active environment variable to enable it."); ++ puts ("info: Consider testing with inject_error and reject_oom as well."); ++ return 0; ++ } ++ ++ accept_oom = getenv ("reject_oom") == NULL; ++ ++ page_size = sysconf (_SC_PAGESIZE); ++ size_t size = page_size; ++ ++ /* The environment variable can be set to trigger a test failure. ++ The OOM event should not obscure this error. */ ++ TEST_COMPARE_STRING (getenv ("inject_error"), NULL); ++ ++ /* Grow the allocation until allocation fails. */ ++ while (true) ++ { ++ size_t new_size = 2 * size; ++ if (new_size == 0 || !populate_memory (new_size)) ++ break; ++ size = new_size; ++ } ++ ++ while (true) ++ { ++ if (!populate_memory (size)) ++ { ++ /* Decrease size and see if the allocation succeeds. */ ++ size /= 2; ++ if (size < page_size) ++ FAIL_UNSUPPORTED ("could not trigger OOM" ++ " after allocating %zu bytes", ++ total_bytes); ++ } ++ } ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-119657-2.patch b/glibc-RHEL-119657-2.patch new file mode 100644 index 0000000..01145d9 --- /dev/null +++ b/glibc-RHEL-119657-2.patch @@ -0,0 +1,30 @@ +commit 855a67c3cc81be4fc806c66e3e01b53e352a4e9f +Author: Florian Weimer +Date: Thu Sep 18 19:11:38 2025 +0200 + + stdlib: Use support_accept_oom in test-bz22786 + + The realpath call may trigger OOM termination of the test process + under difficult-to-predict circumstances. (It depends on available + RAM and swap.) Therefore, instruct the test driver to ignore + an OOM process termination during the realpath call. + + Reviewed-by: Carlos O'Donell + +diff --git a/stdlib/test-bz22786.c b/stdlib/test-bz22786.c +index 37bd63ec7141c61c..16a8f2edf22deefa 100644 +--- a/stdlib/test-bz22786.c ++++ b/stdlib/test-bz22786.c +@@ -60,8 +60,11 @@ do_test (void) + *(p++) = '/'; + p[path_len - (p - path) - 1] = '\0'; + +- /* This call crashes before the fix for bz22786 on 32-bit platforms. */ ++ /* This call crashes before the fix for bz22786 on 32-bit platforms. ++ It may trigger an OOM event. */ ++ support_accept_oom (true); + p = realpath (path, NULL); ++ support_accept_oom (false); + TEST_VERIFY (p == NULL); + /* For 64-bit platforms readlink return ENAMETOOLONG, while for 32-bit + realpath will try to allocate a buffer larger than PTRDIFF_MAX. */ diff --git a/glibc-RHEL-121108-1.patch b/glibc-RHEL-121108-1.patch new file mode 100644 index 0000000..49e2890 --- /dev/null +++ b/glibc-RHEL-121108-1.patch @@ -0,0 +1,287 @@ +commit c0c9524a11c56889ec5b1de2e0b78112f2ebc0b7 +Author: Adhemerval Zanella +Date: Fri Oct 3 16:38:53 2025 -0300 + + Update PIDFD_* constants for Linux 6.17 + + The pidfd interface was extended with: + + * PIDFD_GET_INFO and pidfd_info (along with related extra flags) to + allow get information about the process without the need to parse + /proc (commit cdda1f26e74ba, Linux 6.13). + + * PIDFD_SELF_{THREAD,THREAD_GROUP,SELF,SELF_PROCESS} to allow + pidfd_send_signal refer to the own process or thread lead groups + without the need of allocating a file descriptor (commit f08d0c3a71114, + Linux 6.15). + + * PIDFD_INFO_COREDUMP that extends PIDFD_GET_INFO to obtain coredump + information. + + Linux uAPI header defines both PIDFD_SELF_THREAD and + PIDFD_SELF_THREAD_GROUP on linux/fcntl.h (since they reserve part of the + AT_* values), however for glibc I do not see any good reason to add pidfd + definitions on fcntl-linux.h. + + The tst-pidfd.c is extended with some PIDFD_SELF_* tests and a new + ‘tst-pidfd_getinfo.c’ test is added to check PIDFD_GET_INFO. The + PIDFD_INFO_COREDUMP tests would require very large and complex tests + that are already covered by kernel tests. + + Checked on aarch64-linux-gnu and x86_64-linux-gnu on kernels 6.8 and + 6.17. + Reviewed-by: Carlos O'Donell + +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index a28b15ea16bc5045..ddc6f98001b2f4ae 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -224,6 +224,7 @@ tests += \ + tst-ofdlocks \ + tst-personality \ + tst-pidfd \ ++ tst-pidfd_getinfo \ + tst-pidfd_getpid \ + tst-pkey \ + tst-ppoll \ +diff --git a/sysdeps/unix/sysv/linux/sys/pidfd.h b/sysdeps/unix/sysv/linux/sys/pidfd.h +index 85d976939b6f01fa..8644f102c4576780 100644 +--- a/sysdeps/unix/sysv/linux/sys/pidfd.h ++++ b/sysdeps/unix/sysv/linux/sys/pidfd.h +@@ -42,6 +42,64 @@ + #define PIDFD_GET_USER_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 9) + #define PIDFD_GET_UTS_NAMESPACE _IO(PIDFS_IOCTL_MAGIC, 10) + ++/* Sentinels to avoid allocating a file descriptor to refer to own process. */ ++#define PIDFD_SELF_THREAD -10000 ++#define PIDFD_SELF_THREAD_GROUP -10001 ++#define PIDFD_SELF PIDFD_SELF_THREAD ++#define PIDFD_SELF_PROCESS PIDFD_SELF_THREAD_GROUP ++ ++ ++/* Flags for pidfd_info. */ ++ ++/* Always returned, even if not requested */ ++#define PIDFD_INFO_PID (1UL << 0) ++/* Always returned, even if not requested */ ++#define PIDFD_INFO_CREDS (1UL << 1) ++/* Always returned if available, even if not requested */ ++#define PIDFD_INFO_CGROUPID (1UL << 2) ++/* Only returned if requested. */ ++#define PIDFD_INFO_EXIT (1UL << 3) ++/* Only returned if requested. */ ++#define PIDFD_INFO_COREDUMP (1UL << 4) ++ ++ ++/* Value for coredump_mask in pidfd_info. Only valid if PIDFD_INFO_COREDUMP ++ is set in mask. */ ++ ++/* Did crash and... */ ++#define PIDFD_COREDUMPED (1U << 0) ++/* coredumping generation was skipped. */ ++#define PIDFD_COREDUMP_SKIP (1U << 1) ++/* coredump was done as the user. */ ++#define PIDFD_COREDUMP_USER (1U << 2) ++/* coredump was done as root. */ ++#define PIDFD_COREDUMP_ROOT (1U << 3) ++ ++struct pidfd_info ++{ ++ __uint64_t mask; ++ __uint64_t cgroupid; ++ __uint32_t pid; ++ __uint32_t tgid; ++ __uint32_t ppid; ++ __uint32_t ruid; ++ __uint32_t rgid; ++ __uint32_t euid; ++ __uint32_t egid; ++ __uint32_t suid; ++ __uint32_t sgid; ++ __uint32_t fsuid; ++ __uint32_t fsgid; ++ __int32_t exit_code; ++ __uint32_t coredump_mask; ++ __uint32_t __spare1; ++}; ++ ++/* sizeof first published struct */ ++#define PIDFD_INFO_SIZE_VER0 64 ++ ++#define PIDFD_GET_INFO _IOWR(PIDFS_IOCTL_MAGIC, 11, struct pidfd_info) ++ + /* Returns a file descriptor that refers to the process PID. The + close-on-exec is set on the file descriptor. */ + extern int pidfd_open (__pid_t __pid, unsigned int __flags) __THROW; +diff --git a/sysdeps/unix/sysv/linux/tst-pidfd-consts.py b/sysdeps/unix/sysv/linux/tst-pidfd-consts.py +index ef896394bdb12a25..5ef63acdd1c8a98e 100644 +--- a/sysdeps/unix/sysv/linux/tst-pidfd-consts.py ++++ b/sysdeps/unix/sysv/linux/tst-pidfd-consts.py +@@ -39,7 +39,7 @@ def main(): + sys.exit (77) + + linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc) +- linux_version_glibc = (6, 12) ++ linux_version_glibc = (6, 17) + sys.exit(glibcextract.compare_macro_consts( + '#include \n', + '#include \n' +diff --git a/sysdeps/unix/sysv/linux/tst-pidfd.c b/sysdeps/unix/sysv/linux/tst-pidfd.c +index 2222ed5228c1bbbb..2a10774d0f3afd16 100644 +--- a/sysdeps/unix/sysv/linux/tst-pidfd.c ++++ b/sysdeps/unix/sysv/linux/tst-pidfd.c +@@ -16,6 +16,7 @@ + License along with the GNU C Library; if not, see + . */ + ++#include + #include + #include + #include +@@ -41,15 +42,23 @@ static pid_t ppid; + static uid_t puid; + + static void +-sighandler (int sig) ++sighandler_subprocess (int sig) + { + } + ++static sig_atomic_t pidfd_self_flag; ++ ++static void ++sighandler_parent (int sig) ++{ ++ pidfd_self_flag = 1; ++} ++ + static void + subprocess (void) + { +- xsignal (SIGUSR1, sighandler); +- xsignal (SIGUSR2, sighandler); ++ xsignal (SIGUSR1, sighandler_subprocess); ++ xsignal (SIGUSR2, sighandler_subprocess); + + /* Check first pidfd_send_signal with default NULL siginfo_t argument. */ + { +@@ -102,6 +111,7 @@ do_test (void) + FAIL_UNSUPPORTED ("kernel does not support pidfd_getfd, skipping test"); + } + ++ + ppid = getpid (); + puid = getuid (); + +@@ -115,6 +125,34 @@ do_test (void) + TEST_COMPARE (errno, EBADF); + } + ++ xsignal (SIGUSR1, sighandler_parent); ++ ++ { ++ sigset_t mask, oldmask; ++ sigemptyset (&mask); ++ sigaddset (&mask, SIGUSR1); ++ TEST_COMPARE (sigprocmask (SIG_BLOCK, &mask, &oldmask), 0); ++ ++ /* PIDFD_SELF_{THREAD,THREAD_GROUP} were added on Linux 6.15. On older ++ kernels pidfd_send_signal should return -1/EBADF. */ ++ const int pidfd_selfs[] = { PIDFD_SELF, PIDFD_SELF_PROCESS }; ++ for (int i = 0; i < array_length (pidfd_selfs); i++) ++ { ++ pidfd_self_flag = 0; ++ int r = pidfd_send_signal (pidfd_selfs[i], SIGUSR1, NULL, 0); ++ if (r == -1) ++ TEST_COMPARE (errno, EBADF); ++ else ++ { ++ while (pidfd_self_flag == 0) ++ sigsuspend (&oldmask); ++ TEST_COMPARE (pidfd_self_flag, 1); ++ } ++ } ++ ++ TEST_COMPARE (sigprocmask (SIG_SETMASK, &oldmask, NULL), 0); ++ } ++ + /* Check if pidfd_getpid returns ESRCH for exited subprocess. */ + { + pid_t pidfork = xfork (); +diff --git a/sysdeps/unix/sysv/linux/tst-pidfd_getinfo.c b/sysdeps/unix/sysv/linux/tst-pidfd_getinfo.c +new file mode 100644 +index 0000000000000000..948a7cdb6b36ac03 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-pidfd_getinfo.c +@@ -0,0 +1,71 @@ ++/* Basic tests for Linux PID_GET_INFO interfaces. ++ Copyright (C) 2022-2025 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ { ++ /* The pidfd_getfd syscall was the last in the set of pidfd related ++ syscalls added to the kernel. Use pidfd_getfd to decide if this ++ kernel has pidfd support that we can test. */ ++ int r = pidfd_getfd (0, 0, 1); ++ TEST_VERIFY_EXIT (r == -1); ++ if (errno == ENOSYS) ++ FAIL_UNSUPPORTED ("kernel does not support pidfd_getfd, skipping test"); ++ } ++ ++ int pidfd = pidfd_open (getpid(), 0); ++ TEST_VERIFY (pidfd >= 0); ++ ++ int pid = pidfd_getpid (pidfd); ++ TEST_VERIFY (pid >= 0); ++ ++ struct pidfd_info info = { ++ .mask = PIDFD_INFO_CGROUPID, ++ }; ++ if (ioctl (pidfd, PIDFD_GET_INFO, &info) != 0) ++ { ++ if (errno == ENOTTY) ++ FAIL_UNSUPPORTED ("kernel does not support PIDFD_GET_INFO"); ++ else ++ FAIL_EXIT1 ("ioctl (PIDFD_GET_INFO) failed: %m"); ++ } ++ ++ TEST_COMPARE (info.pid, pid); ++ TEST_COMPARE (info.ppid, getppid ()); ++ TEST_COMPARE (info.ruid, getuid ()); ++ TEST_COMPARE (info.rgid, getgid ()); ++ TEST_COMPARE (info.euid, geteuid ()); ++ TEST_COMPARE (info.egid, getegid ()); ++ TEST_COMPARE (info.suid, geteuid ()); ++ TEST_COMPARE (info.sgid, getegid ()); ++ if (info.mask & PIDFD_INFO_CGROUPID) ++ TEST_VERIFY (info.cgroupid != 0); ++ ++ xclose (pidfd); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-121108-2.patch b/glibc-RHEL-121108-2.patch new file mode 100644 index 0000000..a1beb29 --- /dev/null +++ b/glibc-RHEL-121108-2.patch @@ -0,0 +1,26 @@ +commit 907089ba369408fc7c2fbaada218a05df605d64a +Author: Adhemerval Zanella +Date: Thu Nov 20 16:42:04 2025 -0300 + + linux: Handle EINVAL as unsupported on tst-pidfd_getinfo + + Some kernels returns EINVAL for ioctl (PIDFD_GET_INFO) on pidfd + descriptors. + + Checked on aarch64-linux-gnu with Linux 6.12. + + Reviewed-by: Florian Weimer + +diff --git a/sysdeps/unix/sysv/linux/tst-pidfd_getinfo.c b/sysdeps/unix/sysv/linux/tst-pidfd_getinfo.c +index 948a7cdb6b36ac03..f4a77816b43002d7 100644 +--- a/sysdeps/unix/sysv/linux/tst-pidfd_getinfo.c ++++ b/sysdeps/unix/sysv/linux/tst-pidfd_getinfo.c +@@ -46,7 +46,7 @@ do_test (void) + }; + if (ioctl (pidfd, PIDFD_GET_INFO, &info) != 0) + { +- if (errno == ENOTTY) ++ if (errno == ENOTTY || errno == EINVAL) + FAIL_UNSUPPORTED ("kernel does not support PIDFD_GET_INFO"); + else + FAIL_EXIT1 ("ioctl (PIDFD_GET_INFO) failed: %m"); diff --git a/glibc-RHEL-121108-3.patch b/glibc-RHEL-121108-3.patch new file mode 100644 index 0000000..1a26bf6 --- /dev/null +++ b/glibc-RHEL-121108-3.patch @@ -0,0 +1,29 @@ +commit 15de57024611ed6e668acbc440c5e360b0543374 +Author: Florian Weimer +Date: Thu Nov 27 14:20:03 2025 +0100 + + Linux: Ignore PIDFD_GET_INFO in tst-pidfd-consts + + The constant is expected to change between kernel releases. + + Reviewed-by: Carlos O'Donell + +diff --git a/sysdeps/unix/sysv/linux/tst-pidfd-consts.py b/sysdeps/unix/sysv/linux/tst-pidfd-consts.py +index 5ef63acdd1c8a98e..ba0d6a1e78f62c1d 100644 +--- a/sysdeps/unix/sysv/linux/tst-pidfd-consts.py ++++ b/sysdeps/unix/sysv/linux/tst-pidfd-consts.py +@@ -46,7 +46,13 @@ def main(): + '#include \n', + args.cc, + 'PIDFD_.*', +- None, ++ # Until at least Linux 6.17, the value of this ++ # constant depends on the size of struct pidfd_info, ++ # which is expected to get extended in future kernel ++ # versions. As a result, the constant embedded in the ++ # glibc headers is expected not to match the UAPI ++ # constant. ++ '^PIDFD_GET_INFO$', + linux_version_glibc > linux_version_headers, + linux_version_headers > linux_version_glibc)) + diff --git a/glibc-RHEL-126046.patch b/glibc-RHEL-126046.patch new file mode 100644 index 0000000..3233e93 --- /dev/null +++ b/glibc-RHEL-126046.patch @@ -0,0 +1,116 @@ +commit 6f0ea84f17581d13ad668adbc181c37141d389b8 +Author: Adhemerval Zanella +Date: Mon Dec 30 16:36:18 2024 -0300 + + assert: Remove the use of %n from __assert_fail_base (BZ #32456) + + The require size for mmap can be inferred from __vasprintf return + value. It also fixes tst-assert-2 when building with --enable-fortify, + where even if the format is not translated, __readonly_area fails + because malloc can not be used. + + Checked on aarch64-linux-gnu. + + Reviewed-by: Florian Weimer + +Conflicts: + po/libc.pot + (fix context and adjust line numbers) + +diff --git a/assert/assert-perr.c b/assert/assert-perr.c +index 0010cbc2785185e7..8a03620b4c843ebd 100644 +--- a/assert/assert-perr.c ++++ b/assert/assert-perr.c +@@ -32,7 +32,7 @@ __assert_perror_fail (int errnum, + char errbuf[1024]; + + char *e = __strerror_r (errnum, errbuf, sizeof errbuf); +- __assert_fail_base (_("%s%s%s:%u: %s%sUnexpected error: %s.\n%n"), ++ __assert_fail_base (_("%s%s%s:%u: %s%sUnexpected error: %s.\n"), + e, file, line, function); + } + libc_hidden_def (__assert_perror_fail) +diff --git a/assert/assert.c b/assert/assert.c +index c063b700aa5c46ff..8bd49fde5004e7bb 100644 +--- a/assert/assert.c ++++ b/assert/assert.c +@@ -15,25 +15,18 @@ + License along with the GNU C Library; if not, see + . */ + +-#include +-#include ++#include + #include + #include + #include +-#include +-#include +-#include +-#include +-#include ++#include + #include + #include +-#include ++#include + + + extern const char *__progname; + +-#include +-#include + #define fflush(s) _IO_fflush (s) + + /* This function, when passed a string containing an asserted +@@ -57,12 +50,12 @@ __assert_fail_base (const char *fmt, const char *assertion, const char *file, + FATAL_PREPARE; + #endif + +- int total; +- if (__asprintf (&str, fmt, +- __progname, __progname[0] ? ": " : "", +- file, line, +- function ? function : "", function ? ": " : "", +- assertion, &total) >= 0) ++ int total = __asprintf (&str, fmt, ++ __progname, __progname[0] ? ": " : "", ++ file, line, ++ function ? function : "", function ? ": " : "", ++ assertion); ++ if (total >= 0) + { + /* Print the message. */ + (void) __fxprintf (NULL, "%s", str); +@@ -131,6 +124,6 @@ void + __assert_fail (const char *assertion, const char *file, unsigned int line, + const char *function) + { +- __assert_fail_base (_("%s%s%s:%u: %s%sAssertion `%s' failed.\n%n"), ++ __assert_fail_base (_("%s%s%s:%u: %s%sAssertion `%s' failed.\n"), + assertion, file, line, function); + } +diff --git a/po/libc.pot b/po/libc.pot +index 42fdf35a752ae8bf..9c1a3aa982e5aaac 100644 +--- a/po/libc.pot ++++ b/po/libc.pot +@@ -102,16 +102,12 @@ msgstr "" + + #: assert/assert-perr.c:35 + #, c-format +-msgid "" +-"%s%s%s:%u: %s%sUnexpected error: %s.\n" +-"%n" ++msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n" + msgstr "" + +-#: assert/assert.c:103 ++#: assert/assert.c:125 + #, c-format +-msgid "" +-"%s%s%s:%u: %s%sAssertion `%s' failed.\n" +-"%n" ++msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n" + msgstr "" + + #: catgets/gencat.c:111 diff --git a/glibc-RHEL-126049-1.patch b/glibc-RHEL-126049-1.patch new file mode 100644 index 0000000..3bdfb8f --- /dev/null +++ b/glibc-RHEL-126049-1.patch @@ -0,0 +1,43 @@ +commit ced745bcd3e0d58cfc38ebbbc36540b9dcdd29eb +Author: H.J. Lu +Date: Tue Oct 8 08:46:45 2024 +0800 + + stdio-common/Makefile: Fix FAIL: lint-makefiles + + Fix stdio-common/Makefile: + + @@ -224,12 +224,12 @@ + tst-freopen4 \ + tst-freopen5 \ + tst-freopen6 \ + + tst-freopen7 \ + tst-freopen64-2 \ + tst-freopen64-3 \ + tst-freopen64-4 \ + tst-freopen64-6 \ + tst-freopen64-7 \ + - tst-freopen7 \ + tst-fseek \ + tst-fwrite \ + tst-fwrite-memstrm \ + + Signed-off-by: H.J. Lu + +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index 4c39b9d9fb3d029f..d89c2aa31f47a363 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -229,12 +229,12 @@ tests := \ + tst-freopen4 \ + tst-freopen5 \ + tst-freopen6 \ +- tst-freopen7 \ + tst-freopen64-2 \ + tst-freopen64-3 \ + tst-freopen64-4 \ + tst-freopen64-6 \ + tst-freopen64-7 \ ++ tst-freopen7 \ + tst-fseek \ + tst-fseek-mmap \ + tst-fwrite \ diff --git a/glibc-RHEL-126049-2.patch b/glibc-RHEL-126049-2.patch new file mode 100644 index 0000000..4ea51f1 --- /dev/null +++ b/glibc-RHEL-126049-2.patch @@ -0,0 +1,29 @@ +commit 265e13d33c470446043a3d2033984a1197151e09 +Author: H.J. Lu +Date: Sun Dec 22 05:55:39 2024 +0800 + + assert: Sort tests in Makefile + + Signed-off-by: H.J. Lu + +Conflicts: + assert/Makefile + (fixup context) + +diff --git a/assert/Makefile b/assert/Makefile +index d2c6943e6e28dda0..ffd9024a4c7058cc 100644 +--- a/assert/Makefile ++++ b/assert/Makefile +@@ -35,11 +35,11 @@ routines := \ + + tests := \ + test-assert \ ++ test-assert-2 \ + test-assert-perr \ + tst-assert-c++ \ + tst-assert-g++ \ + tst-assert-sa-2025-0001 \ +- test-assert-2 \ + # tests + + ifeq ($(have-cxx-thread_local),yes) diff --git a/glibc-RHEL-127524.patch b/glibc-RHEL-127524.patch new file mode 100644 index 0000000..92b4a65 --- /dev/null +++ b/glibc-RHEL-127524.patch @@ -0,0 +1,719 @@ +commit e067e53080386e93dcf8b07e25fb6656f2c8941e +Author: Florian Weimer +Date: Mon Nov 17 11:15:13 2025 +0100 + + Add COPYINGv3 with the GPL version 3 text + + The license is referenced in various headers, so we should ship it. + The text was copied from gnulib commit d64d66cc4897d605f543257dcd0, + file doc/COPYINGv3. + + Reviewed-by: Carlos O'Donell + Reviewed-by: Collin Funk + Signed-off-by: Florian Weimer + +diff --git a/COPYINGv3 b/COPYINGv3 +new file mode 100644 +index 0000000000000000..f288702d2fa16d3c +--- /dev/null ++++ b/COPYINGv3 +@@ -0,0 +1,674 @@ ++ GNU GENERAL PUBLIC LICENSE ++ Version 3, 29 June 2007 ++ ++ Copyright (C) 2007 Free Software Foundation, Inc. ++ Everyone is permitted to copy and distribute verbatim copies ++ of this license document, but changing it is not allowed. ++ ++ Preamble ++ ++ The GNU General Public License is a free, copyleft license for ++software and other kinds of works. ++ ++ The licenses for most software and other practical works are designed ++to take away your freedom to share and change the works. By contrast, ++the GNU General Public License is intended to guarantee your freedom to ++share and change all versions of a program--to make sure it remains free ++software for all its users. We, the Free Software Foundation, use the ++GNU General Public License for most of our software; it applies also to ++any other work released this way by its authors. You can apply it to ++your programs, too. ++ ++ When we speak of free software, we are referring to freedom, not ++price. Our General Public Licenses are designed to make sure that you ++have the freedom to distribute copies of free software (and charge for ++them if you wish), that you receive source code or can get it if you ++want it, that you can change the software or use pieces of it in new ++free programs, and that you know you can do these things. ++ ++ To protect your rights, we need to prevent others from denying you ++these rights or asking you to surrender the rights. Therefore, you have ++certain responsibilities if you distribute copies of the software, or if ++you modify it: responsibilities to respect the freedom of others. ++ ++ For example, if you distribute copies of such a program, whether ++gratis or for a fee, you must pass on to the recipients the same ++freedoms that you received. You must make sure that they, too, receive ++or can get the source code. And you must show them these terms so they ++know their rights. ++ ++ Developers that use the GNU GPL protect your rights with two steps: ++(1) assert copyright on the software, and (2) offer you this License ++giving you legal permission to copy, distribute and/or modify it. ++ ++ For the developers' and authors' protection, the GPL clearly explains ++that there is no warranty for this free software. For both users' and ++authors' sake, the GPL requires that modified versions be marked as ++changed, so that their problems will not be attributed erroneously to ++authors of previous versions. ++ ++ Some devices are designed to deny users access to install or run ++modified versions of the software inside them, although the manufacturer ++can do so. This is fundamentally incompatible with the aim of ++protecting users' freedom to change the software. The systematic ++pattern of such abuse occurs in the area of products for individuals to ++use, which is precisely where it is most unacceptable. Therefore, we ++have designed this version of the GPL to prohibit the practice for those ++products. If such problems arise substantially in other domains, we ++stand ready to extend this provision to those domains in future versions ++of the GPL, as needed to protect the freedom of users. ++ ++ Finally, every program is threatened constantly by software patents. ++States should not allow patents to restrict development and use of ++software on general-purpose computers, but in those that do, we wish to ++avoid the special danger that patents applied to a free program could ++make it effectively proprietary. To prevent this, the GPL assures that ++patents cannot be used to render the program non-free. ++ ++ The precise terms and conditions for copying, distribution and ++modification follow. ++ ++ TERMS AND CONDITIONS ++ ++ 0. Definitions. ++ ++ "This License" refers to version 3 of the GNU General Public License. ++ ++ "Copyright" also means copyright-like laws that apply to other kinds of ++works, such as semiconductor masks. ++ ++ "The Program" refers to any copyrightable work licensed under this ++License. Each licensee is addressed as "you". "Licensees" and ++"recipients" may be individuals or organizations. ++ ++ To "modify" a work means to copy from or adapt all or part of the work ++in a fashion requiring copyright permission, other than the making of an ++exact copy. The resulting work is called a "modified version" of the ++earlier work or a work "based on" the earlier work. ++ ++ A "covered work" means either the unmodified Program or a work based ++on the Program. ++ ++ To "propagate" a work means to do anything with it that, without ++permission, would make you directly or secondarily liable for ++infringement under applicable copyright law, except executing it on a ++computer or modifying a private copy. Propagation includes copying, ++distribution (with or without modification), making available to the ++public, and in some countries other activities as well. ++ ++ To "convey" a work means any kind of propagation that enables other ++parties to make or receive copies. Mere interaction with a user through ++a computer network, with no transfer of a copy, is not conveying. ++ ++ An interactive user interface displays "Appropriate Legal Notices" ++to the extent that it includes a convenient and prominently visible ++feature that (1) displays an appropriate copyright notice, and (2) ++tells the user that there is no warranty for the work (except to the ++extent that warranties are provided), that licensees may convey the ++work under this License, and how to view a copy of this License. If ++the interface presents a list of user commands or options, such as a ++menu, a prominent item in the list meets this criterion. ++ ++ 1. Source Code. ++ ++ The "source code" for a work means the preferred form of the work ++for making modifications to it. "Object code" means any non-source ++form of a work. ++ ++ A "Standard Interface" means an interface that either is an official ++standard defined by a recognized standards body, or, in the case of ++interfaces specified for a particular programming language, one that ++is widely used among developers working in that language. ++ ++ The "System Libraries" of an executable work include anything, other ++than the work as a whole, that (a) is included in the normal form of ++packaging a Major Component, but which is not part of that Major ++Component, and (b) serves only to enable use of the work with that ++Major Component, or to implement a Standard Interface for which an ++implementation is available to the public in source code form. A ++"Major Component", in this context, means a major essential component ++(kernel, window system, and so on) of the specific operating system ++(if any) on which the executable work runs, or a compiler used to ++produce the work, or an object code interpreter used to run it. ++ ++ The "Corresponding Source" for a work in object code form means all ++the source code needed to generate, install, and (for an executable ++work) run the object code and to modify the work, including scripts to ++control those activities. However, it does not include the work's ++System Libraries, or general-purpose tools or generally available free ++programs which are used unmodified in performing those activities but ++which are not part of the work. For example, Corresponding Source ++includes interface definition files associated with source files for ++the work, and the source code for shared libraries and dynamically ++linked subprograms that the work is specifically designed to require, ++such as by intimate data communication or control flow between those ++subprograms and other parts of the work. ++ ++ The Corresponding Source need not include anything that users ++can regenerate automatically from other parts of the Corresponding ++Source. ++ ++ The Corresponding Source for a work in source code form is that ++same work. ++ ++ 2. Basic Permissions. ++ ++ All rights granted under this License are granted for the term of ++copyright on the Program, and are irrevocable provided the stated ++conditions are met. This License explicitly affirms your unlimited ++permission to run the unmodified Program. The output from running a ++covered work is covered by this License only if the output, given its ++content, constitutes a covered work. This License acknowledges your ++rights of fair use or other equivalent, as provided by copyright law. ++ ++ You may make, run and propagate covered works that you do not ++convey, without conditions so long as your license otherwise remains ++in force. You may convey covered works to others for the sole purpose ++of having them make modifications exclusively for you, or provide you ++with facilities for running those works, provided that you comply with ++the terms of this License in conveying all material for which you do ++not control copyright. Those thus making or running the covered works ++for you must do so exclusively on your behalf, under your direction ++and control, on terms that prohibit them from making any copies of ++your copyrighted material outside their relationship with you. ++ ++ Conveying under any other circumstances is permitted solely under ++the conditions stated below. Sublicensing is not allowed; section 10 ++makes it unnecessary. ++ ++ 3. Protecting Users' Legal Rights From Anti-Circumvention Law. ++ ++ No covered work shall be deemed part of an effective technological ++measure under any applicable law fulfilling obligations under article ++11 of the WIPO copyright treaty adopted on 20 December 1996, or ++similar laws prohibiting or restricting circumvention of such ++measures. ++ ++ When you convey a covered work, you waive any legal power to forbid ++circumvention of technological measures to the extent such circumvention ++is effected by exercising rights under this License with respect to ++the covered work, and you disclaim any intention to limit operation or ++modification of the work as a means of enforcing, against the work's ++users, your or third parties' legal rights to forbid circumvention of ++technological measures. ++ ++ 4. Conveying Verbatim Copies. ++ ++ You may convey verbatim copies of the Program's source code as you ++receive it, in any medium, provided that you conspicuously and ++appropriately publish on each copy an appropriate copyright notice; ++keep intact all notices stating that this License and any ++non-permissive terms added in accord with section 7 apply to the code; ++keep intact all notices of the absence of any warranty; and give all ++recipients a copy of this License along with the Program. ++ ++ You may charge any price or no price for each copy that you convey, ++and you may offer support or warranty protection for a fee. ++ ++ 5. Conveying Modified Source Versions. ++ ++ You may convey a work based on the Program, or the modifications to ++produce it from the Program, in the form of source code under the ++terms of section 4, provided that you also meet all of these conditions: ++ ++ a) The work must carry prominent notices stating that you modified ++ it, and giving a relevant date. ++ ++ b) The work must carry prominent notices stating that it is ++ released under this License and any conditions added under section ++ 7. This requirement modifies the requirement in section 4 to ++ "keep intact all notices". ++ ++ c) You must license the entire work, as a whole, under this ++ License to anyone who comes into possession of a copy. This ++ License will therefore apply, along with any applicable section 7 ++ additional terms, to the whole of the work, and all its parts, ++ regardless of how they are packaged. This License gives no ++ permission to license the work in any other way, but it does not ++ invalidate such permission if you have separately received it. ++ ++ d) If the work has interactive user interfaces, each must display ++ Appropriate Legal Notices; however, if the Program has interactive ++ interfaces that do not display Appropriate Legal Notices, your ++ work need not make them do so. ++ ++ A compilation of a covered work with other separate and independent ++works, which are not by their nature extensions of the covered work, ++and which are not combined with it such as to form a larger program, ++in or on a volume of a storage or distribution medium, is called an ++"aggregate" if the compilation and its resulting copyright are not ++used to limit the access or legal rights of the compilation's users ++beyond what the individual works permit. Inclusion of a covered work ++in an aggregate does not cause this License to apply to the other ++parts of the aggregate. ++ ++ 6. Conveying Non-Source Forms. ++ ++ You may convey a covered work in object code form under the terms ++of sections 4 and 5, provided that you also convey the ++machine-readable Corresponding Source under the terms of this License, ++in one of these ways: ++ ++ a) Convey the object code in, or embodied in, a physical product ++ (including a physical distribution medium), accompanied by the ++ Corresponding Source fixed on a durable physical medium ++ customarily used for software interchange. ++ ++ b) Convey the object code in, or embodied in, a physical product ++ (including a physical distribution medium), accompanied by a ++ written offer, valid for at least three years and valid for as ++ long as you offer spare parts or customer support for that product ++ model, to give anyone who possesses the object code either (1) a ++ copy of the Corresponding Source for all the software in the ++ product that is covered by this License, on a durable physical ++ medium customarily used for software interchange, for a price no ++ more than your reasonable cost of physically performing this ++ conveying of source, or (2) access to copy the ++ Corresponding Source from a network server at no charge. ++ ++ c) Convey individual copies of the object code with a copy of the ++ written offer to provide the Corresponding Source. This ++ alternative is allowed only occasionally and noncommercially, and ++ only if you received the object code with such an offer, in accord ++ with subsection 6b. ++ ++ d) Convey the object code by offering access from a designated ++ place (gratis or for a charge), and offer equivalent access to the ++ Corresponding Source in the same way through the same place at no ++ further charge. You need not require recipients to copy the ++ Corresponding Source along with the object code. If the place to ++ copy the object code is a network server, the Corresponding Source ++ may be on a different server (operated by you or a third party) ++ that supports equivalent copying facilities, provided you maintain ++ clear directions next to the object code saying where to find the ++ Corresponding Source. Regardless of what server hosts the ++ Corresponding Source, you remain obligated to ensure that it is ++ available for as long as needed to satisfy these requirements. ++ ++ e) Convey the object code using peer-to-peer transmission, provided ++ you inform other peers where the object code and Corresponding ++ Source of the work are being offered to the general public at no ++ charge under subsection 6d. ++ ++ A separable portion of the object code, whose source code is excluded ++from the Corresponding Source as a System Library, need not be ++included in conveying the object code work. ++ ++ A "User Product" is either (1) a "consumer product", which means any ++tangible personal property which is normally used for personal, family, ++or household purposes, or (2) anything designed or sold for incorporation ++into a dwelling. In determining whether a product is a consumer product, ++doubtful cases shall be resolved in favor of coverage. For a particular ++product received by a particular user, "normally used" refers to a ++typical or common use of that class of product, regardless of the status ++of the particular user or of the way in which the particular user ++actually uses, or expects or is expected to use, the product. A product ++is a consumer product regardless of whether the product has substantial ++commercial, industrial or non-consumer uses, unless such uses represent ++the only significant mode of use of the product. ++ ++ "Installation Information" for a User Product means any methods, ++procedures, authorization keys, or other information required to install ++and execute modified versions of a covered work in that User Product from ++a modified version of its Corresponding Source. The information must ++suffice to ensure that the continued functioning of the modified object ++code is in no case prevented or interfered with solely because ++modification has been made. ++ ++ If you convey an object code work under this section in, or with, or ++specifically for use in, a User Product, and the conveying occurs as ++part of a transaction in which the right of possession and use of the ++User Product is transferred to the recipient in perpetuity or for a ++fixed term (regardless of how the transaction is characterized), the ++Corresponding Source conveyed under this section must be accompanied ++by the Installation Information. But this requirement does not apply ++if neither you nor any third party retains the ability to install ++modified object code on the User Product (for example, the work has ++been installed in ROM). ++ ++ The requirement to provide Installation Information does not include a ++requirement to continue to provide support service, warranty, or updates ++for a work that has been modified or installed by the recipient, or for ++the User Product in which it has been modified or installed. Access to a ++network may be denied when the modification itself materially and ++adversely affects the operation of the network or violates the rules and ++protocols for communication across the network. ++ ++ Corresponding Source conveyed, and Installation Information provided, ++in accord with this section must be in a format that is publicly ++documented (and with an implementation available to the public in ++source code form), and must require no special password or key for ++unpacking, reading or copying. ++ ++ 7. Additional Terms. ++ ++ "Additional permissions" are terms that supplement the terms of this ++License by making exceptions from one or more of its conditions. ++Additional permissions that are applicable to the entire Program shall ++be treated as though they were included in this License, to the extent ++that they are valid under applicable law. If additional permissions ++apply only to part of the Program, that part may be used separately ++under those permissions, but the entire Program remains governed by ++this License without regard to the additional permissions. ++ ++ When you convey a copy of a covered work, you may at your option ++remove any additional permissions from that copy, or from any part of ++it. (Additional permissions may be written to require their own ++removal in certain cases when you modify the work.) You may place ++additional permissions on material, added by you to a covered work, ++for which you have or can give appropriate copyright permission. ++ ++ Notwithstanding any other provision of this License, for material you ++add to a covered work, you may (if authorized by the copyright holders of ++that material) supplement the terms of this License with terms: ++ ++ a) Disclaiming warranty or limiting liability differently from the ++ terms of sections 15 and 16 of this License; or ++ ++ b) Requiring preservation of specified reasonable legal notices or ++ author attributions in that material or in the Appropriate Legal ++ Notices displayed by works containing it; or ++ ++ c) Prohibiting misrepresentation of the origin of that material, or ++ requiring that modified versions of such material be marked in ++ reasonable ways as different from the original version; or ++ ++ d) Limiting the use for publicity purposes of names of licensors or ++ authors of the material; or ++ ++ e) Declining to grant rights under trademark law for use of some ++ trade names, trademarks, or service marks; or ++ ++ f) Requiring indemnification of licensors and authors of that ++ material by anyone who conveys the material (or modified versions of ++ it) with contractual assumptions of liability to the recipient, for ++ any liability that these contractual assumptions directly impose on ++ those licensors and authors. ++ ++ All other non-permissive additional terms are considered "further ++restrictions" within the meaning of section 10. If the Program as you ++received it, or any part of it, contains a notice stating that it is ++governed by this License along with a term that is a further ++restriction, you may remove that term. If a license document contains ++a further restriction but permits relicensing or conveying under this ++License, you may add to a covered work material governed by the terms ++of that license document, provided that the further restriction does ++not survive such relicensing or conveying. ++ ++ If you add terms to a covered work in accord with this section, you ++must place, in the relevant source files, a statement of the ++additional terms that apply to those files, or a notice indicating ++where to find the applicable terms. ++ ++ Additional terms, permissive or non-permissive, may be stated in the ++form of a separately written license, or stated as exceptions; ++the above requirements apply either way. ++ ++ 8. Termination. ++ ++ You may not propagate or modify a covered work except as expressly ++provided under this License. Any attempt otherwise to propagate or ++modify it is void, and will automatically terminate your rights under ++this License (including any patent licenses granted under the third ++paragraph of section 11). ++ ++ However, if you cease all violation of this License, then your ++license from a particular copyright holder is reinstated (a) ++provisionally, unless and until the copyright holder explicitly and ++finally terminates your license, and (b) permanently, if the copyright ++holder fails to notify you of the violation by some reasonable means ++prior to 60 days after the cessation. ++ ++ Moreover, your license from a particular copyright holder is ++reinstated permanently if the copyright holder notifies you of the ++violation by some reasonable means, this is the first time you have ++received notice of violation of this License (for any work) from that ++copyright holder, and you cure the violation prior to 30 days after ++your receipt of the notice. ++ ++ Termination of your rights under this section does not terminate the ++licenses of parties who have received copies or rights from you under ++this License. If your rights have been terminated and not permanently ++reinstated, you do not qualify to receive new licenses for the same ++material under section 10. ++ ++ 9. Acceptance Not Required for Having Copies. ++ ++ You are not required to accept this License in order to receive or ++run a copy of the Program. Ancillary propagation of a covered work ++occurring solely as a consequence of using peer-to-peer transmission ++to receive a copy likewise does not require acceptance. However, ++nothing other than this License grants you permission to propagate or ++modify any covered work. These actions infringe copyright if you do ++not accept this License. Therefore, by modifying or propagating a ++covered work, you indicate your acceptance of this License to do so. ++ ++ 10. Automatic Licensing of Downstream Recipients. ++ ++ Each time you convey a covered work, the recipient automatically ++receives a license from the original licensors, to run, modify and ++propagate that work, subject to this License. You are not responsible ++for enforcing compliance by third parties with this License. ++ ++ An "entity transaction" is a transaction transferring control of an ++organization, or substantially all assets of one, or subdividing an ++organization, or merging organizations. If propagation of a covered ++work results from an entity transaction, each party to that ++transaction who receives a copy of the work also receives whatever ++licenses to the work the party's predecessor in interest had or could ++give under the previous paragraph, plus a right to possession of the ++Corresponding Source of the work from the predecessor in interest, if ++the predecessor has it or can get it with reasonable efforts. ++ ++ You may not impose any further restrictions on the exercise of the ++rights granted or affirmed under this License. For example, you may ++not impose a license fee, royalty, or other charge for exercise of ++rights granted under this License, and you may not initiate litigation ++(including a cross-claim or counterclaim in a lawsuit) alleging that ++any patent claim is infringed by making, using, selling, offering for ++sale, or importing the Program or any portion of it. ++ ++ 11. Patents. ++ ++ A "contributor" is a copyright holder who authorizes use under this ++License of the Program or a work on which the Program is based. The ++work thus licensed is called the contributor's "contributor version". ++ ++ A contributor's "essential patent claims" are all patent claims ++owned or controlled by the contributor, whether already acquired or ++hereafter acquired, that would be infringed by some manner, permitted ++by this License, of making, using, or selling its contributor version, ++but do not include claims that would be infringed only as a ++consequence of further modification of the contributor version. For ++purposes of this definition, "control" includes the right to grant ++patent sublicenses in a manner consistent with the requirements of ++this License. ++ ++ Each contributor grants you a non-exclusive, worldwide, royalty-free ++patent license under the contributor's essential patent claims, to ++make, use, sell, offer for sale, import and otherwise run, modify and ++propagate the contents of its contributor version. ++ ++ In the following three paragraphs, a "patent license" is any express ++agreement or commitment, however denominated, not to enforce a patent ++(such as an express permission to practice a patent or covenant not to ++sue for patent infringement). To "grant" such a patent license to a ++party means to make such an agreement or commitment not to enforce a ++patent against the party. ++ ++ If you convey a covered work, knowingly relying on a patent license, ++and the Corresponding Source of the work is not available for anyone ++to copy, free of charge and under the terms of this License, through a ++publicly available network server or other readily accessible means, ++then you must either (1) cause the Corresponding Source to be so ++available, or (2) arrange to deprive yourself of the benefit of the ++patent license for this particular work, or (3) arrange, in a manner ++consistent with the requirements of this License, to extend the patent ++license to downstream recipients. "Knowingly relying" means you have ++actual knowledge that, but for the patent license, your conveying the ++covered work in a country, or your recipient's use of the covered work ++in a country, would infringe one or more identifiable patents in that ++country that you have reason to believe are valid. ++ ++ If, pursuant to or in connection with a single transaction or ++arrangement, you convey, or propagate by procuring conveyance of, a ++covered work, and grant a patent license to some of the parties ++receiving the covered work authorizing them to use, propagate, modify ++or convey a specific copy of the covered work, then the patent license ++you grant is automatically extended to all recipients of the covered ++work and works based on it. ++ ++ A patent license is "discriminatory" if it does not include within ++the scope of its coverage, prohibits the exercise of, or is ++conditioned on the non-exercise of one or more of the rights that are ++specifically granted under this License. You may not convey a covered ++work if you are a party to an arrangement with a third party that is ++in the business of distributing software, under which you make payment ++to the third party based on the extent of your activity of conveying ++the work, and under which the third party grants, to any of the ++parties who would receive the covered work from you, a discriminatory ++patent license (a) in connection with copies of the covered work ++conveyed by you (or copies made from those copies), or (b) primarily ++for and in connection with specific products or compilations that ++contain the covered work, unless you entered into that arrangement, ++or that patent license was granted, prior to 28 March 2007. ++ ++ Nothing in this License shall be construed as excluding or limiting ++any implied license or other defenses to infringement that may ++otherwise be available to you under applicable patent law. ++ ++ 12. No Surrender of Others' Freedom. ++ ++ If conditions are imposed on you (whether by court order, agreement or ++otherwise) that contradict the conditions of this License, they do not ++excuse you from the conditions of this License. If you cannot convey a ++covered work so as to satisfy simultaneously your obligations under this ++License and any other pertinent obligations, then as a consequence you may ++not convey it at all. For example, if you agree to terms that obligate you ++to collect a royalty for further conveying from those to whom you convey ++the Program, the only way you could satisfy both those terms and this ++License would be to refrain entirely from conveying the Program. ++ ++ 13. Use with the GNU Affero General Public License. ++ ++ Notwithstanding any other provision of this License, you have ++permission to link or combine any covered work with a work licensed ++under version 3 of the GNU Affero General Public License into a single ++combined work, and to convey the resulting work. The terms of this ++License will continue to apply to the part which is the covered work, ++but the special requirements of the GNU Affero General Public License, ++section 13, concerning interaction through a network will apply to the ++combination as such. ++ ++ 14. Revised Versions of this License. ++ ++ The Free Software Foundation may publish revised and/or new versions of ++the GNU General Public License from time to time. Such new versions will ++be similar in spirit to the present version, but may differ in detail to ++address new problems or concerns. ++ ++ Each version is given a distinguishing version number. If the ++Program specifies that a certain numbered version of the GNU General ++Public License "or any later version" applies to it, you have the ++option of following the terms and conditions either of that numbered ++version or of any later version published by the Free Software ++Foundation. If the Program does not specify a version number of the ++GNU General Public License, you may choose any version ever published ++by the Free Software Foundation. ++ ++ If the Program specifies that a proxy can decide which future ++versions of the GNU General Public License can be used, that proxy's ++public statement of acceptance of a version permanently authorizes you ++to choose that version for the Program. ++ ++ Later license versions may give you additional or different ++permissions. However, no additional obligations are imposed on any ++author or copyright holder as a result of your choosing to follow a ++later version. ++ ++ 15. Disclaimer of Warranty. ++ ++ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY ++APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT ++HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY ++OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ++THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM ++IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ++ALL NECESSARY SERVICING, REPAIR OR CORRECTION. ++ ++ 16. Limitation of Liability. ++ ++ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING ++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS ++THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY ++GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE ++USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF ++DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD ++PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), ++EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF ++SUCH DAMAGES. ++ ++ 17. Interpretation of Sections 15 and 16. ++ ++ If the disclaimer of warranty and limitation of liability provided ++above cannot be given local legal effect according to their terms, ++reviewing courts shall apply local law that most closely approximates ++an absolute waiver of all civil liability in connection with the ++Program, unless a warranty or assumption of liability accompanies a ++copy of the Program in return for a fee. ++ ++ END OF TERMS AND CONDITIONS ++ ++ How to Apply These Terms to Your New Programs ++ ++ If you develop a new program, and you want it to be of the greatest ++possible use to the public, the best way to achieve this is to make it ++free software which everyone can redistribute and change under these terms. ++ ++ To do so, attach the following notices to the program. It is safest ++to attach them to the start of each source file to most effectively ++state the exclusion of warranty; and each file should have at least ++the "copyright" line and a pointer to where the full notice is found. ++ ++ ++ Copyright (C) ++ ++ This program is free software: you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation, either version 3 of the License, or ++ (at your option) any later version. ++ ++ This program 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 General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program. If not, see . ++ ++Also add information on how to contact you by electronic and paper mail. ++ ++ If the program does terminal interaction, make it output a short ++notice like this when it starts in an interactive mode: ++ ++ Copyright (C) ++ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. ++ This is free software, and you are welcome to redistribute it ++ under certain conditions; type `show c' for details. ++ ++The hypothetical commands `show w' and `show c' should show the appropriate ++parts of the General Public License. Of course, your program's commands ++might be different; for a GUI interface, you would use an "about box". ++ ++ You should also get your employer (if you work as a programmer) or school, ++if any, to sign a "copyright disclaimer" for the program, if necessary. ++For more information on this, and how to apply and follow the GNU GPL, see ++. ++ ++ The GNU General Public License does not permit incorporating your program ++into proprietary programs. If your program is a subroutine library, you ++may consider it more useful to permit linking proprietary applications with ++the library. If this is what you want to do, use the GNU Lesser General ++Public License instead of this License. But first, please read ++. +diff --git a/SHARED-FILES b/SHARED-FILES +index 2ff44427bca796c3..37980276582f3aab 100644 +--- a/SHARED-FILES ++++ b/SHARED-FILES +@@ -14,6 +14,7 @@ + # has to be compared manually so this list is likely incomplete or may contain + # errors. + gnulib: ++ COPYINGv3 + argp/argp-ba.c + argp/argp-ba.c + argp/argp-eexst.c +diff --git a/scripts/update-copyrights b/scripts/update-copyrights +index a56cc03f1d9cf3d1..9d8bc5de51b8dc81 100755 +--- a/scripts/update-copyrights ++++ b/scripts/update-copyrights +@@ -44,7 +44,7 @@ files=$(find . -type f | sed 's|^\./||' | grep -v '^\.git/') + + for f in $files; do + case $f in +- COPYING | COPYING.LIB | manual/fdl-1.3.texi | manual/lgpl-2.1.texi) ++ COPYING* | manual/fdl-1.3.texi | manual/lgpl-2.1.texi) + # Licenses imported verbatim from FSF sources. + ;; + manual/texinfo.tex | scripts/config.guess | scripts/config.sub \ diff --git a/glibc-RHEL-135228.patch b/glibc-RHEL-135228.patch new file mode 100644 index 0000000..90df056 --- /dev/null +++ b/glibc-RHEL-135228.patch @@ -0,0 +1,581 @@ +commit 88ce558a31c041778bd14d177ed700f2f268daea +Author: Arjun Shankar +Date: Mon Oct 13 15:51:09 2025 +0200 + + string: Add tests for unique strerror and strsignal strings + + strerror, strsignal, and their variants should return unique strings for + each known (and, depending on the function, unknown) error/signal. Add + tests to verify this for strerror, strerror_r (GNU and XSI compliant + variants), and strerror_l (for the C locale), strerrordesc_np, + strsignal, sigabbrev_np, and sigdescr_np. + + Co-authored-by: Adhemerval Zanella + Reviewed-by: Florian Weimer + Reviewed-by: Adhemerval Zanella + +diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile +index ddc6f98001b2f4ae..a1513c009a7101d7 100644 +--- a/sysdeps/unix/sysv/linux/Makefile ++++ b/sysdeps/unix/sysv/linux/Makefile +@@ -692,3 +692,21 @@ tests-internal += \ + tst-rseq-nptl \ + # tests-internal + endif ++ ++ifeq ($(subdir),string) ++modules-names += \ ++ tst-xsi-strerror_r-mod \ ++ # modules-names ++ ++tests += \ ++ tst-sigabbrev_np-strings \ ++ tst-strerror-strings \ ++ tst-strerror_l-strings \ ++ tst-strerror_r-strings \ ++ tst-strerrordesc_np-strings \ ++ tst-strsignal-strings \ ++ tst-xsi-strerror_r-strings \ ++ # tests ++ ++$(objpfx)tst-xsi-strerror_r-strings: $(objpfx)tst-xsi-strerror_r-mod.so ++endif # $(subdir) == string +diff --git a/sysdeps/unix/sysv/linux/tst-sigabbrev_np-strings.c b/sysdeps/unix/sysv/linux/tst-sigabbrev_np-strings.c +new file mode 100644 +index 0000000000000000..2c0f28c682359f1e +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-sigabbrev_np-strings.c +@@ -0,0 +1,61 @@ ++/* Test that sig{abbrev,descr}_np return unique strings for each signal. ++ ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++ ++#include ++#include ++ ++#include "tst-verify-unique-strings.c" ++ ++/* Both functions should return NULL for (unknown) signal numbers outside ++ [1, 31]. */ ++ ++static int ++do_test (void) ++{ ++ char *str_sigabbrev[31]; ++ char *str_sigdescr[31]; ++ ++ for (int i = -128; i <= 128; i++) ++ if (i >= 1 && i <= 31) ++ { ++ str_sigabbrev[i-1] = xstrdup (sigabbrev_np (i)); ++ str_sigdescr[i-1] = xstrdup (sigdescr_np (i)); ++ } ++ else ++ { ++ TEST_VERIFY_EXIT (sigabbrev_np (i) == NULL); ++ TEST_VERIFY_EXIT (sigdescr_np (i) == NULL); ++ } ++ ++ VERIFY_UNIQUE_STRINGS (str_sigabbrev, 31); ++ VERIFY_UNIQUE_STRINGS (str_sigdescr, 31); ++ ++ for (int i = 0; i < 31; i++) ++ { ++ free (str_sigabbrev[i]); ++ free (str_sigdescr[i]); ++ } ++ ++ return 0; ++} ++ ++#include +diff --git a/sysdeps/unix/sysv/linux/tst-strerror-strings.c b/sysdeps/unix/sysv/linux/tst-strerror-strings.c +new file mode 100644 +index 0000000000000000..9d9886f138fc1e26 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-strerror-strings.c +@@ -0,0 +1,79 @@ ++/* Test that strerror variants return unique strings for each errnum. ++ ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include "tst-verify-unique-strings.c" ++ ++/* As defined by stdio-common/errlist-data-gen.c */ ++#include ++#include ++#define N_(msgid) msgid ++const char *const errlist_internal[] __attribute_maybe_unused__ = ++ { ++#define _S(n, str) [ERR_MAP(n)] = str, ++#include ++#undef _S ++ }; ++const int errlist_internal_len = array_length (errlist_internal); ++ ++static int ++do_test (void) ++{ ++ char *string[2 * errlist_internal_len + 1]; ++ ++ /* Convenient indexing for error strings from -errlist_internal_len to ++ errlist_internal_len. */ ++ char **err_str = string + errlist_internal_len; ++ ++ unsetenv ("LANGUAGE"); ++ ++ xsetlocale (LC_ALL, "C"); ++ ++ for (int i = -errlist_internal_len; i <= errlist_internal_len; i++) ++ { ++ ++#ifdef TEST_STRERROR_VARIANT ++ /* Used for testing strerror_r and strerror_l. */ ++ err_str[i] = TEST_STRERROR_VARIANT (i); ++#else ++ err_str[i] = xstrdup (strerror (i)); ++#endif ++ ++ int is_unknown_error ++ = (strstr (err_str[i], "Unknown error ") == err_str[i]); ++ TEST_VERIFY_EXIT ((i >= 0 && i < errlist_internal_len) ++ || is_unknown_error); ++ } ++ ++ /* We check for and fail on duplicate strings. */ ++ VERIFY_UNIQUE_STRINGS (string, 2 * errlist_internal_len + 1); ++ ++ for (int i = -errlist_internal_len; i <= errlist_internal_len; i++) ++ free (err_str[i]); ++ ++ return 0; ++} ++ ++#include +diff --git a/sysdeps/unix/sysv/linux/tst-strerror_l-strings.c b/sysdeps/unix/sysv/linux/tst-strerror_l-strings.c +new file mode 100644 +index 0000000000000000..65c5a2f08c94f603 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-strerror_l-strings.c +@@ -0,0 +1,40 @@ ++/* Test that strerror_l returns unique strings for each errnum. ++ ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++/* newlocale returns (locale_t) 0 upon error, so it makes for a good initial ++ value that is different from any valid locale_t. */ ++static locale_t loc = (locale_t) 0; ++ ++/* Wrap strerror_l to be plugged into the equivalent strerror test. */ ++static char * ++wrap_strerror_l (int errnum) ++{ ++ if (loc == (locale_t) 0) ++ loc = xnewlocale (LC_ALL_MASK, "C", (locale_t) 0); ++ ++ return xstrdup (strerror_l (errnum, loc)); ++} ++ ++#define TEST_STRERROR_VARIANT wrap_strerror_l ++#include "tst-strerror-strings.c" +diff --git a/sysdeps/unix/sysv/linux/tst-strerror_r-strings.c b/sysdeps/unix/sysv/linux/tst-strerror_r-strings.c +new file mode 100644 +index 0000000000000000..dea9415eb80691d2 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-strerror_r-strings.c +@@ -0,0 +1,43 @@ ++/* Test that GNU strerror_r returns unique strings for each errnum. ++ ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++ ++/* Wrap strerror_r into a checked variant that can be plugged into the ++ equivalent strerror test. */ ++static char * ++test_and_return_strerror_r (int errnum) ++{ ++ char buf[1024]; ++ ++ char *ret = strerror_r (errnum, buf, sizeof (buf)); ++ ++ /* User supplied buffer used for and only for "Unknown error" strings. */ ++ if (strstr (ret, "Unknown error ") == ret) ++ TEST_VERIFY_EXIT (ret == buf); ++ else ++ TEST_VERIFY_EXIT (ret != buf); ++ ++ return xstrdup (ret); ++} ++ ++#define TEST_STRERROR_VARIANT test_and_return_strerror_r ++#include "tst-strerror-strings.c" +diff --git a/sysdeps/unix/sysv/linux/tst-strerrordesc_np-strings.c b/sysdeps/unix/sysv/linux/tst-strerrordesc_np-strings.c +new file mode 100644 +index 0000000000000000..4ba8d5cbcb2b1399 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-strerrordesc_np-strings.c +@@ -0,0 +1,73 @@ ++/* Test that strerrordesc_np returns unique strings for each errnum. ++ ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include "tst-verify-unique-strings.c" ++ ++/* As defined by stdio-common/errlist-data-gen.c */ ++#include ++#include ++#define N_(msgid) msgid ++const char *const errlist_internal[] __attribute_maybe_unused__ = ++ { ++#define _S(n, str) [ERR_MAP(n)] = str, ++#include ++#undef _S ++ }; ++const int errlist_internal_len = array_length (errlist_internal); ++ ++static int ++do_test (void) ++{ ++ char *string[2 * errlist_internal_len + 1]; ++ ++ int i, s; ++ for (i = -errlist_internal_len, s = 0; i <= errlist_internal_len; i++) ++ { ++ const char *ret = strerrordesc_np (i); ++ ++ /* Range of known errors. Some errnums could still be unused. */ ++ if (i >= 0 && i < errlist_internal_len) ++ { ++ if (ret != NULL) ++ { ++ TEST_VERIFY_EXIT (strcasestr (ret, "Unknown error") == NULL); ++ string[s++] = xstrdup (ret); ++ } ++ } ++ else ++ TEST_VERIFY_EXIT (ret == NULL); ++ } ++ ++ /* We check for and fail on duplicate strings. */ ++ VERIFY_UNIQUE_STRINGS (string, s); ++ ++ for (int i = 0; i < s; i++) ++ free (string[i]); ++ ++ return 0; ++} ++ ++#include +diff --git a/sysdeps/unix/sysv/linux/tst-strsignal-strings.c b/sysdeps/unix/sysv/linux/tst-strsignal-strings.c +new file mode 100644 +index 0000000000000000..476437aaa42af246 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-strsignal-strings.c +@@ -0,0 +1,73 @@ ++/* Test that strsignal returns unique strings for each signal. ++ ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include "tst-verify-unique-strings.c" ++ ++#define NSTRINGS 257 ++ ++static int ++do_test (void) ++{ ++ char *string[NSTRINGS]; ++ /* Convenient indexing for signal strings from -128 to 128. */ ++ char **sig_str = string + 128; ++ ++ unsetenv ("LANGUAGE"); ++ ++ xsetlocale (LC_ALL, "C"); ++ ++ for (int i = -128; i <= 128; i++) ++ { ++ sig_str[i] = xstrdup (strsignal (i)); ++ ++ if (i > 0 && i <= 31) ++ { ++ /* Signals between 1 and 31 are known. */ ++ TEST_VERIFY_EXIT (strstr (sig_str[i], "Unknown signal ") ++ == NULL); ++ TEST_VERIFY_EXIT (strstr (sig_str[i], "Real-time signal ") ++ == NULL); ++ } ++ else if ((i <= 0) ++ || (i > 31 && i < SIGRTMIN) ++ || (i > SIGRTMAX)) ++ TEST_VERIFY_EXIT (strstr (sig_str[i], "Unknown signal ") ++ == sig_str[i]); ++ ++ else if (i >= SIGRTMIN && i <= SIGRTMAX) ++ TEST_VERIFY_EXIT (strstr (sig_str[i], "Real-time signal ") ++ == sig_str[i]); ++ } ++ ++ VERIFY_UNIQUE_STRINGS (string, NSTRINGS); ++ ++ for (int i = -128; i <= 128; i++) ++ free (sig_str[i]); ++ ++ return 0; ++} ++ ++#include +diff --git a/sysdeps/unix/sysv/linux/tst-verify-unique-strings.c b/sysdeps/unix/sysv/linux/tst-verify-unique-strings.c +new file mode 100644 +index 0000000000000000..75a2bc38ff738e54 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-verify-unique-strings.c +@@ -0,0 +1,40 @@ ++/* Test that an array of strings does not contain duplicates. ++ ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++ ++static int ++compare_strings (const void *a, const void *b) ++{ ++ const char *stra = * (const char **) a; ++ const char *strb = * (const char **) b; ++ ++ int ret = strcmp (stra, strb); ++ ++ if (!ret) ++ FAIL_EXIT1 ("Found duplicate strings: \"%s\"\n", stra); ++ ++ return ret; ++} ++ ++/* We check for and fail on duplicate strings in the comparator. */ ++#define VERIFY_UNIQUE_STRINGS(strarray, narray) \ ++ qsort ((strarray), (narray), sizeof (char *), compare_strings) +diff --git a/sysdeps/unix/sysv/linux/tst-xsi-strerror_r-mod.c b/sysdeps/unix/sysv/linux/tst-xsi-strerror_r-mod.c +new file mode 100644 +index 0000000000000000..5ce7ea66b9615c07 +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-xsi-strerror_r-mod.c +@@ -0,0 +1,30 @@ ++/* A module that provides XSI compliant strerror_r for testing. ++ ++ Copyright (C) 2025 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 ++ . */ ++ ++/* This allows us to compile the rest of the test with GNU extensions. */ ++ ++#undef _GNU_SOURCE ++#define _DEFAULT_SOURCE ++#include ++ ++int ++xsi_strerror_r (int errnum, char *buf, size_t buflen) ++{ ++ return strerror_r (errnum, buf, buflen); ++} +diff --git a/sysdeps/unix/sysv/linux/tst-xsi-strerror_r-strings.c b/sysdeps/unix/sysv/linux/tst-xsi-strerror_r-strings.c +new file mode 100644 +index 0000000000000000..49f05c1c0adbcc6a +--- /dev/null ++++ b/sysdeps/unix/sysv/linux/tst-xsi-strerror_r-strings.c +@@ -0,0 +1,46 @@ ++/* Test that XSI strerror_r returns unique strings for each errnum. ++ ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++ ++extern int ++xsi_strerror_r (int errnum, char *buf, size_t buflen); ++ ++/* Wrap strerror_r into a checked variant that can be plugged into the ++ equivalent strerror test. */ ++static char * ++test_and_return_xsi_strerror_r (int errnum) ++{ ++ char buf[1024]; ++ ++ int ret = xsi_strerror_r (errnum, buf, sizeof (buf)); ++ ++ /* Unknown errnums lead to a positive error returned from strerror_r. */ ++ if (strstr (buf, "Unknown error ") == buf) ++ TEST_VERIFY (ret > 0); ++ else ++ TEST_VERIFY (ret == 0); ++ ++ return xstrdup (buf); ++} ++ ++#define TEST_STRERROR_VARIANT test_and_return_xsi_strerror_r ++#include "tst-strerror-strings.c" diff --git a/glibc-RHEL-137184.patch b/glibc-RHEL-137184.patch new file mode 100644 index 0000000..dd8dc37 --- /dev/null +++ b/glibc-RHEL-137184.patch @@ -0,0 +1,26 @@ +commit 78fdb2d6b1c34ea8e779fd48f9436dfbd50b6387 +Author: Florian Weimer +Date: Thu Jan 8 12:35:08 2026 +0100 + + Switch currency symbol for the bg_BG locale to euro + + Bulgaria joined the eurozone on 2026-01-01. + + Suggested-by: Йордан Гигов + Reviewed-by: Collin Funk + +diff --git a/localedata/locales/bg_BG b/localedata/locales/bg_BG +index 159a6c33343c7d0d..eda2a8d01b00e2b7 100644 +--- a/localedata/locales/bg_BG ++++ b/localedata/locales/bg_BG +@@ -248,8 +248,8 @@ reorder-end + END LC_COLLATE + + LC_MONETARY +-int_curr_symbol "BGN " +-currency_symbol "лв." ++int_curr_symbol "EUR " ++currency_symbol "€" + mon_decimal_point "," + mon_thousands_sep " " + mon_grouping 3 diff --git a/glibc-RHEL-140103.patch b/glibc-RHEL-140103.patch new file mode 100644 index 0000000..1a56c88 --- /dev/null +++ b/glibc-RHEL-140103.patch @@ -0,0 +1,55 @@ +commit 559010e471acb3cb292615b71b248aba73e5c2fe +Author: Dragan Stanojević (Nevidljivi) +Date: Wed Feb 7 16:31:04 2024 +0100 + + localedata: hr_HR: change currency to EUR/€ + + Resolves: BZ # 29845 + +diff --git a/localedata/locales/hr_HR b/localedata/locales/hr_HR +index 83087a3b02..d00e6bee25 100644 +--- a/localedata/locales/hr_HR ++++ b/localedata/locales/hr_HR +@@ -24,8 +24,8 @@ tel "" + fax "" + language "Croatian" + territory "Croatia" +-revision "2.3" +-date "2016-04-16" ++revision "2.4" ++date "2022-12-03" + + category "i18n:2012";LC_IDENTIFICATION + category "i18n:2012";LC_CTYPE +@@ -171,8 +171,8 @@ nostr "ne" + END LC_MESSAGES + + LC_MONETARY +-int_curr_symbol "HRK " +-currency_symbol "kn" ++int_curr_symbol "EUR " ++currency_symbol "€" + mon_decimal_point "," + mon_thousands_sep "." + mon_grouping 3 +diff --git a/stdlib/tst-strfmon_l.c b/stdlib/tst-strfmon_l.c +index cc5da3e2ba..73ca0ea7b7 100644 +--- a/stdlib/tst-strfmon_l.c ++++ b/stdlib/tst-strfmon_l.c +@@ -181,12 +181,12 @@ static const struct locale_pair tests[] = + "hr_HR.UTF-8", + { + { +- "HRK 1.234.567,89", "1.234.567,89 kn", +- "HRK 1234567,89", "1234567,89 kn" ++ "EUR 1.234.567,89", "1.234.567,89 €", ++ "EUR 1234567,89", "1234567,89 €" + }, + { +- "-HRK 1.234.567,89", "-1.234.567,89 kn", +- "-HRK 1234567,89", "-1234567,89 kn" ++ "-EUR 1.234.567,89", "-1.234.567,89 €", ++ "-EUR 1234567,89", "-1234567,89 €" + } + } + }, diff --git a/glibc-RHEL-142193-1.patch b/glibc-RHEL-142193-1.patch index c29a780..3652c05 100644 --- a/glibc-RHEL-142193-1.patch +++ b/glibc-RHEL-142193-1.patch @@ -1,76 +1,267 @@ -commit 5d23dfb289174d73b8907b86d2bef7a3ca889840 -Author: H.J. Lu -Date: Sat Jul 19 07:43:29 2025 -0700 +commit 1e1ad714ee9a663eda0e2bffad1d9f258b00a4e9 +Author: Adhemerval Zanella +Date: Mon May 6 13:18:47 2024 -0300 - tst-env-setuid: Delete LD_DEBUG_OUTPUT output + support: Add envp argument to support_capture_subprogram - Update tst-env-setuid.c to delete LD_DEBUG_OUTPUT output, instead of - leaving it behind. - - This partially fixes BZ #33182. - - Signed-off-by: H.J. Lu - Reviewed-by: Adhemerval Zanella + So tests can specify a list of environment variables. + Reviewed-by: Siddhesh Poyarekar -diff --git a/elf/tst-env-setuid.c b/elf/tst-env-setuid.c -index c084aa4c1a382152..479087f0e738a4d0 100644 ---- a/elf/tst-env-setuid.c -+++ b/elf/tst-env-setuid.c -@@ -40,6 +40,8 @@ static char SETGID_CHILD[] = "setgid-child"; - # define PROFILE_LIB "tst-sonamemove-runmod2.so" - #endif +Conflicts: + elf/tst-tunables-enable_secure.c + (file does not exist downstream) + +diff --git a/elf/tst-audit18.c b/elf/tst-audit18.c +index 841251dd7003aa7d..cec93e269ca0b4ef 100644 +--- a/elf/tst-audit18.c ++++ b/elf/tst-audit18.c +@@ -79,7 +79,7 @@ do_test (int argc, char *argv[]) -+#define LD_DEBUG_OUTPUT "/tmp/some-file" -+ - struct envvar_t + setenv ("LD_AUDIT", "tst-auditmod18.so", 0); + struct support_capture_subprocess result +- = support_capture_subprogram (spargv[0], spargv); ++ = support_capture_subprogram (spargv[0], spargv, NULL); + support_capture_subprocess_check (&result, "tst-audit18", 0, sc_allow_stderr); + + struct +diff --git a/elf/tst-audit19b.c b/elf/tst-audit19b.c +index 70bfe4eadf5ee845..88d99a416bbe93dd 100644 +--- a/elf/tst-audit19b.c ++++ b/elf/tst-audit19b.c +@@ -69,7 +69,7 @@ do_test (int argc, char *argv[]) + + setenv ("LD_AUDIT", "tst-auditmod18b.so", 0); + struct support_capture_subprocess result +- = support_capture_subprogram (spargv[0], spargv); ++ = support_capture_subprogram (spargv[0], spargv, NULL); + support_capture_subprocess_check (&result, "tst-audit18b", 0, sc_allow_stderr); + + bool find_symbind = false; +diff --git a/elf/tst-audit22.c b/elf/tst-audit22.c +index 4e97be3be0c6a2e3..6aa18af948afa9c5 100644 +--- a/elf/tst-audit22.c ++++ b/elf/tst-audit22.c +@@ -83,7 +83,7 @@ do_test (int argc, char *argv[]) + + setenv ("LD_AUDIT", "tst-auditmod22.so", 0); + struct support_capture_subprocess result +- = support_capture_subprogram (spargv[0], spargv); ++ = support_capture_subprogram (spargv[0], spargv, NULL); + support_capture_subprocess_check (&result, "tst-audit22", 0, sc_allow_stderr); + + /* The respawned process should always print the vDSO address (otherwise it +diff --git a/elf/tst-audit23.c b/elf/tst-audit23.c +index 1b76336595fcd301..7786a74e648aeb6f 100644 +--- a/elf/tst-audit23.c ++++ b/elf/tst-audit23.c +@@ -87,7 +87,7 @@ do_one_test (int argc, char *argv[], bool pass_dlclose_flag) + + setenv ("LD_AUDIT", "tst-auditmod23.so", 0); + struct support_capture_subprocess result +- = support_capture_subprogram (spargv[0], spargv); ++ = support_capture_subprogram (spargv[0], spargv, NULL); + support_capture_subprocess_check (&result, "tst-audit22", 0, sc_allow_stderr); + + { +diff --git a/elf/tst-audit25a.c b/elf/tst-audit25a.c +index b209ee820f2f2a02..cdd4f2ce2b54d622 100644 +--- a/elf/tst-audit25a.c ++++ b/elf/tst-audit25a.c +@@ -77,7 +77,7 @@ do_test (int argc, char *argv[]) + + { + struct support_capture_subprocess result +- = support_capture_subprogram (spargv[0], spargv); ++ = support_capture_subprogram (spargv[0], spargv, NULL); + support_capture_subprocess_check (&result, "tst-audit25a", 0, + sc_allow_stderr); + +@@ -102,7 +102,7 @@ do_test (int argc, char *argv[]) + { + setenv ("LD_BIND_NOW", "1", 0); + struct support_capture_subprocess result +- = support_capture_subprogram (spargv[0], spargv); ++ = support_capture_subprogram (spargv[0], spargv, NULL); + support_capture_subprocess_check (&result, "tst-audit25a", 0, + sc_allow_stderr); + +diff --git a/elf/tst-audit25b.c b/elf/tst-audit25b.c +index 9b8665d5171b7c6b..939f4d6188368540 100644 +--- a/elf/tst-audit25b.c ++++ b/elf/tst-audit25b.c +@@ -76,7 +76,7 @@ do_test (int argc, char *argv[]) + + { + struct support_capture_subprocess result +- = support_capture_subprogram (spargv[0], spargv); ++ = support_capture_subprogram (spargv[0], spargv, NULL); + support_capture_subprocess_check (&result, "tst-audit25a", 0, + sc_allow_stderr); + +@@ -102,7 +102,7 @@ do_test (int argc, char *argv[]) + { + setenv ("LD_BIND_NOW", "1", 0); + struct support_capture_subprocess result +- = support_capture_subprogram (spargv[0], spargv); ++ = support_capture_subprogram (spargv[0], spargv, NULL); + support_capture_subprocess_check (&result, "tst-audit25a", 0, + sc_allow_stderr); + +diff --git a/elf/tst-glibc-hwcaps-2-cache.c b/elf/tst-glibc-hwcaps-2-cache.c +index 81ab44ff78ddbb57..af91476ccafeecff 100644 +--- a/elf/tst-glibc-hwcaps-2-cache.c ++++ b/elf/tst-glibc-hwcaps-2-cache.c +@@ -32,7 +32,7 @@ main (int argc, char **argv) + /* Run ldconfig to populate the cache. */ + char *command = xasprintf ("%s/ldconfig", support_install_rootsbindir); + struct support_capture_subprocess result = +- support_capture_subprogram (command, &((char *) { NULL })); ++ support_capture_subprogram (command, &((char *) { NULL }), NULL); + support_capture_subprocess_check (&result, "ldconfig", 0, sc_allow_none); + free (command); + +diff --git a/elf/tst-rtld-run-static.c b/elf/tst-rtld-run-static.c +index b2650e85ffbcdc20..f05c00eb7b76958b 100644 +--- a/elf/tst-rtld-run-static.c ++++ b/elf/tst-rtld-run-static.c +@@ -30,7 +30,7 @@ do_test (void) + { + char *argv[] = { (char *) "ld.so", ldconfig_path, (char *) "--help", NULL }; + struct support_capture_subprocess cap +- = support_capture_subprogram (support_objdir_elf_ldso, argv); ++ = support_capture_subprogram (support_objdir_elf_ldso, argv, NULL); + support_capture_subprocess_check (&cap, "no --argv0", 0, sc_allow_stdout); + puts ("info: output without --argv0:"); + puts (cap.out.buffer); +@@ -46,7 +46,7 @@ do_test (void) + ldconfig_path, (char *) "--help", NULL + }; + struct support_capture_subprocess cap +- = support_capture_subprogram (support_objdir_elf_ldso, argv); ++ = support_capture_subprogram (support_objdir_elf_ldso, argv, NULL); + support_capture_subprocess_check (&cap, "with --argv0", 0, sc_allow_stdout); + puts ("info: output with --argv0:"); + puts (cap.out.buffer); +diff --git a/elf/tst-tunables.c b/elf/tst-tunables.c +index dff34ed748b4ae83..4884dd09f0ddc505 100644 +--- a/elf/tst-tunables.c ++++ b/elf/tst-tunables.c +@@ -396,7 +396,7 @@ do_test (int argc, char *argv[]) + tests[i].value); + setenv (tests[i].name, tests[i].value, 1); + struct support_capture_subprocess result +- = support_capture_subprogram (spargv[0], spargv); ++ = support_capture_subprogram (spargv[0], spargv, NULL); + support_capture_subprocess_check (&result, "tst-tunables", 0, + sc_allow_stderr); + support_capture_subprocess_free (&result); +diff --git a/support/capture_subprocess.h b/support/capture_subprocess.h +index 8cbdca3b9dfb41ba..57bb941e7d1e5c84 100644 +--- a/support/capture_subprocess.h ++++ b/support/capture_subprocess.h +@@ -35,11 +35,12 @@ struct support_capture_subprocess + struct support_capture_subprocess support_capture_subprocess + (void (*callback) (void *), void *closure); + +-/* Issue FILE with ARGV arguments by using posix_spawn and capture standard +- output, standard error, and the exit status. The out.buffer and err.buffer +- are handle as support_capture_subprocess. */ ++/* Issue FILE with ARGV arguments and ENVP environments by using posix_spawn ++ and capture standard output, standard error, and the exit status. If ++ ENVP is NULL the current environment variable is used. The out.buffer and ++ err.buffer are handle by support_capture_subprocess. */ + struct support_capture_subprocess support_capture_subprogram +- (const char *file, char *const argv[]); ++ (const char *file, char *const argv[], char *const envp[]); + + /* Copy the running program into a setgid binary and run it with + CHILD_ID argument. If the program exits with a non-zero status, +diff --git a/support/subprocess.h b/support/subprocess.h +index 8fbb895353d61965..8274a2b22bb10296 100644 +--- a/support/subprocess.h ++++ b/support/subprocess.h +@@ -33,10 +33,11 @@ struct support_subprocess + struct support_subprocess support_subprocess + (void (*callback) (void *), void *closure); + +-/* Issue FILE with ARGV arguments by using posix_spawn and return is PID, a +- pipe redirected to STDOUT, and a pipe redirected to STDERR. */ ++/* Issue FILE with ARGV arguments and ENVP environments by using posix_spawn ++ and return is PID, a pipe redirected to STDOUT, and a pipe redirected to ++ STDERR. If ENVP is NULL the current environment variable is used. */ + struct support_subprocess support_subprogram +- (const char *file, char *const argv[]); ++ (const char *file, char *const argv[], char *const envp[]); + + /* Invoke program FILE with ARGV arguments by using posix_spawn and wait for it + to complete. Return program exit status. */ +diff --git a/support/support_capture_subprocess.c b/support/support_capture_subprocess.c +index 8dc95f8aa723b6bc..cbc695106483ab54 100644 +--- a/support/support_capture_subprocess.c ++++ b/support/support_capture_subprocess.c +@@ -98,13 +98,14 @@ support_capture_subprocess (void (*callback) (void *), void *closure) + } + + struct support_capture_subprocess +-support_capture_subprogram (const char *file, char *const argv[]) ++support_capture_subprogram (const char *file, char *const argv[], ++ char *const envp[]) { - const char *env; -@@ -62,7 +64,7 @@ static const struct envvar_t filtered_envvars[] = - { "MALLOC_TRIM_THRESHOLD_", FILTERED_VALUE }, - { "RES_OPTIONS", FILTERED_VALUE }, - { "LD_DEBUG", "all" }, -- { "LD_DEBUG_OUTPUT", "/tmp/some-file" }, -+ { "LD_DEBUG_OUTPUT", LD_DEBUG_OUTPUT }, - { "LD_WARN", FILTERED_VALUE }, - { "LD_VERBOSE", FILTERED_VALUE }, - { "LD_BIND_NOW", "0" }, -@@ -75,6 +77,14 @@ static const struct envvar_t unfiltered_envvars[] = - { "LD_ASSUME_KERNEL", UNFILTERED_VALUE }, - }; + struct support_capture_subprocess result; + xopen_memstream (&result.out); + xopen_memstream (&result.err); -+static void -+unlink_ld_debug_output (pid_t pid) -+{ -+ char *output = xasprintf ("%s.%d", LD_DEBUG_OUTPUT, pid); -+ unlink (output); -+ free (output); -+} -+ - static int - test_child (void) +- struct support_subprocess proc = support_subprogram (file, argv); ++ struct support_subprocess proc = support_subprogram (file, argv, envp); + + support_capture_poll (&result, &proc); + return result; +diff --git a/support/support_subprocess.c b/support/support_subprocess.c +index a2fef394d42ea4f9..b692a7f8b178502d 100644 +--- a/support/support_subprocess.c ++++ b/support/support_subprocess.c +@@ -69,7 +69,7 @@ support_subprocess (void (*callback) (void *), void *closure) + } + + struct support_subprocess +-support_subprogram (const char *file, char *const argv[]) ++support_subprogram (const char *file, char *const argv[], char *const envp[]) { -@@ -139,13 +149,21 @@ do_test (int argc, char **argv) - /* Setgid child process. */ - if (argc == 2 && strcmp (argv[1], SETGID_CHILD) == 0) - { -+ pid_t ppid = getppid (); -+ - if (getgid () == getegid ()) -- /* This can happen if the file system is mounted nosuid. */ -- FAIL_UNSUPPORTED ("SGID failed: GID and EGID match (%jd)\n", -- (intmax_t) getgid ()); -+ { -+ /* This can happen if the file system is mounted nosuid. */ -+ unlink_ld_debug_output (ppid); -+ -+ FAIL_UNSUPPORTED ("SGID failed: GID and EGID match (%jd)\n", -+ (intmax_t) getgid ()); -+ } + struct support_subprocess result = support_subprocess_init (); - int ret = test_child (); +@@ -84,7 +84,8 @@ support_subprogram (const char *file, char *const argv[]) + xposix_spawn_file_actions_addclose (&fa, result.stdout_pipe[1]); + xposix_spawn_file_actions_addclose (&fa, result.stderr_pipe[1]); -+ unlink_ld_debug_output (ppid); -+ - if (ret != 0) - exit (1); - return 0; +- result.pid = xposix_spawn (file, &fa, NULL, argv, environ); ++ result.pid = xposix_spawn (file, &fa, NULL, argv, ++ envp == NULL ? environ : envp); + + xclose (result.stdout_pipe[1]); + xclose (result.stderr_pipe[1]); +diff --git a/support/tst-support_capture_subprocess.c b/support/tst-support_capture_subprocess.c +index 8145548982a935cb..756fb75d195cdf8a 100644 +--- a/support/tst-support_capture_subprocess.c ++++ b/support/tst-support_capture_subprocess.c +@@ -238,7 +238,7 @@ do_subprogram (const struct test *test) + args[argc] = NULL; + TEST_VERIFY (argc < argv_size); + +- return support_capture_subprogram (args[0], args); ++ return support_capture_subprogram (args[0], args, NULL); + } + + enum test_type +diff --git a/sysdeps/x86/tst-hwcap-tunables.c b/sysdeps/x86/tst-hwcap-tunables.c +index bc573c7435130dee..94307283d7cdbdc7 100644 +--- a/sysdeps/x86/tst-hwcap-tunables.c ++++ b/sysdeps/x86/tst-hwcap-tunables.c +@@ -133,7 +133,7 @@ do_test (int argc, char *argv[]) + setenv ("GLIBC_TUNABLES", tunable, 1); + + struct support_capture_subprocess result +- = support_capture_subprogram (spargv[0], spargv); ++ = support_capture_subprogram (spargv[0], spargv, NULL); + support_capture_subprocess_check (&result, "tst-tunables", 0, + sc_allow_stderr); + support_capture_subprocess_free (&result); diff --git a/glibc-RHEL-142193-2.patch b/glibc-RHEL-142193-2.patch index 4d5fcf5..0d4b684 100644 --- a/glibc-RHEL-142193-2.patch +++ b/glibc-RHEL-142193-2.patch @@ -16,6 +16,10 @@ Date: Thu Jan 15 22:29:46 2026 +0100 Reviewed-by: Carlos O'Donell +Conflicts: + elf/tst-env-setuid.c + (Downstream is missing commit 5d23dfb289174d73b8907b86d2bef7a3ca889840) + diff --git a/elf/rtld.c b/elf/rtld.c index cd790e37f2a323a4..8b189a87f76e7e08 100644 --- a/elf/rtld.c @@ -45,23 +49,23 @@ index cd790e37f2a323a4..8b189a87f76e7e08 100644 LD_DEBUG_OUTPUT environment variable is given, we write the debug messages to this file. */ diff --git a/elf/tst-env-setuid.c b/elf/tst-env-setuid.c -index 479087f0e738a4d0..7336ccc4e0c01084 100644 +index c084aa4c1a382152..ff4acd07e5e8b986 100644 --- a/elf/tst-env-setuid.c +++ b/elf/tst-env-setuid.c -@@ -40,7 +40,11 @@ static char SETGID_CHILD[] = "setgid-child"; +@@ -40,6 +40,12 @@ static char SETGID_CHILD[] = "setgid-child"; # define PROFILE_LIB "tst-sonamemove-runmod2.so" #endif --#define LD_DEBUG_OUTPUT "/tmp/some-file" +/* Computed path for LD_DEBUG_OUTPUT. */ +static char *debugoutputpath; + +/* Expected file name for erroneous LD_PROFILE output. */ +static char *profilepath; - ++ struct envvar_t { -@@ -58,13 +62,14 @@ static const struct envvar_t filtered_envvars[] = + const char *env; +@@ -56,13 +62,14 @@ static const struct envvar_t filtered_envvars[] = { "LD_LIBRARY_PATH", FILTERED_VALUE }, { "LD_PRELOAD", FILTERED_VALUE }, { "LD_PROFILE", PROFILE_LIB }, @@ -72,21 +76,12 @@ index 479087f0e738a4d0..7336ccc4e0c01084 100644 { "MALLOC_TRIM_THRESHOLD_", FILTERED_VALUE }, { "RES_OPTIONS", FILTERED_VALUE }, { "LD_DEBUG", "all" }, -- { "LD_DEBUG_OUTPUT", LD_DEBUG_OUTPUT }, +- { "LD_DEBUG_OUTPUT", "/tmp/some-file" }, + { "LD_DEBUG_OUTPUT", "overwritten" }, /* Not actually used. */ { "LD_WARN", FILTERED_VALUE }, { "LD_VERBOSE", FILTERED_VALUE }, { "LD_BIND_NOW", "0" }, -@@ -80,7 +85,7 @@ static const struct envvar_t unfiltered_envvars[] = - static void - unlink_ld_debug_output (pid_t pid) - { -- char *output = xasprintf ("%s.%d", LD_DEBUG_OUTPUT, pid); -+ char *output = xasprintf ("%s.%d", debugoutputpath, pid); - unlink (output); - free (output); - } -@@ -122,18 +127,12 @@ test_child (void) +@@ -112,18 +119,12 @@ test_child (void) } /* Also check if no profile file was created. @@ -110,7 +105,7 @@ index 479087f0e738a4d0..7336ccc4e0c01084 100644 return ret; } -@@ -146,6 +145,11 @@ do_test (int argc, char **argv) +@@ -136,6 +137,11 @@ do_test (int argc, char **argv) if (argc >= 2 && strstr (argv[1], LD_SO) != 0) FAIL_UNSUPPORTED ("dynamic test requires --enable-hardcoded-path-in-tests"); @@ -122,7 +117,7 @@ index 479087f0e738a4d0..7336ccc4e0c01084 100644 /* Setgid child process. */ if (argc == 2 && strcmp (argv[1], SETGID_CHILD) == 0) { -@@ -166,7 +170,6 @@ do_test (int argc, char **argv) +@@ -148,7 +154,6 @@ do_test (int argc, char **argv) if (ret != 0) exit (1); @@ -130,7 +125,7 @@ index 479087f0e738a4d0..7336ccc4e0c01084 100644 } else { -@@ -180,20 +183,25 @@ do_test (int argc, char **argv) +@@ -162,20 +167,25 @@ do_test (int argc, char **argv) e++) setenv (e->env, e->value, 1); diff --git a/glibc-RHEL-142193-3.patch b/glibc-RHEL-142193-3.patch new file mode 100644 index 0000000..e1a8ab7 --- /dev/null +++ b/glibc-RHEL-142193-3.patch @@ -0,0 +1,28 @@ +commit 34d98aea6c1eaf7750a992bae55b2bca24898eab +Author: Florian Weimer +Date: Sat Jan 24 10:29:22 2026 +0100 + + support: Fix memory leaks in support_subprogram, support_subprogram_wait + + Reviewed-by: Adhemerval Zanella + +diff --git a/support/support_subprocess.c b/support/support_subprocess.c +index b692a7f8b178502d..ec0c069470a586ac 100644 +--- a/support/support_subprocess.c ++++ b/support/support_subprocess.c +@@ -86,6 +86,7 @@ support_subprogram (const char *file, char *const argv[], char *const envp[]) + + result.pid = xposix_spawn (file, &fa, NULL, argv, + envp == NULL ? environ : envp); ++ posix_spawn_file_actions_destroy (&fa); + + xclose (result.stdout_pipe[1]); + xclose (result.stderr_pipe[1]); +@@ -102,6 +103,7 @@ support_subprogram_wait (const char *file, char *const argv[]) + struct support_subprocess res = support_subprocess_init (); + + res.pid = xposix_spawn (file, &fa, NULL, argv, environ); ++ posix_spawn_file_actions_destroy (&fa); + + return support_process_wait (&res); + } diff --git a/glibc-RHEL-142193-4.patch b/glibc-RHEL-142193-4.patch new file mode 100644 index 0000000..eaac987 --- /dev/null +++ b/glibc-RHEL-142193-4.patch @@ -0,0 +1,52 @@ +commit e8502182f09211663c1583960442eb6ff502a33e +Author: Florian Weimer +Date: Sat Jan 24 10:29:22 2026 +0100 + + support: Add support_hardcoded_paths_in_test + + It indicates whether glibc was configured with + --enable-hardcoded-path-in-tests. + + Reviewed-by: Adhemerval Zanella + +diff --git a/support/Makefile b/support/Makefile +index aee37b9c82e94499..18051532e628b887 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -250,6 +250,12 @@ CFLAGS-support_paths.c = \ + -DCOMPLOCALEDIR_PATH=\"$(complocaledir)\" \ + -DSYSCONFDIR_PATH=\"$(sysconfdir)\" + ++ifeq ($(build-hardcoded-path-in-tests),yes) ++CFLAGS-support_paths.c += -DHARDCODED_PATHS_IN_TEST=true ++else ++CFLAGS-support_paths.c += -DHARDCODED_PATHS_IN_TEST=false ++endif ++ + # Build with exception handling and asynchronous unwind table support. + CFLAGS-.oS += -fexceptions -fasynchronous-unwind-tables + +diff --git a/support/support.h b/support/support.h +index 2717e5583add690b..df80c81e4178bc9e 100644 +--- a/support/support.h ++++ b/support/support.h +@@ -147,6 +147,9 @@ extern const char support_complocaledir_prefix[]; + /* Corresponds to the install's etc/ directory. */ + extern const char support_sysconfdir_prefix[]; + ++/* If true, glibc was configured with --enable-hardcoded-path-in-tests. */ ++extern const bool support_hardcoded_paths_in_test; ++ + /* Copies the file at the path FROM to TO. If TO does not exist, it + is created. If TO is a regular file, it is truncated before + copying. The file mode is copied, but the permissions are not. */ +diff --git a/support/support_paths.c b/support/support_paths.c +index 3cad09abd2244a3d..1ad605b6e2273525 100644 +--- a/support/support_paths.c ++++ b/support/support_paths.c +@@ -99,3 +99,5 @@ const char support_sysconfdir_prefix[] = SYSCONFDIR_PATH; + #else + # error please -DSYSCONFDIR_PATH=something in the Makefile + #endif ++ ++const bool support_hardcoded_paths_in_test = HARDCODED_PATHS_IN_TEST; diff --git a/glibc-RHEL-142193-5.patch b/glibc-RHEL-142193-5.patch new file mode 100644 index 0000000..68cdcff --- /dev/null +++ b/glibc-RHEL-142193-5.patch @@ -0,0 +1,40 @@ +commit 458a6a2b935f60a25a136846fe8b7a4723296dda +Author: Florian Weimer +Date: Sat Jan 24 10:29:39 2026 +0100 + + support: Reinitialize containers if /etc is present + + This prevents test failures because configuration file leftovers + unexpectedly change glibc for future tests. Whether this + triggers depends on test execution order. + + Adding postclean.req files manually (before this change) appears + too error-prone. + + Reviewed-by: DJ Delorie + +diff --git a/support/test-container.c b/support/test-container.c +index a9c9926c21f3a21e..f2853f6a71475420 100644 +--- a/support/test-container.c ++++ b/support/test-container.c +@@ -134,7 +134,9 @@ int verbose = 0; + - 'mkdirp': A minimal "mkdir -p FILE" command. + + * mytest.root/postclean.req causes fresh rsync (with delete) after +- test if present ++ test if present. If /etc is present, the testroot is cleaned, ++ too. This prevents further tests from using special ++ configurations in /etc from previous tests. + + * mytest.root/ldconfig.run causes ldconfig to be issued prior + test execution (to setup the initial ld.so.cache). +@@ -868,7 +870,8 @@ main (int argc, char **argv) + if (strrchr (so_base, '/') != NULL) + strrchr (so_base, '/')[1] = 0; + +- if (file_exists (concat (command_root, "/postclean.req", NULL))) ++ if (file_exists (concat (command_root, "/postclean.req", NULL)) ++ || file_exists (concat (command_root, "/etc", NULL))) + do_postclean = 1; + + if (file_exists (concat (command_root, "/ldconfig.run", NULL))) diff --git a/glibc-RHEL-142193-6.patch b/glibc-RHEL-142193-6.patch new file mode 100644 index 0000000..fa23772 --- /dev/null +++ b/glibc-RHEL-142193-6.patch @@ -0,0 +1,506 @@ +commit 229f65f5f322609283c7104c80c8af6434dff628 +Author: Florian Weimer +Date: Mon Feb 2 21:15:48 2026 +0100 + + support: Add support_spawn_wrap and related functionality + + It allows us to write test cases in C that run tests with + dynamic linker wrapping. + + The iconv test case was auto-generated. The posix_spawn usage + is mechanical, and the interface it tests is newly added in this + commit, so this should be acceptable. + + Reviewed-by: Adhemerval Zanella + +diff --git a/support/Makefile b/support/Makefile +index 18051532e628b887..f32652685e3fdc94 100644 +--- a/support/Makefile ++++ b/support/Makefile +@@ -90,6 +90,7 @@ libsupport-routines = \ + support_shared_allocate \ + support_small_stack_thread_attribute \ + support_socket_so_timestamp_time64 \ ++ support_spawn_wrap \ + support_stack_alloc \ + support_stat_nanoseconds \ + support_subprocess \ +@@ -256,6 +257,11 @@ else + CFLAGS-support_paths.c += -DHARDCODED_PATHS_IN_TEST=false + endif + ++CFLAGS-support_spawn_wrap.c += \ ++ '-DRUN_PROGRAM_ENV=$(patsubst %, ELEMENT ("%"), $(run-program-env))' \ ++ '-DRTLD_PREFIX=$(patsubst %, ELEMENT ("%"), $(rtld-prefix))' \ ++ # CFLAGS-support_spawn_wrap.c ++ + # Build with exception handling and asynchronous unwind table support. + CFLAGS-.oS += -fexceptions -fasynchronous-unwind-tables + +@@ -344,6 +350,7 @@ tests = \ + tst-support_quote_string \ + tst-support_readdir \ + tst-support_record_failure \ ++ tst-support_spawn_wrap \ + tst-test_compare \ + tst-test_compare_blob \ + tst-test_compare_string \ +diff --git a/support/subprocess.h b/support/subprocess.h +index 8274a2b22bb10296..3438df28c23fac9e 100644 +--- a/support/subprocess.h ++++ b/support/subprocess.h +@@ -52,4 +52,36 @@ int support_process_wait (struct support_subprocess *proc); + then with a SIGKILL. Return the status as for waitpid call. */ + int support_process_terminate (struct support_subprocess *proc); + ++/* Arguments to pass to posix_spawn and related functions to run a ++ process under the built glibc. This overrides the dynamic linker, ++ its search path, and other search paths, such as for locales. */ ++struct support_spawn_wrapped ++{ ++ const char *path; ++ char *const *argv; ++ char *const *envp; ++}; ++ ++enum support_spawn_wrap_flags ++ { ++ /* Always wrap the invocation, even if test binaries are linked ++ with overridden the default paths to point into the build tree ++ (--enable-hardcoded-path-in-tests). Can be used to run ++ non-test binaries. */ ++ support_spawn_wrap_force = 1 << 0, ++ }; ++ ++/* Wrap the invocation for invoking testing. PATH is the program ++ path. If ARGV is null, no arguments are passed. If ENVP is null, ++ environ is used instead. The result must not be modified. It is a ++ deep copy of the inputs. */ ++struct support_spawn_wrapped *support_spawn_wrap (const char *path, ++ char *const argv[], ++ char *const envp[], ++ enum ++ support_spawn_wrap_flags); ++ ++/* Deallocate the result of support_spawn_wrap. */ ++void support_spawn_wrapped_free (struct support_spawn_wrapped *); ++ + #endif +diff --git a/support/support_spawn_wrap.c b/support/support_spawn_wrap.c +new file mode 100644 +index 0000000000000000..e61e12f486ca6a28 +--- /dev/null ++++ b/support/support_spawn_wrap.c +@@ -0,0 +1,171 @@ ++/* Wrap a subprocess invocation with an ld.so invocation. ++ Copyright (C) 2026 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define ELEMENT(s) s, ++static const char *const rtld_prefix[] = { RTLD_PREFIX "--argv0" }; ++static const char *const run_program_env[] = { RUN_PROGRAM_ENV }; ++#undef ELEMENT ++ ++/* Return a newly allocated argument vector, with ld.so wrapping per ++ rtld_prefix applied if WRAP is true. */ ++static char *const * ++rewrite_argv (const char *path, char *const argv[], bool wrap) ++{ ++ char *const substitute[] = { (char *) path, NULL}; ++ if (argv == NULL) ++ argv = substitute; ++ TEST_VERIFY (argv[0] != NULL); ++ ++ size_t length; ++ for (length = 0; argv[length] != 0; ++length) ++ ; ++ /* Potential wrapping, injected path, and null terminator. */ ++ length += array_length (rtld_prefix) + 1 + 1; ++ ++ char **result = xcalloc (length, sizeof (result)); ++ ++ size_t inpos = 0; ++ size_t outpos = 0; ++ if (wrap) ++ { ++ for (size_t i = 0; i < array_length (rtld_prefix); ++i) ++ { ++ TEST_VERIFY (outpos < length); ++ result[outpos++] = xstrdup (rtld_prefix[i]); ++ } ++ ++ /* --argv0 argument. */ ++ TEST_VERIFY (outpos < length); ++ result[outpos++] = xstrdup (argv[0]); ++ inpos = 1; ++ ++ /* Path to program as used by ld.so. */ ++ TEST_VERIFY (outpos < length); ++ result[outpos++] = xstrdup (path); ++ } ++ ++ for (; argv[inpos] != NULL; ++inpos) ++ { ++ TEST_VERIFY (outpos < length); ++ result[outpos++] = xstrdup (argv[inpos]); ++ } ++ ++ TEST_VERIFY (outpos < length); ++ return result; ++ ++} ++ ++/* Return a newly allocated, rewritten environment, with the settings ++ from run_program_env. */ ++static char *const * ++rewrite_env (char *const envp[]) ++{ ++ if (envp == NULL) ++ envp = environ; ++ ++ size_t length; ++ for (length = 0; envp[length] != 0; ++length) ++ ; ++ length += array_length (run_program_env) + 1; ++ ++ /* Set to true if an element of run_program_env is copied. This is ++ used to avoid adding it again. */ ++ bool copied[array_length (run_program_env)] = { false, }; ++ ++ char **result = xcalloc (length, sizeof (result)); ++ size_t outpos = 0; ++ for (size_t inpos = 0; envp[inpos] != NULL; ++inpos) ++ { ++ const char *to_copy = envp[inpos]; ++ /* If there is no assignment operator, this environment string ++ cannot be overridden. */ ++ const char *envp_assign = strchr (to_copy, '='); ++ if (envp_assign != NULL) ++ { ++ size_t length_with_assign = envp_assign - to_copy + 1; ++ for (size_t i = 0; i < array_length (run_program_env); ++i) ++ { ++ if (strncmp (to_copy, run_program_env[i], length_with_assign) ++ == 0 && !copied[i]) ++ { ++ to_copy = run_program_env[i]; ++ copied[i] = true; ++ break; ++ } ++ } ++ } ++ TEST_VERIFY (outpos < length); ++ result[outpos++] = xstrdup (to_copy); ++ } ++ ++ for (size_t i = 0; i < array_length (run_program_env); ++i) ++ { ++ TEST_VERIFY (strchr (run_program_env[i], '=') != 0); ++ if (!copied[i]) ++ { ++ TEST_VERIFY (outpos < length); ++ result[outpos++] = xstrdup (run_program_env[i]); ++ } ++ } ++ ++ TEST_VERIFY (outpos < length); ++ return result; ++} ++ ++struct support_spawn_wrapped * ++support_spawn_wrap (const char *path, ++ char *const argv[], ++ char *const envp[], ++ enum support_spawn_wrap_flags flags) ++{ ++ if (flags != 0) ++ TEST_COMPARE (flags, support_spawn_wrap_force); ++ bool force = flags & support_spawn_wrap_force; ++ bool wrap = force || !support_hardcoded_paths_in_test; ++ ++ struct support_spawn_wrapped *result = xmalloc (sizeof (*result)); ++ if (wrap) ++ result->path = xstrdup (support_objdir_elf_ldso); ++ else ++ result->path = xstrdup (path); ++ result->argv = rewrite_argv (path, argv, wrap); ++ result->envp = rewrite_env (envp); ++ return result; ++} ++ ++void ++support_spawn_wrapped_free (struct support_spawn_wrapped *wrapped) ++{ ++ free ((char *) wrapped->path); ++ for (size_t i = 0; wrapped->argv[i] != NULL; ++i) ++ free (wrapped->argv[i]); ++ free ((char **) wrapped->argv); ++ for (size_t i = 0; wrapped->envp[i] != NULL; ++i) ++ free (wrapped->envp[i]); ++ free ((char **) wrapped->envp); ++ free (wrapped); ++} +diff --git a/support/tst-support_spawn_wrap.c b/support/tst-support_spawn_wrap.c +new file mode 100644 +index 0000000000000000..d0bb8a419412c48d +--- /dev/null ++++ b/support/tst-support_spawn_wrap.c +@@ -0,0 +1,235 @@ ++/* Tests for support_spawn_wrap. ++ Copyright (C) 2026 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Return true if running via an explicit ld.so invocation. */ ++static bool ++running_via_ldso (void) ++{ ++ char *self = realpath ("/proc/self/exe", NULL); ++ if (self == NULL) ++ FAIL_UNSUPPORTED ("/proc/self/exe not available"); ++ char *ldso = realpath (support_objdir_elf_ldso, NULL); ++ TEST_VERIFY_EXIT (ldso != NULL); ++ bool result = strcmp (self, ldso) == 0; ++ free (ldso); ++ free (self); ++ return result; ++} ++ ++static void ++test_subprocess (int argc, char **argv) ++{ ++ { ++ char *argc_env = getenv ("argc"); ++ if (argc_env != NULL) ++ { ++ char *argc_arg = xasprintf ("%d", argc); ++ TEST_COMPARE_STRING (argc_arg, argc_env); ++ free (argc_arg); ++ } ++ } ++ ++ if (argc >= 2 && strcmp (argv[1], "alpha") == 0) ++ { ++ TEST_COMPARE (argc, 4); ++ TEST_COMPARE_STRING (argv[0], "program"); ++ TEST_COMPARE_STRING (argv[2], "beta"); ++ TEST_COMPARE_STRING (argv[3], "gamma"); ++ TEST_COMPARE_STRING (argv[4], NULL); ++ } ++ else if (argc >= 2 && strcmp (argv[1], "check-env") == 0) ++ printf ("%d %s\n", argc, getenv ("extra")); ++ else if (argc >= 2 && strcmp (argv[1], "check-ld.so") == 0) ++ TEST_VERIFY (running_via_ldso ()); ++} ++ ++/* The "recurse" environment variable and the --recurse option ++ indicate recursive invocation. */ ++static int flag_recurse; ++#define CMDLINE_OPTIONS \ ++ { "recurse", no_argument, &flag_recurse, 1 }, \ ++ /* CMDLINE_OPTION */ ++ ++static void ++prepare (int argc, char **argv) ++{ ++ if (getenv ("recurse") != NULL || flag_recurse) ++ { ++ test_subprocess (argc, argv); ++ support_record_failure_barrier (); ++ exit (0); ++ } ++} ++ ++#define PREPARE prepare ++ ++/* Test wrapping of a non-test program (iconv). This uses posix_spawn ++ directly, mainly for illustrative purposes. */ ++void ++test_iconv (void) ++{ ++ char *iconv_prog = xasprintf ("%s/iconv/iconv_prog", support_objdir_root); ++ char *argv[] = { (char *) "iconv", (char *) "-f", (char *) "UTF-8", ++ (char *) "-t", (char *) "ISO-8859-1", NULL }; ++ struct support_spawn_wrapped *w ++ = support_spawn_wrap (iconv_prog, argv, NULL, support_spawn_wrap_force); ++ ++ /* Set up pipes for stdin, stdout, and stderr. */ ++ int stdin_pipe[2]; ++ xpipe (stdin_pipe); ++ int stdout_pipe[2]; ++ xpipe (stdout_pipe); ++ int stderr_pipe[2]; ++ xpipe (stderr_pipe); ++ ++ posix_spawn_file_actions_t fa; ++ posix_spawn_file_actions_init (&fa); ++ xposix_spawn_file_actions_adddup2 (&fa, stdin_pipe[0], STDIN_FILENO); ++ xposix_spawn_file_actions_addclose (&fa, stdin_pipe[0]); ++ xposix_spawn_file_actions_addclose (&fa, stdin_pipe[1]); ++ xposix_spawn_file_actions_adddup2 (&fa, stdout_pipe[1], STDOUT_FILENO); ++ xposix_spawn_file_actions_addclose (&fa, stdout_pipe[0]); ++ xposix_spawn_file_actions_addclose (&fa, stdout_pipe[1]); ++ xposix_spawn_file_actions_adddup2 (&fa, stderr_pipe[1], STDERR_FILENO); ++ xposix_spawn_file_actions_addclose (&fa, stderr_pipe[0]); ++ xposix_spawn_file_actions_addclose (&fa, stderr_pipe[1]); ++ ++ pid_t pid = xposix_spawn (w->path, &fa, NULL, w->argv, w->envp); ++ posix_spawn_file_actions_destroy (&fa); ++ ++ xclose (stdin_pipe[0]); ++ xclose (stdout_pipe[1]); ++ xclose (stderr_pipe[1]); ++ ++ /* Write UTF-8 encoding of "äöü\n" to stdin. */ ++ xwrite (stdin_pipe[1], "\xc3\xa4\xc3\xb6\xc3\xbc\n", 7); ++ xclose (stdin_pipe[1]); ++ ++ /* Read the converted output from the pipe. */ ++ char buf[16]; ++ ssize_t ret = read (stdout_pipe[0], buf, sizeof (buf)); ++ xclose (stdout_pipe[0]); ++ ++ /* ISO-8859-1 encoding of "äöü\n". */ ++ TEST_COMPARE_BLOB (buf, ret, "\xe4\xf6\xfc\n", 4); ++ ++ int status; ++ xwaitpid (pid, &status, 0); ++ TEST_COMPARE (status, 0); ++ ++ /* Check that nothing has been written to stderr. */ ++ ret = read (stderr_pipe[0], buf, sizeof (buf)); ++ TEST_COMPARE (ret, 0); ++ xclose (stderr_pipe[0]); ++ ++ support_spawn_wrapped_free (w); ++ free (iconv_prog); ++} ++ ++static int ++do_test (void) ++{ ++ char *program = xasprintf ("%s/support/tst-support_spawn_wrap", ++ support_objdir_root); ++ ++ { ++ char *env[] = { (char *) "recurse=", (char *) "argc=1", NULL }; ++ struct support_spawn_wrapped *w ++ = support_spawn_wrap (program, NULL, env, 0); ++ struct support_capture_subprocess proc ++ = support_capture_subprogram (w->path, w->argv, w->envp); ++ support_capture_subprocess_check (&proc, "no arguments", 0, sc_allow_none); ++ support_capture_subprocess_free (&proc); ++ support_spawn_wrapped_free (w); ++ } ++ ++ { ++ char *argv[] = { (char *) "program", (char *) "--recurse", NULL }; ++ struct support_spawn_wrapped *w ++ = support_spawn_wrap (program, argv, NULL, 0); ++ struct support_capture_subprocess proc ++ = support_capture_subprogram (w->path, w->argv, w->envp); ++ support_capture_subprocess_check (&proc, "default envvironment", 0, ++ sc_allow_none); ++ support_capture_subprocess_free (&proc); ++ support_spawn_wrapped_free (w); ++ } ++ ++ { ++ char *argv[] = { (char *) "program", (char *) "alpha", (char *) "beta", ++ (char *) "gamma", NULL }; ++ char *env[] = { (char *) "recurse=", (char *) "argc=4", NULL }; ++ struct support_spawn_wrapped *w ++ = support_spawn_wrap (program, argv, env, 0); ++ struct support_capture_subprocess proc ++ = support_capture_subprogram (w->path, w->argv, w->envp); ++ support_capture_subprocess_check (&proc, "3 arguments", 0, sc_allow_none); ++ support_capture_subprocess_free (&proc); ++ support_spawn_wrapped_free (w); ++ } ++ ++ { ++ char *argv[] = { (char *) "program", (char *) "check-env", NULL }; ++ char *env[] = { (char *) "recurse=", (char *) "argc=2", ++ (char *) "extra=17", NULL }; ++ struct support_spawn_wrapped *w ++ = support_spawn_wrap (program, argv, env, 0); ++ struct support_capture_subprocess proc ++ = support_capture_subprogram (w->path, w->argv, w->envp); ++ TEST_COMPARE_STRING (proc.out.buffer, "2 17\n"); ++ support_capture_subprocess_check (&proc, "check-env", 0, sc_allow_stdout); ++ support_capture_subprocess_free (&proc); ++ support_spawn_wrapped_free (w); ++ } ++ ++ test_iconv (); ++ ++ /* This may trigger EXIT_UNSUPPORTED, so run this before the tests ++ that rely on running_via_ldso. */ ++ TEST_COMPARE (!running_via_ldso (), support_hardcoded_paths_in_test); ++ ++ { ++ char *argv[] = { (char *) "program", (char *) "check-ld.so", NULL }; ++ char *env[] = { (char *) "recurse=", NULL }; ++ struct support_spawn_wrapped *w ++ = support_spawn_wrap (program, argv, env, support_spawn_wrap_force); ++ struct support_capture_subprocess proc ++ = support_capture_subprogram (w->path, w->argv, w->envp); ++ support_capture_subprocess_check (&proc, "check-ld.so", 0, sc_allow_none); ++ support_capture_subprocess_free (&proc); ++ support_spawn_wrapped_free (w); ++ } ++ ++ free (program); ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-142193-7.patch b/glibc-RHEL-142193-7.patch new file mode 100644 index 0000000..65c10f2 --- /dev/null +++ b/glibc-RHEL-142193-7.patch @@ -0,0 +1,171 @@ +commit 364426a59ee30ee3e528e5b5cae36b5dee045320 +Author: Florian Weimer +Date: Mon Feb 2 21:15:48 2026 +0100 + + elf: Add test case for LD_PROFILE/LD_PROFILE_OUTPUT interaction + + This verifies that LD_PROFILE is correctly ignored if LD_PROFILE_OUTPUT + is not set. + + The test was initially auto-generated, then heavily edited and re-edited + for brevity and clarity. The test uses glibc-specific interfaces + (including one that did not exist at all a couple of hours ago), so + this should be unproblematic. + +diff --git a/elf/Makefile b/elf/Makefile +index cf54ea084489b9cf..73c426ae9c1da05c 100644 +--- a/elf/Makefile ++++ b/elf/Makefile +@@ -448,6 +448,7 @@ tests += \ + tst-initorder \ + tst-initorder2 \ + tst-latepthread \ ++ tst-ld_profile \ + tst-main1 \ + tst-next-ver \ + tst-nodelete-dlclose \ +diff --git a/elf/tst-ld_profile.c b/elf/tst-ld_profile.c +new file mode 100644 +index 0000000000000000..6c392f682b950b00 +--- /dev/null ++++ b/elf/tst-ld_profile.c +@@ -0,0 +1,139 @@ ++/* Test LD_PROFILE/LD_PROFILE_OUTPUT interaction (bug 33797). ++ Copyright (C) 2026 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Expected profile file path (based on LD_PROFILE_OUTPUT and LIBC_SO). */ ++static char *profile_file_path; ++ ++/* Path to this test program for recursive invocation. */ ++static char *program; ++ ++/* LD_PROFILE_OUTPUT environment variable setting. */ ++static char *ld_profile_output_env; ++ ++/* Run the test program with the specified environment array. */ ++static struct support_capture_subprocess ++run_test_program (char *env[]) ++{ ++ /* Make sure the the potential output file does not exist. */ ++ unlink (profile_file_path); ++ ++/* Command line arguments for recursive invocation. This turns the ++ test program in a no-op (with LD_PROFILE output the only side effect). */ ++ static char *recurse_argv[] = ++ { ++ (char *) "tst-ld_profile", (char *) "recurse", NULL ++ }; ++ struct support_spawn_wrapped *w ++ = support_spawn_wrap (program, recurse_argv, env, 0); ++ struct support_capture_subprocess proc ++ = support_capture_subprogram (w->path, w->argv, w->envp); ++ support_spawn_wrapped_free (w); ++ ++ return proc; ++} ++ ++static void ++test_profile_without_output (void) ++{ ++ char *env[] = { (char *) "LD_PROFILE=" LIBC_SO, NULL }; ++ struct support_capture_subprocess proc = run_test_program (env); ++ const char *expected_warning = ++ "warning: LD_PROFILE ignored because LD_PROFILE_OUTPUT not specified\n"; ++ TEST_COMPARE_STRING (proc.err.buffer, expected_warning); ++ support_capture_subprocess_check (&proc, ++ "LD_PROFILE without LD_PROFILE_OUTPUT", ++ 0, sc_allow_stderr); ++ support_capture_subprocess_free (&proc); ++ ++ TEST_VERIFY (access (profile_file_path, F_OK) != 0); ++ /* Also check the old /var/tmp path. */ ++ TEST_VERIFY (access ("/var/tmp/" LIBC_SO ".profile", F_OK) != 0); ++} ++ ++static void ++test_profile_with_output (void) ++{ ++ char *env[] = { (char *) "LD_PROFILE=" LIBC_SO, ld_profile_output_env, NULL }; ++ struct support_capture_subprocess proc = run_test_program (env); ++ support_capture_subprocess_check (&proc, "LD_PROFILE with LD_PROFILE_OUTPUT", ++ 0, sc_allow_none); ++ support_capture_subprocess_free (&proc); ++ ++ /* This asserts that the file was created. */ ++ TEST_COMPARE (unlink (profile_file_path), 0); ++} ++ ++static void ++test_output_without_profile (void) ++{ ++ char *env[] = { ld_profile_output_env, NULL }; ++ struct support_capture_subprocess proc = run_test_program (env); ++ support_capture_subprocess_check (&proc, ++ "LD_PROFILE_OUTPUT without LD_PROFILE", ++ 0, sc_allow_none); ++ support_capture_subprocess_free (&proc); ++ ++ TEST_VERIFY (access (profile_file_path, F_OK) != 0); ++} ++ ++static void ++prepare (int argc, char **argv) ++{ ++ /* Do nothing on recursive invocation. */ ++ if (argc >= 2 && strcmp (argv[1], "recurse") == 0) ++ exit (0); ++} ++ ++#define PREPARE prepare ++ ++static int ++do_test (void) ++{ ++ if (access ("/var/tmp/" LIBC_SO ".profile", F_OK) == 0) ++ FAIL_UNSUPPORTED ("/var/tmp/" LIBC_SO ".profile exists"); ++ ++ /* Temporary directory for the profile output. */ ++ char *profile_output_dir = support_create_temp_directory ("tst-ld_profile"); ++ profile_file_path = xasprintf ("%s/%s.profile", profile_output_dir, LIBC_SO); ++ ld_profile_output_env = xasprintf ("LD_PROFILE_OUTPUT=%s", ++ profile_output_dir); ++ program = xasprintf ("%s/elf/tst-ld_profile", support_objdir_root); ++ ++ test_profile_without_output (); ++ test_profile_with_output (); ++ test_output_without_profile (); ++ ++ free (program); ++ free (ld_profile_output_env); ++ free (profile_file_path); ++ free (profile_output_dir); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-142675-1.patch b/glibc-RHEL-142675-1.patch new file mode 100644 index 0000000..6fcbd16 --- /dev/null +++ b/glibc-RHEL-142675-1.patch @@ -0,0 +1,249 @@ +commit 8ca2fe7e96c0ccf04d32d7002d7a6d9edcb9f8ee +Author: Sergey Kolosov +Date: Fri Oct 10 17:15:27 2025 +0200 + + resolv: Add tests for getaddrinfo returning EAI_AGAIN [BZ #16849] + + This patch adds two tests that verify correct behavior of getaddrinfo + when DNS resolution fails with a temporary error. Both tests ensure + that getaddrinfo returns EAI_AGAIN in cases where no valid address can + be resolved due to network or resolver failure. + + * tst-getaddrinfo-eai-again.c + Runs inside the glibc test-container without any DNS server + configured. The test performs queries using AF_INET, AF_INET6, + and AF_UNSPEC and verifies that getaddrinfo returns EAI_AGAIN + when resolution fails. + + * tst-getaddrinfo-eai-again-timeout.c + Runs outside of the container but uses the resolv_test framework + to simulate network failures. The test covers two failure modes: + - No response from the server (resolv_response_drop) + - Zero-length reply from the server + In both cases, getaddrinfo is expected to return EAI_AGAIN. + + Reviewed-by: Florian Weimer + +diff --git a/resolv/Makefile b/resolv/Makefile +index 87a5c1ccc6dabc8a..dfe04d9efffcb8c3 100644 +--- a/resolv/Makefile ++++ b/resolv/Makefile +@@ -80,7 +80,10 @@ routines_no_fortify += \ + # routines_no_fortify + + tests = tst-aton tst-leaks tst-inet_ntop +-tests-container = tst-leaks2 ++tests-container += \ ++ tst-getaddrinfo-eai-again \ ++ tst-leaks2 \ ++ # tests-container + + tests-internal += tst-inet_aton_exact + +@@ -139,6 +142,7 @@ tests-static += tst-ns_rr_cursor + # These tests need libdl. + ifeq (yes,$(build-shared)) + tests += \ ++ tst-getaddrinfo-eai-again-timeout \ + tst-resolv-ai_idn \ + tst-resolv-ai_idn-latin1 \ + tst-resolv-ai_idn-nolibidn2 \ +@@ -282,6 +286,8 @@ $(objpfx)mtrace-tst-resolv-res_ninit.out: $(objpfx)tst-resolv-res_ninit.out + + $(objpfx)tst-bug18665-tcp: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-bug18665: $(objpfx)libresolv.so $(shared-thread-library) ++$(objpfx)tst-getaddrinfo-eai-again-timeout: \ ++ $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-ai_idn: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-ai_idn-latin1: \ + $(objpfx)libresolv.so $(shared-thread-library) +diff --git a/resolv/tst-getaddrinfo-eai-again-timeout.c b/resolv/tst-getaddrinfo-eai-again-timeout.c +new file mode 100644 +index 0000000000000000..ec4a6563b7b5ae51 +--- /dev/null ++++ b/resolv/tst-getaddrinfo-eai-again-timeout.c +@@ -0,0 +1,122 @@ ++/* Test for BZ #16849. Verify that getaddrinfo correctly returns ++ EAI_AGAIN when DNS resolution fails due to timeout or malformed ++ responses. ++ ++ This test uses two simulated failure modes: ++ - The DNS server does not respond at all (resolv_response_drop). ++ - The DNS server responds with a zero-length packet. ++ ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* Track whether the callbacks were actually invoked. */ ++static volatile bool response_called_drop = false; ++static volatile bool response_called_zero_len = false; ++ ++/* Simulate a DNS server that sends a zero-length response. */ ++static void ++response_zero_len (const struct resolv_response_context *ctx, ++ struct resolv_response_builder *b, ++ const char *qname, uint16_t qclass, uint16_t qtype) ++{ ++ response_called_zero_len = true; ++ /* Do nothing — zero-length reply. */ ++} ++ ++/* Simulate a DNS server that drops the request. */ ++static void ++response_drop (const struct resolv_response_context *ctx, ++ struct resolv_response_builder *b, ++ const char *qname, uint16_t qclass, uint16_t qtype) ++{ ++ response_called_drop = true; ++ resolv_response_drop (b); ++} ++ ++/* Query getaddrinfo for multiple families and expect EAI_AGAIN. */ ++static void ++query_host (const char *host_name) ++{ ++ int family[] = { AF_INET, AF_INET6, AF_UNSPEC }; ++ const char *family_names[] = { "AF_INET", "AF_INET6", "AF_UNSPEC" }; ++ ++ for (int i = 0; i < 3; i++) ++ { ++ struct addrinfo hints = ++ { ++ .ai_socktype = 0, ++ .ai_protocol = 0, ++ .ai_family = family[i], ++ .ai_flags = 0, ++ }; ++ struct addrinfo *result; ++ int res = getaddrinfo (host_name, NULL, &hints, &result); ++ if (res != EAI_AGAIN) ++ FAIL_EXIT1 ("getaddrinfo (%s, %s) returned %s, expected EAI_AGAIN", ++ host_name, family_names[i], gai_strerror (res)); ++ } ++} ++ ++/* Simulate DNS server dropping all queries. */ ++static void ++test_drop (void) ++{ ++ struct resolv_test *aux = resolv_test_start ++ ((struct resolv_redirect_config) ++ { ++ .response_callback = response_drop, ++ }); ++ /* Reduce default timeout to make the test run faster. */ ++ _res.retrans = 1; ++ _res.retry = 1; ++ query_host ("site.example"); ++ resolv_test_end (aux); ++} ++ ++/* Simulate DNS server sending zero-length responses. */ ++static void ++test_zero_len_packet (void) ++{ ++ struct resolv_test *aux = resolv_test_start ++ ((struct resolv_redirect_config) ++ { ++ .response_callback = response_zero_len, ++ }); ++ query_host ("site.example"); ++ resolv_test_end (aux); ++} ++ ++static int ++do_test (void) ++{ ++ test_drop (); ++ test_zero_len_packet (); ++ ++ if (!response_called_drop) ++ FAIL_EXIT1 ("response_drop callback was not called"); ++ if (!response_called_zero_len) ++ FAIL_EXIT1 ("response_zero_len callback was not called"); ++ return 0; ++} ++ ++#include +diff --git a/resolv/tst-getaddrinfo-eai-again.c b/resolv/tst-getaddrinfo-eai-again.c +new file mode 100644 +index 0000000000000000..21daa6c1682d1156 +--- /dev/null ++++ b/resolv/tst-getaddrinfo-eai-again.c +@@ -0,0 +1,56 @@ ++/* Test for BZ #16849. Verify that getaddrinfo correctly returns ++ EAI_AGAIN error code if DNS query fails due to a network failure. ++ ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++ ++/* Query getaddrinfo with various address families and verify that ++ it returns EAI_AGAIN when DNS resolution fails. */ ++static void ++query_host (const char *host_name) ++{ ++ int family[] = { AF_INET, AF_INET6, AF_UNSPEC }; ++ const char *family_names[] = { "AF_INET", "AF_INET6", "AF_UNSPEC" }; ++ ++ for (int i = 0; i < 3; i++) ++ { ++ struct addrinfo hints = ++ { ++ .ai_socktype = 0, ++ .ai_protocol = 0, ++ .ai_family = family[i], ++ .ai_flags = 0, ++ }; ++ struct addrinfo *result; ++ int res = getaddrinfo (host_name, NULL, &hints, &result); ++ if (res != EAI_AGAIN) ++ FAIL_EXIT1 ("getaddrinfo (%s, %s) returned %s, expected EAI_AGAIN", ++ host_name, family_names[i], gai_strerror (res)); ++ } ++} ++ ++static int ++do_test (void) ++{ ++ query_host ("site.example"); ++ return 0; ++} ++ ++#include diff --git a/glibc-RHEL-142675-2.patch b/glibc-RHEL-142675-2.patch new file mode 100644 index 0000000..e461bb1 --- /dev/null +++ b/glibc-RHEL-142675-2.patch @@ -0,0 +1,251 @@ +commit c995686e2cbe2a3ab2a11877a61c14a2e1fc35cb +Author: Florian Weimer +Date: Tue Mar 3 18:48:47 2026 +0100 + + support: no_override_resolv_conf_search flag for resolver test framework + + It is required to test "search ." in /etc/resolv.conf files. The + default is to override the search path isolate from unexpected + settings in the test execution environment. + + Reviewed-by: Carlos O'Donell + +Conflicts: + resolv/Makefile + (fixup context) + +diff --git a/resolv/Makefile b/resolv/Makefile +index dfe04d9efffcb8c3..7659862ab257f7d3 100644 +--- a/resolv/Makefile ++++ b/resolv/Makefile +@@ -83,6 +83,7 @@ tests = tst-aton tst-leaks tst-inet_ntop + tests-container += \ + tst-getaddrinfo-eai-again \ + tst-leaks2 \ ++ tst-resolv-no-search \ + # tests-container + + tests-internal += tst-inet_aton_exact +@@ -314,6 +315,7 @@ $(objpfx)tst-resolv-invalid-cname: $(objpfx)libresolv.so \ + $(shared-thread-library) + $(objpfx)tst-resolv-invalid-ptr: $(objpfx)libresolv.so \ + $(shared-thread-library) ++$(objpfx)tst-resolv-no-search: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-noaaaa: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-noaaaa-vc: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-nondecimal: $(objpfx)libresolv.so $(shared-thread-library) +diff --git a/resolv/tst-resolv-no-search.c b/resolv/tst-resolv-no-search.c +new file mode 100644 +index 0000000000000000..29701d4772507507 +--- /dev/null ++++ b/resolv/tst-resolv-no-search.c +@@ -0,0 +1,174 @@ ++/* Test using "search ." in /etc/resolv.conf. ++ Copyright (C) 2026 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 ++ . */ ++ ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Check that plain res_init loads the configuration as expected. */ ++static void ++test_res_init (void *ignored) ++{ ++ res_init (); ++ TEST_COMPARE_STRING (_res.dnsrch[0], "."); ++ TEST_COMPARE_STRING (_res.dnsrch[1], NULL); ++} ++ ++static void ++response (const struct resolv_response_context *ctx, ++ struct resolv_response_builder *b, ++ const char *qname, uint16_t qclass, uint16_t qtype) ++{ ++ TEST_VERIFY_EXIT (qclass == C_IN); ++ TEST_COMPARE (ctx->server_index, 0); ++ ++ if (strncmp (qname, "does-not-exist", strlen ("does-not-exist")) == 0) ++ { ++ resolv_response_init (b, (struct resolv_response_flags) ++ { .rcode = ns_r_nxdomain }); ++ resolv_response_add_question (b, qname, qclass, qtype); ++ return; ++ } ++ ++ resolv_response_init (b, (struct resolv_response_flags) { }); ++ resolv_response_add_question (b, qname, qclass, qtype); ++ resolv_response_section (b, ns_s_an); ++ ++ resolv_response_open_record (b, qname, qclass, qtype, 0); ++ switch (qtype) ++ { ++ case T_A: ++ { ++ char ipv4[4] = {192, 0, 2, 17}; ++ resolv_response_add_data (b, &ipv4, sizeof (ipv4)); ++ } ++ break; ++ case T_AAAA: ++ { ++ char ipv6[16] ++ = {0x20, 0x01, 0xd, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}; ++ resolv_response_add_data (b, &ipv6, sizeof (ipv6)); ++ } ++ break; ++ } ++ resolv_response_close_record (b); ++} ++ ++static void ++check_h (const char *name, int family, const char *expected) ++{ ++ if (family == AF_INET) ++ { ++ char *query = xasprintf ("gethostbyname (\"%s\")", name); ++ check_hostent (query, gethostbyname (name), expected); ++ free (query); ++ } ++ { ++ char *query = xasprintf ("gethostbyname2 (\"%s\", %d)", name, family); ++ check_hostent (query, gethostbyname2 (name, family), expected); ++ free (query); ++ } ++} ++ ++static void ++check_ai (const char *name, int family, const char *expected) ++{ ++ struct addrinfo hints = { .ai_family = family, .ai_socktype = SOCK_STREAM, }; ++ struct addrinfo *ai; ++ char *query = xasprintf ("%s:80 [%d]", name, hints.ai_family); ++ int ret = getaddrinfo (name, "80", &hints, &ai); ++ check_addrinfo (query, ai, ret, expected); ++ if (ret == 0) ++ freeaddrinfo (ai); ++ free (query); ++} ++ ++static int ++do_test (void) ++{ ++ support_isolate_in_subprocess (test_res_init, NULL); ++ ++ struct resolv_test *aux = resolv_test_start ++ ((struct resolv_redirect_config) ++ { ++ .response_callback = response, ++ .no_override_resolv_conf_search = true, ++ }); ++ ++ check_h ("www.example", AF_INET, ++ "name: www.example\n" ++ "address: 192.0.2.17\n"); ++ check_h ("www.example", AF_INET6, ++ "name: www.example\n" ++ "address: 2001:db8::1\n"); ++ check_ai ("www.example", AF_UNSPEC, ++ "address: STREAM/TCP 192.0.2.17 80\n" ++ "address: STREAM/TCP 2001:db8::1 80\n"); ++ check_ai ("www.example", AF_INET, ++ "address: STREAM/TCP 192.0.2.17 80\n"); ++ check_ai ("www.example", AF_INET6, ++ "address: STREAM/TCP 2001:db8::1 80\n"); ++ check_h ("does-not-exist.example", AF_INET, ++ "error: HOST_NOT_FOUND\n"); ++ check_h ("does-not-exist.example", AF_INET6, ++ "error: HOST_NOT_FOUND\n"); ++ check_ai ("does-not-exist.example", AF_UNSPEC, ++ "error: Name or service not known\n"); ++ check_ai ("does-not-exist.example", AF_INET, ++ "error: Name or service not known\n"); ++ check_ai ("does-not-exist.example", AF_INET6, ++ "error: Name or service not known\n"); ++ ++ /* With trailing dot. */ ++ check_h ("www.example.", AF_INET, ++ "name: www.example\n" ++ "address: 192.0.2.17\n"); ++ check_h ("www.example.", AF_INET6, ++ "name: www.example\n" ++ "address: 2001:db8::1\n"); ++ check_ai ("www.example.", AF_UNSPEC, ++ "address: STREAM/TCP 192.0.2.17 80\n" ++ "address: STREAM/TCP 2001:db8::1 80\n"); ++ check_ai ("www.example.", AF_INET, ++ "address: STREAM/TCP 192.0.2.17 80\n"); ++ check_ai ("www.example.", AF_INET6, ++ "address: STREAM/TCP 2001:db8::1 80\n"); ++ check_h ("does-not-exist.example.", AF_INET, ++ "error: HOST_NOT_FOUND\n"); ++ check_h ("does-not-exist.example.", AF_INET6, ++ "error: HOST_NOT_FOUND\n"); ++ check_ai ("does-not-exist.example.", AF_UNSPEC, ++ "error: Name or service not known\n"); ++ check_ai ("does-not-exist.example.", AF_INET, ++ "error: Name or service not known\n"); ++ check_ai ("does-not-exist.example.", AF_INET6, ++ "error: Name or service not known\n"); ++ ++ resolv_test_end (aux); ++ ++ return 0; ++} ++ ++#include +diff --git a/resolv/tst-resolv-no-search.root/etc/resolv.conf b/resolv/tst-resolv-no-search.root/etc/resolv.conf +new file mode 100644 +index 0000000000000000..5ace648869a31edb +--- /dev/null ++++ b/resolv/tst-resolv-no-search.root/etc/resolv.conf +@@ -0,0 +1 @@ ++search . +diff --git a/support/resolv_test.c b/support/resolv_test.c +index d4cc26b4aa24ce3a..a07c7bdd87358941 100644 +--- a/support/resolv_test.c ++++ b/support/resolv_test.c +@@ -1098,6 +1098,9 @@ resolv_test_init (void) + static void + set_search_path (struct resolv_redirect_config config) + { ++ if (config.no_override_resolv_conf_search) ++ return; ++ + memset (_res.defdname, 0, sizeof (_res.defdname)); + memset (_res.dnsrch, 0, sizeof (_res.dnsrch)); + +diff --git a/support/resolv_test.h b/support/resolv_test.h +index 63ef13db7c947c31..84a31d090fbfd79a 100644 +--- a/support/resolv_test.h ++++ b/support/resolv_test.h +@@ -96,6 +96,9 @@ struct resolv_redirect_config + domain name as well. */ + const char *search[7]; + ++ /* If true, do not override the search path loaded from /etc/resolv.conf. */ ++ bool no_override_resolv_conf_search; ++ + /* Number of servers to activate in resolv. 0 means the default, + resolv_max_test_servers. */ + int nscount; diff --git a/glibc-RHEL-142675-3.patch b/glibc-RHEL-142675-3.patch new file mode 100644 index 0000000..17a0306 --- /dev/null +++ b/glibc-RHEL-142675-3.patch @@ -0,0 +1,98 @@ +commit dc9ca785a5fe2059a9b04ab336520d463d9a715b +Author: Carlos Peón Costa +Date: Tue Mar 3 18:48:47 2026 +0100 + + resolv: Avoid duplicate query if search list contains '.' (bug 33804) + + Co-authored-by: Florian Weimer + Signed-off-by: Florian Weimer + Reviewed-by: Carlos O'Donell + +diff --git a/resolv/res_query.c b/resolv/res_query.c +index bd55453552e9e9c9..abd00f65bb729969 100644 +--- a/resolv/res_query.c ++++ b/resolv/res_query.c +@@ -354,7 +354,7 @@ __res_context_search (struct resolv_context *ctx, + char tmp[NS_MAXDNAME]; + u_int dots; + int trailing_dot, ret, saved_herrno; +- int got_nodata = 0, got_servfail = 0, root_on_list = 0; ++ int got_nodata = 0, got_servfail = 0; + int tried_as_is = 0; + int searched = 0; + +@@ -433,8 +433,11 @@ __res_context_search (struct resolv_context *ctx, + domain. */ + if (dname[0] == '.') + dname++; +- if (dname[0] == '\0') +- root_on_list++; ++ if (dname[0] == '\0') { ++ if (tried_as_is) ++ continue; ++ tried_as_is++; ++ } + + ret = __res_context_querydomain + (ctx, name, dname, class, type, +@@ -506,7 +509,7 @@ __res_context_search (struct resolv_context *ctx, + * unless RES_NOTLDQUERY is set and there were no dots. + */ + if ((dots || !searched || (statp->options & RES_NOTLDQUERY) == 0) +- && !(tried_as_is || root_on_list)) { ++ && !tried_as_is) { + ret = __res_context_querydomain + (ctx, name, NULL, class, type, + answer, anslen, answerp, answerp2, nanswerp2, +diff --git a/resolv/tst-resolv-no-search.c b/resolv/tst-resolv-no-search.c +index 29701d4772507507..7d78d4044cf50e48 100644 +--- a/resolv/tst-resolv-no-search.c ++++ b/resolv/tst-resolv-no-search.c +@@ -27,6 +27,11 @@ + #include + #include + ++/* Used to check for duplicated queries (bug 33804). POSIX does not ++ explicitly say that socket calls (as used in the resolver tests) ++ provide synchronization. */ ++static _Atomic unsigned int query_count; ++ + /* Check that plain res_init loads the configuration as expected. */ + static void + test_res_init (void *ignored) +@@ -43,6 +48,7 @@ response (const struct resolv_response_context *ctx, + { + TEST_VERIFY_EXIT (qclass == C_IN); + TEST_COMPARE (ctx->server_index, 0); ++ ++query_count; + + if (strncmp (qname, "does-not-exist", strlen ("does-not-exist")) == 0) + { +@@ -82,12 +88,16 @@ check_h (const char *name, int family, const char *expected) + if (family == AF_INET) + { + char *query = xasprintf ("gethostbyname (\"%s\")", name); ++ query_count = 0; + check_hostent (query, gethostbyname (name), expected); ++ TEST_COMPARE (query_count, 1); + free (query); + } + { + char *query = xasprintf ("gethostbyname2 (\"%s\", %d)", name, family); ++ query_count = 0; + check_hostent (query, gethostbyname2 (name, family), expected); ++ TEST_COMPARE (query_count, 1); + free (query); + } + } +@@ -98,8 +108,10 @@ check_ai (const char *name, int family, const char *expected) + struct addrinfo hints = { .ai_family = family, .ai_socktype = SOCK_STREAM, }; + struct addrinfo *ai; + char *query = xasprintf ("%s:80 [%d]", name, hints.ai_family); ++ query_count = 0; + int ret = getaddrinfo (name, "80", &hints, &ai); + check_addrinfo (query, ai, ret, expected); ++ TEST_COMPARE (query_count, family == AF_UNSPEC ? 2 : 1); + if (ret == 0) + freeaddrinfo (ai); + free (query); diff --git a/glibc-RHEL-142675-4.patch b/glibc-RHEL-142675-4.patch new file mode 100644 index 0000000..78caae2 --- /dev/null +++ b/glibc-RHEL-142675-4.patch @@ -0,0 +1,42 @@ +commit 1b2f868fb4958fd59875695c1828d9804b116dc2 +Author: Florian Weimer +Date: Tue Apr 7 10:49:13 2026 +0200 + + resolv: Run tst-getaddrinfo-eai-again in a network namespace + + This ensures that the test does not accidentally use a name server + running on 127.0.0.1. + + Tested-by: Frédéric Bérat + Reviewed-by: Frédéric Bérat + +diff --git a/resolv/tst-getaddrinfo-eai-again.c b/resolv/tst-getaddrinfo-eai-again.c +index 21daa6c1682d1156..8a9c2dda1c471435 100644 +--- a/resolv/tst-getaddrinfo-eai-again.c ++++ b/resolv/tst-getaddrinfo-eai-again.c +@@ -20,6 +20,7 @@ + + #include + #include ++#include + + /* Query getaddrinfo with various address families and verify that + it returns EAI_AGAIN when DNS resolution fails. */ +@@ -49,6 +50,9 @@ query_host (const char *host_name) + static int + do_test (void) + { ++ /* Hide any name server that might be running on 127.0.0.1. */ ++ support_enter_network_namespace (); ++ + query_host ("site.example"); + return 0; + } +diff --git a/resolv/tst-getaddrinfo-eai-again.root/tst-getaddrinfo-eai-again.script b/resolv/tst-getaddrinfo-eai-again.root/tst-getaddrinfo-eai-again.script +new file mode 100644 +index 0000000000000000..383f92b5b0ae7edd +--- /dev/null ++++ b/resolv/tst-getaddrinfo-eai-again.root/tst-getaddrinfo-eai-again.script +@@ -0,0 +1,2 @@ ++# Enable entering a network namespace. ++su diff --git a/glibc-RHEL-146428.patch b/glibc-RHEL-146428.patch new file mode 100644 index 0000000..b9154d7 --- /dev/null +++ b/glibc-RHEL-146428.patch @@ -0,0 +1,111 @@ +commit b52619f2e8bbae57d79c95538346198c4a9f24a6 +Author: Arjun Shankar +Date: Mon Jan 26 13:49:37 2026 +0100 + + dlfcn: Add dlinfo request type RTLD_DI_ORIGIN_PATH (bug #24298) + + The existing dlinfo request type RTLD_DI_ORIGIN used for querying the + value of the '$ORIGIN' dynamic string token is prone to buffer + overflows. + + This commit adds a new request type named RTLD_DI_ORIGIN_PATH that + returns a pointer to the dynamic string token (i.e. the 'l_origin' field + in the link map) instead. The dlinfo manual is updated with the new + request type, and the description of RTLD_DI_ORIGIN is updated to + recommend RTLD_DI_ORIGIN_PATH instead. + + A test for the new request type is also added to tst-dlinfo. + + Reviewed-by: Carlos O'Donell + +diff --git a/dlfcn/dlfcn.h b/dlfcn/dlfcn.h +index 574796261105cad0..3d98a294ead93679 100644 +--- a/dlfcn/dlfcn.h ++++ b/dlfcn/dlfcn.h +@@ -167,7 +167,12 @@ enum + the number of program headers in the array. */ + RTLD_DI_PHDR = 11, + +- RTLD_DI_MAX = 11 ++ /* Treat ARG as `const char **' and at that location, store the address ++ of the directory name used to expand $ORIGIN in this shared object's ++ dependency file names. */ ++ RTLD_DI_ORIGIN_PATH = 12, ++ ++ RTLD_DI_MAX = 12 + }; + + +diff --git a/dlfcn/dlinfo.c b/dlfcn/dlinfo.c +index b0feb9362d587761..c2064db5a32cf49f 100644 +--- a/dlfcn/dlinfo.c ++++ b/dlfcn/dlinfo.c +@@ -67,6 +67,13 @@ dlinfo_doit (void *argsblock) + strcpy (args->arg, l->l_origin); + break; + ++ case RTLD_DI_ORIGIN_PATH: ++ if (l->l_origin != (char *) -1) ++ *(const char **) args->arg = l->l_origin; ++ else ++ *(const char **) args->arg = NULL; ++ break; ++ + case RTLD_DI_TLS_MODID: + *(size_t *) args->arg = 0; + *(size_t *) args->arg = l->l_tls_modid; +diff --git a/dlfcn/tst-dlinfo.c b/dlfcn/tst-dlinfo.c +index 5f93e3bf8928e063..5cc89457f6d39c8e 100644 +--- a/dlfcn/tst-dlinfo.c ++++ b/dlfcn/tst-dlinfo.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + + #define TEST_FUNCTION do_test () + +@@ -56,6 +57,13 @@ do_test (void) + printf ("origin: %s\n", origin); + } + ++ const char *origin_path; ++ TRY (RTLD_DI_ORIGIN_PATH, &origin_path) ++ { ++ TEST_COMPARE_STRING (origin, origin_path); ++ printf ("origin_path: %s\n", origin_path); ++ } ++ + Dl_serinfo counts; + TRY (RTLD_DI_SERINFOSIZE, &counts) + { +diff --git a/manual/dynlink.texi b/manual/dynlink.texi +index ead5455e30c10a61..86917c7452ca9f96 100644 +--- a/manual/dynlink.texi ++++ b/manual/dynlink.texi +@@ -482,13 +482,23 @@ The namespace identifier of @var{handle} is written to + @code{*@var{arg}}. The @var{arg} argument must be the address of an + object of type @code{Lmid_t}. + ++@item RTLD_DI_ORIGIN_PATH ++The @code{$ORIGIN} dynamic string token pointer for @var{handle} is written ++to @code{*@var{arg}}. The @var{arg} argument must be the address of a ++@code{const char *}. If the @code{$ORIGIN} could not be determined, the ++function still returns 0 but writes a null pointer to @code{*@var{arg}}. ++The returned string is only valid as long as the corresponding handle is ++valid. Accessing it after @code{dlclose} has been called for the ++corresponding @var{handle} is undefined behavior. ++ + @item RTLD_DI_ORIGIN + The value of the @code{$ORIGIN} dynamic string token for @var{handle} is + written to the character array starting at @var{arg} as a + null-terminated string. + + This request type should not be used because it is prone to buffer +-overflows. ++overflows. Instead, @code{RTLD_DI_ORIGIN_PATH} described above should be ++used. + + @item RTLD_DI_SERINFO + @itemx RTLD_DI_SERINFOSIZE diff --git a/glibc-RHEL-150270-1.patch b/glibc-RHEL-150270-1.patch new file mode 100644 index 0000000..c333823 --- /dev/null +++ b/glibc-RHEL-150270-1.patch @@ -0,0 +1,112 @@ +commit 7bb859f4198d0be19c31a9937eae4f6c2c9a079e +Author: Florian Weimer +Date: Fri Feb 13 09:02:07 2026 +0100 + + nss: Introduce dedicated struct nss_database_for_fork type + + The initialized field in struct nss_database_data is rather confusing + because it is not used by the regular NSS code, only by the fork + state synchronization code. Introduce a separate type and place + the initialized field there. + + Reviewed-by: Sam James + +diff --git a/nss/nss_database.c b/nss/nss_database.c +index efe77aeaff46a433..d642463e36db4681 100644 +--- a/nss/nss_database.c ++++ b/nss/nss_database.c +@@ -56,7 +56,6 @@ global_state_allocate (void *closure) + { + result->data.nsswitch_conf.size = -1; /* Force reload. */ + memset (result->data.services, 0, sizeof (result->data.services)); +- result->data.initialized = true; + result->data.reload_disabled = false; + __libc_lock_init (result->lock); + result->root_ino = 0; +@@ -451,8 +450,8 @@ nss_database_check_reload_and_get (struct nss_database_state *local, + /* Avoid overwriting the global configuration until we have loaded + everything successfully. Otherwise, if the file change + information changes back to what is in the global configuration, +- the lookups would use the partially-written configuration. */ +- struct nss_database_data staging = { .initialized = true, }; ++ the lookups would use the partially-written configuration. */ ++ struct nss_database_data staging = { }; + + bool ok = nss_database_reload (&staging, &initial); + +@@ -503,7 +502,7 @@ __nss_database_freeres (void) + } + + void +-__nss_database_fork_prepare_parent (struct nss_database_data *data) ++__nss_database_fork_prepare_parent (struct nss_database_for_fork *data) + { + /* Do not use allocate_once to trigger loading unnecessarily. */ + struct nss_database_state *local = atomic_load_acquire (&global_database_state); +@@ -515,20 +514,21 @@ __nss_database_fork_prepare_parent (struct nss_database_data *data) + because it avoids acquiring the lock during the actual + fork. */ + __libc_lock_lock (local->lock); +- *data = local->data; ++ data->data = local->data; + __libc_lock_unlock (local->lock); ++ data->initialized = true; + } + } + + void +-__nss_database_fork_subprocess (struct nss_database_data *data) ++__nss_database_fork_subprocess (struct nss_database_for_fork *data) + { + struct nss_database_state *local = atomic_load_acquire (&global_database_state); + if (data->initialized) + { + /* Restore the state at the point of the fork. */ + assert (local != NULL); +- local->data = *data; ++ local->data = data->data; + __libc_lock_init (local->lock); + } + else if (local != NULL) +diff --git a/nss/nss_database.h b/nss/nss_database.h +index a81c4fae21998e4f..81a8cd53d6a1a86f 100644 +--- a/nss/nss_database.h ++++ b/nss/nss_database.h +@@ -70,15 +70,21 @@ struct nss_database_data + struct file_change_detection nsswitch_conf; + nss_action_list services[NSS_DATABASE_COUNT]; + int reload_disabled; /* Actually bool; int for atomic access. */ +- bool initialized; ++}; ++ ++/* Use to store a consistent state snapshot across fork. */ ++struct nss_database_for_fork ++{ ++ bool initialized; /* Set to true if the data field below is initialized. */ ++ struct nss_database_data data; + }; + + /* Called by fork in the parent process, before forking. */ +-void __nss_database_fork_prepare_parent (struct nss_database_data *data) ++void __nss_database_fork_prepare_parent (struct nss_database_for_fork *) + attribute_hidden; + + /* Called by fork in the new subprocess, after forking. */ +-void __nss_database_fork_subprocess (struct nss_database_data *data) ++void __nss_database_fork_subprocess (struct nss_database_for_fork *) + attribute_hidden; + + #endif /* _NSS_DATABASE_H */ +diff --git a/posix/fork.c b/posix/fork.c +index cf9b80e7c059e748..0ffa5bc8dab83730 100644 +--- a/posix/fork.c ++++ b/posix/fork.c +@@ -50,7 +50,7 @@ __libc_fork (void) + + lastrun = __run_prefork_handlers (multiple_threads); + +- struct nss_database_data nss_database_data; ++ struct nss_database_for_fork nss_database_data; + + /* If we are not running multiple threads, we do not have to + preserve lock state. If fork runs from a signal handler, only diff --git a/glibc-RHEL-150270-2.patch b/glibc-RHEL-150270-2.patch new file mode 100644 index 0000000..38daeb6 --- /dev/null +++ b/glibc-RHEL-150270-2.patch @@ -0,0 +1,71 @@ +commit 28660f4b45afa8921c2faebaec2846f95f670ba0 +Author: Florian Weimer +Date: Fri Feb 13 09:02:07 2026 +0100 + + Linux: In getlogin_r, use utmp fallback only for specific errors + + Most importantly, if getwpuid_r fails, it does not make sense to retry + via utmp because the user ID obtained from there is less reliable than + the one from /proc/self/loginuid. + + Reviewed-by: Sam James + +diff --git a/sysdeps/unix/sysv/linux/getlogin_r.c b/sysdeps/unix/sysv/linux/getlogin_r.c +index 8f8decc8c0cfccce..25c574e95e70b22b 100644 +--- a/sysdeps/unix/sysv/linux/getlogin_r.c ++++ b/sysdeps/unix/sysv/linux/getlogin_r.c +@@ -37,7 +37,12 @@ __getlogin_r_loginuid (char *name, size_t namesize) + { + int fd = __open_nocancel ("/proc/self/loginuid", O_RDONLY); + if (fd == -1) +- return -1; ++ { ++ if (errno == ENOENT) ++ /* Trigger utmp fallback. */ ++ return -1; ++ return errno; ++ } + + /* We are reading a 32-bit number. 12 bytes are enough for the text + representation. If not, something is wrong. */ +@@ -45,6 +50,8 @@ __getlogin_r_loginuid (char *name, size_t namesize) + ssize_t n = TEMP_FAILURE_RETRY (__read_nocancel (fd, uidbuf, + sizeof (uidbuf))); + __close_nocancel_nostatus (fd); ++ if (n < 0) ++ return errno; + + uid_t uid; + char *endp; +@@ -53,12 +60,13 @@ __getlogin_r_loginuid (char *name, size_t namesize) + || (uidbuf[n] = '\0', + uid = strtoul (uidbuf, &endp, 10), + endp == uidbuf || *endp != '\0')) +- return -1; ++ return EINVAL; + + /* If there is no login uid, linux sets /proc/self/loginid to the sentinel + value of, (uid_t) -1, so check if that value is set and return early to + avoid making unneeded nss lookups. */ + if (uid == (uid_t) -1) ++ /* Trigger utmp fallback. */ + return -1; + + struct passwd pwd; +@@ -78,9 +86,14 @@ __getlogin_r_loginuid (char *name, size_t namesize) + } + } + +- if (res != 0 || tpwd == NULL) ++ if (res != 0) ++ { ++ result = res; ++ goto out; ++ } ++ if (tpwd == NULL) + { +- result = -1; ++ result = ENOENT; + goto out; + } + diff --git a/glibc-RHEL-150270-3.patch b/glibc-RHEL-150270-3.patch new file mode 100644 index 0000000..67a1d72 --- /dev/null +++ b/glibc-RHEL-150270-3.patch @@ -0,0 +1,401 @@ +commit 5b713b49443eb6a4e54e50e2f0147105f86dab02 +Author: Florian Weimer +Date: Fri Feb 13 09:02:07 2026 +0100 + + nss: Missing checks in __nss_configure_lookup, __nss_database_get (bug 28940) + + This avoids a null pointer dereference in the + nss_database_check_reload_and_get function, and assertion failures. + + Reviewed-by: Sam James + +diff --git a/nss/Makefile b/nss/Makefile +index 37bec502fcff2f72..400ee3d5eefe3bd1 100644 +--- a/nss/Makefile ++++ b/nss/Makefile +@@ -326,6 +326,7 @@ tests := \ + tst-gshadow \ + tst-nss-getpwent \ + tst-nss-hash \ ++ tst-nss-malloc-failure-getlogin_r \ + tst-nss-test1 \ + tst-nss-test2 \ + tst-nss-test4 \ +diff --git a/nss/nss_database.c b/nss/nss_database.c +index d642463e36db4681..6205cb8759f8b464 100644 +--- a/nss/nss_database.c ++++ b/nss/nss_database.c +@@ -250,9 +250,12 @@ __nss_configure_lookup (const char *dbname, const char *service_line) + + /* Force any load/cache/read whatever to happen, so we can override + it. */ +- __nss_database_get (db, &result); ++ if (!__nss_database_get (db, &result)) ++ return -1; + + local = nss_database_state_get (); ++ if (local == NULL) ++ return -1; + + result = __nss_action_parse (service_line); + if (result == NULL) +@@ -477,6 +480,8 @@ bool + __nss_database_get (enum nss_database db, nss_action_list *actions) + { + struct nss_database_state *local = nss_database_state_get (); ++ if (local == NULL) ++ return false; + return nss_database_check_reload_and_get (local, actions, db); + } + libc_hidden_def (__nss_database_get) +diff --git a/nss/tst-nss-malloc-failure-getlogin_r.c b/nss/tst-nss-malloc-failure-getlogin_r.c +new file mode 100644 +index 0000000000000000..0e2985ad57b07fce +--- /dev/null ++++ b/nss/tst-nss-malloc-failure-getlogin_r.c +@@ -0,0 +1,345 @@ ++/* Test NSS/getlogin_r with injected allocation failures (bug 28940). ++ Copyright (C) 2026 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* This test calls getpwuid_r via getlogin_r (on Linux). ++ ++ This test uses the NSS system configuration to exercise that code ++ path. It means that it can fail (crash) if malloc failure is not ++ handled by NSS modules for the passwd database. */ ++ ++/* Data structure allocated via MAP_SHARED, so that writes from the ++ subprocess are visible. */ ++struct shared_data ++{ ++ /* Number of tracked allocations performed so far. */ ++ volatile unsigned int allocation_count; ++ ++ /* If this number is reached, one allocation fails. */ ++ volatile unsigned int failing_allocation; ++ ++ /* The number of allocations performed during initialization ++ (before the actual getlogin_r call). */ ++ volatile unsigned int init_allocation_count; ++ ++ /* Error code of an expected getlogin_r failure. */ ++ volatile int expected_failure; ++ ++ /* The subprocess stores the expected name here. */ ++ char name[100]; ++}; ++ ++/* Allocation count in shared mapping. */ ++static struct shared_data *shared; ++ ++/* Returns true if a failure should be injected for this allocation. */ ++static bool ++fail_this_allocation (void) ++{ ++ if (shared != NULL) ++ { ++ unsigned int count = shared->allocation_count; ++ shared->allocation_count = count + 1; ++ return count == shared->failing_allocation; ++ } ++ else ++ return false; ++} ++ ++/* Failure-injecting wrappers for allocation functions used by glibc. */ ++ ++void * ++malloc (size_t size) ++{ ++ if (fail_this_allocation ()) ++ { ++ errno = ENOMEM; ++ return NULL; ++ } ++ extern __typeof (malloc) __libc_malloc; ++ return __libc_malloc (size); ++} ++ ++void * ++calloc (size_t a, size_t b) ++{ ++ if (fail_this_allocation ()) ++ { ++ errno = ENOMEM; ++ return NULL; ++ } ++ extern __typeof (calloc) __libc_calloc; ++ return __libc_calloc (a, b); ++} ++ ++void * ++realloc (void *ptr, size_t size) ++{ ++ if (fail_this_allocation ()) ++ { ++ errno = ENOMEM; ++ return NULL; ++ } ++ extern __typeof (realloc) __libc_realloc; ++ return __libc_realloc (ptr, size); ++} ++ ++/* No-op subprocess to verify that support_isolate_in_subprocess does ++ not perform any heap allocations. */ ++static void ++no_op (void *ignored) ++{ ++} ++ ++/* Perform a getlogin_r call in a subprocess, to obtain the number of ++ allocations used and the expected result of a successful call. */ ++static void ++initialize (void *configure_lookup) ++{ ++ shared->init_allocation_count = 0; ++ if (configure_lookup != NULL) ++ { ++ TEST_COMPARE (__nss_configure_lookup ("passwd", configure_lookup), 0); ++ shared->init_allocation_count = shared->allocation_count; ++ } ++ ++ shared->name[0] = '\0'; ++ int ret = getlogin_r (shared->name, sizeof (shared->name)); ++ if (ret != 0) ++ { ++ printf ("info: getlogin_r failed: %s (%d)\n", ++ strerrorname_np (ret), ret); ++ shared->expected_failure = ret; ++ } ++ else ++ { ++ shared->expected_failure = 0; ++ if (shared->name[0] == '\0') ++ FAIL ("error: getlogin_r succeeded without result\n"); ++ else ++ printf ("info: getlogin_r: \"%s\"\n", shared->name); ++ } ++} ++ ++/* Perform getlogin_r in a subprocess with fault injection. */ ++static void ++test_in_subprocess (void *configure_lookup) ++{ ++ if (configure_lookup != NULL ++ && __nss_configure_lookup ("passwd", configure_lookup) < 0) ++ { ++ printf ("info: __nss_configure_lookup failed: %s (%d)\n", ++ strerrorname_np (errno), errno); ++ TEST_COMPARE (errno, ENOMEM); ++ TEST_VERIFY (shared->allocation_count <= shared->init_allocation_count); ++ return; ++ } ++ ++ unsigned int inject_at = shared->failing_allocation; ++ char name[sizeof (shared->name)] = "name not set"; ++ int ret = getlogin_r (name, sizeof (name)); ++ shared->failing_allocation = ~0U; ++ ++ if (ret == 0) ++ { ++ TEST_COMPARE (shared->expected_failure, 0); ++ TEST_COMPARE_STRING (name, shared->name); ++ } ++ else ++ { ++ printf ("info: allocation %u failure results in error %s (%d)\n", ++ inject_at, strerrorname_np (ret), ret); ++ ++ if (ret != ENOMEM) ++ { ++ if (shared->expected_failure != 0) ++ TEST_COMPARE (ret, shared->expected_failure); ++ else if (configure_lookup == NULL) ++ /* The ENOENT failure can happen due to an issue related ++ to bug 22041: dlopen failure does not result in ENOMEM. */ ++ TEST_COMPARE (ret, ENOENT); ++ else ++ FAIL ("unexpected getlogin_r error"); ++ } ++ } ++ ++ if (shared->expected_failure == 0) ++ { ++ /* The second call should succeed. */ ++ puts ("info: about to perform second getlogin_r call"); ++ ret = getlogin_r (name, sizeof (name)); ++ if (configure_lookup == NULL) ++ { ++ /* This check can fail due to bug 22041 if the malloc error ++ injection causes a failure internally in dlopen. */ ++ if (ret != 0) ++ { ++ printf ("warning: second getlogin_r call failed with %s (%d)\n", ++ strerrorname_np (ret), ret); ++ TEST_COMPARE (ret, ENOENT); ++ } ++ } ++ else ++ /* If __nss_configure_lookup has been called, the error caching ++ bug does not happen because nss_files is built-in, and the ++ second getlogin_r is expected to succeed. */ ++ TEST_COMPARE (ret, 0); ++ if (ret == 0) ++ TEST_COMPARE_STRING (name, shared->name); ++ } ++} ++ ++/* Set by the --failing-allocation command line option. Together with ++ --direct, this can be used to trigger an allocation failure in the ++ original process, which may help with debugging. */ ++static int option_failing_allocation = -1; ++ ++/* Set by --override, to be used with --failing-allocation. Turns on ++ the __nss_configure_lookup call for passwd/files, which is disabled ++ by default. */ ++static int option_override = 0; ++ ++static int ++do_test (void) ++{ ++ char files[] = "files"; ++ ++ if (option_failing_allocation >= 0) ++ { ++ /* The test was invoked with --failing-allocation. Perform just ++ one test, using the original nsswitch.conf. This is a ++ condensed version of the probing/testing loop below. */ ++ printf ("info: testing with failing allocation %d\n", ++ option_failing_allocation); ++ shared = support_shared_allocate (sizeof (*shared)); ++ shared->failing_allocation = ~0U; ++ char *configure_lookup = option_override ? files : NULL; ++ support_isolate_in_subprocess (initialize, configure_lookup); ++ shared->allocation_count = 0; ++ shared->failing_allocation = option_failing_allocation; ++ test_in_subprocess (configure_lookup); /* No subprocess. */ ++ support_shared_free (shared); ++ shared = NULL; ++ return 0; ++ } ++ ++ bool any_success = false; ++ ++ for (int do_configure_lookup = 0; do_configure_lookup < 2; ++ ++do_configure_lookup) ++ { ++ if (do_configure_lookup) ++ puts ("info: testing with nsswitch.conf override"); ++ else ++ puts ("info: testing with original nsswitch.conf"); ++ ++ char *configure_lookup = do_configure_lookup ? files : NULL; ++ ++ shared = support_shared_allocate (sizeof (*shared)); ++ ++ /* Disable fault injection. */ ++ shared->failing_allocation = ~0U; ++ ++ support_isolate_in_subprocess (no_op, NULL); ++ TEST_COMPARE (shared->allocation_count, 0); ++ ++ support_isolate_in_subprocess (initialize, configure_lookup); ++ ++ if (shared->name[0] != '\0') ++ any_success = true; ++ ++ /* The number of allocations in the successful case. Once the ++ number of expected allocations is exceeded, injecting further ++ failures does not make a difference (assuming that the number ++ of malloc calls is deterministic). */ ++ unsigned int maximum_allocation_count = shared->allocation_count; ++ printf ("info: initial getlogin_r performed %u allocations\n", ++ maximum_allocation_count); ++ ++ for (unsigned int inject_at = 0; inject_at <= maximum_allocation_count; ++ ++inject_at) ++ { ++ printf ("info: running fault injection at allocation %u\n", ++ inject_at); ++ shared->allocation_count = 0; ++ shared->failing_allocation = inject_at; ++ support_isolate_in_subprocess (test_in_subprocess, configure_lookup); ++ } ++ ++ support_shared_free (shared); ++ shared = NULL; ++ } ++ ++ { ++ FILE *fp = fopen (_PATH_NSSWITCH_CONF, "r"); ++ if (fp == NULL) ++ printf ("info: no %s file\n", _PATH_NSSWITCH_CONF); ++ else ++ { ++ printf ("info: %s contents follows\n", _PATH_NSSWITCH_CONF); ++ int last_ch = '\n'; ++ while (true) ++ { ++ int ch = fgetc (fp); ++ if (ch == EOF) ++ break; ++ putchar (ch); ++ last_ch = ch; ++ } ++ if (last_ch != '\n') ++ putchar ('\n'); ++ printf ("(end of %s contents)\n", _PATH_NSSWITCH_CONF); ++ xfclose (fp); ++ } ++ } ++ ++ support_record_failure_barrier (); ++ ++ if (!any_success) ++ FAIL_UNSUPPORTED ("no successful getlogin_r calls"); ++ ++ return 0; ++} ++ ++static void ++cmdline_process (int c) ++{ ++ if (c == 'F') ++ option_failing_allocation = atoi (optarg); ++} ++ ++#define CMDLINE_OPTIONS \ ++ { "failing-allocation", required_argument, NULL, 'F' }, \ ++ { "override", no_argument, &option_override, 1 }, ++ ++#define CMDLINE_PROCESS cmdline_process ++ ++#include diff --git a/glibc-RHEL-151711-1.patch b/glibc-RHEL-151711-1.patch new file mode 100644 index 0000000..42a0ccc --- /dev/null +++ b/glibc-RHEL-151711-1.patch @@ -0,0 +1,57 @@ +commit 652c36b3ea917093bf60ad2a345987530c192821 +Author: Matteo Croce +Date: Sat Jun 14 11:59:03 2025 +0200 + + fstatat: extend tests and documentation + + Document the fstatat behaviour leading to a ENOENT errno, and extend + tests to test the case where filename does not exist. + + Signed-off-by: Matteo Croce + +diff --git a/io/tst-stat-time64.c b/io/tst-stat-time64.c +index 2d751a814ddc4706..bf5b0b4fb994167c 100644 +--- a/io/tst-stat-time64.c ++++ b/io/tst-stat-time64.c +@@ -52,6 +52,12 @@ fstat_check (int fd, const char *path, struct stat *st) + static void + fstatat_check (int fd, const char *path, struct stat *st) + { ++ TEST_COMPARE (fstatat (fd, "", st, 0), -1); ++ TEST_COMPARE (errno, ENOENT); ++ ++ TEST_COMPARE (fstatat (AT_FDCWD, "_non_existing_file", st, 0), -1); ++ TEST_COMPARE (errno, ENOENT); ++ + TEST_COMPARE (fstatat (fd, path, st, 0), 0); + } + +diff --git a/io/tst-stat.c b/io/tst-stat.c +index d11b25ec0921b1e2..d6f5e83aa06a5fbe 100644 +--- a/io/tst-stat.c ++++ b/io/tst-stat.c +@@ -56,6 +56,9 @@ fstatat_check (int fd, const char *path, struct stat *st) + TEST_COMPARE (fstatat (fd, "", st, 0), -1); + TEST_COMPARE (errno, ENOENT); + ++ TEST_COMPARE (fstatat (AT_FDCWD, "_non_existing_file", st, 0), -1); ++ TEST_COMPARE (errno, ENOENT); ++ + TEST_COMPARE (fstatat (fd, path, st, 0), 0); + } + +diff --git a/manual/filesys.texi b/manual/filesys.texi +index f21f21804251e480..d0ced84bf6bdbf8e 100644 +--- a/manual/filesys.texi ++++ b/manual/filesys.texi +@@ -2395,6 +2395,10 @@ The @var{flags} argument is not valid for this function. + @item ENOTDIR + The descriptor @var{filedes} is not associated with a directory, and + @var{filename} is a relative file name. ++ ++@item ENOENT ++The file named by @var{filename} does not exist, or @var{filename} is an ++empty string and @var{flags} does not contain @code{AT_EMPTY_PATH}. + @end table + + When the sources are compiled with @code{_FILE_OFFSET_BITS == 64} this diff --git a/glibc-RHEL-151711-2.patch b/glibc-RHEL-151711-2.patch new file mode 100644 index 0000000..9ea3122 --- /dev/null +++ b/glibc-RHEL-151711-2.patch @@ -0,0 +1,80 @@ +commit 521b4d6c4d5a7c84efd2742e0aac6311eaef005b +Author: Matteo Croce +Date: Tue Jun 24 18:40:13 2025 +0200 + + fstat: add test and documentation for an edge case. + + The fstatat behaviour when the target is a dangling symlink is different + if flags contains AT_SYMLINK_NOFOLLOW or not. + Add a test for this and document it. + +diff --git a/io/tst-stat.c b/io/tst-stat.c +index d6f5e83aa06a5fbe..b0f3d003c1d7127a 100644 +--- a/io/tst-stat.c ++++ b/io/tst-stat.c +@@ -62,12 +62,23 @@ fstatat_check (int fd, const char *path, struct stat *st) + TEST_COMPARE (fstatat (fd, path, st, 0), 0); + } + ++static void ++fstatat_link (const char *path, struct stat *st) ++{ ++ TEST_COMPARE (fstatat (AT_FDCWD, path, st, 0), -1); ++ TEST_COMPARE (errno, ENOENT); ++ ++ TEST_COMPARE (fstatat (AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW), 0); ++ TEST_COMPARE (!S_ISLNK(st->st_mode), 0); ++} ++ + typedef void (*test_t)(int, const char *path, struct stat *); + + static int + do_test (void) + { + char *path; ++ const char *linkame = "tst-fstat.linkname"; + int fd = create_temp_file ("tst-fstat.", &path); + TEST_VERIFY_EXIT (fd >= 0); + support_write_file_string (path, "abc"); +@@ -81,13 +92,13 @@ do_test (void) + printf ("warning: timestamp with nanoseconds not supported\n"); + + struct statx stx; ++ struct stat st; + TEST_COMPARE (statx (fd, path, 0, STATX_BASIC_STATS, &stx), 0); + + test_t tests[] = { stat_check, lstat_check, fstat_check, fstatat_check }; + + for (int i = 0; i < array_length (tests); i++) + { +- struct stat st; + tests[i](fd, path, &st); + + TEST_COMPARE (stx.stx_dev_major, major (st.st_dev)); +@@ -111,6 +122,10 @@ do_test (void) + } + } + ++ TEST_COMPARE (symlink ("tst-fstat.target", linkame), 0); ++ add_temp_file (linkame); ++ fstatat_link (linkame, &st); ++ + return 0; + } + +diff --git a/manual/filesys.texi b/manual/filesys.texi +index d0ced84bf6bdbf8e..4406201dab9ca3fb 100644 +--- a/manual/filesys.texi ++++ b/manual/filesys.texi +@@ -2397,8 +2397,9 @@ The descriptor @var{filedes} is not associated with a directory, and + @var{filename} is a relative file name. + + @item ENOENT +-The file named by @var{filename} does not exist, or @var{filename} is an +-empty string and @var{flags} does not contain @code{AT_EMPTY_PATH}. ++The file named by @var{filename} does not exist, it's a dangling symbolic link ++and @var{flags} does not contain @code{AT_SYMLINK_NOFOLLOW}, or @var{filename} ++is an empty string and @var{flags} does not contain @code{AT_EMPTY_PATH}. + @end table + + When the sources are compiled with @code{_FILE_OFFSET_BITS == 64} this diff --git a/glibc-RHEL-151711-3.patch b/glibc-RHEL-151711-3.patch new file mode 100644 index 0000000..5bb6404 --- /dev/null +++ b/glibc-RHEL-151711-3.patch @@ -0,0 +1,52 @@ +commit 55e85c1e48c2aae71c0b5907fd22a3e9b978b6e8 +Author: H.J. Lu +Date: Fri Jul 18 17:03:04 2025 -0700 + + io/tst-stat.c: Use a temporary directory for symlink test + + Call support_create_temp_directory to create a temporary directory for + symlink test, instead of a fixed file in the glibc source tree, to avoid + the race condition when there are more than one glibc tests running at the + same time with the same glibc source tree. This fixes BZ #33178. + + Signed-off-by: H.J. Lu + Reviewed-by: Andreas K. Huettel + +diff --git a/io/tst-stat.c b/io/tst-stat.c +index b0f3d003c1d7127a..ea368e4f81e0fb4d 100644 +--- a/io/tst-stat.c ++++ b/io/tst-stat.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + static void + stat_check (int fd, const char *path, struct stat *st) +@@ -78,7 +79,8 @@ static int + do_test (void) + { + char *path; +- const char *linkame = "tst-fstat.linkname"; ++ char *tempdir = support_create_temp_directory ("tst-stat-"); ++ char *linkname = xasprintf ("%s/tst-fstat.linkname", tempdir); + int fd = create_temp_file ("tst-fstat.", &path); + TEST_VERIFY_EXIT (fd >= 0); + support_write_file_string (path, "abc"); +@@ -122,9 +124,12 @@ do_test (void) + } + } + +- TEST_COMPARE (symlink ("tst-fstat.target", linkame), 0); +- add_temp_file (linkame); +- fstatat_link (linkame, &st); ++ TEST_COMPARE (symlink ("tst-fstat.target", linkname), 0); ++ add_temp_file (linkname); ++ fstatat_link (linkname, &st); ++ ++ free (linkname); ++ free (tempdir); + + return 0; + } diff --git a/glibc-RHEL-65383.patch b/glibc-RHEL-65383.patch new file mode 100644 index 0000000..8f6c6ea --- /dev/null +++ b/glibc-RHEL-65383.patch @@ -0,0 +1,46 @@ +commit 8aa99c592bf8f5894215fd62fef8248fac19dee1 +Author: DJ Delorie +Date: Thu Sep 18 19:13:32 2025 -0400 + + manual: Explain our implementation-defined memstream semantics + + Posix Issue 8 adds an implementation-defined item we don't already + cover, about seeking backwards. This defines our implentation. + + https://issues.redhat.com/browse/RHEL-3008 + https://pubs.opengroup.org/onlinepubs/9799919799/functions/open_memstream.html + + Reviewed-by: Florian Weimer + Reviewed-by Collin Funk + +diff --git a/manual/stdio.texi b/manual/stdio.texi +index 16d459424e..e8f60b09c1 100644 +--- a/manual/stdio.texi ++++ b/manual/stdio.texi +@@ -5135,13 +5135,21 @@ remain valid only as long as no further output on the stream takes + place. If you do more output, you must flush the stream again to store + new values before you use them again. + +-A null character is written at the end of the buffer. This null character +-is @emph{not} included in the size value stored at @var{sizeloc}. ++A null character is written at the end of the buffer when the stream ++is flushed, and at the current location when closed (these locations ++may be different if @code{fseek} is used). This null character is ++@emph{not} included in the size value stored at @var{sizeloc}. + + You can move the stream's file position with @code{fseek} or +-@code{fseeko} (@pxref{File Positioning}). Moving the file position past +-the end of the data already written fills the intervening space with +-zeroes. ++@code{fseeko} (@pxref{File Positioning}). Moving the file position ++past the end of the data already written fills the intervening space ++with zeroes. Note that seeking backwards into existing written data ++will change the effective ``end of file'' used by @code{fflush} and ++@code{SEEK_END} (and where the trailing null character is written, ++when closed). Thus, if you wish to do ``random-access'' I/O in a ++memstream, it's important to use @code{fseek} to move the file ++position to the desired data end (using @code{SEEK_POS}) before ++closing it. + @end deftypefun + + Here is an example of using @code{open_memstream}: diff --git a/glibc-RHEL-72244.patch b/glibc-RHEL-72244.patch new file mode 100644 index 0000000..05c0649 --- /dev/null +++ b/glibc-RHEL-72244.patch @@ -0,0 +1,179 @@ +commit cb4692ce1edd5a81c2521de49dfef6125141d1c7 +Author: Florian Weimer +Date: Fri Dec 27 09:17:41 2024 +0100 + + libio: asprintf should write NULL upon failure + + This was suggested most recently by Solar Designer, noting + that code replacing vsprintf with vasprintf in a security fix + was subtly wrong: + + Re: GStreamer Security Advisory 2024-0003: Orc compiler + stack-based buffer overflow + + + Previous libc-alpha discussions: + + I: [PATCH] asprintf error handling fix + + + asprintf() issue + + + I don't think we need a compatibility symbol for this. As the + GStreamer example shows, this change is much more likely to fix bugs + than cause compatibility issues. + + Suggested-by: Dmitry V. Levin + Suggested-by: Archie Cobbs + Suggested-by: Solar Designer + Reviewed-by: Sam James + +Conflicts: + libio/Makefile + (context is different) + manual/stdio.texi + (adjust line numbers) + +diff --git a/libio/Makefile b/libio/Makefile +index a879e8c2ba..3b5adff74d 100644 +--- a/libio/Makefile ++++ b/libio/Makefile +@@ -86,6 +86,7 @@ tests = \ + bug-wmemstream1 \ + bug-wsetpos \ + test-fmemopen \ ++ tst-asprintf-null \ + tst-atime \ + tst-bz22415 \ + tst-bz24051 \ +diff --git a/libio/tst-asprintf-null.c b/libio/tst-asprintf-null.c +new file mode 100644 +index 0000000000..1eebeb200f +--- /dev/null ++++ b/libio/tst-asprintf-null.c +@@ -0,0 +1,51 @@ ++/* Test that asprintf sets the buffer pointer to NULL on failure. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++ ++static int ++do_test (void) ++{ ++ static const char sentinel[] = "sentinel"; ++ char *buf = (char *) sentinel; ++ { ++ /* Avoid -Wformat-overflow warning. */ ++ const char *volatile format = "%2000000000d %2000000000d"; ++ TEST_COMPARE (asprintf (&buf, format, 1, 2), -1); ++ } ++ if (errno != ENOMEM) ++ TEST_COMPARE (errno, EOVERFLOW); ++ TEST_VERIFY (buf == NULL); ++ ++ /* Force ENOMEM in the test below. */ ++ struct rlimit rl; ++ TEST_COMPARE (getrlimit (RLIMIT_AS, &rl), 0); ++ rl.rlim_cur = 10 * 1024 * 1024; ++ TEST_COMPARE (setrlimit (RLIMIT_AS, &rl), 0); ++ ++ buf = (char *) sentinel; ++ TEST_COMPARE (asprintf (&buf, "%20000000d", 1), -1); ++ TEST_COMPARE (errno, ENOMEM); ++ TEST_VERIFY (buf == NULL); ++ return 0; ++} ++ ++#include +diff --git a/libio/vasprintf.c b/libio/vasprintf.c +index 999ae526f4..24f2a2e175 100644 +--- a/libio/vasprintf.c ++++ b/libio/vasprintf.c +@@ -92,7 +92,7 @@ __printf_buffer_flush_asprintf (struct __printf_buffer_asprintf *buf) + + + int +-__vasprintf_internal (char **result_ptr, const char *format, va_list args, ++__vasprintf_internal (char **result, const char *format, va_list args, + unsigned int mode_flags) + { + struct __printf_buffer_asprintf buf; +@@ -105,23 +105,23 @@ __vasprintf_internal (char **result_ptr, const char *format, va_list args, + { + if (buf.base.write_base != buf.direct) + free (buf.base.write_base); ++ *result = NULL; + return done; + } + + /* Transfer to the final buffer. */ +- char *result; + size_t size = buf.base.write_ptr - buf.base.write_base; + if (buf.base.write_base == buf.direct) + { +- result = malloc (size + 1); +- if (result == NULL) ++ *result = malloc (size + 1); ++ if (*result == NULL) + return -1; +- memcpy (result, buf.direct, size); ++ memcpy (*result, buf.direct, size); + } + else + { +- result = realloc (buf.base.write_base, size + 1); +- if (result == NULL) ++ *result = realloc (buf.base.write_base, size + 1); ++ if (*result == NULL) + { + free (buf.base.write_base); + return -1; +@@ -129,8 +129,7 @@ __vasprintf_internal (char **result_ptr, const char *format, va_list args, + } + + /* Add NUL termination. */ +- result[size] = '\0'; +- *result_ptr = result; ++ (*result)[size] = '\0'; + + return done; + } +diff --git a/manual/stdio.texi b/manual/stdio.texi +index 83f4f92e3f..747b1abf45 100644 +--- a/manual/stdio.texi ++++ b/manual/stdio.texi +@@ -2570,7 +2570,14 @@ Allocation}) to hold the output, instead of putting the output in a + buffer you allocate in advance. The @var{ptr} argument should be the + address of a @code{char *} object, and a successful call to + @code{asprintf} stores a pointer to the newly allocated string at that +-location. ++location. Current and future versions of @theglibc{} write a null ++pointer to @samp{*@var{ptr}} upon failure. To achieve similar ++behavior with previous versions, initialize @samp{*@var{ptr}} to a ++null pointer before calling @code{asprintf}. (Specifications for ++@code{asprintf} only require a valid pointer value in ++@samp{*@var{ptr}} if @code{asprintf} succeeds, but no implementations ++are known which overwrite a null pointer with a pointer that cannot be ++freed on failure.) + + The return value is the number of characters allocated for the buffer, or + less than zero if an error occurred. Usually this means that the buffer diff --git a/glibc-RHEL-87645.patch b/glibc-RHEL-87645.patch new file mode 100644 index 0000000..83ec4c4 --- /dev/null +++ b/glibc-RHEL-87645.patch @@ -0,0 +1,67 @@ +commit 5ffc903216901914dc2ad9715088d3fe9d1ef205 +Author: Adhemerval Zanella +Date: Tue Oct 8 15:45:29 2024 -0300 + + misc: Add support for Linux uio.h RWF_ATOMIC flag + + Linux 6.11 adds the new flag for pwritev2 (commit + c34fc6f26ab86d03a2d47446f42b6cd492dfdc56). + + Checked on x86_64-linux-gnu on 6.11 kernel. + + Reviewed-by: H.J. Lu + +diff --git a/manual/llio.texi b/manual/llio.texi +index 05ab44c6e7..0eb336f70b 100644 +--- a/manual/llio.texi ++++ b/manual/llio.texi +@@ -1381,6 +1381,19 @@ Per-IO synchronization as if the file was opened with @code{O_APPEND} flag. + @item RWF_NOAPPEND + This flag allows an offset to be honored, even if the file was opened with + @code{O_APPEND} flag. ++ ++@item RWF_ATOMIC ++Indicate that the write is to be issued with torn-write prevention. The ++input buffer should follow some contraints: the total length should be ++power-of-2 in size and also sizes between @code{atomic_write_unit_min} ++and @code{atomic_write_unit_max}, the @code{struct iovec} count should be ++up to @code{atomic_write_segments_max}, and the offset should be ++naturally-aligned with regard to total write length. ++ ++The @code{atomic_*} values can be obtained with @code{statx} along with ++@code{STATX_WRITE_ATOMIC} flag. ++ ++This is a Linux-specific extension. + @end vtable + + When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} the +diff --git a/misc/tst-preadvwritev2-common.c b/misc/tst-preadvwritev2-common.c +index 8e04ff7282..4556421a43 100644 +--- a/misc/tst-preadvwritev2-common.c ++++ b/misc/tst-preadvwritev2-common.c +@@ -37,8 +37,11 @@ + #ifndef RWF_NOAPPEND + # define RWF_NOAPPEND 0 + #endif ++#ifndef RWF_ATOMIC ++# define RWF_ATOMIC 0 ++#endif + #define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT \ +- | RWF_APPEND | RWF_NOAPPEND) ++ | RWF_APPEND | RWF_NOAPPEND | RWF_ATOMIC) + + /* Generic uio_lim.h does not define IOV_MAX. */ + #ifndef IOV_MAX +diff --git a/sysdeps/unix/sysv/linux/bits/uio-ext.h b/sysdeps/unix/sysv/linux/bits/uio-ext.h +index ead7a09156..85ed21bac5 100644 +--- a/sysdeps/unix/sysv/linux/bits/uio-ext.h ++++ b/sysdeps/unix/sysv/linux/bits/uio-ext.h +@@ -48,6 +48,8 @@ extern ssize_t process_vm_writev (pid_t __pid, const struct iovec *__lvec, + #define RWF_NOWAIT 0x00000008 /* per-IO nonblocking mode. */ + #define RWF_APPEND 0x00000010 /* per-IO O_APPEND. */ + #define RWF_NOAPPEND 0x00000020 /* per-IO negation of O_APPEND */ ++#define RWF_ATOMIC 0x00000040 /* Write is to be issued with torn-write ++ prevention. */ + + __END_DECLS + diff --git a/glibc-upstream-2.39-263.patch b/glibc-upstream-2.39-263.patch new file mode 100644 index 0000000..c26d175 --- /dev/null +++ b/glibc-upstream-2.39-263.patch @@ -0,0 +1,41 @@ +commit 835b1e337904a282125300ec08f09b2b3dd3358e +Author: Sunil K Pandey +Date: Mon Oct 6 18:13:04 2025 -0700 + + x86: Detect Intel Wildcat Lake Processor + + Detect Intel Wildcat Lake Processor and tune it similar to Intel Panther + Lake. https://cdrdv2.intel.com/v1/dl/getContent/671368 Section 1.2. + + Reviewed-by: H.J. Lu + (cherry picked from commit f8dd52901b72805a831d5a4cb7d971e4a3c9970b) + +diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c +index 4dc2b60aab65ed8e..c00502328fbcb839 100644 +--- a/sysdeps/x86/cpu-features.c ++++ b/sysdeps/x86/cpu-features.c +@@ -546,6 +546,7 @@ enum intel_microarch + INTEL_BIGCORE_PANTHERLAKE, + INTEL_BIGCORE_GRANITERAPIDS, + INTEL_BIGCORE_DIAMONDRAPIDS, ++ INTEL_BIGCORE_WILDCATLAKE, + + /* Mixed (bigcore + atom SOC). */ + INTEL_MIXED_LAKEFIELD, +@@ -705,6 +706,8 @@ intel_get_fam6_microarch (unsigned int model, + return INTEL_BIGCORE_ARROWLAKE; + case 0xCC: + return INTEL_BIGCORE_PANTHERLAKE; ++ case 0xD5: ++ return INTEL_BIGCORE_WILDCATLAKE; + case 0xAD: + case 0xAE: + return INTEL_BIGCORE_GRANITERAPIDS; +@@ -937,6 +940,7 @@ disable_tsx: + case INTEL_BIGCORE_LUNARLAKE: + case INTEL_BIGCORE_ARROWLAKE: + case INTEL_BIGCORE_PANTHERLAKE: ++ case INTEL_BIGCORE_WILDCATLAKE: + case INTEL_BIGCORE_SAPPHIRERAPIDS: + case INTEL_BIGCORE_EMERALDRAPIDS: + case INTEL_BIGCORE_GRANITERAPIDS: diff --git a/glibc-upstream-2.39-264.patch b/glibc-upstream-2.39-264.patch new file mode 100644 index 0000000..b020ed3 --- /dev/null +++ b/glibc-upstream-2.39-264.patch @@ -0,0 +1,50 @@ +commit 58cbbd43fe82910cf8ae9008351b0b0665104500 +Author: Sunil K Pandey +Date: Wed Sep 24 09:38:17 2025 -0700 + + x86: Detect Intel Nova Lake Processor + + Detect Intel Nova Lake Processor and tune it similar to Intel Panther + Lake. https://cdrdv2.intel.com/v1/dl/getContent/671368 Section 1.2. + + Reviewed-by: H.J. Lu + (cherry picked from commit a114e29ddd530962d2b44aa9d89f1f6075abe7fa) + +diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c +index c00502328fbcb839..f87d6d354924f3d9 100644 +--- a/sysdeps/x86/cpu-features.c ++++ b/sysdeps/x86/cpu-features.c +@@ -547,6 +547,7 @@ enum intel_microarch + INTEL_BIGCORE_GRANITERAPIDS, + INTEL_BIGCORE_DIAMONDRAPIDS, + INTEL_BIGCORE_WILDCATLAKE, ++ INTEL_BIGCORE_NOVALAKE, + + /* Mixed (bigcore + atom SOC). */ + INTEL_MIXED_LAKEFIELD, +@@ -824,6 +825,17 @@ disable_tsx: + break; + } + } ++ else if (family == 18) ++ switch (model) ++ { ++ case 0x01: ++ case 0x03: ++ microarch = INTEL_BIGCORE_NOVALAKE; ++ break; ++ ++ default: ++ break; ++ } + else if (family == 19) + switch (model) + { +@@ -941,6 +953,7 @@ disable_tsx: + case INTEL_BIGCORE_ARROWLAKE: + case INTEL_BIGCORE_PANTHERLAKE: + case INTEL_BIGCORE_WILDCATLAKE: ++ case INTEL_BIGCORE_NOVALAKE: + case INTEL_BIGCORE_SAPPHIRERAPIDS: + case INTEL_BIGCORE_EMERALDRAPIDS: + case INTEL_BIGCORE_GRANITERAPIDS: diff --git a/glibc-upstream-2.39-265.patch b/glibc-upstream-2.39-265.patch new file mode 100644 index 0000000..d5770dd --- /dev/null +++ b/glibc-upstream-2.39-265.patch @@ -0,0 +1,47 @@ +commit 323ad087a1b275bbc88cf824b873681ec667da0f +Author: Jiamei Xie +Date: Tue Oct 14 20:14:11 2025 +0800 + + x86: fix wmemset ifunc stray '!' (bug 33542) + + The ifunc selector for wmemset had a stray '!' in the + X86_ISA_CPU_FEATURES_ARCH_P(...) check: + + if (X86_ISA_CPU_FEATURE_USABLE_P (cpu_features, AVX2) + && X86_ISA_CPU_FEATURES_ARCH_P (cpu_features, + AVX_Fast_Unaligned_Load, !)) + + This effectively negated the predicate and caused the AVX2/AVX512 + paths to be skipped, making the dispatcher fall back to the SSE2 + implementation even on CPUs where AVX2/AVX512 are available. The + regression leads to noticeable throughput loss for wmemset. + + Remove the stray '!' so the AVX_Fast_Unaligned_Load capability is + tested as intended and the correct AVX2/EVEX variants are selected. + + Impact: + - On AVX2/AVX512-capable x86_64, wmemset no longer incorrectly + falls back to SSE2; perf now shows __wmemset_evex/avx2 variants. + + Testing: + - benchtests/bench-wmemset shows improved bandwidth across sizes. + - perf confirm the selected symbol is no longer SSE2. + + Signed-off-by: xiejiamei + Signed-off-by: Li jing + Reviewed-by: Adhemerval Zanella + (cherry picked from commit 4d86b6cdd8132e0410347e07262239750f86dfb4) + +diff --git a/sysdeps/x86_64/multiarch/ifunc-wmemset.h b/sysdeps/x86_64/multiarch/ifunc-wmemset.h +index 6e20d9dd5a22a52e..727b69f95b0ebad0 100644 +--- a/sysdeps/x86_64/multiarch/ifunc-wmemset.h ++++ b/sysdeps/x86_64/multiarch/ifunc-wmemset.h +@@ -35,7 +35,7 @@ IFUNC_SELECTOR (void) + + if (X86_ISA_CPU_FEATURE_USABLE_P (cpu_features, AVX2) + && X86_ISA_CPU_FEATURES_ARCH_P (cpu_features, +- AVX_Fast_Unaligned_Load, !)) ++ AVX_Fast_Unaligned_Load,)) + { + if (X86_ISA_CPU_FEATURE_USABLE_P (cpu_features, AVX512VL)) + { diff --git a/glibc-upstream-2.39-266.patch b/glibc-upstream-2.39-266.patch new file mode 100644 index 0000000..d10b3f9 --- /dev/null +++ b/glibc-upstream-2.39-266.patch @@ -0,0 +1,36 @@ +commit c74d59a656f8f98ee48b501a0d0653f4d9b3b59d +Author: Florian Weimer +Date: Thu Nov 6 11:14:53 2025 +0100 + + aarch64: Do not link conform tests with -Wl,-z,force-bti (bug 33601) + + If the toolchain does not default to generate BTI markers in GCC, + the main program for conform runtime tests will not have the + BTI marker that -Wl,-z,force-bti requires. Without -Wl,-z,force-bti, + the link editor will not tell the dynamic linker to enable BTI, + and the missing BTI marker is harmless. + + Reviewed-by: Yury Khrustalev + (cherry picked from commit 75b6b263e928eaca01d836f6bb8b539346b6bb2d) + +diff --git a/sysdeps/aarch64/Makefile b/sysdeps/aarch64/Makefile +index 141d7d9cc2bbbce7..eb34f4541e9710ba 100644 +--- a/sysdeps/aarch64/Makefile ++++ b/sysdeps/aarch64/Makefile +@@ -2,11 +2,15 @@ long-double-fcts = yes + + ifeq (yes,$(aarch64-bti)) + # Mark linker output BTI compatible, it warns on non-BTI inputs. ++# Do not do this for conform tests because they may not be compiled ++# with the appropriate compiler flags. ++ifneq ($(subdir),conform) + sysdep-LDFLAGS += -Wl,-z,force-bti + # Make warnings fatal outside the test system. + LDFLAGS-lib.so += -Wl,--fatal-warnings + LDFLAGS-rtld += -Wl,-z,force-bti,--fatal-warnings +-endif ++endif # $(subdir) != conform ++endif # $(aarch64-bit) + + ifeq ($(subdir),elf) + sysdep-dl-routines += dl-bti diff --git a/glibc-upstream-2.39-267.patch b/glibc-upstream-2.39-267.patch new file mode 100644 index 0000000..e568d5c --- /dev/null +++ b/glibc-upstream-2.39-267.patch @@ -0,0 +1,36 @@ +commit 38942a336bfb29c0f174b8a627fc84be092692db +Author: Adhemerval Zanella +Date: Fri Jul 19 11:23:15 2024 -0300 + + linux: Also check pkey_get for ENOSYS on tst-pkey (BZ 31996) + + The powerpc pkey_get/pkey_set support was only added for 64-bit [1], + and tst-pkey only checks if the support was present with pkey_alloc + (which does not fail on powerpc32, at least running a 64-bit kernel). + + Checked on powerpc-linux-gnu. + + [1] https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a803367bab167f5ec4fde1f0d0ec447707c29520 + Reviewed-By: Andreas K. Huettel + + (cherry picked from commit 6b7e2e1d6139b1fb61b911ab897a956042bf7f89) + +diff --git a/sysdeps/unix/sysv/linux/tst-pkey.c b/sysdeps/unix/sysv/linux/tst-pkey.c +index d9083daab9874a96..46f55666dad2733b 100644 +--- a/sysdeps/unix/sysv/linux/tst-pkey.c ++++ b/sysdeps/unix/sysv/linux/tst-pkey.c +@@ -205,7 +205,13 @@ do_test (void) + " protection keys"); + FAIL_EXIT1 ("pkey_alloc: %m"); + } +- TEST_COMPARE (pkey_get (keys[0]), 0); ++ if (pkey_get (keys[0]) < 0) ++ { ++ if (errno == ENOSYS) ++ FAIL_UNSUPPORTED ++ ("glibc does not support memory protection keys"); ++ FAIL_EXIT1 ("pkey_alloc: %m"); ++ } + for (int i = 1; i < key_count; ++i) + { + keys[i] = pkey_alloc (0, i); diff --git a/glibc-upstream-2.39-268.patch b/glibc-upstream-2.39-268.patch new file mode 100644 index 0000000..0114ec6 --- /dev/null +++ b/glibc-upstream-2.39-268.patch @@ -0,0 +1,48 @@ +commit 1b3bd9a9a6913c5a17cd2aca9b897406405a95d2 +Author: Yury Khrustalev +Date: Mon Apr 28 15:12:04 2025 +0100 + + aarch64: Disable ZA state of SME in setjmp and sigsetjmp + + Due to the nature of the ZA state, setjmp() should clear it in the + same manner as it is already done by longjmp. + + Reviewed-by: Wilco Dijkstra + (cherry picked from commit a7f6fd976c17b82dc198290b4ab7087f35855a0e) + (cherry picked from commit 1f57ffdf35334ab245544cbb88f3abf2e6c77c54) + (cherry picked from commit cdc1665bb188319b5f16ee05c04de7f2ba580e27) + +diff --git a/sysdeps/aarch64/setjmp.S b/sysdeps/aarch64/setjmp.S +index 92dc34e3e9a2650c..b2addd44ed7604b7 100644 +--- a/sysdeps/aarch64/setjmp.S ++++ b/sysdeps/aarch64/setjmp.S +@@ -35,6 +35,29 @@ libc_hidden_def (_setjmp) + + ENTRY (__sigsetjmp) + 1: ++ ++#if IS_IN(libc) ++ /* Disable ZA state of SME in libc.a and libc.so, but not in ld.so. */ ++# if HAVE_AARCH64_PAC_RET ++ PACIASP ++ cfi_window_save ++# endif ++ stp x29, x30, [sp, -16]! ++ cfi_adjust_cfa_offset (16) ++ cfi_rel_offset (x29, 0) ++ cfi_rel_offset (x30, 8) ++ mov x29, sp ++ bl __libc_arm_za_disable ++ ldp x29, x30, [sp], 16 ++ cfi_adjust_cfa_offset (-16) ++ cfi_restore (x29) ++ cfi_restore (x30) ++# if HAVE_AARCH64_PAC_RET ++ AUTIASP ++ cfi_window_save ++# endif ++#endif ++ + stp x19, x20, [x0, #JB_X19<<3] + stp x21, x22, [x0, #JB_X21<<3] + stp x23, x24, [x0, #JB_X23<<3] diff --git a/glibc-upstream-2.39-269.patch b/glibc-upstream-2.39-269.patch new file mode 100644 index 0000000..f0d7178 --- /dev/null +++ b/glibc-upstream-2.39-269.patch @@ -0,0 +1,361 @@ +commit 58cf4aa42100f869a2cd9dda0604d0a03d252ad6 +Author: Yury Khrustalev +Date: Tue Apr 29 13:44:11 2025 +0100 + + aarch64: update tests for SME + + Add test that checks that ZA state is disabled after setjmp and sigsetjmp + Update existing SME test that uses setjmp + + Reviewed-by: Wilco Dijkstra + (cherry picked from commit 251f93262483b9c1184f5b72993d77a5d1c95f68) + (cherry picked from commit 97076e0cf14c635ef1d4ce1241e41c2c497533c8) + (cherry picked from commit 51bcc73d95051e74512bb32fe17096b3db329cf3) + +diff --git a/sysdeps/aarch64/Makefile b/sysdeps/aarch64/Makefile +index eb34f4541e9710ba..62ae97fab07d54db 100644 +--- a/sysdeps/aarch64/Makefile ++++ b/sysdeps/aarch64/Makefile +@@ -74,7 +74,9 @@ sysdep_routines += \ + __arm_za_disable + + tests += \ +- tst-sme-jmp ++ tst-sme-jmp \ ++ tst-sme-za-state \ ++ # tests + endif + + ifeq ($(subdir),malloc) +diff --git a/sysdeps/aarch64/tst-sme-helper.h b/sysdeps/aarch64/tst-sme-helper.h +new file mode 100644 +index 0000000000000000..f049416c2bd6d377 +--- /dev/null ++++ b/sysdeps/aarch64/tst-sme-helper.h +@@ -0,0 +1,97 @@ ++/* Utility functions for SME tests. ++ Copyright (C) 2025 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 ++ . */ ++ ++/* Streaming SVE vector register size. */ ++static unsigned long svl; ++ ++struct blk { ++ void *za_save_buffer; ++ uint16_t num_za_save_slices; ++ char __reserved[6]; ++}; ++ ++/* Read SVCR to get SM (bit0) and ZA (bit1) state. */ ++static unsigned long ++get_svcr (void) ++{ ++ register unsigned long x0 asm ("x0"); ++ asm volatile ( ++ ".inst 0xd53b4240 /* mrs x0, svcr */\n" ++ : "=r" (x0)); ++ return x0; ++} ++ ++/* Returns tpidr2. */ ++static void * ++get_tpidr2 (void) ++{ ++ register unsigned long x0 asm ("x0"); ++ asm volatile ( ++ ".inst 0xd53bd0a0 /* mrs x0, tpidr2_el0 */\n" ++ : "=r"(x0) :: "memory"); ++ return (void *) x0; ++} ++ ++/* Obtains current streaming SVE vector register size. */ ++static unsigned long ++get_svl (void) ++{ ++ register unsigned long x0 asm ("x0"); ++ asm volatile ( ++ ".inst 0x04bf5820 /* rdsvl x0, 1 */\n" ++ : "=r" (x0)); ++ return x0; ++} ++ ++/* PSTATE.ZA = 1, set ZA state to active. */ ++static void ++start_za (void) ++{ ++ asm volatile ( ++ ".inst 0xd503457f /* smstart za */"); ++} ++ ++/* Load data into ZA byte by byte from p. */ ++static void __attribute__ ((noinline)) ++load_za (const void *p) ++{ ++ register unsigned long x15 asm ("x15") = 0; ++ register unsigned long x16 asm ("x16") = (unsigned long)p; ++ register unsigned long x17 asm ("x17") = svl; ++ ++ asm volatile ( ++ ".inst 0xd503437f /* smstart sm */\n" ++ ".L_ldr_loop:\n" ++ ".inst 0xe1006200 /* ldr za[w15, 0], [x16] */\n" ++ "add w15, w15, 1\n" ++ ".inst 0x04305030 /* addvl x16, x16, 1 */\n" ++ "cmp w15, w17\n" ++ "bne .L_ldr_loop\n" ++ ".inst 0xd503427f /* smstop sm */\n" ++ : "+r"(x15), "+r"(x16), "+r"(x17)); ++} ++ ++/* Set tpidr2 to BLK. */ ++static void ++set_tpidr2 (struct blk *blk) ++{ ++ register unsigned long x0 asm ("x0") = (unsigned long)blk; ++ asm volatile ( ++ ".inst 0xd51bd0a0 /* msr tpidr2_el0, x0 */\n" ++ :: "r"(x0) : "memory"); ++} +diff --git a/sysdeps/aarch64/tst-sme-jmp.c b/sysdeps/aarch64/tst-sme-jmp.c +index 35769340e700e6a5..b9638c6a71f22cd2 100644 +--- a/sysdeps/aarch64/tst-sme-jmp.c ++++ b/sysdeps/aarch64/tst-sme-jmp.c +@@ -27,87 +27,12 @@ + #include + #include + +-struct blk { +- void *za_save_buffer; +- uint16_t num_za_save_slices; +- char __reserved[6]; +-}; ++#include "tst-sme-helper.h" + +-static unsigned long svl; + static uint8_t *za_orig; + static uint8_t *za_dump; + static uint8_t *za_save; + +-static unsigned long +-get_svl (void) +-{ +- register unsigned long x0 asm ("x0"); +- asm volatile ( +- ".inst 0x04bf5820 /* rdsvl x0, 1 */\n" +- : "=r" (x0)); +- return x0; +-} +- +-/* PSTATE.ZA = 1, set ZA state to active. */ +-static void +-start_za (void) +-{ +- asm volatile ( +- ".inst 0xd503457f /* smstart za */"); +-} +- +-/* Read SVCR to get SM (bit0) and ZA (bit1) state. */ +-static unsigned long +-get_svcr (void) +-{ +- register unsigned long x0 asm ("x0"); +- asm volatile ( +- ".inst 0xd53b4240 /* mrs x0, svcr */\n" +- : "=r" (x0)); +- return x0; +-} +- +-/* Load data into ZA byte by byte from p. */ +-static void __attribute__ ((noinline)) +-load_za (const void *p) +-{ +- register unsigned long x15 asm ("x15") = 0; +- register unsigned long x16 asm ("x16") = (unsigned long)p; +- register unsigned long x17 asm ("x17") = svl; +- +- asm volatile ( +- ".inst 0xd503437f /* smstart sm */\n" +- ".L_ldr_loop:\n" +- ".inst 0xe1006200 /* ldr za[w15, 0], [x16] */\n" +- "add w15, w15, 1\n" +- ".inst 0x04305030 /* addvl x16, x16, 1 */\n" +- "cmp w15, w17\n" +- "bne .L_ldr_loop\n" +- ".inst 0xd503427f /* smstop sm */\n" +- : "+r"(x15), "+r"(x16), "+r"(x17)); +-} +- +-/* Set tpidr2 to BLK. */ +-static void +-set_tpidr2 (struct blk *blk) +-{ +- register unsigned long x0 asm ("x0") = (unsigned long)blk; +- asm volatile ( +- ".inst 0xd51bd0a0 /* msr tpidr2_el0, x0 */\n" +- :: "r"(x0) : "memory"); +-} +- +-/* Returns tpidr2. */ +-static void * +-get_tpidr2 (void) +-{ +- register unsigned long x0 asm ("x0"); +- asm volatile ( +- ".inst 0xd53bd0a0 /* mrs x0, tpidr2_el0 */\n" +- : "=r"(x0) :: "memory"); +- return (void *) x0; +-} +- + static void + print_data(const char *msg, void *p) + { +@@ -168,8 +93,8 @@ longjmp_test (void) + { + p = get_tpidr2 (); + printf ("before longjmp: tp2 = %p\n", p); +- if (p != &blk) +- FAIL_EXIT1 ("tpidr2 is clobbered"); ++ if (p != NULL) ++ FAIL_EXIT1 ("tpidr2 has not been reset to null"); + do_longjmp (env); + FAIL_EXIT1 ("longjmp returned"); + } +diff --git a/sysdeps/aarch64/tst-sme-za-state.c b/sysdeps/aarch64/tst-sme-za-state.c +new file mode 100644 +index 0000000000000000..63f6eebeb4f2aea7 +--- /dev/null ++++ b/sysdeps/aarch64/tst-sme-za-state.c +@@ -0,0 +1,119 @@ ++/* Test for SME ZA state being cleared on setjmp and longjmp. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include "tst-sme-helper.h" ++ ++static uint8_t *state; ++ ++static void ++enable_sme_za_state (struct blk *ptr) ++{ ++ set_tpidr2 (ptr); ++ start_za (); ++ load_za (state); ++} ++ ++static void ++check_sme_za_state (const char msg[], bool clear) ++{ ++ unsigned long svcr = get_svcr (); ++ void *tpidr2 = get_tpidr2 (); ++ printf ("[%s]\n", msg); ++ printf ("svcr = %016lx\n", svcr); ++ printf ("tpidr2 = %016lx\n", (unsigned long)tpidr2); ++ if (clear) ++ { ++ TEST_VERIFY (svcr == 0); ++ TEST_VERIFY (tpidr2 == NULL); ++ } ++ else ++ { ++ TEST_VERIFY (svcr != 0); ++ TEST_VERIFY (tpidr2 != NULL); ++ } ++} ++ ++static void ++run (struct blk *ptr) ++{ ++ jmp_buf buf; ++ int ret; ++ ++ check_sme_za_state ("initial state", /* Clear. */ true); ++ ++ /* Enabled ZA state so that effect of disabling be observable. */ ++ enable_sme_za_state (ptr); ++ check_sme_za_state ("before setjmp", /* Clear. */ false); ++ ++ if ((ret = setjmp (buf)) == 0) ++ { ++ check_sme_za_state ("after setjmp", /* Clear. */ true); ++ ++ /* Enabled ZA state so that effect of disabling be observable. */ ++ enable_sme_za_state (ptr); ++ check_sme_za_state ("before longjmp", /* Clear. */ false); ++ ++ longjmp (buf, 42); ++ ++ /* Unreachable. */ ++ TEST_VERIFY (false); ++ __builtin_unreachable (); ++ } ++ ++ TEST_COMPARE (ret, 42); ++ check_sme_za_state ("after longjmp", /* Clear. */ true); ++} ++ ++static int ++do_test (void) ++{ ++ unsigned long hwcap2 = getauxval (AT_HWCAP2); ++ if ((hwcap2 & HWCAP2_SME) == 0) ++ return EXIT_UNSUPPORTED; ++ ++ /* Get current streaming SVE vector register size. */ ++ svl = get_svl (); ++ printf ("svl: %lu\n", svl); ++ TEST_VERIFY_EXIT (!(svl < 16 || svl % 16 != 0 || svl >= (1 << 16))); ++ ++ /* Initialise buffer for ZA state of SME. */ ++ state = xmalloc (svl * svl); ++ memset (state, 1, svl * svl); ++ struct blk blk = { ++ .za_save_buffer = state, ++ .num_za_save_slices = svl, ++ .__reserved = {0}, ++ }; ++ ++ run (&blk); ++ ++ free (state); ++ return 0; ++} ++ ++#include diff --git a/glibc-upstream-2.39-270.patch b/glibc-upstream-2.39-270.patch new file mode 100644 index 0000000..8e8bc5f --- /dev/null +++ b/glibc-upstream-2.39-270.patch @@ -0,0 +1,137 @@ +commit dbe1904b7c0da4a2e9a548a8826a46d277ff8cca +Author: Yury Khrustalev +Date: Tue Oct 21 13:48:34 2025 +0100 + + aarch64: define macro for calling __libc_arm_za_disable + + A common sequence of instructions is used in several places + in assembly files, so define it in one place as an assembly + macro. + + Note that PAC instructions are not included in the new macro + because they are redundant given how we call the arm_za_disable + function (return address is not saved on stack, so no need to + sign it). + + (based on commits 6de12fc9ad56bc19fa6fcbd8ee502f29b5170d47 + and c0f0db2d59e0908057205b22b21dd9d626d780c1) + + Reviewed-by: Carlos O'Donell + (cherry picked from commit 1a0ee267147d002d66af29bcf3f5002d19b3c75a) + (cherry picked from commit 7af8db46d2493521cb8e0c13907f601a61236ebf) + +diff --git a/sysdeps/aarch64/__longjmp.S b/sysdeps/aarch64/__longjmp.S +index 30b36cb25d921795..312651c9bc3bed41 100644 +--- a/sysdeps/aarch64/__longjmp.S ++++ b/sysdeps/aarch64/__longjmp.S +@@ -27,24 +27,7 @@ ENTRY (__longjmp) + + #if IS_IN(libc) + /* Disable ZA state of SME in libc.a and libc.so, but not in ld.so. */ +-# if HAVE_AARCH64_PAC_RET +- PACIASP +- cfi_window_save +-# endif +- stp x29, x30, [sp, -16]! +- cfi_adjust_cfa_offset (16) +- cfi_rel_offset (x29, 0) +- cfi_rel_offset (x30, 8) +- mov x29, sp +- bl __libc_arm_za_disable +- ldp x29, x30, [sp], 16 +- cfi_adjust_cfa_offset (-16) +- cfi_restore (x29) +- cfi_restore (x30) +-# if HAVE_AARCH64_PAC_RET +- AUTIASP +- cfi_window_save +-# endif ++ CALL_LIBC_ARM_ZA_DISABLE + #endif + + cfi_def_cfa (x0, 0) +diff --git a/sysdeps/aarch64/setjmp.S b/sysdeps/aarch64/setjmp.S +index b2addd44ed7604b7..7d069e91efa00563 100644 +--- a/sysdeps/aarch64/setjmp.S ++++ b/sysdeps/aarch64/setjmp.S +@@ -38,24 +38,7 @@ ENTRY (__sigsetjmp) + + #if IS_IN(libc) + /* Disable ZA state of SME in libc.a and libc.so, but not in ld.so. */ +-# if HAVE_AARCH64_PAC_RET +- PACIASP +- cfi_window_save +-# endif +- stp x29, x30, [sp, -16]! +- cfi_adjust_cfa_offset (16) +- cfi_rel_offset (x29, 0) +- cfi_rel_offset (x30, 8) +- mov x29, sp +- bl __libc_arm_za_disable +- ldp x29, x30, [sp], 16 +- cfi_adjust_cfa_offset (-16) +- cfi_restore (x29) +- cfi_restore (x30) +-# if HAVE_AARCH64_PAC_RET +- AUTIASP +- cfi_window_save +-# endif ++ CALL_LIBC_ARM_ZA_DISABLE + #endif + + stp x19, x20, [x0, #JB_X19<<3] +diff --git a/sysdeps/unix/sysv/linux/aarch64/setcontext.S b/sysdeps/unix/sysv/linux/aarch64/setcontext.S +index 8c072781cdf98c2b..81ed2b92423a52d0 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/setcontext.S ++++ b/sysdeps/unix/sysv/linux/aarch64/setcontext.S +@@ -48,25 +48,8 @@ ENTRY (__setcontext) + cbz x0, 1f + b C_SYMBOL_NAME (__syscall_error) + 1: +- /* Disable ZA of SME. */ +-#if HAVE_AARCH64_PAC_RET +- PACIASP +- cfi_window_save +-#endif +- stp x29, x30, [sp, -16]! +- cfi_adjust_cfa_offset (16) +- cfi_rel_offset (x29, 0) +- cfi_rel_offset (x30, 8) +- mov x29, sp +- bl __libc_arm_za_disable +- ldp x29, x30, [sp], 16 +- cfi_adjust_cfa_offset (-16) +- cfi_restore (x29) +- cfi_restore (x30) +-#if HAVE_AARCH64_PAC_RET +- AUTIASP +- cfi_window_save +-#endif ++ /* Clear ZA state of SME. */ ++ CALL_LIBC_ARM_ZA_DISABLE + /* Restore the general purpose registers. */ + mov x0, x9 + cfi_def_cfa (x0, 0) +diff --git a/sysdeps/unix/sysv/linux/aarch64/sysdep.h b/sysdeps/unix/sysv/linux/aarch64/sysdep.h +index 974b503b2f93511d..2f039015190d7b24 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/sysdep.h ++++ b/sysdeps/unix/sysv/linux/aarch64/sysdep.h +@@ -150,6 +150,18 @@ + mov x8, SYS_ify (syscall_name); \ + svc 0 + ++/* Clear ZA state of SME (ASM version). */ ++/* The __libc_arm_za_disable function has special calling convention ++ that allows to call it without stack manipulation and preserving ++ most of the registers. */ ++ .macro CALL_LIBC_ARM_ZA_DISABLE ++ mov x13, x30 ++ .cfi_register x30, x13 ++ bl __libc_arm_za_disable ++ mov x30, x13 ++ .cfi_register x13, x30 ++ .endm ++ + #else /* not __ASSEMBLER__ */ + + # ifdef __LP64__ diff --git a/glibc-upstream-2.39-271.patch b/glibc-upstream-2.39-271.patch new file mode 100644 index 0000000..238d221 --- /dev/null +++ b/glibc-upstream-2.39-271.patch @@ -0,0 +1,221 @@ +commit d1d0d09e9e5e086d3de9217a9572b634ea74857a +Author: Yury Khrustalev +Date: Thu Sep 25 15:54:36 2025 +0100 + + aarch64: clear ZA state of SME before clone and clone3 syscalls + + This change adds a call to the __arm_za_disable() function immediately + before the SVC instruction inside clone() and clone3() wrappers. It also + adds a macro for inline clone() used in fork() and adds the same call to + the vfork implementation. This sets the ZA state of SME to "off" on return + from these functions (for both the child and the parent). + + The __arm_za_disable() function is described in [1] (8.1.3). Note that + the internal Glibc name for this function is __libc_arm_za_disable(). + + When this change was originally proposed [2,3], it generated a long + discussion where several questions and concerns were raised. Here we + will address these concerns and explain why this change is useful and, + in fact, necessary. + + In a nutshell, a C library that conforms to the AAPCS64 spec [1] (pertinent + to this change, mainly, the chapters 6.2 and 6.6), should have a call to the + __arm_za_disable() function in clone() and clone3() wrappers. The following + explains in detail why this is the case. + + When we consider using the __arm_za_disable() function inside the clone() + and clone3() libc wrappers, we talk about the C library subroutines clone() + and clone3() rather than the syscalls with similar names. In the current + version of Glibc, clone() is public and clone3() is private, but it being + private is not pertinent to this discussion. + + We will begin with stating that this change is NOT a bug fix for something + in the kernel. The requirement to call __arm_za_disable() does NOT come from + the kernel. It also is NOT needed to satisfy a contract between the kernel + and userspace. This is why it is not for the kernel documentation to describe + this requirement. This requirement is instead needed to satisfy a pure userspace + scheme outlined in [1] and to make sure that software that uses Glibc (or any + other C library that has correct handling of SME states (see below)) conforms + to [1] without having to unnecessarily become SME-aware thus losing portability. + + To recap (see [1] (6.2)), SME extension defines SME state which is part of + processor state. Part of this SME state is ZA state that is necessary to + manage ZA storage register in the context of the ZA lazy saving scheme [1] + (6.6). This scheme exists because it would be challenging to handle ZA + storage of SME in either callee-saved or caller-saved manner. + + There are 3 kinds of ZA state that are defined in terms of the PSTATE.ZA + bit and the TPIDR2_EL0 register (see [1] (6.6.3)): + + - "off":       PSTATE.ZA == 0 + - "active":    PSTATE.ZA == 1 TPIDR2_EL0 == null + - "dormant":   PSTATE.ZA == 1 TPIDR2_EL0 != null + + As [1] (6.7.2) outlines, every subroutine has exactly one SME-interface + depending on the permitted ZA-states on entry and on normal return from + a call to this subroutine. Callers of a subroutine must know and respect + the ZA-interface of the subroutines they are using. Using a subroutine + in a way that is not permitted by its ZA-interface is undefined behaviour. + + In particular, clone() and clone3() (the C library functions) have the + ZA-private interface. This means that the permitted ZA-states on entry + are "off" and "dormant" and that the permitted states on return are "off" + or "dormant" (but if and only if it was "dormant" on entry). + + This means that both functions in question should correctly handle both + "off" and "dormant" ZA-states on entry. The conforming states on return + are "off" and "dormant" (if inbound state was already "dormant"). + + This change ensures that the ZA-state on return is always "off". Note, + that, in the context of clone() and clone3(), "on return" means a point + when execution resumes at certain address after transferring from clone() + or clone3(). For the caller (we may refer to it as "parent") this is the + return address in the link register where the RET instruction jumps. For + the "child", this is the target branch address. + + So, the "off" state on return is permitted and conformant. Why can't we + retain the "dormant" state? In theory, we can, but we shouldn't, here is + why. + + Every subroutine with a private-ZA interface, including clone() and clone3(), + must comply with the lazy saving scheme [1] (6.7.2). This puts additional + responsibility on a subroutine if ZA-state on return is "dormant" because + this state has special meaning. The "caller" (that is the place in code + where execution is transferred to, so this include both "parent" and "child") + may check the ZA-state and use it as per the spec of the "dormant" state that + is outlined in [1] (6.6.6 and 6.6.7). + + Conforming to this would require more code inside of clone() and clone3() + which hardly is desirable. + + For the return to "parent" this could be achieved in theory, but given that + neither clone() nor clone3() are supposed to be used in the middle of an + SME operation, if wouldn't be useful. For the "return" to "child" this + would be particularly difficult to achieve given the complexity of these + functions and their interfaces. Most importantly, it would be illegal + and somewhat meaningless to allow a "child" to start execution in the + "dormant" ZA-state because the very essence of the "dormant" state implies + that there is a place to return and that there is some outer context that + we are allowed to interact with. + + To sum up, calling __arm_za_disable() to ensure the "off" ZA-state when the + execution resumes after a call to clone() or clone3() is correct and also + the most simple way to conform to [1]. + + Can there be situations when we can avoid calling __arm_za_disable()? + + Calling __arm_za_disable() implies certain (sufficiently small) overhead, + so one might rightly ponder avoiding making a call to this function when + we can afford not to. The most trivial cases like this (e.g. when the + calling thread doesn't have access to SME or to the TPIDR2_EL0 register) + are already handled by this function (see [1] (8.1.3 and 8.1.2)). Reasoning + about other possible use cases would require making code inside clone() and + clone3() more complicated and it would defeat the point of trying to make + an optimisation of not calling __arm_za_disable(). + + Why can't the kernel do this instead? + + The handling of SME state by the kernel is described in [4]. In short, + kernel must not impose a specific ZA-interface onto a userspace function. + Interaction with the kernel happens (among other thing) via system calls. + In Glibc many of the system calls (notably, including SYS_clone and + SYS_clone3) are used via wrappers, and the kernel has no control of them + and, moreover, it cannot dictate how these wrappers should behave because + it is simply outside of the kernel's remit. + + However, in certain cases, the kernel may ensure that a "child" doesn't + start in an incorrect state. This is what is done by the recent change + included in 6.16 kernel [5]. This is not enough to ensure that code that + uses clone() and clone3() function conforms to [1] when it runs on a + system that provides SME, hence this change. + + [1]: https://github.com/ARM-software/abi-aa/blob/main/aapcs64/aapcs64.rst + [2]: https://inbox.sourceware.org/libc-alpha/20250522114828.2291047-1-yury.khrustalev@arm.com + [3]: https://inbox.sourceware.org/libc-alpha/20250609121407.3316070-1-yury.khrustalev@arm.com + [4]: https://www.kernel.org/doc/html/v6.16/arch/arm64/sme.html + [5]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cde5c32db55740659fca6d56c09b88800d88fd29 + + Reviewed-by: Adhemerval Zanella + (cherry picked from commit 27effb3d50424fb9634be77a2acd614b0386ff25) + (cherry picked from commit 256030b9842a10b1f22851b1de0c119761417544) + (cherry picked from commit 889ae4bdbb4a6fbf37c2303da8cdae3d18880d9e) + (cherry picked from commit 899ebf35691f01c357fc582b3e88db87accb5ee1) + +diff --git a/sysdeps/unix/sysv/linux/aarch64/clone.S b/sysdeps/unix/sysv/linux/aarch64/clone.S +index fed19acc2f78351f..585f312a3f7319ed 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/clone.S ++++ b/sysdeps/unix/sysv/linux/aarch64/clone.S +@@ -45,6 +45,9 @@ ENTRY(__clone) + and x1, x1, -16 + cbz x1, .Lsyscall_error + ++ /* Clear ZA state of SME. */ ++ CALL_LIBC_ARM_ZA_DISABLE ++ + /* Do the system call. */ + /* X0:flags, x1:newsp, x2:parenttidptr, x3:newtls, x4:childtid. */ + mov x0, x2 /* flags */ +diff --git a/sysdeps/unix/sysv/linux/aarch64/clone3.S b/sysdeps/unix/sysv/linux/aarch64/clone3.S +index 9b00b6b8853e9b8b..ec6874830ae98676 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/clone3.S ++++ b/sysdeps/unix/sysv/linux/aarch64/clone3.S +@@ -46,6 +46,9 @@ ENTRY(__clone3) + cbz x10, .Lsyscall_error /* No NULL cl_args pointer. */ + cbz x2, .Lsyscall_error /* No NULL function pointer. */ + ++ /* Clear ZA state of SME. */ ++ CALL_LIBC_ARM_ZA_DISABLE ++ + /* Do the system call, the kernel expects: + x8: system call number + x0: cl_args +diff --git a/sysdeps/unix/sysv/linux/aarch64/sysdep.h b/sysdeps/unix/sysv/linux/aarch64/sysdep.h +index 2f039015190d7b24..19e66f77202add1a 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/sysdep.h ++++ b/sysdeps/unix/sysv/linux/aarch64/sysdep.h +@@ -247,6 +247,31 @@ + #undef HAVE_INTERNAL_BRK_ADDR_SYMBOL + #define HAVE_INTERNAL_BRK_ADDR_SYMBOL 1 + ++/* Clear ZA state of SME (C version). */ ++/* The __libc_arm_za_disable function has special calling convention ++ that allows to call it without stack manipulation and preserving ++ most of the registers. */ ++#define CALL_LIBC_ARM_ZA_DISABLE() \ ++({ \ ++ unsigned long int __tmp; \ ++ asm volatile ( \ ++ " mov %0, x30\n" \ ++ " .cfi_register x30, %0\n" \ ++ " bl __libc_arm_za_disable\n" \ ++ " mov x30, %0\n" \ ++ " .cfi_register %0, x30\n" \ ++ : "=r" (__tmp) \ ++ : \ ++ : "x14", "x15", "x16", "x17", "x18", "memory" ); \ ++}) ++ ++/* Do clear ZA state of SME before making normal clone syscall. */ ++#define INLINE_CLONE_SYSCALL(a0, a1, a2, a3, a4) \ ++({ \ ++ CALL_LIBC_ARM_ZA_DISABLE (); \ ++ INLINE_SYSCALL_CALL (clone, a0, a1, a2, a3, a4); \ ++}) ++ + #endif /* __ASSEMBLER__ */ + + #endif /* linux/aarch64/sysdep.h */ +diff --git a/sysdeps/unix/sysv/linux/aarch64/vfork.S b/sysdeps/unix/sysv/linux/aarch64/vfork.S +index e71e492da339b25a..65fa85ae895b61a1 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/vfork.S ++++ b/sysdeps/unix/sysv/linux/aarch64/vfork.S +@@ -27,6 +27,9 @@ + + ENTRY (__vfork) + ++ /* Clear ZA state of SME. */ ++ CALL_LIBC_ARM_ZA_DISABLE ++ + mov x0, #0x4111 /* CLONE_VM | CLONE_VFORK | SIGCHLD */ + mov x1, sp + DO_CALL (clone, 2) diff --git a/glibc-upstream-2.39-272.patch b/glibc-upstream-2.39-272.patch new file mode 100644 index 0000000..6c30403 --- /dev/null +++ b/glibc-upstream-2.39-272.patch @@ -0,0 +1,679 @@ +commit d60f15dc890c4dbbdaa227ed88e1247136e29256 +Author: Yury Khrustalev +Date: Fri Sep 26 10:03:45 2025 +0100 + + aarch64: tests for SME + + This commit adds tests for the following use cases relevant to handing of + the SME state: + + - fork() and vfork() + - clone() and clone3() + - signal handler + + While most cases are trivial, the case of clone3() is more complicated since + the clone3() symbol is not public in Glibc. + + To avoid having to check all possible ways clone3() may be called via other + public functions (e.g. vfork() or pthread_create()), we put together a test + that links directly with clone3.o. All the existing functions that have calls + to clone3() may not actually use it, in which case the outcome of such tests + would be unexpected. Having a direct call to the clone3() symbol in the test + allows to check precisely what we need to test: that the __arm_za_disable() + function is indeed called and has the desired effect. + + Linking to clone3.o also requires linking to __arm_za_disable.o that in + turn requires the _dl_hwcap2 hidden symbol which to provide in the test + and initialise it before using. + + Co-authored-by: Adhemerval Zanella Netto + Reviewed-by: Adhemerval Zanella + (cherry picked from commit ecb0fc2f0f839f36cd2a106283142c9df8ea8214) + (cherry picked from commit 71874f167aa5bb1538ff7e394beaacee28ebe65f) + (cherry picked from commit e4ffcf32b9213352917dcf7dc43adcaa0ff76503) + (cherry picked from commit df3bcda9ac85eb720d27bbbc469cdc898cc9b02b) + +diff --git a/sysdeps/aarch64/Makefile b/sysdeps/aarch64/Makefile +index 62ae97fab07d54db..f205884fe19a3a13 100644 +--- a/sysdeps/aarch64/Makefile ++++ b/sysdeps/aarch64/Makefile +@@ -75,8 +75,18 @@ sysdep_routines += \ + + tests += \ + tst-sme-jmp \ ++ tst-sme-signal \ + tst-sme-za-state \ + # tests ++tests-internal += \ ++ tst-sme-clone \ ++ tst-sme-clone3 \ ++ tst-sme-fork \ ++ tst-sme-vfork \ ++ # tests-internal ++ ++$(objpfx)tst-sme-clone3: $(objpfx)clone3.o $(objpfx)__arm_za_disable.o ++ + endif + + ifeq ($(subdir),malloc) +diff --git a/sysdeps/aarch64/tst-sme-clone.c b/sysdeps/aarch64/tst-sme-clone.c +new file mode 100644 +index 0000000000000000..7106ec7926fb64b8 +--- /dev/null ++++ b/sysdeps/aarch64/tst-sme-clone.c +@@ -0,0 +1,53 @@ ++/* Test that ZA state of SME is cleared in both parent and child ++ when clone() syscall is used. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-sme-skeleton.c" ++ ++#include ++ ++static int ++fun (void * const arg) ++{ ++ printf ("in child: %s\n", (const char *)arg); ++ /* Check that ZA state of SME was disabled in child. */ ++ check_sme_za_state ("after clone in child", /* Clear. */ true); ++ return 0; ++} ++ ++static char __attribute__((aligned(16))) ++stack[1024 * 1024]; ++ ++static void ++run (struct blk *ptr) ++{ ++ char *syscall_name = (char *)"clone"; ++ printf ("in parent: before %s\n", syscall_name); ++ ++ /* Enabled ZA state so that effect of disabling be observable. */ ++ enable_sme_za_state (ptr); ++ check_sme_za_state ("before clone", /* Clear. */ false); ++ ++ pid_t pid = xclone (fun, syscall_name, stack, sizeof (stack), ++ CLONE_NEWUSER | CLONE_NEWNS | SIGCHLD); ++ ++ /* Check that ZA state of SME was disabled in parent. */ ++ check_sme_za_state ("after clone in parent", /* Clear. */ true); ++ ++ TEST_VERIFY (xwaitpid (pid, NULL, 0) == pid); ++} +diff --git a/sysdeps/aarch64/tst-sme-clone3.c b/sysdeps/aarch64/tst-sme-clone3.c +new file mode 100644 +index 0000000000000000..402b040cfd69acd9 +--- /dev/null ++++ b/sysdeps/aarch64/tst-sme-clone3.c +@@ -0,0 +1,84 @@ ++/* Test that ZA state of SME is cleared in both parent and child ++ when clone3() syscall is used. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-sme-skeleton.c" ++ ++#include ++ ++#include ++#include ++#include ++ ++/* Since clone3 is not a public symbol, we link this test explicitly ++ with clone3.o and have to provide this declaration. */ ++int __clone3 (struct clone_args *cl_args, size_t size, ++ int (*func)(void *arg), void *arg); ++ ++static int ++fun (void * const arg) ++{ ++ printf ("in child: %s\n", (const char *)arg); ++ /* Check that ZA state of SME was disabled in child. */ ++ check_sme_za_state ("after clone3 in child", /* Clear. */ true); ++ return 0; ++} ++ ++static char __attribute__((aligned(16))) ++stack[1024 * 1024]; ++ ++/* Required by __arm_za_disable.o and provided by the startup code ++ as a hidden symbol. */ ++uint64_t _dl_hwcap2; ++ ++static void ++run (struct blk *ptr) ++{ ++ _dl_hwcap2 = getauxval (AT_HWCAP2); ++ ++ char *syscall_name = (char *)"clone3"; ++ struct clone_args args = { ++ .flags = CLONE_VM | CLONE_VFORK, ++ .exit_signal = SIGCHLD, ++ .stack = (uintptr_t) stack, ++ .stack_size = sizeof (stack), ++ }; ++ printf ("in parent: before %s\n", syscall_name); ++ ++ /* Enabled ZA state so that effect of disabling be observable. */ ++ enable_sme_za_state (ptr); ++ check_sme_za_state ("before clone3", /* Clear. */ false); ++ ++ pid_t pid = __clone3 (&args, sizeof (args), fun, syscall_name); ++ ++ /* Check that ZA state of SME was disabled in parent. */ ++ check_sme_za_state ("after clone3 in parent", /* Clear. */ true); ++ ++ printf ("%s child pid: %d\n", syscall_name, pid); ++ ++ xwaitpid (pid, NULL, 0); ++ printf ("in parent: after %s\n", syscall_name); ++} ++ ++/* Workaround to simplify linking with clone3.o. */ ++void __syscall_error(int code) ++{ ++ int err = -code; ++ fprintf (stderr, "syscall error %d (%s)\n", err, strerror (err)); ++ exit (err); ++} +diff --git a/sysdeps/aarch64/tst-sme-fork.c b/sysdeps/aarch64/tst-sme-fork.c +new file mode 100644 +index 0000000000000000..b003b08884f605fa +--- /dev/null ++++ b/sysdeps/aarch64/tst-sme-fork.c +@@ -0,0 +1,43 @@ ++/* Test that ZA state of SME is cleared in both parent and child ++ when fork() function is used. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-sme-skeleton.c" ++ ++static void ++run (struct blk *blk) ++{ ++ /* Enabled ZA state so that effect of disabling be observable. */ ++ enable_sme_za_state (blk); ++ check_sme_za_state ("before fork", /* Clear. */ false); ++ fflush (stdout); ++ ++ pid_t pid = xfork (); ++ ++ if (pid == 0) ++ { ++ /* Check that ZA state of SME was disabled in child. */ ++ check_sme_za_state ("after fork in child", /* Clear. */ true); ++ exit (0); ++ } ++ ++ /* Check that ZA state of SME was disabled in parent. */ ++ check_sme_za_state ("after fork in parent", /* Clear. */ true); ++ ++ TEST_VERIFY (xwaitpid (pid, NULL, 0) == pid); ++} +diff --git a/sysdeps/aarch64/tst-sme-helper.h b/sysdeps/aarch64/tst-sme-helper.h +index f049416c2bd6d377..ab9c503e45664c54 100644 +--- a/sysdeps/aarch64/tst-sme-helper.h ++++ b/sysdeps/aarch64/tst-sme-helper.h +@@ -16,9 +16,6 @@ + License along with the GNU C Library; if not, see + . */ + +-/* Streaming SVE vector register size. */ +-static unsigned long svl; +- + struct blk { + void *za_save_buffer; + uint16_t num_za_save_slices; +@@ -68,10 +65,10 @@ start_za (void) + + /* Load data into ZA byte by byte from p. */ + static void __attribute__ ((noinline)) +-load_za (const void *p) ++load_za (const void *buf, unsigned long svl) + { + register unsigned long x15 asm ("x15") = 0; +- register unsigned long x16 asm ("x16") = (unsigned long)p; ++ register unsigned long x16 asm ("x16") = (unsigned long)buf; + register unsigned long x17 asm ("x17") = svl; + + asm volatile ( +diff --git a/sysdeps/aarch64/tst-sme-jmp.c b/sysdeps/aarch64/tst-sme-jmp.c +index b9638c6a71f22cd2..0c1d1a4ff8669958 100644 +--- a/sysdeps/aarch64/tst-sme-jmp.c ++++ b/sysdeps/aarch64/tst-sme-jmp.c +@@ -29,6 +29,9 @@ + + #include "tst-sme-helper.h" + ++/* Streaming SVE vector register size. */ ++static unsigned long svl; ++ + static uint8_t *za_orig; + static uint8_t *za_dump; + static uint8_t *za_save; +@@ -82,7 +85,7 @@ longjmp_test (void) + FAIL_EXIT1 ("svcr != 0: %lu", svcr); + set_tpidr2 (&blk); + start_za (); +- load_za (za_orig); ++ load_za (za_orig, svl); + + print_data ("za save space", za_save); + p = get_tpidr2 (); +@@ -131,7 +134,7 @@ setcontext_test (void) + FAIL_EXIT1 ("svcr != 0: %lu", svcr); + set_tpidr2 (&blk); + start_za (); +- load_za (za_orig); ++ load_za (za_orig, svl); + + print_data ("za save space", za_save); + p = get_tpidr2 (); +diff --git a/sysdeps/aarch64/tst-sme-signal.c b/sysdeps/aarch64/tst-sme-signal.c +new file mode 100644 +index 0000000000000000..b4b07bcc4424cd15 +--- /dev/null ++++ b/sysdeps/aarch64/tst-sme-signal.c +@@ -0,0 +1,115 @@ ++/* Test handling of SME state in a signal handler. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-sme-skeleton.c" ++ ++#include ++ ++static struct _aarch64_ctx * ++extension (void *p) ++{ ++ return p; ++} ++ ++#ifndef TPIDR2_MAGIC ++#define TPIDR2_MAGIC 0x54504902 ++#endif ++ ++#ifndef ZA_MAGIC ++#define ZA_MAGIC 0x54366345 ++#endif ++ ++#ifndef ZT_MAGIC ++#define ZT_MAGIC 0x5a544e01 ++#endif ++ ++#ifndef EXTRA_MAGIC ++#define EXTRA_MAGIC 0x45585401 ++#endif ++ ++/* We use a pipe to make sure that the final check of the SME state ++ happens after signal handler finished. */ ++static int pipefd[2]; ++ ++#define WRITE(msg) xwrite (1, msg, sizeof (msg)); ++ ++static void ++handler (int signo, siginfo_t *si, void *ctx) ++{ ++ TEST_VERIFY (signo == SIGUSR1); ++ WRITE ("in the handler\n"); ++ check_sme_za_state ("during signal", true /* State is clear. */); ++ ucontext_t *uc = ctx; ++ void *p = uc->uc_mcontext.__reserved; ++ unsigned int found = 0; ++ uint32_t m; ++ while ((m = extension (p)->magic)) ++ { ++ if (m == TPIDR2_MAGIC) ++ { ++ WRITE ("found TPIDR2_MAGIC\n"); ++ found += 1; ++ } ++ if (m == ZA_MAGIC) ++ { ++ WRITE ("found ZA_MAGIC\n"); ++ found += 1; ++ } ++ if (m == ZT_MAGIC) ++ { ++ WRITE ("found ZT_MAGIC\n"); ++ found += 1; ++ } ++ if (m == EXTRA_MAGIC) ++ { ++ WRITE ("found EXTRA_MAGIC\n"); ++ struct { struct _aarch64_ctx h; uint64_t data; } *e = p; ++ p = (char *)e->data; ++ continue; ++ } ++ p = (char *)p + extension (p)->size; ++ } ++ TEST_COMPARE (found, 3); ++ ++ /* Signal that the wait is over (see below). */ ++ char message = '\0'; ++ xwrite (pipefd[1], &message, 1); ++} ++ ++static void ++run (struct blk *blk) ++{ ++ xpipe (pipefd); ++ ++ struct sigaction sigact; ++ sigemptyset (&sigact.sa_mask); ++ sigact.sa_flags = 0; ++ sigact.sa_flags |= SA_SIGINFO; ++ sigact.sa_sigaction = handler; ++ xsigaction (SIGUSR1, &sigact, NULL); ++ ++ enable_sme_za_state (blk); ++ check_sme_za_state ("before signal", false /* State is not clear. */); ++ xraise (SIGUSR1); ++ ++ /* Wait for signal handler to complete. */ ++ char response; ++ xread (pipefd[0], &response, 1); ++ ++ check_sme_za_state ("after signal", false /* State is not clear. */); ++} +diff --git a/sysdeps/aarch64/tst-sme-skeleton.c b/sysdeps/aarch64/tst-sme-skeleton.c +new file mode 100644 +index 0000000000000000..ba84dda1cbd8d523 +--- /dev/null ++++ b/sysdeps/aarch64/tst-sme-skeleton.c +@@ -0,0 +1,101 @@ ++/* Template for SME tests. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "tst-sme-helper.h" ++ ++/* Streaming SVE vector register size. */ ++static unsigned long svl; ++ ++static uint8_t *state; ++ ++static void ++enable_sme_za_state (struct blk *blk) ++{ ++ start_za (); ++ set_tpidr2 (blk); ++ load_za (blk, svl); ++} ++ ++/* Check if SME state is disabled (when CLEAR is true) or ++ enabled (when CLEAR is false). */ ++static void ++check_sme_za_state (const char msg[], bool clear) ++{ ++ unsigned long svcr = get_svcr (); ++ void *tpidr2 = get_tpidr2 (); ++ printf ("[%s]\n", msg); ++ printf ("svcr = %016lx\n", svcr); ++ printf ("tpidr2 = %016lx\n", (unsigned long)tpidr2); ++ if (clear) ++ { ++ TEST_VERIFY (svcr == 0); ++ TEST_VERIFY (tpidr2 == NULL); ++ } ++ else ++ { ++ TEST_VERIFY (svcr != 0); ++ TEST_VERIFY (tpidr2 != NULL); ++ } ++} ++ ++/* Should be defined in actual test that includes this ++ skeleton file. */ ++static void ++run (struct blk *ptr); ++ ++static int ++do_test (void) ++{ ++ unsigned long hwcap2 = getauxval (AT_HWCAP2); ++ if ((hwcap2 & HWCAP2_SME) == 0) ++ return EXIT_UNSUPPORTED; ++ ++ /* Get current streaming SVE vector length in bytes. */ ++ svl = get_svl (); ++ printf ("svl: %lu\n", svl); ++ ++ TEST_VERIFY_EXIT (!(svl < 16 || svl % 16 != 0 || svl >= (1 << 16))); ++ ++ /* Initialise buffer for ZA state of SME. */ ++ state = xmalloc (svl * svl); ++ memset (state, 1, svl * svl); ++ struct blk blk = { ++ .za_save_buffer = state, ++ .num_za_save_slices = svl, ++ .__reserved = {0}, ++ }; ++ ++ run (&blk); ++ ++ free (state); ++ return 0; ++} ++ ++#include +diff --git a/sysdeps/aarch64/tst-sme-vfork.c b/sysdeps/aarch64/tst-sme-vfork.c +new file mode 100644 +index 0000000000000000..3feea065e53625e1 +--- /dev/null ++++ b/sysdeps/aarch64/tst-sme-vfork.c +@@ -0,0 +1,43 @@ ++/* Test that ZA state of SME is cleared in both parent and child ++ when vfork() function is used. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include "tst-sme-skeleton.c" ++ ++static void ++run (struct blk *blk) ++{ ++ /* Enabled ZA state so that effect of disabling be observable. */ ++ enable_sme_za_state (blk); ++ check_sme_za_state ("before vfork", /* Clear. */ false); ++ fflush (stdout); ++ ++ pid_t pid = vfork (); ++ ++ if (pid == 0) ++ { ++ /* Check that ZA state of SME was disabled in child. */ ++ check_sme_za_state ("after vfork in child", /* Clear. */ true); ++ _exit (0); ++ } ++ ++ /* Check that ZA state of SME was disabled in parent. */ ++ check_sme_za_state ("after vfork in parent", /* Clear. */ true); ++ ++ TEST_VERIFY (xwaitpid (pid, NULL, 0) == pid); ++} +diff --git a/sysdeps/aarch64/tst-sme-za-state.c b/sysdeps/aarch64/tst-sme-za-state.c +index 63f6eebeb4f2aea7..00118ef506683ca0 100644 +--- a/sysdeps/aarch64/tst-sme-za-state.c ++++ b/sysdeps/aarch64/tst-sme-za-state.c +@@ -16,47 +16,9 @@ + License along with the GNU C Library; if not, see + . */ + +-#include +-#include +-#include +-#include +-#include +- +-#include +-#include +-#include +- +-#include "tst-sme-helper.h" +- +-static uint8_t *state; +- +-static void +-enable_sme_za_state (struct blk *ptr) +-{ +- set_tpidr2 (ptr); +- start_za (); +- load_za (state); +-} ++#include "tst-sme-skeleton.c" + +-static void +-check_sme_za_state (const char msg[], bool clear) +-{ +- unsigned long svcr = get_svcr (); +- void *tpidr2 = get_tpidr2 (); +- printf ("[%s]\n", msg); +- printf ("svcr = %016lx\n", svcr); +- printf ("tpidr2 = %016lx\n", (unsigned long)tpidr2); +- if (clear) +- { +- TEST_VERIFY (svcr == 0); +- TEST_VERIFY (tpidr2 == NULL); +- } +- else +- { +- TEST_VERIFY (svcr != 0); +- TEST_VERIFY (tpidr2 != NULL); +- } +-} ++#include + + static void + run (struct blk *ptr) +@@ -88,32 +50,3 @@ run (struct blk *ptr) + TEST_COMPARE (ret, 42); + check_sme_za_state ("after longjmp", /* Clear. */ true); + } +- +-static int +-do_test (void) +-{ +- unsigned long hwcap2 = getauxval (AT_HWCAP2); +- if ((hwcap2 & HWCAP2_SME) == 0) +- return EXIT_UNSUPPORTED; +- +- /* Get current streaming SVE vector register size. */ +- svl = get_svl (); +- printf ("svl: %lu\n", svl); +- TEST_VERIFY_EXIT (!(svl < 16 || svl % 16 != 0 || svl >= (1 << 16))); +- +- /* Initialise buffer for ZA state of SME. */ +- state = xmalloc (svl * svl); +- memset (state, 1, svl * svl); +- struct blk blk = { +- .za_save_buffer = state, +- .num_za_save_slices = svl, +- .__reserved = {0}, +- }; +- +- run (&blk); +- +- free (state); +- return 0; +-} +- +-#include diff --git a/glibc-upstream-2.39-273.patch b/glibc-upstream-2.39-273.patch new file mode 100644 index 0000000..ae2e5eb --- /dev/null +++ b/glibc-upstream-2.39-273.patch @@ -0,0 +1,50 @@ +commit c1dc4412f887ef1e3c1dbe95d9afb8f666860d3f +Author: Yury Khrustalev +Date: Tue Oct 28 11:01:50 2025 +0000 + + aarch64: fix cfi directives around __libc_arm_za_disable + + Incorrect CFI directive corrupted call stack information + and prevented debuggers from correctly displaying call + stack information. + + Reviewed-by: Adhemerval Zanella + (cherry picked from commit 2f77aec043f61e8533487850b11941a640ae2dea) + (cherry picked from commit de1fe81f471496366580ad728b8986a3424b2fd7) + (cherry picked from commit 5bf8ee7ad559fd60bedd3f5ec831d0b12b5000b8) + (cherry picked from commit 1c0ad5ea63b2e5d39eb55f734b0e2bea7f766523) + +diff --git a/sysdeps/unix/sysv/linux/aarch64/sysdep.h b/sysdeps/unix/sysv/linux/aarch64/sysdep.h +index 19e66f77202add1a..4e70101b7cadd5fe 100644 +--- a/sysdeps/unix/sysv/linux/aarch64/sysdep.h ++++ b/sysdeps/unix/sysv/linux/aarch64/sysdep.h +@@ -155,11 +155,12 @@ + that allows to call it without stack manipulation and preserving + most of the registers. */ + .macro CALL_LIBC_ARM_ZA_DISABLE ++ cfi_remember_state + mov x13, x30 +- .cfi_register x30, x13 ++ cfi_register(x30, x13) + bl __libc_arm_za_disable + mov x30, x13 +- .cfi_register x13, x30 ++ cfi_restore_state + .endm + + #else /* not __ASSEMBLER__ */ +@@ -255,11 +256,12 @@ + ({ \ + unsigned long int __tmp; \ + asm volatile ( \ ++ " .cfi_remember_state\n" \ + " mov %0, x30\n" \ +- " .cfi_register x30, %0\n" \ ++ " .cfi_register x30, %0\n" \ + " bl __libc_arm_za_disable\n" \ + " mov x30, %0\n" \ +- " .cfi_register %0, x30\n" \ ++ " .cfi_restore_state\n" \ + : "=r" (__tmp) \ + : \ + : "x14", "x15", "x16", "x17", "x18", "memory" ); \ diff --git a/glibc-upstream-2.39-274.patch b/glibc-upstream-2.39-274.patch new file mode 100644 index 0000000..45e4298 --- /dev/null +++ b/glibc-upstream-2.39-274.patch @@ -0,0 +1,39 @@ +commit 0d05a895f10ddec0d0ff63715f5744fc70471c41 +Author: Yury Khrustalev +Date: Tue Nov 11 11:40:25 2025 +0000 + + aarch64: fix includes in SME tests + + Use the correct include for the SIGCHLD macro: signal.h + + Reviewed-by: Wilco Dijkstra + (cherry picked from commit a9c426bcca59a9e228c4fbe75e75154217ec4ada) + (cherry picked from commit 17c3eab387c3ceb6972e57888a89b1480793f81a) + (cherry picked from commit 215e9155ea06064342151d05446ae51da16e0f65) + (cherry picked from commit a66680adf3b2266c177f94f3f63e4b182e6362fe) + +diff --git a/sysdeps/aarch64/tst-sme-clone.c b/sysdeps/aarch64/tst-sme-clone.c +index 7106ec7926fb64b8..b6ad54fa37213b0c 100644 +--- a/sysdeps/aarch64/tst-sme-clone.c ++++ b/sysdeps/aarch64/tst-sme-clone.c +@@ -19,6 +19,7 @@ + + #include "tst-sme-skeleton.c" + ++#include + #include + + static int +diff --git a/sysdeps/aarch64/tst-sme-clone3.c b/sysdeps/aarch64/tst-sme-clone3.c +index 402b040cfd69acd9..f420d5984d17fe74 100644 +--- a/sysdeps/aarch64/tst-sme-clone3.c ++++ b/sysdeps/aarch64/tst-sme-clone3.c +@@ -22,7 +22,7 @@ + #include + + #include +-#include ++#include + #include + + /* Since clone3 is not a public symbol, we link this test explicitly diff --git a/glibc-upstream-2.39-275.patch b/glibc-upstream-2.39-275.patch new file mode 100644 index 0000000..adfab4e --- /dev/null +++ b/glibc-upstream-2.39-275.patch @@ -0,0 +1,161 @@ +commit 03d03933436508e6441dde5b9bbee079deb55b17 +Author: Joe Ramsay +Date: Thu Nov 6 15:36:03 2025 +0000 + + AArch64: Optimise SVE scalar callbacks + + Instead of using SVE instructions to marshall special results into the + correct lane, just write the entire vector (and the predicate) to + memory, then use cheaper scalar operations. + + Geomean speedup of 16% in special intervals on Neoverse with GCC 14. + + Reviewed-by: Wilco Dijkstra + (cherry picked from commit 5b82fb18827e962af9f080fdf3c1a69802783f67) + +diff --git a/sysdeps/aarch64/fpu/sv_math.h b/sysdeps/aarch64/fpu/sv_math.h +index 41a201392918118e..c2dae543a19464dd 100644 +--- a/sysdeps/aarch64/fpu/sv_math.h ++++ b/sysdeps/aarch64/fpu/sv_math.h +@@ -24,11 +24,29 @@ + + #include "vecmath_config.h" + ++#if !defined(__ARM_FEATURE_SVE_BITS) || __ARM_FEATURE_SVE_BITS == 0 ++/* If not specified by -msve-vector-bits, assume maximum vector length. */ ++# define SVE_VECTOR_BYTES 256 ++#else ++# define SVE_VECTOR_BYTES (__ARM_FEATURE_SVE_BITS / 8) ++#endif ++#define SVE_NUM_FLTS (SVE_VECTOR_BYTES / sizeof (float)) ++#define SVE_NUM_DBLS (SVE_VECTOR_BYTES / sizeof (double)) ++/* Predicate is stored as one bit per byte of VL so requires VL / 64 bytes. */ ++#define SVE_NUM_PG_BYTES (SVE_VECTOR_BYTES / sizeof (uint64_t)) ++ + #define SV_NAME_F1(fun) _ZGVsMxv_##fun##f + #define SV_NAME_D1(fun) _ZGVsMxv_##fun + #define SV_NAME_F2(fun) _ZGVsMxvv_##fun##f + #define SV_NAME_D2(fun) _ZGVsMxvv_##fun + ++static inline void ++svstr_p (uint8_t *dst, svbool_t p) ++{ ++ /* Predicate STR does not currently have an intrinsic. */ ++ __asm__("str %0, [%x1]\n" : : "Upa"(p), "r"(dst) : "memory"); ++} ++ + /* Double precision. */ + static inline svint64_t + sv_s64 (int64_t x) +@@ -51,33 +69,35 @@ sv_f64 (double x) + static inline svfloat64_t + sv_call_f64 (double (*f) (double), svfloat64_t x, svfloat64_t y, svbool_t cmp) + { +- svbool_t p = svpfirst (cmp, svpfalse ()); +- while (svptest_any (cmp, p)) ++ double tmp[SVE_NUM_DBLS]; ++ uint8_t pg_bits[SVE_NUM_PG_BYTES]; ++ svstr_p (pg_bits, cmp); ++ svst1 (svptrue_b64 (), tmp, svsel (cmp, x, y)); ++ ++ for (int i = 0; i < svcntd (); i++) + { +- double elem = svclastb_n_f64 (p, 0, x); +- elem = (*f) (elem); +- svfloat64_t y2 = svdup_n_f64 (elem); +- y = svsel_f64 (p, y2, y); +- p = svpnext_b64 (cmp, p); ++ if (pg_bits[i] & 1) ++ tmp[i] = f (tmp[i]); + } +- return y; ++ return svld1 (svptrue_b64 (), tmp); + } + + static inline svfloat64_t + sv_call2_f64 (double (*f) (double, double), svfloat64_t x1, svfloat64_t x2, + svfloat64_t y, svbool_t cmp) + { +- svbool_t p = svpfirst (cmp, svpfalse ()); +- while (svptest_any (cmp, p)) ++ double tmp1[SVE_NUM_DBLS], tmp2[SVE_NUM_DBLS]; ++ uint8_t pg_bits[SVE_NUM_PG_BYTES]; ++ svstr_p (pg_bits, cmp); ++ svst1 (svptrue_b64 (), tmp1, svsel (cmp, x1, y)); ++ svst1 (cmp, tmp2, x2); ++ ++ for (int i = 0; i < svcntd (); i++) + { +- double elem1 = svclastb_n_f64 (p, 0, x1); +- double elem2 = svclastb_n_f64 (p, 0, x2); +- double ret = (*f) (elem1, elem2); +- svfloat64_t y2 = svdup_n_f64 (ret); +- y = svsel_f64 (p, y2, y); +- p = svpnext_b64 (cmp, p); ++ if (pg_bits[i] & 1) ++ tmp1[i] = f (tmp1[i], tmp2[i]); + } +- return y; ++ return svld1 (svptrue_b64 (), tmp1); + } + + static inline svuint64_t +@@ -109,33 +129,40 @@ sv_f32 (float x) + static inline svfloat32_t + sv_call_f32 (float (*f) (float), svfloat32_t x, svfloat32_t y, svbool_t cmp) + { +- svbool_t p = svpfirst (cmp, svpfalse ()); +- while (svptest_any (cmp, p)) ++ float tmp[SVE_NUM_FLTS]; ++ uint8_t pg_bits[SVE_NUM_PG_BYTES]; ++ svstr_p (pg_bits, cmp); ++ svst1 (svptrue_b32 (), tmp, svsel (cmp, x, y)); ++ ++ for (int i = 0; i < svcntd (); i++) + { +- float elem = svclastb_n_f32 (p, 0, x); +- elem = f (elem); +- svfloat32_t y2 = svdup_n_f32 (elem); +- y = svsel_f32 (p, y2, y); +- p = svpnext_b32 (cmp, p); ++ uint8_t p = pg_bits[i]; ++ if (p & 1) ++ tmp[i * 2] = f (tmp[i * 2]); ++ if (p & (1 << 4)) ++ tmp[i * 2 + 1] = f (tmp[i * 2 + 1]); + } +- return y; ++ return svld1 (svptrue_b32 (), tmp); + } + + static inline svfloat32_t + sv_call2_f32 (float (*f) (float, float), svfloat32_t x1, svfloat32_t x2, + svfloat32_t y, svbool_t cmp) + { +- svbool_t p = svpfirst (cmp, svpfalse ()); +- while (svptest_any (cmp, p)) ++ float tmp1[SVE_NUM_FLTS], tmp2[SVE_NUM_FLTS]; ++ uint8_t pg_bits[SVE_NUM_PG_BYTES]; ++ svstr_p (pg_bits, cmp); ++ svst1 (svptrue_b32 (), tmp1, svsel (cmp, x1, y)); ++ svst1 (cmp, tmp2, x2); ++ ++ for (int i = 0; i < svcntd (); i++) + { +- float elem1 = svclastb_n_f32 (p, 0, x1); +- float elem2 = svclastb_n_f32 (p, 0, x2); +- float ret = f (elem1, elem2); +- svfloat32_t y2 = svdup_n_f32 (ret); +- y = svsel_f32 (p, y2, y); +- p = svpnext_b32 (cmp, p); ++ uint8_t p = pg_bits[i]; ++ if (p & 1) ++ tmp1[i * 2] = f (tmp1[i * 2], tmp2[i * 2]); ++ if (p & (1 << 4)) ++ tmp1[i * 2 + 1] = f (tmp1[i * 2 + 1], tmp2[i * 2 + 1]); + } +- return y; ++ return svld1 (svptrue_b32 (), tmp1); + } +- + #endif diff --git a/glibc-upstream-2.39-277.patch b/glibc-upstream-2.39-277.patch new file mode 100644 index 0000000..852bdb2 --- /dev/null +++ b/glibc-upstream-2.39-277.patch @@ -0,0 +1,291 @@ +commit 0daa4e46b870f13a0837c9d3bbe4ab3029a5c26f +Author: Sachin Monga +Date: Fri Nov 21 01:55:45 2025 -0500 + + ppc64le: Restore optimized strcmp for power10 + + This patch addresses the actual cause of CVE-2025-5702 + + The vector non-volatile registers are not used anymore for + 32 byte load and comparison operation + + Additionally, the assembler workaround used earlier for the + instruction lxvp is replaced with actual instruction. + + Signed-off-by: Sachin Monga + Co-authored-by: Paul Murphy + (cherry picked from commit 9a40b1cda519cc4f532acb6d020390829df3d81b) + +diff --git a/sysdeps/powerpc/powerpc64/le/power10/strcmp.S b/sysdeps/powerpc/powerpc64/le/power10/strcmp.S +new file mode 100644 +index 0000000000000000..0d4a53317c889045 +--- /dev/null ++++ b/sysdeps/powerpc/powerpc64/le/power10/strcmp.S +@@ -0,0 +1,185 @@ ++/* Optimized strcmp implementation for PowerPC64/POWER10. ++ Copyright (C) 2025 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 ++ . */ ++#include ++ ++#ifndef STRCMP ++# define STRCMP strcmp ++#endif ++ ++/* Implements the function ++ int [r3] strcmp (const char *s1 [r3], const char *s2 [r4]). */ ++ ++ ++#define COMPARE_16(vreg1,vreg2,offset) \ ++ lxv vreg1+32,offset(r3); \ ++ lxv vreg2+32,offset(r4); \ ++ vcmpnezb. v7,vreg1,vreg2; \ ++ bne cr6,L(different); \ ++ ++#define COMPARE_32(vreg1,vreg2,offset,label1,label2) \ ++ lxvp vreg1+32,offset(r3); \ ++ lxvp vreg2+32,offset(r4); \ ++ vcmpnezb. v7,vreg1+1,vreg2+1; \ ++ bne cr6,L(label1); \ ++ vcmpnezb. v7,vreg1,vreg2; \ ++ bne cr6,L(label2); \ ++ ++#define TAIL(vreg1,vreg2) \ ++ vctzlsbb r6,v7; \ ++ vextubrx r5,r6,vreg1; \ ++ vextubrx r4,r6,vreg2; \ ++ subf r3,r4,r5; \ ++ blr; \ ++ ++#define CHECK_N_BYTES(reg1,reg2,len_reg) \ ++ sldi r0,len_reg,56; \ ++ lxvl 32+v4,reg1,r0; \ ++ lxvl 32+v5,reg2,r0; \ ++ add reg1,reg1,len_reg; \ ++ add reg2,reg2,len_reg; \ ++ vcmpnezb. v7,v4,v5; \ ++ vctzlsbb r6,v7; \ ++ cmpld cr7,r6,len_reg; \ ++ blt cr7,L(different); \ ++ ++ ++ .machine power10 ++ENTRY_TOCLESS (STRCMP, 4) ++ li r11,16 ++ /* eq bit of cr1 used as swap status flag to indicate if ++ source pointers were swapped. */ ++ crclr 4*cr1+eq ++ andi. r7,r3,15 ++ sub r7,r11,r7 /* r7(nalign1) = 16 - (str1 & 15). */ ++ andi. r9,r4,15 ++ sub r5,r11,r9 /* r5(nalign2) = 16 - (str2 & 15). */ ++ cmpld cr7,r7,r5 ++ beq cr7,L(same_aligned) ++ blt cr7,L(nalign1_min) ++ /* Swap r3 and r4, and r7 and r5 such that r3 and r7 hold the ++ pointer which is closer to the next 16B boundary so that only ++ one CHECK_N_BYTES is needed before entering the loop below. */ ++ mr r8,r4 ++ mr r4,r3 ++ mr r3,r8 ++ mr r12,r7 ++ mr r7,r5 ++ mr r5,r12 ++ crset 4*cr1+eq /* Set bit on swapping source pointers. */ ++ ++ .p2align 5 ++L(nalign1_min): ++ CHECK_N_BYTES(r3,r4,r7) ++ ++ .p2align 5 ++L(s1_aligned): ++ /* r9 and r5 is number of bytes to be read after and before ++ page boundary correspondingly. */ ++ sub r5,r5,r7 ++ subfic r9,r5,16 ++ /* Now let r7 hold the count of quadwords which can be ++ checked without crossing a page boundary. quadword offset is ++ (str2>>4)&0xFF. */ ++ rlwinm r7,r4,28,0xFF ++ /* Below check is required only for first iteration. For second ++ iteration and beyond, the new loop counter is always 255. */ ++ cmpldi r7,255 ++ beq L(L3) ++ /* Get the initial loop count by 255-((str2>>4)&0xFF). */ ++ subfic r11,r7,255 ++ ++ .p2align 5 ++L(L1): ++ mtctr r11 ++ ++ .p2align 5 ++L(L2): ++ COMPARE_16(v4,v5,0) /* Load 16B blocks using lxv. */ ++ addi r3,r3,16 ++ addi r4,r4,16 ++ bdnz L(L2) ++ /* Cross the page boundary of s2, carefully. */ ++ ++ .p2align 5 ++L(L3): ++ CHECK_N_BYTES(r3,r4,r5) ++ CHECK_N_BYTES(r3,r4,r9) ++ li r11,255 /* Load the new loop counter. */ ++ b L(L1) ++ ++ .p2align 5 ++L(same_aligned): ++ CHECK_N_BYTES(r3,r4,r7) ++ /* Align s1 to 32B and adjust s2 address. ++ Use lxvp only if both s1 and s2 are 32B aligned. */ ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ COMPARE_16(v4,v5,32) ++ COMPARE_16(v4,v5,48) ++ addi r3,r3,64 ++ addi r4,r4,64 ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ ++ clrldi r6,r3,59 ++ subfic r5,r6,32 ++ add r3,r3,r5 ++ add r4,r4,r5 ++ andi. r5,r4,0x1F ++ beq cr0,L(32B_aligned_loop) ++ ++ .p2align 5 ++L(16B_aligned_loop): ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ COMPARE_16(v4,v5,32) ++ COMPARE_16(v4,v5,48) ++ addi r3,r3,64 ++ addi r4,r4,64 ++ b L(16B_aligned_loop) ++ ++ /* Calculate and return the difference. */ ++L(different): ++ vctzlsbb r6,v7 ++ vextubrx r5,r6,v4 ++ vextubrx r4,r6,v5 ++ bt 4*cr1+eq,L(swapped) ++ subf r3,r4,r5 ++ blr ++ ++ /* If src pointers were swapped, then swap the ++ indices and calculate the return value. */ ++L(swapped): ++ subf r3,r5,r4 ++ blr ++ ++ .p2align 5 ++L(32B_aligned_loop): ++ COMPARE_32(v14,v16,0,tail1,tail2) ++ COMPARE_32(v14,v16,32,tail1,tail2) ++ COMPARE_32(v14,v16,64,tail1,tail2) ++ COMPARE_32(v14,v16,96,tail1,tail2) ++ addi r3,r3,128 ++ addi r4,r4,128 ++ b L(32B_aligned_loop) ++ ++L(tail1): TAIL(v15,v17) ++L(tail2): TAIL(v14,v16) ++ ++END (STRCMP) ++libc_hidden_builtin_def (strcmp) +diff --git a/sysdeps/powerpc/powerpc64/multiarch/Makefile b/sysdeps/powerpc/powerpc64/multiarch/Makefile +index 27d8495503a5a1fe..d7824a922b0de470 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/Makefile ++++ b/sysdeps/powerpc/powerpc64/multiarch/Makefile +@@ -33,7 +33,8 @@ sysdep_routines += memcpy-power8-cached memcpy-power7 memcpy-a2 memcpy-power6 \ + ifneq (,$(filter %le,$(config-machine))) + sysdep_routines += memcmp-power10 memcpy-power10 memmove-power10 memset-power10 \ + rawmemchr-power9 rawmemchr-power10 \ +- strcmp-power9 strncmp-power9 strcpy-power9 stpcpy-power9 \ ++ strcmp-power9 strcmp-power10 strncmp-power9 \ ++ strcpy-power9 stpcpy-power9 \ + strlen-power9 strncpy-power9 stpncpy-power9 strlen-power10 + endif + CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops +diff --git a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +index ad6080f1991f4080..e2f733eb82fa6199 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c ++++ b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +@@ -377,6 +377,10 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, + /* Support sysdeps/powerpc/powerpc64/multiarch/strcmp.c. */ + IFUNC_IMPL (i, name, strcmp, + #ifdef __LITTLE_ENDIAN__ ++ IFUNC_IMPL_ADD (array, i, strcmp, ++ (hwcap2 & PPC_FEATURE2_ARCH_3_1) ++ && (hwcap & PPC_FEATURE_HAS_VSX), ++ __strcmp_power10) + IFUNC_IMPL_ADD (array, i, strcmp, + hwcap2 & PPC_FEATURE2_ARCH_3_00 + && hwcap & PPC_FEATURE_HAS_ALTIVEC, +diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp-power10.S b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power10.S +new file mode 100644 +index 0000000000000000..a4ee7fb53ccf5e01 +--- /dev/null ++++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp-power10.S +@@ -0,0 +1,26 @@ ++/* Optimized strcmp implementation for POWER10/PPC64. ++ Copyright (C) 2025 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 ++ . */ ++ ++#if defined __LITTLE_ENDIAN__ && IS_IN (libc) ++#define STRCMP __strcmp_power10 ++ ++#undef libc_hidden_builtin_def ++#define libc_hidden_builtin_def(name) ++ ++#include ++#endif /* __LITTLE_ENDIAN__ && IS_IN (libc) */ +diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcmp.c b/sysdeps/powerpc/powerpc64/multiarch/strcmp.c +index 06b9b4090ff23ee1..ff32496fabba2e47 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/strcmp.c ++++ b/sysdeps/powerpc/powerpc64/multiarch/strcmp.c +@@ -29,12 +29,16 @@ extern __typeof (strcmp) __strcmp_power7 attribute_hidden; + extern __typeof (strcmp) __strcmp_power8 attribute_hidden; + # ifdef __LITTLE_ENDIAN__ + extern __typeof (strcmp) __strcmp_power9 attribute_hidden; ++extern __typeof (strcmp) __strcmp_power10 attribute_hidden; + # endif + + # undef strcmp + + libc_ifunc_redirected (__redirect_strcmp, strcmp, + # ifdef __LITTLE_ENDIAN__ ++ (hwcap2 & PPC_FEATURE2_ARCH_3_1 ++ && hwcap & PPC_FEATURE_HAS_VSX) ++ ? __strcmp_power10 : + (hwcap2 & PPC_FEATURE2_ARCH_3_00 + && hwcap & PPC_FEATURE_HAS_ALTIVEC) + ? __strcmp_power9 : diff --git a/glibc-upstream-2.39-278.patch b/glibc-upstream-2.39-278.patch new file mode 100644 index 0000000..50bbc7d --- /dev/null +++ b/glibc-upstream-2.39-278.patch @@ -0,0 +1,356 @@ +commit f6becd8ae8091846e8cc098cfc4dcacf352d9300 +Author: Sachin Monga +Date: Fri Nov 21 01:56:13 2025 -0500 + + ppc64le: Restore optimized strncmp for power10 + + This patch addresses the actual cause of CVE-2025-5745 + + The vector non-volatile registers are not used anymore for + 32 byte load and comparison operation + + Additionally, the assembler workaround used earlier for the + instruction lxvp is replaced with actual instruction. + + Signed-off-by: Sachin Monga + Co-authored-by: Paul Murphy + (cherry picked from commit 2ea943f7d487d6a4166658b32af7c5365889fc34) + +diff --git a/sysdeps/powerpc/powerpc64/le/power10/strncmp.S b/sysdeps/powerpc/powerpc64/le/power10/strncmp.S +new file mode 100644 +index 0000000000000000..6e09fcb7f222d77e +--- /dev/null ++++ b/sysdeps/powerpc/powerpc64/le/power10/strncmp.S +@@ -0,0 +1,252 @@ ++/* Optimized strncmp implementation for PowerPC64/POWER10. ++ Copyright (C) 2025 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 ++ . */ ++ ++#include ++ ++/* Implements the function ++ ++ int [r3] strncmp (const char *s1 [r3], const char *s2 [r4], size_t [r5] n) ++ ++ The implementation uses unaligned doubleword access to avoid specialized ++ code paths depending of data alignment for first 32 bytes and uses ++ vectorised loops after that. */ ++ ++#ifndef STRNCMP ++# define STRNCMP strncmp ++#endif ++ ++#define COMPARE_16(vreg1,vreg2,offset) \ ++ lxv vreg1+32,offset(r3); \ ++ lxv vreg2+32,offset(r4); \ ++ vcmpnezb. v7,vreg1,vreg2; \ ++ bne cr6,L(different); \ ++ cmpldi cr7,r5,16; \ ++ ble cr7,L(ret0); \ ++ addi r5,r5,-16; ++ ++#define COMPARE_32(vreg1,vreg2,offset,label1,label2) \ ++ lxvp vreg1+32,offset(r3); \ ++ lxvp vreg2+32,offset(r4); \ ++ vcmpnezb. v7,vreg1+1,vreg2+1; \ ++ bne cr6,L(label1); \ ++ vcmpnezb. v7,vreg1,vreg2; \ ++ bne cr6,L(label2); \ ++ cmpldi cr7,r5,32; \ ++ ble cr7,L(ret0); \ ++ addi r5,r5,-32; ++ ++#define TAIL_FIRST_16B(vreg1,vreg2) \ ++ vctzlsbb r6,v7; \ ++ cmpld cr7,r5,r6; \ ++ ble cr7,L(ret0); \ ++ vextubrx r5,r6,vreg1; \ ++ vextubrx r4,r6,vreg2; \ ++ subf r3,r4,r5; \ ++ blr; ++ ++#define TAIL_SECOND_16B(vreg1,vreg2) \ ++ vctzlsbb r6,v7; \ ++ addi r0,r6,16; \ ++ cmpld cr7,r5,r0; \ ++ ble cr7,L(ret0); \ ++ vextubrx r5,r6,vreg1; \ ++ vextubrx r4,r6,vreg2; \ ++ subf r3,r4,r5; \ ++ blr; ++ ++#define CHECK_N_BYTES(reg1,reg2,len_reg) \ ++ sldi r6,len_reg,56; \ ++ lxvl 32+v4,reg1,r6; \ ++ lxvl 32+v5,reg2,r6; \ ++ add reg1,reg1,len_reg; \ ++ add reg2,reg2,len_reg; \ ++ vcmpnezb v7,v4,v5; \ ++ vctzlsbb r6,v7; \ ++ cmpld cr7,r6,len_reg; \ ++ blt cr7,L(different); \ ++ cmpld cr7,r5,len_reg; \ ++ ble cr7,L(ret0); \ ++ sub r5,r5,len_reg; \ ++ ++ .machine power10 ++ENTRY_TOCLESS (STRNCMP, 4) ++ /* Check if size is 0. */ ++ cmpdi cr0,r5,0 ++ beq cr0,L(ret0) ++ andi. r7,r3,4095 ++ andi. r8,r4,4095 ++ cmpldi cr0,r7,4096-16 ++ cmpldi cr1,r8,4096-16 ++ bgt cr0,L(crosses) ++ bgt cr1,L(crosses) ++ COMPARE_16(v4,v5,0) ++ addi r3,r3,16 ++ addi r4,r4,16 ++ ++L(crosses): ++ andi. r7,r3,15 ++ subfic r7,r7,16 /* r7(nalign1) = 16 - (str1 & 15). */ ++ andi. r9,r4,15 ++ subfic r8,r9,16 /* r8(nalign2) = 16 - (str2 & 15). */ ++ cmpld cr7,r7,r8 ++ beq cr7,L(same_aligned) ++ blt cr7,L(nalign1_min) ++ ++ /* nalign2 is minimum and s2 pointer is aligned. */ ++ CHECK_N_BYTES(r3,r4,r8) ++ /* Are we on the 64B hunk which crosses a page? */ ++ andi. r10,r3,63 /* Determine offset into 64B hunk. */ ++ andi. r8,r3,15 /* The offset into the 16B hunk. */ ++ neg r7,r3 ++ andi. r9,r7,15 /* Number of bytes after a 16B cross. */ ++ rlwinm. r7,r7,26,0x3F /* ((r4-4096))>>6&63. */ ++ beq L(compare_64_pagecross) ++ mtctr r7 ++ b L(compare_64B_unaligned) ++ ++ /* nalign1 is minimum and s1 pointer is aligned. */ ++L(nalign1_min): ++ CHECK_N_BYTES(r3,r4,r7) ++ /* Are we on the 64B hunk which crosses a page? */ ++ andi. r10,r4,63 /* Determine offset into 64B hunk. */ ++ andi. r8,r4,15 /* The offset into the 16B hunk. */ ++ neg r7,r4 ++ andi. r9,r7,15 /* Number of bytes after a 16B cross. */ ++ rlwinm. r7,r7,26,0x3F /* ((r4-4096))>>6&63. */ ++ beq L(compare_64_pagecross) ++ mtctr r7 ++ ++ .p2align 5 ++L(compare_64B_unaligned): ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ COMPARE_16(v4,v5,32) ++ COMPARE_16(v4,v5,48) ++ addi r3,r3,64 ++ addi r4,r4,64 ++ bdnz L(compare_64B_unaligned) ++ ++ /* Cross the page boundary of s2, carefully. Only for first ++ iteration we have to get the count of 64B blocks to be checked. ++ From second iteration and beyond, loop counter is always 63. */ ++L(compare_64_pagecross): ++ li r11, 63 ++ mtctr r11 ++ cmpldi r10,16 ++ ble L(cross_4) ++ cmpldi r10,32 ++ ble L(cross_3) ++ cmpldi r10,48 ++ ble L(cross_2) ++L(cross_1): ++ CHECK_N_BYTES(r3,r4,r9) ++ CHECK_N_BYTES(r3,r4,r8) ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ COMPARE_16(v4,v5,32) ++ addi r3,r3,48 ++ addi r4,r4,48 ++ b L(compare_64B_unaligned) ++L(cross_2): ++ COMPARE_16(v4,v5,0) ++ addi r3,r3,16 ++ addi r4,r4,16 ++ CHECK_N_BYTES(r3,r4,r9) ++ CHECK_N_BYTES(r3,r4,r8) ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ addi r3,r3,32 ++ addi r4,r4,32 ++ b L(compare_64B_unaligned) ++L(cross_3): ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ addi r3,r3,32 ++ addi r4,r4,32 ++ CHECK_N_BYTES(r3,r4,r9) ++ CHECK_N_BYTES(r3,r4,r8) ++ COMPARE_16(v4,v5,0) ++ addi r3,r3,16 ++ addi r4,r4,16 ++ b L(compare_64B_unaligned) ++L(cross_4): ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ COMPARE_16(v4,v5,32) ++ addi r3,r3,48 ++ addi r4,r4,48 ++ CHECK_N_BYTES(r3,r4,r9) ++ CHECK_N_BYTES(r3,r4,r8) ++ b L(compare_64B_unaligned) ++ ++L(same_aligned): ++ CHECK_N_BYTES(r3,r4,r7) ++ /* Align s1 to 32B and adjust s2 address. ++ Use lxvp only if both s1 and s2 are 32B aligned. */ ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ COMPARE_16(v4,v5,32) ++ COMPARE_16(v4,v5,48) ++ addi r3,r3,64 ++ addi r4,r4,64 ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ addi r5,r5,32 ++ ++ clrldi r6,r3,59 ++ subfic r7,r6,32 ++ add r3,r3,r7 ++ add r4,r4,r7 ++ subf r5,r7,r5 ++ andi. r7,r4,0x1F ++ beq cr0,L(32B_aligned_loop) ++ ++ .p2align 5 ++L(16B_aligned_loop): ++ COMPARE_16(v4,v5,0) ++ COMPARE_16(v4,v5,16) ++ COMPARE_16(v4,v5,32) ++ COMPARE_16(v4,v5,48) ++ addi r3,r3,64 ++ addi r4,r4,64 ++ b L(16B_aligned_loop) ++ ++ /* Calculate and return the difference. */ ++L(different): ++ TAIL_FIRST_16B(v4,v5) ++ ++ .p2align 5 ++L(32B_aligned_loop): ++ COMPARE_32(v14,v16,0,tail1,tail2) ++ COMPARE_32(v14,v16,32,tail1,tail2) ++ COMPARE_32(v14,v16,64,tail1,tail2) ++ COMPARE_32(v14,v16,96,tail1,tail2) ++ addi r3,r3,128 ++ addi r4,r4,128 ++ b L(32B_aligned_loop) ++ ++L(tail1): TAIL_FIRST_16B(v15,v17) ++L(tail2): TAIL_SECOND_16B(v14,v16) ++ ++ .p2align 5 ++L(ret0): ++ li r3,0 ++ blr ++ ++END(STRNCMP) ++libc_hidden_builtin_def(strncmp) +diff --git a/sysdeps/powerpc/powerpc64/multiarch/Makefile b/sysdeps/powerpc/powerpc64/multiarch/Makefile +index d7824a922b0de470..f6d93f255182bc9f 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/Makefile ++++ b/sysdeps/powerpc/powerpc64/multiarch/Makefile +@@ -33,7 +33,7 @@ sysdep_routines += memcpy-power8-cached memcpy-power7 memcpy-a2 memcpy-power6 \ + ifneq (,$(filter %le,$(config-machine))) + sysdep_routines += memcmp-power10 memcpy-power10 memmove-power10 memset-power10 \ + rawmemchr-power9 rawmemchr-power10 \ +- strcmp-power9 strcmp-power10 strncmp-power9 \ ++ strcmp-power9 strcmp-power10 strncmp-power9 strncmp-power10 \ + strcpy-power9 stpcpy-power9 \ + strlen-power9 strncpy-power9 stpncpy-power9 strlen-power10 + endif +diff --git a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +index e2f733eb82fa6199..99d24ed1ff204b57 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c ++++ b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c +@@ -164,6 +164,9 @@ __libc_ifunc_impl_list (const char *name, struct libc_ifunc_impl *array, + /* Support sysdeps/powerpc/powerpc64/multiarch/strncmp.c. */ + IFUNC_IMPL (i, name, strncmp, + #ifdef __LITTLE_ENDIAN__ ++ IFUNC_IMPL_ADD (array, i, strncmp, hwcap2 & PPC_FEATURE2_ARCH_3_1 ++ && hwcap & PPC_FEATURE_HAS_VSX, ++ __strncmp_power10) + IFUNC_IMPL_ADD (array, i, strncmp, hwcap2 & PPC_FEATURE2_ARCH_3_00 + && hwcap & PPC_FEATURE_HAS_ALTIVEC, + __strncmp_power9) +diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power10.S b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power10.S +new file mode 100644 +index 0000000000000000..bb25bc75b8e7f43b +--- /dev/null ++++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power10.S +@@ -0,0 +1,25 @@ ++/* Copyright (C) 2025 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 ++ . */ ++ ++#if defined __LITTLE_ENDIAN__ && IS_IN (libc) ++#define STRNCMP __strncmp_power10 ++ ++#undef libc_hidden_builtin_def ++#define libc_hidden_builtin_def(name) ++ ++#include ++#endif +diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp.c b/sysdeps/powerpc/powerpc64/multiarch/strncmp.c +index 6178f4a432bb33a4..a5ed67f766317aa3 100644 +--- a/sysdeps/powerpc/powerpc64/multiarch/strncmp.c ++++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp.c +@@ -29,6 +29,7 @@ extern __typeof (strncmp) __strncmp_ppc attribute_hidden; + extern __typeof (strncmp) __strncmp_power8 attribute_hidden; + # ifdef __LITTLE_ENDIAN__ + extern __typeof (strncmp) __strncmp_power9 attribute_hidden; ++extern __typeof (strncmp) __strncmp_power10 attribute_hidden; + # endif + # undef strncmp + +@@ -36,6 +37,9 @@ extern __typeof (strncmp) __strncmp_power9 attribute_hidden; + ifunc symbol properly. */ + libc_ifunc_redirected (__redirect_strncmp, strncmp, + # ifdef __LITTLE_ENDIAN__ ++ (hwcap2 & PPC_FEATURE2_ARCH_3_1 ++ && hwcap & PPC_FEATURE_HAS_VSX) ++ ? __strncmp_power10 : + (hwcap2 & PPC_FEATURE2_ARCH_3_00 + && hwcap & PPC_FEATURE_HAS_ALTIVEC) + ? __strncmp_power9 : diff --git a/glibc-upstream-2.39-279.patch b/glibc-upstream-2.39-279.patch new file mode 100644 index 0000000..b6fa010 --- /dev/null +++ b/glibc-upstream-2.39-279.patch @@ -0,0 +1,25 @@ +commit efff7cb65907125f0fb46840e8c44f0b5b6ef6f9 +Author: Sachin Monga +Date: Thu Nov 27 11:10:01 2025 -0500 + + ppc64le: Power 10 rawmemchr clobbers v20 (bug #33091) + + Replace non-volatile(v20) by volatile(v17) + since v20 is not restored + + Reviewed-by: Peter Bergner + (cherry picked from commit b59799f14f97f697c3a36b4380bd4ce2fbe65f11) + +diff --git a/sysdeps/powerpc/powerpc64/le/power10/strlen.S b/sysdeps/powerpc/powerpc64/le/power10/strlen.S +index 0bd794540f846236..574a24b586d32c56 100644 +--- a/sysdeps/powerpc/powerpc64/le/power10/strlen.S ++++ b/sysdeps/powerpc/powerpc64/le/power10/strlen.S +@@ -31,7 +31,7 @@ + # define FUNCNAME RAWMEMCHR + # endif + # define MCOUNT_NARGS 2 +-# define VREG_ZERO v20 ++# define VREG_ZERO v17 + # define OFF_START_LOOP 256 + # define RAWMEMCHR_SUBTRACT_VECTORS \ + vsububm v4,v4,v18; \ diff --git a/glibc-upstream-2.39-280.patch b/glibc-upstream-2.39-280.patch new file mode 100644 index 0000000..306267f --- /dev/null +++ b/glibc-upstream-2.39-280.patch @@ -0,0 +1,44 @@ +commit ae5fb9355918811679fa7ee01f1f41cea280b615 +Author: Sunil K Pandey +Date: Tue Dec 9 08:57:44 2025 -0800 + + nptl: Optimize trylock for high cache contention workloads (BZ #33704) + + Check lock availability before acquisition to reduce cache line + bouncing. Significantly improves trylock throughput on multi-core + systems under heavy contention. + + Tested on x86_64. + + Fixes BZ #33704. + + Co-authored-by: Alex M Wells + Reviewed-by: Wilco Dijkstra + (cherry picked from commit 63716823dbad9482e09972907ae98e9cb00f9b86) + +diff --git a/nptl/pthread_mutex_trylock.c b/nptl/pthread_mutex_trylock.c +index 720c103f3f1f92f7..6cf47403dd6a40fe 100644 +--- a/nptl/pthread_mutex_trylock.c ++++ b/nptl/pthread_mutex_trylock.c +@@ -48,7 +48,8 @@ ___pthread_mutex_trylock (pthread_mutex_t *mutex) + return 0; + } + +- if (lll_trylock (mutex->__data.__lock) == 0) ++ if (atomic_load_relaxed (&(mutex->__data.__lock)) == 0 ++ && lll_trylock (mutex->__data.__lock) == 0) + { + /* Record the ownership. */ + mutex->__data.__owner = id; +@@ -71,7 +72,10 @@ ___pthread_mutex_trylock (pthread_mutex_t *mutex) + /*FALL THROUGH*/ + case PTHREAD_MUTEX_ADAPTIVE_NP: + case PTHREAD_MUTEX_ERRORCHECK_NP: +- if (lll_trylock (mutex->__data.__lock) != 0) ++ /* Mutex type is already loaded, lock check overhead should ++ be minimal. */ ++ if (atomic_load_relaxed (&(mutex->__data.__lock)) != 0 ++ || lll_trylock (mutex->__data.__lock) != 0) + break; + + /* Record the ownership. */ diff --git a/glibc-upstream-2.39-281.patch b/glibc-upstream-2.39-281.patch new file mode 100644 index 0000000..44b080e --- /dev/null +++ b/glibc-upstream-2.39-281.patch @@ -0,0 +1,127 @@ +commit c07002038f0f4392e4546a30543272e9a4bbad06 +Author: H.J. Lu +Date: Tue Dec 17 15:18:36 2024 +0800 + + getaddrinfo.c: Avoid uninitialized pointer access [BZ #32465] + + Add valid_decimal_value to check valid decimal value in a string to + avoid uninitialized endp in add_prefixlist and gaiconf_init as reported + by Clang 19: + + ./getaddrinfo.c:1884:11: error: variable 'endp' is used uninitialized whenever '||' condition is true [-Werror,-Wsometimes-uninitialized] + 1884 | && (cp == NULL + | ^~~~~~~~~~ + ./getaddrinfo.c:1887:11: note: uninitialized use occurs here + 1887 | && *endp == '\0' + | ^~~~ + ./getaddrinfo.c:1884:11: note: remove the '||' if its condition is always false + 1884 | && (cp == NULL + | ^~~~~~~~~~ + 1885 | || (bits = strtoul (cp, &endp, 10)) != ULONG_MAX + | ~~ + ./getaddrinfo.c:1875:13: note: initialize the variable 'endp' to silence this warning + 1875 | char *endp; + | ^ + | = NULL + + This fixes BZ #32465. + + Signed-off-by: H.J. Lu + Reviewed-by: Sam James + (cherry picked from commit 33aeb88c5bc9a0c6b1bd7190a0ead7570972b719) + +diff --git a/nss/getaddrinfo.c b/nss/getaddrinfo.c +index 78f50954df1cca36..2add236973538da6 100644 +--- a/nss/getaddrinfo.c ++++ b/nss/getaddrinfo.c +@@ -1865,6 +1865,22 @@ scopecmp (const void *p1, const void *p2) + return 1; + } + ++/* Return true if PTR points to a valid decimal value string and ++ store the value in *VALUE_P. Otherwise, return false. */ ++ ++static bool ++valid_decimal_value (const char *str, unsigned long int *value_p) ++{ ++ char *endp; ++ unsigned long int value = strtoul (str, &endp, 10); ++ if (str == endp ++ || *endp != '\0' ++ || (value == ULONG_MAX && errno == ERANGE)) ++ return false; ++ *value_p = value; ++ return true; ++} ++ + static bool + add_prefixlist (struct prefixlist **listp, size_t *lenp, bool *nullbitsp, + char *val1, char *val2, char **pos) +@@ -1872,7 +1888,6 @@ add_prefixlist (struct prefixlist **listp, size_t *lenp, bool *nullbitsp, + struct in6_addr prefix; + unsigned long int bits; + unsigned long int val; +- char *endp; + + bits = 128; + __set_errno (0); +@@ -1881,14 +1896,9 @@ add_prefixlist (struct prefixlist **listp, size_t *lenp, bool *nullbitsp, + *cp++ = '\0'; + *pos = cp; + if (inet_pton (AF_INET6, val1, &prefix) +- && (cp == NULL +- || (bits = strtoul (cp, &endp, 10)) != ULONG_MAX +- || errno != ERANGE) +- && *endp == '\0' ++ && (cp == NULL || valid_decimal_value (cp, &bits)) + && bits <= 128 +- && ((val = strtoul (val2, &endp, 10)) != ULONG_MAX +- || errno != ERANGE) +- && *endp == '\0' ++ && valid_decimal_value (val2, &val) + && val <= INT_MAX) + { + struct prefixlist *newp = malloc (sizeof (*newp)); +@@ -2031,7 +2041,6 @@ gaiconf_init (void) + struct in6_addr prefix; + unsigned long int bits; + unsigned long int val; +- char *endp; + + bits = 32; + __set_errno (0); +@@ -2042,15 +2051,10 @@ gaiconf_init (void) + { + bits = 128; + if (IN6_IS_ADDR_V4MAPPED (&prefix) +- && (cp == NULL +- || (bits = strtoul (cp, &endp, 10)) != ULONG_MAX +- || errno != ERANGE) +- && *endp == '\0' ++ && (cp == NULL || valid_decimal_value (cp, &bits)) + && bits >= 96 + && bits <= 128 +- && ((val = strtoul (val2, &endp, 10)) != ULONG_MAX +- || errno != ERANGE) +- && *endp == '\0' ++ && valid_decimal_value (val2, &val) + && val <= INT_MAX) + { + if (!add_scopelist (&scopelist, &nscopelist, +@@ -2064,14 +2068,9 @@ gaiconf_init (void) + } + } + else if (inet_pton (AF_INET, val1, &prefix.s6_addr32[3]) +- && (cp == NULL +- || (bits = strtoul (cp, &endp, 10)) != ULONG_MAX +- || errno != ERANGE) +- && *endp == '\0' ++ && (cp == NULL || valid_decimal_value (cp, &bits)) + && bits <= 32 +- && ((val = strtoul (val2, &endp, 10)) != ULONG_MAX +- || errno != ERANGE) +- && *endp == '\0' ++ && valid_decimal_value (val2, &val) + && val <= INT_MAX) + { + if (!add_scopelist (&scopelist, &nscopelist, diff --git a/glibc-upstream-2.39-282.patch b/glibc-upstream-2.39-282.patch new file mode 100644 index 0000000..727901e --- /dev/null +++ b/glibc-upstream-2.39-282.patch @@ -0,0 +1,114 @@ +commit beb8267909f0cc95e3e8a542e67c1143e38da18f +Author: DJ Delorie +Date: Wed Oct 15 21:37:56 2025 -0400 + + sprof: check pread size and offset for overflow + + Add a bit of descriptive paranoia to the values we read from + the ELF headers and use to access data. + + Reviewed-by: Collin Funk + (cherry picked from commit 324084649b2da2f6840e3a1b84159a4e9a9e9a74) + +diff --git a/elf/sprof.c b/elf/sprof.c +index b19aca329241a41a..0c687eab491101a2 100644 +--- a/elf/sprof.c ++++ b/elf/sprof.c +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + + /* Get libc version number. */ + #include "../version.h" +@@ -410,6 +411,7 @@ load_shobj (const char *name) + int fd; + ElfW(Shdr) *shdr; + size_t pagesize = getpagesize (); ++ struct stat st; + + /* Since we use dlopen() we must be prepared to work around the sometimes + strange lookup rules for the shared objects. If we have a file foo.so +@@ -553,14 +555,39 @@ load_shobj (const char *name) + error (EXIT_FAILURE, errno, _("Reopening shared object `%s' failed"), + map->l_name); + ++ if (fstat (fd, &st) < 0) ++ error (EXIT_FAILURE, errno, _("stat(%s) failure"), map->l_name); ++ ++ /* We're depending on data that's being read from the file, so be a ++ bit paranoid here and make sure the requests are reasonable - ++ i.e. both size and offset are nonnegative and smaller than the ++ file size, as well as the offset of the end of the data. PREAD ++ would have failed anyway, but this is more robust and explains ++ what happened better. Note that SZ must be unsigned and OFF may ++ be signed or unsigned. */ ++#define PCHECK(sz1,off1) { \ ++ size_t sz = sz1, end_off; \ ++ off_t off = off1; \ ++ if (sz > st.st_size \ ++ || off < 0 || off > st.st_size \ ++ || INT_ADD_WRAPV (sz, off, &end_off) \ ++ || end_off > st.st_size) \ ++ error (EXIT_FAILURE, ERANGE, \ ++ _("read outside of file extents %zu + %zd > %zu"), \ ++ sz, off, st.st_size); \ ++ } ++ + /* Map the section header. */ + size_t size = ehdr->e_shnum * sizeof (ElfW(Shdr)); + shdr = (ElfW(Shdr) *) alloca (size); ++ PCHECK (size, ehdr->e_shoff); + if (pread (fd, shdr, size, ehdr->e_shoff) != size) + error (EXIT_FAILURE, errno, _("reading of section headers failed")); + + /* Get the section header string table. */ + char *shstrtab = (char *) alloca (shdr[ehdr->e_shstrndx].sh_size); ++ PCHECK (shdr[ehdr->e_shstrndx].sh_size, ++ shdr[ehdr->e_shstrndx].sh_offset); + if (pread (fd, shstrtab, shdr[ehdr->e_shstrndx].sh_size, + shdr[ehdr->e_shstrndx].sh_offset) + != shdr[ehdr->e_shstrndx].sh_size) +@@ -588,6 +615,7 @@ load_shobj (const char *name) + size_t size = debuglink_entry->sh_size; + char *debuginfo_fname = (char *) alloca (size + 1); + debuginfo_fname[size] = '\0'; ++ PCHECK (size, debuglink_entry->sh_offset); + if (pread (fd, debuginfo_fname, size, debuglink_entry->sh_offset) + != size) + { +@@ -641,21 +669,32 @@ load_shobj (const char *name) + if (fd2 != -1) + { + ElfW(Ehdr) ehdr2; ++ struct stat st; ++ ++ if (fstat (fd2, &st) < 0) ++ error (EXIT_FAILURE, errno, _("stat(%s) failure"), workbuf); + + /* Read the ELF header. */ ++ PCHECK (sizeof (ehdr2), 0); + if (pread (fd2, &ehdr2, sizeof (ehdr2), 0) != sizeof (ehdr2)) + error (EXIT_FAILURE, errno, + _("reading of ELF header failed")); + + /* Map the section header. */ +- size_t size = ehdr2.e_shnum * sizeof (ElfW(Shdr)); ++ size_t size; ++ if (INT_MULTIPLY_WRAPV (ehdr2.e_shnum, sizeof (ElfW(Shdr)), &size)) ++ error (EXIT_FAILURE, errno, _("too many section headers")); ++ + ElfW(Shdr) *shdr2 = (ElfW(Shdr) *) alloca (size); ++ PCHECK (size, ehdr2.e_shoff); + if (pread (fd2, shdr2, size, ehdr2.e_shoff) != size) + error (EXIT_FAILURE, errno, + _("reading of section headers failed")); + + /* Get the section header string table. */ + shstrtab = (char *) alloca (shdr2[ehdr2.e_shstrndx].sh_size); ++ PCHECK (shdr2[ehdr2.e_shstrndx].sh_size, ++ shdr2[ehdr2.e_shstrndx].sh_offset); + if (pread (fd2, shstrtab, shdr2[ehdr2.e_shstrndx].sh_size, + shdr2[ehdr2.e_shstrndx].sh_offset) + != shdr2[ehdr2.e_shstrndx].sh_size) diff --git a/glibc-upstream-2.39-283.patch b/glibc-upstream-2.39-283.patch new file mode 100644 index 0000000..101226a --- /dev/null +++ b/glibc-upstream-2.39-283.patch @@ -0,0 +1,24 @@ +commit 4a53354eaf26a6b5c4e1c67f92ea41eae949ac09 +Author: Collin Funk +Date: Wed Oct 22 01:51:09 2025 -0700 + + sprof: fix -Wformat warnings on 32-bit hosts + + Reviewed-by: H.J. Lu + (cherry picked from commit 9681f645ba20fc3c18eb12ffebf94e3df1f888e3) + +diff --git a/elf/sprof.c b/elf/sprof.c +index 0c687eab491101a2..1f5ab25ac39bfff4 100644 +--- a/elf/sprof.c ++++ b/elf/sprof.c +@@ -573,8 +573,8 @@ load_shobj (const char *name) + || INT_ADD_WRAPV (sz, off, &end_off) \ + || end_off > st.st_size) \ + error (EXIT_FAILURE, ERANGE, \ +- _("read outside of file extents %zu + %zd > %zu"), \ +- sz, off, st.st_size); \ ++ _("read outside of file extents %zu + %jd > %jd"), \ ++ sz, (intmax_t) off, (intmax_t) st.st_size); \ + } + + /* Map the section header. */ diff --git a/glibc-upstream-2.39-284.patch b/glibc-upstream-2.39-284.patch new file mode 100644 index 0000000..4a46994 --- /dev/null +++ b/glibc-upstream-2.39-284.patch @@ -0,0 +1,22 @@ +commit f47dd22366d5f66a4ca635f7be700e65c2ab2a81 +Author: Florian Weimer +Date: Thu Nov 6 14:33:22 2025 +0100 + + support: Fix FILE * leak in check_for_unshare_hints in test-container + + The file opened via fopen is never closed. + + (cherry picked from commit 20a2a756089eacd7e7f4c02e381e82b5d0e40a2c) + +diff --git a/support/test-container.c b/support/test-container.c +index 2813b0ddf572fc48..a9c9926c21f3a21e 100644 +--- a/support/test-container.c ++++ b/support/test-container.c +@@ -703,6 +703,7 @@ check_for_unshare_hints (int require_pidns) + + val = -1; /* Sentinel. */ + int cnt = fscanf (f, "%d", &val); ++ fclose (f); + if (cnt == 1 && val != files[i].bad_value) + continue; + diff --git a/glibc-upstream-2.39-285.patch b/glibc-upstream-2.39-285.patch new file mode 100644 index 0000000..3764237 --- /dev/null +++ b/glibc-upstream-2.39-285.patch @@ -0,0 +1,27 @@ +commit 10c0bcb3d3935f9b79a828502513c2084c90772c +Author: Florian Weimer +Date: Thu Nov 6 14:49:21 2025 +0100 + + support: Exit on consistency check failure in resolv_response_add_name + + Using TEST_VERIFY (crname_target != crname) instructs some analysis + tools that crname_target == crname might hold. Under this assumption, + they report a use-after-free for crname_target->offset below, caused + by the previous free (crname). + + Reviewed-by: Collin Funk + (cherry picked from commit b64335ff111c071fde61aec1c1a8460afb3d16d4) + +diff --git a/support/resolv_test.c b/support/resolv_test.c +index f1613bd255c086e1..d4cc26b4aa24ce3a 100644 +--- a/support/resolv_test.c ++++ b/support/resolv_test.c +@@ -326,7 +326,7 @@ resolv_response_add_name (struct resolv_response_builder *b, + crname_target = *ptr; + else + crname_target = NULL; +- TEST_VERIFY (crname_target != crname); ++ TEST_VERIFY_EXIT (crname_target != crname); + /* Not added to the tree. */ + free (crname); + } diff --git a/glibc-RHEL-141732.patch b/glibc-upstream-2.39-286.patch similarity index 94% rename from glibc-RHEL-141732.patch rename to glibc-upstream-2.39-286.patch index 12bb22a..860550d 100644 --- a/glibc-RHEL-141732.patch +++ b/glibc-upstream-2.39-286.patch @@ -1,9 +1,9 @@ -commit c9188d333717d3ceb7e3020011651f424f749f93 +commit fb22fd3f5b415dd4cd6f7b5741c2f0412374e242 Author: Siddhesh Poyarekar Date: Thu Jan 15 06:06:40 2026 -0500 memalign: reinstate alignment overflow check (CVE-2026-0861) - + The change to cap valid sizes to PTRDIFF_MAX inadvertently dropped the overflow check for alignment in memalign functions, _mid_memalign and _int_memalign. Reinstate the overflow check in _int_memalign, aligned @@ -11,20 +11,17 @@ Date: Thu Jan 15 06:06:40 2026 -0500 CVE. The missing _mid_memalign check is not relevant (and does not have a security impact) and may need a different approach to fully resolve, so it has been omitted. - + CVE-Id: CVE-2026-0861 Vulnerable-Commit: 9bf8e29ca136094f73f69f725f15c51facc97206 Reported-by: Igor Morgenstern, Aisle Research Fixes: BZ #33796 Reviewed-by: Wilco Dijkstra Signed-off-by: Siddhesh Poyarekar - -Conflicts: - malloc/malloc.c - (checked_request2size is still used downstream) + (cherry picked from commit c9188d333717d3ceb7e3020011651f424f749f93) diff --git a/malloc/malloc.c b/malloc/malloc.c -index 9e577ab90010a0f1..db06d9708a1ee397 100644 +index 09dc60bf74c59945..e1aacde4ac94f53b 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -5049,7 +5049,7 @@ _int_memalign (mstate av, size_t alignment, size_t bytes) @@ -47,7 +44,7 @@ index 9e577ab90010a0f1..db06d9708a1ee397 100644 + get NB. Consequently, total below also does not overflow. */ m = (char *) (_int_malloc (av, nb + alignment + MINSIZE)); - if (m == 0) + if (m == NULL) diff --git a/malloc/tst-malloc-too-large.c b/malloc/tst-malloc-too-large.c index 2b91377e54cdc485..15b25cf01d482951 100644 --- a/malloc/tst-malloc-too-large.c diff --git a/glibc-RHEL-141848.patch b/glibc-upstream-2.39-287.patch similarity index 95% rename from glibc-RHEL-141848.patch rename to glibc-upstream-2.39-287.patch index b4a2ec5..27051da 100644 --- a/glibc-RHEL-141848.patch +++ b/glibc-upstream-2.39-287.patch @@ -1,4 +1,4 @@ -commit e56ff82d5034ec66c6a78f517af6faa427f65b0b +commit 831f63b94ceb92fb14c0d1a7ddad35a0d1404c71 Author: Carlos O'Donell Date: Thu Jan 15 15:09:38 2026 -0500 @@ -28,6 +28,7 @@ Date: Thu Jan 15 15:09:38 2026 -0500 No regressions on x86_64. Reviewed-by: Florian Weimer + (cherry picked from commit e56ff82d5034ec66c6a78f517af6faa427f65b0b) diff --git a/resolv/nss_dns/dns-network.c b/resolv/nss_dns/dns-network.c index b32fd0fcab4fcc2c..71d67aa6f89722e2 100644 diff --git a/glibc-upstream-2.39-288.patch b/glibc-upstream-2.39-288.patch new file mode 100644 index 0000000..f826269 --- /dev/null +++ b/glibc-upstream-2.39-288.patch @@ -0,0 +1,170 @@ +commit ce65d944e38a20cb70af2a48a4b8aa5d8fabe1cc +Author: Adhemerval Zanella +Date: Thu Jan 15 10:32:19 2026 -0300 + + posix: Reset wordexp_t fields with WRDE_REUSE (CVE-2025-15281 / BZ 33814) + + The wordexp fails to properly initialize the input wordexp_t when + WRDE_REUSE is used. The wordexp_t struct is properly freed, but + reuses the old wc_wordc value and updates the we_wordv in the + wrong position. A later wordfree will then call free with an + invalid pointer. + + Checked on x86_64-linux-gnu and i686-linux-gnu. + + Reviewed-by: Carlos O'Donell + (cherry picked from commit 80cc58ea2de214f85b0a1d902a3b668ad2ecb302) + +Conflicts: + posix/Makefile + (Fixup context) + +diff --git a/posix/Makefile b/posix/Makefile +index 59cd1dab72acbd54..6dc240a5bf9f3046 100644 +--- a/posix/Makefile ++++ b/posix/Makefile +@@ -327,6 +327,7 @@ tests := \ + tst-wait4 \ + tst-waitid \ + tst-wordexp-nocmd \ ++ tst-wordexp-reuse \ + tstgetopt \ + # tests + +@@ -455,6 +456,8 @@ generated += \ + tst-rxspencer-no-utf8.mtrace \ + tst-vfork3-mem.out \ + tst-vfork3.mtrace \ ++ tst-wordexp-reuse-mem.out \ ++ tst-wordexp-reuse.mtrace \ + # generated + endif + endif +@@ -490,6 +493,7 @@ tests-special += \ + $(objpfx)tst-pcre-mem.out \ + $(objpfx)tst-rxspencer-no-utf8-mem.out \ + $(objpfx)tst-vfork3-mem.out \ ++ $(objpfx)tst-wordexp-reuse.out \ + # tests-special + endif + endif +@@ -773,3 +777,10 @@ $(objpfx)posix-conf-vars-def.h: $(..)scripts/gen-posix-conf-vars.awk \ + $(make-target-directory) + $(AWK) -f $(filter-out Makefile, $^) > $@.tmp + mv -f $@.tmp $@ ++ ++tst-wordexp-reuse-ENV += MALLOC_TRACE=$(objpfx)tst-wordexp-reuse.mtrace \ ++ LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so ++ ++$(objpfx)tst-wordexp-reuse-mem.out: $(objpfx)tst-wordexp-reuse.out ++ $(common-objpfx)malloc/mtrace $(objpfx)tst-wordexp-reuse.mtrace > $@; \ ++ $(evaluate-test) +diff --git a/posix/tst-wordexp-reuse.c b/posix/tst-wordexp-reuse.c +new file mode 100644 +index 0000000000000000..3926b9f5576750ac +--- /dev/null ++++ b/posix/tst-wordexp-reuse.c +@@ -0,0 +1,89 @@ ++/* Test for wordexp with WRDE_REUSE flag. ++ Copyright (C) 2026 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 ++ . */ ++ ++#include ++#include ++ ++#include ++ ++static int ++do_test (void) ++{ ++ mtrace (); ++ ++ { ++ wordexp_t p = { 0 }; ++ TEST_COMPARE (wordexp ("one", &p, 0), 0); ++ TEST_COMPARE (p.we_wordc, 1); ++ TEST_COMPARE_STRING (p.we_wordv[0], "one"); ++ TEST_COMPARE (wordexp ("two", &p, WRDE_REUSE), 0); ++ TEST_COMPARE (p.we_wordc, 1); ++ TEST_COMPARE_STRING (p.we_wordv[0], "two"); ++ wordfree (&p); ++ } ++ ++ { ++ wordexp_t p = { .we_offs = 2 }; ++ TEST_COMPARE (wordexp ("one", &p, 0), 0); ++ TEST_COMPARE (p.we_wordc, 1); ++ TEST_COMPARE_STRING (p.we_wordv[0], "one"); ++ TEST_COMPARE (wordexp ("two", &p, WRDE_REUSE | WRDE_DOOFFS), 0); ++ TEST_COMPARE (p.we_wordc, 1); ++ TEST_COMPARE_STRING (p.we_wordv[p.we_offs + 0], "two"); ++ wordfree (&p); ++ } ++ ++ { ++ wordexp_t p = { 0 }; ++ TEST_COMPARE (wordexp ("one", &p, 0), 0); ++ TEST_COMPARE (p.we_wordc, 1); ++ TEST_COMPARE_STRING (p.we_wordv[0], "one"); ++ TEST_COMPARE (wordexp ("two", &p, WRDE_REUSE | WRDE_APPEND), 0); ++ TEST_COMPARE (p.we_wordc, 1); ++ TEST_COMPARE_STRING (p.we_wordv[0], "two"); ++ wordfree (&p); ++ } ++ ++ { ++ wordexp_t p = { .we_offs = 2 }; ++ TEST_COMPARE (wordexp ("one", &p, WRDE_DOOFFS), 0); ++ TEST_COMPARE (p.we_wordc, 1); ++ TEST_COMPARE_STRING (p.we_wordv[p.we_offs + 0], "one"); ++ TEST_COMPARE (wordexp ("two", &p, WRDE_REUSE ++ | WRDE_DOOFFS), 0); ++ TEST_COMPARE (p.we_wordc, 1); ++ TEST_COMPARE_STRING (p.we_wordv[p.we_offs + 0], "two"); ++ wordfree (&p); ++ } ++ ++ { ++ wordexp_t p = { .we_offs = 2 }; ++ TEST_COMPARE (wordexp ("one", &p, WRDE_DOOFFS), 0); ++ TEST_COMPARE (p.we_wordc, 1); ++ TEST_COMPARE_STRING (p.we_wordv[p.we_offs + 0], "one"); ++ TEST_COMPARE (wordexp ("two", &p, WRDE_REUSE ++ | WRDE_DOOFFS | WRDE_APPEND), 0); ++ TEST_COMPARE (p.we_wordc, 1); ++ TEST_COMPARE_STRING (p.we_wordv[p.we_offs + 0], "two"); ++ wordfree (&p); ++ } ++ ++ return 0; ++} ++ ++#include +diff --git a/posix/wordexp.c b/posix/wordexp.c +index a7362ef31b052800..4cd23645198aed30 100644 +--- a/posix/wordexp.c ++++ b/posix/wordexp.c +@@ -2216,7 +2216,9 @@ wordexp (const char *words, wordexp_t *pwordexp, int flags) + { + /* Minimal implementation of WRDE_REUSE for now */ + wordfree (pwordexp); ++ old_word.we_wordc = 0; + old_word.we_wordv = NULL; ++ pwordexp->we_wordc = 0; + } + + if ((flags & WRDE_APPEND) == 0) diff --git a/glibc-upstream-2.39-289.patch b/glibc-upstream-2.39-289.patch new file mode 100644 index 0000000..1fc3ef7 --- /dev/null +++ b/glibc-upstream-2.39-289.patch @@ -0,0 +1,287 @@ +commit 60b039bf6afe7f124e1d4fd3ec3bef2d745d567c +Author: Sergey Kolosov +Date: Tue Jun 25 11:19:03 2024 +0200 + + socket: Add new test for shutdown + + This commit adds shutdown test with SHUT_RD, SHUT_WR, SHUT_RDWR for an + UNIX socket connection. + + Reviewed-by: DJ Delorie + (cherry picked from commit 50f5a09e68e0c4ea60f5dfee3cc6963df2762e14) + +diff --git a/socket/Makefile b/socket/Makefile +index fc1bd0a2608f04bc..df732fa9b72570cd 100644 +--- a/socket/Makefile ++++ b/socket/Makefile +@@ -71,6 +71,7 @@ tests := \ + tst-cmsg_cloexec \ + tst-cmsghdr \ + tst-connect \ ++ tst-shutdown \ + tst-sockopt \ + # tests + +diff --git a/socket/tst-shutdown.c b/socket/tst-shutdown.c +new file mode 100644 +index 0000000000000000..a305e5e494cc38f1 +--- /dev/null ++++ b/socket/tst-shutdown.c +@@ -0,0 +1,257 @@ ++/* Test the shutdown function. ++ Copyright (C) 2024 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++struct connection ++{ ++ int sockets[2]; ++}; ++ ++void ++establish_connection (struct connection *conn) ++{ ++ if (socketpair (AF_UNIX, SOCK_STREAM, 0, conn->sockets) != 0) ++ { ++ FAIL_EXIT1 ("socketpair (AF_UNIX, SOCK_STREAM, 0): %m\n"); ++ } ++} ++ ++void ++close_connection (struct connection *conn) ++{ ++ xclose (conn->sockets[0]); ++ xclose (conn->sockets[1]); ++} ++ ++/* Open a file and check that shutdown fails with the ENOTSOCK error code. */ ++void ++do_test_enotsock (void) ++{ ++ /* Open file and check that shutdown will fail with ENOTSOCK. */ ++ int fd = xopen ("/dev/null", O_RDWR, 0); ++ ++ int result = shutdown (fd, SHUT_RD); ++ if (result == 0 || errno != ENOTSOCK) ++ { ++ FAIL_EXIT1 ("shutdown should fail with ENOTSOCK"); ++ } ++ xclose (fd); ++} ++ ++/* Test shutdown with SHUT_RD. */ ++void ++do_test_shut_rd (void) ++{ ++ struct connection conn; ++ const char *str = "AAAAAAA"; ++ int len = 8; ++ int ret; ++ void *s_buf = xmalloc (len); ++ bzero (s_buf, len); ++ ++ establish_connection (&conn); ++ int server = conn.sockets[0]; ++ int client = conn.sockets[1]; ++ ++ /* Call shutdown with SHUT_RD on server socket. */ ++ if (shutdown (server, SHUT_RD) != 0) ++ { ++ FAIL_EXIT1 ("shutdown with SHUT_RD on socket %d failed", server); ++ } ++ ++ ret = send (server, str, len, 0); ++ if (ret <= 0) ++ { ++ FAIL_EXIT1 ("send (%d, data, %d): %m", server, len); ++ } ++ ++ ret = recv (client, s_buf, len, 0); ++ if (ret <= 0) ++ { ++ FAIL_EXIT1 ("recv (%d, data, %d): %m", client, len); ++ } ++ ++ TEST_COMPARE_BLOB (str, len, s_buf, len); ++ ++ /* Send data should be disallowed on shutdown socket. */ ++ errno = 0; ++ ret = send (client, str, len, MSG_NOSIGNAL); ++ if (ret >= 0 || errno != EPIPE) ++ { ++ FAIL_EXIT1 ("Send on SHUT_RD socket should be disallowed: %m"); ++ } ++ ++ /* Recv should return zero and no error. */ ++ errno = 0; ++ ret = recv (server, s_buf, len, 0); ++ if (ret != 0 || errno != 0) ++ { ++ FAIL_EXIT1 ("recv should return 0 without error: %m"); ++ } ++ ++ close_connection (&conn); ++} ++ ++/* Test shutdown with SHUT_WR. */ ++void ++do_test_shut_wr (void) ++{ ++ struct connection conn; ++ const char *str1 = "CCCCCCC"; ++ const char *str2 = "DDDDDDD"; ++ const char *str3 = "EEEEEEE"; ++ int len = 8; ++ int ret; ++ void *c_buf = xmalloc (len); ++ void *s_buf = xmalloc (len); ++ ++ establish_connection (&conn); ++ int server = conn.sockets[0]; ++ int client = conn.sockets[1]; ++ ++ xwrite (client, str1, len); ++ ++ if (shutdown (client, SHUT_WR) != 0) ++ { ++ FAIL_EXIT1 ("shutdown with SHUT_WR on socket %d failed", client); ++ } ++ ++ ret = send (client, str2, len, MSG_NOSIGNAL); ++ if (ret >= 0) ++ { ++ FAIL_EXIT1 ("send on SHUT_WR socket should fail"); ++ } ++ ++ /* Read data written before shutdown and check if it's correct. */ ++ xread (server, s_buf, len); ++ TEST_COMPARE_BLOB (str1, len, s_buf, len); ++ ++ /* Second read should return zero without error. */ ++ errno = 0; ++ if (read (server, s_buf, len) != 0 || errno != 0) ++ { ++ FAIL_EXIT1 ("read after shutdown should return zero without error: %m"); ++ } ++ ++ /* Write some data to socket and check it still can be read on other side. */ ++ memcpy (s_buf, str3, len); ++ xwrite (server, s_buf, len); ++ ++ xread (client, c_buf, len); ++ TEST_COMPARE_BLOB (s_buf, len, c_buf, len); ++ ++ close_connection (&conn); ++} ++ ++/* Test shutdown with SHUT_RDWR. */ ++void ++do_test_shut_rdwr (void) ++{ ++ struct connection conn; ++ struct sockaddr peer; ++ socklen_t peer_len = sizeof (peer); ++ ++ const char *str1 = "FFFFFFF"; ++ const char *str2 = "GGGGGGG"; ++ int len = 8; ++ int ret; ++ void *s_buf = xmalloc (len); ++ bzero (s_buf, len); ++ ++ establish_connection (&conn); ++ int server = conn.sockets[0]; ++ int client = conn.sockets[1]; ++ ++ /* Send some data to both sockets before shutdown. */ ++ xwrite (client, str1, len); ++ xwrite (server, str2, len); ++ ++ /* Call shutdown with SHUT_RDWR on client socket. */ ++ if (shutdown (client, SHUT_RDWR) != 0) ++ { ++ FAIL_EXIT1 ("shutdown with SHUT_RDWR on socket %d failed", client); ++ } ++ ++ /* Verify that socket is still connected. */ ++ xgetsockname (client, &peer, &peer_len); ++ ++ /* Read data written before shutdown. */ ++ xread (client, s_buf, len); ++ TEST_COMPARE_BLOB (s_buf, len, str2, len); ++ ++ /* Second read should return zero, but no error. */ ++ errno = 0; ++ if (read (client, s_buf, len) != 0 || errno != 0) ++ { ++ FAIL_EXIT1 ("read after shutdown should return zero without error: %m"); ++ } ++ ++ /* Send some data to shutdown socket and expect error. */ ++ errno = 0; ++ ret = send (server, str2, len, MSG_NOSIGNAL); ++ if (ret >= 0 || errno != EPIPE) ++ { ++ FAIL_EXIT1 ("send to RDWR shutdown socket should fail with EPIPE"); ++ } ++ ++ /* Read data written before shutdown. */ ++ xread (server, s_buf, len); ++ TEST_COMPARE_BLOB (s_buf, len, str1, len); ++ ++ /* Second read should return zero, but no error. */ ++ errno = 0; ++ if (read (server, s_buf, len) != 0 || errno != 0) ++ { ++ FAIL_EXIT1 ("read after shutdown should return zero without error: %m"); ++ } ++ ++ /* Send some data to shutdown socket and expect error. */ ++ errno = 0; ++ ret = send (client, str1, len, MSG_NOSIGNAL); ++ if (ret >= 0 || errno != EPIPE) ++ { ++ FAIL_EXIT1 ("send to RDWR shutdown socket should fail with EPIPE"); ++ } ++ ++ close_connection (&conn); ++} ++ ++static int ++do_test (void) ++{ ++ do_test_enotsock (); ++ do_test_shut_rd (); ++ do_test_shut_wr (); ++ do_test_shut_rdwr (); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-upstream-2.39-290.patch b/glibc-upstream-2.39-290.patch new file mode 100644 index 0000000..4b65c0e --- /dev/null +++ b/glibc-upstream-2.39-290.patch @@ -0,0 +1,36 @@ +commit ba29a36aa32caa03a49d8b3116baecac6a5754ed +Author: Yury Khrustalev +Date: Thu Nov 6 12:57:58 2025 +0000 + + posix: Fix invalid flags test for p{write,read}v2 + + Two tests fail from time to time when a new flag is added for the + p{write,read}v2 functions in a new Linux kernel: + + - misc/tst-preadvwritev2 + - misc/tst-preadvwritev64v2 + + This disrupts when testing Glibc on a system with a newer kernel + and it seems we can try improve testing for invalid flags setting + all the bits that are not supposed to be supported (rather than + setting only the next unsupported bit). + + Reviewed-by: Adhemerval Zanella + (cherry picked from commit 58a31b4316f1f687184eb147ffa1c676bc6a190e) + +diff --git a/misc/tst-preadvwritev2-common.c b/misc/tst-preadvwritev2-common.c +index 4556421a4394f3a1..ec990491330377c3 100644 +--- a/misc/tst-preadvwritev2-common.c ++++ b/misc/tst-preadvwritev2-common.c +@@ -109,9 +109,8 @@ do_test_with_invalid_iov (void) + static void + do_test_with_invalid_flags (void) + { +- /* Set the next bit from the mask of all supported flags. */ +- int invalid_flag = RWF_SUPPORTED != 0 ? __builtin_clz (RWF_SUPPORTED) : 2; +- invalid_flag = 0x1 << ((sizeof (int) * CHAR_BIT) - invalid_flag); ++ /* Set all the bits that are not used by the supported flags. */ ++ int invalid_flag = ~RWF_SUPPORTED; + + char buf[32]; + const struct iovec vec = { .iov_base = buf, .iov_len = sizeof (buf) }; diff --git a/glibc-upstream-2.39-291.patch b/glibc-upstream-2.39-291.patch new file mode 100644 index 0000000..aa5e280 --- /dev/null +++ b/glibc-upstream-2.39-291.patch @@ -0,0 +1,25 @@ +commit 2760e4c5ed7ed142e126ab165dd953619e70df28 +Author: Florian Weimer +Date: Fri Nov 28 11:46:09 2025 +0100 + + iconvdata: Fix invalid pointer arithmetic in ANSI_X3.110 module + + The expression inptr + 1 can technically be invalid: if inptr == inend, + inptr may point one element past the end of an array. + + Reviewed-by: Adhemerval Zanella + (cherry picked from commit e98bd0c54d5e296ad1be91b6fe35260c6b87e733) + +diff --git a/iconvdata/ansi_x3.110.c b/iconvdata/ansi_x3.110.c +index 869cdf654087185f..44bd12a863ae8f54 100644 +--- a/iconvdata/ansi_x3.110.c ++++ b/iconvdata/ansi_x3.110.c +@@ -407,7 +407,7 @@ static const char from_ucs4[][2] = + is also available. */ \ + uint32_t ch2; \ + \ +- if (inptr + 1 >= inend) \ ++ if (inend - inptr <= 1) \ + { \ + /* The second character is not available. */ \ + result = __GCONV_INCOMPLETE_INPUT; \ diff --git a/glibc-upstream-2.39-292.patch b/glibc-upstream-2.39-292.patch new file mode 100644 index 0000000..a2d2255 --- /dev/null +++ b/glibc-upstream-2.39-292.patch @@ -0,0 +1,27 @@ +commit c53cd6e738ad627a2c5a18dad697d2accf7b5fd2 +Author: Florian Weimer +Date: Mon Jan 26 17:12:37 2026 +0100 + + posix: Run tst-wordexp-reuse-mem test + + The test was not properly scheduled for execution with a Makefile + dependency. + + Fixes commit 80cc58ea2de214f85b0a1d902a3b668ad2ecb302 ("posix: Reset + wordexp_t fields with WRDE_REUSE (CVE-2025-15281 / BZ 33814"). + + (cherry picked from commit bed2db02f3183e93f21d506786c5f884a1dec9e7) + +diff --git a/posix/Makefile b/posix/Makefile +index 6dc240a5bf9f3046..443b1ed10bd4d564 100644 +--- a/posix/Makefile ++++ b/posix/Makefile +@@ -493,7 +493,7 @@ tests-special += \ + $(objpfx)tst-pcre-mem.out \ + $(objpfx)tst-rxspencer-no-utf8-mem.out \ + $(objpfx)tst-vfork3-mem.out \ +- $(objpfx)tst-wordexp-reuse.out \ ++ $(objpfx)tst-wordexp-reuse-mem.out \ + # tests-special + endif + endif diff --git a/glibc-upstream-2.39-293.patch b/glibc-upstream-2.39-293.patch new file mode 100644 index 0000000..6849e16 --- /dev/null +++ b/glibc-upstream-2.39-293.patch @@ -0,0 +1,234 @@ +commit 5663ab0b833df187b15e7bb4b18173e22beb8bd1 +Author: Carlos O'Donell +Date: Fri Mar 20 16:43:33 2026 -0400 + + resolv: Count records correctly (CVE-2026-4437) + + The answer section boundary was previously ignored, and the code in + getanswer_ptr would iterate past the last resource record, but not + beyond the end of the returned data. This could lead to subsequent data + being interpreted as answer records, thus violating the DNS + specification. Such resource records could be maliciously crafted and + hidden from other tooling, but processed by the glibc stub resolver and + acted upon by the application. While we trust the data returned by the + configured recursive resolvers, we should not trust its format and + should validate it as required. It is a security issue to incorrectly + process the DNS protocol. + + A regression test is added for response section crossing. + + No regressions on x86_64-linux-gnu. + + Reviewed-by: Collin Funk + (cherry picked from commit 9f5f18aab40ec6b61fa49a007615e6077e9a979b) + +diff --git a/resolv/Makefile b/resolv/Makefile +index 05fb04edf1082690..8dba948b632d3abc 100644 +--- a/resolv/Makefile ++++ b/resolv/Makefile +@@ -104,6 +104,7 @@ tests += \ + tst-resolv-basic \ + tst-resolv-binary \ + tst-resolv-byaddr \ ++ tst-resolv-dns-section \ + tst-resolv-edns \ + tst-resolv-invalid-cname \ + tst-resolv-network \ +@@ -115,6 +116,7 @@ tests += \ + tst-resolv-semi-failure \ + tst-resolv-short-response \ + tst-resolv-trailing \ ++ # tests + + # This test calls __res_context_send directly, which is not exported + # from libresolv. +@@ -292,6 +294,8 @@ $(objpfx)tst-resolv-aliases: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-basic: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-binary: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-byaddr: $(objpfx)libresolv.so $(shared-thread-library) ++$(objpfx)tst-resolv-dns-section: $(objpfx)libresolv.so \ ++ $(shared-thread-library) + $(objpfx)tst-resolv-edns: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-network: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-res_init: $(objpfx)libresolv.so +diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c +index 95a7b3f0e5b6855a..74a7c08d0f055d6e 100644 +--- a/resolv/nss_dns/dns-host.c ++++ b/resolv/nss_dns/dns-host.c +@@ -820,7 +820,7 @@ getanswer_ptr (unsigned char *packet, size_t packetlen, + /* expected_name may be updated to point into this buffer. */ + unsigned char name_buffer[NS_MAXCDNAME]; + +- while (ancount > 0) ++ for (; ancount > 0; --ancount) + { + struct ns_rr_wire rr; + if (!__ns_rr_cursor_next (&c, &rr)) +diff --git a/resolv/tst-resolv-dns-section.c b/resolv/tst-resolv-dns-section.c +new file mode 100644 +index 0000000000000000..1171baef51e3cc36 +--- /dev/null ++++ b/resolv/tst-resolv-dns-section.c +@@ -0,0 +1,162 @@ ++/* Test handling of invalid section transitions (bug 34014). ++ Copyright (C) 2022-2026 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Name of test, and the second section type. */ ++struct item { ++ const char *test; ++ int ns_section; ++}; ++ ++static const struct item test_items[] = ++ { ++ { "Test crossing from ns_s_an to ns_s_ar.", ns_s_ar }, ++ { "Test crossing from ns_s_an to ns_s_an.", ns_s_ns }, ++ ++ { NULL, 0 }, ++ }; ++ ++/* The response is designed to contain the following: ++ - An Answer section with one T_PTR record that is skipped. ++ - A second section with a semantically invalid T_PTR record. ++ The original defect is that the response parsing would cross ++ section boundaries and handle the additional section T_PTR ++ as if it were an answer. A conforming implementation would ++ stop as soon as it reaches the end of the section. */ ++static void ++response (const struct resolv_response_context *ctx, ++ struct resolv_response_builder *b, ++ const char *qname, uint16_t qclass, uint16_t qtype) ++{ ++ TEST_COMPARE (qclass, C_IN); ++ ++ /* We only test PTR. */ ++ TEST_COMPARE (qtype, T_PTR); ++ ++ unsigned int count; ++ char *tail = NULL; ++ ++ if (strstr (qname, "in-addr.arpa") != NULL ++ && sscanf (qname, "%u.%ms", &count, &tail) == 2) ++ TEST_COMPARE_STRING (tail, "0.168.192.in-addr.arpa"); ++ else if (sscanf (qname, "%x.%ms", &count, &tail) == 2) ++ { ++ TEST_COMPARE_STRING (tail, "\ ++0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa"); ++ } ++ else ++ FAIL_EXIT1 ("invalid QNAME: %s\n", qname); ++ free (tail); ++ ++ /* We have a bounded number of possible tests. */ ++ TEST_VERIFY (count >= 0); ++ TEST_VERIFY (count <= 15); ++ ++ struct resolv_response_flags flags = {}; ++ resolv_response_init (b, flags); ++ resolv_response_add_question (b, qname, qclass, qtype); ++ resolv_response_section (b, ns_s_an); ++ ++ /* Actual answer record, but the wrong name (skipped). */ ++ resolv_response_open_record (b, "1.0.0.10.in-addr.arpa", qclass, qtype, 60); ++ ++ /* Record the answer. */ ++ resolv_response_add_name (b, "test.ptr.example.net"); ++ resolv_response_close_record (b); ++ ++ /* Add a second section to test section boundary crossing. */ ++ resolv_response_section (b, test_items[count].ns_section); ++ /* Semantically incorrect, but hide a T_PTR entry. */ ++ resolv_response_open_record (b, qname, qclass, qtype, 60); ++ resolv_response_add_name (b, "wrong.ptr.example.net"); ++ resolv_response_close_record (b); ++} ++ ++ ++/* Perform one check using a reverse lookup. */ ++static void ++check_reverse (int af, int count) ++{ ++ TEST_VERIFY (af == AF_INET || af == AF_INET6); ++ TEST_VERIFY (count < array_length (test_items)); ++ ++ char addr[sizeof (struct in6_addr)] = { 0 }; ++ socklen_t addrlen; ++ if (af == AF_INET) ++ { ++ addr[0] = (char) 192; ++ addr[1] = (char) 168; ++ addr[2] = (char) 0; ++ addr[3] = (char) count; ++ addrlen = 4; ++ } ++ else ++ { ++ addr[0] = 0x20; ++ addr[1] = 0x01; ++ addr[2] = 0x0d; ++ addr[3] = 0xb8; ++ addr[4] = addr[5] = addr[6] = addr[7] = 0x0; ++ addr[8] = addr[9] = addr[10] = addr[11] = 0x0; ++ addr[12] = 0x0; ++ addr[13] = 0x0; ++ addr[14] = 0x0; ++ addr[15] = count; ++ addrlen = 16; ++ } ++ ++ h_errno = 0; ++ struct hostent *answer = gethostbyaddr (addr, addrlen, af); ++ TEST_VERIFY (answer == NULL); ++ TEST_VERIFY (h_errno == NO_RECOVERY); ++ if (answer != NULL) ++ printf ("error: unexpected success: %s\n", ++ support_format_hostent (answer)); ++} ++ ++static int ++do_test (void) ++{ ++ struct resolv_test *obj = resolv_test_start ++ ((struct resolv_redirect_config) ++ { ++ .response_callback = response ++ }); ++ ++ for (int i = 0; test_items[i].test != NULL; i++) ++ { ++ check_reverse (AF_INET, i); ++ check_reverse (AF_INET6, i); ++ } ++ ++ resolv_test_end (obj); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-upstream-2.39-294.patch b/glibc-upstream-2.39-294.patch new file mode 100644 index 0000000..045780b --- /dev/null +++ b/glibc-upstream-2.39-294.patch @@ -0,0 +1,314 @@ +commit 9344c796f7a4ac8f2c59de63f3e1e936b51e817d +Author: Carlos O'Donell +Date: Fri Mar 20 17:14:33 2026 -0400 + + resolv: Check hostname for validity (CVE-2026-4438) + + The processed hostname in getanswer_ptr should be correctly checked to + avoid invalid characters from being allowed, including shell + metacharacters. It is a security issue to fail to check the returned + hostname for validity. + + A regression test is added for invalid metacharacters and other cases + of invalid or valid characters. + + No regressions on x86_64-linux-gnu. + + Reviewed-by: Adhemerval Zanella + (cherry picked from commit e10977481f4db4b2a3ce34fa4c3a1e26651ae312) + +diff --git a/resolv/Makefile b/resolv/Makefile +index 8dba948b632d3abc..87a5c1ccc6dabc8a 100644 +--- a/resolv/Makefile ++++ b/resolv/Makefile +@@ -107,6 +107,7 @@ tests += \ + tst-resolv-dns-section \ + tst-resolv-edns \ + tst-resolv-invalid-cname \ ++ tst-resolv-invalid-ptr \ + tst-resolv-network \ + tst-resolv-noaaaa \ + tst-resolv-noaaaa-vc \ +@@ -305,6 +306,8 @@ $(objpfx)tst-resolv-res_init-thread: $(objpfx)libresolv.so \ + $(shared-thread-library) + $(objpfx)tst-resolv-invalid-cname: $(objpfx)libresolv.so \ + $(shared-thread-library) ++$(objpfx)tst-resolv-invalid-ptr: $(objpfx)libresolv.so \ ++ $(shared-thread-library) + $(objpfx)tst-resolv-noaaaa: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-noaaaa-vc: $(objpfx)libresolv.so $(shared-thread-library) + $(objpfx)tst-resolv-nondecimal: $(objpfx)libresolv.so $(shared-thread-library) +diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c +index 74a7c08d0f055d6e..b8f5d61b2ae20a4e 100644 +--- a/resolv/nss_dns/dns-host.c ++++ b/resolv/nss_dns/dns-host.c +@@ -866,7 +866,7 @@ getanswer_ptr (unsigned char *packet, size_t packetlen, + char hname[MAXHOSTNAMELEN + 1]; + if (__ns_name_unpack (c.begin, c.end, rr.rdata, + name_buffer, sizeof (name_buffer)) < 0 +- || !__res_binary_hnok (expected_name) ++ || !__res_binary_hnok (name_buffer) + || __ns_name_ntop (name_buffer, hname, sizeof (hname)) < 0) + { + *h_errnop = NO_RECOVERY; +diff --git a/resolv/tst-resolv-invalid-ptr.c b/resolv/tst-resolv-invalid-ptr.c +new file mode 100644 +index 0000000000000000..0c802ab96780efb0 +--- /dev/null ++++ b/resolv/tst-resolv-invalid-ptr.c +@@ -0,0 +1,255 @@ ++/* Test handling of invalid T_PTR results (bug 34015). ++ Copyright (C) 2022-2026 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 ++ . */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Name of test, the answer, the expected error return, and if we ++ expect the call to fail. */ ++struct item { ++ const char *test; ++ const char *answer; ++ int expected; ++ bool fail; ++}; ++ ++static const struct item test_items[] = ++ { ++ /* Test for invalid characters. */ ++ { "Invalid use of \"|\"", ++ "test.|.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"&\"", ++ "test.&.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \";\"", ++ "test.;.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"<\"", ++ "test.<.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \">\"", ++ "test.>.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"(\"", ++ "test.(.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \")\"", ++ "test.).ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"$\"", ++ "test.$.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"`\"", ++ "test.`.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"\\\"", ++ "test.\\.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"\'\"", ++ "test.'.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"\"\"", ++ "test.\".ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \" \"", ++ "test. .ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"\\t\"", ++ "test.\t.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"\\n\"", ++ "test.\n.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"\\r\"", ++ "test.\r.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"*\"", ++ "test.*.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"?\"", ++ "test.?.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"[\"", ++ "test.[.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"]\"", ++ "test.].ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \",\"", ++ "test.,.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"~\"", ++ "test.~.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \":\"", ++ "test.:.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"!\"", ++ "test.!.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"@\"", ++ "test.@.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"#\"", ++ "test.#.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"%\"", ++ "test.%%.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of \"^\"", ++ "test.^.ptr.example", NO_RECOVERY, true }, ++ ++ /* Test for invalid UTF-8 characters (2-byte, 4-byte, 6-byte). */ ++ { "Invalid use of UTF-8 (2-byte, U+00C0-U+00C2)", ++ "ÁÂÃ.test.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of UTF-8 (4-byte, U+0750-U+0752)", ++ "ݐݑݒ.test.ptr.example", NO_RECOVERY, true }, ++ { "Invalid use of UTF-8 (6-byte, U+0904-U+0906)", ++ "ऄअआ.test.ptr.example", NO_RECOVERY, true }, ++ ++ /* Test for "-" which may be valid depending on position. */ ++ { "Invalid leading \"-\"", ++ "-test.ptr.example", NO_RECOVERY, true }, ++ { "Valid trailing \"-\"", ++ "test-.ptr.example", 0, false }, ++ { "Valid mid-label use of \"-\"", ++ "te-st.ptr.example", 0, false }, ++ ++ /* Test for "_" which is always valid in any position. */ ++ { "Valid leading use of \"_\"", ++ "_test.ptr.example", 0, false }, ++ { "Valid mid-label use of \"_\"", ++ "te_st.ptr.example", 0, false }, ++ { "Valid trailing use of \"_\"", ++ "test_.ptr.example", 0, false }, ++ ++ /* Sanity test the broader set [A-Za-z0-9_-] of valid characters. */ ++ { "Valid \"[A-Z]\"", ++ "test.ABCDEFGHIJKLMNOPQRSTUVWXYZ.ptr.example", 0, false }, ++ { "Valid \"[a-z]\"", ++ "test.abcdefghijklmnopqrstuvwxyz.ptr.example", 0, false }, ++ { "Valid \"[0-9]\"", ++ "test.0123456789.ptr.example", 0, false }, ++ { "Valid mixed use of \"[A-Za-z0-9_-]\"", ++ "test.012abcABZ_-.ptr.example", 0, false }, ++ }; ++ ++static void ++response (const struct resolv_response_context *ctx, ++ struct resolv_response_builder *b, ++ const char *qname, uint16_t qclass, uint16_t qtype) ++{ ++ TEST_COMPARE (qclass, C_IN); ++ ++ /* We only test PTR. */ ++ TEST_COMPARE (qtype, T_PTR); ++ ++ unsigned int count, count1; ++ char *tail = NULL; ++ ++ /* The test implementation can handle up to 255 tests. */ ++ if (strstr (qname, "in-addr.arpa") != NULL ++ && sscanf (qname, "%u.%ms", &count, &tail) == 2) ++ TEST_COMPARE_STRING (tail, "0.168.192.in-addr.arpa"); ++ else if (sscanf (qname, "%x.%x.%ms", &count, &count1, &tail) == 3) ++ { ++ TEST_COMPARE_STRING (tail, "\ ++0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa"); ++ count |= count1 << 4; ++ } ++ else ++ FAIL_EXIT1 ("invalid QNAME: %s\n", qname); ++ free (tail); ++ ++ /* Cross check. Count has a fixed bound (soft limit). */ ++ TEST_VERIFY (count >= 0 && count <= 255); ++ ++ /* We have a fixed number of tests (hard limit). */ ++ TEST_VERIFY_EXIT (count < array_length (test_items)); ++ ++ struct resolv_response_flags flags = {}; ++ resolv_response_init (b, flags); ++ resolv_response_add_question (b, qname, qclass, qtype); ++ resolv_response_section (b, ns_s_an); ++ ++ /* Actual answer record. */ ++ resolv_response_open_record (b, qname, qclass, qtype, 60); ++ ++ /* Record the answer. */ ++ resolv_response_add_name (b, test_items[count].answer); ++ resolv_response_close_record (b); ++} ++ ++/* Perform one check using a reverse lookup. */ ++static void ++check_reverse (int af, int count) ++{ ++ TEST_VERIFY (af == AF_INET || af == AF_INET6); ++ TEST_VERIFY_EXIT (count < array_length (test_items)); ++ ++ /* Generate an address to query for each test. */ ++ char addr[sizeof (struct in6_addr)] = { 0 }; ++ socklen_t addrlen; ++ if (af == AF_INET) ++ { ++ addr[0] = (char) 192; ++ addr[1] = (char) 168; ++ addr[2] = (char) 0; ++ addr[3] = (char) count; ++ addrlen = 4; ++ } ++ else ++ { ++ addr[0] = 0x20; ++ addr[1] = 0x01; ++ addr[2] = 0x0d; ++ addr[3] = 0xb8; ++ addr[4] = addr[5] = addr[6] = addr[7] = 0x0; ++ addr[8] = addr[9] = addr[10] = addr[11] = 0x0; ++ addr[12] = 0x0; ++ addr[13] = 0x0; ++ addr[14] = 0x0; ++ addr[15] = (char) count; ++ addrlen = 16; ++ } ++ ++ h_errno = 0; ++ struct hostent *answer = gethostbyaddr (addr, addrlen, af); ++ ++ /* Verify h_errno is as expected. */ ++ TEST_COMPARE (h_errno, test_items[count].expected); ++ if (h_errno != test_items[count].expected) ++ /* And print more information if it's not. */ ++ printf ("INFO: %s\n", test_items[count].test); ++ ++ if (test_items[count].fail) ++ { ++ /* We expected a failure so verify answer is NULL. */ ++ TEST_VERIFY (answer == NULL); ++ /* If it's not NULL we should print out what we received. */ ++ if (answer != NULL) ++ printf ("error: unexpected success: %s\n", ++ support_format_hostent (answer)); ++ } ++ else ++ /* We don't expect a failure so answer must be valid. */ ++ TEST_COMPARE_STRING (answer->h_name, test_items[count].answer); ++} ++ ++static int ++do_test (void) ++{ ++ struct resolv_test *obj = resolv_test_start ++ ((struct resolv_redirect_config) ++ { ++ .response_callback = response ++ }); ++ ++ for (int i = 0; i < array_length (test_items); i++) ++ { ++ check_reverse (AF_INET, i); ++ check_reverse (AF_INET6, i); ++ } ++ resolv_test_end (obj); ++ ++ return 0; ++} ++ ++#include diff --git a/glibc-upstream-2.39-295.patch b/glibc-upstream-2.39-295.patch new file mode 100644 index 0000000..63b27eb --- /dev/null +++ b/glibc-upstream-2.39-295.patch @@ -0,0 +1,127 @@ +commit 0dc95ae10929aba1cc660e97cfc94903c2568efa +Author: Xi Ruoyao +Date: Tue Feb 3 16:20:12 2026 +0800 + + elf: parse /proc/self/maps as the last resort to find the gap for tst-link-map-contiguous-ldso + + The initialization process of libc.so calls mmap() several times and the + kernel may lay the maps into the gap. If all pages in the gap are + occupied, the test would not be able to find the gap with mmap() and the + test would fail. + + The failure reproduces most frequently on LoongArch because with the + commonly used page size (16 KiB) the gap only contains 4 pages and the + probability they are all occupied is not near to zero. + + With the changes in the patch, a test run may output: + + info: ld.so link map is not contiguous + info: object "/dev/zero" found at 0x7ffff1fe0000 - 0x7ffff1fe4000 + info: anonymous mapping found at 0x7ffff1fe4000 - 0x7ffff1fec000 + + Also take the chance to fix a mistake in the "object found at" message + which has puzzled me during the initial debug session. + + Signed-off-by: Xi Ruoyao + Reviewed-by: Adhemerval Zanella + (cherry picked from commit aed8390a6a22e5751fc12704c0c5f2a8271fc286) + +diff --git a/elf/tst-link-map-contiguous-ldso.c b/elf/tst-link-map-contiguous-ldso.c +index 04de808bb234fe38..f0e26682f2858414 100644 +--- a/elf/tst-link-map-contiguous-ldso.c ++++ b/elf/tst-link-map-contiguous-ldso.c +@@ -18,15 +18,73 @@ + + #include + #include ++#include + #include + #include + #include + #include ++#include + #include + #include ++#include + #include + #include + ++/* Slow path in case we cannot find a gap with mmap (when the runtime has ++ mapped all the pages in the gap for some reason). */ ++static bool ++find_gap_with_proc_self_map (const struct link_map *l) ++{ ++ int pagesize = getpagesize (); ++ ++ support_need_proc ("Reads /proc/self/maps to find gap in ld.so mapping"); ++ ++ /* Parse /proc/self/maps and find all the mappings in the ld.so range ++ but not from ld.so. */ ++ FILE *f = xfopen ("/proc/self/maps", "r"); ++ char *line = NULL, *path_ldso = NULL; ++ size_t len; ++ bool found = false; ++ while (xgetline (&line, &len, f)) ++ { ++ uintptr_t from, to; ++ char *path = NULL; ++ int r = sscanf (line, "%" SCNxPTR "-%" SCNxPTR "%*s%*s%*s%*s%ms", ++ &from, &to, &path); ++ ++ TEST_VERIFY (r == 2 || r == 3); ++ TEST_COMPARE (from % pagesize, 0); ++ TEST_COMPARE (to % pagesize, 0); ++ ++ if (path_ldso == NULL && l->l_map_start == from) ++ { ++ TEST_COMPARE (r, 3); ++ path_ldso = path; ++ continue; ++ } ++ ++ if (from > l->l_map_start && to < l->l_map_end ++ && (r == 2 || (path_ldso != NULL && strcmp (path, path_ldso)))) ++ { ++ if (r == 2) ++ printf ("info: anonymous mapping found at 0x%" PRIxPTR " - 0x%" ++ PRIxPTR "\n", from, to); ++ else ++ printf ("info: object \"%s\" found at 0x%" PRIxPTR " - 0x%" ++ PRIxPTR "\n", path, from, to); ++ ++ found = true; ++ } ++ ++ free (path); ++ } ++ ++ free (path_ldso); ++ free (line); ++ xfclose (f); ++ return found; ++} ++ + static int + do_test (void) + { +@@ -64,16 +122,18 @@ do_test (void) + if ((void *) dlfo.dlfo_link_map != (void *) l) + { + printf ("info: object \"%s\" found at %p\n", +- dlfo.dlfo_link_map->l_name, ptr); ++ dlfo.dlfo_link_map->l_name, expected); + gap_found = true; + } + } + else + TEST_COMPARE (dlfo_ret, -1); ++ + xmunmap (ptr, 1); + addr += pagesize; + } +- if (!gap_found) ++ ++ if (!gap_found && !find_gap_with_proc_self_map (l)) + FAIL ("no ld.so gap found"); + } + else diff --git a/glibc.abignore b/glibc.abignore new file mode 100644 index 0000000..168294d --- /dev/null +++ b/glibc.abignore @@ -0,0 +1,34 @@ +[suppress_type] + # From glibc-2.39-58 related to RHEL-119409, RHEL-119428. + # Multiple changes related to _short_backupbuf, _total_written. + type_kind = struct + name = _IO_FILE + accessed_through = pointer +[suppress_function] + # From glibc-2.39-98. + name = _dl_readonly_area + parameter = '0 void * + parameter = '1 size_t + +# Changes due to RHEL-118273 (glibc-2.39-103.el10). +[suppress_function] + soname = libc.so.6 + # strcspn, strspn are now implemented in assembler and lack type information. + name_regexp = ^strc?spn$ +[suppress_function] + soname = libmvec.so.1 + # 2 * 9 * 2 = 36 functions in libmvec. + name_regexp = ^_ZGV(nN2|sMx)v_(acosh|asinh|atanh|cbrt|erf|erfc|cosh|sinh|tanh)(|f)$ +[suppress_function] + soname = libmvec.so.1 + # 9 functions in libmvec. + name_regexp = ^_ZGVnN4v_(acosh|asinh|atanh|cbrt|cosh|erfc|erf|sinh|tanh)f$ +[suppress_function] + soname = libmvec.so.1 + # 2 * 2 * 2 = 8 functions in libmvec. + name_regexp = ^_ZGV(nN2|sMx)vv_(hypot|pow)(|f)$ +[suppress_function] + soname = libmvec.so.1 + # 2 functions in libmvec. + name_regexp = ^_ZGVnN4vv_(hypot|pow)f$ +# Total: 36 + 9 + 8 + 2 = 55 functions in libmvec. diff --git a/glibc.spec b/glibc.spec index 4bc2b73..e838492 100644 --- a/glibc.spec +++ b/glibc.spec @@ -162,6 +162,14 @@ Release: %{lua:patchgit.release()}.alma.1 # # * GFDL is used for the documentation. # +# * GPLv3+ is used for scripts/move-if-change. +# +# * Autoconf-related files are licensed as GPL-3.0-or-later WITH +# Autoconf-exception-generic-3.0. +# +# * Texinfo-related files are licensed as GPL-3.0-or-later WITH +# Texinfo-exception. +# # * Some other licenses are used in various places (BSD, Inner-Net, # ISC, Public Domain, etc.). # @@ -194,7 +202,7 @@ Release: %{lua:patchgit.release()}.alma.1 # SPDX license string based on evaluation of glibc-2.39 sources by # ScanCode toolkit (https://github.com/nexB/scancode-toolkit), # and accounting for exceptions listed above: -License: LGPL-2.1-or-later AND SunPro AND LGPL-2.1-or-later WITH GCC-exception-2.0 AND BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later WITH GNU-compiler-exception AND GPL-2.0-only AND ISC AND LicenseRef-Fedora-Public-Domain AND HPND AND CMU-Mach AND LGPL-2.1-only AND LGPL-2.0-or-later AND Unicode-DFS-2015 AND GFDL-1.1-or-later AND GPL-1.0-or-later AND FSFUL AND MIT AND Inner-Net-2.0 AND X11 AND GPL-2.0-or-later WITH GCC-exception-2.0 AND GFDL-1.3-only AND GFDL-1.1-only +License: LGPL-2.1-or-later AND SunPro AND LGPL-2.1-or-later WITH GCC-exception-2.0 AND BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later WITH GNU-compiler-exception AND GPL-2.0-only AND ISC AND LicenseRef-Fedora-Public-Domain AND HPND AND CMU-Mach AND LGPL-2.1-only AND LGPL-2.0-or-later AND Unicode-DFS-2015 AND GFDL-1.1-or-later AND GPL-1.0-or-later AND FSFUL AND MIT AND Inner-Net-2.0 AND X11 AND GPL-2.0-or-later WITH GCC-exception-2.0 AND GFDL-1.3-only AND GFDL-1.1-only AND GPL-3.0-or-later AND GPL-3.0-or-later WITH Autoconf-exception-generic-3.0 AND GPL-3.0-or-later WITH Texinfo-exception URL: http://www.gnu.org/software/glibc/ Source0: %{?glibc_release_url}%{glibcsrcdir}.tar.xz @@ -212,6 +220,7 @@ Source15: ld-so-abi-ppc64le.baseline Source16: ld-so-abi-riscv64.baseline Source17: ld-so-abi-s390x.baseline Source18: ld-so-abi-x86_64.baseline +Source19: glibc.abignore %{lua:patchgit.patches()} # glibc_ldso: ABI-specific program interpreter name. Used for debuginfo @@ -608,6 +617,9 @@ Summary: The sources for the locales Requires: %{name} = %{version}-%{release} Requires: %{name}-common = %{version}-%{release} +# This subpackage contains gzip compressed charmaps +Requires: gzip + %description locale-source The sources for all locales provided in the language packs. If you are building custom locales you will most likely use @@ -2345,17 +2357,15 @@ update_gconv_modules_cache () %endif %changelog -* Wed Jan 28 2026 Eduard Abdullin - 2.39-58.7.alma.1 +* Tue May 19 2026 Eduard Abdullin - 2.39-121.alma.1 - Overwrite target for x86_64_v2 - Update patch-git.lua to handle AlmaLinux branches correctly - Add support for AlmaLinux import UBI format %{lua:patchgit.changelog()} -* Tue Sep 23 2025 Frédéric Bérat - 2.39-58.2 -- x86-64: Unconditionally run elf/check-dt-x86-64-plt ABI test (RHEL-113196) - -* Mon Sep 22 2025 Arjun Shankar - 2.39-58.1 -- nss: Fix incorrect/empty results when merging groups (RHEL-114264) +* Tue Aug 26 2025 Arjun Shankar - 2.39-59 +- glibc-locale-source: Require gzip to handle compressed charmaps + (RHEL-102553) * Thu Aug 21 2025 Florian Weimer - 2.39-58 - Use Requires(pre): libgcc%{_isa} to break libgcc cycle (RHEL-110559) diff --git a/patch-git-generated-commit.txt b/patch-git-generated-commit.txt index a1ca114..d5e6392 100644 --- a/patch-git-generated-commit.txt +++ b/patch-git-generated-commit.txt @@ -1,2 +1,2 @@ -f12a1289d37524283ab592df21c23e82f53a50b6 +3e6989278e3b421cc69180f93e6b3ab73b2ce5fe v1 diff --git a/patch-git-generated-log.txt b/patch-git-generated-log.txt index d3b31aa..f1e26e4 100644 --- a/patch-git-generated-log.txt +++ b/patch-git-generated-log.txt @@ -1,168 +1,1302 @@ -commit f12a1289d37524283ab592df21c23e82f53a50b6 -Author: Florian Weimer -AuthorDate: Mon Jan 19 09:11:32 2026 +0100 -Commit: Florian Weimer -CommitDate: Mon Jan 19 09:17:34 2026 +0100 +commit 3e6989278e3b421cc69180f93e6b3ab73b2ce5fe +Author: Frédéric Bérat +AuthorDate: Tue Apr 7 13:00:06 2026 +0200 +Commit: Frédéric Bérat +CommitDate: Tue Apr 7 13:00:38 2026 +0200 - Remove default /var/tmp for LD_PROFILE_OUTPUT (RHEL-142197) + Avoid duplicate DNS queries when search path contains "." (RHEL-142675) - Resolves: RHEL-142197 + Resolves: RHEL-142675 -:000000 100644 00000000 c29a7804 A glibc-RHEL-142193-1.patch -:000000 100644 00000000 4d5fcf51 A glibc-RHEL-142193-2.patch +:000000 100644 0000000 6fcbd16 A glibc-RHEL-142675-1.patch +:000000 100644 0000000 e461bb1 A glibc-RHEL-142675-2.patch +:000000 100644 0000000 17a0306 A glibc-RHEL-142675-3.patch +:000000 100644 0000000 78caae2 A glibc-RHEL-142675-4.patch -commit 8fd0eef25f8c61c6508f622eb94376197dcda831 +commit e7de6b4760a62add4b93abf7ca98ad4aa29c0da6 Author: Florian Weimer -AuthorDate: Fri Jan 16 18:26:28 2026 +0100 -Commit: Florian Weimer -CommitDate: Fri Jan 16 18:26:28 2026 +0100 +AuthorDate: Wed Apr 1 07:14:52 2026 +0200 +Commit: Frédéric Bérat +CommitDate: Wed Apr 1 07:15:33 2026 +0000 - CVE-2026-0915: Stack memory disclosure in getnetbyaddr (RHEL-141848) + Sync with upstream branch release/2.39/master (RHEL-151554) - Resolves: RHEL-141848 + RPM-Changelog: + - Sync with upstream branch release/2.39/master (RHEL-151554) + - Upstream commit: 0dc95ae10929aba1cc660e97cfc94903c2568efa + - resolv: Check hostname for validity (CVE-2026-4438) + - resolv: Count records correctly (CVE-2026-4437) + - iconvdata: Fix invalid pointer arithmetic in ANSI_X3.110 module + Resolves: RHEL-151554 + Resolves: RHEL-150736 + Resolves: RHEL-163331 + Resolves: RHEL-163334 -:000000 100644 00000000 b4a2ec59 A glibc-RHEL-141848.patch +:000000 100644 0000000 1fc3ef7 A glibc-upstream-2.39-289.patch +:000000 100644 0000000 4b65c0e A glibc-upstream-2.39-290.patch +:000000 100644 0000000 aa5e280 A glibc-upstream-2.39-291.patch +:000000 100644 0000000 a2d2255 A glibc-upstream-2.39-292.patch +:000000 100644 0000000 6849e16 A glibc-upstream-2.39-293.patch +:000000 100644 0000000 045780b A glibc-upstream-2.39-294.patch +:000000 100644 0000000 63b27eb A glibc-upstream-2.39-295.patch -commit bc355409ab6db32e2c4a1d075f4c391d872b7c97 +commit a7198b59f99609e2c63df8b78fe1d4a1d2d959f2 +Author: Frédéric Bérat +AuthorDate: Mon Mar 30 16:03:58 2026 +0200 +Commit: Frédéric Bérat +CommitDate: Mon Mar 30 16:03:58 2026 +0200 + + Fix NULL pointer dereference in __nss_database_get and __nss_configure_lookup (RHEL-150270) + + Resolves: RHEL-150270 + +:000000 100644 0000000 c333823 A glibc-RHEL-150270-1.patch +:000000 100644 0000000 38daeb6 A glibc-RHEL-150270-2.patch +:000000 100644 0000000 67a1d72 A glibc-RHEL-150270-3.patch + +commit b0bfe08c85f5a18f918d352a494685106a223dad Author: Florian Weimer AuthorDate: Fri Jan 16 14:57:11 2026 +0100 Commit: Florian Weimer -CommitDate: Fri Jan 16 18:19:30 2026 +0100 +CommitDate: Mon Mar 23 18:06:48 2026 +0100 - patch-git: Avoid trailing tabs in changelog (RHEL-141922) + patch-git: Avoid trailing tabs in changelog The RPM Lua function print puts tabs between its arguments. - Resolves: RHEL-141922 + Resolves: RHEL-140226 -:100644 100644 c975eb75 2ae7888a M patch-git.lua +:100644 100644 63962d8 38e0ee9 M patch-git.lua -commit 8ca40a05e29312442b0f75516b2494b2f5b9fb39 -Author: Florian Weimer -AuthorDate: Fri Jan 16 14:31:14 2026 +0100 -Commit: Florian Weimer -CommitDate: Fri Jan 16 14:31:14 2026 +0100 +commit 6f4573339cb797830f3fb94e5b4c94308e2987b0 +Author: Arjun Shankar +AuthorDate: Tue Mar 17 10:51:03 2026 +0100 +Commit: Arjun Shankar +CommitDate: Tue Mar 17 10:54:02 2026 +0100 - CVE-2026-0861: Check for alignment overflow in memalign functions (RHEL-141732) + dlfcn: Add dlinfo request type RTLD_DI_ORIGIN_PATH (RHEL-146428) - Resolves: RHEL-141732 + Resolves: RHEL-146428 -:000000 100644 00000000 12bb22ab A glibc-RHEL-141732.patch +:000000 100644 0000000 b9154d7 A glibc-RHEL-146428.patch -commit f6352acc9e868007ea3e1f286ebab9605681c330 +commit ae8b84b7442fb2d5f979870b77a98fbb2c95bdcd +Author: Sergey Kolosov +AuthorDate: Mon Mar 2 21:11:14 2026 +0100 +Commit: Sergey Kolosov +CommitDate: Tue Mar 10 12:59:50 2026 +0000 + + CI Gating: update gating.yaml for taskrpm deprecation + + Replace the deprecated baseos-ci.brew-build.tier1.functional rule with + fast-line and slow-line rules for tier0, tier1 and testsuite tests. + + Related: RHEL-126175 + RPM-Changelog: - + RPM-Skip-Release: yes + +:100644 100644 0ebe339 a603d08 M gating.yaml + +commit da102a69e4cf32920e1b52b5289d73450a5ed3bf +Author: DJ Delorie +AuthorDate: Mon Feb 16 16:16:58 2026 -0500 +Commit: Florian Weimer +CommitDate: Tue Mar 3 10:39:55 2026 +0000 + + Remove unneeded ld-linux .debug files + + Resolves: RHEL-136312 + +:100644 100644 5257de7 7bc79aa M wrap-find-debuginfo.sh + +commit 17eca93ea4bd2947ce13a30dae9b4fc3ca302c28 +Author: Sergey Kolosov +AuthorDate: Fri Feb 27 12:02:08 2026 +0100 +Commit: Sergey Kolosov +CommitDate: Mon Mar 2 19:02:20 2026 +0100 + + CI Tests: fix dynamic loader detection for bz1661513 test + + Fix dynamic loader file name detection by using readlink. + This issue was observed on s390x and ppc64le architectures. + Test name: + Regression/bz1661513-glibc-Adjust-to-rpms-find-debuginfo-sh-changes-to-keep-stripping-binaries + + RPM-Changelog: - + RPM-Skip-Release: yes + +:100755 100755 e40714d 31bdebe M tests/Regression/bz1661513-glibc-Adjust-to-rpms-find-debuginfo-sh-changes-to-keep-stripping-binaries/runtest.sh + +commit 16840189f72236af8760532eba3ea95316043fa1 +Author: Sergey Kolosov +AuthorDate: Fri Feb 27 11:43:01 2026 +0100 +Commit: Sergey Kolosov +CommitDate: Mon Mar 2 19:02:20 2026 +0100 + + CI Tests: run bz1661513 test last + + Ensure that the test runs last because it removes packages. Add + order:1000 to main.fmf. + Test name: + Regression/bz1661513-glibc-Adjust-to-rpms-find-debuginfo-sh-changes-to-keep-stripping-binaries + + RPM-Changelog: - + RPM-Skip-Release: yes + +:100644 100644 31302be 39acd0b M tests/Regression/bz1661513-glibc-Adjust-to-rpms-find-debuginfo-sh-changes-to-keep-stripping-binaries/main.fmf + +commit fc199b2037139b572b19b71ec09332ed35ab8fcc +Author: Frédéric Bérat +AuthorDate: Thu Feb 26 14:39:26 2026 +0100 +Commit: Frédéric Bérat +CommitDate: Thu Feb 26 14:39:26 2026 +0100 + + Fix race condition in io/tst-stat (RHEL-151711) + + Resolves: RHEL-151711 + +:000000 100644 0000000 42a0ccc A glibc-RHEL-151711-1.patch +:000000 100644 0000000 9ea3122 A glibc-RHEL-151711-2.patch +:000000 100644 0000000 5bb6404 A glibc-RHEL-151711-3.patch + +commit 6748bccde4c4bd4e67441781f677a7c93361aa67 +Author: Patsy Griffin +AuthorDate: Tue Feb 10 08:38:45 2026 -0500 +Commit: Florian Weimer +CommitDate: Mon Feb 16 18:38:18 2026 +0000 + + Remove default value for LD_PROFILE_OUTPUT + + Resolves: RHEL-142193 + +:000000 100644 0000000 3652c05 A glibc-RHEL-142193-1.patch +:000000 100644 0000000 0d4b684 A glibc-RHEL-142193-2.patch +:000000 100644 0000000 e1a8ab7 A glibc-RHEL-142193-3.patch +:000000 100644 0000000 eaac987 A glibc-RHEL-142193-4.patch +:000000 100644 0000000 68cdcff A glibc-RHEL-142193-5.patch +:000000 100644 0000000 fa23772 A glibc-RHEL-142193-6.patch +:000000 100644 0000000 65c10f2 A glibc-RHEL-142193-7.patch + +commit 67904a03a3a391716b66c3a73ce6ad532baf82fd +Author: Patsy Griffin +AuthorDate: Tue Feb 10 18:54:26 2026 -0500 +Commit: Patsy Griffin +CommitDate: Tue Feb 10 18:54:26 2026 -0500 + + Update locales for Croatia to use EUR as currency symbol + + Resolves: RHEL-140103 + +:000000 100644 0000000 1a56c88 A glibc-RHEL-140103.patch + +commit 009747ac2435216d9b8f525692d00594bf4b6e8e +Author: Arjun Shankar +AuthorDate: Mon Feb 9 13:38:03 2026 +0100 +Commit: Arjun Shankar +CommitDate: Mon Feb 9 13:38:03 2026 +0100 + + Set the currency symbol in Bulgarian locale to euro (RHEL-137184) + + Resolves: RHEL-137184 + +:000000 100644 0000000 dd8dc37 A glibc-RHEL-137184.patch + +commit 15606b95064e8a65e530877adb42db8c551ebceb +Author: Florian Weimer +AuthorDate: Tue Jan 27 13:44:40 2026 +0100 +Commit: Florian Weimer +CommitDate: Tue Jan 27 14:01:25 2026 +0100 + + patch-git: Add --no-decorate to git log invocation (RHEL-141923) + + Sync patch-git git log invocation with konflux-ci/rpmbuild-pipeline-environment-container, + specifically this commit: + + commit 5753986ec0689bd83d8fd40f179186a1aa99ed9a + Author: Pavel Raiskup + Date: Fri Dec 19 15:25:01 2025 +0100 + + Add patch-git support + + Follow the instructions in https://github.com/konflux-ci/rpmbuild-pipeline/issues/112 + + + + Resolves: RHEL-141923 + RPM-Changelog: - + RPM-Skip-Release: yes + +:100644 100644 6d20c54 63962d8 M patch-git.lua + +commit b333c27787552fee72cb7bb164777dc5beb7470e +Author: Arjun Shankar +AuthorDate: Thu Jan 22 11:25:08 2026 +0100 +Commit: Arjun Shankar +CommitDate: Thu Jan 22 11:25:08 2026 +0100 + + Sync with upstream branch release/2.39/master (RHEL-126766) + + Relevant commits already backported; skipped from this sync: + + - elf: handle addition overflow in _dl_find_object_update_1 [BZ #32245] + (glibc-RHEL-119398.patch) + - Avoid uninitialized result in sem_open when file does not exist + (glibc-RHEL-119392-1.patch) + - Rename new tst-sem17 test to tst-sem18 + (glibc-RHEL-119392-2.patch) + - nss: Group merge does not react to ERANGE during merge (bug 33361) + (glibc-RHEL-114265.patch) + - AArch64: Fix instability in AdvSIMD tan + (glibc-RHEL-118273-44.patch) + + RPM-Changelog: - Sync with upstream branch release/2.39/master (RHEL-126766) + - Upstream commit: ce65d944e38a20cb70af2a48a4b8aa5d8fabe1cc + - posix: Reset wordexp_t fields with WRDE_REUSE (CVE-2025-15281 / BZ 33814) + - resolv: Fix NSS DNS backend for getnetbyaddr (CVE-2026-0915) + - memalign: reinstate alignment overflow check (CVE-2026-0861) + - support: Exit on consistency check failure in resolv_response_add_name + - support: Fix FILE * leak in check_for_unshare_hints in test-container + - sprof: fix -Wformat warnings on 32-bit hosts + - sprof: check pread size and offset for overflow + - getaddrinfo.c: Avoid uninitialized pointer access [BZ #32465] + - nptl: Optimize trylock for high cache contention workloads (BZ #33704) + - ppc64le: Power 10 rawmemchr clobbers v20 (bug #33091) + - ppc64le: Restore optimized strncmp for power10 + - ppc64le: Restore optimized strcmp for power10 + - AArch64: Optimise SVE scalar callbacks + - aarch64: fix includes in SME tests + - aarch64: fix cfi directives around __libc_arm_za_disable + - aarch64: tests for SME + - aarch64: clear ZA state of SME before clone and clone3 syscalls + - aarch64: define macro for calling __libc_arm_za_disable + - aarch64: update tests for SME + - aarch64: Disable ZA state of SME in setjmp and sigsetjmp + - linux: Also check pkey_get for ENOSYS on tst-pkey (BZ 31996) + - aarch64: Do not link conform tests with -Wl,-z,force-bti (bug 33601) + - x86: fix wmemset ifunc stray '!' (bug 33542) + - x86: Detect Intel Nova Lake Processor + - x86: Detect Intel Wildcat Lake Processor + Resolves: RHEL-126766 + Resolves: RHEL-45143 + Resolves: RHEL-45145 + Resolves: RHEL-142786 + Resolves: RHEL-141852 + Resolves: RHEL-141733 + +:000000 100644 0000000 c26d175 A glibc-upstream-2.39-263.patch +:000000 100644 0000000 b020ed3 A glibc-upstream-2.39-264.patch +:000000 100644 0000000 d5770dd A glibc-upstream-2.39-265.patch +:000000 100644 0000000 d10b3f9 A glibc-upstream-2.39-266.patch +:000000 100644 0000000 e568d5c A glibc-upstream-2.39-267.patch +:000000 100644 0000000 0114ec6 A glibc-upstream-2.39-268.patch +:000000 100644 0000000 f0d7178 A glibc-upstream-2.39-269.patch +:000000 100644 0000000 8e8bc5f A glibc-upstream-2.39-270.patch +:000000 100644 0000000 238d221 A glibc-upstream-2.39-271.patch +:000000 100644 0000000 6c30403 A glibc-upstream-2.39-272.patch +:000000 100644 0000000 ae2e5eb A glibc-upstream-2.39-273.patch +:000000 100644 0000000 45e4298 A glibc-upstream-2.39-274.patch +:000000 100644 0000000 adfab4e A glibc-upstream-2.39-275.patch +:000000 100644 0000000 852bdb2 A glibc-upstream-2.39-277.patch +:000000 100644 0000000 50bbc7d A glibc-upstream-2.39-278.patch +:000000 100644 0000000 b6fa010 A glibc-upstream-2.39-279.patch +:000000 100644 0000000 306267f A glibc-upstream-2.39-280.patch +:000000 100644 0000000 44b080e A glibc-upstream-2.39-281.patch +:000000 100644 0000000 727901e A glibc-upstream-2.39-282.patch +:000000 100644 0000000 101226a A glibc-upstream-2.39-283.patch +:000000 100644 0000000 4a46994 A glibc-upstream-2.39-284.patch +:000000 100644 0000000 3764237 A glibc-upstream-2.39-285.patch +:000000 100644 0000000 860550d A glibc-upstream-2.39-286.patch +:000000 100644 0000000 27051da A glibc-upstream-2.39-287.patch +:000000 100644 0000000 f826269 A glibc-upstream-2.39-288.patch + +commit 020ea2096939f47430942c152c8b57cd7943bf57 +Author: Rachel Sibley +AuthorDate: Wed Jan 21 18:23:46 2026 -0500 +Commit: Rachel Sibley +CommitDate: Wed Jan 21 18:30:20 2026 -0500 + + Create revdep ci file for rhivos 2.0 (RHEL-143302) + + Resolves: RHEL-143302 + +:000000 100644 0000000 f6410fc A revdep.yaml + +commit 2f6cce6f8156d09639bd3eafd36a6aed2aa1b2ac +Author: Arjun Shankar +AuthorDate: Fri Dec 19 16:27:21 2025 +0100 +Commit: Arjun Shankar +CommitDate: Mon Jan 12 15:54:57 2026 +0100 + + string: Add tests for unique strerror and strsignal strings (RHEL-135228) + + Resolves: RHEL-135228 + +:000000 100644 0000000 90df056 A glibc-RHEL-135228.patch + +commit 41de17ba48c96b72900b9eb5cc40a848bc161cb0 +Author: Arjun Shankar +AuthorDate: Fri Dec 19 16:14:30 2025 +0100 +Commit: Arjun Shankar +CommitDate: Thu Jan 8 12:59:49 2026 +0100 + + elf: Fix some test dependencies (RHEL-119438) + + Resolves: RHEL-119438 + +:000000 100644 0000000 bc4b43b A glibc-RHEL-119438-1.patch +:000000 100644 0000000 7eb4adb A glibc-RHEL-119438-2.patch + +commit b37741885c18dae927faaba08a7849ca21d35b7c +Author: Florian Weimer +AuthorDate: Fri Dec 19 22:05:31 2025 +0100 +Commit: Florian Weimer +CommitDate: Fri Dec 19 22:05:31 2025 +0100 + + patch-git: Address issues identified in automated code review + + Resolves: RHEL-137213 + RPM-Changelog: - + RPM-Skip-Release: yes + +:100644 100644 c975eb7 6d20c54 M patch-git.lua + +commit b520db1431ed2a5db441559aed0dda398e7b6e08 +Author: Patsy Griffin +AuthorDate: Tue Dec 16 14:45:40 2025 -0500 +Commit: Patsy Griffin +CommitDate: Tue Dec 16 14:45:40 2025 -0500 + + misc: Add support for Linux uio.h RWF_ATOMIC flag (RHEL-87645) + + Resolves: RHEL-87645 + +:000000 100644 0000000 83ec4c4 A glibc-RHEL-87645.patch + +commit 9852cf6015b0451791ba24a7a638551ab2965913 +Author: Arjun Shankar +AuthorDate: Fri Dec 5 17:51:54 2025 +0100 +Commit: Florian Weimer +CommitDate: Mon Dec 8 18:01:49 2025 +0000 + + manual: Improve qsort and bsearch documentation (RHEL-119451) + + Resolves: RHEL-119451 + +:000000 100644 0000000 f829d9a A glibc-RHEL-119451-1.patch +:000000 100644 0000000 c14d359 A glibc-RHEL-119451-2.patch +:000000 100644 0000000 f2e1eb2 A glibc-RHEL-119451-3.patch + +commit 74a8127818e9ffdbcc44e0e40f2c835125af5202 +Author: DJ Delorie +AuthorDate: Fri Dec 5 16:37:27 2025 -0500 +Commit: Florian Weimer +CommitDate: Sun Dec 7 13:35:37 2025 +0000 + + Handle addition overflow in _dl_find_object_update_1 (RHEL-119398) + + Resolves: RHEL-119398 + +:000000 100644 0000000 636bd25 A glibc-RHEL-119398.patch + +commit 6fdef029678322b9b3f6c2cae7de21fa4ebe9f67 +Author: Florian Weimer +AuthorDate: Fri Dec 5 09:54:46 2025 +0100 +Commit: Florian Weimer +CommitDate: Sat Dec 6 11:11:23 2025 +0000 + + Avoid undefined _dl_readonly_area symbol during live updates + + Related: RHEL-119431 + +:000000 100644 0000000 5e366b6 A glibc-RHEL-119431-6.patch + +commit 1249d90b30c59e2f5ff576a45a4b9a5d9c4926b6 +Author: Florian Weimer +AuthorDate: Fri Dec 5 14:39:48 2025 +0100 +Commit: Florian Weimer +CommitDate: Fri Dec 5 16:24:54 2025 +0100 + + Add expected ABI changes due to libmvec rebase + + Related: RHEL-118273 + RPM-Changelog: - + RPM-Skip-Release: yes + +:100644 100644 a7a9706 168294d M glibc.abignore + +commit 9dd92cac18272f39e918a11b6b2a65e3eef1abb4 +Author: Yuki Inoguchi +AuthorDate: Wed Nov 12 13:08:45 2025 -0500 +Commit: Florian Weimer +CommitDate: Fri Dec 5 16:24:54 2025 +0100 + + aarch64: Add GLIBC_2.40 vector functions and performance fixes (RHEL-118273) + + This combines the following upstream commits: + + e45af510bc AArch64: Fix instability in AdvSIMD sinh + 6c22823da5 AArch64: Fix instability in AdvSIMD tan + aebaeb2c33 AArch64: Update math-vector-fortran.h + e20ca759af AArch64: add optimised strspn/strcspn + aac077645a AArch64: Fix SVE powf routine [BZ #33299] + 1e3d1ddf97 AArch64: Optimize SVE exp functions + dee22d2a81 AArch64: Optimise SVE FP64 Hyperbolics + 6849c5b791 AArch64: Improve codegen SVE log1p helper + 09795c5612 AArch64: Fix builderror with GCC 12.1/12.2 + aa18367c11 AArch64: Improve enabling of SVE for libmvec + 691edbdf77 aarch64: fix unwinding in longjmp + 4352e2cc93 aarch64: Fix _dl_tlsdesc_dynamic unwind for pac-ret (BZ 32612) + cf56eb28fa AArch64: Optimize algorithm in users of SVE expf helper + ce2f26a22e AArch64: Remove PTR_ARG/SIZE_ARG defines + 8f0e7fe61e Aarch64: Improve codegen in SVE asinh + c0ff447edf Aarch64: Improve codegen in SVE exp and users, and update expf_inline + f5ff34cb3c AArch64: Improve codegen for SVE erfcf + 0b195651db AArch64: Improve codegen for SVE pow + 95e807209b AArch64: Improve codegen for SVE powf + d3f2b71ef1 aarch64: Fix tests not compatible with targets supporting GCS + f86b4cf875 AArch64: Improve codegen in SVE expm1f and users + 140b985e5a AArch64: Improve codegen in AdvSIMD asinh + 91c1fadba3 AArch64: Improve codegen for SVE log1pf users + cff9648d0b AArch64: Improve codegen of AdvSIMD expf family + 569cfaaf49 AArch64: Improve codegen in AdvSIMD pow + ca0c0d0f26 AArch64: Improve codegen in users of ADVSIMD log1p helper + 13a7ef5999 AArch64: Improve codegen in users of ADVSIMD expm1 helper + 2d82d781a5 AArch64: Remove SVE erf and erfc tables + 1cf29fbc5b AArch64: Small optimisation in AdvSIMD erf and erfc + 7b8c134b54 AArch64: Improve codegen in SVE expf & related routines + a15b1394b5 AArch64: Improve codegen in SVE F32 logs + 5bc100bd4b AArch64: Improve codegen in users of AdvSIMD log1pf helper + 7900ac490d AArch64: Improve codegen in users of ADVSIMD expm1f helper + 0fed0b250f aarch64/fpu: Add vector variants of pow + 75207bde68 aarch64/fpu: Add vector variants of cbrt + 157f89fa3d aarch64/fpu: Add vector variants of hypot + 90a6ca8b28 aarch64: Fix AdvSIMD libmvec routines for big-endian + 87cb1dfcd6 aarch64/fpu: Add vector variants of erfc + 3d3a4fb8e4 aarch64/fpu: Add vector variants of tanh + eedbbca0bf aarch64/fpu: Add vector variants of sinh + 8b67920528 aarch64/fpu: Add vector variants of atanh + 81406ea3c5 aarch64/fpu: Add vector variants of asinh + b09fee1d21 aarch64/fpu: Add vector variants of acosh + bdb5705b7b aarch64/fpu: Add vector variants of cosh + cb5d84f1f8 aarch64/fpu: Add vector variants of erf + + Resolves: RHEL-118273 + +:000000 100644 0000000 4862969 A glibc-RHEL-118273-1.patch +:000000 100644 0000000 5a282d6 A glibc-RHEL-118273-10.patch +:000000 100644 0000000 7b13e88 A glibc-RHEL-118273-11.patch +:000000 100644 0000000 73aa260 A glibc-RHEL-118273-12.patch +:000000 100644 0000000 b852325 A glibc-RHEL-118273-13.patch +:000000 100644 0000000 6922f4d A glibc-RHEL-118273-14.patch +:000000 100644 0000000 5f503d7 A glibc-RHEL-118273-15.patch +:000000 100644 0000000 32c1c98 A glibc-RHEL-118273-16.patch +:000000 100644 0000000 d7e1dbf A glibc-RHEL-118273-17.patch +:000000 100644 0000000 5899018 A glibc-RHEL-118273-18.patch +:000000 100644 0000000 0c685e3 A glibc-RHEL-118273-19.patch +:000000 100644 0000000 8d9e4ee A glibc-RHEL-118273-2.patch +:000000 100644 0000000 49e8fa8 A glibc-RHEL-118273-20.patch +:000000 100644 0000000 cb930ba A glibc-RHEL-118273-21.patch +:000000 100644 0000000 1633bc7 A glibc-RHEL-118273-22.patch +:000000 100644 0000000 63ec79e A glibc-RHEL-118273-23.patch +:000000 100644 0000000 965cfa1 A glibc-RHEL-118273-24.patch +:000000 100644 0000000 e87c829 A glibc-RHEL-118273-25.patch +:000000 100644 0000000 8b238dc A glibc-RHEL-118273-26.patch +:000000 100644 0000000 8e8302d A glibc-RHEL-118273-27.patch +:000000 100644 0000000 886ca71 A glibc-RHEL-118273-28.patch +:000000 100644 0000000 7ac05a2 A glibc-RHEL-118273-29.patch +:000000 100644 0000000 e919cfa A glibc-RHEL-118273-3.patch +:000000 100644 0000000 fc9779a A glibc-RHEL-118273-30.patch +:000000 100644 0000000 4e68a14 A glibc-RHEL-118273-31.patch +:000000 100644 0000000 33fdcd2 A glibc-RHEL-118273-32.patch +:000000 100644 0000000 b8ac4de A glibc-RHEL-118273-33.patch +:000000 100644 0000000 053febb A glibc-RHEL-118273-34.patch +:000000 100644 0000000 0af55d0 A glibc-RHEL-118273-35.patch +:000000 100644 0000000 f7972c7 A glibc-RHEL-118273-36.patch +:000000 100644 0000000 c8d9a95 A glibc-RHEL-118273-37.patch +:000000 100644 0000000 8f895a4 A glibc-RHEL-118273-38.patch +:000000 100644 0000000 dc3b229 A glibc-RHEL-118273-39.patch +:000000 100644 0000000 e10d584 A glibc-RHEL-118273-4.patch +:000000 100644 0000000 15ae781 A glibc-RHEL-118273-40.patch +:000000 100644 0000000 92e969e A glibc-RHEL-118273-41.patch +:000000 100644 0000000 4f54c8f A glibc-RHEL-118273-42.patch +:000000 100644 0000000 c9c00ae A glibc-RHEL-118273-43.patch +:000000 100644 0000000 3f2a0be A glibc-RHEL-118273-44.patch +:000000 100644 0000000 a872304 A glibc-RHEL-118273-45.patch +:000000 100644 0000000 ab3eeb8 A glibc-RHEL-118273-5.patch +:000000 100644 0000000 8cf84cb A glibc-RHEL-118273-6.patch +:000000 100644 0000000 dd77eb9 A glibc-RHEL-118273-7.patch +:000000 100644 0000000 cc3ac64 A glibc-RHEL-118273-8.patch +:000000 100644 0000000 bd36048 A glibc-RHEL-118273-9.patch + +commit 7361fbbfabd465608acfabbd5337796c03fe739a Author: Florian Weimer AuthorDate: Thu Nov 27 16:49:34 2025 +0100 Commit: Florian Weimer -CommitDate: Sat Dec 6 16:06:42 2025 +0100 +CommitDate: Fri Dec 5 13:58:05 2025 +0100 patch-git: Do not require directory names in Lua patches table RPM 6.0.0 does not put the source directory prefix there anymore. - Resolves: RHEL-134110 + Resolves: RHEL-131835 RPM-Changelog: - RPM-Skip-Release: yes -:100644 100644 04cb0612 c975eb75 M patch-git.lua +:100644 100644 04cb061 c975eb7 M patch-git.lua -commit aa7544f8e5419c1f08ae9fccd24d8c36a6f2583a +commit c1cf02aec4340e4b23e7d21e4f159a1d7e012c5c +Author: Arjun Shankar +AuthorDate: Tue Dec 2 17:42:22 2025 +0100 +Commit: Arjun Shankar +CommitDate: Tue Dec 2 17:42:22 2025 +0100 + + Extend testing for DSO dependency sorting (RHEL-119418) + + Resolves: RHEL-119418 + +:000000 100644 0000000 50df8f3 A glibc-RHEL-119418.patch + +commit d9b4977bed787a86f6f7bb5d1b7052cfacee4f72 +Author: Arjun Shankar +AuthorDate: Thu Nov 27 15:35:02 2025 +0100 +Commit: Arjun Shankar +CommitDate: Tue Dec 2 09:23:45 2025 +0100 + + Improve test coverage for CPU_* macros (RHEL-119425) + + Resolves: RHEL-119425 + +:000000 100644 0000000 ca543e8 A glibc-RHEL-119425-1.patch +:000000 100644 0000000 287ccc2 A glibc-RHEL-119425-2.patch + +commit 66c2311e0f3aa3e16cb5fbaa4c70a9a2f4abe764 +Author: Arjun Shankar +AuthorDate: Thu Nov 27 15:08:51 2025 +0100 +Commit: Arjun Shankar +CommitDate: Mon Dec 1 16:04:03 2025 +0100 + + manual: Improve the documentation of the Thread APIs (RHEL-119437) + + Resolves: RHEL-119437 + +:000000 100644 0000000 49fa2b5 A glibc-RHEL-119437-1.patch +:000000 100644 0000000 bcb2bb3 A glibc-RHEL-119437-2.patch +:000000 100644 0000000 cab120c A glibc-RHEL-119437-3.patch + +commit 899101702aaa1cb86b357ee597f152240dacee4d +Author: Florian Weimer +AuthorDate: Thu Nov 27 14:40:19 2025 +0100 +Commit: Florian Weimer +CommitDate: Thu Nov 27 14:40:19 2025 +0100 + + Linux: Update PIDFD_* constants, mark PIDFD_GET_INFO as varying in test + + Resolves: RHEL-121108 + +:000000 100644 0000000 49e2890 A glibc-RHEL-121108-1.patch +:000000 100644 0000000 a1beb29 A glibc-RHEL-121108-2.patch +:000000 100644 0000000 1a26bf6 A glibc-RHEL-121108-3.patch + +commit 1239437396ffa02a6663d5af04e24c1e1c884923 +Author: DJ Delorie +AuthorDate: Tue Nov 18 21:51:07 2025 -0500 +Commit: DJ Delorie +CommitDate: Tue Nov 25 14:57:31 2025 -0500 + + Fix and add tests for printf fortification against %n in writeable memory (RHEL-119431) + + Resolves: RHEL-119431 + +:000000 100644 0000000 5747c2d A glibc-RHEL-119431-1.patch +:000000 100644 0000000 599adc9 A glibc-RHEL-119431-2.patch +:000000 100644 0000000 795c67e A glibc-RHEL-119431-3.patch +:000000 100644 0000000 1e78d36 A glibc-RHEL-119431-4.patch +:000000 100644 0000000 96e22fe A glibc-RHEL-119431-5.patch +:100644 100644 a7230ab a7a9706 M glibc.abignore + +commit b6c93d518720fc58ce9cdb7c3b7114e9f10fe219 +Author: Arjun Shankar +AuthorDate: Fri Nov 21 12:02:51 2025 +0100 +Commit: Frédéric Bérat +CommitDate: Sat Nov 22 06:49:56 2025 +0000 + + Add tests to verify that ld.so works correctly despite ELF hash collisions (RHEL-119402) + + Resolves: RHEL-119402 + +:000000 100644 0000000 a32f7e9 A glibc-RHEL-119402.patch + +commit 07a8f49504c66c27e0d7eaae6f81ae682409c438 +Author: Frédéric Bérat +AuthorDate: Mon Nov 17 11:15:39 2025 +0100 +Commit: Frédéric Bérat +CommitDate: Fri Nov 21 15:50:33 2025 +0000 + + Extend testing for CPU affinity inheritance. (RHEL-119424) + + Resolves: RHEL-119424 + +:000000 100644 0000000 53a3d42 A glibc-RHEL-119424-1.patch +:000000 100644 0000000 be715f9 A glibc-RHEL-119424-2.patch +:000000 100644 0000000 d97c4c0 A glibc-RHEL-119424-3.patch + +commit 89eb9060127675a5645f2bb489895253509f1559 +Author: Florian Weimer +AuthorDate: Tue Nov 18 08:16:35 2025 +0100 +Commit: Florian Weimer +CommitDate: Thu Nov 20 19:17:44 2025 +0000 + + Document that GPLv3 files are present among the sources + + Resolves: RHEL-127524 + +:000000 100644 0000000 92b4a65 A glibc-RHEL-127524.patch +:100644 100644 3602cc9 fc5a513 M glibc.spec + +commit 66fd2c680c016217945b5b4b34f7696d63f04e38 +Author: Florian Weimer +AuthorDate: Wed Nov 12 14:20:50 2025 +0100 +Commit: Florian Weimer +CommitDate: Thu Nov 20 10:50:38 2025 +0100 + + Record _IO_FILE internal ABI change in glibc.abignore + + This change is masked for !_LIBC, but it still shows up in glibc's + on uses of FILE * as an abdiff change. + + Related: RHEL-119428 + +:100644 100644 8af26de a7230ab M glibc.abignore + +commit 49bae402bf3dc6c3f47017b33da555064026bdc4 +Author: Frédéric Bérat +AuthorDate: Wed Nov 19 16:54:47 2025 +0100 +Commit: Frédéric Bérat +CommitDate: Wed Nov 19 16:56:23 2025 +0100 + + Remove unsupported float and double test cases for scanf + + Related: RHEL-119433 + +:000000 100644 0000000 a58a8b7 A glibc-RHEL-119433-15.patch + +commit c1d6fad5cca18d8e498f85c19a5d9d7b10bca99e +Author: Frédéric Bérat +AuthorDate: Thu Nov 6 11:33:34 2025 +0100 +Commit: Frédéric Bérat +CommitDate: Fri Nov 14 10:32:46 2025 +0000 + + Extend scanf testing (RHEL-119433) + + Resolves: RHEL-119433 + +:000000 100644 0000000 1f4f0c2 A glibc-RHEL-119433-1.patch +:000000 100644 0000000 9b86e2e A glibc-RHEL-119433-10.patch +:000000 100644 0000000 667a913 A glibc-RHEL-119433-11.patch +:000000 100644 0000000 6da7a99 A glibc-RHEL-119433-12.patch +:000000 100644 0000000 6eec6ff A glibc-RHEL-119433-13.patch +:000000 100644 0000000 e3c1f80 A glibc-RHEL-119433-14.patch +:000000 100644 0000000 8b08225 A glibc-RHEL-119433-2.patch +:000000 100644 0000000 ca0792b A glibc-RHEL-119433-3.patch +:000000 100644 0000000 7beb5ee A glibc-RHEL-119433-4.patch +:000000 100644 0000000 f0899bf A glibc-RHEL-119433-5.patch +:000000 100644 0000000 a328cbc A glibc-RHEL-119433-6.patch +:000000 100644 0000000 98bfc17 A glibc-RHEL-119433-7.patch +:000000 100644 0000000 ac1782c A glibc-RHEL-119433-8.patch +:000000 100644 0000000 4101173 A glibc-RHEL-119433-9.patch + +commit 40ed261d949051ce7b66242a044302783162fd92 +Author: Patsy Griffin +AuthorDate: Thu Nov 6 17:47:56 2025 -0500 +Commit: pfrankli +CommitDate: Wed Nov 12 13:40:21 2025 +0000 + + Change utimensat to accept NULL pathname arguments (RHEL-119419) + + Resolves: RHEL-119419 + +:000000 100644 0000000 3aa9a4e A glibc-RHEL-119419.patch + +commit 50e34d07ffa62ec045554d550ac4e849faf14cc5 Author: Florian Weimer AuthorDate: Tue Nov 11 20:16:03 2025 +0100 Commit: Florian Weimer -CommitDate: Sat Dec 6 16:06:05 2025 +0100 +CommitDate: Wed Nov 12 09:37:35 2025 +0000 patch-git: Support git worktree After “git worktree”, .git is a text file, not a directory. - Resolves: RHEL-127595 - RPM-Changelog: - - RPM-Skip-Release: yes + Resolves: RHEL-121947 -:100644 100644 f95800e1 04cb0612 M patch-git.lua +:100644 100644 f95800e 04cb061 M patch-git.lua -commit 6448de2eeae6ef69ae36294006c9270137b8e992 +commit b16cb36857c9ad71571030fc2fda115a92ba4c46 +Author: Frédéric Bérat +AuthorDate: Thu Nov 6 09:55:48 2025 +0100 +Commit: Frédéric Bérat +CommitDate: Fri Nov 7 07:59:10 2025 +0100 + + Extend fwrite testing; improve libio fwrite correctness (RHEL-119428) + + Resolves: RHEL-119428 + +:000000 100644 0000000 31e366e A glibc-RHEL-119428-1.patch +:000000 100644 0000000 3481ce9 A glibc-RHEL-119428-10.patch +:000000 100644 0000000 7aa3a12 A glibc-RHEL-119428-2.patch +:000000 100644 0000000 3031c81 A glibc-RHEL-119428-3.patch +:000000 100644 0000000 2a2323e A glibc-RHEL-119428-4.patch +:000000 100644 0000000 79dbe6f A glibc-RHEL-119428-5.patch +:000000 100644 0000000 c314c5b A glibc-RHEL-119428-6.patch +:000000 100644 0000000 9185fd5 A glibc-RHEL-119428-7.patch +:000000 100644 0000000 5224677 A glibc-RHEL-119428-8.patch +:000000 100644 0000000 112aae2 A glibc-RHEL-119428-9.patch + +commit a3fbf571630b09e93a2c5c23b4a069b918b22953 +Author: Frédéric Bérat +AuthorDate: Tue Nov 4 11:49:25 2025 +0100 +Commit: Frédéric Bérat +CommitDate: Thu Nov 6 08:04:39 2025 +0000 + + Extend printf family testing (RHEL-119390) + + Resolves: RHEL-119390 + +:000000 100644 0000000 93437f8 A glibc-RHEL-119390-1.patch +:000000 100644 0000000 f4d19b4 A glibc-RHEL-119390-10.patch +:000000 100644 0000000 c0023ee A glibc-RHEL-119390-11.patch +:000000 100644 0000000 e610d51 A glibc-RHEL-119390-12.patch +:000000 100644 0000000 2758db4 A glibc-RHEL-119390-2.patch +:000000 100644 0000000 fba5e0f A glibc-RHEL-119390-3.patch +:000000 100644 0000000 511d9c2 A glibc-RHEL-119390-4.patch +:000000 100644 0000000 ab7c8c0 A glibc-RHEL-119390-5.patch +:000000 100644 0000000 5f05630 A glibc-RHEL-119390-6.patch +:000000 100644 0000000 bc11f0e A glibc-RHEL-119390-7.patch +:000000 100644 0000000 7dace85 A glibc-RHEL-119390-8.patch +:000000 100644 0000000 a35c862 A glibc-RHEL-119390-9.patch + +commit ec3eae8e16edbf12e0d96c082dd1cc8caaeaceae +Author: DJ Delorie +AuthorDate: Tue Nov 4 17:08:40 2025 -0500 +Commit: DJ Delorie +CommitDate: Wed Nov 5 14:55:33 2025 -0500 + + Extend TLS testing for multi-module and multi-threaded scenarios. (RHEL-119404) + + Resolves: RHEL-119404 + +:000000 100644 0000000 a0fd671 A glibc-RHEL-119404-1.patch + +commit 804ea8f5b402c579e6337a74084a475c4b16f5af +Author: Frédéric Bérat +AuthorDate: Tue Nov 4 15:13:56 2025 +0100 +Commit: Frédéric Bérat +CommitDate: Wed Nov 5 12:20:03 2025 +0000 + + Fix test-assert-2 failure (RHEL-126046) + + Resolves: RHEL-126046 + +:000000 100644 0000000 3233e93 A glibc-RHEL-126046.patch + +commit 9b3349f867fa23240413a5f0d867a813baeeaf08 +Author: Frédéric Bérat +AuthorDate: Tue Nov 4 14:26:15 2025 +0100 +Commit: Frédéric Bérat +CommitDate: Tue Nov 4 14:26:15 2025 +0100 + + Fix lint-Makefile failure (RHEL-126049) + + Resolves: RHEL-126049 + +:000000 100644 0000000 3bdfb8f A glibc-RHEL-126049-1.patch +:000000 100644 0000000 4ea51f1 A glibc-RHEL-126049-2.patch + +commit c3e975cbcf51f834c9b55e6d9d907594b11e856d Author: Florian Weimer AuthorDate: Thu Oct 16 08:48:13 2025 +0200 Commit: Florian Weimer -CommitDate: Thu Nov 6 21:46:43 2025 +0100 +CommitDate: Mon Nov 3 11:33:57 2025 +0100 patch-git: Add auto-generated/ prefix to Source: files This suppresses a centpkg pre-push-check failure. - Resolves: RHEL-126052 + Resolves: RHEL-121748 -:100644 100644 04f201b8 f95800e1 M patch-git.lua +:100644 100644 04f201b f95800e M patch-git.lua -commit 7bd9666bda113d7b6a83646ecb7f519be7ce7cde +commit 0cdd6d71bb41d74c9a61380326cf020053efd9a1 +Author: Frédéric Bérat +AuthorDate: Wed Oct 29 10:48:26 2025 +0100 +Commit: Frédéric Bérat +CommitDate: Thu Oct 30 13:36:52 2025 +0000 + + Fix memory leak in freopen and improve testing + + RPM-Changelog: + - Fix memory leak in freopen, mode flag and wide-oriented stream handling (RHEL-115823) + - Add comprehensive tests and document limitations (RHEL-115823) + Resolves: RHEL-115823 + +:000000 100644 0000000 4f5fec1 A glibc-RHEL-115823-1.patch +:000000 100644 0000000 a97c16a A glibc-RHEL-115823-2.patch +:000000 100644 0000000 b646a53 A glibc-RHEL-115823-3.patch +:000000 100644 0000000 9c17fc2 A glibc-RHEL-115823-4.patch +:000000 100644 0000000 70949cf A glibc-RHEL-115823-5.patch +:000000 100644 0000000 73f83a5 A glibc-RHEL-115823-6.patch +:000000 100644 0000000 8a8a079 A glibc-RHEL-115823-7.patch +:000000 100644 0000000 d65bf05 A glibc-RHEL-115823-8.patch +:000000 100644 0000000 2430cca A glibc-RHEL-115823-9.patch + +commit e97a907db2b8e60fb9129aafb1f7753c627def0f +Author: Frédéric Bérat +AuthorDate: Wed Oct 29 10:01:44 2025 +0100 +Commit: Frédéric Bérat +CommitDate: Wed Oct 29 10:01:44 2025 +0100 + + Add libio test verifying fflush(FILE) and fflush(NULL) semantic equivalence (RHEL-119435) + + Resolves: RHEL-119435 + +:000000 100644 0000000 70c7441 A glibc-RHEL-119435.patch + +commit e594f0dd8e24179409b06614477de0affb956de5 +Author: Patsy Griffin +AuthorDate: Fri Oct 24 15:00:22 2025 -0400 +Commit: Patsy Griffin +CommitDate: Mon Oct 27 21:18:38 2025 -0400 + + manual: Improve documentation of the shutdown function (RHEL-117418) + + Document the SHUT_* constants and attempt to explain the + implications for Linux TCP and UNIX domain sockets. + + Resolves: RHEL-117418 + +:000000 100644 0000000 0a1c55d A glibc-RHEL-117418.patch + +commit d686f6fe8b1f75a3aa74e7de39c082720d00d6db +Author: Frédéric Bérat +AuthorDate: Thu Oct 23 10:18:53 2025 +0200 +Commit: Frédéric Bérat +CommitDate: Thu Oct 23 10:18:53 2025 +0200 + + Fix stdio input stream flushing and positioning behavior (RHEL-119434) + + Resolves: RHEL-119434 + +:000000 100644 0000000 979034d A glibc-RHEL-119434-1.patch +:000000 100644 0000000 26477a0 A glibc-RHEL-119434-2.patch +:000000 100644 0000000 37cd353 A glibc-RHEL-119434-3.patch +:000000 100644 0000000 0e0b8d1 A glibc-RHEL-119434-4.patch +:000000 100644 0000000 59c5844 A glibc-RHEL-119434-5.patch +:000000 100644 0000000 7bda950 A glibc-RHEL-119434-6.patch +:000000 100644 0000000 74b111d A glibc-RHEL-119434-7.patch +:000000 100644 0000000 57ed9d1 A glibc-RHEL-119434-8.patch + +commit 02111ad8a762e3419a7108270c64743483d49609 Author: DJ Delorie -AuthorDate: Mon Oct 13 21:28:25 2025 -0400 +AuthorDate: Mon Oct 20 17:14:26 2025 -0400 Commit: DJ Delorie -CommitDate: Mon Oct 13 21:28:25 2025 -0400 +CommitDate: Wed Oct 22 19:14:06 2025 +0000 - Add rpminspect.yaml with expected failures (RHEL-115505) + assert: Improve POSIX conformance of allocation failure path (RHEL-119422) - Resolves: RHEL-115505 - RPM-Skip-Release: yes + Resolves: RHEL-119422 + +:000000 100644 0000000 6e8de49 A glibc-RHEL-119422-1.patch +:000000 100644 0000000 a740b14 A glibc-RHEL-119422-2.patch +:000000 100644 0000000 c1c5f9b A glibc-RHEL-119422-3.patch + +commit 808ff574ad910982250a3ed0c1a1cc4c0819de37 +Author: Frédéric Bérat +AuthorDate: Tue Oct 21 11:41:31 2025 +0200 +Commit: Frédéric Bérat +CommitDate: Wed Oct 22 11:55:26 2025 +0200 + + stdio: Guarantee ungetc single char pushback with FILE struct buffer (RHEL-119409) + + Resolves: RHEL-119409 + +:000000 100644 0000000 de415c9 A glibc-RHEL-119409-1.patch +:000000 100644 0000000 fa65d58 A glibc-RHEL-119409-2.patch +:000000 100644 0000000 f281289 A glibc-RHEL-119409-3.patch +:000000 100644 0000000 de70dfb A glibc-RHEL-119409-4.patch +:000000 100644 0000000 1ce6d10 A glibc-RHEL-119409-5.patch +:000000 100644 0000000 8af26de A glibc.abignore +:100644 100644 24a4975 3602cc9 M glibc.spec +:100644 100644 a15fc09 1855573 M rpminspect.yaml + +commit bff8e70b16bf68e74178f692ba9a48e83b7afe85 +Author: Frédéric Bérat +AuthorDate: Thu Oct 16 10:30:01 2025 +0200 +Commit: Frédéric Bérat +CommitDate: Thu Oct 16 10:30:01 2025 +0200 + + Add tests of time, gettimeofday, clock_gettime (RHEL-119386) + + Resolves: RHEL-119386 + +:000000 100644 0000000 359be3f A glibc-RHEL-119386-1.patch +:000000 100644 0000000 6c39662 A glibc-RHEL-119386-2.patch +:000000 100644 0000000 a7f3320 A glibc-RHEL-119386-3.patch + +commit 18d86a450ad9b390cf1d8eb63ad5adecfed79266 +Author: Frédéric Bérat +AuthorDate: Tue Oct 7 11:15:53 2025 +0200 +Commit: Frédéric Bérat +CommitDate: Mon Oct 13 14:27:58 2025 +0200 + + Add test for pthread_getcpuclockid function (RHEL-119400) + + Resolves: RHEL-119400 + +:000000 100644 0000000 32da474 A glibc-RHEL-119400-1.patch +:000000 100644 0000000 49bee5c A glibc-RHEL-119400-2.patch + +commit 1c8abf48ab093c5f2603a943e425dc78f4a1ebff +Author: Frédéric Bérat +AuthorDate: Tue Oct 7 11:44:38 2025 +0200 +Commit: Frédéric Bérat +CommitDate: Wed Oct 8 08:55:56 2025 +0000 + + Extend sem_trywait testing with a threaded test (RHEL-119403) + + Resolves: RHEL-119403 + +:000000 100644 0000000 3633ba3 A glibc-RHEL-119403.patch + +commit fd242e7aaeeee210358acda9b7f25771f701c5aa +Author: Frédéric Bérat +AuthorDate: Tue Oct 7 11:19:51 2025 +0200 +Commit: Frédéric Bérat +CommitDate: Wed Oct 8 05:45:36 2025 +0000 + + sem_open: Avoid uninitialized result for non-existent files (RHEL-119392) + + Resolves: RHEL-119392 + +:000000 100644 0000000 8d32df9 A glibc-RHEL-119392-1.patch +:000000 100644 0000000 d72cb62 A glibc-RHEL-119392-2.patch + +commit ac4d98ccf57faeaae3cca7d3e9e17d1fd96d0828 +Author: Arjun Shankar +AuthorDate: Tue Oct 7 15:30:30 2025 +0200 +Commit: Arjun Shankar +CommitDate: Tue Oct 7 15:41:12 2025 +0200 + + test-bz22786: Mark UNSUPPORTED on low memory systems (RHEL-119657) + + Resolves: RHEL-119657 + +:000000 100644 0000000 35838c8 A glibc-RHEL-119657-1.patch +:000000 100644 0000000 01145d9 A glibc-RHEL-119657-2.patch + +commit 9c81ff69adb4fa7c1b0ba5de6a17784db1ed1f40 +Author: Arjun Shankar +AuthorDate: Mon Oct 6 15:28:25 2025 +0200 +Commit: Arjun Shankar +CommitDate: Mon Oct 6 15:29:30 2025 +0200 + + libio: Add new tests for fclose on an unopened file (RHEL-115820) + + Resolves: RHEL-115820 + +:000000 100644 0000000 6ffdbe5 A glibc-RHEL-115820-1.patch +:000000 100644 0000000 74afe9c A glibc-RHEL-115820-2.patch + +commit 6973ecc6b03caaf61efe78374303c9b411d79e4d +Author: Frédéric Bérat +AuthorDate: Fri Oct 3 15:44:27 2025 +0200 +Commit: Frédéric Bérat +CommitDate: Fri Oct 3 15:44:27 2025 +0200 + + pthread_timedjoin_np, pthread_clockjoin_np: Validate time arguments (RHEL-115825) + + Resolves: RHEL-115825 + +:000000 100644 0000000 544e287 A glibc-RHEL-115825.patch + +commit d01369479c4de74e320e19bb41751cc03a2f3f6a +Author: DJ Delorie +AuthorDate: Wed Oct 1 16:16:58 2025 -0400 +Commit: DJ Delorie +CommitDate: Wed Oct 1 16:16:58 2025 -0400 + + manual: Explain our implementation-defined memstream semantics (RHEL-65838) + + Resolves: RHEL-65838 + +:000000 100644 0000000 8f6c6ea A glibc-RHEL-65383.patch + +commit 3a6256d93527f3a44af314a9a0d24f0b3e2ecb2d +Author: DJ Delorie +AuthorDate: Tue Sep 23 13:19:16 2025 -0400 +Commit: DJ Delorie +CommitDate: Tue Sep 30 16:07:41 2025 -0400 + + rpminspect.yaml: note that glibc-minimal-langpack is empty (RHEL-116641) + + This fixes the "continues to be empty" VERIFY from rpminspect. + + Support for this was added by: + https://github.com/rpminspect/rpminspect/issues/1518 + + Resolves: RHEL-116641 RPM-Changelog: - + RPM-Skip-Release: yes -:000000 100644 00000000 a15fc097 A rpminspect.yaml +:100644 100644 3829b88 a15fc09 M rpminspect.yaml -commit 28b066739498ca497d41d1cf613840612551b5de +commit 1e958220ab67bef3b4a066e5821e68ff1804af45 +Author: DJ Delorie +AuthorDate: Tue Sep 23 13:01:59 2025 -0400 +Commit: DJ Delorie +CommitDate: Wed Sep 24 21:19:40 2025 +0000 + + libio: asprintf should write NULL upon failure (RHEL-72244) + + Resolves: RHEL-72244 + +:000000 100644 0000000 05c0649 A glibc-RHEL-72244.patch + +commit 7ef0dba232ea23ba51de53cf4838640fa1c55c7c +Author: Frédéric Bérat +AuthorDate: Tue Sep 23 09:10:42 2025 +0200 +Commit: Frédéric Bérat +CommitDate: Wed Sep 24 06:08:12 2025 +0000 + + Extend getline testing (RHEL-115819) + + Resolves: RHEL-115819 + +:000000 100644 0000000 d28762e A glibc-RHEL-115819-1.patch +:000000 100644 0000000 33ae6ce A glibc-RHEL-115819-2.patch + +commit e95aa14bd2498d13b32c4aff9aec547a17acb010 Author: Florian Weimer -AuthorDate: Wed Sep 24 11:46:22 2025 +0200 +AuthorDate: Tue Sep 23 10:02:55 2025 +0200 Commit: Florian Weimer -CommitDate: Wed Sep 24 11:46:22 2025 +0200 +CommitDate: Tue Sep 23 15:10:19 2025 +0000 - patch-git: Import from rhel-10-main and turn on + patch-git: Changelog formatting updates (RHEL-111490) - Sync patch-git.lua, CONTRIBUTING.md, .gitignore with - commit e95aa14bd2498d13b32c4aff9aec547a17acb010 from rhel-10-main. + Long lines in changelogs are now word-wrapped automatically, unless + the changelog is explicitly formatted using "- " lines. - Update glibc.spec to auto-generate version, release patch list, - and changelog. + RPM-Changelog: - + RPM-Skip-Release: yes + Related: RHEL-111490 + +:100644 100644 1166500 dfe9c39 M CONTRIBUTING.md +:100644 100644 f5f7637 04f201b M patch-git.lua + +commit a243a59e4e6f9fa22e8bc96654818659ca664a2b +Author: Florian Weimer +AuthorDate: Tue Sep 23 10:02:55 2025 +0200 +Commit: Florian Weimer +CommitDate: Tue Sep 23 15:10:19 2025 +0000 + + patch-git: Add assert_eq function for internal testing - Resolves: RHEL-117053 - Parent: 4531d656b8b29486787b7ba922d70fcc14cf1182 + RPM-Changelog: - + RPM-Skip-Release: yes + Related: RHEL-111490 + +:100644 100644 6223f6d f5f7637 M patch-git.lua + +commit 6894c74dd11a640d135be9c96de287a09bd92b86 +Author: Florian Weimer +AuthorDate: Tue Sep 23 10:17:09 2025 +0200 +Commit: Florian Weimer +CommitDate: Tue Sep 23 15:10:19 2025 +0000 + + patch-git: The emit_patchlist function should be local + + Found by looking at: + + luac -l -l patch-git.lua | grep -o '_ENV.*' | sort -u + + RPM-Changelog: - + RPM-Skip-Release: yes + Related: RHEL-111490 + +:100644 100644 edb2cd7 6223f6d M patch-git.lua + +commit cf728b3d9fa08025b377f44daa1ca2f655b90f95 +Author: Florian Weimer +AuthorDate: Tue Sep 23 12:18:10 2025 +0200 +Commit: Florian Weimer +CommitDate: Tue Sep 23 12:18:10 2025 +0200 + + patch-git: Add build instructions + + Using rpm -i may not work as expected if $HOME/rpmbuild is not + empty. Recommend to use mock or build directly out of dist-git + instead. + + RPM-Changelog: - + RPM-Skip-Release: yes + Related: RHEL-111490 + +:100644 100644 3702777 1166500 M CONTRIBUTING.md + +commit 428f8d6f99c27d0152c509f9a71d89a1a415f6a7 +Author: Frédéric Bérat +AuthorDate: Fri Sep 19 11:57:24 2025 +0200 +Commit: Frédéric Bérat +CommitDate: Mon Sep 22 17:01:30 2025 +0200 + + Implement _FORTIFY_SOURCE for inet_ntop and inet_pton (RHEL-111115) + + Resolves: RHEL-111115 + +:000000 100644 0000000 32e48af A glibc-RHEL-111115-1.patch +:000000 100644 0000000 ca6bade A glibc-RHEL-111115-2.patch +:000000 100644 0000000 c230044 A glibc-RHEL-111115-3.patch +:000000 100644 0000000 09a32a9 A glibc-RHEL-111115-4.patch +:000000 100644 0000000 585e570 A glibc-RHEL-111115-5.patch +:000000 100644 0000000 d8232fc A glibc-RHEL-111115-6.patch + +commit df55530e131e3faf6a7224108b16191cab254908 +Author: Arjun Shankar +AuthorDate: Fri Sep 19 15:19:29 2025 +0200 +Commit: Arjun Shankar +CommitDate: Fri Sep 19 19:50:15 2025 +0200 + + nss: Fix incorrect/empty results when merging groups (RHEL-114265) + + Resolves: RHEL-114265 + +:000000 100644 0000000 15cf58d A glibc-RHEL-114265.patch + +commit e06f84e64bbbdb863631f267e60a1176a10a54ac +Author: Frédéric Bérat +AuthorDate: Fri Sep 19 12:51:33 2025 +0200 +Commit: Frédéric Bérat +CommitDate: Fri Sep 19 14:41:14 2025 +0000 + + x86-64: Unconditionally run elf/check-dt-x86-64-plt test (RHEL-113195) + + Resolves: RHEL-113195 + +:000000 100644 0000000 3df6ea0 A glibc-RHEL-113196.patch + +commit 3b4a80c65eec61a18613dc4fa61058274d9ff4b7 +Author: Frédéric Bérat +AuthorDate: Fri Sep 19 13:11:28 2025 +0200 +Commit: Frédéric Bérat +CommitDate: Fri Sep 19 13:11:28 2025 +0200 + + Fix `readdir_r` error reporting and `readdir64_r` entry handling, extend `dirent` testing. (RHEL-111120) + + Resolves: RHEL-111120 + +:000000 100644 0000000 5572370 A glibc-RHEL-111120-1.patch +:000000 100644 0000000 8ff604a A glibc-RHEL-111120-2.patch +:000000 100644 0000000 667693e A glibc-RHEL-111120-3.patch +:000000 100644 0000000 a4ccf82 A glibc-RHEL-111120-4.patch +:000000 100644 0000000 967ae12 A glibc-RHEL-111120-5.patch +:000000 100644 0000000 dba5d06 A glibc-RHEL-111120-6.patch +:000000 100644 0000000 ea989a2 A glibc-RHEL-111120-7.patch +:000000 100644 0000000 017d79c A glibc-RHEL-111120-8.patch +:000000 100644 0000000 ed88574 A glibc-RHEL-111120-9.patch + +commit 637af31dc7ad78be8034470a04888d48458d9d18 +Author: Frédéric Bérat +AuthorDate: Tue Sep 16 13:18:43 2025 +0200 +Commit: Frédéric Bérat +CommitDate: Tue Sep 16 13:19:48 2025 +0200 + + Enable concurrent exit, quick_exit calls to prevent races (RHEL-111117) + + Resolves: RHEL-111117 + +:000000 100644 0000000 542e89b A glibc-RHEL-111117-1.patch +:000000 100644 0000000 7cfb43b A glibc-RHEL-111117-2.patch + +commit c72dda3ac87aa7c114cf7675d440dab288295062 +Author: DJ Delorie +AuthorDate: Thu Aug 21 14:13:20 2025 -0400 +Commit: DJ Delorie +CommitDate: Fri Sep 12 12:17:45 2025 -0400 + + Add rpminspect.yaml with expected failures (RHEL-86590) + + Resolves: RHEL-86590 + +:000000 100644 0000000 3829b88 A rpminspect.yaml + +commit d88424cfecb4e295dcfeb6085d4eadedbfca6c8d +Author: Florian Weimer +AuthorDate: Wed Sep 10 18:10:09 2025 +0200 +Commit: Florian Weimer +CommitDate: Wed Sep 10 18:48:58 2025 +0200 + + patch-git: Do not use --filter with --unshallow on old git versions + + Before git 2.28, --filter cannot be used if the clone did not use + it. + + Related: RHEL-111490 + +:100644 100644 6f3d230 edb2cd7 M patch-git.lua + +commit df18ac835e61211d81026ef7f6c711e8e5f63111 +Author: Florian Weimer +AuthorDate: Tue Aug 19 20:18:30 2025 +0200 +Commit: Florian Weimer +CommitDate: Tue Sep 9 17:26:56 2025 +0200 + + Switch to patch-git + + After this, patch order follows commit order. As a result, + some early patches get reordered from + + Patch4: glibc-fedora-linux-tcsetattr.patch + Patch8: glibc-fedora-manual-dircategory.patch + Patch9: glibc-rh827510.patch + Patch13: glibc-fedora-localedata-rh61908.patch + Patch17: glibc-cs-path.patch + Patch23: glibc-python3.patch + Patch24: glibc-upstream-2.39-1.patch + + to: + + Patch1: glibc-rh827510.patch + Patch2: glibc-fedora-linux-tcsetattr.patch + Patch3: glibc-fedora-localedata-rh61908.patch + Patch4: glibc-fedora-manual-dircategory.patch + Patch5: glibc-cs-path.patch + Patch6: glibc-python3.patch + Patch7: glibc-upstream-2.39-1.patch + + This still produces the same tree, so the reordering is harmless. + + Resolves: RHEL-111490 + Parent: 92dfd986b2f2c697144be2ebe10a27d72c660ba4 Patch-Git-Version: 1 RPM-Version: 2.39 - RPM-Release: 58%{?dist}.2 - RPM-Branch-Type: zstream + RPM-Release: 60%{?dist} RPM-Changelog-Stop: yes -:100644 100644 7a730813 b90bfc67 M .gitignore -:000000 100644 00000000 dfe9c399 A CONTRIBUTING.md -:100644 100644 22275238 d28ea80d M glibc.spec -:000000 100644 00000000 04f201b8 A patch-git.lua +:100644 100644 7a73081 b90bfc6 M .gitignore +:000000 100644 0000000 3702777 A CONTRIBUTING.md +:100644 100644 f0f3485 24a4975 M glibc.spec +:000000 100644 0000000 6f3d230 A patch-git.lua -commit 4531d656b8b29486787b7ba922d70fcc14cf1182 -Author: Frédéric Bérat -AuthorDate: Fri Sep 19 15:13:24 2025 +0200 -Commit: Frédéric Bérat -CommitDate: Tue Sep 23 08:07:55 2025 +0200 - - x86-64: Unconditionally run elf/check-dt-x86-64-plt ABI test - - - Backport: x86_64: Unconditionally run test elf/check-dt-x86-64-plt - - Resolves: RHEL-113196 - -:000000 100644 00000000 3df6ea01 A glibc-RHEL-113196.patch -:100644 100644 0f149941 22275238 M glibc.spec - -commit cf4200f6dd4dc5b1d6250fc13d02be2b973774f3 +commit 92dfd986b2f2c697144be2ebe10a27d72c660ba4 Author: Arjun Shankar -AuthorDate: Mon Sep 22 15:45:12 2025 +0200 +AuthorDate: Tue Aug 26 12:31:04 2025 +0200 Commit: Arjun Shankar -CommitDate: Mon Sep 22 15:45:12 2025 +0200 +CommitDate: Tue Aug 26 12:31:04 2025 +0200 - nss: Fix incorrect/empty results when merging groups (RHEL-114264) + glibc-locale-source: Require gzip to handle compressed charmaps (RHEL-102553) - Resolves: RHEL-114264 + Resolves: RHEL-102553 -:000000 100644 00000000 a7b0130f A glibc-RHEL-114264.patch -:100644 100644 13041732 0f149941 M glibc.spec +:100644 100644 1304173 f0f3485 M glibc.spec commit f30223ea76f6fcee96dac3b294d4afc77c59ecc8 Author: Florian Weimer @@ -177,7 +1311,7 @@ CommitDate: Thu Aug 21 14:15:05 2025 +0200 Resolves: RHEL-110559 -:100644 100644 827b2d5f 13041732 M glibc.spec +:100644 100644 827b2d5 1304173 M glibc.spec commit 53f4d259fab007dbb905e634df73f4d867492506 Author: Arjun Shankar @@ -219,49 +1353,49 @@ CommitDate: Thu Aug 21 10:25:39 2025 +0200 Resolves: RHEL-109702 Resolves: RHEL-109703 -:000000 100644 00000000 17ed68ba A glibc-upstream-2.39-213.patch -:000000 100644 00000000 d4732e88 A glibc-upstream-2.39-214.patch -:000000 100644 00000000 75c81e82 A glibc-upstream-2.39-215.patch -:000000 100644 00000000 027370df A glibc-upstream-2.39-216.patch -:000000 100644 00000000 b1850663 A glibc-upstream-2.39-217.patch -:000000 100644 00000000 0318190e A glibc-upstream-2.39-218.patch -:000000 100644 00000000 f2ea96e6 A glibc-upstream-2.39-219.patch -:000000 100644 00000000 d4cd8f95 A glibc-upstream-2.39-220.patch -:000000 100644 00000000 e1b3b2e6 A glibc-upstream-2.39-221.patch -:000000 100644 00000000 ad625e71 A glibc-upstream-2.39-222.patch -:000000 100644 00000000 7cbb71b1 A glibc-upstream-2.39-223.patch -:000000 100644 00000000 9b9edbd4 A glibc-upstream-2.39-224.patch -:000000 100644 00000000 fa133fae A glibc-upstream-2.39-225.patch -:000000 100644 00000000 6d2dc6dd A glibc-upstream-2.39-228.patch -:000000 100644 00000000 914735e3 A glibc-upstream-2.39-229.patch -:000000 100644 00000000 20ab3452 A glibc-upstream-2.39-230.patch -:000000 100644 00000000 328ae5cd A glibc-upstream-2.39-231.patch -:000000 100644 00000000 2b9f507d A glibc-upstream-2.39-232.patch -:000000 100644 00000000 d3aee3fc A glibc-upstream-2.39-233.patch -:000000 100644 00000000 fccdb50d A glibc-upstream-2.39-234.patch -:000000 100644 00000000 829d0520 A glibc-upstream-2.39-235.patch -:000000 100644 00000000 f6bc066d A glibc-upstream-2.39-236.patch -:000000 100644 00000000 89b9b066 A glibc-upstream-2.39-237.patch -:000000 100644 00000000 7045d708 A glibc-upstream-2.39-238.patch -:000000 100644 00000000 03526bf9 A glibc-upstream-2.39-239.patch -:000000 100644 00000000 aea3c22f A glibc-upstream-2.39-240.patch -:000000 100644 00000000 ecdd6c95 A glibc-upstream-2.39-241.patch -:000000 100644 00000000 e735d129 A glibc-upstream-2.39-242.patch -:000000 100644 00000000 277509b0 A glibc-upstream-2.39-243.patch -:000000 100644 00000000 8bae1681 A glibc-upstream-2.39-244.patch -:000000 100644 00000000 79fca893 A glibc-upstream-2.39-245.patch -:000000 100644 00000000 ef0e2165 A glibc-upstream-2.39-246.patch -:000000 100644 00000000 c179dc48 A glibc-upstream-2.39-247.patch -:000000 100644 00000000 b270bf2c A glibc-upstream-2.39-248.patch -:000000 100644 00000000 fdfb7a2b A glibc-upstream-2.39-249.patch -:000000 100644 00000000 bede83b4 A glibc-upstream-2.39-250.patch -:000000 100644 00000000 ede1711b A glibc-upstream-2.39-251.patch -:000000 100644 00000000 9ef5193a A glibc-upstream-2.39-252.patch -:000000 100644 00000000 19ae42ac A glibc-upstream-2.39-253.patch -:000000 100644 00000000 8226a1c9 A glibc-upstream-2.39-256.patch -:000000 100644 00000000 01f5fcd9 A glibc-upstream-2.39-257.patch -:000000 100644 00000000 52a8a0fb A glibc-upstream-2.39-258.patch -:100644 100644 7cd0ac9a 827b2d5f M glibc.spec +:000000 100644 0000000 17ed68b A glibc-upstream-2.39-213.patch +:000000 100644 0000000 d4732e8 A glibc-upstream-2.39-214.patch +:000000 100644 0000000 75c81e8 A glibc-upstream-2.39-215.patch +:000000 100644 0000000 027370d A glibc-upstream-2.39-216.patch +:000000 100644 0000000 b185066 A glibc-upstream-2.39-217.patch +:000000 100644 0000000 0318190 A glibc-upstream-2.39-218.patch +:000000 100644 0000000 f2ea96e A glibc-upstream-2.39-219.patch +:000000 100644 0000000 d4cd8f9 A glibc-upstream-2.39-220.patch +:000000 100644 0000000 e1b3b2e A glibc-upstream-2.39-221.patch +:000000 100644 0000000 ad625e7 A glibc-upstream-2.39-222.patch +:000000 100644 0000000 7cbb71b A glibc-upstream-2.39-223.patch +:000000 100644 0000000 9b9edbd A glibc-upstream-2.39-224.patch +:000000 100644 0000000 fa133fa A glibc-upstream-2.39-225.patch +:000000 100644 0000000 6d2dc6d A glibc-upstream-2.39-228.patch +:000000 100644 0000000 914735e A glibc-upstream-2.39-229.patch +:000000 100644 0000000 20ab345 A glibc-upstream-2.39-230.patch +:000000 100644 0000000 328ae5c A glibc-upstream-2.39-231.patch +:000000 100644 0000000 2b9f507 A glibc-upstream-2.39-232.patch +:000000 100644 0000000 d3aee3f A glibc-upstream-2.39-233.patch +:000000 100644 0000000 fccdb50 A glibc-upstream-2.39-234.patch +:000000 100644 0000000 829d052 A glibc-upstream-2.39-235.patch +:000000 100644 0000000 f6bc066 A glibc-upstream-2.39-236.patch +:000000 100644 0000000 89b9b06 A glibc-upstream-2.39-237.patch +:000000 100644 0000000 7045d70 A glibc-upstream-2.39-238.patch +:000000 100644 0000000 03526bf A glibc-upstream-2.39-239.patch +:000000 100644 0000000 aea3c22 A glibc-upstream-2.39-240.patch +:000000 100644 0000000 ecdd6c9 A glibc-upstream-2.39-241.patch +:000000 100644 0000000 e735d12 A glibc-upstream-2.39-242.patch +:000000 100644 0000000 277509b A glibc-upstream-2.39-243.patch +:000000 100644 0000000 8bae168 A glibc-upstream-2.39-244.patch +:000000 100644 0000000 79fca89 A glibc-upstream-2.39-245.patch +:000000 100644 0000000 ef0e216 A glibc-upstream-2.39-246.patch +:000000 100644 0000000 c179dc4 A glibc-upstream-2.39-247.patch +:000000 100644 0000000 b270bf2 A glibc-upstream-2.39-248.patch +:000000 100644 0000000 fdfb7a2 A glibc-upstream-2.39-249.patch +:000000 100644 0000000 bede83b A glibc-upstream-2.39-250.patch +:000000 100644 0000000 ede1711 A glibc-upstream-2.39-251.patch +:000000 100644 0000000 9ef5193 A glibc-upstream-2.39-252.patch +:000000 100644 0000000 19ae42a A glibc-upstream-2.39-253.patch +:000000 100644 0000000 8226a1c A glibc-upstream-2.39-256.patch +:000000 100644 0000000 01f5fcd A glibc-upstream-2.39-257.patch +:000000 100644 0000000 52a8a0f A glibc-upstream-2.39-258.patch +:100644 100644 7cd0ac9 827b2d5 M glibc.spec commit 9c6db562f14aa25c114fe3293cf65aa53a16c37e Author: Arjun Shankar @@ -273,21 +1407,21 @@ CommitDate: Tue Aug 19 10:10:08 2025 +0200 Resolves: RHEL-108823 -:000000 100644 00000000 523f4cb4 A glibc-RHEL-108823-1.patch -:000000 100644 00000000 3795764b A glibc-RHEL-108823-10.patch -:000000 100644 00000000 bd288f74 A glibc-RHEL-108823-11.patch -:000000 100644 00000000 51097ab5 A glibc-RHEL-108823-12.patch -:000000 100644 00000000 9d43247a A glibc-RHEL-108823-13.patch -:000000 100644 00000000 ee16c69b A glibc-RHEL-108823-14.patch -:000000 100644 00000000 9b7c5592 A glibc-RHEL-108823-2.patch -:000000 100644 00000000 b5e48ab5 A glibc-RHEL-108823-3.patch -:000000 100644 00000000 32360018 A glibc-RHEL-108823-4.patch -:000000 100644 00000000 aa39f6c8 A glibc-RHEL-108823-5.patch -:000000 100644 00000000 a86174b9 A glibc-RHEL-108823-6.patch -:000000 100644 00000000 bdbe8406 A glibc-RHEL-108823-7.patch -:000000 100644 00000000 c967f2b5 A glibc-RHEL-108823-8.patch -:000000 100644 00000000 03dce5df A glibc-RHEL-108823-9.patch -:100644 100644 5e82c9c5 7cd0ac9a M glibc.spec +:000000 100644 0000000 523f4cb A glibc-RHEL-108823-1.patch +:000000 100644 0000000 3795764 A glibc-RHEL-108823-10.patch +:000000 100644 0000000 bd288f7 A glibc-RHEL-108823-11.patch +:000000 100644 0000000 51097ab A glibc-RHEL-108823-12.patch +:000000 100644 0000000 9d43247 A glibc-RHEL-108823-13.patch +:000000 100644 0000000 ee16c69 A glibc-RHEL-108823-14.patch +:000000 100644 0000000 9b7c559 A glibc-RHEL-108823-2.patch +:000000 100644 0000000 b5e48ab A glibc-RHEL-108823-3.patch +:000000 100644 0000000 3236001 A glibc-RHEL-108823-4.patch +:000000 100644 0000000 aa39f6c A glibc-RHEL-108823-5.patch +:000000 100644 0000000 a86174b A glibc-RHEL-108823-6.patch +:000000 100644 0000000 bdbe840 A glibc-RHEL-108823-7.patch +:000000 100644 0000000 c967f2b A glibc-RHEL-108823-8.patch +:000000 100644 0000000 03dce5d A glibc-RHEL-108823-9.patch +:100644 100644 5e82c9c 7cd0ac9 M glibc.spec commit ca8e2eea5041e7ba1e533fb6fa2a81a6864c8f97 Author: Arjun Shankar @@ -299,41 +1433,41 @@ CommitDate: Thu Aug 14 11:21:59 2025 +0200 Resolves: RHEL-108974 -:000000 100644 00000000 5608e8ed A glibc-RHEL-108974-1.patch -:000000 100644 00000000 700841f7 A glibc-RHEL-108974-10.patch -:000000 100644 00000000 e9e4d118 A glibc-RHEL-108974-11.patch -:000000 100644 00000000 e5043136 A glibc-RHEL-108974-12.patch -:000000 100644 00000000 73762e44 A glibc-RHEL-108974-13.patch -:000000 100644 00000000 3ff468d1 A glibc-RHEL-108974-14.patch -:000000 100644 00000000 ca629f25 A glibc-RHEL-108974-15.patch -:000000 100644 00000000 69d20b9f A glibc-RHEL-108974-16.patch -:000000 100644 00000000 7e2532fc A glibc-RHEL-108974-17.patch -:000000 100644 00000000 61b300e8 A glibc-RHEL-108974-18.patch -:000000 100644 00000000 3475b313 A glibc-RHEL-108974-19.patch -:000000 100644 00000000 093af880 A glibc-RHEL-108974-2.patch -:000000 100644 00000000 f94124fe A glibc-RHEL-108974-20.patch -:000000 100644 00000000 cbcf6943 A glibc-RHEL-108974-21.patch -:000000 100644 00000000 8fac7124 A glibc-RHEL-108974-22.patch -:000000 100644 00000000 fac9b8c1 A glibc-RHEL-108974-23.patch -:000000 100644 00000000 834d1823 A glibc-RHEL-108974-24.patch -:000000 100644 00000000 54b66c99 A glibc-RHEL-108974-25.patch -:000000 100644 00000000 e2d1a64b A glibc-RHEL-108974-26.patch -:000000 100644 00000000 665ff172 A glibc-RHEL-108974-27.patch -:000000 100644 00000000 cf8f2094 A glibc-RHEL-108974-28.patch -:000000 100644 00000000 2f536911 A glibc-RHEL-108974-29.patch -:000000 100644 00000000 aea3b562 A glibc-RHEL-108974-3.patch -:000000 100644 00000000 1fc1bb80 A glibc-RHEL-108974-30.patch -:000000 100644 00000000 cd96eb5f A glibc-RHEL-108974-31.patch -:000000 100644 00000000 6fc1c7b3 A glibc-RHEL-108974-32.patch -:000000 100644 00000000 cf770e4c A glibc-RHEL-108974-33.patch -:000000 100644 00000000 fa83a4c1 A glibc-RHEL-108974-34.patch -:000000 100644 00000000 cbb1d58a A glibc-RHEL-108974-4.patch -:000000 100644 00000000 1ef6c353 A glibc-RHEL-108974-5.patch -:000000 100644 00000000 0d5ec50d A glibc-RHEL-108974-6.patch -:000000 100644 00000000 7606d746 A glibc-RHEL-108974-7.patch -:000000 100644 00000000 96e29629 A glibc-RHEL-108974-8.patch -:000000 100644 00000000 66bb23f6 A glibc-RHEL-108974-9.patch -:100644 100644 99be6e28 5e82c9c5 M glibc.spec +:000000 100644 0000000 5608e8e A glibc-RHEL-108974-1.patch +:000000 100644 0000000 700841f A glibc-RHEL-108974-10.patch +:000000 100644 0000000 e9e4d11 A glibc-RHEL-108974-11.patch +:000000 100644 0000000 e504313 A glibc-RHEL-108974-12.patch +:000000 100644 0000000 73762e4 A glibc-RHEL-108974-13.patch +:000000 100644 0000000 3ff468d A glibc-RHEL-108974-14.patch +:000000 100644 0000000 ca629f2 A glibc-RHEL-108974-15.patch +:000000 100644 0000000 69d20b9 A glibc-RHEL-108974-16.patch +:000000 100644 0000000 7e2532f A glibc-RHEL-108974-17.patch +:000000 100644 0000000 61b300e A glibc-RHEL-108974-18.patch +:000000 100644 0000000 3475b31 A glibc-RHEL-108974-19.patch +:000000 100644 0000000 093af88 A glibc-RHEL-108974-2.patch +:000000 100644 0000000 f94124f A glibc-RHEL-108974-20.patch +:000000 100644 0000000 cbcf694 A glibc-RHEL-108974-21.patch +:000000 100644 0000000 8fac712 A glibc-RHEL-108974-22.patch +:000000 100644 0000000 fac9b8c A glibc-RHEL-108974-23.patch +:000000 100644 0000000 834d182 A glibc-RHEL-108974-24.patch +:000000 100644 0000000 54b66c9 A glibc-RHEL-108974-25.patch +:000000 100644 0000000 e2d1a64 A glibc-RHEL-108974-26.patch +:000000 100644 0000000 665ff17 A glibc-RHEL-108974-27.patch +:000000 100644 0000000 cf8f209 A glibc-RHEL-108974-28.patch +:000000 100644 0000000 2f53691 A glibc-RHEL-108974-29.patch +:000000 100644 0000000 aea3b56 A glibc-RHEL-108974-3.patch +:000000 100644 0000000 1fc1bb8 A glibc-RHEL-108974-30.patch +:000000 100644 0000000 cd96eb5 A glibc-RHEL-108974-31.patch +:000000 100644 0000000 6fc1c7b A glibc-RHEL-108974-32.patch +:000000 100644 0000000 cf770e4 A glibc-RHEL-108974-33.patch +:000000 100644 0000000 fa83a4c A glibc-RHEL-108974-34.patch +:000000 100644 0000000 cbb1d58 A glibc-RHEL-108974-4.patch +:000000 100644 0000000 1ef6c35 A glibc-RHEL-108974-5.patch +:000000 100644 0000000 0d5ec50 A glibc-RHEL-108974-6.patch +:000000 100644 0000000 7606d74 A glibc-RHEL-108974-7.patch +:000000 100644 0000000 96e2962 A glibc-RHEL-108974-8.patch +:000000 100644 0000000 66bb23f A glibc-RHEL-108974-9.patch +:100644 100644 99be6e2 5e82c9c M glibc.spec commit d19eb7001321115280e6f8f448ed4fa74ab1b134 Author: Frédéric Bérat @@ -349,9 +1483,9 @@ CommitDate: Mon Aug 11 14:28:18 2025 +0200 Resolves: RHEL-108475 -:000000 100644 00000000 30eb2de7 A glibc-RHEL-108475-1.patch -:000000 100644 00000000 a6aa7417 A glibc-RHEL-108475-2.patch -:100644 100644 895d9780 99be6e28 M glibc.spec +:000000 100644 0000000 30eb2de A glibc-RHEL-108475-1.patch +:000000 100644 0000000 a6aa741 A glibc-RHEL-108475-2.patch +:100644 100644 895d978 99be6e2 M glibc.spec commit 46a31fdf250a30ae96c082376a8eab95252762c0 Author: Frédéric Bérat @@ -384,26 +1518,26 @@ CommitDate: Fri Aug 8 10:42:54 2025 +0200 Resolves: RHEL-107695 -:000000 100644 00000000 ad3ab8ff A glibc-RHEL-107695-1.patch -:000000 100644 00000000 740e1d17 A glibc-RHEL-107695-10.patch -:000000 100644 00000000 9d10c111 A glibc-RHEL-107695-11.patch -:000000 100644 00000000 c59be2aa A glibc-RHEL-107695-12.patch -:000000 100644 00000000 4a454281 A glibc-RHEL-107695-13.patch -:000000 100644 00000000 2045994f A glibc-RHEL-107695-14.patch -:000000 100644 00000000 95486471 A glibc-RHEL-107695-15.patch -:000000 100644 00000000 d87bf943 A glibc-RHEL-107695-16.patch -:000000 100644 00000000 b763fdf4 A glibc-RHEL-107695-17.patch -:000000 100644 00000000 8a4fd970 A glibc-RHEL-107695-18.patch -:000000 100644 00000000 6863f453 A glibc-RHEL-107695-19.patch -:000000 100644 00000000 c5668abb A glibc-RHEL-107695-2.patch -:000000 100644 00000000 f799f2f3 A glibc-RHEL-107695-3.patch -:000000 100644 00000000 86a7a48e A glibc-RHEL-107695-4.patch -:000000 100644 00000000 3a715a66 A glibc-RHEL-107695-5.patch -:000000 100644 00000000 b30572d7 A glibc-RHEL-107695-6.patch -:000000 100644 00000000 b7976300 A glibc-RHEL-107695-7.patch -:000000 100644 00000000 f8a2b97f A glibc-RHEL-107695-8.patch -:000000 100644 00000000 10a864da A glibc-RHEL-107695-9.patch -:100644 100644 1977d97b 895d9780 M glibc.spec +:000000 100644 0000000 ad3ab8f A glibc-RHEL-107695-1.patch +:000000 100644 0000000 740e1d1 A glibc-RHEL-107695-10.patch +:000000 100644 0000000 9d10c11 A glibc-RHEL-107695-11.patch +:000000 100644 0000000 c59be2a A glibc-RHEL-107695-12.patch +:000000 100644 0000000 4a45428 A glibc-RHEL-107695-13.patch +:000000 100644 0000000 2045994 A glibc-RHEL-107695-14.patch +:000000 100644 0000000 9548647 A glibc-RHEL-107695-15.patch +:000000 100644 0000000 d87bf94 A glibc-RHEL-107695-16.patch +:000000 100644 0000000 b763fdf A glibc-RHEL-107695-17.patch +:000000 100644 0000000 8a4fd97 A glibc-RHEL-107695-18.patch +:000000 100644 0000000 6863f45 A glibc-RHEL-107695-19.patch +:000000 100644 0000000 c5668ab A glibc-RHEL-107695-2.patch +:000000 100644 0000000 f799f2f A glibc-RHEL-107695-3.patch +:000000 100644 0000000 86a7a48 A glibc-RHEL-107695-4.patch +:000000 100644 0000000 3a715a6 A glibc-RHEL-107695-5.patch +:000000 100644 0000000 b30572d A glibc-RHEL-107695-6.patch +:000000 100644 0000000 b797630 A glibc-RHEL-107695-7.patch +:000000 100644 0000000 f8a2b97 A glibc-RHEL-107695-8.patch +:000000 100644 0000000 10a864d A glibc-RHEL-107695-9.patch +:100644 100644 1977d97 895d978 M glibc.spec commit 22e43fce786754fb1ce3d7de649e5d5227545437 Author: Frédéric Bérat @@ -417,7 +1551,7 @@ CommitDate: Fri Aug 8 10:17:26 2025 +0200 Related: RHEL-58357 -:100644 100644 ae407b21 1977d97b M glibc.spec +:100644 100644 ae407b2 1977d97 M glibc.spec commit f8b71945b7e9039596e4e8c74d249d9765836f21 Author: Frédéric Bérat @@ -443,18 +1577,18 @@ CommitDate: Thu Aug 7 16:07:09 2025 +0200 Resolves: RHEL-58357 -:000000 100644 00000000 0666d3cb A glibc-RHEL-58357-1.patch -:000000 100644 00000000 a412332f A glibc-RHEL-58357-10.patch -:000000 100644 00000000 376d72bd A glibc-RHEL-58357-11.patch -:000000 100644 00000000 be69718c A glibc-RHEL-58357-2.patch -:000000 100644 00000000 97ec4f9f A glibc-RHEL-58357-3.patch -:000000 100644 00000000 e58de6c8 A glibc-RHEL-58357-4.patch -:000000 100644 00000000 6a42bde0 A glibc-RHEL-58357-5.patch -:000000 100644 00000000 daf6b65b A glibc-RHEL-58357-6.patch -:000000 100644 00000000 87a8adb9 A glibc-RHEL-58357-7.patch -:000000 100644 00000000 9e4d933b A glibc-RHEL-58357-8.patch -:000000 100644 00000000 7fe51f5d A glibc-RHEL-58357-9.patch -:100644 100644 f0649bec ae407b21 M glibc.spec +:000000 100644 0000000 0666d3c A glibc-RHEL-58357-1.patch +:000000 100644 0000000 a412332 A glibc-RHEL-58357-10.patch +:000000 100644 0000000 376d72b A glibc-RHEL-58357-11.patch +:000000 100644 0000000 be69718 A glibc-RHEL-58357-2.patch +:000000 100644 0000000 97ec4f9 A glibc-RHEL-58357-3.patch +:000000 100644 0000000 e58de6c A glibc-RHEL-58357-4.patch +:000000 100644 0000000 6a42bde A glibc-RHEL-58357-5.patch +:000000 100644 0000000 daf6b65 A glibc-RHEL-58357-6.patch +:000000 100644 0000000 87a8adb A glibc-RHEL-58357-7.patch +:000000 100644 0000000 9e4d933 A glibc-RHEL-58357-8.patch +:000000 100644 0000000 7fe51f5 A glibc-RHEL-58357-9.patch +:100644 100644 f0649be ae407b2 M glibc.spec commit 5a17d4042050c9327ce0447580cc5a89a3a945c2 Author: Frédéric Bérat @@ -470,9 +1604,9 @@ CommitDate: Thu Aug 7 14:24:15 2025 +0200 Resolves: RHEL-107861 -:000000 100644 00000000 29eec395 A glibc-RHEL-107861-1.patch -:000000 100644 00000000 75bd3ae1 A glibc-RHEL-107861-2.patch -:100644 100644 686d803f f0649bec M glibc.spec +:000000 100644 0000000 29eec39 A glibc-RHEL-107861-1.patch +:000000 100644 0000000 75bd3ae A glibc-RHEL-107861-2.patch +:100644 100644 686d803 f0649be M glibc.spec commit 5e0f6b30b8c981d41ae201d2a03e8d7e77aad8e3 Author: Arjun Shankar @@ -484,31 +1618,31 @@ CommitDate: Wed Aug 6 15:02:01 2025 +0200 Resolves: RHEL-106562 -:000000 100644 00000000 d9838ff7 A glibc-RHEL-106562-1.patch -:000000 100644 00000000 e3c1b91a A glibc-RHEL-106562-10.patch -:000000 100644 00000000 ef95c717 A glibc-RHEL-106562-11.patch -:000000 100644 00000000 a5d4fb5b A glibc-RHEL-106562-12.patch -:000000 100644 00000000 84b92cfe A glibc-RHEL-106562-13.patch -:000000 100644 00000000 813c7ff8 A glibc-RHEL-106562-14.patch -:000000 100644 00000000 5df1459f A glibc-RHEL-106562-15.patch -:000000 100644 00000000 e6ee9474 A glibc-RHEL-106562-16.patch -:000000 100644 00000000 a6e68a12 A glibc-RHEL-106562-17.patch -:000000 100644 00000000 134781a7 A glibc-RHEL-106562-18.patch -:000000 100644 00000000 0502db02 A glibc-RHEL-106562-19.patch -:000000 100644 00000000 1ea5b607 A glibc-RHEL-106562-2.patch -:000000 100644 00000000 e4ca16c4 A glibc-RHEL-106562-20.patch -:000000 100644 00000000 8ae0eae6 A glibc-RHEL-106562-21.patch -:000000 100644 00000000 c5058ab9 A glibc-RHEL-106562-22.patch -:000000 100644 00000000 17be8ef0 A glibc-RHEL-106562-23.patch -:000000 100644 00000000 fc5ce1b7 A glibc-RHEL-106562-24.patch -:000000 100644 00000000 dcdbff05 A glibc-RHEL-106562-3.patch -:000000 100644 00000000 86c0c976 A glibc-RHEL-106562-4.patch -:000000 100644 00000000 d97d8ff5 A glibc-RHEL-106562-5.patch -:000000 100644 00000000 959730ef A glibc-RHEL-106562-6.patch -:000000 100644 00000000 569a7159 A glibc-RHEL-106562-7.patch -:000000 100644 00000000 2eb8c051 A glibc-RHEL-106562-8.patch -:000000 100644 00000000 e7b1bdaf A glibc-RHEL-106562-9.patch -:100644 100644 c810d912 686d803f M glibc.spec +:000000 100644 0000000 d9838ff A glibc-RHEL-106562-1.patch +:000000 100644 0000000 e3c1b91 A glibc-RHEL-106562-10.patch +:000000 100644 0000000 ef95c71 A glibc-RHEL-106562-11.patch +:000000 100644 0000000 a5d4fb5 A glibc-RHEL-106562-12.patch +:000000 100644 0000000 84b92cf A glibc-RHEL-106562-13.patch +:000000 100644 0000000 813c7ff A glibc-RHEL-106562-14.patch +:000000 100644 0000000 5df1459 A glibc-RHEL-106562-15.patch +:000000 100644 0000000 e6ee947 A glibc-RHEL-106562-16.patch +:000000 100644 0000000 a6e68a1 A glibc-RHEL-106562-17.patch +:000000 100644 0000000 134781a A glibc-RHEL-106562-18.patch +:000000 100644 0000000 0502db0 A glibc-RHEL-106562-19.patch +:000000 100644 0000000 1ea5b60 A glibc-RHEL-106562-2.patch +:000000 100644 0000000 e4ca16c A glibc-RHEL-106562-20.patch +:000000 100644 0000000 8ae0eae A glibc-RHEL-106562-21.patch +:000000 100644 0000000 c5058ab A glibc-RHEL-106562-22.patch +:000000 100644 0000000 17be8ef A glibc-RHEL-106562-23.patch +:000000 100644 0000000 fc5ce1b A glibc-RHEL-106562-24.patch +:000000 100644 0000000 dcdbff0 A glibc-RHEL-106562-3.patch +:000000 100644 0000000 86c0c97 A glibc-RHEL-106562-4.patch +:000000 100644 0000000 d97d8ff A glibc-RHEL-106562-5.patch +:000000 100644 0000000 959730e A glibc-RHEL-106562-6.patch +:000000 100644 0000000 569a715 A glibc-RHEL-106562-7.patch +:000000 100644 0000000 2eb8c05 A glibc-RHEL-106562-8.patch +:000000 100644 0000000 e7b1bda A glibc-RHEL-106562-9.patch +:100644 100644 c810d91 686d803 M glibc.spec commit 0d5bc434145dd63a1f10f56c594a95648f0c7369 Author: Florian Weimer @@ -520,10 +1654,10 @@ CommitDate: Tue Aug 5 16:30:24 2025 +0200 Resolves: RHEL-107540 -:000000 100644 00000000 e3eedb73 A glibc-RHEL-107540-1.patch -:000000 100644 00000000 0401b321 A glibc-RHEL-107540-2.patch -:000000 100644 00000000 5a0231c0 A glibc-RHEL-107540-3.patch -:100644 100644 ed4fe29a c810d912 M glibc.spec +:000000 100644 0000000 e3eedb7 A glibc-RHEL-107540-1.patch +:000000 100644 0000000 0401b32 A glibc-RHEL-107540-2.patch +:000000 100644 0000000 5a0231c A glibc-RHEL-107540-3.patch +:100644 100644 ed4fe29 c810d91 M glibc.spec commit 3dd56eab8d4c0e5cb50ea69bf6477098118bb698 Author: Frédéric Bérat @@ -540,10 +1674,10 @@ CommitDate: Mon Aug 4 14:22:06 2025 +0200 Resolves: RHEL-72564 -:000000 100644 00000000 c61dfcb7 A glibc-RHEL-72564-1.patch -:000000 100644 00000000 ea1afdf1 A glibc-RHEL-72564-2.patch -:100644 100644 82807c73 ed4fe29a M glibc.spec -:100644 100644 9405390b 59281573 M ld-so-abi-s390x.baseline +:000000 100644 0000000 c61dfcb A glibc-RHEL-72564-1.patch +:000000 100644 0000000 ea1afdf A glibc-RHEL-72564-2.patch +:100644 100644 82807c7 ed4fe29 M glibc.spec +:100644 100644 9405390 5928157 M ld-so-abi-s390x.baseline commit edbaed16b19cab0a6c833f85e96ced6d661eaa22 Author: Frédéric Bérat @@ -568,13 +1702,13 @@ CommitDate: Thu Jul 31 16:29:47 2025 +0200 Resolves: RHEL-72564 -:100644 100644 524ab225 82807c73 M glibc.spec -:000000 100644 00000000 f851c7b6 A ld-so-abi-aarch64.baseline -:000000 100644 00000000 5b1daae2 A ld-so-abi-ppc64le.baseline -:000000 100644 00000000 6595d048 A ld-so-abi-riscv64.baseline -:000000 100644 00000000 9405390b A ld-so-abi-s390x.baseline -:000000 100644 00000000 855abc60 A ld-so-abi-x86_64.baseline -:000000 100644 00000000 066847eb A verify-ld-so-abi.sh +:100644 100644 524ab22 82807c7 M glibc.spec +:000000 100644 0000000 f851c7b A ld-so-abi-aarch64.baseline +:000000 100644 0000000 5b1daae A ld-so-abi-ppc64le.baseline +:000000 100644 0000000 6595d04 A ld-so-abi-riscv64.baseline +:000000 100644 0000000 9405390 A ld-so-abi-s390x.baseline +:000000 100644 0000000 855abc6 A ld-so-abi-x86_64.baseline +:000000 100644 0000000 066847e A verify-ld-so-abi.sh commit 7c2d760e4fa0d4d9968e8f40f47745bd5a2133d1 Author: Florian Weimer @@ -586,8 +1720,8 @@ CommitDate: Thu Jul 24 20:26:33 2025 +0200 Resolves: RHEL-105324 -:000000 100644 00000000 5a4bd506 A glibc-RHEL-105324.patch -:100644 100644 1e500a9a 524ab225 M glibc.spec +:000000 100644 0000000 5a4bd50 A glibc-RHEL-105324.patch +:100644 100644 1e500a9 524ab22 M glibc.spec commit cac5195e9e0418607d123fb9cc52ab1d5a3e03ce Author: Florian Weimer @@ -599,9 +1733,9 @@ CommitDate: Thu Jul 24 13:25:18 2025 +0200 Resolves: RHEL-95246 -:000000 100644 00000000 0b431c6e A glibc-RHEL-95246-1.patch -:000000 100644 00000000 2358e0c2 A glibc-RHEL-95246-2.patch -:100644 100644 60672d15 1e500a9a M glibc.spec +:000000 100644 0000000 0b431c6 A glibc-RHEL-95246-1.patch +:000000 100644 0000000 2358e0c A glibc-RHEL-95246-2.patch +:100644 100644 60672d1 1e500a9 M glibc.spec commit e8f76ede2b231d2e1fe694bbc632089b30c236b0 Author: Florian Weimer @@ -613,8 +1747,8 @@ CommitDate: Wed Jul 23 17:07:28 2025 +0200 Resolves: RHEL-104151 -:000000 100644 00000000 8248df40 A glibc-RHEL-104151.patch -:100644 100644 5918ceae 60672d15 M glibc.spec +:000000 100644 0000000 8248df4 A glibc-RHEL-104151.patch +:100644 100644 5918cea 60672d1 M glibc.spec commit 4e827a476bb7127377c451e8a26348a0b802ebde Author: Florian Weimer @@ -626,7 +1760,7 @@ CommitDate: Wed Jul 9 11:27:43 2025 +0200 Resolves: RHEL-102555 -:100644 100644 d8a0184c 5918ceae M glibc.spec +:100644 100644 d8a0184 5918cea M glibc.spec commit 392c65a97dc3c2c93d3247236303d275ad56097a Author: Florian Weimer @@ -638,9 +1772,9 @@ CommitDate: Thu Jul 3 18:14:49 2025 +0200 Resolves: RHEL-101754 -:000000 100644 00000000 36e48d9e A glibc-RHEL-101754-1.patch -:000000 100644 00000000 742d153d A glibc-RHEL-101754-2.patch -:100644 100644 bd191007 d8a0184c M glibc.spec +:000000 100644 0000000 36e48d9 A glibc-RHEL-101754-1.patch +:000000 100644 0000000 742d153 A glibc-RHEL-101754-2.patch +:100644 100644 bd19100 d8a0184 M glibc.spec commit 8e16d819de9492281e62b37ac7dc4c2a95eb6515 Author: Florian Weimer @@ -652,8 +1786,8 @@ CommitDate: Tue Jul 1 14:21:47 2025 +0200 Resolves: RHEL-82285 -:000000 100644 00000000 b6542428 A glibc-RHEL-82285.patch -:100644 100644 921a7294 bd191007 M glibc.spec +:000000 100644 0000000 b654242 A glibc-RHEL-82285.patch +:100644 100644 921a729 bd19100 M glibc.spec commit 70ebc1f0c6e44878f52fccde4fdff87e95faa055 Author: Arjun Shankar @@ -674,72 +1808,72 @@ CommitDate: Tue Jul 1 11:39:21 2025 +0200 Resolves: RHEL-86433 Resolves: RHEL-95485 -:000000 100644 00000000 1da3b7c6 A glibc-upstream-2.39-147.patch -:000000 100644 00000000 2975507e A glibc-upstream-2.39-148.patch -:000000 100644 00000000 d02b9585 A glibc-upstream-2.39-149.patch -:000000 100644 00000000 d45425f1 A glibc-upstream-2.39-150.patch -:000000 100644 00000000 d930fc9a A glibc-upstream-2.39-151.patch -:000000 100644 00000000 6f249e1f A glibc-upstream-2.39-152.patch -:000000 100644 00000000 32bee5b9 A glibc-upstream-2.39-153.patch -:000000 100644 00000000 b1925139 A glibc-upstream-2.39-154.patch -:000000 100644 00000000 d8ba7a5e A glibc-upstream-2.39-155.patch -:000000 100644 00000000 12fa9611 A glibc-upstream-2.39-156.patch -:000000 100644 00000000 3f1d87dd A glibc-upstream-2.39-157.patch -:000000 100644 00000000 0c02585a A glibc-upstream-2.39-158.patch -:000000 100644 00000000 355d2e33 A glibc-upstream-2.39-159.patch -:000000 100644 00000000 eeeaa428 A glibc-upstream-2.39-160.patch -:000000 100644 00000000 6d902f1c A glibc-upstream-2.39-161.patch -:000000 100644 00000000 d71b6b62 A glibc-upstream-2.39-162.patch -:000000 100644 00000000 3ec9e320 A glibc-upstream-2.39-163.patch -:000000 100644 00000000 4c47935f A glibc-upstream-2.39-164.patch -:000000 100644 00000000 8410684e A glibc-upstream-2.39-165.patch -:000000 100644 00000000 1fb60ebe A glibc-upstream-2.39-166.patch -:000000 100644 00000000 ef92f212 A glibc-upstream-2.39-167.patch -:000000 100644 00000000 565eb140 A glibc-upstream-2.39-168.patch -:000000 100644 00000000 d1df5b90 A glibc-upstream-2.39-169.patch -:000000 100644 00000000 8ea22b14 A glibc-upstream-2.39-170.patch -:000000 100644 00000000 bdeedbe8 A glibc-upstream-2.39-171.patch -:000000 100644 00000000 f850918e A glibc-upstream-2.39-172.patch -:000000 100644 00000000 c81f9e75 A glibc-upstream-2.39-173.patch -:000000 100644 00000000 152c6aec A glibc-upstream-2.39-174.patch -:000000 100644 00000000 1858d00c A glibc-upstream-2.39-175.patch -:000000 100644 00000000 130210bd A glibc-upstream-2.39-176.patch -:000000 100644 00000000 b550ed79 A glibc-upstream-2.39-177.patch -:000000 100644 00000000 476939ee A glibc-upstream-2.39-178.patch -:000000 100644 00000000 b07abba6 A glibc-upstream-2.39-179.patch -:000000 100644 00000000 2140061c A glibc-upstream-2.39-180.patch -:000000 100644 00000000 58427753 A glibc-upstream-2.39-181.patch -:000000 100644 00000000 cdec3f34 A glibc-upstream-2.39-182.patch -:000000 100644 00000000 d8d52faa A glibc-upstream-2.39-183.patch -:000000 100644 00000000 269e62bd A glibc-upstream-2.39-184.patch -:000000 100644 00000000 bfea4d76 A glibc-upstream-2.39-185.patch -:000000 100644 00000000 e66963e8 A glibc-upstream-2.39-186.patch -:000000 100644 00000000 27bb7357 A glibc-upstream-2.39-187.patch -:000000 100644 00000000 37b779fd A glibc-upstream-2.39-188.patch -:000000 100644 00000000 0111578e A glibc-upstream-2.39-189.patch -:000000 100644 00000000 ee0e91da A glibc-upstream-2.39-190.patch -:000000 100644 00000000 6a4cdeac A glibc-upstream-2.39-191.patch -:000000 100644 00000000 1a69b86d A glibc-upstream-2.39-192.patch -:000000 100644 00000000 2bda9e9b A glibc-upstream-2.39-193.patch -:000000 100644 00000000 52ef4114 A glibc-upstream-2.39-194.patch -:000000 100644 00000000 944d1a45 A glibc-upstream-2.39-195.patch -:000000 100644 00000000 d47bb850 A glibc-upstream-2.39-196.patch -:000000 100644 00000000 a413578a A glibc-upstream-2.39-197.patch -:000000 100644 00000000 a0c9d1a6 A glibc-upstream-2.39-198.patch -:000000 100644 00000000 b5b2458e A glibc-upstream-2.39-199.patch -:000000 100644 00000000 bda619f6 A glibc-upstream-2.39-200.patch -:000000 100644 00000000 0e6a9a2e A glibc-upstream-2.39-201.patch -:000000 100644 00000000 dd9ebe01 A glibc-upstream-2.39-202.patch -:000000 100644 00000000 140f69ff A glibc-upstream-2.39-203.patch -:000000 100644 00000000 26583497 A glibc-upstream-2.39-204.patch -:000000 100644 00000000 637fec38 A glibc-upstream-2.39-205.patch -:000000 100644 00000000 59b1a10b A glibc-upstream-2.39-206.patch -:000000 100644 00000000 8edb2abd A glibc-upstream-2.39-207.patch -:000000 100644 00000000 debabf94 A glibc-upstream-2.39-208.patch -:000000 100644 00000000 230468f7 A glibc-upstream-2.39-209.patch -:000000 100644 00000000 62679227 A glibc-upstream-2.39-210.patch -:000000 100644 00000000 fd218342 A glibc-upstream-2.39-211.patch -:100644 100644 d3babc8e 921a7294 M glibc.spec +:000000 100644 0000000 1da3b7c A glibc-upstream-2.39-147.patch +:000000 100644 0000000 2975507 A glibc-upstream-2.39-148.patch +:000000 100644 0000000 d02b958 A glibc-upstream-2.39-149.patch +:000000 100644 0000000 d45425f A glibc-upstream-2.39-150.patch +:000000 100644 0000000 d930fc9 A glibc-upstream-2.39-151.patch +:000000 100644 0000000 6f249e1 A glibc-upstream-2.39-152.patch +:000000 100644 0000000 32bee5b A glibc-upstream-2.39-153.patch +:000000 100644 0000000 b192513 A glibc-upstream-2.39-154.patch +:000000 100644 0000000 d8ba7a5 A glibc-upstream-2.39-155.patch +:000000 100644 0000000 12fa961 A glibc-upstream-2.39-156.patch +:000000 100644 0000000 3f1d87d A glibc-upstream-2.39-157.patch +:000000 100644 0000000 0c02585 A glibc-upstream-2.39-158.patch +:000000 100644 0000000 355d2e3 A glibc-upstream-2.39-159.patch +:000000 100644 0000000 eeeaa42 A glibc-upstream-2.39-160.patch +:000000 100644 0000000 6d902f1 A glibc-upstream-2.39-161.patch +:000000 100644 0000000 d71b6b6 A glibc-upstream-2.39-162.patch +:000000 100644 0000000 3ec9e32 A glibc-upstream-2.39-163.patch +:000000 100644 0000000 4c47935 A glibc-upstream-2.39-164.patch +:000000 100644 0000000 8410684 A glibc-upstream-2.39-165.patch +:000000 100644 0000000 1fb60eb A glibc-upstream-2.39-166.patch +:000000 100644 0000000 ef92f21 A glibc-upstream-2.39-167.patch +:000000 100644 0000000 565eb14 A glibc-upstream-2.39-168.patch +:000000 100644 0000000 d1df5b9 A glibc-upstream-2.39-169.patch +:000000 100644 0000000 8ea22b1 A glibc-upstream-2.39-170.patch +:000000 100644 0000000 bdeedbe A glibc-upstream-2.39-171.patch +:000000 100644 0000000 f850918 A glibc-upstream-2.39-172.patch +:000000 100644 0000000 c81f9e7 A glibc-upstream-2.39-173.patch +:000000 100644 0000000 152c6ae A glibc-upstream-2.39-174.patch +:000000 100644 0000000 1858d00 A glibc-upstream-2.39-175.patch +:000000 100644 0000000 130210b A glibc-upstream-2.39-176.patch +:000000 100644 0000000 b550ed7 A glibc-upstream-2.39-177.patch +:000000 100644 0000000 476939e A glibc-upstream-2.39-178.patch +:000000 100644 0000000 b07abba A glibc-upstream-2.39-179.patch +:000000 100644 0000000 2140061 A glibc-upstream-2.39-180.patch +:000000 100644 0000000 5842775 A glibc-upstream-2.39-181.patch +:000000 100644 0000000 cdec3f3 A glibc-upstream-2.39-182.patch +:000000 100644 0000000 d8d52fa A glibc-upstream-2.39-183.patch +:000000 100644 0000000 269e62b A glibc-upstream-2.39-184.patch +:000000 100644 0000000 bfea4d7 A glibc-upstream-2.39-185.patch +:000000 100644 0000000 e66963e A glibc-upstream-2.39-186.patch +:000000 100644 0000000 27bb735 A glibc-upstream-2.39-187.patch +:000000 100644 0000000 37b779f A glibc-upstream-2.39-188.patch +:000000 100644 0000000 0111578 A glibc-upstream-2.39-189.patch +:000000 100644 0000000 ee0e91d A glibc-upstream-2.39-190.patch +:000000 100644 0000000 6a4cdea A glibc-upstream-2.39-191.patch +:000000 100644 0000000 1a69b86 A glibc-upstream-2.39-192.patch +:000000 100644 0000000 2bda9e9 A glibc-upstream-2.39-193.patch +:000000 100644 0000000 52ef411 A glibc-upstream-2.39-194.patch +:000000 100644 0000000 944d1a4 A glibc-upstream-2.39-195.patch +:000000 100644 0000000 d47bb85 A glibc-upstream-2.39-196.patch +:000000 100644 0000000 a413578 A glibc-upstream-2.39-197.patch +:000000 100644 0000000 a0c9d1a A glibc-upstream-2.39-198.patch +:000000 100644 0000000 b5b2458 A glibc-upstream-2.39-199.patch +:000000 100644 0000000 bda619f A glibc-upstream-2.39-200.patch +:000000 100644 0000000 0e6a9a2 A glibc-upstream-2.39-201.patch +:000000 100644 0000000 dd9ebe0 A glibc-upstream-2.39-202.patch +:000000 100644 0000000 140f69f A glibc-upstream-2.39-203.patch +:000000 100644 0000000 2658349 A glibc-upstream-2.39-204.patch +:000000 100644 0000000 637fec3 A glibc-upstream-2.39-205.patch +:000000 100644 0000000 59b1a10 A glibc-upstream-2.39-206.patch +:000000 100644 0000000 8edb2ab A glibc-upstream-2.39-207.patch +:000000 100644 0000000 debabf9 A glibc-upstream-2.39-208.patch +:000000 100644 0000000 230468f A glibc-upstream-2.39-209.patch +:000000 100644 0000000 6267922 A glibc-upstream-2.39-210.patch +:000000 100644 0000000 fd21834 A glibc-upstream-2.39-211.patch +:100644 100644 d3babc8 921a729 M glibc.spec commit 55a8279a3be2afc505482ac97680d04a55a3e1d0 Author: Martin Coufal @@ -749,7 +1883,7 @@ CommitDate: Thu Jun 19 13:30:21 2025 +0200 tests/Regression/bz863384-getaddrinfo-fails-to-return-FQDN-for-AF_INET-and-AF_INET6: update relevancy -:100644 100644 c88d3fdf 7d3b88f9 M tests/Regression/bz863384-getaddrinfo-fails-to-return-FQDN-for-AF_INET-and-AF_INET6/main.fmf +:100644 100644 c88d3fd 7d3b88f M tests/Regression/bz863384-getaddrinfo-fails-to-return-FQDN-for-AF_INET-and-AF_INET6/main.fmf commit 369f3972b72b6ee460977a3c7cfbc3d79b2c4d14 Author: Florian Weimer @@ -761,7 +1895,7 @@ CommitDate: Tue Jun 17 13:51:26 2025 +0200 Resolves: RHEL-97433 -:100644 100644 820e3acb d3babc8e M glibc.spec +:100644 100644 820e3ac d3babc8 M glibc.spec commit 64d489ff04ef0d400d2be4f663fca16ec5155c4b Author: Andrea Bolognani @@ -779,7 +1913,7 @@ CommitDate: Fri Apr 18 15:15:24 2025 +0200 Thanks: David Abdurachmanov Signed-off-by: Andrea Bolognani -:100644 100644 a6e5f3f1 820e3acb M glibc.spec +:100644 100644 a6e5f3f 820e3ac M glibc.spec commit 2fac143e74276a52aaebda50d571fdc85781f73b Author: Florian Weimer @@ -791,9 +1925,9 @@ CommitDate: Fri Jan 24 23:16:09 2025 +0100 Resolves: RHEL-75809 -:000000 100644 00000000 15d865ef A glibc-RHEL-75809-2.patch -:000000 100644 00000000 aff1b42b A glibc-RHEL-75809-3.patch -:100644 100644 63699a84 a6e5f3f1 M glibc.spec +:000000 100644 0000000 15d865e A glibc-RHEL-75809-2.patch +:000000 100644 0000000 aff1b42 A glibc-RHEL-75809-3.patch +:100644 100644 63699a8 a6e5f3f M glibc.spec commit b76546a663f6edf68b35af41db66f22db6977810 Author: Florian Weimer @@ -805,8 +1939,8 @@ CommitDate: Thu Jan 23 22:35:42 2025 +0100 Resolves: RHEL-75555 -:000000 100644 00000000 ef561052 A glibc-RHEL-75555.patch -:100644 100644 0a924d95 63699a84 M glibc.spec +:000000 100644 0000000 ef56105 A glibc-RHEL-75555.patch +:100644 100644 0a924d9 63699a8 M glibc.spec commit 95d5cf3a67663fdee51086f46412493255446bbd Author: Florian Weimer @@ -816,8 +1950,8 @@ CommitDate: Thu Jan 23 21:17:23 2025 +0100 Restore compatibility with environ/malloc usage pattern (RHEL-75809) -:000000 100644 00000000 c66091d9 A glibc-RHEL-75809.patch -:100644 100644 ef893559 0a924d95 M glibc.spec +:000000 100644 0000000 c66091d A glibc-RHEL-75809.patch +:100644 100644 ef89355 0a924d9 M glibc.spec commit 7e7241f6206d2f68286aa56853db7594e749c4f6 Author: Florian Weimer @@ -839,16 +1973,16 @@ CommitDate: Thu Jan 23 09:08:39 2025 +0100 - nptl: initialize cpu_id_start prior to rseq registration - nptl: initialize rseq area prior to registration -:000000 100644 00000000 c2ed4868 A glibc-upstream-2.39-138.patch -:000000 100644 00000000 20d63672 A glibc-upstream-2.39-139.patch -:000000 100644 00000000 aa67ae20 A glibc-upstream-2.39-140.patch -:000000 100644 00000000 2801ac03 A glibc-upstream-2.39-141.patch -:000000 100644 00000000 72c87516 A glibc-upstream-2.39-142.patch -:000000 100644 00000000 ade64c90 A glibc-upstream-2.39-143.patch -:000000 100644 00000000 17ca3b3b A glibc-upstream-2.39-144.patch -:000000 100644 00000000 1248613e A glibc-upstream-2.39-145.patch -:000000 100644 00000000 9d16b94b A glibc-upstream-2.39-146.patch -:100644 100644 66c4e1f4 ef893559 M glibc.spec +:000000 100644 0000000 c2ed486 A glibc-upstream-2.39-138.patch +:000000 100644 0000000 20d6367 A glibc-upstream-2.39-139.patch +:000000 100644 0000000 aa67ae2 A glibc-upstream-2.39-140.patch +:000000 100644 0000000 2801ac0 A glibc-upstream-2.39-141.patch +:000000 100644 0000000 72c8751 A glibc-upstream-2.39-142.patch +:000000 100644 0000000 ade64c9 A glibc-upstream-2.39-143.patch +:000000 100644 0000000 17ca3b3 A glibc-upstream-2.39-144.patch +:000000 100644 0000000 1248613 A glibc-upstream-2.39-145.patch +:000000 100644 0000000 9d16b94 A glibc-upstream-2.39-146.patch +:100644 100644 66c4e1f ef89355 M glibc.spec commit 071446cc9087e895470214bb7d2aa756fb4f740d Author: Florian Weimer @@ -858,17 +1992,17 @@ CommitDate: Mon Dec 23 14:59:23 2024 +0100 Support in-place file conversion in the iconv tool (RHEL-71530) -:000000 100644 00000000 c4dc9540 A glibc-RHEL-71530-1.patch -:000000 100644 00000000 32fcbcb4 A glibc-RHEL-71530-10.patch -:000000 100644 00000000 4e4de983 A glibc-RHEL-71530-2.patch -:000000 100644 00000000 740ff15b A glibc-RHEL-71530-3.patch -:000000 100644 00000000 9e0824fd A glibc-RHEL-71530-4.patch -:000000 100644 00000000 827ef5d0 A glibc-RHEL-71530-5.patch -:000000 100644 00000000 98fd5eba A glibc-RHEL-71530-6.patch -:000000 100644 00000000 932e4fb6 A glibc-RHEL-71530-7.patch -:000000 100644 00000000 c652cafb A glibc-RHEL-71530-8.patch -:000000 100644 00000000 7d764c73 A glibc-RHEL-71530-9.patch -:100644 100644 3a5f1461 66c4e1f4 M glibc.spec +:000000 100644 0000000 c4dc954 A glibc-RHEL-71530-1.patch +:000000 100644 0000000 32fcbcb A glibc-RHEL-71530-10.patch +:000000 100644 0000000 4e4de98 A glibc-RHEL-71530-2.patch +:000000 100644 0000000 740ff15 A glibc-RHEL-71530-3.patch +:000000 100644 0000000 9e0824f A glibc-RHEL-71530-4.patch +:000000 100644 0000000 827ef5d A glibc-RHEL-71530-5.patch +:000000 100644 0000000 98fd5eb A glibc-RHEL-71530-6.patch +:000000 100644 0000000 932e4fb A glibc-RHEL-71530-7.patch +:000000 100644 0000000 c652caf A glibc-RHEL-71530-8.patch +:000000 100644 0000000 7d764c7 A glibc-RHEL-71530-9.patch +:100644 100644 3a5f146 66c4e1f M glibc.spec commit f0a7516eb02599fff9df4d7055945e51b7203b5a Author: Florian Weimer @@ -878,8 +2012,8 @@ CommitDate: Mon Dec 16 19:32:20 2024 +0100 Make getenv thread-safe in more cases (RHEL-42410) -:000000 100644 00000000 d7b6226f A glibc-RHEL-42410.patch -:100644 100644 951c7470 3a5f1461 M glibc.spec +:000000 100644 0000000 d7b6226 A glibc-RHEL-42410.patch +:100644 100644 951c747 3a5f146 M glibc.spec commit b7ddd38a9202a76afc40fd716477184f8e16c65f Author: Bruno Goncalves @@ -891,7 +2025,7 @@ CommitDate: Mon Dec 16 17:26:35 2024 +0000 Related: RHELMISC-7545 -:100644 100644 cc382ade 0ebe3399 M gating.yaml +:100644 100644 cc382ad 0ebe339 M gating.yaml commit 6440988290ed876a60e0c4eb3665c963b5dcce34 Author: Florian Weimer @@ -901,8 +2035,8 @@ CommitDate: Sun Dec 15 17:30:28 2024 +0100 Minor update to getrandom vDSO handshake -:000000 100644 00000000 4c092889 A glibc-RHEL-12867-3.patch -:100644 100644 f574372c 951c7470 M glibc.spec +:000000 100644 0000000 4c09288 A glibc-RHEL-12867-3.patch +:100644 100644 f574372 951c747 M glibc.spec commit 308f336d614355fafcc85fd266f9c27e2678c89b Author: Florian Weimer @@ -912,8 +2046,8 @@ CommitDate: Wed Dec 11 19:57:07 2024 +0100 CVE-2024-12455: Incorrect getrandom return value on ppc64le -:000000 100644 00000000 4f67be76 A glibc-RHEL-12867-2.patch -:100644 100644 993cdd70 f574372c M glibc.spec +:000000 100644 0000000 4f67be7 A glibc-RHEL-12867-2.patch +:100644 100644 993cdd7 f574372 M glibc.spec commit 2a30b8f4b251e0c895d75348dfdac726e6d74cc1 Author: Arjun Shankar @@ -973,50 +2107,50 @@ CommitDate: Wed Nov 20 17:12:17 2024 +0100 Resolves: RHEL-57777 Resolves: RHEL-61392 -:000000 100644 00000000 0eeecc0f A glibc-upstream-2.39-100.patch -:000000 100644 00000000 5d94db88 A glibc-upstream-2.39-101.patch -:000000 100644 00000000 91b388a3 A glibc-upstream-2.39-102.patch -:000000 100644 00000000 206d5c0b A glibc-upstream-2.39-103.patch -:000000 100644 00000000 5e7d07e4 A glibc-upstream-2.39-104.patch -:000000 100644 00000000 3bba75fb A glibc-upstream-2.39-105.patch -:000000 100644 00000000 8f1c95b4 A glibc-upstream-2.39-106.patch -:000000 100644 00000000 a9ca4601 A glibc-upstream-2.39-107.patch -:000000 100644 00000000 3bf94005 A glibc-upstream-2.39-108.patch -:000000 100644 00000000 026fd73f A glibc-upstream-2.39-109.patch -:000000 100644 00000000 fd105914 A glibc-upstream-2.39-110.patch -:000000 100644 00000000 03ba58b3 A glibc-upstream-2.39-111.patch -:000000 100644 00000000 784739e6 A glibc-upstream-2.39-112.patch -:000000 100644 00000000 51b7c898 A glibc-upstream-2.39-113.patch -:000000 100644 00000000 d64ebf88 A glibc-upstream-2.39-114.patch -:000000 100644 00000000 3475ed38 A glibc-upstream-2.39-115.patch -:000000 100644 00000000 3295a2fa A glibc-upstream-2.39-116.patch -:000000 100644 00000000 53b7ce9c A glibc-upstream-2.39-117.patch -:000000 100644 00000000 2d12af88 A glibc-upstream-2.39-118.patch -:000000 100644 00000000 18c30ed6 A glibc-upstream-2.39-119.patch -:000000 100644 00000000 0506252e A glibc-upstream-2.39-120.patch -:000000 100644 00000000 12a3b357 A glibc-upstream-2.39-121.patch -:000000 100644 00000000 4e2c60c2 A glibc-upstream-2.39-122.patch -:000000 100644 00000000 8eadabd7 A glibc-upstream-2.39-123.patch -:000000 100644 00000000 6c86939d A glibc-upstream-2.39-124.patch -:000000 100644 00000000 cb7d2e07 A glibc-upstream-2.39-125.patch -:000000 100644 00000000 e53d7b0d A glibc-upstream-2.39-126.patch -:000000 100644 00000000 93537064 A glibc-upstream-2.39-127.patch -:000000 100644 00000000 e83ba4a3 A glibc-upstream-2.39-128.patch -:000000 100644 00000000 0288cb19 A glibc-upstream-2.39-129.patch -:000000 100644 00000000 3f5c9538 A glibc-upstream-2.39-130.patch -:000000 100644 00000000 6a38b42b A glibc-upstream-2.39-131.patch -:000000 100644 00000000 5dfe9f81 A glibc-upstream-2.39-132.patch -:000000 100644 00000000 e0cf207a A glibc-upstream-2.39-133.patch -:000000 100644 00000000 d0cbb12d A glibc-upstream-2.39-134.patch -:000000 100644 00000000 46e16fb7 A glibc-upstream-2.39-135.patch -:000000 100644 00000000 16babfd7 A glibc-upstream-2.39-136.patch -:000000 100644 00000000 03324cef A glibc-upstream-2.39-137.patch -:000000 100644 00000000 d3299ca4 A glibc-upstream-2.39-95.patch -:000000 100644 00000000 a06c76c3 A glibc-upstream-2.39-96.patch -:000000 100644 00000000 167b9791 A glibc-upstream-2.39-97.patch -:000000 100644 00000000 f60c9558 A glibc-upstream-2.39-98.patch -:000000 100644 00000000 9661d148 A glibc-upstream-2.39-99.patch -:100644 100644 bc8397c8 993cdd70 M glibc.spec +:000000 100644 0000000 0eeecc0 A glibc-upstream-2.39-100.patch +:000000 100644 0000000 5d94db8 A glibc-upstream-2.39-101.patch +:000000 100644 0000000 91b388a A glibc-upstream-2.39-102.patch +:000000 100644 0000000 206d5c0 A glibc-upstream-2.39-103.patch +:000000 100644 0000000 5e7d07e A glibc-upstream-2.39-104.patch +:000000 100644 0000000 3bba75f A glibc-upstream-2.39-105.patch +:000000 100644 0000000 8f1c95b A glibc-upstream-2.39-106.patch +:000000 100644 0000000 a9ca460 A glibc-upstream-2.39-107.patch +:000000 100644 0000000 3bf9400 A glibc-upstream-2.39-108.patch +:000000 100644 0000000 026fd73 A glibc-upstream-2.39-109.patch +:000000 100644 0000000 fd10591 A glibc-upstream-2.39-110.patch +:000000 100644 0000000 03ba58b A glibc-upstream-2.39-111.patch +:000000 100644 0000000 784739e A glibc-upstream-2.39-112.patch +:000000 100644 0000000 51b7c89 A glibc-upstream-2.39-113.patch +:000000 100644 0000000 d64ebf8 A glibc-upstream-2.39-114.patch +:000000 100644 0000000 3475ed3 A glibc-upstream-2.39-115.patch +:000000 100644 0000000 3295a2f A glibc-upstream-2.39-116.patch +:000000 100644 0000000 53b7ce9 A glibc-upstream-2.39-117.patch +:000000 100644 0000000 2d12af8 A glibc-upstream-2.39-118.patch +:000000 100644 0000000 18c30ed A glibc-upstream-2.39-119.patch +:000000 100644 0000000 0506252 A glibc-upstream-2.39-120.patch +:000000 100644 0000000 12a3b35 A glibc-upstream-2.39-121.patch +:000000 100644 0000000 4e2c60c A glibc-upstream-2.39-122.patch +:000000 100644 0000000 8eadabd A glibc-upstream-2.39-123.patch +:000000 100644 0000000 6c86939 A glibc-upstream-2.39-124.patch +:000000 100644 0000000 cb7d2e0 A glibc-upstream-2.39-125.patch +:000000 100644 0000000 e53d7b0 A glibc-upstream-2.39-126.patch +:000000 100644 0000000 9353706 A glibc-upstream-2.39-127.patch +:000000 100644 0000000 e83ba4a A glibc-upstream-2.39-128.patch +:000000 100644 0000000 0288cb1 A glibc-upstream-2.39-129.patch +:000000 100644 0000000 3f5c953 A glibc-upstream-2.39-130.patch +:000000 100644 0000000 6a38b42 A glibc-upstream-2.39-131.patch +:000000 100644 0000000 5dfe9f8 A glibc-upstream-2.39-132.patch +:000000 100644 0000000 e0cf207 A glibc-upstream-2.39-133.patch +:000000 100644 0000000 d0cbb12 A glibc-upstream-2.39-134.patch +:000000 100644 0000000 46e16fb A glibc-upstream-2.39-135.patch +:000000 100644 0000000 16babfd A glibc-upstream-2.39-136.patch +:000000 100644 0000000 03324ce A glibc-upstream-2.39-137.patch +:000000 100644 0000000 d3299ca A glibc-upstream-2.39-95.patch +:000000 100644 0000000 a06c76c A glibc-upstream-2.39-96.patch +:000000 100644 0000000 167b979 A glibc-upstream-2.39-97.patch +:000000 100644 0000000 f60c955 A glibc-upstream-2.39-98.patch +:000000 100644 0000000 9661d14 A glibc-upstream-2.39-99.patch +:100644 100644 bc8397c 993cdd7 M glibc.spec commit 107e77d871ab0e28575f435a3e9e907ad5b51523 Author: Arjun Shankar @@ -1026,8 +2160,8 @@ CommitDate: Fri Nov 15 14:12:38 2024 +0100 Add support for getrandom vDSO (RHEL-12867) -:000000 100644 00000000 9f18ba4a A glibc-RHEL-12867.patch -:100644 100644 1d9e0614 bc8397c8 M glibc.spec +:000000 100644 0000000 9f18ba4 A glibc-RHEL-12867.patch +:100644 100644 1d9e061 bc8397c M glibc.spec commit dcd95b1bb89dbb6b311c19ed4219e61b9e2cdfec Author: Florian Weimer @@ -1048,7 +2182,7 @@ CommitDate: Wed Nov 6 14:12:56 2024 +0100 (This version of this change preserves the glibc-devel.x86_64 contents.) -:100644 100644 5cde2bbb 1d9e0614 M glibc.spec +:100644 100644 5cde2bb 1d9e061 M glibc.spec commit 33b0330cd67b67e253cf9f26d1670dde969197e9 Author: Florian Weimer @@ -1064,7 +2198,7 @@ CommitDate: Tue Nov 5 13:57:28 2024 +0100 to their final locations. The symbolic links are removed again so that they do not end up in the shipped packages. -:100644 100644 160c5d61 5cde2bbb M glibc.spec +:100644 100644 160c5d6 5cde2bb M glibc.spec commit 2adb4529817c0aa79d83e208aa012bebc3c5ccb0 Author: Florian Weimer @@ -1101,7 +2235,7 @@ CommitDate: Mon Nov 4 15:02:33 2024 +0100 Note: Delete the *.src.rpm files because %{arch} has unexpected results for them. -:100644 100644 7a86af83 160c5d61 M glibc.spec +:100644 100644 7a86af8 160c5d6 M glibc.spec commit 0cf6b2eb0ae3feb6d29b51656d009f864f7fb7a5 Author: Florian Weimer @@ -1115,12 +2249,12 @@ CommitDate: Mon Nov 4 14:01:20 2024 +0100 without running them during the build. They can be very slow, so this saves a bit of build time. -:000000 100644 00000000 134acc90 A glibc-build-xtests-1.patch -:000000 100644 00000000 73049c14 A glibc-build-xtests-2.patch -:100644 100644 9bbb1bcd 7a86af83 M glibc.spec +:000000 100644 0000000 134acc9 A glibc-build-xtests-1.patch +:000000 100644 0000000 73049c1 A glibc-build-xtests-2.patch +:100644 100644 9bbb1bc 7a86af8 M glibc.spec commit bf426e9f022dfce3a5ca02aadbf5b8e9266cc249 -Merge: 70153ef0 a861d57f +Merge: 70153ef a861d57 Author: Florian Weimer AuthorDate: Thu Oct 31 09:12:00 2024 +0100 Commit: Florian Weimer @@ -1131,7 +2265,7 @@ CommitDate: Thu Oct 31 09:12:00 2024 +0100 This should allow us to use fast-forward merges for updating c10s going forward. -:100644 100644 196185ec 9bbb1bcd M glibc.spec +:100644 100644 196185e 9bbb1bc M glibc.spec commit 70153ef06d71b8614294db130bc67c758841e712 Author: Florian Weimer @@ -1141,7 +2275,7 @@ CommitDate: Thu Sep 19 17:39:53 2024 +0200 Ensure that xtests can be built (RHEL-59494) -:100644 100644 d777452f 196185ec M glibc.spec +:100644 100644 d777452 196185e M glibc.spec commit f00f7bf0b0f8bc6f99e8b01ee6a4d4655eb8a37c Author: Arjun Shankar @@ -1151,7 +2285,7 @@ CommitDate: Thu Aug 15 16:44:57 2024 +0200 Update gating.yaml to match c10s -:100644 100644 828ab9db cc382ade M gating.yaml +:100644 100644 828ab9d cc382ad M gating.yaml commit 9404e14f4dac97005341d16c86c4de672966d22e Author: Florian Weimer @@ -1163,9 +2297,9 @@ CommitDate: Wed Jul 31 16:02:44 2024 +0200 Related: RHEL-18039 -:000000 100644 00000000 549b26f9 A RHEL-18039-1.patch -:000000 100644 00000000 9834166e A RHEL-18039-2.patch -:100644 100644 f0e4aaaa d777452f M glibc.spec +:000000 100644 0000000 549b26f A RHEL-18039-1.patch +:000000 100644 0000000 9834166 A RHEL-18039-2.patch +:100644 100644 f0e4aaa d777452 M glibc.spec commit b30ff9539f93737240f46e7cbb06a6b6a4e44f8b Author: Arjun Shankar @@ -1197,26 +2331,26 @@ CommitDate: Wed Jul 31 13:39:31 2024 +0200 - math: Fix i386 and m68k fmod/fmodf on static build (BZ 31488) - posix: Fix pidfd_spawn/pidfd_spawnp leak if execve fails (BZ 31695) -:000000 100644 00000000 6203daa2 A glibc-upstream-2.39-76.patch -:000000 100644 00000000 f4c45e77 A glibc-upstream-2.39-77.patch -:000000 100644 00000000 2f3022c0 A glibc-upstream-2.39-78.patch -:000000 100644 00000000 fe3ef5c5 A glibc-upstream-2.39-79.patch -:000000 100644 00000000 793f597b A glibc-upstream-2.39-80.patch -:000000 100644 00000000 9f070f22 A glibc-upstream-2.39-81.patch -:000000 100644 00000000 26e6b1a0 A glibc-upstream-2.39-82.patch -:000000 100644 00000000 6b531dff A glibc-upstream-2.39-83.patch -:000000 100644 00000000 1e5251c7 A glibc-upstream-2.39-84.patch -:000000 100644 00000000 eb2394ac A glibc-upstream-2.39-85.patch -:000000 100644 00000000 b15d1acd A glibc-upstream-2.39-86.patch -:000000 100644 00000000 311203b8 A glibc-upstream-2.39-87.patch -:000000 100644 00000000 1afdee1b A glibc-upstream-2.39-88.patch -:000000 100644 00000000 a6c7115b A glibc-upstream-2.39-89.patch -:000000 100644 00000000 2c61b362 A glibc-upstream-2.39-90.patch -:000000 100644 00000000 bc0c1a3f A glibc-upstream-2.39-91.patch -:000000 100644 00000000 1847f4fb A glibc-upstream-2.39-92.patch -:000000 100644 00000000 b78c6750 A glibc-upstream-2.39-93.patch -:000000 100644 00000000 22cf29d0 A glibc-upstream-2.39-94.patch -:100644 100644 9da781fb f0e4aaaa M glibc.spec +:000000 100644 0000000 6203daa A glibc-upstream-2.39-76.patch +:000000 100644 0000000 f4c45e7 A glibc-upstream-2.39-77.patch +:000000 100644 0000000 2f3022c A glibc-upstream-2.39-78.patch +:000000 100644 0000000 fe3ef5c A glibc-upstream-2.39-79.patch +:000000 100644 0000000 793f597 A glibc-upstream-2.39-80.patch +:000000 100644 0000000 9f070f2 A glibc-upstream-2.39-81.patch +:000000 100644 0000000 26e6b1a A glibc-upstream-2.39-82.patch +:000000 100644 0000000 6b531df A glibc-upstream-2.39-83.patch +:000000 100644 0000000 1e5251c A glibc-upstream-2.39-84.patch +:000000 100644 0000000 eb2394a A glibc-upstream-2.39-85.patch +:000000 100644 0000000 b15d1ac A glibc-upstream-2.39-86.patch +:000000 100644 0000000 311203b A glibc-upstream-2.39-87.patch +:000000 100644 0000000 1afdee1 A glibc-upstream-2.39-88.patch +:000000 100644 0000000 a6c7115 A glibc-upstream-2.39-89.patch +:000000 100644 0000000 2c61b36 A glibc-upstream-2.39-90.patch +:000000 100644 0000000 bc0c1a3 A glibc-upstream-2.39-91.patch +:000000 100644 0000000 1847f4f A glibc-upstream-2.39-92.patch +:000000 100644 0000000 b78c675 A glibc-upstream-2.39-93.patch +:000000 100644 0000000 22cf29d A glibc-upstream-2.39-94.patch +:100644 100644 9da781f f0e4aaa M glibc.spec commit 0fa69c9930bdb67f13b4ca5c927c32aa28c89047 Author: Florian Weimer @@ -1231,10 +2365,10 @@ CommitDate: Mon Jul 22 12:42:08 2024 +0200 /usr/bin/perl to glibc-utils because it's no longer generated automatically. -:000000 100644 00000000 fc5bbfd1 A glibc-rh2292195-1.patch -:000000 100644 00000000 61436e85 A glibc-rh2292195-2.patch -:000000 100644 00000000 ef2d7f10 A glibc-rh2292195-3.patch -:100644 100644 79de104e 9da781fb M glibc.spec +:000000 100644 0000000 fc5bbfd A glibc-rh2292195-1.patch +:000000 100644 0000000 61436e8 A glibc-rh2292195-2.patch +:000000 100644 0000000 ef2d7f1 A glibc-rh2292195-3.patch +:100644 100644 79de104 9da781f M glibc.spec commit 0b92ae19ae64f21d96d45f0b9f0d535093e1c471 Author: Florian Weimer @@ -1250,7 +2384,7 @@ CommitDate: Fri Jul 19 16:22:47 2024 +0200 (cherry picked from commit add3da24f037a9d934eaeb9a6c246a45d3a716cc) -:100644 100644 0b9005a3 79de104e M glibc.spec +:100644 100644 0b9005a 79de104 M glibc.spec commit 9dd8b289e9498499293e4cd1e0006646a533c5cf Author: Florian Weimer @@ -1262,7 +2396,7 @@ CommitDate: Fri Jul 19 16:22:45 2024 +0200 (cherry picked from commit cb26947f73950b581adfac51cd51f8481cc95a94) -:100644 100644 4e8aac8a 0b9005a3 M glibc.spec +:100644 100644 4e8aac8 0b9005a M glibc.spec commit 4d899fdb652936c9460a46b63c72835809d8a583 Author: Arjun Shankar @@ -1275,7 +2409,7 @@ CommitDate: Thu Jul 18 14:40:40 2024 +0200 The --with-rtld-early-cflags configure option was being passed for ppc64 builds instead of for ppc64le. This commit fixes that. -:100644 100644 7dea0251 4e8aac8a M glibc.spec +:100644 100644 7dea025 4e8aac8 M glibc.spec commit 930bcade74b9677304e512683aa28a94db80449a Author: Patsy Griffin @@ -1285,7 +2419,7 @@ CommitDate: Wed Jul 3 10:43:25 2024 -0400 Move ANSI_X3.110-1983 support from main package to glibc-gconv-extra. -:100644 100644 d5fb2233 7dea0251 M glibc.spec +:100644 100644 d5fb223 7dea025 M glibc.spec commit ed89a91b4256ec27519a2f38877d7c0e0508b73a Author: Arjun Shankar @@ -1306,15 +2440,15 @@ CommitDate: Fri Jun 21 15:01:20 2024 +0200 - malloc/Makefile: Split and sort tests - x86/cet: fix shadow stack test scripts -:000000 100644 00000000 5c83c5b4 A glibc-upstream-2.39-66.patch -:000000 100644 00000000 30bd3b27 A glibc-upstream-2.39-67.patch -:000000 100644 00000000 979f9e01 A glibc-upstream-2.39-68.patch -:000000 100644 00000000 34018cee A glibc-upstream-2.39-69.patch -:000000 100644 00000000 78fef11d A glibc-upstream-2.39-70.patch -:000000 100644 00000000 6e73e1a9 A glibc-upstream-2.39-71.patch -:000000 100644 00000000 0f06f297 A glibc-upstream-2.39-72.patch -:000000 100644 00000000 49b5c425 A glibc-upstream-2.39-75.patch -:100644 100644 13a57dfa d5fb2233 M glibc.spec +:000000 100644 0000000 5c83c5b A glibc-upstream-2.39-66.patch +:000000 100644 0000000 30bd3b2 A glibc-upstream-2.39-67.patch +:000000 100644 0000000 979f9e0 A glibc-upstream-2.39-68.patch +:000000 100644 0000000 34018ce A glibc-upstream-2.39-69.patch +:000000 100644 0000000 78fef11 A glibc-upstream-2.39-70.patch +:000000 100644 0000000 6e73e1a A glibc-upstream-2.39-71.patch +:000000 100644 0000000 0f06f29 A glibc-upstream-2.39-72.patch +:000000 100644 0000000 49b5c42 A glibc-upstream-2.39-75.patch +:100644 100644 13a57df d5fb223 M glibc.spec commit fec1cd8ce1001d62922c39fded760a8e2c6fd344 Author: Arjun Shankar @@ -1338,18 +2472,18 @@ CommitDate: Wed Jun 5 19:13:35 2024 +0200 - libsupport: Add xgetpeername - x86_64: Fix missing wcsncat function definition without multiarch (x86-64-v4) -:000000 100644 00000000 0bb52db5 A glibc-upstream-2.39-55.patch -:000000 100644 00000000 1acf9528 A glibc-upstream-2.39-56.patch -:000000 100644 00000000 aee72fa6 A glibc-upstream-2.39-57.patch -:000000 100644 00000000 cbe201a9 A glibc-upstream-2.39-58.patch -:000000 100644 00000000 0f4fb1c8 A glibc-upstream-2.39-59.patch -:000000 100644 00000000 8765056a A glibc-upstream-2.39-60.patch -:000000 100644 00000000 8c4aa981 A glibc-upstream-2.39-61.patch -:000000 100644 00000000 e9289356 A glibc-upstream-2.39-62.patch -:000000 100644 00000000 4db9709b A glibc-upstream-2.39-63.patch -:000000 100644 00000000 bbba7667 A glibc-upstream-2.39-64.patch -:000000 100644 00000000 60b9efb2 A glibc-upstream-2.39-65.patch -:100644 100644 a20b9e57 13a57dfa M glibc.spec +:000000 100644 0000000 0bb52db A glibc-upstream-2.39-55.patch +:000000 100644 0000000 1acf952 A glibc-upstream-2.39-56.patch +:000000 100644 0000000 aee72fa A glibc-upstream-2.39-57.patch +:000000 100644 0000000 cbe201a A glibc-upstream-2.39-58.patch +:000000 100644 0000000 0f4fb1c A glibc-upstream-2.39-59.patch +:000000 100644 0000000 8765056 A glibc-upstream-2.39-60.patch +:000000 100644 0000000 8c4aa98 A glibc-upstream-2.39-61.patch +:000000 100644 0000000 e928935 A glibc-upstream-2.39-62.patch +:000000 100644 0000000 4db9709 A glibc-upstream-2.39-63.patch +:000000 100644 0000000 bbba766 A glibc-upstream-2.39-64.patch +:000000 100644 0000000 60b9efb A glibc-upstream-2.39-65.patch +:100644 100644 a20b9e5 13a57df M glibc.spec commit dc6792e4d372050efd8b8cf7442e33ceb893d563 Author: Florian Weimer @@ -1361,7 +2495,7 @@ CommitDate: Fri May 31 16:08:40 2024 +0200 (cherry picked from commit 207f40b76617449cc02fadaf51f24982382dfb8e) -:100644 100644 0928010f a20b9e57 M glibc.spec +:100644 100644 0928010 a20b9e5 M glibc.spec commit 2c1b0f092c850e5fb38c31bae5c37f69cd23663d Author: Arjun Shankar @@ -1385,7 +2519,7 @@ CommitDate: Wed May 15 17:34:24 2024 +0200 * 2d5af83031edfa8191254814609961e4e57766fc * e9d072eb64a251e09a121122941605f4a22d170a -:100644 100644 5a988d70 0928010f M glibc.spec +:100644 100644 5a988d7 0928010 M glibc.spec commit f892dd803492e4475d5db5c568c3060a970d306f Author: Florian Weimer @@ -1395,8 +2529,8 @@ CommitDate: Fri May 10 18:43:41 2024 +0200 Use unsigned types in / (RHEL-22226) -:000000 100644 00000000 3d09f70e A glibc-RHEL-22226.patch -:100644 100644 67502792 5a988d70 M glibc.spec +:000000 100644 0000000 3d09f70 A glibc-RHEL-22226.patch +:100644 100644 6750279 5a988d7 M glibc.spec commit b3097fa24a289d50b5104d99235d67efa151c74d Author: Florian Weimer @@ -1418,22 +2552,22 @@ CommitDate: Fri May 10 17:54:45 2024 +0200 - login: structs utmp, utmpx, lastlog _TIME_BITS independence (bug 30701) - login: Check default sizes of structs utmp, utmpx, lastlog -:000000 100644 00000000 c3070ada A glibc-upstream-2.39-40.patch -:000000 100644 00000000 659acb3f A glibc-upstream-2.39-41.patch -:000000 100644 00000000 6be162f7 A glibc-upstream-2.39-42.patch -:000000 100644 00000000 093670f2 A glibc-upstream-2.39-43.patch -:000000 100644 00000000 92b587aa A glibc-upstream-2.39-44.patch -:000000 100644 00000000 208555ef A glibc-upstream-2.39-45.patch -:000000 100644 00000000 d2f28d53 A glibc-upstream-2.39-46.patch -:000000 100644 00000000 0ab41562 A glibc-upstream-2.39-47.patch -:000000 100644 00000000 133d6a0b A glibc-upstream-2.39-48.patch -:000000 100644 00000000 a3c6b886 A glibc-upstream-2.39-49.patch -:000000 100644 00000000 d79e2dbc A glibc-upstream-2.39-50.patch -:000000 100644 00000000 4c9718c1 A glibc-upstream-2.39-51.patch -:000000 100644 00000000 c03d7cc4 A glibc-upstream-2.39-52.patch -:000000 100644 00000000 94ec6624 A glibc-upstream-2.39-53.patch -:000000 100644 00000000 7ed1911f A glibc-upstream-2.39-54.patch -:100644 100644 5e6fa9fb 67502792 M glibc.spec +:000000 100644 0000000 c3070ad A glibc-upstream-2.39-40.patch +:000000 100644 0000000 659acb3 A glibc-upstream-2.39-41.patch +:000000 100644 0000000 6be162f A glibc-upstream-2.39-42.patch +:000000 100644 0000000 093670f A glibc-upstream-2.39-43.patch +:000000 100644 0000000 92b587a A glibc-upstream-2.39-44.patch +:000000 100644 0000000 208555e A glibc-upstream-2.39-45.patch +:000000 100644 0000000 d2f28d5 A glibc-upstream-2.39-46.patch +:000000 100644 0000000 0ab4156 A glibc-upstream-2.39-47.patch +:000000 100644 0000000 133d6a0 A glibc-upstream-2.39-48.patch +:000000 100644 0000000 a3c6b88 A glibc-upstream-2.39-49.patch +:000000 100644 0000000 d79e2db A glibc-upstream-2.39-50.patch +:000000 100644 0000000 4c9718c A glibc-upstream-2.39-51.patch +:000000 100644 0000000 c03d7cc A glibc-upstream-2.39-52.patch +:000000 100644 0000000 94ec662 A glibc-upstream-2.39-53.patch +:000000 100644 0000000 7ed1911 A glibc-upstream-2.39-54.patch +:100644 100644 5e6fa9fb 6750279 M glibc.spec commit c6129da0b9d734f66e2ed1fae3cf96bcb4d2970a Author: Florian Weimer @@ -1443,7 +2577,7 @@ CommitDate: Fri May 3 18:04:20 2024 +0200 Update changelog -:100644 100644 a338188b 5e6fa9fb M glibc.spec +:100644 100644 a338188 5e6fa9fb M glibc.spec commit 22d78986caa580c2165ecca462a42cc0e37549a3 Author: Tulio Magno Quites Machado Filho @@ -1456,7 +2590,7 @@ CommitDate: Thu May 2 17:53:09 2024 +0200 Co-authored-by: Florian Weimer (cherry picked from commit 09d1856f529d26545de4651b8415690e934efdf5) -:100644 100644 a727fb42 a338188b M glibc.spec +:100644 100644 a727fb4 a338188 M glibc.spec commit d521284ad19ba71d3ed935df6c339874e546069a Author: Tulio Magno Quites Machado Filho @@ -1468,7 +2602,7 @@ CommitDate: Thu May 2 17:53:09 2024 +0200 (cherry picked from commit 34d14091784c508be9a0b451fdd97d468bad016c) -:100644 100644 c8539519 a727fb42 M glibc.spec +:100644 100644 c853951 a727fb4 M glibc.spec commit 4ccb7475fc7d51a68f56cd9039e7184987bc9173 Author: Florian Weimer @@ -1486,8 +2620,8 @@ CommitDate: Thu May 2 17:53:09 2024 +0200 Co-authored-by: Tulio Magno Quites Machado Filho (cherry picked from commit 7749ea58a9e2198f830d6eb8b162344aaf8acb84) -:100644 100644 cfeb39ef c8539519 M glibc.spec -:100644 100644 ba1719a9 5257de7c M wrap-find-debuginfo.sh +:100644 100644 cfeb39e c853951 M glibc.spec +:100644 100644 ba1719a 5257de7 M wrap-find-debuginfo.sh commit a0d62dc5411a2586f659de92f11a14bfdaedea2a Author: Florian Weimer @@ -1499,7 +2633,7 @@ CommitDate: Thu May 2 17:53:09 2024 +0200 (cherry picked from commit 0d17d18a8862d7737a041d1360d0775b62275dd7) -:100644 100644 ffb42609 cfeb39ef M glibc.spec +:100644 100644 ffb4260 cfeb39e M glibc.spec commit b3da3b4101b07800eafc05d9bfb5b7454a3c3f05 Author: Florian Weimer @@ -1513,7 +2647,7 @@ CommitDate: Thu May 2 17:53:09 2024 +0200 (cherry picked from commit 114492e2a8a0447f90fe19cf4631d58d8ce80b49) -:100644 100644 b7846553 ffb42609 M glibc.spec +:100644 100644 b784655 ffb4260 M glibc.spec commit 94914be52fd61dacfeb2fe1a27b3741545093a36 Author: Florian Weimer @@ -1537,15 +2671,15 @@ CommitDate: Fri Apr 26 10:13:42 2024 +0200 - i386: ulp update for SSE2 --disable-multi-arch configurations - nptl: Fix tst-cancel30 on kernels without ppoll_time64 support -:000000 100644 00000000 f5cf970d A glibc-upstream-2.39-32.patch -:000000 100644 00000000 a13dbfa2 A glibc-upstream-2.39-33.patch -:000000 100644 00000000 961fedda A glibc-upstream-2.39-34.patch -:000000 100644 00000000 41555b4b A glibc-upstream-2.39-35.patch -:000000 100644 00000000 28518451 A glibc-upstream-2.39-36.patch -:000000 100644 00000000 b0a31a8c A glibc-upstream-2.39-37.patch -:000000 100644 00000000 5bda08be A glibc-upstream-2.39-38.patch -:000000 100644 00000000 4dee6eaf A glibc-upstream-2.39-39.patch -:100644 100644 96879123 b7846553 M glibc.spec +:000000 100644 0000000 f5cf970 A glibc-upstream-2.39-32.patch +:000000 100644 0000000 a13dbfa A glibc-upstream-2.39-33.patch +:000000 100644 0000000 961fedd A glibc-upstream-2.39-34.patch +:000000 100644 0000000 41555b4 A glibc-upstream-2.39-35.patch +:000000 100644 0000000 2851845 A glibc-upstream-2.39-36.patch +:000000 100644 0000000 b0a31a8 A glibc-upstream-2.39-37.patch +:000000 100644 0000000 5bda08b A glibc-upstream-2.39-38.patch +:000000 100644 0000000 4dee6ea A glibc-upstream-2.39-39.patch +:100644 100644 9687912 b784655 M glibc.spec commit 1bea1361dc740cb07eff8eace4f58619cf8f4fe4 Author: Florian Weimer @@ -1568,17 +2702,17 @@ CommitDate: Thu Apr 18 19:42:06 2024 +0200 - aarch64/fpu: Sync libmvec routines from 2.39 and before with AOR - i386: Use generic memrchr in libc (bug 31316) -:000000 100644 00000000 fb7281f8 A glibc-upstream-2.39-22.patch -:000000 100644 00000000 11773cf6 A glibc-upstream-2.39-23.patch -:000000 100644 00000000 61d3f48b A glibc-upstream-2.39-24.patch -:000000 100644 00000000 f168f15d A glibc-upstream-2.39-25.patch -:000000 100644 00000000 278d238e A glibc-upstream-2.39-26.patch -:000000 100644 00000000 8f136ce0 A glibc-upstream-2.39-27.patch -:000000 100644 00000000 b5546e01 A glibc-upstream-2.39-28.patch -:000000 100644 00000000 41a85b1c A glibc-upstream-2.39-29.patch -:000000 100644 00000000 3796da68 A glibc-upstream-2.39-30.patch -:000000 100644 00000000 bf21203d A glibc-upstream-2.39-31.patch -:100644 100644 493b171e 96879123 M glibc.spec +:000000 100644 0000000 fb7281f A glibc-upstream-2.39-22.patch +:000000 100644 0000000 11773cf A glibc-upstream-2.39-23.patch +:000000 100644 0000000 61d3f48 A glibc-upstream-2.39-24.patch +:000000 100644 0000000 f168f15 A glibc-upstream-2.39-25.patch +:000000 100644 0000000 278d238 A glibc-upstream-2.39-26.patch +:000000 100644 0000000 8f136ce A glibc-upstream-2.39-27.patch +:000000 100644 0000000 b5546e0 A glibc-upstream-2.39-28.patch +:000000 100644 0000000 41a85b1 A glibc-upstream-2.39-29.patch +:000000 100644 0000000 3796da6 A glibc-upstream-2.39-30.patch +:000000 100644 0000000 bf21203 A glibc-upstream-2.39-31.patch +:100644 100644 493b171 9687912 M glibc.spec commit 24af28d49b2c38436d61f178a68d585f3cdf311e Author: Arjun Shankar @@ -1605,21 +2739,21 @@ CommitDate: Thu Apr 4 17:12:08 2024 +0200 - powerpc: Placeholder and infrastructure/build support to add Power11 related changes. - powerpc: Add HWCAP3/HWCAP4 data to TCB for Power Architecture. -:000000 100644 00000000 858f28ed A glibc-upstream-2.39-10.patch -:000000 100644 00000000 d816c3c2 A glibc-upstream-2.39-11.patch -:000000 100644 00000000 74e0b728 A glibc-upstream-2.39-12.patch -:000000 100644 00000000 0a52189c A glibc-upstream-2.39-13.patch -:000000 100644 00000000 a49f7881 A glibc-upstream-2.39-14.patch -:000000 100644 00000000 037a4d30 A glibc-upstream-2.39-15.patch -:000000 100644 00000000 e5fa640f A glibc-upstream-2.39-16.patch -:000000 100644 00000000 050355c5 A glibc-upstream-2.39-17.patch -:000000 100644 00000000 60a31ff5 A glibc-upstream-2.39-18.patch -:000000 100644 00000000 fa9220e6 A glibc-upstream-2.39-19.patch -:000000 100644 00000000 3aac6651 A glibc-upstream-2.39-20.patch -:000000 100644 00000000 6ceb90c1 A glibc-upstream-2.39-21.patch -:000000 100644 00000000 653d5a11 A glibc-upstream-2.39-8.patch -:000000 100644 00000000 4289fa2f A glibc-upstream-2.39-9.patch -:100644 100644 990213cc 493b171e M glibc.spec +:000000 100644 0000000 858f28e A glibc-upstream-2.39-10.patch +:000000 100644 0000000 d816c3c A glibc-upstream-2.39-11.patch +:000000 100644 0000000 74e0b72 A glibc-upstream-2.39-12.patch +:000000 100644 0000000 0a52189 A glibc-upstream-2.39-13.patch +:000000 100644 0000000 a49f788 A glibc-upstream-2.39-14.patch +:000000 100644 0000000 037a4d3 A glibc-upstream-2.39-15.patch +:000000 100644 0000000 e5fa640 A glibc-upstream-2.39-16.patch +:000000 100644 0000000 050355c A glibc-upstream-2.39-17.patch +:000000 100644 0000000 60a31ff A glibc-upstream-2.39-18.patch +:000000 100644 0000000 fa9220e A glibc-upstream-2.39-19.patch +:000000 100644 0000000 3aac665 A glibc-upstream-2.39-20.patch +:000000 100644 0000000 6ceb90c A glibc-upstream-2.39-21.patch +:000000 100644 0000000 653d5a1 A glibc-upstream-2.39-8.patch +:000000 100644 0000000 4289fa2 A glibc-upstream-2.39-9.patch +:100644 100644 990213c 493b171 M glibc.spec commit 1470fe1da7c7d6de4fe60d92e3f10c6dff5c6400 Author: Florian Weimer @@ -1631,7 +2765,7 @@ CommitDate: Tue Mar 26 18:04:20 2024 +0100 (cherry picked from commit 01911dc70e30a96d5a7835475187ff6241a68a2d) -:100644 100644 56e79258 990213cc M glibc.spec +:100644 100644 56e7925 990213c M glibc.spec commit fc720e6194b23fc24af772fa50cf07caba15c4f9 Author: Joseph Myers @@ -1662,8 +2796,8 @@ CommitDate: Tue Mar 26 18:04:20 2024 +0100 (cherry picked from commit e025effd84d415d98dcebbc97cdf03e6e44465b8) -:100644 100644 2be35da3 56e79258 M glibc.spec -:100644 100644 1fae7845 ba1719a9 M wrap-find-debuginfo.sh +:100644 100644 2be35da 56e7925 M glibc.spec +:100644 100644 1fae784 ba1719a M wrap-find-debuginfo.sh commit 68abc16af72f1726f3fad3369bab8b812b306bbc Author: Arjun Shankar @@ -1683,14 +2817,14 @@ CommitDate: Tue Mar 19 15:28:11 2024 +0100 - arm: Remove wrong ldr from _dl_start_user (BZ 31339) - Replace advisories directory -:000000 100644 00000000 487c192f A glibc-upstream-2.39-1.patch -:000000 100644 00000000 77deb047 A glibc-upstream-2.39-2.patch -:000000 100644 00000000 c98c21ce A glibc-upstream-2.39-3.patch -:000000 100644 00000000 cc3350f4 A glibc-upstream-2.39-4.patch -:000000 100644 00000000 92661f69 A glibc-upstream-2.39-5.patch -:000000 100644 00000000 61f41332 A glibc-upstream-2.39-6.patch -:000000 100644 00000000 5932145d A glibc-upstream-2.39-7.patch -:100644 100644 bd120b29 2be35da3 M glibc.spec +:000000 100644 0000000 487c192 A glibc-upstream-2.39-1.patch +:000000 100644 0000000 77deb04 A glibc-upstream-2.39-2.patch +:000000 100644 0000000 c98c21c A glibc-upstream-2.39-3.patch +:000000 100644 0000000 cc3350f A glibc-upstream-2.39-4.patch +:000000 100644 0000000 92661f6 A glibc-upstream-2.39-5.patch +:000000 100644 0000000 61f4133 A glibc-upstream-2.39-6.patch +:000000 100644 0000000 5932145 A glibc-upstream-2.39-7.patch +:100644 100644 bd120b2 2be35da M glibc.spec commit aa075b2434fabc6cdb7658c6c125659676c29d18 Author: Arjun Shankar @@ -1718,7 +2852,7 @@ CommitDate: Wed Feb 28 15:54:50 2024 +0100 ScanCode toolkit: https://github.com/nexB/scancode-toolkit -:100644 100644 23ae3f77 bd120b29 M glibc.spec +:100644 100644 23ae3f7 bd120b2 M glibc.spec commit 797647f2a81cf749f2e08350ffb68ee0d3425a69 Author: Florian Weimer @@ -1728,7 +2862,7 @@ CommitDate: Wed Feb 7 09:24:40 2024 +0100 Ignore symbolic links to . in sysroot construction -:100644 100644 94f75de4 23ae3f77 M glibc.spec +:100644 100644 94f75de 23ae3f7 M glibc.spec commit 385a689f17fe219dfd74edd5a829f0ad748d2814 Author: Carlos O'Donell @@ -1752,8 +2886,8 @@ CommitDate: Tue Feb 6 17:46:04 2024 -0500 - version.h, include/features.h: Bump version to 2.39 - Create ChangeLog.old/ChangeLog.28 -:100644 100644 6116752d 94f75de4 M glibc.spec -:100644 100644 e829191f d3d52750 M sources +:100644 100644 6116752 94f75de M glibc.spec +:100644 100644 e829191 d3d5275 M sources commit 7ce2803ac6533c4acc0193ea5991e4011b4ccdd1 Author: Martin Coufal @@ -1766,7 +2900,7 @@ CommitDate: Fri Feb 2 14:30:22 2024 +0000 * add '-D_GNU_SOURCE' to compilation as 'inet6_opt_init' is a GNU extension -:100755 100755 44962e18 3649de7f M tests/Regression/bz488748-inet6-opt-init-sets-incorrect-header-len/runtest.sh +:100755 100755 44962e1 3649de7 M tests/Regression/bz488748-inet6-opt-init-sets-incorrect-header-len/runtest.sh commit ea742f068aba4e04ead6670ecf3954260eced0e0 Author: Martin Coufal @@ -1778,7 +2912,7 @@ CommitDate: Fri Feb 2 14:30:22 2024 +0000 * include 'unistd.h' -:100644 100644 965d3d1d 4030866e M tests/Standardscompliance/bz531160-ldd-Vulnerable-to-Social-Engineering-Exploits/interp.c +:100644 100644 965d3d1 4030866 M tests/Standardscompliance/bz531160-ldd-Vulnerable-to-Social-Engineering-Exploits/interp.c commit cace4f829d8f7a5a47719cbf00230af3d705d898 Author: Martin Coufal @@ -1791,10 +2925,10 @@ CommitDate: Fri Feb 2 14:30:22 2024 +0000 * use 'fclose' * add missing includes -:100644 100644 2b4f286c 23679f43 M tests/Sanity/basic-linking-sanity/lc.c -:100644 100644 72612b94 ca456378 M tests/Sanity/basic-linking-sanity/lm.c -:100644 100644 65aca15c 7ce81d78 M tests/Sanity/basic-linking-sanity/lpthread.c -:100644 100644 2a31e0d2 daadf29a M tests/Sanity/basic-linking-sanity/lrt.c +:100644 100644 2b4f286 23679f4 M tests/Sanity/basic-linking-sanity/lc.c +:100644 100644 72612b9 ca45637 M tests/Sanity/basic-linking-sanity/lm.c +:100644 100644 65aca15 7ce81d7 M tests/Sanity/basic-linking-sanity/lpthread.c +:100644 100644 2a31e0d daadf29 M tests/Sanity/basic-linking-sanity/lrt.c commit 82e9f5dfc64db01f3b14e751b4ff661617ed5613 Author: Martin Coufal @@ -1807,8 +2941,8 @@ CommitDate: Fri Feb 2 14:30:22 2024 +0000 * add missing casts to int * add missing includes -:100644 100644 dfc04209 f2491e23 M tests/Regression/double_free_exploit/exploit.c -:100644 100644 b9eb76f4 be9f77af M tests/Regression/double_free_exploit/exploit2.c +:100644 100644 dfc0420 f2491e2 M tests/Regression/double_free_exploit/exploit.c +:100644 100644 b9eb76f be9f77a M tests/Regression/double_free_exploit/exploit2.c commit 9b8bc360e15dd9edf752b9e6c0f26c1ceba37882 Author: Martin Coufal @@ -1820,7 +2954,7 @@ CommitDate: Fri Feb 2 14:30:22 2024 +0000 * include 'wchar.h' -:100644 100644 496fe4cf b8636bba M tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/test.c +:100644 100644 496fe4c b8636bb M tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/test.c commit 306c1b65fae92800002cc1b80a4229f4a43c00cb Author: Martin Coufal @@ -1832,7 +2966,7 @@ CommitDate: Fri Feb 2 14:30:22 2024 +0000 * add includes -:100644 100644 95514353 1153a58f M tests/Regression/bz600457-locally-defined-symbol-resolving-failure/reproducer.tar.gz +:100644 100644 9551435 1153a58 M tests/Regression/bz600457-locally-defined-symbol-resolving-failure/reproducer.tar.gz commit 9ba57dfb0e7318975ca826a925bce880f3b652c3 Author: Martin Coufal @@ -1844,7 +2978,7 @@ CommitDate: Fri Feb 2 14:30:22 2024 +0000 * include 'unistd.h' -:100644 100644 76a5ddac 4063dab4 M tests/Regression/bz549813-dl-close-race-with-C-destructor/C_Only.tar +:100644 100644 76a5dda 4063dab M tests/Regression/bz549813-dl-close-race-with-C-destructor/C_Only.tar commit ec13b9b33e27ebbba3205e77906193b2ddf2406b Author: Martin Coufal @@ -1856,7 +2990,7 @@ CommitDate: Fri Feb 2 14:30:22 2024 +0000 * include 'unistd.h' -:100644 100644 471fe169 c01a1160 M tests/Regression/bz529997-sem_timedwait-with-invalid-time/real-reproducer.c +:100644 100644 471fe16 c01a116 M tests/Regression/bz529997-sem_timedwait-with-invalid-time/real-reproducer.c commit d1b1cc9c2687bf92949bde1342c6296e33b167d2 Author: Martin Coufal @@ -1869,8 +3003,8 @@ CommitDate: Fri Feb 2 14:30:22 2024 +0000 * add 'gcc' to required packages * include 'unistd.h' -:100644 100644 da5ba668 a737a0a7 M tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/main.fmf -:100644 100644 05c7a338 22f9419d M tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/testcase.c +:100644 100644 da5ba66 a737a0a M tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/main.fmf +:100644 100644 05c7a33 22f9419 M tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/testcase.c commit 3eb443a2d195213a0780f0a49f1ce7cc77d413a7 Author: Martin Coufal @@ -1883,8 +3017,8 @@ CommitDate: Fri Feb 2 14:30:22 2024 +0000 * add gcc to required packages * include 'unistd.h' -:100644 100644 422d973a c3601ae3 M tests/Regression/bz1563046-getlogin-r-return-early-when-linux-sentinel-value/main.fmf -:100644 100644 c2dceb15 fd4f9a03 M tests/Regression/bz1563046-getlogin-r-return-early-when-linux-sentinel-value/tst-getlogin_r.c +:100644 100644 422d973 c3601ae M tests/Regression/bz1563046-getlogin-r-return-early-when-linux-sentinel-value/main.fmf +:100644 100644 c2dceb1 fd4f9a0 M tests/Regression/bz1563046-getlogin-r-return-early-when-linux-sentinel-value/tst-getlogin_r.c commit 1b6496d171cb69bbaca97bae285f7d646f5a88e6 Author: Martin Coufal @@ -1895,10 +3029,10 @@ CommitDate: Fri Feb 2 14:30:22 2024 +0000 CI Tests: add Regression/bz1577212-glibc-Remove-stray-Sun-RPC-exports test -:000000 100644 00000000 378022c6 A tests/Regression/bz1577212-glibc-Remove-stray-Sun-RPC-exports/Makefile -:000000 100644 00000000 d77a6ded A tests/Regression/bz1577212-glibc-Remove-stray-Sun-RPC-exports/PURPOSE -:000000 100644 00000000 e251cecf A tests/Regression/bz1577212-glibc-Remove-stray-Sun-RPC-exports/main.fmf -:000000 100755 00000000 6513c9a0 A tests/Regression/bz1577212-glibc-Remove-stray-Sun-RPC-exports/runtest.sh +:000000 100644 0000000 378022c A tests/Regression/bz1577212-glibc-Remove-stray-Sun-RPC-exports/Makefile +:000000 100644 0000000 d77a6de A tests/Regression/bz1577212-glibc-Remove-stray-Sun-RPC-exports/PURPOSE +:000000 100644 0000000 e251cec A tests/Regression/bz1577212-glibc-Remove-stray-Sun-RPC-exports/main.fmf +:000000 100755 0000000 6513c9a A tests/Regression/bz1577212-glibc-Remove-stray-Sun-RPC-exports/runtest.sh commit 53a0744ff2eec1d9975343a327d3b70fce61dd66 Author: Martin Coufal @@ -1909,10 +3043,10 @@ CommitDate: Fri Feb 2 14:30:22 2024 +0000 CI Tests: add Regression/bz1430477-glibc-Missing-else-branch-in-libc-calloc test -:000000 100644 00000000 3429bda0 A tests/Regression/bz1430477-glibc-Missing-else-branch-in-libc-calloc/Makefile -:000000 100644 00000000 d31ceb1b A tests/Regression/bz1430477-glibc-Missing-else-branch-in-libc-calloc/PURPOSE -:000000 100644 00000000 f5ff109d A tests/Regression/bz1430477-glibc-Missing-else-branch-in-libc-calloc/main.fmf -:000000 100755 00000000 23438b7c A tests/Regression/bz1430477-glibc-Missing-else-branch-in-libc-calloc/runtest.sh +:000000 100644 0000000 3429bda A tests/Regression/bz1430477-glibc-Missing-else-branch-in-libc-calloc/Makefile +:000000 100644 0000000 d31ceb1 A tests/Regression/bz1430477-glibc-Missing-else-branch-in-libc-calloc/PURPOSE +:000000 100644 0000000 f5ff109 A tests/Regression/bz1430477-glibc-Missing-else-branch-in-libc-calloc/main.fmf +:000000 100755 0000000 23438b7 A tests/Regression/bz1430477-glibc-Missing-else-branch-in-libc-calloc/runtest.sh commit 0bd93c5697bc60e4f4a84f5b55c98f351883e689 Author: Florian Weimer @@ -1928,8 +3062,8 @@ CommitDate: Wed Jan 31 17:27:51 2024 +0100 Forward-port of the feature from Fedora 35, with subsequent fixes: Add kernel header files, and do not use = in linker scripts. -:100644 100644 c7068139 6116752d M glibc.spec -:100644 100644 d26f8ebc 1fae7845 M wrap-find-debuginfo.sh +:100644 100644 c706813 6116752 M glibc.spec +:100644 100644 d26f8eb 1fae784 M wrap-find-debuginfo.sh commit 23dbf2db005fc80d9b95ced7a071f295bc0a241d Author: Patsy Griffin @@ -1947,8 +3081,8 @@ CommitDate: Tue Jan 30 13:18:43 2024 -0500 - Use binutils 2.42 branch in build-many-glibcs.py - elf: correct relocation statistics for !ELF_MACHINE_START_ADDRESS -:100644 100644 70f93bf1 c7068139 M glibc.spec -:100644 100644 5c077e43 e829191f M sources +:100644 100644 70f93bf c706813 M glibc.spec +:100644 100644 5c077e4 e829191 M sources commit 9a84f6d2802be4753088e32eb28c414f1794ebf7 Author: Arjun Shankar @@ -1964,8 +3098,8 @@ CommitDate: Mon Jan 29 15:10:24 2024 +0100 - localedata: Use consistent values for grouping and mon_grouping - manual: fix order of arguments of memalign and aligned_alloc (Bug 27547) -:100644 100644 fe83192d 70f93bf1 M glibc.spec -:100644 100644 abf46e97 5c077e43 M sources +:100644 100644 fe83192 70f93bf M glibc.spec +:100644 100644 abf46e9 5c077e4 M sources commit 0d0f91a2e8fd728f9e58d00202ee8ee1ddfbb643 Author: Jens Petersen @@ -1975,7 +3109,7 @@ CommitDate: Thu Jan 25 17:33:00 2024 +0800 no longer supplement langpacks if all-langpacks installed -:100644 100644 c39daebd fe83192d M glibc.spec +:100644 100644 c39daeb fe83192 M glibc.spec commit 1f97fe5ae0dd6b20123624d5e992057fcad93cf7 Author: Florian Weimer @@ -2006,8 +3140,8 @@ CommitDate: Wed Jan 24 14:55:14 2024 +0100 - Update syscall lists for Linux 6.7 - stdlib: Remove unused is_aligned function from qsort.c -:100644 100644 5a28cb55 c39daebd M glibc.spec -:100644 100644 cad63346 abf46e97 M sources +:100644 100644 5a28cb5 c39daeb M glibc.spec +:100644 100644 cad6334 abf46e9 M sources commit b11c9771f72dffde4c755a940879f4a123a773c8 Author: Fedora Release Engineering @@ -2017,7 +3151,7 @@ CommitDate: Fri Jan 19 22:32:17 2024 +0000 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -:100644 100644 12f56732 5a28cb55 M glibc.spec +:100644 100644 12f5673 5a28cb5 M glibc.spec commit 0239af7b6cb8849822d7c0b6fa2ff5e87b3c8034 Author: DJ Delorie @@ -2034,8 +3168,8 @@ CommitDate: Tue Jan 16 17:12:40 2024 -0500 - stdlib: Fix heapsort for cases with exactly two elements - localedata: anp_IN: Fix abbreviated month names -:100644 100644 69660264 12f56732 M glibc.spec -:100644 100644 8dbf09f0 cad63346 M sources +:100644 100644 6966026 12f5673 M glibc.spec +:100644 100644 8dbf09f cad6334 M sources commit 9aa434eb3feb46b42a0caee1657d72f5efc93ad7 Author: DJ Delorie @@ -2051,8 +3185,8 @@ CommitDate: Mon Jan 15 17:54:52 2024 -0500 - x86-64: Check if mprotect works before rewriting PLT - aarch64: Add NEWS entry about libmvec for 2.39 -:100644 100644 108bcf14 69660264 M glibc.spec -:100644 100644 97cd1582 8dbf09f0 M sources +:100644 100644 108bcf1 6966026 M glibc.spec +:100644 100644 97cd158 8dbf09f M sources commit 5c2b7dda4c82927142e77ca15b6b95e8e0305c0d Author: Carlos O'Donell @@ -2183,10 +3317,10 @@ CommitDate: Mon Jan 15 08:15:54 2024 -0500 - x86-64: Fix the tcb field load for x32 [BZ #31185] - x86-64: Fix the dtv field load for x32 [BZ #31184] -:100644 100644 7328fc8b ae36c516 M glibc-python3.patch -:100644 000000 0b7fa16a 00000000 D glibc-rh2255506.patch -:100644 100644 12557007 108bcf14 M glibc.spec -:100644 100644 a2ca4e39 97cd1582 M sources +:100644 100644 7328fc8 ae36c51 M glibc-python3.patch +:100644 000000 0b7fa16 0000000 D glibc-rh2255506.patch +:100644 100644 1255700 108bcf1 M glibc.spec +:100644 100644 a2ca4e3 97cd158 M sources commit d6f60005eb62ac0f1614e96f76281f719b214ba8 Author: Florian Weimer @@ -2196,8 +3330,8 @@ CommitDate: Wed Jan 3 16:42:48 2024 +0100 Infinite loop in res_mkquery with malformed domain name (#2255506) -:000000 100644 00000000 0b7fa16a A glibc-rh2255506.patch -:100644 100644 86aa9f58 12557007 M glibc.spec +:000000 100644 0000000 0b7fa16 A glibc-rh2255506.patch +:100644 100644 86aa9f5 1255700 M glibc.spec commit ca9e6ac79501d9ee8eeaf795c5764d8733534910 Author: Florian Weimer @@ -2250,8 +3384,8 @@ CommitDate: Fri Dec 22 16:20:43 2023 +0100 - resolv: Fix a few unaligned accesses to fields in HEADER - x86: Check PT_GNU_PROPERTY early -:100644 100644 41c5e7eb 86aa9f58 M glibc.spec -:100644 100644 77fe20a0 a2ca4e39 M sources +:100644 100644 41c5e7e 86aa9f5 M glibc.spec +:100644 100644 77fe20a a2ca4e3 M sources commit 259d575cdf1efb48b486811f4faadbcd836f0cbc Author: Carlos O'Donell @@ -2267,7 +3401,7 @@ CommitDate: Wed Dec 13 20:44:07 2023 -0500 Resolves: RHEL-19045 -:100644 100644 a1d85891 41c5e7eb M glibc.spec +:100644 100644 a1d8589 41c5e7e M glibc.spec commit 37a93f168524cf7664d9c2fb27b496d272b9a067 Author: Carlos O'Donell @@ -2306,9 +3440,9 @@ CommitDate: Tue Dec 12 11:59:01 2023 -0500 - malloc: Improve MAP_HUGETLB with glibc.malloc.hugetlb=2 - elf: Add a way to check if tunable is set (BZ 27069) -:100644 000000 c5d3c7a8 00000000 D glibc-rh2248502.patch -:100644 100644 500849b4 a1d85891 M glibc.spec -:100644 100644 a1f5ecdc 77fe20a0 M sources +:100644 000000 c5d3c7a 0000000 D glibc-rh2248502.patch +:100644 100644 500849b a1d8589 M glibc.spec +:100644 100644 a1f5ecd 77fe20a M sources commit e1c3cc05d0d8b9ebb0a9928f11ddb751ce8bfa27 Author: Arjun Shankar @@ -2332,9 +3466,9 @@ CommitDate: Tue Nov 28 22:00:39 2023 +0100 - malloc: Use __get_nprocs on arena_get2 (BZ 30945) - aarch64: Fix libmvec benchmarks -:100644 000000 42665170 00000000 D glibc-benchtests-aarch64.patch -:100644 100644 185e63dd 500849b4 M glibc.spec -:100644 100644 1924b890 a1f5ecdc M sources +:100644 000000 4266517 0000000 D glibc-benchtests-aarch64.patch +:100644 100644 185e63d 500849b M glibc.spec +:100644 100644 1924b89 a1f5ecd M sources commit 6f9b4d9d90db489a3861286e6ccb4c93994f3dfd Author: Florian Weimer @@ -2344,8 +3478,8 @@ CommitDate: Mon Nov 27 12:54:10 2023 +0100 Fix qsort workaround (#2248502) -:100644 100644 d9eff1c0 c5d3c7a8 M glibc-rh2248502.patch -:100644 100644 218a42d2 185e63dd M glibc.spec +:100644 100644 d9eff1c c5d3c7a M glibc-rh2248502.patch +:100644 100644 218a42d 185e63d M glibc.spec commit 154785c591be3edb273d107bd196d5074c26f937 Author: Florian Weimer @@ -2355,8 +3489,8 @@ CommitDate: Thu Nov 23 09:09:25 2023 +0100 Restore qsort workaround for 389-ds-base. (#2248502) -:000000 100644 00000000 d9eff1c0 A glibc-rh2248502.patch -:100644 100644 9a3f44fc 218a42d2 M glibc.spec +:000000 100644 0000000 d9eff1c A glibc-rh2248502.patch +:100644 100644 9a3f44f 218a42d M glibc.spec commit f94f56a23bebb254ca767dc9a9417c4a4ea25e67 Author: Florian Weimer @@ -2420,13 +3554,13 @@ CommitDate: Wed Nov 22 09:22:15 2023 +0100 - aarch64: Add vector implementations of acos routines - aarch64: Add vector implementations of asin routines -:000000 100644 00000000 42665170 A glibc-benchtests-aarch64.patch -:100644 000000 e2c5f37e 00000000 D glibc-rh2244688.patch -:100644 000000 b97861f5 00000000 D glibc-rh2244992.patch -:100644 000000 8b296fde 00000000 D glibc-rh2248502-3.patch -:100644 000000 8ff20423 00000000 D glibc-rh2248915.patch -:100644 100644 b08aa547 9a3f44fc M glibc.spec -:100644 100644 a0f3c836 1924b890 M sources +:000000 100644 0000000 4266517 A glibc-benchtests-aarch64.patch +:100644 000000 e2c5f37 0000000 D glibc-rh2244688.patch +:100644 000000 b97861f 0000000 D glibc-rh2244992.patch +:100644 000000 8b296fd 0000000 D glibc-rh2248502-3.patch +:100644 000000 8ff2042 0000000 D glibc-rh2248915.patch +:100644 100644 b08aa54 9a3f44f M glibc.spec +:100644 100644 a0f3c83 1924b89 M sources commit 9e361d1258d5abbf55d33a4e9c739f9467ac4ea3 Author: Florian Weimer @@ -2436,8 +3570,8 @@ CommitDate: Wed Nov 15 07:31:04 2023 +0100 Work around another self-comparison application issue in qsort (#2248502) -:000000 100644 00000000 8b296fde A glibc-rh2248502-3.patch -:100644 100644 a258b023 b08aa547 M glibc.spec +:000000 100644 0000000 8b296fd A glibc-rh2248502-3.patch +:100644 100644 a258b02 b08aa54 M glibc.spec commit 7d7642221fcc47416419477b28dda5ba56c02d4c Author: Florian Weimer @@ -2447,8 +3581,8 @@ CommitDate: Sat Nov 11 10:06:02 2023 +0100 Fix missing entries in /etc/ld.so.cache (#2248915) -:000000 100644 00000000 8ff20423 A glibc-rh2248915.patch -:100644 100644 4009d5fc a258b023 M glibc.spec +:000000 100644 0000000 8ff2042 A glibc-rh2248915.patch +:100644 100644 4009d5f a258b02 M glibc.spec commit ce2b6b8073f08a330941e32e99bcf90ea78b1c2f Author: Florian Weimer @@ -2472,10 +3606,10 @@ CommitDate: Sat Nov 11 08:55:02 2023 +0100 - support: Add support_set_vma_name - linux: Add PR_SET_VMA_ANON_NAME support -:100644 000000 b8fe82ec 00000000 D glibc-rh2248502-1.patch -:100644 000000 4e37f6c5 00000000 D glibc-rh2248502-2.patch -:100644 100644 b4c6e12d 4009d5fc M glibc.spec -:100644 100644 0ea13e9e a0f3c836 M sources +:100644 000000 b8fe82e 0000000 D glibc-rh2248502-1.patch +:100644 000000 4e37f6c 0000000 D glibc-rh2248502-2.patch +:100644 100644 b4c6e12 4009d5f M glibc.spec +:100644 100644 0ea13e9 a0f3c83 M sources commit 4e9eab04edbfb5626680985533ce0e3827c5851e Author: Florian Weimer @@ -2485,8 +3619,8 @@ CommitDate: Wed Nov 8 06:33:38 2023 +0100 Fix force-first handling in dlclose, take two (#2244992, #2246048) -:000000 100644 00000000 b97861f5 A glibc-rh2244992.patch -:100644 100644 7e81c579 b4c6e12d M glibc.spec +:000000 100644 0000000 b97861f A glibc-rh2244992.patch +:100644 100644 7e81c57 b4c6e12 M glibc.spec commit 0413a67417c588295ba3a760ad1b4bd6e319eb10 Author: Florian Weimer @@ -2550,10 +3684,10 @@ CommitDate: Tue Nov 7 16:22:46 2023 +0100 - s390: Fix undefined behaviour in feenableexcept, fedisableexcept [BZ #30960] - elf: Do not print the cache entry if --inhibit-cache is used -:000000 100644 00000000 b8fe82ec A glibc-rh2248502-1.patch -:000000 100644 00000000 4e37f6c5 A glibc-rh2248502-2.patch -:100644 100644 0386a1bc 7e81c579 M glibc.spec -:100644 100644 90df9abd 0ea13e9e M sources +:000000 100644 0000000 b8fe82e A glibc-rh2248502-1.patch +:000000 100644 0000000 4e37f6c A glibc-rh2248502-2.patch +:100644 100644 0386a1b 7e81c57 M glibc.spec +:100644 100644 90df9ab 0ea13e9 M sources commit 231d936c48d6f0aca9adf294e983f5e22a122766 Author: Carlos O'Donell @@ -2565,8 +3699,8 @@ CommitDate: Thu Oct 26 17:21:36 2023 -0400 Resolves: #2246048 -:100644 000000 78d54c31 00000000 D glibc-rh2244992.patch -:100644 100644 7fccd3c3 0386a1bc M glibc.spec +:100644 000000 78d54c3 0000000 D glibc-rh2244992.patch +:100644 100644 7fccd3c 0386a1b M glibc.spec commit ff30db342bde49cd7a39ddca45b04d5ea87e1f76 Author: Daan De Meyer @@ -2580,7 +3714,7 @@ CommitDate: Thu Oct 26 11:49:08 2023 +0200 let's make sure -mbackchain is inherited from redhat-rpm-config as well, similar to how -fno-omit-frame-pointer is inherited as well. -:100644 100644 6cd8b011 7fccd3c3 M glibc.spec +:100644 100644 6cd8b01 7fccd3c M glibc.spec commit 79808700a1ccaa7780fa0648bb559d25b0c2f47b Author: Arjun Shankar @@ -2597,7 +3731,7 @@ CommitDate: Tue Oct 24 14:45:44 2023 +0200 reinstates the file at /usr/share/doc/glibc/gai.conf as part of the glibc-doc subpackage. -:100644 100644 a0922b5c 6cd8b011 M glibc.spec +:100644 100644 a0922b5 6cd8b01 M glibc.spec commit c0b92fe18e67d5152db95240b2780c6f77b991b3 Author: Florian Weimer @@ -2607,8 +3741,8 @@ CommitDate: Thu Oct 19 09:09:36 2023 +0200 Fix force-first handling in dlclose (#2244992) -:000000 100644 00000000 78d54c31 A glibc-rh2244992.patch -:100644 100644 8bf170e7 a0922b5c M glibc.spec +:000000 100644 0000000 78d54c3 A glibc-rh2244992.patch +:100644 100644 8bf170e a0922b5 M glibc.spec commit 2e44c0f9f3d371c7bf44b6dcc1b609fe7a4c0cc2 Author: Florian Weimer @@ -2633,9 +3767,9 @@ CommitDate: Wed Oct 18 11:43:30 2023 +0200 - Avoid maybe-uninitialized warning in __kernel_rem_pio2 - Fix WAIT_FOR_DEBUGGER for container tests. -:000000 100644 00000000 e2c5f37e A glibc-rh2244688.patch -:100644 100644 c7913115 8bf170e7 M glibc.spec -:100644 100644 48a809ec 90df9abd M sources +:000000 100644 0000000 e2c5f37 A glibc-rh2244688.patch +:100644 100644 c791311 8bf170e M glibc.spec +:100644 100644 48a809e 90df9ab M sources commit dff2117453f6bd020bfea60bc2c7febe1ffafaf3 Author: Florian Weimer @@ -2663,9 +3797,9 @@ CommitDate: Thu Oct 12 12:43:33 2023 +0200 - inet: Rearrange and sort Makefile variables - Fix off-by-one OOB write in iconv/tst-iconv-mt -:100644 000000 3f19d153 00000000 D glibc-disable-werror-tst-realloc.patch -:100644 100644 4ddb112e c7913115 M glibc.spec -:100644 100644 fa720dcb 48a809ec M sources +:100644 000000 3f19d15 0000000 D glibc-disable-werror-tst-realloc.patch +:100644 100644 4ddb112 c791311 M glibc.spec +:100644 100644 fa720dc 48a809e M sources commit 2538a798df476471298a30da96fb3045effe46cb Author: Arjun Shankar @@ -2682,8 +3816,8 @@ CommitDate: Tue Oct 3 19:29:06 2023 +0200 Resolves: #2241966 -:100644 100644 b3ad1f8e 4ddb112e M glibc.spec -:100644 100644 fd5ab90a fa720dcb M sources +:100644 100644 b3ad1f8 4ddb112 M glibc.spec +:100644 100644 fd5ab90 fa720dc M sources commit d3951beccf663cefae9dbb3a67617faaadf8fd99 Author: Arjun Shankar @@ -2704,8 +3838,8 @@ CommitDate: Tue Oct 3 15:37:35 2023 +0200 - C2x scanf %wN, %wfN support - test-container: Use nftw instead of rm -rf -:100644 100644 fbfc0697 b3ad1f8e M glibc.spec -:100644 100644 0eb1c727 fd5ab90a M sources +:100644 100644 fbfc069 b3ad1f8 M glibc.spec +:100644 100644 0eb1c72 fd5ab90 M sources commit 9e85d70f29a0657ec720cc0541f4741ab597b821 Author: Patsy Griffin @@ -2737,8 +3871,8 @@ CommitDate: Thu Sep 28 12:39:12 2023 -0400 - LoongArch: Add glibc.cpu.hwcap support. - math: Add a no-mathvec flag for sin (-0.0) -:100644 100644 69e71200 fbfc0697 M glibc.spec -:100644 100644 76162553 0eb1c727 M sources +:100644 100644 69e7120 fbfc069 M glibc.spec +:100644 100644 7616255 0eb1c72 M sources commit d95a28acbfc16c5ac1abee29959c790a073ea9cf Author: Arjun Shankar @@ -2764,8 +3898,8 @@ CommitDate: Mon Sep 18 11:42:43 2023 +0200 - resolv: Fix some unaligned accesses in resolver [BZ #30750] - Update syscall lists for Linux 6.5 -:100644 100644 faca6815 69e71200 M glibc.spec -:100644 100644 f0e6f03f 76162553 M sources +:100644 100644 faca681 69e7120 M glibc.spec +:100644 100644 f0e6f03 7616255 M sources commit 3940ace9ec49b1d5e4869d57c13403da6abb67a7 Author: Patsy Griffin @@ -2784,8 +3918,8 @@ CommitDate: Mon Sep 11 16:45:17 2023 -0400 - Use Linux 6.5 in build-many-glibcs.py - elf: Remove unused l_text_end field from struct link_map -:100644 100644 b6b4928b faca6815 M glibc.spec -:100644 100644 bcde87dd f0e6f03f M sources +:100644 100644 b6b4928 faca681 M glibc.spec +:100644 100644 bcde87d f0e6f03 M sources commit ebaa7d3ecee3a43846b8bd691a82e13c169688e7 Author: Florian Weimer @@ -2814,8 +3948,8 @@ CommitDate: Fri Sep 8 14:42:43 2023 +0200 - elf: Fix slow tls access after dlopen [BZ #19924] - x86: Check the lower byte of EAX of CPUID leaf 2 [BZ #30643] -:100644 100644 fd83f855 b6b4928b M glibc.spec -:100644 100644 c16e081e bcde87dd M sources +:100644 100644 fd83f85 b6b4928 M glibc.spec +:100644 100644 c16e081 bcde87d M sources commit 4538b5ade895a09bf78a9cf0e45276ddc82067ec Author: Sergey Kolosov @@ -2825,11 +3959,11 @@ CommitDate: Thu Aug 31 13:18:31 2023 +0000 CI Tests: removes bz699724-Memory-leak-within-NSSLOW-Init-as-called-by as not relevant -:100644 000000 1805d2be 00000000 D tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/Makefile -:100644 000000 e143347f 00000000 D tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/PURPOSE -:100644 000000 c134d97a 00000000 D tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/main.fmf -:100755 000000 8991a972 00000000 D tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/runtest.sh -:100644 000000 27b02bca 00000000 D tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/test_crypt.py +:100644 000000 1805d2b 0000000 D tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/Makefile +:100644 000000 e143347 0000000 D tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/PURPOSE +:100644 000000 c134d97 0000000 D tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/main.fmf +:100755 000000 8991a97 0000000 D tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/runtest.sh +:100644 000000 27b02bc 0000000 D tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/test_crypt.py commit 565f0c30263cdf2ea6a2b1c82d8c474fe4d4d4e9 Author: DJ Delorie @@ -2877,8 +4011,8 @@ CommitDate: Tue Aug 29 13:42:29 2023 -0400 - htl: move pthread_equal into libc - Linux: Avoid conflicting types in ld.so --list-diagnostics -:100644 100644 db0918fc fd83f855 M glibc.spec -:100644 100644 48a5e575 c16e081e M sources +:100644 100644 db0918f fd83f85 M glibc.spec +:100644 100644 48a5e57 c16e081 M sources commit 0deaedc9540fe6abde2c717d679f489862ae7c2c Author: Florian Weimer @@ -2888,7 +4022,7 @@ CommitDate: Wed Aug 23 08:48:21 2023 +0200 diffutils is needed by the testsuite -:100644 100644 ecaccf2b db0918fc M glibc.spec +:100644 100644 ecaccf2 db0918f M glibc.spec commit 266c7da7e03a9c3f27273314edce2e4fab91908c Author: Arjun Shankar @@ -2916,8 +4050,8 @@ CommitDate: Tue Aug 22 15:44:10 2023 +0200 - io/tst-statvfs: fix statfs().f_type comparison test on some arches - fxprintf: Get rid of alloca -:100644 100644 788ed96f ecaccf2b M glibc.spec -:100644 100644 40a8683e 48a5e575 M sources +:100644 100644 788ed96 ecaccf2 M glibc.spec +:100644 100644 40a8683 48a5e57 M sources commit c128c8cb1657aefbd3009bff73a55184f66aaf96 Author: Carlos O'Donell @@ -2927,7 +4061,7 @@ CommitDate: Tue Aug 15 09:18:43 2023 -0400 Collect dynamic loader diagnostics from the build system -:100644 100644 f4d9e2de 788ed96f M glibc.spec +:100644 100644 f4d9e2d 788ed96 M glibc.spec commit 73431ea55b5dec6c82adbf31c4e09cd96431df26 Author: Florian Weimer @@ -2969,8 +4103,8 @@ CommitDate: Tue Aug 15 08:31:42 2023 +0200 - stdlib: Improve tst-realpath compatibility with source fortification - Open master branch for glibc 2.39 development -:100644 100644 dec52707 f4d9e2de M glibc.spec -:100644 100644 9f8d9cbf 40a8683e M sources +:100644 100644 dec5270 f4d9e2d M glibc.spec +:100644 100644 9f8d9cb 40a8683 M sources commit a5464690b5de68fe891f162253e8b160787073a5 Author: Siddhesh Poyarekar @@ -2983,23 +4117,23 @@ CommitDate: Tue Aug 1 14:10:29 2023 -0400 The kernel patches are still stuck and there's a risk that the interfaces may change. -:100644 000000 d2bdfb41 00000000 D 0001-x86-cet-Don-t-set-CET-active.patch -:100644 100644 b7382fa8 dec52707 M glibc.spec -:100644 000000 25aba86a 00000000 D v2-0001-x86-cet-Check-user_shstk-in-proc-cpuinfo.patch -:100644 000000 d2ce592c 00000000 D v2-0002-x86-cet-Update-tst-cet-vfork-1.patch -:100644 000000 67b8c317 00000000 D v2-0003-x86-cet-Don-t-assume-that-SHSTK-implies-IBT.patch -:100644 000000 77e90c54 00000000 D v2-0004-x86-cet-Check-legacy-shadow-stack-applications.patch -:100644 000000 1ae6e2cd 00000000 D v2-0005-x86-cet-Check-CPU_FEATURE_ACTIVE-when-CET-is-disa.patch -:100644 000000 76f5e001 00000000 D v2-0006-x86-cet-Add-tests-for-GLIBC_TUNABLES-glibc.cpu.hw.patch -:100644 000000 fb73597e 00000000 D v2-0007-x86-cet-Check-legacy-shadow-stack-code-in-.init_a.patch -:100644 000000 1c264210 00000000 D v2-0008-x86-cet-Check-CPU_FEATURE_ACTIVE-in-permissive-mo.patch -:100644 000000 01ec3c03 00000000 D v2-0009-x86-Check-PT_GNU_PROPERTY-early.patch -:100644 000000 ca881d29 00000000 D v2-0010-x86-Modularize-sysdeps-x86-dl-cet.c.patch -:100644 000000 1dc95c0c 00000000 D v2-0011-x86-64-Add-fixup-asm-unistd.h-and-regenerate-arch.patch -:100644 000000 7b800496 00000000 D v2-0012-x86-cet-Sync-with-the-kernel-shadow-stack-interfa.patch -:100644 000000 a39200de 00000000 D v2-0013-elf-Always-provide-_dl_get_dl_main_map-in-libc.a.patch -:100644 000000 535f4996 00000000 D v2-0014-x86-cet-Enable-shadow-stack-during-startup.patch -:100644 000000 88ed83ad 00000000 D v2-0015-x86-cet-Check-feature_1-in-TCB-for-active-IBT-and.patch +:100644 000000 d2bdfb4 0000000 D 0001-x86-cet-Don-t-set-CET-active.patch +:100644 100644 b7382fa dec5270 M glibc.spec +:100644 000000 25aba86 0000000 D v2-0001-x86-cet-Check-user_shstk-in-proc-cpuinfo.patch +:100644 000000 d2ce592 0000000 D v2-0002-x86-cet-Update-tst-cet-vfork-1.patch +:100644 000000 67b8c31 0000000 D v2-0003-x86-cet-Don-t-assume-that-SHSTK-implies-IBT.patch +:100644 000000 77e90c5 0000000 D v2-0004-x86-cet-Check-legacy-shadow-stack-applications.patch +:100644 000000 1ae6e2c 0000000 D v2-0005-x86-cet-Check-CPU_FEATURE_ACTIVE-when-CET-is-disa.patch +:100644 000000 76f5e00 0000000 D v2-0006-x86-cet-Add-tests-for-GLIBC_TUNABLES-glibc.cpu.hw.patch +:100644 000000 fb73597 0000000 D v2-0007-x86-cet-Check-legacy-shadow-stack-code-in-.init_a.patch +:100644 000000 1c26421 0000000 D v2-0008-x86-cet-Check-CPU_FEATURE_ACTIVE-in-permissive-mo.patch +:100644 000000 01ec3c0 0000000 D v2-0009-x86-Check-PT_GNU_PROPERTY-early.patch +:100644 000000 ca881d2 0000000 D v2-0010-x86-Modularize-sysdeps-x86-dl-cet.c.patch +:100644 000000 1dc95c0 0000000 D v2-0011-x86-64-Add-fixup-asm-unistd.h-and-regenerate-arch.patch +:100644 000000 7b80049 0000000 D v2-0012-x86-cet-Sync-with-the-kernel-shadow-stack-interfa.patch +:100644 000000 a39200d 0000000 D v2-0013-elf-Always-provide-_dl_get_dl_main_map-in-libc.a.patch +:100644 000000 535f499 0000000 D v2-0014-x86-cet-Enable-shadow-stack-during-startup.patch +:100644 000000 88ed83a 0000000 D v2-0015-x86-cet-Check-feature_1-in-TCB-for-active-IBT-and.patch commit b62f070947106d19e2fff398b62e51518d4fb2c3 Author: Florian Weimer @@ -3009,7 +4143,7 @@ CommitDate: Tue Aug 1 11:40:49 2023 +0200 Fix release number -:100644 100644 33894666 b7382fa8 M glibc.spec +:100644 100644 3389466 b7382fa M glibc.spec commit 38508109e6246418d7c26dec321437332d792660 Author: Florian Weimer @@ -3033,8 +4167,8 @@ CommitDate: Tue Aug 1 10:40:30 2023 +0200 - malloc: Fix set-freeres.c with gcc 6 - nscd: cleanup obsolete _FORTIFY_SOURCE setting -:100644 100644 b8f0c79d 33894666 M glibc.spec -:100644 100644 d4253319 9f8d9cbf M sources +:100644 100644 b8f0c79 3389466 M glibc.spec +:100644 100644 d425331 9f8d9cb M sources commit 33d1497073d3200b6850e7b0bd37572c5aed5713 Author: Patsy Griffin @@ -3046,7 +4180,7 @@ CommitDate: Mon Jul 31 13:36:40 2023 -0400 https://fedoraproject.org/wiki/Changes/AllowRemovalOfTzdata -:100644 100644 6cb7a820 b8f0c79d M glibc.spec +:100644 100644 6cb7a82 b8f0c79 M glibc.spec commit 847a50e46dbc2004ab78857a0b0296e072892a59 Author: DJ Delorie @@ -3090,8 +4224,8 @@ CommitDate: Tue Jul 25 13:05:36 2023 -0400 - i386: make debug wrappers compatible with static PIE - LoongArch: Fix soft-float bug about _dl_runtime_resolve{,lsx,lasx} -:100644 100644 130dacec 6cb7a820 M glibc.spec -:100644 100644 29ffc2d3 d4253319 M sources +:100644 100644 130dace 6cb7a82 M glibc.spec +:100644 100644 29ffc2d d425331 M sources commit d1786a3bd453c6979b20d61c2c18942200a80d5b Author: Fedora Release Engineering @@ -3103,7 +4237,7 @@ CommitDate: Wed Jul 19 23:12:10 2023 +0000 Signed-off-by: Fedora Release Engineering -:100644 100644 eeaec849 130dacec M glibc.spec +:100644 100644 eeaec84 130dace M glibc.spec commit 3a527a095be31e13813dc1a44157d896b5f30b09 Author: mcoufal @@ -3113,12 +4247,12 @@ CommitDate: Wed Jul 12 16:37:44 2023 +0200 CI Tests: add Regression/bz1563046-getlogin-r-return-early-when-linux-sentinel-value test -:000000 100644 00000000 7006044e A tests/Regression/bz1563046-getlogin-r-return-early-when-linux-sentinel-value/Makefile -:000000 100644 00000000 7d4d3c87 A tests/Regression/bz1563046-getlogin-r-return-early-when-linux-sentinel-value/PURPOSE -:000000 100644 00000000 decfbad5 A tests/Regression/bz1563046-getlogin-r-return-early-when-linux-sentinel-value/list.gdb -:000000 100644 00000000 422d973a A tests/Regression/bz1563046-getlogin-r-return-early-when-linux-sentinel-value/main.fmf -:000000 100755 00000000 6590de77 A tests/Regression/bz1563046-getlogin-r-return-early-when-linux-sentinel-value/runtest.sh -:000000 100644 00000000 c2dceb15 A tests/Regression/bz1563046-getlogin-r-return-early-when-linux-sentinel-value/tst-getlogin_r.c +:000000 100644 0000000 7006044 A tests/Regression/bz1563046-getlogin-r-return-early-when-linux-sentinel-value/Makefile +:000000 100644 0000000 7d4d3c8 A tests/Regression/bz1563046-getlogin-r-return-early-when-linux-sentinel-value/PURPOSE +:000000 100644 0000000 decfbad A tests/Regression/bz1563046-getlogin-r-return-early-when-linux-sentinel-value/list.gdb +:000000 100644 0000000 422d973 A tests/Regression/bz1563046-getlogin-r-return-early-when-linux-sentinel-value/main.fmf +:000000 100755 0000000 6590de7 A tests/Regression/bz1563046-getlogin-r-return-early-when-linux-sentinel-value/runtest.sh +:000000 100644 0000000 c2dceb1 A tests/Regression/bz1563046-getlogin-r-return-early-when-linux-sentinel-value/tst-getlogin_r.c commit b131151b7bfdc1653e306e734a3a0d96f785a8ee Author: Arjun Shankar @@ -3141,8 +4275,8 @@ CommitDate: Tue Jul 11 15:27:32 2023 +0200 - realloc: Limit chunk reuse to only growing requests [BZ #30579] - vfscanf-internal: Remove potentially unbounded allocas -:100644 100644 f007c530 eeaec849 M glibc.spec -:100644 100644 1bf07e1b 29ffc2d3 M sources +:100644 100644 f007c53 eeaec84 M glibc.spec +:100644 100644 1bf07e1 29ffc2d M sources commit f5bc56b5e595a4135cd4b03c6b083d3e03f24a43 Author: Frédéric Bérat @@ -3155,7 +4289,7 @@ CommitDate: Thu Jul 6 14:20:58 2023 +0200 Enable fortify source on the GNU C Library, which got included in the last sync. -:100644 100644 dfcefe2f f007c530 M glibc.spec +:100644 100644 dfcefe2 f007c53 M glibc.spec commit bc2927bcdf6187dab68a5292f2d7da203e4f6994 Author: Frédéric Bérat @@ -3206,8 +4340,8 @@ CommitDate: Thu Jul 6 11:33:31 2023 +0200 - Make sure INSTALL is ASCII plaintext - Update syscall lists for Linux 6.4 -:100644 100644 ff871234 dfcefe2f M glibc.spec -:100644 100644 6485f92a 1bf07e1b M sources +:100644 100644 ff87123 dfcefe2 M glibc.spec +:100644 100644 6485f92 1bf07e1 M sources commit 24a378361d7ce93ee5f6dc945cf7a751333880f7 Author: Martin Coufal @@ -3217,13 +4351,13 @@ CommitDate: Tue Jul 4 12:31:45 2023 +0000 CI Tests: add Regression/bz1305132-segfault-in-hesiod-getgrouplist test. -:000000 100644 00000000 c9b73679 A tests/Regression/bz1305132-segfault-in-hesiod-getgrouplist/Makefile -:000000 100644 00000000 19a6cbb7 A tests/Regression/bz1305132-segfault-in-hesiod-getgrouplist/PURPOSE -:000000 100644 00000000 8e8c699c A tests/Regression/bz1305132-segfault-in-hesiod-getgrouplist/hesiod.conf -:000000 100644 00000000 4adbb0f3 A tests/Regression/bz1305132-segfault-in-hesiod-getgrouplist/main.fmf -:000000 100644 00000000 356a6a95 A tests/Regression/bz1305132-segfault-in-hesiod-getgrouplist/named.hesiod -:000000 100755 00000000 acb470c0 A tests/Regression/bz1305132-segfault-in-hesiod-getgrouplist/runtest.sh -:000000 100644 00000000 3b7fb6a0 A tests/Regression/bz1305132-segfault-in-hesiod-getgrouplist/zone-entry +:000000 100644 0000000 c9b7367 A tests/Regression/bz1305132-segfault-in-hesiod-getgrouplist/Makefile +:000000 100644 0000000 19a6cbb A tests/Regression/bz1305132-segfault-in-hesiod-getgrouplist/PURPOSE +:000000 100644 0000000 8e8c699 A tests/Regression/bz1305132-segfault-in-hesiod-getgrouplist/hesiod.conf +:000000 100644 0000000 4adbb0f A tests/Regression/bz1305132-segfault-in-hesiod-getgrouplist/main.fmf +:000000 100644 0000000 356a6a9 A tests/Regression/bz1305132-segfault-in-hesiod-getgrouplist/named.hesiod +:000000 100755 0000000 acb470c A tests/Regression/bz1305132-segfault-in-hesiod-getgrouplist/runtest.sh +:000000 100644 0000000 3b7fb6a A tests/Regression/bz1305132-segfault-in-hesiod-getgrouplist/zone-entry commit eb302655a8320a79729fcc252cd72877fd58503f Author: Carlos O'Donell @@ -3281,8 +4415,8 @@ CommitDate: Wed Jun 28 10:00:46 2023 -0400 - Remove unused DATEMSK file for tst-getdate - resolv_conf: release lock on allocation failure (bug 30527) -:100644 100644 b5da667d ff871234 M glibc.spec -:100644 100644 5b9d256a 6485f92a M sources +:100644 100644 b5da667 ff87123 M glibc.spec +:100644 100644 5b9d256 6485f92 M sources commit 144f61240626f7da26462e44979e9498fa735ccb Author: Siddhesh Poyarekar @@ -3294,23 +4428,23 @@ CommitDate: Thu Jun 8 13:31:34 2023 -0400 Downstream only and disabled by default. -:000000 100644 00000000 d2bdfb41 A 0001-x86-cet-Don-t-set-CET-active.patch -:100644 100644 615a82f0 b5da667d M glibc.spec -:000000 100644 00000000 25aba86a A v2-0001-x86-cet-Check-user_shstk-in-proc-cpuinfo.patch -:000000 100644 00000000 d2ce592c A v2-0002-x86-cet-Update-tst-cet-vfork-1.patch -:000000 100644 00000000 67b8c317 A v2-0003-x86-cet-Don-t-assume-that-SHSTK-implies-IBT.patch -:000000 100644 00000000 77e90c54 A v2-0004-x86-cet-Check-legacy-shadow-stack-applications.patch -:000000 100644 00000000 1ae6e2cd A v2-0005-x86-cet-Check-CPU_FEATURE_ACTIVE-when-CET-is-disa.patch -:000000 100644 00000000 76f5e001 A v2-0006-x86-cet-Add-tests-for-GLIBC_TUNABLES-glibc.cpu.hw.patch -:000000 100644 00000000 fb73597e A v2-0007-x86-cet-Check-legacy-shadow-stack-code-in-.init_a.patch -:000000 100644 00000000 1c264210 A v2-0008-x86-cet-Check-CPU_FEATURE_ACTIVE-in-permissive-mo.patch -:000000 100644 00000000 01ec3c03 A v2-0009-x86-Check-PT_GNU_PROPERTY-early.patch -:000000 100644 00000000 ca881d29 A v2-0010-x86-Modularize-sysdeps-x86-dl-cet.c.patch -:000000 100644 00000000 1dc95c0c A v2-0011-x86-64-Add-fixup-asm-unistd.h-and-regenerate-arch.patch -:000000 100644 00000000 7b800496 A v2-0012-x86-cet-Sync-with-the-kernel-shadow-stack-interfa.patch -:000000 100644 00000000 a39200de A v2-0013-elf-Always-provide-_dl_get_dl_main_map-in-libc.a.patch -:000000 100644 00000000 535f4996 A v2-0014-x86-cet-Enable-shadow-stack-during-startup.patch -:000000 100644 00000000 88ed83ad A v2-0015-x86-cet-Check-feature_1-in-TCB-for-active-IBT-and.patch +:000000 100644 0000000 d2bdfb4 A 0001-x86-cet-Don-t-set-CET-active.patch +:100644 100644 615a82f b5da667 M glibc.spec +:000000 100644 0000000 25aba86 A v2-0001-x86-cet-Check-user_shstk-in-proc-cpuinfo.patch +:000000 100644 0000000 d2ce592 A v2-0002-x86-cet-Update-tst-cet-vfork-1.patch +:000000 100644 0000000 67b8c31 A v2-0003-x86-cet-Don-t-assume-that-SHSTK-implies-IBT.patch +:000000 100644 0000000 77e90c5 A v2-0004-x86-cet-Check-legacy-shadow-stack-applications.patch +:000000 100644 0000000 1ae6e2c A v2-0005-x86-cet-Check-CPU_FEATURE_ACTIVE-when-CET-is-disa.patch +:000000 100644 0000000 76f5e00 A v2-0006-x86-cet-Add-tests-for-GLIBC_TUNABLES-glibc.cpu.hw.patch +:000000 100644 0000000 fb73597 A v2-0007-x86-cet-Check-legacy-shadow-stack-code-in-.init_a.patch +:000000 100644 0000000 1c26421 A v2-0008-x86-cet-Check-CPU_FEATURE_ACTIVE-in-permissive-mo.patch +:000000 100644 0000000 01ec3c0 A v2-0009-x86-Check-PT_GNU_PROPERTY-early.patch +:000000 100644 0000000 ca881d2 A v2-0010-x86-Modularize-sysdeps-x86-dl-cet.c.patch +:000000 100644 0000000 1dc95c0 A v2-0011-x86-64-Add-fixup-asm-unistd.h-and-regenerate-arch.patch +:000000 100644 0000000 7b80049 A v2-0012-x86-cet-Sync-with-the-kernel-shadow-stack-interfa.patch +:000000 100644 0000000 a39200d A v2-0013-elf-Always-provide-_dl_get_dl_main_map-in-libc.a.patch +:000000 100644 0000000 535f499 A v2-0014-x86-cet-Enable-shadow-stack-during-startup.patch +:000000 100644 0000000 88ed83a A v2-0015-x86-cet-Check-feature_1-in-TCB-for-active-IBT-and.patch commit 24deddf0a5f06960a52c528abdf6fdac7cf365f4 Author: Arjun Shankar @@ -3329,8 +4463,8 @@ CommitDate: Wed Jun 7 10:15:39 2023 +0200 - pthreads: Use _exit to terminate the tst-stdio1 test - support: Add delayed__exit (with two underscores) -:100644 100644 e5c66a4d 615a82f0 M glibc.spec -:100644 100644 985d03e4 5b9d256a M sources +:100644 100644 e5c66a4 615a82f M glibc.spec +:100644 100644 985d03e 5b9d256 M sources commit b9457956730eef15066f858c7448ddfee35aea2d Author: Arjun Shankar @@ -3362,8 +4496,8 @@ CommitDate: Mon Jun 5 20:33:36 2023 +0200 - tests: replace write by xwrite - x86-64: Use YMM registers in memcmpeq-evex.S -:100644 100644 a866efc6 e5c66a4d M glibc.spec -:100644 100644 7dbb004e 985d03e4 M sources +:100644 100644 a866efc e5c66a4 M glibc.spec +:100644 100644 7dbb004 985d03e M sources commit 2060ccf6f932a4ee2df158c6f418c53c901240fa Author: Patsy Griffin @@ -3464,8 +4598,8 @@ CommitDate: Thu Jun 1 09:55:00 2023 -0400 - hurd: Align signal stack pointer after allocating stackframe - hurd: Fix aligning signal stack pointer -:100644 100644 6e1437f9 a866efc6 M glibc.spec -:100644 100644 682b0086 7dbb004e M sources +:100644 100644 6e1437f a866efc M glibc.spec +:100644 100644 682b008 7dbb004 M sources commit 102db1b2b1775776260821f312570b159197904e Author: Carlos O'Donell @@ -3495,8 +4629,8 @@ CommitDate: Tue May 16 08:57:31 2023 -0400 - scripts: Add sort-makefile-lines.py to sort Makefile variables. - dlopen: skip debugger notification for DSO loaded from sprof (bug 30258) -:100644 100644 22a2913c 6e1437f9 M glibc.spec -:100644 100644 76076cd2 682b0086 M sources +:100644 100644 22a2913 6e1437f M glibc.spec +:100644 100644 76076cd 682b008 M sources commit 151cd6bca78cb72a575414d339e696d3bcb4cc38 Author: Arjun Shankar @@ -3570,8 +4704,8 @@ CommitDate: Tue May 9 12:02:52 2023 +0200 - if_index: Remove unneeded alloca.h include - gethostid: Do not include alloca.h -:100644 100644 b8750b25 22a2913c M glibc.spec -:100644 100644 7036881e 76076cd2 M sources +:100644 100644 b8750b2 22a2913 M glibc.spec +:100644 100644 7036881 76076cd M sources commit 4432ded54bd865f19cbb5810ea7ec23b7a4597b0 Author: Patsy Griffin @@ -3604,8 +4738,8 @@ CommitDate: Tue Apr 25 17:30:26 2023 -0400 - linux: Re-flow and sort multiline Makefile definitions - posix: Re-flow and sort multiline Makefile definitions -:100644 100644 a003d31a b8750b25 M glibc.spec -:100644 100644 5639639a 7036881e M sources +:100644 100644 a003d31 b8750b2 M glibc.spec +:100644 100644 5639639 7036881 M sources commit 936bce9f4a226fc37c7865e89544f79105b435d3 Author: Florian Weimer @@ -3615,7 +4749,7 @@ CommitDate: Mon Apr 24 13:55:00 2023 +0200 Explicitly provide ldconfig paths (#2188550) -:100644 100644 5c384605 a003d31a M glibc.spec +:100644 100644 5c38460 a003d31 M glibc.spec commit 509721ab91e07222ba857488fe24d419fdce8fe4 Author: Florian Weimer @@ -3690,8 +4824,8 @@ CommitDate: Thu Apr 20 17:58:14 2023 +0200 - Remove --enable-tunables configure option - Remove --disable-experimental-malloc option -:100644 100644 c246bdfe 5c384605 M glibc.spec -:100644 100644 fc5a0253 5639639a M sources +:100644 100644 c246bdf 5c38460 M glibc.spec +:100644 100644 fc5a025 5639639 M sources commit 8944a27aaf1125cec4c48d5c343f99f156964074 Author: Sergey Kolosov @@ -3701,18 +4835,18 @@ CommitDate: Tue Apr 4 23:07:18 2023 +0200 CI Tests: removes Regression/bz2141685-glibc-Restore-IPC-64-support-in-sysvipc-ctl and Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to tests -:100644 000000 8ff19d05 00000000 D tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/Makefile -:100644 000000 262ea54e 00000000 D tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/PURPOSE -:100644 000000 5ffe276a 00000000 D tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/m1.stp -:100644 000000 3c63874d 00000000 D tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/m1_p9.stp -:100644 000000 8ae1a03a 00000000 D tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/main.fmf -:100755 000000 5b08f7d1 00000000 D tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/runtest.sh -:100644 000000 6b89fc07 00000000 D tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/t.c -:100755 000000 f8c41c94 00000000 D tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/trigger.sh -:100644 000000 5cd3985c 00000000 D tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/Makefile -:100644 000000 b076330e 00000000 D tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/PURPOSE -:100644 000000 ba6e6822 00000000 D tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/main.fmf -:100755 000000 c2323264 00000000 D tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/runtest.sh +:100644 000000 8ff19d0 0000000 D tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/Makefile +:100644 000000 262ea54 0000000 D tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/PURPOSE +:100644 000000 5ffe276 0000000 D tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/m1.stp +:100644 000000 3c63874 0000000 D tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/m1_p9.stp +:100644 000000 8ae1a03 0000000 D tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/main.fmf +:100755 000000 5b08f7d 0000000 D tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/runtest.sh +:100644 000000 6b89fc0 0000000 D tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/t.c +:100755 000000 f8c41c9 0000000 D tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/trigger.sh +:100644 000000 5cd3985 0000000 D tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/Makefile +:100644 000000 b076330 0000000 D tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/PURPOSE +:100644 000000 ba6e682 0000000 D tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/main.fmf +:100755 000000 c232326 0000000 D tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/runtest.sh commit ffce034896c8548d832722a78cf4df09ecda5e81 Author: Sergey Kolosov @@ -3722,9 +4856,9 @@ CommitDate: Tue Apr 4 15:55:00 2023 +0200 CI Tests: changes recommend to require for several tests -:100644 100644 68c42bd0 3589c47a M tests/Regression/bz1561018-glibc-Enable-annobin-annotations/main.fmf -:100644 100644 a2ba5e69 8ae1a03a M tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/main.fmf -:100644 100644 fe316118 ba6e6822 M tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/main.fmf +:100644 100644 68c42bd 3589c47 M tests/Regression/bz1561018-glibc-Enable-annobin-annotations/main.fmf +:100644 100644 a2ba5e6 8ae1a03 M tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/main.fmf +:100644 100644 fe31611 ba6e682 M tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/main.fmf commit af3beceadcfe6ffaab5dd5b604421a3750760145 Author: Sergey Kolosov @@ -3734,19 +4868,19 @@ CommitDate: Tue Apr 4 13:25:22 2023 +0200 CI Tests: removes unnecessary library dependencies -:100644 100644 7b745199 77dbeaf4 M tests/Regression/bz1579451-glibc-IP-BIND-ADDRESS-NO-PORT-is-not-defined-in/Makefile -:100644 100644 26e6f9df d38f404d M tests/Regression/bz1579451-glibc-IP-BIND-ADDRESS-NO-PORT-is-not-defined-in/main.fmf -:100644 100644 d68430ce 8ff19d05 M tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/Makefile -:100644 100644 1537a321 a2ba5e69 M tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/main.fmf -:100644 100644 13404086 7f373fe5 M tests/Regression/bz1988382-annocheck-reports-pie-pic-test-failures-on/Makefile -:100644 100644 084643d4 5acd7018 M tests/Regression/bz1988382-annocheck-reports-pie-pic-test-failures-on/main.fmf -:100755 100755 d1b98f22 8f623805 M tests/Regression/bz1988382-annocheck-reports-pie-pic-test-failures-on/runtest.sh -:100644 100644 f24e81cd 27b30c53 M tests/Regression/bz2024347-glibc-Optional-sched-getcpu-acceleration-using/Makefile -:100644 100644 778d0c92 826bc251 M tests/Regression/bz2024347-glibc-Optional-sched-getcpu-acceleration-using/main.fmf -:100644 100644 def913a5 c2f1a7bb M tests/Regression/bz2027789-glibc-backtrace-function-crashes-without-vdso-on/Makefile -:100644 100644 0e61467d 8f638fa0 M tests/Regression/bz2027789-glibc-backtrace-function-crashes-without-vdso-on/main.fmf -:100644 100644 04d82732 5cd3985c M tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/Makefile -:100644 100644 f7088d52 fe316118 M tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/main.fmf +:100644 100644 7b74519 77dbeaf M tests/Regression/bz1579451-glibc-IP-BIND-ADDRESS-NO-PORT-is-not-defined-in/Makefile +:100644 100644 26e6f9d d38f404 M tests/Regression/bz1579451-glibc-IP-BIND-ADDRESS-NO-PORT-is-not-defined-in/main.fmf +:100644 100644 d68430c 8ff19d0 M tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/Makefile +:100644 100644 1537a32 a2ba5e6 M tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/main.fmf +:100644 100644 1340408 7f373fe M tests/Regression/bz1988382-annocheck-reports-pie-pic-test-failures-on/Makefile +:100644 100644 084643d 5acd701 M tests/Regression/bz1988382-annocheck-reports-pie-pic-test-failures-on/main.fmf +:100755 100755 d1b98f2 8f62380 M tests/Regression/bz1988382-annocheck-reports-pie-pic-test-failures-on/runtest.sh +:100644 100644 f24e81c 27b30c5 M tests/Regression/bz2024347-glibc-Optional-sched-getcpu-acceleration-using/Makefile +:100644 100644 778d0c9 826bc25 M tests/Regression/bz2024347-glibc-Optional-sched-getcpu-acceleration-using/main.fmf +:100644 100644 def913a c2f1a7b M tests/Regression/bz2027789-glibc-backtrace-function-crashes-without-vdso-on/Makefile +:100644 100644 0e61467 8f638fa M tests/Regression/bz2027789-glibc-backtrace-function-crashes-without-vdso-on/main.fmf +:100644 100644 04d8273 5cd3985 M tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/Makefile +:100644 100644 f7088d5 fe31611 M tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/main.fmf commit 642430bf8389b2f8590a238aaa6564087635fcde Author: Sergey Kolosov @@ -3756,78 +4890,78 @@ CommitDate: Tue Apr 4 01:55:48 2023 +0200 CI Tests: test coverage improvement -:000000 100644 00000000 3d930e43 A tests/Regression/bz1330705-open-and-openat-ignore-mode-with-O-TMPFILE/Makefile -:000000 100644 00000000 779fa7f3 A tests/Regression/bz1330705-open-and-openat-ignore-mode-with-O-TMPFILE/PURPOSE -:000000 100644 00000000 973d679b A tests/Regression/bz1330705-open-and-openat-ignore-mode-with-O-TMPFILE/main.fmf -:000000 100644 00000000 8b0ceda1 A tests/Regression/bz1330705-open-and-openat-ignore-mode-with-O-TMPFILE/o_tmpfile.c -:000000 100755 00000000 ed49a08b A tests/Regression/bz1330705-open-and-openat-ignore-mode-with-O-TMPFILE/runtest.sh -:000000 100644 00000000 be55ec62 A tests/Regression/bz1561018-glibc-Enable-annobin-annotations/Makefile -:000000 100644 00000000 f327055c A tests/Regression/bz1561018-glibc-Enable-annobin-annotations/PURPOSE -:000000 100644 00000000 68c42bd0 A tests/Regression/bz1561018-glibc-Enable-annobin-annotations/main.fmf -:000000 100755 00000000 9ce516ae A tests/Regression/bz1561018-glibc-Enable-annobin-annotations/runtest.sh -:000000 100644 00000000 7b745199 A tests/Regression/bz1579451-glibc-IP-BIND-ADDRESS-NO-PORT-is-not-defined-in/Makefile -:000000 100644 00000000 a41980ed A tests/Regression/bz1579451-glibc-IP-BIND-ADDRESS-NO-PORT-is-not-defined-in/PURPOSE -:000000 100644 00000000 4e1d440d A tests/Regression/bz1579451-glibc-IP-BIND-ADDRESS-NO-PORT-is-not-defined-in/bug.c -:000000 100644 00000000 26e6f9df A tests/Regression/bz1579451-glibc-IP-BIND-ADDRESS-NO-PORT-is-not-defined-in/main.fmf -:000000 100755 00000000 5d3d21bf A tests/Regression/bz1579451-glibc-IP-BIND-ADDRESS-NO-PORT-is-not-defined-in/runtest.sh -:000000 100644 00000000 7f1b025b A tests/Regression/bz1591268-glibc-Problem-with-iconv-converting-ISO8859-1-to/Makefile -:000000 100644 00000000 73b22160 A tests/Regression/bz1591268-glibc-Problem-with-iconv-converting-ISO8859-1-to/PURPOSE -:000000 100644 00000000 c758153f A tests/Regression/bz1591268-glibc-Problem-with-iconv-converting-ISO8859-1-to/main.fmf -:000000 100755 00000000 576f18ba A tests/Regression/bz1591268-glibc-Problem-with-iconv-converting-ISO8859-1-to/runtest.sh -:000000 100644 00000000 3bb13151 A tests/Regression/bz1612448-glibc-debuginfo-does-not-have-gdb-index/Makefile -:000000 100644 00000000 9a97bda5 A tests/Regression/bz1612448-glibc-debuginfo-does-not-have-gdb-index/PURPOSE -:000000 100644 00000000 0171c47f A tests/Regression/bz1612448-glibc-debuginfo-does-not-have-gdb-index/main.fmf -:000000 100755 00000000 dfbd53fe A tests/Regression/bz1612448-glibc-debuginfo-does-not-have-gdb-index/runtest.sh -:000000 100644 00000000 39e617d8 A tests/Regression/bz1661244-glibc-Disable-lazy-binding-of-TLS-descriptors-on/Makefile -:000000 100644 00000000 a12cffb6 A tests/Regression/bz1661244-glibc-Disable-lazy-binding-of-TLS-descriptors-on/PURPOSE -:000000 100644 00000000 c6d635df A tests/Regression/bz1661244-glibc-Disable-lazy-binding-of-TLS-descriptors-on/au-test.c -:000000 100644 00000000 9d850d12 A tests/Regression/bz1661244-glibc-Disable-lazy-binding-of-TLS-descriptors-on/audit.c -:000000 100644 00000000 ff3273fd A tests/Regression/bz1661244-glibc-Disable-lazy-binding-of-TLS-descriptors-on/main.fmf -:000000 100755 00000000 9d3cc223 A tests/Regression/bz1661244-glibc-Disable-lazy-binding-of-TLS-descriptors-on/runtest.sh -:000000 100644 00000000 28bbf08e A tests/Regression/bz1661513-glibc-Adjust-to-rpms-find-debuginfo-sh-changes-to-keep-stripping-binaries/Makefile -:000000 100644 00000000 7b94f6d5 A tests/Regression/bz1661513-glibc-Adjust-to-rpms-find-debuginfo-sh-changes-to-keep-stripping-binaries/PURPOSE -:000000 100644 00000000 31302be6 A tests/Regression/bz1661513-glibc-Adjust-to-rpms-find-debuginfo-sh-changes-to-keep-stripping-binaries/main.fmf -:000000 100755 00000000 e40714db A tests/Regression/bz1661513-glibc-Adjust-to-rpms-find-debuginfo-sh-changes-to-keep-stripping-binaries/runtest.sh -:000000 100644 00000000 482a9ab2 A tests/Regression/bz1717438-glibc-libc-freeres-under-valgrind-triggers/Makefile -:000000 100644 00000000 e7271080 A tests/Regression/bz1717438-glibc-libc-freeres-under-valgrind-triggers/PURPOSE -:000000 100644 00000000 692be22c A tests/Regression/bz1717438-glibc-libc-freeres-under-valgrind-triggers/main.fmf -:000000 100755 00000000 1afe812f A tests/Regression/bz1717438-glibc-libc-freeres-under-valgrind-triggers/runtest.sh -:000000 100644 00000000 b7cbe85f A tests/Regression/bz1717438-glibc-libc-freeres-under-valgrind-triggers/tst-libidl.c -:000000 100644 00000000 d68430ce A tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/Makefile -:000000 100644 00000000 262ea54e A tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/PURPOSE -:000000 100644 00000000 5ffe276a A tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/m1.stp -:000000 100644 00000000 3c63874d A tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/m1_p9.stp -:000000 100644 00000000 1537a321 A tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/main.fmf -:000000 100755 00000000 5b08f7d1 A tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/runtest.sh -:000000 100644 00000000 6b89fc07 A tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/t.c -:000000 100755 00000000 f8c41c94 A tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/trigger.sh -:000000 100644 00000000 13404086 A tests/Regression/bz1988382-annocheck-reports-pie-pic-test-failures-on/Makefile -:000000 100644 00000000 bc2419e7 A tests/Regression/bz1988382-annocheck-reports-pie-pic-test-failures-on/PURPOSE -:000000 100644 00000000 084643d4 A tests/Regression/bz1988382-annocheck-reports-pie-pic-test-failures-on/main.fmf -:000000 100755 00000000 d1b98f22 A tests/Regression/bz1988382-annocheck-reports-pie-pic-test-failures-on/runtest.sh -:000000 100644 00000000 f24e81cd A tests/Regression/bz2024347-glibc-Optional-sched-getcpu-acceleration-using/Makefile -:000000 100644 00000000 35c07787 A tests/Regression/bz2024347-glibc-Optional-sched-getcpu-acceleration-using/PURPOSE -:000000 100644 00000000 778d0c92 A tests/Regression/bz2024347-glibc-Optional-sched-getcpu-acceleration-using/main.fmf -:000000 100755 00000000 948f9020 A tests/Regression/bz2024347-glibc-Optional-sched-getcpu-acceleration-using/runtest.sh -:000000 100644 00000000 974bf986 A tests/Regression/bz2024347-glibc-Optional-sched-getcpu-acceleration-using/tst.c -:000000 100644 00000000 def913a5 A tests/Regression/bz2027789-glibc-backtrace-function-crashes-without-vdso-on/Makefile -:000000 100644 00000000 fc8e6a53 A tests/Regression/bz2027789-glibc-backtrace-function-crashes-without-vdso-on/PURPOSE -:000000 100644 00000000 0e61467d A tests/Regression/bz2027789-glibc-backtrace-function-crashes-without-vdso-on/main.fmf -:000000 100755 00000000 2c9c6dc6 A tests/Regression/bz2027789-glibc-backtrace-function-crashes-without-vdso-on/runtest.sh -:000000 100644 00000000 88d00369 A tests/Regression/bz2027789-glibc-backtrace-function-crashes-without-vdso-on/tst.c -:000000 100644 00000000 7a49c36b A tests/Sanity/bz1476120-glibc-headers-don-t-include-linux-falloc-h-and/Makefile -:000000 100644 00000000 a1372924 A tests/Sanity/bz1476120-glibc-headers-don-t-include-linux-falloc-h-and/PURPOSE -:000000 100644 00000000 68f887d4 A tests/Sanity/bz1476120-glibc-headers-don-t-include-linux-falloc-h-and/main.fmf -:000000 100755 00000000 672cdfa1 A tests/Sanity/bz1476120-glibc-headers-don-t-include-linux-falloc-h-and/runtest.sh -:000000 100644 00000000 600ecaca A tests/Sanity/bz1476120-glibc-headers-don-t-include-linux-falloc-h-and/tst-falloc.c -:000000 100644 00000000 04d82732 A tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/Makefile -:000000 100644 00000000 b076330e A tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/PURPOSE -:000000 100644 00000000 f7088d52 A tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/main.fmf -:000000 100755 00000000 c2323264 A tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/runtest.sh -:000000 100644 00000000 88cef9d7 A tests/Sanity/bz2023420-glibc-Backport-ld-so-list-diagnostics/Makefile -:000000 100644 00000000 a058fb42 A tests/Sanity/bz2023420-glibc-Backport-ld-so-list-diagnostics/PURPOSE -:000000 100644 00000000 13cda56a A tests/Sanity/bz2023420-glibc-Backport-ld-so-list-diagnostics/main.fmf -:000000 100755 00000000 83b675aa A tests/Sanity/bz2023420-glibc-Backport-ld-so-list-diagnostics/runtest.sh +:000000 100644 0000000 3d930e4 A tests/Regression/bz1330705-open-and-openat-ignore-mode-with-O-TMPFILE/Makefile +:000000 100644 0000000 779fa7f A tests/Regression/bz1330705-open-and-openat-ignore-mode-with-O-TMPFILE/PURPOSE +:000000 100644 0000000 973d679 A tests/Regression/bz1330705-open-and-openat-ignore-mode-with-O-TMPFILE/main.fmf +:000000 100644 0000000 8b0ceda A tests/Regression/bz1330705-open-and-openat-ignore-mode-with-O-TMPFILE/o_tmpfile.c +:000000 100755 0000000 ed49a08 A tests/Regression/bz1330705-open-and-openat-ignore-mode-with-O-TMPFILE/runtest.sh +:000000 100644 0000000 be55ec6 A tests/Regression/bz1561018-glibc-Enable-annobin-annotations/Makefile +:000000 100644 0000000 f327055 A tests/Regression/bz1561018-glibc-Enable-annobin-annotations/PURPOSE +:000000 100644 0000000 68c42bd A tests/Regression/bz1561018-glibc-Enable-annobin-annotations/main.fmf +:000000 100755 0000000 9ce516a A tests/Regression/bz1561018-glibc-Enable-annobin-annotations/runtest.sh +:000000 100644 0000000 7b74519 A tests/Regression/bz1579451-glibc-IP-BIND-ADDRESS-NO-PORT-is-not-defined-in/Makefile +:000000 100644 0000000 a41980e A tests/Regression/bz1579451-glibc-IP-BIND-ADDRESS-NO-PORT-is-not-defined-in/PURPOSE +:000000 100644 0000000 4e1d440 A tests/Regression/bz1579451-glibc-IP-BIND-ADDRESS-NO-PORT-is-not-defined-in/bug.c +:000000 100644 0000000 26e6f9d A tests/Regression/bz1579451-glibc-IP-BIND-ADDRESS-NO-PORT-is-not-defined-in/main.fmf +:000000 100755 0000000 5d3d21b A tests/Regression/bz1579451-glibc-IP-BIND-ADDRESS-NO-PORT-is-not-defined-in/runtest.sh +:000000 100644 0000000 7f1b025 A tests/Regression/bz1591268-glibc-Problem-with-iconv-converting-ISO8859-1-to/Makefile +:000000 100644 0000000 73b2216 A tests/Regression/bz1591268-glibc-Problem-with-iconv-converting-ISO8859-1-to/PURPOSE +:000000 100644 0000000 c758153 A tests/Regression/bz1591268-glibc-Problem-with-iconv-converting-ISO8859-1-to/main.fmf +:000000 100755 0000000 576f18b A tests/Regression/bz1591268-glibc-Problem-with-iconv-converting-ISO8859-1-to/runtest.sh +:000000 100644 0000000 3bb1315 A tests/Regression/bz1612448-glibc-debuginfo-does-not-have-gdb-index/Makefile +:000000 100644 0000000 9a97bda A tests/Regression/bz1612448-glibc-debuginfo-does-not-have-gdb-index/PURPOSE +:000000 100644 0000000 0171c47 A tests/Regression/bz1612448-glibc-debuginfo-does-not-have-gdb-index/main.fmf +:000000 100755 0000000 dfbd53f A tests/Regression/bz1612448-glibc-debuginfo-does-not-have-gdb-index/runtest.sh +:000000 100644 0000000 39e617d A tests/Regression/bz1661244-glibc-Disable-lazy-binding-of-TLS-descriptors-on/Makefile +:000000 100644 0000000 a12cffb A tests/Regression/bz1661244-glibc-Disable-lazy-binding-of-TLS-descriptors-on/PURPOSE +:000000 100644 0000000 c6d635d A tests/Regression/bz1661244-glibc-Disable-lazy-binding-of-TLS-descriptors-on/au-test.c +:000000 100644 0000000 9d850d1 A tests/Regression/bz1661244-glibc-Disable-lazy-binding-of-TLS-descriptors-on/audit.c +:000000 100644 0000000 ff3273f A tests/Regression/bz1661244-glibc-Disable-lazy-binding-of-TLS-descriptors-on/main.fmf +:000000 100755 0000000 9d3cc22 A tests/Regression/bz1661244-glibc-Disable-lazy-binding-of-TLS-descriptors-on/runtest.sh +:000000 100644 0000000 28bbf08 A tests/Regression/bz1661513-glibc-Adjust-to-rpms-find-debuginfo-sh-changes-to-keep-stripping-binaries/Makefile +:000000 100644 0000000 7b94f6d A tests/Regression/bz1661513-glibc-Adjust-to-rpms-find-debuginfo-sh-changes-to-keep-stripping-binaries/PURPOSE +:000000 100644 0000000 31302be A tests/Regression/bz1661513-glibc-Adjust-to-rpms-find-debuginfo-sh-changes-to-keep-stripping-binaries/main.fmf +:000000 100755 0000000 e40714d A tests/Regression/bz1661513-glibc-Adjust-to-rpms-find-debuginfo-sh-changes-to-keep-stripping-binaries/runtest.sh +:000000 100644 0000000 482a9ab A tests/Regression/bz1717438-glibc-libc-freeres-under-valgrind-triggers/Makefile +:000000 100644 0000000 e727108 A tests/Regression/bz1717438-glibc-libc-freeres-under-valgrind-triggers/PURPOSE +:000000 100644 0000000 692be22 A tests/Regression/bz1717438-glibc-libc-freeres-under-valgrind-triggers/main.fmf +:000000 100755 0000000 1afe812 A tests/Regression/bz1717438-glibc-libc-freeres-under-valgrind-triggers/runtest.sh +:000000 100644 0000000 b7cbe85 A tests/Regression/bz1717438-glibc-libc-freeres-under-valgrind-triggers/tst-libidl.c +:000000 100644 0000000 d68430c A tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/Makefile +:000000 100644 0000000 262ea54 A tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/PURPOSE +:000000 100644 0000000 5ffe276 A tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/m1.stp +:000000 100644 0000000 3c63874 A tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/m1_p9.stp +:000000 100644 0000000 1537a32 A tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/main.fmf +:000000 100755 0000000 5b08f7d A tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/runtest.sh +:000000 100644 0000000 6b89fc0 A tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/t.c +:000000 100755 0000000 f8c41c9 A tests/Regression/bz1746933-glibc-Backport-malloc-tcache-enhancements/trigger.sh +:000000 100644 0000000 1340408 A tests/Regression/bz1988382-annocheck-reports-pie-pic-test-failures-on/Makefile +:000000 100644 0000000 bc2419e A tests/Regression/bz1988382-annocheck-reports-pie-pic-test-failures-on/PURPOSE +:000000 100644 0000000 084643d A tests/Regression/bz1988382-annocheck-reports-pie-pic-test-failures-on/main.fmf +:000000 100755 0000000 d1b98f2 A tests/Regression/bz1988382-annocheck-reports-pie-pic-test-failures-on/runtest.sh +:000000 100644 0000000 f24e81c A tests/Regression/bz2024347-glibc-Optional-sched-getcpu-acceleration-using/Makefile +:000000 100644 0000000 35c0778 A tests/Regression/bz2024347-glibc-Optional-sched-getcpu-acceleration-using/PURPOSE +:000000 100644 0000000 778d0c9 A tests/Regression/bz2024347-glibc-Optional-sched-getcpu-acceleration-using/main.fmf +:000000 100755 0000000 948f902 A tests/Regression/bz2024347-glibc-Optional-sched-getcpu-acceleration-using/runtest.sh +:000000 100644 0000000 974bf98 A tests/Regression/bz2024347-glibc-Optional-sched-getcpu-acceleration-using/tst.c +:000000 100644 0000000 def913a A tests/Regression/bz2027789-glibc-backtrace-function-crashes-without-vdso-on/Makefile +:000000 100644 0000000 fc8e6a5 A tests/Regression/bz2027789-glibc-backtrace-function-crashes-without-vdso-on/PURPOSE +:000000 100644 0000000 0e61467 A tests/Regression/bz2027789-glibc-backtrace-function-crashes-without-vdso-on/main.fmf +:000000 100755 0000000 2c9c6dc A tests/Regression/bz2027789-glibc-backtrace-function-crashes-without-vdso-on/runtest.sh +:000000 100644 0000000 88d0036 A tests/Regression/bz2027789-glibc-backtrace-function-crashes-without-vdso-on/tst.c +:000000 100644 0000000 7a49c36 A tests/Sanity/bz1476120-glibc-headers-don-t-include-linux-falloc-h-and/Makefile +:000000 100644 0000000 a137292 A tests/Sanity/bz1476120-glibc-headers-don-t-include-linux-falloc-h-and/PURPOSE +:000000 100644 0000000 68f887d A tests/Sanity/bz1476120-glibc-headers-don-t-include-linux-falloc-h-and/main.fmf +:000000 100755 0000000 672cdfa A tests/Sanity/bz1476120-glibc-headers-don-t-include-linux-falloc-h-and/runtest.sh +:000000 100644 0000000 600ecac A tests/Sanity/bz1476120-glibc-headers-don-t-include-linux-falloc-h-and/tst-falloc.c +:000000 100644 0000000 04d8273 A tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/Makefile +:000000 100644 0000000 b076330 A tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/PURPOSE +:000000 100644 0000000 f7088d5 A tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/main.fmf +:000000 100755 0000000 c232326 A tests/Sanity/bz1915330-glibc-Implement-find-debuginfo-sh-changes-to/runtest.sh +:000000 100644 0000000 88cef9d A tests/Sanity/bz2023420-glibc-Backport-ld-so-list-diagnostics/Makefile +:000000 100644 0000000 a058fb4 A tests/Sanity/bz2023420-glibc-Backport-ld-so-list-diagnostics/PURPOSE +:000000 100644 0000000 13cda56 A tests/Sanity/bz2023420-glibc-Backport-ld-so-list-diagnostics/main.fmf +:000000 100755 0000000 83b675a A tests/Sanity/bz2023420-glibc-Backport-ld-so-list-diagnostics/runtest.sh commit 6fd5c5a43bdfdae28475beaff3758d0a3263fbb9 Author: Arjun Shankar @@ -3867,9 +5001,9 @@ CommitDate: Fri Mar 31 14:23:15 2023 +0200 - ARC: run child from the separate start block in __clone - ARC: Add the clone3 wrapper -:000000 100644 00000000 3f19d153 A glibc-disable-werror-tst-realloc.patch -:100644 100644 c45bf480 c246bdfe M glibc.spec -:100644 100644 97dc03f2 fc5a0253 M sources +:000000 100644 0000000 3f19d15 A glibc-disable-werror-tst-realloc.patch +:100644 100644 c45bf48 c246bdf M glibc.spec +:100644 100644 97dc03f fc5a025 M sources commit 472dcebe5e58f7f9d87fbf86d99cb3bf312c89a7 Author: Martin Cermak @@ -3889,8 +5023,8 @@ CommitDate: Thu Mar 23 20:33:30 2023 +0100 noarch subrpm). The prepare.sh then installs needed i686 packages. -:100644 100644 d81f782c 7ebb7970 M plans/ci.fmf -:000000 100755 00000000 4746b4b0 A plans/prepare.sh +:100644 100644 d81f782 7ebb797 M plans/ci.fmf +:000000 100755 0000000 4746b4b A plans/prepare.sh commit 3a98e957b04458520ebc08e37a4c8f4dfd841e19 Author: Florian Weimer @@ -3923,8 +5057,8 @@ CommitDate: Mon Mar 13 15:56:12 2023 +0100 - posix: Fix system blocks SIGCHLD erroneously [BZ #30163] - gshadow: Matching sgetsgent, sgetsgent_r ERANGE handling (bug 30151) -:100644 100644 8b500dc2 c45bf480 M glibc.spec -:100644 100644 5ba07b80 97dc03f2 M sources +:100644 100644 8b500dc c45bf48 M glibc.spec +:100644 100644 5ba07b8 97dc03f M sources commit c58b5b31bef90b3d45d18c5fe8af3191a1ef54ca Author: DJ Delorie @@ -3950,8 +5084,8 @@ CommitDate: Mon Mar 6 17:24:09 2023 -0500 - hurd: Fix some broken indentation - hurd: Remove the ecx kludge -:100644 100644 4e3f00aa 8b500dc2 M glibc.spec -:100644 100644 82597b6d 5ba07b80 M sources +:100644 100644 4e3f00a 8b500dc M glibc.spec +:100644 100644 82597b6 5ba07b8 M sources commit ae2a2c23ba78f5e463b71b94ae3cdb6a811da204 Author: Carlos O'Donell @@ -3994,8 +5128,8 @@ CommitDate: Wed Mar 1 17:24:10 2023 -0500 - Ignore MAP_VARIABLE in tst-mman-consts.py - AArch64: Fix HP_TIMING_DIFF computation [BZ# 29329] -:100644 100644 ac992d66 4e3f00aa M glibc.spec -:100644 100644 d916428f 82597b6d M sources +:100644 100644 ac992d6 4e3f00a M glibc.spec +:100644 100644 d916428 82597b6 M sources commit d9759bc576d66d03bc47600b7599ace145f571c2 Author: Arjun Shankar @@ -4124,9 +5258,9 @@ CommitDate: Mon Feb 20 21:34:56 2023 +0100 - linux: Do not reset signal handler in posix_spawn if it is already SIG_DFL - Open master branch for glibc 2.38 development -:100644 000000 dc89dc5c 00000000 D glibc-printf-grouping-swbz30068.patch -:100644 100644 968d15de ac992d66 M glibc.spec -:100644 100644 15f941c7 d916428f M sources +:100644 000000 dc89dc5 0000000 D glibc-printf-grouping-swbz30068.patch +:100644 100644 968d15d ac992d6 M glibc.spec +:100644 100644 15f941c d916428 M sources commit 97c044f99aa55f856211be2a8344d5f429c5702b Author: Carlos O'Donell @@ -4152,10 +5286,10 @@ CommitDate: Sat Feb 4 14:23:17 2023 -0500 - Drop already included glibc-dprintf-length.patch patch. - Apply glibc-printf-grouping-swbz30068.patch to fix swbz#30068. -:100644 000000 a75107cd 00000000 D glibc-dprintf-length.patch -:000000 100644 00000000 dc89dc5c A glibc-printf-grouping-swbz30068.patch -:100644 100644 3db93054 968d15de M glibc.spec -:100644 100644 4f7c1bb8 15f941c7 M sources +:100644 000000 a75107c 0000000 D glibc-dprintf-length.patch +:000000 100644 0000000 dc89dc5 A glibc-printf-grouping-swbz30068.patch +:100644 100644 3db9305 968d15d M glibc.spec +:100644 100644 4f7c1bb 15f941c M sources commit f87342d79fa4fb5264dc557fb4bbde1d8ed9ed1a Author: Florian Weimer @@ -4165,7 +5299,7 @@ CommitDate: Tue Jan 31 18:16:37 2023 +0100 Upload sources -:100644 100644 65529ca1 4f7c1bb8 M sources +:100644 100644 65529ca 4f7c1bb M sources commit 5583ed7061b866eb0258c65c7ac783595be8ba0a Author: Florian Weimer @@ -4184,8 +5318,8 @@ CommitDate: Tue Jan 31 17:00:06 2023 +0100 - Apply glibc-dprintf-length.patch to fix dprintf return value regression. -:000000 100644 00000000 a75107cd A glibc-dprintf-length.patch -:100644 100644 1d25069b 3db93054 M glibc.spec +:000000 100644 0000000 a75107c A glibc-dprintf-length.patch +:100644 100644 1d25069 3db9305 M glibc.spec commit 009042dd2468aec38ea43af97dd493126a9b751f Author: Florian Weimer @@ -4216,8 +5350,8 @@ CommitDate: Wed Jan 25 09:14:47 2023 +0100 - AArch64: Optimize memrchr - AArch64: Optimize memchr -:100644 100644 ca97caba 1d25069b M glibc.spec -:100644 100644 6fc7437d 65529ca1 M sources +:100644 100644 ca97cab 1d25069 M glibc.spec +:100644 100644 6fc7437 65529ca M sources commit a37e67f1e127d142cddd776cd1fdfe7cc903b7cb Author: Fedora Release Engineering @@ -4229,10 +5363,10 @@ CommitDate: Thu Jan 19 05:05:08 2023 +0000 Signed-off-by: Fedora Release Engineering -:100644 100644 419f5707 ca97caba M glibc.spec +:100644 100644 419f570 ca97cab M glibc.spec commit 64c7d00676b5ef42411ec62c2c66976e564ea3f6 -Merge: 8a01f7ca 7d661951 +Merge: 8a01f7c 7d66195 Author: Martin Cermak AuthorDate: Wed Jan 18 16:46:03 2023 +0000 Commit: Martin Cermak @@ -4240,18 +5374,18 @@ CommitDate: Wed Jan 18 16:46:03 2023 +0000 Merge #67 `CI Tests: updates old test cases to use actual beakerlib functions` -:100644 100644 7a2f403b c5f2a74e M tests/Regression/bz434601-timedlock-segfault/main.fmf -:100644 100644 55f1868a da5ba668 M tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/main.fmf -:100755 100755 01236c40 ace7e3e4 M tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/runtest.sh -:100644 100644 d2ec82f2 406212cd M tests/Regression/bz464146-sp-corruption/main.fmf -:100755 100755 3a393221 b511b7d9 M tests/Regression/bz464146-sp-corruption/runtest.sh -:100644 100644 54bf74be ad58ed9b M tests/Regression/bz464146-sp-corruption/testit.c -:100644 100644 33e75f0b a9324073 M tests/Regression/bz471298-pthread_cond/main.fmf -:100755 100755 a5cc1ce2 a8a952ff M tests/Regression/bz471298-pthread_cond/runtest.sh -:100644 100644 8ac3fc80 5724e3b9 M tests/Regression/bz495955-RHEL5-glibc-doesn-t-use-private-futex-system/main.fmf -:100644 100644 19197448 3897b030 M tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/main.fmf -:100644 100644 b0e1665f 0296162b M tests/Regression/expf-gives-infinity-where-result-finite/main.fmf -:100644 100644 e6443731 84ad97b3 M tests/Regression/setvbuf-to-full-not-working/main.fmf +:100644 100644 7a2f403 c5f2a74 M tests/Regression/bz434601-timedlock-segfault/main.fmf +:100644 100644 55f1868 da5ba66 M tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/main.fmf +:100755 100755 01236c4 ace7e3e M tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/runtest.sh +:100644 100644 d2ec82f 406212c M tests/Regression/bz464146-sp-corruption/main.fmf +:100755 100755 3a39322 b511b7d M tests/Regression/bz464146-sp-corruption/runtest.sh +:100644 100644 54bf74b ad58ed9 M tests/Regression/bz464146-sp-corruption/testit.c +:100644 100644 33e75f0 a932407 M tests/Regression/bz471298-pthread_cond/main.fmf +:100755 100755 a5cc1ce a8a952f M tests/Regression/bz471298-pthread_cond/runtest.sh +:100644 100644 8ac3fc8 5724e3b M tests/Regression/bz495955-RHEL5-glibc-doesn-t-use-private-futex-system/main.fmf +:100644 100644 1919744 3897b03 M tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/main.fmf +:100644 100644 b0e1665 0296162 M tests/Regression/expf-gives-infinity-where-result-finite/main.fmf +:100644 100644 e644373 84ad97b M tests/Regression/setvbuf-to-full-not-working/main.fmf commit 8a01f7cacb7ac2b8f6788f6f5ede703aeae1eb78 Author: Florian Weimer @@ -4269,8 +5403,8 @@ CommitDate: Tue Jan 17 10:01:24 2023 +0100 - scripts/build-many-glibcs.py: Remove unused RANLIB and STRIP option - configure: Move nm, objdump, and readelf to LIBC_PROG_BINUTILS -:100644 100644 2e254508 419f5707 M glibc.spec -:100644 100644 ba48d3f3 6fc7437d M sources +:100644 100644 2e25450 419f570 M glibc.spec +:100644 100644 ba48d3f 6fc7437 M sources commit d000e6b3e679f3fbdeaa8de1087cbda4767ab199 Author: Patsy Griffin @@ -4298,9 +5432,9 @@ CommitDate: Wed Jan 11 22:26:53 2023 -0500 - x86: Check minimum/maximum of non_temporal_threshold [BZ #29953] - i686: Regenerate ulps -:100644 100644 16717a09 7328fc8b M glibc-python3.patch -:100644 100644 9ef1a1ce 2e254508 M glibc.spec -:100644 100644 bd31df33 ba48d3f3 M sources +:100644 100644 16717a0 7328fc8 M glibc-python3.patch +:100644 100644 9ef1a1c 2e25450 M glibc.spec +:100644 100644 bd31df3 ba48d3f M sources commit 2ceebf21f1da4706b8244c4da58f93c6f7c778b3 Author: Arjun Shankar @@ -4345,9 +5479,9 @@ CommitDate: Mon Jan 2 14:17:02 2023 +0100 - Use Linux 6.1 in build-many-glibcs.py - Avoid use of atoi in some places in libc -:100644 000000 5bc23364 00000000 D glibc-rh2155825.patch -:100644 100644 236bfc75 9ef1a1ce M glibc.spec -:100644 100644 951eaa27 bd31df33 M sources +:100644 000000 5bc2336 0000000 D glibc-rh2155825.patch +:100644 100644 236bfc7 9ef1a1c M glibc.spec +:100644 100644 951eaa2 bd31df3 M sources commit b12aa3c1f165415a36f75a79eaa99909458d43f0 Author: Martin Cermak @@ -4357,7 +5491,7 @@ CommitDate: Thu Dec 22 20:53:44 2022 +0100 tests: FMF - fix deprecated beakerlib attribute -:100644 100644 d52cc9b3 d81f782c M plans/ci.fmf +:100644 100644 d52cc9b d81f782 M plans/ci.fmf commit c3dda3d423c48890158efcf37acb3328d2b04c30 Author: Florian Weimer @@ -4367,8 +5501,8 @@ CommitDate: Thu Dec 22 17:23:51 2022 +0100 Fix epoll_create regression (#2155825) -:000000 100644 00000000 5bc23364 A glibc-rh2155825.patch -:100644 100644 14cb8176 236bfc75 M glibc.spec +:000000 100644 0000000 5bc2336 A glibc-rh2155825.patch +:100644 100644 14cb817 236bfc7 M glibc.spec commit 4024998b40c341f18208022a7475dc380053d92f Author: Florian Weimer @@ -4389,8 +5523,8 @@ CommitDate: Mon Dec 19 13:32:55 2022 +0100 - x86: Prevent SIGSEGV in memcmp-sse2 when data is concurrently modified [BZ #29863] - Allow _Qp_fgt in sparc64 localplt.data -:100644 100644 141815ef 14cb8176 M glibc.spec -:100644 100644 3daa8c4b 951eaa27 M sources +:100644 100644 141815e 14cb817 M glibc.spec +:100644 100644 3daa8c4 951eaa2 M sources commit 36c95d06a5307a72b85606ec3e68f89366ada45c Author: DJ Delorie @@ -4440,8 +5574,8 @@ CommitDate: Mon Dec 12 23:54:54 2022 -0500 - configure: Remove check if as is GNU - configure: Move locale tools early -:100644 100644 6935d997 141815ef M glibc.spec -:100644 100644 4411ab7f 3daa8c4b M sources +:100644 100644 6935d99 141815e M glibc.spec +:100644 100644 4411ab7 3daa8c4 M sources commit 1e3db499d665ad2158f0610ed9503e8176a3cfa8 Author: Arjun Shankar @@ -4471,8 +5605,8 @@ CommitDate: Mon Dec 5 17:09:03 2022 +0100 - Use GCC builtins for lrint functions if desired. - LoongArch: Use __builtin_rint{,f} with GCC >= 13 -:100644 100644 34f481eb 6935d997 M glibc.spec -:100644 100644 06bfdced 4411ab7f M sources +:100644 100644 34f481e 6935d99 M glibc.spec +:100644 100644 06bfdce 4411ab7 M sources commit bbbda714f9a500ea89a9ceafda14c6e733f7a7e2 Author: Florian Weimer @@ -4494,8 +5628,8 @@ CommitDate: Mon Nov 28 08:11:24 2022 +0100 - elf: Fix rtld-audit trampoline for aarch64 - Define in_int32_t_range to check if the 64 bit time_t syscall should be used -:100644 100644 7524263c 34f481eb M glibc.spec -:100644 100644 d54c6a1f 06bfdced M sources +:100644 100644 7524263 34f481e M glibc.spec +:100644 100644 d54c6a1 06bfdce M sources commit 7a70647c2176ff3e15e98a4b2f8713bbf17cfbd5 Author: Arjun Shankar @@ -4516,8 +5650,8 @@ CommitDate: Mon Nov 14 15:56:37 2022 +0100 - LoongArch: Hard Float Support for float-point classification functions. - LoongArch: Use __builtin_{fma, fmaf} to implement function {fma, fmaf}. -:100644 100644 28a932f9 7524263c M glibc.spec -:100644 100644 5580d131 d54c6a1f M sources +:100644 100644 28a932f 7524263 M glibc.spec +:100644 100644 5580d13 d54c6a1 M sources commit c22dc5e2f0c7374839521caf8bb5206afe0f7c4d Author: Florian Weimer @@ -4545,8 +5679,8 @@ CommitDate: Thu Nov 10 21:43:41 2022 +0100 - Linux: Add ppoll fortify symbol for 64 bit time_t (BZ# 29746) - hurd: Add sigtimedwait and sigwaitinfo support -:100644 100644 2e8ce98b 28a932f9 M glibc.spec -:100644 100644 4e569332 5580d131 M sources +:100644 100644 2e8ce98 28a932f M glibc.spec +:100644 100644 4e56933 5580d13 M sources commit 1f9fbacd82427f99e6c147c4b67a6baa2097cc92 Author: DJ Delorie @@ -4601,8 +5735,8 @@ CommitDate: Mon Nov 7 16:46:05 2022 -0500 - scripts: Use bool in tunables initializer - longlong.h: update from GCC for LoongArch clz/ctz support -:100644 100644 a145bbc4 2e8ce98b M glibc.spec -:100644 100644 7c0ca527 4e569332 M sources +:100644 100644 a145bbc 2e8ce98 M glibc.spec +:100644 100644 7c0ca52 4e56933 M sources commit 84cb4d0635e44d0b23d42692918a0eac7c2a38f8 Author: Patsy Griffin @@ -4699,8 +5833,8 @@ CommitDate: Thu Oct 27 15:03:13 2022 -0400 - x86: Cleanup pthread_spin_{try}lock.S - Benchtests: Add bench for pthread_spin_{try}lock and mutex_trylock -:100644 100644 3f83130c a145bbc4 M glibc.spec -:100644 100644 e2bb9173 7c0ca527 M sources +:100644 100644 3f83130 a145bbc M glibc.spec +:100644 100644 e2bb917 7c0ca52 M sources commit 1cd731cf293a236f70ed6d54ff711d6a1342a3d3 Author: Carlos O'Donell @@ -4712,7 +5846,7 @@ CommitDate: Mon Oct 17 15:13:38 2022 -0400 Resolves: #2129358 -:100644 100644 3f4f15b6 3f83130c M glibc.spec +:100644 100644 3f4f15b 3f83130 M glibc.spec commit d4efcab16d846fa50758ab54bca55dd5a48be37c Author: DJ Delorie @@ -4740,8 +5874,8 @@ CommitDate: Mon Oct 3 14:40:27 2022 -0400 - hurd: Increase SOMAXCONN to 4096 - Use atomic_exchange_release/acquire -:100644 100644 52700b17 3f4f15b6 M glibc.spec -:100644 100644 5db70a92 e2bb9173 M sources +:100644 100644 52700b1 3f4f15b M glibc.spec +:100644 100644 5db70a9 e2bb917 M sources commit 464d5f14a2e08553f7c59e8154a1b70a199149e3 Author: Patsy Griffin @@ -4788,8 +5922,8 @@ CommitDate: Sat Sep 24 23:14:57 2022 -0400 - Makerules: fix MAKEFLAGS assignment for upcoming make-4.4 [BZ# 29564] - Use relaxed atomics since there is no MO dependence -:100644 100644 d02885d8 52700b17 M glibc.spec -:100644 100644 16a2d7b1 5db70a92 M sources +:100644 100644 d02885d 52700b1 M glibc.spec +:100644 100644 16a2d7b 5db70a9 M sources commit 4c6fa526bfbde7e4f5750635d973f329eb57c49c Author: Florian Weimer @@ -4799,7 +5933,7 @@ CommitDate: Fri Sep 23 10:01:43 2022 +0200 Do not require .annobin symbols in wrap-find-debuginfo.sh -:100644 100644 42b36097 d26f8ebc M wrap-find-debuginfo.sh +:100644 100644 42b3609 d26f8eb M wrap-find-debuginfo.sh commit aa0d1b7d9ff3f53afa55b9dead8e346818f6645f Author: Florian Weimer @@ -4809,7 +5943,7 @@ CommitDate: Wed Sep 14 14:00:17 2022 +0200 Bump release -:100644 100644 0e74f082 d02885d8 M glibc.spec +:100644 100644 0e74f08 d02885d M glibc.spec commit b400cead416e03ca9c1a2965d6aa0addf658eac9 Author: Florian Weimer @@ -4819,8 +5953,8 @@ CommitDate: Wed Sep 14 13:59:13 2022 +0200 Remove .annobin* symbols from ld.so (#2126477) -:100644 100644 1a6f1075 0e74f082 M glibc.spec -:100644 100644 6b9a835f 42b36097 M wrap-find-debuginfo.sh +:100644 100644 1a6f107 0e74f08 M glibc.spec +:100644 100644 6b9a835 42b3609 M wrap-find-debuginfo.sh commit 6c1768439264ddc8b2900cba1a71e0f06bbd2cd9 Author: Florian Weimer @@ -4832,7 +5966,7 @@ CommitDate: Wed Sep 14 12:25:33 2022 +0200 This avoids the need for separate variables for all files. -:100644 100644 3157d69e 6b9a835f M wrap-find-debuginfo.sh +:100644 100644 3157d69 6b9a835 M wrap-find-debuginfo.sh commit 885b520a6d06ff6796c9de465fea604d7509627f Author: Florian Weimer @@ -4869,9 +6003,9 @@ CommitDate: Tue Sep 13 13:20:15 2022 +0200 - elf: Restore how vDSO dependency is printed with LD_TRACE_LOADED_OBJECTS (BZ #29539) - nptl: x86_64: Use same code for CURRENT_STACK_FRAME and stackinfo_get_sp -:100644 000000 c762d024 00000000 D glibc-deprecated-selinux-makedb.patch -:100644 100644 089249d5 1a6f1075 M glibc.spec -:100644 100644 79999787 16a2d7b1 M sources +:100644 000000 c762d02 0000000 D glibc-deprecated-selinux-makedb.patch +:100644 100644 089249d 1a6f107 M glibc.spec +:100644 100644 7999978 16a2d7b M sources commit 8e2d77f7341a666f743f96c6b378b36ea7539ae1 Author: Arjun Shankar @@ -4888,8 +6022,8 @@ CommitDate: Mon Sep 5 16:24:44 2022 +0200 Co-Authored-By: Benjamin Herrenschmidt Reviewed-by: Florian Weimer -:100644 100644 4eb44914 089249d5 M glibc.spec -:100644 100644 6a558df9 3157d69e M wrap-find-debuginfo.sh +:100644 100644 4eb4491 089249d M glibc.spec +:100644 100644 6a558df 3157d69 M wrap-find-debuginfo.sh commit cfb27906580179b3f7fc07453d7b220f36ac1cd4 Author: DJ Delorie @@ -4943,8 +6077,8 @@ CommitDate: Tue Aug 30 17:21:40 2022 -0400 - htl: make __pthread_hurd_cond_timedwait_internal check mutex is held - Add AArch64 HWCAP2_* constants from Linux 5.19 -:100644 100644 7dd42989 4eb44914 M glibc.spec -:100644 100644 5facfea0 79999787 M sources +:100644 100644 7dd4298 4eb4491 M glibc.spec +:100644 100644 5facfea 7999978 M sources commit 318ee02db83a513bf77985f1dd4c0c1b769ec58c Author: Arjun Shankar @@ -4960,8 +6094,8 @@ CommitDate: Mon Aug 22 16:28:04 2022 +0200 - alpha: Fix generic brk system call emulation in __brk_call (bug 29490) - hurd: Assume non-suid during bootstrap -:100644 100644 262e6b03 7dd42989 M glibc.spec -:100644 100644 efb1c65b 5facfea0 M sources +:100644 100644 262e6b0 7dd4298 M glibc.spec +:100644 100644 efb1c65 5facfea M sources commit c6f93d2f6d2d72a2148aeabf1c96c3e3634374a4 Author: Patsy Griffin @@ -4984,8 +6118,8 @@ CommitDate: Thu Aug 18 15:19:38 2022 -0400 - Linux: Terminate subprocess on late failure in tst-pidfd (bug 29485) - non-linux: bits/in.h: Add more RFC options -:100644 100644 b3bb7317 262e6b03 M glibc.spec -:100644 100644 31721a77 efb1c65b M sources +:100644 100644 b3bb731 262e6b0 M glibc.spec +:100644 100644 31721a7 efb1c65 M sources commit 6c465d0ed73efaf15e9f8a60254c5d914c53c60d Author: Florian Weimer @@ -4995,8 +6129,8 @@ CommitDate: Mon Aug 15 07:24:44 2022 +0200 Rotate changelog -:100644 100644 a0b9a7f9 c927cc3b M ChangeLog.old -:100644 100644 8437d5bd b3bb7317 M glibc.spec +:100644 100644 a0b9a7f c927cc3 M ChangeLog.old +:100644 100644 8437d5b b3bb731 M glibc.spec commit ae30d62333ba0c18ee2cf1a39de04185a4422823 Author: Florian Weimer @@ -5049,8 +6183,8 @@ CommitDate: Mon Aug 15 07:24:29 2022 +0200 - Remove spurious references to _dl_open_hook - Open master branch for glibc 2.37 development -:100644 100644 9a7db4fa 8437d5bd M glibc.spec -:100644 100644 287b44fd 31721a77 M sources +:100644 100644 9a7db4f 8437d5b M glibc.spec +:100644 100644 287b44f 31721a7 M sources commit f6ffd5842484e2c2204b09048eb40606ba211410 Author: Carlos O'Donell @@ -5078,8 +6212,8 @@ CommitDate: Fri Aug 5 10:24:15 2022 -0400 No regressions seen in mass-prebuild of critical-path-base packages. -:100644 100644 8a7f9ab9 9a7db4fa M glibc.spec -:100644 100644 71e6ed42 287b44fd M sources +:100644 100644 8a7f9ab 9a7db4f M glibc.spec +:100644 100644 71e6ed4 287b44f M sources commit 78f6644069c08f40c8cada064ba73dcfc707b627 Author: Arjun Shankar @@ -5121,8 +6255,8 @@ CommitDate: Wed Jul 27 15:50:14 2022 +0200 - Update scripts/config.* files from upstream GNU config version - linux: return UNSUPPORTED from tst-mount if entering mount namespace fails -:100644 100644 38b37c25 8a7f9ab9 M glibc.spec -:100644 100644 f0ccc7aa 71e6ed42 M sources +:100644 100644 38b37c2 8a7f9ab M glibc.spec +:100644 100644 f0ccc7a 71e6ed4 M sources commit 7573b35683d83b03642f7cdbc4dc54018f1f13aa Author: Arjun Shankar @@ -5132,7 +6266,7 @@ CommitDate: Mon Jul 25 10:49:18 2022 +0200 Drop unused patch: glibc-swbz27087.patch -:100644 000000 22dbee9f 00000000 D glibc-swbz27087.patch +:100644 000000 22dbee9 0000000 D glibc-swbz27087.patch commit 6501ce7544025aa1f99b54debf9032381cbe9bee Author: Fedora Release Engineering @@ -5144,7 +6278,7 @@ CommitDate: Thu Jul 21 06:26:14 2022 +0000 Signed-off-by: Fedora Release Engineering -:100644 100644 b7882db3 38b37c25 M glibc.spec +:100644 100644 b7882db 38b37c2 M glibc.spec commit 8cafb3e46452506dfb8abeb2909b4c0b826dbe68 Author: Patsy Griffin @@ -5202,11 +6336,11 @@ CommitDate: Sun Jul 17 23:02:38 2022 -0400 - AArch64: Reset HWCAP2_AFP bits in FPCR for default fenv - elf: Fix direction of NODELETE log messages during symbol lookup -:100644 100644 d89def90 b7882db3 M glibc.spec -:100644 100644 f3452501 f0ccc7aa M sources +:100644 100644 d89def9 b7882db M glibc.spec +:100644 100644 f345250 f0ccc7a M sources commit 6d8015208736dd4b494a329b3f025217c858915f -Merge: bcd58c23 3c29e122 +Merge: bcd58c2 3c29e12 Author: Florian Weimer AuthorDate: Fri Jul 15 07:11:46 2022 +0000 Commit: Florian Weimer @@ -5214,67 +6348,67 @@ CommitDate: Fri Jul 15 07:11:46 2022 +0000 Merge #61 `Added tags to main.fmf files as described in tcms` -:100644 100644 948e5eec 8684e0a4 M tests/Regression/bz1022022-getaddrinfo-behavior-changed-between-RHEL-6-4-and-RHEL-6-5/main.fmf -:100644 100644 ffa3c961 7a2f403b M tests/Regression/bz434601-timedlock-segfault/main.fmf -:100644 100644 f19de8a3 55f1868a M tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/main.fmf -:100644 100644 14062edb d2ec82f2 M tests/Regression/bz464146-sp-corruption/main.fmf -:100644 100644 8c75741f 33e75f0b M tests/Regression/bz471298-pthread_cond/main.fmf -:100644 100644 b0edcfa9 0978e0b0 M tests/Regression/bz488748-inet6-opt-init-sets-incorrect-header-len/main.fmf -:100644 100644 8fc25dd1 8ac3fc80 M tests/Regression/bz495955-RHEL5-glibc-doesn-t-use-private-futex-system/main.fmf -:100644 100644 c5373ef1 2f06afa8 M tests/Regression/bz501595-RHEL4-getnameinfo-should-return-EAI-NONAME/main.fmf -:100644 100644 ad867f2b 19197448 M tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/main.fmf -:100644 100644 b38df200 b1cde56c M tests/Regression/bz522528-pthread-join-hangs-if-a-thread-calls-setuid/main.fmf -:100644 100644 84b876b6 9cd0fec1 M tests/Regression/bz529997-sem_timedwait-with-invalid-time/main.fmf -:100644 100644 5f0a1556 f0195088 M tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/main.fmf -:100644 100644 b994a204 f786b6d6 M tests/Regression/bz549813-dl-close-race-with-C-destructor/main.fmf -:100644 100644 22c0cdf4 f626d62d M tests/Regression/bz566712-aio-write-ll-corruption/main.fmf -:100644 100644 28f004f5 296eb4d5 M tests/Regression/bz577950-ftell-after-write-causes-glibc-to-flush-buffer/main.fmf -:100644 100644 fc9765ff c8a2b1af M tests/Regression/bz580498-pthread-rwlock-timedwrlock-rdlock-never-return/main.fmf -:100644 100644 fea4212f b0a168c4 M tests/Regression/bz585674-free-race-in-mcheck-hooks/main.fmf -:100644 100644 da6468fc 1be8ea54 M tests/Regression/bz587360-digraph-matching-differs-across-archs/main.fmf -:100644 100644 5af78b18 beddb060 M tests/Regression/bz600457-locally-defined-symbol-resolving-failure/main.fmf -:100644 100644 1b55a3db 662e6574 M tests/Regression/bz656530-sqrtl-returns-highly-incorrect-results-for-some/main.fmf -:100644 100644 6d91228c b3870402 M tests/Regression/bz657570-strptime-s-b-descriptor-should-be-greedy/main.fmf -:100644 100644 c5cc62a9 36bfc09f M tests/Regression/bz657572-Finnish-locale-includes-unnecessary-confusing/main.fmf -:100644 100644 499e4735 695d1ad5 M tests/Regression/bz676039-Resolver-fails-to-return-all-addresses-of/main.fmf -:100644 100644 c62404d4 800812b8 M tests/Regression/bz689471-SSE4-strncmp-failure/main.fmf -:100644 100644 477bc403 5120de12 M tests/Regression/bz692177-sysconf-SC-CACHE-returns-0-for-all-caches-on/main.fmf -:100644 100644 9572be94 c3e271fb M tests/Regression/bz694386-POWER4-strncmp-crashes-reading-past-zero-byte/main.fmf -:100644 100644 471e141a c134d97a M tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/main.fmf -:100644 100644 c364430e 76a3d9b5 M tests/Regression/bz705465-fix-for-handle-overflows-of-temporary-buffer-used/main.fmf -:100644 100644 c5ba4b9e 70989105 M tests/Regression/bz710216-Wrong-decimal-point-symbol-in-Portuguese-currency/main.fmf -:100644 100644 7e9ae718 88f16cd2 M tests/Regression/bz711531-shared-robust-mutexes-fail-in-child-fork/main.fmf -:100644 100644 ef8b6af4 299c1753 M tests/Regression/bz730379-libresolv-is-not-compiled-with-the-stack-protector/main.fmf -:100644 100644 88a42335 6cfc0c7f M tests/Regression/bz731042-pthread-create-dumps-core-when-it-fails-to-set/main.fmf -:100644 100644 d82707ae 51157943 M tests/Regression/bz736346-make-initgroups-setgroups-thread-aware/main.fmf -:100644 100644 c71bef72 51595071 M tests/Regression/bz737778-setlocale-fails-if-LC-CTYPE-is-set-to-Turkish/main.fmf -:100644 100644 1754c58a 58407ec4 M tests/Regression/bz739184-Statically-linked-binaries-that-call-gethostbyname/main.fmf -:100644 100644 cef249df 8e3cb3c6 M tests/Regression/bz750531-htons-gives-warning-if-compiled-with-gcc/main.fmf -:100644 100644 a0bdad88 24ac1442 M tests/Regression/bz785984-Short-month-names-in-the-zh-CN-locale-contain/main.fmf -:100644 100644 953e121f 47682453 M tests/Regression/bz789238-FJ6-2-Bug-malloc-deadlock-in-case-of/main.fmf -:100644 100644 484c16c8 1177cabe M tests/Regression/bz799853-Slovakia-uses-Euro-as-currency/main.fmf -:100644 100644 2584deed 25594e56 M tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/main.fmf -:100644 100644 13f11b68 cc9f6b1f M tests/Regression/bz804689-getaddrinfo-localhost6-returns-127-0-0-1/main.fmf -:100644 100644 798b1b46 fc4be7c1 M tests/Regression/bz819430-fnmatch-fails-when-wildcard-is-applied-on/main.fmf -:100644 100644 e242d2d1 32151d0a M tests/Regression/bz823905-iconv-segfaults-if-the-invalid-multibyte/main.fmf -:100644 100644 10a59091 d5414e39 M tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/main.fmf -:100644 100644 026f8975 15fabe75 M tests/Regression/bz829222-rpc-file-in-etc-folder-not-marked-as-configuration-file/main.fmf -:100644 100644 85c05f6d cf595caa M tests/Regression/bz839572-Anaconda-traceback-when-installing-on-s390x/main.fmf -:100644 100644 448b0f9d 5da1c22e M tests/Regression/bz842280-posix-spawn-invokes-sh-when-it-should-not/main.fmf -:100644 100644 cc6041fe c88d3fdf M tests/Regression/bz863384-getaddrinfo-fails-to-return-FQDN-for-AF_INET-and-AF_INET6/main.fmf -:100644 100644 58916e43 95556a7e M tests/Regression/bz868808-backtrace-for-recursive-functions/main.fmf -:100644 100644 0c4fa47f c971eb1d M tests/Regression/bz916656-fpathconf-for-FIFO-returns-different-value-than-for-directory/main.fmf -:100644 100644 26f01c8b 518278cf M tests/Regression/bz916986-MAP_HUGETLB_support/main.fmf -:100644 100644 4d90b568 d56402de M tests/Regression/bz947350-getdate-does-not-ignore-trailing-whitespace/main.fmf -:100644 100644 32211fca 2b057261 M tests/Regression/bz979363-fputs-should-see-EINTR-and-propagate-it-up/main.fmf -:100644 100644 af92d0d0 7261ef46 M tests/Regression/double_free_exploit/main.fmf -:100644 100644 30c04abc b0e1665f M tests/Regression/expf-gives-infinity-where-result-finite/main.fmf -:100644 100644 1812348a 59742031 M tests/Regression/fallocate_156289/main.fmf -:100644 100644 f0828049 e6443731 M tests/Regression/setvbuf-to-full-not-working/main.fmf -:100644 100644 8ae8f82b 75bd5d8f M tests/Sanity/basic-linking-sanity/main.fmf -:100644 100644 0000dcbb 3b235341 M tests/Standardscompliance/bz531160-ldd-Vulnerable-to-Social-Engineering-Exploits/main.fmf -:100644 100644 8a475c4b 99dc45e6 M tests/Standardscompliance/bz639000-Wrong-Ukrainian-currency-symbol/main.fmf -:100644 100644 63aae5d3 81e18a2a M tests/Standardscompliance/bz692838-indic-update-locales-with-currency-symbol-to/main.fmf +:100644 100644 948e5ee 8684e0a M tests/Regression/bz1022022-getaddrinfo-behavior-changed-between-RHEL-6-4-and-RHEL-6-5/main.fmf +:100644 100644 ffa3c96 7a2f403 M tests/Regression/bz434601-timedlock-segfault/main.fmf +:100644 100644 f19de8a 55f1868 M tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/main.fmf +:100644 100644 14062ed d2ec82f M tests/Regression/bz464146-sp-corruption/main.fmf +:100644 100644 8c75741 33e75f0 M tests/Regression/bz471298-pthread_cond/main.fmf +:100644 100644 b0edcfa 0978e0b M tests/Regression/bz488748-inet6-opt-init-sets-incorrect-header-len/main.fmf +:100644 100644 8fc25dd 8ac3fc8 M tests/Regression/bz495955-RHEL5-glibc-doesn-t-use-private-futex-system/main.fmf +:100644 100644 c5373ef 2f06afa M tests/Regression/bz501595-RHEL4-getnameinfo-should-return-EAI-NONAME/main.fmf +:100644 100644 ad867f2 1919744 M tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/main.fmf +:100644 100644 b38df20 b1cde56 M tests/Regression/bz522528-pthread-join-hangs-if-a-thread-calls-setuid/main.fmf +:100644 100644 84b876b 9cd0fec M tests/Regression/bz529997-sem_timedwait-with-invalid-time/main.fmf +:100644 100644 5f0a155 f019508 M tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/main.fmf +:100644 100644 b994a20 f786b6d M tests/Regression/bz549813-dl-close-race-with-C-destructor/main.fmf +:100644 100644 22c0cdf f626d62 M tests/Regression/bz566712-aio-write-ll-corruption/main.fmf +:100644 100644 28f004f 296eb4d M tests/Regression/bz577950-ftell-after-write-causes-glibc-to-flush-buffer/main.fmf +:100644 100644 fc9765f c8a2b1a M tests/Regression/bz580498-pthread-rwlock-timedwrlock-rdlock-never-return/main.fmf +:100644 100644 fea4212 b0a168c M tests/Regression/bz585674-free-race-in-mcheck-hooks/main.fmf +:100644 100644 da6468f 1be8ea5 M tests/Regression/bz587360-digraph-matching-differs-across-archs/main.fmf +:100644 100644 5af78b1 beddb06 M tests/Regression/bz600457-locally-defined-symbol-resolving-failure/main.fmf +:100644 100644 1b55a3d 662e657 M tests/Regression/bz656530-sqrtl-returns-highly-incorrect-results-for-some/main.fmf +:100644 100644 6d91228 b387040 M tests/Regression/bz657570-strptime-s-b-descriptor-should-be-greedy/main.fmf +:100644 100644 c5cc62a 36bfc09 M tests/Regression/bz657572-Finnish-locale-includes-unnecessary-confusing/main.fmf +:100644 100644 499e473 695d1ad M tests/Regression/bz676039-Resolver-fails-to-return-all-addresses-of/main.fmf +:100644 100644 c62404d 800812b M tests/Regression/bz689471-SSE4-strncmp-failure/main.fmf +:100644 100644 477bc40 5120de1 M tests/Regression/bz692177-sysconf-SC-CACHE-returns-0-for-all-caches-on/main.fmf +:100644 100644 9572be9 c3e271f M tests/Regression/bz694386-POWER4-strncmp-crashes-reading-past-zero-byte/main.fmf +:100644 100644 471e141 c134d97 M tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/main.fmf +:100644 100644 c364430 76a3d9b M tests/Regression/bz705465-fix-for-handle-overflows-of-temporary-buffer-used/main.fmf +:100644 100644 c5ba4b9 7098910 M tests/Regression/bz710216-Wrong-decimal-point-symbol-in-Portuguese-currency/main.fmf +:100644 100644 7e9ae71 88f16cd M tests/Regression/bz711531-shared-robust-mutexes-fail-in-child-fork/main.fmf +:100644 100644 ef8b6af 299c175 M tests/Regression/bz730379-libresolv-is-not-compiled-with-the-stack-protector/main.fmf +:100644 100644 88a4233 6cfc0c7 M tests/Regression/bz731042-pthread-create-dumps-core-when-it-fails-to-set/main.fmf +:100644 100644 d82707a 5115794 M tests/Regression/bz736346-make-initgroups-setgroups-thread-aware/main.fmf +:100644 100644 c71bef7 5159507 M tests/Regression/bz737778-setlocale-fails-if-LC-CTYPE-is-set-to-Turkish/main.fmf +:100644 100644 1754c58 58407ec M tests/Regression/bz739184-Statically-linked-binaries-that-call-gethostbyname/main.fmf +:100644 100644 cef249d 8e3cb3c M tests/Regression/bz750531-htons-gives-warning-if-compiled-with-gcc/main.fmf +:100644 100644 a0bdad8 24ac144 M tests/Regression/bz785984-Short-month-names-in-the-zh-CN-locale-contain/main.fmf +:100644 100644 953e121 4768245 M tests/Regression/bz789238-FJ6-2-Bug-malloc-deadlock-in-case-of/main.fmf +:100644 100644 484c16c 1177cab M tests/Regression/bz799853-Slovakia-uses-Euro-as-currency/main.fmf +:100644 100644 2584dee 25594e5 M tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/main.fmf +:100644 100644 13f11b6 cc9f6b1 M tests/Regression/bz804689-getaddrinfo-localhost6-returns-127-0-0-1/main.fmf +:100644 100644 798b1b4 fc4be7c M tests/Regression/bz819430-fnmatch-fails-when-wildcard-is-applied-on/main.fmf +:100644 100644 e242d2d 32151d0 M tests/Regression/bz823905-iconv-segfaults-if-the-invalid-multibyte/main.fmf +:100644 100644 10a5909 d5414e3 M tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/main.fmf +:100644 100644 026f897 15fabe7 M tests/Regression/bz829222-rpc-file-in-etc-folder-not-marked-as-configuration-file/main.fmf +:100644 100644 85c05f6 cf595ca M tests/Regression/bz839572-Anaconda-traceback-when-installing-on-s390x/main.fmf +:100644 100644 448b0f9 5da1c22 M tests/Regression/bz842280-posix-spawn-invokes-sh-when-it-should-not/main.fmf +:100644 100644 cc6041f c88d3fd M tests/Regression/bz863384-getaddrinfo-fails-to-return-FQDN-for-AF_INET-and-AF_INET6/main.fmf +:100644 100644 58916e4 95556a7 M tests/Regression/bz868808-backtrace-for-recursive-functions/main.fmf +:100644 100644 0c4fa47 c971eb1 M tests/Regression/bz916656-fpathconf-for-FIFO-returns-different-value-than-for-directory/main.fmf +:100644 100644 26f01c8 518278c M tests/Regression/bz916986-MAP_HUGETLB_support/main.fmf +:100644 100644 4d90b56 d56402d M tests/Regression/bz947350-getdate-does-not-ignore-trailing-whitespace/main.fmf +:100644 100644 32211fc 2b05726 M tests/Regression/bz979363-fputs-should-see-EINTR-and-propagate-it-up/main.fmf +:100644 100644 af92d0d 7261ef4 M tests/Regression/double_free_exploit/main.fmf +:100644 100644 30c04ab b0e1665 M tests/Regression/expf-gives-infinity-where-result-finite/main.fmf +:100644 100644 1812348 5974203 M tests/Regression/fallocate_156289/main.fmf +:100644 100644 f082804 e644373 M tests/Regression/setvbuf-to-full-not-working/main.fmf +:100644 100644 8ae8f82 75bd5d8 M tests/Sanity/basic-linking-sanity/main.fmf +:100644 100644 0000dcb 3b23534 M tests/Standardscompliance/bz531160-ldd-Vulnerable-to-Social-Engineering-Exploits/main.fmf +:100644 100644 8a475c4 99dc45e M tests/Standardscompliance/bz639000-Wrong-Ukrainian-currency-symbol/main.fmf +:100644 100644 63aae5d 81e18a2 M tests/Standardscompliance/bz692838-indic-update-locales-with-currency-symbol-to/main.fmf commit bcd58c23a3ccd227d5cd79efb82e367e5b94d990 Author: Sergey Kolosov @@ -5284,7 +6418,7 @@ CommitDate: Tue Jul 12 21:19:22 2022 +0200 CI Tests: removes redundant check for libstdc++.i686 in bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has testcase -:100755 100755 757b896d d36bb2d4 M tests/Regression/bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has/runtest.sh +:100755 100755 757b896 d36bb2d M tests/Regression/bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has/runtest.sh commit 8859e9a9beed881b44942c5e728cdad939f6f94e Author: Sergey Kolosov @@ -5294,7 +6428,7 @@ CommitDate: Tue Jul 12 20:57:52 2022 +0200 CI Tests: adds check for i686 packages in bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has testcase -:100755 100755 f6c6e2e2 757b896d M tests/Regression/bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has/runtest.sh +:100755 100755 f6c6e2e 757b896 M tests/Regression/bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has/runtest.sh commit 1bfc6912f16a07dd939a5803d8bdf7c5afb2c0ac Author: Stephen Gallagher @@ -5313,7 +6447,7 @@ CommitDate: Fri Jul 8 13:48:36 2022 +0200 Signed-off-by: Stephen Gallagher -:100644 100644 89f0d3a2 d89def90 M glibc.spec +:100644 100644 89f0d3a d89def9 M glibc.spec commit 70cb41fd34c50170800c50161dccad9a1cce78d3 Author: Florian Weimer @@ -5323,8 +6457,8 @@ CommitDate: Tue Jul 5 12:17:25 2022 +0200 ppc64le: Increase Clang compatibility of float128 redirects (#2100546) -:000000 100644 00000000 22dbee9f A glibc-swbz27087.patch -:100644 100644 0003e2d2 89f0d3a2 M glibc.spec +:000000 100644 0000000 22dbee9 A glibc-swbz27087.patch +:100644 100644 0003e2d 89f0d3a M glibc.spec commit 5d92a617116c5947de3a74bff79f0b0f4ebc20c7 Author: Florian Weimer @@ -5346,8 +6480,8 @@ CommitDate: Tue Jul 5 11:07:58 2022 +0200 - locale: Turn ADDC and ADDS into functions in linereader.c - libc-symbols.h: remove unused macros -:100644 100644 242dec48 0003e2d2 M glibc.spec -:100644 100644 7c2e0aee f3452501 M sources +:100644 100644 242dec4 0003e2d M glibc.spec +:100644 100644 7c2e0ae f345250 M sources commit 5c27a7014bb874375c19f0036c065ce645a39786 Author: Florian Weimer @@ -5359,8 +6493,8 @@ CommitDate: Tue Jul 5 11:03:37 2022 +0200 egrep will start to warn in the next coreutils release. -:100644 100644 9fb7f768 b82c5a1c M glibc.req.in -:100644 100644 83ed24b6 242dec48 M glibc.spec +:100644 100644 9fb7f76 b82c5a1 M glibc.req.in +:100644 100644 83ed24b 242dec4 M glibc.spec commit 9d11138b6b1c0f57d9bb615935362c4bf277eb5a Author: Florian Weimer @@ -5372,7 +6506,7 @@ CommitDate: Tue Jul 5 11:03:37 2022 +0200 This is in support of a potential performance experiment. -:100644 100644 da254ccc 83ed24b6 M glibc.spec +:100644 100644 da254cc 83ed24b M glibc.spec commit f83c4f6ffc07d0d0b4251b193b0d69af00174006 Author: Carlos O'Donell @@ -5404,8 +6538,8 @@ CommitDate: Mon Jul 4 15:08:51 2022 -0400 - Linux: Forward declaration of struct iovec for process_madvise - x86: Add more feature definitions to isa-level.h -:100644 100644 0a51b8b9 da254ccc M glibc.spec -:100644 100644 87d61ceb 7c2e0aee M sources +:100644 100644 0a51b8b da254cc M glibc.spec +:100644 100644 87d61ce 7c2e0ae M sources commit 0ce81051557ca45e2927de91b8dc7cc9557caa30 Author: DJ Delorie @@ -5417,7 +6551,7 @@ CommitDate: Wed Jun 29 16:59:29 2022 -0400 Bumped NVR to rerun CI/CD against fixed regression test. -:100644 100644 5ce08ed5 0a51b8b9 M glibc.spec +:100644 100644 5ce08ed 0a51b8b M glibc.spec commit 856fa5a570c323751d0a37538bf5aa53231887ca Author: Sergey Kolosov @@ -5427,7 +6561,7 @@ CommitDate: Wed Jun 29 15:47:28 2022 +0200 CI Tests: Fix python syntax in bz699724 testcase -:100644 100644 05eac95d 27b02bca M tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/test_crypt.py +:100644 100644 05eac95 27b02bc M tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/test_crypt.py commit d760d0071f0e270ef8185fc305cf1f5b3fe27ca9 Author: DJ Delorie @@ -5469,8 +6603,8 @@ CommitDate: Tue Jun 28 17:30:04 2022 -0400 - s390: use LC_ALL=C for readelf call - s390: use $READELF -:100644 100644 896369cd 5ce08ed5 M glibc.spec -:100644 100644 cf64205c 87d61ceb M sources +:100644 100644 896369c 5ce08ed M glibc.spec +:100644 100644 cf64205 87d61ce M sources commit 4dd3af9227e79cefcd25f46d83c80ca0c4dbfdd1 Author: Arjun Shankar @@ -5509,8 +6643,8 @@ CommitDate: Mon Jun 20 17:20:35 2022 +0200 - x86: Align varshift table to 32-bytes - x86: Add copyright to strpbrk-c.c -:100644 100644 a2c6daac 896369cd M glibc.spec -:100644 100644 344f359e cf64205c M sources +:100644 100644 a2c6daa 896369c M glibc.spec +:100644 100644 344f359 cf64205 M sources commit f07781018c059131e75a09205699081c0df814e7 Author: Luigi Pellecchia @@ -5520,17 +6654,17 @@ CommitDate: Mon Jun 13 15:43:02 2022 +0200 CI tests: Fix testcase requirements -:100644 100644 8dcda7d1 b0edcfa9 M tests/Regression/bz488748-inet6-opt-init-sets-incorrect-header-len/main.fmf -:100644 100644 4599d31d c5373ef1 M tests/Regression/bz501595-RHEL4-getnameinfo-should-return-EAI-NONAME/main.fmf -:100644 100644 dccf27be 84b876b6 M tests/Regression/bz529997-sem_timedwait-with-invalid-time/main.fmf -:100755 100755 21ae1717 5dcfd223 M tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/runtest.sh -:100644 100644 aaf37922 b994a204 M tests/Regression/bz549813-dl-close-race-with-C-destructor/main.fmf -:100644 100644 08d97c33 22c0cdf4 M tests/Regression/bz566712-aio-write-ll-corruption/main.fmf -:100644 100644 eca14e95 da6468fc M tests/Regression/bz587360-digraph-matching-differs-across-archs/main.fmf -:100755 100755 197186f7 965fc787 M tests/Regression/bz587360-digraph-matching-differs-across-archs/runtest.sh -:100644 100644 6adb0345 5af78b18 M tests/Regression/bz600457-locally-defined-symbol-resolving-failure/main.fmf -:100644 100644 8d3360ba c71bef72 M tests/Regression/bz737778-setlocale-fails-if-LC-CTYPE-is-set-to-Turkish/main.fmf -:100644 100644 743943ad 8ae8f82b M tests/Sanity/basic-linking-sanity/main.fmf +:100644 100644 8dcda7d b0edcfa M tests/Regression/bz488748-inet6-opt-init-sets-incorrect-header-len/main.fmf +:100644 100644 4599d31 c5373ef M tests/Regression/bz501595-RHEL4-getnameinfo-should-return-EAI-NONAME/main.fmf +:100644 100644 dccf27b 84b876b M tests/Regression/bz529997-sem_timedwait-with-invalid-time/main.fmf +:100755 100755 21ae171 5dcfd22 M tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/runtest.sh +:100644 100644 aaf3792 b994a20 M tests/Regression/bz549813-dl-close-race-with-C-destructor/main.fmf +:100644 100644 08d97c3 22c0cdf M tests/Regression/bz566712-aio-write-ll-corruption/main.fmf +:100644 100644 eca14e9 da6468f M tests/Regression/bz587360-digraph-matching-differs-across-archs/main.fmf +:100755 100755 197186f 965fc78 M tests/Regression/bz587360-digraph-matching-differs-across-archs/runtest.sh +:100644 100644 6adb034 5af78b1 M tests/Regression/bz600457-locally-defined-symbol-resolving-failure/main.fmf +:100644 100644 8d3360b c71bef7 M tests/Regression/bz737778-setlocale-fails-if-LC-CTYPE-is-set-to-Turkish/main.fmf +:100644 100644 743943a 8ae8f82 M tests/Sanity/basic-linking-sanity/main.fmf commit c048a406452d5f0b3046d033555a083be3537f47 Author: Florian Weimer @@ -5563,8 +6697,8 @@ CommitDate: Thu Jun 9 09:46:58 2022 +0200 - x86_64: Add strstr function with 512-bit EVEX - scripts/glibcelf.py: Add PT_AARCH64_MEMTAG_MTE constant -:100644 100644 73c15505 a2c6daac M glibc.spec -:100644 100644 9ebc240f 344f359e M sources +:100644 100644 73c1550 a2c6daa M glibc.spec +:100644 100644 9ebc240 344f359 M sources commit 6dd1d1f29e0840130b9eb65f6567c30617c94abb Author: Carlos O'Donell @@ -5631,8 +6765,8 @@ CommitDate: Mon Jun 6 12:29:45 2022 -0400 - Update kernel version to 5.18 in header constant tests - String: Improve overflow test coverage for strnlen -:100644 100644 4d507374 73c15505 M glibc.spec -:100644 100644 6716d868 9ebc240f M sources +:100644 100644 4d50737 73c1550 M glibc.spec +:100644 100644 6716d86 9ebc240 M sources commit ab4bc8a24e4604e5f91ffe6518a419599b8c6849 Author: Sergey Kolosov @@ -5644,348 +6778,348 @@ CommitDate: Tue May 31 09:29:27 2022 +0200 Move some of the RHEL QE testcases upstream to Fedora. -:000000 100644 00000000 f9f70297 A tests/Regression/bz1022022-getaddrinfo-behavior-changed-between-RHEL-6-4-and-RHEL-6-5/Makefile -:000000 100644 00000000 f55c98f8 A tests/Regression/bz1022022-getaddrinfo-behavior-changed-between-RHEL-6-4-and-RHEL-6-5/PURPOSE -:000000 100644 00000000 948e5eec A tests/Regression/bz1022022-getaddrinfo-behavior-changed-between-RHEL-6-4-and-RHEL-6-5/main.fmf -:000000 100755 00000000 8da787e4 A tests/Regression/bz1022022-getaddrinfo-behavior-changed-between-RHEL-6-4-and-RHEL-6-5/runtest.sh -:000000 100644 00000000 0c110567 A tests/Regression/bz1022022-getaddrinfo-behavior-changed-between-RHEL-6-4-and-RHEL-6-5/tst-getaddrinfo.c -:000000 100644 00000000 bb73776a A tests/Regression/bz434601-timedlock-segfault/Makefile -:000000 100644 00000000 f37d5276 A tests/Regression/bz434601-timedlock-segfault/PURPOSE -:000000 100644 00000000 ffa3c961 A tests/Regression/bz434601-timedlock-segfault/main.fmf -:000000 100755 00000000 a451879a A tests/Regression/bz434601-timedlock-segfault/runtest.sh -:000000 100644 00000000 57d88420 A tests/Regression/bz434601-timedlock-segfault/timedlock.c -:000000 100644 00000000 452d4b43 A tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/Makefile -:000000 100644 00000000 2ac2c13e A tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/PURPOSE -:000000 100644 00000000 f19de8a3 A tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/main.fmf -:000000 100755 00000000 01236c40 A tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/runtest.sh -:000000 100644 00000000 05c7a338 A tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/testcase.c -:000000 100644 00000000 b5d4a4b4 A tests/Regression/bz464146-sp-corruption/Makefile -:000000 100644 00000000 514ba435 A tests/Regression/bz464146-sp-corruption/PURPOSE -:000000 100644 00000000 14062edb A tests/Regression/bz464146-sp-corruption/main.fmf -:000000 100755 00000000 3a393221 A tests/Regression/bz464146-sp-corruption/runtest.sh -:000000 100644 00000000 54bf74be A tests/Regression/bz464146-sp-corruption/testit.c -:000000 100644 00000000 07608357 A tests/Regression/bz471298-pthread_cond/Makefile -:000000 100644 00000000 a82fbcab A tests/Regression/bz471298-pthread_cond/PURPOSE -:000000 100644 00000000 8c75741f A tests/Regression/bz471298-pthread_cond/main.fmf -:000000 100644 00000000 08c96b17 A tests/Regression/bz471298-pthread_cond/pthread_cond_test.c -:000000 100755 00000000 a5cc1ce2 A tests/Regression/bz471298-pthread_cond/runtest.sh -:000000 100644 00000000 58011ea2 A tests/Regression/bz488748-inet6-opt-init-sets-incorrect-header-len/Makefile -:000000 100644 00000000 5603ef1c A tests/Regression/bz488748-inet6-opt-init-sets-incorrect-header-len/PURPOSE -:000000 100644 00000000 8dcda7d1 A tests/Regression/bz488748-inet6-opt-init-sets-incorrect-header-len/main.fmf -:000000 100644 00000000 f1de8f7f A tests/Regression/bz488748-inet6-opt-init-sets-incorrect-header-len/optinit.c -:000000 100755 00000000 44962e18 A tests/Regression/bz488748-inet6-opt-init-sets-incorrect-header-len/runtest.sh -:000000 100644 00000000 65df6098 A tests/Regression/bz495955-RHEL5-glibc-doesn-t-use-private-futex-system/Makefile -:000000 100644 00000000 89a880d0 A tests/Regression/bz495955-RHEL5-glibc-doesn-t-use-private-futex-system/PURPOSE -:000000 100644 00000000 8fc25dd1 A tests/Regression/bz495955-RHEL5-glibc-doesn-t-use-private-futex-system/main.fmf -:000000 100644 00000000 733830a2 A tests/Regression/bz495955-RHEL5-glibc-doesn-t-use-private-futex-system/priv-mutex.c -:000000 100755 00000000 feead289 A tests/Regression/bz495955-RHEL5-glibc-doesn-t-use-private-futex-system/runtest.sh -:000000 100644 00000000 23c4235a A tests/Regression/bz501595-RHEL4-getnameinfo-should-return-EAI-NONAME/Makefile -:000000 100644 00000000 8c135e68 A tests/Regression/bz501595-RHEL4-getnameinfo-should-return-EAI-NONAME/PURPOSE -:000000 100644 00000000 d3899368 A tests/Regression/bz501595-RHEL4-getnameinfo-should-return-EAI-NONAME/function-nodename-servname-null.c -:000000 100644 00000000 4599d31d A tests/Regression/bz501595-RHEL4-getnameinfo-should-return-EAI-NONAME/main.fmf -:000000 100755 00000000 3cdccd66 A tests/Regression/bz501595-RHEL4-getnameinfo-should-return-EAI-NONAME/runtest.sh -:000000 100644 00000000 5cff4476 A tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/Makefile -:000000 100644 00000000 a3bbae3c A tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/PURPOSE -:000000 100755 00000000 742fc777 A tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/expected.py2 -:000000 100755 00000000 91806575 A tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/expected.py3 -:000000 100644 00000000 c39d30b9 A tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/fopen.c -:000000 100644 00000000 ad867f2b A tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/main.fmf -:000000 100755 00000000 937ff431 A tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/runtest.sh -:000000 100644 00000000 1443a2b6 A tests/Regression/bz522528-pthread-join-hangs-if-a-thread-calls-setuid/Makefile -:000000 100644 00000000 94e4c56f A tests/Regression/bz522528-pthread-join-hangs-if-a-thread-calls-setuid/PURPOSE -:000000 100644 00000000 b38df200 A tests/Regression/bz522528-pthread-join-hangs-if-a-thread-calls-setuid/main.fmf -:000000 100644 00000000 a46152d5 A tests/Regression/bz522528-pthread-join-hangs-if-a-thread-calls-setuid/reproducer.c -:000000 100755 00000000 9353d16e A tests/Regression/bz522528-pthread-join-hangs-if-a-thread-calls-setuid/runtest.sh -:000000 100644 00000000 b2422b6d A tests/Regression/bz529997-sem_timedwait-with-invalid-time/Makefile -:000000 100644 00000000 0a6f3f04 A tests/Regression/bz529997-sem_timedwait-with-invalid-time/PURPOSE -:000000 100644 00000000 98d27d8d A tests/Regression/bz529997-sem_timedwait-with-invalid-time/golden-real.out -:000000 100644 00000000 7236993a A tests/Regression/bz529997-sem_timedwait-with-invalid-time/golden-repro.out -:000000 100644 00000000 dccf27be A tests/Regression/bz529997-sem_timedwait-with-invalid-time/main.fmf -:000000 100644 00000000 e1f8495f A tests/Regression/bz529997-sem_timedwait-with-invalid-time/newrepr.c -:000000 100644 00000000 5ee283c7 A tests/Regression/bz529997-sem_timedwait-with-invalid-time/oldrepr.c -:000000 100644 00000000 471fe169 A tests/Regression/bz529997-sem_timedwait-with-invalid-time/real-reproducer.c -:000000 100755 00000000 5dc78e45 A tests/Regression/bz529997-sem_timedwait-with-invalid-time/runtest.sh -:000000 100644 00000000 3462b854 A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/Makefile -:000000 100644 00000000 a17f408a A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/PURPOSE -:000000 100644 00000000 5f0a1556 A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/main.fmf -:000000 100644 00000000 5f09f587 A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/p1.pl -:000000 100644 00000000 b92bb9b8 A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/p2.pl -:000000 100644 00000000 bd57bbb1 A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/p3.py -:000000 100644 00000000 bc490269 A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/p3_3.py -:000000 100644 00000000 b77ea8c4 A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/p4.py -:000000 100644 00000000 aeb9778f A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/p4_3.py -:000000 100755 00000000 21ae1717 A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/runtest.sh -:000000 100644 00000000 76a5ddac A tests/Regression/bz549813-dl-close-race-with-C-destructor/C_Only.tar -:000000 100644 00000000 169faf90 A tests/Regression/bz549813-dl-close-race-with-C-destructor/Makefile -:000000 100644 00000000 5327c21b A tests/Regression/bz549813-dl-close-race-with-C-destructor/PURPOSE -:000000 100644 00000000 aaf37922 A tests/Regression/bz549813-dl-close-race-with-C-destructor/main.fmf -:000000 100755 00000000 fef21498 A tests/Regression/bz549813-dl-close-race-with-C-destructor/runtest.sh -:000000 100644 00000000 df7da0ee A tests/Regression/bz566712-aio-write-ll-corruption/Makefile -:000000 100644 00000000 7a3f2e63 A tests/Regression/bz566712-aio-write-ll-corruption/PURPOSE -:000000 100644 00000000 981c245a A tests/Regression/bz566712-aio-write-ll-corruption/aio_write.c -:000000 100644 00000000 08d97c33 A tests/Regression/bz566712-aio-write-ll-corruption/main.fmf -:000000 100755 00000000 40d6985a A tests/Regression/bz566712-aio-write-ll-corruption/runtest.sh -:000000 100644 00000000 b75558fd A tests/Regression/bz577950-ftell-after-write-causes-glibc-to-flush-buffer/Makefile -:000000 100644 00000000 a52a189f A tests/Regression/bz577950-ftell-after-write-causes-glibc-to-flush-buffer/PURPOSE -:000000 100644 00000000 28f004f5 A tests/Regression/bz577950-ftell-after-write-causes-glibc-to-flush-buffer/main.fmf -:000000 100755 00000000 9a6c1358 A tests/Regression/bz577950-ftell-after-write-causes-glibc-to-flush-buffer/runtest.sh -:000000 100644 00000000 518bd645 A tests/Regression/bz577950-ftell-after-write-causes-glibc-to-flush-buffer/tst-ftell-with-fdopen.c -:000000 100644 00000000 1e0c9cea A tests/Regression/bz577950-ftell-after-write-causes-glibc-to-flush-buffer/tst-ftell-with-fdopen.expected -:000000 100644 00000000 b2384728 A tests/Regression/bz577950-ftell-after-write-causes-glibc-to-flush-buffer/tst-write-ftell.c -:000000 100644 00000000 561ff821 A tests/Regression/bz580498-pthread-rwlock-timedwrlock-rdlock-never-return/Makefile -:000000 100644 00000000 66b5d4a3 A tests/Regression/bz580498-pthread-rwlock-timedwrlock-rdlock-never-return/PURPOSE -:000000 100644 00000000 fc9765ff A tests/Regression/bz580498-pthread-rwlock-timedwrlock-rdlock-never-return/main.fmf -:000000 100644 00000000 e65966c3 A tests/Regression/bz580498-pthread-rwlock-timedwrlock-rdlock-never-return/pthread_rwlock_timedwrlock.c -:000000 100755 00000000 21f71d97 A tests/Regression/bz580498-pthread-rwlock-timedwrlock-rdlock-never-return/runtest.sh -:000000 100644 00000000 52e05731 A tests/Regression/bz585674-free-race-in-mcheck-hooks/Makefile -:000000 100644 00000000 5d3f2258 A tests/Regression/bz585674-free-race-in-mcheck-hooks/PURPOSE -:000000 100644 00000000 fea4212f A tests/Regression/bz585674-free-race-in-mcheck-hooks/main.fmf -:000000 100644 00000000 ee5c6f0e A tests/Regression/bz585674-free-race-in-mcheck-hooks/malloc_check.c -:000000 100755 00000000 d01ddacf A tests/Regression/bz585674-free-race-in-mcheck-hooks/runtest.sh -:000000 100644 00000000 d4f4d382 A tests/Regression/bz587360-digraph-matching-differs-across-archs/Makefile -:000000 100644 00000000 a928bea5 A tests/Regression/bz587360-digraph-matching-differs-across-archs/PURPOSE -:000000 100644 00000000 eca14e95 A tests/Regression/bz587360-digraph-matching-differs-across-archs/main.fmf -:000000 100755 00000000 197186f7 A tests/Regression/bz587360-digraph-matching-differs-across-archs/runtest.sh -:000000 100644 00000000 5b498124 A tests/Regression/bz600457-locally-defined-symbol-resolving-failure/Makefile -:000000 100644 00000000 74ca16a8 A tests/Regression/bz600457-locally-defined-symbol-resolving-failure/PURPOSE -:000000 100644 00000000 4fe6cde5 A tests/Regression/bz600457-locally-defined-symbol-resolving-failure/golden.out -:000000 100644 00000000 6adb0345 A tests/Regression/bz600457-locally-defined-symbol-resolving-failure/main.fmf -:000000 100644 00000000 95514353 A tests/Regression/bz600457-locally-defined-symbol-resolving-failure/reproducer.tar.gz -:000000 100755 00000000 d7ab15b8 A tests/Regression/bz600457-locally-defined-symbol-resolving-failure/runtest.sh -:000000 100644 00000000 61227634 A tests/Regression/bz656530-sqrtl-returns-highly-incorrect-results-for-some/Makefile -:000000 100644 00000000 0739a92e A tests/Regression/bz656530-sqrtl-returns-highly-incorrect-results-for-some/PURPOSE -:000000 100644 00000000 1b55a3db A tests/Regression/bz656530-sqrtl-returns-highly-incorrect-results-for-some/main.fmf -:000000 100755 00000000 6ed2b601 A tests/Regression/bz656530-sqrtl-returns-highly-incorrect-results-for-some/runtest.sh -:000000 100644 00000000 76a5b34a A tests/Regression/bz656530-sqrtl-returns-highly-incorrect-results-for-some/sqrt.c -:000000 100644 00000000 0e43dbe5 A tests/Regression/bz657570-strptime-s-b-descriptor-should-be-greedy/Makefile -:000000 100644 00000000 8e9b2a0f A tests/Regression/bz657570-strptime-s-b-descriptor-should-be-greedy/PURPOSE -:000000 100644 00000000 6d91228c A tests/Regression/bz657570-strptime-s-b-descriptor-should-be-greedy/main.fmf -:000000 100755 00000000 2350638c A tests/Regression/bz657570-strptime-s-b-descriptor-should-be-greedy/runtest.sh -:000000 100644 00000000 56126f8d A tests/Regression/bz657570-strptime-s-b-descriptor-should-be-greedy/strptime.c -:000000 100644 00000000 f8d52b24 A tests/Regression/bz657572-Finnish-locale-includes-unnecessary-confusing/Makefile -:000000 100644 00000000 bf155d07 A tests/Regression/bz657572-Finnish-locale-includes-unnecessary-confusing/PURPOSE -:000000 100644 00000000 fcc4c510 A tests/Regression/bz657572-Finnish-locale-includes-unnecessary-confusing/golden.out -:000000 100644 00000000 c5cc62a9 A tests/Regression/bz657572-Finnish-locale-includes-unnecessary-confusing/main.fmf -:000000 100755 00000000 a4a4b65f A tests/Regression/bz657572-Finnish-locale-includes-unnecessary-confusing/runtest.sh -:000000 100644 00000000 a1f52ef5 A tests/Regression/bz676039-Resolver-fails-to-return-all-addresses-of/676039-resolver.c -:000000 100644 00000000 391ce2a3 A tests/Regression/bz676039-Resolver-fails-to-return-all-addresses-of/Makefile -:000000 100644 00000000 38df2dcc A tests/Regression/bz676039-Resolver-fails-to-return-all-addresses-of/PURPOSE -:000000 100644 00000000 e30352fa A tests/Regression/bz676039-Resolver-fails-to-return-all-addresses-of/a.out-gold -:000000 100644 00000000 beaee8ed A tests/Regression/bz676039-Resolver-fails-to-return-all-addresses-of/getent-gold -:000000 100644 00000000 499e4735 A tests/Regression/bz676039-Resolver-fails-to-return-all-addresses-of/main.fmf -:000000 100755 00000000 547e2c63 A tests/Regression/bz676039-Resolver-fails-to-return-all-addresses-of/runtest.sh -:000000 100644 00000000 e00273e8 A tests/Regression/bz689471-SSE4-strncmp-failure/Makefile -:000000 100644 00000000 2de0bad2 A tests/Regression/bz689471-SSE4-strncmp-failure/PURPOSE -:000000 100644 00000000 c62404d4 A tests/Regression/bz689471-SSE4-strncmp-failure/main.fmf -:000000 100644 00000000 b0bdd8bf A tests/Regression/bz689471-SSE4-strncmp-failure/repr.c -:000000 100755 00000000 90bfbfa1 A tests/Regression/bz689471-SSE4-strncmp-failure/runtest.sh -:000000 100644 00000000 d6b081cf A tests/Regression/bz692177-sysconf-SC-CACHE-returns-0-for-all-caches-on/Makefile -:000000 100644 00000000 3876cd6a A tests/Regression/bz692177-sysconf-SC-CACHE-returns-0-for-all-caches-on/PURPOSE -:000000 100644 00000000 477bc403 A tests/Regression/bz692177-sysconf-SC-CACHE-returns-0-for-all-caches-on/main.fmf -:000000 100755 00000000 1d193f94 A tests/Regression/bz692177-sysconf-SC-CACHE-returns-0-for-all-caches-on/runtest.sh -:000000 100644 00000000 42390d17 A tests/Regression/bz694386-POWER4-strncmp-crashes-reading-past-zero-byte/Makefile -:000000 100644 00000000 8dda0798 A tests/Regression/bz694386-POWER4-strncmp-crashes-reading-past-zero-byte/PURPOSE -:000000 100644 00000000 9572be94 A tests/Regression/bz694386-POWER4-strncmp-crashes-reading-past-zero-byte/main.fmf -:000000 100755 00000000 750054b3 A tests/Regression/bz694386-POWER4-strncmp-crashes-reading-past-zero-byte/runtest.sh -:000000 100644 00000000 8c7b608a A tests/Regression/bz694386-POWER4-strncmp-crashes-reading-past-zero-byte/strncmp.c -:000000 100644 00000000 1805d2be A tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/Makefile -:000000 100644 00000000 e143347f A tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/PURPOSE -:000000 100644 00000000 471e141a A tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/main.fmf -:000000 100755 00000000 8991a972 A tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/runtest.sh -:000000 100644 00000000 05eac95d A tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/test_crypt.py -:000000 100644 00000000 9bdd6836 A tests/Regression/bz705465-fix-for-handle-overflows-of-temporary-buffer-used/Makefile -:000000 100644 00000000 551ac25a A tests/Regression/bz705465-fix-for-handle-overflows-of-temporary-buffer-used/PURPOSE -:000000 100644 00000000 c364430e A tests/Regression/bz705465-fix-for-handle-overflows-of-temporary-buffer-used/main.fmf -:000000 100644 00000000 fb9fa614 A tests/Regression/bz705465-fix-for-handle-overflows-of-temporary-buffer-used/repr.c -:000000 100755 00000000 90b55e8a A tests/Regression/bz705465-fix-for-handle-overflows-of-temporary-buffer-used/runtest.sh -:000000 100644 00000000 aecdf7b9 A tests/Regression/bz710216-Wrong-decimal-point-symbol-in-Portuguese-currency/Makefile -:000000 100644 00000000 fb5cc4f2 A tests/Regression/bz710216-Wrong-decimal-point-symbol-in-Portuguese-currency/PURPOSE -:000000 100644 00000000 22508651 A tests/Regression/bz710216-Wrong-decimal-point-symbol-in-Portuguese-currency/log.golden -:000000 100644 00000000 c5ba4b9e A tests/Regression/bz710216-Wrong-decimal-point-symbol-in-Portuguese-currency/main.fmf -:000000 100644 00000000 9e44d87d A tests/Regression/bz710216-Wrong-decimal-point-symbol-in-Portuguese-currency/mf.c -:000000 100755 00000000 c3787841 A tests/Regression/bz710216-Wrong-decimal-point-symbol-in-Portuguese-currency/runtest.sh -:000000 100644 00000000 d08b5581 A tests/Regression/bz711531-shared-robust-mutexes-fail-in-child-fork/Makefile -:000000 100644 00000000 a9db60f2 A tests/Regression/bz711531-shared-robust-mutexes-fail-in-child-fork/PURPOSE -:000000 100644 00000000 7e9ae718 A tests/Regression/bz711531-shared-robust-mutexes-fail-in-child-fork/main.fmf -:000000 100755 00000000 37a288ad A tests/Regression/bz711531-shared-robust-mutexes-fail-in-child-fork/runtest.sh -:000000 100644 00000000 987b6709 A tests/Regression/bz711531-shared-robust-mutexes-fail-in-child-fork/test_robust.c -:000000 100644 00000000 efd0e568 A tests/Regression/bz730379-libresolv-is-not-compiled-with-the-stack-protector/Makefile -:000000 100644 00000000 ed27eece A tests/Regression/bz730379-libresolv-is-not-compiled-with-the-stack-protector/PURPOSE -:000000 100644 00000000 ef8b6af4 A tests/Regression/bz730379-libresolv-is-not-compiled-with-the-stack-protector/main.fmf -:000000 100755 00000000 9120bb98 A tests/Regression/bz730379-libresolv-is-not-compiled-with-the-stack-protector/runtest.sh -:000000 100644 00000000 f084a66b A tests/Regression/bz731042-pthread-create-dumps-core-when-it-fails-to-set/Makefile -:000000 100644 00000000 d5360fec A tests/Regression/bz731042-pthread-create-dumps-core-when-it-fails-to-set/PURPOSE -:000000 100644 00000000 88a42335 A tests/Regression/bz731042-pthread-create-dumps-core-when-it-fails-to-set/main.fmf -:000000 100644 00000000 31d59fc0 A tests/Regression/bz731042-pthread-create-dumps-core-when-it-fails-to-set/repr.c -:000000 100755 00000000 5872bdb0 A tests/Regression/bz731042-pthread-create-dumps-core-when-it-fails-to-set/runtest.sh -:000000 100644 00000000 f5d092bb A tests/Regression/bz736346-make-initgroups-setgroups-thread-aware/4151-sourceware.c -:000000 100644 00000000 42c3ff5b A tests/Regression/bz736346-make-initgroups-setgroups-thread-aware/Makefile -:000000 100644 00000000 863db9bd A tests/Regression/bz736346-make-initgroups-setgroups-thread-aware/PURPOSE -:000000 100644 00000000 d82707ae A tests/Regression/bz736346-make-initgroups-setgroups-thread-aware/main.fmf -:000000 100755 00000000 9902168c A tests/Regression/bz736346-make-initgroups-setgroups-thread-aware/runtest.sh -:000000 100644 00000000 5da5e2c7 A tests/Regression/bz737778-setlocale-fails-if-LC-CTYPE-is-set-to-Turkish/Makefile -:000000 100644 00000000 5951a5c3 A tests/Regression/bz737778-setlocale-fails-if-LC-CTYPE-is-set-to-Turkish/PURPOSE -:000000 100644 00000000 66f16646 A tests/Regression/bz737778-setlocale-fails-if-LC-CTYPE-is-set-to-Turkish/gold.txt -:000000 100644 00000000 110b3ce2 A tests/Regression/bz737778-setlocale-fails-if-LC-CTYPE-is-set-to-Turkish/locale.c -:000000 100644 00000000 8d3360ba A tests/Regression/bz737778-setlocale-fails-if-LC-CTYPE-is-set-to-Turkish/main.fmf -:000000 100755 00000000 d8644345 A tests/Regression/bz737778-setlocale-fails-if-LC-CTYPE-is-set-to-Turkish/runtest.sh -:000000 100644 00000000 767c259c A tests/Regression/bz739184-Statically-linked-binaries-that-call-gethostbyname/Makefile -:000000 100644 00000000 46040069 A tests/Regression/bz739184-Statically-linked-binaries-that-call-gethostbyname/PURPOSE -:000000 100644 00000000 066bc87f A tests/Regression/bz739184-Statically-linked-binaries-that-call-gethostbyname/chk-gethost.c -:000000 100644 00000000 1754c58a A tests/Regression/bz739184-Statically-linked-binaries-that-call-gethostbyname/main.fmf -:000000 100755 00000000 843e9092 A tests/Regression/bz739184-Statically-linked-binaries-that-call-gethostbyname/runtest.sh -:000000 100644 00000000 29683a64 A tests/Regression/bz750531-htons-gives-warning-if-compiled-with-gcc/Makefile -:000000 100644 00000000 ee81e499 A tests/Regression/bz750531-htons-gives-warning-if-compiled-with-gcc/PURPOSE -:000000 100644 00000000 cef249df A tests/Regression/bz750531-htons-gives-warning-if-compiled-with-gcc/main.fmf -:000000 100755 00000000 3fe960e7 A tests/Regression/bz750531-htons-gives-warning-if-compiled-with-gcc/runtest.sh -:000000 100644 00000000 5c4ba8d2 A tests/Regression/bz750531-htons-gives-warning-if-compiled-with-gcc/test.c -:000000 100644 00000000 5ecda47c A tests/Regression/bz785984-Short-month-names-in-the-zh-CN-locale-contain/Makefile -:000000 100644 00000000 1ec0f90c A tests/Regression/bz785984-Short-month-names-in-the-zh-CN-locale-contain/PURPOSE -:000000 100644 00000000 20224cf9 A tests/Regression/bz785984-Short-month-names-in-the-zh-CN-locale-contain/golden.out -:000000 100644 00000000 a0bdad88 A tests/Regression/bz785984-Short-month-names-in-the-zh-CN-locale-contain/main.fmf -:000000 100755 00000000 221cfaae A tests/Regression/bz785984-Short-month-names-in-the-zh-CN-locale-contain/runtest.sh -:000000 100644 00000000 d5f37df3 A tests/Regression/bz789238-FJ6-2-Bug-malloc-deadlock-in-case-of/Makefile -:000000 100644 00000000 4d5f96e7 A tests/Regression/bz789238-FJ6-2-Bug-malloc-deadlock-in-case-of/PURPOSE -:000000 100644 00000000 953e121f A tests/Regression/bz789238-FJ6-2-Bug-malloc-deadlock-in-case-of/main.fmf -:000000 100644 00000000 40fc1036 A tests/Regression/bz789238-FJ6-2-Bug-malloc-deadlock-in-case-of/mallocstress.c -:000000 100755 00000000 1c66bc61 A tests/Regression/bz789238-FJ6-2-Bug-malloc-deadlock-in-case-of/redshirt-process.sh -:000000 100755 00000000 8c83f40a A tests/Regression/bz789238-FJ6-2-Bug-malloc-deadlock-in-case-of/runtest.sh -:000000 100644 00000000 7182880b A tests/Regression/bz799853-Slovakia-uses-Euro-as-currency/Makefile -:000000 100644 00000000 ffdace49 A tests/Regression/bz799853-Slovakia-uses-Euro-as-currency/PURPOSE -:000000 100644 00000000 34ca26b6 A tests/Regression/bz799853-Slovakia-uses-Euro-as-currency/log.golden -:000000 100644 00000000 484c16c8 A tests/Regression/bz799853-Slovakia-uses-Euro-as-currency/main.fmf -:000000 100755 00000000 b2773861 A tests/Regression/bz799853-Slovakia-uses-Euro-as-currency/runtest.sh -:000000 100644 00000000 f9f9e489 A tests/Regression/bz799853-Slovakia-uses-Euro-as-currency/testcase.c -:000000 100644 00000000 e9b0f8ed A tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/Makefile -:000000 100644 00000000 b560b295 A tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/PURPOSE -:000000 100644 00000000 2584deed A tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/main.fmf -:000000 100644 00000000 f67c9ad5 A tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/named.conf -:000000 100644 00000000 4bb4071e A tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/named.taktik -:000000 100644 00000000 8c488382 A tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/resolv.conf -:000000 100755 00000000 380a3123 A tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/runtest.sh -:000000 100644 00000000 a1c3a3d6 A tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/testcase.c -:000000 100644 00000000 b7e5b5b0 A tests/Regression/bz804689-getaddrinfo-localhost6-returns-127-0-0-1/Makefile -:000000 100644 00000000 431ba26e A tests/Regression/bz804689-getaddrinfo-localhost6-returns-127-0-0-1/PURPOSE -:000000 100644 00000000 87973ee5 A tests/Regression/bz804689-getaddrinfo-localhost6-returns-127-0-0-1/get.c -:000000 100644 00000000 13f11b68 A tests/Regression/bz804689-getaddrinfo-localhost6-returns-127-0-0-1/main.fmf -:000000 100755 00000000 156d933f A tests/Regression/bz804689-getaddrinfo-localhost6-returns-127-0-0-1/runtest.sh -:000000 100644 00000000 2c3176ce A tests/Regression/bz819430-fnmatch-fails-when-wildcard-is-applied-on/Makefile -:000000 100644 00000000 1bcf1899 A tests/Regression/bz819430-fnmatch-fails-when-wildcard-is-applied-on/PURPOSE -:000000 100644 00000000 bd1cc4fa A tests/Regression/bz819430-fnmatch-fails-when-wildcard-is-applied-on/arf.c -:000000 100644 00000000 798b1b46 A tests/Regression/bz819430-fnmatch-fails-when-wildcard-is-applied-on/main.fmf -:000000 100755 00000000 5ef2a4da A tests/Regression/bz819430-fnmatch-fails-when-wildcard-is-applied-on/runtest.sh -:000000 100644 00000000 4a764860 A tests/Regression/bz823905-iconv-segfaults-if-the-invalid-multibyte/Makefile -:000000 100644 00000000 18a5b0e7 A tests/Regression/bz823905-iconv-segfaults-if-the-invalid-multibyte/PURPOSE -:000000 100644 00000000 e242d2d1 A tests/Regression/bz823905-iconv-segfaults-if-the-invalid-multibyte/main.fmf -:000000 100755 00000000 4f430d05 A tests/Regression/bz823905-iconv-segfaults-if-the-invalid-multibyte/runtest.sh -:000000 100644 00000000 d108a430 A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/Makefile -:000000 100644 00000000 0f0515ca A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/PURPOSE -:000000 100644 00000000 1c833c1f A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/fseek-wchar-j.c -:000000 100644 00000000 a088b1dc A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/fseek-wchar.c -:000000 100644 00000000 8c7ef8a6 A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/fw.golden -:000000 100644 00000000 c1746f42 A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/fw.input -:000000 100644 00000000 f752777b A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/fw.j.golden -:000000 100644 00000000 10a59091 A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/main.fmf -:000000 100644 00000000 4aee1534 A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/output.golden -:000000 100644 00000000 ff8e960c A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/output.seeking -:000000 100755 00000000 a99b0640 A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/runtest.sh -:000000 100644 00000000 496fe4cf A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/test.c -:000000 100644 00000000 10df528c A tests/Regression/bz829222-rpc-file-in-etc-folder-not-marked-as-configuration-file/Makefile -:000000 100644 00000000 2cc1a641 A tests/Regression/bz829222-rpc-file-in-etc-folder-not-marked-as-configuration-file/PURPOSE -:000000 100644 00000000 026f8975 A tests/Regression/bz829222-rpc-file-in-etc-folder-not-marked-as-configuration-file/main.fmf -:000000 100755 00000000 0b66a488 A tests/Regression/bz829222-rpc-file-in-etc-folder-not-marked-as-configuration-file/runtest.sh -:000000 100644 00000000 4e6c6d10 A tests/Regression/bz839572-Anaconda-traceback-when-installing-on-s390x/Makefile -:000000 100644 00000000 fb4adc10 A tests/Regression/bz839572-Anaconda-traceback-when-installing-on-s390x/PURPOSE -:000000 100644 00000000 85c05f6d A tests/Regression/bz839572-Anaconda-traceback-when-installing-on-s390x/main.fmf -:000000 100755 00000000 5b89a8fe A tests/Regression/bz839572-Anaconda-traceback-when-installing-on-s390x/runtest.sh -:000000 100644 00000000 b0de5b11 A tests/Regression/bz842280-posix-spawn-invokes-sh-when-it-should-not/Makefile -:000000 100644 00000000 c2c52006 A tests/Regression/bz842280-posix-spawn-invokes-sh-when-it-should-not/PURPOSE -:000000 100644 00000000 448b0f9d A tests/Regression/bz842280-posix-spawn-invokes-sh-when-it-should-not/main.fmf -:000000 100644 00000000 0cfba0de A tests/Regression/bz842280-posix-spawn-invokes-sh-when-it-should-not/reproducer.c -:000000 100755 00000000 e7441240 A tests/Regression/bz842280-posix-spawn-invokes-sh-when-it-should-not/runtest.sh -:000000 100644 00000000 8402c19d A tests/Regression/bz863384-getaddrinfo-fails-to-return-FQDN-for-AF_INET-and-AF_INET6/Makefile -:000000 100644 00000000 32bea697 A tests/Regression/bz863384-getaddrinfo-fails-to-return-FQDN-for-AF_INET-and-AF_INET6/PURPOSE -:000000 100644 00000000 8f4c2f72 A tests/Regression/bz863384-getaddrinfo-fails-to-return-FQDN-for-AF_INET-and-AF_INET6/gai-tst.c -:000000 100644 00000000 cc6041fe A tests/Regression/bz863384-getaddrinfo-fails-to-return-FQDN-for-AF_INET-and-AF_INET6/main.fmf -:000000 100755 00000000 c133fb0d A tests/Regression/bz863384-getaddrinfo-fails-to-return-FQDN-for-AF_INET-and-AF_INET6/ns.pl -:000000 100755 00000000 99379929 A tests/Regression/bz863384-getaddrinfo-fails-to-return-FQDN-for-AF_INET-and-AF_INET6/runtest.sh -:000000 100644 00000000 251da430 A tests/Regression/bz868808-backtrace-for-recursive-functions/Makefile -:000000 100644 00000000 cade416f A tests/Regression/bz868808-backtrace-for-recursive-functions/PURPOSE -:000000 100644 00000000 a32c0400 A tests/Regression/bz868808-backtrace-for-recursive-functions/bt-tst.c -:000000 100644 00000000 58916e43 A tests/Regression/bz868808-backtrace-for-recursive-functions/main.fmf -:000000 100755 00000000 cf83c3c8 A tests/Regression/bz868808-backtrace-for-recursive-functions/runtest.sh -:000000 100644 00000000 37927893 A tests/Regression/bz916656-fpathconf-for-FIFO-returns-different-value-than-for-directory/Makefile -:000000 100644 00000000 925ade3e A tests/Regression/bz916656-fpathconf-for-FIFO-returns-different-value-than-for-directory/PURPOSE -:000000 100644 00000000 0cad3334 A tests/Regression/bz916656-fpathconf-for-FIFO-returns-different-value-than-for-directory/fpathconf-t.c -:000000 100644 00000000 0c4fa47f A tests/Regression/bz916656-fpathconf-for-FIFO-returns-different-value-than-for-directory/main.fmf -:000000 100755 00000000 2ade3658 A tests/Regression/bz916656-fpathconf-for-FIFO-returns-different-value-than-for-directory/runtest.sh -:000000 100644 00000000 5cdf0e96 A tests/Regression/bz916986-MAP_HUGETLB_support/Makefile -:000000 100644 00000000 d8a04c1e A tests/Regression/bz916986-MAP_HUGETLB_support/PURPOSE -:000000 100644 00000000 4f3656c6 A tests/Regression/bz916986-MAP_HUGETLB_support/bz916986.c -:000000 100644 00000000 26f01c8b A tests/Regression/bz916986-MAP_HUGETLB_support/main.fmf -:000000 100755 00000000 ed52266a A tests/Regression/bz916986-MAP_HUGETLB_support/runtest.sh -:000000 100644 00000000 0eee0736 A tests/Regression/bz947350-getdate-does-not-ignore-trailing-whitespace/Makefile -:000000 100644 00000000 550d1b00 A tests/Regression/bz947350-getdate-does-not-ignore-trailing-whitespace/PURPOSE -:000000 100644 00000000 4d90b568 A tests/Regression/bz947350-getdate-does-not-ignore-trailing-whitespace/main.fmf -:000000 100755 00000000 dacdb694 A tests/Regression/bz947350-getdate-does-not-ignore-trailing-whitespace/runtest.sh -:000000 100644 00000000 145ccb2e A tests/Regression/bz947350-getdate-does-not-ignore-trailing-whitespace/tst-getdate.c -:000000 100644 00000000 9f46a2d4 A tests/Regression/bz947350-getdate-does-not-ignore-trailing-whitespace/tst-getdate.tmpl -:000000 100644 00000000 5618609b A tests/Regression/bz979363-fputs-should-see-EINTR-and-propagate-it-up/Makefile -:000000 100644 00000000 d6a78d68 A tests/Regression/bz979363-fputs-should-see-EINTR-and-propagate-it-up/PURPOSE -:000000 100644 00000000 e28c7818 A tests/Regression/bz979363-fputs-should-see-EINTR-and-propagate-it-up/bz970854.c -:000000 100644 00000000 32211fca A tests/Regression/bz979363-fputs-should-see-EINTR-and-propagate-it-up/main.fmf -:000000 100755 00000000 94468d6b A tests/Regression/bz979363-fputs-should-see-EINTR-and-propagate-it-up/runtest.sh -:000000 100644 00000000 e9c24bf5 A tests/Regression/bz979363-fputs-should-see-EINTR-and-propagate-it-up/ubz15362.c -:000000 100644 00000000 eb8a3fc8 A tests/Regression/double_free_exploit/Makefile -:000000 100644 00000000 18c44f64 A tests/Regression/double_free_exploit/PURPOSE -:000000 100644 00000000 dfc04209 A tests/Regression/double_free_exploit/exploit.c -:000000 100644 00000000 b9eb76f4 A tests/Regression/double_free_exploit/exploit2.c -:000000 100644 00000000 af92d0d0 A tests/Regression/double_free_exploit/main.fmf -:000000 100755 00000000 35580e48 A tests/Regression/double_free_exploit/runtest.sh -:000000 100644 00000000 94a9bb5f A tests/Regression/expf-gives-infinity-where-result-finite/Makefile -:000000 100644 00000000 3b0f14bb A tests/Regression/expf-gives-infinity-where-result-finite/PURPOSE -:000000 100644 00000000 30c04abc A tests/Regression/expf-gives-infinity-where-result-finite/main.fmf -:000000 100755 00000000 ac01945d A tests/Regression/expf-gives-infinity-where-result-finite/runtest.sh -:000000 100644 00000000 cbd1baf9 A tests/Regression/expf-gives-infinity-where-result-finite/tc1.cpp -:000000 100644 00000000 8afe24af A tests/Regression/fallocate_156289/Makefile -:000000 100644 00000000 2eff71e7 A tests/Regression/fallocate_156289/PURPOSE -:000000 100644 00000000 ddfabbdd A tests/Regression/fallocate_156289/fallocate.c++ -:000000 100644 00000000 1812348a A tests/Regression/fallocate_156289/main.fmf -:000000 100755 00000000 359068eb A tests/Regression/fallocate_156289/runtest.sh -:000000 100644 00000000 06f1df17 A tests/Regression/setvbuf-to-full-not-working/Makefile -:000000 100644 00000000 3a0a38c9 A tests/Regression/setvbuf-to-full-not-working/PURPOSE -:000000 100644 00000000 f0828049 A tests/Regression/setvbuf-to-full-not-working/main.fmf -:000000 100755 00000000 4d31e613 A tests/Regression/setvbuf-to-full-not-working/runtest.sh -:000000 100644 00000000 4bc7d9fa A tests/Regression/setvbuf-to-full-not-working/testcase.c -:000000 100755 00000000 ed5c6199 A tests/Regression/setvbuf-to-full-not-working/try.exp -:000000 100644 00000000 a1161888 A tests/Sanity/basic-linking-sanity/Makefile -:000000 100644 00000000 9f0038be A tests/Sanity/basic-linking-sanity/PURPOSE -:000000 100644 00000000 2b4f286c A tests/Sanity/basic-linking-sanity/lc.c -:000000 100644 00000000 a3116ebc A tests/Sanity/basic-linking-sanity/lc.golden -:000000 100644 00000000 72612b94 A tests/Sanity/basic-linking-sanity/lm.c -:000000 100644 00000000 ddfa1ca5 A tests/Sanity/basic-linking-sanity/lm.golden -:000000 100644 00000000 65aca15c A tests/Sanity/basic-linking-sanity/lpthread.c -:000000 100644 00000000 e150192d A tests/Sanity/basic-linking-sanity/lpthread.golden -:000000 100644 00000000 2a31e0d2 A tests/Sanity/basic-linking-sanity/lrt.c -:000000 100644 00000000 f5ff068c A tests/Sanity/basic-linking-sanity/lrt.golden -:000000 100644 00000000 743943ad A tests/Sanity/basic-linking-sanity/main.fmf -:000000 100755 00000000 98310786 A tests/Sanity/basic-linking-sanity/runtest.sh -:000000 100644 00000000 011936c5 A tests/Standardscompliance/bz531160-ldd-Vulnerable-to-Social-Engineering-Exploits/Makefile -:000000 100644 00000000 bb7a657a A tests/Standardscompliance/bz531160-ldd-Vulnerable-to-Social-Engineering-Exploits/PURPOSE -:000000 100644 00000000 c20ca2e8 A tests/Standardscompliance/bz531160-ldd-Vulnerable-to-Social-Engineering-Exploits/hello.c -:000000 100644 00000000 965d3d1d A tests/Standardscompliance/bz531160-ldd-Vulnerable-to-Social-Engineering-Exploits/interp.c -:000000 100644 00000000 0000dcbb A tests/Standardscompliance/bz531160-ldd-Vulnerable-to-Social-Engineering-Exploits/main.fmf -:000000 100755 00000000 91a00d5e A tests/Standardscompliance/bz531160-ldd-Vulnerable-to-Social-Engineering-Exploits/runtest.sh -:000000 100644 00000000 52830352 A tests/Standardscompliance/bz639000-Wrong-Ukrainian-currency-symbol/Makefile -:000000 100644 00000000 3d7835a0 A tests/Standardscompliance/bz639000-Wrong-Ukrainian-currency-symbol/PURPOSE -:000000 100644 00000000 094e50d1 A tests/Standardscompliance/bz639000-Wrong-Ukrainian-currency-symbol/cursym.c -:000000 100644 00000000 8a475c4b A tests/Standardscompliance/bz639000-Wrong-Ukrainian-currency-symbol/main.fmf -:000000 100755 00000000 fc01c230 A tests/Standardscompliance/bz639000-Wrong-Ukrainian-currency-symbol/runtest.sh -:000000 100644 00000000 6d834baf A tests/Standardscompliance/bz692838-indic-update-locales-with-currency-symbol-to/Makefile -:000000 100644 00000000 00e692c0 A tests/Standardscompliance/bz692838-indic-update-locales-with-currency-symbol-to/PURPOSE -:000000 100644 00000000 63aae5d3 A tests/Standardscompliance/bz692838-indic-update-locales-with-currency-symbol-to/main.fmf -:000000 100755 00000000 64a64508 A tests/Standardscompliance/bz692838-indic-update-locales-with-currency-symbol-to/runtest.sh -:000000 100644 00000000 26974157 A tests/Standardscompliance/bz692838-indic-update-locales-with-currency-symbol-to/symbol.txt +:000000 100644 0000000 f9f7029 A tests/Regression/bz1022022-getaddrinfo-behavior-changed-between-RHEL-6-4-and-RHEL-6-5/Makefile +:000000 100644 0000000 f55c98f A tests/Regression/bz1022022-getaddrinfo-behavior-changed-between-RHEL-6-4-and-RHEL-6-5/PURPOSE +:000000 100644 0000000 948e5ee A tests/Regression/bz1022022-getaddrinfo-behavior-changed-between-RHEL-6-4-and-RHEL-6-5/main.fmf +:000000 100755 0000000 8da787e A tests/Regression/bz1022022-getaddrinfo-behavior-changed-between-RHEL-6-4-and-RHEL-6-5/runtest.sh +:000000 100644 0000000 0c11056 A tests/Regression/bz1022022-getaddrinfo-behavior-changed-between-RHEL-6-4-and-RHEL-6-5/tst-getaddrinfo.c +:000000 100644 0000000 bb73776 A tests/Regression/bz434601-timedlock-segfault/Makefile +:000000 100644 0000000 f37d527 A tests/Regression/bz434601-timedlock-segfault/PURPOSE +:000000 100644 0000000 ffa3c96 A tests/Regression/bz434601-timedlock-segfault/main.fmf +:000000 100755 0000000 a451879 A tests/Regression/bz434601-timedlock-segfault/runtest.sh +:000000 100644 0000000 57d8842 A tests/Regression/bz434601-timedlock-segfault/timedlock.c +:000000 100644 0000000 452d4b4 A tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/Makefile +:000000 100644 0000000 2ac2c13 A tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/PURPOSE +:000000 100644 0000000 f19de8a A tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/main.fmf +:000000 100755 0000000 01236c4 A tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/runtest.sh +:000000 100644 0000000 05c7a33 A tests/Regression/bz455360-RHEL4-vfprintf-call-goes-into-recursive/testcase.c +:000000 100644 0000000 b5d4a4b A tests/Regression/bz464146-sp-corruption/Makefile +:000000 100644 0000000 514ba43 A tests/Regression/bz464146-sp-corruption/PURPOSE +:000000 100644 0000000 14062ed A tests/Regression/bz464146-sp-corruption/main.fmf +:000000 100755 0000000 3a39322 A tests/Regression/bz464146-sp-corruption/runtest.sh +:000000 100644 0000000 54bf74b A tests/Regression/bz464146-sp-corruption/testit.c +:000000 100644 0000000 0760835 A tests/Regression/bz471298-pthread_cond/Makefile +:000000 100644 0000000 a82fbca A tests/Regression/bz471298-pthread_cond/PURPOSE +:000000 100644 0000000 8c75741 A tests/Regression/bz471298-pthread_cond/main.fmf +:000000 100644 0000000 08c96b1 A tests/Regression/bz471298-pthread_cond/pthread_cond_test.c +:000000 100755 0000000 a5cc1ce A tests/Regression/bz471298-pthread_cond/runtest.sh +:000000 100644 0000000 58011ea A tests/Regression/bz488748-inet6-opt-init-sets-incorrect-header-len/Makefile +:000000 100644 0000000 5603ef1 A tests/Regression/bz488748-inet6-opt-init-sets-incorrect-header-len/PURPOSE +:000000 100644 0000000 8dcda7d A tests/Regression/bz488748-inet6-opt-init-sets-incorrect-header-len/main.fmf +:000000 100644 0000000 f1de8f7 A tests/Regression/bz488748-inet6-opt-init-sets-incorrect-header-len/optinit.c +:000000 100755 0000000 44962e1 A tests/Regression/bz488748-inet6-opt-init-sets-incorrect-header-len/runtest.sh +:000000 100644 0000000 65df609 A tests/Regression/bz495955-RHEL5-glibc-doesn-t-use-private-futex-system/Makefile +:000000 100644 0000000 89a880d A tests/Regression/bz495955-RHEL5-glibc-doesn-t-use-private-futex-system/PURPOSE +:000000 100644 0000000 8fc25dd A tests/Regression/bz495955-RHEL5-glibc-doesn-t-use-private-futex-system/main.fmf +:000000 100644 0000000 733830a A tests/Regression/bz495955-RHEL5-glibc-doesn-t-use-private-futex-system/priv-mutex.c +:000000 100755 0000000 feead28 A tests/Regression/bz495955-RHEL5-glibc-doesn-t-use-private-futex-system/runtest.sh +:000000 100644 0000000 23c4235 A tests/Regression/bz501595-RHEL4-getnameinfo-should-return-EAI-NONAME/Makefile +:000000 100644 0000000 8c135e6 A tests/Regression/bz501595-RHEL4-getnameinfo-should-return-EAI-NONAME/PURPOSE +:000000 100644 0000000 d389936 A tests/Regression/bz501595-RHEL4-getnameinfo-should-return-EAI-NONAME/function-nodename-servname-null.c +:000000 100644 0000000 4599d31 A tests/Regression/bz501595-RHEL4-getnameinfo-should-return-EAI-NONAME/main.fmf +:000000 100755 0000000 3cdccd6 A tests/Regression/bz501595-RHEL4-getnameinfo-should-return-EAI-NONAME/runtest.sh +:000000 100644 0000000 5cff447 A tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/Makefile +:000000 100644 0000000 a3bbae3 A tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/PURPOSE +:000000 100755 0000000 742fc77 A tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/expected.py2 +:000000 100755 0000000 9180657 A tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/expected.py3 +:000000 100644 0000000 c39d30b A tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/fopen.c +:000000 100644 0000000 ad867f2 A tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/main.fmf +:000000 100755 0000000 937ff43 A tests/Regression/bz503723-fopen-mode-x-ignored-in-some-cases/runtest.sh +:000000 100644 0000000 1443a2b A tests/Regression/bz522528-pthread-join-hangs-if-a-thread-calls-setuid/Makefile +:000000 100644 0000000 94e4c56 A tests/Regression/bz522528-pthread-join-hangs-if-a-thread-calls-setuid/PURPOSE +:000000 100644 0000000 b38df20 A tests/Regression/bz522528-pthread-join-hangs-if-a-thread-calls-setuid/main.fmf +:000000 100644 0000000 a46152d A tests/Regression/bz522528-pthread-join-hangs-if-a-thread-calls-setuid/reproducer.c +:000000 100755 0000000 9353d16 A tests/Regression/bz522528-pthread-join-hangs-if-a-thread-calls-setuid/runtest.sh +:000000 100644 0000000 b2422b6 A tests/Regression/bz529997-sem_timedwait-with-invalid-time/Makefile +:000000 100644 0000000 0a6f3f0 A tests/Regression/bz529997-sem_timedwait-with-invalid-time/PURPOSE +:000000 100644 0000000 98d27d8 A tests/Regression/bz529997-sem_timedwait-with-invalid-time/golden-real.out +:000000 100644 0000000 7236993 A tests/Regression/bz529997-sem_timedwait-with-invalid-time/golden-repro.out +:000000 100644 0000000 dccf27b A tests/Regression/bz529997-sem_timedwait-with-invalid-time/main.fmf +:000000 100644 0000000 e1f8495 A tests/Regression/bz529997-sem_timedwait-with-invalid-time/newrepr.c +:000000 100644 0000000 5ee283c A tests/Regression/bz529997-sem_timedwait-with-invalid-time/oldrepr.c +:000000 100644 0000000 471fe16 A tests/Regression/bz529997-sem_timedwait-with-invalid-time/real-reproducer.c +:000000 100755 0000000 5dc78e4 A tests/Regression/bz529997-sem_timedwait-with-invalid-time/runtest.sh +:000000 100644 0000000 3462b85 A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/Makefile +:000000 100644 0000000 a17f408 A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/PURPOSE +:000000 100644 0000000 5f0a155 A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/main.fmf +:000000 100644 0000000 5f09f58 A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/p1.pl +:000000 100644 0000000 b92bb9b A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/p2.pl +:000000 100644 0000000 bd57bbb A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/p3.py +:000000 100644 0000000 bc49026 A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/p3_3.py +:000000 100644 0000000 b77ea8c A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/p4.py +:000000 100644 0000000 aeb9778 A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/p4_3.py +:000000 100755 0000000 21ae171 A tests/Regression/bz531576-memusage-cmd-segfaults-on-perl-scripts/runtest.sh +:000000 100644 0000000 76a5dda A tests/Regression/bz549813-dl-close-race-with-C-destructor/C_Only.tar +:000000 100644 0000000 169faf9 A tests/Regression/bz549813-dl-close-race-with-C-destructor/Makefile +:000000 100644 0000000 5327c21 A tests/Regression/bz549813-dl-close-race-with-C-destructor/PURPOSE +:000000 100644 0000000 aaf3792 A tests/Regression/bz549813-dl-close-race-with-C-destructor/main.fmf +:000000 100755 0000000 fef2149 A tests/Regression/bz549813-dl-close-race-with-C-destructor/runtest.sh +:000000 100644 0000000 df7da0e A tests/Regression/bz566712-aio-write-ll-corruption/Makefile +:000000 100644 0000000 7a3f2e6 A tests/Regression/bz566712-aio-write-ll-corruption/PURPOSE +:000000 100644 0000000 981c245 A tests/Regression/bz566712-aio-write-ll-corruption/aio_write.c +:000000 100644 0000000 08d97c3 A tests/Regression/bz566712-aio-write-ll-corruption/main.fmf +:000000 100755 0000000 40d6985 A tests/Regression/bz566712-aio-write-ll-corruption/runtest.sh +:000000 100644 0000000 b75558f A tests/Regression/bz577950-ftell-after-write-causes-glibc-to-flush-buffer/Makefile +:000000 100644 0000000 a52a189 A tests/Regression/bz577950-ftell-after-write-causes-glibc-to-flush-buffer/PURPOSE +:000000 100644 0000000 28f004f A tests/Regression/bz577950-ftell-after-write-causes-glibc-to-flush-buffer/main.fmf +:000000 100755 0000000 9a6c135 A tests/Regression/bz577950-ftell-after-write-causes-glibc-to-flush-buffer/runtest.sh +:000000 100644 0000000 518bd64 A tests/Regression/bz577950-ftell-after-write-causes-glibc-to-flush-buffer/tst-ftell-with-fdopen.c +:000000 100644 0000000 1e0c9ce A tests/Regression/bz577950-ftell-after-write-causes-glibc-to-flush-buffer/tst-ftell-with-fdopen.expected +:000000 100644 0000000 b238472 A tests/Regression/bz577950-ftell-after-write-causes-glibc-to-flush-buffer/tst-write-ftell.c +:000000 100644 0000000 561ff82 A tests/Regression/bz580498-pthread-rwlock-timedwrlock-rdlock-never-return/Makefile +:000000 100644 0000000 66b5d4a A tests/Regression/bz580498-pthread-rwlock-timedwrlock-rdlock-never-return/PURPOSE +:000000 100644 0000000 fc9765f A tests/Regression/bz580498-pthread-rwlock-timedwrlock-rdlock-never-return/main.fmf +:000000 100644 0000000 e65966c A tests/Regression/bz580498-pthread-rwlock-timedwrlock-rdlock-never-return/pthread_rwlock_timedwrlock.c +:000000 100755 0000000 21f71d9 A tests/Regression/bz580498-pthread-rwlock-timedwrlock-rdlock-never-return/runtest.sh +:000000 100644 0000000 52e0573 A tests/Regression/bz585674-free-race-in-mcheck-hooks/Makefile +:000000 100644 0000000 5d3f225 A tests/Regression/bz585674-free-race-in-mcheck-hooks/PURPOSE +:000000 100644 0000000 fea4212 A tests/Regression/bz585674-free-race-in-mcheck-hooks/main.fmf +:000000 100644 0000000 ee5c6f0 A tests/Regression/bz585674-free-race-in-mcheck-hooks/malloc_check.c +:000000 100755 0000000 d01ddac A tests/Regression/bz585674-free-race-in-mcheck-hooks/runtest.sh +:000000 100644 0000000 d4f4d38 A tests/Regression/bz587360-digraph-matching-differs-across-archs/Makefile +:000000 100644 0000000 a928bea A tests/Regression/bz587360-digraph-matching-differs-across-archs/PURPOSE +:000000 100644 0000000 eca14e9 A tests/Regression/bz587360-digraph-matching-differs-across-archs/main.fmf +:000000 100755 0000000 197186f A tests/Regression/bz587360-digraph-matching-differs-across-archs/runtest.sh +:000000 100644 0000000 5b49812 A tests/Regression/bz600457-locally-defined-symbol-resolving-failure/Makefile +:000000 100644 0000000 74ca16a A tests/Regression/bz600457-locally-defined-symbol-resolving-failure/PURPOSE +:000000 100644 0000000 4fe6cde A tests/Regression/bz600457-locally-defined-symbol-resolving-failure/golden.out +:000000 100644 0000000 6adb034 A tests/Regression/bz600457-locally-defined-symbol-resolving-failure/main.fmf +:000000 100644 0000000 9551435 A tests/Regression/bz600457-locally-defined-symbol-resolving-failure/reproducer.tar.gz +:000000 100755 0000000 d7ab15b A tests/Regression/bz600457-locally-defined-symbol-resolving-failure/runtest.sh +:000000 100644 0000000 6122763 A tests/Regression/bz656530-sqrtl-returns-highly-incorrect-results-for-some/Makefile +:000000 100644 0000000 0739a92 A tests/Regression/bz656530-sqrtl-returns-highly-incorrect-results-for-some/PURPOSE +:000000 100644 0000000 1b55a3d A tests/Regression/bz656530-sqrtl-returns-highly-incorrect-results-for-some/main.fmf +:000000 100755 0000000 6ed2b60 A tests/Regression/bz656530-sqrtl-returns-highly-incorrect-results-for-some/runtest.sh +:000000 100644 0000000 76a5b34 A tests/Regression/bz656530-sqrtl-returns-highly-incorrect-results-for-some/sqrt.c +:000000 100644 0000000 0e43dbe A tests/Regression/bz657570-strptime-s-b-descriptor-should-be-greedy/Makefile +:000000 100644 0000000 8e9b2a0 A tests/Regression/bz657570-strptime-s-b-descriptor-should-be-greedy/PURPOSE +:000000 100644 0000000 6d91228 A tests/Regression/bz657570-strptime-s-b-descriptor-should-be-greedy/main.fmf +:000000 100755 0000000 2350638 A tests/Regression/bz657570-strptime-s-b-descriptor-should-be-greedy/runtest.sh +:000000 100644 0000000 56126f8 A tests/Regression/bz657570-strptime-s-b-descriptor-should-be-greedy/strptime.c +:000000 100644 0000000 f8d52b2 A tests/Regression/bz657572-Finnish-locale-includes-unnecessary-confusing/Makefile +:000000 100644 0000000 bf155d0 A tests/Regression/bz657572-Finnish-locale-includes-unnecessary-confusing/PURPOSE +:000000 100644 0000000 fcc4c51 A tests/Regression/bz657572-Finnish-locale-includes-unnecessary-confusing/golden.out +:000000 100644 0000000 c5cc62a A tests/Regression/bz657572-Finnish-locale-includes-unnecessary-confusing/main.fmf +:000000 100755 0000000 a4a4b65 A tests/Regression/bz657572-Finnish-locale-includes-unnecessary-confusing/runtest.sh +:000000 100644 0000000 a1f52ef A tests/Regression/bz676039-Resolver-fails-to-return-all-addresses-of/676039-resolver.c +:000000 100644 0000000 391ce2a A tests/Regression/bz676039-Resolver-fails-to-return-all-addresses-of/Makefile +:000000 100644 0000000 38df2dc A tests/Regression/bz676039-Resolver-fails-to-return-all-addresses-of/PURPOSE +:000000 100644 0000000 e30352f A tests/Regression/bz676039-Resolver-fails-to-return-all-addresses-of/a.out-gold +:000000 100644 0000000 beaee8e A tests/Regression/bz676039-Resolver-fails-to-return-all-addresses-of/getent-gold +:000000 100644 0000000 499e473 A tests/Regression/bz676039-Resolver-fails-to-return-all-addresses-of/main.fmf +:000000 100755 0000000 547e2c6 A tests/Regression/bz676039-Resolver-fails-to-return-all-addresses-of/runtest.sh +:000000 100644 0000000 e00273e A tests/Regression/bz689471-SSE4-strncmp-failure/Makefile +:000000 100644 0000000 2de0bad A tests/Regression/bz689471-SSE4-strncmp-failure/PURPOSE +:000000 100644 0000000 c62404d A tests/Regression/bz689471-SSE4-strncmp-failure/main.fmf +:000000 100644 0000000 b0bdd8b A tests/Regression/bz689471-SSE4-strncmp-failure/repr.c +:000000 100755 0000000 90bfbfa A tests/Regression/bz689471-SSE4-strncmp-failure/runtest.sh +:000000 100644 0000000 d6b081c A tests/Regression/bz692177-sysconf-SC-CACHE-returns-0-for-all-caches-on/Makefile +:000000 100644 0000000 3876cd6 A tests/Regression/bz692177-sysconf-SC-CACHE-returns-0-for-all-caches-on/PURPOSE +:000000 100644 0000000 477bc40 A tests/Regression/bz692177-sysconf-SC-CACHE-returns-0-for-all-caches-on/main.fmf +:000000 100755 0000000 1d193f9 A tests/Regression/bz692177-sysconf-SC-CACHE-returns-0-for-all-caches-on/runtest.sh +:000000 100644 0000000 42390d1 A tests/Regression/bz694386-POWER4-strncmp-crashes-reading-past-zero-byte/Makefile +:000000 100644 0000000 8dda079 A tests/Regression/bz694386-POWER4-strncmp-crashes-reading-past-zero-byte/PURPOSE +:000000 100644 0000000 9572be9 A tests/Regression/bz694386-POWER4-strncmp-crashes-reading-past-zero-byte/main.fmf +:000000 100755 0000000 750054b A tests/Regression/bz694386-POWER4-strncmp-crashes-reading-past-zero-byte/runtest.sh +:000000 100644 0000000 8c7b608 A tests/Regression/bz694386-POWER4-strncmp-crashes-reading-past-zero-byte/strncmp.c +:000000 100644 0000000 1805d2b A tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/Makefile +:000000 100644 0000000 e143347 A tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/PURPOSE +:000000 100644 0000000 471e141 A tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/main.fmf +:000000 100755 0000000 8991a97 A tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/runtest.sh +:000000 100644 0000000 05eac95 A tests/Regression/bz699724-Memory-leak-within-NSSLOW-Init-as-called-by/test_crypt.py +:000000 100644 0000000 9bdd683 A tests/Regression/bz705465-fix-for-handle-overflows-of-temporary-buffer-used/Makefile +:000000 100644 0000000 551ac25 A tests/Regression/bz705465-fix-for-handle-overflows-of-temporary-buffer-used/PURPOSE +:000000 100644 0000000 c364430 A tests/Regression/bz705465-fix-for-handle-overflows-of-temporary-buffer-used/main.fmf +:000000 100644 0000000 fb9fa61 A tests/Regression/bz705465-fix-for-handle-overflows-of-temporary-buffer-used/repr.c +:000000 100755 0000000 90b55e8 A tests/Regression/bz705465-fix-for-handle-overflows-of-temporary-buffer-used/runtest.sh +:000000 100644 0000000 aecdf7b A tests/Regression/bz710216-Wrong-decimal-point-symbol-in-Portuguese-currency/Makefile +:000000 100644 0000000 fb5cc4f A tests/Regression/bz710216-Wrong-decimal-point-symbol-in-Portuguese-currency/PURPOSE +:000000 100644 0000000 2250865 A tests/Regression/bz710216-Wrong-decimal-point-symbol-in-Portuguese-currency/log.golden +:000000 100644 0000000 c5ba4b9 A tests/Regression/bz710216-Wrong-decimal-point-symbol-in-Portuguese-currency/main.fmf +:000000 100644 0000000 9e44d87 A tests/Regression/bz710216-Wrong-decimal-point-symbol-in-Portuguese-currency/mf.c +:000000 100755 0000000 c378784 A tests/Regression/bz710216-Wrong-decimal-point-symbol-in-Portuguese-currency/runtest.sh +:000000 100644 0000000 d08b558 A tests/Regression/bz711531-shared-robust-mutexes-fail-in-child-fork/Makefile +:000000 100644 0000000 a9db60f A tests/Regression/bz711531-shared-robust-mutexes-fail-in-child-fork/PURPOSE +:000000 100644 0000000 7e9ae71 A tests/Regression/bz711531-shared-robust-mutexes-fail-in-child-fork/main.fmf +:000000 100755 0000000 37a288a A tests/Regression/bz711531-shared-robust-mutexes-fail-in-child-fork/runtest.sh +:000000 100644 0000000 987b670 A tests/Regression/bz711531-shared-robust-mutexes-fail-in-child-fork/test_robust.c +:000000 100644 0000000 efd0e56 A tests/Regression/bz730379-libresolv-is-not-compiled-with-the-stack-protector/Makefile +:000000 100644 0000000 ed27eec A tests/Regression/bz730379-libresolv-is-not-compiled-with-the-stack-protector/PURPOSE +:000000 100644 0000000 ef8b6af A tests/Regression/bz730379-libresolv-is-not-compiled-with-the-stack-protector/main.fmf +:000000 100755 0000000 9120bb9 A tests/Regression/bz730379-libresolv-is-not-compiled-with-the-stack-protector/runtest.sh +:000000 100644 0000000 f084a66 A tests/Regression/bz731042-pthread-create-dumps-core-when-it-fails-to-set/Makefile +:000000 100644 0000000 d5360fe A tests/Regression/bz731042-pthread-create-dumps-core-when-it-fails-to-set/PURPOSE +:000000 100644 0000000 88a4233 A tests/Regression/bz731042-pthread-create-dumps-core-when-it-fails-to-set/main.fmf +:000000 100644 0000000 31d59fc A tests/Regression/bz731042-pthread-create-dumps-core-when-it-fails-to-set/repr.c +:000000 100755 0000000 5872bdb A tests/Regression/bz731042-pthread-create-dumps-core-when-it-fails-to-set/runtest.sh +:000000 100644 0000000 f5d092b A tests/Regression/bz736346-make-initgroups-setgroups-thread-aware/4151-sourceware.c +:000000 100644 0000000 42c3ff5 A tests/Regression/bz736346-make-initgroups-setgroups-thread-aware/Makefile +:000000 100644 0000000 863db9b A tests/Regression/bz736346-make-initgroups-setgroups-thread-aware/PURPOSE +:000000 100644 0000000 d82707a A tests/Regression/bz736346-make-initgroups-setgroups-thread-aware/main.fmf +:000000 100755 0000000 9902168 A tests/Regression/bz736346-make-initgroups-setgroups-thread-aware/runtest.sh +:000000 100644 0000000 5da5e2c A tests/Regression/bz737778-setlocale-fails-if-LC-CTYPE-is-set-to-Turkish/Makefile +:000000 100644 0000000 5951a5c A tests/Regression/bz737778-setlocale-fails-if-LC-CTYPE-is-set-to-Turkish/PURPOSE +:000000 100644 0000000 66f1664 A tests/Regression/bz737778-setlocale-fails-if-LC-CTYPE-is-set-to-Turkish/gold.txt +:000000 100644 0000000 110b3ce A tests/Regression/bz737778-setlocale-fails-if-LC-CTYPE-is-set-to-Turkish/locale.c +:000000 100644 0000000 8d3360b A tests/Regression/bz737778-setlocale-fails-if-LC-CTYPE-is-set-to-Turkish/main.fmf +:000000 100755 0000000 d864434 A tests/Regression/bz737778-setlocale-fails-if-LC-CTYPE-is-set-to-Turkish/runtest.sh +:000000 100644 0000000 767c259 A tests/Regression/bz739184-Statically-linked-binaries-that-call-gethostbyname/Makefile +:000000 100644 0000000 4604006 A tests/Regression/bz739184-Statically-linked-binaries-that-call-gethostbyname/PURPOSE +:000000 100644 0000000 066bc87 A tests/Regression/bz739184-Statically-linked-binaries-that-call-gethostbyname/chk-gethost.c +:000000 100644 0000000 1754c58 A tests/Regression/bz739184-Statically-linked-binaries-that-call-gethostbyname/main.fmf +:000000 100755 0000000 843e909 A tests/Regression/bz739184-Statically-linked-binaries-that-call-gethostbyname/runtest.sh +:000000 100644 0000000 29683a6 A tests/Regression/bz750531-htons-gives-warning-if-compiled-with-gcc/Makefile +:000000 100644 0000000 ee81e49 A tests/Regression/bz750531-htons-gives-warning-if-compiled-with-gcc/PURPOSE +:000000 100644 0000000 cef249d A tests/Regression/bz750531-htons-gives-warning-if-compiled-with-gcc/main.fmf +:000000 100755 0000000 3fe960e A tests/Regression/bz750531-htons-gives-warning-if-compiled-with-gcc/runtest.sh +:000000 100644 0000000 5c4ba8d A tests/Regression/bz750531-htons-gives-warning-if-compiled-with-gcc/test.c +:000000 100644 0000000 5ecda47 A tests/Regression/bz785984-Short-month-names-in-the-zh-CN-locale-contain/Makefile +:000000 100644 0000000 1ec0f90 A tests/Regression/bz785984-Short-month-names-in-the-zh-CN-locale-contain/PURPOSE +:000000 100644 0000000 20224cf A tests/Regression/bz785984-Short-month-names-in-the-zh-CN-locale-contain/golden.out +:000000 100644 0000000 a0bdad8 A tests/Regression/bz785984-Short-month-names-in-the-zh-CN-locale-contain/main.fmf +:000000 100755 0000000 221cfaa A tests/Regression/bz785984-Short-month-names-in-the-zh-CN-locale-contain/runtest.sh +:000000 100644 0000000 d5f37df A tests/Regression/bz789238-FJ6-2-Bug-malloc-deadlock-in-case-of/Makefile +:000000 100644 0000000 4d5f96e A tests/Regression/bz789238-FJ6-2-Bug-malloc-deadlock-in-case-of/PURPOSE +:000000 100644 0000000 953e121 A tests/Regression/bz789238-FJ6-2-Bug-malloc-deadlock-in-case-of/main.fmf +:000000 100644 0000000 40fc103 A tests/Regression/bz789238-FJ6-2-Bug-malloc-deadlock-in-case-of/mallocstress.c +:000000 100755 0000000 1c66bc6 A tests/Regression/bz789238-FJ6-2-Bug-malloc-deadlock-in-case-of/redshirt-process.sh +:000000 100755 0000000 8c83f40 A tests/Regression/bz789238-FJ6-2-Bug-malloc-deadlock-in-case-of/runtest.sh +:000000 100644 0000000 7182880 A tests/Regression/bz799853-Slovakia-uses-Euro-as-currency/Makefile +:000000 100644 0000000 ffdace4 A tests/Regression/bz799853-Slovakia-uses-Euro-as-currency/PURPOSE +:000000 100644 0000000 34ca26b A tests/Regression/bz799853-Slovakia-uses-Euro-as-currency/log.golden +:000000 100644 0000000 484c16c A tests/Regression/bz799853-Slovakia-uses-Euro-as-currency/main.fmf +:000000 100755 0000000 b277386 A tests/Regression/bz799853-Slovakia-uses-Euro-as-currency/runtest.sh +:000000 100644 0000000 f9f9e48 A tests/Regression/bz799853-Slovakia-uses-Euro-as-currency/testcase.c +:000000 100644 0000000 e9b0f8e A tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/Makefile +:000000 100644 0000000 b560b29 A tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/PURPOSE +:000000 100644 0000000 2584dee A tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/main.fmf +:000000 100644 0000000 f67c9ad A tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/named.conf +:000000 100644 0000000 4bb4071 A tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/named.taktik +:000000 100644 0000000 8c48838 A tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/resolv.conf +:000000 100755 0000000 380a312 A tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/runtest.sh +:000000 100644 0000000 a1c3a3d A tests/Regression/bz804630-Bad-resolution-with-IPv6-and-rotate-option-in/testcase.c +:000000 100644 0000000 b7e5b5b A tests/Regression/bz804689-getaddrinfo-localhost6-returns-127-0-0-1/Makefile +:000000 100644 0000000 431ba26 A tests/Regression/bz804689-getaddrinfo-localhost6-returns-127-0-0-1/PURPOSE +:000000 100644 0000000 87973ee A tests/Regression/bz804689-getaddrinfo-localhost6-returns-127-0-0-1/get.c +:000000 100644 0000000 13f11b6 A tests/Regression/bz804689-getaddrinfo-localhost6-returns-127-0-0-1/main.fmf +:000000 100755 0000000 156d933 A tests/Regression/bz804689-getaddrinfo-localhost6-returns-127-0-0-1/runtest.sh +:000000 100644 0000000 2c3176c A tests/Regression/bz819430-fnmatch-fails-when-wildcard-is-applied-on/Makefile +:000000 100644 0000000 1bcf189 A tests/Regression/bz819430-fnmatch-fails-when-wildcard-is-applied-on/PURPOSE +:000000 100644 0000000 bd1cc4f A tests/Regression/bz819430-fnmatch-fails-when-wildcard-is-applied-on/arf.c +:000000 100644 0000000 798b1b4 A tests/Regression/bz819430-fnmatch-fails-when-wildcard-is-applied-on/main.fmf +:000000 100755 0000000 5ef2a4d A tests/Regression/bz819430-fnmatch-fails-when-wildcard-is-applied-on/runtest.sh +:000000 100644 0000000 4a76486 A tests/Regression/bz823905-iconv-segfaults-if-the-invalid-multibyte/Makefile +:000000 100644 0000000 18a5b0e A tests/Regression/bz823905-iconv-segfaults-if-the-invalid-multibyte/PURPOSE +:000000 100644 0000000 e242d2d A tests/Regression/bz823905-iconv-segfaults-if-the-invalid-multibyte/main.fmf +:000000 100755 0000000 4f430d0 A tests/Regression/bz823905-iconv-segfaults-if-the-invalid-multibyte/runtest.sh +:000000 100644 0000000 d108a43 A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/Makefile +:000000 100644 0000000 0f0515c A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/PURPOSE +:000000 100644 0000000 1c833c1 A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/fseek-wchar-j.c +:000000 100644 0000000 a088b1d A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/fseek-wchar.c +:000000 100644 0000000 8c7ef8a A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/fw.golden +:000000 100644 0000000 c1746f4 A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/fw.input +:000000 100644 0000000 f752777 A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/fw.j.golden +:000000 100644 0000000 10a5909 A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/main.fmf +:000000 100644 0000000 4aee153 A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/output.golden +:000000 100644 0000000 ff8e960 A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/output.seeking +:000000 100755 0000000 a99b064 A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/runtest.sh +:000000 100644 0000000 496fe4c A tests/Regression/bz827362-RHEL6-2-ftell-after-fseek-moves-the-offset-on-a/test.c +:000000 100644 0000000 10df528 A tests/Regression/bz829222-rpc-file-in-etc-folder-not-marked-as-configuration-file/Makefile +:000000 100644 0000000 2cc1a64 A tests/Regression/bz829222-rpc-file-in-etc-folder-not-marked-as-configuration-file/PURPOSE +:000000 100644 0000000 026f897 A tests/Regression/bz829222-rpc-file-in-etc-folder-not-marked-as-configuration-file/main.fmf +:000000 100755 0000000 0b66a48 A tests/Regression/bz829222-rpc-file-in-etc-folder-not-marked-as-configuration-file/runtest.sh +:000000 100644 0000000 4e6c6d1 A tests/Regression/bz839572-Anaconda-traceback-when-installing-on-s390x/Makefile +:000000 100644 0000000 fb4adc1 A tests/Regression/bz839572-Anaconda-traceback-when-installing-on-s390x/PURPOSE +:000000 100644 0000000 85c05f6 A tests/Regression/bz839572-Anaconda-traceback-when-installing-on-s390x/main.fmf +:000000 100755 0000000 5b89a8f A tests/Regression/bz839572-Anaconda-traceback-when-installing-on-s390x/runtest.sh +:000000 100644 0000000 b0de5b1 A tests/Regression/bz842280-posix-spawn-invokes-sh-when-it-should-not/Makefile +:000000 100644 0000000 c2c5200 A tests/Regression/bz842280-posix-spawn-invokes-sh-when-it-should-not/PURPOSE +:000000 100644 0000000 448b0f9 A tests/Regression/bz842280-posix-spawn-invokes-sh-when-it-should-not/main.fmf +:000000 100644 0000000 0cfba0d A tests/Regression/bz842280-posix-spawn-invokes-sh-when-it-should-not/reproducer.c +:000000 100755 0000000 e744124 A tests/Regression/bz842280-posix-spawn-invokes-sh-when-it-should-not/runtest.sh +:000000 100644 0000000 8402c19 A tests/Regression/bz863384-getaddrinfo-fails-to-return-FQDN-for-AF_INET-and-AF_INET6/Makefile +:000000 100644 0000000 32bea69 A tests/Regression/bz863384-getaddrinfo-fails-to-return-FQDN-for-AF_INET-and-AF_INET6/PURPOSE +:000000 100644 0000000 8f4c2f7 A tests/Regression/bz863384-getaddrinfo-fails-to-return-FQDN-for-AF_INET-and-AF_INET6/gai-tst.c +:000000 100644 0000000 cc6041f A tests/Regression/bz863384-getaddrinfo-fails-to-return-FQDN-for-AF_INET-and-AF_INET6/main.fmf +:000000 100755 0000000 c133fb0 A tests/Regression/bz863384-getaddrinfo-fails-to-return-FQDN-for-AF_INET-and-AF_INET6/ns.pl +:000000 100755 0000000 9937992 A tests/Regression/bz863384-getaddrinfo-fails-to-return-FQDN-for-AF_INET-and-AF_INET6/runtest.sh +:000000 100644 0000000 251da43 A tests/Regression/bz868808-backtrace-for-recursive-functions/Makefile +:000000 100644 0000000 cade416 A tests/Regression/bz868808-backtrace-for-recursive-functions/PURPOSE +:000000 100644 0000000 a32c040 A tests/Regression/bz868808-backtrace-for-recursive-functions/bt-tst.c +:000000 100644 0000000 58916e4 A tests/Regression/bz868808-backtrace-for-recursive-functions/main.fmf +:000000 100755 0000000 cf83c3c A tests/Regression/bz868808-backtrace-for-recursive-functions/runtest.sh +:000000 100644 0000000 3792789 A tests/Regression/bz916656-fpathconf-for-FIFO-returns-different-value-than-for-directory/Makefile +:000000 100644 0000000 925ade3 A tests/Regression/bz916656-fpathconf-for-FIFO-returns-different-value-than-for-directory/PURPOSE +:000000 100644 0000000 0cad333 A tests/Regression/bz916656-fpathconf-for-FIFO-returns-different-value-than-for-directory/fpathconf-t.c +:000000 100644 0000000 0c4fa47 A tests/Regression/bz916656-fpathconf-for-FIFO-returns-different-value-than-for-directory/main.fmf +:000000 100755 0000000 2ade365 A tests/Regression/bz916656-fpathconf-for-FIFO-returns-different-value-than-for-directory/runtest.sh +:000000 100644 0000000 5cdf0e9 A tests/Regression/bz916986-MAP_HUGETLB_support/Makefile +:000000 100644 0000000 d8a04c1 A tests/Regression/bz916986-MAP_HUGETLB_support/PURPOSE +:000000 100644 0000000 4f3656c A tests/Regression/bz916986-MAP_HUGETLB_support/bz916986.c +:000000 100644 0000000 26f01c8 A tests/Regression/bz916986-MAP_HUGETLB_support/main.fmf +:000000 100755 0000000 ed52266 A tests/Regression/bz916986-MAP_HUGETLB_support/runtest.sh +:000000 100644 0000000 0eee073 A tests/Regression/bz947350-getdate-does-not-ignore-trailing-whitespace/Makefile +:000000 100644 0000000 550d1b0 A tests/Regression/bz947350-getdate-does-not-ignore-trailing-whitespace/PURPOSE +:000000 100644 0000000 4d90b56 A tests/Regression/bz947350-getdate-does-not-ignore-trailing-whitespace/main.fmf +:000000 100755 0000000 dacdb69 A tests/Regression/bz947350-getdate-does-not-ignore-trailing-whitespace/runtest.sh +:000000 100644 0000000 145ccb2 A tests/Regression/bz947350-getdate-does-not-ignore-trailing-whitespace/tst-getdate.c +:000000 100644 0000000 9f46a2d A tests/Regression/bz947350-getdate-does-not-ignore-trailing-whitespace/tst-getdate.tmpl +:000000 100644 0000000 5618609 A tests/Regression/bz979363-fputs-should-see-EINTR-and-propagate-it-up/Makefile +:000000 100644 0000000 d6a78d6 A tests/Regression/bz979363-fputs-should-see-EINTR-and-propagate-it-up/PURPOSE +:000000 100644 0000000 e28c781 A tests/Regression/bz979363-fputs-should-see-EINTR-and-propagate-it-up/bz970854.c +:000000 100644 0000000 32211fc A tests/Regression/bz979363-fputs-should-see-EINTR-and-propagate-it-up/main.fmf +:000000 100755 0000000 94468d6 A tests/Regression/bz979363-fputs-should-see-EINTR-and-propagate-it-up/runtest.sh +:000000 100644 0000000 e9c24bf A tests/Regression/bz979363-fputs-should-see-EINTR-and-propagate-it-up/ubz15362.c +:000000 100644 0000000 eb8a3fc A tests/Regression/double_free_exploit/Makefile +:000000 100644 0000000 18c44f6 A tests/Regression/double_free_exploit/PURPOSE +:000000 100644 0000000 dfc0420 A tests/Regression/double_free_exploit/exploit.c +:000000 100644 0000000 b9eb76f A tests/Regression/double_free_exploit/exploit2.c +:000000 100644 0000000 af92d0d A tests/Regression/double_free_exploit/main.fmf +:000000 100755 0000000 35580e4 A tests/Regression/double_free_exploit/runtest.sh +:000000 100644 0000000 94a9bb5 A tests/Regression/expf-gives-infinity-where-result-finite/Makefile +:000000 100644 0000000 3b0f14b A tests/Regression/expf-gives-infinity-where-result-finite/PURPOSE +:000000 100644 0000000 30c04ab A tests/Regression/expf-gives-infinity-where-result-finite/main.fmf +:000000 100755 0000000 ac01945 A tests/Regression/expf-gives-infinity-where-result-finite/runtest.sh +:000000 100644 0000000 cbd1baf A tests/Regression/expf-gives-infinity-where-result-finite/tc1.cpp +:000000 100644 0000000 8afe24a A tests/Regression/fallocate_156289/Makefile +:000000 100644 0000000 2eff71e A tests/Regression/fallocate_156289/PURPOSE +:000000 100644 0000000 ddfabbd A tests/Regression/fallocate_156289/fallocate.c++ +:000000 100644 0000000 1812348 A tests/Regression/fallocate_156289/main.fmf +:000000 100755 0000000 359068e A tests/Regression/fallocate_156289/runtest.sh +:000000 100644 0000000 06f1df1 A tests/Regression/setvbuf-to-full-not-working/Makefile +:000000 100644 0000000 3a0a38c A tests/Regression/setvbuf-to-full-not-working/PURPOSE +:000000 100644 0000000 f082804 A tests/Regression/setvbuf-to-full-not-working/main.fmf +:000000 100755 0000000 4d31e61 A tests/Regression/setvbuf-to-full-not-working/runtest.sh +:000000 100644 0000000 4bc7d9f A tests/Regression/setvbuf-to-full-not-working/testcase.c +:000000 100755 0000000 ed5c619 A tests/Regression/setvbuf-to-full-not-working/try.exp +:000000 100644 0000000 a116188 A tests/Sanity/basic-linking-sanity/Makefile +:000000 100644 0000000 9f0038b A tests/Sanity/basic-linking-sanity/PURPOSE +:000000 100644 0000000 2b4f286 A tests/Sanity/basic-linking-sanity/lc.c +:000000 100644 0000000 a3116eb A tests/Sanity/basic-linking-sanity/lc.golden +:000000 100644 0000000 72612b9 A tests/Sanity/basic-linking-sanity/lm.c +:000000 100644 0000000 ddfa1ca A tests/Sanity/basic-linking-sanity/lm.golden +:000000 100644 0000000 65aca15 A tests/Sanity/basic-linking-sanity/lpthread.c +:000000 100644 0000000 e150192 A tests/Sanity/basic-linking-sanity/lpthread.golden +:000000 100644 0000000 2a31e0d A tests/Sanity/basic-linking-sanity/lrt.c +:000000 100644 0000000 f5ff068 A tests/Sanity/basic-linking-sanity/lrt.golden +:000000 100644 0000000 743943a A tests/Sanity/basic-linking-sanity/main.fmf +:000000 100755 0000000 9831078 A tests/Sanity/basic-linking-sanity/runtest.sh +:000000 100644 0000000 011936c A tests/Standardscompliance/bz531160-ldd-Vulnerable-to-Social-Engineering-Exploits/Makefile +:000000 100644 0000000 bb7a657 A tests/Standardscompliance/bz531160-ldd-Vulnerable-to-Social-Engineering-Exploits/PURPOSE +:000000 100644 0000000 c20ca2e A tests/Standardscompliance/bz531160-ldd-Vulnerable-to-Social-Engineering-Exploits/hello.c +:000000 100644 0000000 965d3d1 A tests/Standardscompliance/bz531160-ldd-Vulnerable-to-Social-Engineering-Exploits/interp.c +:000000 100644 0000000 0000dcb A tests/Standardscompliance/bz531160-ldd-Vulnerable-to-Social-Engineering-Exploits/main.fmf +:000000 100755 0000000 91a00d5 A tests/Standardscompliance/bz531160-ldd-Vulnerable-to-Social-Engineering-Exploits/runtest.sh +:000000 100644 0000000 5283035 A tests/Standardscompliance/bz639000-Wrong-Ukrainian-currency-symbol/Makefile +:000000 100644 0000000 3d7835a A tests/Standardscompliance/bz639000-Wrong-Ukrainian-currency-symbol/PURPOSE +:000000 100644 0000000 094e50d A tests/Standardscompliance/bz639000-Wrong-Ukrainian-currency-symbol/cursym.c +:000000 100644 0000000 8a475c4 A tests/Standardscompliance/bz639000-Wrong-Ukrainian-currency-symbol/main.fmf +:000000 100755 0000000 fc01c23 A tests/Standardscompliance/bz639000-Wrong-Ukrainian-currency-symbol/runtest.sh +:000000 100644 0000000 6d834ba A tests/Standardscompliance/bz692838-indic-update-locales-with-currency-symbol-to/Makefile +:000000 100644 0000000 00e692c A tests/Standardscompliance/bz692838-indic-update-locales-with-currency-symbol-to/PURPOSE +:000000 100644 0000000 63aae5d A tests/Standardscompliance/bz692838-indic-update-locales-with-currency-symbol-to/main.fmf +:000000 100755 0000000 64a6450 A tests/Standardscompliance/bz692838-indic-update-locales-with-currency-symbol-to/runtest.sh +:000000 100644 0000000 2697415 A tests/Standardscompliance/bz692838-indic-update-locales-with-currency-symbol-to/symbol.txt commit 221d1d8371b3fd44d2f6a62a48f84bb8dad728ad Author: Arjun Shankar @@ -6011,8 +7145,8 @@ CommitDate: Thu May 26 00:15:13 2022 +0200 - Revert "[AArch64][BZ #17711] Fix extern protected data handling" - elf: Rewrite long RESOLVE_MAP macro to an always_inline static function -:100644 100644 74f2d396 4d507374 M glibc.spec -:100644 100644 1a202abd 6716d868 M sources +:100644 100644 74f2d39 4d50737 M glibc.spec +:100644 100644 1a202ab 6716d86 M sources commit 1d46c32e74ade4971644d8eccfa17478bc29ec35 Author: DJ Delorie @@ -6024,7 +7158,7 @@ CommitDate: Mon May 23 18:02:48 2022 -0400 Forgot the source tarball... -:100644 100644 09b7e19d 1a202abd M sources +:100644 100644 09b7e19 1a202ab M sources commit 9a389a777e917f34b060ad9704092a47036e40e6 Author: DJ Delorie @@ -6075,7 +7209,7 @@ CommitDate: Mon May 23 14:48:40 2022 -0400 - fortify: Ensure that __glibc_fortify condition is a constant [BZ #29141] - Update RISC-V specific ELF definitions -:100644 100644 a42e26c1 74f2d396 M glibc.spec +:100644 100644 a42e26c 74f2d39 M glibc.spec commit eb33d47394fe81a96afaf4f2a5377585a5d5bacf Author: Arjun Shankar @@ -6098,8 +7232,8 @@ CommitDate: Mon May 16 15:16:02 2022 +0200 - Add declare_object_symbol_alias for assembly codes (BZ #28128) - wcrtomb: Make behavior POSIX compliant -:100644 100644 00c0922a a42e26c1 M glibc.spec -:100644 100644 828e7dd5 09b7e19d M sources +:100644 100644 00c0922 a42e26c M glibc.spec +:100644 100644 828e7dd 09b7e19 M sources commit deac763a0428758f2206215f18cec298f13a8c1f Author: Patsy Griffin @@ -6126,8 +7260,8 @@ CommitDate: Tue May 10 17:42:01 2022 -0400 - i386: Remove OPTIMIZE_FOR_GCC_5 from Linux libc-do-syscall.S - manual: Clarify that abbreviations of long options are allowed -:100644 100644 507038bd 00c0922a M glibc.spec -:100644 100644 58c07d11 828e7dd5 M sources +:100644 100644 507038b 00c0922 M glibc.spec +:100644 100644 58c07d1 828e7dd M sources commit e07803b9115a41a0b35be377447175a783e2691e Author: Florian Weimer @@ -6165,8 +7299,8 @@ CommitDate: Tue May 3 09:27:11 2022 +0200 - dlfcn: Do not use rtld_active () to determine ld.so state (bug 29078) - INSTALL: Rephrase -with-default-link documentation -:100644 100644 7ea2ef61 507038bd M glibc.spec -:100644 100644 bef4a565 58c07d11 M sources +:100644 100644 7ea2ef6 507038b M glibc.spec +:100644 100644 bef4a56 58c07d1 M sources commit 1be721e2251b6d750cb87cc74d4a7d985431e59b Author: Carlos O'Donell @@ -6196,9 +7330,9 @@ CommitDate: Tue Apr 26 09:21:36 2022 -0400 - x86: Fix missing __wmemcmp def for disable-multiarch build - elf: Remove __libc_init_secure -:100644 100644 518253d1 d62d7a20 M glibc-fedora-localedata-rh61908.patch -:100644 100644 7e1b3343 7ea2ef61 M glibc.spec -:100644 100644 b0440a8b bef4a565 M sources +:100644 100644 518253d d62d7a2 M glibc-fedora-localedata-rh61908.patch +:100644 100644 7e1b334 7ea2ef6 M glibc.spec +:100644 100644 b0440a8 bef4a56 M sources commit b72082ecfb50108613454d7ff2ca08882b0cd1d0 Author: DJ Delorie @@ -6241,8 +7375,8 @@ CommitDate: Tue Apr 19 17:40:07 2022 -0400 - Add .clang-format style file - manual: Avoid name collision in libm ULP table [BZ #28956] -:100644 100644 dffa5135 7e1b3343 M glibc.spec -:100644 100644 cfdb68ba b0440a8b M sources +:100644 100644 dffa513 7e1b334 M glibc.spec +:100644 100644 cfdb68b b0440a8 M sources commit 12a09a5e16c52bbb8eaa28af14a16adfe7e6ed75 Author: Sergey Kolosov @@ -6252,7 +7386,7 @@ CommitDate: Thu Apr 14 13:33:52 2022 +0000 Regression/locale-archive-test: removes glibc-minimal-langpack -:100755 100755 d47197cc 7147736c M tests/Regression/locale-archive-test/runtest.sh +:100755 100755 d47197c 7147736 M tests/Regression/locale-archive-test/runtest.sh commit 157efe36a24cd1fd6071ca22a992a9f38c1d2a12 Author: Sergey Kolosov @@ -6262,11 +7396,11 @@ CommitDate: Thu Apr 14 13:33:52 2022 +0000 adds Regression/locale-archive-test(glibc-all-langpacks) test -:000000 100644 00000000 187e4e97 A tests/Regression/locale-archive-test/Makefile -:000000 100644 00000000 9cb209ce A tests/Regression/locale-archive-test/PURPOSE -:000000 100644 00000000 c0d4e041 A tests/Regression/locale-archive-test/main.fmf -:000000 100755 00000000 d47197cc A tests/Regression/locale-archive-test/runtest.sh -:000000 100644 00000000 e2177b9b A tests/Regression/locale-archive-test/test-locale.py +:000000 100644 0000000 187e4e9 A tests/Regression/locale-archive-test/Makefile +:000000 100644 0000000 9cb209c A tests/Regression/locale-archive-test/PURPOSE +:000000 100644 0000000 c0d4e04 A tests/Regression/locale-archive-test/main.fmf +:000000 100755 0000000 d47197c A tests/Regression/locale-archive-test/runtest.sh +:000000 100644 0000000 e2177b9 A tests/Regression/locale-archive-test/test-locale.py commit fc646497227a2abbe088da4e87db34635c453ff4 Author: Arjun Shankar @@ -6295,8 +7429,8 @@ CommitDate: Tue Apr 12 02:02:11 2022 +0200 - test-memcpy: Actually reverse source and destination - benchtests: Only build libmvec benchmarks iff $(build-mathvec) is set -:100644 100644 7c1e0c74 dffa5135 M glibc.spec -:100644 100644 9baee00b cfdb68ba M sources +:100644 100644 7c1e0c7 dffa513 M glibc.spec +:100644 100644 9baee00 cfdb68b M sources commit 880449658cfe5a3e6264ac8db6571e44d071c720 Author: Florian Weimer @@ -6306,7 +7440,7 @@ CommitDate: Tue Apr 5 17:41:52 2022 +0200 Add missing newline to %changelog -:100644 100644 1e1217c1 7c1e0c74 M glibc.spec +:100644 100644 1e1217c 7c1e0c7 M glibc.spec commit e900cd3e7738fcc23df24c71b162d9ceda7a119b Author: Florian Weimer @@ -6427,8 +7561,8 @@ CommitDate: Tue Apr 5 17:32:38 2022 +0200 - inet: Fix getnameinfo (NI_NOFQDN) race condition (BZ#28566) - benchtests: make compare_strings.py accept string as attribute value -:100644 100644 c7a7f8ae 1e1217c1 M glibc.spec -:100644 100644 1eb780fd 9baee00b M sources +:100644 100644 c7a7f8a 1e1217c M glibc.spec +:100644 100644 1eb780f 9baee00 M sources commit 98fe3887bce4b301e56558f2711b7d97081e0b05 Author: DJ Delorie @@ -6456,8 +7590,8 @@ CommitDate: Tue Mar 15 15:32:25 2022 -0400 - inet: Fix getnameinfo (NI_NOFQDN) race condition (BZ#28566) - benchtests: make compare_strings.py accept string as attribute value -:100644 100644 19f53a83 c7a7f8ae M glibc.spec -:100644 100644 81c2fa64 1eb780fd M sources +:100644 100644 19f53a8 c7a7f8a M glibc.spec +:100644 100644 81c2fa6 1eb780f M sources commit 18a434fccf653aa4dbe8c0adeae745a645e22c97 Author: Florian Weimer @@ -6467,8 +7601,8 @@ CommitDate: Tue Mar 15 08:57:44 2022 +0100 Trim changelog -:100644 100644 2afbfc5c a0b9a7f9 M ChangeLog.old -:100644 100644 a7f2250d 19f53a83 M glibc.spec +:100644 100644 2afbfc5 a0b9a7f M ChangeLog.old +:100644 100644 a7f2250 19f53a8 M glibc.spec commit 9050623a8cefa0f150c0f1cd063e4fcfe5b2e51c Author: Florian Weimer @@ -6478,9 +7612,9 @@ CommitDate: Thu Mar 10 10:33:17 2022 +0100 Remove downstream-only workaround patches for ppc64le, gettext -:100644 000000 3eda1b27 00000000 D glibc-gettext-snapshot-versioncheck.patch -:100644 000000 bc070468 00000000 D glibc-temp-ibmldbl64.patch -:100644 100644 5410d5f5 a7f2250d M glibc.spec +:100644 000000 3eda1b2 0000000 D glibc-gettext-snapshot-versioncheck.patch +:100644 000000 bc07046 0000000 D glibc-temp-ibmldbl64.patch +:100644 100644 5410d5f a7f2250 M glibc.spec commit 37b89add0a020e4ac3017afb62e6211e48a59bbf Author: Arjun Shankar @@ -6493,8 +7627,8 @@ CommitDate: Wed Mar 9 14:47:49 2022 +0100 It was an nscd related patch and no longer relevant since we don't provide nscd any more. -:100644 000000 0975e0fa 00000000 D glibc-rh1070416.patch -:100644 100644 14226388 5410d5f5 M glibc.spec +:100644 000000 0975e0f 0000000 D glibc-rh1070416.patch +:100644 100644 1422638 5410d5f M glibc.spec commit ca8ff78a60d6dd4dd7e3bc4cc5f37fb57fef0a0d Author: Arjun Shankar @@ -6512,8 +7646,8 @@ CommitDate: Tue Mar 8 17:21:01 2022 +0100 - i386: Remove libc-do-syscall from sysdep-dl-routines [BZ #28936] - linux/i386: remove dead assignment of sysdep-dl-routines -:100644 100644 f1b332f2 14226388 M glibc.spec -:100644 100644 d277acdd 81c2fa64 M sources +:100644 100644 f1b332f 1422638 M glibc.spec +:100644 100644 d277acd 81c2fa6 M sources commit 93272df772bf39dd32befdea99455d8af3501e05 Author: Siddhesh Poyarekar @@ -6526,8 +7660,8 @@ CommitDate: Tue Mar 8 20:24:19 2022 +0530 If the gettext snapshots are deemed official upstream, glibc-gettext-snapshot-versioncheck.patch will be posted upstream. -:000000 100644 00000000 3eda1b27 A glibc-gettext-snapshot-versioncheck.patch -:100644 100644 2fdc2ecb f1b332f2 M glibc.spec +:000000 100644 0000000 3eda1b2 A glibc-gettext-snapshot-versioncheck.patch +:100644 100644 2fdc2ec f1b332f M glibc.spec commit 2b9524042d978032dc6e695ce6d5558d57e38348 Author: Carlos O'Donell @@ -6544,8 +7678,8 @@ CommitDate: Tue Mar 1 23:56:46 2022 -0500 - io: Add fsync call in tst-stat - Linux: Consolidate auxiliary vector parsing (redo) -:100644 100644 c3214af8 2fdc2ecb M glibc.spec -:100644 100644 d555633b d277acdd M sources +:100644 100644 c3214af 2fdc2ec M glibc.spec +:100644 100644 d555633 d277acd M sources commit 199391c59dd655ead362b11d88428e4eb39b196c Author: Arjun Shankar @@ -6588,8 +7722,8 @@ CommitDate: Sat Feb 26 01:32:37 2022 +0100 Related: #2057697 -:100644 100644 6b5788ea c3214af8 M glibc.spec -:100644 100644 103eda00 d555633b M sources +:100644 100644 6b5788e c3214af M glibc.spec +:100644 100644 103eda0 d555633 M sources commit e2ef526535d95faf42b0068fb175ae864c2df0fa Author: Carlos O'Donell @@ -6601,7 +7735,7 @@ CommitDate: Wed Feb 23 23:12:00 2022 -0500 Resolves: #2057697 -:100644 100644 ca04c97e 6b5788ea M glibc.spec +:100644 100644 ca04c97 6b5788e M glibc.spec commit 6079b05db62b18fab4978f4500d860645175ee2c Author: Carlos O'Donell @@ -6614,7 +7748,7 @@ CommitDate: Tue Feb 22 15:39:33 2022 -0500 It should be a soft failure if systemctl fails to execute and we cannot restart all the daemons. -:100644 100644 6b5c599e ca04c97e M glibc.spec +:100644 100644 6b5c599 ca04c97 M glibc.spec commit da2736300eb6c1148da47e84ed369f19b48fbb7f Author: Carlos O'Donell @@ -6666,8 +7800,8 @@ CommitDate: Tue Feb 22 15:29:33 2022 -0500 - elf: Merge dl-sysdep.c into the Linux version - hppa: Fix bind-now audit (BZ #28857) -:100644 100644 4d7bad5a 6b5c599e M glibc.spec -:100644 100644 2713b81b 103eda00 M sources +:100644 100644 4d7bad5 6b5c599 M glibc.spec +:100644 100644 2713b81 103eda0 M sources commit 08e0ad8f78ec22885cd488a55f869b97aa85fb6d Author: Zbigniew Jędrzejewski-Szmek @@ -6713,7 +7847,7 @@ CommitDate: Tue Feb 22 20:38:30 2022 +0100 https://github.com/coreos/rpm-ostree/pull/3453 provides a workaround so that rpm-ostree doesn't choke on this. -:100644 100644 4e952244 4d7bad5a M glibc.spec +:100644 100644 4e95224 4d7bad5 M glibc.spec commit f6ed6cf018f7b3bd10fa2fc038d6a3a68bb4df66 Author: Zbigniew Jędrzejewski-Szmek @@ -6732,7 +7866,7 @@ CommitDate: Tue Feb 22 20:37:07 2022 +0100 an error is printed. At least iconvconfig just seems to fail quietly in case of a problem. -:100644 100644 525173fc 4e952244 M glibc.spec +:100644 100644 525173f 4e95224 M glibc.spec commit 4f7d89c5d312a4d15757259e63fb55f0ff84cc4c Author: Zbigniew Jędrzejewski-Szmek @@ -6745,7 +7879,7 @@ CommitDate: Tue Feb 22 19:55:39 2022 +0100 Our packaging guidelines say that %global is preferred, and with %{expand} the line continuations can be removed. -:100644 100644 3ac699ee 525173fc M glibc.spec +:100644 100644 3ac699e 525173f M glibc.spec commit a0bdca4f3f0b5d8fa83b94baa29aee593a6185d7 Author: Arjun Shankar @@ -6761,7 +7895,7 @@ CommitDate: Tue Feb 15 12:11:07 2022 +0100 Reviewed-by: Florian Weimer -:100644 100644 c581cf72 3ac699ee M glibc.spec +:100644 100644 c581cf7 3ac699e M glibc.spec commit cf979ff812591e7190025c9454ab73a9c31baa5b Author: Arjun Shankar @@ -6781,8 +7915,8 @@ CommitDate: Thu Feb 10 12:00:48 2022 +0100 hardlink is also passed a -c flag so that it actually compares file contents and hardlinks identical ones. -:100644 000000 515611a9 00000000 D glibc-fedora-localedef.patch -:100644 100644 415c6586 c581cf72 M glibc.spec +:100644 000000 515611a 0000000 D glibc-fedora-localedef.patch +:100644 100644 415c658 c581cf7 M glibc.spec commit 12d74d739eb141e7fa15e0c7f02541289a84557a Author: Arjun Shankar @@ -6792,7 +7926,7 @@ CommitDate: Thu Feb 10 11:47:40 2022 +0100 Correct NVR in changelog entry -:100644 100644 657680d3 415c6586 M glibc.spec +:100644 100644 657680d 415c658 M glibc.spec commit 4df8fd5b19030624a0051ac82fd664d080e13ee7 Author: Sergey Kolosov @@ -6802,8 +7936,8 @@ CommitDate: Wed Feb 9 20:39:42 2022 +0100 tests: removes uneeded PURPOSE files -:100644 000000 020631ca 00000000 D tests/Regression/bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has/PURPOSE -:100644 000000 ec6d6a4d 00000000 D tests/Regression/bz2007417-glibc-ldd-segfaults-when-inspecting/PURPOSE +:100644 000000 020631c 0000000 D tests/Regression/bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has/PURPOSE +:100644 000000 ec6d6a4 0000000 D tests/Regression/bz2007417-glibc-ldd-segfaults-when-inspecting/PURPOSE commit 7b4342f3e8252a957326800ff6cd447a44e71601 Author: Sergey Kolosov @@ -6813,7 +7947,7 @@ CommitDate: Wed Feb 9 20:38:49 2022 +0100 tests/Regression/bz2007417-glibc-ldd-segfaults-when-inspecting: fixes multiple vdso64.so files procession -:100755 100755 aa53dde1 048beaf8 M tests/Regression/bz2007417-glibc-ldd-segfaults-when-inspecting/runtest.sh +:100755 100755 aa53dde 048beaf M tests/Regression/bz2007417-glibc-ldd-segfaults-when-inspecting/runtest.sh commit 17eea2064ae9d3593d97f2a3bed21d89ddb0903c Author: Florian Weimer @@ -6867,8 +8001,8 @@ CommitDate: Wed Feb 9 13:17:44 2022 +0100 - string/test-str*cmp: remove stupid_[strcmp, strncmp, wcscmp, wcsncmp]. - Open master branch for glibc 2.36 development -:100644 100644 c6bfe23d 657680d3 M glibc.spec -:100644 100644 5c4b6416 2713b81b M sources +:100644 100644 c6bfe23 657680d M glibc.spec +:100644 100644 5c4b641 2713b81 M sources commit 6d97bdd7b390c954843725de41f684ed86dd83fd Author: Florian Weimer @@ -6878,7 +8012,7 @@ CommitDate: Tue Feb 8 16:37:47 2022 +0100 Mention GCC bug in glibc-temp-ibmldbl64.patch -:100644 100644 7d0418d5 bc070468 M glibc-temp-ibmldbl64.patch +:100644 100644 7d0418d bc07046 M glibc-temp-ibmldbl64.patch commit a7b71f9f73fb5f120d89cffbbfbe035cca17584b Author: Florian Weimer @@ -6893,8 +8027,8 @@ CommitDate: Tue Feb 8 15:53:22 2022 +0100 - Add BZ#28860 reference on NEWS - linux: Fix missing __convert_scm_timestamps (BZ #28860) -:100644 100644 643cbbea c6bfe23d M glibc.spec -:100644 100644 19af4c15 5c4b6416 M sources +:100644 100644 643cbbe c6bfe23 M glibc.spec +:100644 100644 19af4c1 5c4b641 M sources commit f155668f0100811328d48913c1bb32a6a5710018 Author: Florian Weimer @@ -6929,8 +8063,8 @@ CommitDate: Thu Feb 3 15:53:04 2022 +0100 - localedef: Fix handling of empty mon_decimal_point (Bug 28847) - malloc: Fix tst-mallocalign1 macro spacing. -:100644 100644 19b8ea96 643cbbea M glibc.spec -:100644 100644 4471b0bd 19af4c15 M sources +:100644 100644 19b8ea9 643cbbe M glibc.spec +:100644 100644 4471b0b 19af4c1 M sources commit 53b2ec4663f8b88dfc2317d1a9afe4b01ca3bbab Author: Florian Weimer @@ -6964,9 +8098,9 @@ CommitDate: Tue Feb 1 14:48:58 2022 +0100 - elf: Fix use-after-free in ldconfig [BZ #26779] - posix: Add terminal control setting support for posix_spawn -:100644 000000 d91bb8b7 00000000 D glibc-temp-Wno-use-after-free.patch -:100644 100644 c9bb5f53 19b8ea96 M glibc.spec -:100644 100644 ac9ef1ab 4471b0bd M sources +:100644 000000 d91bb8b 0000000 D glibc-temp-Wno-use-after-free.patch +:100644 100644 c9bb5f5 19b8ea9 M glibc.spec +:100644 100644 ac9ef1a 4471b0b M sources commit cdf31c9c27de485cc2a9bec86d8463b597f155e5 Author: Sergey Kolosov @@ -6976,10 +8110,10 @@ CommitDate: Wed Jan 26 14:02:40 2022 +0000 adds Regression/bz2007417-glibc-ldd-segfaults-when-inspecting test case -:000000 100644 00000000 4b79acd4 A tests/Regression/bz2007417-glibc-ldd-segfaults-when-inspecting/Makefile -:000000 100644 00000000 ec6d6a4d A tests/Regression/bz2007417-glibc-ldd-segfaults-when-inspecting/PURPOSE -:000000 100644 00000000 bcbba50c A tests/Regression/bz2007417-glibc-ldd-segfaults-when-inspecting/main.fmf -:000000 100755 00000000 aa53dde1 A tests/Regression/bz2007417-glibc-ldd-segfaults-when-inspecting/runtest.sh +:000000 100644 0000000 4b79acd A tests/Regression/bz2007417-glibc-ldd-segfaults-when-inspecting/Makefile +:000000 100644 0000000 ec6d6a4 A tests/Regression/bz2007417-glibc-ldd-segfaults-when-inspecting/PURPOSE +:000000 100644 0000000 bcbba50 A tests/Regression/bz2007417-glibc-ldd-segfaults-when-inspecting/main.fmf +:000000 100755 0000000 aa53dde A tests/Regression/bz2007417-glibc-ldd-segfaults-when-inspecting/runtest.sh commit 1fd4834f594f42bfa182013bac80f5ec08c8e072 Author: DJ Delorie @@ -7095,11 +8229,11 @@ CommitDate: Tue Jan 25 10:25:45 2022 -0500 - elf: Also try DT_RUNPATH for LD_AUDIT dlopen [BZ #28455] - elf: Fix tst-linkall-static link when pthread is not in libc -:100644 000000 ffd083c6 00000000 D glibc-rh2034715.patch -:000000 100644 00000000 d91bb8b7 A glibc-temp-Wno-use-after-free.patch -:000000 100644 00000000 7d0418d5 A glibc-temp-ibmldbl64.patch -:100644 100644 4eab88f2 c9bb5f53 M glibc.spec -:100644 100644 ddf34165 ac9ef1ab M sources +:100644 000000 ffd083c 0000000 D glibc-rh2034715.patch +:000000 100644 0000000 d91bb8b A glibc-temp-Wno-use-after-free.patch +:000000 100644 0000000 7d0418d A glibc-temp-ibmldbl64.patch +:100644 100644 4eab88f c9bb5f5 M glibc.spec +:100644 100644 ddf3416 ac9ef1a M sources commit 4cc446aac1ec4e5a7e667703704b03ff4bf403bb Author: Fedora Release Engineering @@ -7111,7 +8245,7 @@ CommitDate: Thu Jan 20 06:12:00 2022 +0000 Signed-off-by: Fedora Release Engineering -:100644 100644 90300189 4eab88f2 M glibc.spec +:100644 100644 9030018 4eab88f M glibc.spec commit 514d6266eb295063b252211057b147b22347717d Author: Florian Weimer @@ -7165,9 +8299,9 @@ CommitDate: Tue Jan 4 15:54:08 2022 +0100 - x86-64: Add vector asin/asinf implementation to libmvec - x86-64: Add vector atan/atanf implementation to libmvec -:100644 100644 aaf45cc5 16717a09 M glibc-python3.patch -:100644 100644 351127d5 90300189 M glibc.spec -:100644 100644 429d3233 ddf34165 M sources +:100644 100644 aaf45cc 16717a0 M glibc-python3.patch +:100644 100644 351127d 9030018 M glibc.spec +:100644 100644 429d323 ddf3416 M sources commit 8d17a555f47be08e4dc8350008ac7f08ae86be6e Author: Florian Weimer @@ -7225,8 +8359,8 @@ CommitDate: Wed Dec 29 07:09:16 2021 +0100 - Update copyright header in recently merged ab_GE locale - fortify: Fix spurious warning with realpath -:100644 100644 8a85e209 351127d5 M glibc.spec -:100644 100644 a1a13522 429d3233 M sources +:100644 100644 8a85e20 351127d M glibc.spec +:100644 100644 a1a1352 429d323 M sources commit 3987f952fb8bb3d38d09bb5c264a34339711fe78 Author: Florian Weimer @@ -7236,8 +8370,8 @@ CommitDate: Tue Dec 28 21:41:25 2021 +0100 armhfp, i686: Revert 64-bit time_t/off_t for internal use (#2034715) -:000000 100644 00000000 ffd083c6 A glibc-rh2034715.patch -:100644 100644 4870777d 8a85e209 M glibc.spec +:000000 100644 0000000 ffd083c A glibc-rh2034715.patch +:100644 100644 4870777 8a85e20 M glibc.spec commit 2762250016e3c2113783307d2cc4faed28871d3e Author: Florian Weimer @@ -7266,8 +8400,8 @@ CommitDate: Fri Dec 17 12:11:27 2021 +0100 - powerpc: Use global register variable in - Use LFS and 64 bit time for installed programs (swbz#15333) -:100644 100644 80ea3679 4870777d M glibc.spec -:100644 100644 b32ddee4 a1a13522 M sources +:100644 100644 80ea367 4870777 M glibc.spec +:100644 100644 b32ddee a1a1352 M sources commit 5c459b73d2ee9b11980f88a17232fd8827c5986d Author: Martin Cermak @@ -7277,8 +8411,8 @@ CommitDate: Thu Dec 16 09:42:18 2021 +0100 CI Gating: Avoid installing conflicting headers -:100644 100644 a6844328 828ab9db M gating.yaml -:100644 100644 1e07754a d52cc9b3 M plans/ci.fmf +:100644 100644 a684432 828ab9d M gating.yaml +:100644 100644 1e07754 d52cc9b M plans/ci.fmf commit 201f88a749e81ef1932e3f2a2ac2743c9ddfb517 Author: Arjun Shankar @@ -7292,7 +8426,7 @@ CommitDate: Wed Dec 15 15:06:18 2021 +0100 the build system and static PIE is enabled by default on architectures that support it. -:100644 100644 d8008596 80ea3679 M glibc.spec +:100644 100644 d800859 80ea367 M glibc.spec commit 2d913ac06a4074a5723646238134ebc1614bf15e Author: Florian Weimer @@ -7310,9 +8444,9 @@ CommitDate: Wed Dec 15 09:35:03 2021 +0100 - NEWS: Document LD_PREFER_MAP_32BIT_EXEC as x86-64 only - elf: Align argument of __munmap to page size [BZ #28676] -:100644 000000 ed692522 00000000 D glibc-fedora-revert-PT_LOAD-segment-align.patch -:100644 100644 5f03910b d8008596 M glibc.spec -:100644 100644 2dcc95c5 b32ddee4 M sources +:100644 000000 ed69252 0000000 D glibc-fedora-revert-PT_LOAD-segment-align.patch +:100644 100644 5f03910 d800859 M glibc.spec +:100644 100644 2dcc95c b32ddee M sources commit 0c78549fbcc7bdf354fb87adf487839604444060 Author: Arjun Shankar @@ -7373,9 +8507,9 @@ CommitDate: Tue Dec 14 15:20:32 2021 +0100 - elf: execve statically linked programs instead of crashing [BZ #28648] - Add --with-timeoutfactor=NUM to specify TIMEOUTFACTOR -:000000 100644 00000000 ed692522 A glibc-fedora-revert-PT_LOAD-segment-align.patch -:100644 100644 4039920c 5f03910b M glibc.spec -:100644 100644 659c5736 2dcc95c5 M sources +:000000 100644 0000000 ed69252 A glibc-fedora-revert-PT_LOAD-segment-align.patch +:100644 100644 4039920 5f03910 M glibc.spec +:100644 100644 659c573 2dcc95c M sources commit a7319f331606123a06209b1370abcbac92990c72 Author: Arjun Shankar @@ -7393,11 +8527,11 @@ CommitDate: Mon Dec 13 13:41:58 2021 +0100 Reviewed-by: Carlos O'Donell -:100644 000000 315b6cd9 00000000 D glibc-deprecated-selinux-nscd.patch -:100644 000000 6f8f764e 00000000 D glibc-fedora-nscd.patch -:100644 000000 03dee9e9 00000000 D glibc-nscd-sysconfig.patch -:100644 100644 20ba1ada 4039920c M glibc.spec -:100644 000000 8a24a785 00000000 D nscd.conf +:100644 000000 315b6cd 0000000 D glibc-deprecated-selinux-nscd.patch +:100644 000000 6f8f764 0000000 D glibc-fedora-nscd.patch +:100644 000000 03dee9e 0000000 D glibc-nscd-sysconfig.patch +:100644 100644 20ba1ad 4039920 M glibc.spec +:100644 000000 8a24a78 0000000 D nscd.conf commit cadee80b1316bc264db044180e20dc1e671ed1ea Author: Pavel Březina @@ -7416,8 +8550,8 @@ CommitDate: Fri Dec 10 17:06:38 2021 +0100 Resolves: rhbz#2023741 -:100644 000000 61f03111 00000000 D glibc-fedora-nsswitch.patch -:100644 100644 bf9ed76d 20ba1ada M glibc.spec +:100644 000000 61f0311 0000000 D glibc-fedora-nsswitch.patch +:100644 100644 bf9ed76 20ba1ad M glibc.spec commit 2a12adcea2a1193fd5d038b0e3f38f12593f5cdc Author: Siddhesh Poyarekar @@ -7433,7 +8567,7 @@ CommitDate: Thu Dec 9 06:29:40 2021 +0530 redhat-rpm-config but when testing with annobin disabled (*and* with a rebased gcc), it may end up unnecessarily making gcc look for annobin. -:100644 100644 8dc33cbf bf9ed76d M glibc.spec +:100644 100644 8dc33cb bf9ed76 M glibc.spec commit 333464235d6ef786d969323c7667327460c5cda7 Author: Martin Cermak @@ -7453,7 +8587,7 @@ CommitDate: Wed Dec 8 14:07:49 2021 +0100 Once the aforementioned CI Infrastructure issue is resolved, we can roll this update back. -:100644 100644 de6a6ec9 a6844328 M gating.yaml +:100644 100644 de6a6ec a684432 M gating.yaml commit 4dc7322afff27b0f190aeb36c7e5d5729514763d Author: Florian Weimer @@ -7465,8 +8599,8 @@ CommitDate: Mon Dec 6 19:04:10 2021 +0100 The build failure was actually due to #2026399. -:100644 000000 842bee32 00000000 D glibc-dso-sort-makefile-fail.patch -:100644 100644 ba4057ea 8dc33cbf M glibc.spec +:100644 000000 842bee3 0000000 D glibc-dso-sort-makefile-fail.patch +:100644 100644 ba4057e 8dc33cb M glibc.spec commit ae249dabba7aaf8b8b4c95ee290cc3b7920db188 Author: Florian Weimer @@ -7491,9 +8625,9 @@ CommitDate: Sat Dec 4 10:20:21 2021 +0100 - elf: Include in tst-tls20.c - hurd: Let report-wait use a weak reference to _hurd_itimer_thread -:100644 000000 188d1c2c 00000000 D glibc-rh2026399.patch -:100644 100644 cb76ccdc ba4057ea M glibc.spec -:100644 100644 0685dc4b 659c5736 M sources +:100644 000000 188d1c2 0000000 D glibc-rh2026399.patch +:100644 100644 cb76ccd ba4057e M glibc.spec +:100644 100644 0685dc4 659c573 M sources commit 11567e7d2046152b9d31f1283b1be000e32a6a89 Author: Florian Weimer @@ -7503,8 +8637,8 @@ CommitDate: Sat Dec 4 04:30:47 2021 +0100 x86_64: Disable additional EVEX string functions (#2026399) -:100644 100644 05d3e406 188d1c2c M glibc-rh2026399.patch -:100644 100644 2e55266f cb76ccdc M glibc.spec +:100644 100644 05d3e40 188d1c2 M glibc-rh2026399.patch +:100644 100644 2e55266 cb76ccd M glibc.spec commit 3717b5ea105cac37fd931ffd6e513af6e3bec20a Author: Florian Weimer @@ -7514,8 +8648,8 @@ CommitDate: Fri Dec 3 18:47:40 2021 +0100 x86_64: Disable EVEX *cmp* string functions (#2026399) -:000000 100644 00000000 05d3e406 A glibc-rh2026399.patch -:100644 100644 d3b94951 2e55266f M glibc.spec +:000000 100644 0000000 05d3e40 A glibc-rh2026399.patch +:100644 100644 d3b9495 2e55266 M glibc.spec commit ba4df9283b57d2339aae92a153dff089feac3514 Author: Florian Weimer @@ -7525,8 +8659,8 @@ CommitDate: Thu Dec 2 16:48:08 2021 +0100 Drop glibc-sdt-headers.patch -:100644 000000 d5234396 00000000 D glibc-sdt-headers.patch -:100644 100644 e18d635c d3b94951 M glibc.spec +:100644 000000 d523439 0000000 D glibc-sdt-headers.patch +:100644 100644 e18d635 d3b9495 M glibc.spec commit 980b253a67feedeb6430e4d961a59bc7f45f0bf0 Author: Carlos O'Donell @@ -7536,7 +8670,7 @@ CommitDate: Tue Nov 30 13:42:01 2021 -0500 Fix sources file for glibc-2.34.9000-22. -:100644 100644 908fcf7b 0685dc4b M sources +:100644 100644 908fcf7 0685dc4 M sources commit 8b7229bf79f7ad0630ead17f812e56aa6debbea8 Author: Carlos O'Donell @@ -7570,7 +8704,7 @@ CommitDate: Tue Nov 30 09:44:01 2021 -0500 - elf: Introduce GLRO (dl_libc_freeres), called from __libc_freeres - nptl: Extract from pthread_cond_common.c -:100644 100644 928dca94 e18d635c M glibc.spec +:100644 100644 928dca9 e18d635 M glibc.spec commit 3e067f11c340ca8407777e1ce5c696d26c7f55b0 Author: Sergey Kolosov @@ -7580,7 +8714,7 @@ CommitDate: Thu Nov 18 21:39:10 2021 +0100 adds glibc-headers-x86 to exclude -:100644 100644 ee06e4af 1e07754a M plans/ci.fmf +:100644 100644 ee06e4a 1e07754 M plans/ci.fmf commit 7a3188c863abcade3adacbc768f4dc2d0466e39a Author: Sergey Kolosov @@ -7590,7 +8724,7 @@ CommitDate: Thu Nov 18 19:24:52 2021 +0100 exclude glibc-headers-s390 -:100644 100644 1ad2c12f ee06e4af M plans/ci.fmf +:100644 100644 1ad2c12 ee06e4a M plans/ci.fmf commit 8d488dc38eff2ea62143977d8020dfb7739df04d Author: Sergey Kolosov @@ -7600,14 +8734,14 @@ CommitDate: Thu Nov 18 16:45:23 2021 +0100 introduce Fedora CI -:000000 100644 00000000 d00491fd A .fmf/version -:100644 100644 4776906c de6a6ec9 M gating.yaml -:000000 100644 00000000 1ad2c12f A plans/ci.fmf -:000000 100644 00000000 2852f585 A tests/Regression/bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has/Makefile -:000000 100644 00000000 020631ca A tests/Regression/bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has/PURPOSE -:000000 100644 00000000 a6ec8e23 A tests/Regression/bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has/main.fmf -:000000 100755 00000000 f6c6e2e2 A tests/Regression/bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has/runtest.sh -:000000 100644 00000000 b8a08ec4 A tests/Regression/bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has/testlib.cc +:000000 100644 0000000 d00491f A .fmf/version +:100644 100644 4776906 de6a6ec M gating.yaml +:000000 100644 0000000 1ad2c12 A plans/ci.fmf +:000000 100644 0000000 2852f58 A tests/Regression/bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has/Makefile +:000000 100644 0000000 020631c A tests/Regression/bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has/PURPOSE +:000000 100644 0000000 a6ec8e2 A tests/Regression/bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has/main.fmf +:000000 100755 0000000 f6c6e2e A tests/Regression/bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has/runtest.sh +:000000 100644 0000000 b8a08ec A tests/Regression/bz1882466-RHEL8-2-LD-PRELOAD-of-some-lib-that-has/testlib.cc commit e4ca95809b65179df5f1252817417532a0a7952f Author: Florian Weimer @@ -7617,8 +8751,8 @@ CommitDate: Thu Nov 18 11:20:40 2021 +0100 Temporary patch glibc-dso-sort-makefile-fail.patch, to fix x86_64 build -:000000 100644 00000000 842bee32 A glibc-dso-sort-makefile-fail.patch -:100644 100644 84fbcff4 928dca94 M glibc.spec +:000000 100644 0000000 842bee3 A glibc-dso-sort-makefile-fail.patch +:100644 100644 84fbcff 928dca9 M glibc.spec commit 9633d3541e3e1eda7635f1c7531689f2eb45493a Author: Florian Weimer @@ -7628,8 +8762,8 @@ CommitDate: Wed Nov 17 13:43:22 2021 +0100 Temporarily patch glibc-sdt-headers.patch, to fix s390x build failure -:000000 100644 00000000 d5234396 A glibc-sdt-headers.patch -:100644 100644 07c61388 84fbcff4 M glibc.spec +:000000 100644 0000000 d523439 A glibc-sdt-headers.patch +:100644 100644 07c6138 84fbcff M glibc.spec commit a95e35d1eb6125bb6c8a95beebdcb993411eb1f5 Author: Florian Weimer @@ -7658,8 +8792,8 @@ CommitDate: Wed Nov 17 13:14:39 2021 +0100 - Update syscall lists for Linux 5.15 - s390: Use long branches across object boundaries (jgh instead of jh) -:100644 100644 c0de74bc 07c61388 M glibc.spec -:100644 100644 c2498fb8 908fcf7b M sources +:100644 100644 c0de74b 07c6138 M glibc.spec +:100644 100644 c2498fb 908fcf7 M sources commit b96753c45bdc7700f99222c6df87ab1737951caa Author: Arjun Shankar @@ -7677,8 +8811,8 @@ CommitDate: Tue Nov 16 09:53:27 2021 +0100 Reviewed-by: DJ Delorie -:100644 100644 aafa7419 40835d25 M glibc-cs-path.patch -:100644 100644 e738c504 c0de74bc M glibc.spec +:100644 100644 aafa741 40835d2 M glibc-cs-path.patch +:100644 100644 e738c50 c0de74b M glibc.spec commit e879893635e37842a40d7f6bfc78cebac91d499f Author: Arjun Shankar @@ -7694,8 +8828,8 @@ CommitDate: Wed Nov 10 14:57:42 2021 +0100 - Fix build a chec failures after b05fae4d8e34 - elf: Use the minimal malloc on tunables_strdup -:100644 100644 890b0dfc e738c504 M glibc.spec -:100644 100644 db8e5e64 c2498fb8 M sources +:100644 100644 890b0df e738c50 M glibc.spec +:100644 100644 db8e5e6 c2498fb M sources commit 1f6af199784d4788bb1e53821c40af99f36dd0fe Author: Arjun Shankar @@ -7724,8 +8858,8 @@ CommitDate: Mon Nov 8 22:16:31 2021 +0100 - gconv: Do not emit spurious NUL character in ISO-2022-JP-3 (bug 28524) - [powerpc] Tighten contraints for asm constant parameters -:100644 100644 a83e133b 890b0dfc M glibc.spec -:100644 100644 652242dd db8e5e64 M sources +:100644 100644 a83e133 890b0df M glibc.spec +:100644 100644 652242d db8e5e6 M sources commit 7badc6b64384ac7cf4481c2629895c19d3e85bd9 Author: Patsy Griffin @@ -7751,8 +8885,8 @@ CommitDate: Wed Nov 3 11:40:29 2021 -0400 - x86-64: Remove Prefer_AVX2_STRCMP - x86-64: Improve EVEX strcmp with masked load -:100644 100644 86b74178 a83e133b M glibc.spec -:100644 100644 2c6a823d 652242dd M sources +:100644 100644 86b7417 a83e133 M glibc.spec +:100644 100644 2c6a823 652242d M sources commit ea7e5402a9d7e6b19f390f134a40bdc74e9a1bc8 Author: DJ Delorie @@ -7799,8 +8933,8 @@ CommitDate: Fri Oct 29 13:37:45 2021 -0400 - linux: Fix a possibly non-constant expression in _Static_assert - x86-64: Add sysdeps/x86_64/fpu/Makeconfig -:100644 100644 73c7e1e1 86b74178 M glibc.spec -:100644 100644 956c1790 2c6a823d M sources +:100644 100644 73c7e1e 86b7417 M glibc.spec +:100644 100644 956c179 2c6a823 M sources commit 8deb7f51cc79c72aa9f65de803a8b7c486ff2730 Author: Carlos O'Donell @@ -7833,9 +8967,9 @@ CommitDate: Wed Oct 20 17:35:57 2021 -0400 - x86-64: Add test-vector-abi.h/test-vector-abi-sincos.h - elf: Fix dynamic-link.h usage on rtld.c -:100644 000000 b53fdd02 00000000 D glibc-ld-readonly-revert.patch -:100644 100644 172b133e 73c7e1e1 M glibc.spec -:100644 100644 f5338189 956c1790 M sources +:100644 000000 b53fdd0 0000000 D glibc-ld-readonly-revert.patch +:100644 100644 172b133 73c7e1e M glibc.spec +:100644 100644 f533818 956c179 M sources commit 09d2e07988b000058cc9b4f8736369b6d8c8e3e8 Author: Martin Cermak @@ -7849,7 +8983,7 @@ CommitDate: Mon Oct 18 09:02:15 2021 +0200 downstream. Reflecting that change here to make future syncs easier. -:100644 100644 6b9d39de 4776906c M gating.yaml +:100644 100644 6b9d39d 4776906 M gating.yaml commit 4d06523dc151e6e6ebaa976e074b0dcaf8c657db Author: Arjun Shankar @@ -7859,7 +8993,7 @@ CommitDate: Thu Oct 14 13:59:17 2021 +0200 Update sources file -:100644 100644 cf05965d f5338189 M sources +:100644 100644 cf05965 f533818 M sources commit e7c31c4b27b37af87aad756c52bcd27465e0c31b Author: Arjun Shankar @@ -7892,8 +9026,8 @@ CommitDate: Thu Oct 14 02:33:34 2021 +0200 - io: Fix ftw internal realloc buffer (BZ #28126) - Fix subscript error with odd TZif file [BZ #28338] -:100644 100644 7c2bbf61 b53fdd02 M glibc-ld-readonly-revert.patch -:100644 100644 030e2457 172b133e M glibc.spec +:100644 100644 7c2bbf6 b53fdd0 M glibc-ld-readonly-revert.patch +:100644 100644 030e245 172b133 M glibc.spec commit 7c3f6c985ee4041de78b82313e51f6b1eef6135c Author: Carlos O'Donell @@ -7922,8 +9056,8 @@ CommitDate: Thu Oct 7 10:03:24 2021 -0400 - io: Do not skip timestamps tests for 32-bit time_t - Update to Unicode 14.0.0 [BZ #28390] -:100644 100644 9806f78e 030e2457 M glibc.spec -:100644 100644 3943053a cf05965d M sources +:100644 100644 9806f78 030e245 M glibc.spec +:100644 100644 3943053 cf05965 M sources commit a463a91457ad2ffcd6e21680c25badfb8aee6917 Author: Florian Weimer @@ -7950,8 +9084,8 @@ CommitDate: Fri Oct 1 18:47:58 2021 +0200 - elf: Copy l_addr/l_ld when adding ld.so to a new namespace - powerpc: Fix unrecognized instruction errors with recent binutils -:100644 100644 f9ba0ce6 9806f78e M glibc.spec -:100644 100644 1ed95269 3943053a M sources +:100644 100644 f9ba0ce 9806f78 M glibc.spec +:100644 100644 1ed9526 3943053 M sources commit be77dd73c8c121fdfbac29fc772d929348a05381 Author: Florian Weimer @@ -7990,11 +9124,11 @@ CommitDate: Wed Sep 29 20:32:21 2021 +0200 - vfprintf: Unify argument handling in process_arg - vfprintf: Handle floating-point cases outside of process_arg macro -:100644 000000 528156a2 00000000 D glibc-rh1992702-1.patch -:100644 000000 40fe5562 00000000 D glibc-rh1992702-2.patch -:100644 000000 e9448740 00000000 D glibc-rh1992702-3.patch -:100644 100644 34e78a53 f9ba0ce6 M glibc.spec -:100644 100644 e67f346b 1ed95269 M sources +:100644 000000 528156a 0000000 D glibc-rh1992702-1.patch +:100644 000000 40fe556 0000000 D glibc-rh1992702-2.patch +:100644 000000 e944874 0000000 D glibc-rh1992702-3.patch +:100644 100644 34e78a5 f9ba0ce M glibc.spec +:100644 100644 e67f346 1ed9526 M sources commit 35da738a8eacc69a01d04c19f0fb7092761f2aca Author: Florian Weimer @@ -8004,8 +9138,8 @@ CommitDate: Thu Sep 23 12:36:39 2021 +0200 Fix ppc64le build failure by reverting DL_RO_DYN_SECTION removal -:000000 100644 00000000 7c2bbf61 A glibc-ld-readonly-revert.patch -:100644 100644 14a1898d 34e78a53 M glibc.spec +:000000 100644 0000000 7c2bbf6 A glibc-ld-readonly-revert.patch +:100644 100644 14a1898 34e78a5 M glibc.spec commit 9fe7756cf7b1ad466d6ace2f34060493519272d4 Author: Florian Weimer @@ -8041,8 +9175,8 @@ CommitDate: Thu Sep 23 11:00:44 2021 +0200 - Redirect fma calls to __fma in libm - time: Fix compile error in itimer test affecting hurd -:100644 100644 5bfa6e95 14a1898d M glibc.spec -:100644 100644 e7dd92d1 e67f346b M sources +:100644 100644 5bfa6e9 14a1898 M glibc.spec +:100644 100644 e7dd92d e67f346 M sources commit 8132174436c5250dae702512b1e353dcb7e08292 Author: Martin Cermak @@ -8054,7 +9188,7 @@ CommitDate: Thu Sep 16 13:47:47 2021 +0200 Enable baseos-qe.brew-build.scratch-build.validation in RHEL-9 gating. -:100644 100644 770f4818 6b9d39de M gating.yaml +:100644 100644 770f481 6b9d39d M gating.yaml commit 7d28ddf24cec1be239b3f6dcf6cd1f281ff0be48 Author: Florian Weimer @@ -8064,10 +9198,10 @@ CommitDate: Wed Sep 15 12:09:06 2021 +0200 Use system CPU count for sysconf(_SC_NPROCESSORS_*) (#1992702) -:000000 100644 00000000 528156a2 A glibc-rh1992702-1.patch -:000000 100644 00000000 40fe5562 A glibc-rh1992702-2.patch -:000000 100644 00000000 e9448740 A glibc-rh1992702-3.patch -:100644 100644 5d009ac2 5bfa6e95 M glibc.spec +:000000 100644 0000000 528156a A glibc-rh1992702-1.patch +:000000 100644 0000000 40fe556 A glibc-rh1992702-2.patch +:000000 100644 0000000 e944874 A glibc-rh1992702-3.patch +:100644 100644 5d009ac 5bfa6e9 M glibc.spec commit 4476c131c309524b7b68c4bb85ad0f758c2faee7 Author: Florian Weimer @@ -8094,8 +9228,8 @@ CommitDate: Wed Sep 15 11:23:02 2021 +0200 - _Static_assert needs two arguments for compatibility with GCC before 9 - testrun.sh: Add support for --tool=rpctrace -:100644 100644 2de31175 5d009ac2 M glibc.spec -:100644 100644 8c6fdd26 e7dd92d1 M sources +:100644 100644 2de3117 5d009ac M glibc.spec +:100644 100644 8c6fdd2 e7dd92d M sources commit b7fe0018cc002dfd2b6554859ef8bb31fba5e63b Author: Martin Cermak @@ -8110,7 +9244,7 @@ CommitDate: Mon Sep 13 10:29:04 2021 +0200 [1] https://pagure.io/fedora-ci/general/issue/263 -:100644 100644 9be35967 770f4818 M gating.yaml +:100644 100644 9be3596 770f481 M gating.yaml commit 891183e565daa6ae87388e2c6dbb25225216e28d Author: Patsy Griffin @@ -8140,9 +9274,9 @@ CommitDate: Fri Sep 10 11:23:26 2021 -0400 - hurd msync: Drop bogus test - hurd: Fix typo in msync -:100644 000000 a4cf357a 00000000 D glibc-c-utf8-locale.patch -:100644 100644 325ca09f 2de31175 M glibc.spec -:100644 100644 acd9adaa 8c6fdd26 M sources +:100644 000000 a4cf357 0000000 D glibc-c-utf8-locale.patch +:100644 100644 325ca09 2de3117 M glibc.spec +:100644 100644 acd9ada 8c6fdd2 M sources commit 80230e6916ab77188e0fa5504e0cb31569615605 Author: Florian Weimer @@ -8165,8 +9299,8 @@ CommitDate: Tue Aug 31 11:34:53 2021 +0200 - llio.texi: Wording fixes in description of closefrom() - Fix error message in memmove test to display correct src pointer -:100644 100644 e343bfd4 325ca09f M glibc.spec -:100644 100644 f7fc76f6 acd9adaa M sources +:100644 100644 e343bfd 325ca09 M glibc.spec +:100644 100644 f7fc76f acd9ada M sources commit 9e3889df746bd384303ebc964eb8e66d2fad44ed Author: Arjun Shankar @@ -8196,8 +9330,8 @@ CommitDate: Wed Aug 25 22:54:04 2021 +0200 - riscv: Drop reliance on _GLOBAL_OFFSET_TABLE_[0] - Remove sysdeps/*/tls-macros.h -:100644 100644 59fd960c e343bfd4 M glibc.spec -:100644 100644 4f7803b3 f7fc76f6 M sources +:100644 100644 59fd960 e343bfd M glibc.spec +:100644 100644 4f7803b f7fc76f M sources commit 94957f065594ed4bd7f6d36319e98fd97dc131f1 Author: Siddhesh Poyarekar @@ -8212,7 +9346,7 @@ CommitDate: Tue Aug 24 19:30:06 2021 +0530 Resolves: #1985048 -:100644 100644 8e1fd21c 59fd960c M glibc.spec +:100644 100644 8e1fd21 59fd960 M glibc.spec commit a5d3c595e7767f442428beef59739da22d0500f0 Author: DJ Delorie @@ -8231,8 +9365,8 @@ CommitDate: Tue Aug 17 16:41:43 2021 -0400 - mips: increase stack alignment in clone to match the ABI - mips: align stack in clone [BZ #28223] -:100644 100644 a9955775 8e1fd21c M glibc.spec -:100644 100644 7c27b6f6 4f7803b3 M sources +:100644 100644 a995577 8e1fd21 M glibc.spec +:100644 100644 7c27b6f 4f7803b M sources commit 420fe1da6624fd9e890c62db8b24fd00ee41b41a Author: Arjun Shankar @@ -8282,8 +9416,8 @@ CommitDate: Thu Aug 12 15:29:32 2021 +0200 - Remove obsolete comments/name from acos-inputs, since slow path was removed. - Open master branch for glibc 2.35 development -:100644 100644 ff5457cc a9955775 M glibc.spec -:100644 100644 e59ed2f3 7c27b6f6 M sources +:100644 100644 ff5457c a995577 M glibc.spec +:100644 100644 e59ed2f 7c27b6f M sources commit 1ecf8017eb2435f7cd973f5bbb5d6128c37f95f9 Author: Florian Weimer @@ -8302,8 +9436,8 @@ CommitDate: Mon Aug 2 08:08:11 2021 +0200 - NEWS: Fix typos, grammar, and missing words - elf: Fix audit regression -:100644 100644 234f12bf ff5457cc M glibc.spec -:100644 100644 21eb817a e59ed2f3 M sources +:100644 100644 234f12b ff5457c M glibc.spec +:100644 100644 21eb817 e59ed2f M sources commit ca0613665ce6e1b4e92dadd3660ad39cf3dc5f3e Author: Siddhesh Poyarekar @@ -8316,7 +9450,7 @@ CommitDate: Sat Jul 31 01:04:25 2021 +0530 Resolves: #1988344 -:100644 100644 3a627e0f 234f12bf M glibc.spec +:100644 100644 3a627e0 234f12b M glibc.spec commit 88d9dfdf11fa2b527b89daaaa72dd38475a5cea6 Author: Florian Weimer @@ -8338,8 +9472,8 @@ CommitDate: Thu Jul 29 09:43:22 2021 +0200 - manual: Drop the .so suffix in libc_malloc_debug description - hurd: _Fork: unlock malloc before calling fork child hooks -:100644 100644 17c9a042 3a627e0f M glibc.spec -:100644 100644 97bee88b 21eb817a M sources +:100644 100644 17c9a04 3a627e0 M glibc.spec +:100644 100644 97bee88 21eb817 M sources commit bcce160baadc1d0be7bf91f80b1dd597528f03e7 Author: Florian Weimer @@ -8349,9 +9483,9 @@ CommitDate: Tue Jul 27 18:57:57 2021 +0200 Revert to old C.UTF-8 locale -:100644 100644 03d5983a a4cf357a M glibc-c-utf8-locale.patch -:100644 000000 9b90a223 00000000 D glibc-c-utf8-strcmp_collation.patch -:100644 100644 1f933976 17c9a042 M glibc.spec +:100644 100644 03d5983 a4cf357 M glibc-c-utf8-locale.patch +:100644 000000 9b90a22 0000000 D glibc-c-utf8-strcmp_collation.patch +:100644 100644 1f93397 17c9a04 M glibc.spec commit 51ca5d3334c3cd353de15ca124054eec7704b3cc Author: Siddhesh Poyarekar @@ -8364,7 +9498,7 @@ CommitDate: Mon Jul 26 20:32:19 2021 +0530 Bring back dependency weakening on glibc-gconv-extra and have glibc conditionally depend on it if redhat-rpm-config is present. -:100644 100644 ec22ca46 1f933976 M glibc.spec +:100644 100644 ec22ca4 1f93397 M glibc.spec commit 8f6143c8268edeeec027d2680fb67000d19cc13e Author: Florian Weimer @@ -8374,9 +9508,9 @@ CommitDate: Mon Jul 26 09:26:07 2021 +0200 Switch to new version of C.UTF-8 locale -:100644 100644 a4cf357a 03d5983a M glibc-c-utf8-locale.patch -:000000 100644 00000000 9b90a223 A glibc-c-utf8-strcmp_collation.patch -:100644 100644 51b90eaa ec22ca46 M glibc.spec +:100644 100644 a4cf357 03d5983 M glibc-c-utf8-locale.patch +:000000 100644 0000000 9b90a22 A glibc-c-utf8-strcmp_collation.patch +:100644 100644 51b90ea ec22ca4 M glibc.spec commit c4a47573b460e773fe70b2d73777db42ce241a70 Author: Florian Weimer @@ -8391,8 +9525,8 @@ CommitDate: Mon Jul 26 07:46:13 2021 +0200 - Exclude static tests for mcheck and malloc-check - i386: Regenerate ulps -:100644 100644 17aed54c 51b90eaa M glibc.spec -:100644 100644 7e6ef9c3 97bee88b M sources +:100644 100644 17aed54 51b90ea M glibc.spec +:100644 100644 7e6ef9c 97bee88 M sources commit 95bdbb905ded5e2d0ebc4c14d331ba3232e75310 Author: Florian Weimer @@ -8408,8 +9542,8 @@ CommitDate: Sat Jul 24 17:24:48 2021 +0200 - x86: Install [BZ #27958] - Fix build and tests with --disable-tunables -:100644 100644 01dc5a26 17aed54c M glibc.spec -:100644 100644 a07b3f7b 7e6ef9c3 M sources +:100644 100644 01dc5a2 17aed54 M glibc.spec +:100644 100644 a07b3f7 7e6ef9c M sources commit 44bdf7a54c651e027445ed4e2426d964b93ba78b Author: Florian Weimer @@ -8419,7 +9553,7 @@ CommitDate: Sat Jul 24 12:23:35 2021 +0200 Remove both old and new library names in glibc-hwcaps removal (#1983677) -:100644 100644 2022d4e2 01dc5a26 M glibc.spec +:100644 100644 2022d4e 01dc5a2 M glibc.spec commit ac81c2f6e66487ef135003e60ea5e58abd324769 Author: Florian Weimer @@ -8450,8 +9584,8 @@ CommitDate: Fri Jul 23 09:44:00 2021 +0200 - ARC: elf: make type safe - ARC: fp: (micro)optimize FPU_STATUS read by eliding FWE bit clearing -:100644 100644 16ac0d90 2022d4e2 M glibc.spec -:100644 100644 43c35af6 a07b3f7b M sources +:100644 100644 16ac0d9 2022d4e M glibc.spec +:100644 100644 43c35af a07b3f7 M sources commit d299f6bf485bbd32ed5fa09b57f4c3cf535b4ced Author: Florian Weimer @@ -8463,7 +9597,7 @@ CommitDate: Fri Jul 23 09:34:28 2021 +0200 This reverts commit 455e25392f9b0b3565df23454f1fbc3f59954363. -:100644 100644 7e95adf7 16ac0d90 M glibc.spec +:100644 100644 7e95adf 16ac0d9 M glibc.spec commit d97901cc982c64767e09c11eea0e8e61cabfa7e5 Author: Fedora Release Engineering @@ -8475,7 +9609,7 @@ CommitDate: Thu Jul 22 01:48:30 2021 +0000 Signed-off-by: Fedora Release Engineering -:100644 100644 15b251ff 7e95adf7 M glibc.spec +:100644 100644 15b251f 7e95adf M glibc.spec commit 455e25392f9b0b3565df23454f1fbc3f59954363 Author: Florian Weimer @@ -8485,7 +9619,7 @@ CommitDate: Wed Jul 21 22:35:57 2021 +0200 Add kludge to stop auto-rebuild during the mass rebuild -:100644 100644 1c1faccd 15b251ff M glibc.spec +:100644 100644 1c1facc 15b251f M glibc.spec commit 0dd019042191140d2ae461c0ed4c6002f1080e5e Author: Florian Weimer @@ -8509,8 +9643,8 @@ CommitDate: Wed Jul 21 13:17:45 2021 +0200 - elf: Fix tst-cpu-features-cpuinfo on some AMD systems (BZ #28090) - i386: Add the clone3 wrapper -:100644 100644 4d79ea73 1c1faccd M glibc.spec -:100644 100644 6dc73541 43c35af6 M sources +:100644 100644 4d79ea7 1c1facc M glibc.spec +:100644 100644 6dc7354 43c35af M sources commit 42e2f742693386118fbb0dfeff89f12e6a0be8e7 Author: Florian Weimer @@ -8520,7 +9654,7 @@ CommitDate: Mon Jul 19 15:59:29 2021 +0200 Remove glibc-hwcaps multilibs on upgrade (#1983677) -:100644 100644 2f40c6a8 4d79ea73 M glibc.spec +:100644 100644 2f40c6a 4d79ea7 M glibc.spec commit 9b46862a3b7bc95688ba07c81cb7bb86231ecda1 Author: Florian Weimer @@ -8577,8 +9711,8 @@ CommitDate: Mon Jul 19 10:35:25 2021 +0200 - posix: Ignore non opened files on tst-spawn5 - mcheck: Align struct hdr to MALLOC_ALIGNMENT bytes [BZ #28068] -:100644 100644 4959bb20 2f40c6a8 M glibc.spec -:100644 100644 5f03c726 6dc73541 M sources +:100644 100644 4959bb2 2f40c6a M glibc.spec +:100644 100644 5f03c72 6dc7354 M sources commit d543beb3de2dc7822948d51b552f006a8986def1 Author: Siddhesh Poyarekar @@ -8594,7 +9728,7 @@ CommitDate: Thu Jul 15 20:28:22 2021 +0530 - Rearrange file list command so that gconv-modules.cache is no longer marked as %config -:100644 100644 3a865058 4959bb20 M glibc.spec +:100644 100644 3a86505 4959bb2 M glibc.spec commit 7d6321464f0a194a232c2f5b5f84780570ddfa30 Author: Florian Weimer @@ -8604,7 +9738,7 @@ CommitDate: Tue Jul 13 16:01:01 2021 +0200 Fix incorrect references to #1975895 in %changelog -:100644 100644 7e2b8516 3a865058 M glibc.spec +:100644 100644 7e2b851 3a86505 M glibc.spec commit 6534cdc8bf66363b66a72e13444a19fac2df60d7 Author: Florian Weimer @@ -8614,7 +9748,7 @@ CommitDate: Tue Jul 13 15:32:56 2021 +0200 Perform systemd re-exec even if glibc.i686 is installed -:100644 100644 63f165e6 7e2b8516 M glibc.spec +:100644 100644 63f165e 7e2b851 M glibc.spec commit 1c62f46f1696560b81ec14b88bf70f24a8faae77 Author: Florian Weimer @@ -8624,7 +9758,7 @@ CommitDate: Tue Jul 13 14:13:46 2021 +0200 Re-exec systemd on upgrades -:100644 100644 861748eb 63f165e6 M glibc.spec +:100644 100644 861748e 63f165e M glibc.spec commit 0c7c3bcb8d8606a92c85e0d940c3555e93521cb5 Author: Florian Weimer @@ -8678,8 +9812,8 @@ CommitDate: Mon Jul 12 23:20:23 2021 +0200 - Update kernel version to 5.13 in tst-mman-consts.py - tests-exclude-mcheck: Fix typo -:100644 100644 88aff453 861748eb M glibc.spec -:100644 100644 56ace92f 5f03c726 M sources +:100644 100644 88aff45 861748e M glibc.spec +:100644 100644 56ace92 5f03c72 M sources commit f63ef9c9d9c165f53d15f88411666467fea65f19 Author: Florian Weimer @@ -8704,8 +9838,8 @@ CommitDate: Wed Jul 7 09:38:01 2021 +0200 - linux: Consolidate Linux getsockopt implementation - manual: fix description for preadv() -:100644 100644 3e527f37 88aff453 M glibc.spec -:100644 100644 50f682dd 56ace92f M sources +:100644 100644 3e527f3 88aff45 M glibc.spec +:100644 100644 50f682d 56ace92 M sources commit 3d96f5f94f3007f51ac2bb52ee65ab3cc19d24b8 Author: Florian Weimer @@ -8720,8 +9854,8 @@ CommitDate: Tue Jul 6 14:35:13 2021 +0200 - linux: Check for null value msghdr struct before use - elf: Call free from base namespace on error in dl-libc.c [BZ #27646] -:100644 100644 dac3102e 3e527f37 M glibc.spec -:100644 100644 13fc8e94 50f682dd M sources +:100644 100644 dac3102 3e527f3 M glibc.spec +:100644 100644 13fc8e9 50f682d M sources commit 8479d6740a4c2f202d58bd56e3db7a1eeea46404 Author: Florian Weimer @@ -8751,8 +9885,8 @@ CommitDate: Mon Jul 5 06:00:05 2021 +0200 - AArch64: Add hp-timing.h - AArch64: Improve strnlen performance -:100644 100644 a894b21e dac3102e M glibc.spec -:100644 100644 ebd258df 13fc8e94 M sources +:100644 100644 a894b21 dac3102 M glibc.spec +:100644 100644 ebd258d 13fc8e9 M sources commit b4f030ae95a143b37ab8a667010b592846de39cb Author: Florian Weimer @@ -8767,8 +9901,8 @@ CommitDate: Wed Jun 30 17:51:11 2021 +0200 - Linux: Avoid calling malloc indirectly from __get_nprocs (#1975693) - Use Linux 5.13 in build-many-glibcs.py -:100644 100644 821f3146 a894b21e M glibc.spec -:100644 100644 ab81f42b ebd258df M sources +:100644 100644 821f314 a894b21 M glibc.spec +:100644 100644 ab81f42 ebd258d M sources commit afd298e6ebffb07158546218e910660b157ec928 Author: Florian Weimer @@ -8789,9 +9923,9 @@ CommitDate: Wed Jun 30 10:05:05 2021 +0200 - s390x: Update math: redirect roundeven function - posix: Add _Fork [BZ #4737] -:100644 000000 087d4ccb 00000000 D glibc-s390x-roundeven.patch -:100644 100644 bfdb3e95 821f3146 M glibc.spec -:100644 100644 8df4cdfb ab81f42b M sources +:100644 000000 087d4cc 0000000 D glibc-s390x-roundeven.patch +:100644 100644 bfdb3e9 821f314 M glibc.spec +:100644 100644 8df4cdf ab81f42 M sources commit d7e27f58954348ed3eccb128eaf8abbda87aa3e7 Author: Florian Weimer @@ -8801,7 +9935,7 @@ CommitDate: Mon Jun 28 22:47:46 2021 +0200 Move librt.a to glibc-devel (#1977058) -:100644 100644 5e78f8fc bfdb3e95 M glibc.spec +:100644 100644 5e78f8f bfdb3e9 M glibc.spec commit 2be319ff45befffec78c101c3fcf441bb2ea362f Author: Florian Weimer @@ -8811,7 +9945,7 @@ CommitDate: Mon Jun 28 19:55:57 2021 +0200 Upload glibc-2.33.9000-826-gdd45734e32.tar.xz -:100644 100644 661427b2 8df4cdfb M sources +:100644 100644 661427b 8df4cdf M sources commit 21ebc4cbaa6f44f328d02a2e57f21297e38566c5 Author: Florian Weimer @@ -8845,16 +9979,16 @@ CommitDate: Mon Jun 28 19:45:06 2021 +0200 - x86_64: roundeven with sse4.1 support - math: redirect roundeven function -:100644 000000 4b18758d 00000000 D glibc-iconvconfig-corruption.patch -:100644 000000 b40f0260 00000000 D glibc-libthread_db-dynsym-1.patch -:100644 000000 0ecd4ba5 00000000 D glibc-libthread_db-dynsym-2.patch -:100644 000000 1ce2ced7 00000000 D glibc-libthread_db-dynsym-3.patch -:100644 000000 767b6a2b 00000000 D glibc-nosymlink-1.patch -:100644 000000 92c330ba 00000000 D glibc-nosymlink-2.patch -:100644 000000 07d66251 00000000 D glibc-nosymlink-3.patch -:100644 000000 7a292f02 00000000 D glibc-nosymlink-4.patch -:000000 100644 00000000 087d4ccb A glibc-s390x-roundeven.patch -:100644 100644 d3131414 5e78f8fc M glibc.spec +:100644 000000 4b18758 0000000 D glibc-iconvconfig-corruption.patch +:100644 000000 b40f026 0000000 D glibc-libthread_db-dynsym-1.patch +:100644 000000 0ecd4ba 0000000 D glibc-libthread_db-dynsym-2.patch +:100644 000000 1ce2ced 0000000 D glibc-libthread_db-dynsym-3.patch +:100644 000000 767b6a2 0000000 D glibc-nosymlink-1.patch +:100644 000000 92c330b 0000000 D glibc-nosymlink-2.patch +:100644 000000 07d6625 0000000 D glibc-nosymlink-3.patch +:100644 000000 7a292f0 0000000 D glibc-nosymlink-4.patch +:000000 100644 0000000 087d4cc A glibc-s390x-roundeven.patch +:100644 100644 d313141 5e78f8f M glibc.spec commit d3fad65ba1c3c9d1cfa395cb93243962a9632cf4 Author: Florian Weimer @@ -8864,11 +9998,11 @@ CommitDate: Mon Jun 28 12:33:02 2021 +0200 Switch to new version of libthread_db .dynsym patch -:000000 100644 00000000 b40f0260 A glibc-libthread_db-dynsym-1.patch -:000000 100644 00000000 0ecd4ba5 A glibc-libthread_db-dynsym-2.patch -:000000 100644 00000000 1ce2ced7 A glibc-libthread_db-dynsym-3.patch -:100644 000000 0fdc8c42 00000000 D glibc-libthread_db-dynsym.patch -:100644 100644 3b97f3fe d3131414 M glibc.spec +:000000 100644 0000000 b40f026 A glibc-libthread_db-dynsym-1.patch +:000000 100644 0000000 0ecd4ba A glibc-libthread_db-dynsym-2.patch +:000000 100644 0000000 1ce2ced A glibc-libthread_db-dynsym-3.patch +:100644 000000 0fdc8c4 0000000 D glibc-libthread_db-dynsym.patch +:100644 100644 3b97f3f d313141 M glibc.spec commit 5b63da3fa54fab887d5ffcaec08eee200cc73b39 Author: Florian Weimer @@ -8878,8 +10012,8 @@ CommitDate: Mon Jun 28 09:29:49 2021 +0200 Further .symtab adjustment: Keep all __GI_* symbols (#1975859) -:100644 100644 3ef3e2d0 3b97f3fe M glibc.spec -:100644 100644 84b32028 6a558df9 M wrap-find-debuginfo.sh +:100644 100644 3ef3e2d 3b97f3f M glibc.spec +:100644 100644 84b3202 6a558df M wrap-find-debuginfo.sh commit 4f2dd301cc557d291f63f1f218c9b3766d04fc44 Author: Florian Weimer @@ -8889,8 +10023,8 @@ CommitDate: Mon Jun 28 07:49:20 2021 +0200 Keep most of .symtab in libc.so.6 (#1975859) -:100644 100644 7f0ff386 3ef3e2d0 M glibc.spec -:100644 100644 8c42c9d3 84b32028 M wrap-find-debuginfo.sh +:100644 100644 7f0ff38 3ef3e2d M glibc.spec +:100644 100644 8c42c9d 84b3202 M wrap-find-debuginfo.sh commit 40177ead738387de6b83b066e0a8e508f5f55abb Author: Martin Cermak @@ -8900,7 +10034,7 @@ CommitDate: Mon Jun 28 06:43:17 2021 +0200 gating.yaml: Allow smooth 1:1 sync between Fedora and c9s -:100644 100644 ac6d3d80 9be35967 M gating.yaml +:100644 100644 ac6d3d8 9be3596 M gating.yaml commit 0034c1747f089ac1974aa88e9fd7e259fb38c504 Author: Florian Weimer @@ -8910,8 +10044,8 @@ CommitDate: Sun Jun 27 19:07:54 2021 +0200 Apply emergency patch to fix iconvconfig corruption -:000000 100644 00000000 4b18758d A glibc-iconvconfig-corruption.patch -:100644 100644 42056ed8 7f0ff386 M glibc.spec +:000000 100644 0000000 4b18758 A glibc-iconvconfig-corruption.patch +:100644 100644 42056ed 7f0ff38 M glibc.spec commit 814203878324077ada1b876a39b98b643686fa5c Author: Florian Weimer @@ -8921,8 +10055,8 @@ CommitDate: Sun Jun 27 18:17:14 2021 +0200 Adjust glibc.req so that egrep does not cause eu-readelf to fail -:100644 100644 3f922d1c 9fb7f768 M glibc.req.in -:100644 100644 77121743 42056ed8 M glibc.spec +:100644 100644 3f922d1 9fb7f76 M glibc.req.in +:100644 100644 7712174 42056ed M glibc.spec commit 22321f2b3131a7e9dd312a42eafcb70bd37b4abf Author: Florian Weimer @@ -9012,10 +10146,10 @@ CommitDate: Sun Jun 27 17:36:14 2021 +0200 - elf: Use _dl_catch_error from base namespace in dl-libc.c [BZ #27646] - Makeconfig: Fix time64-compat.mk target -:100644 100644 76080d46 07d66251 M glibc-nosymlink-3.patch -:100644 000000 003f495a 00000000 D glibc-revert-dtv-gap-reuse.patch -:100644 100644 55682309 77121743 M glibc.spec -:100644 100644 f70d44fd 661427b2 M sources +:100644 100644 76080d4 07d6625 M glibc-nosymlink-3.patch +:100644 000000 003f495 0000000 D glibc-revert-dtv-gap-reuse.patch +:100644 100644 5568230 7712174 M glibc.spec +:100644 100644 f70d44f 661427b M sources commit 700394c8ed3c3db06fe2c3b4667a33896d3b1e74 Author: Florian Weimer @@ -9025,9 +10159,9 @@ CommitDate: Sun Jun 27 15:11:49 2021 +0200 Add automatic requires if building against glibc development snapshots -:000000 100644 00000000 fddfd91f A glibc.attr -:000000 100644 00000000 3f922d1c A glibc.req.in -:100644 100644 07018c46 55682309 M glibc.spec +:000000 100644 0000000 fddfd91 A glibc.attr +:000000 100644 0000000 3f922d1 A glibc.req.in +:100644 100644 07018c4 5568230 M glibc.spec commit 947a02c4adfd688958d54b46e5d30891e6ef2b66 Author: Carlos O'Donell @@ -9037,8 +10171,8 @@ CommitDate: Thu Jun 24 11:32:41 2021 -0400 Fix thread local storage corruption (#1974970) -:000000 100644 00000000 003f495a A glibc-revert-dtv-gap-reuse.patch -:100644 100644 9aaf4297 07018c46 M glibc.spec +:000000 100644 0000000 003f495 A glibc-revert-dtv-gap-reuse.patch +:100644 100644 9aaf429 07018c4 M glibc.spec commit 063fe63eafa95997fdb27c1015629aa64c21758d Author: Siddhesh Poyarekar @@ -9051,7 +10185,7 @@ CommitDate: Tue Jun 22 19:56:05 2021 +0530 Have glibc require glibc-gconv-extra for now until we figure out a way to do this with minimal external impact. -:100644 100644 4c530eae 9aaf4297 M glibc.spec +:100644 100644 4c530ea 9aaf429 M glibc.spec commit c20fde6a69e73fd208df64f92a2bc221f058dfed Author: Florian Weimer @@ -9061,7 +10195,7 @@ CommitDate: Fri Jun 18 16:13:03 2021 +0200 Make glibc-all-langpacks require glibc-gconv-extra in buildroots (#1973663) -:100644 100644 a28fff85 4c530eae M glibc.spec +:100644 100644 a28fff8 4c530ea M glibc.spec commit 52d094802284787ac06b100850f05b76ac81d5de Author: Florian Weimer @@ -9071,8 +10205,8 @@ CommitDate: Thu Jun 17 20:31:32 2021 +0200 Export libthread_db symbols under GLBIC_PRIVATE (#1965374) -:000000 100644 00000000 0fdc8c42 A glibc-libthread_db-dynsym.patch -:100644 100644 e862db76 a28fff85 M glibc.spec +:000000 100644 0000000 0fdc8c4 A glibc-libthread_db-dynsym.patch +:100644 100644 e862db7 a28fff8 M glibc.spec commit 14d5c92a57c6f554ff644aef25adbac9132eb37b Author: Florian Weimer @@ -9082,8 +10216,8 @@ CommitDate: Thu Jun 17 14:48:39 2021 +0200 Redo the crafted libc.so.6 symbol table for valgrind (#1965374) -:100644 100644 fd381df1 e862db76 M glibc.spec -:100644 100644 e73f2646 8c42c9d3 M wrap-find-debuginfo.sh +:100644 100644 fd381df e862db7 M glibc.spec +:100644 100644 e73f264 8c42c9d M wrap-find-debuginfo.sh commit 654f636b32883f699cef84cf1c1e00b8c1ce1e3f Author: Florian Weimer @@ -9097,8 +10231,8 @@ CommitDate: Thu Jun 17 10:31:26 2021 +0200 no longer matches the specially crafted copy of libc.so.6 with its minimal .symtab. -:100644 100644 39b4a2f8 fd381df1 M glibc.spec -:100644 100644 2f3be44c e73f2646 M wrap-find-debuginfo.sh +:100644 100644 39b4a2f fd381df M glibc.spec +:100644 100644 2f3be44 e73f264 M wrap-find-debuginfo.sh commit b5405a57adf55bca738cd3b991fef04dde3fb132 Author: Florian Weimer @@ -9108,8 +10242,8 @@ CommitDate: Thu Jun 17 09:31:35 2021 +0200 Drop glibc-rh697421.patch (#1972520) -:100644 000000 51b95dec 00000000 D glibc-rh697421.patch -:100644 100644 45731a0c 39b4a2f8 M glibc.spec +:100644 000000 51b95de 0000000 D glibc-rh697421.patch +:100644 100644 45731a0 39b4a2f M glibc.spec commit f184f15f918d86c54750c49f879108ae53828972 Author: Florian Weimer @@ -9119,7 +10253,7 @@ CommitDate: Wed Jun 16 06:59:22 2021 +0200 Update NVR for rebuild against rawhide gcc -:100644 100644 3717fad2 45731a0c M glibc.spec +:100644 100644 3717fad 45731a0 M glibc.spec commit 07558826b7f7b87a9509f778bd4463865999f886 Author: Florian Weimer @@ -9159,9 +10293,9 @@ CommitDate: Tue Jun 15 22:15:31 2021 +0200 - linux: mips: Split librt.abilist in n32 and n64 - Reinstate gconv-modules as the default configuration file -:100644 000000 3c062bf5 00000000 D glibc-gconv-modules-revert.patch -:100644 100644 54b9828f 3717fad2 M glibc.spec -:100644 100644 6ebe4cd8 f70d44fd M sources +:100644 000000 3c062bf 0000000 D glibc-gconv-modules-revert.patch +:100644 100644 54b9828 3717fad M glibc.spec +:100644 100644 6ebe4cd f70d44f M sources commit 027b24e17fbb32739576d0af2ec4c2c6fa51efa4 Author: Florian Weimer @@ -9171,8 +10305,8 @@ CommitDate: Tue Jun 15 17:09:29 2021 +0200 Preserve some symbols in libc.so.6's symtab (#1965374) -:100644 100644 2e36dc28 54b9828f M glibc.spec -:100644 100644 e73f2646 2f3be44c M wrap-find-debuginfo.sh +:100644 100644 2e36dc2 54b9828 M glibc.spec +:100644 100644 e73f264 2f3be44 M wrap-find-debuginfo.sh commit fd5c07ba69e580a16d1754e425530176a56b7982 Author: Florian Weimer @@ -9188,12 +10322,12 @@ CommitDate: Tue Jun 15 14:26:40 2021 +0200 File list construction and the find-debuginfo.sh wrapper had to be adjusted to cope with the changed file name patterns. -:000000 100644 00000000 767b6a2b A glibc-nosymlink-1.patch -:000000 100644 00000000 92c330ba A glibc-nosymlink-2.patch -:000000 100644 00000000 76080d46 A glibc-nosymlink-3.patch -:000000 100644 00000000 7a292f02 A glibc-nosymlink-4.patch -:100644 100644 d053268c 2e36dc28 M glibc.spec -:100644 100644 598c0d36 e73f2646 M wrap-find-debuginfo.sh +:000000 100644 0000000 767b6a2 A glibc-nosymlink-1.patch +:000000 100644 0000000 92c330b A glibc-nosymlink-2.patch +:000000 100644 0000000 76080d4 A glibc-nosymlink-3.patch +:000000 100644 0000000 7a292f0 A glibc-nosymlink-4.patch +:100644 100644 d053268 2e36dc2 M glibc.spec +:100644 100644 598c0d3 e73f264 M wrap-find-debuginfo.sh commit 222c141c852334d88daa9fa65c487466ec544f95 Author: Siddhesh Poyarekar @@ -9203,7 +10337,7 @@ CommitDate: Mon Jun 14 18:46:16 2021 +0530 Add a conditional dependency for glibc-gconv-extra.i686 in x86_64 -:100644 100644 6deb754f d053268c M glibc.spec +:100644 100644 6deb754 d053268 M glibc.spec commit 67583775413fec6e66684abd6baff3876b3a1938 Author: Siddhesh Poyarekar @@ -9250,10 +10384,10 @@ CommitDate: Mon Jun 14 11:15:03 2021 +0530 - nptl: Remove exit-thread.h - Improve test coverage of strnlen function -:000000 100644 00000000 3c062bf5 A glibc-gconv-modules-revert.patch -:100644 100644 e909aa19 51b95dec M glibc-rh697421.patch -:100644 100644 4ccd5e65 6deb754f M glibc.spec -:100644 100644 123606a4 6ebe4cd8 M sources +:000000 100644 0000000 3c062bf A glibc-gconv-modules-revert.patch +:100644 100644 e909aa1 51b95de M glibc-rh697421.patch +:100644 100644 4ccd5e6 6deb754 M glibc.spec +:100644 100644 123606a 6ebe4cd M sources commit 2f717376f3f5df88767275345fe9c4c0b75e1b3a Author: Florian Weimer @@ -9290,8 +10424,8 @@ CommitDate: Thu Jun 3 11:00:18 2021 +0200 - powerpc: Optimized memcmp for power10 - x86-64: Align child stack to 16 bytes [BZ #27902] -:100644 100644 fb5ce0fe 4ccd5e65 M glibc.spec -:100644 100644 9e9164b3 123606a4 M sources +:100644 100644 fb5ce0f 4ccd5e6 M glibc.spec +:100644 100644 9e9164b 123606a M sources commit d0b9f50b05c2465ddcc4ff526e3ed8e1eef98224 Author: Florian Weimer @@ -9317,9 +10451,9 @@ CommitDate: Mon May 31 10:12:30 2021 +0200 - config: Added HAVE_AARCH64_SVE_ASM for aarch64 - tst-mallinfo2.c: Use correct multiple for total variable -:100644 000000 05e4204f 00000000 D glibc-sigsetxid-sa_onstack.patch -:100644 100644 83dbab5b fb5ce0fe M glibc.spec -:100644 100644 db98691b 9e9164b3 M sources +:100644 000000 05e4204 0000000 D glibc-sigsetxid-sa_onstack.patch +:100644 100644 83dbab5 fb5ce0f M glibc.spec +:100644 100644 db98691 9e9164b M sources commit 65fd804c4ac128723fc19cf72322c135ddaa548c Author: Florian Weimer @@ -9329,8 +10463,8 @@ CommitDate: Wed May 26 08:25:19 2021 +0200 nptl: Install SIGSETXID handler with SA_ONSTACK [BZ #27914] -:000000 100644 00000000 05e4204f A glibc-sigsetxid-sa_onstack.patch -:100644 100644 abf3cddd 83dbab5b M glibc.spec +:000000 100644 0000000 05e4204 A glibc-sigsetxid-sa_onstack.patch +:100644 100644 abf3cdd 83dbab5 M glibc.spec commit 8aee7e3563ec434ce692fbce0b81ef9ba53c2a0a Author: Florian Weimer @@ -9351,10 +10485,10 @@ CommitDate: Tue May 25 17:44:47 2021 +0200 - Linking the main program with jemalloc causes sysconf to deadlock in audit mode (#1909920) -:100644 000000 c2869d2b 00000000 D glibc-upstream-amx-detection.patch -:100644 000000 db691ac5 00000000 D glibc-upstream-malloc-test-hang.patch -:100644 100644 2ac115d2 abf3cddd M glibc.spec -:100644 100644 575cd9f8 db98691b M sources +:100644 000000 c2869d2 0000000 D glibc-upstream-amx-detection.patch +:100644 000000 db691ac 0000000 D glibc-upstream-malloc-test-hang.patch +:100644 100644 2ac115d abf3cdd M glibc.spec +:100644 100644 575cd9f db98691 M sources commit f6682c9bac5872385b3caae0cd51fe3dbfcbb88f Author: Florian Weimer @@ -9364,7 +10498,7 @@ CommitDate: Fri May 21 19:45:03 2021 +0200 Reenable arch-full glibc-headers package for ELN (#1940686) -:100644 100644 b2242387 2ac115d2 M glibc.spec +:100644 100644 b224238 2ac115d M glibc.spec commit 79751685db592c8189aa104c725801fd0eec9dd4 Author: Florian Weimer @@ -9374,7 +10508,7 @@ CommitDate: Fri May 21 16:22:23 2021 +0200 wrap-find-debuginfo.sh: Enable separate debugedit program -:100644 100644 5ace7e6d 598c0d36 M wrap-find-debuginfo.sh +:100644 100644 5ace7e6 598c0d3 M wrap-find-debuginfo.sh commit 3af4a4120338d4310da932523f827a877dd3808b Author: Florian Weimer @@ -9384,7 +10518,7 @@ CommitDate: Fri May 21 16:05:18 2021 +0200 glibc-2.33.9000-7.fc35 -:100644 100644 fea40776 b2242387 M glibc.spec +:100644 100644 fea4077 b224238 M glibc.spec commit b84da5c20eeaddbeb9c95f5ff72884ccbc0b3ad7 Author: Jeremy Linton @@ -9402,7 +10536,7 @@ CommitDate: Fri May 21 14:03:16 2021 +0000 Signed-off-by: Jeremy Linton -:100644 100644 011a18b5 fea40776 M glibc.spec +:100644 100644 011a18b fea4077 M glibc.spec commit 8d4b53ceef11252ea4f9448cb0177ae9d182815d Author: Florian Weimer @@ -9420,8 +10554,8 @@ CommitDate: Tue May 11 17:30:04 2021 +0200 All debugging information is preserved in ld.so (#1905611). With the distribution defaults, we strip all binaries again (#1661510). -:100644 100644 b322ebfd 011a18b5 M glibc.spec -:000000 100644 00000000 5ace7e6d A wrap-find-debuginfo.sh +:100644 100644 b322ebf 011a18b M glibc.spec +:000000 100644 0000000 5ace7e6 A wrap-find-debuginfo.sh commit f0cbcb39124019428f8c526cd0276f32ec3aa665 Author: Florian Weimer @@ -9434,7 +10568,7 @@ CommitDate: Fri May 7 12:01:04 2021 +0200 This is not used in Fedora, and downstream removed the multilib as well. -:100644 100644 f71524ea b322ebfd M glibc.spec +:100644 100644 f71524e b322ebf M glibc.spec commit caadb46589d2fa5218b98f64181d06e4a8e37261 Author: Florian Weimer @@ -9448,7 +10582,7 @@ CommitDate: Thu May 6 10:59:59 2021 +0200 the localedef output, so that hardlink groups do not change between builds. -:100644 100644 ab3139a6 f71524ea M glibc.spec +:100644 100644 ab3139a f71524e M glibc.spec commit 82b682a3803a8effef0158b7b17b0633e011d9c5 Author: Florian Weimer @@ -9458,9 +10592,9 @@ CommitDate: Tue May 4 16:07:51 2021 +0200 Various changes to get glibc building again -:000000 100644 00000000 c2869d2b A glibc-upstream-amx-detection.patch -:000000 100644 00000000 db691ac5 A glibc-upstream-malloc-test-hang.patch -:100644 100644 0ece4ac7 ab3139a6 M glibc.spec +:000000 100644 0000000 c2869d2 A glibc-upstream-amx-detection.patch +:000000 100644 0000000 db691ac A glibc-upstream-malloc-test-hang.patch +:100644 100644 0ece4ac ab3139a M glibc.spec commit 3b6cc2120e4403e2f4691d1e42507f6909658695 Author: Florian Weimer @@ -9470,7 +10604,7 @@ CommitDate: Tue May 4 08:44:29 2021 +0200 Remove unused template.patch file -:100644 000000 10ec35e2 00000000 D template.patch +:100644 000000 10ec35e 0000000 D template.patch commit 78c735d31e55b33de8ded299ead41a99e0b4966a Author: Florian Weimer @@ -9483,7 +10617,7 @@ CommitDate: Fri Apr 9 20:47:11 2021 +0200 This adds additional coverage for aarch64, ppc64le, x86_64. At present, these changes have no effect. -:100644 100644 35d97b23 0ece4ac7 M glibc.spec +:100644 100644 35d97b2 0ece4ac M glibc.spec commit 9eea788618aa64cb66327d10364b4d941490e9c7 Author: Arjun Shankar @@ -9538,9 +10672,9 @@ CommitDate: Wed Mar 3 11:22:56 2021 +0100 - aarch64: Remove the unused __read_tp symbol - build-many-glibcs.py: Use make -O for more consistent log output -:100644 000000 61529268 00000000 D glibc-rh819430.patch -:100644 100644 bd3fb950 35d97b23 M glibc.spec -:100644 100644 6a8281bf 575cd9f8 M sources +:100644 000000 6152926 0000000 D glibc-rh819430.patch +:100644 100644 bd3fb95 35d97b2 M glibc.spec +:100644 100644 6a8281b 575cd9f M sources commit 7ae5ae4a36f281055aa6bef801ed06a8f0fdc824 Author: Carlos O'Donell @@ -9578,8 +10712,8 @@ CommitDate: Sun Feb 21 23:11:41 2021 -0500 - linux: Set default kernel_stat.h to LFS - linux: Fix STATFS_IS_STATFS64 definition -:100644 100644 0892728d bd3fb950 M glibc.spec -:100644 100644 513ecba7 6a8281bf M sources +:100644 100644 0892728 bd3fb95 M glibc.spec +:100644 100644 513ecba 6a8281b M sources commit f12836839324929236529439f86a5b33214c83e6 Author: Martin Cermak @@ -9591,7 +10725,7 @@ CommitDate: Thu Feb 18 13:34:18 2021 +0000 Set up CI gating for Fedora Rawhide, and RHEL-9. -:000000 100644 00000000 ac6d3d80 A gating.yaml +:000000 100644 0000000 ac6d3d8 A gating.yaml commit cc01ada745af2a68bffdfc4240d77337197b3cc4 Author: Florian Weimer @@ -9601,7 +10735,7 @@ CommitDate: Fri Feb 12 17:52:05 2021 +0100 Fix up version in %changelog -:100644 100644 9a502c4b 0892728d M glibc.spec +:100644 100644 9a502c4 0892728 M glibc.spec commit 5924084987a7ef53a6bd29ad09123922c16284e7 Author: Florian Weimer @@ -9611,7 +10745,7 @@ CommitDate: Fri Feb 12 15:25:31 2021 +0100 Fixup %changelog -:100644 100644 c343c118 9a502c4b M glibc.spec +:100644 100644 c343c11 9a502c4 M glibc.spec commit 027c02731beaa8f4564464046788acab0e53696d Author: Florian Weimer @@ -9693,8 +10827,8 @@ CommitDate: Fri Feb 12 15:24:42 2021 +0100 - elf: Limit tst-prelink-cmp target archs - CVE-2021-3326: gconv: Fix assertion failure in ISO-2022-JP-3 module (#1921917) -:100644 100644 e5bbfcca c343c118 M glibc.spec -:100644 100644 7ca9589e 513ecba7 M sources +:100644 100644 e5bbfcc c343c11 M glibc.spec +:100644 100644 7ca9589 513ecba M sources commit c290b4561137469528de8a9bffb7e3da57b8f20d Author: Arjun Shankar @@ -9710,8 +10844,8 @@ CommitDate: Wed Jan 27 13:50:31 2021 +0100 The previous auto-sync failed to build due to the above bug. -:100644 100644 d123df66 e5bbfcca M glibc.spec -:100644 100644 d522de86 7ca9589e M sources +:100644 100644 d123df6 e5bbfcc M glibc.spec +:100644 100644 d522de8 7ca9589 M sources commit a3f45b39c5e84e25fe58df63306a130445aacdac Author: Arjun Shankar @@ -9763,8 +10897,8 @@ CommitDate: Tue Jan 26 19:35:17 2021 +0100 - Fix x86 build with --enable-tunable=no - ifuncmain6pie: Remove the circular IFUNC dependency [BZ #20019] -:100644 100644 88a91bb3 d123df66 M glibc.spec -:100644 100644 49270018 d522de86 M sources +:100644 100644 88a91bb d123df6 M glibc.spec +:100644 100644 4927001 d522de8 M sources commit 5f79bcafc7e8d507693851fa9eadc24fc973d256 Author: Fedora Release Engineering @@ -9776,7 +10910,7 @@ CommitDate: Tue Jan 26 08:15:43 2021 +0000 Signed-off-by: Fedora Release Engineering -:100644 100644 5f2b4a99 88a91bb3 M glibc.spec +:100644 100644 5f2b4a9 88a91bb M glibc.spec commit 1fa03e97ae4cb44f5f7e1938a4315a39e0306c87 Author: Arjun Shankar @@ -9799,7 +10933,7 @@ CommitDate: Sat Jan 23 19:16:05 2021 +0100 documentation from the main package into glibc-doc. It also removes all the unnecessary documentation-like files mentioned above. -:100644 100644 ea30e1f3 5f2b4a99 M glibc.spec +:100644 100644 ea30e1f 5f2b4a9 M glibc.spec commit 8cd6c9ec483f92e71fb8bc9810fd3b3ca549cb88 Author: Arjun Shankar @@ -9820,7 +10954,7 @@ CommitDate: Thu Jan 14 12:20:15 2021 +0100 handles. It is therefore time to retire nscd in Fedora and move to more modern named services caches. -:100644 100644 52f5799d ea30e1f3 M glibc.spec +:100644 100644 52f5799 ea30e1f M glibc.spec commit b59b2feff0cca1b9f88832152cde32ef41609c39 Author: Carlos O'Donell @@ -9869,8 +11003,8 @@ CommitDate: Wed Jan 13 14:55:34 2021 -0500 - x86: Check IFUNC definition in unrelocated executable [BZ #20019] - hurd: Fix mmap(!MAP_FIXED) on bogus address -:100644 100644 4b63c901 52f5799d M glibc.spec -:100644 100644 28814859 49270018 M sources +:100644 100644 4b63c90 52f5799 M glibc.spec +:100644 100644 2881485 4927001 M sources commit dfda51ee292676a107eca11b9f2ff0f72f5382f0 Author: Florian Weimer @@ -9975,11 +11109,11 @@ CommitDate: Fri Jan 8 19:24:09 2021 +0100 - hurd: Rename LLL_INITIALIZER to LLL_LOCK_INITIALIZER - Use Linux 5.10 in build-many-glibcs.py. -:100644 000000 70b7d9da 00000000 D glibc-fedora-__libc_multiple_libcs.patch -:100644 100644 32be6a37 aaf45cc5 M glibc-python3.patch -:100644 100644 8b766f10 61529268 M glibc-rh819430.patch -:100644 100644 6d6b89fa 4b63c901 M glibc.spec -:100644 100644 c99ca59f 28814859 M sources +:100644 000000 70b7d9d 0000000 D glibc-fedora-__libc_multiple_libcs.patch +:100644 100644 32be6a3 aaf45cc M glibc-python3.patch +:100644 100644 8b766f1 6152926 M glibc-rh819430.patch +:100644 100644 6d6b89f 4b63c90 M glibc.spec +:100644 100644 c99ca59 2881485 M sources commit 2410c90637aa98f6ce116cfed5dd6ed742b6341d Author: DJ Delorie @@ -9993,7 +11127,7 @@ CommitDate: Wed Dec 16 16:20:12 2020 -0500 it's skipped if we're disabling debug packages, as ld-linux.so is normally stripped. -:100644 100644 d72e5e7a 6d6b89fa M glibc.spec +:100644 100644 d72e5e7 6d6b89f M glibc.spec commit d5ff3061a2c54ee0f30bb164d556f875daaea342 Author: Patsy Griffin @@ -10042,10 +11176,10 @@ CommitDate: Tue Dec 15 23:50:02 2020 -0500 - iconv: Fix incorrect UCS4 inner loop bounds (BZ#26923) - Drop glibc-rh1906066 and glibc-rh741105 patches fixed by sync. -:100644 000000 902e3533 00000000 D glibc-rh1906066.patch -:100644 000000 7637e08f 00000000 D glibc-rh741105.patch -:100644 100644 af60777d d72e5e7a M glibc.spec -:100644 100644 1dd85ba9 c99ca59f M sources +:100644 000000 902e353 0000000 D glibc-rh1906066.patch +:100644 000000 7637e08 0000000 D glibc-rh741105.patch +:100644 100644 af60777 d72e5e7 M glibc.spec +:100644 100644 1dd85ba c99ca59 M sources commit 525dee4c87180db08e1776ad3cb0e66a9b38e81f Author: Florian Weimer @@ -10057,7 +11191,7 @@ CommitDate: Mon Dec 14 10:43:47 2020 +0100 This effectively reverts commit d8a810a777f9c7113d15c1dc1ce8bde72ebc688b. -:100644 100644 82dc0283 af60777d M glibc.spec +:100644 100644 82dc028 af60777 M glibc.spec commit ff63fb2e4b9613dca8557446d4e5b3f5b5e48107 Author: DJ Delorie @@ -10069,8 +11203,8 @@ CommitDate: Thu Dec 10 01:29:30 2020 -0500 Temporary fix for https://bugzilla.redhat.com/show_bug.cgi?id=1906066 -:000000 100644 00000000 902e3533 A glibc-rh1906066.patch -:100644 100644 813bcdee 82dc0283 M glibc.spec +:000000 100644 0000000 902e353 A glibc-rh1906066.patch +:100644 100644 813bcde 82dc028 M glibc.spec commit e7821ea716284be57da602c2e4595054d8d3f168 Author: Arjun Shankar @@ -10091,8 +11225,8 @@ CommitDate: Mon Dec 7 16:24:56 2020 +0100 - nss: Introduce - Add scripts/move-symbol-to-libc.py -:100644 100644 51446ec6 813bcdee M glibc.spec -:100644 100644 137c9f59 1dd85ba9 M sources +:100644 100644 51446ec 813bcde M glibc.spec +:100644 100644 137c9f5 1dd85ba M sources commit 35514a81165c87eba803232593be24c5706e22a0 Author: Arjun Shankar @@ -10102,7 +11236,7 @@ CommitDate: Fri Dec 4 17:49:50 2020 +0100 Update sources file -:100644 100644 90646e76 137c9f59 M sources +:100644 100644 90646e7 137c9f5 M sources commit 8f61d411e6aebb2938944545b580bca6bd055783 Author: Arjun Shankar @@ -10213,9 +11347,9 @@ CommitDate: Fri Dec 4 15:16:11 2020 +0100 - riscv: Get cache information through sysconf - RISC-V: Add _dl_start_user. -:100644 000000 a3374b4b 00000000 D glibc-revert-fxstat-compat.patch -:100644 000000 85b49137 00000000 D glibc-revert-mknod-compat.patch -:100644 100644 5c8b02dc 51446ec6 M glibc.spec +:100644 000000 a3374b4 0000000 D glibc-revert-fxstat-compat.patch +:100644 000000 85b4913 0000000 D glibc-revert-mknod-compat.patch +:100644 100644 5c8b02d 51446ec M glibc.spec commit a3f3b637ae838458ed5781b05913a48050476887 Author: Florian Weimer @@ -10225,7 +11359,7 @@ CommitDate: Thu Nov 26 11:18:08 2020 +0100 s390x: Do not rewrite program interpreter symlink (make install is enough) -:100644 100644 3798a8d4 5c8b02dc M glibc.spec +:100644 100644 3798a8d 5c8b02d M glibc.spec commit c626367cc1dea35a90c9065c6af70e8967c23f26 Author: Carlos O'Donell @@ -10241,8 +11375,8 @@ CommitDate: Tue Nov 10 11:46:29 2020 -0500 Resolve: #1869030 -:100644 000000 c389d125 00000000 D glibc-rhbz1869030-faccessat2-eperm.patch -:100644 100644 617f98f2 3798a8d4 M glibc.spec +:100644 000000 c389d12 0000000 D glibc-rhbz1869030-faccessat2-eperm.patch +:100644 100644 617f98f 3798a8d M glibc.spec commit 98f35706db9bcb0bd505b3228514cf8ecebe9af2 Author: DJ Delorie @@ -10264,8 +11398,8 @@ CommitDate: Mon Nov 9 14:15:31 2020 -0500 - msg: Remove redundant #include header - tst-setuid1-static-ENV: Add $(common-objpfx)nss [BZ #26820] -:100644 100644 33ffcb02 617f98f2 M glibc.spec -:100644 100644 d50f2b50 90646e76 M sources +:100644 100644 33ffcb0 617f98f M glibc.spec +:100644 100644 d50f2b5 90646e7 M sources commit 2e63496ba68bfc87245c0a475e62fad6e234def6 Author: Patsy Griffin @@ -10316,9 +11450,9 @@ CommitDate: Wed Nov 4 09:07:44 2020 -0500 - C-SKY:Fix dynamic linker's name when mfloat-abi=softfp. - Drop the glibc-revert-ftime-compat.patch. -:100644 000000 a096726b 00000000 D glibc-revert-ftime-compat.patch -:100644 100644 c0d041de 33ffcb02 M glibc.spec -:100644 100644 3d80d913 d50f2b50 M sources +:100644 000000 a096726 0000000 D glibc-revert-ftime-compat.patch +:100644 100644 c0d041d 33ffcb0 M glibc.spec +:100644 100644 3d80d91 d50f2b5 M sources commit 836c64ba99a774db79f7b86e20da113209851eda Author: DJ Delorie @@ -10333,7 +11467,7 @@ CommitDate: Thu Oct 29 22:04:18 2020 -0400 The "Requires" entry is correctly autodetected. -:100644 100644 2c845190 c0d041de M glibc.spec +:100644 100644 2c84519 c0d041d M glibc.spec commit dbc894098e8b6d367e26cc2d112cde2c71d30cc3 Author: Carlos O'Donell @@ -10345,7 +11479,7 @@ CommitDate: Thu Oct 29 16:25:30 2020 -0400 Suggested-by: Colin Walters -:100644 100644 1b194734 2c845190 M glibc.spec +:100644 100644 1b19473 2c84519 M glibc.spec commit 90ca20fd0234925743db5e1e231b73b4a38749a9 Author: Siddhesh Poyarekar @@ -10355,9 +11489,9 @@ CommitDate: Wed Oct 21 15:02:05 2020 +0530 Also revert xmknod and ftime removal -:000000 100644 00000000 a096726b A glibc-revert-ftime-compat.patch -:000000 100644 00000000 85b49137 A glibc-revert-mknod-compat.patch -:100644 100644 6c268b8b 1b194734 M glibc.spec +:000000 100644 0000000 a096726 A glibc-revert-ftime-compat.patch +:000000 100644 0000000 85b4913 A glibc-revert-mknod-compat.patch +:100644 100644 6c268b8 1b19473 M glibc.spec commit 5a5cbfec77be45d6e8516e72382e848ee844991a Author: Siddhesh Poyarekar @@ -10370,8 +11504,8 @@ CommitDate: Wed Oct 21 14:33:57 2020 +0530 This breaks linking with static libraries that may have been built with an older glibc. -:000000 100644 00000000 a3374b4b A glibc-revert-fxstat-compat.patch -:100644 100644 18e80ad8 6c268b8b M glibc.spec +:000000 100644 0000000 a3374b4 A glibc-revert-fxstat-compat.patch +:100644 100644 18e80ad 6c268b8 M glibc.spec commit 42962ebc3d22e41710cb4fd8c7fb76be68041068 Author: Florian Weimer @@ -10381,7 +11515,7 @@ CommitDate: Tue Oct 20 12:25:42 2020 +0200 s390x: Inherit z15 build flags from redhat-rpm-config -:100644 100644 e3881b8a 18e80ad8 M glibc.spec +:100644 100644 e3881b8 18e80ad M glibc.spec commit 8c25df8a1dd0a26f7eb391a3e3831ce733c82d0c Author: Patsy Griffin @@ -10453,9 +11587,9 @@ CommitDate: Sun Oct 18 19:11:55 2020 -0400 - elf: Move ld.so error/help output to _dl_usage - elf: Extract command-line/environment variables state from rtld.c -:100644 100644 fe5adb2d 70b7d9da M glibc-fedora-__libc_multiple_libcs.patch -:100644 100644 b0ca4a53 e3881b8a M glibc.spec -:100644 100644 052b7852 3d80d913 M sources +:100644 100644 fe5adb2 70b7d9d M glibc-fedora-__libc_multiple_libcs.patch +:100644 100644 b0ca4a5 e3881b8 M glibc.spec +:100644 100644 052b785 3d80d91 M sources commit d8a810a777f9c7113d15c1dc1ce8bde72ebc688b Author: Florian Weimer @@ -10465,7 +11599,7 @@ CommitDate: Wed Oct 14 15:29:09 2020 +0200 Disable -Werror on ELN (#1888246) -:100644 100644 7463c043 b0ca4a53 M glibc.spec +:100644 100644 7463c04 b0ca4a5 M glibc.spec commit a45fef2f842e6b57dcc9907390178f2438892695 Author: Florian Weimer @@ -10479,10 +11613,10 @@ CommitDate: Wed Oct 14 15:19:39 2020 +0200 code and a new Python script, parse-SUPPORTED.py, to compute a common representation from it. -:100644 000000 cd785d7a 00000000 D SUPPORTED -:100755 000000 4a930414 00000000 D convnames.py -:100644 100644 67a85e28 7463c043 M glibc.spec -:000000 100644 00000000 cf512deb A parse-SUPPORTED.py +:100644 000000 cd785d7 0000000 D SUPPORTED +:100755 000000 4a93041 0000000 D convnames.py +:100644 100644 67a85e2 7463c04 M glibc.spec +:000000 100644 0000000 cf512de A parse-SUPPORTED.py commit 1bf34fb3df327f15a94b3024a95ba83057e3f10b Author: Arjun Shankar @@ -10492,7 +11626,7 @@ CommitDate: Thu Oct 8 15:00:47 2020 +0200 Update sources file -:100644 100644 f4c2a842 052b7852 M sources +:100644 100644 f4c2a84 052b785 M sources commit 9a188d169ef322be63c7263dde805268f7ea2b2b Author: Arjun Shankar @@ -10555,8 +11689,8 @@ CommitDate: Thu Oct 8 12:05:13 2020 +0200 - x86: Use one ldbl2mpn.c file for both i386 and x86_64 - Define __THROW to noexcept for C++11 and later -:100644 000000 78f214d1 00000000 D glibc-fix-float128-benchtests.patch -:100644 100644 fd0ef46e 67a85e28 M glibc.spec +:100644 000000 78f214d 0000000 D glibc-fix-float128-benchtests.patch +:100644 100644 fd0ef46 67a85e2 M glibc.spec commit f1c4b3f4bd1bb054c2c4e8a628f6f82dfe8ca9ed Author: Arjun Shankar @@ -10605,10 +11739,10 @@ CommitDate: Mon Sep 21 12:33:35 2020 +0200 - nptl: futex: Provide correct indentation for part of __futex_abstimed_wait_cancelable64 -:000000 100644 00000000 78f214d1 A glibc-fix-float128-benchtests.patch -:100644 100644 3b21b89c 7637e08f M glibc-rh741105.patch -:100644 100644 20aedb5f fd0ef46e M glibc.spec -:100644 100644 8fd47da3 f4c2a842 M sources +:000000 100644 0000000 78f214d A glibc-fix-float128-benchtests.patch +:100644 100644 3b21b89 7637e08 M glibc-rh741105.patch +:100644 100644 20aedb5 fd0ef46 M glibc.spec +:100644 100644 8fd47da f4c2a84 M sources commit c070d93d6438cac5c6821faf7b8d69867529bc8e Author: DJ Delorie @@ -10626,8 +11760,8 @@ CommitDate: Tue Sep 8 19:12:54 2020 -0400 - elf.h: Add aarch64 bti/pac dynamic tag constants - x86: Set CPU usable feature bits conservatively [BZ #26552] -:100644 100644 5f8943c2 20aedb5f M glibc.spec -:100644 100644 b4eb5f67 8fd47da3 M sources +:100644 100644 5f8943c 20aedb5 M glibc.spec +:100644 100644 b4eb5f6 8fd47da M sources commit 6cd5b060cc2ea7aa3836c73b0b36d4a63129f42d Author: Patsy Griffin @@ -10692,9 +11826,9 @@ CommitDate: Wed Sep 2 11:36:37 2020 -0400 - Add new STATX_* constants from Linux 5.8 to bits/statx-generic.h. - Correct locking and cancellation cleanup in syslog functions (bug 26100) -:100644 000000 5ec22376 00000000 D glibc-fedora-nis-rh188246.patch -:100644 100644 970365f7 5f8943c2 M glibc.spec -:100644 100644 5817967f b4eb5f67 M sources +:100644 000000 5ec2237 0000000 D glibc-fedora-nis-rh188246.patch +:100644 100644 970365f 5f8943c M glibc.spec +:100644 100644 5817967 b4eb5f6 M sources commit b8f476de79cd3411606d045a3e6659b018564885 Author: Carlos O'Donell @@ -10706,8 +11840,8 @@ CommitDate: Thu Aug 20 18:18:47 2020 -0400 Resolves: #1869030 -:000000 100644 00000000 c389d125 A glibc-rhbz1869030-faccessat2-eperm.patch -:100644 100644 086ff6dc 970365f7 M glibc.spec +:000000 100644 0000000 c389d12 A glibc-rhbz1869030-faccessat2-eperm.patch +:100644 100644 086ff6d 970365f M glibc.spec commit b1869f947af08ef9c8fba2a70c4a71315e838ca0 Author: Carlos O'Donell @@ -10728,7 +11862,7 @@ CommitDate: Thu Aug 20 18:03:11 2020 -0400 glibc language packs and the way in which the virtual provide is used. -:100644 100644 84644364 086ff6dc M glibc.spec +:100644 100644 8464436 086ff6d M glibc.spec commit 7ec72a1eabd2826b78670acd4b562c52db5185c2 Author: DJ Delorie @@ -10746,8 +11880,8 @@ CommitDate: Mon Aug 17 14:51:02 2020 -0400 - y2038: nptl: Convert pthread_{clock|timed}join_np to support 64 bit time - aarch64: update ulps. -:100644 100644 e809efa3 84644364 M glibc.spec -:100644 100644 cd2e5e13 5817967f M sources +:100644 100644 e809efa 8464436 M glibc.spec +:100644 100644 cd2e5e1 5817967 M sources commit 58f285e57f75dcff252c8eac2d5d02a394b49358 Author: Patsy Griffin @@ -10783,8 +11917,8 @@ CommitDate: Thu Aug 13 08:54:55 2020 -0400 - Sync intprops.h from Gnulib - Open master branch for glibc 2.33 development. -:100644 100644 7ebb530b e809efa3 M glibc.spec -:100644 100644 76350261 cd2e5e13 M sources +:100644 100644 7ebb530 e809efa M glibc.spec +:100644 100644 7635026 cd2e5e1 M sources commit 2f73564ad102da35425c5cfc990566a76c6aa74f Author: Arjun Shankar @@ -10808,8 +11942,8 @@ CommitDate: Thu Aug 6 15:13:54 2020 +0200 - powerpc: Fix incorrect cache line size load in memset (bug 26332) - Update Nios II libm-test-ulps file. -:100644 100644 1a14a60c 7ebb530b M glibc.spec -:100644 100644 3c5d70af 76350261 M sources +:100644 100644 1a14a60 7ebb530 M glibc.spec +:100644 100644 3c5d70a 7635026 M sources commit df5430b755ae8bb8cb45683862b213d56d87627e Author: Patsy Griffin @@ -10835,8 +11969,8 @@ CommitDate: Fri Jul 31 11:45:37 2020 -0400 - powerpc: Fix POWER10 selection - powerpc64le: guarantee a .gnu.attributes section [BZ #26220] -:100644 100644 587ed42a 1a14a60c M glibc.spec -:100644 100644 db61efd7 3c5d70af M sources +:100644 100644 587ed42 1a14a60 M glibc.spec +:100644 100644 db61efd 3c5d70a M sources commit 888bec16b096a69c4e46c1ecf3334cb14f933827 Author: Florian Weimer @@ -10846,7 +11980,7 @@ CommitDate: Wed Jul 29 10:55:07 2020 +0200 Inherit -mbranch-protection=standard from redhat-rpm-config (for aarch64) -:100644 100644 978fd9e7 587ed42a M glibc.spec +:100644 100644 978fd9e 587ed42 M glibc.spec commit 6f63f671cc65be9d5e01f35c95357378c3296656 Author: Fedora Release Engineering @@ -10858,7 +11992,7 @@ CommitDate: Mon Jul 27 20:13:43 2020 +0000 Signed-off-by: Fedora Release Engineering -:100644 100644 cbc34405 978fd9e7 M glibc.spec +:100644 100644 cbc3440 978fd9e M glibc.spec commit 9bc189f105dd34b5d006b0100e6dc0f0956e069c Author: Carlos O'Donell @@ -10870,7 +12004,7 @@ CommitDate: Thu Jul 23 00:03:10 2020 -0400 See https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro -:100644 100644 269ab044 cbc34405 M glibc.spec +:100644 100644 269ab04 cbc3440 M glibc.spec commit 299c3c2187084422c7200569d7d9ceb687763b9e Author: Florian Weimer @@ -10880,7 +12014,7 @@ CommitDate: Tue Jul 21 17:02:37 2020 +0200 Add reference to rseq bug #1855729 -:100644 100644 3ed77ba4 269ab044 M glibc.spec +:100644 100644 3ed77ba 269ab04 M glibc.spec commit 3e8e5d3396dbe9732053a58f46aef199772aaae7 Author: Arjun Shankar @@ -10961,9 +12095,9 @@ CommitDate: Tue Jul 21 15:09:22 2020 +0200 - sysvipc: Split out linux struct semid_ds - sysv: linux: Add 64-bit time_t variant for semctl -:100644 000000 40090a7b 00000000 D glibc-rseq-disable.patch -:100644 100644 c5eafb55 3ed77ba4 M glibc.spec -:100644 100644 afbe8d38 db61efd7 M sources +:100644 000000 40090a7 0000000 D glibc-rseq-disable.patch +:100644 100644 c5eafb5 3ed77ba M glibc.spec +:100644 100644 afbe8d3 db61efd M sources commit 1554837500cb2ec8574e8d356b7244a4b9fba9c7 Author: Florian Weimer @@ -10975,9 +12109,9 @@ CommitDate: Tue Jul 21 14:41:25 2020 +0200 Due to -Werror, they resulted in build failures. -:000000 100644 00000000 c762d024 A glibc-deprecated-selinux-makedb.patch -:000000 100644 00000000 315b6cd9 A glibc-deprecated-selinux-nscd.patch -:100644 100644 1e627450 c5eafb55 M glibc.spec +:000000 100644 0000000 c762d02 A glibc-deprecated-selinux-makedb.patch +:000000 100644 0000000 315b6cd A glibc-deprecated-selinux-nscd.patch +:100644 100644 1e62745 c5eafb5 M glibc.spec commit b633c425b5e30a3b6e19cc9650858faaf83bcc85 Author: Florian Weimer @@ -10987,8 +12121,8 @@ CommitDate: Fri Jul 10 13:13:21 2020 +0200 Disable rseq registration by default to help Firefox (#1855729) -:000000 100644 00000000 40090a7b A glibc-rseq-disable.patch -:100644 100644 d0d7eb3c 1e627450 M glibc.spec +:000000 100644 0000000 40090a7 A glibc-rseq-disable.patch +:100644 100644 d0d7eb3 1e62745 M glibc.spec commit 0aab7eb58528999277c626fc16682da179de03d0 Author: Florian Weimer @@ -11060,9 +12194,9 @@ CommitDate: Fri Jul 10 12:56:47 2020 +0200 - tst-cancel4: deal with ENOSYS errors - manual: Show copyright information not just in the printed manual -:100644 100644 3bba12d5 fe5adb2d M glibc-fedora-__libc_multiple_libcs.patch -:100644 100644 852d1d1c d0d7eb3c M glibc.spec -:100644 100644 7335d06d afbe8d38 M sources +:100644 100644 3bba12d fe5adb2 M glibc-fedora-__libc_multiple_libcs.patch +:100644 100644 852d1d1 d0d7eb3 M glibc.spec +:100644 100644 7335d06 afbe8d3 M sources commit 94cfd27bd10e4d3097a0a4dcb880cfc620eb933c Author: Carlos O'Donell @@ -11117,12 +12251,12 @@ CommitDate: Thu Jul 2 17:45:59 2020 -0400 - Add MREMAP_DONTUNMAP from Linux 5.7 - x86: Update CPU feature detection [BZ #26149] -:100644 100644 784e33c4 2afbfc5c M ChangeLog.old -:100644 000000 7b67937a 00000000 D README.quilt -:100644 100644 301d28a6 852d1d1c M glibc.spec -:100644 000000 1b0187bd 00000000 D power6emul.c -:100755 000000 511a53c0 00000000 D quilt-patch.sh -:100644 100644 9082417f 7335d06d M sources +:100644 100644 784e33c 2afbfc5 M ChangeLog.old +:100644 000000 7b67937 0000000 D README.quilt +:100644 100644 301d28a 852d1d1 M glibc.spec +:100644 000000 1b0187b 0000000 D power6emul.c +:100755 000000 511a53c 0000000 D quilt-patch.sh +:100644 100644 9082417 7335d06 M sources commit c12a7f03e36f095321ecb438f7e95abf8f3f7ebc Author: DJ Delorie @@ -11155,8 +12289,8 @@ CommitDate: Mon Jun 22 15:43:26 2020 -0400 - math: Optimized generic exp10f with wrappers - benchtests: Add exp10f benchmark -:100644 100644 1bd8fb9b 301d28a6 M glibc.spec -:100644 100644 62eacd94 9082417f M sources +:100644 100644 1bd8fb9 301d28a M glibc.spec +:100644 100644 62eacd9 9082417 M sources commit b2357f7dc4ebb024e6dc2f97c2aaf05109b0c4fc Author: Patsy Franklin @@ -11218,8 +12352,8 @@ CommitDate: Fri Jun 19 12:03:17 2020 -0400 - powerpc64le: add optimized strlen for P9 - powerpc64le: use common fmaf128 implementation -:100644 100644 98d76dcd 1bd8fb9b M glibc.spec -:100644 100644 8dc1112b 62eacd94 M sources +:100644 100644 98d76dc 1bd8fb9 M glibc.spec +:100644 100644 8dc1112 62eacd9 M sources commit 5b16244fadff80fe959286be0be19e9548bffcac Author: Patsy Franklin @@ -11319,8 +12453,8 @@ CommitDate: Fri Jun 5 17:05:33 2020 -0400 - Use unsigned constants for ICMP6 filters [BZ #22489] - Linux: Enhance glibcsyscalls.py to support listing system calls -:100644 100644 81ae3064 98d76dcd M glibc.spec -:100644 100644 323c1fda 8dc1112b M sources +:100644 100644 81ae306 98d76dc M glibc.spec +:100644 100644 323c1fd 8dc1112 M sources commit 0cfa270c689db635f8d58e23c25ff0714aa9fea1 Author: DJ Delorie @@ -11401,8 +12535,8 @@ CommitDate: Mon May 11 14:44:49 2020 -0400 - nptl: Move pthread_sigmask implementation to libc - Bug 25819: Update to Unicode 13.0.0 -:100644 100644 e1d8fce8 81ae3064 M glibc.spec -:100644 100644 358d1dc5 323c1fda M sources +:100644 100644 e1d8fce 81ae306 M glibc.spec +:100644 100644 358d1dc 323c1fd M sources commit a578dc7ae2aec7b5b13062145e3e4188dd5e4dc0 Author: Florian Weimer @@ -11412,7 +12546,7 @@ CommitDate: Wed Apr 29 13:48:49 2020 +0200 nss_db.x86_64 should install nss_db.i686 if glibc.i686 is installed (#1807821) -:100644 100644 b1f9713e e1d8fce8 M glibc.spec +:100644 100644 b1f9713 e1d8fce M glibc.spec commit 15c23ffc6c011615c1359bcac156c6a56b73fbbc Author: Florian Weimer @@ -11422,7 +12556,7 @@ CommitDate: Wed Apr 29 12:22:43 2020 +0200 Add reference to bug 1828332 -:100644 100644 b49ef406 b1f9713e M glibc.spec +:100644 100644 b49ef40 b1f9713 M glibc.spec commit 0fb8a56d62fe60df493263c9dde32d14363e5507 Author: Florian Weimer @@ -11435,7 +12569,7 @@ CommitDate: Tue Apr 28 12:29:21 2020 +0200 This commit does not change the generated RPM SPEC file in a material way: there are only whitespace and comment changes as a result. -:100644 100644 bce096b2 b49ef406 M glibc.spec +:100644 100644 bce096b b49ef40 M glibc.spec commit eb8a860ab4f498d1a432d807aa8b805a1fe46ea2 Author: Florian Weimer @@ -11451,7 +12585,7 @@ CommitDate: Mon Apr 27 17:34:53 2020 +0200 Also add a glibc-headers-s390 package on s390x, in case someone still has a private build with the 31-bit libraries. -:100644 100644 a90da112 bce096b2 M glibc.spec +:100644 100644 a90da11 bce096b M glibc.spec commit 711089dc88eef8893e5c1cce353384bb3db60859 Author: Florian Weimer @@ -11461,7 +12595,7 @@ CommitDate: Mon Apr 27 17:33:51 2020 +0200 Restrict the glibc-headers package to x86_64, i686 -:100644 100644 6bcafce6 a90da112 M glibc.spec +:100644 100644 6bcafce a90da11 M glibc.spec commit 7ae647b91349ea3f701f8eff081f6448aacd8ae9 Author: Florian Weimer @@ -11474,7 +12608,7 @@ CommitDate: Mon Apr 27 17:33:51 2020 +0200 ppc64le is not a biarch architecture, but is included in %{power64}, so it ended up in %{biarcharches}. -:100644 100644 faacd089 6bcafce6 M glibc.spec +:100644 100644 faacd08 6bcafce M glibc.spec commit 7407a5058abaccd0a99d3092aa586bcebe2b27c1 Author: Florian Weimer @@ -11486,7 +12620,7 @@ CommitDate: Mon Apr 27 17:33:51 2020 +0200 Also remove the dependencies which are needed by the scriptlet. -:100644 100644 cde8b3d9 faacd089 M glibc.spec +:100644 100644 cde8b3d faacd08 M glibc.spec commit db303b940e82332f41efb749ee4e1e4ea7355881 Author: Florian Weimer @@ -11496,7 +12630,7 @@ CommitDate: Mon Apr 27 17:33:51 2020 +0200 Fix "pacakge" typos -:100644 100644 e40fb082 cde8b3d9 M glibc.spec +:100644 100644 e40fb08 cde8b3d M glibc.spec commit b4ca0be2b62a136b63cb1bc723f3fadc8361f52e Author: DJ Delorie @@ -11517,8 +12651,8 @@ CommitDate: Mon Apr 20 16:56:20 2020 -0400 - Reset converter state after second wchar_t output (Bug 25734) - Fix typo in posix/tst-fnmatch.input (Bug 25790) -:100644 100644 f0dc92c0 e40fb082 M glibc.spec -:100644 100644 68f3a669 358d1dc5 M sources +:100644 100644 f0dc92c e40fb08 M glibc.spec +:100644 100644 68f3a66 358d1dc M sources commit 157090889d365297450b4e0bb1968612ae5a4888 Author: Patsy Franklin @@ -11538,8 +12672,8 @@ CommitDate: Wed Apr 15 14:43:42 2020 -0400 - Add GRND_INSECURE from Linux 5.6 to sys/random.h - Update kernel version to 5.6 in tst-mman-consts.py. -:100644 100644 5e3c555a f0dc92c0 M glibc.spec -:100644 100644 dece03c6 68f3a669 M sources +:100644 100644 5e3c555 f0dc92c M glibc.spec +:100644 100644 dece03c 68f3a66 M sources commit 873cc222f972f003496daf690e35f3dee1f126fe Author: Florian Weimer @@ -11549,7 +12683,7 @@ CommitDate: Wed Apr 15 17:41:04 2020 +0200 Update release & changelog for: nsswitch.conf: don't add sss to shadow line -:100644 100644 0a91adc9 5e3c555a M glibc.spec +:100644 100644 0a91adc 5e3c555 M glibc.spec commit 4e7c22bb366b655f638380403a6f65b603b008eb Author: Michael Catanzaro @@ -11563,7 +12697,7 @@ CommitDate: Wed Apr 15 15:38:26 2020 +0000 https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/GECSRBSGRFH4OYVHYVJ56H3WS6FWPKA3/ -:100644 100644 447a60ef 61f03111 M glibc-fedora-nsswitch.patch +:100644 100644 447a60e 61f0311 M glibc-fedora-nsswitch.patch commit 89e19f3b9ebed54905a132ea5560b82260bee85e Author: Carlos O'Donell @@ -11612,9 +12746,9 @@ CommitDate: Wed Apr 8 16:47:40 2020 -0400 - sysv: Define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 - math: Add inputs that yield larger errors for float type (x86_64) -:100644 100644 256ef205 3bba12d5 M glibc-fedora-__libc_multiple_libcs.patch -:100644 100644 23280473 0a91adc9 M glibc.spec -:100644 100644 e3d64332 dece03c6 M sources +:100644 100644 256ef20 3bba12d M glibc-fedora-__libc_multiple_libcs.patch +:100644 100644 2328047 0a91adc M glibc.spec +:100644 100644 e3d6433 dece03c M sources commit 1479bc1a28a365c6187daaaff641dc7f5700d03f Author: DJ Delorie @@ -11649,8 +12783,8 @@ CommitDate: Tue Mar 31 22:07:50 2020 -0400 - Fix tests which expose ldbl -> _Float128 redirects - ldbl-128ibm-compat: PLT redirects for using ldbl redirects internally -:100644 100644 260e48b1 23280473 M glibc.spec -:100644 100644 97f69228 e3d64332 M sources +:100644 100644 260e48b 2328047 M glibc.spec +:100644 100644 97f6922 e3d6433 M sources commit e5688486f85d21007607607bd1a3a13dcacda144 Author: Patsy Franklin @@ -11685,10 +12819,10 @@ CommitDate: Thu Mar 26 10:49:57 2020 -0400 - manual: Fix inconsistent declaration of wcsrchr [BZ #24655] - nscd: add cache dumper -:100644 000000 21a3475d 00000000 D glibc-rh1778344.patch -:100644 000000 92c15674 00000000 D glibc-utimes.patch -:100644 100644 f4cc5af8 260e48b1 M glibc.spec -:100644 100644 a40bf523 97f69228 M sources +:100644 000000 21a3475 0000000 D glibc-rh1778344.patch +:100644 000000 92c1567 0000000 D glibc-utimes.patch +:100644 100644 f4cc5af 260e48b M glibc.spec +:100644 100644 a40bf52 97f6922 M sources commit c0cdff7e6c9c199b23d25f46566bf093a299ac7f Author: Patsy Franklin @@ -11728,8 +12862,8 @@ CommitDate: Sun Mar 15 23:55:22 2020 -0400 - manual: Fix wrong declaration of wcschr [BZ #24654] - manual: Fix typo in parse_printf_format example [BZ #24638] -:100644 100644 26e27891 f4cc5af8 M glibc.spec -:100644 100644 9bc854bd a40bf523 M sources +:100644 100644 26e2789 f4cc5af M glibc.spec +:100644 100644 9bc854b a40bf52 M sources commit 2600cf370bf5a4bd438d56b834562c69fb02c531 Author: Florian Weimer @@ -11739,7 +12873,7 @@ CommitDate: Thu Mar 5 13:17:43 2020 +0100 Fix broken patch -:100644 100644 21b325ad 92c15674 M glibc-utimes.patch +:100644 100644 21b325a 92c1567 M glibc-utimes.patch commit 3efb6ef47904d24191f11856492c8d3ce79c3fc3 Author: Florian Weimer @@ -11749,8 +12883,8 @@ CommitDate: Thu Mar 5 13:09:13 2020 +0100 Emergency patch for broken utimes/utime functions -:000000 100644 00000000 21b325ad A glibc-utimes.patch -:100644 100644 9c3e06ee 26e27891 M glibc.spec +:000000 100644 0000000 21b325a A glibc-utimes.patch +:100644 100644 9c3e06e 26e2789 M glibc.spec commit 301b7b2d9f1fd0bc8d0b69777e508331228d3d1f Author: Patsy Franklin @@ -11810,9 +12944,9 @@ CommitDate: Wed Mar 4 11:00:41 2020 -0500 - support: Add support_process_state_wait - malloc/tst-mallocfork2: Kill lingering process for unexpected failures -:100644 100644 8ba958e8 32be6a37 M glibc-python3.patch -:100644 100644 65353068 9c3e06ee M glibc.spec -:100644 100644 943635c3 9bc854bd M sources +:100644 100644 8ba958e 32be6a3 M glibc-python3.patch +:100644 100644 6535306 9c3e06e M glibc.spec +:100644 100644 943635c 9bc854b M sources commit 505d538386dfe5a1578f4587b75b64e177e8725e Author: Patsy Franklin @@ -12015,9 +13149,9 @@ CommitDate: Wed Feb 26 18:53:37 2020 -0500 - x86: Don't make 2 calls to dlerror () in a row - Open master for 2.32 development -:100644 100644 d55e4e7b cd785d7a M SUPPORTED -:100644 100644 a57461ac 65353068 M glibc.spec -:100644 100644 60461198 943635c3 M sources +:100644 100644 d55e4e7 cd785d7 M SUPPORTED +:100644 100644 a57461a 6535306 M glibc.spec +:100644 100644 6046119 943635c M sources commit c5ffb3238b07af70c71404e91817db0114c964ab Author: DJ Delorie @@ -12039,8 +13173,8 @@ CommitDate: Mon Feb 3 17:41:16 2020 -0500 - Add NEWS entry about 64-bit time_t syscall use on 32-bit targets - nptl: Avoid using PTHREAD_MUTEX_DEFAULT in macro definition [BZ #25271] -:100644 100644 6eb7cb8c a57461ac M glibc.spec -:100644 100644 30a5cb79 60461198 M sources +:100644 100644 6eb7cb8 a57461a M glibc.spec +:100644 100644 30a5cb7 6046119 M sources commit 1e5275ce0a4f18626c86e5c24b302d8cb51e6f6d Author: Patsy Franklin @@ -12061,8 +13195,8 @@ CommitDate: Thu Jan 30 12:21:39 2020 -0500 - Fix array overflow in backtrace on PowerPC (bug 25423) - getaddrinfo: Fix resource leak after strdup failure in gethosts (swbz#25425) -:100644 100644 2c6b2ca7 6eb7cb8c M glibc.spec -:100644 100644 5b8f8063 30a5cb79 M sources +:100644 100644 2c6b2ca 6eb7cb8 M glibc.spec +:100644 100644 5b8f806 30a5cb7 M sources commit d18724d2ec42da3d2dc4dbacc93e8edf92d41b1f Author: Fedora Release Engineering @@ -12074,7 +13208,7 @@ CommitDate: Tue Jan 28 22:10:23 2020 +0000 Signed-off-by: Fedora Release Engineering -:100644 100644 eb54714a 2c6b2ca7 M glibc.spec +:100644 100644 eb54714 2c6b2ca M glibc.spec commit d2f233f5b46f09b1c5b12192d4c7dff1f2478836 Author: Patsy Franklin @@ -12096,8 +13230,8 @@ CommitDate: Mon Jan 20 14:11:33 2020 -0500 - powerpc32: Fix syntax error in __GLRO macro - Remove incorrect alloc_size attribute from pvalloc [BZ #25401] -:100644 100644 69b3801a eb54714a M glibc.spec -:100644 100644 00ddde41 5b8f8063 M sources +:100644 100644 69b3801 eb54714 M glibc.spec +:100644 100644 00ddde4 5b8f806 M sources commit c996bd1b308be1d591f1d539c55c3f890313a853 Author: Florian Weimer @@ -12121,8 +13255,8 @@ CommitDate: Fri Jan 17 13:49:44 2020 +0100 - elf: Add tst-ldconfig-ld_so_conf-update test - sl_SI locale: Use "." as the thousands separator (swbz#25233) -:100644 100644 776cf96d 69b3801a M glibc.spec -:100644 100644 a30de47c 00ddde41 M sources +:100644 100644 776cf96 69b3801 M glibc.spec +:100644 100644 a30de47 00ddde4 M sources commit 258bf984b05e60b249ef87b516c7449e5645024f Author: Arjun Shankar @@ -12160,8 +13294,8 @@ CommitDate: Mon Jan 6 13:02:15 2020 +0100 - htl: Add __errno_location and __h_errno_location - hurd: Fix message reception for timer_thread -:100644 100644 407f05f0 776cf96d M glibc.spec -:100644 100644 edda66d3 a30de47c M sources +:100644 100644 407f05f 776cf96 M glibc.spec +:100644 100644 edda66d a30de47 M sources commit ee01264a306a1e5c40571176ea47b24f744b809c Author: Florian Weimer @@ -12186,9 +13320,9 @@ CommitDate: Thu Jan 2 10:42:49 2020 +0100 - Fix return code for __libc_signal_* functions - nptl: Remove duplicate internal __SIZEOF_PTHREAD_MUTEX_T (swbz#25241) -:100644 100644 224c5198 8ba958e8 M glibc-python3.patch -:100644 100644 8bf02400 407f05f0 M glibc.spec -:100644 100644 51560589 edda66d3 M sources +:100644 100644 224c519 8ba958e M glibc-python3.patch +:100644 100644 8bf0240 407f05f M glibc.spec +:100644 100644 5156058 edda66d M sources commit 53b7c468418829a9fd1373a11eb6585bf86fd18c Author: Carlos O'Donell @@ -12224,8 +13358,8 @@ CommitDate: Thu Dec 26 08:27:48 2019 -0500 - Fix __libc_signal_block_all on sparc64 - powerpc: Do not run IFUNC resolvers for LD_DEBUG=unused [BZ #24214] -:100644 100644 598e1d75 8bf02400 M glibc.spec -:100644 100644 362357e8 51560589 M sources +:100644 100644 598e1d7 8bf0240 M glibc.spec +:100644 100644 362357e 5156058 M sources commit 2e168fa077fb6998d6e9e3043005d7f587115715 Author: Patsy Franklin @@ -12285,11 +13419,11 @@ CommitDate: Thu Dec 19 15:46:31 2019 -0500 - hurd: Fix using altstack while in an RPC call to be aborted - Fix failure when CFLAGS contains -DNDEBUG (Bug 25251) -:100644 000000 36136adb 00000000 D glibc-dlopen-nodelete-fixes-1.patch -:100644 000000 54fdafab 00000000 D glibc-dlopen-nodelete-fixes-2.patch -:100644 000000 56252dde 00000000 D glibc-dlopen-nodelete-fixes-3.patch -:100644 100644 3a5c106f 598e1d75 M glibc.spec -:100644 100644 b88442c4 362357e8 M sources +:100644 000000 36136ad 0000000 D glibc-dlopen-nodelete-fixes-1.patch +:100644 000000 54fdafa 0000000 D glibc-dlopen-nodelete-fixes-2.patch +:100644 000000 56252dd 0000000 D glibc-dlopen-nodelete-fixes-3.patch +:100644 100644 3a5c106 598e1d7 M glibc.spec +:100644 100644 b88442c 362357e M sources commit b672d8b211c7cf149db8fd8ee4c5c42b9c09c132 Author: DJ Delorie @@ -12313,8 +13447,8 @@ CommitDate: Mon Dec 9 23:28:35 2019 -0500 - : Define __CORRECT_ISO_CPP_STRING_H_PROTO for Clang [BZ #25232] - build-many-glibcs.py: Move sparcv8 to extra_glibcs -:100644 100644 dcc2b867 3a5c106f M glibc.spec -:100644 100644 002d3b85 b88442c4 M sources +:100644 100644 dcc2b86 3a5c106 M glibc.spec +:100644 100644 002d3b8 b88442c M sources commit e9451d9caff9a3a2c284912b0af7b08db9a473fa Author: Florian Weimer @@ -12324,10 +13458,10 @@ CommitDate: Thu Dec 5 17:38:17 2019 +0100 Upstream patches for fallout from dlopen NODELETE changes (#1778344, #1778366) -:000000 100644 00000000 36136adb A glibc-dlopen-nodelete-fixes-1.patch -:000000 100644 00000000 54fdafab A glibc-dlopen-nodelete-fixes-2.patch -:000000 100644 00000000 56252dde A glibc-dlopen-nodelete-fixes-3.patch -:100644 100644 3edcf580 dcc2b867 M glibc.spec +:000000 100644 0000000 36136ad A glibc-dlopen-nodelete-fixes-1.patch +:000000 100644 0000000 54fdafa A glibc-dlopen-nodelete-fixes-2.patch +:000000 100644 0000000 56252dd A glibc-dlopen-nodelete-fixes-3.patch +:100644 100644 3edcf58 dcc2b86 M glibc.spec commit 134ad59d86c9e380e325a6cdc6eff247dcbd1dea Author: Patsy Franklin @@ -12362,8 +13496,8 @@ CommitDate: Wed Dec 4 23:09:33 2019 -0500 - Fix syntax error in build-many-glibcs.py. - Define MADV_COLD and MADV_PAGEOUT from Linux 5.4. -:100644 100644 62210382 3edcf580 M glibc.spec -:100644 100644 d176a13e 002d3b85 M sources +:100644 100644 6221038 3edcf58 M glibc.spec +:100644 100644 d176a13 002d3b8 M sources commit 761a9384b6ae8d8fb824d99ab37a280c54aa80cc Author: Florian Weimer @@ -12373,8 +13507,8 @@ CommitDate: Mon Dec 2 10:02:46 2019 +0100 dlopen: Remove incorrect assert in activate_nodelete (#1778344) -:000000 100644 00000000 21a3475d A glibc-rh1778344.patch -:100644 100644 90cb78fa 62210382 M glibc.spec +:000000 100644 0000000 21a3475 A glibc-rh1778344.patch +:100644 100644 90cb78f 6221038 M glibc.spec commit 17391589c0dd9b92cf9c61efee9b0f12d7d3d030 Author: Florian Weimer @@ -12404,8 +13538,8 @@ CommitDate: Thu Nov 28 15:58:33 2019 +0100 - sparc: Use atomic compiler builtins on sparc - Remove 32 bit sparc v7 support -:100644 100644 c61137c7 90cb78fa M glibc.spec -:100644 100644 1ee9aa8d d176a13e M sources +:100644 100644 c61137c 90cb78f M glibc.spec +:100644 100644 1ee9aa8 d176a13 M sources commit a9ba88d656ef82355541ca2bb3eb0d63e56878f9 Author: Arjun Shankar @@ -12442,8 +13576,8 @@ CommitDate: Wed Nov 27 16:23:05 2019 +0100 - nptl: Fix __PTHREAD_MUTEX_INITIALIZER for !__PTHREAD_MUTEX_HAVE_PREV - S390: Fix handling of needles crossing a page in strstr z15 ifunc [BZ #25226] -:100644 100644 8f824f71 c61137c7 M glibc.spec -:100644 100644 74af71f7 1ee9aa8d M sources +:100644 100644 8f824f7 c61137c M glibc.spec +:100644 100644 74af71f 1ee9aa8 M sources commit 967a41b547a03bf2ce258cc838e56e6ca568d220 Author: Patsy Franklin @@ -12470,8 +13604,8 @@ CommitDate: Mon Nov 18 19:21:14 2019 -0500 - aarch64: Increase small and medium cases for __memcpy_generic - login: Introduce matches_last_entry to utmp processing -:100644 100644 e0d996d5 8f824f71 M glibc.spec -:100644 100644 6c4fee69 74af71f7 M sources +:100644 100644 e0d996d 8f824f7 M glibc.spec +:100644 100644 6c4fee6 74af71f M sources commit 24846fb24d523a8549918dbdb1213024b1583f37 Author: Arjun Shankar @@ -12481,8 +13615,8 @@ CommitDate: Tue Nov 12 18:46:37 2019 +0100 Trim changelog -:100644 100644 28b5acee 784e33c4 M ChangeLog.old -:100644 100644 e99f69e1 e0d996d5 M glibc.spec +:100644 100644 28b5ace 784e33c M ChangeLog.old +:100644 100644 e99f69e e0d996d M glibc.spec commit 9bd4f8ff4363ca22d850f6ba272aa3f591fc9237 Author: Arjun Shankar @@ -12515,8 +13649,8 @@ CommitDate: Tue Nov 12 18:20:32 2019 +0100 - Fix clock_nanosleep when interrupted by a signal - slotinfo in struct dtv_slotinfo_list should be flexible array [BZ #25097] -:100644 100644 476f6927 e99f69e1 M glibc.spec -:100644 100644 b97fab14 6c4fee69 M sources +:100644 100644 476f692 e99f69e M glibc.spec +:100644 100644 b97fab1 6c4fee6 M sources commit ebf75398f06dd27357d8a5321e8e5959633b8182 Author: Patsy Franklin @@ -12567,10 +13701,10 @@ CommitDate: Wed Nov 6 15:12:38 2019 -0500 - hurd: Support for file record locking - Comment out initgroups from example nsswitch.conf (Bug 25146) -:100644 100644 952f13d2 d55e4e7b M SUPPORTED -:100644 100644 91015274 447a60ef M glibc-fedora-nsswitch.patch -:100644 100644 c94ce8a0 476f6927 M glibc.spec -:100644 100644 8e276a61 b97fab14 M sources +:100644 100644 952f13d d55e4e7 M SUPPORTED +:100644 100644 9101527 447a60e M glibc-fedora-nsswitch.patch +:100644 100644 c94ce8a 476f692 M glibc.spec +:100644 100644 8e276a6 b97fab1 M sources commit 0ce23ddfbe0e5e0b6b5d73bedf55dd5f467b7a3c Author: DJ Delorie @@ -12592,8 +13726,8 @@ CommitDate: Mon Oct 28 14:17:34 2019 -0400 - sysdeps/stat: Handle 64-bit ino_t types on 32-bit hosts - S390: Remove not needed stack frame in syscall function. -:100644 100644 0c79bea2 c94ce8a0 M glibc.spec -:100644 100644 2a39c70a 8e276a61 M sources +:100644 100644 0c79bea c94ce8a M glibc.spec +:100644 100644 2a39c70 8e276a6 M sources commit 59ddeeccffbeaa212f7d3442854626e0796039c4 Author: DJ Delorie @@ -12607,7 +13741,7 @@ CommitDate: Fri Oct 25 13:49:25 2019 -0400 installing all the separate lang files; but the lang files have the *.mo files which all-langpacks didn't. -:100644 100644 e9ddf8b6 0c79bea2 M glibc.spec +:100644 100644 e9ddf8b 0c79bea M glibc.spec commit eb580e4bc609c9b07278527cd90a74db548a23e2 Author: DJ Delorie @@ -12619,7 +13753,7 @@ CommitDate: Thu Oct 24 14:33:25 2019 -0400 Add Requires on coreutils for glibc-headers (uses rm) -:100644 100644 d288a2bf e9ddf8b6 M glibc.spec +:100644 100644 d288a2b e9ddf8b M glibc.spec commit 8936dd058af6160ac119a3e67972b93b66d161cc Author: Arjun Shankar @@ -12637,8 +13771,8 @@ CommitDate: Wed Oct 23 12:14:40 2019 +0200 - Remove x64 _finite tests and references - Fix testroot.pristine creation copying dynamic linker -:100644 100644 d27b6f9c d288a2bf M glibc.spec -:100644 100644 d42f569d 2a39c70a M sources +:100644 100644 d27b6f9 d288a2b M glibc.spec +:100644 100644 d42f569 2a39c70 M sources commit 8e7139fb4c04110da96a09db61bb41376709386a Author: Patsy Franklin @@ -12683,9 +13817,9 @@ CommitDate: Sun Oct 20 15:33:40 2019 -0400 - posix/tst-wordexp-nocmd: Fix diagnostics output in test - wordexp: Split out command execution tests from posix/wordexp-test -:100644 000000 c1e30d45 00000000 D glibc-rh1615608.patch -:100644 100644 11865a4e d27b6f9c M glibc.spec -:100644 100644 f142e09c d42f569d M sources +:100644 000000 c1e30d4 0000000 D glibc-rh1615608.patch +:100644 100644 11865a4 d27b6f9 M glibc.spec +:100644 100644 f142e09 d42f569 M sources commit 81c303b2354a29baade5782d48e30e7f2be62fd3 Author: Arjun Shankar @@ -12726,9 +13860,9 @@ CommitDate: Tue Oct 8 16:38:17 2019 +0200 - riscv: Remove support for variable page sizes - nptl: Move pthread_attr_setschedparam implementation into libc -:100644 100644 f7d06caf 3b21b89c M glibc-rh741105.patch -:100644 100644 49541d74 11865a4e M glibc.spec -:100644 100644 ff3cb745 f142e09c M sources +:100644 100644 f7d06ca 3b21b89 M glibc-rh741105.patch +:100644 100644 49541d7 11865a4 M glibc.spec +:100644 100644 ff3cb74 f142e09 M sources commit 64db3acbd3bee039cb3d8619158e680be951d5bf Author: Zbigniew Jędrzejewski-Szmek @@ -12738,8 +13872,8 @@ CommitDate: Mon Sep 30 11:36:45 2019 -0400 Use full locale names in langpack descriptions (#1651375) -:000000 100755 00000000 4a930414 A convnames.py -:100644 100644 1863f841 49541d74 M glibc.spec +:000000 100755 0000000 4a93041 A convnames.py +:100644 100644 1863f84 49541d7 M glibc.spec commit 46d12a81bfbeeac8495a0f2bce803b715196b7f2 Author: Patsy Franklin @@ -12773,8 +13907,8 @@ CommitDate: Thu Sep 26 22:30:13 2019 -0400 - Remove PREPARE_VERSION and PREPARE_VERSION_KNOW - Fix small error in HP_TIMING_PRINT trailing null char setting -:100644 100644 512d4f0a 1863f841 M glibc.spec -:100644 100644 c9d6d385 ff3cb745 M sources +:100644 100644 512d4f0 1863f84 M glibc.spec +:100644 100644 c9d6d38 ff3cb74 M sources commit ea59ae7dfe9d2e998a7d5be7e0de887d8c6b3543 Author: Parag Nemade @@ -12789,7 +13923,7 @@ CommitDate: Thu Sep 26 14:21:05 2019 +0530 Signed-off-by: Parag Nemade -:100644 100644 9346b739 512d4f0a M glibc.spec +:100644 100644 9346b73 512d4f0 M glibc.spec commit 61f15e90bc580a970b9647b0f68406f24dbbed55 Author: DJ Delorie @@ -12807,8 +13941,8 @@ CommitDate: Mon Sep 16 14:47:26 2019 -0400 - Fix three GNU license URLs, along with trailing-newline issues. - Prefer https to http for gnu.org and fsf.org URLs -:100644 100644 b3c23e18 9346b739 M glibc.spec -:100644 100644 5f97febf c9d6d385 M sources +:100644 100644 b3c23e1 9346b73 M glibc.spec +:100644 100644 5f97feb c9d6d38 M sources commit 6129ad64d4617aa3f02d0d880c639ffb78f9f5d2 Author: Patsy Franklin @@ -12854,8 +13988,8 @@ CommitDate: Fri Sep 6 07:38:07 2019 -0400 - login: pututxline could fail to overwrite existing entries [BZ #24902] - Fix posix/tst-regex by using a dedicated input-file. -:100644 100644 684e6826 b3c23e18 M glibc.spec -:100644 100644 ba58a14c 5f97febf M sources +:100644 100644 684e682 b3c23e1 M glibc.spec +:100644 100644 ba58a14 5f97feb M sources commit 1fa217076ec9c97f4f8f8919b9888730f4a305d0 Author: DJ Delorie @@ -12868,7 +14002,7 @@ CommitDate: Tue Aug 27 15:07:36 2019 -0400 The makedb program is only used to make databases for the nss_db module, so it makes sense to only install them together. -:100644 100644 d4ceec7f 684e6826 M glibc.spec +:100644 100644 d4ceec7 684e682 M glibc.spec commit 5846004b81345f5b77a4014403e05790580d651a Author: DJ Delorie @@ -12897,8 +14031,8 @@ CommitDate: Mon Aug 26 14:24:15 2019 -0400 - Add tgmath.h macros for narrowing functions. - Update i386 libm-test-ulps -:100644 100644 113e131c d4ceec7f M glibc.spec -:100644 100644 e7e30ceb ba58a14c M sources +:100644 100644 113e131 d4ceec7 M glibc.spec +:100644 100644 e7e30ce ba58a14 M sources commit 7e6e06c36d766c3da31360c1c465580c5dbbc8ac Author: Carlos O'Donell @@ -12917,11 +14051,11 @@ CommitDate: Tue Aug 20 17:03:01 2019 -0400 - login: Use struct flock64 in utmp (swbz#24880) - login: Disarm timer after utmp lock acquisition (swbz#24879) -:100644 000000 6a77a242 00000000 D glibc-fedora-nscd-warnings.patch -:000000 100644 00000000 91015274 A glibc-fedora-nsswitch.patch -:100644 100644 7e18ed3d 113e131c M glibc.spec -:100644 000000 ba87550e 00000000 D nsswitch.conf -:100644 100644 e2740829 e7e30ceb M sources +:100644 000000 6a77a24 0000000 D glibc-fedora-nscd-warnings.patch +:000000 100644 0000000 9101527 A glibc-fedora-nsswitch.patch +:100644 100644 7e18ed3 113e131 M glibc.spec +:100644 000000 ba87550 0000000 D nsswitch.conf +:100644 100644 e274082 e7e30ce M sources commit 72195d44855ab96875f117acb75c37f98dcb26a9 Author: Carlos O'Donell @@ -12935,8 +14069,8 @@ CommitDate: Fri Aug 16 10:07:58 2019 -0400 valid unicode code points, otherwise it treats it as a symbol and since we don't define the symbol the entire range is unused. -:100644 100644 7215e155 a4cf357a M glibc-c-utf8-locale.patch -:100644 100644 f0799caa 7e18ed3d M glibc.spec +:100644 100644 7215e15 a4cf357 M glibc-c-utf8-locale.patch +:100644 100644 f0799ca 7e18ed3 M glibc.spec commit 77335ae30ec1efddaa8935bc4283513b07f1cdb6 Author: Florian Weimer @@ -12946,7 +14080,7 @@ CommitDate: Thu Aug 15 10:41:39 2019 +0200 Source upload -:100644 100644 46dc6dd4 e2740829 M sources +:100644 100644 46dc6dd e274082 M sources commit 76ac51ab78c47ba3ae255e00919c430008c68877 Author: Florian Weimer @@ -12958,7 +14092,7 @@ CommitDate: Thu Aug 15 10:37:59 2019 +0200 Upstream commit: 341da5b4b6253de9a7581a066f33f89cacb44dec -:100644 100644 b20269d3 f0799caa M glibc.spec +:100644 100644 b20269d f0799ca M glibc.spec commit 293db26d857ebdef0ceeea5da44f166d91d0e5fb Author: Florian Weimer @@ -12968,7 +14102,7 @@ CommitDate: Fri Aug 2 14:24:18 2019 +0200 Fix changelog version -:100644 100644 b2b90b46 b20269d3 M glibc.spec +:100644 100644 b2b90b4 b20269d M glibc.spec commit 525a40ce11d4b3c028d8dce96df51327c75bd5c2 Author: Florian Weimer @@ -12978,7 +14112,7 @@ CommitDate: Fri Aug 2 14:23:17 2019 +0200 Lower the release number to 1 -:100644 100644 ca842c0f b2b90b46 M glibc.spec +:100644 100644 ca842c0 b2b90b4 M glibc.spec commit 1ff5b17afe1841482ef15ce32abeb8d8239a1beb Author: Florian Weimer @@ -12995,9 +14129,9 @@ CommitDate: Fri Aug 2 14:16:34 2019 +0200 - iconv: Revert steps array reference counting changes (#1734680) - Restore r31 setting in powerpc32 swapcontext -:100644 000000 c4b51374 00000000 D glibc-rh1734680.patch -:100644 100644 44db7646 ca842c0f M glibc.spec -:100644 100644 5d4c6f91 46dc6dd4 M sources +:100644 000000 c4b5137 0000000 D glibc-rh1734680.patch +:100644 100644 44db764 ca842c0 M glibc.spec +:100644 100644 5d4c6f9 46dc6dd M sources commit a4d24cbe4552a79c9f854fc308bb01afcd7f5b8e Author: Florian Weimer @@ -13007,8 +14141,8 @@ CommitDate: Wed Jul 31 11:53:38 2019 +0200 Fix memory leak in iconv_open (#1734680) -:000000 100644 00000000 c4b51374 A glibc-rh1734680.patch -:100644 100644 d1177ebd 44db7646 M glibc.spec +:000000 100644 0000000 c4b5137 A glibc-rh1734680.patch +:100644 100644 d1177eb 44db764 M glibc.spec commit b3c6eb0e4cfd2a5f8c809a2cc2dca961d1145f29 Author: Florian Weimer @@ -13030,9 +14164,9 @@ CommitDate: Tue Jul 30 11:05:22 2019 +0200 - Linux: Use in-tree copy of SO_ constants for !__USE_MISC (swbz#24532) - test-container: Avoid copying unintended system libraries -:100644 000000 37a1bc59 00000000 D glibc-rh1732406.patch -:100644 100644 f49ddb27 d1177ebd M glibc.spec -:100644 100644 137c8904 5d4c6f91 M sources +:100644 000000 37a1bc5 0000000 D glibc-rh1732406.patch +:100644 100644 f49ddb2 d1177eb M glibc.spec +:100644 100644 137c890 5d4c6f9 M sources commit 6144405435800b483f02ea08133a786c706eac92 Author: Fedora Release Engineering @@ -13044,7 +14178,7 @@ CommitDate: Thu Jul 25 03:41:31 2019 +0000 Signed-off-by: Fedora Release Engineering -:100644 100644 e77fda03 f49ddb27 M glibc.spec +:100644 100644 e77fda0 f49ddb2 M glibc.spec commit c96359dd1c6c259fa71ab51940e5c961fce53fa9 Author: Florian Weimer @@ -13054,8 +14188,8 @@ CommitDate: Tue Jul 23 12:14:15 2019 +0200 Revert libio change that causes crashes (#1732406) -:000000 100644 00000000 37a1bc59 A glibc-rh1732406.patch -:100644 100644 ec4ce293 e77fda03 M glibc.spec +:000000 100644 0000000 37a1bc5 A glibc-rh1732406.patch +:100644 100644 ec4ce29 e77fda0 M glibc.spec commit 8797f878024852d6febbec8a4b79296e99b47e3a Author: DJ Delorie @@ -13071,8 +14205,8 @@ CommitDate: Mon Jul 22 14:06:01 2019 -0400 - locale/C-translit.h.in: Cyrillic -> ASCII transliteration [BZ #2872] - Linux: Update syscall-names.list to Linux 5.2 -:100644 100644 0e44e398 ec4ce293 M glibc.spec -:100644 100644 45a45301 137c8904 M sources +:100644 100644 0e44e39 ec4ce29 M glibc.spec +:100644 100644 45a4530 137c890 M sources commit 5f0fe918a52e92f8700108ae5e09a4f1b2fee2bf Author: DJ Delorie @@ -13103,8 +14237,8 @@ CommitDate: Thu Jul 18 15:15:24 2019 -0400 - posix: Fix large mmap64 offset for mips64n32 (BZ#24699) - nss_db: fix endent wrt NULL mappings [BZ #24695] [BZ #24696] -:100644 100644 cccdda78 0e44e398 M glibc.spec -:100644 100644 47f2ac54 45a45301 M sources +:100644 100644 cccdda7 0e44e39 M glibc.spec +:100644 100644 47f2ac5 45a4530 M sources commit c098079671a2643b10ddf8e390aa153e027676da Author: Carlos O'Donell @@ -13132,8 +14266,8 @@ CommitDate: Wed Jul 10 12:49:03 2019 -0400 - Linux: Add nds32 specific syscalls to syscall-names.list - szl_PL locale: Fix a typo in the previous commit (bug 24652). -:100644 100644 ca8da28c cccdda78 M glibc.spec -:100644 100644 ffe67e5c 47f2ac54 M sources +:100644 100644 ca8da28 cccdda7 M glibc.spec +:100644 100644 ffe67e5 47f2ac5 M sources commit 4a003b4922c29c370e8d81355949b53899aff30c Author: DJ Delorie @@ -13152,8 +14286,8 @@ CommitDate: Mon Jun 24 15:59:37 2019 -0400 - support: Invent verbose_printf macro - support: Add xclock_now helper function. -:100644 100644 a9a20f82 ca8da28c M glibc.spec -:100644 100644 26707a19 ffe67e5c M sources +:100644 100644 a9a20f8 ca8da28 M glibc.spec +:100644 100644 26707a1 ffe67e5 M sources commit ca11f82b699604ed6375b632954441384d3a3ae6 Author: Carlos O'Donell @@ -13166,8 +14300,8 @@ CommitDate: Mon Jun 24 10:59:03 2019 -0400 The patch has been removed and will be added back once F31 branches. No official build happened so we can just remove the NEVRA usage. -:100644 000000 2b921ac7 00000000 D glibc-fedora-memalign.patch -:100644 100644 16a73d90 a9a20f82 M glibc.spec +:100644 000000 2b921ac 0000000 D glibc-fedora-memalign.patch +:100644 100644 16a73d9 a9a20f8 M glibc.spec commit b21f47f28708350d0b21fb9870be32bdddb3ef9b Author: Carlos O'Donell @@ -13177,8 +14311,8 @@ CommitDate: Fri Jun 21 08:13:12 2019 -0400 Reduce external fragmentation in memalign (swbz#14581). -:000000 100644 00000000 2b921ac7 A glibc-fedora-memalign.patch -:100644 100644 a9a20f82 16a73d90 M glibc.spec +:000000 100644 0000000 2b921ac A glibc-fedora-memalign.patch +:100644 100644 a9a20f8 16a73d9 M glibc.spec commit d53844dd72f7b9caac2f5b0e5d803b0815e2febb Author: Florian Weimer @@ -13201,8 +14335,8 @@ CommitDate: Fri Jun 21 09:40:58 2019 +0200 - powerpc: Refactor powerpc64 lround/lroundf/llround/llroundf - powerpc: refactor powerpc64 lrint/lrintf/llrint/llrintf -:100644 100644 c93262b3 a9a20f82 M glibc.spec -:100644 100644 bfec39a5 26707a19 M sources +:100644 100644 c93262b a9a20f8 M glibc.spec +:100644 100644 bfec39a 26707a1 M sources commit 134a36d7f8bad4d46e1d9a8a6c2768a955833559 Author: Florian Weimer @@ -13212,7 +14346,7 @@ CommitDate: Mon Jun 17 15:45:58 2019 +0200 Remove comments on %endif, required by newer RPM -:100644 100644 29d500f3 c93262b3 M glibc.spec +:100644 100644 29d500f c93262b M glibc.spec commit a464847a25b15f2621e9a6b54882a2457781f77d Author: Florian Weimer @@ -13248,8 +14382,8 @@ CommitDate: Mon Jun 17 14:36:16 2019 +0200 - Benchmark strstr hard needles - Fix malloc tests build with GCC 10 -:100644 100644 336b7bf6 29d500f3 M glibc.spec -:100644 100644 7d75f3eb bfec39a5 M sources +:100644 100644 336b7bf 29d500f M glibc.spec +:100644 100644 7d75f3e bfec39a M sources commit 9c5a4265d8d93a528a816da719cbc660d1196b6d Author: Patsy Franklin @@ -13267,8 +14401,8 @@ CommitDate: Mon Jun 10 13:01:36 2019 -0400 - iconv: Use __twalk_r in __gconv_release_shlib - Fix iconv buffer handling with IGNORE error handler (swbz#18830) -:100644 100644 4c96784f 336b7bf6 M glibc.spec -:100644 100644 a07f13ee 7d75f3eb M sources +:100644 100644 4c96784 336b7bf M glibc.spec +:100644 100644 a07f13e 7d75f3e M sources commit bd8d2430b4dbd5919cb0bb54332db377ad0934cd Author: Florian Weimer @@ -13278,8 +14412,8 @@ CommitDate: Wed Jun 5 12:20:08 2019 +0200 Restore /usr/lib/locale/locale-archive under its original name (#1716710) -:100644 000000 6a9412f3 00000000 D glibc-rh1716710.patch -:100644 100644 7320848c 4c96784f M glibc.spec +:100644 000000 6a9412f 0000000 D glibc-rh1716710.patch +:100644 100644 7320848 4c96784 M glibc.spec commit 819bb4065ce3704ef2a3dba2ef1d9780adeebae9 Author: Florian Weimer @@ -13289,8 +14423,8 @@ CommitDate: Tue Jun 4 16:02:20 2019 +0200 Add glibc version to locale-archive name (#1716710) -:000000 100644 00000000 6a9412f3 A glibc-rh1716710.patch -:100644 100644 1b35e9d1 7320848c M glibc.spec +:000000 100644 0000000 6a9412f A glibc-rh1716710.patch +:100644 100644 1b35e9d 7320848 M glibc.spec commit 3aed6a961c489d512e4d2b1f95505c6d0696d3b1 Author: Carlos O'Donell @@ -13306,8 +14440,8 @@ CommitDate: Mon Jun 3 16:07:16 2019 -0400 - arm: Remove ioperm/iopl/inb/inw/inl/outb/outw/outl support. - Add INADDR_ALLSNOOPERS_GROUP from Linux 5.1 to netinet/in.h. -:100644 100644 2dde267a 1b35e9d1 M glibc.spec -:100644 100644 33682ffc a07f13ee M sources +:100644 100644 2dde267 1b35e9d M glibc.spec +:100644 100644 33682ff a07f13e M sources commit 34927af202deb7d97dbb211a3cb13b1c53b496d3 Author: Carlos O'Donell @@ -13317,9 +14451,9 @@ CommitDate: Sat Jun 1 20:23:38 2019 -0400 Convert glibc_post_upgrade to lua. -:100644 000000 a64adfcd 00000000 D glibc-post_upgrade.patch -:100644 100644 16cf4c0e 2dde267a M glibc.spec -:100644 000000 9014857f 00000000 D glibc_post_upgrade.c +:100644 000000 a64adfc 0000000 D glibc-post_upgrade.patch +:100644 100644 16cf4c0 2dde267 M glibc.spec +:100644 000000 9014857 0000000 D glibc_post_upgrade.c commit fcb40838939e1ea02ed122a8d5f48cf2be734845 Author: Florian Weimer @@ -13338,8 +14472,8 @@ CommitDate: Sat Jun 1 13:41:32 2019 +0200 - tt_RU: Fix orthographic mistakes in mon and abmon sections (swbz#24369) - Add IGMP_MRDISC_ADV from Linux 5.1 to netinet/igmp.h. -:100644 100644 6995753d 16cf4c0e M glibc.spec -:100644 100644 ad27d2fc 33682ffc M sources +:100644 100644 6995753 16cf4c0 M glibc.spec +:100644 100644 ad27d2f 33682ff M sources commit 50bcae98df7d383733d4d6d896b9e1e829914eb0 Author: Florian Weimer @@ -13351,9 +14485,9 @@ CommitDate: Sat Jun 1 13:13:40 2019 +0200 Reviewed-by: Carlos O'Donell -:100644 000000 91839723 00000000 D build-locale-archive.c -:100644 000000 299b0f06 00000000 D glibc-fedora-locarchive.patch -:100644 100644 775ecef3 6995753d M glibc.spec +:100644 000000 9183972 0000000 D build-locale-archive.c +:100644 000000 299b0f0 0000000 D glibc-fedora-locarchive.patch +:100644 100644 775ecef 6995753 M glibc.spec commit 74725dd94ede74f445c16a936024baf108594903 Author: Arjun Shankar @@ -13370,8 +14504,8 @@ CommitDate: Mon May 27 14:46:58 2019 +0200 - Add F_SEAL_FUTURE_WRITE from Linux 5.1 to bits/fcntl-linux.h - nss_dns: Check for proper A/AAAA address alignment -:100644 100644 e9da7116 775ecef3 M glibc.spec -:100644 100644 8aeb1ecc ad27d2fc M sources +:100644 100644 e9da711 775ecef M glibc.spec +:100644 100644 8aeb1ec ad27d2f M sources commit 9701fdade7415cc798e0bd17efd1c5310789fb93 Author: DJ Delorie @@ -13403,8 +14537,8 @@ CommitDate: Tue May 21 14:21:21 2019 -0400 - dlfcn: Guard __dlerror_main_freeres with __libc_once_get (once) [swbz# 24476] - Add missing Changelog entry -:100644 100644 df07e140 e9da7116 M glibc.spec -:100644 100644 c08fdc1b 8aeb1ecc M sources +:100644 100644 df07e14 e9da711 M glibc.spec +:100644 100644 c08fdc1 8aeb1ec M sources commit 6666c40188f4103b0ec2dcbc0e7d0f80fa30ce9f Author: Florian Weimer @@ -13451,8 +14585,8 @@ CommitDate: Wed May 15 17:55:39 2019 +0200 - elf: Fix elf/tst-pldd with --enable-hardcoded-path-in-tests (swbz#24506) - misc: Add twalk_r function -:100644 100644 391b768a df07e140 M glibc.spec -:100644 100644 7b1d9f87 c08fdc1b M sources +:100644 100644 391b768 df07e14 M glibc.spec +:100644 100644 7b1d9f8 c08fdc1 M sources commit 4124e42f39ca859587745c25caffd0733ef2e456 Author: Arjun Shankar @@ -13470,8 +14604,8 @@ CommitDate: Thu May 2 13:03:35 2019 +0200 - Fix -O1 compilation errors with `__ddivl' and `__fdivl' [BZ #19444] - Make mktime etc. compatible with __time64_t -:100644 100644 22692fc1 391b768a M glibc.spec -:100644 100644 abbb4906 7b1d9f87 M sources +:100644 100644 22692fc 391b768 M glibc.spec +:100644 100644 abbb490 7b1d9f8 M sources commit d9394d9d7e84eb1e5197d8ffb7ed277584e345f1 Author: Florian Weimer @@ -13489,8 +14623,8 @@ CommitDate: Fri Apr 26 13:51:28 2019 +0200 - locale: Add LOCPATH diagnostics to the locale program - benchtests: Enable BIND_NOW if configured with --enable-bind-now -:100644 100644 cf61b18c 22692fc1 M glibc.spec -:100644 100644 7bfa9354 abbb4906 M sources +:100644 100644 cf61b18 22692fc M glibc.spec +:100644 100644 7bfa935 abbb490 M sources commit 47192f413e15f42d0b6d2aeb869ce13f4e75ee25 Author: DJ Delorie @@ -13511,8 +14645,8 @@ CommitDate: Mon Apr 22 15:33:30 2019 -0400 - support: Add support_capture_subprogram - stdlib/tst-secure-getenv: handle >64 groups -:100644 100644 d16a96d6 cf61b18c M glibc.spec -:100644 100644 d6a53be1 7bfa9354 M sources +:100644 100644 d16a96d cf61b18 M glibc.spec +:100644 100644 d6a53be 7bfa935 M sources commit 448365c7f7e6924929c5bcfba271cde4751f97d5 Author: Florian Weimer @@ -13528,8 +14662,8 @@ CommitDate: Mon Apr 15 15:05:30 2019 +0200 - alloc_buffer: Return unqualified pointer type in alloc_buffer_next - malloc: Set and reset all hooks for tracing (swbz#16573) -:100644 100644 9c44fd68 d16a96d6 M glibc.spec -:100644 100644 15c2aa00 d6a53be1 M sources +:100644 100644 9c44fd6 d16a96d M glibc.spec +:100644 100644 15c2aa0 d6a53be M sources commit a54853472d5f9ec445fcf0be957f3aa68e852a8c Author: Florian Weimer @@ -13539,7 +14673,7 @@ CommitDate: Thu Apr 11 21:53:43 2019 +0200 Run valgrind smoke test against the install tree -:100644 100644 c0805267 9c44fd68 M glibc.spec +:100644 100644 c080526 9c44fd6 M glibc.spec commit dcaaa784676727b0ea9206c6c6aa0e8ef955a1e1 Author: Florian Weimer @@ -13549,7 +14683,7 @@ CommitDate: Thu Apr 11 12:18:48 2019 +0200 Do not use --g-libs with find-debuginfo.sh; it breaks valgrind (#1698824) -:100644 100644 586e94da c0805267 M glibc.spec +:100644 100644 586e94d c080526 M glibc.spec commit 7b77f1b10ff9c4a50f36e2d2805fbf783a81b55d Author: Florian Weimer @@ -13559,7 +14693,7 @@ CommitDate: Wed Apr 10 10:26:43 2019 +0200 Strip debugging information from installed programs again (#1661510) -:100644 100644 562aba2a 586e94da M glibc.spec +:100644 100644 562aba2 586e94d M glibc.spec commit b797613532f113578d9c3e229a921b0e732ae145 Author: Carlos O'Donell @@ -13580,9 +14714,9 @@ CommitDate: Tue Apr 9 11:11:06 2019 -0400 - resolv: Remove support for RES_USE_INET6 and the inet6 option - resolv: Remove RES_INSECURE1, RES_INSECURE2 -:100644 000000 0e4afa10 00000000 D glibc-warning-fix.patch -:100644 100644 7612be9f 562aba2a M glibc.spec -:100644 100644 71350b8a 15c2aa00 M sources +:100644 000000 0e4afa1 0000000 D glibc-warning-fix.patch +:100644 100644 7612be9 562aba2 M glibc.spec +:100644 100644 71350b8 15c2aa0 M sources commit e4dacdad3d14585c74a67f9ea450eca030716e0c Author: Arjun Shankar @@ -13600,8 +14734,8 @@ CommitDate: Thu Apr 4 03:07:08 2019 +0200 - ja_JP locale: Add entry for the new Japanese era [BZ #22964] - Add Reiwa era tests to time/tst-strftime3.c -:100644 100644 667ec057 7612be9f M glibc.spec -:100644 100644 6418979a 71350b8a M sources +:100644 100644 667ec05 7612be9 M glibc.spec +:100644 100644 6418979 71350b8 M sources commit 539fe8abbd575c2cb34c59b8bb52bdd73c76b1b7 Author: Arjun Shankar @@ -13611,7 +14745,7 @@ CommitDate: Mon Apr 1 18:33:52 2019 +0200 Update sources file -:100644 100644 94170ab0 6418979a M sources +:100644 100644 94170ab 6418979 M sources commit 7b2061df55ba606e8a67e096248e38bce41b2c83 Author: Arjun Shankar @@ -13643,7 +14777,7 @@ CommitDate: Mon Apr 1 16:45:15 2019 +0200 - powerpc: Use __builtin_{mffs,mtfsf} - RISC-V: Fix `test' operand error with soft-float ABI being configured -:100644 100644 47d9185a 667ec057 M glibc.spec +:100644 100644 47d9185 667ec05 M glibc.spec commit bfa3999fdd34d449196784049222ddd5022a3ecb Author: Carlos O'Donell @@ -13653,7 +14787,7 @@ CommitDate: Wed Mar 20 22:41:20 2019 -0400 Fix %changelog date. -:100644 100644 0eaa5edc 47d9185a M glibc.spec +:100644 100644 0eaa5ed 47d9185 M glibc.spec commit 82a97343d6405772541d754aeb4bab79612bd839 Author: Carlos O'Donell @@ -13663,9 +14797,9 @@ CommitDate: Wed Mar 20 22:36:49 2019 -0400 Add warnings and notes to /etc/nsswitch.conf and /etc/nscd.conf. -:000000 100644 00000000 6a77a242 A glibc-fedora-nscd-warnings.patch -:100644 100644 96def0fa 0eaa5edc M glibc.spec -:100644 100644 b49a3b27 ba87550e M nsswitch.conf +:000000 100644 0000000 6a77a24 A glibc-fedora-nscd-warnings.patch +:100644 100644 96def0f 0eaa5ed M glibc.spec +:100644 100644 b49a3b2 ba87550 M nsswitch.conf commit a84cd6b5305baaba9d03431a10ecd35802bf348e Author: DJ Delorie @@ -13686,8 +14820,8 @@ CommitDate: Mon Mar 18 13:23:22 2019 -0400 5b06f538c5 malloc: Check for large bin list corruption when inserting unsorted chunk a0a0dc8317 Remove obsolete, never-implemented XSI STREAMS declarations -:100644 100644 950bf140 96def0fa M glibc.spec -:100644 100644 1b699a0a 94170ab0 M sources +:100644 100644 950bf14 96def0f M glibc.spec +:100644 100644 1b699a0 94170ab M sources commit fdf2115d36548c89f99e39a43bc35e3a2411b3f0 Author: Florian Weimer @@ -13710,9 +14844,9 @@ CommitDate: Thu Mar 14 16:18:47 2019 +0100 - Use a proper C tokenizer to implement the obsolete typedefs test. - Fix output of LD_SHOW_AUXV=1. -:100644 000000 0d8f7d90 00000000 D glibc-fedora-streams-rh436349.patch -:100644 100644 bfaf8d8b 950bf140 M glibc.spec -:100644 100644 182cd2f9 1b699a0a M sources +:100644 000000 0d8f7d9 0000000 D glibc-fedora-streams-rh436349.patch +:100644 100644 bfaf8d8 950bf14 M glibc.spec +:100644 100644 182cd2f 1b699a0 M sources commit 4d79a1a6ddd9c16f2764a9d4adb1ce74c88a5076 Author: Florian Weimer @@ -13722,7 +14856,7 @@ CommitDate: Wed Mar 13 17:44:44 2019 +0100 Update sources -:100644 100644 b085d406 182cd2f9 M sources +:100644 100644 b085d40 182cd2f M sources commit 70ec0cd8b9acb1aaf7df30e86728a558bfdb1e21 Author: Florian Weimer @@ -13747,8 +14881,8 @@ CommitDate: Wed Mar 13 13:33:01 2019 +0100 - check-wrapper-headers test: Adjust Fortran include file directory - Fix location where math-vector-fortran.h is installed. -:100644 000000 d1dbe3f7 00000000 D glibc-rh1670028.patch -:100644 100644 0cbeb52b bfaf8d8b M glibc.spec +:100644 000000 d1dbe3f 0000000 D glibc-rh1670028.patch +:100644 100644 0cbeb52 bfaf8d8 M glibc.spec commit 97506ad65a03a9551cec2d6be9a3a27e9b66cb40 Author: Jeroen van Meeuwen (Kolab Systems) @@ -13758,7 +14892,7 @@ CommitDate: Fri Mar 8 13:24:23 2019 +0100 It's there now... -:100644 100644 f7287648 0cbeb52b M glibc.spec +:100644 100644 f728764 0cbeb52 M glibc.spec commit 5b4007bb565c549efa1b37a61afe390f656398ab Author: Jeroen van Meeuwen (Kolab Systems) @@ -13772,7 +14906,7 @@ CommitDate: Fri Mar 8 13:24:23 2019 +0100 excluded essentials from the bootstrapped build. Also, mtrace isn't built when bootstrapping. -:100644 100644 4f65b740 f7287648 M glibc.spec +:100644 100644 4f65b74 f728764 M glibc.spec commit 9f81c9aa6eaa98b2a810edd8719009deb70899ce Author: DJ Delorie @@ -13814,8 +14948,8 @@ CommitDate: Wed Mar 6 15:56:00 2019 -0500 - Break further lines before not after operators. - Add and move fall-through comments in system-specific code. -:100644 100644 587500ac 4f65b740 M glibc.spec -:100644 100644 eaadbd2f b085d406 M sources +:100644 100644 587500a 4f65b74 M glibc.spec +:100644 100644 eaadbd2 b085d40 M sources commit 2300402532b257c994ab0e163790c7d527eb4b37 Author: DJ Delorie @@ -13828,7 +14962,7 @@ CommitDate: Fri Mar 1 14:45:22 2019 -0500 Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1680765 by adding -i to find-debuginfo.sh flags. -:100644 100644 c1f1c270 587500ac M glibc.spec +:100644 100644 c1f1c27 587500a M glibc.spec commit 8a209c638d58aac2aab751a49f77b64c112b3f97 Author: Carlos O'Donell @@ -13841,8 +14975,8 @@ CommitDate: Thu Feb 28 02:09:46 2019 -0500 Raised upstream: https://www.sourceware.org/ml/libc-alpha/2019-02/msg00656.html -:000000 100644 00000000 0e4afa10 A glibc-warning-fix.patch -:100644 100644 f95d41d3 c1f1c270 M glibc.spec +:000000 100644 0000000 0e4afa1 A glibc-warning-fix.patch +:100644 100644 f95d41d c1f1c27 M glibc.spec commit 047399b0d0f0f454e81f971345e2357b3e552cef Author: Carlos O'Donell @@ -13875,8 +15009,8 @@ CommitDate: Tue Feb 26 09:31:34 2019 -0500 - nptl: Reinstate pthread_timedjoin_np as a cancellation point (swbz#24215) - nptl: Fix invalid Systemtap probe in pthread_join (swbz#24211) -:100644 100644 d75332ab f95d41d3 M glibc.spec -:100644 100644 2a402e26 eaadbd2f M sources +:100644 100644 d75332a f95d41d M glibc.spec +:100644 100644 2a402e2 eaadbd2 M sources commit 1c5b89063faebbc28555f081d8f345a810b5b08a Author: Florian Weimer @@ -13891,9 +15025,9 @@ CommitDate: Tue Feb 19 08:33:22 2019 +0100 - Drop glibc-rh1674280.patch. Different fix applied upstream. (#1674280) - nptl: Fix invalid Systemtap probe in pthread_join (#1674280) -:100644 000000 38603c1c 00000000 D glibc-rh1674280.patch -:100644 100644 53e2d1be d75332ab M glibc.spec -:100644 100644 792b1e48 2a402e26 M sources +:100644 000000 38603c1 0000000 D glibc-rh1674280.patch +:100644 100644 53e2d1b d75332a M glibc.spec +:100644 100644 792b1e4 2a402e2 M sources commit b82e3b3f858003dea1e90a386f3a269a26c26262 Author: Florian Weimer @@ -13903,8 +15037,8 @@ CommitDate: Mon Feb 11 21:42:14 2019 +0100 Hotfix for invalid Systemtap probe in pthread_join (#1674280) -:000000 100644 00000000 38603c1c A glibc-rh1674280.patch -:100644 100644 610a967c 53e2d1be M glibc.spec +:000000 100644 0000000 38603c1 A glibc-rh1674280.patch +:100644 100644 610a967 53e2d1b M glibc.spec commit 8e6306e00417f7ae3de244fbb2d0f58bc74631f1 Author: Florian Weimer @@ -13914,8 +15048,8 @@ CommitDate: Mon Feb 11 09:53:45 2019 +0100 Remove LRA bug on POWER workaround, fixed in gcc-9.0.1-0.4.fc30 (#1673018) -:100644 000000 1ab4a097 00000000 D glibc-rh1673018.patch -:100644 100644 2764bd57 610a967c M glibc.spec +:100644 000000 1ab4a09 0000000 D glibc-rh1673018.patch +:100644 100644 2764bd5 610a967 M glibc.spec commit 5fff0126341c1a4aef0909133be38058058d9bf7 Author: Florian Weimer @@ -13930,8 +15064,8 @@ CommitDate: Mon Feb 11 09:51:14 2019 +0100 - nptl: Avoid fork handler lock for async-signal-safe fork (swbz#24161) - nptl: Add compiler barriers in pthread_mutex_trylock (swbz#24180) -:100644 100644 eba2f984 2764bd57 M glibc.spec -:100644 100644 d612ecd8 792b1e48 M sources +:100644 100644 eba2f98 2764bd5 M glibc.spec +:100644 100644 d612ecd 792b1e4 M sources commit 123aebc7d4d234ee8c4685d1dff1b7f95ec17b79 Author: Florian Weimer @@ -13941,8 +15075,8 @@ CommitDate: Thu Feb 7 10:49:48 2019 +0100 Work around LRA hang on ppc64le (#1673018) -:000000 100644 00000000 1ab4a097 A glibc-rh1673018.patch -:100644 100644 ff9a4999 eba2f984 M glibc.spec +:000000 100644 0000000 1ab4a09 A glibc-rh1673018.patch +:100644 100644 ff9a499 eba2f98 M glibc.spec commit 109c797f856de25442bef583bc5217146db4c654 Author: Florian Weimer @@ -13956,8 +15090,8 @@ CommitDate: Wed Feb 6 09:10:05 2019 +0100 - arm: Use "nr" constraint for Systemtap probes (#1196181) -:100644 100644 31271884 ff9a4999 M glibc.spec -:100644 100644 bdd58f7e d612ecd8 M sources +:100644 100644 3127188 ff9a499 M glibc.spec +:100644 100644 bdd58f7 d612ecd M sources commit 0ba614c06da32434ecd10a8d39ecea8ce618dd08 Author: Florian Weimer @@ -13970,7 +15104,7 @@ CommitDate: Fri Feb 1 13:38:20 2019 +0100 As a result, future mass rebuilds will increment the Release: field as expected. -:100644 100644 c49e6252 31271884 M glibc.spec +:100644 100644 c49e625 3127188 M glibc.spec commit de5b416635eda3506c49077d2f0191f3cd526b39 Author: Carlos O'Donell @@ -13984,8 +15118,8 @@ CommitDate: Thu Jan 31 22:15:26 2019 -0500 - nptl: Fix pthread_rwlock_try*lock stalls (swbz#23844) -:100644 100644 837b5345 c49e6252 M glibc.spec -:100644 100644 eda9d3bc bdd58f7e M sources +:100644 100644 837b534 c49e625 M glibc.spec +:100644 100644 eda9d3b bdd58f7 M sources commit b4e36d719db75493ce47235160211957a79754de Author: Fedora Release Engineering @@ -13997,7 +15131,7 @@ CommitDate: Thu Jan 31 22:40:19 2019 +0000 Signed-off-by: Fedora Release Engineering -:100644 100644 b2d9397d 837b5345 M glibc.spec +:100644 100644 b2d9397 837b534 M glibc.spec commit e7b9f886b07c1ac8067039d3b4ec5a4414687701 Author: DJ Delorie @@ -14011,8 +15145,8 @@ CommitDate: Mon Jan 28 16:12:03 2019 -0500 - Update translations. -:100644 100644 52104eba b2d9397d M glibc.spec -:100644 100644 85d97be0 eda9d3bc M sources +:100644 100644 52104eb b2d9397 M glibc.spec +:100644 100644 85d97be eda9d3b M sources commit 5d5d75dce29aa11797c3fa88327712fa192e26bf Author: Florian Weimer @@ -14022,7 +15156,7 @@ CommitDate: Mon Jan 28 14:38:03 2019 +0100 Fix broken patch -:100644 100644 f7b6d137 d1dbe3f7 M glibc-rh1670028.patch +:100644 100644 f7b6d13 d1dbe3f M glibc-rh1670028.patch commit 88850a88bb70ad70e52454dc393d2b73b6b2985d Author: Florian Weimer @@ -14032,8 +15166,8 @@ CommitDate: Mon Jan 28 14:28:25 2019 +0100 resolv: Enable full ICMP error reporting in stub resolver (#1670028) -:000000 100644 00000000 f7b6d137 A glibc-rh1670028.patch -:100644 100644 06b3ce6a 52104eba M glibc.spec +:000000 100644 0000000 f7b6d13 A glibc-rh1670028.patch +:100644 100644 06b3ce6 52104eb M glibc.spec commit 657df544496a86708b353e05b0daa513fa638a7a Author: Florian Weimer @@ -14043,7 +15177,7 @@ CommitDate: Mon Jan 28 14:09:37 2019 +0100 Remove obsolete scriptlets (release bump) -:100644 100644 1a5cf2a0 06b3ce6a M glibc.spec +:100644 100644 1a5cf2a 06b3ce6 M glibc.spec commit 1ebcbd5e46a89af542cdfc2070ad668f65654905 Author: Igor Gnatenko @@ -14056,7 +15190,7 @@ CommitDate: Sun Jan 27 18:58:44 2019 +0100 References: https://fedoraproject.org/wiki/Changes/RemoveObsoleteScriptlets Signed-off-by: Igor Gnatenko -:100644 100644 1328315b 1a5cf2a0 M glibc.spec +:100644 100644 1328315 1a5cf2a M glibc.spec commit 70a46f30e19552d14b52442612a116b7b27d55da Author: Florian Weimer @@ -14072,8 +15206,8 @@ CommitDate: Fri Jan 25 11:55:20 2019 +0100 - strftime: Pass the additional flags from %EY to %Ey (swbz#24096) - strftime: Set the default width of %Ey to 2 (swbz#23758) -:100644 100644 3f196200 1328315b M glibc.spec -:100644 100644 6d351624 85d97be0 M sources +:100644 100644 3f19620 1328315 M glibc.spec +:100644 100644 6d35162 85d97be M sources commit 7c5e863b5b6a248b62d9334ea15ea0be01139db1 Author: Florian Weimer @@ -14090,8 +15224,8 @@ CommitDate: Thu Jan 24 13:01:30 2019 +0100 - resolv: Do not send queries for non-host-names in nss_dns (swbz#24112) - malloc: Revert fastbins to old-style atomics -:100644 100644 9ac2b984 3f196200 M glibc.spec -:100644 100644 d795aecf 6d351624 M sources +:100644 100644 9ac2b98 3f19620 M glibc.spec +:100644 100644 d795aec 6d35162 M sources commit 133c946b2f1008fe88bc1c57d91208d72b8fb0c6 Author: Florian Weimer @@ -14101,7 +15235,7 @@ CommitDate: Wed Jan 23 17:22:30 2019 +0100 Use assembler to produce annobin notes for nonshared libraries (#1668822) -:100644 100644 a26634c2 9ac2b984 M glibc.spec +:100644 100644 a26634c 9ac2b98 M glibc.spec commit ec674e19b8095a322f2535add0a9552a1c1a499e Author: Carlos O'Donell @@ -14118,8 +15252,8 @@ CommitDate: Wed Jan 16 11:51:15 2019 -0500 - AArch64: Add ifunc support for Ares - soft-fp: Properly check _FP_W_TYPE_SIZE (swbz#24066) -:100644 100644 026f4094 a26634c2 M glibc.spec -:100644 100644 6482fac8 d795aecf M sources +:100644 100644 026f409 a26634c M glibc.spec +:100644 100644 6482fac d795aec M sources commit 4265b0b8f64c4b1f99d62a320bc66f5c27fd2f23 Author: Florian Weimer @@ -14129,7 +15263,7 @@ CommitDate: Thu Jan 10 12:29:48 2019 +0100 Inherit -march=haswell flag from redhat-rpm-config -:100644 100644 f0204f40 026f4094 M glibc.spec +:100644 100644 f0204f4 026f409 M glibc.spec commit 062fb704dba992102382c0ef00319455500c0612 Author: Arjun Shankar @@ -14139,7 +15273,7 @@ CommitDate: Mon Jan 7 19:07:19 2019 +0100 Update sources file -:100644 100644 3f10b353 6482fac8 M sources +:100644 100644 3f10b35 6482fac M sources commit 1aba59b258b63a51b9a2e44cd407db21c86eaca2 Author: Arjun Shankar @@ -14168,8 +15302,8 @@ CommitDate: Mon Jan 7 17:22:11 2019 +0100 - Y2038: add __{localtime64,gmttime64,ctime64}[_r] functions - Y2038: make __difftime compatible with 64-bit time -:100644 100644 a9a7a4fb 224c5198 M glibc-python3.patch -:100644 100644 7af462f4 f0204f40 M glibc.spec +:100644 100644 a9a7a4f 224c519 M glibc-python3.patch +:100644 100644 7af462f f0204f4 M glibc.spec commit 650d554f72b58ab1db93f20c001e27947208e993 Author: DJ Delorie @@ -14186,8 +15320,8 @@ CommitDate: Mon Dec 17 14:16:58 2018 -0500 - regex: fix heap-use-after-free error (swbz#18040) - manual: Document thread/task IDs for Linux -:100644 100644 71bc29d6 7af462f4 M glibc.spec -:100644 100644 dd10e926 3f10b353 M sources +:100644 100644 71bc29d 7af462f M glibc.spec +:100644 100644 dd10e92 3f10b35 M sources commit 60935671c32d94a0c5da5f6a4da8bda8140da5ba Author: Carlos O'Donell @@ -14202,8 +15336,8 @@ CommitDate: Thu Dec 13 12:14:55 2018 -0500 - powerpc: missing CFI register information in __mpn_* functions (swbz#23614) - rdlock stalls indefinitely on an unlocked pthread rwlock (swbz#23861) -:100644 100644 53a9f5f6 71bc29d6 M glibc.spec -:100644 100644 2fa9189f dd10e926 M sources +:100644 100644 53a9f5f 71bc29d M glibc.spec +:100644 100644 2fa9189 dd10e92 M sources commit 7a4d7ca1849caa92a68087e7e67de860e98814c9 Author: Carlos O'Donell @@ -14219,8 +15353,8 @@ CommitDate: Tue Dec 11 12:33:20 2018 -0500 - test-container: move postclean outside of namespace changes (swbz#23948) - Enable VDSO for static linking on mips (swbz#19767) -:100644 100644 9f72def4 53a9f5f6 M glibc.spec -:100644 100644 3b0944ac 2fa9189f M sources +:100644 100644 9f72def 53a9f5f M glibc.spec +:100644 100644 3b0944a 2fa9189 M sources commit 1d88b65b1d1f4d63b5777cdff8dbc0e8ccc6860c Author: Florian Weimer @@ -14241,8 +15375,8 @@ CommitDate: Mon Dec 10 16:51:13 2018 +0100 - Preparations for 64-bit time_t on 32-bit architectures - Enable VDSO for static linking on arm (swbz#19767) -:100644 100644 1469e0c3 9f72def4 M glibc.spec -:100644 100644 c9121d19 3b0944ac M sources +:100644 100644 1469e0c 9f72def M glibc.spec +:100644 100644 c9121d1 3b0944a M sources commit b8873c0d8bc363e54233c7eb270db09ad1102c7a Author: Florian Weimer @@ -14263,8 +15397,8 @@ CommitDate: Mon Dec 3 14:58:02 2018 +0100 - Fix _dl_profile_fixup data-dependency issue (swbz#23690) - Enable VDSO for static linking on aarch64 -:100644 100644 485042c6 1469e0c3 M glibc.spec -:100644 100644 8daabbec c9121d19 M sources +:100644 100644 485042c 1469e0c M glibc.spec +:100644 100644 8daabbe c9121d1 M sources commit afea8221580111d20d169edb5c3b6787e58826d3 Author: Carlos O'Donell @@ -14276,7 +15410,7 @@ CommitDate: Thu Nov 29 16:40:16 2018 -0500 - Move requirement on libgcc from glibc-devel to glibc (#1352973) -:100644 100644 d553c5b3 485042c6 M glibc.spec +:100644 100644 d553c5b 485042c M glibc.spec commit 173c24248d660515cdbd319f8a5a8a02e3c9019c Author: Carlos O'Donell @@ -14288,7 +15422,7 @@ CommitDate: Tue Nov 27 15:07:47 2018 -0500 - Add requires on explicit glibc version for glibc-nss-devel (#1651260) -:100644 100644 8d88451c d553c5b3 M glibc.spec +:100644 100644 8d88451 d553c5b M glibc.spec commit 5ce3b680166bb14f04a5be8e8d7ef659f17c6233 Author: Arjun Shankar @@ -14302,9 +15436,9 @@ CommitDate: Tue Nov 27 12:20:28 2018 +0100 - Drop glibc-rh1652495.patch. Applied upstream. -:100644 000000 13be4769 00000000 D glibc-rh1652495.patch -:100644 100644 b14b113d 8d88451c M glibc.spec -:100644 100644 5c633ba6 8daabbec M sources +:100644 000000 13be476 0000000 D glibc-rh1652495.patch +:100644 100644 b14b113 8d88451 M glibc.spec +:100644 100644 5c633ba 8daabbe M sources commit fdcac6f8f4b2f3d0d1cca6974ef7a8997a2997ad Author: Florian Weimer @@ -14314,7 +15448,7 @@ CommitDate: Mon Nov 26 14:58:44 2018 +0100 Do not use parallel make for building locales (#1652228) -:100644 100644 545b2884 b14b113d M glibc.spec +:100644 100644 545b288 b14b113 M glibc.spec commit 2f22666a8b47d418cc8011e130f731d064e2b406 Author: Florian Weimer @@ -14324,8 +15458,8 @@ CommitDate: Thu Nov 22 11:05:13 2018 +0100 malloc: Revert tcache double-free check (#1652495) -:000000 100644 00000000 13be4769 A glibc-rh1652495.patch -:100644 100644 73ecd933 545b2884 M glibc.spec +:000000 100644 0000000 13be476 A glibc-rh1652495.patch +:100644 100644 73ecd93 545b288 M glibc.spec commit 16caa0b760daaead6a098658f9c4ef2cfaeeb880 Author: DJ Delorie @@ -14343,8 +15477,8 @@ CommitDate: Tue Nov 20 14:38:52 2018 -0500 - support: Print timestamps in timeout handler - Use STRFMON_LDBL_IS_DBL instead of __ldbl_is_dbl. -:100644 100644 4e6f7830 73ecd933 M glibc.spec -:100644 100644 dbaab666 5c633ba6 M sources +:100644 100644 4e6f783 73ecd93 M glibc.spec +:100644 100644 dbaab66 5c633ba M sources commit 81ee17d92e50cf636ded688c01776efc31d00b27 Author: Florian Weimer @@ -14356,8 +15490,8 @@ CommitDate: Fri Nov 16 11:20:25 2018 +0100 Upstream commit: 346ef23f197a0c8ba807c344bd39101b711050ee -:100644 100644 e0c1f445 4e6f7830 M glibc.spec -:100644 100644 23bdde31 dbaab666 M sources +:100644 100644 e0c1f44 4e6f783 M glibc.spec +:100644 100644 23bdde3 dbaab66 M sources commit 36c64b8ffaa6b56254aaf6ebef346e99b6b22979 Author: Florian Weimer @@ -14371,8 +15505,8 @@ CommitDate: Fri Nov 9 12:00:27 2018 +0100 - Disable CET for binaries created by older link editors (#1648297) -:100644 100644 550c623b e0c1f445 M glibc.spec -:100644 100644 8970362d 23bdde31 M sources +:100644 100644 550c623 e0c1f44 M glibc.spec +:100644 100644 8970362 23bdde3 M sources commit 5ca04006777ad4555249fec997c2d14034c98bd1 Author: Florian Weimer @@ -14384,8 +15518,8 @@ CommitDate: Wed Nov 7 14:47:43 2018 +0100 Upstream commit: 00c86a37d1b63044e3169d1f2ebec23447c73f79 -:100644 100644 8cad1dd7 550c623b M glibc.spec -:100644 100644 ca141a24 8970362d M sources +:100644 100644 8cad1dd 550c623 M glibc.spec +:100644 100644 ca141a2 8970362 M sources commit 4232176d254c77b9ef65eec4efea568368741aeb Author: Florian Weimer @@ -14399,8 +15533,8 @@ CommitDate: Wed Nov 7 13:58:23 2018 +0100 - libanl: Fix crash if first helper thread creation failed (#1646381) -:100644 100644 63c8bd84 8cad1dd7 M glibc.spec -:100644 100644 a0dc3c62 ca141a24 M sources +:100644 100644 63c8bd8 8cad1dd M glibc.spec +:100644 100644 a0dc3c6 ca141a2 M sources commit c42d98baca13585075c988b16e3559bf6065fe49 Author: Mike FABIAN @@ -14410,7 +15544,7 @@ CommitDate: Thu Nov 1 11:55:20 2018 +0100 Include Esperanto (eo) in glibc-all-langpacks (#1643756) -:100644 100644 f381ba56 63c8bd84 M glibc.spec +:100644 100644 f381ba5 63c8bd8 M glibc.spec commit 383945e9661fae7a177c396ca3263f110f66f232 Author: DJ Delorie @@ -14422,8 +15556,8 @@ CommitDate: Mon Oct 29 14:39:25 2018 -0400 Upstream commit: c6982f7efc1c70fe2d6160a87ee44d871ac85ab0 -:100644 100644 d2885a26 f381ba56 M glibc.spec -:100644 100644 b5041138 a0dc3c62 M sources +:100644 100644 d2885a2 f381ba5 M glibc.spec +:100644 100644 b504113 a0dc3c6 M sources commit a5ad6ecfc9b216b2514ec7aece4e4ba1ae6bed2d Author: Arjun Shankar @@ -14435,8 +15569,8 @@ CommitDate: Fri Oct 26 14:29:50 2018 +0200 Upstream commit: fe61f17cfc18f17befca3280e828bb40e8c772b0 -:100644 100644 e7659f3a d2885a26 M glibc.spec -:100644 100644 8dac2ecd b5041138 M sources +:100644 100644 e7659f3 d2885a2 M glibc.spec +:100644 100644 8dac2ec b504113 M sources commit 6287bab02b9523b4041d66e294eb4391dd8959ba Author: Florian Weimer @@ -14448,8 +15582,8 @@ CommitDate: Wed Oct 24 11:46:30 2018 +0200 Upstream commit: a27a4f4721837a5fb36ace833764b06a64c5af1c -:100644 100644 9e6c0694 e7659f3a M glibc.spec -:100644 100644 dd2662ce 8dac2ecd M sources +:100644 100644 9e6c069 e7659f3 M glibc.spec +:100644 100644 dd2662c 8dac2ec M sources commit 8e5fc280df52cd0213282510dca8b0322bc126d3 Author: Florian Weimer @@ -14461,8 +15595,8 @@ CommitDate: Thu Oct 18 10:22:53 2018 +0200 Upstream commit: 72771e53753647111d31c5c4bf43d8901e6baf7e -:100644 100644 bc21a87b 9e6c0694 M glibc.spec -:100644 100644 98bca402 dd2662ce M sources +:100644 100644 bc21a87 9e6c069 M glibc.spec +:100644 100644 98bca40 dd2662c M sources commit 3b14ffff2a7584a36aa0a8d505f80b23c86be92b Author: Florian Weimer @@ -14476,8 +15610,8 @@ CommitDate: Thu Sep 27 12:52:00 2018 +0200 - stdlib/tst-setcontext9 test suite failure on ppc64le (#1623519) -:100644 100644 90e87bd9 bc21a87b M glibc.spec -:100644 100644 9fefbbce 98bca402 M sources +:100644 100644 90e87bd bc21a87 M glibc.spec +:100644 100644 9fefbbc 98bca40 M sources commit 447d75c71c15d533fde19ad4b43238f7bd760339 Author: Florian Weimer @@ -14492,8 +15626,8 @@ CommitDate: Thu Sep 20 13:27:33 2018 +0200 - gethostid: Missing NULL check for gethostbyname_r result (#1631338) - stdlib/tst-setcontext9 test suite failure (#1623519) -:100644 100644 c38f7e35 90e87bd9 M glibc.spec -:100644 100644 d0c4b3da 9fefbbce M sources +:100644 100644 c38f7e3 90e87bd M glibc.spec +:100644 100644 d0c4b3d 9fefbbc M sources commit a63c0b6456736de612a2bfa97348d4fe74b1c343 Author: Florian Weimer @@ -14503,7 +15637,7 @@ CommitDate: Wed Sep 5 11:35:41 2018 +0200 Add python3-devel build dependency for downstream benefit -:100644 100644 d89135dc c38f7e35 M glibc.spec +:100644 100644 d89135d c38f7e3 M glibc.spec commit c63972c3a95b5b88481233f2ace3ef409f623b53 Author: Florian Weimer @@ -14513,7 +15647,7 @@ CommitDate: Wed Sep 5 11:35:10 2018 +0200 Fix version in changelog -:100644 100644 561fe203 d89135dc M glibc.spec +:100644 100644 561fe20 d89135d M glibc.spec commit 9588eec39fdaa9519471e77c8e2a47a88dcf768a Author: Carlos O'Donell @@ -14526,7 +15660,7 @@ CommitDate: Wed Sep 5 03:26:05 2018 -0400 - Provide compatibility support for linking against libpthread_nonshared.a (#1625507) -:100644 100644 ef0ccb76 561fe203 M glibc.spec +:100644 100644 ef0ccb7 561fe20 M glibc.spec commit 723de531646ceb34cd7629cb33b97cedd57e0555 Author: Florian Weimer @@ -14536,8 +15670,8 @@ CommitDate: Wed Aug 29 13:06:17 2018 +0200 Remove workaround for valgrind bug (#1600034) -:100644 000000 16c0b871 00000000 D glibc-ldflags.patch -:100644 100644 1201a91f ef0ccb76 M glibc.spec +:100644 000000 16c0b87 0000000 D glibc-ldflags.patch +:100644 100644 1201a91 ef0ccb7 M glibc.spec commit fde5e923179612561dad3890e567f98e28db9d12 Author: Florian Weimer @@ -14549,8 +15683,8 @@ CommitDate: Wed Aug 29 09:01:13 2018 +0200 Upstream commit: ff6b24501f70da7d6375d6f5929262b9509db39e -:100644 100644 c245db0a 1201a91f M glibc.spec -:100644 100644 ba56353b d0c4b3da M sources +:100644 100644 c245db0 1201a91 M glibc.spec +:100644 100644 ba56353 d0c4b3d M sources commit 02e1d4ee3e9713e7a3b9bab7042609fbfd89a55b Author: Florian Weimer @@ -14565,8 +15699,8 @@ CommitDate: Mon Aug 27 20:19:22 2018 +0200 - nptl: Fix waiters-after-spinning case in pthread_cond_broadcast (#1622669) - regex: Fix memory corruption when pattern and input contain NUL (#1622674) -:100644 100644 f272d203 c245db0a M glibc.spec -:100644 100644 5f9b80c8 ba56353b M sources +:100644 100644 f272d20 c245db0 M glibc.spec +:100644 100644 5f9b80c ba56353 M sources commit 60efd153e5852f2636af185092b64e1fe436fcb8 Author: Carlos O'Donell @@ -14578,12 +15712,12 @@ CommitDate: Fri Aug 24 22:29:27 2018 -0400 Upstream commit: aa42b3dbcb0326badf377fec2c7fb2f34fdabecd -:100644 000000 9bd733f0 00000000 D glibc-asflags.patch -:100644 100644 787951f6 515611a9 M glibc-fedora-localedef.patch -:100644 000000 ae4b43d9 00000000 D glibc-rh1614705.patch -:100644 000000 af7f65bd 00000000 D glibc-with-nonshared-cflags.patch -:100644 100644 8b46b515 f272d203 M glibc.spec -:100644 100644 d22bddf3 5f9b80c8 M sources +:100644 000000 9bd733f 0000000 D glibc-asflags.patch +:100644 100644 787951f 515611a M glibc-fedora-localedef.patch +:100644 000000 ae4b43d 0000000 D glibc-rh1614705.patch +:100644 000000 af7f65b 0000000 D glibc-with-nonshared-cflags.patch +:100644 100644 8b46b51 f272d20 M glibc.spec +:100644 100644 d22bddf 5f9b80c M sources commit bebdebbdc3d1f7735e0ae2badac688c615b33f1e Author: Carlos O'Donell @@ -14595,9 +15729,9 @@ CommitDate: Mon Aug 13 22:43:08 2018 -0400 - Remove abort() warning in manual (#1615608) -:000000 100644 00000000 c1e30d45 A glibc-rh1615608.patch -:100644 100644 f253997d 8b46b515 M glibc.spec -:100755 100755 eaf24d5d 511a53c0 M quilt-patch.sh +:000000 100644 0000000 c1e30d4 A glibc-rh1615608.patch +:100644 100644 f253997 8b46b51 M glibc.spec +:100755 100755 eaf24d5 511a53c M quilt-patch.sh commit 08e1b1ab33047abc97198182937edfabbba2d72f Author: Florian Weimer @@ -14607,8 +15741,8 @@ CommitDate: Fri Aug 10 11:24:59 2018 +0200 Fix regression in readdir64@GLIBC_2.1 compat symbol (#1614705) -:000000 100644 00000000 ae4b43d9 A glibc-rh1614705.patch -:100644 100644 316e0bfb f253997d M glibc.spec +:000000 100644 0000000 ae4b43d A glibc-rh1614705.patch +:100644 100644 316e0bf f253997 M glibc.spec commit fa1678e1c0ac9519b0793f9d25f85a0a1a521efb Author: Florian Weimer @@ -14618,7 +15752,7 @@ CommitDate: Thu Aug 2 18:20:05 2018 +0200 Log /proc/sysinfo if available (on s390x) -:100644 100644 0b25b581 316e0bfb M glibc.spec +:100644 100644 0b25b58 316e0bf M glibc.spec commit b0deb573ed1ac177f9fc2cf179efc1d5196c5ed6 Author: Florian Weimer @@ -14628,7 +15762,7 @@ CommitDate: Thu Aug 2 16:24:00 2018 +0200 Honor %{valgrind_arches} -:100644 100644 b7e37d83 0b25b581 M glibc.spec +:100644 100644 b7e37d8 0b25b58 M glibc.spec commit fb1f848c19dd8a1b3af795d3e5cc036777955441 Author: Florian Weimer @@ -14642,8 +15776,8 @@ CommitDate: Wed Aug 1 10:54:45 2018 +0200 - x86/CET: Fix property note parser (swbz#23467) - x86: Add tst-get-cpu-features-static to $(tests) (swbz#23458) -:100644 100644 5e986894 b7e37d83 M glibc.spec -:100644 100644 a326ef23 d22bddf3 M sources +:100644 100644 5e98689 b7e37d8 M glibc.spec +:100644 100644 a326ef2 d22bddf M sources commit 304fcdff50778dc575876da8c3bb067b8d02284d Author: Florian Weimer @@ -14653,7 +15787,7 @@ CommitDate: Wed Aug 1 10:54:37 2018 +0200 Add release-independent .gitignore file -:000000 100644 00000000 7a730813 A .gitignore +:000000 100644 0000000 7a73081 A .gitignore commit 56a02fe6e3a6a7a4b7c40dd0f4739ef2cf57fa84 Author: Florian Weimer @@ -14671,8 +15805,8 @@ CommitDate: Tue Jul 31 08:25:51 2018 +0200 - x86: Correct index_cpu_LZCNT (swbz#23456) - Fix string/tst-xbzero-opt if build with gcc head -:100644 100644 c47adf8e 5e986894 M glibc.spec -:100644 100644 a49b6066 a326ef23 M sources +:100644 100644 c47adf8 5e98689 M glibc.spec +:100644 100644 a49b606 a326ef2 M sources commit a4a5659439698554d18b9f1ef56cbd86591e217b Author: Florian Weimer @@ -14697,9 +15831,9 @@ CommitDate: Thu Jul 26 11:59:33 2018 +0200 - regcomp: Fix off-by-one bug in build_equiv_class (swbz#23396) - Fix out of bounds access in findidxwc (swbz#23442) -:100644 100644 603aec77 952f13d2 M SUPPORTED -:100644 100644 5e14a238 c47adf8e M glibc.spec -:100644 100644 7b7e663e a49b6066 M sources +:100644 100644 603aec7 952f13d M SUPPORTED +:100644 100644 5e14a23 c47adf8 M glibc.spec +:100644 100644 7b7e663 a49b606 M sources commit ad931662944e023542fe86ac1fcf528159dd3411 Author: Florian Weimer @@ -14709,7 +15843,7 @@ CommitDate: Mon Jul 23 14:23:36 2018 +0200 Add Provides: bundled(gnulib) -:100644 100644 06dc884a 5e14a238 M glibc.spec +:100644 100644 06dc884 5e14a23 M glibc.spec commit 092cf93daa31fadf73cd9c117ba693e59a803aa3 Author: Carlos O'Donell @@ -14721,7 +15855,7 @@ CommitDate: Fri Jul 13 16:10:09 2018 -0400 - Fix file list for glibc RPM packaging (#1601011). -:100644 100644 95b62a89 06dc884a M glibc.spec +:100644 100644 95b62a8 06dc884 M glibc.spec commit 6f4d10f91288b8ed8e0ee589ee546075e29e2ca1 Author: Carlos O'Donell @@ -14749,7 +15883,7 @@ CommitDate: Thu Jul 12 14:36:33 2018 -0400 to ensure no file changed packages or installed location after the patch. -:100644 100644 d3e0dbd7 95b62a89 M glibc.spec +:100644 100644 d3e0dbd 95b62a8 M glibc.spec commit e4aafbc50542b8dd7cdeb110e8ba3e2d51ceee0a Author: Carlos O'Donell @@ -14772,7 +15906,7 @@ CommitDate: Thu Jul 12 14:35:19 2018 -0400 No ABI instrumentation is added by this patch, and before-and-after testing verifies the %install phase remains functionally the same. -:100644 100644 80105e99 d3e0dbd7 M glibc.spec +:100644 100644 80105e9 d3e0dbd M glibc.spec commit 559f4357593e7f98e5ed05b7e65acaad351d8526 Author: Florian Weimer @@ -14782,7 +15916,7 @@ CommitDate: Wed Jul 11 21:32:56 2018 +0200 Fix typo in comment -:100644 100644 8a6a3d62 80105e99 M glibc.spec +:100644 100644 8a6a3d6 80105e9 M glibc.spec commit 3bef91d75e3df7398fc41b961ec250f7924000d7 Author: Florian Weimer @@ -14792,7 +15926,7 @@ CommitDate: Wed Jul 11 15:54:24 2018 +0200 Add POWER9 multilib (downstream only) -:100644 100644 7030a608 8a6a3d62 M glibc.spec +:100644 100644 7030a60 8a6a3d6 M glibc.spec commit e75713e5c13aaa3e6abc9af7f48ccedb4185daf0 Author: Florian Weimer @@ -14802,7 +15936,7 @@ CommitDate: Wed Jul 11 13:21:42 2018 +0200 Fix typo in LDFLAGS-rtld setting (#1600034) -:100644 100644 b10ac7e6 7030a608 M glibc.spec +:100644 100644 b10ac7e 7030a60 M glibc.spec commit 6404b258962769f7c4d1108c52aece4b314ee27f Author: Florian Weimer @@ -14817,8 +15951,8 @@ CommitDate: Wed Jul 11 11:50:51 2018 +0200 - Install header - Put the correct Unicode version number 11.0.0 into the generated files -:100644 100644 4e5be9ed b10ac7e6 M glibc.spec -:100644 100644 33935427 7b7e663e M sources +:100644 100644 4e5be9e b10ac7e M glibc.spec +:100644 100644 3393542 7b7e663 M sources commit 6a43999c13d2a78861904904870434f9734abd58 Author: Florian Weimer @@ -14828,8 +15962,8 @@ CommitDate: Wed Jul 11 11:50:02 2018 +0200 Work around valgrind issue on i686 (#1600034) -:000000 100644 00000000 16c0b871 A glibc-ldflags.patch -:100644 100644 1710e235 4e5be9ed M glibc.spec +:000000 100644 0000000 16c0b87 A glibc-ldflags.patch +:100644 100644 1710e23 4e5be9e M glibc.spec commit 28cb5d31fc1e5887912283c889689c47076278ae Author: Florian Weimer @@ -14849,8 +15983,8 @@ CommitDate: Tue Jul 10 17:18:22 2018 +0200 - conform/conformtest.pl: Escape literal braces in regular expressions - x86: Use AVX_Fast_Unaligned_Load from Zen onwards. -:100644 100644 4c6e59bf 1710e235 M glibc.spec -:100644 100644 fc51d50a 33935427 M sources +:100644 100644 4c6e59b 1710e23 M glibc.spec +:100644 100644 fc51d50 3393542 M sources commit 126ab296eafdb0fbb8ad49fb30083650574c84b8 Author: Florian Weimer @@ -14860,8 +15994,8 @@ CommitDate: Fri Jul 6 11:43:53 2018 +0200 Remove ppc64 multilibs -:100644 100644 53a0439b 4c6e59bf M glibc.spec -:100644 100644 9645e99b 9014857f M glibc_post_upgrade.c +:100644 100644 53a0439 4c6e59b M glibc.spec +:100644 100644 9645e99 9014857 M glibc_post_upgrade.c commit 589518d1c84e426c39febebc2352d7600dfa4bdd Author: Florian Weimer @@ -14873,9 +16007,9 @@ CommitDate: Fri Jul 6 10:53:36 2018 +0200 Upstream commit: 3a885c1f51b18852869a91cf59a1b39da1595c7a -:100644 000000 c56de14f 00000000 D .gitignore -:100644 100644 af0c051b 53a0439b M glibc.spec -:100644 100644 ae725029 fc51d50a M sources +:100644 000000 c56de14 0000000 D .gitignore +:100644 100644 af0c051 53a0439 M glibc.spec +:100644 100644 ae72502 fc51d50 M sources commit 04e38e02b796d28244987288d8c2328e7d5cd371 Author: Florian Weimer @@ -14885,7 +16019,7 @@ CommitDate: Thu Jul 5 12:45:22 2018 +0200 Enable build flags inheritance for nonshared flags -:100644 100644 56acd911 af0c051b M glibc.spec +:100644 100644 56acd91 af0c051 M glibc.spec commit 8a71833984ac4fa0b367c10384d4edfa85a1f079 Author: Florian Weimer @@ -14895,8 +16029,8 @@ CommitDate: Wed Jul 4 16:35:00 2018 +0200 Add annobin annotations to assembler code (#1548438) -:000000 100644 00000000 9bd733f0 A glibc-asflags.patch -:100644 100644 ef4f4353 56acd911 M glibc.spec +:000000 100644 0000000 9bd733f A glibc-asflags.patch +:100644 100644 ef4f435 56acd91 M glibc.spec commit 43a21403fe7fbd5d6cbf0bec00e3acc7e17984d7 Author: Florian Weimer @@ -14906,7 +16040,7 @@ CommitDate: Wed Jul 4 13:02:15 2018 +0200 Update License tag -:100644 100644 d9ca5fec ef4f4353 M glibc.spec +:100644 100644 d9ca5fe ef4f435 M glibc.spec commit a50cd9a587bbeb8977f87e26dee64ad736aaebff Author: Florian Weimer @@ -14916,8 +16050,8 @@ CommitDate: Wed Jul 4 11:56:29 2018 +0200 Enable -D_FORTIFY_SOURCE=2 for nonshared code -:000000 100644 00000000 af7f65bd A glibc-with-nonshared-cflags.patch -:100644 100644 7248cf57 d9ca5fec M glibc.spec +:000000 100644 0000000 af7f65b A glibc-with-nonshared-cflags.patch +:100644 100644 7248cf5 d9ca5fe M glibc.spec commit 2074a352da2df863f69ec3495aa5068dfcd3eee1 Author: Florian Weimer @@ -14927,7 +16061,7 @@ CommitDate: Wed Jul 4 11:50:24 2018 +0200 Add changelog reference to bug #1566464 -:100644 100644 cd73716f 7248cf57 M glibc.spec +:100644 100644 cd73716 7248cf5 M glibc.spec commit 4adfefae5a6a925e5b66b68d3fcb19e53f692f2a Author: Florian Weimer @@ -14937,7 +16071,7 @@ CommitDate: Wed Jul 4 10:48:07 2018 +0200 Inherit additional build flags -:100644 100644 d440786e cd73716f M glibc.spec +:100644 100644 d440786 cd73716 M glibc.spec commit 145da19e2ecfb4c69b49265a6b89dad1f8806cbd Author: Florian Weimer @@ -14949,10 +16083,10 @@ CommitDate: Mon Jul 2 22:56:52 2018 +0200 Upstream commit: b7b88cea4151d85eafd7ababc2e4b7ae1daeedf5 -:100644 100644 fc8630fd c56de14f M .gitignore -:100644 100644 a8e5a0c6 603aec77 M SUPPORTED -:100644 100644 fba3058d d440786e M glibc.spec -:100644 100644 b0540550 ae725029 M sources +:100644 100644 fc8630f c56de14 M .gitignore +:100644 100644 a8e5a0c 603aec7 M SUPPORTED +:100644 100644 fba3058 d440786 M glibc.spec +:100644 100644 b054055 ae72502 M sources commit 58f591261923eb622ce1f97ebe6bd0b12d8a4e01 Author: Florian Weimer @@ -14964,11 +16098,11 @@ CommitDate: Mon Jul 2 22:56:52 2018 +0200 Upstream commit: e69d994a63afc2d367f286a2a7df28cbf710f0fe -:000000 100644 00000000 fc8630fd A .gitignore -:100644 000000 698546f2 00000000 D glibc-deprecate_libcrypt.patch -:100644 000000 c3ef3222 00000000 D glibc-linux-timespec-header-compat.patch -:100644 100644 51626837 fba3058d M glibc.spec -:100644 100644 a7c0c3ad b0540550 M sources +:000000 100644 0000000 fc8630f A .gitignore +:100644 000000 698546f 0000000 D glibc-deprecate_libcrypt.patch +:100644 000000 c3ef322 0000000 D glibc-linux-timespec-header-compat.patch +:100644 100644 5162683 fba3058 M glibc.spec +:100644 100644 a7c0c3a b054055 M sources commit c8098b86f86bfab7a9c23d6a8ad21cfa6ed91a7f Author: Florian Weimer @@ -14980,9 +16114,9 @@ CommitDate: Thu Jun 28 10:28:29 2018 +0200 Upstream commit: c49e18222e4c40f21586dabced8a49732d946917 -:100644 000000 a9b3374f 00000000 D glibc-rh1315108.patch -:100644 100644 f0b52000 51626837 M glibc.spec -:100644 100644 59e11bf0 a7c0c3ad M sources +:100644 000000 a9b3374 0000000 D glibc-rh1315108.patch +:100644 100644 f0b5200 5162683 M glibc.spec +:100644 100644 59e11bf a7c0c3a M sources commit a6144b701ac2e0e39f5382d004fe724126018873 Author: Florian Weimer @@ -14992,8 +16126,8 @@ CommitDate: Thu Jun 21 08:25:16 2018 +0200 Compatibility fix for and -:000000 100644 00000000 c3ef3222 A glibc-linux-timespec-header-compat.patch -:100644 100644 1522183f f0b52000 M glibc.spec +:000000 100644 0000000 c3ef322 A glibc-linux-timespec-header-compat.patch +:100644 100644 1522183 f0b5200 M glibc.spec commit 4343a2408aee169341bcec8afd790e627434fe95 Author: Florian Weimer @@ -15005,8 +16139,8 @@ CommitDate: Thu Jun 21 08:23:20 2018 +0200 Upstream commit: f496b28e61d0342f579bf794c71b80e9c7d0b1b5 -:100644 100644 3201b995 1522183f M glibc.spec -:100644 100644 71a07acb 59e11bf0 M sources +:100644 100644 3201b99 1522183 M glibc.spec +:100644 100644 71a07ac 59e11bf M sources commit 2b743b9fd11d58fb24880582d2fbac12644a7425 Author: Florian Weimer @@ -15018,8 +16152,8 @@ CommitDate: Mon Jun 18 21:25:46 2018 +0200 Upstream commit: f2857da7cdb65bfad75ee30981f5b2fde5bbb1dc -:100644 100644 f7a8081d 3201b995 M glibc.spec -:100644 100644 70ba4db8 71a07acb M sources +:100644 100644 f7a8081 3201b99 M glibc.spec +:100644 100644 70ba4db 71a07ac M sources commit 9007def6666a77fc5c713f99c4e3915b7b3be193 Author: Florian Weimer @@ -15029,7 +16163,7 @@ CommitDate: Mon Jun 18 14:58:14 2018 +0200 Add CVE-2018-11236 reference -:100644 100644 a50b8a7c f7a8081d M glibc.spec +:100644 100644 a50b8a7 f7a8081 M glibc.spec commit 4283de10b68068003b98869faf2f7f0cf3210b82 Author: Florian Weimer @@ -15043,8 +16177,8 @@ CommitDate: Mon Jun 18 13:02:53 2018 +0200 - iconv: Make IBM273 equivalent to ISO-8859-1 (#1592270) -:100644 100644 9f6b2a50 a50b8a7c M glibc.spec -:100644 100644 83072c0d 70ba4db8 M sources +:100644 100644 9f6b2a5 a50b8a7 M glibc.spec +:100644 100644 83072c0 70ba4db M sources commit 84981f566efbaefc0a3eecc2486f7aa11f8070e7 Author: Florian Weimer @@ -15054,7 +16188,7 @@ CommitDate: Mon Jun 18 11:51:52 2018 +0200 Inherit the -msse2 build flag as well (#1592212) -:100644 100644 ae7d0525 9f6b2a50 M glibc.spec +:100644 100644 ae7d052 9f6b2a5 M glibc.spec commit e4a1cf14e031fa15e20c81d9717161fc4c948de3 Author: Carlos O'Donell @@ -15064,7 +16198,7 @@ CommitDate: Mon Jun 4 22:30:43 2018 -0400 Update gen-quilt-series.sh for new %autosetup. -:100755 100755 3262fbae 22ebf90d M gen-quilt-series.sh +:100755 100755 3262fba 22ebf90 M gen-quilt-series.sh commit 94a7268e0bc2a8c0a881e9a7814573e9eb2a15e8 Author: Florian Weimer @@ -15076,8 +16210,8 @@ CommitDate: Fri Jun 1 14:07:34 2018 +0200 Upstream commit:104502102c6fa322515ba0bb3c95c05c3185da7a -:100644 100644 f9bc1254 ae7d0525 M glibc.spec -:100644 100644 f697ff3a 83072c0d M sources +:100644 100644 f9bc125 ae7d052 M glibc.spec +:100644 100644 f697ff3 83072c0 M sources commit 9f8b04ee4952bf3235951445876e7a5c4ca82643 Author: Florian Weimer @@ -15087,7 +16221,7 @@ CommitDate: Fri Jun 1 12:10:16 2018 +0200 Adjust build flags inheritence from redhat-rpm-config -:100644 100644 4cfc4711 f9bc1254 M glibc.spec +:100644 100644 4cfc471 f9bc125 M glibc.spec commit a747c093bbee95a3bdf1d7ef052bd248c95fadc5 Author: Florian Weimer @@ -15097,7 +16231,7 @@ CommitDate: Fri Jun 1 12:05:26 2018 +0200 Modernise nsswitch.conf defaults (#1581809) -:100644 100644 c3d3fb65 b49a3b27 M nsswitch.conf +:100644 100644 c3d3fb6 b49a3b2 M nsswitch.conf commit f21f7f7c7f7a28f55678d0d5d4bb54e36ee91a2a Author: Florian Weimer @@ -15109,8 +16243,8 @@ CommitDate: Fri May 25 11:40:12 2018 +0200 Upstream commit: c1dc1e1b34873db79dfbfa8f2f0a2abbe28c0514 -:100644 100644 a89226ba 4cfc4711 M glibc.spec -:100644 100644 f27b93cf f697ff3a M sources +:100644 100644 a89226b 4cfc471 M glibc.spec +:100644 100644 f27b93c f697ff3 M sources commit 13e87ddfb51be01875aec64e1a71c68e66e9ed20 Author: Florian Weimer @@ -15120,7 +16254,7 @@ CommitDate: Wed May 23 21:38:06 2018 +0200 Add CVE-2018-11237 reference -:100644 100644 0ceafeb8 a89226ba M glibc.spec +:100644 100644 0ceafeb a89226b M glibc.spec commit bfa9f404d275ded61cc259388c58c16bbb96ff92 Author: Florian Weimer @@ -15135,10 +16269,10 @@ CommitDate: Wed May 23 15:37:05 2018 +0200 - Drop glibc-rh1452750-allocate_once.patch, glibc-rh1452750-libidn2.patch. Applied upstream. -:100644 000000 7c613e64 00000000 D glibc-rh1452750-allocate_once.patch -:100644 000000 782350f2 00000000 D glibc-rh1452750-libidn2.patch -:100644 100644 435d3570 0ceafeb8 M glibc.spec -:100644 100644 394889ee f27b93cf M sources +:100644 000000 7c613e6 0000000 D glibc-rh1452750-allocate_once.patch +:100644 000000 782350f 0000000 D glibc-rh1452750-libidn2.patch +:100644 100644 435d357 0ceafeb M glibc.spec +:100644 100644 394889e f27b93c M sources commit 7e87eb005efa0e79b6183fc0f555d69116afdc7a Author: Florian Weimer @@ -15150,8 +16284,8 @@ CommitDate: Wed May 23 09:21:21 2018 +0200 Upstream commit: 8f145c77123a565b816f918969e0e35ee5b89153 -:100644 100644 ef648cf4 435d3570 M glibc.spec -:100644 100644 fd183d62 394889ee M sources +:100644 100644 ef648cf 435d357 M glibc.spec +:100644 100644 fd183d6 394889e M sources commit 57b8f5c27771db4a64d185036e004859dcf657b7 Author: Florian Weimer @@ -15161,7 +16295,7 @@ CommitDate: Wed May 23 09:15:03 2018 +0200 Add CVE-2017-18269 reference -:100644 100644 4ef5dc99 ef648cf4 M glibc.spec +:100644 100644 4ef5dc9 ef648cf M glibc.spec commit c9ce3549e4b2ce2c551188c371f6f5be2813e631 Author: Carlos O'Donell @@ -15171,7 +16305,7 @@ CommitDate: Tue May 22 12:30:32 2018 -0400 Add notes about nss_db and past F16 transition. -:100644 100644 d61efbcd 4ef5dc99 M glibc.spec +:100644 100644 d61efbc 4ef5dc9 M glibc.spec commit 0e59699b4c7b128c1d6a5255d4fe7e6807aa716a Author: Florian Weimer @@ -15183,8 +16317,8 @@ CommitDate: Thu May 17 10:35:47 2018 +0200 Upstream commit: 632a6cbe44cdd41dba7242887992cdca7b42922a -:100644 100644 c1e7b2df d61efbcd M glibc.spec -:100644 100644 91cdf6ab fd183d62 M sources +:100644 100644 c1e7b2d d61efbc M glibc.spec +:100644 100644 91cdf6a fd183d6 M sources commit 8ed5487f7754ea083d7ff4ca69ee912ecc775498 Author: Florian Weimer @@ -15194,7 +16328,7 @@ CommitDate: Thu May 17 10:31:38 2018 +0200 Do not run telinit u on upgrades (#1579225) -:100644 100644 3b319121 9645e99b M glibc_post_upgrade.c +:100644 100644 3b31912 9645e99 M glibc_post_upgrade.c commit 189f35b3966b608a3fc8fc7a295f318b1719e923 Author: Florian Weimer @@ -15207,7 +16341,7 @@ CommitDate: Wed May 16 14:55:29 2018 +0200 /etc/rc.d/init.d/sshd no longer exists in Fedora, so the code never runs. -:100644 100644 c74d4400 3b319121 M glibc_post_upgrade.c +:100644 100644 c74d440 3b31912 M glibc_post_upgrade.c commit 890019ecf23702b8a2a7f85ec51caafc93bf9321 Author: Florian Weimer @@ -15217,7 +16351,7 @@ CommitDate: Fri May 11 16:12:33 2018 +0200 Inherit compiler flags in the original order -:100644 100644 1164e08a c1e7b2df M glibc.spec +:100644 100644 1164e08 c1e7b2d M glibc.spec commit 2fcfa6890c06d0b88a9632629419bc263d4267dc Author: Florian Weimer @@ -15227,7 +16361,7 @@ CommitDate: Fri May 11 16:04:30 2018 +0200 Inherit the -mstackrealign flag if it is set -:100644 100644 ecef7bbd 1164e08a M glibc.spec +:100644 100644 ecef7bb 1164e08 M glibc.spec commit d5919277006957505a987092669a3b12ba98b04f Author: Florian Weimer @@ -15241,8 +16375,8 @@ CommitDate: Fri May 11 16:02:06 2018 +0200 - Avoid exporting some Sun RPC symbols with default versions (#1577210) -:100644 100644 f4bb6ac5 ecef7bbd M glibc.spec -:100644 100644 9feb6283 91cdf6ab M sources +:100644 100644 f4bb6ac ecef7bb M glibc.spec +:100644 100644 9feb628 91cdf6a M sources commit 71cb283b6601fb08bec420a8c3aeb19c66821fb0 Author: Florian Weimer @@ -15252,8 +16386,8 @@ CommitDate: Fri May 11 15:56:01 2018 +0200 Use /usr/bin/python3 for benchmarks scripts (#1577223) -:000000 100644 00000000 a9a7a4fb A glibc-python3.patch -:100644 100644 052608cf f4bb6ac5 M glibc.spec +:000000 100644 0000000 a9a7a4f A glibc-python3.patch +:100644 100644 052608c f4bb6ac M glibc.spec commit c491e21bc74ddb3fce12f5b6b0a1389c6628a8e4 Author: Florian Weimer @@ -15268,7 +16402,7 @@ CommitDate: Wed May 9 11:26:57 2018 +0200 This reverts commit 7c1047805b047baafcd099065c613b6900ec0e5f. -:100644 100644 d64c52c5 052608cf M glibc.spec +:100644 100644 d64c52c 052608c M glibc.spec commit 7c1047805b047baafcd099065c613b6900ec0e5f Author: Florian Weimer @@ -15278,7 +16412,7 @@ CommitDate: Fri May 4 14:23:09 2018 +0200 Add annobin annotations to assembler code (#1548438) -:100644 100644 052608cf d64c52c5 M glibc.spec +:100644 100644 052608c d64c52c M glibc.spec commit 098d568ec031032ba4865f0a85680a43d397633c Author: Florian Weimer @@ -15290,8 +16424,8 @@ CommitDate: Thu Apr 19 13:53:29 2018 +0200 Upstream commit: 0085be1415a38b40a5a1a12e49368498f1687380 -:100644 100644 2cb3145a 052608cf M glibc.spec -:100644 100644 9cd7455e 9feb6283 M sources +:100644 100644 2cb3145 052608c M glibc.spec +:100644 100644 9cd7455 9feb628 M sources commit 56036275529fc49788f9655a0f789c032f836357 Author: Florian Weimer @@ -15301,7 +16435,7 @@ CommitDate: Thu Apr 19 13:49:39 2018 +0200 Switch to %autosetup -:100644 100644 02ae033a 2cb3145a M glibc.spec +:100644 100644 02ae033 2cb3145 M glibc.spec commit 0e17ea22c151a5e9b8734666bf906d1ddb69158b Author: Carlos O'Donell @@ -15320,30 +16454,30 @@ CommitDate: Tue Apr 17 15:00:23 2018 -0500 patch that the source tree does not change. The patch definition is resorted to match the patch application order. -:100644 100644 7fabf303 7215e155 M glibc-c-utf8-locale.patch -:100644 100644 982f8ff4 aafa7419 M glibc-cs-path.patch -:100644 100644 ccc7335e 698546f2 M glibc-deprecate_libcrypt.patch -:100644 100644 8d8e857b 256ef205 M glibc-fedora-__libc_multiple_libcs.patch -:100644 100644 b47e23eb 3ae7e27a M glibc-fedora-linux-tcsetattr.patch -:100644 100644 c8fee0f4 518253d1 M glibc-fedora-localedata-rh61908.patch -:100644 100644 4aaec7f4 787951f6 M glibc-fedora-localedef.patch -:100644 100644 91ac6614 299b0f06 M glibc-fedora-locarchive.patch -:100644 100644 f6816207 11c26569 M glibc-fedora-manual-dircategory.patch -:100644 100644 93899013 5ec22376 M glibc-fedora-nis-rh188246.patch -:100644 100644 c0c464d3 6f8f764e M glibc-fedora-nscd.patch -:100644 100644 9334f199 0d8f7d90 M glibc-fedora-streams-rh436349.patch -:100644 100644 a00346bd 03dee9e9 M glibc-nscd-sysconfig.patch -:100644 100644 60baa49e a64adfcd M glibc-post_upgrade.patch -:100644 100644 7e4235e2 0975e0fa M glibc-rh1070416.patch -:100644 100644 236307ac a9b3374f M glibc-rh1315108.patch -:100644 100644 bdef9216 7c613e64 M glibc-rh1452750-allocate_once.patch -:100644 100644 4a5171f3 782350f2 M glibc-rh1452750-libidn2.patch -:100644 100644 961c8053 e909aa19 M glibc-rh697421.patch -:100644 100644 d9b37522 f7d06caf M glibc-rh741105.patch -:100644 100644 b22e4217 8b766f10 M glibc-rh819430.patch -:100644 100644 7fd3e99a 61158912 M glibc-rh827510.patch -:100644 100644 00a0473d 02ae033a M glibc.spec -:000000 100644 00000000 10ec35e2 A template.patch +:100644 100644 7fabf30 7215e15 M glibc-c-utf8-locale.patch +:100644 100644 982f8ff aafa741 M glibc-cs-path.patch +:100644 100644 ccc7335 698546f M glibc-deprecate_libcrypt.patch +:100644 100644 8d8e857 256ef20 M glibc-fedora-__libc_multiple_libcs.patch +:100644 100644 b47e23e 3ae7e27 M glibc-fedora-linux-tcsetattr.patch +:100644 100644 c8fee0f 518253d M glibc-fedora-localedata-rh61908.patch +:100644 100644 4aaec7f 787951f M glibc-fedora-localedef.patch +:100644 100644 91ac661 299b0f0 M glibc-fedora-locarchive.patch +:100644 100644 f681620 11c2656 M glibc-fedora-manual-dircategory.patch +:100644 100644 9389901 5ec2237 M glibc-fedora-nis-rh188246.patch +:100644 100644 c0c464d 6f8f764 M glibc-fedora-nscd.patch +:100644 100644 9334f19 0d8f7d9 M glibc-fedora-streams-rh436349.patch +:100644 100644 a00346b 03dee9e M glibc-nscd-sysconfig.patch +:100644 100644 60baa49 a64adfc M glibc-post_upgrade.patch +:100644 100644 7e4235e 0975e0f M glibc-rh1070416.patch +:100644 100644 236307a a9b3374 M glibc-rh1315108.patch +:100644 100644 bdef921 7c613e6 M glibc-rh1452750-allocate_once.patch +:100644 100644 4a5171f 782350f M glibc-rh1452750-libidn2.patch +:100644 100644 961c805 e909aa1 M glibc-rh697421.patch +:100644 100644 d9b3752 f7d06ca M glibc-rh741105.patch +:100644 100644 b22e421 8b766f1 M glibc-rh819430.patch +:100644 100644 7fd3e99 6115891 M glibc-rh827510.patch +:100644 100644 00a0473 02ae033 M glibc.spec +:000000 100644 0000000 10ec35e A template.patch commit 7e28f1b6ad5d0f0b5d4e7ae5fa23df9597e9bb70 Author: Florian Weimer @@ -15355,8 +16489,8 @@ CommitDate: Mon Apr 9 12:01:14 2018 +0200 Upstream commit: 583a27d525ae189bdfaa6784021b92a9a1dae12e -:100644 100644 4552e7aa 00a0473d M glibc.spec -:100644 100644 4c1ede55 9cd7455e M sources +:100644 100644 4552e7a 00a0473 M glibc.spec +:100644 100644 4c1ede5 9cd7455 M sources commit ec52db3a460f04bf76aeb1751d4544a6cd45e447 Author: Florian Weimer @@ -15368,8 +16502,8 @@ CommitDate: Thu Mar 29 11:44:12 2018 +0200 Upstream commit: d39c0a459ef32a41daac4840859bf304d931adab -:100644 100644 0c9327ed 4552e7aa M glibc.spec -:100644 100644 28bb7af5 4c1ede55 M sources +:100644 100644 0c9327e 4552e7a M glibc.spec +:100644 100644 28bb7af 4c1ede5 M sources commit 52fc655c6c9d3b31538e4e961e3b8c013f961fe7 Author: Florian Weimer @@ -15381,8 +16515,8 @@ CommitDate: Mon Mar 19 20:37:00 2018 +0100 Upstream commit: fbce6f7260c3847f14dfa38f60c9111978fb33a5 -:100644 100644 4325f531 0c9327ed M glibc.spec -:100644 100644 682f6852 28bb7af5 M sources +:100644 100644 4325f53 0c9327e M glibc.spec +:100644 100644 682f685 28bb7af M sources commit e0b0cbbd508285ce1da9e4b065cf447ca75df6fd Author: Florian Weimer @@ -15394,8 +16528,8 @@ CommitDate: Fri Mar 16 12:33:09 2018 +0100 Upstream commit: 700593fdd7aef1e36cfa8bad969faab76a6facda -:100644 100644 56ec40ff 4325f531 M glibc.spec -:100644 100644 e77f114f 682f6852 M sources +:100644 100644 56ec40f 4325f53 M glibc.spec +:100644 100644 e77f114 682f685 M sources commit cee352f95dd4911832bbf7656203db329cdf9f09 Author: Florian Weimer @@ -15407,8 +16541,8 @@ CommitDate: Wed Mar 14 11:02:55 2018 +0100 Upstream commit: 7108f1f944792ac68332967015d5e6418c5ccc88 -:100644 100644 71596aec 56ec40ff M glibc.spec -:100644 100644 1a5d96f7 e77f114f M sources +:100644 100644 71596ae 56ec40f M glibc.spec +:100644 100644 1a5d96f e77f114 M sources commit a928b2e6c1c100f0c92a1fc34916ddfb91aebaa8 Author: Florian Weimer @@ -15420,9 +16554,9 @@ CommitDate: Mon Mar 12 11:44:45 2018 +0100 Upstream commit: da6d4404ecfd7eacba8c096b0761a5758a59da4b -:100644 100644 f3c79d16 4a5171f3 M glibc-rh1452750-libidn2.patch -:100644 100644 d9128c8b 71596aec M glibc.spec -:100644 100644 3721c440 1a5d96f7 M sources +:100644 100644 f3c79d1 4a5171f M glibc-rh1452750-libidn2.patch +:100644 100644 d9128c8 71596ae M glibc.spec +:100644 100644 3721c44 1a5d96f M sources commit 9be86f04b33c1e23726ad146b8275db63028c732 Author: Florian Weimer @@ -15432,7 +16566,7 @@ CommitDate: Tue Mar 6 14:37:32 2018 +0100 Enable annobin annotations (#1548438) -:100644 100644 6ef80524 d9128c8b M glibc.spec +:100644 100644 6ef8052 d9128c8 M glibc.spec commit 90b56a7d0cf879c4cbd315df8d488bcf709945cd Author: Florian Weimer @@ -15442,7 +16576,7 @@ CommitDate: Fri Mar 2 10:39:29 2018 +0100 Add reference to #1550914 -:100644 100644 97802a72 6ef80524 M glibc.spec +:100644 100644 97802a7 6ef8052 M glibc.spec commit af386eee0d5c01853697bf7013293bdb64d701d9 Author: Florian Weimer @@ -15456,8 +16590,8 @@ CommitDate: Thu Mar 1 12:57:19 2018 +0100 - Remove spurios reference to libpthread_nonshared.a -:100644 100644 05d97a93 97802a72 M glibc.spec -:100644 100644 42e31676 3721c440 M sources +:100644 100644 05d97a9 97802a7 M glibc.spec +:100644 100644 42e3167 3721c44 M sources commit 1bbd25fcbf878685e46a156006b2cfe46b364afb Author: Florian Weimer @@ -15467,7 +16601,7 @@ CommitDate: Thu Mar 1 09:10:04 2018 +0100 Update sources file -:100644 100644 3d4272bb 42e31676 M sources +:100644 100644 3d4272b 42e3167 M sources commit 890cc4ed1d2ba11d380b98853a09704df6465619 Author: Florian Weimer @@ -15479,10 +16613,10 @@ CommitDate: Thu Mar 1 08:34:12 2018 +0100 Upstream commit: bd60ce86520b781ca24b99b2555e2ad389bbfeaa -:100644 000000 ca2c6508 00000000 D glibc-rh1013801.patch -:100644 100644 ba60ad6e 236307ac M glibc-rh1315108.patch -:100644 100644 38c17a3d f3c79d16 M glibc-rh1452750-libidn2.patch -:100644 100644 33e4e5ec 05d97a93 M glibc.spec +:100644 000000 ca2c650 0000000 D glibc-rh1013801.patch +:100644 100644 ba60ad6 236307a M glibc-rh1315108.patch +:100644 100644 38c17a3 f3c79d1 M glibc-rh1452750-libidn2.patch +:100644 100644 33e4e5e 05d97a9 M glibc.spec commit 0e84fd763dbb2a7e3377370d95bd138c67c5f929 Author: Florian Weimer @@ -15495,8 +16629,8 @@ CommitDate: Thu Mar 1 08:27:57 2018 +0100 We do not reference any compatibility symbols from libpthread, so this patch appears unnecessary. -:100644 000000 fc87a4ae 00000000 D glibc-fedora-nptl-linklibc.patch -:100644 100644 dbe07b3b 33e4e5ec M glibc.spec +:100644 000000 fc87a4a 0000000 D glibc-fedora-nptl-linklibc.patch +:100644 100644 dbe07b3 33e4e5e M glibc.spec commit d92633e7a991fbc7c17cb1a4f1c3760bc1fb0677 Author: Florian Weimer @@ -15506,7 +16640,7 @@ CommitDate: Wed Feb 28 12:40:44 2018 +0100 Update release and changelog -:100644 100644 b331b75f dbe07b3b M glibc.spec +:100644 100644 b331b75 dbe07b3 M glibc.spec commit 081ef32d632f5a55f913586d9b3175a2a5aa57ec Author: Florian Weimer @@ -15516,7 +16650,7 @@ CommitDate: Wed Feb 28 12:40:17 2018 +0100 Inherit as many flags as possible from redhat-rpm-config -:100644 100644 b1b9c2c1 b331b75f M glibc.spec +:100644 100644 b1b9c2c b331b75 M glibc.spec commit ee109af4322e7721c888b0d74cc88203080cfc45 Author: Richard W.M. Jones @@ -15526,7 +16660,7 @@ CommitDate: Mon Feb 19 19:47:31 2018 +0000 riscv64: Disable valgrind smoke test on this architecture. -:100644 100644 38839d1e b1b9c2c1 M glibc.spec +:100644 100644 38839d1 b1b9c2c M glibc.spec commit 16398fcbfd2969807a7bda9facc713612ceb9227 Author: Richard W.M. Jones @@ -15536,7 +16670,7 @@ CommitDate: Mon Feb 19 19:47:30 2018 +0000 riscv64: Add symlink from /usr/lib64/lp64d -> /usr/lib64 for ABI compat. -:100644 100644 7d4af2d6 38839d1e M glibc.spec +:100644 100644 7d4af2d 38839d1 M glibc.spec commit 4c06a879a9144d1c7f393936c41a18e4b22a6e62 Author: Florian Weimer @@ -15546,7 +16680,7 @@ CommitDate: Wed Feb 14 17:07:46 2018 +0100 Update changelog -:100644 100644 880c0bd3 7d4af2d6 M glibc.spec +:100644 100644 880c0bd 7d4af2d M glibc.spec commit 29d10047e2d0707fcc6fa29d9e28a75815699ec3 Author: Florian Weimer @@ -15556,7 +16690,7 @@ CommitDate: Wed Feb 14 17:07:14 2018 +0100 Include ChangeLog.old in the source RPM -:100644 100644 6ebe5bdd 880c0bd3 M glibc.spec +:100644 100644 6ebe5bd 880c0bd M glibc.spec commit 5a04553bf2fa5842957f6836cde2f4f5ae71468e Author: Florian Weimer @@ -15566,7 +16700,7 @@ CommitDate: Wed Feb 14 17:07:14 2018 +0100 Remove stale reference to the language_list macro -:100644 100644 89a510b1 6ebe5bdd M glibc.spec +:100644 100644 89a510b 6ebe5bd M glibc.spec commit 7f4ea1188ae85e33e40a7e1e58ae36d523140e79 Author: Florian Weimer @@ -15576,8 +16710,8 @@ CommitDate: Wed Feb 14 17:02:48 2018 +0100 Trim changelog -:100644 100644 f39f56eb 28b5acee M ChangeLog.old -:100644 100644 6fffa330 89a510b1 M glibc.spec +:100644 100644 f39f56e 28b5ace M ChangeLog.old +:100644 100644 6fffa33 89a510b M glibc.spec commit 1dbdd9fef3584ded3aec57716fc16d08af55172f Author: Florian Weimer @@ -15587,7 +16721,7 @@ CommitDate: Wed Feb 14 16:58:24 2018 +0100 Remove %defattr(-,root,root) -:100644 100644 e9a51da1 6fffa330 M glibc.spec +:100644 100644 e9a51da 6fffa33 M glibc.spec commit c57221cc4fc8390b7cd20ee91ee3e7a065913b2e Author: Igor Gnatenko @@ -15599,7 +16733,7 @@ CommitDate: Sun Feb 11 10:13:47 2018 +0100 Signed-off-by: Igor Gnatenko -:100644 100644 d9f843c8 e9a51da1 M glibc.spec +:100644 100644 d9f843c e9a51da M glibc.spec commit 28e47feb91230b98bc4f57b4906e47c93a2e2dd7 Author: Igor Gnatenko @@ -15614,7 +16748,7 @@ CommitDate: Wed Feb 7 17:05:29 2018 +0100 Signed-off-by: Igor Gnatenko -:100644 100644 d9a9d874 d9f843c8 M glibc.spec +:100644 100644 d9a9d87 d9f843c M glibc.spec commit c09c66271efa0b20e393c0b30d0d20cbfe8716f5 Author: Igor Gnatenko @@ -15626,7 +16760,7 @@ CommitDate: Wed Feb 7 17:04:59 2018 +0100 Signed-off-by: Igor Gnatenko -:100644 100644 8247598e d9a9d874 M glibc.spec +:100644 100644 8247598 d9a9d87 M glibc.spec commit 55adfecd0c29e604778aaf5e99fbfacdace95eca Author: Florian Weimer @@ -15639,8 +16773,8 @@ CommitDate: Wed Feb 7 14:09:49 2018 +0100 Auto-sync with upstream branch release/2.27/master, commit 56170e064e2b21ce204f0817733e92f1730541ea. -:100644 100644 fe8f3c12 8247598e M glibc.spec -:100644 100644 7c72447c 3d4272bb M sources +:100644 100644 fe8f3c1 8247598 M glibc.spec +:100644 100644 7c72447 3d4272b M sources commit eff52e35182a194e6b2c2a25ed713d815a67577a Author: Florian Weimer @@ -15650,7 +16784,7 @@ CommitDate: Wed Feb 7 14:03:08 2018 +0100 Fix typo in comment -:100644 100644 ec1593af fe8f3c12 M glibc.spec +:100644 100644 ec1593a fe8f3c1 M glibc.spec commit cefed5d027b7adc9363534ec8b1de3392db32831 Author: Fedora Release Engineering @@ -15662,7 +16796,7 @@ CommitDate: Wed Feb 7 12:49:46 2018 +0000 Signed-off-by: Fedora Release Engineering -:100644 100644 f00686ac ec1593af M glibc.spec +:100644 100644 f00686a ec1593a M glibc.spec commit 587bed9b2f46e8181fd3fac58cb2b8aec382b0fb Author: Carlos O'Donell @@ -15676,8 +16810,8 @@ CommitDate: Mon Feb 5 07:32:08 2018 -0800 Upstream commit: 23158b08a0908f381459f273a984c6fd328363cb. -:100644 100644 219188fe f00686ac M glibc.spec -:100644 100644 a85f5b6c 7c72447c M sources +:100644 100644 219188f f00686a M glibc.spec +:100644 100644 a85f5b6 7c72447 M sources commit 72c4f88cc6ca9a7c45d397227071a6ee7c455d9d Author: Richard W.M. Jones @@ -15687,7 +16821,7 @@ CommitDate: Tue Jan 30 19:33:56 2018 +0000 Fix cut and paste error in %changelog message of previous commit. -:100644 100644 361a7df7 219188fe M glibc.spec +:100644 100644 361a7df 219188f M glibc.spec commit f80578dc89c11f4f80024e35504fdbce550da19e Author: Richard W.M. Jones @@ -15711,7 +16845,7 @@ CommitDate: Tue Jan 30 18:31:15 2018 +0000 gcc: fatal error: no input files compilation terminated. -:100644 100644 9ad2271e 361a7df7 M glibc.spec +:100644 100644 9ad2271 361a7df M glibc.spec commit 6ff958f2aae58ce8d91999ba3b03e664b3c85e27 Author: Florian Weimer @@ -15721,7 +16855,7 @@ CommitDate: Mon Jan 29 20:42:52 2018 +0100 Explicitly run ldconfig in the buildroot -:100644 100644 cef56bf5 9ad2271e M glibc.spec +:100644 100644 cef56bf 9ad2271 M glibc.spec commit 48a71633e6c3a25fb8bc678c0a30eb14ae2682b9 Author: Florian Weimer @@ -15739,8 +16873,8 @@ CommitDate: Mon Jan 29 18:06:23 2018 +0100 - x86: Revert Intel CET changes to __jmp_buf_tag (swbz#22743) - aarch64: Revert the change of the __reserved member of mcontext_t -:100644 100644 012d4f0c cef56bf5 M glibc.spec -:100644 100644 6af17688 a85f5b6c M sources +:100644 100644 012d4f0 cef56bf M glibc.spec +:100644 100644 6af1768 a85f5b6 M sources commit 1f24fb0da2ff5b11df79b885656a35df1a0ac8cc Author: Igor Gnatenko @@ -15781,7 +16915,7 @@ CommitDate: Mon Jan 29 17:52:15 2018 +0100 Originally-proposed-by: Neal Gompa Signed-off-by: Igor Gnatenko -:100644 100644 8cd173a1 012d4f0c M glibc.spec +:100644 100644 8cd173a 012d4f0 M glibc.spec commit 6777c3ed80a002eac02c4405f1f41d08af328416 Author: Florian Weimer @@ -15796,8 +16930,8 @@ CommitDate: Mon Jan 22 16:19:24 2018 +0100 - locale: Implement alternative month names (swbz#10871) - locale: Change month names for pl_PL (swbz#10871) -:100644 100644 c003f18f 8cd173a1 M glibc.spec -:100644 100644 7c1c2dfc 6af17688 M sources +:100644 100644 c003f18 8cd173a M glibc.spec +:100644 100644 7c1c2df 6af1768 M sources commit a4166cd2cf4f6f9a2f17dcad28b5082969365862 Author: Florian Weimer @@ -15809,7 +16943,7 @@ CommitDate: Mon Jan 22 16:15:37 2018 +0100 Also apply minor related changelog fixes. -:100644 100644 c31587a4 c003f18f M glibc.spec +:100644 100644 c31587a c003f18 M glibc.spec commit 58e6c2560b43887e169a50ac3792bc90fb95e8cb Author: Florian Weimer @@ -15819,7 +16953,7 @@ CommitDate: Mon Jan 22 15:36:05 2018 +0100 Fix BuildRequires: binutils -:100644 100644 ed76b5e5 c31587a4 M glibc.spec +:100644 100644 ed76b5e c31587a M glibc.spec commit 92867018b55ee876e4638a653ed58bcdf8332496 Author: Florian Weimer @@ -15829,7 +16963,7 @@ CommitDate: Mon Jan 22 15:33:29 2018 +0100 Update changelog for glibc-2.26.9000-47.fc28 -:100644 100644 afe0348c ed76b5e5 M glibc.spec +:100644 100644 afe0348 ed76b5e M glibc.spec commit cd5e5a111770ed8849722cda57a01a3e8be77e9c Author: Florian Weimer @@ -15839,7 +16973,7 @@ CommitDate: Mon Jan 22 15:33:29 2018 +0100 Reenable static PIE on aarch64 after binutils fix (#1247050) -:100644 100644 f8cab50c afe0348c M glibc.spec +:100644 100644 f8cab50 afe0348 M glibc.spec commit 6815071d4a696009f949e25e4c9a2c0015b0821d Author: Florian Weimer @@ -15849,7 +16983,7 @@ CommitDate: Mon Jan 22 15:33:25 2018 +0100 Unconditionally build without libcrypt -:100644 100644 cd2244b8 f8cab50c M glibc.spec +:100644 100644 cd2244b f8cab50 M glibc.spec commit b8b7388beb1e84446763ce7fbd414b9883cb019c Author: Florian Weimer @@ -15859,7 +16993,7 @@ CommitDate: Mon Jan 22 11:09:06 2018 +0100 Fix release number in changelog entry -:100644 100644 3b1761f9 cd2244b8 M glibc.spec +:100644 100644 3b1761f cd2244b M glibc.spec commit c758358a31ea7baa19cc718684271aca66b2e88f Author: Florian Weimer @@ -15869,7 +17003,7 @@ CommitDate: Mon Jan 22 11:00:27 2018 +0100 glibc-deprecate_libcrypt.patch: Do not patch NEWS, fix attribution -:100644 100644 76a8f61f ccc7335e M glibc-deprecate_libcrypt.patch +:100644 100644 76a8f61 ccc7335 M glibc-deprecate_libcrypt.patch commit 2687b3c78b7b05ca9cc568e40464fb7909e9ec6d Author: Björn Esser @@ -15890,8 +17024,8 @@ CommitDate: Fri Jan 19 23:49:50 2018 +0100 This commit is the glibc part of: https://fedoraproject.org/wiki/Changes/Replace_glibc_libcrypt_with_libxcrypt -:000000 100644 00000000 76a8f61f A glibc-deprecate_libcrypt.patch -:100644 100644 4153d23e 3b1761f9 M glibc.spec +:000000 100644 0000000 76a8f61 A glibc-deprecate_libcrypt.patch +:100644 100644 4153d23 3b1761f M glibc.spec commit 6a5972a529c0adec28591839eda2eb84b47e25b0 Author: Florian Weimer @@ -15903,8 +17037,8 @@ CommitDate: Fri Jan 19 18:32:12 2018 +0100 An rpcgen subpackage is now built by rpcsvc-proto. -:100644 000000 2fe11303 00000000 D glibc-rpcgen.patch -:100644 100644 ba8c8bd8 4153d23e M glibc.spec +:100644 000000 2fe1130 0000000 D glibc-rpcgen.patch +:100644 100644 ba8c8bd 4153d23 M glibc.spec commit 36e86580360513ae5b2db454932810d1b1338ad9 Author: Florian Weimer @@ -15917,7 +17051,7 @@ CommitDate: Fri Jan 19 18:04:40 2018 +0100 It leads to crashes at run time. Probably needs binutils fixes not yet in rawhide. -:100644 100644 f98656bb ba8c8bd8 M glibc.spec +:100644 100644 f98656b ba8c8bd M glibc.spec commit fac98a7443549ba70c22ce04773d9f075706a731 Author: Florian Weimer @@ -15937,8 +17071,8 @@ CommitDate: Fri Jan 19 17:02:46 2018 +0100 - Remove architecture-specific symbolic link for iconvconfig - powerpc: Fix syscalls during early process initialization (swbz#22685) -:100644 100644 9b348484 f98656bb M glibc.spec -:100644 100644 79e40309 7c1c2dfc M sources +:100644 100644 9b34848 f98656b M glibc.spec +:100644 100644 79e4030 7c1c2df M sources commit a071c6801cce4ea0c2d16b4b139f33171c57ca0f Author: Florian Weimer @@ -15952,7 +17086,7 @@ CommitDate: Fri Jan 19 17:02:46 2018 +0100 long time because the file /etc/rc.d/init.d/sshd does not exit anymore, so it appears unnecessary after all. -:100644 100644 075660c9 60baa49e M glibc-post_upgrade.patch +:100644 100644 075660c 60baa49 M glibc-post_upgrade.patch commit cc5db6cdfde3f93137f88e598de1333865c8ad08 Author: Florian Weimer @@ -15964,7 +17098,7 @@ CommitDate: Fri Jan 19 17:02:40 2018 +0100 x86_64 was missing before. -:100644 100644 26102423 9b348484 M glibc.spec +:100644 100644 2610242 9b34848 M glibc.spec commit 737f7e8513f66db4247e2f5f301b2503633a809e Author: Florian Weimer @@ -15981,8 +17115,8 @@ CommitDate: Fri Jan 19 16:32:18 2018 +0100 Due to the move into the glibc build process, the program had to be cleaned up to compile without warnings. -:000000 100644 00000000 075660c9 A glibc-post_upgrade.patch -:100644 100644 6a754468 26102423 M glibc.spec +:000000 100644 0000000 075660c A glibc-post_upgrade.patch +:100644 100644 6a75446 2610242 M glibc.spec commit 34f077631c047ffa6a99a7fa501ba95d4ec6ab5c Author: Florian Weimer @@ -15992,8 +17126,8 @@ CommitDate: Fri Jan 19 16:05:04 2018 +0100 Move glibc-fedora-nscd.patch comment into file -:100644 100644 a26b9283 c0c464d3 M glibc-fedora-nscd.patch -:100644 100644 e0019ca1 6a754468 M glibc.spec +:100644 100644 a26b928 c0c464d M glibc-fedora-nscd.patch +:100644 100644 e0019ca 6a75446 M glibc.spec commit 707a1e8f871cf22cb856a283480077c6efcae00e Author: Florian Weimer @@ -16007,8 +17141,8 @@ CommitDate: Fri Jan 19 15:30:50 2018 +0100 iconvconfig with explicit paths, so it does not matter for which multilib variant the binary was built. -:100644 100644 267bad7e e0019ca1 M glibc.spec -:100644 100644 a49f23d5 c74d4400 M glibc_post_upgrade.c +:100644 100644 267bad7 e0019ca M glibc.spec +:100644 100644 a49f23d c74d440 M glibc_post_upgrade.c commit e33b0e319728b8910e784de0be29ea56dea26892 Author: Florian Weimer @@ -16018,8 +17152,8 @@ CommitDate: Fri Jan 19 15:11:38 2018 +0100 glibc_post_upgrade: Move LD_SO_CONF definition into source file -:100644 100644 258dbf9a 267bad7e M glibc.spec -:100644 100644 16585073 a49f23d5 M glibc_post_upgrade.c +:100644 100644 258dbf9 267bad7 M glibc.spec +:100644 100644 1658507 a49f23d M glibc_post_upgrade.c commit 365663e72b5aebe2b428cddf928865c48350fd38 Author: Florian Weimer @@ -16031,8 +17165,8 @@ CommitDate: Fri Jan 19 15:07:33 2018 +0100 These were removed a long time ago. -:100644 100644 af08df27 258dbf9a M glibc.spec -:100644 100644 134607ba 16585073 M glibc_post_upgrade.c +:100644 100644 af08df2 258dbf9 M glibc.spec +:100644 100644 134607b 1658507 M glibc_post_upgrade.c commit 91ed2dbf627116ca8edd2038ab6084f22dcefb94 Author: Florian Weimer @@ -16042,7 +17176,7 @@ CommitDate: Fri Jan 19 15:03:57 2018 +0100 glibc_post_upgrade: Drop ia64 support -:100644 100644 ad3215c2 134607ba M glibc_post_upgrade.c +:100644 100644 ad3215c 134607b M glibc_post_upgrade.c commit 0f4d3ed14dc9efb1dfb9528f31d9e630c0ab4679 Author: Florian Weimer @@ -16062,7 +17196,7 @@ CommitDate: Fri Jan 19 12:58:39 2018 +0100 - aarch64: Update bits/hwcap.h for Linux 4.15 - Add NT_ARM_SVE to elf.h -:100644 100644 1831bc0c af08df27 M glibc.spec +:100644 100644 1831bc0 af08df2 M glibc.spec commit 5c2fe5cfb3798d359719b9b7da5e1324ef100709 Author: Florian Weimer @@ -16075,7 +17209,7 @@ CommitDate: Fri Jan 19 12:02:32 2018 +0100 Remove the timeout and the parallel tail call. Always output to standard error, for synchronization with the rest of the reporting. -:100644 100644 38c334a0 1831bc0c M glibc.spec +:100644 100644 38c334a 1831bc0 M glibc.spec commit 5163dbee45584c74025497b8f760c3ee94049f1f Author: Florian Weimer @@ -16085,7 +17219,7 @@ CommitDate: Fri Jan 19 08:36:02 2018 +0100 Enable static PIE on aarch64, i686, x86-64 -:100644 100644 9b534ea6 38c334a0 M glibc.spec +:100644 100644 9b534ea 38c334a M glibc.spec commit dc905411d5b45d40e511063a5a1624b4cc5ac2a5 Author: Florian Weimer @@ -16095,7 +17229,7 @@ CommitDate: Fri Jan 19 08:35:09 2018 +0100 Remove add-on support (already gone upstream) -:100644 100644 4e5ba158 9b534ea6 M glibc.spec +:100644 100644 4e5ba15 9b534ea M glibc.spec commit 90612b2709d89a73aef91a99c83c50234359a74a Author: Florian Weimer @@ -16105,9 +17239,9 @@ CommitDate: Wed Jan 17 18:42:37 2018 +0100 Use libidn2 for IDNA support (#1452750) -:000000 100644 00000000 bdef9216 A glibc-rh1452750-allocate_once.patch -:000000 100644 00000000 38c17a3d A glibc-rh1452750-libidn2.patch -:100644 100644 29fdb562 4e5ba158 M glibc.spec +:000000 100644 0000000 bdef921 A glibc-rh1452750-allocate_once.patch +:000000 100644 0000000 38c17a3 A glibc-rh1452750-libidn2.patch +:100644 100644 29fdb56 4e5ba15 M glibc.spec commit d7ce5d463432bf3573573aed17a99a22f750fd96 Author: Florian Weimer @@ -16125,8 +17259,8 @@ CommitDate: Mon Jan 15 18:02:57 2018 +0100 - aarch64: fix static pie enabled libc when main is in a shared library - malloc: Ensure that the consolidated fast chunk has a sane size -:100644 100644 0d2ffb20 29fdb562 M glibc.spec -:100644 100644 817c32b3 79e40309 M sources +:100644 100644 0d2ffb2 29fdb56 M glibc.spec +:100644 100644 817c32b 79e4030 M sources commit d84b03df97893052d1fe7c2dc31cef9a0724a162 Author: Florian Weimer @@ -16144,8 +17278,8 @@ CommitDate: Fri Jan 12 11:43:05 2018 +0100 - math: Make default libc_feholdsetround_noex_ctx use __feholdexcept (swbz#22702) -:100644 100644 4149057b 0d2ffb20 M glibc.spec -:100644 100644 b20bd573 817c32b3 M sources +:100644 100644 4149057 0d2ffb2 M glibc.spec +:100644 100644 b20bd57 817c32b M sources commit 684ac6eb78b893e3b7e1a925728abf63d91b95d0 Author: Florian Weimer @@ -16155,7 +17289,7 @@ CommitDate: Fri Jan 12 11:13:18 2018 +0100 Use unversioned Supplements: for langpacks (#1490725) -:100644 100644 c9a2081e 4149057b M glibc.spec +:100644 100644 c9a2081 4149057 M glibc.spec commit 538e3ea7c8812b667b681ccfac9f8655188ad5bf Author: Florian Weimer @@ -16173,8 +17307,8 @@ CommitDate: Thu Jan 11 14:30:08 2018 +0100 - nptl: Add tst-minstack-cancel, tst-minstack-exit (swbz#22636) - math: ldbl-128ibm log1pl (-qNaN) spurious "invalid" exception (swbz#22693) -:100644 100644 27afdf33 c9a2081e M glibc.spec -:100644 100644 b52d49ea b20bd573 M sources +:100644 100644 27afdf3 c9a2081 M glibc.spec +:100644 100644 b52d49e b20bd57 M sources commit b8bc11a8341f69766b306d9c104b8aa8bd8cc8e4 Author: Florian Weimer @@ -16184,7 +17318,7 @@ CommitDate: Thu Jan 11 13:21:53 2018 +0100 Put libnsl into a subpackage and do not install NIS headers -:100644 100644 688fe5ab 27afdf33 M glibc.spec +:100644 100644 688fe5a 27afdf3 M glibc.spec commit 6e8a4e351bb4b3cadec151cb418ed706777141ca Author: Florian Weimer @@ -16194,7 +17328,7 @@ CommitDate: Thu Jan 11 11:57:20 2018 +0100 Use versioned Obsoletes: for libcrypt-nss -:100644 100644 e1ae4efb 688fe5ab M glibc.spec +:100644 100644 e1ae4ef 688fe5a M glibc.spec commit 8544d3ab893b27557fb11c7ba56b2427cb34f70f Author: Carlos O'Donell @@ -16204,7 +17338,7 @@ CommitDate: Wed Jan 10 11:13:08 2018 -0800 Update comments on python3 selection. -:100644 100644 828d003f e1ae4efb M glibc.spec +:100644 100644 828d003 e1ae4ef M glibc.spec commit 9e28c4292e0bf454c5226d2c7b0efa886907932e Author: Florian Weimer @@ -16222,8 +17356,8 @@ CommitDate: Wed Jan 10 08:59:17 2018 +0100 - math: ldbl-128ibm lrintl/lroundl missing "invalid" exceptions (swbz#22690) - x86-64: Add sincosf with vector FMA -:100644 100644 f4d0d879 828d003f M glibc.spec -:100644 100644 c0572efe b52d49ea M sources +:100644 100644 f4d0d87 828d003 M glibc.spec +:100644 100644 c0572ef b52d49e M sources commit e15a68193ca296b26580a4b298aa5fddbbcdf97e Author: Florian Weimer @@ -16233,7 +17367,7 @@ CommitDate: Wed Jan 10 08:09:01 2018 +0100 Use python3 instead of python during builds -:100644 100644 24232629 f4d0d879 M glibc.spec +:100644 100644 2423262 f4d0d87 M glibc.spec commit cad9c65e114463e86fa75ecb54fdc4b3259c6756 Author: Florian Weimer @@ -16243,7 +17377,7 @@ CommitDate: Tue Jan 9 15:14:20 2018 +0100 Remove Obsoletes: on capabilities which are not package names -:100644 100644 9a9dfe03 24232629 M glibc.spec +:100644 100644 9a9dfe0 2423262 M glibc.spec commit a281128660c3197f07783d082d5a35423cc48e55 Author: Florian Weimer @@ -16253,8 +17387,8 @@ CommitDate: Mon Jan 8 16:46:16 2018 +0100 Add glibc-rpcgen subpackage, until the replacement is packaged (#1531540) -:000000 100644 00000000 2fe11303 A glibc-rpcgen.patch -:100644 100644 c88f02a1 9a9dfe03 M glibc.spec +:000000 100644 0000000 2fe1130 A glibc-rpcgen.patch +:100644 100644 c88f02a 9a9dfe0 M glibc.spec commit 1042b5d52afdfb4615bce84a3fea83af7a0c3618 Author: Florian Weimer @@ -16273,8 +17407,8 @@ CommitDate: Mon Jan 8 15:15:05 2018 +0100 - powerpc: Fix error message during relocation overflow - prlimit: Replace old_rlimit RLIM64_INFINITY with RLIM_INFINITY (swbz#22678) -:100644 100644 a8be35b3 c88f02a1 M glibc.spec -:100644 100644 84b50960 c0572efe M sources +:100644 100644 a8be35b c88f02a M glibc.spec +:100644 100644 84b5096 c0572ef M sources commit cf072ec21ab6e068d47ab5f049287901698b77be Author: Florian Weimer @@ -16299,8 +17433,8 @@ CommitDate: Fri Jan 5 14:36:28 2018 +0100 - scandir: fix wrong assumption about errno (swbz#17804) - Deprecate external use of libio.h and _G_config.h -:100644 100644 fa48deba a8be35b3 M glibc.spec -:100644 100644 5786385d 84b50960 M sources +:100644 100644 fa48deb a8be35b M glibc.spec +:100644 100644 5786385 84b5096 M sources commit bf6952b9c946b873a74982c57feeb69b08760bcb Author: Florian Weimer @@ -16312,8 +17446,8 @@ CommitDate: Fri Jan 5 14:23:04 2018 +0100 Fixed upstream in a different way (our patch was buggy, see CVE-2017-16997). -:100644 000000 0f20ca89 00000000 D glibc-fedora-elf-ORIGIN.patch -:100644 100644 d648aac0 fa48deba M glibc.spec +:100644 000000 0f20ca8 0000000 D glibc-fedora-elf-ORIGIN.patch +:100644 100644 d648aac fa48deb M glibc.spec commit 23177e46b4d4f3dfda2feffe7989b43107409a27 Author: Florian Weimer @@ -16326,7 +17460,7 @@ CommitDate: Fri Jan 5 14:19:56 2018 +0100 Obsoleted by commit d8e1573f9c8c28f6390791c329512045f0c52868 (Stop shipping /usr/sbin/sln). -:100644 000000 f0ac3aa8 00000000 D glibc-rh1315476-2.patch +:100644 000000 f0ac3aa 0000000 D glibc-rh1315476-2.patch commit d62730de90faf8520e32e9bcb17cc21a7996eaf4 Author: Florian Weimer @@ -16336,7 +17470,7 @@ CommitDate: Fri Jan 5 14:07:05 2018 +0100 Disable Sun RPC interfaces (#1531540) -:100644 100644 80844ed8 d648aac0 M glibc.spec +:100644 100644 80844ed d648aac M glibc.spec commit 95cc2e8d4c0607803d926964f2b7b5b129d4e294 Author: Florian Weimer @@ -16346,7 +17480,7 @@ CommitDate: Thu Jan 4 10:45:03 2018 +0100 glibc_post_upgrade: Explain why removing platform directories is needed -:100644 100644 ae48737f ad3215c2 M glibc_post_upgrade.c +:100644 100644 ae48737 ad3215c M glibc_post_upgrade.c commit d8e1573f9c8c28f6390791c329512045f0c52868 Author: Colin Walters @@ -16391,7 +17525,7 @@ CommitDate: Wed Jan 3 16:30:03 2018 -0500 in updates, but given there's no real reason for this binary to exist anymore, let's drop it. -:100644 100644 55100138 80844ed8 M glibc.spec +:100644 100644 5510013 80844ed M glibc.spec commit 39b4cfbcf15255c21ec057abc81b457ecd11f8c3 Author: Florian Weimer @@ -16422,9 +17556,9 @@ CommitDate: Fri Dec 22 16:13:39 2017 +0100 - x86-64: Remove sysdeps/x86_64/fpu/s_cosf.S - aarch64: Improve strcmp unaligned performance -:100644 100644 4bcd5b53 ca2c6508 M glibc-rh1013801.patch -:100644 100644 519dc315 55100138 M glibc.spec -:100644 100644 992ba028 5786385d M sources +:100644 100644 4bcd5b5 ca2c650 M glibc-rh1013801.patch +:100644 100644 519dc31 5510013 M glibc.spec +:100644 100644 992ba02 5786385 M sources commit a5a75062423efd916b908a2c6225d030233c13fa Author: Florian Weimer @@ -16434,8 +17568,8 @@ CommitDate: Wed Dec 13 16:26:51 2017 +0100 Remove power6 platform directory (#1522675) -:100644 100644 400b8cd8 519dc315 M glibc.spec -:100644 100644 e5b72a01 ae48737f M glibc_post_upgrade.c +:100644 100644 400b8cd 519dc31 M glibc.spec +:100644 100644 e5b72a0 ae48737 M glibc_post_upgrade.c commit 08930d16b54c24b4599d892dedacf94e9e44f368 Author: Florian Weimer @@ -16445,8 +17579,8 @@ CommitDate: Wed Dec 13 12:49:24 2017 +0100 Obsolete the libcrypt-nss subpackage (#1525396) -:100644 000000 44333d7d 00000000 D glibc-rh1324623.patch -:100644 100644 7c120393 400b8cd8 M glibc.spec +:100644 000000 44333d7 0000000 D glibc-rh1324623.patch +:100644 100644 7c12039 400b8cd M glibc.spec commit 29bd4db4f52040dbe082ed11a8fc7cc0245d70ca Author: Florian Weimer @@ -16456,7 +17590,7 @@ CommitDate: Wed Dec 13 12:03:19 2017 +0100 armhfp: Disable -fstack-clash-protection due to GCC bug (#1522678) -:100644 100644 2ce64938 7c120393 M glibc.spec +:100644 100644 2ce6493 7c12039 M glibc.spec commit ac67247deff1ad0c3259161309a63f9a82039758 Author: Florian Weimer @@ -16466,7 +17600,7 @@ CommitDate: Wed Dec 13 12:00:28 2017 +0100 ppc64: Disable power6 multilib due to GCC bug (#1522675) -:100644 100644 9b9ae6e5 2ce64938 M glibc.spec +:100644 100644 9b9ae6e 2ce6493 M glibc.spec commit 94e38e4e87e5c24ef91912f56f6c8dd0072cb29f Author: Florian Weimer @@ -16490,8 +17624,8 @@ CommitDate: Wed Dec 13 11:58:20 2017 +0100 - math: Make cacosh (0 + iNaN) return NaN + i pi/2 (swbz#22561) - hsb_DE locale: Base collation on copy "iso14651_t1" (swbz#22515) -:100644 100644 dac44e4a 9b9ae6e5 M glibc.spec -:100644 100644 034a7a9c 992ba028 M sources +:100644 100644 dac44e4 9b9ae6e M glibc.spec +:100644 100644 034a7a9 992ba02 M sources commit 9d8de720ddc32778eddd41b5fbb55b4701da9f83 Author: Florian Weimer @@ -16501,7 +17635,7 @@ CommitDate: Wed Dec 6 11:16:02 2017 +0100 Add reference to #1383986 -:100644 100644 87f0ca5d dac44e4a M glibc.spec +:100644 100644 87f0ca5 dac44e4 M glibc.spec commit 3c78a5138511fa5c5ae7ed61dd1711eafa122f87 Author: Florian Weimer @@ -16524,8 +17658,8 @@ CommitDate: Wed Dec 6 07:55:19 2017 +0100 - hr_HR locale: Avoid single code points for digraphs in LC_TIME (swbz#10580) - S390: Fix backtrace in vdso functions -:100644 100644 b526edd2 87f0ca5d M glibc.spec -:100644 100644 beb9e50a 034a7a9c M sources +:100644 100644 b526edd 87f0ca5 M glibc.spec +:100644 100644 beb9e50 034a7a9 M sources commit d19bd27c2fe9fa294073a74908bba8abe58ad6d0 Author: Florian Weimer @@ -16535,7 +17669,7 @@ CommitDate: Wed Dec 6 07:49:51 2017 +0100 Add reference to CVE-2017-17426 -:100644 100644 eae69187 b526edd2 M glibc.spec +:100644 100644 eae6918 b526edd M glibc.spec commit bb83f920be3ae02a1ba179b08072281ac0cff3ab Author: Florian Weimer @@ -16556,8 +17690,8 @@ CommitDate: Mon Dec 4 13:59:23 2017 +0100 - malloc: Fix integer overflow when tcache is enabled (swbz#22375) - locale: make forward accent sorting the default in collating (swbz#17750) -:100644 100644 154aa7cf eae69187 M glibc.spec -:100644 100644 979fd09c beb9e50a M sources +:100644 100644 154aa7c eae6918 M glibc.spec +:100644 100644 979fd09 beb9e50 M sources commit 00b734f53088485c0da9d2a736ceead0c63c584e Author: Florian Weimer @@ -16567,7 +17701,7 @@ CommitDate: Wed Nov 29 12:59:25 2017 +0100 Enable -fstack-clash-protection (#1512531) -:100644 100644 6a42a126 154aa7cf M glibc.spec +:100644 100644 6a42a12 154aa7c M glibc.spec commit db77ecebac1de45d171e1717ea66d04e6ea57b30 Author: Florian Weimer @@ -16577,7 +17711,7 @@ CommitDate: Wed Nov 29 12:54:21 2017 +0100 Upload new sources -:100644 100644 2d91365d 979fd09c M sources +:100644 100644 2d91365 979fd09 M sources commit 776ca08599a673d1a075ab6ed09f5248eacfa441 Author: Florian Weimer @@ -16597,7 +17731,7 @@ CommitDate: Wed Nov 29 11:58:53 2017 +0100 - pl_PL locale: Base collation on iso14651_t1 (swbz#22469) - nss: Export nscd hash function as __nss_hash (swbz#22459) -:100644 100644 6a88a73f 6a42a126 M glibc.spec +:100644 100644 6a88a73 6a42a12 M glibc.spec commit 71d4a02e146829823d06a8b02039aba21263db1f Author: Andreas Krebbel @@ -16607,7 +17741,7 @@ CommitDate: Tue Nov 28 18:40:52 2017 +0100 Typo fixes and improved s390 (31-bit) build support -:100644 100644 f65a5a27 6a88a73f M glibc.spec +:100644 100644 f65a5a2 6a88a73 M glibc.spec commit 10c1baf354ff515fd74f2966e3aadd5136e7fd94 Author: Florian Weimer @@ -16628,8 +17762,8 @@ CommitDate: Thu Nov 23 11:28:28 2017 +0100 - S390: Add cfi information for start routines in order to stop unwinding - aarch64: Optimized memset for falkor -:100644 100644 e0a79651 f65a5a27 M glibc.spec -:100644 100644 804c7165 2d91365d M sources +:100644 100644 e0a7965 f65a5a2 M glibc.spec +:100644 100644 804c716 2d91365 M sources commit df547679fdfdc29ce403346548b56a985229c22d Author: Florian Weimer @@ -16654,8 +17788,8 @@ CommitDate: Sun Nov 19 10:56:29 2017 +0100 - resolv: ns_name_pton should report trailing \ as error (swbz#22413) - locale: mfe_MU, miq_NI, an_ES, kab_DZ, om_ET: Escape / in d_fmt (swbz#22403) -:100644 100644 cb8bfa19 e0a79651 M glibc.spec -:100644 100644 37f16731 804c7165 M sources +:100644 100644 cb8bfa1 e0a7965 M glibc.spec +:100644 100644 37f1673 804c716 M sources commit 35726c325a2770117be10330b63337886f601c1b Author: Florian Weimer @@ -16665,7 +17799,7 @@ CommitDate: Tue Nov 7 12:21:16 2017 +0100 Link build-locale-archive against record-status.o -:100644 100644 b5a8634b cb8bfa19 M glibc.spec +:100644 100644 b5a8634 cb8bfa1 M glibc.spec commit 0980ba190bd5f7daf6474a254e4c70f671354605 Author: Florian Weimer @@ -16701,10 +17835,10 @@ CommitDate: Tue Nov 7 12:05:14 2017 +0100 - x86-64: Add exp2f with FMA - i386: Replace assembly versions of e_expf with generic e_expf.c -:100644 100644 a11f9ac9 a8e5a0c6 M SUPPORTED -:100644 100644 c4a39f6e 4aaec7f4 M glibc-fedora-localedef.patch -:100644 100644 905ad88f b5a8634b M glibc.spec -:100644 100644 d97c6216 37f16731 M sources +:100644 100644 a11f9ac a8e5a0c M SUPPORTED +:100644 100644 c4a39f6 4aaec7f M glibc-fedora-localedef.patch +:100644 100644 905ad88 b5a8634 M glibc.spec +:100644 100644 d97c621 37f1673 M sources commit e74f2b3bdb9897a34916f266d8c7d88fb7658462 Author: Florian Weimer @@ -16724,9 +17858,9 @@ CommitDate: Sat Oct 21 14:17:32 2017 +0200 - locale: Add new locale kab_DZ (swbz#18812) - locale: Add new locale shn_MM (swbz#13605) -:100644 100644 26894bb6 a11f9ac9 M SUPPORTED -:100644 100644 6c2afe30 905ad88f M glibc.spec -:100644 100644 988193ee d97c6216 M sources +:100644 100644 26894bb a11f9ac M SUPPORTED +:100644 100644 6c2afe3 905ad88 M glibc.spec +:100644 100644 988193e d97c621 M sources commit 5188e8569e4032f8408e569ef856277b1b50d071 Author: Florian Weimer @@ -16755,9 +17889,9 @@ CommitDate: Fri Oct 20 04:33:52 2017 +0200 - math: Let signbit use the builtin in C++ mode with gcc < 6.x (swbz#22296) - locale: Place monetary symbol in el_GR, el_CY after the amount (swbz#22019) -:100644 100644 8476f268 26894bb6 M SUPPORTED -:100644 100644 dc5d6016 6c2afe30 M glibc.spec -:100644 100644 b93a31fe 988193ee M sources +:100644 100644 8476f26 26894bb M SUPPORTED +:100644 100644 dc5d601 6c2afe3 M glibc.spec +:100644 100644 b93a31f 988193e M sources commit e098446236b772f67e07fb05279514a67d4a9d05 Author: Florian Weimer @@ -16767,7 +17901,7 @@ CommitDate: Tue Oct 17 13:52:43 2017 +0200 Use the -O flag to serialize make output -:100644 100644 a05c3b85 dc5d6016 M glibc.spec +:100644 100644 a05c3b8 dc5d601 M glibc.spec commit 277dd05ebd5bf0c81f0b7d9f0bc3be1e3d31c1f3 Author: Florian Weimer @@ -16777,7 +17911,7 @@ CommitDate: Tue Oct 17 13:50:23 2017 +0200 Fix _smp_mflags reference in the libcrypt build -:100644 100644 cc73191a a05c3b85 M glibc.spec +:100644 100644 cc73191 a05c3b8 M glibc.spec commit 7bdfe15464f9f6c7dd97fffc7fc4e728d8cd7c62 Author: Florian Weimer @@ -16787,7 +17921,7 @@ CommitDate: Tue Oct 17 13:47:32 2017 +0200 Remove silentrules macro -:100644 100644 5d368128 cc73191a M glibc.spec +:100644 100644 5d36812 cc73191 M glibc.spec commit adefe4d265a60ccb2ceab6cb28e2bb9698c15525 Author: Florian Weimer @@ -16799,7 +17933,7 @@ CommitDate: Tue Oct 17 13:43:47 2017 +0200 This is now supported upstream. -:100644 100644 b86d0457 5d368128 M glibc.spec +:100644 100644 b86d045 5d36812 M glibc.spec commit 3bd5cf3d29382a332c4b5fec3d12500146ecb89f Author: Florian Weimer @@ -16813,7 +17947,7 @@ CommitDate: Tue Oct 17 12:55:38 2017 +0200 release off the release/*/master branch (which does not have a tarball), but glibcversion remains the same. -:100644 100644 52e09de7 b86d0457 M glibc.spec +:100644 100644 52e09de b86d045 M glibc.spec commit d4b46d7258ecdfe6a6ade7b1ddc32a503d501e05 Author: Florian Weimer @@ -16823,7 +17957,7 @@ CommitDate: Tue Oct 17 12:47:02 2017 +0200 Switch to .9000 version numbers during development (this time for real) -:100644 100644 b429a827 52e09de7 M glibc.spec +:100644 100644 b429a82 52e09de M glibc.spec commit 7fbb58cf6219b8c81fae369b92301659c98b99ba Author: Florian Weimer @@ -16838,8 +17972,8 @@ CommitDate: Tue Oct 17 12:12:39 2017 +0200 - Switch to .9000 version numbers during development - malloc: Use compat_symbol_reference in libmcheck (swbz#22050) -:100644 100644 d64b90c6 b429a827 M glibc.spec -:100644 100644 b4497edf b93a31fe M sources +:100644 100644 d64b90c b429a82 M glibc.spec +:100644 100644 b4497ed b93a31f M sources commit 6c2a58dc615d03e291c7cda5ce830ad0ce95f952 Author: Florian Weimer @@ -16860,8 +17994,8 @@ CommitDate: Mon Oct 16 19:27:17 2017 +0200 - powerpc: Fix the carry bit on mpn_[add|sub]_n on POWER7 (swbz#22142) - Support profiling PIE (swbz#22284) -:100644 100644 cdfb79f6 d64b90c6 M glibc.spec -:100644 100644 21c92c69 b4497edf M sources +:100644 100644 cdfb79f d64b90c M glibc.spec +:100644 100644 21c92c6 b4497ed M sources commit b1ee1018fc16ab856c53280899f0d6db48e51095 Author: Florian Weimer @@ -16873,9 +18007,9 @@ CommitDate: Wed Oct 11 07:19:54 2017 +0200 Upstream commit: d8425e116cdd954fea0c04c0f406179b5daebbb3 -:100644 100644 5493c2a2 ba60ad6e M glibc-rh1315108.patch -:100644 100644 ca5d36ad cdfb79f6 M glibc.spec -:100644 100644 f8598065 21c92c69 M sources +:100644 100644 5493c2a ba60ad6 M glibc-rh1315108.patch +:100644 100644 ca5d36a cdfb79f M glibc.spec +:100644 100644 f859806 21c92c6 M sources commit d3da0e913afac8c4ffb4524eb2ecfd1d83abf611 Author: Florian Weimer @@ -16885,7 +18019,7 @@ CommitDate: Mon Oct 9 12:24:43 2017 +0200 Move /var/db/Makefile to nss_db (#1498900) -:100644 100644 0ba60a6d ca5d36ad M glibc.spec +:100644 100644 0ba60a6 ca5d36a M glibc.spec commit 988ba6d3d10f37af560d7272d3c626f8b89f0bc4 Author: Florian Weimer @@ -16897,8 +18031,8 @@ CommitDate: Mon Oct 9 12:07:51 2017 +0200 Upstream commit: 645ac9aaf89e3311949828546df6334322f48933 -:100644 100644 3e604a5f 0ba60a6d M glibc.spec -:100644 100644 9e219efb f8598065 M sources +:100644 100644 3e604a5 0ba60a6 M glibc.spec +:100644 100644 9e219ef f859806 M sources commit 746617ce7d177176e8359fe374cc845a3f34e188 Author: Florian Weimer @@ -16911,7 +18045,7 @@ CommitDate: Sat Oct 7 12:40:46 2017 +0200 The existing shell-based approach required super-linear processing time for the SUPPORTED file. -:100644 100644 f86ae012 3e604a5f M glibc.spec +:100644 100644 f86ae01 3e604a5 M glibc.spec commit b586203c24fcc53c7ad661343d2c5ec9346169c8 Author: Carlos O'Donell @@ -16929,10 +18063,10 @@ CommitDate: Fri Oct 6 15:55:09 2017 -0700 - Always do locking when iterating over list of streams (swbz#15142) - abort: Do not flush stdio streams (swbz#15436) -:000000 100644 00000000 ef528da2 A README.scripts -:100644 100644 fecf03be f86ae012 M glibc.spec -:100644 100644 f504dce6 9e219efb M sources -:100755 000000 459c1534 00000000 D sync-upstream.sh +:000000 100644 0000000 ef528da A README.scripts +:100644 100644 fecf03b f86ae01 M glibc.spec +:100644 100644 f504dce 9e219ef M sources +:100755 000000 459c153 0000000 D sync-upstream.sh commit 2235ae530db15a9d8f05646cf4998a91f8b5c523 Author: Florian Weimer @@ -16942,7 +18076,7 @@ CommitDate: Wed Oct 4 18:53:59 2017 +0200 Move nss_compat to the main glibc package (#1400538) -:100644 100644 84766e96 fecf03be M glibc.spec +:100644 100644 84766e9 fecf03b M glibc.spec commit 67108a5592fd04da99a25f5b2f8cb140a7062e5e Author: Florian Weimer @@ -16961,9 +18095,9 @@ CommitDate: Wed Oct 4 16:01:19 2017 +0200 - powerpc: Optimize memrchr for power8 - Hide various internal functions (swbz#18822) -:100644 100644 88bf4aef 5493c2a2 M glibc-rh1315108.patch -:100644 100644 06af9d67 84766e96 M glibc.spec -:100644 100644 049443a7 f504dce6 M sources +:100644 100644 88bf4ae 5493c2a M glibc-rh1315108.patch +:100644 100644 06af9d6 84766e9 M glibc.spec +:100644 100644 049443a f504dce M sources commit edbe539debc99effb4b66cdbcbc0b0a2ba9a8667 Author: Florian Weimer @@ -16973,8 +18107,8 @@ CommitDate: Sun Oct 1 17:52:54 2017 +0200 Rotate RPM changelog -:100644 100644 f35a49d5 f39f56eb M ChangeLog.old -:100644 100644 5cbe425c 06af9d67 M glibc.spec +:100644 100644 f35a49d f39f56e M ChangeLog.old +:100644 100644 5cbe425 06af9d6 M glibc.spec commit f7f03039dde77cfa9a88aacf088444a3191beb9e Author: Florian Weimer @@ -16984,7 +18118,7 @@ CommitDate: Sun Oct 1 17:52:10 2017 +0200 Fix typo in changelog -:100644 100644 94c2a376 5cbe425c M glibc.spec +:100644 100644 94c2a37 5cbe425 M glibc.spec commit d61c107a04e592302939ed97ab5519088f0e3ed3 Author: Florian Weimer @@ -17028,10 +18162,10 @@ CommitDate: Sat Sep 30 09:04:21 2017 +0200 - Add miq_NI locale for Miskito (swbz#20498) - Fix bits/math-finite.h exp10 condition (swbz#22082) -:100644 100644 821f3cab 8476f268 M SUPPORTED -:100644 100644 46271576 88bf4aef M glibc-rh1315108.patch -:100644 100644 844a4323 94c2a376 M glibc.spec -:100644 100644 3f42a249 049443a7 M sources +:100644 100644 821f3ca 8476f26 M SUPPORTED +:100644 100644 4627157 88bf4ae M glibc-rh1315108.patch +:100644 100644 844a432 94c2a37 M glibc.spec +:100644 100644 3f42a24 049443a M sources commit 253d1d9c66080f51b68abe805ebedacaf51bc085 Author: Florian Weimer @@ -17041,7 +18175,7 @@ CommitDate: Thu Sep 14 17:41:57 2017 +0200 Fix accidentially inserted typo -:100644 100644 146b8abf 844a4323 M glibc.spec +:100644 100644 146b8ab 844a432 M glibc.spec commit 8ca6f66f209db512ea16a98c6b8d5a05d8e17f04 Author: Florian Weimer @@ -17051,7 +18185,7 @@ CommitDate: Mon Sep 4 20:53:35 2017 +0200 Upstream removed BUGS and CONFORMANCE files -:100644 100644 d8b5a735 146b8abf M glibc.spec +:100644 100644 d8b5a73 146b8ab M glibc.spec commit 0e45e4de586c77c9e0bcf692f0d80186957c1e69 Author: Florian Weimer @@ -17067,8 +18201,8 @@ CommitDate: Mon Sep 4 19:49:35 2017 +0200 - Obsolete pow10 functions - math.h: Warn about an already-defined log macro -:100644 100644 00373983 d8b5a735 M glibc.spec -:100644 100644 c5585b01 3f42a249 M sources +:100644 100644 0037398 d8b5a73 M glibc.spec +:100644 100644 c5585b0 3f42a24 M sources commit e79ddddf678e4b4ca0a7bc23aeb574d64ef02093 Author: Florian Weimer @@ -17078,7 +18212,7 @@ CommitDate: Mon Sep 4 19:49:35 2017 +0200 Do not patch ChangeLog in glibc-fedora-locarchive.patch -:100644 100644 9a702af5 91ac6614 M glibc-fedora-locarchive.patch +:100644 100644 9a702af 91ac661 M glibc-fedora-locarchive.patch commit 21cf167acc7cb3cc75b5a62e663dc7002362eaa8 Author: Florian Weimer @@ -17088,7 +18222,7 @@ CommitDate: Fri Sep 1 14:07:30 2017 +0200 Build glibc with -O2 -:100644 100644 657586f7 00373983 M glibc.spec +:100644 100644 657586f 0037398 M glibc.spec commit 284746122d078a440e36327ebcb470421d790ebf Author: Florian Weimer @@ -17106,8 +18240,8 @@ CommitDate: Fri Sep 1 10:30:18 2017 +0200 - Place $(elf-objpfx)sofini.os last (swbz#22051) - Various locale fixes (swbz#15332, swbz#22044) -:100644 100644 7cd147eb 657586f7 M glibc.spec -:100644 100644 8740e315 c5585b01 M sources +:100644 100644 7cd147e 657586f M glibc.spec +:100644 100644 8740e31 c5585b0 M sources commit b45bb052630767142d649f26693be4267aa5b62c Author: Florian Weimer @@ -17129,10 +18263,10 @@ CommitDate: Wed Aug 30 14:12:45 2017 +0200 - Fix bits/math-finite.h _MSUF_ expansion namespace (swbz#22028) - Provide a C++ version of iszero that does not use __MATH_TG (swbz#21930) -:100644 100644 ec2ec2d2 821f3cab M SUPPORTED -:100644 000000 9fe22aac 00000000 D glibc-rh952799.patch -:100644 100644 1a871854 7cd147eb M glibc.spec -:100644 100644 0f7eff9d 8740e315 M sources +:100644 100644 ec2ec2d 821f3ca M SUPPORTED +:100644 000000 9fe22aa 0000000 D glibc-rh952799.patch +:100644 100644 1a87185 7cd147e M glibc.spec +:100644 100644 0f7eff9 8740e31 M sources commit 05146e37a4ce4efe1a74312d16226b9088678089 Author: Mark Wielaard @@ -17142,7 +18276,7 @@ CommitDate: Wed Aug 30 14:02:18 2017 +0200 Run valgrind check with --error-exitcode=1. Fix valgrind BuildRequires. -:100644 100644 13d61082 1a871854 M glibc.spec +:100644 100644 13d6108 1a87185 M glibc.spec commit 76dd91f1175e3ab262096773cba9c6128f1f39a6 Author: Florian Weimer @@ -17154,8 +18288,8 @@ CommitDate: Tue Aug 29 12:48:36 2017 +0200 It has since been obsoleted by multiple mass rebuilds. -:100644 000000 c1af7fa0 00000000 D glibc-rh1009145.patch -:100644 100644 3d15644e 13d61082 M glibc.spec +:100644 000000 c1af7fa 0000000 D glibc-rh1009145.patch +:100644 100644 3d15644 13d6108 M glibc.spec commit 7df3e02388840deb495f08ef7dcee02974685323 Author: Florian Weimer @@ -17165,7 +18299,7 @@ CommitDate: Mon Aug 28 13:15:27 2017 +0200 Include misc/tst-syscall-list.out in the build log -:100644 100644 55343493 3d15644e M glibc.spec +:100644 100644 5534349 3d15644 M glibc.spec commit d0c57f678ab7a7cded9450323fd9fbe81e5fa898 Author: Florian Weimer @@ -17177,8 +18311,8 @@ CommitDate: Mon Aug 28 12:12:15 2017 +0200 Upstream commit: 2dba5ce7b8115d6a2789bf279892263621088e74 -:100644 100644 964b4fdf 55343493 M glibc.spec -:100644 100644 65a3cabe 0f7eff9d M sources +:100644 100644 964b4fd 5534349 M glibc.spec +:100644 100644 65a3cab 0f7eff9 M sources commit a6b9bec157bee799195be22c2f7899532dcc3bf5 Author: Florian Weimer @@ -17196,8 +18330,8 @@ CommitDate: Mon Aug 28 12:07:38 2017 +0200 malloc: Avoid optimizer warning with GCC 7 and -O3 -:100644 000000 72e434b1 00000000 D glibc-rh1470060.patch -:100644 100644 28609279 964b4fdf M glibc.spec +:100644 000000 72e434b 0000000 D glibc-rh1470060.patch +:100644 100644 2860927 964b4fd M glibc.spec commit beff5c232694aef4f14ffe907fe263e3982df3b5 Author: Florian Weimer @@ -17209,9 +18343,9 @@ CommitDate: Mon Aug 28 12:05:33 2017 +0200 Applied upstream. -:100644 000000 019d107a 00000000 D glibc-rh1484729-syscall-names.patch -:100644 000000 c96e1a1e 00000000 D glibc-rh1484729.patch -:100644 100644 037a22c8 28609279 M glibc.spec +:100644 000000 019d107 0000000 D glibc-rh1484729-syscall-names.patch +:100644 000000 c96e1a1 0000000 D glibc-rh1484729.patch +:100644 100644 037a22c 2860927 M glibc.spec commit 238627a99eb6cde25a84ad22dfe8c0107af46325 Author: Florian Weimer @@ -17225,8 +18359,8 @@ CommitDate: Mon Aug 28 12:05:08 2017 +0200 output file, so the multi-arch conflict no longer happens, and the Makefile tweak is not needed anymore. -:100644 000000 54fae8b3 00000000 D glibc-rh825061.patch -:100644 100644 1e23c03d 037a22c8 M glibc.spec +:100644 000000 54fae8b 0000000 D glibc-rh825061.patch +:100644 100644 1e23c03 037a22c M glibc.spec commit 6a6f54375a090ccdc68e6aa9e82b514303403aea Author: Florian Weimer @@ -17241,8 +18375,8 @@ CommitDate: Fri Aug 25 11:39:53 2017 +0200 - string/stratcliff.c: Replace int with size_t (swbz#21982) - Fix tgmath.h handling of complex integers (swbz#21684) -:100644 100644 b53b7902 1e23c03d M glibc.spec -:100644 100644 375c390f 65a3cabe M sources +:100644 100644 b53b790 1e23c03 M glibc.spec +:100644 100644 375c390 65a3cab M sources commit a60d22cda652c5a5258d40dc7d22cce9219f8baa Author: Florian Weimer @@ -17255,8 +18389,8 @@ CommitDate: Fri Aug 25 11:36:23 2017 +0200 This is no longer necessary because we do not build with -O3 anymore. Upstream has a proper fix now, too. -:100644 000000 694df517 00000000 D glibc-gcc-strict-overflow.patch -:100644 100644 b94e9e01 b53b7902 M glibc.spec +:100644 000000 694df51 0000000 D glibc-gcc-strict-overflow.patch +:100644 100644 b94e9e0 b53b790 M glibc.spec commit 0ab5fbb2e465c15715d51247cb76945cfa04fcff Author: Florian Weimer @@ -17266,8 +18400,8 @@ CommitDate: Fri Aug 25 11:28:44 2017 +0200 Update system call list to Linux 4.12 (#1484729) -:100644 100644 ffd6313f 019d107a M glibc-rh1484729-syscall-names.patch -:100644 100644 42b7483c c96e1a1e M glibc-rh1484729.patch +:100644 100644 ffd6313 019d107 M glibc-rh1484729-syscall-names.patch +:100644 100644 42b7483 c96e1a1 M glibc-rh1484729.patch commit 2f246edc9da1cf62edf796d79a7335768a1d4837 Author: Florian Weimer @@ -17277,8 +18411,8 @@ CommitDate: Thu Aug 24 16:51:08 2017 +0200 Drop glibc-fedora-include-bits-ldbl.patch (#1482105) -:100644 000000 1e5d763b 00000000 D glibc-fedora-include-bits-ldbl.patch -:100644 100644 890e4516 b94e9e01 M glibc.spec +:100644 000000 1e5d763 0000000 D glibc-fedora-include-bits-ldbl.patch +:100644 100644 890e451 b94e9e0 M glibc.spec commit 5bc208c4f5f60b4d1f3bc3610f9ab61175c62402 Author: Florian Weimer @@ -17288,9 +18422,9 @@ CommitDate: Thu Aug 24 16:49:18 2017 +0200 Use an architecture-independent system call list (#1484729) -:000000 100644 00000000 ffd6313f A glibc-rh1484729-syscall-names.patch -:000000 100644 00000000 42b7483c A glibc-rh1484729.patch -:100644 100644 8180b75a 890e4516 M glibc.spec +:000000 100644 0000000 ffd6313 A glibc-rh1484729-syscall-names.patch +:000000 100644 0000000 42b7483 A glibc-rh1484729.patch +:100644 100644 8180b75 890e451 M glibc.spec commit a4f378196ece15f66c8b0dda5601b069d97c9046 Author: Florian Weimer @@ -17306,8 +18440,8 @@ CommitDate: Thu Aug 24 11:17:17 2017 +0200 We compile all of glibc with -fno-asynchronous-unwind-tables, so we can drop glibc-fedora-ppc-unwind.patch. -:100644 000000 0a808ec7 00000000 D glibc-fedora-ppc-unwind.patch -:100644 100644 5a53112c 8180b75a M glibc.spec +:100644 000000 0a808ec 0000000 D glibc-fedora-ppc-unwind.patch +:100644 100644 5a53112 8180b75 M glibc.spec commit eb3d3880c8e0b5c7207c5464fafe3b33a1c3ad74 Author: Florian Weimer @@ -17319,8 +18453,8 @@ CommitDate: Tue Aug 22 08:19:09 2017 +0200 Upstream commit: 80f91666fed71fa3dd5eb5618739147cc731bc89 -:100644 100644 8ec20072 5a53112c M glibc.spec -:100644 100644 bb252fff 375c390f M sources +:100644 100644 8ec2007 5a53112 M glibc.spec +:100644 100644 bb252ff 375c390 M sources commit c6d0720817c50647356e012c1e10a87a8a0b1223 Author: Florian Weimer @@ -17334,8 +18468,8 @@ CommitDate: Mon Aug 21 22:31:26 2017 +0200 - Obsolete matherr, _LIB_VERSION, libieee.a. -:100644 100644 05936c69 8ec20072 M glibc.spec -:100644 100644 d49ce350 bb252fff M sources +:100644 100644 05936c6 8ec2007 M glibc.spec +:100644 100644 d49ce35 bb252ff M sources commit 976a6ca3e4023acbcca7a7aad6bd3b2f6f8d6711 Author: Florian Weimer @@ -17347,8 +18481,8 @@ CommitDate: Mon Aug 21 19:54:40 2017 +0200 Upstream commit: 4504783c0f65b7074204c6126c6255ed89d6594e -:100644 100644 5144a6cb 05936c69 M glibc.spec -:100644 100644 1f6d7a06 d49ce350 M sources +:100644 100644 5144a6c 05936c6 M glibc.spec +:100644 100644 1f6d7a0 d49ce35 M sources commit 8c898cdc110ac9a50cb5eaeae5f4a51b5ee886b0 Author: Florian Weimer @@ -17362,9 +18496,9 @@ CommitDate: Mon Aug 21 16:44:07 2017 +0200 - assert: Support types without operator== (int) (#1483005) -:100644 100644 f6430a85 f0ac3aa8 M glibc-rh1315476-2.patch -:100644 100644 9449ea04 5144a6cb M glibc.spec -:100644 100644 5f228172 1f6d7a06 M sources +:100644 100644 f6430a8 f0ac3aa M glibc-rh1315476-2.patch +:100644 100644 9449ea0 5144a6c M glibc.spec +:100644 100644 5f22817 1f6d7a0 M sources commit 051a34bb833ed94b6aa2a2d956ea6a2e67eee854 Author: Florian Weimer @@ -17384,9 +18518,9 @@ CommitDate: Mon Aug 21 14:17:58 2017 +0200 - x86-64: Optimize e_expf with FMA (swbz#21912) - Adjust glibc-rh827510.patch. -:100644 100644 f5f024c5 7fd3e99a M glibc-rh827510.patch -:100644 100644 e794cc74 9449ea04 M glibc.spec -:100644 100644 cb501172 5f228172 M sources +:100644 100644 f5f024c 7fd3e99 M glibc-rh827510.patch +:100644 100644 e794cc7 9449ea0 M glibc.spec +:100644 100644 cb50117 5f22817 M sources commit 08d81d73306dbda27f13ebd32919e5ddc6de8b0a Author: Carlos O'Donell @@ -17396,7 +18530,7 @@ CommitDate: Thu Aug 17 14:17:47 2017 -0400 Fix glibc.spec file comment with %%install. -:100644 100644 9ab57993 e794cc74 M glibc.spec +:100644 100644 9ab5799 e794cc7 M glibc.spec commit c6e992763d9bc1bd5a46499c08bb8342ef3a25b6 Author: Tomasz Kłoczko @@ -17410,7 +18544,7 @@ CommitDate: Thu Aug 17 14:16:03 2017 -0400 remove the buildroot in %install, all per Fedora Packaging Guidelines (#1476839) -:100644 100644 ecd6eeda 9ab57993 M glibc.spec +:100644 100644 ecd6eed 9ab5799 M glibc.spec commit 66a1c9c9cb0f3434ea826f43a26dbd93dc797544 Author: Florian Weimer @@ -17447,9 +18581,9 @@ CommitDate: Wed Aug 16 17:18:35 2017 +0200 - x86-64: Use _dl_runtime_resolve_opt only with AVX512F (swbz#21871) - x86: Remove __memset_zero_constant_len_parameter (swbz#21790) -:100644 100644 8f427ce9 ec2ec2d2 M SUPPORTED -:100644 100644 6fb6f87f ecd6eeda M glibc.spec -:100644 100644 6b6591f1 cb501172 M sources +:100644 100644 8f427ce ec2ec2d M SUPPORTED +:100644 100644 6fb6f87 ecd6eed M glibc.spec +:100644 100644 6b6591f cb50117 M sources commit 27727bd4a935e6cf5adaeb083ce732d2d8042663 Author: Florian Weimer @@ -17459,8 +18593,8 @@ CommitDate: Wed Aug 16 16:12:31 2017 +0200 Drop glibc-arm-hardfloat-3.patch and associated hack -:100644 000000 ff4997e5 00000000 D glibc-arm-hardfloat-3.patch -:100644 100644 541a0ee4 6fb6f87f M glibc.spec +:100644 000000 ff4997e 0000000 D glibc-arm-hardfloat-3.patch +:100644 100644 541a0ee 6fb6f87 M glibc.spec commit 5ca19238f5a7edf20f8e5f7b78d982a36cf61626 Author: Florian Weimer @@ -17470,8 +18604,8 @@ CommitDate: Wed Aug 16 16:01:49 2017 +0200 Drop glibc-fedora-ldd.patch (applied to upstream master) -:100644 000000 51aec739 00000000 D glibc-fedora-ldd.patch -:100644 100644 622a60ad 541a0ee4 M glibc.spec +:100644 000000 51aec73 0000000 D glibc-fedora-ldd.patch +:100644 100644 622a60a 541a0ee M glibc.spec commit 6cb5e06b89b4ab987a3af9f1bb58630025eaf88c Author: Florian Weimer @@ -17481,8 +18615,8 @@ CommitDate: Wed Aug 16 15:50:45 2017 +0200 Drop glibc-fedora-i386-tls-direct-seg-refs.patch -:100644 000000 80c0f0db 00000000 D glibc-fedora-i386-tls-direct-seg-refs.patch -:100644 100644 2f96f440 622a60ad M glibc.spec +:100644 000000 80c0f0d 0000000 D glibc-fedora-i386-tls-direct-seg-refs.patch +:100644 100644 2f96f44 622a60a M glibc.spec commit 2620469c94c9e3b0f154f7649c5dda7930030233 Author: Florian Weimer @@ -17492,7 +18626,7 @@ CommitDate: Wed Aug 16 13:45:31 2017 +0200 glibc-2.26-2.fc28: Packaging adjustments -:100644 100644 403db628 2f96f440 M glibc.spec +:100644 100644 403db62 2f96f44 M glibc.spec commit fce95492bdea68d754c84914a459bf3af93aa4dd Author: Florian Weimer @@ -17506,7 +18640,7 @@ CommitDate: Wed Aug 16 13:30:01 2017 +0200 script directly, but do not quote $find_debuginfo_args, to splice its contents into the argument list. -:100644 100644 4da10884 403db628 M glibc.spec +:100644 100644 4da1088 403db62 M glibc.spec commit 9df65054b7290db4972a1ea44564a1d0623774cc Author: Florian Weimer @@ -17523,7 +18657,7 @@ CommitDate: Wed Aug 16 13:17:21 2017 +0200 Instead, use %language_list directly. This is compatible with earlier RPM versions, too. -:100644 100644 0aaf3d21 4da10884 M glibc.spec +:100644 100644 0aaf3d2 4da1088 M glibc.spec commit d8b4ab633b5449ab5198c89592cc3b38af9a3410 Author: Florian Weimer @@ -17533,7 +18667,7 @@ CommitDate: Wed Aug 16 12:57:22 2017 +0200 Remove unused require_langpacks macro -:100644 100644 de7faabb 0aaf3d21 M glibc.spec +:100644 100644 de7faab 0aaf3d2 M glibc.spec commit 6e6bd41f5e1d60eaef49d2af31bd5b816e4ac86f Author: Florian Weimer @@ -17543,8 +18677,8 @@ CommitDate: Wed Aug 16 12:03:03 2017 +0200 Remove nosegneg 32-bit Xen PV support libraries (#1482027) -:100644 100644 3fafdf60 de7faabb M glibc.spec -:100644 100644 290489b6 e5b72a01 M glibc_post_upgrade.c +:100644 100644 3fafdf6 de7faab M glibc.spec +:100644 100644 290489b e5b72a0 M glibc_post_upgrade.c commit ad9d2e17df198a881d4e0f1ef4d63c41caf456fe Author: Florian Weimer @@ -17554,7 +18688,7 @@ CommitDate: Wed Aug 16 11:14:53 2017 +0200 Disable multi-arch (IFUNC string functions) on i686 (#1471427) -:100644 100644 6f2f6473 3fafdf60 M glibc.spec +:100644 100644 6f2f647 3fafdf6 M glibc.spec commit fdd439f8b755b698de0c65c3616abe2d29633925 Author: Florian Weimer @@ -17567,7 +18701,7 @@ CommitDate: Wed Aug 16 11:12:36 2017 +0200 Drop binutils run-time conflict. If we still want those, they should be on glibc-devel, not the main package. -:100644 100644 d6201e74 6f2f6473 M glibc.spec +:100644 100644 d6201e7 6f2f647 M glibc.spec commit 8742b0f94950f8e5d3a735be8b5cdd5140a53763 Author: Carlos O'Donell @@ -17584,9 +18718,9 @@ CommitDate: Thu Aug 3 09:47:24 2017 -0400 - Update to released 2.26 branch. - getaddrinfo: Release resolver context on error in gethosts (swbz#21885) -:100644 100644 17558143 8f427ce9 M SUPPORTED -:100644 100644 be24ccbe d6201e74 M glibc.spec -:100644 100644 0c6f45a6 6b6591f1 M sources +:100644 100644 1755814 8f427ce M SUPPORTED +:100644 100644 be24ccb d6201e7 M glibc.spec +:100644 100644 0c6f45a 6b6591f M sources commit 4786e3be951ae64cfdc4f12be5687b4c5312b27b Author: Fedora Release Engineering @@ -17596,7 +18730,7 @@ CommitDate: Wed Aug 2 21:45:53 2017 +0000 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild -:100644 100644 edff0977 be24ccbe M glibc.spec +:100644 100644 edff097 be24ccb M glibc.spec commit 8b0d66e92b9f5a11959e22eda9ca5a7e5ddabadc Author: Florian Weimer @@ -17608,8 +18742,8 @@ CommitDate: Sat Jul 29 08:18:06 2017 +0200 Upstream commit: 5920a4a624b1f4db310d1c44997b640e2a4653e5 -:100644 100644 b17a06f0 edff0977 M glibc.spec -:100644 100644 14fbd71b 0c6f45a6 M sources +:100644 100644 b17a06f edff097 M glibc.spec +:100644 100644 14fbd71 0c6f45a M sources commit 7e4694d522cb95a42594fdfd75140a96792292dc Author: Florian Weimer @@ -17621,9 +18755,9 @@ CommitDate: Fri Jul 28 21:00:29 2017 +0200 Upstream commit: d95fcb2df478efbf4f8537ba898374043ac4561f -:100644 100644 e1a2b418 17558143 M SUPPORTED -:100644 100644 41c1dfba b17a06f0 M glibc.spec -:100644 100644 8eaf07cd 14fbd71b M sources +:100644 100644 e1a2b41 1755814 M SUPPORTED +:100644 100644 41c1dfb b17a06f M glibc.spec +:100644 100644 8eaf07c 14fbd71 M sources commit d04b9b784045892e94292d0b749e4246cb2465d3 Author: Carlos O'Donell @@ -17633,7 +18767,7 @@ CommitDate: Thu Jul 27 12:41:04 2017 -0400 Fix NEVRA changes caused by mass rebuild scripts. -:100644 100644 dac87951 41c1dfba M glibc.spec +:100644 100644 dac8795 41c1dfb M glibc.spec commit 887799236c808fea71d4900b275cdb8b699b5a71 Author: Carlos O'Donell @@ -17645,7 +18779,7 @@ CommitDate: Thu Jul 27 12:35:22 2017 -0400 - Adjust to new rpm debuginfo generation (#1475009). -:100644 100644 7fe8baec dac87951 M glibc.spec +:100644 100644 7fe8bae dac8795 M glibc.spec commit f271045ada1c9057d49d9d881f539689b5719a02 Author: Fedora Release Engineering @@ -17655,7 +18789,7 @@ CommitDate: Wed Jul 26 10:20:27 2017 +0000 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild -:100644 100644 53924387 7fe8baec M glibc.spec +:100644 100644 5392438 7fe8bae M glibc.spec commit 37c3363a24efb70a9ee41b18f4bcc51222c0508d Author: Florian Weimer @@ -17669,8 +18803,8 @@ CommitDate: Wed Jul 19 09:05:38 2017 +0200 - aarch64: Fix out of bound array access in _dl_hwcap_string -:100644 100644 efa17f97 53924387 M glibc.spec -:100644 100644 97c44bee 8eaf07cd M sources +:100644 100644 efa17f9 5392438 M glibc.spec +:100644 100644 97c44be 8eaf07c M sources commit e0954fe0fe8f4dd99bd5f7864c90d691f9e3354c Author: Florian Weimer @@ -17682,7 +18816,7 @@ CommitDate: Wed Jul 19 09:01:48 2017 +0200 This reverts commit c5379cd82945e63c24d7294511949d9a15a10a82. -:100644 100644 b4def9ce efa17f97 M glibc.spec +:100644 100644 b4def9c efa17f9 M glibc.spec commit c5379cd82945e63c24d7294511949d9a15a10a82 Author: Florian Weimer @@ -17692,7 +18826,7 @@ CommitDate: Tue Jul 18 08:22:30 2017 +0200 Rebuild with new NVR -:100644 100644 efa17f97 b4def9ce M glibc.spec +:100644 100644 efa17f9 b4def9c M glibc.spec commit 6702ca3c64d256a6870f9266522b921c68c8b29a Author: Florian Weimer @@ -17708,9 +18842,9 @@ CommitDate: Mon Jul 17 23:07:00 2017 +0200 - Fix pointer alignment in NSS group merge result construction (#1471985) - Various locale fixes -:100644 000000 d9709d68 00000000 D glibc-rh1467518.patch -:100644 100644 4657bfd3 efa17f97 M glibc.spec -:100644 100644 6fb0ef7f 97c44bee M sources +:100644 000000 d9709d6 0000000 D glibc-rh1467518.patch +:100644 100644 4657bfd efa17f9 M glibc.spec +:100644 100644 6fb0ef7 97c44be M sources commit 705ca30d3e53c479a621475ef833a4507fe02326 Author: Carlos O'Donell @@ -17738,11 +18872,11 @@ CommitDate: Fri Jul 14 21:36:54 2017 -0400 - armv7hl: Drop 32-bit ARM build fix, already in upstream master. - s390x: Apply glibc fix again, removing PTRACE_GETREGS etc. (#1469536). -:100644 100644 76ed82e9 e1a2b418 M SUPPORTED -:100644 000000 241e47fb 00000000 D glibc-fix-arm32.patch -:100644 000000 72e429f5 00000000 D glibc-rh1469536.patch -:100644 100644 47b992ce 4657bfd3 M glibc.spec -:100644 100644 f68dbfcc 6fb0ef7f M sources +:100644 100644 76ed82e e1a2b41 M SUPPORTED +:100644 000000 241e47f 0000000 D glibc-fix-arm32.patch +:100644 000000 72e429f 0000000 D glibc-rh1469536.patch +:100644 100644 47b992c 4657bfd M glibc.spec +:100644 100644 f68dbfc 6fb0ef7 M sources commit 44f4cf77e9e9b379e88744ad8f025175c9e16538 Author: Carlos O'Donell @@ -17752,8 +18886,8 @@ CommitDate: Wed Jul 12 19:51:11 2017 -0400 Fix 32-bit ARM builds in presence of new binutils. -:000000 100644 00000000 241e47fb A glibc-fix-arm32.patch -:100644 100644 b2bfef08 47b992ce M glibc.spec +:000000 100644 0000000 241e47f A glibc-fix-arm32.patch +:100644 100644 b2bfef0 47b992c M glibc.spec commit 32049f182fa8a353e9c3d7ca6d8ca081e7298723 Author: Carlos O'Donell @@ -17766,8 +18900,8 @@ CommitDate: Wed Jul 12 19:40:05 2017 -0400 Fix IFUNC crash in early startup for ppc64le static binaries (#1467518). Enable building with BIND_NOW on ppc64le (#1467518). -:000000 100644 00000000 d9709d68 A glibc-rh1467518.patch -:100644 100644 28ad0693 b2bfef08 M glibc.spec +:000000 100644 0000000 d9709d6 A glibc-rh1467518.patch +:100644 100644 28ad069 b2bfef0 M glibc.spec commit 4e3d1d3a4771f55432a3a5cfeaa368352854e550 Author: Florian Weimer @@ -17777,8 +18911,8 @@ CommitDate: Wed Jul 12 14:00:58 2017 +0200 malloc: Tell GCC optimizers about MAX_FAST_SIZE in _int_malloc (#1470060) -:000000 100644 00000000 72e434b1 A glibc-rh1470060.patch -:100644 100644 12cb0251 28ad0693 M glibc.spec +:000000 100644 0000000 72e434b A glibc-rh1470060.patch +:100644 100644 12cb025 28ad069 M glibc.spec commit 419878ed02cd9d191b9b7deb2f2523f5950cf30a Author: Florian Weimer @@ -17811,9 +18945,9 @@ CommitDate: Wed Jul 12 14:00:32 2017 +0200 - Fix full weekday names for the ks_IN@devanagari locale (swbz#21721) - Various fixes to Arabic locales after CLDR import -:100644 100644 29519f99 76ed82e9 M SUPPORTED -:100644 100644 3d85b879 12cb0251 M glibc.spec -:100644 100644 1e39d200 f68dbfcc M sources +:100644 100644 29519f9 76ed82e M SUPPORTED +:100644 100644 3d85b87 12cb025 M glibc.spec +:100644 100644 1e39d20 f68dbfc M sources commit 4caf18bfe4936fc8be66398d8bb81b7dfd13f2b3 Author: Florian Weimer @@ -17825,7 +18959,7 @@ CommitDate: Wed Jul 12 10:15:41 2017 +0200 Removing it from the Makefile is sufficient. This avoids conflicts. -:100644 100644 d1c97a1a 72e429f5 M glibc-rh1469536.patch +:100644 100644 d1c97a1 72e429f M glibc-rh1469536.patch commit d40c9fdc1369d59f30c32e11c2acd47dfecf6d68 Author: Florian Weimer @@ -17835,8 +18969,8 @@ CommitDate: Tue Jul 11 15:03:54 2017 +0200 s390x: Restore PTRACE_GETREGS etc. to get GCC to build (#1469536) -:000000 100644 00000000 d1c97a1a A glibc-rh1469536.patch -:100644 100644 eb316643 3d85b879 M glibc.spec +:000000 100644 0000000 d1c97a1 A glibc-rh1469536.patch +:100644 100644 eb31664 3d85b87 M glibc.spec commit d538c7cc5323fa910f1ce5547aa44945c7dcaca6 Author: Florian Weimer @@ -17846,8 +18980,8 @@ CommitDate: Tue Jul 11 14:52:35 2017 +0200 Reinstantiate stack_t cleanup (#1468904) -:100644 000000 cd7eaeee 00000000 D glibc-rh1468904.patch -:100644 100644 7f6ff5f3 eb316643 M glibc.spec +:100644 000000 cd7eaee 0000000 D glibc-rh1468904.patch +:100644 100644 7f6ff5f eb31664 M glibc.spec commit 4597e723d08655e7c09046d8724a0aabc4577ed1 Author: Florian Weimer @@ -17857,8 +18991,8 @@ CommitDate: Sun Jul 9 19:03:50 2017 +0200 Back out stack_t cleanup (#1468904) -:000000 100644 00000000 cd7eaeee A glibc-rh1468904.patch -:100644 100644 5e8486a5 7f6ff5f3 M glibc.spec +:000000 100644 0000000 cd7eaee A glibc-rh1468904.patch +:100644 100644 5e8486a 7f6ff5f M glibc.spec commit 667333c331f947cd404dbfa63666fd2ce3fe4b19 Author: Florian Weimer @@ -17877,9 +19011,9 @@ CommitDate: Thu Jul 6 14:29:12 2017 +0200 - Single threaded stdio optimization - sysconf: Use conservative default for _SC_NPROCESSORS_ONLN (swbz#21542) -:100644 100644 ba9cdba7 29519f99 M SUPPORTED -:100644 100644 20b389cc 5e8486a5 M glibc.spec -:100644 100644 3fe28d1a 1e39d200 M sources +:100644 100644 ba9cdba 29519f9 M SUPPORTED +:100644 100644 20b389c 5e8486a M glibc.spec +:100644 100644 3fe28d1 1e39d20 M sources commit 84baf402f00a590c430df4d59d0cde8eebbcb1b1 Author: Florian Weimer @@ -17891,8 +19025,8 @@ CommitDate: Tue Jul 4 15:31:23 2017 +0200 Upstream commit: 4446a885f3aeb3a33b95c72bae1f115bed77f0cb -:100644 100644 49b4a2d2 20b389cc M glibc.spec -:100644 100644 81613bf7 3fe28d1a M sources +:100644 100644 49b4a2d 20b389c M glibc.spec +:100644 100644 81613bf 3fe28d1 M sources commit 44e7da869e3f32a7698f860d10e0a78581ad88ee Author: Florian Weimer @@ -17904,8 +19038,8 @@ CommitDate: Tue Jul 4 11:36:06 2017 +0200 Upstream commit: 89f6307c5d270ed4f11cee373031fa9f2222f2b9 -:100644 100644 acbb37dd 49b4a2d2 M glibc.spec -:100644 100644 abeac551 81613bf7 M sources +:100644 100644 acbb37d 49b4a2d M glibc.spec +:100644 100644 abeac55 81613bf M sources commit 8ed873109991ffaa684ea78ea0a98a4af7d51f8a Author: Florian Weimer @@ -17915,7 +19049,7 @@ CommitDate: Tue Jul 4 08:23:12 2017 +0200 Disable building with BIND_NOW on ppc64le (#1467518) -:100644 100644 8bc63714 acbb37dd M glibc.spec +:100644 100644 8bc6371 acbb37d M glibc.spec commit dcf3eeb5c0560da994aae131cf1b754a7fcd0695 Author: Florian Weimer @@ -17940,10 +19074,10 @@ CommitDate: Mon Jul 3 21:49:42 2017 +0200 - Avoid .symver on common symbols (swbz#21666) - inet_pton: Reject IPv6 addresses with many leading zeros (swbz#16637) -:100644 100644 066ac484 b47e23eb M glibc-fedora-linux-tcsetattr.patch -:100644 100644 a7b07251 46271576 M glibc-rh1315108.patch -:100644 100644 ec474fa5 8bc63714 M glibc.spec -:100644 100644 11f76487 abeac551 M sources +:100644 100644 066ac48 b47e23e M glibc-fedora-linux-tcsetattr.patch +:100644 100644 a7b0725 4627157 M glibc-rh1315108.patch +:100644 100644 ec474fa 8bc6371 M glibc.spec +:100644 100644 11f7648 abeac55 M sources commit 093184fecacd83db1bd893f3666318de8924167e Author: Florian Weimer @@ -17955,8 +19089,8 @@ CommitDate: Fri Jun 23 17:43:54 2017 +0200 Upstream commit: 3ec7c02cc3e922b9364dc8cfd1d4546671b91003 -:100644 100644 62d18df8 ec474fa5 M glibc.spec -:100644 100644 37122e0c 11f76487 M sources +:100644 100644 62d18df ec474fa M glibc.spec +:100644 100644 37122e0 11f7648 M sources commit 9a4cee58e47b4da1d111c17c63826b7de49a30fa Author: Florian Weimer @@ -17968,8 +19102,8 @@ CommitDate: Fri Jun 23 13:25:59 2017 +0200 Upstream commit: 12f50337ae80672c393c2317d471d097ad92c492 -:100644 100644 db8cdfb4 62d18df8 M glibc.spec -:100644 100644 0686f943 37122e0c M sources +:100644 100644 db8cdfb 62d18df M glibc.spec +:100644 100644 0686f94 37122e0 M sources commit 2660abb9bbd80929ee740ca8a26d0dbb1251467b Author: Florian Weimer @@ -17979,7 +19113,7 @@ CommitDate: Fri Jun 23 13:10:13 2017 +0200 Reenable valgrind on aarch64 -:100644 100644 53d06fa2 db8cdfb4 M glibc.spec +:100644 100644 53d06fa db8cdfb M glibc.spec commit 9d8ea8c478ba44938b21a4a6f325cde833cb7365 Author: Florian Weimer @@ -17989,7 +19123,7 @@ CommitDate: Thu Jun 22 14:48:21 2017 +0200 Log auxiliary vector during build -:100644 100644 cabc9849 53d06fa2 M glibc.spec +:100644 100644 cabc984 53d06fa M glibc.spec commit aae7c7249ada228dc3f2e49c92b77ccc27b56554 Author: Florian Weimer @@ -18001,8 +19135,8 @@ CommitDate: Thu Jun 22 13:34:40 2017 +0200 Upstream commit: 0a47d031e44f15236bcef8aeba80e737bd013c6f -:100644 100644 88213182 cabc9849 M glibc.spec -:100644 100644 ef07fb6d 0686f943 M sources +:100644 100644 8821318 cabc984 M glibc.spec +:100644 100644 ef07fb6 0686f94 M sources commit 10e4623a27cd3c0a751ec5c8523b272b9c847252 Author: Florian Weimer @@ -18012,7 +19146,7 @@ CommitDate: Thu Jun 22 13:28:12 2017 +0200 Disable valgrind on aarch64 -:100644 100644 4127b10f 88213182 M glibc.spec +:100644 100644 4127b10 8821318 M glibc.spec commit 6e985d0a59880d8481bdf6126dad7214de2b54c9 Author: Florian Weimer @@ -18022,8 +19156,8 @@ CommitDate: Wed Jun 21 20:50:35 2017 +0200 Drop workaround for GCC PR69537 -:100644 000000 9f395d53 00000000 D glibc-gcc-PR69537.patch -:100644 100644 d0ba5bda 4127b10f M glibc.spec +:100644 000000 9f395d5 0000000 D glibc-gcc-PR69537.patch +:100644 100644 d0ba5bd 4127b10 M glibc.spec commit 8a569a02e800c4f498a7535b2d3f8c39a62c6ba3 Author: Florian Weimer @@ -18035,8 +19169,8 @@ CommitDate: Wed Jun 21 20:49:15 2017 +0200 Upstream commit: 9649350d2ee47fae00794d57e2526aa5d67d900e -:100644 100644 8efc3431 d0ba5bda M glibc.spec -:100644 100644 96aa44fe ef07fb6d M sources +:100644 100644 8efc343 d0ba5bd M glibc.spec +:100644 100644 96aa44f ef07fb6 M sources commit 6a3a1d157507e16eeb1955a55e085b4e589c8bb1 Author: Florian Weimer @@ -18046,9 +19180,9 @@ CommitDate: Wed Jun 21 20:38:36 2017 +0200 Drop historic aarch64 TLS patches -:100644 000000 a05d9052 00000000 D glibc-aarch64-tls-fixes.patch -:100644 000000 9db69d61 00000000 D glibc-aarch64-workaround-nzcv-clobber-in-tlsdesc.patch -:100644 100644 54c9a795 8efc3431 M glibc.spec +:100644 000000 a05d905 0000000 D glibc-aarch64-tls-fixes.patch +:100644 000000 9db69d6 0000000 D glibc-aarch64-workaround-nzcv-clobber-in-tlsdesc.patch +:100644 100644 54c9a79 8efc343 M glibc.spec commit fda3e070a760da98fc68f1c0b5cc15281e24cc31 Author: Florian Weimer @@ -18060,8 +19194,8 @@ CommitDate: Wed Jun 21 11:08:15 2017 +0200 Upstream commit: 43e0ac24c836eed627a75ca932eb7e64698407c6 -:100644 100644 6c3f3839 54c9a795 M glibc.spec -:100644 100644 d845362f 96aa44fe M sources +:100644 100644 6c3f383 54c9a79 M glibc.spec +:100644 100644 d845362 96aa44f M sources commit 87bc7c9489336493be410ea4406fd4f6d9807541 Author: Florian Weimer @@ -18102,10 +19236,10 @@ CommitDate: Tue Jun 20 00:18:02 2017 +0200 - posix: Implement preadv2 and pwritev2 - Various float128 and tunables improvements -:100644 000000 60f35249 00000000 D glibc-Disable-buf-NULL-in-login-tst-ptsname.c -:100644 100644 945a9551 8d8e857b M glibc-fedora-__libc_multiple_libcs.patch -:100644 100644 703977cb 6c3f3839 M glibc.spec -:100644 100644 234d04a9 d845362f M sources +:100644 000000 60f3524 0000000 D glibc-Disable-buf-NULL-in-login-tst-ptsname.c +:100644 100644 945a955 8d8e857 M glibc-fedora-__libc_multiple_libcs.patch +:100644 100644 703977c 6c3f383 M glibc.spec +:100644 100644 234d04a d845362 M sources commit f35d7503ab65ec0921929f514a95574b7d735d9b Author: Stephen Gallagher @@ -18115,7 +19249,7 @@ CommitDate: Tue Jun 6 14:42:47 2017 +0200 Reduce libcrypt-nss dependency to 'Suggests:' -:100644 100644 daab0494 703977cb M glibc.spec +:100644 100644 daab049 703977c M glibc.spec commit 7f4621301d1042d0e21c8b21759b013c513ca5a5 Author: Arjun Shankar @@ -18127,8 +19261,8 @@ CommitDate: Wed May 31 16:22:21 2017 +0200 Upstream commit: cfa9bb61cd09c40def96f042a3123ec0093c4ad0 -:100644 100644 d80a961f daab0494 M glibc.spec -:100644 100644 a974c5c6 234d04a9 M sources +:100644 100644 d80a961 daab049 M glibc.spec +:100644 100644 a974c5c 234d04a M sources commit c769a3ef7acc044cd1910b0b6f2a7f4fff93b9d9 Author: Arjun Shankar @@ -18139,8 +19273,8 @@ CommitDate: Wed May 31 14:37:21 2017 +0200 Disable the NULL buffer test in login/tst-ptsname.c. It leads to a build failure during 'make check'. -:000000 100644 00000000 60f35249 A glibc-Disable-buf-NULL-in-login-tst-ptsname.c -:100644 100644 87564778 d80a961f M glibc.spec +:000000 100644 0000000 60f3524 A glibc-Disable-buf-NULL-in-login-tst-ptsname.c +:100644 100644 8756477 d80a961 M glibc.spec commit 4014d6f877473201795c7d95cf3a9a5917716466 Author: Arjun Shankar @@ -18152,10 +19286,10 @@ CommitDate: Tue May 23 14:37:59 2017 +0200 Upstream commit: 231a59ce2c5719d2d77752c21092960e28837b4a -:100644 100644 bc6e6b54 ba9cdba7 M SUPPORTED -:100644 100644 1a794772 fc87a4ae M glibc-fedora-nptl-linklibc.patch -:100644 100644 3c26c2ea 87564778 M glibc.spec -:100644 100644 911b3bf2 a974c5c6 M sources +:100644 100644 bc6e6b5 ba9cdba M SUPPORTED +:100644 100644 1a79477 fc87a4a M glibc-fedora-nptl-linklibc.patch +:100644 100644 3c26c2e 8756477 M glibc.spec +:100644 100644 911b3bf a974c5c M sources commit c2f69955706512aab16f7b8ee881a6cefa3140f3 Author: Carlos O'Donell @@ -18165,7 +19299,7 @@ CommitDate: Tue May 2 13:45:38 2017 -0400 Fix build with --enable-obsolete-nsl. -:100644 100644 ed2843ee 3c26c2ea M glibc.spec +:100644 100644 ed2843e 3c26c2e M glibc.spec commit 056f48952ae4b9dfe3f1e99f3812360f423e3cde Author: Carlos O'Donell @@ -18177,8 +19311,8 @@ CommitDate: Mon May 1 13:23:28 2017 -0400 Upstream commit: 25e39b4229fb365a605dc4c8f5d6426a77bc08a6 -:100644 100644 f798aee2 ed2843ee M glibc.spec -:100644 100644 3cd9664d 911b3bf2 M sources +:100644 100644 f798aee ed2843e M glibc.spec +:100644 100644 3cd9664 911b3bf M sources commit 2999128764dd9b340f6a986709be6509007c316c Author: Florian Weimer @@ -18188,7 +19322,7 @@ CommitDate: Wed Mar 8 10:09:29 2017 +0100 Automatically set glibc_release_url based on glibcrelease -:100644 100644 4abcab94 f798aee2 M glibc.spec +:100644 100644 4abcab9 f798aee M glibc.spec commit 04b4101e8f04942259d6f0720641e49b1b9b02b5 Author: Florian Weimer @@ -18200,9 +19334,9 @@ CommitDate: Thu Mar 2 20:09:14 2017 +0100 Upstream commit: a10e9c4e53fc652b79abf838f7f837589d2c84db -:100644 000000 1c74c22a 00000000 D glibc-rh1351108-update-to-unicode-9.0.0.patch -:100644 100644 ba114406 4abcab94 M glibc.spec -:100644 100644 efb2f5bc 3cd9664d M sources +:100644 000000 1c74c22 0000000 D glibc-rh1351108-update-to-unicode-9.0.0.patch +:100644 100644 ba11440 4abcab9 M glibc.spec +:100644 100644 efb2f5b 3cd9664 M sources commit 305fa9fb579745201f4e44cc24ddb4049ac61721 Author: Jakub Hrozek @@ -18214,8 +19348,8 @@ CommitDate: Wed Mar 1 14:03:09 2017 +0100 Reverse the order of sss and files modules for passwd and group maps -:100644 100644 055a2f2c ba114406 M glibc.spec -:100644 100644 1e2b63d5 c3d3fb65 M nsswitch.conf +:100644 100644 055a2f2 ba11440 M glibc.spec +:100644 100644 1e2b63d c3d3fb6 M nsswitch.conf commit 5bc3170c40dc0f7bb384b9532e2b4cd10f451b83 Author: Florian Weimer @@ -18227,8 +19361,8 @@ CommitDate: Tue Feb 28 17:43:41 2017 +0100 Upstream commit: 93cf93e06ce123439e41d3d62790601c313134cb -:100644 100644 161b54a2 055a2f2c M glibc.spec -:100644 100644 662a081d efb2f5bc M sources +:100644 100644 161b54a 055a2f2 M glibc.spec +:100644 100644 662a081 efb2f5b M sources commit aa4db12ee0fdab90446eb9676800c5f6399c0813 Author: Carlos O'Donell @@ -18245,8 +19379,8 @@ CommitDate: Wed Feb 8 21:22:46 2017 -0500 guarantees provided by upstream. Please do not rebase rawhide against glibc master. -:100644 100644 1052d759 161b54a2 M glibc.spec -:100644 100644 2a32e675 662a081d M sources +:100644 100644 1052d75 161b54a M glibc.spec +:100644 100644 2a32e67 662a081 M sources commit ad7685d113501c2699a61d3e4930761753dca8d8 Author: Carlos O'Donell @@ -18258,8 +19392,8 @@ CommitDate: Wed Feb 8 16:17:57 2017 -0500 - Fix builds with GCC 7.0. -:000000 100644 00000000 694df517 A glibc-gcc-strict-overflow.patch -:100644 100644 6ba6503c 1052d759 M glibc.spec +:000000 100644 0000000 694df51 A glibc-gcc-strict-overflow.patch +:100644 100644 6ba6503 1052d75 M glibc.spec commit 7061f7271540b413b1ba64a9d841320efe00a025 Author: Carlos O'Donell @@ -18271,7 +19405,7 @@ CommitDate: Thu Feb 2 09:53:07 2017 -0500 - Optimize IBM z System builds for zEC12. -:100644 100644 55c8951f 6ba6503c M glibc.spec +:100644 100644 55c8951 6ba6503 M glibc.spec commit 7463f6a220513718aa7b3a45ae3f0dc5befc57f7 Author: Florian Weimer @@ -18283,8 +19417,8 @@ CommitDate: Wed Jan 25 16:46:01 2017 +0100 Reported by Stefan Liebler. -:100644 100644 ffa449e9 44333d7d M glibc-rh1324623.patch -:100644 100644 9923db63 55c8951f M glibc.spec +:100644 100644 ffa449e 44333d7 M glibc-rh1324623.patch +:100644 100644 9923db6 55c8951 M glibc.spec commit 574cbae985f5108c55db826f261788be1bb0dd83 Author: Florian Weimer @@ -18296,8 +19430,8 @@ CommitDate: Wed Jan 25 16:39:15 2017 +0100 Upstream commit: 5653ab12b4ae15b32d41de7c56b2a4626cd0437a -:100644 100644 4225ada4 9923db63 M glibc.spec -:100644 100644 4ed31043 2a32e675 M sources +:100644 100644 4225ada 9923db6 M glibc.spec +:100644 100644 4ed3104 2a32e67 M sources commit edb61568806feada71a103fff633c2f58c422af2 Author: Carlos O'Donell @@ -18309,10 +19443,10 @@ CommitDate: Thu Jan 12 22:17:58 2017 -0500 Upstream commit: 468e525c81a4af10f2e613289b6ff7c950773a9e -:100644 000000 8d19a890 00000000 D glibc-disable-rwlock-elision.patch -:100644 000000 05232dcd 00000000 D glibc-new-rwlock.patch -:100644 100644 00cd3446 4225ada4 M glibc.spec -:100644 100644 39f34162 4ed31043 M sources +:100644 000000 8d19a89 0000000 D glibc-disable-rwlock-elision.patch +:100644 000000 05232dc 0000000 D glibc-new-rwlock.patch +:100644 100644 00cd344 4225ada M glibc.spec +:100644 100644 39f3416 4ed3104 M sources commit 41c1b49335ae63fb8c1d232c4b173759df24c016 Author: Florian Weimer @@ -18322,7 +19456,7 @@ CommitDate: Mon Jan 2 13:32:40 2017 +0100 quilt-patch.sh: Support new "sources" file format -:100755 100755 983a75d4 eaf24d5d M quilt-patch.sh +:100755 100755 983a75d eaf24d5 M quilt-patch.sh commit c659285752f5f898ab53ce34404b192fb75d7bd6 Author: Florian Weimer @@ -18334,12 +19468,12 @@ CommitDate: Mon Jan 2 13:32:25 2017 +0100 Upstream commit: 73dfd088936b9237599e4ab737c7ae2ea7d710e1 -:100644 000000 2c079852 00000000 D glibc-fedora-disable-printers.patch -:100644 100644 bc7b8321 a7b07251 M glibc-rh1315108.patch -:100644 100644 305f30e4 f6430a85 M glibc-rh1315476-2.patch -:100644 000000 af7adf35 00000000 D glibc-swbz13165.patch -:100644 100644 ce10ccd3 00cd3446 M glibc.spec -:100644 100644 f3ef878f 39f34162 M sources +:100644 000000 2c07985 0000000 D glibc-fedora-disable-printers.patch +:100644 100644 bc7b832 a7b0725 M glibc-rh1315108.patch +:100644 100644 305f30e f6430a8 M glibc-rh1315476-2.patch +:100644 000000 af7adf3 0000000 D glibc-swbz13165.patch +:100644 100644 ce10ccd 00cd344 M glibc.spec +:100644 100644 f3ef878 39f3416 M sources commit e9dcd51d7741582a38918006e0ba05b2619608a7 Author: Florian Weimer @@ -18349,12 +19483,12 @@ CommitDate: Mon Jan 2 12:26:05 2017 +0100 Remove patches which were workarounds for GCC 5 bugs -:100644 000000 c5a704e2 00000000 D glibc-bug-regex-gcc5.patch -:100644 000000 3810a6e1 00000000 D glibc-dns-host-gcc5.patch -:100644 000000 92fa90f2 00000000 D glibc-gethnamaddr-gcc5.patch -:100644 000000 78e7fd4f 00000000 D glibc-ld-ctype-gcc5.patch -:100644 000000 4f5ae83b 00000000 D glibc-res-hconf-gcc5.patch -:100644 100644 634ac1f4 ce10ccd3 M glibc.spec +:100644 000000 c5a704e 0000000 D glibc-bug-regex-gcc5.patch +:100644 000000 3810a6e 0000000 D glibc-dns-host-gcc5.patch +:100644 000000 92fa90f 0000000 D glibc-gethnamaddr-gcc5.patch +:100644 000000 78e7fd4 0000000 D glibc-ld-ctype-gcc5.patch +:100644 000000 4f5ae83 0000000 D glibc-res-hconf-gcc5.patch +:100644 100644 634ac1f ce10ccd M glibc.spec commit 4570c40835940be861ee9c83be60e3de11b24ae3 Author: Florian Weimer @@ -18366,8 +19500,8 @@ CommitDate: Mon Dec 26 11:22:24 2016 +0100 Upstream commit: cecbc7967f0bcac718b6f8f8942b58403c0e917c -:100644 100644 95227123 634ac1f4 M glibc.spec -:100644 100644 ad021e60 f3ef878f M sources +:100644 100644 9522712 634ac1f M glibc.spec +:100644 100644 ad021e6 f3ef878 M sources commit a681b7b4e218e825cafc0acbac97c27afcc40a6d Author: Carlos O'Donell @@ -18379,8 +19513,8 @@ CommitDate: Fri Dec 23 18:31:06 2016 -0500 Upstream commit: 81e0662e5f2c342ffa413826b7b100d56677b613 -:100644 100644 cafda442 95227123 M glibc.spec -:100644 100644 499282e8 ad021e60 M sources +:100644 100644 cafda44 9522712 M glibc.spec +:100644 100644 499282e ad021e6 M sources commit ace066ccd14bd1b14b6ed214e6f8efc869682ea8 Author: Florian Weimer @@ -18392,8 +19526,8 @@ CommitDate: Sun Dec 18 15:43:05 2016 +0100 Upstream commit: e077349ce589466eecd47213db4fae6b80ec18c4 -:100644 100644 f6bf9955 cafda442 M glibc.spec -:100644 100644 d8400646 499282e8 M sources +:100644 100644 f6bf995 cafda44 M glibc.spec +:100644 100644 d840064 499282e M sources commit 5617e2c469ae72a7fcb8780170f154360d8e9f15 Author: Florian Weimer @@ -18405,8 +19539,8 @@ CommitDate: Mon Dec 12 19:26:23 2016 +0100 Upstream commit: 92dcaa3e2f7bf0f7f1c04cd2fb6a317df1a4e225 -:100644 100644 36145181 f6bf9955 M glibc.spec -:100644 100644 bc95b05c d8400646 M sources +:100644 100644 3614518 f6bf995 M glibc.spec +:100644 100644 bc95b05 d840064 M sources commit 8076ad58d990510b86370cc4fdf5d95f7bdc075a Author: Florian Weimer @@ -18421,12 +19555,12 @@ CommitDate: Fri Dec 9 18:38:16 2016 +0100 GDB pretty-printers for NPTL types are temporarily disabled due to bug 1403329. -:100644 100644 3e81dceb 8d19a890 M glibc-disable-rwlock-elision.patch -:000000 100644 00000000 2c079852 A glibc-fedora-disable-printers.patch -:100644 000000 3d9a11b5 00000000 D glibc-fedora-nss-static-link.patch -:100644 100644 13ad4ee5 05232dcd M glibc-new-rwlock.patch -:100644 100644 406b2f51 36145181 M glibc.spec -:100644 100644 25a2d92d bc95b05c M sources +:100644 100644 3e81dce 8d19a89 M glibc-disable-rwlock-elision.patch +:000000 100644 0000000 2c07985 A glibc-fedora-disable-printers.patch +:100644 000000 3d9a11b 0000000 D glibc-fedora-nss-static-link.patch +:100644 100644 13ad4ee 05232dc M glibc-new-rwlock.patch +:100644 100644 406b2f5 3614518 M glibc.spec +:100644 100644 25a2d92 bc95b05 M sources commit b766add297fe1fc0eab67988f0e3d4223da66298 Author: Florian Weimer @@ -18438,8 +19572,8 @@ CommitDate: Fri Dec 2 17:13:31 2016 +0100 Upstream commit: 01b23a30b42a90b1ebd882a0d81110a1542e504a -:100644 100644 59fd92ec 406b2f51 M glibc.spec -:100644 100644 b61640f8 25a2d92d M sources +:100644 100644 59fd92e 406b2f5 M glibc.spec +:100644 100644 b61640f 25a2d92 M sources commit fbd985bf72b4a2b27a4ea668aa2a25f9932895e2 Author: Florian Weimer @@ -18451,7 +19585,7 @@ CommitDate: Wed Nov 30 17:18:55 2016 +0100 It was removed upstream. -:100644 100644 b609db9e 59fd92ec M glibc.spec +:100644 100644 b609db9 59fd92e M glibc.spec commit eaa567419958fd9eac82ae905a4634bf1384945b Author: Florian Weimer @@ -18463,8 +19597,8 @@ CommitDate: Wed Nov 30 16:12:57 2016 +0100 Upstream commit: 9e78f6f6e7134a5f299cc8de77370218f8019237 -:100644 100644 e5653968 b609db9e M glibc.spec -:100644 100644 3fa68724 b61640f8 M sources +:100644 100644 e565396 b609db9 M glibc.spec +:100644 100644 3fa6872 b61640f M sources commit 93ddbf99eeab1dd7a8c57f38323d14eafd66e3bf Author: Florian Weimer @@ -18476,8 +19610,8 @@ CommitDate: Wed Nov 23 13:38:43 2016 +0100 Upstream commit: 7a5e3d9d633c828d84a9535f26b202a6179978e7 -:100644 100644 7bdd5cd5 e5653968 M glibc.spec -:100644 100644 69de941c 3fa68724 M sources +:100644 100644 7bdd5cd e565396 M glibc.spec +:100644 100644 69de941 3fa6872 M sources commit 434cf9e2e26d15a28b4c6d989d06f3befaa00805 Author: Florian Weimer @@ -18489,8 +19623,8 @@ CommitDate: Tue Nov 22 11:10:50 2016 +0100 Upstream commit: 5ee1a4443a3eb0868cef1fe506ae6fb6af33d4ad -:100644 100644 090b00c9 7bdd5cd5 M glibc.spec -:100644 100644 4118dd74 69de941c M sources +:100644 100644 090b00c 7bdd5cd M glibc.spec +:100644 100644 4118dd7 69de941 M sources commit b587bccfe792ad45d3f2308159741fafa39c0ced Author: Carlos O'Donell @@ -18502,8 +19636,8 @@ CommitDate: Thu Nov 17 12:46:05 2016 -0500 * Add new scalable implementation of POSIX read-write locks. -:000000 100644 00000000 13ad4ee5 A glibc-new-rwlock.patch -:100644 100644 f20c34b5 090b00c9 M glibc.spec +:000000 100644 0000000 13ad4ee A glibc-new-rwlock.patch +:100644 100644 f20c34b 090b00c M glibc.spec commit c9a1e5c935ea5bd177b165f215fb8080e648bae7 Author: Florian Weimer @@ -18513,8 +19647,8 @@ CommitDate: Wed Nov 16 15:25:20 2016 +0100 Do not try to link libcrypt statically during tests -:000000 100644 00000000 3d9a11b5 A glibc-fedora-nss-static-link.patch -:100644 100644 7381615c f20c34b5 M glibc.spec +:000000 100644 0000000 3d9a11b A glibc-fedora-nss-static-link.patch +:100644 100644 7381615 f20c34b M glibc.spec commit 835049c53cc8602b34116f452e53349cd4c58cf0 Author: Florian Weimer @@ -18526,8 +19660,8 @@ CommitDate: Wed Nov 16 14:43:20 2016 +0100 Upstream commit: 530862a63e0929128dc98fbbd463b120934434fb -:100644 100644 0d191f05 7381615c M glibc.spec -:100644 100644 bbcb4418 4118dd74 M sources +:100644 100644 0d191f0 7381615 M glibc.spec +:100644 100644 bbcb441 4118dd7 M sources commit 573bcacc8f80afd3b07727a68acdefa892c5803b Author: Florian Weimer @@ -18539,10 +19673,10 @@ CommitDate: Wed Nov 2 12:06:16 2016 +0100 Upstream commit: 9032070deaa03431921315f973c548c2c403fecc -:100644 100644 7443e850 af7adf35 M glibc-swbz13165.patch -:100644 000000 fcd7ad8d 00000000 D glibc-swbz20019.patch -:100644 100644 db2fb334 0d191f05 M glibc.spec -:100644 100644 18a94c7b bbcb4418 M sources +:100644 100644 7443e85 af7adf3 M glibc-swbz13165.patch +:100644 000000 fcd7ad8 0000000 D glibc-swbz20019.patch +:100644 100644 db2fb33 0d191f0 M glibc.spec +:100644 100644 18a94c7 bbcb441 M sources commit 55bd1b5cdd65f83be2e4baca1587c3a2612113bd Author: Florian Weimer @@ -18554,8 +19688,8 @@ CommitDate: Wed Nov 2 11:49:29 2016 +0100 Drop revert of upstream fix. -:100644 000000 bf2a62f6 00000000 D glibc-rh1335011.patch -:100644 100644 4afa0174 db2fb334 M glibc.spec +:100644 000000 bf2a62f 0000000 D glibc-rh1335011.patch +:100644 100644 4afa017 db2fb33 M glibc.spec commit 762e747b11f8449fe48f7d375e8d4cdaf5df9c67 Author: Florian Weimer @@ -18567,8 +19701,8 @@ CommitDate: Sat Oct 22 17:42:34 2016 +0200 Upstream commit: e37208ce86916af9510ffb9ce7b3c187986f07de -:100644 100644 abf19c3e 4afa0174 M glibc.spec -:100644 100644 597174d6 18a94c7b M sources +:100644 100644 abf19c3 4afa017 M glibc.spec +:100644 100644 597174d 18a94c7 M sources commit 9d7b7a7a045bf8e673ed4b2d0841ae14b4c43c4f Author: Florian Weimer @@ -18580,8 +19714,8 @@ CommitDate: Fri Oct 21 18:38:39 2016 +0200 Upstream commit: b3918c44db615637b26d919ce599cd86592316b3 -:100644 100644 e01f944b abf19c3e M glibc.spec -:100644 100644 de7e2059 597174d6 M sources +:100644 100644 e01f944 abf19c3 M glibc.spec +:100644 100644 de7e205 597174d M sources commit 83e5c415dab11f7932e4ea68b4ac8843448db45d Author: Carlos O'Donell @@ -18594,9 +19728,9 @@ CommitDate: Mon Oct 17 22:19:05 2016 -0400 - Add prototype support for detecting invalid IFUNC calls (swbz#20019). - New POSIX thread condition variable implementation (swbz#13165). -:000000 100644 00000000 7443e850 A glibc-swbz13165.patch -:000000 100644 00000000 fcd7ad8d A glibc-swbz20019.patch -:100644 100644 8e924aac e01f944b M glibc.spec +:000000 100644 0000000 7443e85 A glibc-swbz13165.patch +:000000 100644 0000000 fcd7ad8 A glibc-swbz20019.patch +:100644 100644 8e924aa e01f944 M glibc.spec commit 4f53fe474edcdd7e1bff551965fa16ced3eca5dc Author: Florian Weimer @@ -18608,8 +19742,8 @@ CommitDate: Fri Oct 7 17:54:03 2016 +0200 Upstream commit: 5140d036f9c16585448b5908c3a219bd96842161 -:100644 100644 3173dee2 8e924aac M glibc.spec -:100644 100644 714726f5 de7e2059 M sources +:100644 100644 3173dee 8e924aa M glibc.spec +:100644 100644 714726f de7e205 M sources commit 0b054085889a0ccc03b0d734d7e92e93df762c9c Author: Florian Weimer @@ -18621,9 +19755,9 @@ CommitDate: Tue Oct 4 19:29:14 2016 +0200 Upstream commit: ff88ee7edfaa439e23c42fccaf3a36cd5f041894 -:100644 100644 8b4e5fca bc7b8321 M glibc-rh1315108.patch -:100644 100644 e674f02c 3173dee2 M glibc.spec -:100644 100644 3cda0b15 714726f5 M sources +:100644 100644 8b4e5fc bc7b832 M glibc-rh1315108.patch +:100644 100644 e674f02 3173dee M glibc.spec +:100644 100644 3cda0b1 714726f M sources commit 0adb9076a4e636e38c6d3002dfc5edc93e896869 Author: Florian Weimer @@ -18635,9 +19769,9 @@ CommitDate: Thu Sep 22 13:31:39 2016 +0200 Upstream commit: 17af5da98cd2c9ec958421ae2108f877e0945451 -:100644 000000 a1a6eaff 00000000 D glibc-rh1315476-1.patch -:100644 100644 4e6784ca e674f02c M glibc.spec -:100644 100644 86b69f37 3cda0b15 M sources +:100644 000000 a1a6eaf 0000000 D glibc-rh1315476-1.patch +:100644 100644 4e6784c e674f02 M glibc.spec +:100644 100644 86b69f3 3cda0b1 M sources commit 66afdc6140f557d35e6ace395a65b3feeb29cac7 Author: Florian Weimer @@ -18650,7 +19784,7 @@ CommitDate: Thu Sep 22 13:20:25 2016 +0200 Add MIPS support. Based on a patch from Michal Toman . -:100644 100644 95c527cd 4e6784ca M glibc.spec +:100644 100644 95c527c 4e6784c M glibc.spec commit 36702a1359e9d66835f0a67ee3d8b772d1521517 Author: Carlos O'Donell @@ -18662,10 +19796,10 @@ CommitDate: Tue Sep 20 23:29:23 2016 -0400 Upstream commit: e299076fefd9649f78f853865d4745043e50813c -:100644 100644 abcb8fa1 4bcd5b53 M glibc-rh1013801.patch -:100644 100644 8738f9a4 bf2a62f6 M glibc-rh1335011.patch -:100644 100644 a176651c 95c527cd M glibc.spec -:100644 100644 369d0032 86b69f37 M sources +:100644 100644 abcb8fa 4bcd5b5 M glibc-rh1013801.patch +:100644 100644 8738f9a bf2a62f M glibc-rh1335011.patch +:100644 100644 a176651 95c527c M glibc.spec +:100644 100644 369d003 86b69f3 M sources commit 77d2ac8e00c0ac41e3b7bca4d5365ae33be10f19 Author: Florian Weimer @@ -18677,8 +19811,8 @@ CommitDate: Thu Sep 1 16:11:33 2016 +0200 Upstream commit: 4d728087ef8cc826b05bd21d0c74d4eca9b1a27d -:100644 100644 415532b2 a176651c M glibc.spec -:100644 100644 55a5e502 369d0032 M sources +:100644 100644 415532b a176651 M glibc.spec +:100644 100644 55a5e50 369d003 M sources commit c097c5b5f70e8f38165d637d702f1b0c51b4eef7 Author: Florian Weimer @@ -18690,8 +19824,8 @@ CommitDate: Fri Aug 26 19:45:02 2016 +0200 Upstream commit: 7e625f7e85b4e88f10dbde35a0641742af581806 -:100644 100644 c787c7a5 415532b2 M glibc.spec -:100644 100644 089f04f8 55a5e502 M sources +:100644 100644 c787c7a 415532b M glibc.spec +:100644 100644 089f04f 55a5e50 M sources commit 82db94894e53df4bc9da3922f0b368aa0817cf57 Author: Florian Weimer @@ -18703,8 +19837,8 @@ CommitDate: Sun Aug 21 16:49:12 2016 +0200 Upstream commit: 66abf9bfbe24ac1e7207d26ccad725ed938dc52c -:100644 100644 d82448eb c787c7a5 M glibc.spec -:100644 100644 abd2b431 089f04f8 M sources +:100644 100644 d82448e c787c7a M glibc.spec +:100644 100644 abd2b43 089f04f M sources commit 90f786e56b5f58a354cad235285379207a751b56 Author: Florian Weimer @@ -18716,9 +19850,9 @@ CommitDate: Wed Aug 17 15:23:48 2016 +0200 Upstream commit: ID d9067fca40b8aac156d73cfa44d6875813555a6c -:100644 000000 ccaf9cda 00000000 D .gitignore -:100644 100644 255fb559 d82448eb M glibc.spec -:100644 100644 916c283e abd2b431 M sources +:100644 000000 ccaf9cd 0000000 D .gitignore +:100644 100644 255fb55 d82448e M glibc.spec +:100644 100644 916c283 abd2b43 M sources commit 548cf89fd5a0ba45e7c69326c86fad447bd24981 Author: Florian Weimer @@ -18728,7 +19862,7 @@ CommitDate: Wed Aug 17 15:19:14 2016 +0200 Fix upstream commit hash -:100644 100644 f9d8ca74 255fb559 M glibc.spec +:100644 100644 f9d8ca7 255fb55 M glibc.spec commit f6288a00454dae566344c66e1f6526898e3dfb70 Author: Florian Weimer @@ -18740,8 +19874,8 @@ CommitDate: Thu Aug 11 13:42:52 2016 +0200 Upstream commit ID is f79211792127f38d5954419bb3784c8eb7f5e4e5. -:100644 100644 4f43a447 f9d8ca74 M glibc.spec -:100644 100644 d8576dde 916c283e M sources +:100644 100644 4f43a44 f9d8ca7 M glibc.spec +:100644 100644 d8576dd 916c283 M sources commit 5344dc60e95259d9848bf04165836276c03ac91c Author: Carlos O'Donell @@ -18751,7 +19885,7 @@ CommitDate: Mon Aug 8 10:03:42 2016 -0400 Bump NEVRA to 2.24.90-1. -:100644 100644 02c5c27d 4f43a447 M glibc.spec +:100644 100644 02c5c27 4f43a44 M glibc.spec commit 4c8a26717a2e6267d7409ec080b5d0de7ce358e3 Author: Carlos O'Donell @@ -18761,9 +19895,9 @@ CommitDate: Mon Aug 8 09:58:02 2016 -0400 Auto-sync with upstream master. -:000000 100644 00000000 ccaf9cda A .gitignore -:100644 100644 16febd7c 02c5c27d M glibc.spec -:100644 100644 55a64c5d d8576dde M sources +:000000 100644 0000000 ccaf9cd A .gitignore +:100644 100644 16febd7 02c5c27 M glibc.spec +:100644 100644 55a64c5 d8576dd M sources commit b8b6a436e99cfad18775c24b1ff01bcf94e495c1 Author: Florian Weimer @@ -18776,7 +19910,7 @@ CommitDate: Fri Jul 22 21:37:29 2016 +0200 Add missing definitions to the crypt-glibc/Makefile, so that the cryptographic tests can be built. -:100644 100644 3c874638 ffa449e9 M glibc-rh1324623.patch +:100644 100644 3c87463 ffa449e M glibc-rh1324623.patch commit 2c005c98da6ee97cf8690252bd320c8845b335a8 Author: Florian Weimer @@ -18786,7 +19920,7 @@ CommitDate: Fri Jul 22 17:54:35 2016 +0200 Do not try to install mtrace when bootstrapping -:100644 100644 54479bf5 16febd7c M glibc.spec +:100644 100644 54479bf 16febd7 M glibc.spec commit 7ad97baa4ffc5c37461ccee0d0cc48e5f183a398 Author: Florian Weimer @@ -18801,8 +19935,8 @@ CommitDate: Fri Jul 22 17:06:37 2016 +0200 glibc has a Recommends: to prefer the NSS-based implementation. glibc-devel requires that one of the two packages is installed. -:000000 100644 00000000 3c874638 A glibc-rh1324623.patch -:100644 100644 388638d6 54479bf5 M glibc.spec +:000000 100644 0000000 3c87463 A glibc-rh1324623.patch +:100644 100644 388638d 54479bf M glibc.spec commit 87b6ed77dbc0fa2bb27633ff9f6c8e339ca1b4da Author: Florian Weimer @@ -18815,7 +19949,7 @@ CommitDate: Fri Jul 22 15:47:20 2016 +0200 Our scriptlets do not use pthread_cancel, and such requires are not transitive. -:100644 100644 eaa018a4 388638d6 M glibc.spec +:100644 100644 eaa018a 388638d M glibc.spec commit 9d1bb0abc36fddc5f9a4f69b8ae446dbb6c50502 Author: Florian Weimer @@ -18827,7 +19961,7 @@ CommitDate: Fri Jul 22 15:46:44 2016 +0200 glibc-devel depends on libgcc%{_isa} -:100644 100644 c037c7b4 eaa018a4 M glibc.spec +:100644 100644 c037c7b eaa018a M glibc.spec commit d1929c8ddbd9ac1c734f71623d84e398ba33f346 Author: Florian Weimer @@ -18839,8 +19973,8 @@ CommitDate: Thu Jul 21 16:16:25 2016 +0200 Drop sendmsg/recvmsg compatibility patch -:100644 000000 7cd0755d 00000000 D glibc-rh1344830.patch -:100644 100644 ef7d149f c037c7b4 M glibc.spec +:100644 000000 7cd0755 0000000 D glibc-rh1344830.patch +:100644 100644 ef7d149 c037c7b M glibc.spec commit d5e9ea2361dbca74ecff040b8d19d48c11463702 Author: Florian Weimer @@ -18857,7 +19991,7 @@ CommitDate: Wed Jul 20 17:09:24 2016 +0200 for direct linking against NSS modules (which is rare and usually unintended). Drop the obsoletes clause for nss_db. -:100644 100644 3699f805 ef7d149f M glibc.spec +:100644 100644 3699f80 ef7d149 M glibc.spec commit 1ca5ccee9c589868b121b1a88a61db67170eafbe Author: Florian Weimer @@ -18869,9 +20003,9 @@ CommitDate: Wed Jul 13 19:37:12 2016 +0200 Make ldconfig and sln the same binary -:000000 100644 00000000 a1a6eaff A glibc-rh1315476-1.patch -:000000 100644 00000000 305f30e4 A glibc-rh1315476-2.patch -:100644 100644 90345e1c 3699f805 M glibc.spec +:000000 100644 0000000 a1a6eaf A glibc-rh1315476-1.patch +:000000 100644 0000000 305f30e A glibc-rh1315476-2.patch +:100644 100644 90345e1 3699f80 M glibc.spec commit 8d10e61144eec789d0575fd4628eb4bdd30a16e2 Author: Florian Weimer @@ -18883,9 +20017,9 @@ CommitDate: Wed Jul 13 14:23:26 2016 +0200 Up to commit f531f93056b34800383c5154280e7ba5112563c7. -:100644 100644 3d03099a bc6e6b54 M SUPPORTED -:100644 100644 0952345d 90345e1c M glibc.spec -:100644 100644 4e6e3f30 55a64c5d M sources +:100644 100644 3d03099 bc6e6b5 M SUPPORTED +:100644 100644 0952345 90345e1 M glibc.spec +:100644 100644 4e6e3f3 55a64c5 M sources commit 5c031d86de2393daa5181ad5ccdbca52c5eb3554 Author: Mike FABIAN @@ -18897,8 +20031,8 @@ CommitDate: Sat Jul 9 07:35:43 2016 +0200 - Unicode 9.0.0 updates (ctype, charmap, transliteration) -:000000 100644 00000000 1c74c22a A glibc-rh1351108-update-to-unicode-9.0.0.patch -:100644 100644 e6e67895 0952345d M glibc.spec +:000000 100644 0000000 1c74c22 A glibc-rh1351108-update-to-unicode-9.0.0.patch +:100644 100644 e6e6789 0952345 M glibc.spec commit 0f28e7559ec891f11d8255451adebda8d30eae87 Author: Florian Weimer @@ -18912,8 +20046,8 @@ CommitDate: Tue Jul 5 19:06:22 2016 +0200 Update changelog and adjust extend_alloca removal patch. -:100644 100644 a549c50f 8b4e5fca M glibc-rh1315108.patch -:100644 100644 4dc4e366 e6e67895 M glibc.spec +:100644 100644 a549c50 8b4e5fc M glibc-rh1315108.patch +:100644 100644 4dc4e36 e6e6789 M glibc.spec commit 9a78be1808600ca5e66eab741542447a29cfbeb3 Author: Florian Weimer @@ -18925,8 +20059,8 @@ CommitDate: Tue Jul 5 18:40:25 2016 +0200 glibc: strcasecmp failure on ppc64le -:100644 100644 d8929017 4dc4e366 M glibc.spec -:100644 100644 f98c7cfd 4e6e3f30 M sources +:100644 100644 d892901 4dc4e36 M glibc.spec +:100644 100644 f98c7cf 4e6e3f3 M sources commit 0ce3b29d56632acd1c393714cc8f189496bdeb47 Author: Carlos O'Donell @@ -18938,8 +20072,8 @@ CommitDate: Fri Jun 24 13:51:56 2016 -0400 - Properly handle more invalid --install-langs arguments (#1349906). -:100644 100644 5fc93ffa 91839723 M build-locale-archive.c -:100644 100644 6b0c4112 d8929017 M glibc.spec +:100644 100644 5fc93ff 9183972 M build-locale-archive.c +:100644 100644 6b0c411 d892901 M glibc.spec commit 22e8257c2d65b0a7126ea48f67a93ef8a73d9745 Author: Florian Weimer @@ -18951,7 +20085,7 @@ CommitDate: Tue Jun 21 21:52:48 2016 +0200 Fix RPM changelog. -:100644 100644 fee86492 6b0c4112 M glibc.spec +:100644 100644 fee8649 6b0c411 M glibc.spec commit d21f299cb3189bc0c5435aaad828a8add28f5283 Author: Florian Weimer @@ -18963,8 +20097,8 @@ CommitDate: Tue Jun 21 21:50:42 2016 +0200 Sync with upstream master, commit a3b473373ee43a292f5ec68a7fda6b9cfb26a9b0 -:100644 100644 946f678f fee86492 M glibc.spec -:100644 100644 54e2c7cd f98c7cfd M sources +:100644 100644 946f678 fee8649 M glibc.spec +:100644 100644 54e2c7c f98c7cf M sources commit 1bbad64354742afa02998ebe4a2b2de5d0b78ccf Author: Carlos O'Donell @@ -18986,7 +20120,7 @@ CommitDate: Sat Jun 18 17:20:10 2016 -0400 Tested on Fedora Rawhide by verifying global setting of %_install_langs macro changes installed locale-archive locales correctly. -:100644 100644 7466968f 946f678f M glibc.spec +:100644 100644 7466968 946f678 M glibc.spec commit c27c24530cb9368e3026c18fff53dc6723c38d5c Author: Florian Weimer @@ -19000,8 +20134,8 @@ CommitDate: Mon Jun 13 06:30:30 2016 +0200 some reason, these architectures only have compat symbols for sendmsg and recvmsg. -:100644 100644 1fd1c53c 7cd0755d M glibc-rh1344830.patch -:100644 100644 b5dcf06f 7466968f M glibc.spec +:100644 100644 1fd1c53 7cd0755 M glibc-rh1344830.patch +:100644 100644 b5dcf06 7466968 M glibc.spec commit cb62ee1f81a7d2960260e9dd9088434bba57a701 Author: Florian Weimer @@ -19015,9 +20149,9 @@ CommitDate: Mon Jun 13 06:26:14 2016 +0200 to be cleaned if libpthread is loaded”. UTS namespaces should now offer a cleaner way yo do this. -:100644 000000 dedb8366 00000000 D glibc-fedora-uname-getrlimit.patch -:100644 100644 a0dcee28 1fd1c53c M glibc-rh1344830.patch -:100644 100644 e65ccd70 b5dcf06f M glibc.spec +:100644 000000 dedb836 0000000 D glibc-fedora-uname-getrlimit.patch +:100644 100644 a0dcee2 1fd1c53 M glibc-rh1344830.patch +:100644 100644 e65ccd7 b5dcf06 M glibc.spec commit 34a28994be161a624d591fe5a8086d27a85f8a8a Author: Florian Weimer @@ -19033,8 +20167,8 @@ CommitDate: Sun Jun 12 22:42:00 2016 +0200 This should allow us to run old binaries (with the GLIBC_2.24 symbols) while rebuild packages to use the old ABI again. -:000000 100644 00000000 a0dcee28 A glibc-rh1344830.patch -:100644 100644 13562056 e65ccd70 M glibc.spec +:000000 100644 0000000 a0dcee2 A glibc-rh1344830.patch +:100644 100644 1356205 e65ccd7 M glibc.spec commit c8064eb721d630b5af74d18f04848d907f0130ff Author: Florian Weimer @@ -19048,10 +20182,10 @@ CommitDate: Sun Jun 12 22:41:55 2016 +0200 (Crash in the nss_db NSS service module during iteration.) Add the eo locale as a first-class citizen. -:100644 000000 41f0e537 00000000 D .gitignore -:100644 100644 4ea4f604 3d03099a M SUPPORTED -:100644 100644 6d937c3c 13562056 M glibc.spec -:100644 100644 19943101 54e2c7cd M sources +:100644 000000 41f0e53 0000000 D .gitignore +:100644 100644 4ea4f60 3d03099 M SUPPORTED +:100644 100644 6d937c3 1356205 M glibc.spec +:100644 100644 1994310 54e2c7c M sources commit 1aca2e1ec1a072a5bf7a95f6b22884576206a57c Author: Florian Weimer @@ -19063,7 +20197,7 @@ CommitDate: Sat Jun 11 13:39:48 2016 +0200 Retroactively update changelog to record fixed bug. -:100644 100644 9686adf0 6d937c3c M glibc.spec +:100644 100644 9686adf 6d937c3 M glibc.spec commit d3f78ebc81f5548d992937aa4b3654d1ddd02fcf Author: Florian Weimer @@ -19073,9 +20207,9 @@ CommitDate: Thu Jun 9 12:22:07 2016 +0200 Auto-sync with upstream master. -:000000 100644 00000000 41f0e537 A .gitignore -:100644 100644 aee19eb1 9686adf0 M glibc.spec -:100644 100644 45ec11e9 19943101 M sources +:000000 100644 0000000 41f0e53 A .gitignore +:100644 100644 aee19eb 9686adf M glibc.spec +:100644 100644 45ec11e 1994310 M sources commit d4be8589c354bed63ae0bcf84c8ee30bda546068 Author: Florian Weimer @@ -19085,7 +20219,7 @@ CommitDate: Wed Jun 1 08:44:30 2016 +0200 Log df output as part of system information -:100644 100644 0ca7cfc9 aee19eb1 M glibc.spec +:100644 100644 0ca7cfc aee19eb M glibc.spec commit 5872287fa176fe84e61c0f1ddd5d67f3c0c473c5 Author: Florian Weimer @@ -19097,7 +20231,7 @@ CommitDate: Wed Jun 1 08:31:31 2016 +0200 Do not disable assertions in release builds -:100644 100644 9a49c82a 0ca7cfc9 M glibc.spec +:100644 100644 9a49c82 0ca7cfc M glibc.spec commit db9848cdc33a5dd3198f6b1dd9d19b9c230e6c06 Author: Florian Weimer @@ -19109,9 +20243,9 @@ CommitDate: Wed Jun 1 08:30:29 2016 +0200 Resolves #1326903, #1337140. -:100644 100644 1c07ad5e a549c50f M glibc-rh1315108.patch -:100644 100644 c45d03a5 9a49c82a M glibc.spec -:100644 100644 35a8cfd9 45ec11e9 M sources +:100644 100644 1c07ad5 a549c50 M glibc-rh1315108.patch +:100644 100644 c45d03a 9a49c82 M glibc.spec +:100644 100644 35a8cfd 45ec11e M sources commit 15922d5c0715a89b32a71bc1788c5dfaf21756c3 Author: Carlos O'Donell @@ -19123,8 +20257,8 @@ CommitDate: Wed May 11 16:21:02 2016 -0400 - Move support for building GCC 2.96 into compat-gcc-296. -:100644 100644 41299ca7 c45d03a5 M glibc.spec -:100644 000000 d243ef07 00000000 D libc-lock.h +:100644 100644 41299ca c45d03a M glibc.spec +:100644 000000 d243ef0 0000000 D libc-lock.h commit 6a2d7264b46effc9e835dab042fa7ae606172031 Author: Florian Weimer @@ -19136,8 +20270,8 @@ CommitDate: Wed May 11 16:10:58 2016 +0200 Revert dlsym (RTLD_NEXT)/dlerror change, to unbreak ASAN -:000000 100644 00000000 8738f9a4 A glibc-rh1335011.patch -:100644 100644 01012f0e 41299ca7 M glibc.spec +:000000 100644 0000000 8738f9a A glibc-rh1335011.patch +:100644 100644 01012f0 41299ca M glibc.spec commit a92e3b7488197c7a14e0e3d8d33ea2859f9f978f Author: Florian Weimer @@ -19147,7 +20281,7 @@ CommitDate: Mon May 9 20:43:58 2016 +0200 Expand comments about the separate SUPPORTED file -:100644 100644 8a49c740 01012f0e M glibc.spec +:100644 100644 8a49c74 01012f0 M glibc.spec commit 48c31c2f6221bcfe49d2658d7eaa4fda24d0b28f Author: Florian Weimer @@ -19157,8 +20291,8 @@ CommitDate: Mon May 9 17:18:54 2016 +0200 Drop broken attempt at fix for #1326903 -:100644 000000 62cdf9f6 00000000 D glibc-rh1326903.patch -:100644 100644 836a4caf 8a49c740 M glibc.spec +:100644 000000 62cdf9f 0000000 D glibc-rh1326903.patch +:100644 100644 836a4ca 8a49c74 M glibc.spec commit 35857353391b0f062c30a24fed0741b6d2a26604 Author: Florian Weimer @@ -19170,8 +20304,8 @@ CommitDate: Mon May 9 14:23:15 2016 +0200 Experimental fix for NULL fork/vfork symbols in libpthread -:000000 100644 00000000 62cdf9f6 A glibc-rh1326903.patch -:100644 100644 34ee1899 836a4caf M glibc.spec +:000000 100644 0000000 62cdf9f A glibc-rh1326903.patch +:100644 100644 34ee189 836a4ca M glibc.spec commit f3507c9c60cde87cee62132ba6d3a57dc8db53a8 Author: Florian Weimer @@ -19181,13 +20315,13 @@ CommitDate: Mon May 9 14:19:32 2016 +0200 Remove unapplied patches -:100644 000000 ce21e8d9 00000000 D glibc-fedora-use-test-skeleton.patch -:100644 000000 745fa3f6 00000000 D glibc-fix-an_ES.patch -:100644 000000 cbc670e6 00000000 D glibc-rh1052846.patch -:100644 000000 9c098c25 00000000 D glibc-rh1069559-1.patch -:100644 000000 b74e2f15 00000000 D glibc-rh1069559-2.patch -:100644 000000 a35679c3 00000000 D glibc-rh1252570.patch -:100644 000000 86e99b9b 00000000 D template.patch +:100644 000000 ce21e8d 0000000 D glibc-fedora-use-test-skeleton.patch +:100644 000000 745fa3f 0000000 D glibc-fix-an_ES.patch +:100644 000000 cbc670e 0000000 D glibc-rh1052846.patch +:100644 000000 9c098c2 0000000 D glibc-rh1069559-1.patch +:100644 000000 b74e2f1 0000000 D glibc-rh1069559-2.patch +:100644 000000 a35679c 0000000 D glibc-rh1252570.patch +:100644 000000 86e99b9 0000000 D template.patch commit 43e96b9dec482ab4bb61c6bb786f5aa3f3e1aefa Author: Florian Weimer @@ -19197,7 +20331,7 @@ CommitDate: Mon May 9 13:48:03 2016 +0200 Use diff instead of cmp for the SUPPORTED file check -:100644 100644 54de66cf 34ee1899 M glibc.spec +:100644 100644 54de66c 34ee189 M glibc.spec commit ddd7733205ed9b761af40d0191562378503a9cdf Author: Florian Weimer @@ -19212,11 +20346,11 @@ CommitDate: Mon May 9 13:47:51 2016 +0200 Adjust glibc-rh1315108.patch to minor upstream change. Update SUPPORTED file. -:100644 100644 f5875705 4ea4f604 M SUPPORTED -:100644 000000 0188652f 00000000 D glibc-nsswitch-Add-group-merging-support.patch -:100644 100644 efac5c90 1c07ad5e M glibc-rh1315108.patch -:100644 100644 4f25aba4 54de66cf M glibc.spec -:100644 100644 3748e1f4 35a8cfd9 M sources +:100644 100644 f587570 4ea4f60 M SUPPORTED +:100644 000000 0188652 0000000 D glibc-nsswitch-Add-group-merging-support.patch +:100644 100644 efac5c9 1c07ad5 M glibc-rh1315108.patch +:100644 100644 4f25aba 54de66c M glibc.spec +:100644 100644 3748e1f 35a8cfd M sources commit 4f51555190fcfa0d0565283d3e135686887b05aa Author: Carlos O'Donell @@ -19228,7 +20362,7 @@ CommitDate: Tue May 3 15:51:17 2016 -0400 - Require libselinux for nscd in non-bootstrap configuration. -:100644 100644 7c236e9e 4f25aba4 M glibc.spec +:100644 100644 7c236e9 4f25aba M glibc.spec commit 790a04974bdbf5b72b5977b6761d663c7a5dcd85 Author: Carlos O'Donell @@ -19238,7 +20372,7 @@ CommitDate: Fri Apr 29 23:11:30 2016 -0400 Update gen-quilt-series script. -:100755 100755 35412de1 3262fbae M gen-quilt-series.sh +:100755 100755 35412de 3262fba M gen-quilt-series.sh commit fe4ad2a06eb59660ef5595a3e8cde5829beeb29b Author: Carlos O'Donell @@ -19248,15 +20382,15 @@ CommitDate: Fri Apr 29 23:08:42 2016 -0400 Auto-sync with upstream master. -:100644 100644 21456549 f5875705 M SUPPORTED -:100644 000000 a982eef4 00000000 D glibc-bench-build.patch -:100644 100644 f5da4192 7fabf303 M glibc-c-utf8-locale.patch -:100644 100644 abbceb27 3810a6e1 M glibc-dns-host-gcc5.patch -:100644 100644 43b7ef3a 92fa90f2 M glibc-gethnamaddr-gcc5.patch -:100644 100644 5960653f a35679c3 M glibc-rh1252570.patch -:100644 100644 1fd2c518 7c236e9e M glibc.spec -:100644 100644 35ab8e14 3748e1f4 M sources -:100755 100755 35eed114 459c1534 M sync-upstream.sh +:100644 100644 2145654 f587570 M SUPPORTED +:100644 000000 a982eef 0000000 D glibc-bench-build.patch +:100644 100644 f5da419 7fabf30 M glibc-c-utf8-locale.patch +:100644 100644 abbceb2 3810a6e M glibc-dns-host-gcc5.patch +:100644 100644 43b7ef3 92fa90f M glibc-gethnamaddr-gcc5.patch +:100644 100644 5960653 a35679c M glibc-rh1252570.patch +:100644 100644 1fd2c51 7c236e9 M glibc.spec +:100644 100644 35ab8e1 3748e1f M sources +:100755 100755 35eed11 459c153 M sync-upstream.sh commit cfdb093a223bad8ef1337a143354355ca69eafa4 Author: Carlos O'Donell @@ -19266,7 +20400,7 @@ CommitDate: Fri Apr 29 21:25:52 2016 -0400 Remove quilt series file. -:100644 000000 ae5129c2 00000000 D series +:100644 000000 ae5129c 0000000 D series commit 256beb3f45b0b62870afe41acceee6f337db6ea3 Author: Carlos O'Donell @@ -19278,7 +20412,7 @@ CommitDate: Thu Apr 28 15:59:56 2016 -0400 - Move spec file system information logging to the build stage. -:100644 100644 1a74eaad 1fd2c518 M glibc.spec +:100644 100644 1a74eaa 1fd2c51 M glibc.spec commit 4ac7c7b40368f067a3acb2db4dc318b1c0752284 Author: Florian Weimer @@ -19288,8 +20422,8 @@ CommitDate: Thu Apr 14 22:49:32 2016 +0200 Auto-sync with upstream master -:100644 100644 c075c3e8 1a74eaad M glibc.spec -:100644 100644 7d93c400 35ab8e14 M sources +:100644 100644 c075c3e 1a74eaa M glibc.spec +:100644 100644 7d93c40 35ab8e1 M sources commit 85759f3e8d0760bcc8d40f146b93d0a39b28e220 Author: Florian Weimer @@ -19299,9 +20433,9 @@ CommitDate: Thu Apr 14 12:59:40 2016 +0200 Auto-sync with upstream master -:100644 000000 6e809b61 00000000 D .gitignore -:100644 100644 b6f667c0 c075c3e8 M glibc.spec -:100644 100644 facb3223 7d93c400 M sources +:100644 000000 6e809b6 0000000 D .gitignore +:100644 100644 b6f667c c075c3e M glibc.spec +:100644 100644 facb322 7d93c40 M sources commit 34d510b5deb4228d04588f7b8e5787126dd604c0 Author: Florian Weimer @@ -19314,10 +20448,10 @@ CommitDate: Thu Apr 14 10:00:03 2016 +0200 This removes the type union wait from the installed headers. Update the SUPPORTED file with upstream changes -:000000 100644 00000000 6e809b61 A .gitignore -:100644 100644 8319565c 21456549 M SUPPORTED -:100644 100644 847c8e83 b6f667c0 M glibc.spec -:100644 100644 4006c6d3 facb3223 M sources +:000000 100644 0000000 6e809b6 A .gitignore +:100644 100644 8319565 2145654 M SUPPORTED +:100644 100644 847c8e8 b6f667c M glibc.spec +:100644 100644 4006c6d facb322 M sources commit ec0dd75135040a36a06a67e8c0d3785b0d9c559c Author: Florian Weimer @@ -19327,8 +20461,8 @@ CommitDate: Fri Apr 8 16:21:37 2016 +0200 Auto-sync with upstream master -:100644 100644 e36fc5f8 847c8e83 M glibc.spec -:100644 100644 a27b5413 4006c6d3 M sources +:100644 100644 e36fc5f 847c8e8 M glibc.spec +:100644 100644 a27b541 4006c6d M sources commit 887080ee792f16157feca5f70b5870aadd215f07 Author: Florian Weimer @@ -19338,9 +20472,9 @@ CommitDate: Tue Mar 29 13:04:25 2016 +0200 Auto-sync with upstream master -:100644 100644 228bb96c 5960653f M glibc-rh1252570.patch -:100644 100644 84398bd2 e36fc5f8 M glibc.spec -:100644 100644 a80a833e a27b5413 M sources +:100644 100644 228bb96 5960653 M glibc-rh1252570.patch +:100644 100644 84398bd e36fc5f M glibc.spec +:100644 100644 a80a833 a27b541 M sources commit 1ffb3d6c4c1671dc3455cc3847ff1abea4dd191d Author: Carlos O'Donell @@ -19352,10 +20486,10 @@ CommitDate: Wed Mar 16 02:38:44 2016 -0400 - Use 'an' as language abbreviation for an_ES. -:100644 000000 a55909f4 00000000 D .gitignore -:000000 100644 00000000 745fa3f6 A glibc-fix-an_ES.patch -:100644 100644 845b875b 84398bd2 M glibc.spec -:100644 100644 1810c7f9 ae5129c2 M series +:100644 000000 a55909f 0000000 D .gitignore +:000000 100644 0000000 745fa3f A glibc-fix-an_ES.patch +:100644 100644 845b875 84398bd M glibc.spec +:100644 100644 1810c7f ae5129c M series commit e5c33149471761328f1d11f84824fde9417d54cf Author: Carlos O'Donell @@ -19369,7 +20503,7 @@ CommitDate: Mon Mar 7 12:07:04 2016 -0500 - Add support for descriptive branch names. - Fix error message to be more accurate if you ctrl^c out of build. -:100755 100755 aeeac4b7 35eed114 M sync-upstream.sh +:100755 100755 aeeac4b 35eed11 M sync-upstream.sh commit 99a6d4df1b323c1e4e19cd332cfba885b39690c6 Author: Carlos O'Donell @@ -19379,10 +20513,10 @@ CommitDate: Mon Mar 7 11:47:23 2016 -0500 Auto-sync with upstream master. -:000000 100644 00000000 a55909f4 A .gitignore -:100644 100644 072974d1 845b875b M glibc.spec -:100644 100644 c43d3072 a80a833e M sources -:100755 100755 765e682a aeeac4b7 M sync-upstream.sh +:000000 100644 0000000 a55909f A .gitignore +:100644 100644 072974d 845b875 M glibc.spec +:100644 100644 c43d307 a80a833 M sources +:100755 100755 765e682 aeeac4b M sync-upstream.sh commit 9fce0748c4d989e603d379d80f2066d8061de932 Author: Florian Weimer @@ -19394,9 +20528,9 @@ CommitDate: Mon Mar 7 06:52:27 2016 +0100 Remove extend_alloca. -:000000 100644 00000000 efac5c90 A glibc-rh1315108.patch -:100644 100644 6d1e707e 072974d1 M glibc.spec -:100644 100644 9b34d6b5 1810c7f9 M series +:000000 100644 0000000 efac5c9 A glibc-rh1315108.patch +:100644 100644 6d1e707 072974d M glibc.spec +:100644 100644 9b34d6b 1810c7f M series commit f2d40207eae526f4183c755c1c16aed2daec0279 Author: Carlos O'Donell @@ -19408,7 +20542,7 @@ CommitDate: Tue Mar 1 02:59:24 2016 -0500 - Enhance support for upgrading from a non-language-pack system. -:100644 100644 a10bb637 6d1e707e M glibc.spec +:100644 100644 a10bb63 6d1e707 M glibc.spec commit 9edc2b688b4e009d0c56e14f3c7176823cec60d0 Author: Carlos O'Donell @@ -19423,8 +20557,8 @@ CommitDate: Fri Feb 26 01:06:35 2016 -0800 to install all languages. Transparent installation support is provided via dnf langpacks. -:000000 100644 00000000 8319565c A SUPPORTED -:100644 100644 c785356c a10bb637 M glibc.spec +:000000 100644 0000000 8319565 A SUPPORTED +:100644 100644 c785356 a10bb63 M glibc.spec commit b359bd04bb163ba9ad12ee47dcc65af432aec236 Author: Carlos O'Donell @@ -19434,8 +20568,8 @@ CommitDate: Fri Feb 26 00:36:28 2016 -0500 Upstream development version is now 2.23.90. -:100644 000000 541fb77b 00000000 D .gitignore -:100644 100644 c0be76b9 c785356c M glibc.spec +:100644 000000 541fb77 0000000 D .gitignore +:100644 100644 c0be76b c785356 M glibc.spec commit dd72bee11f7a24939c520d037caa92d74f975f65 Author: Carlos O'Donell @@ -19448,14 +20582,14 @@ CommitDate: Thu Feb 25 15:48:36 2016 -0500 - Drop glibc-CVE-2015-7547.patch, glibc-isinf-cxx11.patch and glibc-rh1114591.patch since they are all upstream. -:100644 100644 71c39042 541fb77b M .gitignore -:100644 000000 627afda2 00000000 D glibc-CVE-2015-7547.patch -:100644 000000 b65a2f3e 00000000 D glibc-isinf-cxx11.patch -:100644 000000 73e6bc4f 00000000 D glibc-rh1114591.patch -:100644 100644 5e69e9a0 228bb96c M glibc-rh1252570.patch -:100644 100644 aae1a866 c0be76b9 M glibc.spec -:100644 100644 e3f70b95 9b34d6b5 M series -:100644 100644 2151b4ae c43d3072 M sources +:100644 100644 71c3904 541fb77 M .gitignore +:100644 000000 627afda 0000000 D glibc-CVE-2015-7547.patch +:100644 000000 b65a2f3 0000000 D glibc-isinf-cxx11.patch +:100644 000000 73e6bc4 0000000 D glibc-rh1114591.patch +:100644 100644 5e69e9a 228bb96 M glibc-rh1252570.patch +:100644 100644 aae1a86 c0be76b M glibc.spec +:100644 100644 e3f70b9 9b34d6b M series +:100644 100644 2151b4a c43d307 M sources commit ba7912605b178508ba88229fb87eacfbff8a6da1 Author: Florian Weimer @@ -19467,8 +20601,8 @@ CommitDate: Fri Feb 19 21:46:21 2016 +0100 Remove stray newline from Serbian locales. -:000000 100644 00000000 73e6bc4f A glibc-rh1114591.patch -:100644 100644 6b3b8bfa aae1a866 M glibc.spec +:000000 100644 0000000 73e6bc4 A glibc-rh1114591.patch +:100644 100644 6b3b8bf aae1a86 M glibc.spec commit 3d382a2e9c424a6c2ac35e0327e9538b6b7a9f23 Author: Carlos O'Donell @@ -19480,9 +20614,9 @@ CommitDate: Tue Feb 16 09:31:14 2016 -0500 - Fix CVE-2015-7547: getaddrinfo() stack-based buffer overflow (#1308943). -:000000 100644 00000000 627afda2 A glibc-CVE-2015-7547.patch -:100644 100644 97335bee 6b3b8bfa M glibc.spec -:100644 100644 528fb2e2 e3f70b95 M series +:000000 100644 0000000 627afda A glibc-CVE-2015-7547.patch +:100644 100644 97335be 6b3b8bf M glibc.spec +:100644 100644 528fb2e e3f70b9 M series commit 29b39d6e5623c213fce6701da535bc46848635e0 Author: Florian Weimer @@ -19494,8 +20628,8 @@ CommitDate: Mon Feb 15 12:22:50 2016 +0100 Revert upstream commit 2212c1420c92a33b0e0bd9a34938c9814a56c0f7. -:000000 100644 00000000 5e69e9a0 A glibc-rh1252570.patch -:100644 100644 3014e58d 97335bee M glibc.spec +:000000 100644 0000000 5e69e9a A glibc-rh1252570.patch +:100644 100644 3014e58 97335be M glibc.spec commit 432964b3d9ec38db4b6348b808298619b3b72806 Author: Florian Weimer @@ -19507,8 +20641,8 @@ CommitDate: Mon Feb 15 12:12:34 2016 +0100 This reverts commit 49a15d1f644b22093ec95a97745b790ef2e3285f. -:100644 000000 7239ced1 00000000 D glibc-rh1306511.patch -:100644 100644 9b7edd9a 3014e58d M glibc.spec +:100644 000000 7239ced 0000000 D glibc-rh1306511.patch +:100644 100644 9b7edd9 3014e58 M glibc.spec commit 49a15d1f644b22093ec95a97745b790ef2e3285f Author: Florian Weimer @@ -19520,8 +20654,8 @@ CommitDate: Sat Feb 13 13:34:31 2016 +0100 Support aliasing with struct sockaddr pointers. -:000000 100644 00000000 7239ced1 A glibc-rh1306511.patch -:100644 100644 38571390 9b7edd9a M glibc.spec +:000000 100644 0000000 7239ced A glibc-rh1306511.patch +:100644 100644 3857139 9b7edd9 M glibc.spec commit 7dc8bfc342d6410eb25302c91e0f797169a60120 Author: Florian Weimer @@ -19531,9 +20665,9 @@ CommitDate: Sat Feb 13 13:27:45 2016 +0100 Auto-sync with upstream master. -:100644 100644 e69de29b 71c39042 M .gitignore -:100644 100644 844e181a 38571390 M glibc.spec -:100644 100644 a96a8d31 2151b4ae M sources +:100644 100644 e69de29 71c3904 M .gitignore +:100644 100644 844e181 3857139 M glibc.spec +:100644 100644 a96a8d3 2151b4a M sources commit b60f74076c7cd0e1a83c4d6f26c90bf7bd40fc2f Author: Carlos O'Donell @@ -19545,8 +20679,8 @@ CommitDate: Tue Feb 9 03:48:54 2016 -0500 - Use --with-cpu=power8 for ppc64le default runtime (#1227361). -:100644 100644 d8f8d16a e69de29b M .gitignore -:100644 100644 5cb52628 844e181a M glibc.spec +:100644 100644 d8f8d16 e69de29 M .gitignore +:100644 100644 5cb5262 844e181 M glibc.spec commit 363323a3b9fac77274ee5618e06d909cfaa0ad04 Author: Florian Weimer @@ -19556,9 +20690,9 @@ CommitDate: Tue Feb 2 12:28:36 2016 +0100 Apply glibc-isinf-cxx11.patch to improve C++11 compatibility -:000000 100644 00000000 b65a2f3e A glibc-isinf-cxx11.patch -:100644 100644 d97f47a6 5cb52628 M glibc.spec -:100644 100644 e33ce36f 528fb2e2 M series +:000000 100644 0000000 b65a2f3 A glibc-isinf-cxx11.patch +:100644 100644 d97f47a 5cb5262 M glibc.spec +:100644 100644 e33ce36 528fb2e M series commit b2bf60e8255e0ae7bc74ebace04d9ea3f3ed2abe Author: Florian Weimer @@ -19568,10 +20702,10 @@ CommitDate: Tue Feb 2 12:19:16 2016 +0100 Auto-sync with upstream master. -:100644 100644 35ec57d0 d8f8d16a M .gitignore -:100644 100644 0eb0b57e d97f47a6 M glibc.spec -:100644 100644 9eeba36d a96a8d31 M sources -:100755 100755 3a792f77 765e682a M sync-upstream.sh +:100644 100644 35ec57d d8f8d16 M .gitignore +:100644 100644 0eb0b57 d97f47a M glibc.spec +:100644 100644 9eeba36 a96a8d3 M sources +:100755 100755 3a792f7 765e682 M sync-upstream.sh commit 2b8a8117dc75d9d8e286929f251a84c06a78250d Author: Florian Weimer @@ -19581,9 +20715,9 @@ CommitDate: Thu Jan 28 14:24:44 2016 +0100 Add workaround for GCC PR69537 -:000000 100644 00000000 9f395d53 A glibc-gcc-PR69537.patch -:100644 100644 1857df54 0eb0b57e M glibc.spec -:100644 100644 11bfbcd3 e33ce36f M series +:000000 100644 0000000 9f395d5 A glibc-gcc-PR69537.patch +:100644 100644 1857df5 0eb0b57 M glibc.spec +:100644 100644 11bfbcd e33ce36 M series commit 05ffab72b4a77e27580754c53f4a3a834aa7f40e Author: Florian Weimer @@ -19593,9 +20727,9 @@ CommitDate: Thu Jan 28 11:54:08 2016 +0100 Auto-sync with upstream master. -:100644 100644 e69de29b 35ec57d0 M .gitignore -:100644 100644 1acdcecf 1857df54 M glibc.spec -:100644 100644 f2700aa2 9eeba36d M sources +:100644 100644 e69de29 35ec57d M .gitignore +:100644 100644 1acdcec 1857df5 M glibc.spec +:100644 100644 f2700aa 9eeba36 M sources commit 8e51854b9bbd20d37781ad80354fbbd6493c6a64 Author: Florian Weimer @@ -19605,9 +20739,9 @@ CommitDate: Thu Jan 28 11:49:46 2016 +0100 Drop pthread barrier patch, merged upstream -:100644 000000 4071e59e 00000000 D glibc-pthread-barrier.patch -:100644 100644 8fc16171 1acdcecf M glibc.spec -:100644 100644 900d53b2 11bfbcd3 M series +:100644 000000 4071e59 0000000 D glibc-pthread-barrier.patch +:100644 100644 8fc1617 1acdcec M glibc.spec +:100644 100644 900d53b 11bfbcd M series commit 8084be9f8c5b8428d081d899d0d15eaaa22a8816 Author: Carlos O'Donell @@ -19617,10 +20751,10 @@ CommitDate: Wed Jan 13 21:35:53 2016 -0500 New pthread_barrier algorithm with improved standards compliance. -:100644 100644 339be6d9 e69de29b M .gitignore -:000000 100644 00000000 4071e59e A glibc-pthread-barrier.patch -:100644 100644 5512d2c4 8fc16171 M glibc.spec -:100644 100644 c2bfbfc8 900d53b2 M series +:100644 100644 339be6d e69de29 M .gitignore +:000000 100644 0000000 4071e59 A glibc-pthread-barrier.patch +:100644 100644 5512d2c 8fc1617 M glibc.spec +:100644 100644 c2bfbfc 900d53b M series commit a999deb25a0ffad18defbadd6c6fb3bfc70fbe3d Author: Carlos O'Donell @@ -19632,8 +20766,8 @@ CommitDate: Wed Jan 13 12:59:35 2016 -0500 - Add group merging support for distributed management (#1146822). -:000000 100644 00000000 0188652f A glibc-nsswitch-Add-group-merging-support.patch -:100644 100644 bcab66cf 5512d2c4 M glibc.spec +:000000 100644 0000000 0188652 A glibc-nsswitch-Add-group-merging-support.patch +:100644 100644 bcab66c 5512d2c M glibc.spec commit 130c4973ff0aa0d4b002094b7954a179a3f9857c Author: Carlos O'Donell @@ -19648,7 +20782,7 @@ CommitDate: Tue Jan 12 11:59:28 2016 -0500 We specify clearly exactly what we support for BE and LE 64-bit POWER. -:100644 100644 fbf4acfc bcab66cf M glibc.spec +:100644 100644 fbf4acf bcab66c M glibc.spec commit 832f52f3cc9417ea3c35b71d26af05b950ead83b Author: Florian Weimer @@ -19658,8 +20792,8 @@ CommitDate: Mon Dec 21 17:31:12 2015 +0100 Auto-sync with upstream master. -:100644 100644 ad9af201 fbf4acfc M glibc.spec -:100644 100644 3dce49a1 f2700aa2 M sources +:100644 100644 ad9af20 fbf4acf M glibc.spec +:100644 100644 3dce49a f2700aa M sources commit b79a5ba9e6c525c389a80c23af4417ff56465fc8 Author: Florian Weimer @@ -19672,13 +20806,13 @@ CommitDate: Wed Dec 16 14:00:32 2015 +0100 This includes a fix for rhbz#1281714. Manually remove the Unicode 8.0 patches, which have been merged upstream. -:100644 000000 fd42ca7c 00000000 D glibc-rh1238412-add-translit-rules-for-da-nb-nn-sv-locales.patch -:100644 000000 b2de5190 00000000 D glibc-rh1238412-addition-and-fixes-for-translit_neutral.patch -:100644 000000 d2021a1f 00000000 D glibc-rh1238412-remove-duplicate-transliterations.patch -:100644 000000 148f4933 00000000 D glibc-rh1238412-unicode-8.0.0-update.patch -:100644 000000 9d495441 00000000 D glibc-rh1238412-update-the-translit-files-to-unicode-7.0.0.patch -:100644 100644 b051eb62 ad9af201 M glibc.spec -:100644 100644 a84608c1 3dce49a1 M sources +:100644 000000 fd42ca7 0000000 D glibc-rh1238412-add-translit-rules-for-da-nb-nn-sv-locales.patch +:100644 000000 b2de519 0000000 D glibc-rh1238412-addition-and-fixes-for-translit_neutral.patch +:100644 000000 d2021a1 0000000 D glibc-rh1238412-remove-duplicate-transliterations.patch +:100644 000000 148f493 0000000 D glibc-rh1238412-unicode-8.0.0-update.patch +:100644 000000 9d49544 0000000 D glibc-rh1238412-update-the-translit-files-to-unicode-7.0.0.patch +:100644 100644 b051eb6 ad9af20 M glibc.spec +:100644 100644 a84608c 3dce49a M sources commit d604db4c4f4629c97ea25861bfe974a8aad4c2db Author: Florian Weimer @@ -19690,7 +20824,7 @@ CommitDate: Sat Dec 5 20:31:00 2015 +0100 Put libmvec_nonshared.a into the -devel package. -:100644 100644 1676b7a2 b051eb62 M glibc.spec +:100644 100644 1676b7a b051eb6 M glibc.spec commit e0ca9a36a5dec1db49263f2ba25b66a9ead2cef7 Author: Florian Weimer @@ -19700,8 +20834,8 @@ CommitDate: Sat Dec 5 15:53:14 2015 +0100 Auto-sync with upstream master. -:100644 100644 554a5f05 1676b7a2 M glibc.spec -:100644 100644 585d5c88 a84608c1 M sources +:100644 100644 554a5f0 1676b7a M glibc.spec +:100644 100644 585d5c8 a84608c M sources commit 933c6091f307db339a613b66499d2d9f97ac2131 Author: Jaromir Capik @@ -19711,8 +20845,8 @@ CommitDate: Thu Dec 3 15:34:40 2015 +0100 Adding BUILD_CC to the STAGE1 bootstrap recipes -:100644 100644 f9ee5ba0 4a31ea0a M STAGE1-glibc -:100644 100644 f1dad9e4 c58c5419 M STAGE1-glibc-headers +:100644 100644 f9ee5ba 4a31ea0 M STAGE1-glibc +:100644 100644 f1dad9e c58c541 M STAGE1-glibc-headers commit 8fdf674ae9ac2dba7eb325f2bf9c6661b04af9b8 Author: Carlos O'Donell @@ -19730,9 +20864,9 @@ CommitDate: Fri Nov 27 01:14:36 2015 -0500 - Require gcc-c++, libstdc++-static, and glibc-static only when needed. - Fix --without docs to not leave info files. -:100644 000000 36ef59c9 00000000 D glibc-fedora-elf-init-hidden_undef.patch -:100644 100644 de120d2d 554a5f05 M glibc.spec -:000000 100644 00000000 86e99b9b A template.patch +:100644 000000 36ef59c 0000000 D glibc-fedora-elf-init-hidden_undef.patch +:100644 100644 de120d2 554a5f0 M glibc.spec +:000000 100644 0000000 86e99b9 A template.patch commit 2e15a6b6a772bcf7bfb7d0b0d39bb899e65bad55 Author: Florian Weimer @@ -19742,8 +20876,8 @@ CommitDate: Fri Nov 20 10:08:34 2015 +0100 Auto-sync with upstream master. -:100644 100644 b80c1891 de120d2d M glibc.spec -:100644 100644 50892987 585d5c88 M sources +:100644 100644 b80c189 de120d2 M glibc.spec +:100644 100644 5089298 585d5c8 M sources commit 43aaa98743b1d25a2d6f711c0bd4b8dc22e74a75 Author: Florian Weimer @@ -19753,8 +20887,8 @@ CommitDate: Wed Nov 18 13:30:53 2015 +0100 Auto-sync with upstream master. -:100644 100644 136a5dad b80c1891 M glibc.spec -:100644 100644 d6d4a145 50892987 M sources +:100644 100644 136a5da b80c189 M glibc.spec +:100644 100644 d6d4a14 5089298 M sources commit be3e53e1000f3abe57d0f0ddf3b25cd3b2ce0ac1 Author: Florian Weimer @@ -19766,7 +20900,7 @@ CommitDate: Wed Nov 18 13:28:07 2015 +0100 Disable -Werror on s390. -:100644 100644 96629e16 136a5dad M glibc.spec +:100644 100644 96629e1 136a5da M glibc.spec commit 209b489bc2cf863d79c635e5922a1f51f0d12064 Author: Florian Weimer @@ -19776,8 +20910,8 @@ CommitDate: Mon Nov 16 21:40:35 2015 +0100 Auto-sync with upstream master. -:100644 100644 c31817fe 96629e16 M glibc.spec -:100644 100644 249a0338 d6d4a145 M sources +:100644 100644 c31817f 96629e1 M glibc.spec +:100644 100644 249a033 d6d4a14 M sources commit 711d6257aac9745247fd1c8a710f031e79f9f06e Author: Florian Weimer @@ -19789,8 +20923,8 @@ CommitDate: Mon Nov 16 21:37:03 2015 +0100 This reverts commit bf5e09bbb8cbd0786fd3105e6bec439584752af6. -:100644 000000 c33571d3 00000000 D glibc-fedora-armhfp-long-double-hotfix.patch -:100644 100644 8250a60e c31817fe M glibc.spec +:100644 000000 c33571d 0000000 D glibc-fedora-armhfp-long-double-hotfix.patch +:100644 100644 8250a60 c31817f M glibc.spec commit 0cffc9ae0ca6297c83c331fe3bc9acbaa9bcc373 Author: Carlos O'Donell @@ -19800,7 +20934,7 @@ CommitDate: Mon Nov 9 21:27:13 2015 -0500 Update quilt series parster to understand %{name}. -:100755 100755 6cc2dc33 35412de1 M gen-quilt-series.sh +:100755 100755 6cc2dc3 35412de M gen-quilt-series.sh commit bf5e09bbb8cbd0786fd3105e6bec439584752af6 Author: Florian Weimer @@ -19810,8 +20944,8 @@ CommitDate: Mon Nov 9 17:44:11 2015 +0100 Apply temporary fix for armhfp build issue -:000000 100644 00000000 c33571d3 A glibc-fedora-armhfp-long-double-hotfix.patch -:100644 100644 1db04e8c 8250a60e M glibc.spec +:000000 100644 0000000 c33571d A glibc-fedora-armhfp-long-double-hotfix.patch +:100644 100644 1db04e8 8250a60 M glibc.spec commit c6ef02b1b41eca7dcf55241f1d28b7475e834dd6 Author: Florian Weimer @@ -19821,8 +20955,8 @@ CommitDate: Mon Nov 9 13:15:50 2015 +0100 Auto-sync with upstream master. -:100644 100644 cf1f2f59 1db04e8c M glibc.spec -:100644 100644 1083b1c5 249a0338 M sources +:100644 100644 cf1f2f5 1db04e8 M glibc.spec +:100644 100644 1083b1c 249a033 M sources commit 078b76fd6fa0bb4e52568d62040edac9ae857267 Author: Florian Weimer @@ -19834,7 +20968,7 @@ CommitDate: Mon Nov 9 12:29:48 2015 +0100 Log uname, cpuinfo, meminfo during build -:100644 100644 c75ab38f cf1f2f59 M glibc.spec +:100644 100644 c75ab38 cf1f2f5 M glibc.spec commit 972d23085638565bb061ca36ba829174e5dedf53 Author: Jaromir Capik @@ -19844,8 +20978,8 @@ CommitDate: Thu Nov 5 17:54:43 2015 +0100 Fix for early stage2 SIGSEGV + 32-bit TARGET rework -:100644 100644 50e57ecc f9ee5ba0 M STAGE1-glibc -:100644 100644 a8969d3f f1dad9e4 M STAGE1-glibc-headers +:100644 100644 50e57ec f9ee5ba M STAGE1-glibc +:100644 100644 a8969d3 f1dad9e M STAGE1-glibc-headers commit 4cc081474ce5365d929251f5e381acd19815894f Author: Florian Weimer @@ -19855,9 +20989,9 @@ CommitDate: Fri Oct 30 19:26:52 2015 +0100 Auto-sync with upstream master. -:100644 000000 856b11c4 00000000 D glibc-new-condvar.patch -:100644 100644 432f6de4 c75ab38f M glibc.spec -:100644 100644 5f557519 1083b1c5 M sources +:100644 000000 856b11c 0000000 D glibc-new-condvar.patch +:100644 100644 432f6de c75ab38 M glibc.spec +:100644 100644 5f55751 1083b1c M sources commit dd0aad2bf0e54beec4c23d3ddbc2840e3af8f505 Author: Florian Weimer @@ -19869,7 +21003,7 @@ CommitDate: Fri Oct 30 19:23:50 2015 +0100 Revert to upstream implementation of condition variables. -:100644 100644 bf86aa9a 432f6de4 M glibc.spec +:100644 100644 bf86aa9 432f6de M glibc.spec commit 06476591343179008ffd1311045728fe16ce9336 Author: Florian Weimer @@ -19883,7 +21017,7 @@ CommitDate: Wed Oct 28 16:52:56 2015 +0100 - Disable valgrind test for ppc64p7, too. -:100644 100644 5c595b3a bf86aa9a M glibc.spec +:100644 100644 5c595b3 bf86aa9 M glibc.spec commit d387855c4990cd5accac769b2138d291f35f8633 Author: Carlos O'Donell @@ -19897,7 +21031,7 @@ CommitDate: Mon Oct 26 16:03:54 2015 -0400 - Disable valgrind test for ppc64. -:100644 100644 e077800b 5c595b3a M glibc.spec +:100644 100644 e077800 5c595b3 M glibc.spec commit f768365ef523aba5ac93a2600075ad0efefb49a6 Author: Carlos O'Donell @@ -19907,10 +21041,10 @@ CommitDate: Wed Oct 21 22:28:24 2015 -0400 Sync with upstream master. -:100644 100644 143d05e5 856b11c4 M glibc-new-condvar.patch -:100644 100644 a4894cf8 e077800b M glibc.spec -:100644 100644 09ee1063 c2bfbfc8 M series -:100644 100644 b8d5337e 5f557519 M sources +:100644 100644 143d05e 856b11c M glibc-new-condvar.patch +:100644 100644 a4894cf e077800 M glibc.spec +:100644 100644 09ee106 c2bfbfc M series +:100644 100644 b8d5337 5f55751 M sources commit e61b8f41f2b4f1bed2a8b0d06646988acd1ec719 Author: Carlos O'Donell @@ -19920,13 +21054,13 @@ CommitDate: Wed Oct 21 15:24:28 2015 -0400 Sync with upstream master. -:100755 100755 4e321d00 6cc2dc33 M gen-quilt-series.sh -:100644 100644 7a63cb38 143d05e5 M glibc-new-condvar.patch -:100644 100644 b3706f0e 4f5ae83b M glibc-res-hconf-gcc5.patch -:100644 100644 0ef8419e d9b37522 M glibc-rh741105.patch -:100644 100644 2a540705 a4894cf8 M glibc.spec -:100644 100644 a6a99516 09ee1063 M series -:100644 100644 88c5a8e3 b8d5337e M sources +:100755 100755 4e321d0 6cc2dc3 M gen-quilt-series.sh +:100644 100644 7a63cb3 143d05e M glibc-new-condvar.patch +:100644 100644 b3706f0 4f5ae83 M glibc-res-hconf-gcc5.patch +:100644 100644 0ef8419 d9b3752 M glibc-rh741105.patch +:100644 100644 2a54070 a4894cf M glibc.spec +:100644 100644 a6a9951 09ee106 M series +:100644 100644 88c5a8e b8d5337 M sources commit 4d789e132ed1610b7788a91e82ef1e9040e2c4a5 Author: Carlos O'Donell @@ -19938,7 +21072,7 @@ CommitDate: Fri Oct 9 21:00:30 2015 -0400 - Remove libbsd.a (#1193168). -:100644 100644 69044621 2a540705 M glibc.spec +:100644 100644 6904462 2a54070 M glibc.spec commit 0457f649e3fe6299efe384da13dfc923bbe65707 Author: Carlos O'Donell @@ -19955,18 +21089,18 @@ CommitDate: Thu Sep 17 12:24:49 2015 -0400 - Fix GCC 5 and -Werror related build failures. - Fix --install-langs bug which causes SIGABRT (#1262040). -:100644 100644 a93a583f 7b67937a M README.quilt -:100644 100644 a5068767 5fc93ffa M build-locale-archive.c -:000000 100644 00000000 c5a704e2 A glibc-bug-regex-gcc5.patch -:000000 100644 00000000 f5da4192 A glibc-c-utf8-locale.patch -:000000 100644 00000000 abbceb27 A glibc-dns-host-gcc5.patch -:000000 100644 00000000 43b7ef3a A glibc-gethnamaddr-gcc5.patch -:000000 100644 00000000 78e7fd4f A glibc-ld-ctype-gcc5.patch -:000000 100644 00000000 b3706f0e A glibc-res-hconf-gcc5.patch -:100644 100644 0fe54f25 69044621 M glibc.spec -:100644 100644 85309bfb 290489b6 M glibc_post_upgrade.c -:100755 100755 e565d198 983a75d4 M quilt-patch.sh -:100644 100644 f4939a54 a6a99516 M series +:100644 100644 a93a583 7b67937 M README.quilt +:100644 100644 a506876 5fc93ff M build-locale-archive.c +:000000 100644 0000000 c5a704e A glibc-bug-regex-gcc5.patch +:000000 100644 0000000 f5da419 A glibc-c-utf8-locale.patch +:000000 100644 0000000 abbceb2 A glibc-dns-host-gcc5.patch +:000000 100644 0000000 43b7ef3 A glibc-gethnamaddr-gcc5.patch +:000000 100644 0000000 78e7fd4 A glibc-ld-ctype-gcc5.patch +:000000 100644 0000000 b3706f0 A glibc-res-hconf-gcc5.patch +:100644 100644 0fe54f2 6904462 M glibc.spec +:100644 100644 85309bf 290489b M glibc_post_upgrade.c +:100755 100755 e565d19 983a75d M quilt-patch.sh +:100644 100644 f4939a5 a6a9951 M series commit 444c2ecfbca6d5761aeb1c1888a16f0973d073c8 Author: Carlos O'Donell @@ -19976,8 +21110,8 @@ CommitDate: Fri Aug 28 17:03:18 2015 -0400 Auto-sync with upstream master. -:100644 100644 010a6ee6 0fe54f25 M glibc.spec -:100644 100644 d9926323 88c5a8e3 M sources +:100644 100644 010a6ee 0fe54f2 M glibc.spec +:100644 100644 d992632 88c5a8e M sources commit 6e8e9f6f52598d3ab87773f9d8a1fe6479831522 Author: Carlos O'Donell @@ -20003,16 +21137,16 @@ CommitDate: Fri Aug 28 15:29:26 2015 -0400 - Remove c_stubs add-on and enable fuller support for static binaries. - Remove librtkaio support (#1227855). -:100755 100755 9f6c94a6 4e321d00 M gen-quilt-series.sh -:100644 000000 934f0d06 00000000 D glibc-c_stubs.patch -:100644 000000 e3f4ecae 00000000 D glibc-rh731833-rtkaio-2.patch -:100644 000000 b1617393 00000000 D glibc-rh731833-rtkaio.patch -:100644 000000 d7907359 00000000 D glibc-rh970865.patch -:100644 000000 4aff826d 00000000 D glibc-rtkaio-clock.patch -:100644 000000 3db525e9 00000000 D glibc-rtkaio-libof.patch -:100644 000000 f5940d6c 00000000 D glibc-rtkaio.patch -:100644 100644 bf8f2e22 010a6ee6 M glibc.spec -:100644 100644 dd096536 f4939a54 M series +:100755 100755 9f6c94a 4e321d0 M gen-quilt-series.sh +:100644 000000 934f0d0 0000000 D glibc-c_stubs.patch +:100644 000000 e3f4eca 0000000 D glibc-rh731833-rtkaio-2.patch +:100644 000000 b161739 0000000 D glibc-rh731833-rtkaio.patch +:100644 000000 d790735 0000000 D glibc-rh970865.patch +:100644 000000 4aff826 0000000 D glibc-rtkaio-clock.patch +:100644 000000 3db525e 0000000 D glibc-rtkaio-libof.patch +:100644 000000 f5940d6 0000000 D glibc-rtkaio.patch +:100644 100644 bf8f2e2 010a6ee M glibc.spec +:100644 100644 dd09653 f4939a5 M series commit ac22d64886d80f739217aa9bad7d7fc45a206c39 Author: Siddhesh Poyarekar @@ -20022,8 +21156,8 @@ CommitDate: Sun Aug 16 09:51:12 2015 +0530 Auto-sync with upstream master. -:100644 100644 1553fb85 bf8f2e22 M glibc.spec -:100644 100644 83fb67f8 d9926323 M sources +:100644 100644 1553fb8 bf8f2e2 M glibc.spec +:100644 100644 83fb67f d992632 M sources commit b893edf7948bb881ca06869215d799e5c99ba7f4 Author: Siddhesh Poyarekar @@ -20033,8 +21167,8 @@ CommitDate: Fri Aug 14 13:38:42 2015 +0530 Remove initgroups from default nsswitch.conf -:100644 100644 08c53533 1553fb85 M glibc.spec -:100644 100644 2f6c84e5 1e2b63d5 M nsswitch.conf +:100644 100644 08c5353 1553fb8 M glibc.spec +:100644 100644 2f6c84e 1e2b63d M nsswitch.conf commit daa5a48a9bd1e17a2aec9477604ceaee03375f99 Author: Siddhesh Poyarekar @@ -20044,10 +21178,10 @@ CommitDate: Fri Aug 14 12:30:00 2015 +0530 Sync with upstream master -:100644 100644 b782da06 3e81dceb M glibc-disable-rwlock-elision.patch -:100644 100644 747bf0d7 7a63cb38 M glibc-new-condvar.patch -:100644 100644 247783e2 08c53533 M glibc.spec -:100644 100644 fcfa4bcf 83fb67f8 M sources +:100644 100644 b782da0 3e81dce M glibc-disable-rwlock-elision.patch +:100644 100644 747bf0d 7a63cb3 M glibc-new-condvar.patch +:100644 100644 247783e 08c5353 M glibc.spec +:100644 100644 fcfa4bc 83fb67f M sources commit 6223dbf32d2b599a8ef6df0f07140e4a563269b5 Author: Siddhesh Poyarekar @@ -20064,16 +21198,16 @@ CommitDate: Tue Jul 28 08:17:23 2015 +0530 - Set MODULE_NAME=librt for rtkaio - Fix up glibc-rh741105.patch to continue to work with latest master -:100644 100644 ed628ac2 9db69d61 M glibc-aarch64-workaround-nzcv-clobber-in-tlsdesc.patch -:100644 000000 d89498f7 00000000 D glibc-bench-compare.patch -:100644 000000 e0aaded2 00000000 D glibc-revert-arena-threshold-fix.patch -:100644 100644 ac656b52 abcb8fa1 M glibc-rh1013801.patch -:100644 100644 973beb59 0ef8419e M glibc-rh741105.patch -:100644 000000 a630ec97 00000000 D glibc-rh757881.patch -:100644 000000 76f85bf2 00000000 D glibc-rh841787.patch -:000000 100644 00000000 3db525e9 A glibc-rtkaio-libof.patch -:100644 100644 28c2bd10 247783e2 M glibc.spec -:100644 100644 d1018e9c fcfa4bcf M sources +:100644 100644 ed628ac 9db69d6 M glibc-aarch64-workaround-nzcv-clobber-in-tlsdesc.patch +:100644 000000 d89498f 0000000 D glibc-bench-compare.patch +:100644 000000 e0aaded 0000000 D glibc-revert-arena-threshold-fix.patch +:100644 100644 ac656b5 abcb8fa M glibc-rh1013801.patch +:100644 100644 973beb5 0ef8419 M glibc-rh741105.patch +:100644 000000 a630ec9 0000000 D glibc-rh757881.patch +:100644 000000 76f85bf 0000000 D glibc-rh841787.patch +:000000 100644 0000000 3db525e A glibc-rtkaio-libof.patch +:100644 100644 28c2bd1 247783e M glibc.spec +:100644 100644 d1018e9 fcfa4bc M sources commit 706a051a42f2f432aed38caff0bb2d32f8cbb858 Author: Mike FABIAN @@ -20085,12 +21219,12 @@ CommitDate: Thu Jul 23 15:44:24 2015 +0200 (and pylint warning fixes to the gen_translit_* scripts by Pravin Satpute) -:100644 100644 dd9ecd67 fd42ca7c M glibc-rh1238412-add-translit-rules-for-da-nb-nn-sv-locales.patch -:100644 100644 17abd7da b2de5190 M glibc-rh1238412-addition-and-fixes-for-translit_neutral.patch -:100644 100644 7a5c7d7c d2021a1f M glibc-rh1238412-remove-duplicate-transliterations.patch -:100644 100644 cca01f56 148f4933 M glibc-rh1238412-unicode-8.0.0-update.patch -:100644 100644 5a81eb3e 9d495441 M glibc-rh1238412-update-the-translit-files-to-unicode-7.0.0.patch -:100644 100644 3dc9ac7f 28c2bd10 M glibc.spec +:100644 100644 dd9ecd6 fd42ca7 M glibc-rh1238412-add-translit-rules-for-da-nb-nn-sv-locales.patch +:100644 100644 17abd7d b2de519 M glibc-rh1238412-addition-and-fixes-for-translit_neutral.patch +:100644 100644 7a5c7d7 d2021a1 M glibc-rh1238412-remove-duplicate-transliterations.patch +:100644 100644 cca01f5 148f493 M glibc-rh1238412-unicode-8.0.0-update.patch +:100644 100644 5a81eb3 9d49544 M glibc-rh1238412-update-the-translit-files-to-unicode-7.0.0.patch +:100644 100644 3dc9ac7 28c2bd1 M glibc.spec commit 37b7dfda476b23a027e0cabf6208917455ee9603 Author: Mike FABIAN @@ -20102,7 +21236,7 @@ CommitDate: Wed Jul 15 17:28:17 2015 +0200 And fix the format of the bugzilla reference in the changelog eingry. -:100644 100644 bcfc7d62 3dc9ac7f M glibc.spec +:100644 100644 bcfc7d6 3dc9ac7 M glibc.spec commit dbf5f70dbe86780e8bd5299560d19abe718ea592 Author: Mike FABIAN @@ -20114,12 +21248,12 @@ CommitDate: Tue Jul 14 17:03:49 2015 +0200 - Resolves: rhbz#1238412 -:000000 100644 00000000 dd9ecd67 A glibc-rh1238412-add-translit-rules-for-da-nb-nn-sv-locales.patch -:000000 100644 00000000 17abd7da A glibc-rh1238412-addition-and-fixes-for-translit_neutral.patch -:000000 100644 00000000 7a5c7d7c A glibc-rh1238412-remove-duplicate-transliterations.patch -:000000 100644 00000000 cca01f56 A glibc-rh1238412-unicode-8.0.0-update.patch -:000000 100644 00000000 5a81eb3e A glibc-rh1238412-update-the-translit-files-to-unicode-7.0.0.patch -:100644 100644 b9709e14 bcfc7d62 M glibc.spec +:000000 100644 0000000 dd9ecd6 A glibc-rh1238412-add-translit-rules-for-da-nb-nn-sv-locales.patch +:000000 100644 0000000 17abd7d A glibc-rh1238412-addition-and-fixes-for-translit_neutral.patch +:000000 100644 0000000 7a5c7d7 A glibc-rh1238412-remove-duplicate-transliterations.patch +:000000 100644 0000000 cca01f5 A glibc-rh1238412-unicode-8.0.0-update.patch +:000000 100644 0000000 5a81eb3 A glibc-rh1238412-update-the-translit-files-to-unicode-7.0.0.patch +:100644 100644 b9709e1 bcfc7d6 M glibc.spec commit 33fde86f29ab9820d5e001af4fcd11fece780a9b Author: Carlos O'Donell @@ -20129,11 +21263,11 @@ CommitDate: Tue Jul 7 14:04:07 2015 -0400 Add quilt support to rawhide. -:000000 100644 00000000 a93a583f A README.quilt -:000000 100755 00000000 9f6c94a6 A gen-quilt-series.sh -:100644 100644 0cd13ae4 b9709e14 M glibc.spec -:000000 100755 00000000 e565d198 A quilt-patch.sh -:000000 100644 00000000 dd096536 A series +:000000 100644 0000000 a93a583 A README.quilt +:000000 100755 0000000 9f6c94a A gen-quilt-series.sh +:100644 100644 0cd13ae b9709e1 M glibc.spec +:000000 100755 0000000 e565d19 A quilt-patch.sh +:000000 100644 0000000 dd09653 A series commit 2542c05d119ceb5b73daa719de7dcb184273fdeb Author: Carlos O'Donell @@ -20143,7 +21277,7 @@ CommitDate: Sun Jun 21 20:17:04 2015 -0400 Remove all linuxthreads handling from spec file. -:100644 100644 2f6180b5 0cd13ae4 M glibc.spec +:100644 100644 2f6180b 0cd13ae M glibc.spec commit d599077305f67bb755dea7c85128a9c2adc319fc Author: Jaromir Capik @@ -20153,8 +21287,8 @@ CommitDate: Thu Jun 18 19:50:16 2015 +0200 Adding STAGE1 bootstrap recipes -:000000 100644 00000000 50e57ecc A STAGE1-glibc -:000000 100644 00000000 a8969d3f A STAGE1-glibc-headers +:000000 100644 0000000 50e57ec A STAGE1-glibc +:000000 100644 0000000 a8969d3 A STAGE1-glibc-headers commit e63fda9e1a33b6404096ae81ceaec2bdb1259f66 Author: Carlos O'Donell @@ -20168,7 +21302,7 @@ CommitDate: Wed Jun 17 16:40:15 2015 -0400 and keep generic variant in headers package, thus keeping headers package content and file list identical across multilib rpms. -:100644 100644 4390557f 2f6180b5 M glibc.spec +:100644 100644 4390557 2f6180b M glibc.spec commit 5ee623b90011f8cbfedc47c278b0059966ffb1cc Author: Dennis Gilmore @@ -20178,7 +21312,7 @@ CommitDate: Wed Jun 17 08:26:56 2015 +0000 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild -:100644 100644 14a2569b 4390557f M glibc.spec +:100644 100644 14a2569 4390557 M glibc.spec commit 1c7c72382356644ba3aff8ad161f67e77db10e75 Author: Carlos O'Donell @@ -20188,8 +21322,8 @@ CommitDate: Wed Jun 3 11:45:53 2015 -0400 Remove DTV_SURPLUS increase after limit was removed. -:100644 000000 0b0c3ab6 00000000 D glibc-rh1124987.patch -:100644 100644 9f9d921d 14a2569b M glibc.spec +:100644 000000 0b0c3ab 0000000 D glibc-rh1124987.patch +:100644 100644 9f9d921 14a2569 M glibc.spec commit 8178d6f0a660c31e0b203dd9a32516ea4e3260b2 Author: Siddhesh Poyarekar @@ -20199,8 +21333,8 @@ CommitDate: Sat May 30 09:40:53 2015 +0530 Fix build failure on aarch64 (#1226459) -:100644 100644 bb8e870f 747bf0d7 M glibc-new-condvar.patch -:100644 100644 4876fcea 9f9d921d M glibc.spec +:100644 100644 bb8e870 747bf0d M glibc-new-condvar.patch +:100644 100644 4876fce 9f9d921 M glibc.spec commit a7f6b6e32668a82fbd0df7c9366722f6142c1643 Author: Siddhesh Poyarekar @@ -20210,8 +21344,8 @@ CommitDate: Mon May 18 12:21:44 2015 +0530 Add new condvar implementation -:000000 100644 00000000 bb8e870f A glibc-new-condvar.patch -:100644 100644 0b885f2f 4876fcea M glibc.spec +:000000 100644 0000000 bb8e870 A glibc-new-condvar.patch +:100644 100644 0b885f2 4876fce M glibc.spec commit 7047693f5511ebabc31ba3e26bf792a67ea90101 Author: Siddhesh Poyarekar @@ -20221,10 +21355,10 @@ CommitDate: Mon May 18 12:21:44 2015 +0530 Sync with upstream master -:100644 100644 269f60a4 a982eef4 M glibc-bench-build.patch -:100644 100644 ee1463a2 c4a39f6e M glibc-fedora-localedef.patch -:100644 100644 224722bd 0b885f2f M glibc.spec -:100644 100644 bfaee1f5 d1018e9c M sources +:100644 100644 269f60a a982eef M glibc-bench-build.patch +:100644 100644 ee1463a c4a39f6 M glibc-fedora-localedef.patch +:100644 100644 224722b 0b885f2 M glibc.spec +:100644 100644 bfaee1f d1018e9 M sources commit adaecdb51b9baadf6c3a9641775843bc8c227529 Author: Siddhesh Poyarekar @@ -20234,7 +21368,7 @@ CommitDate: Fri May 8 19:15:05 2015 +0530 bump version -:100644 100644 869fe074 224722bd M glibc.spec +:100644 100644 869fe07 224722b M glibc.spec commit 67b30d7656bfecfd6e4f22762344b249b76a9a85 Author: Siddhesh Poyarekar @@ -20264,11 +21398,11 @@ CommitDate: Fri May 8 11:49:59 2015 +0530 /usr/libexec/glibc-benchtests/glibc-bench-compare -p -:000000 100644 00000000 dfe46bdb A bench.mk -:000000 100644 00000000 269f60a4 A glibc-bench-build.patch -:000000 100755 00000000 84e3abad A glibc-bench-compare -:000000 100644 00000000 d89498f7 A glibc-bench-compare.patch -:100644 100644 dd0b4e67 869fe074 M glibc.spec +:000000 100644 0000000 dfe46bd A bench.mk +:000000 100644 0000000 269f60a A glibc-bench-build.patch +:000000 100755 0000000 84e3aba A glibc-bench-compare +:000000 100644 0000000 d89498f A glibc-bench-compare.patch +:100644 100644 dd0b4e6 869fe07 M glibc.spec commit adbfe47d74ead65110d595e2cc427e5f3bdf36f8 Author: Siddhesh Poyarekar @@ -20278,9 +21412,9 @@ CommitDate: Thu May 7 12:10:16 2015 +0530 Auto-sync with upstream master. -:000000 100644 00000000 e0aaded2 A glibc-revert-arena-threshold-fix.patch -:100644 100644 97eba8a2 dd0b4e67 M glibc.spec -:100644 100644 5e024583 bfaee1f5 M sources +:000000 100644 0000000 e0aaded A glibc-revert-arena-threshold-fix.patch +:100644 100644 97eba8a dd0b4e6 M glibc.spec +:100644 100644 5e02458 bfaee1f M sources commit 943a064b9083f02c9e9e314eabbe1cb773c1c782 Author: Siddhesh Poyarekar @@ -20292,8 +21426,8 @@ CommitDate: Tue Apr 7 21:02:28 2015 +0530 This reverts commit 3d147acd8dcfd7ee6e3f714e5a5c08617d7c997b. -:100644 100644 21d1d527 97eba8a2 M glibc.spec -:100644 100644 f170c751 5e024583 M sources +:100644 100644 21d1d52 97eba8a M glibc.spec +:100644 100644 f170c75 5e02458 M sources commit 3d147acd8dcfd7ee6e3f714e5a5c08617d7c997b Author: Siddhesh Poyarekar @@ -20303,8 +21437,8 @@ CommitDate: Mon Apr 6 16:00:41 2015 +0530 Auto-sync with upstream master. -:100644 100644 898d3e3d 21d1d527 M glibc.spec -:100644 100644 5e024583 f170c751 M sources +:100644 100644 898d3e3 21d1d52 M glibc.spec +:100644 100644 5e02458 f170c75 M sources commit 85b542148e0885ccdb8920e243ec0ffb061e2300 Author: Siddhesh Poyarekar @@ -20314,8 +21448,8 @@ CommitDate: Tue Mar 24 18:04:53 2015 +0530 Auto-sync with upstream master. -:100644 100644 546bfed7 898d3e3d M glibc.spec -:100644 100644 59c066e7 5e024583 M sources +:100644 100644 546bfed 898d3e3 M glibc.spec +:100644 100644 59c066e 5e02458 M sources commit e51327973f070a4ebfb999fbe8633e0e7b1c3c35 Author: Carlos O'Donell @@ -20330,7 +21464,7 @@ CommitDate: Tue Mar 17 01:53:46 2015 -0400 See: https://bugzilla.redhat.com/show_bug.cgi?id=156477#c44 -:100644 100644 1221228b 546bfed7 M glibc.spec +:100644 100644 1221228 546bfed M glibc.spec commit ca47b31b17a31baa144621361a511b5df08c8c8f Author: Siddhesh Poyarekar @@ -20340,8 +21474,8 @@ CommitDate: Thu Mar 12 15:43:36 2015 +0530 Auto-sync with upstream master. -:100644 100644 70952682 1221228b M glibc.spec -:100644 100644 117c38fe 59c066e7 M sources +:100644 100644 7095268 1221228 M glibc.spec +:100644 100644 117c38f 59c066e M sources commit 91764bd9ec690d4b8a886c0a3a104aac12d340d2 Author: Carlos O'Donell @@ -20354,8 +21488,8 @@ CommitDate: Thu Mar 5 16:05:43 2015 -0500 - Support installing only those locales specified by the RPM macro %%_install_langs (#156477). -:100644 100644 187c7e52 a5068767 M build-locale-archive.c -:100644 100644 9a8d6644 70952682 M glibc.spec +:100644 100644 187c7e5 a506876 M build-locale-archive.c +:100644 100644 9a8d664 7095268 M glibc.spec commit 6aa6486e1bd5775d44814ab02439d94e52ee48cd Author: Siddhesh Poyarekar @@ -20365,7 +21499,7 @@ CommitDate: Mon Feb 23 14:22:15 2015 +0530 Fix version number after mass rebuild -:100644 100644 f5aa778c 9a8d6644 M glibc.spec +:100644 100644 f5aa778 9a8d664 M glibc.spec commit 5c979090d812bf2884b152fa5047e912f8086627 Author: Siddhesh Poyarekar @@ -20375,8 +21509,8 @@ CommitDate: Mon Feb 23 14:20:15 2015 +0530 Auto-sync with upstream master. -:100644 100644 8f8216a3 f5aa778c M glibc.spec -:100644 100644 260f87a4 117c38fe M sources +:100644 100644 8f8216a f5aa778 M glibc.spec +:100644 100644 260f87a 117c38f M sources commit 6e81b3fc52aa0959084742d3beb81fa564b3d847 Author: Till Maas @@ -20388,7 +21522,7 @@ CommitDate: Sat Feb 21 22:22:07 2015 +0100 https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code -:100644 100644 f50b2e0c 8f8216a3 M glibc.spec +:100644 100644 f50b2e0 8f8216a M glibc.spec commit e03dd62b87d14da1f855d530728c897cb1dcf3d7 Author: Carlos O'Donell @@ -20398,8 +21532,8 @@ CommitDate: Thu Feb 12 01:36:24 2015 -0500 Fix missing clock_* IFUNCs in librtkaio. -:100644 100644 560380f1 4aff826d M glibc-rtkaio-clock.patch -:100644 100644 f6459378 f50b2e0c M glibc.spec +:100644 100644 560380f 4aff826 M glibc-rtkaio-clock.patch +:100644 100644 f645937 f50b2e0 M glibc.spec commit c6d44c99026f92c39ad61cecd243ba408d5420ba Author: Carlos O'Donell @@ -20409,8 +21543,8 @@ CommitDate: Thu Feb 12 00:29:07 2015 -0500 Auto-sync with upstream master. -:100644 100644 42ed1847 f6459378 M glibc.spec -:100644 100644 50f3d2d7 260f87a4 M sources +:100644 100644 42ed184 f645937 M glibc.spec +:100644 100644 50f3d2d 260f87a M sources commit 85a0930b022ac78abb1d1e3b6f3be6e1b934f56e Author: Carlos O'Donell @@ -20423,9 +21557,9 @@ CommitDate: Thu Feb 12 00:22:30 2015 -0500 - Add back x86 vDSO support. - Fix rtkaio build to reference clock_* functions from libc. -:100644 000000 d16baab1 00000000 D glibc-revert-x86-vdso.patch -:000000 100644 00000000 560380f1 A glibc-rtkaio-clock.patch -:100644 100644 b5392de6 42ed1847 M glibc.spec +:100644 000000 d16baab 0000000 D glibc-revert-x86-vdso.patch +:000000 100644 0000000 560380f A glibc-rtkaio-clock.patch +:100644 100644 b5392de 42ed184 M glibc.spec commit a086cd23991f342c679d5f5e3b4c4b0eb5d79e06 Author: Siddhesh Poyarekar @@ -20435,8 +21569,8 @@ CommitDate: Thu Jan 22 00:22:13 2015 +0530 Revert x86 vdso support patch to get i686 building again -:000000 100644 00000000 d16baab1 A glibc-revert-x86-vdso.patch -:100644 100644 734ef329 b5392de6 M glibc.spec +:000000 100644 0000000 d16baab A glibc-revert-x86-vdso.patch +:100644 100644 734ef32 b5392de M glibc.spec commit c041cd3d0cdcacdc8a01acbfddf1df6f312159f2 Author: Siddhesh Poyarekar @@ -20446,7 +21580,7 @@ CommitDate: Wed Jan 21 22:25:23 2015 +0530 Disable -Werror for a bootstrap build -:100644 100644 51a8ef34 734ef329 M glibc.spec +:100644 100644 51a8ef3 734ef32 M glibc.spec commit 5d3d5d454257b88a1edbe31efe45ffbed0ca4ab6 Author: Siddhesh Poyarekar @@ -20456,9 +21590,9 @@ CommitDate: Wed Jan 21 20:18:21 2015 +0530 Sync with upstream master and disable Werror on s390x -:100644 000000 ea6a1579 00000000 D glibc-s390-tls-get-addr.patch -:100644 100644 da717c6c 51a8ef34 M glibc.spec -:100644 100644 0c841d1b 50f3d2d7 M sources +:100644 000000 ea6a157 0000000 D glibc-s390-tls-get-addr.patch +:100644 100644 da717c6 51a8ef3 M glibc.spec +:100644 100644 0c841d1 50f3d2d M sources commit 20d87dfe741a58194db65fdc4bbe96d4bd533fd8 Author: Peter Robinson @@ -20468,7 +21602,7 @@ CommitDate: Tue Jan 20 09:51:12 2015 +0000 Drop large ancient ChangeLogs (rhbz #1169546) -:100644 100644 2c2c9153 da717c6c M glibc.spec +:100644 100644 2c2c915 da717c6 M glibc.spec commit 2415b86173a44a83d6d3c98699499e4a6afc847f Author: Siddhesh Poyarekar @@ -20482,8 +21616,8 @@ CommitDate: Mon Jan 12 20:20:28 2015 +0530 instead of the mstate itself. This fizes the Werror warning seen on all non-x86 builds. -:100644 100644 f633dc59 a630ec97 M glibc-rh757881.patch -:100644 100644 c3b361a0 2c2c9153 M glibc.spec +:100644 100644 f633dc5 a630ec9 M glibc-rh757881.patch +:100644 100644 c3b361a 2c2c915 M glibc.spec commit 84d34071af098889f54656c76671caa7e66777eb Author: Siddhesh Poyarekar @@ -20493,8 +21627,8 @@ CommitDate: Thu Jan 8 18:51:32 2015 +0530 Define a __tls_get_addr macro to avoid a conflicting declaration -:000000 100644 00000000 ea6a1579 A glibc-s390-tls-get-addr.patch -:100644 100644 e98c3811 c3b361a0 M glibc.spec +:000000 100644 0000000 ea6a157 A glibc-s390-tls-get-addr.patch +:100644 100644 e98c381 c3b361a M glibc.spec commit 80f41525f954637cec8178eec39ba2fa58eea125 Author: Siddhesh Poyarekar @@ -20507,7 +21641,7 @@ CommitDate: Wed Jan 7 21:30:39 2015 +0530 Also sync up release numbers. I seemed to have messed it up in the last commit. -:100644 100644 c57f3e4c e98c3811 M glibc.spec +:100644 100644 c57f3e4 e98c381 M glibc.spec commit 6105e83f8867502af1519979a9fb1a7ab0eccd7a Author: Siddhesh Poyarekar @@ -20520,12 +21654,12 @@ CommitDate: Wed Jan 7 19:03:06 2015 +0530 - Disable -Werror on powerpc and armv7hl. - Temporarily disable valgrind test on ppc64. -:100644 000000 bee505f4 00000000 D glibc-aarch64-fix-strchrnul-clobbering-v15.patch -:100644 000000 bd77bb36 00000000 D glibc-fedora-getrlimit-PLT.patch -:100644 100644 dccace74 dedb8366 M glibc-fedora-uname-getrlimit.patch -:100644 000000 18ffd8f3 00000000 D glibc-rh841318.patch -:100644 100644 8465b40b c57f3e4c M glibc.spec -:100644 100644 6efbfa56 0c841d1b M sources +:100644 000000 bee505f 0000000 D glibc-aarch64-fix-strchrnul-clobbering-v15.patch +:100644 000000 bd77bb3 0000000 D glibc-fedora-getrlimit-PLT.patch +:100644 100644 dccace7 dedb836 M glibc-fedora-uname-getrlimit.patch +:100644 000000 18ffd8f 0000000 D glibc-rh841318.patch +:100644 100644 8465b40 c57f3e4 M glibc.spec +:100644 100644 6efbfa5 0c841d1 M sources commit 8b04964a99e4a022c45559439f7e3ffbbfe5c644 Author: Dan Horák @@ -20535,7 +21669,7 @@ CommitDate: Sun Dec 28 10:32:56 2014 +0100 - valgrind available only on selected arches (missing on s390) -:100644 100644 5cccc7b0 8465b40b M glibc.spec +:100644 100644 5cccc7b 8465b40 M glibc.spec commit fd8c9e71258caa85fbed28f6349ea633d3a9dbb4 Author: Kyle McMartin @@ -20545,9 +21679,9 @@ CommitDate: Wed Dec 10 12:12:56 2014 -0500 aarch64: Drop strchrnul.S revert, apply fix from Richard Earnshaw. -:000000 100644 00000000 bee505f4 A glibc-aarch64-fix-strchrnul-clobbering-v15.patch -:100644 000000 d448de0d 00000000 D glibc-aarch64-strchrnul-revert.patch -:100644 100644 1c1fe406 5cccc7b0 M glibc.spec +:000000 100644 0000000 bee505f A glibc-aarch64-fix-strchrnul-clobbering-v15.patch +:100644 000000 d448de0 0000000 D glibc-aarch64-strchrnul-revert.patch +:100644 100644 1c1fe40 5cccc7b M glibc.spec commit c13214a08b9c95434901983734130570da92776e Author: Carlos O'Donell @@ -20560,7 +21694,7 @@ CommitDate: Fri Dec 5 20:30:44 2014 -0500 - Fix permission of debuginfo source files to allow multiarch debuginfo packages to be installed and upgraded. -:100644 100644 5308ba67 1c1fe406 M glibc.spec +:100644 100644 5308ba6 1c1fe40 M glibc.spec commit 7728cb84c0ac22d2426459e286b159a8b2819d29 Author: Siddhesh Poyarekar @@ -20570,7 +21704,7 @@ CommitDate: Fri Dec 5 18:44:50 2014 +0530 Add %%lang tags to language locale files in /usr/share/i18n/locale (#1169044) -:100644 100644 3dc490f1 5308ba67 M glibc.spec +:100644 100644 3dc490f 5308ba6 M glibc.spec commit 0cda7232ae35a9023308b8dbceaca31e55125287 Author: Siddhesh Poyarekar @@ -20580,7 +21714,7 @@ CommitDate: Fri Dec 5 16:39:35 2014 +0530 Use the %%find_lang macro to get the *.mo files (#1167445) -:100644 100644 22c0d581 3dc490f1 M glibc.spec +:100644 100644 22c0d58 3dc490f M glibc.spec commit e7f91b5b180bbd8734f3b4a3cd2bd5d81b9b4e5c Author: Siddhesh Poyarekar @@ -20590,7 +21724,7 @@ CommitDate: Fri Dec 5 13:15:57 2014 +0530 Fix changelog comment -:100644 100644 bfde0909 22c0d581 M glibc.spec +:100644 100644 bfde090 22c0d58 M glibc.spec commit aeaedc4de59eda9224eaa0698405f68dab9d7a00 Author: Siddhesh Poyarekar @@ -20600,7 +21734,7 @@ CommitDate: Fri Dec 5 12:23:29 2014 +0530 Don't own any directories in /usr/share/locale -:100644 100644 9590f91f bfde0909 M glibc.spec +:100644 100644 9590f91 bfde090 M glibc.spec commit a9ff8be89f79747deff941d3d681866aaddfca5f Author: Siddhesh Poyarekar @@ -20613,7 +21747,7 @@ CommitDate: Fri Dec 5 12:21:56 2014 +0530 glibc no longer installs files in /usr/lib/locale, so we don't need to have hacks in place for it anymore. -:100644 100644 5bf7e68d 9590f91f M glibc.spec +:100644 100644 5bf7e68 9590f91 M glibc.spec commit eb16415e7a221a59e23165b3548398f69ce34e8f Author: Kyle McMartin @@ -20623,8 +21757,8 @@ CommitDate: Wed Dec 3 13:12:37 2014 -0500 aarch64: revert optimized strchrnul.S implementation (rhbz#1167501) -:000000 100644 00000000 d448de0d A glibc-aarch64-strchrnul-revert.patch -:100644 100644 dcfe3555 5bf7e68d M glibc.spec +:000000 100644 0000000 d448de0 A glibc-aarch64-strchrnul-revert.patch +:100644 100644 dcfe355 5bf7e68 M glibc.spec commit 66b39fa43387216b1c3549870ae976b5e72da5f0 Author: Carlos O'Donell @@ -20634,8 +21768,8 @@ CommitDate: Fri Nov 28 21:32:05 2014 -0500 Auto-sync with upstream master. -:100644 100644 e5f761d6 dcfe3555 M glibc.spec -:100644 100644 143d992a 6efbfa56 M sources +:100644 100644 e5f761d dcfe355 M glibc.spec +:100644 100644 143d992 6efbfa5 M sources commit ce126e12dbd8e6eed3265087b4fa6d4a30072823 Author: Carlos O'Donell @@ -20645,9 +21779,9 @@ CommitDate: Mon Nov 24 09:58:08 2014 -0500 Sync with upstream master. -:100644 100644 443942a5 945a9551 M glibc-fedora-__libc_multiple_libcs.patch -:100644 100644 e6f037bf e5f761d6 M glibc.spec -:100644 100644 8c51e6dd 143d992a M sources +:100644 100644 443942a 945a955 M glibc-fedora-__libc_multiple_libcs.patch +:100644 100644 e6f037b e5f761d M glibc.spec +:100644 100644 8c51e6d 143d992 M sources commit 5c361d9107647217248c1fd16897402ba2946404 Author: Siddhesh Poyarekar @@ -20657,10 +21791,10 @@ CommitDate: Wed Nov 5 16:06:52 2014 +0530 Sync with upstream master -:100644 100644 50d73435 443942a5 M glibc-fedora-__libc_multiple_libcs.patch -:100644 100644 00107335 0f20ca89 M glibc-fedora-elf-ORIGIN.patch -:100644 100644 f0720ce4 e6f037bf M glibc.spec -:100644 100644 3924a938 8c51e6dd M sources +:100644 100644 50d7343 443942a M glibc-fedora-__libc_multiple_libcs.patch +:100644 100644 0010733 0f20ca8 M glibc-fedora-elf-ORIGIN.patch +:100644 100644 f0720ce e6f037b M glibc.spec +:100644 100644 3924a93 8c51e6d M sources commit b80bba4ee908474935eec6f10aa74bb6b4b380c9 Author: Siddhesh Poyarekar @@ -20670,8 +21804,8 @@ CommitDate: Wed Nov 5 15:57:23 2014 +0530 Make getconf return only /usr/bin (#1138835) -:000000 100644 00000000 982f8ff4 A glibc-cs-path.patch -:100644 100644 32eec5ce f0720ce4 M glibc.spec +:000000 100644 0000000 982f8ff A glibc-cs-path.patch +:100644 100644 32eec5c f0720ce M glibc.spec commit 88659d3bb86ec86f600207371168ff0cca611bd0 Author: Arjun Shankar @@ -20681,8 +21815,8 @@ CommitDate: Tue Nov 4 20:31:37 2014 +0100 Add patch to modify several tests to use test-skeleton.c. -:000000 100644 00000000 ce21e8d9 A glibc-fedora-use-test-skeleton.patch -:100644 100644 e6f5f007 32eec5ce M glibc.spec +:000000 100644 0000000 ce21e8d A glibc-fedora-use-test-skeleton.patch +:100644 100644 e6f5f00 32eec5c M glibc.spec commit 484979ccff8bba018e6049a4d822ad7f848f596b Author: Siddhesh Poyarekar @@ -20692,7 +21826,7 @@ CommitDate: Tue Sep 30 22:14:54 2014 +0530 Enable Systemtap SDT probes for all architectures (#985109) -:100644 100644 77386897 e6f5f007 M glibc.spec +:100644 100644 7738689 e6f5f00 M glibc.spec commit a391f0c0e6e35db7403b7647a5b392104ef578a6 Author: Siddhesh Poyarekar @@ -20702,9 +21836,9 @@ CommitDate: Tue Sep 30 22:14:50 2014 +0530 Sync with upstream master -:100644 000000 e284fcd3 00000000 D glibc-stdlib-tst-strtod-round.c-Fix-build-on-ARM.patch -:100644 100644 3e96f53b 77386897 M glibc.spec -:100644 100644 9c882674 3924a938 M sources +:100644 000000 e284fcd 0000000 D glibc-stdlib-tst-strtod-round.c-Fix-build-on-ARM.patch +:100644 100644 3e96f53 7738689 M glibc.spec +:100644 100644 9c88267 3924a93 M sources commit 49b191c05b96464cff9af7090953554edfd187eb Author: Siddhesh Poyarekar @@ -20714,7 +21848,7 @@ CommitDate: Tue Sep 30 22:04:19 2014 +0530 Enable lock elision again on s390 and s390x -:100644 100644 b5ea3ffb 3e96f53b M glibc.spec +:100644 100644 b5ea3ff 3e96f53 M glibc.spec commit f8be71ca8cdd77386cad8fe098dddf4204914be3 Author: Carlos O'Donell @@ -20729,8 +21863,8 @@ CommitDate: Tue Sep 30 22:02:35 2014 +0530 Conflicts: glibc.spec -:000000 100644 00000000 b782da06 A glibc-disable-rwlock-elision.patch -:100644 100644 eadca57d b5ea3ffb M glibc.spec +:000000 100644 0000000 b782da0 A glibc-disable-rwlock-elision.patch +:100644 100644 eadca57 b5ea3ff M glibc.spec commit f226d7de05c8730494990bbd21dd5e03dd7d0053 Author: Carlos O'Donell @@ -20740,7 +21874,7 @@ CommitDate: Fri Sep 26 23:51:03 2014 -0400 Add missing patch to git. -:000000 100644 00000000 e284fcd3 A glibc-stdlib-tst-strtod-round.c-Fix-build-on-ARM.patch +:000000 100644 0000000 e284fcd A glibc-stdlib-tst-strtod-round.c-Fix-build-on-ARM.patch commit f515946248e8990eeaad919b4b27c8d26b65eedb Author: Carlos O'Donell @@ -20754,7 +21888,7 @@ CommitDate: Fri Sep 26 23:44:17 2014 -0400 updates can be done in early bootup (#1146967). - Fix building test tst-strtod-round for ARM. -:100644 100644 67694042 eadca57d M glibc.spec +:100644 100644 6769404 eadca57 M glibc.spec commit a5b5c3d586b42d913e6e90ebd1e968f5dede535a Author: Siddhesh Poyarekar @@ -20764,8 +21898,8 @@ CommitDate: Tue Sep 23 22:58:21 2014 +0530 Sync with upstream master -:100644 100644 303ca20a 67694042 M glibc.spec -:100644 100644 7d3ae4ed 9c882674 M sources +:100644 100644 303ca20 6769404 M glibc.spec +:100644 100644 7d3ae4e 9c88267 M sources commit e9a7f4cb5d0901b2daefe390adac7a61b069d630 Author: Siddhesh Poyarekar @@ -20775,7 +21909,7 @@ CommitDate: Tue Sep 23 16:58:34 2014 +0530 Run valgrind with the built glibc to ensure that it does not break -:100644 100644 75801b06 303ca20a M glibc.spec +:100644 100644 75801b0 303ca20 M glibc.spec commit 7007495c882bf26e31c05a9bca167f687660bd03 Author: Siddhesh Poyarekar @@ -20785,7 +21919,7 @@ CommitDate: Tue Sep 23 16:56:45 2014 +0530 Don't own common debuginfo directories. -:100644 100644 a0fec8ed 75801b06 M glibc.spec +:100644 100644 a0fec8e 75801b0 M glibc.spec commit fcca21dd3e239627d72dca42a32a197dd433f546 Author: Siddhesh Poyarekar @@ -20795,7 +21929,7 @@ CommitDate: Thu Sep 18 13:16:17 2014 +0530 Move mips entry for shlib-versions to sysdeps -:100644 100644 2ef4a0bc f5940d6c M glibc-rtkaio.patch +:100644 100644 2ef4a0b f5940d6 M glibc-rtkaio.patch commit d99b4a9d5a8a3f7c3328c85fc2b8c2c4cec26804 Author: Siddhesh Poyarekar @@ -20805,7 +21939,7 @@ CommitDate: Wed Sep 17 22:39:37 2014 +0530 Fix up shlib-versions for rtkaio -:100644 100644 eadbbbf5 2ef4a0bc M glibc-rtkaio.patch +:100644 100644 eadbbbf 2ef4a0b M glibc-rtkaio.patch commit a9e37d2889dacce2fcb3568eb9a093f7db518bf0 Author: Siddhesh Poyarekar @@ -20815,7 +21949,7 @@ CommitDate: Wed Sep 17 22:17:15 2014 +0530 Actually upload sources -:100644 100644 265211a0 7d3ae4ed M sources +:100644 100644 265211a 7d3ae4e M sources commit 7ba0787710cf31d91dcdf3e43a19ca7af802b72f Author: Siddhesh Poyarekar @@ -20831,9 +21965,9 @@ CommitDate: Tue Sep 16 22:34:22 2014 +0530 proper documented analysis if this actually results in any kind of failure. -:100644 000000 d3428a72 00000000 D glibc-extern-always-inline.patch -:100644 000000 5ae6e3aa 00000000 D glibc-fedora-elf-rh737223.patch -:100644 100644 c3dff864 a0fec8ed M glibc.spec +:100644 000000 d3428a7 0000000 D glibc-extern-always-inline.patch +:100644 000000 5ae6e3a 0000000 D glibc-fedora-elf-rh737223.patch +:100644 100644 c3dff86 a0fec8e M glibc.spec commit afa87a3382ea6ede3cec3152ba0df3b6e87ed12a Author: Siddhesh Poyarekar @@ -20856,7 +21990,7 @@ CommitDate: Mon Sep 8 16:22:40 2014 +0530 system libc.so.6, so the change is now reverted with a fixed up static link that links against the build static libc.a. -:100644 100644 d25aa22e c3dff864 M glibc.spec +:100644 100644 d25aa22 c3dff86 M glibc.spec commit 680bff1439d4080edf1bea2375187e0e81be0832 Author: Siddhesh Poyarekar @@ -20866,10 +22000,10 @@ CommitDate: Mon Sep 8 12:32:01 2014 +0530 Sync with upstream master -:100644 000000 12b99499 00000000 D glibc-rh1119128.patch -:100644 000000 648c5275 00000000 D glibc-rh1133134-i386-tlsinit.patch -:100644 100644 74b022cd d25aa22e M glibc.spec -:100644 100644 f0a7ec79 265211a0 M sources +:100644 000000 12b9949 0000000 D glibc-rh1119128.patch +:100644 000000 648c527 0000000 D glibc-rh1133134-i386-tlsinit.patch +:100644 100644 74b022c d25aa22 M glibc.spec +:100644 100644 f0a7ec7 265211a M sources commit 7448524498f0ef3719f85462629403cbd0bbed33 Author: Carlos O'Donell @@ -20883,9 +22017,9 @@ CommitDate: Sat Sep 6 14:15:15 2014 -0400 - Run glibc tests in %%check section of RPM spec file. - Do not run tests with `-k` and fail if any test fails to build. -:000000 100644 00000000 f35a49d5 A ChangeLog.old -:000000 100644 00000000 0b0c3ab6 A glibc-rh1124987.patch -:100644 100644 7f6e6fb4 74b022cd M glibc.spec +:000000 100644 0000000 f35a49d A ChangeLog.old +:000000 100644 0000000 0b0c3ab A glibc-rh1124987.patch +:100644 100644 7f6e6fb 74b022c M glibc.spec commit f64bffe28e43b2b7c598d46100153a5a4113277e Author: Siddhesh Poyarekar @@ -20898,10 +22032,10 @@ CommitDate: Tue Aug 26 14:11:00 2014 +0530 - Use INTERNAL_SYSCALL in TLS_INIT_TP (#1133134). - Remove gconv loadable module transliteration support (#1119128). -:000000 100644 00000000 12b99499 A glibc-rh1119128.patch -:000000 100644 00000000 648c5275 A glibc-rh1133134-i386-tlsinit.patch -:100644 100644 68aed24a 7f6e6fb4 M glibc.spec -:100644 100644 9968a006 f0a7ec79 M sources +:000000 100644 0000000 12b9949 A glibc-rh1119128.patch +:000000 100644 0000000 648c527 A glibc-rh1133134-i386-tlsinit.patch +:100644 100644 68aed24 7f6e6fb M glibc.spec +:100644 100644 9968a00 f0a7ec7 M sources commit 67767852ab9d870288f1e171d43e9b6a45da5fc6 Author: Dennis Gilmore @@ -20911,8 +22045,8 @@ CommitDate: Fri Aug 22 14:13:29 2014 -0500 add back sss to nsswitch.conf we have added workarounds in the tools -:100644 100644 d7fe02f6 68aed24a M glibc.spec -:100644 100644 7a116ec4 2f6c84e5 M nsswitch.conf +:100644 100644 d7fe02f 68aed24 M glibc.spec +:100644 100644 7a116ec 2f6c84e M nsswitch.conf commit d0b1601820112eab182869dc582b1025c8e4e161 Author: Kevin Fenzi @@ -20922,7 +22056,7 @@ CommitDate: Thu Aug 21 11:48:00 2014 -0600 Rebuild for rpm bug 1131960 -:100644 100644 62e83cfc d7fe02f6 M glibc.spec +:100644 100644 62e83cf d7fe02f M glibc.spec commit 87e4cc74d76053ea9ae152dd5380a2a11839e75c Author: Dennis Gilmore @@ -20932,8 +22066,8 @@ CommitDate: Tue Aug 19 10:56:39 2014 -0500 remove sss from default nsswitch.conf it causes issues with live image composing -:100644 100644 3b822b66 62e83cfc M glibc.spec -:100644 100644 2f6c84e5 7a116ec4 M nsswitch.conf +:100644 100644 3b822b6 62e83cf M glibc.spec +:100644 100644 2f6c84e 7a116ec M nsswitch.conf commit 75bedb0a34f68912eafebeeac2b16c40026753f1 Author: Siddhesh Poyarekar @@ -20947,9 +22081,9 @@ CommitDate: Thu Aug 14 00:07:02 2014 +0530 - Revert to only defining __extern_always_inline for g++-4.3+. - Fix build failure in compat-gcc-32 (#186410). -:000000 100644 00000000 d3428a72 A glibc-extern-always-inline.patch -:100644 100644 2a79dda2 3b822b66 M glibc.spec -:100644 100644 e3545df2 9968a006 M sources +:000000 100644 0000000 d3428a7 A glibc-extern-always-inline.patch +:100644 100644 2a79dda 3b822b6 M glibc.spec +:100644 100644 e3545df 9968a00 M sources commit d579c1af5bae7dd255b3f3f725fabe1dc7d2e061 Author: Siddhesh Poyarekar @@ -20959,8 +22093,8 @@ CommitDate: Tue Jul 29 00:25:03 2014 +0530 Auto-sync with upstream master -:100644 100644 76a92ebc 2a79dda2 M glibc.spec -:100644 100644 c7a88eca e3545df2 M sources +:100644 100644 76a92eb 2a79dda M glibc.spec +:100644 100644 c7a88ec e3545df M sources commit 3cb7ba0de8b322ebaec22bce83db5f32481f05f2 Author: Siddhesh Poyarekar @@ -20970,7 +22104,7 @@ CommitDate: Wed Jul 23 14:04:08 2014 +0530 Today is Wednesday, not Thursday -:100644 100644 4cfdedf2 76a92ebc M glibc.spec +:100644 100644 4cfdedf 76a92eb M glibc.spec commit 2ca89eabf6c5781e601e1067edb80e9361ba9c7e Author: Siddhesh Poyarekar @@ -20983,8 +22117,8 @@ CommitDate: Wed Jul 23 14:02:10 2014 +0530 Fix up rawhide till we can figure out what the problem is with this build. -:100644 100644 f8f9def1 4cfdedf2 M glibc.spec -:100644 100644 8b61590d c7a88eca M sources +:100644 100644 f8f9def 4cfdedf M glibc.spec +:100644 100644 8b61590 c7a88ec M sources commit c54d242628400ea5e18f26adbab26f9cb85bfb6e Author: Siddhesh Poyarekar @@ -20994,8 +22128,8 @@ CommitDate: Tue Jul 15 22:13:48 2014 +0530 Auto-sync with upstream master. -:100644 100644 f226fc0b f8f9def1 M glibc.spec -:100644 100644 c7a88eca 8b61590d M sources +:100644 100644 f226fc0 f8f9def M glibc.spec +:100644 100644 c7a88ec 8b61590 M sources commit e653c3c00e8eaa7d428b84cadff7e2520ed8710e Author: Tom Callaway @@ -21005,7 +22139,7 @@ CommitDate: Sat Jul 12 11:16:06 2014 -0400 fix license handling -:100644 100644 b61731af f226fc0b M glibc.spec +:100644 100644 b61731a f226fc0 M glibc.spec commit dc2e7c6d3139fb275642729e623a62894592e095 Author: Siddhesh Poyarekar @@ -21015,8 +22149,8 @@ CommitDate: Mon Jul 7 22:35:01 2014 +0530 Auto-sync with upstream master. -:100644 100644 f3a36ca3 b61731af M glibc.spec -:100644 100644 4f95dd7d c7a88eca M sources +:100644 100644 f3a36ca b61731a M glibc.spec +:100644 100644 4f95dd7 c7a88ec M sources commit 1779efa74a92f334e834a451144ecb22b43c6c3d Author: Siddhesh Poyarekar @@ -21026,10 +22160,10 @@ CommitDate: Sat Jul 5 00:00:22 2014 +0530 Sync with upstream roland/nptl branch -:100644 100644 7e9b7ab0 0a808ec7 M glibc-fedora-ppc-unwind.patch -:100644 000000 b81f853b 00000000 D glibc-rtkaio-testcase.patch -:100644 100644 65f70ba0 f3a36ca3 M glibc.spec -:100644 100644 41bbe353 4f95dd7d M sources +:100644 100644 7e9b7ab 0a808ec M glibc-fedora-ppc-unwind.patch +:100644 000000 b81f853 0000000 D glibc-rtkaio-testcase.patch +:100644 100644 65f70ba f3a36ca M glibc.spec +:100644 100644 41bbe35 4f95dd7 M sources commit 91f7360fcddd45a0f3bce3c0f9bf0744db2d6b89 Author: Siddhesh Poyarekar @@ -21039,7 +22173,7 @@ CommitDate: Fri Jul 4 22:26:53 2014 +0530 Separate failed test outputs using a line -:100644 100644 cd05c461 65f70ba0 M glibc.spec +:100644 100644 cd05c46 65f70ba M glibc.spec commit dc6586efdd8c2013fbcd4747c74d344c42d0eaf9 Author: Siddhesh Poyarekar @@ -21053,7 +22187,7 @@ CommitDate: Fri Jul 4 22:26:50 2014 +0530 built-program-cmd also has environment variables, which breaks the test. -:100644 100644 c7d7163b eadbbbf5 M glibc-rtkaio.patch +:100644 100644 c7d7163 eadbbbf M glibc-rtkaio.patch commit 8c5b9331ed7a7d3774c3ace11e5d6402f42f9461 Author: Siddhesh Poyarekar @@ -21063,8 +22197,8 @@ CommitDate: Thu Jul 3 22:34:28 2014 +0530 Link tst-timer to librt.so only if it is in the rt subdir -:000000 100644 00000000 b81f853b A glibc-rtkaio-testcase.patch -:100644 100644 762e2920 cd05c461 M glibc.spec +:000000 100644 0000000 b81f853 A glibc-rtkaio-testcase.patch +:100644 100644 762e292 cd05c46 M glibc.spec commit c1d88db4f5f0ff3807ad728f45858b30234caace Author: Siddhesh Poyarekar @@ -21074,7 +22208,7 @@ CommitDate: Thu Jul 3 22:18:36 2014 +0530 Get actually failed tests from tests.sum -:100644 100644 8c798520 762e2920 M glibc.spec +:100644 100644 8c79852 762e292 M glibc.spec commit 2a7ce8ad673c5fa4fc1b5af0b9bfc646e5fb1827 Author: Siddhesh Poyarekar @@ -21089,7 +22223,7 @@ CommitDate: Thu Jul 3 22:16:11 2014 +0530 architectures, but for now add a target so that the test does not fail and the test run completes to give us a tests.sum. -:100644 100644 74e1679c c7d7163b M glibc-rtkaio.patch +:100644 100644 74e1679 c7d7163 M glibc-rtkaio.patch commit 92e8c5c41800c30b9b7e1ccad5136c72978a2fe6 Author: Siddhesh Poyarekar @@ -21102,7 +22236,7 @@ CommitDate: Thu Jul 3 21:28:40 2014 +0530 All other uses include nptl/pthreadP.h, so go that way instead of the extra -I flag. -:100644 100644 e6739a42 74e1679c M glibc-rtkaio.patch +:100644 100644 e6739a4 74e1679 M glibc-rtkaio.patch commit 621363ca12b851175895e8cf1ea1662546f4586f Author: Siddhesh Poyarekar @@ -21112,7 +22246,7 @@ CommitDate: Thu Jul 3 11:47:39 2014 +0530 Add nptl to list of directories to include for rtkaio -:100644 100644 033d8b7d e6739a42 M glibc-rtkaio.patch +:100644 100644 033d8b7 e6739a4 M glibc-rtkaio.patch commit c96b7f7453ddbd0a58eb4ba8a61b5e24ed40e533 Author: Siddhesh Poyarekar @@ -21122,7 +22256,7 @@ CommitDate: Thu Jul 3 11:13:32 2014 +0530 Actually remove nptl as addon -:100644 100644 0e9d5989 8c798520 M glibc.spec +:100644 100644 0e9d598 8c79852 M glibc.spec commit 1ea305b6fad82f7c11c9c5817deb3a015d55a802 Author: Siddhesh Poyarekar @@ -21135,10 +22269,10 @@ CommitDate: Thu Jul 3 11:04:10 2014 +0530 Patches on this branch include nptl as a part of glibc instead of being an addon. -:100644 100644 def60e9d dccace74 M glibc-fedora-uname-getrlimit.patch -:100644 100644 532589cd ac656b52 M glibc-rh1013801.patch -:100644 100644 85ad4aca 0e9d5989 M glibc.spec -:100644 100644 fd3c5687 41bbe353 M sources +:100644 100644 def60e9 dccace7 M glibc-fedora-uname-getrlimit.patch +:100644 100644 532589c ac656b5 M glibc-rh1013801.patch +:100644 100644 85ad4ac 0e9d598 M glibc.spec +:100644 100644 fd3c568 41bbe35 M sources commit 191c4db426ab6a05f484af1532434493c724d10f Author: Siddhesh Poyarekar @@ -21148,9 +22282,9 @@ CommitDate: Wed Jul 2 16:15:02 2014 +0530 Sync with upstream master -:100644 000000 e9f80854 00000000 D glibc-scalbn-i386-abi.patch -:100644 100644 af133a7e 85ad4aca M glibc.spec -:100644 100644 9ef270fd fd3c5687 M sources +:100644 000000 e9f8085 0000000 D glibc-scalbn-i386-abi.patch +:100644 100644 af133a7 85ad4ac M glibc.spec +:100644 100644 9ef270f fd3c568 M sources commit 9eb38c10e7fcc1b01cf0da2df16930da777683a0 Author: Siddhesh Poyarekar @@ -21160,10 +22294,10 @@ CommitDate: Tue Jun 24 17:41:51 2014 +0530 Sync with upstream master -:100644 100644 5960ca24 9334f199 M glibc-fedora-streams-rh436349.patch -:000000 100644 00000000 e9f80854 A glibc-scalbn-i386-abi.patch -:100644 100644 b4d39eb3 af133a7e M glibc.spec -:100644 100644 e1b9000a 9ef270fd M sources +:100644 100644 5960ca2 9334f19 M glibc-fedora-streams-rh436349.patch +:000000 100644 0000000 e9f8085 A glibc-scalbn-i386-abi.patch +:100644 100644 b4d39eb af133a7 M glibc.spec +:100644 100644 e1b9000 9ef270f M sources commit b66a1357266a43174bd1ed42a902875f86cebb49 Author: Kyle McMartin @@ -21177,8 +22311,8 @@ CommitDate: Fri Jun 20 11:49:56 2014 -0400 descriptor sequence (GCC PR61545.) Committing a (temporary) fix here allows us to avoid rebuilding the world with gcc 4.9.0-11.fc21. -:000000 100644 00000000 ed628ac2 A glibc-aarch64-workaround-nzcv-clobber-in-tlsdesc.patch -:100644 100644 0d89c72c b4d39eb3 M glibc.spec +:000000 100644 0000000 ed628ac A glibc-aarch64-workaround-nzcv-clobber-in-tlsdesc.patch +:100644 100644 0d89c72 b4d39eb M glibc.spec commit 0c40cdae5288f9cf0daee1875a273bd8858a2672 Author: Kyle McMartin @@ -21190,7 +22324,7 @@ CommitDate: Mon Jun 16 15:30:34 2014 -0400 No point in building this, but include it in the next rebase build. -:100644 100644 1b1bb9c7 0d89c72c M glibc.spec +:100644 100644 1b1bb9c 0d89c72 M glibc.spec commit a0c2da6ecd0a27ccdc900f125d25886a37550f36 Author: Kyle McMartin @@ -21200,8 +22334,8 @@ CommitDate: Mon Jun 16 13:45:03 2014 -0400 Auto-sync with upstream master. -:100644 100644 6975adfe 1b1bb9c7 M glibc.spec -:100644 100644 20496000 e1b9000a M sources +:100644 100644 6975adf 1b1bb9c M glibc.spec +:100644 100644 2049600 e1b9000 M sources commit 8f0eca557fa376ee80a49349c240e36fa98b5989 Author: Siddhesh Poyarekar @@ -21211,8 +22345,8 @@ CommitDate: Thu Jun 12 12:22:16 2014 +0530 Auto-sync with upstream master. -:100644 100644 05d67ee9 6975adfe M glibc.spec -:100644 100644 12eefa0a 20496000 M sources +:100644 100644 05d67ee 6975adf M glibc.spec +:100644 100644 12eefa0 2049600 M sources commit 19b41eb7aaac76e5365d580cde79fe1d9e108852 Author: Dennis Gilmore @@ -21222,7 +22356,7 @@ CommitDate: Sat Jun 7 11:13:53 2014 -0500 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild -:100644 100644 748d6773 05d67ee9 M glibc.spec +:100644 100644 748d677 05d67ee M glibc.spec commit 9d331e9d989552255d68c3638ede05575aff7f0b Author: Siddhesh Poyarekar @@ -21232,9 +22366,9 @@ CommitDate: Tue Jun 3 15:08:22 2014 +0530 Sync with upstream master -:100644 000000 dac6789a 00000000 D glibc-rh1078355.patch -:100644 100644 8dcfc618 748d6773 M glibc.spec -:100644 100644 d724d91e 12eefa0a M sources +:100644 000000 dac6789 0000000 D glibc-rh1078355.patch +:100644 100644 8dcfc61 748d677 M glibc.spec +:100644 100644 d724d91 12eefa0 M sources commit 8da75f6fa433d0d50b2315960a7b03973577d2e5 Author: Siddhesh Poyarekar @@ -21260,9 +22394,9 @@ CommitDate: Mon May 26 15:50:48 2014 +0530 consistency with $(csu-objpfx)), also changing direct uses of $(common-objpfx)elf/ to use $(elf-objpfx). -:100644 100644 c4ae52a1 b1617393 M glibc-rh731833-rtkaio.patch -:100644 100644 d7f3d6e4 033d8b7d M glibc-rtkaio.patch -:100644 100644 51c69d02 8dcfc618 M glibc.spec +:100644 100644 c4ae52a b161739 M glibc-rh731833-rtkaio.patch +:100644 100644 d7f3d6e 033d8b7 M glibc-rtkaio.patch +:100644 100644 51c69d0 8dcfc61 M glibc.spec commit 8710f4aaa692eee3927558be1909ac76ea0a4581 Author: Siddhesh Poyarekar @@ -21272,11 +22406,11 @@ CommitDate: Mon May 26 13:25:00 2014 +0530 Sync with upstream master -:100644 000000 a4fb6232 00000000 D glibc-aarch64-fix-handling-of-nocancel-syscall-failures.patch -:100644 100644 996f3782 a05d9052 M glibc-aarch64-tls-fixes.patch -:100644 100644 350c3504 1a794772 M glibc-fedora-nptl-linklibc.patch -:100644 100644 8052aaad 51c69d02 M glibc.spec -:100644 100644 d187d349 d724d91e M sources +:100644 000000 a4fb623 0000000 D glibc-aarch64-fix-handling-of-nocancel-syscall-failures.patch +:100644 100644 996f378 a05d905 M glibc-aarch64-tls-fixes.patch +:100644 100644 350c350 1a79477 M glibc-fedora-nptl-linklibc.patch +:100644 100644 8052aaa 51c69d0 M glibc.spec +:100644 100644 d187d34 d724d91 M sources commit b39b864460e0356ad144c9b8e81a471fcaa41a02 Author: Kyle McMartin @@ -21286,8 +22420,8 @@ CommitDate: Wed May 21 22:06:50 2014 -0400 Backport some upstream-wards patches to fix TLS issues on AArch64. -:000000 100644 00000000 996f3782 A glibc-aarch64-tls-fixes.patch -:100644 100644 a1a5e1b1 8052aaad M glibc.spec +:000000 100644 0000000 996f378 A glibc-aarch64-tls-fixes.patch +:100644 100644 a1a5e1b 8052aaa M glibc.spec commit abfaca544ca62f32897d7b99c488055e56fdcbff Author: Kyle McMartin @@ -21297,8 +22431,8 @@ CommitDate: Wed May 21 15:34:20 2014 -0400 AArch64: Fix handling of nocancel syscall failures (#1098327) -:000000 100644 00000000 a4fb6232 A glibc-aarch64-fix-handling-of-nocancel-syscall-failures.patch -:100644 100644 39b49828 a1a5e1b1 M glibc.spec +:000000 100644 0000000 a4fb623 A glibc-aarch64-fix-handling-of-nocancel-syscall-failures.patch +:100644 100644 39b4982 a1a5e1b M glibc.spec commit 25cc20651e5b52b0b25850af891d1bedfad49134 Author: Siddhesh Poyarekar @@ -21311,9 +22445,9 @@ CommitDate: Thu May 15 12:26:54 2014 +0530 Fix up glibc-fedora-uname-getrlimit.patch to apply on top of recent nptl code shuffle. -:100644 100644 86383d4c def60e9d M glibc-fedora-uname-getrlimit.patch -:100644 100644 eea9e766 39b49828 M glibc.spec -:100644 100644 ba0b85d4 d187d349 M sources +:100644 100644 86383d4 def60e9 M glibc-fedora-uname-getrlimit.patch +:100644 100644 eea9e76 39b4982 M glibc.spec +:100644 100644 ba0b85d d187d34 M sources commit 647ffb77fa63e73fb3096ca181a4856c2135d5ae Author: Carlos O'Donell @@ -21330,7 +22464,7 @@ CommitDate: Wed May 14 12:52:50 2014 -0400 Without this fix the new upstream PASS/FAIL support hides the test results from the build logs. -:100644 100644 06e79904 eea9e766 M glibc.spec +:100644 100644 06e7990 eea9e76 M glibc.spec commit cffaeb6932f6faed84f908fc44189c6595eea6bc Author: Carlos O'Donell @@ -21340,7 +22474,7 @@ CommitDate: Wed May 14 03:21:29 2014 -0400 Add initial support for ppc64le. -:100644 100644 fc6e338b 06e79904 M glibc.spec +:100644 100644 fc6e338 06e7990 M glibc.spec commit 543337e9546c8b6aa0eecc875eebdd816491c715 Author: Siddhesh Poyarekar @@ -21353,7 +22487,7 @@ CommitDate: Tue Apr 29 15:15:58 2014 +0530 All architectures inside ports have now been moved to the main directory. -:100644 100644 1bbe15ac fc6e338b M glibc.spec +:100644 100644 1bbe15a fc6e338 M glibc.spec commit f0de90dce8fda44d80f7bed5b1621072f1ac9115 Author: Siddhesh Poyarekar @@ -21363,8 +22497,8 @@ CommitDate: Tue Apr 29 14:58:45 2014 +0530 Auto-sync with upstream master. -:100644 100644 581bc1a3 1bbe15ac M glibc.spec -:100644 100644 efa3a5a8 ba0b85d4 M sources +:100644 100644 581bc1a 1bbe15a M glibc.spec +:100644 100644 efa3a5a ba0b85d M sources commit 4d17ec21202b1bce4f32394f291ca6b3c3e12241 Author: Siddhesh Poyarekar @@ -21374,9 +22508,9 @@ CommitDate: Fri Apr 18 12:14:38 2014 +0530 Sync with upstream master -:100644 000000 ac6b4815 00000000 D glibc-rh1025126.patch -:100644 100644 3495e681 581bc1a3 M glibc.spec -:100644 100644 4e5f97f0 efa3a5a8 M sources +:100644 000000 ac6b481 0000000 D glibc-rh1025126.patch +:100644 100644 3495e68 581bc1a M glibc.spec +:100644 100644 4e5f97f efa3a5a M sources commit c899b490baa3b77b7cc7e25cb17567cb6faa00a8 Author: Siddhesh Poyarekar @@ -21388,9 +22522,9 @@ CommitDate: Thu Apr 10 21:40:30 2014 +0530 Fix up glibc-rh741105.patch so that it continues to apply correctly. -:100644 100644 82520620 973beb59 M glibc-rh741105.patch -:100644 100644 c1b572fc 3495e681 M glibc.spec -:100644 100644 9fd03898 4e5f97f0 M sources +:100644 100644 8252062 973beb5 M glibc-rh741105.patch +:100644 100644 c1b572f 3495e68 M glibc.spec +:100644 100644 9fd0389 4e5f97f M sources commit 3708995e5f263e4dff0b9b20309e3f4ab2b01cf9 Author: Siddhesh Poyarekar @@ -21403,7 +22537,7 @@ CommitDate: Thu Apr 10 17:44:05 2014 +0530 Write the commit log and changelog in the spec file in a manner that reflects the fact that the sync was done by a script. -:100755 100755 4e1a923e 3a792f77 M sync-upstream.sh +:100755 100755 4e1a923 3a792f7 M sync-upstream.sh commit b5ec0026f9c43aa8377a84641f05a6cabfae250d Author: Siddhesh Poyarekar @@ -21413,9 +22547,9 @@ CommitDate: Thu Apr 3 17:08:52 2014 +0530 Sync with upstream master -:100644 100644 ef081879 00107335 M glibc-fedora-elf-ORIGIN.patch -:100644 100644 86668e00 c1b572fc M glibc.spec -:100644 100644 32c79141 9fd03898 M sources +:100644 100644 ef08187 0010733 M glibc-fedora-elf-ORIGIN.patch +:100644 100644 86668e0 c1b572f M glibc.spec +:100644 100644 32c7914 9fd0389 M sources commit e7c5d54c2d3238509a6b26131077a8dc86ed2edc Author: Siddhesh Poyarekar @@ -21425,8 +22559,8 @@ CommitDate: Wed Mar 26 14:20:45 2014 +0530 Sync with upstream master. -:100644 100644 02cb0fbf 86668e00 M glibc.spec -:100644 100644 65d86308 32c79141 M sources +:100644 100644 02cb0fb 86668e0 M glibc.spec +:100644 100644 65d8630 32c7914 M sources commit f6119bbf978c8d72de96d26a42ecbe84785c3528 Author: Siddhesh Poyarekar @@ -21436,7 +22570,7 @@ CommitDate: Wed Mar 19 22:49:13 2014 +0530 Add missing glibc-rh1078355.patch -:000000 100644 00000000 dac6789a A glibc-rh1078355.patch +:000000 100644 0000000 dac6789 A glibc-rh1078355.patch commit b7b25cd2fa4052232d4ccb26bc9982dd2e41dc16 Author: Siddhesh Poyarekar @@ -21449,9 +22583,9 @@ CommitDate: Wed Mar 19 22:18:20 2014 +0530 - Adjusted nscd.service patch - Added fix for #1078355 -:100644 100644 b06c748b 7e4235e2 M glibc-rh1070416.patch -:100644 100644 f25e2617 02cb0fbf M glibc.spec -:100644 100644 81f9d479 65d86308 M sources +:100644 100644 b06c748 7e4235e M glibc-rh1070416.patch +:100644 100644 f25e261 02cb0fb M glibc.spec +:100644 100644 81f9d47 65d8630 M sources commit 5e984e4f24600088829d2902f23325b36ffce9bf Author: Carlos O'Donell @@ -21461,7 +22595,7 @@ CommitDate: Wed Mar 12 18:15:11 2014 -0400 Remove unused patch file. -:100644 000000 74c1e5ac 00000000 D glibc-rh911307.patch +:100644 000000 74c1e5a 0000000 D glibc-rh911307.patch commit 43bff16613ea503cc0feee8f88eb988841083118 Author: Carlos O'Donell @@ -21473,10 +22607,10 @@ CommitDate: Wed Mar 12 18:13:23 2014 -0400 Use cleaner upstream solution for -ftree-loop-distribute-patterns (#911307). -:100644 100644 01bfead6 a00346bd M glibc-nscd-sysconfig.patch -:100644 100644 67dbcb3a b06c748b M glibc-rh1070416.patch -:100644 100644 d8bab3f5 f25e2617 M glibc.spec -:100644 100644 5174fd85 81f9d479 M sources +:100644 100644 01bfead a00346b M glibc-nscd-sysconfig.patch +:100644 100644 67dbcb3 b06c748 M glibc-rh1070416.patch +:100644 100644 d8bab3f f25e261 M glibc.spec +:100644 100644 5174fd8 81f9d47 M sources commit 6b370585326a4b32b14f3f6753ac35ee23e9acb5 Author: Carlos O'Donell @@ -21486,7 +22620,7 @@ CommitDate: Wed Mar 5 16:13:37 2014 -0500 Update comments to match across other branches. -:100644 100644 5478cbfd d8bab3f5 M glibc.spec +:100644 100644 5478cbf d8bab3f M glibc.spec commit 51574b29c6fda9b9e8c0ac1a3168c9c144961684 Author: Siddhesh Poyarekar @@ -21496,9 +22630,9 @@ CommitDate: Tue Mar 4 23:20:27 2014 +0530 Sync with upstream master -:100644 100644 44b9195d 5960ca24 M glibc-fedora-streams-rh436349.patch -:100644 100644 7bc74eb8 5478cbfd M glibc.spec -:100644 100644 dbacb61c 5174fd85 M sources +:100644 100644 44b9195 5960ca2 M glibc-fedora-streams-rh436349.patch +:100644 100644 7bc74eb 5478cbf M glibc.spec +:100644 100644 dbacb61 5174fd8 M sources commit bdbcf83e8290d12c43b8740edd63e7cb7abd38dd Author: Siddhesh Poyarekar @@ -21514,11 +22648,11 @@ CommitDate: Thu Feb 27 00:31:15 2014 +0530 on errors like, say, failing to parse nscd.conf, it should be declared as forking instead. -:000000 100644 00000000 01bfead6 A glibc-nscd-sysconfig.patch -:000000 100644 00000000 67dbcb3a A glibc-rh1070416.patch -:100644 100644 13823c9a 7bc74eb8 M glibc.spec -:100644 000000 744a5c8f 00000000 D nscd.service -:100644 000000 7e512d53 00000000 D nscd.socket +:000000 100644 0000000 01bfead A glibc-nscd-sysconfig.patch +:000000 100644 0000000 67dbcb3 A glibc-rh1070416.patch +:100644 100644 13823c9 7bc74eb M glibc.spec +:100644 000000 744a5c8 0000000 D nscd.service +:100644 000000 7e512d5 0000000 D nscd.socket commit 52f69e7bd59408115a3d3909f8a12561e92bb7a2 Author: Siddhesh Poyarekar @@ -21528,10 +22662,10 @@ CommitDate: Tue Feb 25 15:22:53 2014 +0530 Sync with upstream master and Resolve: #1069559 -:000000 100644 00000000 9c098c25 A glibc-rh1069559-1.patch -:000000 100644 00000000 b74e2f15 A glibc-rh1069559-2.patch -:100644 100644 6636ed95 13823c9a M glibc.spec -:100644 100644 f2ebbfe5 dbacb61c M sources +:000000 100644 0000000 9c098c2 A glibc-rh1069559-1.patch +:000000 100644 0000000 b74e2f1 A glibc-rh1069559-2.patch +:100644 100644 6636ed9 13823c9 M glibc.spec +:100644 100644 f2ebbfe dbacb61 M sources commit eaa1d42819c1d43f27552dfa55accfcc4ac25d54 Author: Carlos O'Donell @@ -21551,8 +22685,8 @@ CommitDate: Mon Feb 24 22:33:35 2014 -0500 VM where it is more likely the stack pages were dirty. It has not been reported on non-VM systems. -:100644 100644 9715afde 187c7e52 M build-locale-archive.c -:100644 100644 e35ccfad 6636ed95 M glibc.spec +:100644 100644 9715afd 187c7e5 M build-locale-archive.c +:100644 100644 e35ccfa 6636ed9 M glibc.spec commit c4fcabb2229ecd5021037cbd517d1efe52c44f35 Author: Siddhesh Poyarekar @@ -21562,7 +22696,7 @@ CommitDate: Tue Feb 18 22:57:10 2014 +0530 Actually upload the new sources -:100644 100644 8ec3f3ec f2ebbfe5 M sources +:100644 100644 8ec3f3e f2ebbfe M sources commit 372014ca281ec31092730293d3f81f9b5982026e Author: Siddhesh Poyarekar @@ -21574,9 +22708,9 @@ CommitDate: Tue Feb 18 22:48:17 2014 +0530 We've sped past 2.19 now. -:100644 100644 8af1f788 b22e4217 M glibc-rh819430.patch -:100644 100644 49de5697 74c1e5ac M glibc-rh911307.patch -:100644 100644 af9f3589 e35ccfad M glibc.spec +:100644 100644 8af1f78 b22e421 M glibc-rh819430.patch +:100644 100644 49de569 74c1e5a M glibc-rh911307.patch +:100644 100644 af9f358 e35ccfa M glibc.spec commit c90adf8884e7fd1c937137d80f383d9d96eb4aa4 Author: Siddhesh Poyarekar @@ -21586,8 +22720,8 @@ CommitDate: Tue Feb 4 13:17:38 2014 +0530 Sync with upstream master. -:100644 100644 58e12479 af9f3589 M glibc.spec -:100644 100644 38fe555a 8ec3f3ec M sources +:100644 100644 58e1247 af9f358 M glibc.spec +:100644 100644 38fe555 8ec3f3e M sources commit 80e87fcac5ab398b914c40c39453ce4b153265d7 Author: Siddhesh Poyarekar @@ -21599,7 +22733,7 @@ CommitDate: Wed Jan 29 16:12:36 2014 +0530 Modify regular expressions to include powerpcle stubs-*.h. -:100644 100644 36bac4a0 58e12479 M glibc.spec +:100644 100644 36bac4a 58e1247 M glibc.spec commit ef2183ca46881838bf2efde20b7b0ea04e802d02 Author: Siddhesh Poyarekar @@ -21609,8 +22743,8 @@ CommitDate: Wed Jan 29 14:46:39 2014 +0530 Add missing period to commit log and changelog -:100644 100644 8e403f9f 36bac4a0 M glibc.spec -:100755 100755 dc0146c5 4e1a923e M sync-upstream.sh +:100644 100644 8e403f9 36bac4a M glibc.spec +:100755 100755 dc0146c 4e1a923 M sync-upstream.sh commit 66a6e936bd571234487cd3da50580d2dd8ea660d Author: Siddhesh Poyarekar @@ -21620,7 +22754,7 @@ CommitDate: Wed Jan 29 10:47:59 2014 +0530 Fix typo in sync-upstream.sh -:100755 100755 46977060 dc0146c5 M sync-upstream.sh +:100755 100755 4697706 dc0146c M sync-upstream.sh commit 68ca569f59b9024a7c71ca4c208989ff74feca7e Author: Siddhesh Poyarekar @@ -21630,8 +22764,8 @@ CommitDate: Wed Jan 29 10:47:29 2014 +0530 Sync with upstream master -:100644 100644 20734096 8e403f9f M glibc.spec -:100644 100644 1d240959 38fe555a M sources +:100644 100644 2073409 8e403f9 M glibc.spec +:100644 100644 1d24095 38fe555 M sources commit 8e19d6350d04a983c89654122dd200080b914581 Author: Siddhesh Poyarekar @@ -21641,7 +22775,7 @@ CommitDate: Wed Jan 29 10:21:40 2014 +0530 Add a comment to the script describing usage -:100755 100755 16f0a0d5 46977060 M sync-upstream.sh +:100755 100755 16f0a0d 4697706 M sync-upstream.sh commit 9ede0d0c356c838e407204c8f5180a53725df855 Author: Siddhesh Poyarekar @@ -21666,7 +22800,7 @@ CommitDate: Wed Jan 29 10:21:40 2014 +0530 complete the sync. This will typically happen when a patch fails to apply on the new sources. -:000000 100755 00000000 16f0a0d5 A sync-upstream.sh +:000000 100755 0000000 16f0a0d A sync-upstream.sh commit 56fa2407395c003c559497e3e2d29b533ee720af Author: Siddhesh Poyarekar @@ -21676,7 +22810,7 @@ CommitDate: Wed Jan 29 10:21:40 2014 +0530 Bump release number and fix changelog entry for last fix -:100644 100644 6a36498c 20734096 M glibc.spec +:100644 100644 6a36498 2073409 M glibc.spec commit 111d75b10fe5ed46bcfe24b1a78a620091b75ee5 Author: Ville Skyttä @@ -21686,7 +22820,7 @@ CommitDate: Sat Jan 25 20:52:16 2014 +0200 Own the %{_prefix}/lib/locale dir. -:100644 100644 d3a3a8dc 6a36498c M glibc.spec +:100644 100644 d3a3a8d 6a36498 M glibc.spec commit e74f409fb987f79934ffd400c9c8df8f6414ed3e Author: Siddhesh Poyarekar @@ -21696,8 +22830,8 @@ CommitDate: Thu Jan 23 15:15:41 2014 +0530 Sync with upstream master -:100644 100644 1012d738 d3a3a8dc M glibc.spec -:100644 100644 05b4e533 1d240959 M sources +:100644 100644 1012d73 d3a3a8d M glibc.spec +:100644 100644 05b4e53 1d24095 M sources commit 0a210cc9b2128cba5d9e5b25a2073de5f9b22393 Author: Siddhesh Poyarekar @@ -21707,8 +22841,8 @@ CommitDate: Thu Jan 16 12:03:18 2014 +0530 Back out ftell test case (#1052846) -:100644 100644 c88675a6 cbc670e6 M glibc-rh1052846.patch -:100644 100644 4294b167 1012d738 M glibc.spec +:100644 100644 c88675a cbc670e M glibc-rh1052846.patch +:100644 100644 4294b16 1012d73 M glibc.spec commit 8ecbeeba6e119d725bfd4e7416a21e2051ddbcc8 Author: Siddhesh Poyarekar @@ -21721,9 +22855,9 @@ CommitDate: Tue Jan 14 14:16:38 2014 +0530 - Sync with upstream master. - Fix infinite loop in ftell when writing wide char data (#1052846). -:000000 100644 00000000 c88675a6 A glibc-rh1052846.patch -:100644 100644 e9e28e87 4294b167 M glibc.spec -:100644 100644 8fbe0707 05b4e533 M sources +:000000 100644 0000000 c88675a A glibc-rh1052846.patch +:100644 100644 e9e28e8 4294b16 M glibc.spec +:100644 100644 8fbe070 05b4e53 M sources commit 216cf91d8b00e47972cd4e741376447018bf5017 Author: Siddhesh Poyarekar @@ -21733,9 +22867,9 @@ CommitDate: Tue Jan 7 15:06:38 2014 +0530 Enable systemtap on Power and S/390 and sync up with upstream -:100644 100644 9db04346 f633dc59 M glibc-rh757881.patch -:100644 100644 cf5024aa e9e28e87 M glibc.spec -:100644 100644 eb5bcc3c 8fbe0707 M sources +:100644 100644 9db0434 f633dc5 M glibc-rh757881.patch +:100644 100644 cf5024a e9e28e8 M glibc.spec +:100644 100644 eb5bcc3 8fbe070 M sources commit 8e0f85bf4efb1130ef801bb8c01c7fe2fa87959f Author: Siddhesh Poyarekar @@ -21745,8 +22879,8 @@ CommitDate: Fri Dec 27 11:06:36 2013 +0530 Sync with upstream master -:100644 100644 0066824f cf5024aa M glibc.spec -:100644 100644 67d7f468 eb5bcc3c M sources +:100644 100644 0066824 cf5024a M glibc.spec +:100644 100644 67d7f46 eb5bcc3 M sources commit 893671e8e63151a000e5ed0b552c03f564530b97 Author: Siddhesh Poyarekar @@ -21756,8 +22890,8 @@ CommitDate: Fri Dec 20 15:20:21 2013 +0530 Sync with upstream master -:100644 100644 568eb9d9 0066824f M glibc.spec -:100644 100644 662b50a1 67d7f468 M sources +:100644 100644 568eb9d 0066824 M glibc.spec +:100644 100644 662b50a 67d7f46 M sources commit b04b5f9a6f4e967806138ea79805c7f72c464057 Author: Siddhesh Poyarekar @@ -21767,8 +22901,8 @@ CommitDate: Wed Dec 4 11:17:23 2013 +0530 Sync with upstream master -:100644 100644 844463ba 568eb9d9 M glibc.spec -:100644 100644 e48d6dfa 662b50a1 M sources +:100644 100644 844463b 568eb9d M glibc.spec +:100644 100644 e48d6df 662b50a M sources commit 439a9b91b6568bf639c8d66f63a44aa1f494c463 Author: Siddhesh Poyarekar @@ -21778,9 +22912,9 @@ CommitDate: Thu Nov 28 18:17:19 2013 +0530 Sync with upstream master -:100644 000000 05f5681f 00000000 D glibc-rh1009623.patch -:100644 100644 98562c8b 844463ba M glibc.spec -:100644 100644 25e6950b e48d6dfa M sources +:100644 000000 05f5681 0000000 D glibc-rh1009623.patch +:100644 100644 98562c8 844463b M glibc.spec +:100644 100644 25e6950 e48d6df M sources commit f1f239ebf99144c37873e1e9ed6a8d160c6c91ef Author: Siddhesh Poyarekar @@ -21790,8 +22924,8 @@ CommitDate: Wed Nov 20 15:46:46 2013 +0530 Sync with upstream master -:100644 100644 ef9d642c 98562c8b M glibc.spec -:100644 100644 14b3045a 25e6950b M sources +:100644 100644 ef9d642 98562c8 M glibc.spec +:100644 100644 14b3045 25e6950 M sources commit 91f5f14b937066131cdbba55051ddf0a6f2948b8 Author: Carlos O'Donell @@ -21803,8 +22937,8 @@ CommitDate: Sat Nov 9 02:15:56 2013 -0500 - Enhance NSCD's SELinux support to use dynamic permission names (#1025126). -:000000 100644 00000000 ac6b4815 A glibc-rh1025126.patch -:100644 100644 72477fe5 ef9d642c M glibc.spec +:000000 100644 0000000 ac6b481 A glibc-rh1025126.patch +:100644 100644 72477fe ef9d642 M glibc.spec commit 56999f00cc0f3090c5609a7edb284b28b62f871d Author: Siddhesh Poyarekar @@ -21816,7 +22950,7 @@ CommitDate: Mon Oct 28 11:51:00 2013 +0530 Fix pulled in as a result of the rebase. -:100644 100644 70d67a86 72477fe5 M glibc.spec +:100644 100644 70d67a8 72477fe M glibc.spec commit 14915008a3df3e324c152fc3e194f0985d36121d Author: Siddhesh Poyarekar @@ -21826,9 +22960,9 @@ CommitDate: Mon Oct 28 11:44:33 2013 +0530 Sync with upstream master -:100644 000000 c390b772 00000000 D glibc-rh739743.patch -:100644 100644 9a1b4ad8 70d67a86 M glibc.spec -:100644 100644 efbcfc88 14b3045a M sources +:100644 000000 c390b77 0000000 D glibc-rh739743.patch +:100644 100644 9a1b4ad 70d67a8 M glibc.spec +:100644 100644 efbcfc8 14b3045 M sources commit 4d96e3246cdb6ea797fe104a79875268fa888532 Author: Siddhesh Poyarekar @@ -21838,10 +22972,10 @@ CommitDate: Mon Oct 21 15:06:43 2013 +0530 Sync with upstream master -:100644 000000 c058ecf9 00000000 D glibc-fedora-gai-canonical.patch -:100644 000000 37680e43 00000000 D glibc-localedef-arg.patch -:100644 100644 7f43638f 9a1b4ad8 M glibc.spec -:100644 100644 ca18a794 efbcfc88 M sources +:100644 000000 c058ecf 0000000 D glibc-fedora-gai-canonical.patch +:100644 000000 37680e4 0000000 D glibc-localedef-arg.patch +:100644 100644 7f43638 9a1b4ad M glibc.spec +:100644 100644 ca18a79 efbcfc8 M sources commit f6520166f41d58832351d35cfa987ecbb44f5986 Author: Carlos O'Donell @@ -21859,7 +22993,7 @@ CommitDate: Fri Oct 18 23:39:03 2013 -0400 This way if fname is NULL then ah.fname remains NULL and open_archive opens the default archive. -:100644 100644 0c218b9a 9715afde M build-locale-archive.c +:100644 100644 0c218b9 9715afd M build-locale-archive.c commit f03231b0696735487c97752ed710aade46e6b78c Author: Siddhesh Poyarekar @@ -21869,11 +23003,11 @@ CommitDate: Tue Oct 15 11:09:58 2013 +0530 Sync with upstream master -:100644 000000 0637740f 00000000 D glibc-rh1007590.patch -:100644 100644 3cec7832 76f85bf2 M glibc-rh841787.patch -:100644 000000 120bd876 00000000 D glibc-stap-libm.patch -:100644 100644 4ba39deb 7f43638f M glibc.spec -:100644 100644 b85122aa ca18a794 M sources +:100644 000000 0637740 0000000 D glibc-rh1007590.patch +:100644 100644 3cec783 76f85bf M glibc-rh841787.patch +:100644 000000 120bd87 0000000 D glibc-stap-libm.patch +:100644 100644 4ba39de 7f43638 M glibc.spec +:100644 100644 b85122a ca18a79 M sources commit c2021d0b305d436734709186c8c5dca254f77770 Author: Carlos O'Donell @@ -21887,10 +23021,10 @@ CommitDate: Thu Oct 3 05:22:51 2013 -0400 requiring libpthread.so. (#1013801) - Support `--list-archive FILE' in localedef utility. -:100644 100644 3818485a 0c218b9a M build-locale-archive.c -:000000 100644 00000000 37680e43 A glibc-localedef-arg.patch -:000000 100644 00000000 532589cd A glibc-rh1013801.patch -:100644 100644 d471296b 4ba39deb M glibc.spec +:100644 100644 3818485 0c218b9 M build-locale-archive.c +:000000 100644 0000000 37680e4 A glibc-localedef-arg.patch +:000000 100644 0000000 532589c A glibc-rh1013801.patch +:100644 100644 d471296 4ba39de M glibc.spec commit 13a25e85c084da586783f3291e1f2afca9c27f90 Author: Siddhesh Poyarekar @@ -21900,8 +23034,8 @@ CommitDate: Thu Oct 3 10:42:38 2013 +0530 Define swap_endianness_p in build-locale-archive -:100644 100644 474f666a 3818485a M build-locale-archive.c -:100644 100644 5eec1a5e d471296b M glibc.spec +:100644 100644 474f666 3818485 M build-locale-archive.c +:100644 100644 5eec1a5 d471296 M glibc.spec commit 9c4147aa9e33fca7fae5832eb2fab0232b3d0b4f Author: Carlos O'Donell @@ -21916,8 +23050,8 @@ CommitDate: Wed Oct 2 21:34:56 2013 -0400 around a binutils bug that caused objects to become unmarked. (#1009145) -:000000 100644 00000000 c1af7fa0 A glibc-rh1009145.patch -:100644 100644 f1e1a2b1 5eec1a5e M glibc.spec +:000000 100644 0000000 c1af7fa A glibc-rh1009145.patch +:100644 100644 f1e1a2b 5eec1a5 M glibc.spec commit 4ef95943288e1b0ee4939527f952c98c4a0cddc1 Author: Siddhesh Poyarekar @@ -21927,9 +23061,9 @@ CommitDate: Tue Oct 1 20:23:50 2013 +0530 Fix PI mutex check for non-x86 and resync with upstream master -:000000 100644 00000000 0637740f A glibc-rh1007590.patch -:100644 100644 e591cd66 f1e1a2b1 M glibc.spec -:100644 100644 50cdc0d6 b85122aa M sources +:000000 100644 0000000 0637740 A glibc-rh1007590.patch +:100644 100644 e591cd6 f1e1a2b M glibc.spec +:100644 100644 50cdc0d b85122a M sources commit a9c7f8acc7f553304a6d73fbee69b807f1c56fa6 Author: Carlos O'Donell @@ -21941,8 +23075,8 @@ CommitDate: Tue Sep 24 02:01:06 2013 -0400 - Avoid the use of __block which is a reserved keyword for clang++ -:000000 100644 00000000 05f5681f A glibc-rh1009623.patch -:100644 100644 03c34a6d e591cd66 M glibc.spec +:000000 100644 0000000 05f5681 A glibc-rh1009623.patch +:100644 100644 03c34a6 e591cd6 M glibc.spec commit bf5e654c2118c527172646266a2e833df163d89e Author: Siddhesh Poyarekar @@ -21952,10 +23086,10 @@ CommitDate: Mon Sep 23 13:22:23 2013 +0530 Resync with upstream master -:100644 000000 3ed59d8f 00000000 D glibc-rh985625-CVE-2013-4788.patch -:100644 000000 7c220f4f 00000000 D glibc-strcoll-cve.patch -:100644 100644 9afa3d85 03c34a6d M glibc.spec -:100644 100644 eea52371 50cdc0d6 M sources +:100644 000000 3ed59d8 0000000 D glibc-rh985625-CVE-2013-4788.patch +:100644 000000 7c220f4 0000000 D glibc-strcoll-cve.patch +:100644 100644 9afa3d8 03c34a6 M glibc.spec +:100644 100644 eea5237 50cdc0d M sources commit 1a343f85feb86584c25e120b89b3daf61ebe98c4 Author: Carlos O'Donell @@ -21965,7 +23099,7 @@ CommitDate: Mon Sep 23 01:54:23 2013 -0400 Sync CVE-2013-4788 patch again (no NVR bump again). -:100644 100644 48884312 3ed59d8f M glibc-rh985625-CVE-2013-4788.patch +:100644 100644 4888431 3ed59d8 M glibc-rh985625-CVE-2013-4788.patch commit 593edbc2d565b50a6d59c403e27a0ec755915419 Author: Carlos O'Donell @@ -21975,7 +23109,7 @@ CommitDate: Mon Sep 23 01:02:10 2013 -0400 Sync CVE-2013-4788 patch (no need for NVR bump). -:100644 100644 a2d2c4d8 48884312 M glibc-rh985625-CVE-2013-4788.patch +:100644 100644 a2d2c4d 4888431 M glibc-rh985625-CVE-2013-4788.patch commit 2cd5135a96169dea6830ea23ebbb8c8448a30909 Author: Carlos O'Donell @@ -21988,8 +23122,8 @@ CommitDate: Mon Sep 23 00:30:55 2013 -0400 - Fix CVE-2013-4788: Static applications now support pointer mangling. Existing static applications must be recompiled (#985625). -:000000 100644 00000000 a2d2c4d8 A glibc-rh985625-CVE-2013-4788.patch -:100644 100644 8ab71965 9afa3d85 M glibc.spec +:000000 100644 0000000 a2d2c4d A glibc-rh985625-CVE-2013-4788.patch +:100644 100644 8ab7196 9afa3d8 M glibc.spec commit 1939babb04344146ddb9ae5203d484e2c167a482 Author: Patsy Franklin @@ -22000,7 +23134,7 @@ CommitDate: Thu Sep 19 10:23:27 2013 -0400 Resolves: #804768 -Require a specific version of binutils for s390/s390x support. -:100644 100644 1e3327c3 8ab71965 M glibc.spec +:100644 100644 1e3327c 8ab7196 M glibc.spec commit fb87393c9957654d30e283ce2c3e9a78628c8f30 Author: Siddhesh Poyarekar @@ -22010,8 +23144,8 @@ CommitDate: Mon Sep 16 15:16:18 2013 +0530 Resync with upstream master -:100644 100644 1d6a8291 1e3327c3 M glibc.spec -:100644 100644 087cb40d eea52371 M sources +:100644 100644 1d6a829 1e3327c M glibc.spec +:100644 100644 087cb40 eea5237 M sources commit 35b7508499170e8a9e9466499e4ccb82e51e353b Author: Siddhesh Poyarekar @@ -22021,13 +23155,13 @@ CommitDate: Thu Sep 5 17:37:40 2013 +0530 Resync with upstream master -:100644 000000 60106247 00000000 D glibc-rh1000924.patch -:100644 000000 ce8234c0 00000000 D glibc-rh800224.patch -:100644 000000 ce2463b0 00000000 D glibc-rh985342.patch -:100644 000000 f745cb00 00000000 D glibc-rh995841.patch -:100644 100644 5558c1fe 7c220f4f M glibc-strcoll-cve.patch -:100644 100644 f639c075 1d6a8291 M glibc.spec -:100644 100644 56c580fe 087cb40d M sources +:100644 000000 6010624 0000000 D glibc-rh1000924.patch +:100644 000000 ce8234c 0000000 D glibc-rh800224.patch +:100644 000000 ce2463b 0000000 D glibc-rh985342.patch +:100644 000000 f745cb0 0000000 D glibc-rh995841.patch +:100644 100644 5558c1f 7c220f4 M glibc-strcoll-cve.patch +:100644 100644 f639c07 1d6a829 M glibc.spec +:100644 100644 56c580f 087cb40 M sources commit db59a6354f0e1e4f2088882b4ec58609c6b2890e Author: Carlos O'Donell @@ -22037,7 +23171,7 @@ CommitDate: Thu Aug 29 00:36:52 2013 -0400 Fix Power build (#997531). -:100644 100644 68ee4e64 f639c075 M glibc.spec +:100644 100644 68ee4e6 f639c07 M glibc.spec commit b8280fad3dff1766f9b87d38acefdfdb7ba61c09 Author: Carlos O'Donell @@ -22048,8 +23182,8 @@ CommitDate: Wed Aug 28 00:34:43 2013 -0400 Fix indirect function support to avoid calling optimized routines for the wrong hardware (#985342). -:000000 100644 00000000 ce2463b0 A glibc-rh985342.patch -:100644 100644 2b234f74 68ee4e64 M glibc.spec +:000000 100644 0000000 ce2463b A glibc-rh985342.patch +:100644 100644 2b234f7 68ee4e6 M glibc.spec commit 97490e6a11e8e88ce07df41cb289b08af200d32d Author: Siddhesh Poyarekar @@ -22059,8 +23193,8 @@ CommitDate: Mon Aug 26 12:23:11 2013 +0530 Initialize res_hconf in nscd -:000000 100644 00000000 60106247 A glibc-rh1000924.patch -:100644 100644 3bc0ebfe 2b234f74 M glibc.spec +:000000 100644 0000000 6010624 A glibc-rh1000924.patch +:100644 100644 3bc0ebf 2b234f7 M glibc.spec commit 25e270de7cfb9570834f70a1766c6e60e944355b Author: Siddhesh Poyarekar @@ -22070,8 +23204,8 @@ CommitDate: Thu Aug 22 15:08:00 2013 +0530 Fix tst-aiod2 and tst-aiod3 test failures (#970865) -:000000 100644 00000000 d7907359 A glibc-rh970865.patch -:100644 100644 d5df9dde 3bc0ebfe M glibc.spec +:000000 100644 0000000 d790735 A glibc-rh970865.patch +:100644 100644 d5df9dd 3bc0ebf M glibc.spec commit 735547c10eb2f3981b702fbb84d36934630dc185 Author: Siddhesh Poyarekar @@ -22083,8 +23217,8 @@ CommitDate: Thu Aug 22 11:10:25 2013 +0530 Expanded types for some variables to prevent overflow. -:100644 100644 98ac2e6f 5558c1fe M glibc-strcoll-cve.patch -:100644 100644 8615ffa7 d5df9dde M glibc.spec +:100644 100644 98ac2e6 5558c1f M glibc-strcoll-cve.patch +:100644 100644 8615ffa d5df9dd M glibc.spec commit e3b637cf01e31d41ca57cf10629abf0010d17ae0 Author: Siddhesh Poyarekar @@ -22098,8 +23232,8 @@ CommitDate: Thu Aug 22 11:07:15 2013 +0530 function not adjusting the GOT pointer before calling the cleanup function. -:000000 100644 00000000 e3f4ecae A glibc-rh731833-rtkaio-2.patch -:100644 100644 28736494 8615ffa7 M glibc.spec +:000000 100644 0000000 e3f4eca A glibc-rh731833-rtkaio-2.patch +:100644 100644 2873649 8615ffa M glibc.spec commit 615c1c469489451565a3e0f144ab03c64072e502 Author: Siddhesh Poyarekar @@ -22109,8 +23243,8 @@ CommitDate: Tue Aug 20 10:14:34 2013 +0530 Remove non-ELF support in rtkaio -:000000 100644 00000000 c4ae52a1 A glibc-rh731833-rtkaio.patch -:100644 100644 eef7c4a2 28736494 M glibc.spec +:000000 100644 0000000 c4ae52a A glibc-rh731833-rtkaio.patch +:100644 100644 eef7c4a 2873649 M glibc.spec commit f40b2eb05bfa7405901a2f9b2aaa910887264e88 Author: Siddhesh Poyarekar @@ -22120,7 +23254,7 @@ CommitDate: Mon Aug 19 17:08:37 2013 +0530 Fix changelog and release number -:100644 100644 0fcad014 eef7c4a2 M glibc.spec +:100644 100644 0fcad01 eef7c4a M glibc.spec commit 17b00fb789905f372cd4a93130f5f661c2a30354 Author: Siddhesh Poyarekar @@ -22133,18 +23267,18 @@ CommitDate: Mon Aug 19 17:05:59 2013 +0530 Add necessary files directly to the Fedora git tree and add rtkaio and c_stubs bits as patches. -:000000 100644 00000000 474f666a A build-locale-archive.c -:000000 100644 00000000 934f0d06 A glibc-c_stubs.patch -:000000 100644 00000000 d7f3d6e4 A glibc-rtkaio.patch -:100644 100644 acd73e63 0fcad014 M glibc.spec -:000000 100644 00000000 85309bfb A glibc_post_upgrade.c -:000000 100644 00000000 d243ef07 A libc-lock.h -:000000 100644 00000000 8a24a785 A nscd.conf -:000000 100644 00000000 744a5c8f A nscd.service -:000000 100644 00000000 7e512d53 A nscd.socket -:000000 100644 00000000 2f6c84e5 A nsswitch.conf -:000000 100644 00000000 1b0187bd A power6emul.c -:100644 100644 fea54338 56c580fe M sources +:000000 100644 0000000 474f666 A build-locale-archive.c +:000000 100644 0000000 934f0d0 A glibc-c_stubs.patch +:000000 100644 0000000 d7f3d6e A glibc-rtkaio.patch +:100644 100644 acd73e6 0fcad01 M glibc.spec +:000000 100644 0000000 85309bf A glibc_post_upgrade.c +:000000 100644 0000000 d243ef0 A libc-lock.h +:000000 100644 0000000 8a24a78 A nscd.conf +:000000 100644 0000000 744a5c8 A nscd.service +:000000 100644 0000000 7e512d5 A nscd.socket +:000000 100644 0000000 2f6c84e A nsswitch.conf +:000000 100644 0000000 1b0187b A power6emul.c +:100644 100644 fea5433 56c580f M sources commit f64a75b648e854e669fa75843e8627d8ed842b54 Author: Siddhesh Poyarekar @@ -22154,8 +23288,8 @@ CommitDate: Mon Aug 19 13:33:34 2013 +0530 Fix buffer overflow in readdir_r (#995841, CVE-2013-4237) -:000000 100644 00000000 f745cb00 A glibc-rh995841.patch -:100644 100644 ac1dfeb1 acd73e63 M glibc.spec +:000000 100644 0000000 f745cb0 A glibc-rh995841.patch +:100644 100644 ac1dfeb acd73e6 M glibc.spec commit 944ed516b07a1bc8d88c5f5b276236ea8c9f154f Author: Siddhesh Poyarekar @@ -22165,7 +23299,7 @@ CommitDate: Fri Aug 16 19:30:36 2013 +0530 Pull in systemd during build and use the tmpfilesdir macro. -:100644 100644 82d87e18 ac1dfeb1 M glibc.spec +:100644 100644 82d87e1 ac1dfeb M glibc.spec commit 5817231d5000480e2668b12768b9a07e1b98e60a Author: Siddhesh Poyarekar @@ -22175,8 +23309,8 @@ CommitDate: Fri Aug 16 19:26:44 2013 +0530 Upstream release 2.18 -:100644 100644 e58f1cbe 82d87e18 M glibc.spec -:100644 100644 744ebfe6 fea54338 M sources +:100644 100644 e58f1cb 82d87e1 M glibc.spec +:100644 100644 744ebfe fea5433 M sources commit 63769b1ddc1f4905c37723bb0e3d8654e1f5b6fb Author: Carlos O'Donell @@ -22191,7 +23325,7 @@ CommitDate: Wed Aug 14 23:48:25 2013 -0400 utilities are still referenced by their absolute path which includes /usr. -:100644 100644 6a63622d e58f1cbe M glibc.spec +:100644 100644 6a63622 e58f1cb M glibc.spec commit 5b97b46bb34a61fe0f9a4742aa6e8702e5e1a00e Author: Carlos O'Donell @@ -22203,7 +23337,7 @@ CommitDate: Wed Aug 14 15:51:47 2013 -0400 Fix typo. -:100644 100644 67a7f314 6a63622d M glibc.spec +:100644 100644 67a7f31 6a63622 M glibc.spec commit b8e4762c60322420138892e5259e4dcde5e8c895 Author: Carlos O'Donell @@ -22219,7 +23353,7 @@ CommitDate: Tue Aug 13 16:41:01 2013 -0400 Reverting this patch is the only way forward until we find a transitional way to support this. -:100644 100644 026e10c9 67a7f314 M glibc.spec +:100644 100644 026e10c 67a7f31 M glibc.spec commit 62c3082486aa6e0341a978c15ca3903802c58a81 Author: Carlos O'Donell @@ -22235,7 +23369,7 @@ CommitDate: Tue Aug 13 13:18:15 2013 -0400 replaced with uses of `%{_prefix}' for files installed by the package. -:100644 100644 66abc703 026e10c9 M glibc.spec +:100644 100644 66abc70 026e10c M glibc.spec commit baa7ac638442d5188ea811b02e39a9aed3be2905 Author: Carlos O'Donell @@ -22245,7 +23379,7 @@ CommitDate: Fri Aug 9 00:48:21 2013 -0400 Fix typo in install_different local vars. -:100644 100644 8e61908e 66abc703 M glibc.spec +:100644 100644 8e61908 66abc70 M glibc.spec commit 71c008f968d098e8959a064ead4699b32b7a2a74 Author: Carlos O'Donell @@ -22261,7 +23395,7 @@ CommitDate: Fri Aug 9 00:41:01 2013 -0400 conditionally install any libaries where different in the new multilib (different from the default). -:100644 100644 bd35de6b 8e61908e M glibc.spec +:100644 100644 bd35de6 8e61908 M glibc.spec commit 85447d4e89fcc6ceee24eb678f3661f8ea1290dd Author: Carlos O'Donell @@ -22288,7 +23422,7 @@ CommitDate: Thu Aug 8 12:29:39 2013 -0400 The solution removes the warnings and produces no visible change in the output rpms. -:100644 100644 c24f62dd bd35de6b M glibc.spec +:100644 100644 c24f62d bd35de6 M glibc.spec commit 37b5e6be8132f976fbe5dfa6e33e6204a4d4dc4f Author: Carlos O'Donell @@ -22302,7 +23436,7 @@ CommitDate: Thu Aug 8 11:24:25 2013 -0400 Don't use `|| :' to hide errors. -:100644 100644 33300d76 c24f62dd M glibc.spec +:100644 100644 33300d7 c24f62d M glibc.spec commit f20c318f754bdc72b35a693d6d2e218c303f1b9c Author: Karsten Hopp @@ -22312,7 +23446,7 @@ CommitDate: Wed Aug 7 15:18:48 2013 +0200 rebuild with the latest rpm to fix missing ld64.so provides on PPC -:100644 100644 4be32e4d 33300d76 M glibc.spec +:100644 100644 4be32e4 33300d7 M glibc.spec commit e009d66cdfd6fcdd355e9ddb55470af0deba6134 Author: Carlos O'Donell @@ -22326,7 +23460,7 @@ CommitDate: Mon Jul 29 14:36:48 2013 -0400 - Fix missing libbsd.a in debuginfo packages. -:100644 100644 fc1d3994 4be32e4d M glibc.spec +:100644 100644 fc1d399 4be32e4 M glibc.spec commit 0d1d15d15b58200db865cbe8193082159e0eff07 Author: Carlos O'Donell @@ -22341,7 +23475,7 @@ CommitDate: Mon Jul 29 14:34:27 2013 -0400 experimenting with package layout by changing only _libdir. -:100644 100644 c73a87df fc1d3994 M glibc.spec +:100644 100644 c73a87d fc1d399 M glibc.spec commit 3bc8fa746f408f75aaf36ecfb41737f8d3727dde Author: Carlos O'Donell @@ -22356,7 +23490,7 @@ CommitDate: Mon Jul 29 14:34:27 2013 -0400 to before the phase that adds files to the debuginfo. This way the debuginfo files are computed after all files are in place. -:100644 100644 a8dd4f2d c73a87df M glibc.spec +:100644 100644 a8dd4f2 c73a87d M glibc.spec commit 70cc4d3cc2c2dd6bc38f2f84f7a3ffdd561669e0 Author: Siddhesh Poyarekar @@ -22366,8 +23500,8 @@ CommitDate: Mon Jul 29 20:04:15 2013 +0530 - Fix strcoll flaws (#855399, CVE-2012-4412, CVE-2012-4424). -:000000 100644 00000000 98ac2e6f A glibc-strcoll-cve.patch -:100644 100644 63ff66a1 a8dd4f2d M glibc.spec +:000000 100644 0000000 98ac2e6 A glibc-strcoll-cve.patch +:100644 100644 63ff66a a8dd4f2 M glibc.spec commit 9a33c90499df7fd43bf807b76db919bfcd68be98 Author: Siddhesh Poyarekar @@ -22380,8 +23514,8 @@ CommitDate: Mon Jul 29 17:35:53 2013 +0530 I had forgotten to bump the release number and even add a changelog entry earlier. Do all that now. -:100644 000000 f64f4499 00000000 D glibc-fedora-pt_chown.patch -:100644 100644 91d90166 63ff66a1 M glibc.spec +:100644 000000 f64f449 0000000 D glibc-fedora-pt_chown.patch +:100644 100644 91d9016 63ff66a M glibc.spec commit 59f7846a1a5e134c142d3017aa0d4eb758021dbd Author: Siddhesh Poyarekar @@ -22391,8 +23525,8 @@ CommitDate: Mon Jul 29 16:47:41 2013 +0530 Resync with upstream master -:100644 100644 c2264fa8 91d90166 M glibc.spec -:100644 100644 542fd626 744ebfe6 M sources +:100644 100644 c2264fa 91d9016 M glibc.spec +:100644 100644 542fd62 744ebfe M sources commit 1d99c012ca07331e699ebac04c42d285d550c9ca Author: Carlos O'Donell @@ -22402,7 +23536,7 @@ CommitDate: Thu Jul 25 20:30:58 2013 -0400 Use `-s' with truncate not `-size'. -:100644 100644 b307eb63 c2264fa8 M glibc.spec +:100644 100644 b307eb6 c2264fa M glibc.spec commit 02e8252613ef6abf2d04c4e599037496d686e6df Author: Carlos O'Donell @@ -22423,7 +23557,7 @@ CommitDate: Thu Jul 25 20:17:30 2013 -0400 confusing to the reader who expects such a check for anything that is related to the debuginfo common package. -:100644 100644 0768f46d b307eb63 M glibc.spec +:100644 100644 0768f46 b307eb6 M glibc.spec commit 2eb150368a16c2eeae4b90867465dd8b8f52d63b Author: Carlos O'Donell @@ -22433,7 +23567,7 @@ CommitDate: Thu Jul 25 19:10:00 2013 -0400 Second round of whitespace and indentation fixes. -:100644 100644 3dd6f852 0768f46d M glibc.spec +:100644 100644 3dd6f85 0768f46 M glibc.spec commit d4d7effa6b058b9c93169baa3bc54e7dd1435c55 Author: Carlos O'Donell @@ -22443,7 +23577,7 @@ CommitDate: Thu Jul 25 18:53:13 2013 -0400 Reindent functions and multi-line commands. -:100644 100644 f231a296 3dd6f852 M glibc.spec +:100644 100644 f231a29 3dd6f85 M glibc.spec commit 37714d015a74c813261a9b26f8b41da95e4d3404 Author: Carlos O'Donell @@ -22455,8 +23589,8 @@ CommitDate: Thu Jul 25 15:46:20 2013 -0400 - Correctly name the 240-bit slow path sytemtap probe slowpow_p10 for slowpow. -:100644 100644 a9fe600c 120bd876 M glibc-stap-libm.patch -:100644 100644 794be308 f231a296 M glibc.spec +:100644 100644 a9fe600 120bd87 M glibc-stap-libm.patch +:100644 100644 794be30 f231a29 M glibc.spec commit 5a3b560f10cdbac4ad155431c26277912abe1ef3 Author: Carlos O'Donell @@ -22474,7 +23608,7 @@ CommitDate: Wed Jul 24 23:00:43 2013 -0400 * Install debug copies of unstripped static libs. * Miscellaneous. -:100644 100644 a86dbb41 794be308 M glibc.spec +:100644 100644 a86dbb4 794be30 M glibc.spec commit 8c7b7c2248af199cc53ef31f67db11a295dbc3f3 Author: Carlos O'Donell @@ -22484,7 +23618,7 @@ CommitDate: Wed Jul 24 22:45:11 2013 -0400 Adjust comments. -:100644 100644 52ff0512 a86dbb41 M glibc.spec +:100644 100644 52ff051 a86dbb4 M glibc.spec commit dbc262b8ededbcfabce6c27cee36a9bbbd6fd0e5 Author: Carlos O'Donell @@ -22497,7 +23631,7 @@ CommitDate: Wed Jul 24 08:54:14 2013 -0400 Add build requirement on static libstdc++ library to fix testsuite failures for static C++ tests. -:100644 100644 20b053d6 52ff0512 M glibc.spec +:100644 100644 20b053d 52ff051 M glibc.spec commit 9abcefa0aa31dbbb3e0163034ecbd82619958a45 Author: Carlos O'Donell @@ -22507,7 +23641,7 @@ CommitDate: Wed Jul 24 07:58:38 2013 -0400 Add extensive comments. -:100644 100644 8d86634d 20b053d6 M glibc.spec +:100644 100644 8d86634 20b053d M glibc.spec commit 7e232bd35cc80338c1a8d0c105d55c58dfab01ce Author: Carlos O'Donell @@ -22517,7 +23651,7 @@ CommitDate: Wed Jul 24 01:27:35 2013 -0400 Use pushd/popd for directory changes. -:100644 100644 e72ca174 8d86634d M glibc.spec +:100644 100644 e72ca17 8d86634 M glibc.spec commit bf6cb481758db8eb0021f1764e9910e79a91e25f Author: Carlos O'Donell @@ -22527,7 +23661,7 @@ CommitDate: Wed Jul 24 01:22:37 2013 -0400 Remove trailing whitespace. -:100644 100644 a1b119a3 e72ca174 M glibc.spec +:100644 100644 a1b119a e72ca17 M glibc.spec commit a383e78f66c690dfd32efb2be969707ed1d5e46d Author: Siddhesh Poyarekar @@ -22538,7 +23672,7 @@ CommitDate: Mon Jul 22 14:44:54 2013 +0530 - Enable lock elision support (#982363). - Depend on systemd instead of systemd-units (#983760). -:100644 100644 824f9f1b a1b119a3 M glibc.spec +:100644 100644 824f9f1 a1b119a M glibc.spec commit 9d560ee089fd0267684a9f71e91096cafe206cd6 Author: Siddhesh Poyarekar @@ -22548,10 +23682,10 @@ CommitDate: Tue Jul 9 23:15:48 2013 +0530 Resync with upstream master -:100644 100644 d15920a7 50d73435 M glibc-fedora-__libc_multiple_libcs.patch -:100644 100644 bfaff836 ef081879 M glibc-fedora-elf-ORIGIN.patch -:100644 100644 ad2b7973 824f9f1b M glibc.spec -:100644 100644 7af52233 542fd626 M sources +:100644 100644 d15920a 50d7343 M glibc-fedora-__libc_multiple_libcs.patch +:100644 100644 bfaff83 ef08187 M glibc-fedora-elf-ORIGIN.patch +:100644 100644 ad2b797 824f9f1 M glibc.spec +:100644 100644 7af5223 542fd62 M sources commit 5e06266896e0fb60fb80cf67666df87598953d39 Author: Carlos O'Donell @@ -22561,7 +23695,7 @@ CommitDate: Mon Jul 8 17:17:33 2013 -0400 Fix %changelog indentation. -:100644 100644 0d20e1a4 ad2b7973 M glibc.spec +:100644 100644 0d20e1a ad2b797 M glibc.spec commit cda6f0cb747c2b87e14fa85c25b580ab240aff6c Author: Siddhesh Poyarekar @@ -22573,7 +23707,7 @@ CommitDate: Fri Jul 5 11:15:40 2013 +0530 The patch was merged into 2.17 -:100644 000000 fe5a9210 00000000 D glibc-rh847718.patch +:100644 000000 fe5a921 0000000 D glibc-rh847718.patch commit 58028e95232a16edd33848e15c6b1d7e042f07d4 Author: Siddhesh Poyarekar @@ -22583,8 +23717,8 @@ CommitDate: Thu Jun 20 13:23:26 2013 +0530 Resync with upstream master -:100644 100644 9ba7f7a8 0d20e1a4 M glibc.spec -:100644 100644 f3afc4ab 7af52233 M sources +:100644 100644 9ba7f7a 0d20e1a M glibc.spec +:100644 100644 f3afc4a 7af5223 M sources commit 9a2e2fa7aace53be6dc0dca7c0a9aa930b5b2ef4 Author: Remi Collet @@ -22594,7 +23728,7 @@ CommitDate: Tue Jun 11 10:04:52 2013 +0200 rebuild for new GD 2.1.0 -:100644 100644 39be2bfb 9ba7f7a8 M glibc.spec +:100644 100644 39be2bf 9ba7f7a M glibc.spec commit 3cd9b9ce3d4e69b8e030cc8437b7b5a4a607f350 Author: Siddhesh Poyarekar @@ -22607,19 +23741,19 @@ CommitDate: Tue Jun 4 22:23:45 2013 +0530 Dropped upstreamed patches and adjusted others to apply to latest upstream. -:100644 100644 cd50d3b7 36ef59c9 M glibc-fedora-elf-init-hidden_undef.patch -:100644 000000 0edc04f8 00000000 D glibc-fedora-regcomp-sw11561.patch -:100644 100644 21859d56 18ffd8f3 M glibc-rh841318.patch -:100644 000000 03d201cb 00000000 D glibc-rh892777.patch -:100644 000000 ec8dc812 00000000 D glibc-rh905184.patch -:100644 000000 232c7bf1 00000000 D glibc-rh905877.patch -:100644 100644 9eb0426b 49de5697 M glibc-rh911307.patch -:100644 000000 d7bb572b 00000000 D glibc-rh921760.patch -:100644 000000 b01655ee 00000000 D glibc-rh959034.patch -:100644 000000 8845bab4 00000000 D glibc-rh961238.patch -:100644 100644 fd20b7f6 a9fe600c M glibc-stap-libm.patch -:100644 100644 e5ed333e 39be2bfb M glibc.spec -:100644 100644 d1d22869 f3afc4ab M sources +:100644 100644 cd50d3b 36ef59c M glibc-fedora-elf-init-hidden_undef.patch +:100644 000000 0edc04f 0000000 D glibc-fedora-regcomp-sw11561.patch +:100644 100644 21859d5 18ffd8f M glibc-rh841318.patch +:100644 000000 03d201c 0000000 D glibc-rh892777.patch +:100644 000000 ec8dc81 0000000 D glibc-rh905184.patch +:100644 000000 232c7bf 0000000 D glibc-rh905877.patch +:100644 100644 9eb0426 49de569 M glibc-rh911307.patch +:100644 000000 d7bb572 0000000 D glibc-rh921760.patch +:100644 000000 b01655e 0000000 D glibc-rh959034.patch +:100644 000000 8845bab 0000000 D glibc-rh961238.patch +:100644 100644 fd20b7f a9fe600 M glibc-stap-libm.patch +:100644 100644 e5ed333 39be2bf M glibc.spec +:100644 100644 d1d2286 f3afc4a M sources commit 1cb6060f99a974e5b3d7cd73e69b95a8db473167 Author: Siddhesh Poyarekar @@ -22631,8 +23765,8 @@ CommitDate: Tue May 14 20:18:28 2013 +0530 Resolves: #961238. -:000000 100644 00000000 8845bab4 A glibc-rh961238.patch -:100644 100644 61bec1cd e5ed333e M glibc.spec +:000000 100644 0000000 8845bab A glibc-rh961238.patch +:100644 100644 61bec1c e5ed333 M glibc.spec commit e1a168f8a949919f334af7ff83db6339dc1d5190 Author: Patsy Franklin @@ -22643,8 +23777,8 @@ CommitDate: Sun May 5 20:19:47 2013 -0400 Resolves: #959034 - Fix _nl_find_msg malloc failure case, and callers. (#959034). -:000000 100644 00000000 b01655ee A glibc-rh959034.patch -:100644 100644 af608e95 61bec1cd M glibc.spec +:000000 100644 0000000 b01655e A glibc-rh959034.patch +:100644 100644 af608e9 61bec1c M glibc.spec commit 3432a468171ce103480bdb9d9933f93625306ae8 Author: Patsy Franklin @@ -22655,8 +23789,8 @@ CommitDate: Tue Apr 30 10:51:37 2013 -0400 Resolves: #952799 - Test init_fct for NULL, not result->__init_fct, after demangling (#952799). -:100644 100644 b9aba728 9fe22aac M glibc-rh952799.patch -:100644 100644 f44847e8 af608e95 M glibc.spec +:100644 100644 b9aba72 9fe22aa M glibc-rh952799.patch +:100644 100644 f44847e af608e9 M glibc.spec commit 7f654232b164503908312f223d324cd31f005c28 Author: Patsy Franklin @@ -22668,9 +23802,9 @@ CommitDate: Tue Apr 23 16:52:25 2013 -0400 - Increase limits on xdr name and record requests (#892777). - Consistently MANGLE/DEMANGLE init_fct, end_fct and btow_fct (#952799). -:000000 100644 00000000 03d201cb A glibc-rh892777.patch -:000000 100644 00000000 b9aba728 A glibc-rh952799.patch -:100644 100644 b40d6c43 f44847e8 M glibc.spec +:000000 100644 0000000 03d201c A glibc-rh892777.patch +:000000 100644 0000000 b9aba72 A glibc-rh952799.patch +:100644 100644 b40d6c4 f44847e M glibc.spec commit 209568f5166cb4d8e3b275851742fce4eb5c7e26 Author: Siddhesh Poyarekar @@ -22680,8 +23814,8 @@ CommitDate: Thu Mar 28 14:11:28 2013 +0530 Don't add input group during initgroups_dyn in hesiod (#921760) -:000000 100644 00000000 d7bb572b A glibc-rh921760.patch -:100644 100644 00cc1e9d b40d6c43 M glibc.spec +:000000 100644 0000000 d7bb572 A glibc-rh921760.patch +:100644 100644 00cc1e9 b40d6c4 M glibc.spec commit bbd581848b802ecb5b0545f10b2e444e6707dc34 Author: Carlos O'Donell @@ -22698,7 +23832,7 @@ CommitDate: Thu Mar 21 18:18:11 2013 -0400 date. This fixes the Koji warnings about incorrect dates in the %changelog. -:100644 100644 e39854d3 00cc1e9d M glibc.spec +:100644 100644 e39854d 00cc1e9 M glibc.spec commit 37410dcf6c33770ee76aef5ea46ef28b666a0aeb Author: Carlos O'Donell @@ -22708,7 +23842,7 @@ CommitDate: Sun Mar 17 21:20:31 2013 -0400 Remove duplicate comments in spec file. -:100644 100644 306d8084 e39854d3 M glibc.spec +:100644 100644 306d808 e39854d M glibc.spec commit b5a300152e3f32eb690e15c7b92393088f5939f4 Author: Carlos O'Donell @@ -22721,8 +23855,8 @@ CommitDate: Sun Mar 17 20:13:38 2013 -0400 - Fixed i386 glibc builds (#917161). - Fixed multibyte character processing crash in regexp (#905877, CVE-2013-0242) -:000000 100644 00000000 232c7bf1 A glibc-rh905877.patch -:100644 100644 40183730 306d8084 M glibc.spec +:000000 100644 0000000 232c7bf A glibc-rh905877.patch +:100644 100644 4018373 306d808 M glibc.spec commit 6cfdaac5b6b98b0810253d20e3cb4e069f432ec6 Author: Carlos O'Donell @@ -22735,9 +23869,9 @@ CommitDate: Wed Feb 27 19:48:51 2013 -0500 - Renamed release engineering directory to `releng' (#903754). - Fix building with gcc 4.8.0 (#911307). -:000000 100644 00000000 9eb0426b A glibc-rh911307.patch -:100644 100644 2d19e3f7 40183730 M glibc.spec -:100644 100644 94464e12 d1d22869 M sources +:000000 100644 0000000 9eb0426 A glibc-rh911307.patch +:100644 100644 2d19e3f 4018373 M glibc.spec +:100644 100644 94464e1 d1d2286 M sources commit b6dbc3f013f32fefd7961a7e1afd6e887c949d23 Author: Carlos O'Donell @@ -22747,7 +23881,7 @@ CommitDate: Tue Feb 26 15:42:03 2013 -0500 Ignore /.build* and /src directories in git. -:100644 100644 6b2ce383 339be6d9 M .gitignore +:100644 100644 6b2ce38 339be6d M .gitignore commit db7fd60840a91dc2b1d1b7d19478b8c77093802b Author: Carlos O'Donell @@ -22759,8 +23893,8 @@ CommitDate: Fri Feb 8 09:40:54 2013 -0500 - Fix ownership of /usr/lib[64]/audit (#894307). - Support unmarked ARM objects in ld.so.cache and aux cache (#905184). -:000000 100644 00000000 ec8dc812 A glibc-rh905184.patch -:100644 100644 8f7ae8f9 2d19e3f7 M glibc.spec +:000000 100644 0000000 ec8dc81 A glibc-rh905184.patch +:100644 100644 8f7ae8f 2d19e3f M glibc.spec commit fb5a5a9b05ff59c34dc26aa6891890054a9bc665 Author: Jeff Law @@ -22770,9 +23904,9 @@ CommitDate: Tue Jan 1 08:00:53 2013 -0700 - Resync with official glibc-2.17 release -:100644 100644 c207fc28 6b2ce383 M .gitignore -:100644 100644 6640e06f 8f7ae8f9 M glibc.spec -:100644 100644 f731a1fc 94464e12 M sources +:100644 100644 c207fc2 6b2ce38 M .gitignore +:100644 100644 6640e06 8f7ae8f M glibc.spec +:100644 100644 f731a1f 94464e1 M sources commit 48a6019250e6700e7b50d78d092983157ac7f871 Author: Jeff Law @@ -22782,9 +23916,9 @@ CommitDate: Fri Dec 21 13:50:00 2012 -0700 - Resync with master -:100644 100644 cc288d39 c207fc28 M .gitignore -:100644 100644 dc73a00e 6640e06f M glibc.spec -:100644 100644 1e136027 f731a1fc M sources +:100644 100644 cc288d3 c207fc2 M .gitignore +:100644 100644 dc73a00 6640e06 M glibc.spec +:100644 100644 1e13602 f731a1f M sources commit 01a20987236b00ae760c8f96a7b7354db24e11ad Author: Jeff Law @@ -22794,7 +23928,7 @@ CommitDate: Wed Dec 19 11:14:19 2012 -0700 + - Add rtld-debugger-interface.txt as documentation. (#872242) -:100644 100644 e8f76fab dc73a00e M glibc.spec +:100644 100644 e8f76fa dc73a00 M glibc.spec commit cdd3b0516c2889562fbf1406395310468411cf49 Author: Jeff Law @@ -22805,10 +23939,10 @@ CommitDate: Fri Dec 7 15:01:57 2012 -0700 - Resync with master - Drop patch for 731228 that is no longer needed. -:100644 100644 a6d24dff cc288d39 M .gitignore -:100644 000000 8ad88cb9 00000000 D glibc-fedora-tls-offset-rh731228.patch -:100644 100644 85ba97f6 e8f76fab M glibc.spec -:100644 100644 894d6d83 1e136027 M sources +:100644 100644 a6d24df cc288d3 M .gitignore +:100644 000000 8ad88cb 0000000 D glibc-fedora-tls-offset-rh731228.patch +:100644 100644 85ba97f e8f76fa M glibc.spec +:100644 100644 894d6d8 1e13602 M sources commit 245f44547170bec364ab1e9e280e194d66f3d709 Author: Jeff Law @@ -22818,7 +23952,7 @@ CommitDate: Thu Dec 6 10:46:40 2012 -0700 Bump release. -:100644 100644 81b4ad79 85ba97f6 M glibc.spec +:100644 100644 81b4ad7 85ba97f M glibc.spec commit 0a21292124fe995d10b3efc22b650f74e6b87d97 Author: Jeff Law @@ -22830,10 +23964,10 @@ CommitDate: Thu Dec 6 10:45:03 2012 -0700 - Patch for 697421 has been submitted upstream. - Drop local patch for 691912 that is no longer needed. -:100644 100644 16cb3c43 a6d24dff M .gitignore -:100644 000000 53a968e9 00000000 D glibc-rh691912.patch -:100644 100644 7997f9a3 81b4ad79 M glibc.spec -:100644 100644 7f4caaf8 894d6d83 M sources +:100644 100644 16cb3c4 a6d24df M .gitignore +:100644 000000 53a968e 0000000 D glibc-rh691912.patch +:100644 100644 7997f9a 81b4ad7 M glibc.spec +:100644 100644 7f4caaf 894d6d8 M sources commit 7941460ddd18d0ed56729d32a5fa72a6682ca1ad Author: Jeff Law @@ -22843,7 +23977,7 @@ CommitDate: Tue Dec 4 09:11:08 2012 -0700 Mark 731228 as having an upstream BZ (14898) -:100644 100644 99e333d0 7997f9a3 M glibc.spec +:100644 100644 99e333d 7997f9a M glibc.spec commit 4e1a9eb783b804e02dd42b4409a621a814a26b4c Author: Jeff Law @@ -22864,14 +23998,14 @@ CommitDate: Mon Dec 3 13:37:41 2012 -0700 - Drop test-debug-gnuc-hack.patch that seems useless now. - Repack patchlist. -:100644 100644 55f172cd 16cb3c43 M .gitignore -:100644 000000 a1a254e1 00000000 D glibc-fedora-localedata-locales-fixes.patch -:100644 000000 977bd761 00000000 D glibc-fedora-test-debug-gnuc-hack.patch -:100644 000000 999d266d 00000000 D glibc-rh740682.patch -:100644 000000 a6ec302a 00000000 D glibc-rh770439.patch -:100644 000000 9645298b 00000000 D glibc-rh789209.patch -:100644 100644 1e0517dc 99e333d0 M glibc.spec -:100644 100644 023f1031 7f4caaf8 M sources +:100644 100644 55f172c 16cb3c4 M .gitignore +:100644 000000 a1a254e 0000000 D glibc-fedora-localedata-locales-fixes.patch +:100644 000000 977bd76 0000000 D glibc-fedora-test-debug-gnuc-hack.patch +:100644 000000 999d266 0000000 D glibc-rh740682.patch +:100644 000000 a6ec302 0000000 D glibc-rh770439.patch +:100644 000000 9645298 0000000 D glibc-rh789209.patch +:100644 100644 1e0517d 99e333d M glibc.spec +:100644 100644 023f103 7f4caaf M sources commit d5297ae5f7d9835d222a6cc9e32896ab64e64511 Author: Jeff Law @@ -22885,11 +24019,11 @@ CommitDate: Mon Dec 3 11:25:56 2012 -0700 useless. - Repack patchlist. -:100644 100644 122c322c 55f172cd M .gitignore -:100644 000000 523f82aa 00000000 D glibc-fedora-nss-files-overflow-fix.patch -:100644 000000 80ba5e84 00000000 D glibc-rh657588.patch -:100644 100644 c1a4e8d6 1e0517dc M glibc.spec -:100644 100644 d3d2a216 023f1031 M sources +:100644 100644 122c322 55f172c M .gitignore +:100644 000000 523f82a 0000000 D glibc-fedora-nss-files-overflow-fix.patch +:100644 000000 80ba5e8 0000000 D glibc-rh657588.patch +:100644 100644 c1a4e8d 1e0517d M glibc.spec +:100644 100644 d3d2a21 023f103 M sources commit 03545a8efdaba2329a6e64a6f79f502d2fcddda0 Author: Jeff Law @@ -22903,11 +24037,11 @@ CommitDate: Fri Nov 30 14:01:46 2012 -0700 - Remove local patch for 730856 that is no longer needed. - Repack patchlist. -:100644 100644 e447587c 122c322c M .gitignore -:100644 000000 538c4e99 00000000 D glibc-fedora-strict-aliasing.patch -:100644 000000 14270ed7 00000000 D glibc-rh730856.patch -:100644 100644 d68edae5 c1a4e8d6 M glibc.spec -:100644 100644 ee875a9a d3d2a216 M sources +:100644 100644 e447587 122c322 M .gitignore +:100644 000000 538c4e9 0000000 D glibc-fedora-strict-aliasing.patch +:100644 000000 14270ed 0000000 D glibc-rh730856.patch +:100644 100644 d68edae c1a4e8d M glibc.spec +:100644 100644 ee875a9 d3d2a21 M sources commit f5dc60f992316e02575e17a165add35ccf738d95 Author: Jeff Law @@ -22918,8 +24052,8 @@ CommitDate: Thu Nov 29 14:25:33 2012 -0700 - Remove local patch which "temporarily" re-added currences obsoleted by the Euro. -:100644 000000 87ce37ce 00000000 D glibc-fedora-locale-euro.patch -:100644 100644 5777bc02 d68edae5 M glibc.spec +:100644 000000 87ce37c 0000000 D glibc-fedora-locale-euro.patch +:100644 100644 5777bc0 d68edae M glibc.spec commit f0c53b1b9f680eff68fa83902361fec7bc7aaf0c Author: Jeff Law @@ -22930,8 +24064,8 @@ CommitDate: Thu Nov 29 14:20:27 2012 -0700 - Remove hunks from strict-aliasing patch that are no longer needed. -:100644 100644 e9a0f301 538c4e99 M glibc-fedora-strict-aliasing.patch -:100644 100644 a141d6fc 5777bc02 M glibc.spec +:100644 100644 e9a0f30 538c4e9 M glibc-fedora-strict-aliasing.patch +:100644 100644 a141d6f 5777bc0 M glibc.spec commit e60d39c115a85b6f78b48eefd910aa96d0e0aa57 Author: Jeff Law @@ -22941,7 +24075,7 @@ CommitDate: Thu Nov 29 10:59:46 2012 -0700 Fix typo in changelog -:100644 100644 0cffdb20 a141d6fc M glibc.spec +:100644 100644 0cffdb2 a141d6f M glibc.spec commit e781949a2251d094e397bcab40c918ce1664b5ad Author: Jeff Law @@ -22953,10 +24087,10 @@ CommitDate: Thu Nov 29 10:56:43 2012 -0700 - Drop local patch for 788989. - Repack patchlist. -:100644 100644 eeae38e7 e447587c M .gitignore -:100644 000000 50c59f82 00000000 D glibc-rh788989-2.patch -:100644 100644 aef6572b 0cffdb20 M glibc.spec -:100644 100644 476a9235 ee875a9a M sources +:100644 100644 eeae38e e447587 M .gitignore +:100644 000000 50c59f8 0000000 D glibc-rh788989-2.patch +:100644 100644 aef6572 0cffdb2 M glibc.spec +:100644 100644 476a923 ee875a9 M sources commit e3a9f6982a94b97e83ac37101bab56b41197607e Author: Jeff Law @@ -22970,12 +24104,12 @@ CommitDate: Wed Nov 28 14:30:40 2012 -0700 - Drop local patch for 767693. - Repack patchlist. -:100644 100644 103a1e80 eeae38e7 M .gitignore -:100644 000000 97d36588 00000000 D glibc-rh767693-2.patch -:100644 000000 e5dc3d38 00000000 D glibc-rh878913.patch -:100644 000000 e7b9fb55 00000000 D glibc-rh880666.patch -:100644 100644 2b673855 aef6572b M glibc.spec -:100644 100644 891317e4 476a9235 M sources +:100644 100644 103a1e8 eeae38e M .gitignore +:100644 000000 97d3658 0000000 D glibc-rh767693-2.patch +:100644 000000 e5dc3d3 0000000 D glibc-rh878913.patch +:100644 000000 e7b9fb5 0000000 D glibc-rh880666.patch +:100644 100644 2b67385 aef6572 M glibc.spec +:100644 100644 891317e 476a923 M sources commit 99d506920087856ba589ee1dec56849ec4a816e5 Author: Siddhesh Poyarekar @@ -22988,9 +24122,9 @@ CommitDate: Tue Nov 27 21:31:22 2012 +0530 - Ensure that hashtable size is greater than 3 (#878913). - fwrite returns 0 on EOF (#880666). -:000000 100644 00000000 e5dc3d38 A glibc-rh878913.patch -:000000 100644 00000000 e7b9fb55 A glibc-rh880666.patch -:100644 100644 b0019045 2b673855 M glibc.spec +:000000 100644 0000000 e5dc3d3 A glibc-rh878913.patch +:000000 100644 0000000 e7b9fb5 A glibc-rh880666.patch +:100644 100644 b001904 2b67385 M glibc.spec commit 0a6b9006e743fb7f9c7df758b61e928350524a11 Author: Jeff Law @@ -23002,11 +24136,11 @@ CommitDate: Mon Nov 26 14:19:38 2012 -0700 - Drop local patch for getconf. - Repack patchlist. -:100644 100644 74117ff8 103a1e80 M .gitignore -:100644 000000 a878d5b3 00000000 D glibc-fedora-getconf.patch -:100644 100644 ebc807ce c8fee0f4 M glibc-fedora-localedata-rh61908.patch -:100644 100644 d542b0a5 b0019045 M glibc.spec -:100644 100644 83f3f06f 891317e4 M sources +:100644 100644 74117ff 103a1e8 M .gitignore +:100644 000000 a878d5b 0000000 D glibc-fedora-getconf.patch +:100644 100644 ebc807c c8fee0f M glibc-fedora-localedata-rh61908.patch +:100644 100644 d542b0a b001904 M glibc.spec +:100644 100644 83f3f06 891317e M sources commit 9625d850cdf022f63b04ffe25ee0694f5fa85896 Author: Jeff Law @@ -23017,13 +24151,13 @@ CommitDate: Fri Nov 16 06:33:25 2012 -0700 - Rsync with upstream sources - Drop local patches for 803286, 791161, 790292, 790298 -:100644 100644 8fb1703b 74117ff8 M .gitignore -:100644 000000 4f1351d6 00000000 D glibc-rh790292.patch -:100644 000000 92bf6202 00000000 D glibc-rh790298.patch -:100644 000000 1c1fab0f 00000000 D glibc-rh791161.patch -:100644 000000 d9f909c5 00000000 D glibc-rh803286.patch -:100644 100644 9e8f417f d542b0a5 M glibc.spec -:100644 100644 21834fa6 83f3f06f M sources +:100644 100644 8fb1703 74117ff M .gitignore +:100644 000000 4f1351d 0000000 D glibc-rh790292.patch +:100644 000000 92bf620 0000000 D glibc-rh790298.patch +:100644 000000 1c1fab0 0000000 D glibc-rh791161.patch +:100644 000000 d9f909c 0000000 D glibc-rh803286.patch +:100644 100644 9e8f417 d542b0a M glibc.spec +:100644 100644 21834fa 83f3f06 M sources commit 91136bb3b992e59d4912b25ba0e54935d0342b07 Author: Jeff Law @@ -23033,9 +24167,9 @@ CommitDate: Wed Nov 7 12:05:53 2012 -0700 - Resync with upstream sources (#873397) -:100644 100644 eb158666 8fb1703b M .gitignore -:100644 100644 ed7c2496 9e8f417f M glibc.spec -:100644 100644 833e2b73 21834fa6 M sources +:100644 100644 eb15866 8fb1703 M .gitignore +:100644 100644 ed7c249 9e8f417 M glibc.spec +:100644 100644 833e2b7 21834fa M sources commit ae7fda09b156ae76c5170288a62d32107f22d091 Author: Jeff Law @@ -23045,7 +24179,7 @@ CommitDate: Mon Nov 5 15:28:15 2012 -0700 Remove unwanted whitespace -:100644 100644 2b94a67a 833e2b73 M sources +:100644 100644 2b94a67 833e2b7 M sources commit d7b378240d3cae78720daeca9e2067f5f72981fa Author: Jeff Law @@ -23055,7 +24189,7 @@ CommitDate: Mon Nov 5 15:03:08 2012 -0700 restore line dropped by fedpkg new-sources -:100644 100644 324f6307 2b94a67a M sources +:100644 100644 324f630 2b94a67 M sources commit 3a8f01ff814fa42cb7de5c9c60706d7537eaee1a Author: Jeff Law @@ -23065,9 +24199,9 @@ CommitDate: Mon Nov 5 14:57:52 2012 -0700 Fix the subdirectory name in the -fedora tarball -:100644 100644 4673ecda eb158666 M .gitignore -:100644 100644 1eb2e69a ed7c2496 M glibc.spec -:100644 100644 3bcba271 324f6307 M sources +:100644 100644 4673ecd eb15866 M .gitignore +:100644 100644 1eb2e69 ed7c249 M glibc.spec +:100644 100644 3bcba27 324f630 M sources commit a7ee17d41112a7d88ebe754d9e34964bc1a69b29 Author: Jeff Law @@ -23080,12 +24214,12 @@ CommitDate: Mon Nov 5 14:44:36 2012 -0700 as they all modify stuff under fedora/ - Repack patchlist -:100644 100644 bbd9b1d4 4673ecda M .gitignore -:100644 000000 f067a801 00000000 D glibc-rh688948.patch -:100644 000000 87576410 00000000 D glibc-rh770869.patch -:100644 000000 cd7cfe18 00000000 D glibc-rh787201.patch -:100644 100644 b3f6b30f 1eb2e69a M glibc.spec -:100644 100644 e9511f2a 3bcba271 M sources +:100644 100644 bbd9b1d 4673ecd M .gitignore +:100644 000000 f067a80 0000000 D glibc-rh688948.patch +:100644 000000 8757641 0000000 D glibc-rh770869.patch +:100644 000000 cd7cfe1 0000000 D glibc-rh787201.patch +:100644 100644 b3f6b30 1eb2e69 M glibc.spec +:100644 100644 e9511f2 3bcba27 M sources commit 178231ee78d97bb8276e67dbdb55179cc35c936b Author: Jeff Law @@ -23095,9 +24229,9 @@ CommitDate: Fri Nov 2 12:08:02 2012 -0600 - Resync with upstream sources (#872336) -:100644 100644 cfc470aa bbd9b1d4 M .gitignore -:100644 100644 71802e67 b3f6b30f M glibc.spec -:100644 100644 3e7142d1 e9511f2a M sources +:100644 100644 cfc470a bbd9b1d M .gitignore +:100644 100644 71802e6 b3f6b30 M glibc.spec +:100644 100644 3e7142d e9511f2 M sources commit 1b5b2e3a41502aab517cfab980fd0b7a2e400151 Author: Jeff Law @@ -23109,10 +24243,10 @@ CommitDate: Mon Oct 22 10:00:55 2012 -0600 - Drop 864820 patch as now that it's upstream. - Add sss to /etc/nsswitch.conf (#867473) -:100644 100644 090442bb cfc470aa M .gitignore -:100644 000000 7f4f3557 00000000 D glibc-rh864820.patch -:100644 100644 0d07fb3c 71802e67 M glibc.spec -:100644 100644 dd33f77c 3e7142d1 M sources +:100644 100644 090442b cfc470a M .gitignore +:100644 000000 7f4f355 0000000 D glibc-rh864820.patch +:100644 100644 0d07fb3 71802e6 M glibc.spec +:100644 100644 dd33f77 3e7142d M sources commit 69ddcb4ca7fac4f6917f3cc4142dbd63efd464d3 Author: Jeff Law @@ -23125,12 +24259,12 @@ CommitDate: Thu Oct 11 09:54:09 2012 -0600 - Drop local 858274 patch now that the root problem is fixed upstream. - Repack patchlist. -:100644 100644 e794a91b 090442bb M .gitignore -:100644 100644 c20ba960 5ae6e3aa M glibc-fedora-elf-rh737223.patch -:100644 000000 c5410730 00000000 D glibc-rh552960-2.patch -:100644 000000 366c7cc8 00000000 D glibc-rh858274.patch -:100644 100644 cba10c50 0d07fb3c M glibc.spec -:100644 100644 a67f2555 dd33f77c M sources +:100644 100644 e794a91 090442b M .gitignore +:100644 100644 c20ba96 5ae6e3a M glibc-fedora-elf-rh737223.patch +:100644 000000 c541073 0000000 D glibc-rh552960-2.patch +:100644 000000 366c7cc 0000000 D glibc-rh858274.patch +:100644 100644 cba10c5 0d07fb3 M glibc.spec +:100644 100644 a67f255 dd33f77 M sources commit 9589f53f7841a0e0cf1cf1c5b9a9da841a45db9f Author: Siddhesh Poyarekar @@ -23140,7 +24274,7 @@ CommitDate: Wed Oct 10 17:20:38 2012 +0530 Trivial spec fix: Today is not Friday -:100644 100644 3a2807bb cba10c50 M glibc.spec +:100644 100644 3a2807b cba10c5 M glibc.spec commit 609365c2986afdf87b0126d525aea870111c8d0e Author: Siddhesh Poyarekar @@ -23150,8 +24284,8 @@ CommitDate: Wed Oct 10 14:48:01 2012 +0530 Fix Marathi names for Wednesday, September and October (#rh864820) -:000000 100644 00000000 7f4f3557 A glibc-rh864820.patch -:100644 100644 75d6fb8f 3a2807bb M glibc.spec +:000000 100644 0000000 7f4f355 A glibc-rh864820.patch +:100644 100644 75d6fb8 3a2807b M glibc.spec commit 0653cb1ba32f48430b23937ab81ca0f17f1b8d00 Author: Jeff Law @@ -23161,8 +24295,8 @@ CommitDate: Fri Oct 5 12:27:58 2012 -0600 Resync with upstream -:100644 100644 83ced4c8 e794a91b M .gitignore -:100644 100644 c6f5aa0c a67f2555 M sources +:100644 100644 83ced4c e794a91 M .gitignore +:100644 100644 c6f5aa0 a67f255 M sources commit 665e71fb895ea085783de1bebca451966c09287f Author: Jeff Law @@ -23175,12 +24309,12 @@ CommitDate: Fri Oct 5 12:24:42 2012 -0600 - Drop local s390 patch which avoided problems with old assemblers - Drop old fortify source patch to deal with old compilers -:100644 000000 d9eb36b4 00000000 D glibc-fedora-s390-rh711330.patch -:100644 000000 e10ff7c7 00000000 D glibc-fedora-test-debug-gnuc-compat.patch -:100644 100644 79842d57 c5410730 M glibc-rh552960-2.patch -:100644 000000 eef71223 00000000 D glibc-rh552960.patch -:100644 000000 e52e020e 00000000 D glibc-stap.patch -:100644 100644 46921cc4 75d6fb8f M glibc.spec +:100644 000000 d9eb36b 0000000 D glibc-fedora-s390-rh711330.patch +:100644 000000 e10ff7c 0000000 D glibc-fedora-test-debug-gnuc-compat.patch +:100644 100644 79842d5 c541073 M glibc-rh552960-2.patch +:100644 000000 eef7122 0000000 D glibc-rh552960.patch +:100644 000000 e52e020 0000000 D glibc-stap.patch +:100644 100644 46921cc 75d6fb8 M glibc.spec commit 080a305bf212ac02d501388c2f5e9f7fae4a2c24 Author: Siddhesh Poyarekar @@ -23190,8 +24324,8 @@ CommitDate: Thu Oct 4 11:57:51 2012 +0530 Take mutex in cleanup only if it is not already taken (pr#14652) -:000000 100644 00000000 79842d57 A glibc-rh552960-2.patch -:100644 100644 a3e8bf6e 46921cc4 M glibc.spec +:000000 100644 0000000 79842d5 A glibc-rh552960-2.patch +:100644 100644 a3e8bf6 46921cc M glibc.spec commit f6de48ac9d0fa165a783bca1636ea2d46f7169c9 Author: Jeff Law @@ -23202,10 +24336,10 @@ CommitDate: Tue Oct 2 06:41:58 2012 -0600 - Resync with upstream sources. - Repack patchlist. -:100644 100644 a661375c 83ced4c8 M .gitignore -:100644 100644 d84108a6 eef71223 M glibc-rh552960.patch -:100644 100644 a1fc21ec a3e8bf6e M glibc.spec -:100644 100644 5eeab94d c6f5aa0c M sources +:100644 100644 a661375 83ced4c M .gitignore +:100644 100644 d84108a eef7122 M glibc-rh552960.patch +:100644 100644 a1fc21e a3e8bf6 M glibc.spec +:100644 100644 5eeab94 c6f5aa0 M sources commit 66c0a7ea1d7338487a663b8af836cd1a263b70eb Author: Jeff Law @@ -23215,9 +24349,9 @@ CommitDate: Mon Oct 1 06:37:36 2012 -0600 - Resync with upstream sources to pick up fma fixes -:100644 100644 a8d90cb2 a661375c M .gitignore -:100644 100644 abad40a1 a1fc21ec M glibc.spec -:100644 100644 c6238d6a 5eeab94d M sources +:100644 100644 a8d90cb a661375 M .gitignore +:100644 100644 abad40a a1fc21e M glibc.spec +:100644 100644 c6238d6 5eeab94 M sources commit b33c1d23003c4086cf25245b043634a2093300d0 Author: Jeff Law @@ -23236,14 +24370,14 @@ CommitDate: Fri Sep 28 13:55:42 2012 -0600 - Drop fedora-vfprintf-sw6530.patch, it's upstream now. - Drop rh769421.patch; Siddhesh has fixed this properly with 552960. -:100644 100644 e89b73e0 a8d90cb2 M .gitignore -:100644 000000 7a151ac7 00000000 D glibc-fedora-cdefs-gnuc.patch -:100644 000000 bde42536 00000000 D glibc-fedora-gai-rfc1918.patch -:100644 000000 9f3b5684 00000000 D glibc-fedora-localedata-no_NO.patch -:100644 000000 f4dcc40d 00000000 D glibc-fedora-vfprintf-sw6530.patch -:100644 000000 dd03490d 00000000 D glibc-rh769421.patch -:100644 100644 8ab74cef abad40a1 M glibc.spec -:100644 100644 7e65bf00 c6238d6a M sources +:100644 100644 e89b73e a8d90cb M .gitignore +:100644 000000 7a151ac 0000000 D glibc-fedora-cdefs-gnuc.patch +:100644 000000 bde4253 0000000 D glibc-fedora-gai-rfc1918.patch +:100644 000000 9f3b568 0000000 D glibc-fedora-localedata-no_NO.patch +:100644 000000 f4dcc40 0000000 D glibc-fedora-vfprintf-sw6530.patch +:100644 000000 dd03490 0000000 D glibc-rh769421.patch +:100644 100644 8ab74ce abad40a M glibc.spec +:100644 100644 7e65bf0 c6238d6 M sources commit cdb17b58a8fc97f3824a727e1c62e66eebb33c94 Author: Siddhesh Poyarekar @@ -23253,8 +24387,8 @@ CommitDate: Fri Sep 28 10:01:16 2012 +0530 Release mutex before going back to wait for PI mutexes (#552960). -:000000 100644 00000000 d84108a6 A glibc-rh552960.patch -:100644 100644 95570a83 8ab74cef M glibc.spec +:000000 100644 0000000 d84108a A glibc-rh552960.patch +:100644 100644 95570a8 8ab74ce M glibc.spec commit fab85b902e5ac7c94cab7a6cab5b07decf7dd01a Author: Jeff Law @@ -23264,8 +24398,8 @@ CommitDate: Tue Sep 25 20:27:59 2012 -0600 Resync with upstream sources -:100644 100644 71be626b e89b73e0 M .gitignore -:100644 100644 b77f2e03 7e65bf00 M sources +:100644 100644 71be626 e89b73e M .gitignore +:100644 100644 b77f2e0 7e65bf0 M sources commit 3b7069e67cdfa88e2a635cc3dfcfa39d91d50dfe Author: Jeff Law @@ -23275,8 +24409,8 @@ CommitDate: Tue Sep 25 20:25:26 2012 -0600 - Resync with upstream sources. -:100644 100644 8300bb60 366c7cc8 M glibc-rh858274.patch -:100644 100644 eb535e67 95570a83 M glibc.spec +:100644 100644 8300bb6 366c7cc M glibc-rh858274.patch +:100644 100644 eb535e6 95570a8 M glibc.spec commit 55a30785d463ecd9cc1fa0e4b384b9f8b93a370a Author: Jeff Law @@ -23292,10 +24426,10 @@ CommitDate: Mon Sep 24 09:25:31 2012 -0600 avoid nopl. - Move gai-rfc1918 patch to submitted upstream status -:100644 000000 7acc9eb6 00000000 D glibc-fedora-i686-nopl.patch -:100644 100644 96180d95 a26b9283 M glibc-fedora-nscd.patch -:100644 000000 44469d4f 00000000 D glibc-fedora-path-vi.patch -:100644 100644 80e4052c eb535e67 M glibc.spec +:100644 000000 7acc9eb 0000000 D glibc-fedora-i686-nopl.patch +:100644 100644 96180d9 a26b928 M glibc-fedora-nscd.patch +:100644 000000 44469d4 0000000 D glibc-fedora-path-vi.patch +:100644 100644 80e4052 eb535e6 M glibc.spec commit 384f5b1f919f52a8126e0099b1c86de16e47cb2c Author: Jeff Law @@ -23305,7 +24439,7 @@ CommitDate: Fri Sep 21 13:08:53 2012 -0600 Bring back patch for 858274 -:100644 100644 f788d9aa 80e4052c M glibc.spec +:100644 100644 f788d9a 80e4052 M glibc.spec commit 3e3b859747ec44143432a47de64066310e2ec575 Author: Jeff Law @@ -23315,7 +24449,7 @@ CommitDate: Fri Sep 21 12:51:04 2012 -0600 Actually remove the patchfile -:100644 100644 c6d31274 f788d9aa M glibc.spec +:100644 100644 c6d3127 f788d9a M glibc.spec commit cd9aa54a174919fa73a8c30aa8d2e94427f6d2ce Author: Jeff Law @@ -23325,8 +24459,8 @@ CommitDate: Fri Sep 21 12:50:11 2012 -0600 - Remove broken patch for 816647. -:100644 000000 e7324458 00000000 D glibc-rh816647.patch -:100644 100644 1aa49a8d c6d31274 M glibc.spec +:100644 000000 e732445 0000000 D glibc-rh816647.patch +:100644 100644 1aa49a8 c6d3127 M glibc.spec commit 7e2e80de953ce07ebb3465830713ee5dfa134e56 Author: Siddhesh Poyarekar @@ -23336,8 +24470,8 @@ CommitDate: Fri Sep 21 09:58:52 2012 +0530 Bring back byteswap-16.h (#859268) -:100644 100644 dbbde734 8300bb60 M glibc-rh858274.patch -:100644 100644 8b35a016 1aa49a8d M glibc.spec +:100644 100644 dbbde73 8300bb6 M glibc-rh858274.patch +:100644 100644 8b35a01 1aa49a8 M glibc.spec commit 7f7468a795c19d91af883c616fa26e684b6ad05f Author: Jeff Law @@ -23347,7 +24481,7 @@ CommitDate: Thu Sep 20 15:51:11 2012 -0600 Fix typo -:100644 100644 a919b005 8b35a016 M glibc.spec +:100644 100644 a919b00 8b35a01 M glibc.spec commit 6d1baf298897b0302456f1271fee78304de6609d Author: Jeff Law @@ -23357,8 +24491,8 @@ CommitDate: Thu Sep 20 15:46:19 2012 -0600 - Revert recent upstream strstr changes (#858274) -:000000 100644 00000000 dbbde734 A glibc-rh858274.patch -:100644 100644 04ae5fbc a919b005 M glibc.spec +:000000 100644 0000000 dbbde73 A glibc-rh858274.patch +:100644 100644 04ae5fb a919b00 M glibc.spec commit 67e76ace812869f314fb2eff3f02d1ed52d8a7a2 Author: Jeff Law @@ -23368,8 +24502,8 @@ CommitDate: Thu Sep 20 15:34:11 2012 -0600 - Demangle function pointers before testing them (#816647) -:000000 100644 00000000 e7324458 A glibc-rh816647.patch -:100644 100644 4980d41a 04ae5fbc M glibc.spec +:000000 100644 0000000 e732445 A glibc-rh816647.patch +:100644 100644 4980d41 04ae5fb M glibc.spec commit 5e0541ba746b06e9cfb15ec931787dd7911406f8 Author: Jeff Law @@ -23380,7 +24514,7 @@ CommitDate: Thu Sep 20 15:03:18 2012 -0600 - Remove handling of /etc/localtime and /var/spool/postfix/etc/localtime as systemd will be handling them from now on (#858735). -:100644 100644 d1268845 4980d41a M glibc.spec +:100644 100644 d126884 4980d41 M glibc.spec commit 3cb79f751c310020dd680d478af4594fe7936432 Author: Jeff Law @@ -23390,10 +24524,10 @@ CommitDate: Fri Sep 14 14:42:59 2012 -0600 - Resync with upstream sources (#857236). -:100644 100644 5e53491a 71be626b M .gitignore -:100644 100644 d0f7e54c 21859d56 M glibc-rh841318.patch -:100644 100644 8d0c8832 d1268845 M glibc.spec -:100644 100644 fef53eac b77f2e03 M sources +:100644 100644 5e53491 71be626 M .gitignore +:100644 100644 d0f7e54 21859d5 M glibc-rh841318.patch +:100644 100644 8d0c883 d126884 M glibc.spec +:100644 100644 fef53ea b77f2e0 M sources commit 575bb8c6d7c8186ec08991bb07f0f128ac9d9c89 Author: Peter Robinson @@ -23403,7 +24537,7 @@ CommitDate: Sat Sep 8 16:39:53 2012 +0100 Enable ports to fix FTBFS on ARM -:100644 100644 460eb355 8d0c8832 M glibc.spec +:100644 100644 460eb35 8d0c883 M glibc.spec commit afeab8192bda6b18e809adde56a4215c8facc34e Author: Jeff Law @@ -23413,9 +24547,9 @@ CommitDate: Wed Sep 5 22:23:20 2012 -0600 - Resync with upstream sources. -:100644 100644 a31c3494 5e53491a M .gitignore -:100644 100644 9f5f7684 460eb355 M glibc.spec -:100644 100644 c96c37dd fef53eac M sources +:100644 100644 a31c349 5e53491 M .gitignore +:100644 100644 9f5f768 460eb35 M glibc.spec +:100644 100644 c96c37d fef53ea M sources commit 98dddaf80526a5ed251fe2a8f5f26eebdab5c11a Author: Jeff Law @@ -23425,7 +24559,7 @@ CommitDate: Tue Sep 4 11:35:34 2012 -0600 - Incorporate ppc64p7 arch changes (#854250) -:100644 100644 a7ecf1c1 9f5f7684 M glibc.spec +:100644 100644 a7ecf1c 9f5f768 M glibc.spec commit 7f32dad8b0d5dc0ed0261d5a552d0575e94332f3 Author: Jeff Law @@ -23435,10 +24569,10 @@ CommitDate: Thu Aug 30 09:47:02 2012 -0600 - Resync with upstream sources. -:100644 100644 cc72c8dd a31c3494 M .gitignore -:100644 100644 8fd999db e9a0f301 M glibc-fedora-strict-aliasing.patch -:100644 100644 bccb0c89 a7ecf1c1 M glibc.spec -:100644 100644 0f2dae4b c96c37dd M sources +:100644 100644 cc72c8d a31c349 M .gitignore +:100644 100644 8fd999d e9a0f30 M glibc-fedora-strict-aliasing.patch +:100644 100644 bccb0c8 a7ecf1c M glibc.spec +:100644 100644 0f2dae4 c96c37d M sources commit df41626e9103e817957fb2431a476e8f8c5ea44d Author: Jeff Law @@ -23448,9 +24582,9 @@ CommitDate: Wed Aug 22 22:11:53 2012 -0600 - Resync with upstream sources. -:100644 100644 13d5ca51 cc72c8dd M .gitignore -:100644 100644 8c51ff68 bccb0c89 M glibc.spec -:100644 100644 d62a3ec3 0f2dae4b M sources +:100644 100644 13d5ca5 cc72c8d M .gitignore +:100644 100644 8c51ff6 bccb0c8 M glibc.spec +:100644 100644 d62a3ec 0f2dae4 M sources commit f8556b4c45f6e66d551fe65b960f020a402e9a75 Author: Jeff Law @@ -23461,7 +24595,7 @@ CommitDate: Tue Aug 21 09:47:24 2012 -0600 - Replace manual systemd scriptlets with macroized scriptlets (#850129) -:100644 100644 0ed62e61 8c51ff68 M glibc.spec +:100644 100644 0ed62e6 8c51ff6 M glibc.spec commit 31474e7c11f2589570a4ce155c42f2a00e5a0335 Author: Jeff Law @@ -23471,7 +24605,7 @@ CommitDate: Mon Aug 20 20:31:17 2012 -0600 Bump release. -:100644 100644 d2f236a0 0ed62e61 M glibc.spec +:100644 100644 d2f236a 0ed62e6 M glibc.spec commit 0436f62efd959d779d9e326d479e7363582799b2 Author: Jeff Law @@ -23482,7 +24616,7 @@ CommitDate: Mon Aug 20 20:30:59 2012 -0600 - Move /etc/localtime into glibc-common package since glibc-common owns the scriptlets which update it. -:100644 100644 2d632bf3 d2f236a0 M glibc.spec +:100644 100644 2d632bf d2f236a M glibc.spec commit d2f39ec9ec82400f2ecbde9c7808dfbcdb7332f6 Author: Jeff Law @@ -23492,12 +24626,12 @@ CommitDate: Mon Aug 20 15:19:19 2012 -0600 Remove obsolete patches -:100644 000000 2ae7d32c 00000000 D glibc-rh179072.patch -:100644 000000 326157ac 00000000 D glibc-rh564528.patch -:100644 000000 378eda13 00000000 D glibc-rh769476.patch -:100644 000000 403b8407 00000000 D glibc-rh789238.patch -:100644 000000 c0a0e012 00000000 D glibc-rh823905.patch -:100644 000000 c3360b5b 00000000 D glibc-rh845960.patch +:100644 000000 2ae7d32 0000000 D glibc-rh179072.patch +:100644 000000 326157a 0000000 D glibc-rh564528.patch +:100644 000000 378eda1 0000000 D glibc-rh769476.patch +:100644 000000 403b840 0000000 D glibc-rh789238.patch +:100644 000000 c0a0e01 0000000 D glibc-rh823905.patch +:100644 000000 c3360b5 0000000 D glibc-rh845960.patch commit a0c4aeb2e1c593796354da82df7b7a1cf5d7c756 Author: Jeff Law @@ -23507,7 +24641,7 @@ CommitDate: Mon Aug 20 13:36:26 2012 -0600 Defuzz patch -:100644 100644 26f111ea 8fd999db M glibc-fedora-strict-aliasing.patch +:100644 100644 26f111e 8fd999d M glibc-fedora-strict-aliasing.patch commit fb633eaa14bb4c2b35f26c6ec2f4d829f27819ac Author: Jeff Law @@ -23520,45 +24654,45 @@ CommitDate: Mon Aug 20 13:25:02 2012 -0600 Dmitry V. Levin for identifying them! Drop ia64 specific patches and specfile fragments -:000000 100644 00000000 d15920a7 A glibc-fedora-__libc_multiple_libcs.patch -:000000 100644 00000000 7a151ac7 A glibc-fedora-cdefs-gnuc.patch -:000000 100644 00000000 bfaff836 A glibc-fedora-elf-ORIGIN.patch -:000000 100644 00000000 cd50d3b7 A glibc-fedora-elf-init-hidden_undef.patch -:000000 100644 00000000 c20ba960 A glibc-fedora-elf-rh737223.patch -:000000 100644 00000000 c058ecf9 A glibc-fedora-gai-canonical.patch -:000000 100644 00000000 bde42536 A glibc-fedora-gai-rfc1918.patch -:000000 100644 00000000 a878d5b3 A glibc-fedora-getconf.patch -:000000 100644 00000000 bd77bb36 A glibc-fedora-getrlimit-PLT.patch -:000000 100644 00000000 80c0f0db A glibc-fedora-i386-tls-direct-seg-refs.patch -:000000 100644 00000000 7acc9eb6 A glibc-fedora-i686-nopl.patch -:000000 100644 00000000 1e5d763b A glibc-fedora-include-bits-ldbl.patch -:000000 100644 00000000 51aec739 A glibc-fedora-ldd.patch -:000000 100644 00000000 066ac484 A glibc-fedora-linux-tcsetattr.patch -:000000 100644 00000000 87ce37ce A glibc-fedora-locale-euro.patch -:000000 100644 00000000 a1a254e1 A glibc-fedora-localedata-locales-fixes.patch -:000000 100644 00000000 9f3b5684 A glibc-fedora-localedata-no_NO.patch -:000000 100644 00000000 ebc807ce A glibc-fedora-localedata-rh61908.patch -:000000 100644 00000000 ee1463a2 A glibc-fedora-localedef.patch -:000000 100644 00000000 9a702af5 A glibc-fedora-locarchive.patch -:000000 100644 00000000 f6816207 A glibc-fedora-manual-dircategory.patch -:000000 100644 00000000 93899013 A glibc-fedora-nis-rh188246.patch -:000000 100644 00000000 350c3504 A glibc-fedora-nptl-linklibc.patch -:000000 100644 00000000 96180d95 A glibc-fedora-nscd.patch -:000000 100644 00000000 523f82aa A glibc-fedora-nss-files-overflow-fix.patch -:000000 100644 00000000 44469d4f A glibc-fedora-path-vi.patch -:000000 100644 00000000 7e9b7ab0 A glibc-fedora-ppc-unwind.patch -:000000 100644 00000000 f64f4499 A glibc-fedora-pt_chown.patch -:000000 100644 00000000 0edc04f8 A glibc-fedora-regcomp-sw11561.patch -:000000 100644 00000000 d9eb36b4 A glibc-fedora-s390-rh711330.patch -:000000 100644 00000000 44b9195d A glibc-fedora-streams-rh436349.patch -:000000 100644 00000000 26f111ea A glibc-fedora-strict-aliasing.patch -:000000 100644 00000000 e10ff7c7 A glibc-fedora-test-debug-gnuc-compat.patch -:000000 100644 00000000 977bd761 A glibc-fedora-test-debug-gnuc-hack.patch -:000000 100644 00000000 8ad88cb9 A glibc-fedora-tls-offset-rh731228.patch -:000000 100644 00000000 86383d4c A glibc-fedora-uname-getrlimit.patch -:000000 100644 00000000 f4dcc40d A glibc-fedora-vfprintf-sw6530.patch -:100644 000000 4eb3c313 00000000 D glibc-fedora.patch -:100644 100644 24f82f6d 2d632bf3 M glibc.spec +:000000 100644 0000000 d15920a A glibc-fedora-__libc_multiple_libcs.patch +:000000 100644 0000000 7a151ac A glibc-fedora-cdefs-gnuc.patch +:000000 100644 0000000 bfaff83 A glibc-fedora-elf-ORIGIN.patch +:000000 100644 0000000 cd50d3b A glibc-fedora-elf-init-hidden_undef.patch +:000000 100644 0000000 c20ba96 A glibc-fedora-elf-rh737223.patch +:000000 100644 0000000 c058ecf A glibc-fedora-gai-canonical.patch +:000000 100644 0000000 bde4253 A glibc-fedora-gai-rfc1918.patch +:000000 100644 0000000 a878d5b A glibc-fedora-getconf.patch +:000000 100644 0000000 bd77bb3 A glibc-fedora-getrlimit-PLT.patch +:000000 100644 0000000 80c0f0d A glibc-fedora-i386-tls-direct-seg-refs.patch +:000000 100644 0000000 7acc9eb A glibc-fedora-i686-nopl.patch +:000000 100644 0000000 1e5d763 A glibc-fedora-include-bits-ldbl.patch +:000000 100644 0000000 51aec73 A glibc-fedora-ldd.patch +:000000 100644 0000000 066ac48 A glibc-fedora-linux-tcsetattr.patch +:000000 100644 0000000 87ce37c A glibc-fedora-locale-euro.patch +:000000 100644 0000000 a1a254e A glibc-fedora-localedata-locales-fixes.patch +:000000 100644 0000000 9f3b568 A glibc-fedora-localedata-no_NO.patch +:000000 100644 0000000 ebc807c A glibc-fedora-localedata-rh61908.patch +:000000 100644 0000000 ee1463a A glibc-fedora-localedef.patch +:000000 100644 0000000 9a702af A glibc-fedora-locarchive.patch +:000000 100644 0000000 f681620 A glibc-fedora-manual-dircategory.patch +:000000 100644 0000000 9389901 A glibc-fedora-nis-rh188246.patch +:000000 100644 0000000 350c350 A glibc-fedora-nptl-linklibc.patch +:000000 100644 0000000 96180d9 A glibc-fedora-nscd.patch +:000000 100644 0000000 523f82a A glibc-fedora-nss-files-overflow-fix.patch +:000000 100644 0000000 44469d4 A glibc-fedora-path-vi.patch +:000000 100644 0000000 7e9b7ab A glibc-fedora-ppc-unwind.patch +:000000 100644 0000000 f64f449 A glibc-fedora-pt_chown.patch +:000000 100644 0000000 0edc04f A glibc-fedora-regcomp-sw11561.patch +:000000 100644 0000000 d9eb36b A glibc-fedora-s390-rh711330.patch +:000000 100644 0000000 44b9195 A glibc-fedora-streams-rh436349.patch +:000000 100644 0000000 26f111e A glibc-fedora-strict-aliasing.patch +:000000 100644 0000000 e10ff7c A glibc-fedora-test-debug-gnuc-compat.patch +:000000 100644 0000000 977bd76 A glibc-fedora-test-debug-gnuc-hack.patch +:000000 100644 0000000 8ad88cb A glibc-fedora-tls-offset-rh731228.patch +:000000 100644 0000000 86383d4 A glibc-fedora-uname-getrlimit.patch +:000000 100644 0000000 f4dcc40 A glibc-fedora-vfprintf-sw6530.patch +:100644 000000 4eb3c31 0000000 D glibc-fedora.patch +:100644 100644 24f82f6 2d632bf M glibc.spec commit 8854fdfb2519d82f23ea1a710067a8b20304cec6 Author: Jeff Law @@ -23569,8 +24703,8 @@ CommitDate: Mon Aug 20 12:08:39 2012 -0600 - Remove obsolete patches from glibc-fedora.patch. Thanks to Dmitry V. Levin for identifying them! -:100644 100644 c4a8074b 4eb3c313 M glibc-fedora.patch -:100644 100644 b6294e9a 24f82f6d M glibc.spec +:100644 100644 c4a8074 4eb3c31 M glibc-fedora.patch +:100644 100644 b6294e9 24f82f6 M glibc.spec commit acfd962c205a48cfce6d9fc6f5c29f6a8dc4866e Author: Jeff Law @@ -23580,8 +24714,8 @@ CommitDate: Wed Aug 15 09:51:53 2012 -0600 + - Fix integer overflow leading to buffer overflow in strto* (#847718) -:000000 100644 00000000 fe5a9210 A glibc-rh847718.patch -:100644 100644 af60f616 b6294e9a M glibc.spec +:000000 100644 0000000 fe5a921 A glibc-rh847718.patch +:100644 100644 af60f61 b6294e9 M glibc.spec commit 24dc56843193ca89f6c5b66018ffad4b59180ce9 Author: Jeff Law @@ -23593,10 +24727,10 @@ CommitDate: Mon Aug 13 22:49:13 2012 -0600 - Drop glibc-ports bits as they're part of the master sources now. -:100644 100644 a1eb7e48 13d5ca51 M .gitignore -:100644 100644 7b58d3ba c4a8074b M glibc-fedora.patch -:100644 100644 98dd96bd af60f616 M glibc.spec -:100644 100644 4bd1f825 d62a3ec3 M sources +:100644 100644 a1eb7e4 13d5ca5 M .gitignore +:100644 100644 7b58d3b c4a8074 M glibc-fedora.patch +:100644 100644 98dd96b af60f61 M glibc.spec +:100644 100644 4bd1f82 d62a3ec M sources commit e784118c7b0b62a6db5c46d3ba6044bd9d4b9077 Author: Jeff Law @@ -23606,7 +24740,7 @@ CommitDate: Mon Aug 13 11:15:16 2012 -0600 Bump release. -:100644 100644 c3f72559 98dd96bd M glibc.spec +:100644 100644 c3f7255 98dd96b M glibc.spec commit f5845e2bd56f4b74cea839e92ba99815f32420f6 Author: Jeff Law @@ -23616,8 +24750,8 @@ CommitDate: Mon Aug 13 11:14:38 2012 -0600 - Replace patch for 179072 with offical version from upstream. -:100644 100644 0ce664cd 2ae7d32c M glibc-rh179072.patch -:100644 100644 751eb687 c3f72559 M glibc.spec +:100644 100644 0ce664c 2ae7d32 M glibc-rh179072.patch +:100644 100644 751eb68 c3f7255 M glibc.spec commit 49bbcdd4a054a68ea966c4eebbe926bbff94fdeb Author: Jeff Law @@ -23627,9 +24761,9 @@ CommitDate: Fri Aug 10 09:44:26 2012 -0600 - Replace patch for 789238 with official version from upstream. -:100644 000000 91e8df78 00000000 D glibc-rh789238-2.patch -:100644 100644 1801123b 403b8407 M glibc-rh789238.patch -:100644 100644 3bcf2037 751eb687 M glibc.spec +:100644 000000 91e8df7 0000000 D glibc-rh789238-2.patch +:100644 100644 1801123 403b840 M glibc-rh789238.patch +:100644 100644 3bcf203 751eb68 M glibc.spec commit d9855076031f6897bdf33088df30575f569f8f30 Author: Jeff Law @@ -23642,9 +24776,9 @@ CommitDate: Mon Aug 6 11:46:20 2012 -0600 (#808147) - Mark set*uid, set*gid as __wur (warn unused result) (#845960) -:100644 100644 331a2036 3cec7832 M glibc-rh841787.patch -:000000 100644 00000000 c3360b5b A glibc-rh845960.patch -:100644 100644 29bfe738 3bcf2037 M glibc.spec +:100644 100644 331a203 3cec783 M glibc-rh841787.patch +:000000 100644 0000000 c3360b5 A glibc-rh845960.patch +:100644 100644 29bfe73 3bcf203 M glibc.spec commit 64ea3f61e378d00d8d11dce10b9fb1fa84b76605 Author: Jeff Law @@ -23656,8 +24790,8 @@ CommitDate: Thu Jul 26 00:00:05 2012 -0600 addresses explicitly in getaddrinfo, which in turn broke ssh, apache and other code. (#808147) -:100644 000000 e94e0a75 00000000 D glibc-rh697149.patch -:100644 100644 625dc570 29bfe738 M glibc.spec +:100644 000000 e94e0a7 0000000 D glibc-rh697149.patch +:100644 100644 625dc57 29bfe73 M glibc.spec commit 054129c4848476e93a35405d0934fe4e0820d3b2 Author: Jeff Law @@ -23670,8 +24804,8 @@ CommitDate: Wed Jul 25 23:30:39 2012 -0600 - Revert back to using posix.symlink as posix.link with a 3rd argument isn't supported in the lua version embedded in rpm. -:000000 100644 00000000 d0f7e54c A glibc-rh841318.patch -:100644 100644 160106f9 625dc570 M glibc.spec +:000000 100644 0000000 d0f7e54 A glibc-rh841318.patch +:100644 100644 160106f 625dc57 M glibc.spec commit b6a5cc17defb5549f8a8e3593cb5db650a6cba90 Author: Jeff Law @@ -23682,7 +24816,7 @@ CommitDate: Wed Jul 25 14:33:39 2012 -0600 - Revert recent changes to res_send (804630, 835090). - Fix memcpy args in res_send (#841787). -:100644 100644 4c7b1cad 160106f9 M glibc.spec +:100644 100644 4c7b1ca 160106f M glibc.spec commit e7456d7df4d5f5276ed6f68dcaf09c527d0068c2 Author: Jeff Law @@ -23693,8 +24827,8 @@ CommitDate: Wed Jul 25 14:32:59 2012 -0600 - Revert recent changes to res_send (804630, 835090). - Fix memcpy args in res_send (#841787). -:100644 000000 75dbe94b 00000000 D glibc-rh804630.patch -:000000 100644 00000000 331a2036 A glibc-rh841787.patch +:100644 000000 75dbe94 0000000 D glibc-rh804630.patch +:000000 100644 0000000 331a203 A glibc-rh841787.patch commit c567b667ba80cc65af2f6acd52550e67f413cc95 Author: Dennis Gilmore @@ -23704,7 +24838,7 @@ CommitDate: Thu Jul 19 01:56:05 2012 -0500 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild -:100644 100644 1350e639 4c7b1cad M glibc.spec +:100644 100644 1350e63 4c7b1ca M glibc.spec commit d7543e8b4a5c65b77dd208bf42b8e1378ea061d1 Author: Jeff Law @@ -23715,7 +24849,7 @@ CommitDate: Thu Jul 5 23:36:28 2012 -0600 - Use posix.link rather than posix.symlink in scriptlet to update /etc/localtime (#837344). -:100644 100644 530316ba 1350e639 M glibc.spec +:100644 100644 530316b 1350e63 M glibc.spec commit b151d5af8bc58862cfab659369927b41de98a449 Author: Jeff Law @@ -23725,9 +24859,9 @@ CommitDate: Mon Jul 2 07:22:19 2012 -0600 Resync with upstream glibc-2.16 release. -:100644 100644 fe68b6dc a1eb7e48 M .gitignore -:100644 100644 30c1244b 530316ba M glibc.spec -:100644 100644 8c7353ff 4bd1f825 M sources +:100644 100644 fe68b6d a1eb7e4 M .gitignore +:100644 100644 30c1244 530316b M glibc.spec +:100644 100644 8c7353f 4bd1f82 M sources commit dd8ae6f66dd4ab826ff7c210d0bc9f124ece1995 Author: Jeff Law @@ -23737,11 +24871,11 @@ CommitDate: Fri Jun 22 13:30:06 2012 -0600 - Resync with upstream sources, drop obsolete patch. -:100644 100644 c6294e85 fe68b6dc M .gitignore -:100644 100644 2fac1cd8 7b58d3ba M glibc-fedora.patch -:100644 000000 f4aa9058 00000000 D glibc-sw13579.patch -:100644 100644 647a8d65 30c1244b M glibc.spec -:100644 100644 7e42a788 8c7353ff M sources +:100644 100644 c6294e8 fe68b6d M .gitignore +:100644 100644 2fac1cd 7b58d3b M glibc-fedora.patch +:100644 000000 f4aa905 0000000 D glibc-sw13579.patch +:100644 100644 647a8d6 30c1244 M glibc.spec +:100644 100644 7e42a78 8c7353f M sources commit 5176c4e7b561acd45f98d820e4d044b2eea3546e Author: Jeff Law @@ -23752,12 +24886,12 @@ CommitDate: Thu Jun 21 17:28:16 2012 -0600 - Resync with upstream sources (#834447). - Fix use-after-free in dcigettext.c (#816647). -:100644 100644 288a94e4 c6294e85 M .gitignore -:100644 000000 5d4ba8da 00000000 D glibc-rh729661.patch -:100644 000000 1880121a 00000000 D glibc-rh816647.patch -:100644 000000 bb4b06e3 00000000 D glibc-sw13618-2.patch -:100644 100644 af26340d 647a8d65 M glibc.spec -:100644 100644 6304cd46 7e42a788 M sources +:100644 100644 288a94e c6294e8 M .gitignore +:100644 000000 5d4ba8d 0000000 D glibc-rh729661.patch +:100644 000000 1880121 0000000 D glibc-rh816647.patch +:100644 000000 bb4b06e 0000000 D glibc-sw13618-2.patch +:100644 100644 af26340 647a8d6 M glibc.spec +:100644 100644 6304cd4 7e42a78 M sources commit fd26ca323db15675ab41c4ee487001f42d44aafe Author: Jeff Law @@ -23767,8 +24901,8 @@ CommitDate: Thu Jun 21 12:04:39 2012 -0600 Fix use-after-free in dcigettext.c (#816647). -:000000 100644 00000000 1880121a A glibc-rh816647.patch -:100644 100644 2f06be37 af26340d M glibc.spec +:000000 100644 0000000 1880121 A glibc-rh816647.patch +:100644 100644 2f06be3 af26340 M glibc.spec commit e949173fe29ad30dee79669bf28d6755aa2b2748 Author: Jeff Law @@ -23778,7 +24912,7 @@ CommitDate: Mon Jun 18 09:25:25 2012 -0600 Restore accidentally removed lines -:100644 100644 7d6e54df 6304cd46 M sources +:100644 100644 7d6e54d 6304cd4 M sources commit 4d039e75295d926d75c0fb63c5f986892afa91e3 Author: Jeff Law @@ -23788,7 +24922,7 @@ CommitDate: Mon Jun 18 09:03:21 2012 -0600 Add missing glibc-ports line again -:100644 100644 e5a1c609 7d6e54df M sources +:100644 100644 e5a1c60 7d6e54d M sources commit b69ccc01785555bf260a8b756b2a77213ede47ad Author: Jeff Law @@ -23798,9 +24932,9 @@ CommitDate: Fri Jun 15 09:23:17 2012 -0600 Resync with master. -:100644 100644 894ac735 288a94e4 M .gitignore -:100644 100644 48b437a7 2f06be37 M glibc.spec -:100644 100644 ebd08aa9 e5a1c609 M sources +:100644 100644 894ac73 288a94e M .gitignore +:100644 100644 48b437a 2f06be3 M glibc.spec +:100644 100644 ebd08aa e5a1c60 M sources commit 8b98471a2cb2cfd8e1844a7e52a5ccae14cda447 Author: Jeff Law @@ -23811,8 +24945,8 @@ CommitDate: Thu Jun 14 21:52:07 2012 -0600 - Delay setting DECIDED field in locale file structure until we have read the file's data (#827510). -:000000 100644 00000000 f5f024c5 A glibc-rh827510.patch -:100644 100644 79478fdd 48b437a7 M glibc.spec +:000000 100644 0000000 f5f024c A glibc-rh827510.patch +:100644 100644 79478fd 48b437a M glibc.spec commit ebc13c27b8568b91314f14994e091fe6db3afa6a Author: Dennis Gilmore @@ -23822,7 +24956,7 @@ CommitDate: Tue Jun 12 21:01:29 2012 -0500 actually apply the arm linker hack -:100644 100644 3e63d279 79478fdd M glibc.spec +:100644 100644 3e63d27 79478fd M glibc.spec commit 6b0fcd959e9a492cd999e83fb16ce10a98ffb65e Author: Dennis Gilmore @@ -23832,7 +24966,7 @@ CommitDate: Mon Jun 11 20:38:11 2012 -0500 add the armhfp linker hack patch -:000000 100644 00000000 ff4997e5 A glibc-arm-hardfloat-3.patch +:000000 100644 0000000 ff4997e A glibc-arm-hardfloat-3.patch commit 69de1410b13841e9b770a7fed9f87d553008e068 Author: Dennis Gilmore @@ -23845,7 +24979,7 @@ CommitDate: Mon Jun 11 20:32:35 2012 -0500 - armsfp arches do not have a linker change - Backward compat hack for armhf binaries. -:100644 100644 0a89c806 3e63d279 M glibc.spec +:100644 100644 0a89c80 3e63d27 M glibc.spec commit 6ae22f0ed1d63bbf41f8c9f342e310d1265faa61 Author: Jeff Law @@ -23855,7 +24989,7 @@ CommitDate: Thu Jun 7 12:16:27 2012 -0600 Defuzz-patch -:100644 100644 f764ee1c 2fac1cd8 M glibc-fedora.patch +:100644 100644 f764ee1 2fac1cd M glibc-fedora.patch commit 218bae2116a8fd2b5bf8fcfccea0e3645d5889aa Author: Jeff Law @@ -23865,7 +24999,7 @@ CommitDate: Thu Jun 7 12:07:59 2012 -0600 Remove extraneous newline -:100644 100644 0f1c153a ebd08aa9 M sources +:100644 100644 0f1c153 ebd08aa M sources commit e20289d31a8dd4771bdb590dfca4e14fca900b39 Author: Jeff Law @@ -23875,7 +25009,7 @@ CommitDate: Thu Jun 7 11:54:50 2012 -0600 Fix parsing of /etc/sysconfig/clock when ZONE has spaces. (#828291) -:100644 100644 f8b11c94 0a89c806 M glibc.spec +:100644 100644 f8b11c9 0a89c80 M glibc.spec commit b63a792795363ba9d02115836053417dd272b570 Author: Jeff Law @@ -23885,9 +25019,9 @@ CommitDate: Tue Jun 5 12:00:01 2012 -0600 Remove unnecessary comment, updated sources -:100644 100644 f98ebabc 894ac735 M .gitignore -:100644 100644 51ecb315 f8b11c94 M glibc.spec -:100644 100644 172e7358 0f1c153a M sources +:100644 100644 f98ebab 894ac73 M .gitignore +:100644 100644 51ecb31 f8b11c9 M glibc.spec +:100644 100644 172e735 0f1c153 M sources commit fdfcf254341e2225d085ba8cead9bf36a102fd92 Author: Jeff Law @@ -23897,10 +25031,10 @@ CommitDate: Tue Jun 5 11:54:14 2012 -0600 - Resync with upstream sources, drop unnecessary patches. -:100644 000000 311cb3e7 00000000 D glibc-rh446078.patch -:100644 000000 6e26a854 00000000 D glibc-rh622499.patch -:100644 000000 93dac2d0 00000000 D glibc-rh682500.patch -:100644 100644 0e6467eb 51ecb315 M glibc.spec +:100644 000000 311cb3e 0000000 D glibc-rh446078.patch +:100644 000000 6e26a85 0000000 D glibc-rh622499.patch +:100644 000000 93dac2d 0000000 D glibc-rh682500.patch +:100644 100644 0e6467e 51ecb31 M glibc.spec commit 77881379e907df7f4a51e977b5e47bf58485ef27 Author: Jeff Law @@ -23912,9 +25046,9 @@ CommitDate: Tue Jun 5 11:35:03 2012 -0600 - Remove deprecated alpha support. - Remove redundant hunk from patch. (#823905) -:000000 100644 00000000 97d36588 A glibc-rh767693-2.patch -:100644 100644 ed9c4c91 c0a0e012 M glibc-rh823905.patch -:100644 100644 603d09ac 0e6467eb M glibc.spec +:000000 100644 0000000 97d3658 A glibc-rh767693-2.patch +:100644 100644 ed9c4c9 c0a0e01 M glibc-rh823905.patch +:100644 100644 603d09a 0e6467e M glibc.spec commit 0d1b1bab4ac36aeea9a48bbbcf3187f05714f20b Author: Jeff Law @@ -23924,10 +25058,10 @@ CommitDate: Mon Jun 4 16:22:43 2012 -0600 Restore lost line -:100644 100644 d6ca81b6 172e7358 M sources +:100644 100644 d6ca81b 172e735 M sources commit 7e7bd1effe0774eed79e39859823e05dad8fdc1e -Merge: 1559b7b9 5527dc5b +Merge: 1559b7b 5527dc5 Author: Patsy Franklin AuthorDate: Fri Jun 1 16:06:21 2012 -0400 Commit: Patsy Franklin @@ -23938,9 +25072,9 @@ CommitDate: Fri Jun 1 16:06:21 2012 -0400 Conflicts: glibc.spec -:100644 100644 cafafd81 f98ebabc M .gitignore -:100644 100644 a87524dc 603d09ac M glibc.spec -:100644 100644 46ec2394 d6ca81b6 M sources +:100644 100644 cafafd8 f98ebab M .gitignore +:100644 100644 a87524d 603d09a M glibc.spec +:100644 100644 46ec239 d6ca81b M sources commit 1559b7b9251d56da1ef2d039e4dca9a4eb820c14 Author: Patsy Franklin @@ -23952,8 +25086,8 @@ CommitDate: Fri Jun 1 15:08:41 2012 -0400 - Fix iconv() segfault when the invalid multibyte character 0xffff is input when converting from IBM930. -:000000 100644 00000000 ed9c4c91 A glibc-rh823905.patch -:100644 100644 c532fead a87524dc M glibc.spec +:000000 100644 0000000 ed9c4c9 A glibc-rh823905.patch +:100644 100644 c532fea a87524d M glibc.spec commit 200aebfe55588c73e0235f37670d884ba2e4149f Author: Patsy Franklin @@ -23963,8 +25097,8 @@ CommitDate: Thu May 31 16:21:36 2012 -0400 Fix fnmatch() when '*' wildcard is applied on a file name containing multibyte chars. (#819430/14185) -:000000 100644 00000000 8af1f788 A glibc-rh819430.patch -:100644 100644 926ea2c9 c532fead M glibc.spec +:000000 100644 0000000 8af1f78 A glibc-rh819430.patch +:100644 100644 926ea2c c532fea M glibc.spec commit e1b411d16da687845c9f18132f47442672bb6599 Author: Jeff Law @@ -23976,12 +25110,12 @@ CommitDate: Wed May 30 00:22:40 2012 -0600 Lots of local systemtap bits are now upstream and no longer needed as local changes. -:100644 100644 824f6cdc cafafd81 M .gitignore -:100644 100644 27bb88e3 f764ee1c M glibc-fedora.patch -:100644 100644 0b41987f 9db04346 M glibc-rh757881.patch -:100644 100644 d481a0bc e52e020e M glibc-stap.patch -:100644 100644 c85ee03d 926ea2c9 M glibc.spec -:100644 100644 52d79451 46ec2394 M sources +:100644 100644 824f6cd cafafd8 M .gitignore +:100644 100644 27bb88e f764ee1 M glibc-fedora.patch +:100644 100644 0b41987 9db0434 M glibc-rh757881.patch +:100644 100644 d481a0b e52e020 M glibc-stap.patch +:100644 100644 c85ee03 926ea2c M glibc.spec +:100644 100644 52d7945 46ec239 M sources commit bb3a5a5ad9bdd46e80a0b212c4336e991ee357b1 Author: Jeff Law @@ -23992,8 +25126,8 @@ CommitDate: Tue May 29 23:19:23 2012 -0600 - Build info files in the source dir, then move to objdir to avoid multilib conflicts (#825061) -:000000 100644 00000000 54fae8b3 A glibc-rh825061.patch -:100644 100644 a837836b c85ee03d M glibc.spec +:000000 100644 0000000 54fae8b A glibc-rh825061.patch +:100644 100644 a837836 c85ee03 M glibc.spec commit 66109710962110d73b7e2eaf2e10e834e1fcfd1a Author: Jeff Law @@ -24004,7 +25138,7 @@ CommitDate: Fri May 25 15:16:21 2012 -0600 - Work around RPM dropping the contents of /etc/localtime when it turns into a symlink with %post common script (#825159). -:100644 100644 5e11b5ee a837836b M glibc.spec +:100644 100644 5e11b5e a837836 M glibc.spec commit 6d522a8eb2ef188914f61a61e5ae9d9154f66a2f Author: Jeff Law @@ -24015,8 +25149,8 @@ CommitDate: Wed May 23 13:46:47 2012 -0600 - Fix option rotate when one IPV6 server is enabled (#804630) - Reenable slow/uberslow path taps slowpow/slowexp. -:000000 100644 00000000 75dbe94b A glibc-rh804630.patch -:100644 100644 86f614ed 5e11b5ee M glibc.spec +:000000 100644 0000000 75dbe94 A glibc-rh804630.patch +:100644 100644 86f614e 5e11b5e M glibc.spec commit f7dfce46ed31b2f0b5b9f942743de15a868906ff Author: Jeff Law @@ -24026,37 +25160,37 @@ CommitDate: Wed May 23 12:18:07 2012 -0600 - Resync with upstream sources. -:100644 100644 e1d2eb5e 824f6cdc M .gitignore -:100644 000000 c87b8a8c 00000000 D glibc-arm-hardfloat-1.patch -:100644 000000 35923129 00000000 D glibc-arm-hardfloat-2.patch -:100644 100644 6eba417b 27bb88e3 M glibc-fedora.patch -:100644 100644 d17fd136 0ce664cd M glibc-rh179072.patch -:100644 000000 42f93e10 00000000 D glibc-rh454629.patch -:100644 000000 c03994b6 00000000 D glibc-rh624296.patch -:100644 000000 99cf22c1 00000000 D glibc-rh740506.patch -:100644 100644 b0418d14 999d266d M glibc-rh740682.patch -:100644 000000 ccf97152 00000000 D glibc-rh758888.patch -:100644 000000 d32e2384 00000000 D glibc-rh760935.patch -:100644 100644 996aba12 dd03490d M glibc-rh769421.patch -:100644 100644 f9c3a3b8 87576410 M glibc-rh770869.patch -:100644 000000 7540525e 00000000 D glibc-rh783979.patch -:100644 000000 5e783f5e 00000000 D glibc-rh784402.patch -:100644 000000 4e730cef 00000000 D glibc-rh788989.patch -:100644 000000 c1b2989c 00000000 D glibc-rh794797-2.patch -:100644 000000 271538d8 00000000 D glibc-rh794797.patch -:100644 000000 729c5a4d 00000000 D glibc-rh795498.patch -:100644 000000 0000c5a1 00000000 D glibc-rh798471.patch -:100644 000000 d357cf2f 00000000 D glibc-rh801650.patch -:100644 000000 0ff243d1 00000000 D glibc-rh804792.patch -:100644 000000 7ea94416 00000000 D glibc-rh806070.patch -:100644 000000 8f852f9b 00000000 D glibc-rh806403.patch -:100644 000000 6866549b 00000000 D glibc-rh817276.patch -:100644 100644 07761b98 fd20b7f6 M glibc-stap-libm.patch -:100644 100644 b3ff9fa0 d481a0bc M glibc-stap.patch -:100644 000000 6202deb7 00000000 D glibc-sw13618.patch -:100644 000000 134e50d9 00000000 D glibc-sw13979.patch -:100644 100644 19b0db6b 86f614ed M glibc.spec -:100644 100644 1f4929b5 52d79451 M sources +:100644 100644 e1d2eb5 824f6cd M .gitignore +:100644 000000 c87b8a8 0000000 D glibc-arm-hardfloat-1.patch +:100644 000000 3592312 0000000 D glibc-arm-hardfloat-2.patch +:100644 100644 6eba417 27bb88e M glibc-fedora.patch +:100644 100644 d17fd13 0ce664c M glibc-rh179072.patch +:100644 000000 42f93e1 0000000 D glibc-rh454629.patch +:100644 000000 c03994b 0000000 D glibc-rh624296.patch +:100644 000000 99cf22c 0000000 D glibc-rh740506.patch +:100644 100644 b0418d1 999d266 M glibc-rh740682.patch +:100644 000000 ccf9715 0000000 D glibc-rh758888.patch +:100644 000000 d32e238 0000000 D glibc-rh760935.patch +:100644 100644 996aba1 dd03490 M glibc-rh769421.patch +:100644 100644 f9c3a3b 8757641 M glibc-rh770869.patch +:100644 000000 7540525 0000000 D glibc-rh783979.patch +:100644 000000 5e783f5 0000000 D glibc-rh784402.patch +:100644 000000 4e730ce 0000000 D glibc-rh788989.patch +:100644 000000 c1b2989 0000000 D glibc-rh794797-2.patch +:100644 000000 271538d 0000000 D glibc-rh794797.patch +:100644 000000 729c5a4 0000000 D glibc-rh795498.patch +:100644 000000 0000c5a 0000000 D glibc-rh798471.patch +:100644 000000 d357cf2 0000000 D glibc-rh801650.patch +:100644 000000 0ff243d 0000000 D glibc-rh804792.patch +:100644 000000 7ea9441 0000000 D glibc-rh806070.patch +:100644 000000 8f852f9 0000000 D glibc-rh806403.patch +:100644 000000 6866549 0000000 D glibc-rh817276.patch +:100644 100644 07761b9 fd20b7f M glibc-stap-libm.patch +:100644 100644 b3ff9fa d481a0b M glibc-stap.patch +:100644 000000 6202deb 0000000 D glibc-sw13618.patch +:100644 000000 134e50d 0000000 D glibc-sw13979.patch +:100644 100644 19b0db6 86f614e M glibc.spec +:100644 100644 1f4929b 52d7945 M sources commit 9b14d89a52d1f6de17da37e35fcbb47f4858e9a9 Author: Jeff Law @@ -24066,7 +25200,7 @@ CommitDate: Tue May 22 23:08:44 2012 -0600 - Fix tzdata trigger (#822200) -:100644 100644 74ff458c 19b0db6b M glibc.spec +:100644 100644 74ff458 19b0db6 M glibc.spec commit d1134780a2edda596f949244b722c346ae841128 Author: Jeff Law @@ -24077,7 +25211,7 @@ CommitDate: Tue May 22 22:21:50 2012 -0600 - Make the symlink relative rather than linking into the buildroot (#822200) -:100644 100644 e70dc1fb 74ff458c M glibc.spec +:100644 100644 e70dc1f 74ff458 M glibc.spec commit 998f7d1a8dc5315dc60d6a1da231db4d1acefda8 Author: Patsy Franklin @@ -24088,7 +25222,7 @@ CommitDate: Tue May 22 16:25:33 2012 -0400 Resolves: #822200 -Completed prior change to make /etc/localtime a symlink. -:100644 100644 32f74eec e70dc1fb M glibc.spec +:100644 100644 32f74ee e70dc1f M glibc.spec commit 423d527c1d957b159a36cc08a204c3999d292aae Author: Patsy Franklin @@ -24099,7 +25233,7 @@ CommitDate: Tue May 22 14:58:09 2012 -0400 Resolves: #822200 Changed /etc/localtime to a symlink. 8222000 (#822200) -:100644 100644 72958a5f 32f74eec M glibc.spec +:100644 100644 72958a5 32f74ee M glibc.spec commit 2bd73a18b39cab0dd5ed29b5b9e91438126a83a7 Author: Jeff Law @@ -24109,8 +25243,8 @@ CommitDate: Tue May 15 22:21:22 2012 -0600 - Update to upstream patch for 806070 (#806070) -:100644 100644 71d71332 7ea94416 M glibc-rh806070.patch -:100644 100644 983a957d 72958a5f M glibc.spec +:100644 100644 71d7133 7ea9441 M glibc-rh806070.patch +:100644 100644 983a957 72958a5 M glibc.spec commit 86a57e60b3536ce139cc6805e4022c515d37cde5 Author: Jeff Law @@ -24120,8 +25254,8 @@ CommitDate: Mon May 14 11:53:42 2012 -0600 - Update upstream patch for AVX testing (#801650) -:100644 100644 d3c8c607 d357cf2f M glibc-rh801650.patch -:100644 100644 9c1bd57a 983a957d M glibc.spec +:100644 100644 d3c8c60 d357cf2 M glibc-rh801650.patch +:100644 100644 9c1bd57 983a957 M glibc.spec commit d2e0d47266920c219b4ddefc8e3e132974fbb5e9 Author: Jeff Law @@ -24131,11 +25265,11 @@ CommitDate: Fri May 11 15:49:43 2012 -0600 - Upstream patch to fix AVX testing (#801650) -:100644 000000 a5c809b6 00000000 D glibc-rh801650-1.patch -:100644 000000 6d1a1c4d 00000000 D glibc-rh801650-2.patch -:100644 000000 1c4c2524 00000000 D glibc-rh801650-3.patch -:000000 100644 00000000 d3c8c607 A glibc-rh801650.patch -:100644 100644 c32fdbf9 9c1bd57a M glibc.spec +:100644 000000 a5c809b 0000000 D glibc-rh801650-1.patch +:100644 000000 6d1a1c4 0000000 D glibc-rh801650-2.patch +:100644 000000 1c4c252 0000000 D glibc-rh801650-3.patch +:000000 100644 0000000 d3c8c60 A glibc-rh801650.patch +:100644 100644 c32fdbf 9c1bd57 M glibc.spec commit 6403acaa71bd71956ab40e39e1713ec8ebd8edae Author: Jeff Law @@ -24145,8 +25279,8 @@ CommitDate: Thu May 10 20:57:08 2012 -0600 - Try again to fix AVX testing (#801650) -:000000 100644 00000000 1c4c2524 A glibc-rh801650-3.patch -:100644 100644 bd599694 c32fdbf9 M glibc.spec +:000000 100644 0000000 1c4c252 A glibc-rh801650-3.patch +:100644 100644 bd59969 c32fdbf M glibc.spec commit 111ecf779a202dc0971fcfa20cbb8e8548361c48 Author: Jeff Law @@ -24156,7 +25290,7 @@ CommitDate: Tue May 8 21:34:35 2012 -0600 Move patch for FORTIFY_SOURCE warning into patches from upstream -:100644 100644 108c42a4 bd599694 M glibc.spec +:100644 100644 108c42a bd59969 M glibc.spec commit 4c937b3960b9007617cbafe36415c70dce26c33e Author: Jeff Law @@ -24166,7 +25300,7 @@ CommitDate: Tue May 8 21:33:53 2012 -0600 Replace local variant with upstream version -:100644 100644 e5111a66 134e50d9 M glibc-sw13979.patch +:100644 100644 e5111a6 134e50d M glibc-sw13979.patch commit 49f951b0b58e4ee71c74254e8fb6c0c12079cf77 Author: Jeff Law @@ -24176,7 +25310,7 @@ CommitDate: Tue May 8 12:44:43 2012 -0600 Fix glibc-arm-hardflow-2.patch. -:100644 100644 d11d0a07 35923129 M glibc-arm-hardfloat-2.patch +:100644 100644 d11d0a0 3592312 M glibc-arm-hardfloat-2.patch commit e5e2fc3bd76660a90a6bb3e98cb1653946745def Author: Jeff Law @@ -24186,7 +25320,7 @@ CommitDate: Mon May 7 13:47:26 2012 -0600 Update arm-hardfloat patch -:100644 100644 6a66b3e3 d11d0a07 M glibc-arm-hardfloat-2.patch +:100644 100644 6a66b3e d11d0a0 M glibc-arm-hardfloat-2.patch commit 6537aa83a13c3478d91c0fcf32862c318861832a Author: Jeff Law @@ -24197,10 +25331,10 @@ CommitDate: Mon May 7 12:06:40 2012 -0600 - Improve fortification disabled warning. - Change location of dynamic linker for armhf. -:000000 100644 00000000 c87b8a8c A glibc-arm-hardfloat-1.patch -:000000 100644 00000000 6a66b3e3 A glibc-arm-hardfloat-2.patch -:100644 100644 80d54275 e5111a66 M glibc-sw13979.patch -:100644 100644 c72f06a9 108c42a4 M glibc.spec +:000000 100644 0000000 c87b8a8 A glibc-arm-hardfloat-1.patch +:000000 100644 0000000 6a66b3e A glibc-arm-hardfloat-2.patch +:100644 100644 80d5427 e5111a6 M glibc-sw13979.patch +:100644 100644 c72f06a 108c42a M glibc.spec commit a540ed36fe29d2dce223269b14f0f4ae3ed95d79 Author: Jeff Law @@ -24210,8 +25344,8 @@ CommitDate: Mon Apr 30 14:04:07 2012 -0600 - Implement context routines for ARM (#817276) -:000000 100644 00000000 6866549b A glibc-rh817276.patch -:100644 100644 fe9cf757 c72f06a9 M glibc.spec +:000000 100644 0000000 6866549 A glibc-rh817276.patch +:100644 100644 fe9cf75 c72f06a M glibc.spec commit 64e6774cce09e713b9326f483d7e4f34241eee54 Author: Jeff Law @@ -24221,8 +25355,8 @@ CommitDate: Fri Apr 13 11:24:58 2012 -0600 - Issue a warning if FORTIFY_CHECKING is requested, but disabled. -:000000 100644 00000000 80d54275 A glibc-sw13979.patch -:100644 100644 b72c6452 fe9cf757 M glibc.spec +:000000 100644 0000000 80d5427 A glibc-sw13979.patch +:100644 100644 b72c645 fe9cf75 M glibc.spec commit f818b5c715151ad12f2e3eefa1dc71e78f98053a Author: Jeff Law @@ -24232,8 +25366,8 @@ CommitDate: Thu Apr 12 09:52:32 2012 -0600 + - Fix another unbound alloca in nscd groups (#788989) -:000000 100644 00000000 50c59f82 A glibc-rh788989-2.patch -:100644 100644 72da0341 b72c6452 M glibc.spec +:000000 100644 0000000 50c59f8 A glibc-rh788989-2.patch +:100644 100644 72da034 b72c645 M glibc.spec commit 92f265ff301b2b2da42028a0e49fa38b6ef9e943 Author: Jeff Law @@ -24244,10 +25378,10 @@ CommitDate: Thu Apr 5 15:59:29 2012 -0600 Separate patch list into not likely to upstream, upstream, pending upstream. Remove unnecessary ia64 patch. No functional changes. -:100644 100644 889b8cf6 6eba417b M glibc-fedora.patch -:100644 000000 05fd9229 00000000 D glibc-ia64-lib64.patch -:000000 100644 00000000 f4aa9058 A glibc-sw13579.patch -:100644 100644 a9651859 72da0341 M glibc.spec +:100644 100644 889b8cf 6eba417 M glibc-fedora.patch +:100644 000000 05fd922 0000000 D glibc-ia64-lib64.patch +:000000 100644 0000000 f4aa905 A glibc-sw13579.patch +:100644 100644 a965185 72da034 M glibc.spec commit 073b690e45717499b042a42e06630c0a50d2549d Author: Jeff Law @@ -24257,8 +25391,8 @@ CommitDate: Tue Apr 3 11:19:38 2012 -0600 - Fix first day of week for lv_LV (#682500) -:000000 100644 00000000 93dac2d0 A glibc-rh682500.patch -:100644 100644 7b2fd42d a9651859 M glibc.spec +:000000 100644 0000000 93dac2d A glibc-rh682500.patch +:100644 100644 7b2fd42 a965185 M glibc.spec commit c30958093b58e9c51bb10b6aa754133ce4c7e96f Author: Jeff Law @@ -24269,8 +25403,8 @@ CommitDate: Mon Apr 2 21:24:18 2012 -0600 - When retrying after main arena failure, always retry in a different arena. (#789238) -:000000 100644 00000000 91e8df78 A glibc-rh789238-2.patch -:100644 100644 e13f2435 7b2fd42d M glibc.spec +:000000 100644 0000000 91e8df7 A glibc-rh789238-2.patch +:100644 100644 e13f243 7b2fd42 M glibc.spec commit ca8adba64008498881f2db5435bed685d7b45667 Author: Jeff Law @@ -24280,7 +25414,7 @@ CommitDate: Fri Mar 30 09:56:08 2012 -0600 Final version of the 804792 patch. No functional changes. -:100644 100644 d91ae6f1 0ff243d1 M glibc-rh804792.patch +:100644 100644 d91ae6f 0ff243d M glibc-rh804792.patch commit 5022ed713cfd314910f7aadd4bdc9dd972b71953 Author: Jeff Law @@ -24290,8 +25424,8 @@ CommitDate: Thu Mar 29 12:46:29 2012 -0600 Avoid unbound alloca usage in *-crypt routines (#804792) -:000000 100644 00000000 d91ae6f1 A glibc-rh804792.patch -:100644 100644 78de6d01 e13f2435 M glibc.spec +:000000 100644 0000000 d91ae6f A glibc-rh804792.patch +:100644 100644 78de6d0 e13f243 M glibc.spec commit d004e5468f108f10ef33cbeedd599d0c06486253 Author: Jeff Law @@ -24301,8 +25435,8 @@ CommitDate: Thu Mar 29 10:25:56 2012 -0600 Fix data race in nscd (#806070) -:000000 100644 00000000 71d71332 A glibc-rh806070.patch -:100644 100644 5c232630 78de6d01 M glibc.spec +:000000 100644 0000000 71d7133 A glibc-rh806070.patch +:100644 100644 5c23263 78de6d0 M glibc.spec commit ccb21a9b27f37e33c7ab1f1ee782604b40538228 Author: Jeff Law @@ -24312,8 +25446,8 @@ CommitDate: Fri Mar 23 14:03:01 2012 -0600 - Fix typo in __nss_getent (#806403). -:000000 100644 00000000 8f852f9b A glibc-rh806403.patch -:100644 100644 0a0eef84 5c232630 M glibc.spec +:000000 100644 0000000 8f852f9 A glibc-rh806403.patch +:100644 100644 0a0eef8 5c23263 M glibc.spec commit 4ad934832a3bf982c24a5a2509c101e52694b11e Author: Jeff Law @@ -24324,9 +25458,9 @@ CommitDate: Wed Mar 14 21:21:22 2012 -0600 - Add doi_IN, sat_IN and mni_IN to SUPPORTED locals (#803286) - Add stap probes in slowpow and slowexp. -:000000 100644 00000000 d9f909c5 A glibc-rh803286.patch -:000000 100644 00000000 07761b98 A glibc-stap-libm.patch -:100644 100644 8fffa089 0a0eef84 M glibc.spec +:000000 100644 0000000 d9f909c A glibc-rh803286.patch +:000000 100644 0000000 07761b9 A glibc-stap-libm.patch +:100644 100644 8fffa08 0a0eef8 M glibc.spec commit d893fa43b788427c77386e97802847cdcffcbc8f Author: Jeff Law @@ -24336,9 +25470,9 @@ CommitDate: Fri Mar 9 15:20:06 2012 -0700 - Fix AVX checks (#801650) -:100644 100644 b20da753 a5c809b6 M glibc-rh801650-1.patch -:100644 100644 bc8469b2 6d1a1c4d M glibc-rh801650-2.patch -:100644 100644 a2e473b0 8fffa089 M glibc.spec +:100644 100644 b20da75 a5c809b M glibc-rh801650-1.patch +:100644 100644 bc8469b 6d1a1c4 M glibc-rh801650-2.patch +:100644 100644 a2e473b 8fffa08 M glibc.spec commit b113737687ca5b10fb3b100104442c3c555625de Author: Jeff Law @@ -24348,9 +25482,9 @@ CommitDate: Fri Mar 9 15:19:08 2012 -0700 - Fix AVX checks (#801650) -:100644 100644 1c6eecea c1b2989c M glibc-rh794797-2.patch -:000000 100644 00000000 b20da753 A glibc-rh801650-1.patch -:000000 100644 00000000 bc8469b2 A glibc-rh801650-2.patch +:100644 100644 1c6eece c1b2989 M glibc-rh794797-2.patch +:000000 100644 0000000 b20da75 A glibc-rh801650-1.patch +:000000 100644 0000000 bc8469b A glibc-rh801650-2.patch commit b8fef868f39b5e46ae4eb2440320b9e50461002e Author: Jeff Law @@ -24361,9 +25495,9 @@ CommitDate: Wed Mar 7 12:20:16 2012 -0700 - Set errno properly in vfprintf (#794797) - Don't kill application when LD_PROFILE is set. (#800224) -:000000 100644 00000000 1c6eecea A glibc-rh794797-2.patch -:000000 100644 00000000 ce8234c0 A glibc-rh800224.patch -:100644 100644 5399069e a2e473b0 M glibc.spec +:000000 100644 0000000 1c6eece A glibc-rh794797-2.patch +:000000 100644 0000000 ce8234c A glibc-rh800224.patch +:100644 100644 5399069 a2e473b M glibc.spec commit 978e71e3df84d53c6131cabd8e4632723c7e2fc4 Author: Jeff Law @@ -24373,8 +25507,8 @@ CommitDate: Wed Feb 29 12:50:51 2012 -0700 - Always mark vDSO as used (#758888) -:000000 100644 00000000 ccf97152 A glibc-rh758888.patch -:100644 100644 4f7b061c 5399069e M glibc.spec +:000000 100644 0000000 ccf9715 A glibc-rh758888.patch +:100644 100644 4f7b061 5399069 M glibc.spec commit 296965fe20b5fe833e527abd9e8f8b4e466c67d0 Author: Jeff Law @@ -24384,8 +25518,8 @@ CommitDate: Wed Feb 29 09:46:36 2012 -0700 - Fix out of bounds memory access in resolver (#798471) -:000000 100644 00000000 0000c5a1 A glibc-rh798471.patch -:100644 100644 75e5fe4c 4f7b061c M glibc.spec +:000000 100644 0000000 0000c5a A glibc-rh798471.patch +:100644 100644 75e5fe4 4f7b061 M glibc.spec commit f2aa9065577dd92e75b418314873ff9d9e7a99c3 Author: Jeff Law @@ -24395,7 +25529,7 @@ CommitDate: Fri Feb 24 10:51:48 2012 -0700 Fix typo -:100644 100644 72e07400 75e5fe4c M glibc.spec +:100644 100644 72e0740 75e5fe4 M glibc.spec commit c0564b95e0a7c2400e1f983cddd23779a85fcdae Author: Jeff Law @@ -24409,10 +25543,10 @@ CommitDate: Fri Feb 24 10:41:06 2012 -0700 are returned (#795498) - Fix nscd crash when group has many members (#788959) -:000000 100644 00000000 d32e2384 A glibc-rh760935.patch -:000000 100644 00000000 4e730cef A glibc-rh788989.patch -:000000 100644 00000000 729c5a4d A glibc-rh795498.patch -:100644 100644 00dea67e 72e07400 M glibc.spec +:000000 100644 0000000 d32e238 A glibc-rh760935.patch +:000000 100644 0000000 4e730ce A glibc-rh788989.patch +:000000 100644 0000000 729c5a4 A glibc-rh795498.patch +:100644 100644 00dea67 72e0740 M glibc.spec commit 0e190d479d2e7dd365577ff0d47169f851d34c24 Author: Jeff Law @@ -24423,8 +25557,8 @@ CommitDate: Mon Feb 20 21:21:30 2012 -0700 - Avoid "nargs" integer overflow which could be used to bypass FORTIFY_SOURCE (#794797) -:000000 100644 00000000 271538d8 A glibc-rh794797.patch -:100644 100644 1dad96fe 00dea67e M glibc.spec +:000000 100644 0000000 271538d A glibc-rh794797.patch +:100644 100644 1dad96f 00dea67 M glibc.spec commit a7a908e66969beb93d5cd60872e7a518dfb956f3 Author: Jeff Law @@ -24434,8 +25568,8 @@ CommitDate: Mon Feb 20 14:23:27 2012 -0700 - Fix main arena locking in malloc/calloc retry path (#789238) -:000000 100644 00000000 1801123b A glibc-rh789238.patch -:100644 100644 effaadfe 1dad96fe M glibc.spec +:000000 100644 0000000 1801123 A glibc-rh789238.patch +:100644 100644 effaadf 1dad96f M glibc.spec commit ecc055dd90636c44aca6dce9f05e60cac2d1aa35 Author: Jeff Law @@ -24447,8 +25581,8 @@ CommitDate: Fri Feb 17 12:36:00 2012 -0700 - Don't assign native result if result has no associated interface (#739743) -:000000 100644 00000000 c390b772 A glibc-rh739743.patch -:100644 100644 acad7b47 effaadfe M glibc.spec +:000000 100644 0000000 c390b77 A glibc-rh739743.patch +:100644 100644 acad7b4 effaadf M glibc.spec commit 0e9bf8be6ad883928185ec216c38ea406fdd1edf Author: Jeff Law @@ -24458,8 +25592,8 @@ CommitDate: Fri Feb 17 11:17:21 2012 -0700 Fixup 730856 bits -:100644 100644 0010c19c 14270ed7 M glibc-rh730856.patch -:100644 100644 812c4771 acad7b47 M glibc.spec +:100644 100644 0010c19 14270ed M glibc-rh730856.patch +:100644 100644 812c477 acad7b4 M glibc.spec commit fc9b7c88692243946794047bd45b364cc38f574b Author: Jeff Law @@ -24469,8 +25603,8 @@ CommitDate: Fri Feb 17 11:05:38 2012 -0700 Ignore link-local IPV6 addresses for AI_ADDRCONFIG (#697149) -:000000 100644 00000000 e94e0a75 A glibc-rh697149.patch -:100644 100644 968e645b 812c4771 M glibc.spec +:000000 100644 0000000 e94e0a7 A glibc-rh697149.patch +:100644 100644 968e645 812c477 M glibc.spec commit 817ee79b35f07ef3266ced2ef7bdfc626674cc3c Author: Jeff Law @@ -24480,8 +25614,8 @@ CommitDate: Thu Feb 16 23:01:37 2012 -0700 Fix reply buffer mismanagement in resolver (#730856) -:100644 100644 f7bd5d1d 0010c19c M glibc-rh730856.patch -:100644 100644 5e4f0882 968e645b M glibc.spec +:100644 100644 f7bd5d1 0010c19 M glibc-rh730856.patch +:100644 100644 5e4f088 968e645 M glibc.spec commit 47621c91beb4041fa84ee3d20d8f59ee731d9547 Author: Jeff Law @@ -24491,8 +25625,8 @@ CommitDate: Thu Feb 16 09:25:08 2012 -0700 - Add doi_IN (#791161) -:000000 100644 00000000 1c1fab0f A glibc-rh791161.patch -:100644 100644 a48203c4 5e4f0882 M glibc.spec +:000000 100644 0000000 1c1fab0 A glibc-rh791161.patch +:100644 100644 a48203c 5e4f088 M glibc.spec commit b22f1f5d25ea3857d00dcc295ab6fd01fb7d315a Author: Jeff Law @@ -24504,8 +25638,8 @@ CommitDate: Thu Feb 16 09:22:24 2012 -0700 This reverts commit 0f6595ecf58f103c0688302f219759d593d39fb2. -:100644 000000 3859a320 00000000 D glibc-rh552960-2.patch -:100644 100644 2cb88666 a48203c4 M glibc.spec +:100644 000000 3859a32 0000000 D glibc-rh552960-2.patch +:100644 100644 2cb8866 a48203c M glibc.spec commit a200e9e81fc61f3abeee427ddf03e3c3aac9fe3f Author: Jeff Law @@ -24516,9 +25650,9 @@ CommitDate: Tue Feb 14 09:54:55 2012 -0700 - Add sat_IN (#790292) - Add mni_IN (#790298) -:000000 100644 00000000 4f1351d6 A glibc-rh790292.patch -:000000 100644 00000000 92bf6202 A glibc-rh790298.patch -:100644 100644 c20f94ad 2cb88666 M glibc.spec +:000000 100644 0000000 4f1351d A glibc-rh790292.patch +:000000 100644 0000000 92bf620 A glibc-rh790298.patch +:100644 100644 c20f94a 2cb8866 M glibc.spec commit 0f6595ecf58f103c0688302f219759d593d39fb2 Author: Jeff Law @@ -24528,8 +25662,8 @@ CommitDate: Fri Feb 10 12:56:02 2012 -0700 Fix lost wakeups in pthread_cond_*. (#552960, #769421) -:000000 100644 00000000 3859a320 A glibc-rh552960-2.patch -:100644 100644 23f3738a c20f94ad M glibc.spec +:000000 100644 0000000 3859a32 A glibc-rh552960-2.patch +:100644 100644 23f3738 c20f94a M glibc.spec commit 48de2e8094305295f811828f3657f508b74dea63 Author: Jeff Law @@ -24539,7 +25673,7 @@ CommitDate: Fri Feb 10 12:47:23 2012 -0700 Remove unwanted hunks -:100644 100644 8de7fb24 326157ac M glibc-rh564528.patch +:100644 100644 8de7fb2 326157a M glibc-rh564528.patch commit ffdb8099ced7d557446d22fcf2c58e00f373740e Author: Jeff Law @@ -24549,8 +25683,8 @@ CommitDate: Thu Feb 9 23:50:17 2012 -0700 Clarify info page for snprintf (#564528) -:000000 100644 00000000 8de7fb24 A glibc-rh564528.patch -:100644 100644 1a45ec88 23f3738a M glibc.spec +:000000 100644 0000000 8de7fb2 A glibc-rh564528.patch +:100644 100644 1a45ec8 23f3738 M glibc.spec commit a3c3ac2213a188794e8419f10eacf8967043d808 Author: Jeff Law @@ -24560,8 +25694,8 @@ CommitDate: Thu Feb 9 23:01:54 2012 -0700 Fix first_weekday and first_workday for ru_UA (#624296) -:000000 100644 00000000 c03994b6 A glibc-rh624296.patch -:100644 100644 e267c934 1a45ec88 M glibc.spec +:000000 100644 0000000 c03994b A glibc-rh624296.patch +:100644 100644 e267c93 1a45ec8 M glibc.spec commit 930810752aaf4da690f2a20e811f880b53a8ed47 Author: Jeff Law @@ -24571,7 +25705,7 @@ CommitDate: Thu Feb 9 22:33:20 2012 -0700 Update patch for Fedora -:100644 100644 c5604c33 9645298b M glibc-rh789209.patch +:100644 100644 c5604c3 9645298 M glibc-rh789209.patch commit 29567a505dd8e214c09ce6cc84459cb8664ad50e Author: Jeff Law @@ -24581,8 +25715,8 @@ CommitDate: Thu Feb 9 22:16:57 2012 -0700 Fix currency_symbol for uk_UA (#789209) -:000000 100644 00000000 c5604c33 A glibc-rh789209.patch -:100644 100644 aa389309 e267c934 M glibc.spec +:000000 100644 0000000 c5604c3 A glibc-rh789209.patch +:100644 100644 aa38930 e267c93 M glibc.spec commit 5c2160b7f3eb8233080be4ec43f5d677825cd6fc Author: Jeff Law @@ -24592,8 +25726,8 @@ CommitDate: Thu Feb 9 10:47:47 2012 -0700 Fix weekday names in Kashmiri locale (#770439) -:000000 100644 00000000 a6ec302a A glibc-rh770439.patch -:100644 100644 5fe14bdf aa389309 M glibc.spec +:000000 100644 0000000 a6ec302 A glibc-rh770439.patch +:100644 100644 5fe14bd aa38930 M glibc.spec commit cd1492e433eb713bcf93ce98294829205bee0fb5 Author: Jeff Law @@ -24603,7 +25737,7 @@ CommitDate: Thu Feb 9 10:43:42 2012 -0700 Removing unused patchfile. -:100644 000000 a2522535 00000000 D glibc-rh787662.patch +:100644 000000 a252253 0000000 D glibc-rh787662.patch commit b8f291fb635170315b4d151f9ae1b941dea08287 Author: Jeff Law @@ -24613,7 +25747,7 @@ CommitDate: Tue Feb 7 22:12:19 2012 -0700 Remove change for 787662, correct fix is in gcc. -:100644 100644 59781177 5fe14bdf M glibc.spec +:100644 100644 5978117 5fe14bd M glibc.spec commit 7472f9034f3460c9f16068e3e79f6a5c2e414ed2 Author: Jeff Law @@ -24623,8 +25757,8 @@ CommitDate: Tue Feb 7 12:03:30 2012 -0700 Find cpp in /usr/bin too (#767662) -:000000 100644 00000000 a2522535 A glibc-rh787662.patch -:100644 100644 462bdaab 59781177 M glibc.spec +:000000 100644 0000000 a252253 A glibc-rh787662.patch +:100644 100644 462bdaa 5978117 M glibc.spec commit a8b56792820b862f17e9fce9e62ee4d8ac774059 Author: Jeff Law @@ -24634,8 +25768,8 @@ CommitDate: Mon Feb 6 12:19:06 2012 -0700 More accurately detect if we're in a chroot (#688948) -:000000 100644 00000000 f067a801 A glibc-rh688948.patch -:100644 100644 13846abc 462bdaab M glibc.spec +:000000 100644 0000000 f067a80 A glibc-rh688948.patch +:100644 100644 13846ab 462bdaa M glibc.spec commit 46bc83a891f30c1c1e2d833846fecfe0b5526a0b Author: Jeff Law @@ -24645,8 +25779,8 @@ CommitDate: Fri Feb 3 14:32:45 2012 -0700 - Add fedfs to /etc/rpc (#691912) -:000000 100644 00000000 53a968e9 A glibc-rh691912.patch -:100644 100644 0cde08af 13846abc M glibc.spec +:000000 100644 0000000 53a968e A glibc-rh691912.patch +:100644 100644 0cde08a 13846ab M glibc.spec commit af740e08c93fcdf5addc4a72e5cd6143b300fb23 Author: Jeff Law @@ -24656,8 +25790,8 @@ CommitDate: Fri Feb 3 13:42:46 2012 -0700 - Run nscd in the foreground w/ syslogging, fix systemd config (#770869) -:000000 100644 00000000 f9c3a3b8 A glibc-rh770869.patch -:100644 100644 28d56260 0cde08af M glibc.spec +:000000 100644 0000000 f9c3a3b A glibc-rh770869.patch +:100644 100644 28d5626 0cde08a M glibc.spec commit 92f446a92ece9db09d389026b1ebfd63ad386d16 Author: Jeff Law @@ -24667,8 +25801,8 @@ CommitDate: Fri Feb 3 11:03:58 2012 -0700 - Avoid mapping past end of shared object (#741105) -:000000 100644 00000000 82520620 A glibc-rh741105.patch -:100644 100644 e85d752b 28d56260 M glibc.spec +:000000 100644 0000000 8252062 A glibc-rh741105.patch +:100644 100644 e85d752 28d5626 M glibc.spec commit 360c4a1c7828ba88bfbb757a3b25e29164e78c2d Author: Jeff Law @@ -24679,9 +25813,9 @@ CommitDate: Fri Feb 3 09:30:02 2012 -0700 - Turn off -mno-minimal-toc on PPC (#787201) - Remove hunk from glibc-rh657588.patch that didn't belong -:100644 100644 f5895a35 80ba5e84 M glibc-rh657588.patch -:000000 100644 00000000 cd7cfe18 A glibc-rh787201.patch -:100644 100644 155cc7b4 e85d752b M glibc.spec +:100644 100644 f5895a3 80ba5e8 M glibc-rh657588.patch +:000000 100644 0000000 cd7cfe1 A glibc-rh787201.patch +:100644 100644 155cc7b e85d752 M glibc.spec commit 2a042bc0f70e2bb6f7c56b7c2adab26c535540d1 Author: Jeff Law @@ -24691,8 +25825,8 @@ CommitDate: Wed Feb 1 09:52:38 2012 -0700 Fix month abbreviations for zh_CN (#657588) -:000000 100644 00000000 f5895a35 A glibc-rh657588.patch -:100644 100644 b005debd 155cc7b4 M glibc.spec +:000000 100644 0000000 f5895a3 A glibc-rh657588.patch +:100644 100644 b005deb 155cc7b M glibc.spec commit dd7f54d17df206b422e7b7da740285d6bb9fd027 Author: Jeff Law @@ -24702,8 +25836,8 @@ CommitDate: Wed Feb 1 09:37:08 2012 -0700 Prevent erroneous inline optimization of initfini.s on PowerPC64 (#783979) -:000000 100644 00000000 7540525e A glibc-rh783979.patch -:100644 100644 439752bd b005debd M glibc.spec +:000000 100644 0000000 7540525 A glibc-rh783979.patch +:100644 100644 439752b b005deb M glibc.spec commit 7b27d27fa9c70210ac390d8d510df98951d6ca3b Author: Jeff Law @@ -24713,8 +25847,8 @@ CommitDate: Wed Feb 1 09:32:10 2012 -0700 Use upstream variant of fix for 740506. -:100644 100644 6e20ff96 99cf22c1 M glibc-rh740506.patch -:100644 100644 51a3e3d8 439752bd M glibc.spec +:100644 100644 6e20ff9 99cf22c M glibc-rh740506.patch +:100644 100644 51a3e3d 439752b M glibc.spec commit 70c5758f4321a3e30a51c2c61882bfb5748a3699 Author: Jeff Law @@ -24725,9 +25859,9 @@ CommitDate: Sun Jan 29 22:24:24 2012 -0700 - Sort objects before relocations (sw#13618) - Fix bogus sort code that was copied from dl-deps.c. -:000000 100644 00000000 bb4b06e3 A glibc-sw13618-2.patch -:000000 100644 00000000 6202deb7 A glibc-sw13618.patch -:100644 100644 1672c762 51a3e3d8 M glibc.spec +:000000 100644 0000000 bb4b06e A glibc-sw13618-2.patch +:000000 100644 0000000 6202deb A glibc-sw13618.patch +:100644 100644 1672c76 51a3e3d M glibc.spec commit 61e27a51819cd392f923aec58bd594d452366dbd Author: Jeff Law @@ -24737,8 +25871,8 @@ CommitDate: Thu Jan 26 11:57:01 2012 -0700 Resolves: #740682 -:000000 100644 00000000 b0418d14 A glibc-rh740682.patch -:100644 100644 0cf4c909 1672c762 M glibc.spec +:000000 100644 0000000 b0418d1 A glibc-rh740682.patch +:100644 100644 0cf4c90 1672c76 M glibc.spec commit e8db5b40639c96b5170d11867cf5cb9f385bdde9 Author: Jeff Law @@ -24748,8 +25882,8 @@ CommitDate: Thu Jan 26 11:03:17 2012 -0700 - Add aliases for ISO-10646-UCS-2 (#697421) -:000000 100644 00000000 961c8053 A glibc-rh697421.patch -:100644 100644 2062e34a 0cf4c909 M glibc.spec +:000000 100644 0000000 961c805 A glibc-rh697421.patch +:100644 100644 2062e34 0cf4c90 M glibc.spec commit 1f95681b6e99ce66c820117556211a52697e0fb4 Author: Jeff Law @@ -24759,7 +25893,7 @@ CommitDate: Wed Jan 25 21:58:33 2012 -0700 Bump version# -:100644 100644 891845c5 2062e34a M glibc.spec +:100644 100644 891845c 2062e34 M glibc.spec commit c89b9e0c474c95bb8d8956bf24b9bf3200baae03 Author: Jeff Law @@ -24769,8 +25903,8 @@ CommitDate: Wed Jan 25 21:57:42 2012 -0700 Resolves: #179072 -:000000 100644 00000000 d17fd136 A glibc-rh179072.patch -:100644 100644 ecbd72b9 891845c5 M glibc.spec +:000000 100644 0000000 d17fd13 A glibc-rh179072.patch +:100644 100644 ecbd72b 891845c M glibc.spec commit 26b6b52f86fc01d67a43ba62429396f6b3ffc74d Author: Jeff Law @@ -24780,9 +25914,9 @@ CommitDate: Wed Jan 25 21:42:59 2012 -0700 Break systemtap patches out of glibc-fedora.patch into glibc-stap.patch -:100644 100644 25fa0673 889b8cf6 M glibc-fedora.patch -:000000 100644 00000000 b3ff9fa0 A glibc-stap.patch -:100644 100644 c9aaae5f ecbd72b9 M glibc.spec +:100644 100644 25fa067 889b8cf M glibc-fedora.patch +:000000 100644 0000000 b3ff9fa A glibc-stap.patch +:100644 100644 c9aaae5 ecbd72b M glibc.spec commit 68357f8e9f15f7a0a083b7a157292f984d54299c Author: Jeff Law @@ -24795,10 +25929,10 @@ CommitDate: Tue Jan 24 21:23:41 2012 -0700 - Do not cache negative results in nscd if these are transient (#784402) -:000000 100644 00000000 6e26a854 A glibc-rh622499.patch -:100644 100644 f2979706 5d4ba8da M glibc-rh729661.patch -:000000 100644 00000000 5e783f5e A glibc-rh784402.patch -:100644 100644 9203f2fd c9aaae5f M glibc.spec +:000000 100644 0000000 6e26a85 A glibc-rh622499.patch +:100644 100644 f297970 5d4ba8d M glibc-rh729661.patch +:000000 100644 0000000 5e783f5 A glibc-rh784402.patch +:100644 100644 9203f2f c9aaae5 M glibc.spec commit a434010a7c76ecd5b86d9f36ee1a3cb4ccea2836 Author: Jeff Law @@ -24808,9 +25942,9 @@ CommitDate: Tue Jan 24 14:43:00 2012 -0700 - Update ports from master. -:100644 100644 9ae290a4 e1d2eb5e M .gitignore -:100644 100644 5647f905 9203f2fd M glibc.spec -:100644 100644 8bf8bca2 1f4929b5 M sources +:100644 100644 9ae290a e1d2eb5 M .gitignore +:100644 100644 5647f90 9203f2f M glibc.spec +:100644 100644 8bf8bca 1f4929b M sources commit ee7ce9fbc1cfc826272fb1f43483001d014b07c1 Author: Jeff Law @@ -24821,9 +25955,9 @@ CommitDate: Mon Jan 23 15:00:11 2012 -0700 - Fix first workday/weekday for it_IT (#446078) - Fix first workday/weekday for ca_ES (#454629) -:000000 100644 00000000 311cb3e7 A glibc-rh446078.patch -:000000 100644 00000000 42f93e10 A glibc-rh454629.patch -:100644 100644 de833a0a 5647f905 M glibc.spec +:000000 100644 0000000 311cb3e A glibc-rh446078.patch +:000000 100644 0000000 42f93e1 A glibc-rh454629.patch +:100644 100644 de833a0 5647f90 M glibc.spec commit 4dc232f59d9bc46050bc6ee199f3f14e1b72cf2c Author: Jeff Law @@ -24833,8 +25967,8 @@ CommitDate: Mon Jan 23 14:41:49 2012 -0700 Fix cycle detection & overflows (729661) -:000000 100644 00000000 f2979706 A glibc-rh729661.patch -:100644 100644 ad730976 de833a0a M glibc.spec +:000000 100644 0000000 f297970 A glibc-rh729661.patch +:100644 100644 ad73097 de833a0 M glibc.spec commit d9d4748f79c1a55a1b4ecd052fa45a27ba122031 Author: Dennis Gilmore @@ -24844,7 +25978,7 @@ CommitDate: Thu Jan 12 21:37:06 2012 -0600 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild -:100644 100644 92509e4a ad730976 M glibc.spec +:100644 100644 92509e4 ad73097 M glibc.spec commit b37e2e87ad71b4cbd01903766444b9f9219608c7 Author: Jeff Law @@ -24854,8 +25988,8 @@ CommitDate: Sun Jan 1 21:02:29 2012 -0700 Fix after update from upstream glibc-2.15 -:100644 100644 bfef6cf5 25fa0673 M glibc-fedora.patch -:100644 100644 96ec3d73 996aba12 M glibc-rh769421.patch +:100644 100644 bfef6cf 25fa067 M glibc-fedora.patch +:100644 100644 96ec3d7 996aba1 M glibc-rh769421.patch commit 71ecd3cdb429890727840ba97fb55d1e9940fd77 Author: Jeff Law @@ -24865,11 +25999,11 @@ CommitDate: Sun Jan 1 18:33:52 2012 -0700 Update from master (a316c1f) -:100644 100644 0b933ba4 9ae290a4 M .gitignore -:100644 100644 1f5298bb bfef6cf5 M glibc-fedora.patch -:100644 100644 67f5ad73 96ec3d73 M glibc-rh769421.patch -:100644 100644 3542d9a6 92509e4a M glibc.spec -:100644 100644 e3752e04 8bf8bca2 M sources +:100644 100644 0b933ba 9ae290a M .gitignore +:100644 100644 1f5298b bfef6cf M glibc-fedora.patch +:100644 100644 67f5ad7 96ec3d7 M glibc-rh769421.patch +:100644 100644 3542d9a 92509e4 M glibc.spec +:100644 100644 e3752e0 8bf8bca M sources commit 25912eaa884ea342aeba0095b7f88780ca725991 Author: Jeff Law @@ -24884,14 +26018,14 @@ CommitDate: Thu Dec 22 19:25:40 2011 +0000 - Revert "fix" to pthread_cond_wait (#769421) - Extract patch for 730856 from fedora-patch into a distinct patchfile -:100644 100644 8b28c6ea 0b933ba4 M .gitignore -:100644 100644 807a6bb6 1f5298bb M glibc-fedora.patch -:000000 100644 00000000 f7bd5d1d A glibc-rh730856.patch -:000000 100644 00000000 6e20ff96 A glibc-rh740506.patch -:000000 100644 00000000 67f5ad73 A glibc-rh769421.patch -:000000 100644 00000000 378eda13 A glibc-rh769476.patch -:100644 100644 aeb21bec 3542d9a6 M glibc.spec -:100644 100644 0a836c84 e3752e04 M sources +:100644 100644 8b28c6e 0b933ba M .gitignore +:100644 100644 807a6bb 1f5298b M glibc-fedora.patch +:000000 100644 0000000 f7bd5d1 A glibc-rh730856.patch +:000000 100644 0000000 6e20ff9 A glibc-rh740506.patch +:000000 100644 0000000 67f5ad7 A glibc-rh769421.patch +:000000 100644 0000000 378eda1 A glibc-rh769476.patch +:100644 100644 aeb21be 3542d9a M glibc.spec +:100644 100644 0a836c8 e3752e0 M sources commit f79eb1f5028c97ae3735e7264b703885ca696bfb Author: Jeff Law @@ -24901,25 +26035,25 @@ CommitDate: Tue Dec 20 05:46:44 2011 +0000 - Update from master (a4647e7). -:100644 100644 38c15948 8b28c6ea M .gitignore -:100644 000000 56ea56d3 00000000 D glibc-arenalock.patch -:100644 000000 4b267228 00000000 D glibc-fdelt.patch -:100644 100644 af6a2a47 807a6bb6 M glibc-fedora.patch -:100644 000000 13ca55b1 00000000 D glibc-localegrouping.patch -:100644 000000 1cac26e6 00000000 D glibc-no-leaf-attribute.patch -:100644 000000 96e2c8c3 00000000 D glibc-rh552960.patch -:100644 000000 efc81162 00000000 D glibc-rh708455.patch -:100644 000000 325766b9 00000000 D glibc-rh750811.patch -:100644 000000 c2840d72 00000000 D glibc-rh750858.patch -:100644 000000 436f28a8 00000000 D glibc-rh757887.patch -:100644 000000 bdac89a5 00000000 D glibc-rh758252.patch -:100644 000000 66493ac9 00000000 D glibc-rh767696.patch -:100644 000000 58d96d81 00000000 D glibc-rh767746.patch -:100644 100644 8e2dae87 aeb21bec M glibc.spec -:100644 100644 c990b62a 0a836c84 M sources +:100644 100644 38c1594 8b28c6e M .gitignore +:100644 000000 56ea56d 0000000 D glibc-arenalock.patch +:100644 000000 4b26722 0000000 D glibc-fdelt.patch +:100644 100644 af6a2a4 807a6bb M glibc-fedora.patch +:100644 000000 13ca55b 0000000 D glibc-localegrouping.patch +:100644 000000 1cac26e 0000000 D glibc-no-leaf-attribute.patch +:100644 000000 96e2c8c 0000000 D glibc-rh552960.patch +:100644 000000 efc8116 0000000 D glibc-rh708455.patch +:100644 000000 325766b 0000000 D glibc-rh750811.patch +:100644 000000 c2840d7 0000000 D glibc-rh750858.patch +:100644 000000 436f28a 0000000 D glibc-rh757887.patch +:100644 000000 bdac89a 0000000 D glibc-rh758252.patch +:100644 000000 66493ac 0000000 D glibc-rh767696.patch +:100644 000000 58d96d8 0000000 D glibc-rh767746.patch +:100644 100644 8e2dae8 aeb21be M glibc.spec +:100644 100644 c990b62 0a836c8 M sources commit 8cbc6b28a560af244e53f7898e3f132d869f00df -Merge: 51c5ad24 e13f8ca6 +Merge: 51c5ad2 e13f8ca Author: Jeff Law AuthorDate: Mon Dec 19 06:15:17 2011 +0000 Commit: Jeff Law @@ -24927,11 +26061,11 @@ CommitDate: Mon Dec 19 06:15:17 2011 +0000 Merge remote-tracking branch 'origin/f16' -:100644 100644 0536efa1 66493ac9 M glibc-rh767696.patch -:100644 100644 7d5179fb 8e2dae87 M glibc.spec +:100644 100644 0536efa 66493ac M glibc-rh767696.patch +:100644 100644 7d5179f 8e2dae8 M glibc.spec commit 51c5ad24841a57e91f67c612eb2abd41705b4358 -Merge: be95b8a4 bc05e7ac +Merge: be95b8a bc05e7a Author: Jeff Law AuthorDate: Mon Dec 19 05:19:27 2011 +0000 Commit: Jeff Law @@ -24939,11 +26073,11 @@ CommitDate: Mon Dec 19 05:19:27 2011 +0000 Merge remote-tracking branch 'origin/f16' -:000000 100644 00000000 0536efa1 A glibc-rh767696.patch -:100644 100644 07bdf9b6 7d5179fb M glibc.spec +:000000 100644 0000000 0536efa A glibc-rh767696.patch +:100644 100644 07bdf9b 7d5179f M glibc.spec commit be95b8a4bef7a7d6d4a29939213e288ac84cbeb1 -Merge: c388b17a 73a44fd6 +Merge: c388b17 73a44fd Author: Jeff Law AuthorDate: Thu Dec 15 22:02:00 2011 -0700 Commit: Jeff Law @@ -24954,12 +26088,12 @@ CommitDate: Thu Dec 15 22:02:00 2011 -0700 Conflicts: glibc.spec -:000000 100644 00000000 96e2c8c3 A glibc-rh552960.patch -:000000 100644 00000000 58d96d81 A glibc-rh767746.patch -:100644 100644 a10b1247 07bdf9b6 M glibc.spec +:000000 100644 0000000 96e2c8c A glibc-rh552960.patch +:000000 100644 0000000 58d96d8 A glibc-rh767746.patch +:100644 100644 a10b124 07bdf9b M glibc.spec commit c388b17ae97402347c861068bdb187da0b21e014 -Merge: 1aa714a9 07d0fb6d +Merge: 1aa714a 07d0fb6 Author: Jeff Law AuthorDate: Thu Dec 15 19:51:34 2011 -0700 Commit: Jeff Law @@ -24968,7 +26102,7 @@ CommitDate: Thu Dec 15 19:51:34 2011 -0700 Merge branch 'master' of ssh://pkgs.fedoraproject.org/glibc commit 1aa714a9d71c25dfd9717886d9028c8ddfdddaa9 -Merge: f0d2fdc7 341defed +Merge: f0d2fdc 341defe Author: Jeff Law AuthorDate: Mon Dec 12 11:23:59 2011 -0700 Commit: Jeff Law @@ -24976,10 +26110,10 @@ CommitDate: Mon Dec 12 11:23:59 2011 -0700 Merge commit '341defed2c87effd2001a971e3710f63a8473825' -:000000 100644 00000000 bdac89a5 A glibc-rh758252.patch +:000000 100644 0000000 bdac89a A glibc-rh758252.patch commit f0d2fdc7e830605c31bb76cf9408b9d9b8a66e1b -Merge: 608edcf2 7b815769 +Merge: 608edcf 7b81576 Author: Dennis Gilmore AuthorDate: Mon Dec 12 11:48:56 2011 -0600 Commit: Dennis Gilmore @@ -24990,13 +26124,13 @@ CommitDate: Mon Dec 12 11:48:56 2011 -0600 Conflicts: glibc.spec -:000000 100644 00000000 4b267228 A glibc-fdelt.patch -:000000 100644 00000000 efc81162 A glibc-rh708455.patch -:000000 100644 00000000 325766b9 A glibc-rh750811.patch -:100644 100644 735e3c69 a10b1247 M glibc.spec +:000000 100644 0000000 4b26722 A glibc-fdelt.patch +:000000 100644 0000000 efc8116 A glibc-rh708455.patch +:000000 100644 0000000 325766b A glibc-rh750811.patch +:100644 100644 735e3c6 a10b124 M glibc.spec commit 608edcf2b63db4283d988c5c5e7f3eadcd005200 -Merge: b327b51c 2c67eb0f +Merge: b327b51 2c67eb0 Author: Jeff Law AuthorDate: Tue Dec 6 11:20:45 2011 -0700 Commit: Jeff Law @@ -25007,9 +26141,9 @@ CommitDate: Tue Dec 6 11:20:45 2011 -0700 Conflicts: glibc.spec -:000000 100644 00000000 c2840d72 A glibc-rh750858.patch -:000000 100644 00000000 436f28a8 A glibc-rh757887.patch -:100644 100644 f2861674 735e3c69 M glibc.spec +:000000 100644 0000000 c2840d7 A glibc-rh750858.patch +:000000 100644 0000000 436f28a A glibc-rh757887.patch +:100644 100644 f286167 735e3c6 M glibc.spec commit b327b51c2f1b1359a448af2c95412189fa734e4e Author: Dennis Gilmore @@ -25019,10 +26153,10 @@ CommitDate: Wed Nov 30 21:46:10 2011 -0600 add disttag -:100644 100644 fee2558f f2861674 M glibc.spec +:100644 100644 fee2558 f286167 M glibc.spec commit 50477821bcd667d7c3b3c72d63cc7b017a132160 -Merge: 17ee0781 2716093f +Merge: 17ee078 2716093 Author: Dennis Gilmore AuthorDate: Wed Nov 30 21:45:48 2011 -0600 Commit: Dennis Gilmore @@ -25033,9 +26167,9 @@ CommitDate: Wed Nov 30 21:45:48 2011 -0600 Conflicts: glibc.spec -:100644 100644 318563b1 38c15948 M .gitignore -:000000 100644 00000000 0b41987f A glibc-rh757881.patch -:100644 100644 1495e71f fee2558f M glibc.spec +:100644 100644 318563b 38c1594 M .gitignore +:000000 100644 0000000 0b41987 A glibc-rh757881.patch +:100644 100644 1495e71 fee2558 M glibc.spec commit 17ee0781d1f68a2ddaa7da95c7a0c2a9c25c51f7 Author: Jeff Law @@ -25045,7 +26179,7 @@ CommitDate: Mon Nov 21 11:13:07 2011 -0700 Fix typo in changelog -:100644 100644 c271f367 1495e71f M glibc.spec +:100644 100644 c271f36 1495e71 M glibc.spec commit f2c76e2b1bc671e00cf2ae617842c4a82b3da259 Author: Jeff Law @@ -25055,7 +26189,7 @@ CommitDate: Mon Nov 21 10:42:04 2011 -0700 Add upstream BZ# to -19 update -:100644 100644 d77f8d48 c271f367 M glibc.spec +:100644 100644 d77f8d4 c271f36 M glibc.spec commit 5d47a9295a1a3751a14066edd9989b2acf74e8e1 Author: Jeff Law @@ -25076,9 +26210,9 @@ CommitDate: Mon Nov 21 10:33:40 2011 -0700 Pulled into master (f17) -:000000 100644 00000000 56ea56d3 A glibc-arenalock.patch -:000000 100644 00000000 13ca55b1 A glibc-localegrouping.patch -:100644 100644 fb3cd14d d77f8d48 M glibc.spec +:000000 100644 0000000 56ea56d A glibc-arenalock.patch +:000000 100644 0000000 13ca55b A glibc-localegrouping.patch +:100644 100644 fb3cd14 d77f8d4 M glibc.spec commit a515186e368f56556e46c8f1d9eff2501e33f5f1 Author: Dennis Gilmore @@ -25088,7 +26222,7 @@ CommitDate: Wed Oct 26 18:51:17 2011 -0500 - Rebuilt for glibc bug#747377 -:100644 100644 52801f06 fb3cd14d M glibc.spec +:100644 100644 52801f0 fb3cd14 M glibc.spec commit 4b931c38d9445565a3e3e2c9803934de701d38e6 Author: Jim Meyering @@ -25102,8 +26236,8 @@ CommitDate: Wed Oct 26 12:27:12 2011 -0700 sometimes even out of critical sections. See http://bugzilla.redhat.com/747377 -:000000 100644 00000000 1cac26e6 A glibc-no-leaf-attribute.patch -:100644 100644 1aebfeef 52801f06 M glibc.spec +:000000 100644 0000000 1cac26e A glibc-no-leaf-attribute.patch +:100644 100644 1aebfee 52801f0 M glibc.spec commit 29e836b7ac8a1011f6e18d389d64714782e58da9 Author: Andreas Schwab @@ -25113,10 +26247,10 @@ CommitDate: Wed Oct 19 13:15:08 2011 +0200 2.14.90-13 -:100644 100644 ce6f546f 318563b1 M .gitignore -:100644 100644 a4cbea64 af6a2a47 M glibc-fedora.patch -:100644 100644 b7564cc0 1aebfeef M glibc.spec -:100644 100644 240489de c990b62a M sources +:100644 100644 ce6f546 318563b M .gitignore +:100644 100644 a4cbea6 af6a2a4 M glibc-fedora.patch +:100644 100644 b7564cc 1aebfee M glibc.spec +:100644 100644 240489d c990b62 M sources commit 70defc99d881d709821738453294ddba66e6a5d7 Author: Andreas Schwab @@ -25126,10 +26260,10 @@ CommitDate: Mon Oct 17 14:23:54 2011 +0200 2.14.90-12 -:100644 100644 0ff27853 b7564cc0 M glibc.spec +:100644 100644 0ff2785 b7564cc M glibc.spec commit 1352c0cbaea33440425a5e4c7ca5952d977c1a99 -Merge: 90b266ec cf622420 +Merge: 90b266e cf62242 Author: Andreas Schwab AuthorDate: Mon Oct 17 14:21:36 2011 +0200 Commit: Andreas Schwab @@ -25145,10 +26279,10 @@ CommitDate: Mon Oct 17 14:20:08 2011 +0200 2.14.90-12 -:100644 100644 0c5f087c ce6f546f M .gitignore -:100644 100644 2c66fd0a a4cbea64 M glibc-fedora.patch -:100644 100644 6049519a 0ff27853 M glibc.spec -:100644 100644 9b1a8738 240489de M sources +:100644 100644 0c5f087 ce6f546 M .gitignore +:100644 100644 2c66fd0 a4cbea6 M glibc-fedora.patch +:100644 100644 6049519 0ff2785 M glibc.spec +:100644 100644 9b1a873 240489d M sources commit 13d2c2fdc249704201c1335c32e50a9f6f53ae4e Author: Andreas Schwab @@ -25158,10 +26292,10 @@ CommitDate: Tue Oct 11 14:02:50 2011 +0200 2.14.90-11 -:100644 100644 4f89512e 0c5f087c M .gitignore -:100644 100644 dd38f6a2 2c66fd0a M glibc-fedora.patch -:100644 100644 92caee01 6049519a M glibc.spec -:100644 100644 6eecc606 9b1a8738 M sources +:100644 100644 4f89512 0c5f087 M .gitignore +:100644 100644 dd38f6a 2c66fd0 M glibc-fedora.patch +:100644 100644 92caee0 6049519 M glibc.spec +:100644 100644 6eecc60 9b1a873 M sources commit 389eedc12de7334204d8a7b71e65a7d9c6a8139b Author: Andreas Schwab @@ -25171,10 +26305,10 @@ CommitDate: Wed Sep 28 14:23:58 2011 +0200 2.14.90-10 -:100644 100644 37ffb80d 4f89512e M .gitignore -:100644 100644 6f030a18 dd38f6a2 M glibc-fedora.patch -:100644 100644 84574416 92caee01 M glibc.spec -:100644 100644 6257dee9 6eecc606 M sources +:100644 100644 37ffb80 4f89512 M .gitignore +:100644 100644 6f030a1 dd38f6a M glibc-fedora.patch +:100644 100644 8457441 92caee0 M glibc.spec +:100644 100644 6257dee 6eecc60 M sources commit aeada30480a8b89c1aa65ea32534e0f91d0c8680 Author: Andreas Schwab @@ -25184,10 +26318,10 @@ CommitDate: Fri Sep 16 14:17:45 2011 +0200 2.14.90-9 -:100644 100644 b4fbf701 37ffb80d M .gitignore -:100644 100644 fae21649 6f030a18 M glibc-fedora.patch -:100644 100644 f7023697 84574416 M glibc.spec -:100644 100644 3665f97c 6257dee9 M sources +:100644 100644 b4fbf70 37ffb80 M .gitignore +:100644 100644 fae2164 6f030a1 M glibc-fedora.patch +:100644 100644 f702369 8457441 M glibc.spec +:100644 100644 3665f97 6257dee M sources commit 8e59833f6d5bfdc47155f7e0c04dc95e7e6c3fc1 Author: Andreas Schwab @@ -25197,10 +26331,10 @@ CommitDate: Thu Sep 8 13:44:47 2011 +0200 2.14.90-8 -:100644 100644 c7d10a1e b4fbf701 M .gitignore -:100644 100644 7639cc18 fae21649 M glibc-fedora.patch -:100644 100644 3720bd32 f7023697 M glibc.spec -:100644 100644 bb3d222c 3665f97c M sources +:100644 100644 c7d10a1 b4fbf70 M .gitignore +:100644 100644 7639cc1 fae2164 M glibc-fedora.patch +:100644 100644 3720bd3 f702369 M glibc.spec +:100644 100644 bb3d222 3665f97 M sources commit d05dd8538a552f4b4831d073eb11ff694d99419f Author: Andreas Schwab @@ -25210,10 +26344,10 @@ CommitDate: Thu Sep 1 14:44:40 2011 +0200 2.14.90-7 -:100644 100644 09c90d37 c7d10a1e M .gitignore -:100644 100644 e4f85484 7639cc18 M glibc-fedora.patch -:100644 100644 8e191ae9 3720bd32 M glibc.spec -:100644 100644 4f089b03 bb3d222c M sources +:100644 100644 09c90d3 c7d10a1 M .gitignore +:100644 100644 e4f8548 7639cc1 M glibc-fedora.patch +:100644 100644 8e191ae 3720bd3 M glibc.spec +:100644 100644 4f089b0 bb3d222 M sources commit 02300746cd0dd22adf0239b3bf2f0ef07d366cf5 Author: Andreas Schwab @@ -25223,10 +26357,10 @@ CommitDate: Wed Aug 24 16:31:06 2011 +0200 2.14.90-6 -:100644 100644 d59759fc 09c90d37 M .gitignore -:100644 100644 fa3e662f e4f85484 M glibc-fedora.patch -:100644 100644 4050c881 8e191ae9 M glibc.spec -:100644 100644 a164bc33 4f089b03 M sources +:100644 100644 d59759f 09c90d3 M .gitignore +:100644 100644 fa3e662 e4f8548 M glibc-fedora.patch +:100644 100644 4050c88 8e191ae M glibc.spec +:100644 100644 a164bc3 4f089b0 M sources commit 96f2a7b82c232b245c4cd8b1099d46c52040ae66 Author: Andreas Schwab @@ -25236,10 +26370,10 @@ CommitDate: Mon Aug 15 11:29:40 2011 +0200 2.14.90-5 -:100644 100644 0ff8fc67 d59759fc M .gitignore -:100644 100644 2c79da7e fa3e662f M glibc-fedora.patch -:100644 100644 ebcb7528 4050c881 M glibc.spec -:100644 100644 455a708e a164bc33 M sources +:100644 100644 0ff8fc6 d59759f M .gitignore +:100644 100644 2c79da7 fa3e662 M glibc-fedora.patch +:100644 100644 ebcb752 4050c88 M glibc.spec +:100644 100644 455a708 a164bc3 M sources commit d41767f53ff980d1afbc0e29ac4f6825f4e04ff9 Author: Andreas Schwab @@ -25249,7 +26383,7 @@ CommitDate: Tue Aug 9 13:49:38 2011 +0200 2.14.90-4 -:100644 100644 2f585488 ebcb7528 M glibc.spec +:100644 100644 2f58548 ebcb752 M glibc.spec commit 9d45d8d1445fc822383b07454e268f7af3e2252a Author: Andreas Schwab @@ -25259,10 +26393,10 @@ CommitDate: Tue Aug 9 13:47:20 2011 +0200 2.14.90-4 -:100644 100644 3fb530be 0ff8fc67 M .gitignore -:100644 100644 3bfdc3e8 2c79da7e M glibc-fedora.patch -:100644 100644 124f6838 2f585488 M glibc.spec -:100644 100644 f4388d22 455a708e M sources +:100644 100644 3fb530b 0ff8fc6 M .gitignore +:100644 100644 3bfdc3e 2c79da7 M glibc-fedora.patch +:100644 100644 124f683 2f58548 M glibc.spec +:100644 100644 f4388d2 455a708 M sources commit 35680ac6022e87f0fb2936a74fe72eab550e6844 Author: Rex Dieter @@ -25272,7 +26406,7 @@ CommitDate: Thu Jul 21 15:36:45 2011 -0500 rebuild (fix prior broken rpm in buildroot) -:100644 100644 a3c921ee 124f6838 M glibc.spec +:100644 100644 a3c921e 124f683 M glibc.spec commit 444e2cc188fbdaac4882e1301d6711636b7ab378 Author: Andreas Schwab @@ -25282,10 +26416,10 @@ CommitDate: Wed Jul 20 13:54:13 2011 +0200 2.14.90-3 -:100644 100644 74de6389 3fb530be M .gitignore -:100644 100644 7f3c4b32 3bfdc3e8 M glibc-fedora.patch -:100644 100644 3d92d727 a3c921ee M glibc.spec -:100644 100644 65e529f8 f4388d22 M sources +:100644 100644 74de638 3fb530b M .gitignore +:100644 100644 7f3c4b3 3bfdc3e M glibc-fedora.patch +:100644 100644 3d92d72 a3c921e M glibc.spec +:100644 100644 65e529f f4388d2 M sources commit 4dd080e34a542c3cc8d859cceb0b33061d4f667a Author: Andreas Schwab @@ -25295,10 +26429,10 @@ CommitDate: Thu Jul 14 15:53:14 2011 +0200 2.14.90-2 -:100644 100644 9bfaa1b5 74de6389 M .gitignore -:100644 100644 57414280 7f3c4b32 M glibc-fedora.patch -:100644 100644 7b9193c9 3d92d727 M glibc.spec -:100644 100644 93ad5826 65e529f8 M sources +:100644 100644 9bfaa1b 74de638 M .gitignore +:100644 100644 5741428 7f3c4b3 M glibc-fedora.patch +:100644 100644 7b9193c 3d92d72 M glibc.spec +:100644 100644 93ad582 65e529f M sources commit 538b3c089927e05128e8030e3c57ac318187dd5e Author: Andreas Schwab @@ -25308,10 +26442,10 @@ CommitDate: Fri Jul 1 11:03:06 2011 +0200 2.14.90-1 -:100644 100644 3911cd39 9bfaa1b5 M .gitignore -:100644 100644 ce564b00 57414280 M glibc-fedora.patch -:100644 100644 d4c15f51 7b9193c9 M glibc.spec -:100644 100644 cfdf5492 93ad5826 M sources +:100644 100644 3911cd3 9bfaa1b M .gitignore +:100644 100644 ce564b0 5741428 M glibc-fedora.patch +:100644 100644 d4c15f5 7b9193c M glibc.spec +:100644 100644 cfdf549 93ad582 M sources commit d1bf7db949826332c8bc0fd0f1543de83a3ebd9b Author: Andreas Schwab @@ -25321,10 +26455,10 @@ CommitDate: Tue Jun 28 17:01:03 2011 +0200 2.14-4 -:100644 100644 e945919b 3911cd39 M .gitignore -:100644 100644 e37df0c2 ce564b00 M glibc-fedora.patch -:100644 100644 106ab654 d4c15f51 M glibc.spec -:100644 100644 203da2e0 cfdf5492 M sources +:100644 100644 e945919 3911cd3 M .gitignore +:100644 100644 e37df0c ce564b0 M glibc-fedora.patch +:100644 100644 106ab65 d4c15f5 M glibc.spec +:100644 100644 203da2e cfdf549 M sources commit 382444fc1407a67b824220501cf45fb55e1756ca Author: Andreas Schwab @@ -25334,8 +26468,8 @@ CommitDate: Tue Jun 21 17:12:12 2011 +0200 2.14-3 -:100644 100644 fae4b237 e37df0c2 M glibc-fedora.patch -:100644 100644 1973f072 203da2e0 M sources +:100644 100644 fae4b23 e37df0c M glibc-fedora.patch +:100644 100644 1973f07 203da2e M sources commit cecb16f60f774a4a5b53c327256a459bd8895b02 Author: Andreas Schwab @@ -25345,11 +26479,11 @@ CommitDate: Tue Jun 21 14:59:31 2011 +0200 2.14-3 -:100644 100644 eb3bb960 e945919b M .gitignore -:100644 100644 ff7de11f fae4b237 M glibc-fedora.patch -:100644 000000 62d73915 00000000 D glibc-revert-27390476.patch -:100644 100644 376614ad 106ab654 M glibc.spec -:100644 100644 a45db890 1973f072 M sources +:100644 100644 eb3bb96 e945919 M .gitignore +:100644 100644 ff7de11 fae4b23 M glibc-fedora.patch +:100644 000000 62d7391 0000000 D glibc-revert-27390476.patch +:100644 100644 376614a 106ab65 M glibc.spec +:100644 100644 a45db89 1973f07 M sources commit 78124418b9e424bab4ac69d9f402c2fa0c44eabc Author: Dan Horák @@ -25359,8 +26493,8 @@ CommitDate: Thu Jun 9 14:56:46 2011 +0200 revert glibc commit 27390476 as it requires binutils >= 2.21.52.0.1 (#711330) -:000000 100644 00000000 62d73915 A glibc-revert-27390476.patch -:100644 100644 b8fc8a52 376614ad M glibc.spec +:000000 100644 0000000 62d7391 A glibc-revert-27390476.patch +:100644 100644 b8fc8a5 376614a M glibc.spec commit 7f8f336ccdfb320b66e174b44ae736917cfab0d6 Author: Andreas Schwab @@ -25370,9 +26504,9 @@ CommitDate: Fri Jun 3 14:29:51 2011 +0200 2.14-2 -:100644 100644 0a92db05 ff7de11f M glibc-fedora.patch -:100644 100644 a6e40e3c b8fc8a52 M glibc.spec -:100644 100644 fb8c90ea a45db890 M sources +:100644 100644 0a92db0 ff7de11 M glibc-fedora.patch +:100644 100644 a6e40e3 b8fc8a5 M glibc.spec +:100644 100644 fb8c90e a45db89 M sources commit f3509915d728d46a934fbaa10049239ba2378ea6 Author: Andreas Schwab @@ -25382,10 +26516,10 @@ CommitDate: Tue May 31 14:54:27 2011 +0200 2.14-1 -:100644 100644 f066dd9d eb3bb960 M .gitignore -:100644 100644 be2ae478 0a92db05 M glibc-fedora.patch -:100644 100644 58e536e3 a6e40e3c M glibc.spec -:100644 100644 45d0b4d1 fb8c90ea M sources +:100644 100644 f066dd9 eb3bb96 M .gitignore +:100644 100644 be2ae47 0a92db0 M glibc-fedora.patch +:100644 100644 58e536e a6e40e3 M glibc.spec +:100644 100644 45d0b4d fb8c90e M sources commit d297ec7b522edcf73bb6b0c443da0bcd61c52fc7 Author: Andreas Schwab @@ -25395,10 +26529,10 @@ CommitDate: Fri May 27 16:19:02 2011 +0200 2.13.90-14 -:100644 100644 ecbeef03 f066dd9d M .gitignore -:100644 100644 c80857f1 be2ae478 M glibc-fedora.patch -:100644 100644 014c1da4 58e536e3 M glibc.spec -:100644 100644 137a9876 45d0b4d1 M sources +:100644 100644 ecbeef0 f066dd9 M .gitignore +:100644 100644 c80857f be2ae47 M glibc-fedora.patch +:100644 100644 014c1da 58e536e M glibc.spec +:100644 100644 137a987 45d0b4d M sources commit 33bafa6a65c1f0deaec19385b286f782cd644c46 Author: Andreas Schwab @@ -25408,10 +26542,10 @@ CommitDate: Wed May 18 16:18:54 2011 +0200 2.13.90-13 -:100644 100644 171bad8c ecbeef03 M .gitignore -:100644 100644 0e4b5fa2 c80857f1 M glibc-fedora.patch -:100644 100644 904dc8d0 014c1da4 M glibc.spec -:100644 100644 0ad99fb6 137a9876 M sources +:100644 100644 171bad8 ecbeef0 M .gitignore +:100644 100644 0e4b5fa c80857f M glibc-fedora.patch +:100644 100644 904dc8d 014c1da M glibc.spec +:100644 100644 0ad99fb 137a987 M sources commit 5423dccb1cbfd3351dcfe8f979915d25ae2ee3e5 Author: Andreas Schwab @@ -25421,10 +26555,10 @@ CommitDate: Fri May 13 16:56:46 2011 +0200 2.13.90-12 -:100644 100644 24de6a86 171bad8c M .gitignore -:100644 100644 5d769211 0e4b5fa2 M glibc-fedora.patch -:100644 100644 7c1bdec0 904dc8d0 M glibc.spec -:100644 100644 47245a08 0ad99fb6 M sources +:100644 100644 24de6a8 171bad8 M .gitignore +:100644 100644 5d76921 0e4b5fa M glibc-fedora.patch +:100644 100644 7c1bdec 904dc8d M glibc.spec +:100644 100644 47245a0 0ad99fb M sources commit 532ddd86e535b87c5ee5d862471e75cf329fdba2 Author: Andreas Schwab @@ -25434,10 +26568,10 @@ CommitDate: Fri May 6 12:41:38 2011 +0200 2.13.90-11 -:100644 100644 63af975e 24de6a86 M .gitignore -:100644 100644 158ffdf9 5d769211 M glibc-fedora.patch -:100644 100644 c9350db7 7c1bdec0 M glibc.spec -:100644 100644 e0918002 47245a08 M sources +:100644 100644 63af975 24de6a8 M .gitignore +:100644 100644 158ffdf 5d76921 M glibc-fedora.patch +:100644 100644 c9350db 7c1bdec M glibc.spec +:100644 100644 e091800 47245a0 M sources commit 436d93ab23d70b2b2fcb7e94e6f290ac5a4e39aa Author: Andreas Schwab @@ -25447,10 +26581,10 @@ CommitDate: Wed May 4 13:11:17 2011 +0200 2.13.90-10 -:100644 100644 3ed7b79a 63af975e M .gitignore -:100644 100644 36b6fc6c 158ffdf9 M glibc-fedora.patch -:100644 100644 848f27e5 c9350db7 M glibc.spec -:100644 100644 9551238b e0918002 M sources +:100644 100644 3ed7b79 63af975 M .gitignore +:100644 100644 36b6fc6 158ffdf M glibc-fedora.patch +:100644 100644 848f27e c9350db M glibc.spec +:100644 100644 9551238 e091800 M sources commit c883c14538459a0a6156b8350ec9e4769d86ada8 Author: Andreas Schwab @@ -25460,10 +26594,10 @@ CommitDate: Thu Apr 7 13:22:58 2011 +0200 2.13.90-9 -:100644 100644 9230a07b 3ed7b79a M .gitignore -:100644 100644 266dd66a 36b6fc6c M glibc-fedora.patch -:100644 100644 f05a51ab 848f27e5 M glibc.spec -:100644 100644 32abae36 9551238b M sources +:100644 100644 9230a07 3ed7b79 M .gitignore +:100644 100644 266dd66 36b6fc6 M glibc-fedora.patch +:100644 100644 f05a51a 848f27e M glibc.spec +:100644 100644 32abae3 9551238 M sources commit af66f0ce22470bf76f1642a4059a6d3e09c86bcd Author: Andreas Schwab @@ -25473,10 +26607,10 @@ CommitDate: Thu Mar 24 14:43:08 2011 +0100 2.13.90-8 -:100644 100644 9e664fac 9230a07b M .gitignore -:100644 100644 3cfb9791 266dd66a M glibc-fedora.patch -:100644 100644 1f78ba53 f05a51ab M glibc.spec -:100644 100644 89baf5cb 32abae36 M sources +:100644 100644 9e664fa 9230a07 M .gitignore +:100644 100644 3cfb979 266dd66 M glibc-fedora.patch +:100644 100644 1f78ba5 f05a51a M glibc.spec +:100644 100644 89baf5c 32abae3 M sources commit 5d12cdce1ac1250f33b6e7e71cef89a5688460d9 Author: Andreas Schwab @@ -25486,10 +26620,10 @@ CommitDate: Mon Mar 21 16:34:52 2011 +0100 2.13.90-7 -:100644 100644 7536b313 9e664fac M .gitignore -:100644 100644 ee11fb54 3cfb9791 M glibc-fedora.patch -:100644 100644 83610843 1f78ba53 M glibc.spec -:100644 100644 2964f70d 89baf5cb M sources +:100644 100644 7536b31 9e664fa M .gitignore +:100644 100644 ee11fb5 3cfb979 M glibc-fedora.patch +:100644 100644 8361084 1f78ba5 M glibc.spec +:100644 100644 2964f70 89baf5c M sources commit 3b880a91756a4b172dbec44ecc8bc98ad6c82020 Author: Andreas Schwab @@ -25499,10 +26633,10 @@ CommitDate: Mon Mar 7 17:50:04 2011 +0100 2.13.90-6 -:100644 100644 138090e9 7536b313 M .gitignore -:100644 100644 fb18eb10 ee11fb54 M glibc-fedora.patch -:100644 100644 fd3306aa 83610843 M glibc.spec -:100644 100644 a2f7ffb3 2964f70d M sources +:100644 100644 138090e 7536b31 M .gitignore +:100644 100644 fb18eb1 ee11fb5 M glibc-fedora.patch +:100644 100644 fd3306a 8361084 M glibc.spec +:100644 100644 a2f7ffb 2964f70 M sources commit cd1b6b27e1769c54e03fb64ff6698d67cf616a63 Author: Andreas Schwab @@ -25512,10 +26646,10 @@ CommitDate: Wed Mar 2 17:28:13 2011 +0100 2.13.90-5 -:100644 100644 499f3e28 138090e9 M .gitignore -:100644 100644 1eee6467 fb18eb10 M glibc-fedora.patch -:100644 100644 a5b41e7d fd3306aa M glibc.spec -:100644 100644 7f34c660 a2f7ffb3 M sources +:100644 100644 499f3e2 138090e M .gitignore +:100644 100644 1eee646 fb18eb1 M glibc-fedora.patch +:100644 100644 a5b41e7 fd3306a M glibc.spec +:100644 100644 7f34c66 a2f7ffb M sources commit 87a7e49934b45b867029d8c843ce7e7f1a5c1d4c Author: Andreas Schwab @@ -25525,11 +26659,11 @@ CommitDate: Tue Feb 15 14:29:18 2011 +0100 2.13.90-4 -:100644 100644 40d36875 499f3e28 M .gitignore -:100644 100644 c9787016 1eee6467 M glibc-fedora.patch -:100644 000000 67cf0da0 00000000 D glibc-nopl.patch -:100644 100644 75db71b1 a5b41e7d M glibc.spec -:100644 100644 8fafd7ad 7f34c660 M sources +:100644 100644 40d3687 499f3e2 M .gitignore +:100644 100644 c978701 1eee646 M glibc-fedora.patch +:100644 000000 67cf0da 0000000 D glibc-nopl.patch +:100644 100644 75db71b a5b41e7 M glibc.spec +:100644 100644 8fafd7a 7f34c66 M sources commit 8add80c634bad05d0784ef5f3eaa91b3ee1dab47 Author: Dennis Gilmore @@ -25539,7 +26673,7 @@ CommitDate: Tue Feb 8 20:29:19 2011 -0600 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild -:100644 100644 6e60848d 75db71b1 M glibc.spec +:100644 100644 6e60848 75db71b M glibc.spec commit a896d65b934743e06abd3923db0b6f1037a4a1e7 Author: Dennis Gilmore @@ -25549,7 +26683,7 @@ CommitDate: Mon Feb 7 12:04:17 2011 -0600 actually add the patch -:000000 100644 00000000 67cf0da0 A glibc-nopl.patch +:000000 100644 0000000 67cf0da A glibc-nopl.patch commit 8ef6d2e4519bae07ddcecd845c90f47730e7b368 Author: Dennis Gilmore @@ -25560,7 +26694,7 @@ CommitDate: Mon Feb 7 12:03:19 2011 -0600 * Mon Feb 7 2011 Jan Kratochvil - 2.13.90-2 - Put back the assembler "workaround" - to disable the nopl instruction. -:100644 100644 ce18382f 6e60848d M glibc.spec +:100644 100644 ce18382 6e60848 M glibc.spec commit 3558758764e4e49e358a9da5c1de887f556f4b7f Author: Andreas Schwab @@ -25570,13 +26704,13 @@ CommitDate: Tue Jan 25 12:34:04 2011 +0100 2.13.90-1 -:100644 100644 fa751998 40d36875 M .gitignore -:100644 100644 5d667941 c9787016 M glibc-fedora.patch -:100644 100644 b7b710f8 ce18382f M glibc.spec -:100644 100644 1df768ff 8fafd7ad M sources +:100644 100644 fa75199 40d3687 M .gitignore +:100644 100644 5d66794 c978701 M glibc-fedora.patch +:100644 100644 b7b710f ce18382 M glibc.spec +:100644 100644 1df768f 8fafd7a M sources commit e89d95d2810438fd9ae30cad23ed1efcb8e17f40 -Merge: 31930d27 469e4b1e +Merge: 31930d2 469e4b1 Author: Andreas Schwab AuthorDate: Tue Jan 25 12:31:02 2011 +0100 Commit: Andreas Schwab @@ -25584,10 +26718,10 @@ CommitDate: Tue Jan 25 12:31:02 2011 +0100 Merge branch 'f14/master' -:100644 100644 2289bb93 fa751998 M .gitignore -:100644 100644 37814f67 5d667941 M glibc-fedora.patch -:100644 100644 55d65d6d b7b710f8 M glibc.spec -:100644 100644 5d0e2ac3 1df768ff M sources +:100644 100644 2289bb9 fa75199 M .gitignore +:100644 100644 37814f6 5d66794 M glibc-fedora.patch +:100644 100644 55d65d6 b7b710f M glibc.spec +:100644 100644 5d0e2ac 1df768f M sources commit 31930d27ab1942f10f295f9022f84e3e52b021f7 Author: Dennis Gilmore @@ -25597,7 +26731,7 @@ CommitDate: Tue Dec 21 13:03:16 2010 -0600 add disttag and rebuild for rawhide -:100644 100644 024a0d1f 55d65d6d M glibc.spec +:100644 100644 024a0d1 55d65d6 M glibc.spec commit a1faa0a0a8667e18e072f7a913976762ccf7fee6 Author: Andreas Schwab @@ -25607,9 +26741,9 @@ CommitDate: Tue Dec 14 17:22:16 2010 +0100 2.12.90-21 -:100644 100644 7b68f0b8 37814f67 M glibc-fedora.patch -:100644 100644 c3cb94f7 024a0d1f M glibc.spec -:100644 100644 6d124815 5d0e2ac3 M sources +:100644 100644 7b68f0b 37814f6 M glibc-fedora.patch +:100644 100644 c3cb94f 024a0d1 M glibc.spec +:100644 100644 6d12481 5d0e2ac M sources commit 7dc6703b310b67923ddc2abd2be31e2871c737d2 Author: Andreas Schwab @@ -25619,11 +26753,11 @@ CommitDate: Mon Dec 13 17:58:18 2010 +0100 2.12.90-20 -:100644 100644 9ace04db 2289bb93 M .gitignore -:100644 100644 910ae7f1 7b68f0b8 M glibc-fedora.patch -:100644 000000 05876e0d 00000000 D glibc-s390.patch -:100644 100644 a9defade c3cb94f7 M glibc.spec -:100644 100644 7353fd13 6d124815 M sources +:100644 100644 9ace04d 2289bb9 M .gitignore +:100644 100644 910ae7f 7b68f0b M glibc-fedora.patch +:100644 000000 05876e0 0000000 D glibc-s390.patch +:100644 100644 a9defad c3cb94f M glibc.spec +:100644 100644 7353fd1 6d12481 M sources commit f0a4b537056a49e7ab83c890f9e1bb16f8a5cdea Author: Dan Horák @@ -25633,8 +26767,8 @@ CommitDate: Mon Nov 15 14:48:05 2010 +0100 fix build on s390(x) -:000000 100644 00000000 05876e0d A glibc-s390.patch -:100644 100644 f07a195b a9defade M glibc.spec +:000000 100644 0000000 05876e0 A glibc-s390.patch +:100644 100644 f07a195 a9defad M glibc.spec commit 96033044f8efa70532543b2c227f76ccb50a318b Author: Andreas Schwab @@ -25644,10 +26778,10 @@ CommitDate: Fri Nov 12 13:29:24 2010 +0100 2.12.90-19 -:100644 100644 9463719d 9ace04db M .gitignore -:100644 100644 42ceb06c 910ae7f1 M glibc-fedora.patch -:100644 100644 6f3a5d2c f07a195b M glibc.spec -:100644 100644 65a68ef5 7353fd13 M sources +:100644 100644 9463719 9ace04d M .gitignore +:100644 100644 42ceb06 910ae7f M glibc-fedora.patch +:100644 100644 6f3a5d2 f07a195 M glibc.spec +:100644 100644 65a68ef 7353fd1 M sources commit 85da696179e4303be27dabf7a020fec73da76426 Author: Andreas Schwab @@ -25657,9 +26791,9 @@ CommitDate: Fri Oct 22 19:10:34 2010 +0200 2.12.90-18 -:100644 100644 c28ea7f0 42ceb06c M glibc-fedora.patch -:100644 100644 0142c22f 6f3a5d2c M glibc.spec -:100644 100644 0b50560b 65a68ef5 M sources +:100644 100644 c28ea7f 42ceb06 M glibc-fedora.patch +:100644 100644 0142c22 6f3a5d2 M glibc.spec +:100644 100644 0b50560 65a68ef M sources commit 8d5389e12f8140a83d7d4ea97beb6fe68fbde928 Author: Andreas Schwab @@ -25669,10 +26803,10 @@ CommitDate: Tue Oct 19 11:49:21 2010 +0200 2.12.90-17 -:100644 100644 94cd92a1 9463719d M .gitignore -:100644 100644 54433225 c28ea7f0 M glibc-fedora.patch -:100644 100644 0d410c70 0142c22f M glibc.spec -:100644 100644 bfff590a 0b50560b M sources +:100644 100644 94cd92a 9463719 M .gitignore +:100644 100644 5443322 c28ea7f M glibc-fedora.patch +:100644 100644 0d410c7 0142c22 M glibc.spec +:100644 100644 bfff590 0b50560 M sources commit d047b379abf107f503380776e17ee6fd4f6ca83f Author: Andreas Schwab @@ -25682,10 +26816,10 @@ CommitDate: Thu Oct 14 12:30:32 2010 +0200 2.12.90-16 -:100644 100644 54eafbef 94cd92a1 M .gitignore -:100644 100644 d4174951 54433225 M glibc-fedora.patch -:100644 100644 082511c7 0d410c70 M glibc.spec -:100644 100644 1e61f6c8 bfff590a M sources +:100644 100644 54eafbe 94cd92a M .gitignore +:100644 100644 d417495 5443322 M glibc-fedora.patch +:100644 100644 082511c 0d410c7 M glibc.spec +:100644 100644 1e61f6c bfff590 M sources commit 7870b7800ae971749411238efe95e6aba6cc6992 Author: Andreas Schwab @@ -25695,10 +26829,10 @@ CommitDate: Mon Oct 4 13:27:15 2010 +0200 2.12.90-15 -:100644 100644 51a21ac0 54eafbef M .gitignore -:100644 100644 c3cdb412 d4174951 M glibc-fedora.patch -:100644 100644 51e95fdc 082511c7 M glibc.spec -:100644 100644 726b6d03 1e61f6c8 M sources +:100644 100644 51a21ac 54eafbe M .gitignore +:100644 100644 c3cdb41 d417495 M glibc-fedora.patch +:100644 100644 51e95fd 082511c M glibc.spec +:100644 100644 726b6d0 1e61f6c M sources commit ebd7654e99c6e40c8121c8272e5d9ddd04f4d928 Author: Andreas Schwab @@ -25708,9 +26842,9 @@ CommitDate: Tue Sep 28 15:19:46 2010 +0200 2.12.90-14 -:100644 100644 59bb1667 c3cdb412 M glibc-fedora.patch -:100644 100644 3e4a2b68 51e95fdc M glibc.spec -:100644 100644 d3b246e9 726b6d03 M sources +:100644 100644 59bb166 c3cdb41 M glibc-fedora.patch +:100644 100644 3e4a2b6 51e95fd M glibc.spec +:100644 100644 d3b246e 726b6d0 M sources commit 26ee51a75764602585725a993236054ef65887c2 Author: Andreas Schwab @@ -25720,10 +26854,10 @@ CommitDate: Mon Sep 27 16:48:52 2010 +0200 2.12.90-13 -:100644 100644 00400bc1 51a21ac0 M .gitignore -:100644 100644 7f887cca 59bb1667 M glibc-fedora.patch -:100644 100644 583ce30c 3e4a2b68 M glibc.spec -:100644 100644 a2b69400 d3b246e9 M sources +:100644 100644 00400bc 51a21ac M .gitignore +:100644 100644 7f887cc 59bb166 M glibc-fedora.patch +:100644 100644 583ce30 3e4a2b6 M glibc.spec +:100644 100644 a2b6940 d3b246e M sources commit c1407c8a92efb6b3d56177f8259810819a54a974 Author: Dennis Gilmore @@ -25734,7 +26868,7 @@ CommitDate: Wed Sep 15 22:30:56 2010 -0500 2.12.90-12 Dont build sparcv9v and sparc64v -:100644 100644 44432f25 583ce30c M glibc.spec +:100644 100644 44432f2 583ce30 M glibc.spec commit 86a027c0b5d724b88967b257a9f3aedffb5158d1 Author: Andreas Schwab @@ -25744,10 +26878,10 @@ CommitDate: Mon Sep 13 12:08:00 2010 +0200 2.12.90-11 -:100644 100644 bbffdc36 00400bc1 M .gitignore -:100644 100644 5dcb351f 7f887cca M glibc-fedora.patch -:100644 100644 ce1abb83 44432f25 M glibc.spec -:100644 100644 a2812380 a2b69400 M sources +:100644 100644 bbffdc3 00400bc M .gitignore +:100644 100644 5dcb351 7f887cc M glibc-fedora.patch +:100644 100644 ce1abb8 44432f2 M glibc.spec +:100644 100644 a281238 a2b6940 M sources commit 2fa87bec412274b72df198599812fc724b836cf1 Author: Andreas Schwab @@ -25757,10 +26891,10 @@ CommitDate: Mon Sep 6 16:40:34 2010 +0200 2.12.90-10 -:100644 100644 2cce3ef8 bbffdc36 M .gitignore -:100644 100644 d05c8b22 5dcb351f M glibc-fedora.patch -:100644 100644 786553ae ce1abb83 M glibc.spec -:100644 100644 0ab2f4b5 a2812380 M sources +:100644 100644 2cce3ef bbffdc3 M .gitignore +:100644 100644 d05c8b2 5dcb351 M glibc-fedora.patch +:100644 100644 786553a ce1abb8 M glibc.spec +:100644 100644 0ab2f4b a281238 M sources commit 4ce712cc2936877f17f3a29edd493e448fc8c232 Author: Dennis Gilmore @@ -25770,7 +26904,7 @@ CommitDate: Sat Sep 4 11:23:28 2010 -0500 fix up typo -:100644 100644 a21549cf 786553ae M glibc.spec +:100644 100644 a21549c 786553a M glibc.spec commit 7be0ed9170c1d425e0af0a3490f501325f604a05 Author: Dennis Gilmore @@ -25780,7 +26914,7 @@ CommitDate: Sat Sep 4 09:14:33 2010 -0500 disable unpackged file check on aux arches -:100644 100644 7ea4caf2 a21549cf M glibc.spec +:100644 100644 7ea4caf a21549c M glibc.spec commit 20e565a20a1bc5a7f92befd1015a211c783715b8 Author: Andreas Schwab @@ -25790,10 +26924,10 @@ CommitDate: Mon Aug 23 14:09:35 2010 +0200 2.12.90-8 -:100644 100644 e2907ec8 2cce3ef8 M .gitignore -:100644 100644 bc98f045 d05c8b22 M glibc-fedora.patch -:100644 100644 95d33894 7ea4caf2 M glibc.spec -:100644 100644 d16d53f6 0ab2f4b5 M sources +:100644 100644 e2907ec 2cce3ef M .gitignore +:100644 100644 bc98f04 d05c8b2 M glibc-fedora.patch +:100644 100644 95d3389 7ea4caf M glibc.spec +:100644 100644 d16d53f 0ab2f4b M sources commit 98c76af435af70c9aa5e93fe19720a709711fd6e Author: Andreas Schwab @@ -25803,10 +26937,10 @@ CommitDate: Mon Aug 2 14:18:20 2010 +0200 2.12.90-7 -:100644 100644 9e046129 e2907ec8 M .gitignore -:100644 100644 482db228 bc98f045 M glibc-fedora.patch -:100644 100644 087e33df 95d33894 M glibc.spec -:100644 100644 e73d3b01 d16d53f6 M sources +:100644 100644 9e04612 e2907ec M .gitignore +:100644 100644 482db22 bc98f04 M glibc-fedora.patch +:100644 100644 087e33d 95d3389 M glibc.spec +:100644 100644 e73d3b0 d16d53f M sources commit 213bb0f3b347d47d2559922db39b552fd781d014 Author: Fedora Release Engineering @@ -25816,10 +26950,10 @@ CommitDate: Wed Jul 28 15:50:43 2010 +0000 dist-git conversion -:100644 000000 9e046129 00000000 D .cvsignore -:000000 100644 00000000 9e046129 A .gitignore -:100644 000000 a7dda694 00000000 D Makefile -:100644 000000 c5b0b131 00000000 D import.log +:100644 000000 9e04612 0000000 D .cvsignore +:000000 100644 0000000 9e04612 A .gitignore +:100644 000000 a7dda69 0000000 D Makefile +:100644 000000 c5b0b13 0000000 D import.log commit 808dafc80ec4980166838ad8d04a59af1647d371 Author: Andreas Schwab @@ -25829,11 +26963,11 @@ CommitDate: Wed Jul 21 15:08:07 2010 +0000 2.12.90-6 -:100644 100644 a028f235 9e046129 M .cvsignore -:100644 100644 8f57c629 482db228 M glibc-fedora.patch -:100644 100644 80473590 087e33df M glibc.spec -:100644 100644 baed58e5 c5b0b131 M import.log -:100644 100644 4c676768 e73d3b01 M sources +:100644 100644 a028f23 9e04612 M .cvsignore +:100644 100644 8f57c62 482db22 M glibc-fedora.patch +:100644 100644 8047359 087e33d M glibc.spec +:100644 100644 baed58e c5b0b13 M import.log +:100644 100644 4c67676 e73d3b0 M sources commit 68ea17c494c15d90146d478c5228c7b9a34a868c Author: Andreas Schwab @@ -25843,11 +26977,11 @@ CommitDate: Mon Jul 12 11:40:50 2010 +0000 2.12.90-5 -:100644 100644 5b479104 a028f235 M .cvsignore -:100644 100644 4d0e0ccb 8f57c629 M glibc-fedora.patch -:100644 100644 caeea46e 80473590 M glibc.spec -:100644 100644 cb4d02de baed58e5 M import.log -:100644 100644 77a16e6a 4c676768 M sources +:100644 100644 5b47910 a028f23 M .cvsignore +:100644 100644 4d0e0cc 8f57c62 M glibc-fedora.patch +:100644 100644 caeea46 8047359 M glibc.spec +:100644 100644 cb4d02d baed58e M import.log +:100644 100644 77a16e6 4c67676 M sources commit da9d145bdd7e66ed1561f3beaa16a935003995e3 Author: Andreas Schwab @@ -25857,11 +26991,11 @@ CommitDate: Fri Jul 2 12:42:07 2010 +0000 2.12.90-4 -:100644 100644 84a8a427 5b479104 M .cvsignore -:100644 100644 30e0fc1e 4d0e0ccb M glibc-fedora.patch -:100644 100644 1f3520f6 caeea46e M glibc.spec -:100644 100644 7c142dc6 cb4d02de M import.log -:100644 100644 21ee9469 77a16e6a M sources +:100644 100644 84a8a42 5b47910 M .cvsignore +:100644 100644 30e0fc1 4d0e0cc M glibc-fedora.patch +:100644 100644 1f3520f caeea46 M glibc.spec +:100644 100644 7c142dc cb4d02d M import.log +:100644 100644 21ee946 77a16e6 M sources commit 809a543e61e5c0bd738fc7e828086e6d1c825a8f Author: Andreas Schwab @@ -25871,11 +27005,11 @@ CommitDate: Tue Jun 15 08:43:24 2010 +0000 2.12.90-3 -:100644 100644 1c42d0ca 84a8a427 M .cvsignore -:100644 100644 15c694c3 30e0fc1e M glibc-fedora.patch -:100644 100644 9d64d2cb 1f3520f6 M glibc.spec -:100644 100644 707da519 7c142dc6 M import.log -:100644 100644 f9ebf8b0 21ee9469 M sources +:100644 100644 1c42d0c 84a8a42 M .cvsignore +:100644 100644 15c694c 30e0fc1 M glibc-fedora.patch +:100644 100644 9d64d2c 1f3520f M glibc.spec +:100644 100644 707da51 7c142dc M import.log +:100644 100644 f9ebf8b 21ee946 M sources commit 08541d983ef0bb6b641fc698e2a5064212d472e1 Author: Andreas Schwab @@ -25885,11 +27019,11 @@ CommitDate: Mon May 31 15:10:22 2010 +0000 2.12.90-2 -:100644 100644 42efde5d 1c42d0ca M .cvsignore -:100644 100644 3364227b 15c694c3 M glibc-fedora.patch -:100644 100644 291ac5ce 9d64d2cb M glibc.spec -:100644 100644 0e2061b5 707da519 M import.log -:100644 100644 dda797aa f9ebf8b0 M sources +:100644 100644 42efde5 1c42d0c M .cvsignore +:100644 100644 3364227 15c694c M glibc-fedora.patch +:100644 100644 291ac5c 9d64d2c M glibc.spec +:100644 100644 0e2061b 707da51 M import.log +:100644 100644 dda797a f9ebf8b M sources commit 976b178b6d662a99d4b2a2c9ae7bcbc413cc303e Author: Andreas Schwab @@ -25899,11 +27033,11 @@ CommitDate: Wed May 19 12:00:46 2010 +0000 2.12.90-1 -:100644 100644 e52bea3c 42efde5d M .cvsignore -:100644 100644 401e40eb 3364227b M glibc-fedora.patch -:100644 100644 80909c5d 291ac5ce M glibc.spec -:100644 100644 a80fa618 0e2061b5 M import.log -:100644 100644 1feb156f dda797aa M sources +:100644 100644 e52bea3 42efde5 M .cvsignore +:100644 100644 401e40e 3364227 M glibc-fedora.patch +:100644 100644 80909c5 291ac5c M glibc.spec +:100644 100644 a80fa61 0e2061b M import.log +:100644 100644 1feb156 dda797a M sources commit f3e82c414e51311321dd63b468ca4cfeaae72d1a Author: Andreas Schwab @@ -25913,11 +27047,11 @@ CommitDate: Mon Feb 8 15:32:13 2010 +0000 2.11.90-12 -:100644 100644 4011c62f e52bea3c M .cvsignore -:100644 100644 5327ff5a 401e40eb M glibc-fedora.patch -:100644 100644 c6bbefcf 80909c5d M glibc.spec -:100644 100644 602bf33c a80fa618 M import.log -:100644 100644 67751a4c 1feb156f M sources +:100644 100644 4011c62 e52bea3 M .cvsignore +:100644 100644 5327ff5 401e40e M glibc-fedora.patch +:100644 100644 c6bbefc 80909c5 M glibc.spec +:100644 100644 602bf33 a80fa61 M import.log +:100644 100644 67751a4 1feb156 M sources commit 3b8ebb3a56671e20f5c98c7d216040593e8d58b5 Author: Andreas Schwab @@ -25927,11 +27061,11 @@ CommitDate: Mon Feb 1 14:02:57 2010 +0000 2.11.90-11 -:100644 100644 5924c2d2 4011c62f M .cvsignore -:100644 100644 a6a66c63 5327ff5a M glibc-fedora.patch -:100644 100644 8a723cdf c6bbefcf M glibc.spec -:100644 100644 24edf046 602bf33c M import.log -:100644 100644 eebce531 67751a4c M sources +:100644 100644 5924c2d 4011c62 M .cvsignore +:100644 100644 a6a66c6 5327ff5 M glibc-fedora.patch +:100644 100644 8a723cd c6bbefc M glibc.spec +:100644 100644 24edf04 602bf33 M import.log +:100644 100644 eebce53 67751a4 M sources commit c1875bb985445c5d66b995dadd85a5748c8328cd Author: Andreas Schwab @@ -25941,11 +27075,11 @@ CommitDate: Wed Jan 20 16:50:57 2010 +0000 2.11.90-10 -:100644 100644 3b200aaa 5924c2d2 M .cvsignore -:100644 100644 b5b7b96c a6a66c63 M glibc-fedora.patch -:100644 100644 e34ce8ea 8a723cdf M glibc.spec -:100644 100644 be14016f 24edf046 M import.log -:100644 100644 c5507532 eebce531 M sources +:100644 100644 3b200aa 5924c2d M .cvsignore +:100644 100644 b5b7b96 a6a66c6 M glibc-fedora.patch +:100644 100644 e34ce8e 8a723cd M glibc.spec +:100644 100644 be14016 24edf04 M import.log +:100644 100644 c550753 eebce53 M sources commit 071e3f49dd334ea2a0ffa6ffc991d4d4850be3db Author: Andreas Schwab @@ -25955,11 +27089,11 @@ CommitDate: Fri Jan 15 11:59:53 2010 +0000 2.11.90-9 -:100644 100644 30f88c45 3b200aaa M .cvsignore -:100644 100644 ffb35aca b5b7b96c M glibc-fedora.patch -:100644 100644 db9907e4 e34ce8ea M glibc.spec -:100644 100644 97b790a8 be14016f M import.log -:100644 100644 c11b92b9 c5507532 M sources +:100644 100644 30f88c4 3b200aa M .cvsignore +:100644 100644 ffb35ac b5b7b96 M glibc-fedora.patch +:100644 100644 db9907e e34ce8e M glibc.spec +:100644 100644 97b790a be14016 M import.log +:100644 100644 c11b92b c550753 M sources commit e55a010d5b33aa8a3d8122ab15038746f37cf4a1 Author: Andreas Schwab @@ -25969,11 +27103,11 @@ CommitDate: Tue Jan 12 16:32:14 2010 +0000 2.11.90-8 -:100644 100644 d4671ea7 30f88c45 M .cvsignore -:100644 100644 b346b1c6 ffb35aca M glibc-fedora.patch -:100644 100644 7cd8c5b5 db9907e4 M glibc.spec -:100644 100644 88b5f2c1 97b790a8 M import.log -:100644 100644 2208ed8f c11b92b9 M sources +:100644 100644 d4671ea 30f88c4 M .cvsignore +:100644 100644 b346b1c ffb35ac M glibc-fedora.patch +:100644 100644 7cd8c5b db9907e M glibc.spec +:100644 100644 88b5f2c 97b790a M import.log +:100644 100644 2208ed8 c11b92b M sources commit 930f8bac493a16ef74b11d1708878c91d178f779 Author: Andreas Schwab @@ -25983,11 +27117,11 @@ CommitDate: Mon Jan 11 15:35:32 2010 +0000 2.11.90-7 -:100644 100644 10abe853 d4671ea7 M .cvsignore -:100644 100644 ffdcfe39 b346b1c6 M glibc-fedora.patch -:100644 100644 086da045 7cd8c5b5 M glibc.spec -:100644 100644 3f317fe4 88b5f2c1 M import.log -:100644 100644 d87ca897 2208ed8f M sources +:100644 100644 10abe85 d4671ea M .cvsignore +:100644 100644 ffdcfe3 b346b1c M glibc-fedora.patch +:100644 100644 086da04 7cd8c5b M glibc.spec +:100644 100644 3f317fe 88b5f2c M import.log +:100644 100644 d87ca89 2208ed8 M sources commit e7298f2636e09c95f0f809b2049215c6db12daab Author: Andreas Schwab @@ -25997,11 +27131,11 @@ CommitDate: Mon Jan 11 09:49:54 2010 +0000 2.11.90-6 -:100644 100644 92d881ff 10abe853 M .cvsignore -:100644 100644 dd060ce6 ffdcfe39 M glibc-fedora.patch -:100644 100644 112c59c9 086da045 M glibc.spec -:100644 100644 e9428396 3f317fe4 M import.log -:100644 100644 e418900a d87ca897 M sources +:100644 100644 92d881f 10abe85 M .cvsignore +:100644 100644 dd060ce ffdcfe3 M glibc-fedora.patch +:100644 100644 112c59c 086da04 M glibc.spec +:100644 100644 e942839 3f317fe M import.log +:100644 100644 e418900 d87ca89 M sources commit 372c18b6eaa2ff0c8246c0a11f1a620a7a402c18 Author: Andreas Schwab @@ -26011,11 +27145,11 @@ CommitDate: Mon Jan 4 14:04:06 2010 +0000 2.11.90-5 -:100644 100644 b31b587a 92d881ff M .cvsignore -:100644 100644 77f0ccc5 dd060ce6 M glibc-fedora.patch -:100644 100644 996dd9ac 112c59c9 M glibc.spec -:100644 100644 b9e7ae73 e9428396 M import.log -:100644 100644 3ca120c7 e418900a M sources +:100644 100644 b31b587 92d881f M .cvsignore +:100644 100644 77f0ccc dd060ce M glibc-fedora.patch +:100644 100644 996dd9a 112c59c M glibc.spec +:100644 100644 b9e7ae7 e942839 M import.log +:100644 100644 3ca120c e418900 M sources commit 7f8824b06198e1e943b0acfed337331a186c692a Author: Andreas Schwab @@ -26025,11 +27159,11 @@ CommitDate: Mon Dec 14 16:39:29 2009 +0000 2.11.90-4 -:100644 100644 048774e4 b31b587a M .cvsignore -:100644 100644 ac74eda0 77f0ccc5 M glibc-fedora.patch -:100644 100644 bfaabdeb 996dd9ac M glibc.spec -:100644 100644 0a470263 b9e7ae73 M import.log -:100644 100644 43d5d681 3ca120c7 M sources +:100644 100644 048774e b31b587 M .cvsignore +:100644 100644 ac74eda 77f0ccc M glibc-fedora.patch +:100644 100644 bfaabde 996dd9a M glibc.spec +:100644 100644 0a47026 b9e7ae7 M import.log +:100644 100644 43d5d68 3ca120c M sources commit 29fd49d204fdb52106025c568c571ab17ea3133a Author: Andreas Schwab @@ -26039,11 +27173,11 @@ CommitDate: Mon Nov 30 14:16:32 2009 +0000 2.11.90-3 -:100644 100644 8d67de6d 048774e4 M .cvsignore -:100644 100644 b243e0e3 ac74eda0 M glibc-fedora.patch -:100644 100644 6770f2a4 bfaabdeb M glibc.spec -:100644 100644 7f886b38 0a470263 M import.log -:100644 100644 22a55ac5 43d5d681 M sources +:100644 100644 8d67de6 048774e M .cvsignore +:100644 100644 b243e0e ac74eda M glibc-fedora.patch +:100644 100644 6770f2a bfaabde M glibc.spec +:100644 100644 7f886b3 0a47026 M import.log +:100644 100644 22a55ac 43d5d68 M sources commit edc9c2bed794e9e3ab30c8d4f050ca8e68bca7b4 Author: Bill Nottingham @@ -26054,7 +27188,7 @@ CommitDate: Wed Nov 25 23:19:29 2009 +0000 Fix typo that causes a failure to update the common directory. (releng #2781) -:100644 100644 8056e016 a7dda694 M Makefile +:100644 100644 8056e01 a7dda69 M Makefile commit 2c5bbbe6d5e29f8fdca4c63a0535addbfe119558 Author: Andreas Schwab @@ -26064,11 +27198,11 @@ CommitDate: Tue Nov 24 15:50:44 2009 +0000 2.11.90-2 -:100644 100644 319610ec 8d67de6d M .cvsignore -:100644 100644 a996cc60 b243e0e3 M glibc-fedora.patch -:100644 100644 fd4bcf41 6770f2a4 M glibc.spec -:100644 100644 918e0d4a 7f886b38 M import.log -:100644 100644 59dc4da2 22a55ac5 M sources +:100644 100644 319610e 8d67de6 M .cvsignore +:100644 100644 a996cc6 b243e0e M glibc-fedora.patch +:100644 100644 fd4bcf4 6770f2a M glibc.spec +:100644 100644 918e0d4 7f886b3 M import.log +:100644 100644 59dc4da 22a55ac M sources commit 6c0e600a935a7f1a5a23b4186dc269eca8cbde6d Author: Andreas Schwab @@ -26078,11 +27212,11 @@ CommitDate: Thu Nov 12 17:51:25 2009 +0000 2.11.90-1 -:100644 100644 e94ea068 319610ec M .cvsignore -:100644 100644 920da25a a996cc60 M glibc-fedora.patch -:100644 100644 f9085b15 fd4bcf41 M glibc.spec -:100644 100644 86825f64 918e0d4a M import.log -:100644 100644 09f491e2 59dc4da2 M sources +:100644 100644 e94ea06 319610e M .cvsignore +:100644 100644 920da25 a996cc6 M glibc-fedora.patch +:100644 100644 f9085b1 fd4bcf4 M glibc.spec +:100644 100644 86825f6 918e0d4 M import.log +:100644 100644 09f491e 59dc4da M sources commit d1a379ba7a26fb0d478622d3dae094470226dc7c Author: Andreas Schwab @@ -26092,11 +27226,11 @@ CommitDate: Mon Sep 28 12:31:33 2009 +0000 2.10.90-24 -:100644 100644 ae3de636 e94ea068 M .cvsignore -:100644 100644 19755a06 920da25a M glibc-fedora.patch -:100644 100644 7515477e f9085b15 M glibc.spec -:100644 100644 b8d0ec26 86825f64 M import.log -:100644 100644 07617f9c 09f491e2 M sources +:100644 100644 ae3de63 e94ea06 M .cvsignore +:100644 100644 19755a0 920da25 M glibc-fedora.patch +:100644 100644 7515477 f9085b1 M glibc.spec +:100644 100644 b8d0ec2 86825f6 M import.log +:100644 100644 07617f9 09f491e M sources commit 91d8fccb67a9a7831387e1dd76a5495f566ba267 Author: Andreas Schwab @@ -26106,11 +27240,11 @@ CommitDate: Mon Sep 21 10:39:33 2009 +0000 2.10.90-23 -:100644 100644 471339af ae3de636 M .cvsignore -:100644 100644 17c8d1c3 19755a06 M glibc-fedora.patch -:100644 100644 c26c33b0 7515477e M glibc.spec -:100644 100644 c84b8208 b8d0ec26 M import.log -:100644 100644 b8cfeba0 07617f9c M sources +:100644 100644 471339a ae3de63 M .cvsignore +:100644 100644 17c8d1c 19755a0 M glibc-fedora.patch +:100644 100644 c26c33b 7515477 M glibc.spec +:100644 100644 c84b820 b8d0ec2 M import.log +:100644 100644 b8cfeba 07617f9 M sources commit 26aeed088c84e61d3590a15ce1eec3cdd5b27b2a Author: Andreas Schwab @@ -26120,11 +27254,11 @@ CommitDate: Mon Sep 14 12:23:30 2009 +0000 2.10.90-22 -:100644 100644 bf03e600 471339af M .cvsignore -:100644 100644 d3f0e50b 17c8d1c3 M glibc-fedora.patch -:100644 100644 919e060f c26c33b0 M glibc.spec -:100644 100644 d42e229b c84b8208 M import.log -:100644 100644 55966425 b8cfeba0 M sources +:100644 100644 bf03e60 471339a M .cvsignore +:100644 100644 d3f0e50 17c8d1c M glibc-fedora.patch +:100644 100644 919e060 c26c33b M glibc.spec +:100644 100644 d42e229 c84b820 M import.log +:100644 100644 5596642 b8cfeba M sources commit 7e2271ddcfbf2611c1c866647d07d13c88f49846 Author: Andreas Schwab @@ -26134,11 +27268,11 @@ CommitDate: Mon Sep 7 09:07:10 2009 +0000 2.10.90-21 -:100644 100644 70c81e63 bf03e600 M .cvsignore -:100644 100644 ea59c5e7 d3f0e50b M glibc-fedora.patch -:100644 100644 5580212b 919e060f M glibc.spec -:100644 100644 4e6c5786 d42e229b M import.log -:100644 100644 684cbbe6 55966425 M sources +:100644 100644 70c81e6 bf03e60 M .cvsignore +:100644 100644 ea59c5e d3f0e50 M glibc-fedora.patch +:100644 100644 5580212 919e060 M glibc.spec +:100644 100644 4e6c578 d42e229 M import.log +:100644 100644 684cbbe 5596642 M sources commit 569d2b2c6d300e9f7b0f94a38088020954735661 Author: Andreas Schwab @@ -26148,11 +27282,11 @@ CommitDate: Thu Sep 3 09:16:25 2009 +0000 2.10.90-20 -:100644 100644 1011e899 70c81e63 M .cvsignore -:100644 100644 95839f2d ea59c5e7 M glibc-fedora.patch -:100644 100644 ed22ef94 5580212b M glibc.spec -:100644 100644 a72439fc 4e6c5786 M import.log -:100644 100644 9d08fcc3 684cbbe6 M sources +:100644 100644 1011e89 70c81e6 M .cvsignore +:100644 100644 95839f2 ea59c5e M glibc-fedora.patch +:100644 100644 ed22ef9 5580212 M glibc.spec +:100644 100644 a72439f 4e6c578 M import.log +:100644 100644 9d08fcc 684cbbe M sources commit 9613e7eb547f351084e2afd9c4cbaac34145a5e5 Author: Andreas Schwab @@ -26162,11 +27296,11 @@ CommitDate: Wed Sep 2 11:28:29 2009 +0000 2.10.90-19 -:100644 100644 c739361d 1011e899 M .cvsignore -:100644 100644 3474b4fa 95839f2d M glibc-fedora.patch -:100644 100644 dc2cf86d ed22ef94 M glibc.spec -:100644 100644 a5b0d6a7 a72439fc M import.log -:100644 100644 f56f20a3 9d08fcc3 M sources +:100644 100644 c739361 1011e89 M .cvsignore +:100644 100644 3474b4f 95839f2 M glibc-fedora.patch +:100644 100644 dc2cf86 ed22ef9 M glibc.spec +:100644 100644 a5b0d6a a72439f M import.log +:100644 100644 f56f20a 9d08fcc M sources commit f81c27d40ac791878c72c9ccf9f6e715a90e188b Author: Andreas Schwab @@ -26176,11 +27310,11 @@ CommitDate: Tue Sep 1 11:03:11 2009 +0000 2.10.90-18 -:100644 100644 78329ae0 c739361d M .cvsignore -:100644 100644 f8a0f4b7 3474b4fa M glibc-fedora.patch -:100644 100644 d96a56f4 dc2cf86d M glibc.spec -:100644 100644 4fe49d5e a5b0d6a7 M import.log -:100644 100644 70f808e8 f56f20a3 M sources +:100644 100644 78329ae c739361 M .cvsignore +:100644 100644 f8a0f4b 3474b4f M glibc-fedora.patch +:100644 100644 d96a56f dc2cf86 M glibc.spec +:100644 100644 4fe49d5 a5b0d6a M import.log +:100644 100644 70f808e f56f20a M sources commit 79e4f027f9396ec7b1e714c43a8dd1cedf73cf31 Author: roland @@ -26190,11 +27324,11 @@ CommitDate: Thu Aug 27 21:02:58 2009 +0000 2.10.90-17 -:100644 100644 973829b0 78329ae0 M .cvsignore -:100644 100644 70868cb8 f8a0f4b7 M glibc-fedora.patch -:100644 100644 227d200a d96a56f4 M glibc.spec -:100644 100644 01c891bd 4fe49d5e M import.log -:100644 100644 a3d1881d 70f808e8 M sources +:100644 100644 973829b 78329ae M .cvsignore +:100644 100644 70868cb f8a0f4b M glibc-fedora.patch +:100644 100644 227d200 d96a56f M glibc.spec +:100644 100644 01c891b 4fe49d5 M import.log +:100644 100644 a3d1881 70f808e M sources commit b47019aa112c721278b1de46b6f4ba96b53a728c Author: Andreas Schwab @@ -26204,11 +27338,11 @@ CommitDate: Wed Aug 26 12:12:07 2009 +0000 2.10.90-16 -:100644 100644 7c7d0db5 973829b0 M .cvsignore -:100644 100644 335abd7d 70868cb8 M glibc-fedora.patch -:100644 100644 f2e94171 227d200a M glibc.spec -:100644 100644 262dfcf0 01c891bd M import.log -:100644 100644 149debf0 a3d1881d M sources +:100644 100644 7c7d0db 973829b M .cvsignore +:100644 100644 335abd7 70868cb M glibc-fedora.patch +:100644 100644 f2e9417 227d200 M glibc.spec +:100644 100644 262dfcf 01c891b M import.log +:100644 100644 149debf a3d1881 M sources commit 677ba77d501712c6507442ccecbc1d916faa185b Author: Andreas Schwab @@ -26218,11 +27352,11 @@ CommitDate: Mon Aug 24 09:22:26 2009 +0000 2.10.90-15 -:100644 100644 5dc8389e 7c7d0db5 M .cvsignore -:100644 100644 2220fd82 335abd7d M glibc-fedora.patch -:100644 100644 8ac49d33 f2e94171 M glibc.spec -:100644 100644 28954c99 262dfcf0 M import.log -:100644 100644 dd7fb69a 149debf0 M sources +:100644 100644 5dc8389 7c7d0db M .cvsignore +:100644 100644 2220fd8 335abd7 M glibc-fedora.patch +:100644 100644 8ac49d3 f2e9417 M glibc.spec +:100644 100644 28954c9 262dfcf M import.log +:100644 100644 dd7fb69 149debf M sources commit 860b0b0150bf4a56f3e6e9ddc9067935beaabb28 Author: Andreas Schwab @@ -26232,11 +27366,11 @@ CommitDate: Mon Aug 17 13:52:40 2009 +0000 2.10.90-14 -:100644 100644 48220d4c 5dc8389e M .cvsignore -:100644 100644 7a4e2394 2220fd82 M glibc-fedora.patch -:100644 100644 7c1f640b 8ac49d33 M glibc.spec -:100644 100644 9ce40529 28954c99 M import.log -:100644 100644 277b7756 dd7fb69a M sources +:100644 100644 48220d4 5dc8389 M .cvsignore +:100644 100644 7a4e239 2220fd8 M glibc-fedora.patch +:100644 100644 7c1f640 8ac49d3 M glibc.spec +:100644 100644 9ce4052 28954c9 M import.log +:100644 100644 277b775 dd7fb69 M sources commit 713def3ded46e018135a16892321fab4a4acbdac Author: Andreas Schwab @@ -26246,11 +27380,11 @@ CommitDate: Mon Aug 10 09:56:04 2009 +0000 2.10.90-13 -:100644 100644 c1eb2630 48220d4c M .cvsignore -:100644 100644 b1048ce0 7a4e2394 M glibc-fedora.patch -:100644 100644 e14a727e 7c1f640b M glibc.spec -:100644 100644 7d33d8c7 9ce40529 M import.log -:100644 100644 39260e24 277b7756 M sources +:100644 100644 c1eb263 48220d4 M .cvsignore +:100644 100644 b1048ce 7a4e239 M glibc-fedora.patch +:100644 100644 e14a727 7c1f640 M glibc.spec +:100644 100644 7d33d8c 9ce4052 M import.log +:100644 100644 39260e2 277b775 M sources commit c14f62b7ea3ae02f8659b0d3df467f3978494d50 Author: Andreas Schwab @@ -26260,11 +27394,11 @@ CommitDate: Mon Aug 3 12:10:21 2009 +0000 2.10.90-12 -:100644 100644 a227c7d3 c1eb2630 M .cvsignore -:100644 100644 fc0990f3 b1048ce0 M glibc-fedora.patch -:100644 100644 c1600edf e14a727e M glibc.spec -:100644 100644 825b8ff9 7d33d8c7 M import.log -:100644 100644 894ea4fc 39260e24 M sources +:100644 100644 a227c7d c1eb263 M .cvsignore +:100644 100644 fc0990f b1048ce M glibc-fedora.patch +:100644 100644 c1600ed e14a727 M glibc.spec +:100644 100644 825b8ff 7d33d8c M import.log +:100644 100644 894ea4f 39260e2 M sources commit 6843c2d92a546bd2f278fe9a1c601f95f82ffdfe Author: Andreas Schwab @@ -26274,11 +27408,11 @@ CommitDate: Thu Jul 30 13:39:12 2009 +0000 2.10.90-11 -:100644 100644 c350406b a227c7d3 M .cvsignore -:100644 100644 a95428f6 fc0990f3 M glibc-fedora.patch -:100644 100644 b2b2f351 c1600edf M glibc.spec -:100644 100644 eb81bc3d 825b8ff9 M import.log -:100644 100644 aa01eb34 894ea4fc M sources +:100644 100644 c350406 a227c7d M .cvsignore +:100644 100644 a95428f fc0990f M glibc-fedora.patch +:100644 100644 b2b2f35 c1600ed M glibc.spec +:100644 100644 eb81bc3 825b8ff M import.log +:100644 100644 aa01eb3 894ea4f M sources commit 0e925c16c29b4ea0f12ef4d1e4a96c0d72892d56 Author: Andreas Schwab @@ -26288,11 +27422,11 @@ CommitDate: Tue Jul 28 09:34:51 2009 +0000 2.10.90-10 -:100644 100644 2db505e3 c350406b M .cvsignore -:100644 100644 9083cb4a a95428f6 M glibc-fedora.patch -:100644 100644 6a4cb58c b2b2f351 M glibc.spec -:100644 100644 96c12d9a eb81bc3d M import.log -:100644 100644 ad3be7f7 aa01eb34 M sources +:100644 100644 2db505e c350406 M .cvsignore +:100644 100644 9083cb4 a95428f M glibc-fedora.patch +:100644 100644 6a4cb58 b2b2f35 M glibc.spec +:100644 100644 96c12d9 eb81bc3 M import.log +:100644 100644 ad3be7f aa01eb3 M sources commit 96d4f4139db936759fb78ed0133324d3549f0422 Author: Andreas Schwab @@ -26302,11 +27436,11 @@ CommitDate: Mon Jul 27 13:22:45 2009 +0000 2.10.90-9 -:100644 100644 06c3a332 2db505e3 M .cvsignore -:100644 100644 55a9120c 9083cb4a M glibc-fedora.patch -:100644 100644 3b88daed 6a4cb58c M glibc.spec -:100644 100644 47238154 96c12d9a M import.log -:100644 100644 cd087e70 ad3be7f7 M sources +:100644 100644 06c3a33 2db505e M .cvsignore +:100644 100644 55a9120 9083cb4 M glibc-fedora.patch +:100644 100644 3b88dae 6a4cb58 M glibc.spec +:100644 100644 4723815 96c12d9 M import.log +:100644 100644 cd087e7 ad3be7f M sources commit 8685553fbfd6b52f7e684e6cb38006cd5bd3614f Author: Jesse Keating @@ -26316,7 +27450,7 @@ CommitDate: Sat Jul 25 00:20:16 2009 +0000 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild -:100644 100644 8fa8befb 3b88daed M glibc.spec +:100644 100644 8fa8bef 3b88dae M glibc.spec commit f6841e069532dd259e10f11ba483365221c7b5e7 Author: Jakub Jelinek @@ -26326,8 +27460,8 @@ CommitDate: Thu Jul 23 23:57:27 2009 +0000 2.10.90-7.1 -:100644 100644 208b56cb 55a9120c M glibc-fedora.patch -:100644 100644 146c8dce 8fa8befb M glibc.spec +:100644 100644 208b56c 55a9120 M glibc-fedora.patch +:100644 100644 146c8dc 8fa8bef M glibc.spec commit c57ebc6ba91726db369341a190c06b538616dedd Author: Andreas Schwab @@ -26337,11 +27471,11 @@ CommitDate: Thu Jul 23 16:45:25 2009 +0000 2.10.90-7 -:100644 100644 2ba9b8de 06c3a332 M .cvsignore -:100644 100644 21f30232 208b56cb M glibc-fedora.patch -:100644 100644 404015ae 146c8dce M glibc.spec -:100644 100644 9d33fdc9 47238154 M import.log -:100644 100644 445e09b3 cd087e70 M sources +:100644 100644 2ba9b8d 06c3a33 M .cvsignore +:100644 100644 21f3023 208b56c M glibc-fedora.patch +:100644 100644 404015a 146c8dc M glibc.spec +:100644 100644 9d33fdc 4723815 M import.log +:100644 100644 445e09b cd087e7 M sources commit d3e8a7d51ed0fd533026acb08d6c0ec24ab0f7a7 Author: Andreas Schwab @@ -26351,7 +27485,7 @@ CommitDate: Thu Jul 23 14:07:14 2009 +0000 2.10.90-6 -:100644 100644 a7a01bfa 404015ae M glibc.spec +:100644 100644 a7a01bf 404015a M glibc.spec commit 6227600d60ef9027fcb0fd99d3e484e5ca8cd5fb Author: Andreas Schwab @@ -26361,11 +27495,11 @@ CommitDate: Wed Jul 22 13:05:11 2009 +0000 2.10.90-5 -:100644 100644 be10a9ec 2ba9b8de M .cvsignore -:100644 100644 25fb2fdc 21f30232 M glibc-fedora.patch -:100644 100644 7455f825 a7a01bfa M glibc.spec -:100644 100644 4630b2de 9d33fdc9 M import.log -:100644 100644 cce2f9a9 445e09b3 M sources +:100644 100644 be10a9e 2ba9b8d M .cvsignore +:100644 100644 25fb2fd 21f3023 M glibc-fedora.patch +:100644 100644 7455f82 a7a01bf M glibc.spec +:100644 100644 4630b2d 9d33fdc M import.log +:100644 100644 cce2f9a 445e09b M sources commit 50a003794b81d4f3ea64a50f740b164194fa4a98 Author: Andreas Schwab @@ -26375,11 +27509,11 @@ CommitDate: Mon Jul 20 13:24:45 2009 +0000 2.10.90-4 -:100644 100644 35fe9ca9 be10a9ec M .cvsignore -:100644 100644 068743c2 25fb2fdc M glibc-fedora.patch -:100644 100644 0832bb2b 7455f825 M glibc.spec -:100644 100644 7a2a8994 4630b2de M import.log -:100644 100644 b75f7e84 cce2f9a9 M sources +:100644 100644 35fe9ca be10a9e M .cvsignore +:100644 100644 068743c 25fb2fd M glibc-fedora.patch +:100644 100644 0832bb2 7455f82 M glibc.spec +:100644 100644 7a2a899 4630b2d M import.log +:100644 100644 b75f7e8 cce2f9a M sources commit 2f2f29e8b79ff83cb1055a2883bbbafe986933b7 Author: Andreas Schwab @@ -26389,7 +27523,7 @@ CommitDate: Wed Jul 8 17:15:21 2009 +0000 2.10.90-3 -:100644 100644 9096df60 0832bb2b M glibc.spec +:100644 100644 9096df6 0832bb2 M glibc.spec commit 227a7ee89a1ab7a2fed4580d3838bf8deba4efbe Author: Andreas Schwab @@ -26399,10 +27533,10 @@ CommitDate: Thu Jul 2 10:22:47 2009 +0000 2.10.90-2 -:100644 100644 a6d61106 35fe9ca9 M .cvsignore -:100644 100644 9290b890 068743c2 M glibc-fedora.patch -:100644 100644 4491c413 9096df60 M glibc.spec -:100644 100644 6fbac2c0 b75f7e84 M sources +:100644 100644 a6d6110 35fe9ca M .cvsignore +:100644 100644 9290b89 068743c M glibc-fedora.patch +:100644 100644 4491c41 9096df6 M glibc.spec +:100644 100644 6fbac2c b75f7e8 M sources commit 237bb90b9673c540756df2503014f63493ab68a9 Author: Andreas Schwab @@ -26412,11 +27546,11 @@ CommitDate: Fri Jun 26 15:46:27 2009 +0000 2.10.90-1 -:100644 100644 0f0ccd37 a6d61106 M .cvsignore -:100644 100644 effea8fc 9290b890 M glibc-fedora.patch -:100644 100644 98419f6f 4491c413 M glibc.spec -:100644 100644 b9468bf2 7a2a8994 M import.log -:100644 100644 a2cafba7 6fbac2c0 M sources +:100644 100644 0f0ccd3 a6d6110 M .cvsignore +:100644 100644 effea8f 9290b89 M glibc-fedora.patch +:100644 100644 98419f6 4491c41 M glibc.spec +:100644 100644 b9468bf 7a2a899 M import.log +:100644 100644 a2cafba 6fbac2c M sources commit e0cbf08b7c3aeaffeaab4d48c506be8c29df1128 Author: Jakub Jelinek @@ -26426,11 +27560,11 @@ CommitDate: Tue Apr 14 21:28:25 2009 +0000 2.9.90-16 -:100644 100644 9ab84221 0f0ccd37 M .cvsignore -:100644 100644 f99b86d8 effea8fc M glibc-fedora.patch -:100644 100644 c9a949fa 98419f6f M glibc.spec -:100644 100644 995a3bc2 b9468bf2 M import.log -:100644 100644 45d1fdb9 a2cafba7 M sources +:100644 100644 9ab8422 0f0ccd3 M .cvsignore +:100644 100644 f99b86d effea8f M glibc-fedora.patch +:100644 100644 c9a949f 98419f6 M glibc.spec +:100644 100644 995a3bc b9468bf M import.log +:100644 100644 45d1fdb a2cafba M sources commit c75338b703a2aca2cb6e4c0f81f369f5be1de49c Author: Jakub Jelinek @@ -26440,11 +27574,11 @@ CommitDate: Thu Apr 9 22:03:35 2009 +0000 2.9.90-15 -:100644 100644 0368c07d 9ab84221 M .cvsignore -:100644 100644 455d7e43 f99b86d8 M glibc-fedora.patch -:100644 100644 75a9904c c9a949fa M glibc.spec -:100644 100644 7672d875 995a3bc2 M import.log -:100644 100644 a42ba5af 45d1fdb9 M sources +:100644 100644 0368c07 9ab8422 M .cvsignore +:100644 100644 455d7e4 f99b86d M glibc-fedora.patch +:100644 100644 75a9904 c9a949f M glibc.spec +:100644 100644 7672d87 995a3bc M import.log +:100644 100644 a42ba5a 45d1fdb M sources commit 8350a4f912bb79e562b928a301441f7b72bbe60f Author: Jakub Jelinek @@ -26454,7 +27588,7 @@ CommitDate: Thu Apr 9 21:23:43 2009 +0000 2.9.90-15 -:100644 100644 b541a55a 75a9904c M glibc.spec +:100644 100644 b541a55 75a9904 M glibc.spec commit 5bd3b47e0d97cbb0542498529eed52906d21e68a Author: Jakub Jelinek @@ -26464,11 +27598,11 @@ CommitDate: Wed Apr 8 16:46:29 2009 +0000 2.9.90-14 -:100644 100644 818c0887 0368c07d M .cvsignore -:100644 100644 50d92f1b 455d7e43 M glibc-fedora.patch -:100644 100644 7ffa75b8 b541a55a M glibc.spec -:100644 100644 69d760f8 7672d875 M import.log -:100644 100644 4ea28d49 a42ba5af M sources +:100644 100644 818c088 0368c07 M .cvsignore +:100644 100644 50d92f1 455d7e4 M glibc-fedora.patch +:100644 100644 7ffa75b b541a55 M glibc.spec +:100644 100644 69d760f 7672d87 M import.log +:100644 100644 4ea28d4 a42ba5a M sources commit 21be1f9bd4188ac44ba0a4c8e05b0f26027a037e Author: Jakub Jelinek @@ -26478,7 +27612,7 @@ CommitDate: Tue Apr 7 13:39:49 2009 +0000 2.9.90-13 -:100644 100644 f6e6535a 7ffa75b8 M glibc.spec +:100644 100644 f6e6535 7ffa75b M glibc.spec commit be304ecfa3662098fb73d9d0ddf714c16d1f3b66 Author: Jakub Jelinek @@ -26488,7 +27622,7 @@ CommitDate: Tue Apr 7 09:17:30 2009 +0000 2.9.90-13 -:100644 100644 5c169fab f6e6535a M glibc.spec +:100644 100644 5c169fa f6e6535 M glibc.spec commit ccd32a3069d3ddae01ad2239b3ccf0da75448b89 Author: Jakub Jelinek @@ -26498,11 +27632,11 @@ CommitDate: Tue Apr 7 07:39:09 2009 +0000 2.9.90-13 -:100644 100644 f132da22 818c0887 M .cvsignore -:100644 100644 781f8a15 50d92f1b M glibc-fedora.patch -:100644 100644 3440124a 5c169fab M glibc.spec -:100644 100644 b2ea6590 69d760f8 M import.log -:100644 100644 fec2a4ea 4ea28d49 M sources +:100644 100644 f132da2 818c088 M .cvsignore +:100644 100644 781f8a1 50d92f1 M glibc-fedora.patch +:100644 100644 3440124 5c169fa M glibc.spec +:100644 100644 b2ea659 69d760f M import.log +:100644 100644 fec2a4e 4ea28d4 M sources commit ec14cead29c7c7f74fa50482e55b4d0e69da72d5 Author: Jakub Jelinek @@ -26512,11 +27646,11 @@ CommitDate: Wed Apr 1 10:41:21 2009 +0000 2.9.90-12 -:100644 100644 302f735c f132da22 M .cvsignore -:100644 100644 0d5e48e9 781f8a15 M glibc-fedora.patch -:100644 100644 77a67f55 3440124a M glibc.spec -:100644 100644 5ef23ffd b2ea6590 M import.log -:100644 100644 a1f8e96b fec2a4ea M sources +:100644 100644 302f735 f132da2 M .cvsignore +:100644 100644 0d5e48e 781f8a1 M glibc-fedora.patch +:100644 100644 77a67f5 3440124 M glibc.spec +:100644 100644 5ef23ff b2ea659 M import.log +:100644 100644 a1f8e96 fec2a4e M sources commit 96386a5273722df01d2cb0e50d1fdc3921cb9156 Author: Jakub Jelinek @@ -26526,11 +27660,11 @@ CommitDate: Fri Mar 20 20:26:14 2009 +0000 2.9.90-11 -:100644 100644 41981ab1 302f735c M .cvsignore -:100644 100644 b1d840d0 0d5e48e9 M glibc-fedora.patch -:100644 100644 39eb3714 77a67f55 M glibc.spec -:100644 100644 89db9297 5ef23ffd M import.log -:100644 100644 07d8d627 a1f8e96b M sources +:100644 100644 41981ab 302f735 M .cvsignore +:100644 100644 b1d840d 0d5e48e M glibc-fedora.patch +:100644 100644 39eb371 77a67f5 M glibc.spec +:100644 100644 89db929 5ef23ff M import.log +:100644 100644 07d8d62 a1f8e96 M sources commit d3f4e3e5aee0b62e2d3ff62afe4fac705aa414cb Author: Jakub Jelinek @@ -26540,11 +27674,11 @@ CommitDate: Tue Mar 10 20:01:33 2009 +0000 2.9.90-10 -:100644 100644 87eb1f2b 41981ab1 M .cvsignore -:100644 100644 f17558eb b1d840d0 M glibc-fedora.patch -:100644 100644 b194a6d3 39eb3714 M glibc.spec -:100644 100644 75121ac2 89db9297 M import.log -:100644 100644 12a591f4 07d8d627 M sources +:100644 100644 87eb1f2 41981ab M .cvsignore +:100644 100644 f17558e b1d840d M glibc-fedora.patch +:100644 100644 b194a6d 39eb371 M glibc.spec +:100644 100644 75121ac 89db929 M import.log +:100644 100644 12a591f 07d8d62 M sources commit 268a86f75ef70201e337005a82f6ec56a486a8a0 Author: Jakub Jelinek @@ -26554,12 +27688,12 @@ CommitDate: Mon Mar 9 15:03:51 2009 +0000 2.9.90-9 -:100644 100644 6771e642 87eb1f2b M .cvsignore -:100644 100644 e0228886 f17558eb M glibc-fedora.patch -:100644 100644 fbf9a40d b194a6d3 M glibc.spec -:100644 100644 77040b51 75121ac2 M import.log -:100644 100644 1176190e 12a591f4 M sources -:100644 000000 02df68d7 00000000 D thread_db.patch +:100644 100644 6771e64 87eb1f2 M .cvsignore +:100644 100644 e022888 f17558e M glibc-fedora.patch +:100644 100644 fbf9a40 b194a6d M glibc.spec +:100644 100644 77040b5 75121ac M import.log +:100644 100644 1176190 12a591f M sources +:100644 000000 02df68d 0000000 D thread_db.patch commit 37921a2866b3c01b926d5d3bd961273672903cdf Author: Jakub Jelinek @@ -26569,7 +27703,7 @@ CommitDate: Mon Mar 9 15:00:02 2009 +0000 2.9.90-9 -:100644 100644 2f440952 e0228886 M glibc-fedora.patch +:100644 100644 2f44095 e022888 M glibc-fedora.patch commit 0bd832ee26f4862b8eac7a4a4a1c4c7a10588937 Author: roland @@ -26579,8 +27713,8 @@ CommitDate: Sat Feb 28 02:29:56 2009 +0000 fix libthread_db (#487212) -:100644 100644 617986c7 fbf9a40d M glibc.spec -:000000 100644 00000000 02df68d7 A thread_db.patch +:100644 100644 617986c fbf9a40 M glibc.spec +:000000 100644 0000000 02df68d A thread_db.patch commit 9d8081c00736b9364ec7dc1ef0d450bd489a01b6 Author: Jesse Keating @@ -26590,7 +27724,7 @@ CommitDate: Tue Feb 24 22:05:41 2009 +0000 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild -:100644 100644 7409deca 617986c7 M glibc.spec +:100644 100644 7409dec 617986c M glibc.spec commit 318370830b50bbc7bb2e36fbc29eac1fb61d79ca Author: Jakub Jelinek @@ -26600,7 +27734,7 @@ CommitDate: Wed Feb 18 23:55:24 2009 +0000 2.9.90-7 -:100644 100644 e19d5748 7409deca M glibc.spec +:100644 100644 e19d574 7409dec M glibc.spec commit 3bdc2b1398d375516908610b00ba9f734dc66fcc Author: Jakub Jelinek @@ -26610,8 +27744,8 @@ CommitDate: Wed Feb 18 23:18:08 2009 +0000 2.9.90-6 -:100644 100644 7a62d88f 2f440952 M glibc-fedora.patch -:100644 100644 d9f122e1 e19d5748 M glibc.spec +:100644 100644 7a62d88 2f44095 M glibc-fedora.patch +:100644 100644 d9f122e e19d574 M glibc.spec commit 8591a1d11a4894e36e1e10831165e19f4e15a17f Author: Jakub Jelinek @@ -26621,8 +27755,8 @@ CommitDate: Wed Feb 18 22:02:09 2009 +0000 2.9.90-5 -:100644 100644 594541d6 7a62d88f M glibc-fedora.patch -:100644 100644 f64af2f9 d9f122e1 M glibc.spec +:100644 100644 594541d 7a62d88 M glibc-fedora.patch +:100644 100644 f64af2f d9f122e M glibc.spec commit 65bf1c4263c6361866b4b2b46eaa7241604b6686 Author: Jakub Jelinek @@ -26632,11 +27766,11 @@ CommitDate: Wed Feb 18 20:47:04 2009 +0000 2.9.90-4 -:100644 100644 b680a9c6 6771e642 M .cvsignore -:100644 100644 1b6df06f 594541d6 M glibc-fedora.patch -:100644 100644 8bc53ed6 f64af2f9 M glibc.spec -:100644 100644 852f1fe5 77040b51 M import.log -:100644 100644 a2923314 1176190e M sources +:100644 100644 b680a9c 6771e64 M .cvsignore +:100644 100644 1b6df06 594541d M glibc-fedora.patch +:100644 100644 8bc53ed f64af2f M glibc.spec +:100644 100644 852f1fe 77040b5 M import.log +:100644 100644 a292331 1176190 M sources commit 849f6c653f1bb9bb9b1599f3921176c93aa739b2 Author: Jakub Jelinek @@ -26646,11 +27780,11 @@ CommitDate: Wed Feb 4 22:51:53 2009 +0000 2.9.90-3 -:100644 100644 4112a08d b680a9c6 M .cvsignore -:100644 100644 e6ce76aa 1b6df06f M glibc-fedora.patch -:100644 100644 89efe387 8bc53ed6 M glibc.spec -:100644 100644 866d174c 852f1fe5 M import.log -:100644 100644 d70e870b a2923314 M sources +:100644 100644 4112a08 b680a9c M .cvsignore +:100644 100644 e6ce76a 1b6df06 M glibc-fedora.patch +:100644 100644 89efe38 8bc53ed M glibc.spec +:100644 100644 866d174 852f1fe M import.log +:100644 100644 d70e870 a292331 M sources commit 93d06822d10c5cb2d65c565ac411127105a66fea Author: Jakub Jelinek @@ -26660,11 +27794,11 @@ CommitDate: Thu Jan 8 10:44:08 2009 +0000 2.9.90-2 -:100644 100644 1942f4b5 4112a08d M .cvsignore -:100644 100644 0cf088b0 e6ce76aa M glibc-fedora.patch -:100644 100644 13ae19b7 89efe387 M glibc.spec -:100644 100644 82230cba 866d174c M import.log -:100644 100644 9cbfa7cd d70e870b M sources +:100644 100644 1942f4b 4112a08 M .cvsignore +:100644 100644 0cf088b e6ce76a M glibc-fedora.patch +:100644 100644 13ae19b 89efe38 M glibc.spec +:100644 100644 82230cb 866d174 M import.log +:100644 100644 9cbfa7c d70e870 M sources commit 81b5083f8d2a249e5bdb69b11541df5c88f2c343 Author: Jakub Jelinek @@ -26674,11 +27808,11 @@ CommitDate: Fri Jan 2 22:17:46 2009 +0000 2.9.90-1 -:100644 100644 b68cd3a2 1942f4b5 M .cvsignore -:100644 100644 b5e34c18 0cf088b0 M glibc-fedora.patch -:100644 100644 a40c1409 13ae19b7 M glibc.spec -:100644 100644 53c4c468 82230cba M import.log -:100644 100644 604ce2a9 9cbfa7cd M sources +:100644 100644 b68cd3a 1942f4b M .cvsignore +:100644 100644 b5e34c1 0cf088b M glibc-fedora.patch +:100644 100644 a40c140 13ae19b M glibc.spec +:100644 100644 53c4c46 82230cb M import.log +:100644 100644 604ce2a 9cbfa7c M sources commit 18108d150a22a396f1fbbf557e85b360f17808e1 Author: Jakub Jelinek @@ -26688,11 +27822,11 @@ CommitDate: Thu Nov 13 22:46:07 2008 +0000 2.9-1 -:100644 100644 473323f9 b68cd3a2 M .cvsignore -:100644 100644 7accafa1 b5e34c18 M glibc-fedora.patch -:100644 100644 2e6a6c0a a40c1409 M glibc.spec -:100644 100644 d59c87df 53c4c468 M import.log -:100644 100644 d0793c3f 604ce2a9 M sources +:100644 100644 473323f b68cd3a M .cvsignore +:100644 100644 7accafa b5e34c1 M glibc-fedora.patch +:100644 100644 2e6a6c0 a40c140 M glibc.spec +:100644 100644 d59c87d 53c4c46 M import.log +:100644 100644 d0793c3 604ce2a M sources commit 1403d00b92cd8f31735cd7bd49ec9edb7edeaa81 Author: Jakub Jelinek @@ -26702,11 +27836,11 @@ CommitDate: Wed Nov 12 20:47:24 2008 +0000 2.8.90-17 -:100644 100644 2baff5d1 473323f9 M .cvsignore -:100644 100644 ff261632 7accafa1 M glibc-fedora.patch -:100644 100644 b3dce4f4 2e6a6c0a M glibc.spec -:000000 100644 00000000 d59c87df A import.log -:100644 100644 af99d6ee d0793c3f M sources +:100644 100644 2baff5d 473323f M .cvsignore +:100644 100644 ff26163 7accafa M glibc-fedora.patch +:100644 100644 b3dce4f 2e6a6c0 M glibc.spec +:000000 100644 0000000 d59c87d A import.log +:100644 100644 af99d6e d0793c3 M sources commit e90f93e6abf5e62dca619d0d55c1e617b7beaf8b Author: Jakub Jelinek @@ -26716,10 +27850,10 @@ CommitDate: Fri Oct 31 21:53:57 2008 +0000 2.8.90-16 -:100644 100644 9c9b8066 2baff5d1 M .cvsignore -:100644 100644 c4856d44 ff261632 M glibc-fedora.patch -:100644 100644 221138e4 b3dce4f4 M glibc.spec -:100644 100644 aff181c3 af99d6ee M sources +:100644 100644 9c9b806 2baff5d M .cvsignore +:100644 100644 c4856d4 ff26163 M glibc-fedora.patch +:100644 100644 221138e b3dce4f M glibc.spec +:100644 100644 aff181c af99d6e M sources commit e74e801207dbb1cbc87678c6c3bd1f8488fe7811 Author: Jakub Jelinek @@ -26729,10 +27863,10 @@ CommitDate: Tue Oct 28 15:50:31 2008 +0000 2.8.90-15 -:100644 100644 70c36f29 9c9b8066 M .cvsignore -:100644 100644 c0bc724e c4856d44 M glibc-fedora.patch -:100644 100644 6b79af75 221138e4 M glibc.spec -:100644 100644 aebd223a aff181c3 M sources +:100644 100644 70c36f2 9c9b806 M .cvsignore +:100644 100644 c0bc724 c4856d4 M glibc-fedora.patch +:100644 100644 6b79af7 221138e M glibc.spec +:100644 100644 aebd223 aff181c M sources commit 8126ba80e28ef70f6d5062b37d7cf24e238976ed Author: Jakub Jelinek @@ -26742,11 +27876,11 @@ CommitDate: Mon Oct 20 07:39:44 2008 +0000 2.8.90-14 -:100644 100644 232fa807 70c36f29 M .cvsignore -:100644 100644 fe20dd8b c0bc724e M glibc-fedora.patch -:100644 000000 41693048 00000000 D glibc-sparcv9v-memset.patch -:100644 100644 73fb6e0c 6b79af75 M glibc.spec -:100644 100644 bd4d6034 aebd223a M sources +:100644 100644 232fa80 70c36f2 M .cvsignore +:100644 100644 fe20dd8 c0bc724 M glibc-fedora.patch +:100644 000000 4169304 0000000 D glibc-sparcv9v-memset.patch +:100644 100644 73fb6e0 6b79af7 M glibc.spec +:100644 100644 bd4d603 aebd223 M sources commit afa452c3fd79b594ddd04989a39bbe1569d4ed6b Author: Dennis Gilmore @@ -26756,8 +27890,8 @@ CommitDate: Sat Oct 11 00:58:22 2008 +0000 add and apply sparcv9v memset patch -:000000 100644 00000000 41693048 A glibc-sparcv9v-memset.patch -:100644 100644 45f3e174 73fb6e0c M glibc.spec +:000000 100644 0000000 4169304 A glibc-sparcv9v-memset.patch +:100644 100644 45f3e17 73fb6e0 M glibc.spec commit 0cfc9dbd82ebc5694f4c95d8d94e1c200bf9251d Author: Jakub Jelinek @@ -26767,10 +27901,10 @@ CommitDate: Fri Aug 29 07:56:43 2008 +0000 2.8.90-12 -:100644 100644 c2b08a7c 232fa807 M .cvsignore -:100644 100644 a01456c0 fe20dd8b M glibc-fedora.patch -:100644 100644 645f3ce9 45f3e174 M glibc.spec -:100644 100644 aad227a0 bd4d6034 M sources +:100644 100644 c2b08a7 232fa80 M .cvsignore +:100644 100644 a01456c fe20dd8 M glibc-fedora.patch +:100644 100644 645f3ce 45f3e17 M glibc.spec +:100644 100644 aad227a bd4d603 M sources commit db38e683433a27e74356f72f208fb611d3986634 Author: Jakub Jelinek @@ -26780,10 +27914,10 @@ CommitDate: Fri Aug 29 07:54:06 2008 +0000 2.8.90-12 -:100644 100644 fd073192 c2b08a7c M .cvsignore -:100644 100644 05ee281b a01456c0 M glibc-fedora.patch -:100644 100644 eda0a62e 645f3ce9 M glibc.spec -:100644 100644 8e178dbd aad227a0 M sources +:100644 100644 fd07319 c2b08a7 M .cvsignore +:100644 100644 05ee281 a01456c M glibc-fedora.patch +:100644 100644 eda0a62 645f3ce M glibc.spec +:100644 100644 8e178db aad227a M sources commit 52bb3e6f828cfcd0bf432d44bc0f5c8e2601fa64 Author: Jakub Jelinek @@ -26793,10 +27927,10 @@ CommitDate: Sat Aug 2 09:03:19 2008 +0000 2.8.90-11 -:100644 100644 ed31f0c4 fd073192 M .cvsignore -:100644 100644 acf1c528 05ee281b M glibc-fedora.patch -:100644 100644 1f09f351 eda0a62e M glibc.spec -:100644 100644 ff33ec1c 8e178dbd M sources +:100644 100644 ed31f0c fd07319 M .cvsignore +:100644 100644 acf1c52 05ee281 M glibc-fedora.patch +:100644 100644 1f09f35 eda0a62 M glibc.spec +:100644 100644 ff33ec1 8e178db M sources commit 1c05dd24dbf3b0924af994c120724a4240192f81 Author: Jakub Jelinek @@ -26806,7 +27940,7 @@ CommitDate: Tue Jul 29 07:47:07 2008 +0000 2.8.90-10 -:100644 100644 f9b8d8c0 acf1c528 M glibc-fedora.patch +:100644 100644 f9b8d8c acf1c52 M glibc-fedora.patch commit be0efd41cd1f7dd8c232d8c6de1aae3db79bbfcf Author: Jakub Jelinek @@ -26816,10 +27950,10 @@ CommitDate: Mon Jul 28 23:49:51 2008 +0000 2.8.90-10 -:100644 100644 eb8160f0 ed31f0c4 M .cvsignore -:100644 100644 467f3694 f9b8d8c0 M glibc-fedora.patch -:100644 100644 9712689d 1f09f351 M glibc.spec -:100644 100644 59450f04 ff33ec1c M sources +:100644 100644 eb8160f ed31f0c M .cvsignore +:100644 100644 467f369 f9b8d8c M glibc-fedora.patch +:100644 100644 9712689 1f09f35 M glibc.spec +:100644 100644 59450f0 ff33ec1 M sources commit 569119f0bb7ed8f3719b8d1230e495a138ef7146 Author: Jakub Jelinek @@ -26829,10 +27963,10 @@ CommitDate: Wed Jul 16 10:14:40 2008 +0000 2.8.90-9 -:100644 100644 7805a596 eb8160f0 M .cvsignore -:100644 100644 2f678d80 467f3694 M glibc-fedora.patch -:100644 100644 f92e3b04 9712689d M glibc.spec -:100644 100644 bab04047 59450f04 M sources +:100644 100644 7805a59 eb8160f M .cvsignore +:100644 100644 2f678d8 467f369 M glibc-fedora.patch +:100644 100644 f92e3b0 9712689 M glibc.spec +:100644 100644 bab0404 59450f0 M sources commit e29b33f48b70ff13b1d869a5d923f3ee5b81311b Author: Jakub Jelinek @@ -26842,10 +27976,10 @@ CommitDate: Thu Jul 3 13:13:57 2008 +0000 2.8.90-8 -:100644 100644 65d108fb 7805a596 M .cvsignore -:100644 100644 99f1cd8f 2f678d80 M glibc-fedora.patch -:100644 100644 6df7d4eb f92e3b04 M glibc.spec -:100644 100644 126cca3b bab04047 M sources +:100644 100644 65d108f 7805a59 M .cvsignore +:100644 100644 99f1cd8 2f678d8 M glibc-fedora.patch +:100644 100644 6df7d4e f92e3b0 M glibc.spec +:100644 100644 126cca3 bab0404 M sources commit 975cdd1f9d4c91cba6a2d69e3214947187c46241 Author: Jakub Jelinek @@ -26855,10 +27989,10 @@ CommitDate: Fri Jun 13 17:17:16 2008 +0000 2.8.90-7 -:100644 100644 226d5903 65d108fb M .cvsignore -:100644 100644 ef6f0e56 99f1cd8f M glibc-fedora.patch -:100644 100644 4189c0d1 6df7d4eb M glibc.spec -:100644 100644 85320be5 126cca3b M sources +:100644 100644 226d590 65d108f M .cvsignore +:100644 100644 ef6f0e5 99f1cd8 M glibc-fedora.patch +:100644 100644 4189c0d 6df7d4e M glibc.spec +:100644 100644 85320be 126cca3 M sources commit 1c91d4268d566eecd5706ef471ba38f7e2b354b4 Author: Jakub Jelinek @@ -26868,7 +28002,7 @@ CommitDate: Fri Jun 13 17:15:01 2008 +0000 2.8.90-7 -:100644 100644 6b0766fd ef6f0e56 M glibc-fedora.patch +:100644 100644 6b0766f ef6f0e5 M glibc-fedora.patch commit 617fb0df2bd2c45ede5c1176179630a7f79e2cb1 Author: Jakub Jelinek @@ -26878,10 +28012,10 @@ CommitDate: Thu Jun 12 17:30:54 2008 +0000 2.8.90-6 -:100644 100644 fbaec017 226d5903 M .cvsignore -:100644 100644 ff2646cf 6b0766fd M glibc-fedora.patch -:100644 100644 25b23d59 4189c0d1 M glibc.spec -:100644 100644 7579c663 85320be5 M sources +:100644 100644 fbaec01 226d590 M .cvsignore +:100644 100644 ff2646c 6b0766f M glibc-fedora.patch +:100644 100644 25b23d5 4189c0d M glibc.spec +:100644 100644 7579c66 85320be M sources commit 425bf4a3835b00c6d0c12d041a898bdf31e61dd7 Author: Jakub Jelinek @@ -26891,10 +28025,10 @@ CommitDate: Sat May 24 22:50:07 2008 +0000 2.8.90-5 -:100644 100644 cd25ae2b fbaec017 M .cvsignore -:100644 100644 15e3cd17 ff2646cf M glibc-fedora.patch -:100644 100644 219501ce 25b23d59 M glibc.spec -:100644 100644 5eb0a623 7579c663 M sources +:100644 100644 cd25ae2 fbaec01 M .cvsignore +:100644 100644 15e3cd1 ff2646c M glibc-fedora.patch +:100644 100644 219501c 25b23d5 M glibc.spec +:100644 100644 5eb0a62 7579c66 M sources commit 901233391df3625f8447cb155bec021ac5c96b9a Author: Jakub Jelinek @@ -26904,10 +28038,10 @@ CommitDate: Tue May 20 20:17:14 2008 +0000 2.8.90-4 -:100644 100644 d2fde035 cd25ae2b M .cvsignore -:100644 100644 e74e4066 15e3cd17 M glibc-fedora.patch -:100644 100644 20602e9c 219501ce M glibc.spec -:100644 100644 de6174af 5eb0a623 M sources +:100644 100644 d2fde03 cd25ae2 M .cvsignore +:100644 100644 e74e406 15e3cd1 M glibc-fedora.patch +:100644 100644 20602e9 219501c M glibc.spec +:100644 100644 de6174a 5eb0a62 M sources commit 25b38c60a56401a738be1850daff2747907e4968 Author: Jakub Jelinek @@ -26917,10 +28051,10 @@ CommitDate: Sun May 18 11:11:25 2008 +0000 2.8.90-3 -:100644 100644 dbf20789 d2fde035 M .cvsignore -:100644 100644 dee3e3f3 e74e4066 M glibc-fedora.patch -:100644 100644 69d88da2 20602e9c M glibc.spec -:100644 100644 c8d004ff de6174af M sources +:100644 100644 dbf2078 d2fde03 M .cvsignore +:100644 100644 dee3e3f e74e406 M glibc-fedora.patch +:100644 100644 69d88da 20602e9 M glibc.spec +:100644 100644 c8d004f de6174a M sources commit c299fe23e3ede61eb8e811c539284c4ab67dc2e2 Author: Jakub Jelinek @@ -26930,10 +28064,10 @@ CommitDate: Fri May 16 22:23:13 2008 +0000 2.8.90-2 -:100644 100644 e82676d1 dbf20789 M .cvsignore -:100644 100644 debc79a7 dee3e3f3 M glibc-fedora.patch -:100644 100644 eca1f5ff 69d88da2 M glibc.spec -:100644 100644 aecf08c5 c8d004ff M sources +:100644 100644 e82676d dbf2078 M .cvsignore +:100644 100644 debc79a dee3e3f M glibc-fedora.patch +:100644 100644 eca1f5f 69d88da M glibc.spec +:100644 100644 aecf08c c8d004f M sources commit f750b536083176ed18bd753d71887fafccf6cc88 Author: Jakub Jelinek @@ -26943,10 +28077,10 @@ CommitDate: Thu May 15 08:24:11 2008 +0000 2.8.90-1 -:100644 100644 371a5fcb e82676d1 M .cvsignore -:100644 100644 2f7c4a9a debc79a7 M glibc-fedora.patch -:100644 100644 ae706794 eca1f5ff M glibc.spec -:100644 100644 c71e5095 aecf08c5 M sources +:100644 100644 371a5fc e82676d M .cvsignore +:100644 100644 2f7c4a9 debc79a M glibc-fedora.patch +:100644 100644 ae70679 eca1f5f M glibc.spec +:100644 100644 c71e509 aecf08c M sources commit 8dc1ea5199cc84a6fab6d423e4dfffe332641969 Author: Jakub Jelinek @@ -26956,10 +28090,10 @@ CommitDate: Sat Apr 12 08:14:24 2008 +0000 2.8-1 -:100644 100644 14dbb4b4 371a5fcb M .cvsignore -:100644 100644 39df6a48 2f7c4a9a M glibc-fedora.patch -:100644 100644 a6a9e245 ae706794 M glibc.spec -:100644 100644 7175f327 c71e5095 M sources +:100644 100644 14dbb4b 371a5fc M .cvsignore +:100644 100644 39df6a4 2f7c4a9 M glibc-fedora.patch +:100644 100644 a6a9e24 ae70679 M glibc.spec +:100644 100644 7175f32 c71e509 M sources commit 46c4457f73733a52ebb46d2a0c66fa65a5dd796a Author: Jakub Jelinek @@ -26969,10 +28103,10 @@ CommitDate: Fri Apr 11 19:59:40 2008 +0000 2.7.90-16 -:100644 100644 8c31b6b8 14dbb4b4 M .cvsignore -:100644 100644 ba20f619 39df6a48 M glibc-fedora.patch -:100644 100644 6f93072a a6a9e245 M glibc.spec -:100644 100644 d2a6794e 7175f327 M sources +:100644 100644 8c31b6b 14dbb4b M .cvsignore +:100644 100644 ba20f61 39df6a4 M glibc-fedora.patch +:100644 100644 6f93072 a6a9e24 M glibc.spec +:100644 100644 d2a6794 7175f32 M sources commit 97f60298f06e01a78de6aa6cefcbbdbff1870ad1 Author: Jakub Jelinek @@ -26982,10 +28116,10 @@ CommitDate: Thu Apr 10 19:42:23 2008 +0000 2.7.90-15 -:100644 100644 8e9b5118 8c31b6b8 M .cvsignore -:100644 100644 b5e52344 ba20f619 M glibc-fedora.patch -:100644 100644 aad21221 6f93072a M glibc.spec -:100644 100644 29389600 d2a6794e M sources +:100644 100644 8e9b511 8c31b6b M .cvsignore +:100644 100644 b5e5234 ba20f61 M glibc-fedora.patch +:100644 100644 aad2122 6f93072 M glibc.spec +:100644 100644 2938960 d2a6794 M sources commit c5731a392f059a795adfeeffb841fbd4ce16e194 Author: Jakub Jelinek @@ -26995,7 +28129,7 @@ CommitDate: Tue Apr 8 15:17:07 2008 +0000 2.7.90-14 -:100644 100644 30910c46 b5e52344 M glibc-fedora.patch +:100644 100644 30910c4 b5e5234 M glibc-fedora.patch commit d20e1c9f8bea44c0ee06ab14b22dcc38feaf61d3 Author: Jakub Jelinek @@ -27005,10 +28139,10 @@ CommitDate: Tue Apr 8 09:26:11 2008 +0000 2.7.90-14 -:100644 100644 e46e0982 8e9b5118 M .cvsignore -:100644 100644 123225f8 30910c46 M glibc-fedora.patch -:100644 100644 098c7fcd aad21221 M glibc.spec -:100644 100644 3785993a 29389600 M sources +:100644 100644 e46e098 8e9b511 M .cvsignore +:100644 100644 123225f 30910c4 M glibc-fedora.patch +:100644 100644 098c7fc aad2122 M glibc.spec +:100644 100644 3785993 2938960 M sources commit 45f16f2f6ceba766e766c4b4b4e7ee2ec011dad2 Author: Jakub Jelinek @@ -27018,10 +28152,10 @@ CommitDate: Fri Mar 28 14:37:48 2008 +0000 2.7.90-13 -:100644 100644 c2b08a7c e46e0982 M .cvsignore -:100644 100644 a01456c0 123225f8 M glibc-fedora.patch -:100644 100644 645f3ce9 098c7fcd M glibc.spec -:100644 100644 aad227a0 3785993a M sources +:100644 100644 c2b08a7 e46e098 M .cvsignore +:100644 100644 a01456c 123225f M glibc-fedora.patch +:100644 100644 645f3ce 098c7fc M glibc.spec +:100644 100644 aad227a 3785993 M sources commit e5e8f771b511c99e844f6325e7af7169f0c0def7 Author: Jakub Jelinek @@ -27031,10 +28165,10 @@ CommitDate: Wed Mar 26 12:29:52 2008 +0000 2.7.90-12 -:100644 100644 41e39e06 c2b08a7c M .cvsignore -:100644 100644 404017f5 a01456c0 M glibc-fedora.patch -:100644 100644 33758ab7 645f3ce9 M glibc.spec -:100644 100644 6ddd8972 aad227a0 M sources +:100644 100644 41e39e0 c2b08a7 M .cvsignore +:100644 100644 404017f a01456c M glibc-fedora.patch +:100644 100644 33758ab 645f3ce M glibc.spec +:100644 100644 6ddd897 aad227a M sources commit 192fbabef9b13c4d6e97b58d4780caa61b99bc55 Author: Jakub Jelinek @@ -27044,8 +28178,8 @@ CommitDate: Mon Mar 17 23:43:22 2008 +0000 2.7.90-11 -:100644 100644 86a9f393 404017f5 M glibc-fedora.patch -:100644 100644 1b74c282 33758ab7 M glibc.spec +:100644 100644 86a9f39 404017f M glibc-fedora.patch +:100644 100644 1b74c28 33758ab M glibc.spec commit e8c0bf781197bb192f177ed2b476e2cf5cd3a8b7 Author: Jakub Jelinek @@ -27055,10 +28189,10 @@ CommitDate: Fri Mar 14 23:00:20 2008 +0000 2.7.90-11 -:100644 100644 dc0ec0af 41e39e06 M .cvsignore -:100644 100644 94b0424c 86a9f393 M glibc-fedora.patch -:100644 100644 7d591023 1b74c282 M glibc.spec -:100644 100644 3c57e921 6ddd8972 M sources +:100644 100644 dc0ec0a 41e39e0 M .cvsignore +:100644 100644 94b0424 86a9f39 M glibc-fedora.patch +:100644 100644 7d59102 1b74c28 M glibc.spec +:100644 100644 3c57e92 6ddd897 M sources commit 87698ec1f825ac61e914b004537d866385a2fc89 Author: Jakub Jelinek @@ -27068,10 +28202,10 @@ CommitDate: Fri Mar 14 18:04:53 2008 +0000 2.7.90-10 -:100644 100644 221a07c6 dc0ec0af M .cvsignore -:100644 100644 592dfb54 94b0424c M glibc-fedora.patch -:100644 100644 f9eb6081 7d591023 M glibc.spec -:100644 100644 544db4d7 3c57e921 M sources +:100644 100644 221a07c dc0ec0a M .cvsignore +:100644 100644 592dfb5 94b0424 M glibc-fedora.patch +:100644 100644 f9eb608 7d59102 M glibc.spec +:100644 100644 544db4d 3c57e92 M sources commit 9a83731ce701441f408a91f284aa54867be88527 Author: Jesse Keating @@ -27081,7 +28215,7 @@ CommitDate: Wed Mar 5 15:08:48 2008 +0000 - Correct glibc-common requires. -:100644 100644 f58ca3c6 f9eb6081 M glibc.spec +:100644 100644 f58ca3c f9eb608 M glibc.spec commit ffc48ada46093e7a35440bbfe0c62afb32b0118f Author: Jakub Jelinek @@ -27091,10 +28225,10 @@ CommitDate: Wed Mar 5 10:32:39 2008 +0000 2.7.90-8 -:100644 100644 85c3b5ba 221a07c6 M .cvsignore -:100644 100644 ad415758 592dfb54 M glibc-fedora.patch -:100644 100644 53c998fc f58ca3c6 M glibc.spec -:100644 100644 8237b44f 544db4d7 M sources +:100644 100644 85c3b5b 221a07c M .cvsignore +:100644 100644 ad41575 592dfb5 M glibc-fedora.patch +:100644 100644 53c998f f58ca3c M glibc.spec +:100644 100644 8237b44 544db4d M sources commit 4224d63819befd16aceab556256335ed9de08f97 Author: Jakub Jelinek @@ -27104,10 +28238,10 @@ CommitDate: Sat Feb 16 17:47:51 2008 +0000 2.7.90-7 -:100644 100644 e7509a76 85c3b5ba M .cvsignore -:100644 100644 86e580c5 ad415758 M glibc-fedora.patch -:100644 100644 51757c04 53c998fc M glibc.spec -:100644 100644 d5746800 8237b44f M sources +:100644 100644 e7509a7 85c3b5b M .cvsignore +:100644 100644 86e580c ad41575 M glibc-fedora.patch +:100644 100644 51757c0 53c998f M glibc.spec +:100644 100644 d574680 8237b44 M sources commit 0ec93d330a19063a51333c1e063065f3d81bbf2c Author: Jakub Jelinek @@ -27117,10 +28251,10 @@ CommitDate: Fri Feb 1 11:02:06 2008 +0000 2.7.90-6 -:100644 100644 a861c44a e7509a76 M .cvsignore -:100644 100644 cb5ed111 86e580c5 M glibc-fedora.patch -:100644 100644 90c2e60f 51757c04 M glibc.spec -:100644 100644 f377b4b3 d5746800 M sources +:100644 100644 a861c44 e7509a7 M .cvsignore +:100644 100644 cb5ed11 86e580c M glibc-fedora.patch +:100644 100644 90c2e60 51757c0 M glibc.spec +:100644 100644 f377b4b d574680 M sources commit e8b5566e17877ad5b772a0f05f2252920cb684e4 Author: Jakub Jelinek @@ -27130,10 +28264,10 @@ CommitDate: Thu Jan 31 08:59:10 2008 +0000 2.7.90-5 -:100644 100644 1f197672 a861c44a M .cvsignore -:100644 100644 bda428b0 cb5ed111 M glibc-fedora.patch -:100644 100644 4b9964c1 90c2e60f M glibc.spec -:100644 100644 d9d02403 f377b4b3 M sources +:100644 100644 1f19767 a861c44 M .cvsignore +:100644 100644 bda428b cb5ed11 M glibc-fedora.patch +:100644 100644 4b9964c 90c2e60 M glibc.spec +:100644 100644 d9d0240 f377b4b M sources commit 85e6d0134a6c5844699dbd52fcd97f76d87352fe Author: Jakub Jelinek @@ -27143,10 +28277,10 @@ CommitDate: Fri Jan 11 08:15:01 2008 +0000 2.7.90-4 -:100644 100644 ed4c6782 1f197672 M .cvsignore -:100644 100644 34f2fe27 bda428b0 M glibc-fedora.patch -:100644 100644 ea0921be 4b9964c1 M glibc.spec -:100644 100644 822765cc d9d02403 M sources +:100644 100644 ed4c678 1f19767 M .cvsignore +:100644 100644 34f2fe2 bda428b M glibc-fedora.patch +:100644 100644 ea0921b 4b9964c M glibc.spec +:100644 100644 822765c d9d0240 M sources commit 68a8feb3ea017f66cab4df427e91b8099c3a4aa7 Author: Jakub Jelinek @@ -27156,10 +28290,10 @@ CommitDate: Thu Jan 3 20:54:55 2008 +0000 2.7.90-3 -:100644 100644 6b35c0d0 ed4c6782 M .cvsignore -:100644 100644 6a76cfcb 34f2fe27 M glibc-fedora.patch -:100644 100644 c1eb05aa ea0921be M glibc.spec -:100644 100644 c7a9be65 822765cc M sources +:100644 100644 6b35c0d ed4c678 M .cvsignore +:100644 100644 6a76cfc 34f2fe2 M glibc-fedora.patch +:100644 100644 c1eb05a ea0921b M glibc.spec +:100644 100644 c7a9be6 822765c M sources commit de3cbde65186b7f803187f49e5c41ddb1d6d2b63 Author: Jakub Jelinek @@ -27169,10 +28303,10 @@ CommitDate: Thu Dec 27 12:46:54 2007 +0000 2.7.90-2 -:100644 100644 7b809153 6b35c0d0 M .cvsignore -:100644 100644 6c737e09 6a76cfcb M glibc-fedora.patch -:100644 100644 9a778c01 c1eb05aa M glibc.spec -:100644 100644 4cc4b9d2 c7a9be65 M sources +:100644 100644 7b80915 6b35c0d M .cvsignore +:100644 100644 6c737e0 6a76cfc M glibc-fedora.patch +:100644 100644 9a778c0 c1eb05a M glibc.spec +:100644 100644 4cc4b9d c7a9be6 M sources commit 6e6f3279fd82f421e23664e6409484f53057a65c Author: Jakub Jelinek @@ -27182,8 +28316,8 @@ CommitDate: Wed Dec 12 23:24:45 2007 +0000 2.7.90-1 -:100644 100644 b7802e0d 6c737e09 M glibc-fedora.patch -:100644 100644 532a8257 4cc4b9d2 M sources +:100644 100644 b7802e0 6c737e0 M glibc-fedora.patch +:100644 100644 532a825 4cc4b9d M sources commit 44addb7013338b427b199b63d87f8ce74001e345 Author: Jakub Jelinek @@ -27193,10 +28327,10 @@ CommitDate: Wed Dec 12 21:15:38 2007 +0000 2.7.90-1 -:100644 100644 7f52f0e6 7b809153 M .cvsignore -:100644 100644 afdbbdf3 b7802e0d M glibc-fedora.patch -:100644 100644 a010ac64 9a778c01 M glibc.spec -:100644 100644 8deb71f3 532a8257 M sources +:100644 100644 7f52f0e 7b80915 M .cvsignore +:100644 100644 afdbbdf b7802e0 M glibc-fedora.patch +:100644 100644 a010ac6 9a778c0 M glibc.spec +:100644 100644 8deb71f 532a825 M sources commit aaaf28d29bf160eae35be4971077512676463ee9 Author: Jakub Jelinek @@ -27206,7 +28340,7 @@ CommitDate: Wed Dec 12 20:47:44 2007 +0000 2.7.90-1 -:100644 100644 4561532e afdbbdf3 M glibc-fedora.patch +:100644 100644 4561532 afdbbdf M glibc-fedora.patch commit e04f1bad7dbb1adbf1a261ce65d35af9179022b3 Author: Jakub Jelinek @@ -27216,8 +28350,8 @@ CommitDate: Thu Oct 18 00:17:17 2007 +0000 2.7-2 -:100644 100644 e2da84f7 4561532e M glibc-fedora.patch -:100644 100644 20b26a7d a010ac64 M glibc.spec +:100644 100644 e2da84f 4561532 M glibc-fedora.patch +:100644 100644 20b26a7 a010ac6 M glibc.spec commit 1b81d3abb3264b46ba77932448a92d8a470ec1af Author: Jakub Jelinek @@ -27227,10 +28361,10 @@ CommitDate: Wed Oct 17 20:54:45 2007 +0000 2.7-1 -:100644 100644 01962edf 7f52f0e6 M .cvsignore -:100644 100644 4f4d94d0 e2da84f7 M glibc-fedora.patch -:100644 100644 1b0a5a5c 20b26a7d M glibc.spec -:100644 100644 22a23630 8deb71f3 M sources +:100644 100644 01962ed 7f52f0e M .cvsignore +:100644 100644 4f4d94d e2da84f M glibc-fedora.patch +:100644 100644 1b0a5a5 20b26a7 M glibc.spec +:100644 100644 22a2363 8deb71f M sources commit e1ffbdc3410928cc6cbd4e43c3ea765b9d3e5786 Author: Bill Nottingham @@ -27240,7 +28374,7 @@ CommitDate: Mon Oct 15 18:47:41 2007 +0000 makefile update to properly grab makefile.common -:100644 100644 d4168e91 8056e016 M Makefile +:100644 100644 d4168e9 8056e01 M Makefile commit d410998e6d697b58ae174d197df34caddc78e853 Author: Jakub Jelinek @@ -27250,10 +28384,10 @@ CommitDate: Mon Oct 15 07:49:13 2007 +0000 2.6.90-21 -:100644 100644 4ffa2612 01962edf M .cvsignore -:100644 100644 232b72d1 4f4d94d0 M glibc-fedora.patch -:100644 100644 0266916f 1b0a5a5c M glibc.spec -:100644 100644 ee9ae45a 22a23630 M sources +:100644 100644 4ffa261 01962ed M .cvsignore +:100644 100644 232b72d 4f4d94d M glibc-fedora.patch +:100644 100644 0266916 1b0a5a5 M glibc.spec +:100644 100644 ee9ae45 22a2363 M sources commit 59c560878a82ca69ef4c7815cbe0239046483100 Author: Jakub Jelinek @@ -27263,10 +28397,10 @@ CommitDate: Sun Oct 14 21:33:51 2007 +0000 2.6.90-20 -:100644 100644 44cc56e7 4ffa2612 M .cvsignore -:100644 100644 ec060264 232b72d1 M glibc-fedora.patch -:100644 100644 56d36fee 0266916f M glibc.spec -:100644 100644 a03254df ee9ae45a M sources +:100644 100644 44cc56e 4ffa261 M .cvsignore +:100644 100644 ec06026 232b72d M glibc-fedora.patch +:100644 100644 56d36fe 0266916 M glibc.spec +:100644 100644 a03254d ee9ae45 M sources commit c5041837657625e86bcc7d0e385935780a02d1d1 Author: Jakub Jelinek @@ -27276,7 +28410,7 @@ CommitDate: Thu Oct 11 23:06:52 2007 +0000 2.6.90-19 -:100644 100644 81d37b11 ec060264 M glibc-fedora.patch +:100644 100644 81d37b1 ec06026 M glibc-fedora.patch commit 4e762dbcddabceade3f3c5865dfac458e41f0af0 Author: Jakub Jelinek @@ -27286,10 +28420,10 @@ CommitDate: Thu Oct 11 16:49:59 2007 +0000 2.6.90-19 -:100644 100644 e3b467b6 44cc56e7 M .cvsignore -:100644 100644 61e70e91 81d37b11 M glibc-fedora.patch -:100644 100644 051d80c9 56d36fee M glibc.spec -:100644 100644 12394b58 a03254df M sources +:100644 100644 e3b467b 44cc56e M .cvsignore +:100644 100644 61e70e9 81d37b1 M glibc-fedora.patch +:100644 100644 051d80c 56d36fe M glibc.spec +:100644 100644 12394b5 a03254d M sources commit 763c74dc7df193263768430fb07f2ef453e64d3b Author: Jakub Jelinek @@ -27299,10 +28433,10 @@ CommitDate: Wed Oct 10 21:17:35 2007 +0000 2.6.90-18 -:100644 100644 46b03be0 e3b467b6 M .cvsignore -:100644 100644 08d14165 61e70e91 M glibc-fedora.patch -:100644 100644 eb1eda9e 051d80c9 M glibc.spec -:100644 100644 6da988dc 12394b58 M sources +:100644 100644 46b03be e3b467b M .cvsignore +:100644 100644 08d1416 61e70e9 M glibc-fedora.patch +:100644 100644 eb1eda9 051d80c M glibc.spec +:100644 100644 6da988d 12394b5 M sources commit 6ab843b8784516be18d5f6712b2b3f373c7ef632 Author: Jakub Jelinek @@ -27312,10 +28446,10 @@ CommitDate: Wed Oct 3 19:54:48 2007 +0000 2.6.90-17 -:100644 100644 46b4303a 46b03be0 M .cvsignore -:100644 100644 f3508b2a 08d14165 M glibc-fedora.patch -:100644 100644 22c9560b eb1eda9e M glibc.spec -:100644 100644 e373891c 6da988dc M sources +:100644 100644 46b4303 46b03be M .cvsignore +:100644 100644 f3508b2 08d1416 M glibc-fedora.patch +:100644 100644 22c9560 eb1eda9 M glibc.spec +:100644 100644 e373891 6da988d M sources commit e2e6967dd1946b6ad2bfe3c00b2986840fe8f3c6 Author: Jakub Jelinek @@ -27325,10 +28459,10 @@ CommitDate: Sat Sep 29 19:47:29 2007 +0000 2.6.90-16 -:100644 100644 78497daf 46b4303a M .cvsignore -:100644 100644 3696c627 f3508b2a M glibc-fedora.patch -:100644 100644 d5be22ec 22c9560b M glibc.spec -:100644 100644 4f0b7469 e373891c M sources +:100644 100644 78497da 46b4303 M .cvsignore +:100644 100644 3696c62 f3508b2 M glibc-fedora.patch +:100644 100644 d5be22e 22c9560 M glibc.spec +:100644 100644 4f0b746 e373891 M sources commit 7368934d3fac097edc89e8b775cb0f924ee435e4 Author: Jakub Jelinek @@ -27338,10 +28472,10 @@ CommitDate: Thu Sep 20 00:29:56 2007 +0000 2.6.90-15 -:100644 100644 752ae3c3 78497daf M .cvsignore -:100644 100644 b9e508a1 3696c627 M glibc-fedora.patch -:100644 100644 e00461c0 d5be22ec M glibc.spec -:100644 100644 649624c6 4f0b7469 M sources +:100644 100644 752ae3c 78497da M .cvsignore +:100644 100644 b9e508a 3696c62 M glibc-fedora.patch +:100644 100644 e00461c d5be22e M glibc.spec +:100644 100644 649624c 4f0b746 M sources commit 4ea15d1afceebe3c21cc8346f89def668c168ad2 Author: Jakub Jelinek @@ -27351,10 +28485,10 @@ CommitDate: Tue Sep 18 20:35:52 2007 +0000 2.6.90-14 -:100644 100644 15f70925 752ae3c3 M .cvsignore -:100644 100644 cb2f7ec1 b9e508a1 M glibc-fedora.patch -:100644 100644 ba9cfad5 e00461c0 M glibc.spec -:100644 100644 95d69555 649624c6 M sources +:100644 100644 15f7092 752ae3c M .cvsignore +:100644 100644 cb2f7ec b9e508a M glibc-fedora.patch +:100644 100644 ba9cfad e00461c M glibc.spec +:100644 100644 95d6955 649624c M sources commit 4c53b154b0934513258d6374ec8ca6c5b3b67671 Author: Jakub Jelinek @@ -27364,7 +28498,7 @@ CommitDate: Tue Sep 18 20:12:30 2007 +0000 2.6.90-14 -:100644 100644 8cca3330 cb2f7ec1 M glibc-fedora.patch +:100644 100644 8cca333 cb2f7ec M glibc-fedora.patch commit 0d56f9db977dad046fd073f3a307d259005fb330 Author: Jakub Jelinek @@ -27374,10 +28508,10 @@ CommitDate: Mon Aug 27 21:13:25 2007 +0000 2.6.90-13 -:100644 100644 fd34879d 15f70925 M .cvsignore -:100644 100644 60f667f7 8cca3330 M glibc-fedora.patch -:100644 100644 513f8286 ba9cfad5 M glibc.spec -:100644 100644 b2502a4a 95d69555 M sources +:100644 100644 fd34879 15f7092 M .cvsignore +:100644 100644 60f667f 8cca333 M glibc-fedora.patch +:100644 100644 513f828 ba9cfad M glibc.spec +:100644 100644 b2502a4 95d6955 M sources commit 2016b56d2ac73c86eacdc644f5a21032efa8a93b Author: Jakub Jelinek @@ -27387,7 +28521,7 @@ CommitDate: Sat Aug 25 22:03:11 2007 +0000 2.6.90-12 -:100644 100644 9e9db6d7 60f667f7 M glibc-fedora.patch +:100644 100644 9e9db6d 60f667f M glibc-fedora.patch commit b4a06a5311dd8084ab55b6aefee98d169ee82e42 Author: Jakub Jelinek @@ -27397,10 +28531,10 @@ CommitDate: Sat Aug 25 19:31:13 2007 +0000 2.6.90-12 -:100644 100644 1a3f0b97 fd34879d M .cvsignore -:100644 100644 d5136618 9e9db6d7 M glibc-fedora.patch -:100644 100644 bf72d551 513f8286 M glibc.spec -:100644 100644 762910fa b2502a4a M sources +:100644 100644 1a3f0b9 fd34879 M .cvsignore +:100644 100644 d513661 9e9db6d M glibc-fedora.patch +:100644 100644 bf72d55 513f828 M glibc.spec +:100644 100644 762910f b2502a4 M sources commit 010c99dcf622fcf7ed9520bf432ec8ee19fde7c8 Author: Jakub Jelinek @@ -27410,10 +28544,10 @@ CommitDate: Thu Aug 16 22:21:10 2007 +0000 2.6.90-11 -:100644 100644 09e2ee82 1a3f0b97 M .cvsignore -:100644 100644 a149e58b d5136618 M glibc-fedora.patch -:100644 100644 559afc2d bf72d551 M glibc.spec -:100644 100644 a05c8b8f 762910fa M sources +:100644 100644 09e2ee8 1a3f0b9 M .cvsignore +:100644 100644 a149e58 d513661 M glibc-fedora.patch +:100644 100644 559afc2 bf72d55 M glibc.spec +:100644 100644 a05c8b8 762910f M sources commit bd085531cf365d6840f06344379592c2acab2211 Author: Jakub Jelinek @@ -27423,10 +28557,10 @@ CommitDate: Wed Aug 15 21:19:33 2007 +0000 2.6.90-10 -:100644 100644 023895c1 09e2ee82 M .cvsignore -:100644 100644 12e09469 a149e58b M glibc-fedora.patch -:100644 100644 27402549 559afc2d M glibc.spec -:100644 100644 63115681 a05c8b8f M sources +:100644 100644 023895c 09e2ee8 M .cvsignore +:100644 100644 12e0946 a149e58 M glibc-fedora.patch +:100644 100644 2740254 559afc2 M glibc.spec +:100644 100644 6311568 a05c8b8 M sources commit 11f5889b6ce54b08e7ef254c8f34b88938c46e11 Author: Jakub Jelinek @@ -27436,11 +28570,11 @@ CommitDate: Tue Aug 14 07:57:53 2007 +0000 2.6.90-9 -:100644 100644 dc666c38 023895c1 M .cvsignore -:100644 100644 958b0022 12e09469 M glibc-fedora.patch -:100644 000000 606c9cb6 00000000 D glibc-ldconfig-speedup.patch -:100644 100644 61840119 27402549 M glibc.spec -:100644 100644 547eacc0 63115681 M sources +:100644 100644 dc666c3 023895c M .cvsignore +:100644 100644 958b002 12e0946 M glibc-fedora.patch +:100644 000000 606c9cb 0000000 D glibc-ldconfig-speedup.patch +:100644 100644 6184011 2740254 M glibc.spec +:100644 100644 547eacc 6311568 M sources commit b93d23343195014cd928a45ba04018460675e735 Author: roland @@ -27450,8 +28584,8 @@ CommitDate: Fri Aug 10 22:37:27 2007 +0000 2.6.90-8 -:000000 100644 00000000 606c9cb6 A glibc-ldconfig-speedup.patch -:100644 100644 1f2bcd30 61840119 M glibc.spec +:000000 100644 0000000 606c9cb A glibc-ldconfig-speedup.patch +:100644 100644 1f2bcd3 6184011 M glibc.spec commit 99ad43cbc72f9c298813aa2d98ef6697be76fbf9 Author: roland @@ -27461,11 +28595,11 @@ CommitDate: Fri Aug 10 22:27:46 2007 +0000 2.6.90-7 -:100644 100644 7a303990 dc666c38 M .cvsignore -:100644 100644 997b2ee6 958b0022 M glibc-fedora.patch -:100644 000000 606c9cb6 00000000 D glibc-ldconfig-speedup.patch -:100644 100644 1eb93742 1f2bcd30 M glibc.spec -:100644 100644 120f64a0 547eacc0 M sources +:100644 100644 7a30399 dc666c3 M .cvsignore +:100644 100644 997b2ee 958b002 M glibc-fedora.patch +:100644 000000 606c9cb 0000000 D glibc-ldconfig-speedup.patch +:100644 100644 1eb9374 1f2bcd3 M glibc.spec +:100644 100644 120f64a 547eacc M sources commit b25f0c25f753f3ecea434b21c7bc3cdb8e742a77 Author: roland @@ -27475,8 +28609,8 @@ CommitDate: Fri Aug 10 01:57:33 2007 +0000 restore glibc-ldconfig-speedup.patch, not in sourceware fedora-branch -:000000 100644 00000000 606c9cb6 A glibc-ldconfig-speedup.patch -:100644 100644 07bf562e 1eb93742 M glibc.spec +:000000 100644 0000000 606c9cb A glibc-ldconfig-speedup.patch +:100644 100644 07bf562 1eb9374 M glibc.spec commit e0b4499ff963082efeee46f3d6eaf9f3c8906ebd Author: roland @@ -27486,12 +28620,12 @@ CommitDate: Fri Aug 10 01:55:13 2007 +0000 2.6.90-5 -:100644 100644 0d352f4a 7a303990 M .cvsignore -:100644 100644 b9e65028 997b2ee6 M glibc-fedora.patch -:100644 000000 606c9cb6 00000000 D glibc-ldconfig-speedup.patch -:100644 000000 fd7e23d6 00000000 D glibc-ppc-rt.patch -:100644 100644 91c86a54 07bf562e M glibc.spec -:100644 100644 4aaf4aab 120f64a0 M sources +:100644 100644 0d352f4 7a30399 M .cvsignore +:100644 100644 b9e6502 997b2ee M glibc-fedora.patch +:100644 000000 606c9cb 0000000 D glibc-ldconfig-speedup.patch +:100644 000000 fd7e23d 0000000 D glibc-ppc-rt.patch +:100644 100644 91c86a5 07bf562 M glibc.spec +:100644 100644 4aaf4aa 120f64a M sources commit 3a5173db70b34a7b54fe649c50359f181fc5d372 Author: Jakub Jelinek @@ -27501,8 +28635,8 @@ CommitDate: Sun Aug 5 11:41:46 2007 +0000 2.6.90-4 -:100644 100644 6e57aed7 fd7e23d6 M glibc-ppc-rt.patch -:100644 100644 e7754fcd 91c86a54 M glibc.spec +:100644 100644 6e57aed fd7e23d M glibc-ppc-rt.patch +:100644 100644 e7754fc 91c86a5 M glibc.spec commit ca63d6a542a00b89a32b8dadafa154f8a819150e Author: Jakub Jelinek @@ -27512,7 +28646,7 @@ CommitDate: Sun Aug 5 11:15:33 2007 +0000 2.6.90-4 -:000000 100644 00000000 6e57aed7 A glibc-ppc-rt.patch +:000000 100644 0000000 6e57aed A glibc-ppc-rt.patch commit 12ebbc9680997203daee54a680ba8c6ec791ae8b Author: Jakub Jelinek @@ -27522,11 +28656,11 @@ CommitDate: Sat Aug 4 21:28:38 2007 +0000 2.6.90-3 -:100644 100644 f0511462 0d352f4a M .cvsignore -:100644 100644 a9f8f24f b9e65028 M glibc-fedora.patch -:000000 100644 00000000 606c9cb6 A glibc-ldconfig-speedup.patch -:100644 100644 b8536d11 e7754fcd M glibc.spec -:100644 100644 37e99e88 4aaf4aab M sources +:100644 100644 f051146 0d352f4 M .cvsignore +:100644 100644 a9f8f24 b9e6502 M glibc-fedora.patch +:000000 100644 0000000 606c9cb A glibc-ldconfig-speedup.patch +:100644 100644 b8536d1 e7754fc M glibc.spec +:100644 100644 37e99e8 4aaf4aa M sources commit 9214828a3d7fb8cfd538109bfa290582176e7cb9 Author: Jakub Jelinek @@ -27536,8 +28670,8 @@ CommitDate: Sat Aug 4 21:26:28 2007 +0000 2.6.90-3 -:100644 000000 606c9cb6 00000000 D glibc-ldconfig-speedup.patch -:100644 100644 619a557e b8536d11 M glibc.spec +:100644 000000 606c9cb 0000000 D glibc-ldconfig-speedup.patch +:100644 100644 619a557 b8536d1 M glibc.spec commit 3d434a7b8d63116f4e149b766b8b4aec015ba2d5 Author: Jakub Jelinek @@ -27547,16 +28681,16 @@ CommitDate: Wed Aug 1 17:58:02 2007 +0000 2.6.90-2 -:100644 100644 9587647d f0511462 M .cvsignore -:100644 000000 691881f8 00000000 D glibc-fallocate.patch -:100644 100644 46ad081b a9f8f24f M glibc-fedora.patch -:100644 000000 c7b88167 00000000 D glibc-i386-rwlock.patch -:100644 000000 97fe4bac 00000000 D glibc-kaio-private-futex.patch -:000000 100644 00000000 606c9cb6 A glibc-ldconfig-speedup.patch -:100644 000000 5a1fd14d 00000000 D glibc-private-futex.patch -:100644 000000 0942e03e 00000000 D glibc-warning-patrol.patch -:100644 100644 4c77217d 619a557e M glibc.spec -:100644 100644 2cfb0c1c 37e99e88 M sources +:100644 100644 9587647 f051146 M .cvsignore +:100644 000000 691881f 0000000 D glibc-fallocate.patch +:100644 100644 46ad081 a9f8f24 M glibc-fedora.patch +:100644 000000 c7b8816 0000000 D glibc-i386-rwlock.patch +:100644 000000 97fe4ba 0000000 D glibc-kaio-private-futex.patch +:000000 100644 0000000 606c9cb A glibc-ldconfig-speedup.patch +:100644 000000 5a1fd14 0000000 D glibc-private-futex.patch +:100644 000000 0942e03 0000000 D glibc-warning-patrol.patch +:100644 100644 4c77217 619a557 M glibc.spec +:100644 100644 2cfb0c1 37e99e8 M sources commit 20943605249cf2d4604d7187069e29577e04f8eb Author: Jakub Jelinek @@ -27566,8 +28700,8 @@ CommitDate: Wed Aug 1 17:49:56 2007 +0000 2.6.90-2 -:100644 000000 4d621af4 00000000 D glibc-ldconfig-speedup.patch -:100644 100644 d6e8f46b 4c77217d M glibc.spec +:100644 000000 4d621af 0000000 D glibc-ldconfig-speedup.patch +:100644 100644 d6e8f46 4c77217 M glibc.spec commit 4c4d5636558b8623e64ab728ddfe9f1cd7ab30f3 Author: Jakub Jelinek @@ -27577,9 +28711,9 @@ CommitDate: Wed Aug 1 10:30:49 2007 +0000 2.6.90-1 -:100644 100644 104768c2 691881f8 M glibc-fallocate.patch -:000000 100644 00000000 97fe4bac A glibc-kaio-private-futex.patch -:100644 100644 0380fdcc d6e8f46b M glibc.spec +:100644 100644 104768c 691881f M glibc-fallocate.patch +:000000 100644 0000000 97fe4ba A glibc-kaio-private-futex.patch +:100644 100644 0380fdc d6e8f46 M glibc.spec commit d669fbfbe05c8031345d8b274ff17a35182f876d Author: Jakub Jelinek @@ -27589,8 +28723,8 @@ CommitDate: Tue Jul 31 19:42:13 2007 +0000 2.6.90-1 -:000000 100644 00000000 104768c2 A glibc-fallocate.patch -:100644 100644 9dbecc3a 0380fdcc M glibc.spec +:000000 100644 0000000 104768c A glibc-fallocate.patch +:100644 100644 9dbecc3 0380fdc M glibc.spec commit 0f388ce8689f409a11434aa9707a04a44907b2ce Author: Jakub Jelinek @@ -27600,14 +28734,14 @@ CommitDate: Tue Jul 31 18:24:22 2007 +0000 2.6.90-1 -:100644 100644 1c1c289c 9587647d M .cvsignore -:100644 100644 621a1b33 46ad081b M glibc-fedora.patch -:000000 100644 00000000 c7b88167 A glibc-i386-rwlock.patch -:000000 100644 00000000 4d621af4 A glibc-ldconfig-speedup.patch -:000000 100644 00000000 5a1fd14d A glibc-private-futex.patch -:000000 100644 00000000 0942e03e A glibc-warning-patrol.patch -:100644 100644 0d909e97 9dbecc3a M glibc.spec -:100644 100644 f9b15dd8 2cfb0c1c M sources +:100644 100644 1c1c289 9587647 M .cvsignore +:100644 100644 621a1b3 46ad081 M glibc-fedora.patch +:000000 100644 0000000 c7b8816 A glibc-i386-rwlock.patch +:000000 100644 0000000 4d621af A glibc-ldconfig-speedup.patch +:000000 100644 0000000 5a1fd14 A glibc-private-futex.patch +:000000 100644 0000000 0942e03 A glibc-warning-patrol.patch +:100644 100644 0d909e9 9dbecc3 M glibc.spec +:100644 100644 f9b15dd 2cfb0c1 M sources commit 50740a3c445618b88c06b481a9622092c1d31ed9 Author: Jakub Jelinek @@ -27617,7 +28751,7 @@ CommitDate: Tue Jul 31 18:18:37 2007 +0000 2.6.90-1 -:100644 100644 aa58aa8d 0d909e97 M glibc.spec +:100644 100644 aa58aa8 0d909e9 M glibc.spec commit afd77f36ede80e78b731a97bf31cbb91b8c27373 Author: roland @@ -27627,10 +28761,10 @@ CommitDate: Tue May 15 20:59:30 2007 +0000 glibc 2.6 release -:100644 100644 f3c64791 1c1c289c M .cvsignore -:100644 100644 e4a2f1b0 621a1b33 M glibc-fedora.patch -:100644 100644 19ffb79a aa58aa8d M glibc.spec -:100644 100644 934c1a58 f9b15dd8 M sources +:100644 100644 f3c6479 1c1c289 M .cvsignore +:100644 100644 e4a2f1b 621a1b3 M glibc-fedora.patch +:100644 100644 19ffb79 aa58aa8 M glibc.spec +:100644 100644 934c1a5 f9b15dd M sources commit c5a7af7148169176ba3513b06b56b784b4244c79 Author: Jakub Jelinek @@ -27640,10 +28774,10 @@ CommitDate: Thu May 10 23:27:38 2007 +0000 2.5.90-24 -:100644 100644 4c997cf5 f3c64791 M .cvsignore -:100644 100644 00246460 e4a2f1b0 M glibc-fedora.patch -:100644 100644 c07cae25 19ffb79a M glibc.spec -:100644 100644 dfceb028 934c1a58 M sources +:100644 100644 4c997cf f3c6479 M .cvsignore +:100644 100644 0024646 e4a2f1b M glibc-fedora.patch +:100644 100644 c07cae2 19ffb79 M glibc.spec +:100644 100644 dfceb02 934c1a5 M sources commit 510ee2fbe928828e6e368065ae8636276df16e1e Author: Jakub Jelinek @@ -27653,10 +28787,10 @@ CommitDate: Fri May 4 11:16:58 2007 +0000 2.5.90-22 -:100644 100644 c7017e94 4c997cf5 M .cvsignore -:100644 100644 6be01d0f 00246460 M glibc-fedora.patch -:100644 100644 ae0ba3ff c07cae25 M glibc.spec -:100644 100644 2b3b95ec dfceb028 M sources +:100644 100644 c7017e9 4c997cf M .cvsignore +:100644 100644 6be01d0 0024646 M glibc-fedora.patch +:100644 100644 ae0ba3f c07cae2 M glibc.spec +:100644 100644 2b3b95e dfceb02 M sources commit 1f4d93dae9cdffbe31c41babd5d306aae87aad17 Author: Jakub Jelinek @@ -27666,7 +28800,7 @@ CommitDate: Fri May 4 11:13:51 2007 +0000 2.5.90-22 -:100644 100644 42fc252f ae0ba3ff M glibc.spec +:100644 100644 42fc252 ae0ba3f M glibc.spec commit 3dbfe42439c8dfbd32b109616e0131a9b89e4c3c Author: Jakub Jelinek @@ -27676,7 +28810,7 @@ CommitDate: Tue Apr 17 02:25:38 2007 +0000 2.5.90-21 -:100644 100644 7ff17e10 42fc252f M glibc.spec +:100644 100644 7ff17e1 42fc252 M glibc.spec commit ee8c17a7d7787e71e1a36009bab6a14e9fc435d8 Author: Jakub Jelinek @@ -27686,7 +28820,7 @@ CommitDate: Tue Apr 17 01:18:06 2007 +0000 2.5.90-21 -:100644 100644 bf77d2d2 7ff17e10 M glibc.spec +:100644 100644 bf77d2d 7ff17e1 M glibc.spec commit a199884a13037e13c39593481e39d01357ea8b9c Author: Jakub Jelinek @@ -27696,7 +28830,7 @@ CommitDate: Tue Apr 17 00:30:25 2007 +0000 2.5.90-21 -:100644 100644 c56d3225 bf77d2d2 M glibc.spec +:100644 100644 c56d322 bf77d2d M glibc.spec commit 7d351d9b1519d7f387167530721786d696405175 Author: Jakub Jelinek @@ -27706,10 +28840,10 @@ CommitDate: Tue Apr 17 00:12:45 2007 +0000 auto-import glibc-2.5.90-21 on branch devel from glibc-2.5.90-21.src.rpm -:100644 100644 20beb314 c7017e94 M .cvsignore -:100644 100644 333034e9 6be01d0f M glibc-fedora.patch -:100644 100644 ae0c65a6 c56d3225 M glibc.spec -:100644 100644 09283314 2b3b95ec M sources +:100644 100644 20beb31 c7017e9 M .cvsignore +:100644 100644 333034e 6be01d0 M glibc-fedora.patch +:100644 100644 ae0c65a c56d322 M glibc.spec +:100644 100644 0928331 2b3b95e M sources commit 90e3c63b80f0cfb0beadc8ebad28e074523fbd03 Author: Jakub Jelinek @@ -27719,8 +28853,8 @@ CommitDate: Sat Mar 31 18:38:35 2007 +0000 2.5.90-20 -:100644 100644 0689c4f7 333034e9 M glibc-fedora.patch -:100644 100644 bb28cafa ae0c65a6 M glibc.spec +:100644 100644 0689c4f 333034e M glibc-fedora.patch +:100644 100644 bb28caf ae0c65a M glibc.spec commit d465a063ed8e4aa7c38f112e5806b5657c0a5b20 Author: Jakub Jelinek @@ -27730,10 +28864,10 @@ CommitDate: Sat Mar 31 17:37:20 2007 +0000 auto-import glibc-2.5.90-20 on branch devel from glibc-2.5.90-20.src.rpm -:100644 100644 7bf6ad3c 20beb314 M .cvsignore -:100644 100644 07203267 0689c4f7 M glibc-fedora.patch -:100644 100644 e750faaf bb28cafa M glibc.spec -:100644 100644 0d84decc 09283314 M sources +:100644 100644 7bf6ad3 20beb31 M .cvsignore +:100644 100644 0720326 0689c4f M glibc-fedora.patch +:100644 100644 e750faa bb28caf M glibc.spec +:100644 100644 0d84dec 0928331 M sources commit fc76d40f25685b1ac886ac18e1ab9dcac52ed9c3 Author: Jakub Jelinek @@ -27743,7 +28877,7 @@ CommitDate: Sun Mar 18 12:02:21 2007 +0000 2.5.90-19 -:100644 100644 156e4acd 07203267 M glibc-fedora.patch +:100644 100644 156e4ac 0720326 M glibc-fedora.patch commit 09c6354844eaa5e4a499e490a7a6c2e88208067c Author: Jakub Jelinek @@ -27753,7 +28887,7 @@ CommitDate: Sat Mar 17 22:07:06 2007 +0000 2.5.90-19 -:100644 100644 48452e80 156e4acd M glibc-fedora.patch +:100644 100644 48452e8 156e4ac M glibc-fedora.patch commit 57c79f74469ae0671147de038ccbfee68302a67a Author: Jakub Jelinek @@ -27763,10 +28897,10 @@ CommitDate: Sat Mar 17 22:05:58 2007 +0000 auto-import glibc-2.5.90-19 on branch devel from glibc-2.5.90-19.src.rpm -:100644 100644 63fa4e7f 7bf6ad3c M .cvsignore -:100644 100644 afb0c5c2 48452e80 M glibc-fedora.patch -:100644 100644 89eed07d e750faaf M glibc.spec -:100644 100644 005ae465 0d84decc M sources +:100644 100644 63fa4e7 7bf6ad3 M .cvsignore +:100644 100644 afb0c5c 48452e8 M glibc-fedora.patch +:100644 100644 89eed07 e750faa M glibc.spec +:100644 100644 005ae46 0d84dec M sources commit 729dbdcd8f72d5e9b49e84f0420bd4d2a88a2475 Author: Jakub Jelinek @@ -27776,7 +28910,7 @@ CommitDate: Wed Feb 21 13:53:47 2007 +0000 2.5.90-18 -:100644 100644 49e78652 afb0c5c2 M glibc-fedora.patch +:100644 100644 49e7865 afb0c5c M glibc-fedora.patch commit a7c36fdae7d93f335398d7b4833370857ab68247 Author: Jakub Jelinek @@ -27786,10 +28920,10 @@ CommitDate: Wed Feb 21 11:58:31 2007 +0000 auto-import glibc-2.5.90-18 on branch devel from glibc-2.5.90-18.src.rpm -:100644 100644 396c4002 63fa4e7f M .cvsignore -:100644 100644 bd41ac14 49e78652 M glibc-fedora.patch -:100644 100644 20074676 89eed07d M glibc.spec -:100644 100644 1b15745e 005ae465 M sources +:100644 100644 396c400 63fa4e7 M .cvsignore +:100644 100644 bd41ac1 49e7865 M glibc-fedora.patch +:100644 100644 2007467 89eed07 M glibc.spec +:100644 100644 1b15745 005ae46 M sources commit 974852089e172fa06ef45909a4879a5cab98e722 Author: Jakub Jelinek @@ -27799,10 +28933,10 @@ CommitDate: Sun Feb 11 17:39:19 2007 +0000 auto-import glibc-2.5.90-17 on branch devel from glibc-2.5.90-17.src.rpm -:100644 100644 4a6e7385 396c4002 M .cvsignore -:100644 100644 d1f0ce87 bd41ac14 M glibc-fedora.patch -:100644 100644 98b72716 20074676 M glibc.spec -:100644 100644 4f282e83 1b15745e M sources +:100644 100644 4a6e738 396c400 M .cvsignore +:100644 100644 d1f0ce8 bd41ac1 M glibc-fedora.patch +:100644 100644 98b7271 2007467 M glibc.spec +:100644 100644 4f282e8 1b15745 M sources commit 3d742e18eeda4ca358b5f46a8d1858dce3df49ab Author: Jakub Jelinek @@ -27812,10 +28946,10 @@ CommitDate: Fri Feb 2 10:06:34 2007 +0000 auto-import glibc-2.5.90-16 on branch devel from glibc-2.5.90-16.src.rpm -:100644 100644 fd5df459 4a6e7385 M .cvsignore -:100644 100644 d5c19a1b d1f0ce87 M glibc-fedora.patch -:100644 100644 353e5151 98b72716 M glibc.spec -:100644 100644 16ebc479 4f282e83 M sources +:100644 100644 fd5df45 4a6e738 M .cvsignore +:100644 100644 d5c19a1 d1f0ce8 M glibc-fedora.patch +:100644 100644 353e515 98b7271 M glibc.spec +:100644 100644 16ebc47 4f282e8 M sources commit 1c73d53e9ce85ece92747cbd0fedc8e646f3880f Author: Jakub Jelinek @@ -27825,7 +28959,7 @@ CommitDate: Wed Jan 17 11:54:25 2007 +0000 2.5.90-15 -:100644 100644 186baebc d5c19a1b M glibc-fedora.patch +:100644 100644 186baeb d5c19a1 M glibc-fedora.patch commit 9893fad9eeaead9d9587cb9d5e81f6f102b98651 Author: Jakub Jelinek @@ -27835,10 +28969,10 @@ CommitDate: Wed Jan 17 11:26:50 2007 +0000 auto-import glibc-2.5.90-15 on branch devel from glibc-2.5.90-15.src.rpm -:100644 100644 dc949aa5 fd5df459 M .cvsignore -:100644 100644 ae56dc49 186baebc M glibc-fedora.patch -:100644 100644 5c4187c8 353e5151 M glibc.spec -:100644 100644 8a0984db 16ebc479 M sources +:100644 100644 dc949aa fd5df45 M .cvsignore +:100644 100644 ae56dc4 186baeb M glibc-fedora.patch +:100644 100644 5c4187c 353e515 M glibc.spec +:100644 100644 8a0984d 16ebc47 M sources commit 83804eb2f6b8767add04c1e30cd23430dc007db1 Author: Jakub Jelinek @@ -27848,10 +28982,10 @@ CommitDate: Tue Dec 19 20:08:04 2006 +0000 auto-import glibc-2.5.90-14 on branch devel from glibc-2.5.90-14.src.rpm -:100644 100644 72663fb3 dc949aa5 M .cvsignore -:100644 100644 d757b5ea ae56dc49 M glibc-fedora.patch -:100644 100644 52a6a375 5c4187c8 M glibc.spec -:100644 100644 b82122cf 8a0984db M sources +:100644 100644 72663fb dc949aa M .cvsignore +:100644 100644 d757b5e ae56dc4 M glibc-fedora.patch +:100644 100644 52a6a37 5c4187c M glibc.spec +:100644 100644 b82122c 8a0984d M sources commit 6e8aad22e4903d79a2afc4e59d5825cf2ea49853 Author: Jakub Jelinek @@ -27861,10 +28995,10 @@ CommitDate: Thu Dec 14 09:29:53 2006 +0000 auto-import glibc-2.5.90-13 on branch devel from glibc-2.5.90-13.src.rpm -:100644 100644 25745a6a 72663fb3 M .cvsignore -:100644 100644 e1ba6587 d757b5ea M glibc-fedora.patch -:100644 100644 f112d460 52a6a375 M glibc.spec -:100644 100644 74316d0a b82122cf M sources +:100644 100644 25745a6 72663fb M .cvsignore +:100644 100644 e1ba658 d757b5e M glibc-fedora.patch +:100644 100644 f112d46 52a6a37 M glibc.spec +:100644 100644 74316d0 b82122c M sources commit 9b5c867e548eb08838121cf8dfef12d097d5e8f0 Author: Jakub Jelinek @@ -27874,10 +29008,10 @@ CommitDate: Sun Dec 10 11:04:25 2006 +0000 auto-import glibc-2.5.90-12 on branch devel from glibc-2.5.90-12.src.rpm -:100644 100644 05bd46bf 25745a6a M .cvsignore -:100644 100644 94f2b126 e1ba6587 M glibc-fedora.patch -:100644 100644 49ea2c1a f112d460 M glibc.spec -:100644 100644 7bb71ca6 74316d0a M sources +:100644 100644 05bd46b 25745a6 M .cvsignore +:100644 100644 94f2b12 e1ba658 M glibc-fedora.patch +:100644 100644 49ea2c1 f112d46 M glibc.spec +:100644 100644 7bb71ca 74316d0 M sources commit 81a33b05d076285c231ff06f3d95d781f4bd1fb2 Author: Jakub Jelinek @@ -27887,8 +29021,8 @@ CommitDate: Wed Dec 6 13:06:52 2006 +0000 2.5.90-11 -:100644 100644 152fc924 94f2b126 M glibc-fedora.patch -:100644 100644 4fc483d3 49ea2c1a M glibc.spec +:100644 100644 152fc92 94f2b12 M glibc-fedora.patch +:100644 100644 4fc483d 49ea2c1 M glibc.spec commit 327b5c2a171c81f69bfa4cb42622afaf2dddb4b9 Author: Jakub Jelinek @@ -27898,7 +29032,7 @@ CommitDate: Wed Dec 6 11:16:13 2006 +0000 2.5.90-11 -:100644 100644 a1242b33 152fc924 M glibc-fedora.patch +:100644 100644 a1242b3 152fc92 M glibc-fedora.patch commit 479a88e6df20498f4da8c2ee04461d29d97a8c3e Author: Jakub Jelinek @@ -27908,10 +29042,10 @@ CommitDate: Tue Dec 5 22:05:54 2006 +0000 auto-import glibc-2.5.90-11 on branch devel from glibc-2.5.90-11.src.rpm -:100644 100644 8c2d711b 05bd46bf M .cvsignore -:100644 100644 a8bf73f1 a1242b33 M glibc-fedora.patch -:100644 100644 671cf044 4fc483d3 M glibc.spec -:100644 100644 be0e47ab 7bb71ca6 M sources +:100644 100644 8c2d711 05bd46b M .cvsignore +:100644 100644 a8bf73f a1242b3 M glibc-fedora.patch +:100644 100644 671cf04 4fc483d M glibc.spec +:100644 100644 be0e47a 7bb71ca M sources commit 1f08f7860d47086a8b6994d2f21fbdc7dc6f0549 Author: Jakub Jelinek @@ -27921,10 +29055,10 @@ CommitDate: Fri Dec 1 09:04:10 2006 +0000 auto-import glibc-2.5.90-10 on branch devel from glibc-2.5.90-10.src.rpm -:100644 100644 4e97dc64 8c2d711b M .cvsignore -:100644 100644 b92253fd a8bf73f1 M glibc-fedora.patch -:100644 100644 5c57cc09 671cf044 M glibc.spec -:100644 100644 501ee090 be0e47ab M sources +:100644 100644 4e97dc6 8c2d711 M .cvsignore +:100644 100644 b92253f a8bf73f M glibc-fedora.patch +:100644 100644 5c57cc0 671cf04 M glibc.spec +:100644 100644 501ee09 be0e47a M sources commit 1e072aa3743d12231e89f1b7107b5e526e67fd93 Author: Jakub Jelinek @@ -27934,7 +29068,7 @@ CommitDate: Thu Nov 30 17:32:26 2006 +0000 2.5.90-9 -:100644 100644 ab2d89be 5c57cc09 M glibc.spec +:100644 100644 ab2d89b 5c57cc0 M glibc.spec commit 21860bef8481c9fb3ba4d4a566d338564f4c23ee Author: Jakub Jelinek @@ -27944,10 +29078,10 @@ CommitDate: Thu Nov 30 17:28:42 2006 +0000 auto-import glibc-2.5.90-9 on branch devel from glibc-2.5.90-9.src.rpm -:100644 100644 27595a51 4e97dc64 M .cvsignore -:100644 100644 2d8da931 b92253fd M glibc-fedora.patch -:100644 100644 7237d0d9 ab2d89be M glibc.spec -:100644 100644 8c4134fa 501ee090 M sources +:100644 100644 27595a5 4e97dc6 M .cvsignore +:100644 100644 2d8da93 b92253f M glibc-fedora.patch +:100644 100644 7237d0d ab2d89b M glibc.spec +:100644 100644 8c4134f 501ee09 M sources commit f4dfbe16ca69a583d0970e6480361ed710fc2d86 Author: Jakub Jelinek @@ -27957,7 +29091,7 @@ CommitDate: Tue Nov 28 12:49:35 2006 +0000 2.5.90-8 -:100644 100644 dff9c456 2d8da931 M glibc-fedora.patch +:100644 100644 dff9c45 2d8da93 M glibc-fedora.patch commit b45468ed5bac541ae09b19144f7254d01ac16c15 Author: Jakub Jelinek @@ -27967,10 +29101,10 @@ CommitDate: Tue Nov 28 12:30:29 2006 +0000 auto-import glibc-2.5.90-8 on branch devel from glibc-2.5.90-8.src.rpm -:100644 100644 0d51e163 27595a51 M .cvsignore -:100644 100644 3ac0051f dff9c456 M glibc-fedora.patch -:100644 100644 617da7cd 7237d0d9 M glibc.spec -:100644 100644 423eeeb3 8c4134fa M sources +:100644 100644 0d51e16 27595a5 M .cvsignore +:100644 100644 3ac0051 dff9c45 M glibc-fedora.patch +:100644 100644 617da7c 7237d0d M glibc.spec +:100644 100644 423eeeb 8c4134f M sources commit 55601b4f7366c63acd2b117981ec84068d6b1630 Author: Jakub Jelinek @@ -27980,10 +29114,10 @@ CommitDate: Mon Nov 20 12:10:50 2006 +0000 auto-import glibc-2.5.90-7 on branch devel from glibc-2.5.90-7.src.rpm -:100644 100644 78fbfc1e 0d51e163 M .cvsignore -:100644 100644 81444da4 3ac0051f M glibc-fedora.patch -:100644 100644 7aba8461 617da7cd M glibc.spec -:100644 100644 d2901d9b 423eeeb3 M sources +:100644 100644 78fbfc1 0d51e16 M .cvsignore +:100644 100644 81444da 3ac0051 M glibc-fedora.patch +:100644 100644 7aba846 617da7c M glibc.spec +:100644 100644 d2901d9 423eeeb M sources commit 83e4f6dd507848f1fc96ecda45ecc23b0f2b0ead Author: Jakub Jelinek @@ -27993,10 +29127,10 @@ CommitDate: Fri Nov 10 21:10:11 2006 +0000 auto-import glibc-2.5.90-6 on branch devel from glibc-2.5.90-6.src.rpm -:100644 100644 4e6c2a91 78fbfc1e M .cvsignore -:100644 100644 ca7ec730 81444da4 M glibc-fedora.patch -:100644 100644 9eb68bf7 7aba8461 M glibc.spec -:100644 100644 e05374c1 d2901d9b M sources +:100644 100644 4e6c2a9 78fbfc1 M .cvsignore +:100644 100644 ca7ec73 81444da M glibc-fedora.patch +:100644 100644 9eb68bf 7aba846 M glibc.spec +:100644 100644 e05374c d2901d9 M sources commit a41c6b9c0f72cfd065191d8d594f8332553e5ef5 Author: Jakub Jelinek @@ -28006,7 +29140,7 @@ CommitDate: Thu Nov 9 22:08:40 2006 +0000 2.5.90-5 -:100644 100644 6b667cdd ca7ec730 M glibc-fedora.patch +:100644 100644 6b667cd ca7ec73 M glibc-fedora.patch commit 930f1d70b7df068f2ebd1ba639e0af48709204ab Author: Jakub Jelinek @@ -28016,7 +29150,7 @@ CommitDate: Thu Nov 9 21:36:10 2006 +0000 2.5.90-5 -:100644 100644 a5e085af 6b667cdd M glibc-fedora.patch +:100644 100644 a5e085a 6b667cd M glibc-fedora.patch commit 4208e2390232ee349c0eb970e09c2d582a6183a1 Author: Jakub Jelinek @@ -28026,10 +29160,10 @@ CommitDate: Thu Nov 9 21:11:26 2006 +0000 auto-import glibc-2.5.90-5 on branch devel from glibc-2.5.90-5.src.rpm -:100644 100644 19ab90ab 4e6c2a91 M .cvsignore -:100644 100644 c90f376e a5e085af M glibc-fedora.patch -:100644 100644 b10ccb97 9eb68bf7 M glibc.spec -:100644 100644 cf4dbecb e05374c1 M sources +:100644 100644 19ab90a 4e6c2a9 M .cvsignore +:100644 100644 c90f376 a5e085a M glibc-fedora.patch +:100644 100644 b10ccb9 9eb68bf M glibc.spec +:100644 100644 cf4dbec e05374c M sources commit b1f781be295efd556e42def75bd42922887b9939 Author: Jakub Jelinek @@ -28039,10 +29173,10 @@ CommitDate: Fri Nov 3 17:08:57 2006 +0000 auto-import glibc-2.5.90-4 on branch devel from glibc-2.5.90-4.src.rpm -:100644 100644 4cf66c68 19ab90ab M .cvsignore -:100644 100644 15efea5e c90f376e M glibc-fedora.patch -:100644 100644 c25a0dc7 b10ccb97 M glibc.spec -:100644 100644 29ad6cfc cf4dbecb M sources +:100644 100644 4cf66c6 19ab90a M .cvsignore +:100644 100644 15efea5 c90f376 M glibc-fedora.patch +:100644 100644 c25a0dc b10ccb9 M glibc.spec +:100644 100644 29ad6cf cf4dbec M sources commit 2918dc4bea9eb142b3c09d6a7c437a110333f7f7 Author: Jakub Jelinek @@ -28052,7 +29186,7 @@ CommitDate: Sun Oct 29 23:32:49 2006 +0000 2.5.90-3 -:100644 100644 62035b41 15efea5e M glibc-fedora.patch +:100644 100644 62035b4 15efea5 M glibc-fedora.patch commit aa026ce62ec872972d436036a3e61544b02a5a95 Author: Jakub Jelinek @@ -28062,7 +29196,7 @@ CommitDate: Sun Oct 29 22:54:17 2006 +0000 2.5.90-3 -:100644 100644 e1f4b793 62035b41 M glibc-fedora.patch +:100644 100644 e1f4b79 62035b4 M glibc-fedora.patch commit 8788e1de6970d5f4fa0c4b7bb8a9c2f798bdcc63 Author: Jakub Jelinek @@ -28072,10 +29206,10 @@ CommitDate: Sun Oct 29 22:16:58 2006 +0000 auto-import glibc-2.5.90-3 on branch devel from glibc-2.5.90-3.src.rpm -:100644 100644 545bf3df 4cf66c68 M .cvsignore -:100644 100644 9d7f5860 e1f4b793 M glibc-fedora.patch -:100644 100644 cf933d17 c25a0dc7 M glibc.spec -:100644 100644 f7785646 29ad6cfc M sources +:100644 100644 545bf3d 4cf66c6 M .cvsignore +:100644 100644 9d7f586 e1f4b79 M glibc-fedora.patch +:100644 100644 cf933d1 c25a0dc M glibc.spec +:100644 100644 f778564 29ad6cf M sources commit e8f96c9a5c4eacc1c5ae702110dd195050cfc317 Author: Jakub Jelinek @@ -28085,10 +29219,10 @@ CommitDate: Fri Oct 27 19:39:25 2006 +0000 auto-import glibc-2.5.90-2 on branch devel from glibc-2.5.90-2.src.rpm -:100644 100644 f9c6ef0c 545bf3df M .cvsignore -:100644 100644 187ed833 9d7f5860 M glibc-fedora.patch -:100644 100644 20897928 cf933d17 M glibc.spec -:100644 100644 49e716d2 f7785646 M sources +:100644 100644 f9c6ef0 545bf3d M .cvsignore +:100644 100644 187ed83 9d7f586 M glibc-fedora.patch +:100644 100644 2089792 cf933d1 M glibc.spec +:100644 100644 49e716d f778564 M sources commit e72031f20698da29fc21c7167119bd91927aa92d Author: Jakub Jelinek @@ -28098,10 +29232,10 @@ CommitDate: Wed Oct 25 19:33:01 2006 +0000 auto-import glibc-2.5.90-1 on branch devel from glibc-2.5.90-1.src.rpm -:100644 100644 7e8d3f63 f9c6ef0c M .cvsignore -:000000 100644 00000000 187ed833 A glibc-fedora.patch -:100644 100644 e7af5878 20897928 M glibc.spec -:100644 100644 bef3b87e 49e716d2 M sources +:100644 100644 7e8d3f6 f9c6ef0 M .cvsignore +:000000 100644 0000000 187ed83 A glibc-fedora.patch +:100644 100644 e7af587 2089792 M glibc.spec +:100644 100644 bef3b87 49e716d M sources commit 9b74496363393dc9b368c7243d974f0bc61a2f26 Author: Jakub Jelinek @@ -28111,10 +29245,10 @@ CommitDate: Sun Oct 8 14:29:54 2006 +0000 auto-import glibc-2.5-3 on branch devel from glibc-2.5-3.src.rpm -:100644 100644 724c37b3 7e8d3f63 M .cvsignore -:100644 000000 1846119a 00000000 D glibc-fedora.patch -:100644 100644 22320bf0 e7af5878 M glibc.spec -:100644 100644 6203f62f bef3b87e M sources +:100644 100644 724c37b 7e8d3f6 M .cvsignore +:100644 000000 1846119 0000000 D glibc-fedora.patch +:100644 100644 22320bf e7af587 M glibc.spec +:100644 100644 6203f62 bef3b87 M sources commit fda5a5b07a95040f0dc5f1bbd23927bd4ac134f2 Author: Jakub Jelinek @@ -28124,10 +29258,10 @@ CommitDate: Mon Oct 2 19:16:08 2006 +0000 auto-import glibc-2.5-2 on branch devel from glibc-2.5-2.src.rpm -:100644 100644 9c4eb75f 724c37b3 M .cvsignore -:100644 100644 c7d6dc03 1846119a M glibc-fedora.patch -:100644 100644 53281780 22320bf0 M glibc.spec -:100644 100644 30fc6502 6203f62f M sources +:100644 100644 9c4eb75 724c37b M .cvsignore +:100644 100644 c7d6dc0 1846119 M glibc-fedora.patch +:100644 100644 5328178 22320bf M glibc.spec +:100644 100644 30fc650 6203f62 M sources commit bc14539ad9dab280b1048bc6f1116b62f19443c5 Author: Jakub Jelinek @@ -28137,10 +29271,10 @@ CommitDate: Fri Sep 29 21:34:27 2006 +0000 auto-import glibc-2.5-1 on branch devel from glibc-2.5-1.src.rpm -:100644 100644 c51fbd7e 9c4eb75f M .cvsignore -:100644 100644 0faf2140 c7d6dc03 M glibc-fedora.patch -:100644 100644 18ba195f 53281780 M glibc.spec -:100644 100644 5f1b856b 30fc6502 M sources +:100644 100644 c51fbd7 9c4eb75 M .cvsignore +:100644 100644 0faf214 c7d6dc0 M glibc-fedora.patch +:100644 100644 18ba195 5328178 M glibc.spec +:100644 100644 5f1b856 30fc650 M sources commit 4fa0b303125a0ad7c547e6bb850f2af04dd3dbd2 Author: Jakub Jelinek @@ -28150,7 +29284,7 @@ CommitDate: Tue Sep 26 22:21:00 2006 +0000 2.4.90-36 -:100644 100644 c39d44d2 18ba195f M glibc.spec +:100644 100644 c39d44d 18ba195 M glibc.spec commit 75f5a78b95351c07291d467f56ab9dbd4d5c8dca Author: Jakub Jelinek @@ -28160,10 +29294,10 @@ CommitDate: Mon Sep 25 17:36:39 2006 +0000 auto-import glibc-2.4.90-35 on branch devel from glibc-2.4.90-35.src.rpm -:100644 100644 80c491c3 c51fbd7e M .cvsignore -:100644 100644 3fc8902e 0faf2140 M glibc-fedora.patch -:100644 100644 a47e5ed4 c39d44d2 M glibc.spec -:100644 100644 54308722 5f1b856b M sources +:100644 100644 80c491c c51fbd7 M .cvsignore +:100644 100644 3fc8902 0faf214 M glibc-fedora.patch +:100644 100644 a47e5ed c39d44d M glibc.spec +:100644 100644 5430872 5f1b856 M sources commit 58ae4e23c391f7b9c3d78960101522a4a9f7e399 Author: Jakub Jelinek @@ -28173,10 +29307,10 @@ CommitDate: Sat Sep 23 10:43:23 2006 +0000 auto-import glibc-2.4.90-34 on branch devel from glibc-2.4.90-34.src.rpm -:100644 100644 95b8f947 80c491c3 M .cvsignore -:100644 100644 d2bcb415 3fc8902e M glibc-fedora.patch -:100644 100644 3317205d a47e5ed4 M glibc.spec -:100644 100644 0cfa1d6d 54308722 M sources +:100644 100644 95b8f94 80c491c M .cvsignore +:100644 100644 d2bcb41 3fc8902 M glibc-fedora.patch +:100644 100644 3317205 a47e5ed M glibc.spec +:100644 100644 0cfa1d6 5430872 M sources commit 7fcbff86ea0e785e17b4b964680589f3ebd429f3 Author: Jakub Jelinek @@ -28186,7 +29320,7 @@ CommitDate: Tue Sep 19 21:25:00 2006 +0000 2.4.90-33 -:100644 100644 d42cfc56 3317205d M glibc.spec +:100644 100644 d42cfc5 3317205 M glibc.spec commit 1b8e233f9916a8557aa7bd1c23a5ea78acb337e2 Author: Jakub Jelinek @@ -28196,10 +29330,10 @@ CommitDate: Tue Sep 19 19:15:48 2006 +0000 auto-import glibc-2.4.90-33 on branch devel from glibc-2.4.90-33.src.rpm -:100644 100644 43880bea 95b8f947 M .cvsignore -:100644 100644 bee2de25 d2bcb415 M glibc-fedora.patch -:100644 100644 0d755b80 d42cfc56 M glibc.spec -:100644 100644 7f275c4b 0cfa1d6d M sources +:100644 100644 43880be 95b8f94 M .cvsignore +:100644 100644 bee2de2 d2bcb41 M glibc-fedora.patch +:100644 100644 0d755b8 d42cfc5 M glibc.spec +:100644 100644 7f275c4 0cfa1d6 M sources commit 18aa46f17ddd51f40a44d47e32eacef7d6d752b1 Author: Jakub Jelinek @@ -28209,10 +29343,10 @@ CommitDate: Fri Sep 15 20:28:56 2006 +0000 auto-import glibc-2.4.90-32 on branch devel from glibc-2.4.90-32.src.rpm -:100644 100644 607584e3 43880bea M .cvsignore -:100644 100644 dedd493e bee2de25 M glibc-fedora.patch -:100644 100644 c1f48bcd 0d755b80 M glibc.spec -:100644 100644 bf379ded 7f275c4b M sources +:100644 100644 607584e 43880be M .cvsignore +:100644 100644 dedd493 bee2de2 M glibc-fedora.patch +:100644 100644 c1f48bc 0d755b8 M glibc.spec +:100644 100644 bf379de 7f275c4 M sources commit e4ba40623d3a4d151d795c875b71a946c7c6d1f9 Author: Jakub Jelinek @@ -28222,10 +29356,10 @@ CommitDate: Sun Sep 10 19:27:02 2006 +0000 auto-import glibc-2.4.90-31 on branch devel from glibc-2.4.90-31.src.rpm -:100644 100644 52a4c68f 607584e3 M .cvsignore -:100644 100644 bb3e9812 dedd493e M glibc-fedora.patch -:100644 100644 899e4454 c1f48bcd M glibc.spec -:100644 100644 d665ca94 bf379ded M sources +:100644 100644 52a4c68 607584e M .cvsignore +:100644 100644 bb3e981 dedd493 M glibc-fedora.patch +:100644 100644 899e445 c1f48bc M glibc.spec +:100644 100644 d665ca9 bf379de M sources commit 812d0403a42eff72e279c20abefc8b48df60573b Author: Jakub Jelinek @@ -28235,7 +29369,7 @@ CommitDate: Thu Sep 7 11:34:46 2006 +0000 2.4.90-30 -:100644 100644 89cd1282 899e4454 M glibc.spec +:100644 100644 89cd128 899e445 M glibc.spec commit 52b0ac125e0aa8f08cfdafc812d962f7c122e1b5 Author: Jakub Jelinek @@ -28245,10 +29379,10 @@ CommitDate: Thu Sep 7 10:56:50 2006 +0000 auto-import glibc-2.4.90-30 on branch devel from glibc-2.4.90-30.src.rpm -:100644 100644 d54fe7d1 52a4c68f M .cvsignore -:100644 100644 56efcb59 bb3e9812 M glibc-fedora.patch -:100644 100644 290e0ba7 89cd1282 M glibc.spec -:100644 100644 955b3040 d665ca94 M sources +:100644 100644 d54fe7d 52a4c68 M .cvsignore +:100644 100644 56efcb5 bb3e981 M glibc-fedora.patch +:100644 100644 290e0ba 89cd128 M glibc.spec +:100644 100644 955b304 d665ca9 M sources commit f5c307d7d7e631539fa035275e77530335838a58 Author: Jakub Jelinek @@ -28258,10 +29392,10 @@ CommitDate: Tue Sep 5 07:07:39 2006 +0000 auto-import glibc-2.4.90-29 on branch devel from glibc-2.4.90-29.src.rpm -:100644 100644 37bfb13a d54fe7d1 M .cvsignore -:100644 100644 a7228673 56efcb59 M glibc-fedora.patch -:100644 100644 09ac3a54 290e0ba7 M glibc.spec -:100644 100644 9213d0b3 955b3040 M sources +:100644 100644 37bfb13 d54fe7d M .cvsignore +:100644 100644 a722867 56efcb5 M glibc-fedora.patch +:100644 100644 09ac3a5 290e0ba M glibc.spec +:100644 100644 9213d0b 955b304 M sources commit 2fd2ea9791ded5d067a7d3306db504d5759097db Author: Jakub Jelinek @@ -28271,10 +29405,10 @@ CommitDate: Thu Aug 31 19:18:22 2006 +0000 auto-import glibc-2.4.90-28 on branch devel from glibc-2.4.90-28.src.rpm -:100644 100644 47fff7df 37bfb13a M .cvsignore -:100644 100644 d39002a1 a7228673 M glibc-fedora.patch -:100644 100644 b9e4dd08 09ac3a54 M glibc.spec -:100644 100644 a69543d1 9213d0b3 M sources +:100644 100644 47fff7d 37bfb13 M .cvsignore +:100644 100644 d39002a a722867 M glibc-fedora.patch +:100644 100644 b9e4dd0 09ac3a5 M glibc.spec +:100644 100644 a69543d 9213d0b M sources commit dc27b199c9d6a3e1cdbabf3ada3d7df93f91d2a4 Author: Jakub Jelinek @@ -28284,10 +29418,10 @@ CommitDate: Thu Aug 31 07:08:06 2006 +0000 auto-import glibc-2.4.90-27 on branch devel from glibc-2.4.90-27.src.rpm -:100644 100644 050f168e 47fff7df M .cvsignore -:100644 100644 48d5dd15 d39002a1 M glibc-fedora.patch -:100644 100644 c1b869ee b9e4dd08 M glibc.spec -:100644 100644 93079ded a69543d1 M sources +:100644 100644 050f168 47fff7d M .cvsignore +:100644 100644 48d5dd1 d39002a M glibc-fedora.patch +:100644 100644 c1b869e b9e4dd0 M glibc.spec +:100644 100644 93079de a69543d M sources commit 4e2035941bb3baca9341246f4bb02c1ec6f6976b Author: Jakub Jelinek @@ -28297,10 +29431,10 @@ CommitDate: Mon Aug 28 19:38:25 2006 +0000 auto-import glibc-2.4.90-26 on branch devel from glibc-2.4.90-26.src.rpm -:100644 100644 a305349c 050f168e M .cvsignore -:100644 100644 f1858330 48d5dd15 M glibc-fedora.patch -:100644 100644 6899e192 c1b869ee M glibc.spec -:100644 100644 83a45121 93079ded M sources +:100644 100644 a305349 050f168 M .cvsignore +:100644 100644 f185833 48d5dd1 M glibc-fedora.patch +:100644 100644 6899e19 c1b869e M glibc.spec +:100644 100644 83a4512 93079de M sources commit f9ba25105ee4772e33b439b81c097f82eb508304 Author: Jakub Jelinek @@ -28310,8 +29444,8 @@ CommitDate: Fri Aug 25 09:56:17 2006 +0000 2.4.90-25 -:100644 100644 476a5ef1 f1858330 M glibc-fedora.patch -:100644 100644 bbdc69b3 6899e192 M glibc.spec +:100644 100644 476a5ef f185833 M glibc-fedora.patch +:100644 100644 bbdc69b 6899e19 M glibc.spec commit 81806726368692f84db7af83d7a89ba818611d42 Author: Jakub Jelinek @@ -28321,7 +29455,7 @@ CommitDate: Fri Aug 25 09:12:06 2006 +0000 2.4.90-25 -:100644 100644 14b7fa04 476a5ef1 M glibc-fedora.patch +:100644 100644 14b7fa0 476a5ef M glibc-fedora.patch commit 71e49893fb0462d2d94802fa61d69d128fdb9ba9 Author: Jakub Jelinek @@ -28331,10 +29465,10 @@ CommitDate: Fri Aug 25 07:14:59 2006 +0000 auto-import glibc-2.4.90-24 on branch devel from glibc-2.4.90-24.src.rpm -:100644 100644 c6b94999 a305349c M .cvsignore -:100644 100644 6245bca4 14b7fa04 M glibc-fedora.patch -:100644 100644 d44cab2d bbdc69b3 M glibc.spec -:100644 100644 b42145b9 83a45121 M sources +:100644 100644 c6b9499 a305349 M .cvsignore +:100644 100644 6245bca 14b7fa0 M glibc-fedora.patch +:100644 100644 d44cab2 bbdc69b M glibc.spec +:100644 100644 b42145b 83a4512 M sources commit 62cf09be2f1dce74724a662b22388f333693b662 Author: Jakub Jelinek @@ -28344,10 +29478,10 @@ CommitDate: Tue Aug 22 09:27:29 2006 +0000 auto-import glibc-2.4.90-23 on branch devel from glibc-2.4.90-23.src.rpm -:100644 100644 26e6fc97 c6b94999 M .cvsignore -:100644 100644 df9a4087 6245bca4 M glibc-fedora.patch -:100644 100644 1a8f3a25 d44cab2d M glibc.spec -:100644 100644 dd3cec3f b42145b9 M sources +:100644 100644 26e6fc9 c6b9499 M .cvsignore +:100644 100644 df9a408 6245bca M glibc-fedora.patch +:100644 100644 1a8f3a2 d44cab2 M glibc.spec +:100644 100644 dd3cec3 b42145b M sources commit f94eb77db45de1c4b0baa35c351954a1fc8422c8 Author: Jakub Jelinek @@ -28357,7 +29491,7 @@ CommitDate: Fri Aug 18 09:50:20 2006 +0000 2.4.90-22 -:100644 100644 9533afec 1a8f3a25 M glibc.spec +:100644 100644 9533afe 1a8f3a2 M glibc.spec commit e5feab2ee5b3575662e180737754065ffa694c30 Author: Jakub Jelinek @@ -28367,10 +29501,10 @@ CommitDate: Tue Aug 15 21:03:14 2006 +0000 auto-import glibc-2.4.90-21 on branch devel from glibc-2.4.90-21.src.rpm -:100644 100644 cfe24cdc 26e6fc97 M .cvsignore -:100644 100644 05603d83 df9a4087 M glibc-fedora.patch -:100644 100644 80f696ef 9533afec M glibc.spec -:100644 100644 f2a851c7 dd3cec3f M sources +:100644 100644 cfe24cd 26e6fc9 M .cvsignore +:100644 100644 05603d8 df9a408 M glibc-fedora.patch +:100644 100644 80f696e 9533afe M glibc.spec +:100644 100644 f2a851c dd3cec3 M sources commit 218b9026d8a507b13b39e43025f6b4d47955106a Author: Jakub Jelinek @@ -28380,7 +29514,7 @@ CommitDate: Tue Aug 15 08:45:05 2006 +0000 2.4.90-20 -:100644 100644 e23097be 05603d83 M glibc-fedora.patch +:100644 100644 e23097b 05603d8 M glibc-fedora.patch commit 4333d793d9265cf0a9a98d5752c6993635e8da94 Author: Jakub Jelinek @@ -28390,7 +29524,7 @@ CommitDate: Tue Aug 15 06:42:11 2006 +0000 2.4.90-20 -:100644 100644 64fcb4f8 e23097be M glibc-fedora.patch +:100644 100644 64fcb4f e23097b M glibc-fedora.patch commit 467134fe2ba2f632bec45bfed6822e1969313d52 Author: Jakub Jelinek @@ -28400,10 +29534,10 @@ CommitDate: Tue Aug 15 06:07:33 2006 +0000 auto-import glibc-2.4.90-20 on branch devel from glibc-2.4.90-20.src.rpm -:100644 100644 1f89f69b cfe24cdc M .cvsignore -:100644 100644 677ab3e7 64fcb4f8 M glibc-fedora.patch -:100644 100644 a5d8e369 80f696ef M glibc.spec -:100644 100644 a9d68f63 f2a851c7 M sources +:100644 100644 1f89f69 cfe24cd M .cvsignore +:100644 100644 677ab3e 64fcb4f M glibc-fedora.patch +:100644 100644 a5d8e36 80f696e M glibc.spec +:100644 100644 a9d68f6 f2a851c M sources commit ff4f47a9ee2fc6722b4cffd546020eba2c412f2f Author: Jakub Jelinek @@ -28413,10 +29547,10 @@ CommitDate: Thu Aug 10 07:07:14 2006 +0000 auto-import glibc-2.4.90-19 on branch devel from glibc-2.4.90-19.src.rpm -:100644 100644 e2708b0f 1f89f69b M .cvsignore -:100644 100644 c820da14 677ab3e7 M glibc-fedora.patch -:100644 100644 69c6bd8e a5d8e369 M glibc.spec -:100644 100644 31eb9796 a9d68f63 M sources +:100644 100644 e2708b0 1f89f69 M .cvsignore +:100644 100644 c820da1 677ab3e M glibc-fedora.patch +:100644 100644 69c6bd8 a5d8e36 M glibc.spec +:100644 100644 31eb979 a9d68f6 M sources commit 29d3ac057f87b77d148cd22287fe7f42a74e4af4 Author: Jakub Jelinek @@ -28426,10 +29560,10 @@ CommitDate: Mon Aug 7 19:49:00 2006 +0000 auto-import glibc-2.4.90-18 on branch devel from glibc-2.4.90-18.src.rpm -:100644 100644 3e24cf5f e2708b0f M .cvsignore -:100644 100644 a575fd06 c820da14 M glibc-fedora.patch -:100644 100644 090106ed 69c6bd8e M glibc.spec -:100644 100644 4b2f6900 31eb9796 M sources +:100644 100644 3e24cf5 e2708b0 M .cvsignore +:100644 100644 a575fd0 c820da1 M glibc-fedora.patch +:100644 100644 090106e 69c6bd8 M glibc.spec +:100644 100644 4b2f690 31eb979 M sources commit 35a1d020bda65cfde99d5e899bc1688603b16d9a Author: Jakub Jelinek @@ -28439,10 +29573,10 @@ CommitDate: Wed Aug 2 18:29:53 2006 +0000 auto-import glibc-2.4.90-17 on branch devel from glibc-2.4.90-17.src.rpm -:100644 100644 49efca7d 3e24cf5f M .cvsignore -:100644 100644 18c03bd4 a575fd06 M glibc-fedora.patch -:100644 100644 02c3487f 090106ed M glibc.spec -:100644 100644 412ee3f5 4b2f6900 M sources +:100644 100644 49efca7 3e24cf5 M .cvsignore +:100644 100644 18c03bd a575fd0 M glibc-fedora.patch +:100644 100644 02c3487 090106e M glibc.spec +:100644 100644 412ee3f 4b2f690 M sources commit 467bd1bb03a7461bae9ca3a0ed4169dd398129de Author: Jakub Jelinek @@ -28452,10 +29586,10 @@ CommitDate: Wed Aug 2 17:11:18 2006 +0000 auto-import glibc-2.4.90-16 on branch devel from glibc-2.4.90-16.src.rpm -:100644 100644 4581db34 49efca7d M .cvsignore -:100644 100644 68fe228a 18c03bd4 M glibc-fedora.patch -:100644 100644 c3140166 02c3487f M glibc.spec -:100644 100644 952931e3 412ee3f5 M sources +:100644 100644 4581db3 49efca7 M .cvsignore +:100644 100644 68fe228 18c03bd M glibc-fedora.patch +:100644 100644 c314016 02c3487 M glibc.spec +:100644 100644 952931e 412ee3f M sources commit afab52d6a909c03c0bfb416c10603adc8bb4bdf0 Author: roland @@ -28465,10 +29599,10 @@ CommitDate: Mon Jul 31 08:33:04 2006 +0000 auto-import glibc-2.4.90-15 on branch devel from glibc-2.4.90-15.src.rpm -:100644 100644 f5ab4965 4581db34 M .cvsignore -:100644 100644 e69de29b 68fe228a M glibc-fedora.patch -:100644 100644 df1f1811 c3140166 M glibc.spec -:100644 100644 fffa9806 952931e3 M sources +:100644 100644 f5ab496 4581db3 M .cvsignore +:100644 100644 e69de29 68fe228 M glibc-fedora.patch +:100644 100644 df1f181 c314016 M glibc.spec +:100644 100644 fffa980 952931e M sources commit 33d4ca22fa44d3beb2cccf55fc4b6d7cb3273812 Author: roland @@ -28478,10 +29612,10 @@ CommitDate: Sun Jul 30 01:43:49 2006 +0000 auto-import glibc-2.4.90-14 on branch devel from glibc-2.4.90-14.src.rpm -:100644 100644 e0c08afb f5ab4965 M .cvsignore -:100644 100644 a11cf6e0 e69de29b M glibc-fedora.patch -:100644 100644 0a76797b df1f1811 M glibc.spec -:100644 100644 0a8ca81a fffa9806 M sources +:100644 100644 e0c08af f5ab496 M .cvsignore +:100644 100644 a11cf6e e69de29 M glibc-fedora.patch +:100644 100644 0a76797 df1f181 M glibc.spec +:100644 100644 0a8ca81 fffa980 M sources commit 754fe39471d1610862ec2865562ae69e63165f93 Author: Jakub Jelinek @@ -28491,7 +29625,7 @@ CommitDate: Tue Jul 11 15:23:42 2006 +0000 2.4.90-13 -:100644 100644 3c9e4739 0a76797b M glibc.spec +:100644 100644 3c9e473 0a76797 M glibc.spec commit eda216b028ed00911d19fac16ef6c3b28bc9cd21 Author: Jakub Jelinek @@ -28501,10 +29635,10 @@ CommitDate: Tue Jul 11 10:26:01 2006 +0000 auto-import glibc-2.4.90-13 on branch devel from glibc-2.4.90-13.src.rpm -:100644 100644 9ff11b22 e0c08afb M .cvsignore -:100644 100644 199b4ef5 a11cf6e0 M glibc-fedora.patch -:100644 100644 c3d283e2 3c9e4739 M glibc.spec -:100644 100644 c500aa04 0a8ca81a M sources +:100644 100644 9ff11b2 e0c08af M .cvsignore +:100644 100644 199b4ef a11cf6e M glibc-fedora.patch +:100644 100644 c3d283e 3c9e473 M glibc.spec +:100644 100644 c500aa0 0a8ca81 M sources commit 623fb2e6b19067ea703f32862836f644e737f9b6 Author: Jakub Jelinek @@ -28514,10 +29648,10 @@ CommitDate: Fri Jun 30 09:31:42 2006 +0000 auto-import glibc-2.4.90-12 on branch devel from glibc-2.4.90-12.src.rpm -:100644 100644 30256464 9ff11b22 M .cvsignore -:100644 100644 6750c166 199b4ef5 M glibc-fedora.patch -:100644 100644 3db2b4d5 c3d283e2 M glibc.spec -:100644 100644 e1654036 c500aa04 M sources +:100644 100644 3025646 9ff11b2 M .cvsignore +:100644 100644 6750c16 199b4ef M glibc-fedora.patch +:100644 100644 3db2b4d c3d283e M glibc.spec +:100644 100644 e165403 c500aa0 M sources commit 149e4031fdb1a6907ce04fe9098c0d40a5a23bb2 Author: Jakub Jelinek @@ -28527,7 +29661,7 @@ CommitDate: Wed May 31 17:21:14 2006 +0000 2.4.90-11 -:100644 100644 30610f04 6750c166 M glibc-fedora.patch +:100644 100644 30610f0 6750c16 M glibc-fedora.patch commit 6cc49f42fe0b0c1dbccae358859a585d7683d36d Author: Jakub Jelinek @@ -28537,10 +29671,10 @@ CommitDate: Wed May 31 15:41:01 2006 +0000 auto-import glibc-2.4.90-11 on branch devel from glibc-2.4.90-11.src.rpm -:100644 100644 f9d7cc84 30256464 M .cvsignore -:100644 100644 0fbf0cef 30610f04 M glibc-fedora.patch -:100644 100644 2383b248 3db2b4d5 M glibc.spec -:100644 100644 89fb651a e1654036 M sources +:100644 100644 f9d7cc8 3025646 M .cvsignore +:100644 100644 0fbf0ce 30610f0 M glibc-fedora.patch +:100644 100644 2383b24 3db2b4d M glibc.spec +:100644 100644 89fb651 e165403 M sources commit d1be4dbe44555713ac23db868dd78c4cc44f95a1 Author: Jakub Jelinek @@ -28550,10 +29684,10 @@ CommitDate: Wed May 24 08:09:35 2006 +0000 auto-import glibc-2.4.90-10 on branch devel from glibc-2.4.90-10.src.rpm -:100644 100644 07c27d40 f9d7cc84 M .cvsignore -:100644 100644 1b5ba91b 0fbf0cef M glibc-fedora.patch -:100644 100644 19bc9421 2383b248 M glibc.spec -:100644 100644 05b634b6 89fb651a M sources +:100644 100644 07c27d4 f9d7cc8 M .cvsignore +:100644 100644 1b5ba91 0fbf0ce M glibc-fedora.patch +:100644 100644 19bc942 2383b24 M glibc.spec +:100644 100644 05b634b 89fb651 M sources commit 686b07852ae17f2cf130c22745ca9c92d136c99e Author: Jakub Jelinek @@ -28563,10 +29697,10 @@ CommitDate: Sun May 21 22:19:31 2006 +0000 auto-import glibc-2.4.90-9 on branch devel from glibc-2.4.90-9.src.rpm -:100644 100644 15e0e2b6 07c27d40 M .cvsignore -:100644 100644 9b60864a 1b5ba91b M glibc-fedora.patch -:100644 100644 f4b5904f 19bc9421 M glibc.spec -:100644 100644 9b8b023a 05b634b6 M sources +:100644 100644 15e0e2b 07c27d4 M .cvsignore +:100644 100644 9b60864 1b5ba91 M glibc-fedora.patch +:100644 100644 f4b5904 19bc942 M glibc.spec +:100644 100644 9b8b023 05b634b M sources commit 3c1907f5251fc32fde36ad8ea11dd56a343ca089 Author: Jakub Jelinek @@ -28576,10 +29710,10 @@ CommitDate: Fri May 19 17:14:15 2006 +0000 auto-import glibc-2.4.90-8 on branch devel from glibc-2.4.90-8.src.rpm -:100644 100644 60ee3f31 15e0e2b6 M .cvsignore -:100644 100644 0a7a7621 9b60864a M glibc-fedora.patch -:100644 100644 2e8f5886 f4b5904f M glibc.spec -:100644 100644 93386062 9b8b023a M sources +:100644 100644 60ee3f3 15e0e2b M .cvsignore +:100644 100644 0a7a762 9b60864 M glibc-fedora.patch +:100644 100644 2e8f588 f4b5904 M glibc.spec +:100644 100644 9338606 9b8b023 M sources commit b4d0018f1a2c2dc15eebfff88c9e09a9fe3b0912 Author: Jakub Jelinek @@ -28589,10 +29723,10 @@ CommitDate: Thu May 11 15:53:04 2006 +0000 auto-import glibc-2.4.90-7 on branch devel from glibc-2.4.90-7.src.rpm -:100644 100644 ab86e8ad 60ee3f31 M .cvsignore -:100644 100644 11636636 0a7a7621 M glibc-fedora.patch -:100644 100644 fe2846a3 2e8f5886 M glibc.spec -:100644 100644 b63d4291 93386062 M sources +:100644 100644 ab86e8a 60ee3f3 M .cvsignore +:100644 100644 1163663 0a7a762 M glibc-fedora.patch +:100644 100644 fe2846a 2e8f588 M glibc.spec +:100644 100644 b63d429 9338606 M sources commit b579012a56ed5ef8a9b840b97a5db8b8778a6a8a Author: Jakub Jelinek @@ -28602,10 +29736,10 @@ CommitDate: Fri May 5 15:11:56 2006 +0000 auto-import glibc-2.4.90-6 on branch devel from glibc-2.4.90-6.src.rpm -:100644 100644 9bd76cb6 ab86e8ad M .cvsignore -:100644 100644 b0452628 11636636 M glibc-fedora.patch -:100644 100644 0528d432 fe2846a3 M glibc.spec -:100644 100644 734c61cd b63d4291 M sources +:100644 100644 9bd76cb ab86e8a M .cvsignore +:100644 100644 b045262 1163663 M glibc-fedora.patch +:100644 100644 0528d43 fe2846a M glibc.spec +:100644 100644 734c61c b63d429 M sources commit a2dbc1428544947c21cac9e71b2a47689ad8474a Author: Jakub Jelinek @@ -28615,7 +29749,7 @@ CommitDate: Fri May 5 07:42:23 2006 +0000 2.4.90-5 -:100644 100644 d53f7dd7 0528d432 M glibc.spec +:100644 100644 d53f7dd 0528d43 M glibc.spec commit 97f2be9b878028e9cd9baa172c893f1d8b8d8695 Author: Jakub Jelinek @@ -28625,10 +29759,10 @@ CommitDate: Fri May 5 06:46:41 2006 +0000 auto-import glibc-2.4.90-5 on branch devel from glibc-2.4.90-5.src.rpm -:100644 100644 a485384a 9bd76cb6 M .cvsignore -:100644 100644 07b224b3 b0452628 M glibc-fedora.patch -:100644 100644 33c5cd9f d53f7dd7 M glibc.spec -:100644 100644 86021e88 734c61cd M sources +:100644 100644 a485384 9bd76cb M .cvsignore +:100644 100644 07b224b b045262 M glibc-fedora.patch +:100644 100644 33c5cd9 d53f7dd M glibc.spec +:100644 100644 86021e8 734c61c M sources commit ddac4ccb1e418d0919d4d5869ad2d1baf6ef16dd Author: Jakub Jelinek @@ -28638,10 +29772,10 @@ CommitDate: Mon May 1 08:15:37 2006 +0000 auto-import glibc-2.4.90-4 on branch devel from glibc-2.4.90-4.src.rpm -:100644 100644 c69094b0 a485384a M .cvsignore -:100644 100644 d8e61721 07b224b3 M glibc-fedora.patch -:100644 100644 214da0c8 33c5cd9f M glibc.spec -:100644 100644 eaa670fc 86021e88 M sources +:100644 100644 c69094b a485384 M .cvsignore +:100644 100644 d8e6172 07b224b M glibc-fedora.patch +:100644 100644 214da0c 33c5cd9 M glibc.spec +:100644 100644 eaa670f 86021e8 M sources commit 408bca6551eefbf34ff1a99716eb3aea1ad3d972 Author: Jakub Jelinek @@ -28651,10 +29785,10 @@ CommitDate: Thu Apr 27 21:48:35 2006 +0000 auto-import glibc-2.4.90-3 on branch devel from glibc-2.4.90-3.src.rpm -:100644 100644 afc98787 c69094b0 M .cvsignore -:100644 100644 73988b62 d8e61721 M glibc-fedora.patch -:100644 100644 6cfcb322 214da0c8 M glibc.spec -:100644 100644 a4f26faa eaa670fc M sources +:100644 100644 afc9878 c69094b M .cvsignore +:100644 100644 73988b6 d8e6172 M glibc-fedora.patch +:100644 100644 6cfcb32 214da0c M glibc.spec +:100644 100644 a4f26fa eaa670f M sources commit 072becccdde608fcdb6903ec474c1e2aba907bbd Author: Jakub Jelinek @@ -28664,10 +29798,10 @@ CommitDate: Wed Apr 26 20:37:20 2006 +0000 auto-import glibc-2.4.90-2 on branch devel from glibc-2.4.90-2.src.rpm -:100644 100644 213cf9d4 afc98787 M .cvsignore -:100644 100644 c771b038 73988b62 M glibc-fedora.patch -:100644 100644 29b49a70 6cfcb322 M glibc.spec -:100644 100644 87a0ccd4 a4f26faa M sources +:100644 100644 213cf9d afc9878 M .cvsignore +:100644 100644 c771b03 73988b6 M glibc-fedora.patch +:100644 100644 29b49a7 6cfcb32 M glibc.spec +:100644 100644 87a0ccd a4f26fa M sources commit 62dd407febe4f4a3b6d605ad5d99035876beda95 Author: Jakub Jelinek @@ -28677,10 +29811,10 @@ CommitDate: Tue Apr 25 09:47:01 2006 +0000 auto-import glibc-2.4.90-1 on branch devel from glibc-2.4.90-1.src.rpm -:100644 100644 66498eb2 213cf9d4 M .cvsignore -:100644 100644 b259b974 c771b038 M glibc-fedora.patch -:100644 100644 aead8297 29b49a70 M glibc.spec -:100644 100644 b970f2bc 87a0ccd4 M sources +:100644 100644 66498eb 213cf9d M .cvsignore +:100644 100644 b259b97 c771b03 M glibc-fedora.patch +:100644 100644 aead829 29b49a7 M glibc.spec +:100644 100644 b970f2b 87a0ccd M sources commit 90074e377353e21192818052bbafa6dfa653c243 Author: Jakub Jelinek @@ -28690,10 +29824,10 @@ CommitDate: Mon Apr 24 11:22:15 2006 +0000 auto-import glibc-2.4-6 on branch devel from glibc-2.4-6.src.rpm -:100644 100644 7febcd70 66498eb2 M .cvsignore -:100644 100644 ba4d863e b259b974 M glibc-fedora.patch -:100644 100644 5bbdc14d aead8297 M glibc.spec -:100644 100644 cc3125f8 b970f2bc M sources +:100644 100644 7febcd7 66498eb M .cvsignore +:100644 100644 ba4d863 b259b97 M glibc-fedora.patch +:100644 100644 5bbdc14 aead829 M glibc.spec +:100644 100644 cc3125f b970f2b M sources commit f90fe5a888306d9d02bd9f72b94dd993ea5c31a2 Author: Jakub Jelinek @@ -28703,10 +29837,10 @@ CommitDate: Tue Mar 28 10:15:50 2006 +0000 2.4-5 -:100644 100644 91673824 7febcd70 M .cvsignore -:100644 100644 87c22c7d ba4d863e M glibc-fedora.patch -:100644 100644 e0140c13 5bbdc14d M glibc.spec -:100644 100644 7496d6e7 cc3125f8 M sources +:100644 100644 9167382 7febcd7 M .cvsignore +:100644 100644 87c22c7 ba4d863 M glibc-fedora.patch +:100644 100644 e0140c1 5bbdc14 M glibc.spec +:100644 100644 7496d6e cc3125f M sources commit d880bb2829d1bda327bf13e585bb61ea51eb86e5 Author: roland @@ -28716,7 +29850,7 @@ CommitDate: Tue Mar 7 21:37:04 2006 +0000 die, beehive, die -:100644 100644 6d8a8290 e0140c13 M glibc.spec +:100644 100644 6d8a829 e0140c1 M glibc.spec commit 2360d290c43a1d3f378be3e0138dfa8b20ca1035 Author: roland @@ -28726,7 +29860,7 @@ CommitDate: Tue Mar 7 21:18:23 2006 +0000 back up %%{ix86} gdb conflicts to < 6.3.0.0-1.111 -:100644 100644 d40f94c8 6d8a8290 M glibc.spec +:100644 100644 d40f94c 6d8a829 M glibc.spec commit 6f71a8469c2f7b0364bcc2e2a082983151e2f86a Author: Jakub Jelinek @@ -28736,9 +29870,9 @@ CommitDate: Tue Mar 7 13:39:01 2006 +0000 auto-import glibc-2.4-3 on branch devel from glibc-2.4-3.src.rpm -:100644 100644 b0c91ab4 87c22c7d M glibc-fedora.patch -:100644 100644 aa4fe4ee d40f94c8 M glibc.spec -:100644 100644 a93398a2 7496d6e7 M sources +:100644 100644 b0c91ab 87c22c7 M glibc-fedora.patch +:100644 100644 aa4fe4e d40f94c M glibc.spec +:100644 100644 a93398a 7496d6e M sources commit ac0e846b3503b14d3240d9a63c646188cf42d3a1 Author: Jakub Jelinek @@ -28748,9 +29882,9 @@ CommitDate: Tue Mar 7 08:44:55 2006 +0000 auto-import glibc-2.4-2 on branch devel from glibc-2.4-2.src.rpm -:100644 100644 245d8676 b0c91ab4 M glibc-fedora.patch -:100644 100644 8f9803bf aa4fe4ee M glibc.spec -:100644 100644 694c0725 a93398a2 M sources +:100644 100644 245d867 b0c91ab M glibc-fedora.patch +:100644 100644 8f9803b aa4fe4e M glibc.spec +:100644 100644 694c072 a93398a M sources commit 7020da29910a131f5727177ca4890a8b7875b42c Author: Jakub Jelinek @@ -28760,10 +29894,10 @@ CommitDate: Mon Mar 6 13:33:54 2006 +0000 auto-import glibc-2.4-1 on branch devel from glibc-2.4-1.src.rpm -:100644 100644 5474af4e 91673824 M .cvsignore -:100644 100644 e6e20f82 245d8676 M glibc-fedora.patch -:100644 100644 e09b8399 8f9803bf M glibc.spec -:100644 100644 2e71d9da 694c0725 M sources +:100644 100644 5474af4 9167382 M .cvsignore +:100644 100644 e6e20f8 245d867 M glibc-fedora.patch +:100644 100644 e09b839 8f9803b M glibc.spec +:100644 100644 2e71d9d 694c072 M sources commit 350c8dab797b4d65364f4c096b3ea6c3d7b28a95 Author: Jakub Jelinek @@ -28773,7 +29907,7 @@ CommitDate: Mon Mar 6 08:29:36 2006 +0000 2.3.91-2 -:100644 100644 2984bdaa e6e20f82 M glibc-fedora.patch +:100644 100644 2984bda e6e20f8 M glibc-fedora.patch commit 1fda0f1c116a3f674c28ff07a1c9cb395cbde6f6 Author: Jakub Jelinek @@ -28783,7 +29917,7 @@ CommitDate: Mon Mar 6 08:24:20 2006 +0000 2.3.91-2 -:100644 100644 0686f270 2984bdaa M glibc-fedora.patch +:100644 100644 0686f27 2984bda M glibc-fedora.patch commit a18e83c77d3439e6bfca516f71b163c2283e1216 Author: Jakub Jelinek @@ -28793,10 +29927,10 @@ CommitDate: Mon Mar 6 07:55:58 2006 +0000 auto-import glibc-2.3.91-2 on branch devel from glibc-2.3.91-2.src.rpm -:100644 100644 4540fa5d 5474af4e M .cvsignore -:100644 100644 34af045b 0686f270 M glibc-fedora.patch -:100644 100644 d8ee533c e09b8399 M glibc.spec -:100644 100644 f330ae56 2e71d9da M sources +:100644 100644 4540fa5 5474af4 M .cvsignore +:100644 100644 34af045 0686f27 M glibc-fedora.patch +:100644 100644 d8ee533 e09b839 M glibc.spec +:100644 100644 f330ae5 2e71d9d M sources commit 54462ec57fd41f472a9135007b6885bb22ed3f36 Author: Jakub Jelinek @@ -28806,10 +29940,10 @@ CommitDate: Thu Mar 2 11:47:25 2006 +0000 auto-import glibc-2.3.91-1 on branch devel from glibc-2.3.91-1.src.rpm -:100644 100644 19267bf6 4540fa5d M .cvsignore -:100644 100644 05d40eb1 34af045b M glibc-fedora.patch -:100644 100644 1a0d89cb d8ee533c M glibc.spec -:100644 100644 99a8bcfd f330ae56 M sources +:100644 100644 19267bf 4540fa5 M .cvsignore +:100644 100644 05d40eb 34af045 M glibc-fedora.patch +:100644 100644 1a0d89c d8ee533 M glibc.spec +:100644 100644 99a8bcf f330ae5 M sources commit d8040d3ce191889dde71d48f47be18997ec95765 Author: Jakub Jelinek @@ -28819,7 +29953,7 @@ CommitDate: Wed Mar 1 12:33:03 2006 +0000 2.3.90-39 -:100644 100644 a9deec27 05d40eb1 M glibc-fedora.patch +:100644 100644 a9deec2 05d40eb M glibc-fedora.patch commit c069edd618e1082ac61fc0521fead13c6b839e0a Author: Jakub Jelinek @@ -28829,10 +29963,10 @@ CommitDate: Wed Mar 1 09:47:51 2006 +0000 auto-import glibc-2.3.90-39 on branch devel from glibc-2.3.90-39.src.rpm -:100644 100644 aeb8122b 19267bf6 M .cvsignore -:100644 100644 88c04f0b a9deec27 M glibc-fedora.patch -:100644 100644 204d4c76 1a0d89cb M glibc.spec -:100644 100644 bf8c313e 99a8bcfd M sources +:100644 100644 aeb8122 19267bf M .cvsignore +:100644 100644 88c04f0 a9deec2 M glibc-fedora.patch +:100644 100644 204d4c7 1a0d89c M glibc.spec +:100644 100644 bf8c313 99a8bcf M sources commit 7bf905942e818d48a8774d9cad3ea3d1145e67ef Author: Jakub Jelinek @@ -28842,8 +29976,8 @@ CommitDate: Fri Feb 17 17:21:19 2006 +0000 2.3.90-38 -:100644 100644 592c4866 88c04f0b M glibc-fedora.patch -:100644 100644 ab934cca 204d4c76 M glibc.spec +:100644 100644 592c486 88c04f0 M glibc-fedora.patch +:100644 100644 ab934cc 204d4c7 M glibc.spec commit 4779efd52d2af17048df7cc837cf72ce66bc7178 Author: Jakub Jelinek @@ -28853,7 +29987,7 @@ CommitDate: Fri Feb 17 17:00:52 2006 +0000 2.3.90-38 -:100644 100644 b0480955 592c4866 M glibc-fedora.patch +:100644 100644 b048095 592c486 M glibc-fedora.patch commit 7cded629f33013fcfaa371348a28223d0d0ee20f Author: Jakub Jelinek @@ -28863,10 +29997,10 @@ CommitDate: Fri Feb 17 16:35:21 2006 +0000 auto-import glibc-2.3.90-38 on branch devel from glibc-2.3.90-38.src.rpm -:100644 100644 9f9942e3 aeb8122b M .cvsignore -:100644 100644 ecc24cd7 b0480955 M glibc-fedora.patch -:100644 100644 04539095 ab934cca M glibc.spec -:100644 100644 266697b2 bf8c313e M sources +:100644 100644 9f9942e aeb8122 M .cvsignore +:100644 100644 ecc24cd b048095 M glibc-fedora.patch +:100644 100644 0453909 ab934cc M glibc.spec +:100644 100644 266697b bf8c313 M sources commit 8f4c4fba000afb7e198955b3c1efb1e8ca9df247 Author: Jakub Jelinek @@ -28876,8 +30010,8 @@ CommitDate: Mon Feb 13 09:40:11 2006 +0000 2.3.90-37 -:100644 100644 460a7d1f ecc24cd7 M glibc-fedora.patch -:100644 100644 979b8363 04539095 M glibc.spec +:100644 100644 460a7d1 ecc24cd M glibc-fedora.patch +:100644 100644 979b836 0453909 M glibc.spec commit d4ea1803719c0a6a851cc3249051477168d62758 Author: Jakub Jelinek @@ -28887,7 +30021,7 @@ CommitDate: Mon Feb 13 09:18:47 2006 +0000 2.3.90-37 -:100644 100644 e97d6290 460a7d1f M glibc-fedora.patch +:100644 100644 e97d629 460a7d1 M glibc-fedora.patch commit 85afbd46b7ee4107498d854a32335af4fb39f447 Author: Jakub Jelinek @@ -28897,7 +30031,7 @@ CommitDate: Mon Feb 13 08:33:23 2006 +0000 2.3.90-37 -:100644 100644 69791df1 e97d6290 M glibc-fedora.patch +:100644 100644 69791df e97d629 M glibc-fedora.patch commit 358286c6f67d3c2095129ad535f95eb303707354 Author: Jakub Jelinek @@ -28907,10 +30041,10 @@ CommitDate: Mon Feb 13 07:56:52 2006 +0000 auto-import glibc-2.3.90-37 on branch devel from glibc-2.3.90-37.src.rpm -:100644 100644 8a96908b 9f9942e3 M .cvsignore -:100644 100644 1fc6d2ad 69791df1 M glibc-fedora.patch -:100644 100644 067bb0e7 979b8363 M glibc.spec -:100644 100644 524f7647 266697b2 M sources +:100644 100644 8a96908 9f9942e M .cvsignore +:100644 100644 1fc6d2a 69791df M glibc-fedora.patch +:100644 100644 067bb0e 979b836 M glibc.spec +:100644 100644 524f764 266697b M sources commit 2908c9bb10bb7450ee815a8abb687437c46c3369 Author: Jesse Keating @@ -28920,7 +30054,7 @@ CommitDate: Sat Feb 11 03:11:03 2006 +0000 bump for bug in double-long on ppc(64) -:100644 100644 0daea8e3 067bb0e7 M glibc.spec +:100644 100644 0daea8e 067bb0e M glibc.spec commit 89cd40eff0ecbcd95f208d5ee2aaf9372e658670 Author: Jakub Jelinek @@ -28930,10 +30064,10 @@ CommitDate: Sat Feb 4 08:44:52 2006 +0000 auto-import glibc-2.3.90-36 on branch devel from glibc-2.3.90-36.src.rpm -:100644 100644 56665fca 8a96908b M .cvsignore -:100644 100644 2319df1c 1fc6d2ad M glibc-fedora.patch -:100644 100644 00b272d9 0daea8e3 M glibc.spec -:100644 100644 577136dc 524f7647 M sources +:100644 100644 56665fc 8a96908 M .cvsignore +:100644 100644 2319df1 1fc6d2a M glibc-fedora.patch +:100644 100644 00b272d 0daea8e M glibc.spec +:100644 100644 577136d 524f764 M sources commit b17a54fa650af51e8f91878c24faec1b77b4cf58 Author: Jakub Jelinek @@ -28943,10 +30077,10 @@ CommitDate: Fri Feb 3 09:58:00 2006 +0000 auto-import glibc-2.3.90-35 on branch devel from glibc-2.3.90-35.src.rpm -:100644 100644 e31ca4f6 56665fca M .cvsignore -:100644 100644 1392b1eb 2319df1c M glibc-fedora.patch -:100644 100644 6c37d1cd 00b272d9 M glibc.spec -:100644 100644 15e3fc59 577136dc M sources +:100644 100644 e31ca4f 56665fc M .cvsignore +:100644 100644 1392b1e 2319df1 M glibc-fedora.patch +:100644 100644 6c37d1c 00b272d M glibc.spec +:100644 100644 15e3fc5 577136d M sources commit 91ee8a2b3c0bda36594026c2a0841efebdfee434 Author: Jakub Jelinek @@ -28956,7 +30090,7 @@ CommitDate: Thu Feb 2 19:06:19 2006 +0000 2.3.90-34 -:100644 100644 e229b92c 6c37d1cd M glibc.spec +:100644 100644 e229b92 6c37d1c M glibc.spec commit a7c52d76cf5f1760d4ecd9c42f181c2b07a7daf5 Author: Jakub Jelinek @@ -28966,10 +30100,10 @@ CommitDate: Thu Feb 2 09:35:12 2006 +0000 auto-import glibc-2.3.90-33 on branch devel from glibc-2.3.90-33.src.rpm -:100644 100644 e109f2a3 e31ca4f6 M .cvsignore -:100644 100644 c7a7dd96 1392b1eb M glibc-fedora.patch -:100644 100644 560bf98e e229b92c M glibc.spec -:100644 100644 a35072a2 15e3fc59 M sources +:100644 100644 e109f2a e31ca4f M .cvsignore +:100644 100644 c7a7dd9 1392b1e M glibc-fedora.patch +:100644 100644 560bf98 e229b92 M glibc.spec +:100644 100644 a35072a 15e3fc5 M sources commit 914423a575ae72883958da9ac5207465146631b6 Author: Jakub Jelinek @@ -28979,10 +30113,10 @@ CommitDate: Wed Feb 1 10:20:18 2006 +0000 auto-import glibc-2.3.90-32 on branch devel from glibc-2.3.90-32.src.rpm -:100644 100644 882dac8e e109f2a3 M .cvsignore -:100644 100644 b55f9685 c7a7dd96 M glibc-fedora.patch -:100644 100644 5ca4690c 560bf98e M glibc.spec -:100644 100644 cdb36487 a35072a2 M sources +:100644 100644 882dac8 e109f2a M .cvsignore +:100644 100644 b55f968 c7a7dd9 M glibc-fedora.patch +:100644 100644 5ca4690 560bf98 M glibc.spec +:100644 100644 cdb3648 a35072a M sources commit d352a6d77f6acac70d21a812400c9dbcd503c80c Author: Jakub Jelinek @@ -28992,7 +30126,7 @@ CommitDate: Mon Jan 30 11:39:52 2006 +0000 2.3.90-31 -:100644 100644 524b64eb 5ca4690c M glibc.spec +:100644 100644 524b64e 5ca4690 M glibc.spec commit 8e4e6fe8365a85542263a5c7e8126ae5f776a8ff Author: Jakub Jelinek @@ -29002,7 +30136,7 @@ CommitDate: Mon Jan 30 10:19:55 2006 +0000 2.3.90-31 -:100644 100644 c7a5a930 524b64eb M glibc.spec +:100644 100644 c7a5a93 524b64e M glibc.spec commit 57d2c535c194b3b39d11f0de52c8eb3050387ef0 Author: Jakub Jelinek @@ -29012,10 +30146,10 @@ CommitDate: Mon Jan 30 10:11:25 2006 +0000 auto-import glibc-2.3.90-31 on branch devel from glibc-2.3.90-31.src.rpm -:100644 100644 63066abc 882dac8e M .cvsignore -:100644 100644 c3747b5d b55f9685 M glibc-fedora.patch -:100644 100644 44f87262 c7a5a930 M glibc.spec -:100644 100644 2bd03ffc cdb36487 M sources +:100644 100644 63066ab 882dac8 M .cvsignore +:100644 100644 c3747b5 b55f968 M glibc-fedora.patch +:100644 100644 44f8726 c7a5a93 M glibc.spec +:100644 100644 2bd03ff cdb3648 M sources commit 75ff4bc0d94a4d3743191d611adb248b4d561bfb Author: Jakub Jelinek @@ -29025,7 +30159,7 @@ CommitDate: Mon Jan 9 23:28:07 2006 +0000 2.3.90-30 -:100644 100644 e5bc9279 44f87262 M glibc.spec +:100644 100644 e5bc927 44f8726 M glibc.spec commit f8e8bfb7a957a92ba591ab000ccd9c624468ba69 Author: Jakub Jelinek @@ -29035,7 +30169,7 @@ CommitDate: Mon Jan 9 22:33:25 2006 +0000 2.3.90-30 -:100644 100644 3972a74e e5bc9279 M glibc.spec +:100644 100644 3972a74 e5bc927 M glibc.spec commit cc5c5b17529358aab3efdc9ede0e6eb0eee63b5d Author: Jakub Jelinek @@ -29045,10 +30179,10 @@ CommitDate: Mon Jan 9 22:19:27 2006 +0000 auto-import glibc-2.3.90-30 on branch devel from glibc-2.3.90-30.src.rpm -:100644 100644 ea877767 63066abc M .cvsignore -:100644 100644 7d050706 c3747b5d M glibc-fedora.patch -:100644 100644 e4596c93 3972a74e M glibc.spec -:100644 100644 2d02d208 2bd03ffc M sources +:100644 100644 ea87776 63066ab M .cvsignore +:100644 100644 7d05070 c3747b5 M glibc-fedora.patch +:100644 100644 e4596c9 3972a74 M glibc.spec +:100644 100644 2d02d20 2bd03ff M sources commit e7c1483cefea88ace550abc98ad92ab2b4c4b41e Author: Jakub Jelinek @@ -29058,7 +30192,7 @@ CommitDate: Fri Jan 6 23:08:27 2006 +0000 2.3.90-29 -:100644 100644 26063908 7d050706 M glibc-fedora.patch +:100644 100644 2606390 7d05070 M glibc-fedora.patch commit eca69a8feed820654b4f9e5fb1c239dcc4406bf4 Author: Jakub Jelinek @@ -29068,7 +30202,7 @@ CommitDate: Fri Jan 6 22:27:39 2006 +0000 2.3.90-29 -:100644 100644 c8434929 26063908 M glibc-fedora.patch +:100644 100644 c843492 2606390 M glibc-fedora.patch commit b8270fb977e5e771fe9ce93d1e13c98dc662e207 Author: Jakub Jelinek @@ -29078,10 +30212,10 @@ CommitDate: Fri Jan 6 22:17:50 2006 +0000 auto-import glibc-2.3.90-29 on branch devel from glibc-2.3.90-29.src.rpm -:100644 100644 49873448 ea877767 M .cvsignore -:100644 100644 8285bd62 c8434929 M glibc-fedora.patch -:100644 100644 a32e7e2a e4596c93 M glibc.spec -:100644 100644 6ede1286 2d02d208 M sources +:100644 100644 4987344 ea87776 M .cvsignore +:100644 100644 8285bd6 c843492 M glibc-fedora.patch +:100644 100644 a32e7e2 e4596c9 M glibc.spec +:100644 100644 6ede128 2d02d20 M sources commit bd4957a00099553bc14680f478649139e7345c53 Author: Jakub Jelinek @@ -29091,10 +30225,10 @@ CommitDate: Fri Jan 6 09:59:51 2006 +0000 auto-import glibc-2.3.90-28 on branch devel from glibc-2.3.90-28.src.rpm -:100644 100644 6dfb6728 49873448 M .cvsignore -:100644 100644 6ba1224c 8285bd62 M glibc-fedora.patch -:100644 100644 d4ba90f1 a32e7e2a M glibc.spec -:100644 100644 9ebfbf5d 6ede1286 M sources +:100644 100644 6dfb672 4987344 M .cvsignore +:100644 100644 6ba1224 8285bd6 M glibc-fedora.patch +:100644 100644 d4ba90f a32e7e2 M glibc.spec +:100644 100644 9ebfbf5 6ede128 M sources commit 0f5b781e74b867f7a04a1386d70f902f7e83c85f Author: Jakub Jelinek @@ -29104,7 +30238,7 @@ CommitDate: Fri Jan 6 05:06:44 2006 +0000 2.3.90-27 -:100644 100644 b23bbada d4ba90f1 M glibc.spec +:100644 100644 b23bbad d4ba90f M glibc.spec commit 8c0a3d8241dc6310ded62fffedf9ace875ebf189 Author: Jakub Jelinek @@ -29114,7 +30248,7 @@ CommitDate: Wed Jan 4 09:38:31 2006 +0000 2.3.90-26 -:100644 100644 82757f76 b23bbada M glibc.spec +:100644 100644 82757f7 b23bbad M glibc.spec commit 8dcd30911718e1062e09b0ea9d3fb4fd06139350 Author: Jakub Jelinek @@ -29124,7 +30258,7 @@ CommitDate: Wed Jan 4 08:49:45 2006 +0000 2.3.90-26 -:100644 100644 ed6433ee 82757f76 M glibc.spec +:100644 100644 ed6433e 82757f7 M glibc.spec commit 813f76e2aa55b4e2d281e7b13cfdecb56d8e76ce Author: Jakub Jelinek @@ -29134,7 +30268,7 @@ CommitDate: Wed Jan 4 08:30:46 2006 +0000 2.3.90-26 -:100644 100644 b1df3f9a ed6433ee M glibc.spec +:100644 100644 b1df3f9 ed6433e M glibc.spec commit e1fb04fe0681cfc13e8b3fcde431959008f80ce9 Author: Jakub Jelinek @@ -29144,10 +30278,10 @@ CommitDate: Wed Jan 4 08:23:00 2006 +0000 auto-import glibc-2.3.90-26 on branch devel from glibc-2.3.90-26.src.rpm -:100644 100644 d0302150 6dfb6728 M .cvsignore -:100644 100644 d308a612 6ba1224c M glibc-fedora.patch -:100644 100644 8a90d3f1 b1df3f9a M glibc.spec -:100644 100644 0aab3815 9ebfbf5d M sources +:100644 100644 d030215 6dfb672 M .cvsignore +:100644 100644 d308a61 6ba1224 M glibc-fedora.patch +:100644 100644 8a90d3f b1df3f9 M glibc.spec +:100644 100644 0aab381 9ebfbf5 M sources commit 37f94da133d7a6acbc69cb3e86274be75c913703 Author: Jakub Jelinek @@ -29157,7 +30291,7 @@ CommitDate: Mon Jan 2 22:12:57 2006 +0000 2.3.90-25 -:100644 100644 aa2dcbaf 8a90d3f1 M glibc.spec +:100644 100644 aa2dcba 8a90d3f M glibc.spec commit 96f42f961a8adcfe58d8632003f39daf4cf14e5b Author: Jakub Jelinek @@ -29167,10 +30301,10 @@ CommitDate: Mon Jan 2 21:54:32 2006 +0000 auto-import glibc-2.3.90-25 on branch devel from glibc-2.3.90-25.src.rpm -:100644 100644 8696446a d0302150 M .cvsignore -:100644 100644 c72209c9 d308a612 M glibc-fedora.patch -:100644 100644 b05fac72 aa2dcbaf M glibc.spec -:100644 100644 c66feaa5 0aab3815 M sources +:100644 100644 8696446 d030215 M .cvsignore +:100644 100644 c72209c d308a61 M glibc-fedora.patch +:100644 100644 b05fac7 aa2dcba M glibc.spec +:100644 100644 c66feaa 0aab381 M sources commit dfc0bd01920a61cf2bfb12aff469cfbd70a7868f Author: Jakub Jelinek @@ -29180,7 +30314,7 @@ CommitDate: Mon Jan 2 11:58:25 2006 +0000 2.3.90-24 -:100644 100644 8fb0071d b05fac72 M glibc.spec +:100644 100644 8fb0071 b05fac7 M glibc.spec commit d73fe4152dd491f30ac04889b2dc98c75a33f40c Author: Jakub Jelinek @@ -29190,10 +30324,10 @@ CommitDate: Mon Jan 2 11:34:49 2006 +0000 auto-import glibc-2.3.90-24 on branch devel from glibc-2.3.90-24.src.rpm -:100644 100644 91821d79 8696446a M .cvsignore -:100644 100644 2dbd90a2 c72209c9 M glibc-fedora.patch -:100644 100644 c45696c9 8fb0071d M glibc.spec -:100644 100644 a2039014 c66feaa5 M sources +:100644 100644 91821d7 8696446 M .cvsignore +:100644 100644 2dbd90a c72209c M glibc-fedora.patch +:100644 100644 c45696c 8fb0071 M glibc.spec +:100644 100644 a203901 c66feaa M sources commit 0853a65b6536a9b209800b89216251c548715a87 Author: Jakub Jelinek @@ -29203,7 +30337,7 @@ CommitDate: Tue Dec 27 17:06:57 2005 +0000 2.3.90-23 -:100644 100644 99e13ccc c45696c9 M glibc.spec +:100644 100644 99e13cc c45696c M glibc.spec commit 5383d1f6145d0aa8a9b8f43040080cb1dc82a7d2 Author: Jakub Jelinek @@ -29213,7 +30347,7 @@ CommitDate: Tue Dec 27 16:50:40 2005 +0000 2.3.90-23 -:100644 100644 30169a3f 99e13ccc M glibc.spec +:100644 100644 30169a3 99e13cc M glibc.spec commit 807fd31c2b95a491d660a387b9218ef44ed8d7fb Author: Jakub Jelinek @@ -29223,10 +30357,10 @@ CommitDate: Tue Dec 27 16:48:46 2005 +0000 auto-import glibc-2.3.90-23 on branch devel from glibc-2.3.90-23.src.rpm -:100644 100644 4c381ad4 91821d79 M .cvsignore -:100644 100644 41d17890 2dbd90a2 M glibc-fedora.patch -:100644 100644 b8b8a23f 30169a3f M glibc.spec -:100644 100644 585dd454 a2039014 M sources +:100644 100644 4c381ad 91821d7 M .cvsignore +:100644 100644 41d1789 2dbd90a M glibc-fedora.patch +:100644 100644 b8b8a23 30169a3 M glibc.spec +:100644 100644 585dd45 a203901 M sources commit b287e0ac43449f24616171f3c38cb60bbd9a3951 Author: Jakub Jelinek @@ -29236,7 +30370,7 @@ CommitDate: Wed Dec 21 13:00:40 2005 +0000 2.3.90-22 -:100644 100644 50ac2286 b8b8a23f M glibc.spec +:100644 100644 50ac228 b8b8a23 M glibc.spec commit 5f488048217f9e4f33e98952b67720458196a0fe Author: Jakub Jelinek @@ -29246,10 +30380,10 @@ CommitDate: Wed Dec 21 11:47:59 2005 +0000 auto-import glibc-2.3.90-22 on branch devel from glibc-2.3.90-22.src.rpm -:100644 100644 13adc775 4c381ad4 M .cvsignore -:100644 100644 d6f117e4 41d17890 M glibc-fedora.patch -:100644 100644 c55ba382 50ac2286 M glibc.spec -:100644 100644 b0068925 585dd454 M sources +:100644 100644 13adc77 4c381ad M .cvsignore +:100644 100644 d6f117e 41d1789 M glibc-fedora.patch +:100644 100644 c55ba38 50ac228 M glibc.spec +:100644 100644 b006892 585dd45 M sources commit 5bba32e6d5d1afab4689a11f0ef9d97d5bc5a18b Author: Jakub Jelinek @@ -29259,10 +30393,10 @@ CommitDate: Tue Dec 20 18:34:30 2005 +0000 auto-import glibc-2.3.90-21 on branch devel from glibc-2.3.90-21.src.rpm -:100644 100644 b8ea667f 13adc775 M .cvsignore -:100644 100644 63d98e9b d6f117e4 M glibc-fedora.patch -:100644 100644 25a375ac c55ba382 M glibc.spec -:100644 100644 7fac8118 b0068925 M sources +:100644 100644 b8ea667 13adc77 M .cvsignore +:100644 100644 63d98e9 d6f117e M glibc-fedora.patch +:100644 100644 25a375a c55ba38 M glibc.spec +:100644 100644 7fac811 b006892 M sources commit 909acf057916a8642eeef9c165d972c32752fa49 Author: Jakub Jelinek @@ -29272,7 +30406,7 @@ CommitDate: Tue Dec 20 12:37:10 2005 +0000 2.3.90-20 -:100644 100644 cae3f06e 25a375ac M glibc.spec +:100644 100644 cae3f06 25a375a M glibc.spec commit 9723f24ad39c34c9320c9cebdc75b70d65ae2a6e Author: Jakub Jelinek @@ -29282,7 +30416,7 @@ CommitDate: Tue Dec 20 11:51:46 2005 +0000 2.3.90-20 -:100644 100644 fb5bfc87 cae3f06e M glibc.spec +:100644 100644 fb5bfc8 cae3f06 M glibc.spec commit 6a56b8e5985c3f177244d1c386533c0e702f6888 Author: Jakub Jelinek @@ -29292,7 +30426,7 @@ CommitDate: Tue Dec 20 11:37:17 2005 +0000 2.3.90-20 -:100644 100644 22580682 fb5bfc87 M glibc.spec +:100644 100644 2258068 fb5bfc8 M glibc.spec commit 8a25c5ed4152cbd5f3a3483346c397497bb7c56d Author: Jakub Jelinek @@ -29302,10 +30436,10 @@ CommitDate: Tue Dec 20 11:34:34 2005 +0000 auto-import glibc-2.3.90-20 on branch devel from glibc-2.3.90-20.src.rpm -:100644 100644 6a9c30cc b8ea667f M .cvsignore -:100644 100644 fb55bce2 63d98e9b M glibc-fedora.patch -:100644 100644 e19c8d00 22580682 M glibc.spec -:100644 100644 5c42ccf5 7fac8118 M sources +:100644 100644 6a9c30c b8ea667 M .cvsignore +:100644 100644 fb55bce 63d98e9 M glibc-fedora.patch +:100644 100644 e19c8d0 2258068 M glibc.spec +:100644 100644 5c42ccf 7fac811 M sources commit 0d2c529b1e01408c7296595e5bc60a417cfb774c Author: Jakub Jelinek @@ -29315,7 +30449,7 @@ CommitDate: Mon Dec 19 18:16:27 2005 +0000 2.3.90-19 -:100644 100644 8b8f1e09 e19c8d00 M glibc.spec +:100644 100644 8b8f1e0 e19c8d0 M glibc.spec commit da64eed81e024e698117add4e52fd6979c957793 Author: Jakub Jelinek @@ -29325,7 +30459,7 @@ CommitDate: Mon Dec 19 18:04:52 2005 +0000 2.3.90-19 -:100644 100644 ff36ad8e 8b8f1e09 M glibc.spec +:100644 100644 ff36ad8 8b8f1e0 M glibc.spec commit bb3cbbeb3ee491bb465d2c0344cabdae9e294c6c Author: Jakub Jelinek @@ -29335,7 +30469,7 @@ CommitDate: Mon Dec 19 13:36:53 2005 +0000 2.3.90-19 -:100644 100644 1059b801 ff36ad8e M glibc.spec +:100644 100644 1059b80 ff36ad8 M glibc.spec commit f99593848d0bb9b9c217bf51d36a46bce7d77d16 Author: Jakub Jelinek @@ -29345,10 +30479,10 @@ CommitDate: Mon Dec 19 13:06:57 2005 +0000 auto-import glibc-2.3.90-19 on branch devel from glibc-2.3.90-19.src.rpm -:100644 100644 0d5b4ec1 6a9c30cc M .cvsignore -:100644 100644 52a6d9da fb55bce2 M glibc-fedora.patch -:100644 100644 8a2d6459 1059b801 M glibc.spec -:100644 100644 2dd02407 5c42ccf5 M sources +:100644 100644 0d5b4ec 6a9c30c M .cvsignore +:100644 100644 52a6d9d fb55bce M glibc-fedora.patch +:100644 100644 8a2d645 1059b80 M glibc.spec +:100644 100644 2dd0240 5c42ccf M sources commit f37579f0c0547be1aae86734e108b053f5783edc Author: Jakub Jelinek @@ -29358,7 +30492,7 @@ CommitDate: Mon Dec 19 10:08:45 2005 +0000 2.3.90-18.1 -:100644 100644 5434de7c 8a2d6459 M glibc.spec +:100644 100644 5434de7 8a2d645 M glibc.spec commit b8b11f3758d09eeaaba0f5faea8c80c2a57005a1 Author: Jakub Jelinek @@ -29368,7 +30502,7 @@ CommitDate: Sat Nov 19 22:02:46 2005 +0000 2.3.90-18 -:100644 100644 4d98800a 52a6d9da M glibc-fedora.patch +:100644 100644 4d98800 52a6d9d M glibc-fedora.patch commit 3a237114b13851d5182d7c1173b4acfefa026d48 Author: Jakub Jelinek @@ -29378,10 +30512,10 @@ CommitDate: Sat Nov 19 20:44:50 2005 +0000 auto-import glibc-2.3.90-18 on branch devel from glibc-2.3.90-18.src.rpm -:100644 100644 bf7f2ce9 0d5b4ec1 M .cvsignore -:100644 100644 c1828245 4d98800a M glibc-fedora.patch -:100644 100644 ce9c141a 5434de7c M glibc.spec -:100644 100644 7aaa3c04 2dd02407 M sources +:100644 100644 bf7f2ce 0d5b4ec M .cvsignore +:100644 100644 c182824 4d98800 M glibc-fedora.patch +:100644 100644 ce9c141 5434de7 M glibc.spec +:100644 100644 7aaa3c0 2dd0240 M sources commit 41974371a622447ff2640fbe7c026e45100ac74d Author: Jakub Jelinek @@ -29391,10 +30525,10 @@ CommitDate: Wed Nov 16 08:56:27 2005 +0000 auto-import glibc-2.3.90-17 on branch devel from glibc-2.3.90-17.src.rpm -:100644 100644 a013e121 bf7f2ce9 M .cvsignore -:100644 100644 e7070407 c1828245 M glibc-fedora.patch -:100644 100644 4b85ccd9 ce9c141a M glibc.spec -:100644 100644 2734e9bd 7aaa3c04 M sources +:100644 100644 a013e12 bf7f2ce M .cvsignore +:100644 100644 e707040 c182824 M glibc-fedora.patch +:100644 100644 4b85ccd ce9c141 M glibc.spec +:100644 100644 2734e9b 7aaa3c0 M sources commit e4a18002564e2da764c86bd02e389066d0ab363f Author: Jakub Jelinek @@ -29404,7 +30538,7 @@ CommitDate: Tue Nov 15 10:01:26 2005 +0000 2.3.90-16 -:100644 100644 62beec7c e7070407 M glibc-fedora.patch +:100644 100644 62beec7 e707040 M glibc-fedora.patch commit b656b188181d70274d16be5d4d45770872c81a56 Author: Jakub Jelinek @@ -29414,10 +30548,10 @@ CommitDate: Tue Nov 15 09:36:31 2005 +0000 auto-import glibc-2.3.90-16 on branch devel from glibc-2.3.90-16.src.rpm -:100644 100644 23955b3e a013e121 M .cvsignore -:100644 100644 bcdfaa23 62beec7c M glibc-fedora.patch -:100644 100644 0fbe3df8 4b85ccd9 M glibc.spec -:100644 100644 b82cd755 2734e9bd M sources +:100644 100644 23955b3 a013e12 M .cvsignore +:100644 100644 bcdfaa2 62beec7 M glibc-fedora.patch +:100644 100644 0fbe3df 4b85ccd M glibc.spec +:100644 100644 b82cd75 2734e9b M sources commit df0287f83bf017827d1affb214465e28ace7e2cd Author: Jakub Jelinek @@ -29427,10 +30561,10 @@ CommitDate: Thu Oct 20 07:46:13 2005 +0000 auto-import glibc-2.3.90-15 on branch devel from glibc-2.3.90-15.src.rpm -:100644 100644 e5b6e3dd 23955b3e M .cvsignore -:100644 100644 ba1df271 bcdfaa23 M glibc-fedora.patch -:100644 100644 d5c5ec81 0fbe3df8 M glibc.spec -:100644 100644 8a66b9cb b82cd755 M sources +:100644 100644 e5b6e3d 23955b3 M .cvsignore +:100644 100644 ba1df27 bcdfaa2 M glibc-fedora.patch +:100644 100644 d5c5ec8 0fbe3df M glibc.spec +:100644 100644 8a66b9c b82cd75 M sources commit c8ff10b6da2a4475c6966dd54d0efb8bb436c8c7 Author: Jakub Jelinek @@ -29440,10 +30574,10 @@ CommitDate: Mon Oct 10 15:26:58 2005 +0000 auto-import glibc-2.3.90-14 on branch devel from glibc-2.3.90-14.src.rpm -:100644 100644 ffe9c8e0 e5b6e3dd M .cvsignore -:100644 100644 54c104f7 ba1df271 M glibc-fedora.patch -:100644 100644 bbda5eff d5c5ec81 M glibc.spec -:100644 100644 6474a1f8 8a66b9cb M sources +:100644 100644 ffe9c8e e5b6e3d M .cvsignore +:100644 100644 54c104f ba1df27 M glibc-fedora.patch +:100644 100644 bbda5ef d5c5ec8 M glibc.spec +:100644 100644 6474a1f 8a66b9c M sources commit 3a12799361566c1a979797bf02370cf82690b58d Author: Jakub Jelinek @@ -29453,7 +30587,7 @@ CommitDate: Mon Oct 3 21:56:48 2005 +0000 2.3.90-13 -:100644 100644 9999e102 54c104f7 M glibc-fedora.patch +:100644 100644 9999e10 54c104f M glibc-fedora.patch commit d81612f8ce4de23ba1151d481eb9935c3ca063bb Author: Jakub Jelinek @@ -29463,10 +30597,10 @@ CommitDate: Mon Oct 3 21:25:44 2005 +0000 auto-import glibc-2.3.90-13 on branch devel from glibc-2.3.90-13.src.rpm -:100644 100644 459f6bbd ffe9c8e0 M .cvsignore -:100644 100644 77904f3a 9999e102 M glibc-fedora.patch -:100644 100644 0e0cb5b3 bbda5eff M glibc.spec -:100644 100644 5f12ce8c 6474a1f8 M sources +:100644 100644 459f6bb ffe9c8e M .cvsignore +:100644 100644 77904f3 9999e10 M glibc-fedora.patch +:100644 100644 0e0cb5b bbda5ef M glibc.spec +:100644 100644 5f12ce8 6474a1f M sources commit bc6fb1284d31a93342bbbddee2b5477f1a8226fa Author: Jakub Jelinek @@ -29476,7 +30610,7 @@ CommitDate: Mon Sep 12 16:18:05 2005 +0000 2.3.90-12 -:100644 100644 bc1133f6 5f12ce8c M sources +:100644 100644 bc1133f 5f12ce8 M sources commit 2d428cd3f3c018f963e670506d490ee5cb063fde Author: Jakub Jelinek @@ -29486,7 +30620,7 @@ CommitDate: Mon Sep 12 14:44:40 2005 +0000 2.3.90-12 -:100644 100644 0b6978ec bc1133f6 M sources +:100644 100644 0b6978e bc1133f M sources commit 63b6b66e8c4bfe92147414dcdf198904e6420f9d Author: Jakub Jelinek @@ -29496,10 +30630,10 @@ CommitDate: Mon Sep 12 13:33:00 2005 +0000 auto-import glibc-2.3.90-12 on branch devel from glibc-2.3.90-12.src.rpm -:100644 100644 ca438a86 459f6bbd M .cvsignore -:100644 100644 6b9204d5 77904f3a M glibc-fedora.patch -:100644 100644 09fe7e7f 0e0cb5b3 M glibc.spec -:100644 100644 4f7d60f7 0b6978ec M sources +:100644 100644 ca438a8 459f6bb M .cvsignore +:100644 100644 6b9204d 77904f3 M glibc-fedora.patch +:100644 100644 09fe7e7 0e0cb5b M glibc.spec +:100644 100644 4f7d60f 0b6978e M sources commit 50c75d2c4de20dde140905dfa48cb0135b844855 Author: Jakub Jelinek @@ -29509,10 +30643,10 @@ CommitDate: Mon Aug 29 19:59:27 2005 +0000 auto-import glibc-2.3.90-11 on branch devel from glibc-2.3.90-11.src.rpm -:100644 100644 68c10d9a ca438a86 M .cvsignore -:100644 100644 cf2b1837 6b9204d5 M glibc-fedora.patch -:100644 100644 989df322 09fe7e7f M glibc.spec -:100644 100644 8cc5a61e 4f7d60f7 M sources +:100644 100644 68c10d9 ca438a8 M .cvsignore +:100644 100644 cf2b183 6b9204d M glibc-fedora.patch +:100644 100644 989df32 09fe7e7 M glibc.spec +:100644 100644 8cc5a61 4f7d60f M sources commit d1bc0a01f94b7861ae9096627681cff8824f083f Author: Jakub Jelinek @@ -29522,10 +30656,10 @@ CommitDate: Wed Aug 24 08:04:30 2005 +0000 auto-import glibc-2.3.90-10 on branch devel from glibc-2.3.90-10.src.rpm -:100644 100644 334f335a 68c10d9a M .cvsignore -:100644 100644 cd4fd4c6 cf2b1837 M glibc-fedora.patch -:100644 100644 05b5faf0 989df322 M glibc.spec -:100644 100644 83ead896 8cc5a61e M sources +:100644 100644 334f335 68c10d9 M .cvsignore +:100644 100644 cd4fd4c cf2b183 M glibc-fedora.patch +:100644 100644 05b5faf 989df32 M glibc.spec +:100644 100644 83ead89 8cc5a61 M sources commit 20eeaeb056bac259aaf6783759b8b53fd88e8470 Author: Jakub Jelinek @@ -29535,10 +30669,10 @@ CommitDate: Mon Aug 22 08:38:00 2005 +0000 auto-import glibc-2.3.90-9 on branch devel from glibc-2.3.90-9.src.rpm -:100644 100644 952655f2 334f335a M .cvsignore -:100644 100644 71638e7b cd4fd4c6 M glibc-fedora.patch -:100644 100644 5c85cfd4 05b5faf0 M glibc.spec -:100644 100644 780a220e 83ead896 M sources +:100644 100644 952655f 334f335 M .cvsignore +:100644 100644 71638e7 cd4fd4c M glibc-fedora.patch +:100644 100644 5c85cfd 05b5faf M glibc.spec +:100644 100644 780a220 83ead89 M sources commit 6bdbb1e7e59c1585ddc789395fc1c571e3787c03 Author: Jakub Jelinek @@ -29548,10 +30682,10 @@ CommitDate: Mon Aug 8 22:05:34 2005 +0000 auto-import glibc-2.3.90-8 on branch devel from glibc-2.3.90-8.src.rpm -:100644 100644 1758f0e2 952655f2 M .cvsignore -:100644 100644 6d62e0e1 71638e7b M glibc-fedora.patch -:100644 100644 1fceb961 5c85cfd4 M glibc.spec -:100644 100644 4424e825 780a220e M sources +:100644 100644 1758f0e 952655f M .cvsignore +:100644 100644 6d62e0e 71638e7 M glibc-fedora.patch +:100644 100644 1fceb96 5c85cfd M glibc.spec +:100644 100644 4424e82 780a220 M sources commit eed6a0fa9fb071eb0ca92536e7b12cc5016dc8f7 Author: Jakub Jelinek @@ -29561,10 +30695,10 @@ CommitDate: Fri Jul 29 17:44:03 2005 +0000 auto-import glibc-2.3.90-7 on branch devel from glibc-2.3.90-7.src.rpm -:100644 100644 f33c7f63 1758f0e2 M .cvsignore -:100644 100644 3061a08a 6d62e0e1 M glibc-fedora.patch -:100644 100644 d745d6a1 1fceb961 M glibc.spec -:100644 100644 87c90205 4424e825 M sources +:100644 100644 f33c7f6 1758f0e M .cvsignore +:100644 100644 3061a08 6d62e0e M glibc-fedora.patch +:100644 100644 d745d6a 1fceb96 M glibc.spec +:100644 100644 87c9020 4424e82 M sources commit 799ca1979c9dfeb377ff0efa58f27e297491c10a Author: Jakub Jelinek @@ -29574,10 +30708,10 @@ CommitDate: Mon Jul 25 07:05:29 2005 +0000 auto-import glibc-2.3.90-6 on branch devel from glibc-2.3.90-6.src.rpm -:100644 100644 81ef5e97 f33c7f63 M .cvsignore -:100644 100644 3cc52884 3061a08a M glibc-fedora.patch -:100644 100644 42d543a0 d745d6a1 M glibc.spec -:100644 100644 fe963e98 87c90205 M sources +:100644 100644 81ef5e9 f33c7f6 M .cvsignore +:100644 100644 3cc5288 3061a08 M glibc-fedora.patch +:100644 100644 42d543a d745d6a M glibc.spec +:100644 100644 fe963e9 87c9020 M sources commit 6396c0946132dcaebb3b1cc95ca3c61dd2aea609 Author: Jakub Jelinek @@ -29587,9 +30721,9 @@ CommitDate: Fri Jul 22 09:26:40 2005 +0000 auto-import glibc-2.3.90-5 on branch devel from glibc-2.3.90-5.src.rpm -:100644 100644 672585a7 3cc52884 M glibc-fedora.patch -:100644 100644 72d9fe8b 42d543a0 M glibc.spec -:100644 100644 552659c2 fe963e98 M sources +:100644 100644 672585a 3cc5288 M glibc-fedora.patch +:100644 100644 72d9fe8 42d543a M glibc.spec +:100644 100644 552659c fe963e9 M sources commit a70b2b646e6f6e48750547088595265b2548f23a Author: Jakub Jelinek @@ -29599,10 +30733,10 @@ CommitDate: Fri Jul 22 06:22:21 2005 +0000 auto-import glibc-2.3.90-4 on branch devel from glibc-2.3.90-4.src.rpm -:100644 100644 363ee18d 81ef5e97 M .cvsignore -:100644 100644 75d508eb 672585a7 M glibc-fedora.patch -:100644 100644 03ae758d 72d9fe8b M glibc.spec -:100644 100644 8d7d2d71 552659c2 M sources +:100644 100644 363ee18 81ef5e9 M .cvsignore +:100644 100644 75d508e 672585a M glibc-fedora.patch +:100644 100644 03ae758 72d9fe8 M glibc.spec +:100644 100644 8d7d2d7 552659c M sources commit 48f35507394ca875ac495bd4f7e4918944630749 Author: Jakub Jelinek @@ -29612,10 +30746,10 @@ CommitDate: Thu Jul 21 10:04:55 2005 +0000 auto-import glibc-2.3.90-3 on branch devel from glibc-2.3.90-3.src.rpm -:100644 100644 268475d9 363ee18d M .cvsignore -:100644 100644 098ac054 75d508eb M glibc-fedora.patch -:100644 100644 478155d0 03ae758d M glibc.spec -:100644 100644 d50b48d7 8d7d2d71 M sources +:100644 100644 268475d 363ee18 M .cvsignore +:100644 100644 098ac05 75d508e M glibc-fedora.patch +:100644 100644 478155d 03ae758 M glibc.spec +:100644 100644 d50b48d 8d7d2d7 M sources commit efbd5659f4b70179456dcb9bfa6bef6cc19fe96f Author: Jakub Jelinek @@ -29625,7 +30759,7 @@ CommitDate: Fri Jul 8 11:42:04 2005 +0000 2.3.90-2 -:100644 100644 8bdf2030 478155d0 M glibc.spec +:100644 100644 8bdf203 478155d M glibc.spec commit 2f520cac16a8ae1a47a06bb93ab6934a9c104c9e Author: Jakub Jelinek @@ -29635,7 +30769,7 @@ CommitDate: Fri Jul 8 10:21:35 2005 +0000 2.3.90-2 -:100644 100644 31e8a3e6 8bdf2030 M glibc.spec +:100644 100644 31e8a3e 8bdf203 M glibc.spec commit 24d9119125e6c3721e3254f96e36bd90309b1f61 Author: Jakub Jelinek @@ -29645,10 +30779,10 @@ CommitDate: Fri Jul 8 10:17:59 2005 +0000 auto-import glibc-2.3.90-2 on branch devel from glibc-2.3.90-2.src.rpm -:100644 100644 11ce9155 268475d9 M .cvsignore -:100644 100644 cf9d6b6c 098ac054 M glibc-fedora.patch -:100644 100644 6e9e26c6 31e8a3e6 M glibc.spec -:100644 100644 9b72895d d50b48d7 M sources +:100644 100644 11ce915 268475d M .cvsignore +:100644 100644 cf9d6b6 098ac05 M glibc-fedora.patch +:100644 100644 6e9e26c 31e8a3e M glibc.spec +:100644 100644 9b72895 d50b48d M sources commit ee4656d0203f760b9c0d2e06ce3ba7a025583636 Author: Jakub Jelinek @@ -29658,7 +30792,7 @@ CommitDate: Mon Jun 27 20:06:18 2005 +0000 2.3.90-1 -:100644 100644 8326784b 6e9e26c6 M glibc.spec +:100644 100644 8326784 6e9e26c M glibc.spec commit 0ccd41a417beb99b4ff95bc1b1fb26c44e311836 Author: Jakub Jelinek @@ -29668,7 +30802,7 @@ CommitDate: Mon Jun 27 16:54:27 2005 +0000 2.3.90-1 -:100644 100644 2a93a04b 8326784b M glibc.spec +:100644 100644 2a93a04 8326784 M glibc.spec commit 38ff1b6d72935606cbac199b855abe4dcc3fef65 Author: Jakub Jelinek @@ -29678,7 +30812,7 @@ CommitDate: Mon Jun 27 14:48:07 2005 +0000 2.3.90-1 -:100644 100644 cd32dd5e 2a93a04b M glibc.spec +:100644 100644 cd32dd5 2a93a04 M glibc.spec commit ab188f024d2dbfd4f1a15fb74e82f88d91cb33f5 Author: Jakub Jelinek @@ -29688,7 +30822,7 @@ CommitDate: Mon Jun 27 14:09:49 2005 +0000 2.3.90-1 -:100644 100644 064158e7 cd32dd5e M glibc.spec +:100644 100644 064158e cd32dd5 M glibc.spec commit 5a7053e819af6cb4accf455647d072535f06b05b Author: Jakub Jelinek @@ -29698,10 +30832,10 @@ CommitDate: Mon Jun 27 14:02:02 2005 +0000 auto-import glibc-2.3.90-1 on branch devel from glibc-2.3.90-1.src.rpm -:100644 100644 6f486d45 11ce9155 M .cvsignore -:100644 100644 1b6a54f3 cf9d6b6c M glibc-fedora.patch -:100644 100644 327cefa2 064158e7 M glibc.spec -:100644 100644 2be3a7a6 9b72895d M sources +:100644 100644 6f486d4 11ce915 M .cvsignore +:100644 100644 1b6a54f cf9d6b6 M glibc-fedora.patch +:100644 100644 327cefa 064158e M glibc.spec +:100644 100644 2be3a7a 9b72895 M sources commit 0d2a757f3ea80b52056f6b1dcef05f521257e164 Author: Jakub Jelinek @@ -29711,10 +30845,10 @@ CommitDate: Mon Jun 20 17:17:29 2005 +0000 auto-import glibc-2.3.5-11 on branch devel from glibc-2.3.5-11.src.rpm -:100644 100644 615dfbbf 6f486d45 M .cvsignore -:100644 100644 2092a22a 1b6a54f3 M glibc-fedora.patch -:100644 100644 b2fa86be 327cefa2 M glibc.spec -:100644 100644 1c282bd5 2be3a7a6 M sources +:100644 100644 615dfbb 6f486d4 M .cvsignore +:100644 100644 2092a22 1b6a54f M glibc-fedora.patch +:100644 100644 b2fa86b 327cefa M glibc.spec +:100644 100644 1c282bd 2be3a7a M sources commit 1803713c8ce506ad176e8bd77625059ec4276a55 Author: Jakub Jelinek @@ -29724,9 +30858,9 @@ CommitDate: Mon May 30 10:02:23 2005 +0000 auto-import glibc-2.3.5-10 on branch devel from glibc-2.3.5-10.src.rpm -:100644 100644 5f110ad3 2092a22a M glibc-fedora.patch -:100644 100644 21bc5c61 b2fa86be M glibc.spec -:100644 100644 2b63493e 1c282bd5 M sources +:100644 100644 5f110ad 2092a22 M glibc-fedora.patch +:100644 100644 21bc5c6 b2fa86b M glibc.spec +:100644 100644 2b63493 1c282bd M sources commit 3fd119196fc05c9cf7fa07646c00b35780f207ab Author: Jakub Jelinek @@ -29736,10 +30870,10 @@ CommitDate: Tue May 24 16:58:02 2005 +0000 auto-import glibc-2.3.5-9 on branch devel from glibc-2.3.5-9.src.rpm -:100644 100644 3651b844 615dfbbf M .cvsignore -:100644 100644 d7804f75 5f110ad3 M glibc-fedora.patch -:100644 100644 c3d996f3 21bc5c61 M glibc.spec -:100644 100644 1ffd8c22 2b63493e M sources +:100644 100644 3651b84 615dfbb M .cvsignore +:100644 100644 d7804f7 5f110ad M glibc-fedora.patch +:100644 100644 c3d996f 21bc5c6 M glibc.spec +:100644 100644 1ffd8c2 2b63493 M sources commit 11b589d5c99c3bb665286549c97b77b4f0fe6c4f Author: Jakub Jelinek @@ -29749,9 +30883,9 @@ CommitDate: Mon May 23 18:09:03 2005 +0000 2.3.5-8 -:100644 100644 b742dbc9 d7804f75 M glibc-fedora.patch -:100644 100644 99651433 c3d996f3 M glibc.spec -:100644 100644 b06fdb4d 1ffd8c22 M sources +:100644 100644 b742dbc d7804f7 M glibc-fedora.patch +:100644 100644 9965143 c3d996f M glibc.spec +:100644 100644 b06fdb4 1ffd8c2 M sources commit 102ad46987791b5aaab706cf638f5a416f4d32a0 Author: Jakub Jelinek @@ -29761,10 +30895,10 @@ CommitDate: Mon May 23 15:24:21 2005 +0000 auto-import glibc-2.3.5-8 on branch devel from glibc-2.3.5-8.src.rpm -:100644 100644 0d2235a6 3651b844 M .cvsignore -:100644 100644 afa21dd9 b742dbc9 M glibc-fedora.patch -:100644 100644 ba9adb5a 99651433 M glibc.spec -:100644 100644 1d774dfe b06fdb4d M sources +:100644 100644 0d2235a 3651b84 M .cvsignore +:100644 100644 afa21dd b742dbc M glibc-fedora.patch +:100644 100644 ba9adb5 9965143 M glibc.spec +:100644 100644 1d774df b06fdb4 M sources commit f00c809b1db967b13d49156ece796ecf0ed1f8f6 Author: Jakub Jelinek @@ -29774,10 +30908,10 @@ CommitDate: Fri May 20 10:32:46 2005 +0000 auto-import glibc-2.3.5-7 on branch devel from glibc-2.3.5-7.src.rpm -:100644 100644 0682b474 0d2235a6 M .cvsignore -:100644 100644 3d1cbb9c afa21dd9 M glibc-fedora.patch -:100644 100644 1a061590 ba9adb5a M glibc.spec -:100644 100644 aca96b51 1d774dfe M sources +:100644 100644 0682b47 0d2235a M .cvsignore +:100644 100644 3d1cbb9 afa21dd M glibc-fedora.patch +:100644 100644 1a06159 ba9adb5 M glibc.spec +:100644 100644 aca96b5 1d774df M sources commit 1c9570f3b708180121f085efeb712f229c192036 Author: Jakub Jelinek @@ -29787,7 +30921,7 @@ CommitDate: Wed May 4 19:04:18 2005 +0000 2.3.5-6 -:100644 100644 21ca32cd 1a061590 M glibc.spec +:100644 100644 21ca32c 1a06159 M glibc.spec commit 96892c8405a3c03db7b6828b494a261bd84e96fd Author: Jakub Jelinek @@ -29797,10 +30931,10 @@ CommitDate: Wed May 4 18:53:32 2005 +0000 auto-import glibc-2.3.5-6 on branch devel from glibc-2.3.5-6.src.rpm -:100644 100644 367bec27 0682b474 M .cvsignore -:100644 100644 7ee2754e 3d1cbb9c M glibc-fedora.patch -:100644 100644 3c6662fa 21ca32cd M glibc.spec -:100644 100644 f4a7225a aca96b51 M sources +:100644 100644 367bec2 0682b47 M .cvsignore +:100644 100644 7ee2754 3d1cbb9 M glibc-fedora.patch +:100644 100644 3c6662f 21ca32c M glibc.spec +:100644 100644 f4a7225 aca96b5 M sources commit afd017c96126bef261fccf093e61b66dac9d0797 Author: Jakub Jelinek @@ -29810,10 +30944,10 @@ CommitDate: Tue May 3 10:14:26 2005 +0000 auto-import glibc-2.3.5-5 on branch devel from glibc-2.3.5-5.src.rpm -:100644 100644 a2fc35bd 367bec27 M .cvsignore -:100644 100644 925f0d9f 7ee2754e M glibc-fedora.patch -:100644 100644 fcae8fe2 3c6662fa M glibc.spec -:100644 100644 1074d340 f4a7225a M sources +:100644 100644 a2fc35b 367bec2 M .cvsignore +:100644 100644 925f0d9 7ee2754 M glibc-fedora.patch +:100644 100644 fcae8fe 3c6662f M glibc.spec +:100644 100644 1074d34 f4a7225 M sources commit 5869ee1726adbc0b18b780bff970c9b044eb073e Author: Jakub Jelinek @@ -29823,10 +30957,10 @@ CommitDate: Thu Apr 28 09:50:59 2005 +0000 auto-import glibc-2.3.5-4 on branch devel from glibc-2.3.5-4.src.rpm -:100644 100644 1468f545 a2fc35bd M .cvsignore -:100644 100644 921619b4 925f0d9f M glibc-fedora.patch -:100644 100644 7223ab78 fcae8fe2 M glibc.spec -:100644 100644 fd164a6e 1074d340 M sources +:100644 100644 1468f54 a2fc35b M .cvsignore +:100644 100644 921619b 925f0d9 M glibc-fedora.patch +:100644 100644 7223ab7 fcae8fe M glibc.spec +:100644 100644 fd164a6 1074d34 M sources commit 7ee79946457805f86e5a88f526f37a3733f7c933 Author: Jakub Jelinek @@ -29836,10 +30970,10 @@ CommitDate: Wed Apr 27 20:09:52 2005 +0000 auto-import glibc-2.3.5-3 on branch devel from glibc-2.3.5-3.src.rpm -:100644 100644 a57f6067 1468f545 M .cvsignore -:100644 100644 c02d2859 921619b4 M glibc-fedora.patch -:100644 100644 53207d16 7223ab78 M glibc.spec -:100644 100644 9d09a8cb fd164a6e M sources +:100644 100644 a57f606 1468f54 M .cvsignore +:100644 100644 c02d285 921619b M glibc-fedora.patch +:100644 100644 53207d1 7223ab7 M glibc.spec +:100644 100644 9d09a8c fd164a6 M sources commit 9b11b7894709b040aa33b0c4759081f566865100 Author: Jakub Jelinek @@ -29849,7 +30983,7 @@ CommitDate: Wed Apr 27 13:51:37 2005 +0000 2.3.5-2 -:100644 100644 427331c0 c02d2859 M glibc-fedora.patch +:100644 100644 427331c c02d285 M glibc-fedora.patch commit d4f6361c18d48b76792ec4967238b997e2fca075 Author: Jakub Jelinek @@ -29859,7 +30993,7 @@ CommitDate: Wed Apr 27 13:20:28 2005 +0000 2.3.5-2 -:100644 100644 149227ba 427331c0 M glibc-fedora.patch +:100644 100644 149227b 427331c M glibc-fedora.patch commit 82511e5f80f26f287272ce0105ae21ca0ba89ec1 Author: Jakub Jelinek @@ -29869,7 +31003,7 @@ CommitDate: Wed Apr 27 12:53:38 2005 +0000 2.3.5-2 -:100644 100644 78748e93 149227ba M glibc-fedora.patch +:100644 100644 78748e9 149227b M glibc-fedora.patch commit a9d8ca8272da17b7ee0e59af90bfef546771e624 Author: Jakub Jelinek @@ -29879,10 +31013,10 @@ CommitDate: Wed Apr 27 12:26:45 2005 +0000 auto-import glibc-2.3.5-2 on branch devel from glibc-2.3.5-2.src.rpm -:100644 100644 9ad3ab60 a57f6067 M .cvsignore -:100644 100644 b3bb6631 78748e93 M glibc-fedora.patch -:100644 100644 c10a89d1 53207d16 M glibc.spec -:100644 100644 73ca7f44 9d09a8cb M sources +:100644 100644 9ad3ab6 a57f606 M .cvsignore +:100644 100644 b3bb663 78748e9 M glibc-fedora.patch +:100644 100644 c10a89d 53207d1 M glibc.spec +:100644 100644 73ca7f4 9d09a8c M sources commit 0a19918c48de7b77f579be06378c7a4331aff3a8 Author: roland @@ -29892,10 +31026,10 @@ CommitDate: Fri Apr 15 09:58:24 2005 +0000 auto-import glibc-2.3.5-1 on branch devel from glibc-2.3.5-1.src.rpm -:100644 100644 4fe27779 9ad3ab60 M .cvsignore -:100644 100644 6909e052 b3bb6631 M glibc-fedora.patch -:100644 100644 4e0a0eb2 c10a89d1 M glibc.spec -:100644 100644 4f06374f 73ca7f44 M sources +:100644 100644 4fe2777 9ad3ab6 M .cvsignore +:100644 100644 6909e05 b3bb663 M glibc-fedora.patch +:100644 100644 4e0a0eb c10a89d M glibc.spec +:100644 100644 4f06374 73ca7f4 M sources commit a9a561553fc86dc139b8687d07ca4f14bb369c51 Author: Jakub Jelinek @@ -29905,10 +31039,10 @@ CommitDate: Tue Apr 5 22:14:00 2005 +0000 auto-import glibc-2.3.4-21 on branch devel from glibc-2.3.4-21.src.rpm -:100644 100644 007b46e5 4fe27779 M .cvsignore -:100644 100644 b24805cb 6909e052 M glibc-fedora.patch -:100644 100644 19e5abc9 4e0a0eb2 M glibc.spec -:100644 100644 a49c134d 4f06374f M sources +:100644 100644 007b46e 4fe2777 M .cvsignore +:100644 100644 b24805c 6909e05 M glibc-fedora.patch +:100644 100644 19e5abc 4e0a0eb M glibc.spec +:100644 100644 a49c134 4f06374 M sources commit d84155bf0ce48114ec7ecd70962de9f3b089e021 Author: Jakub Jelinek @@ -29918,7 +31052,7 @@ CommitDate: Mon Apr 4 22:18:34 2005 +0000 2.3.4-20 -:100644 100644 aa135c1c 19e5abc9 M glibc.spec +:100644 100644 aa135c1 19e5abc M glibc.spec commit ced11a0e35fc2b015bb3132a1fd8ccb26a40644d Author: Jakub Jelinek @@ -29928,8 +31062,8 @@ CommitDate: Mon Apr 4 19:51:39 2005 +0000 2.3.4-20 -:100644 100644 fbb3d662 b24805cb M glibc-fedora.patch -:100644 100644 d97231cc aa135c1c M glibc.spec +:100644 100644 fbb3d66 b24805c M glibc-fedora.patch +:100644 100644 d97231c aa135c1 M glibc.spec commit a2deec0522be348bac963c07b7995bc241f21a90 Author: Jakub Jelinek @@ -29939,7 +31073,7 @@ CommitDate: Sat Apr 2 11:17:47 2005 +0000 2.3.4-19 -:100644 100644 d7d79d16 d97231cc M glibc.spec +:100644 100644 d7d79d1 d97231c M glibc.spec commit adfd9b81dd6b38c7b039423513bdc70993c49fe4 Author: Jakub Jelinek @@ -29949,7 +31083,7 @@ CommitDate: Sat Apr 2 11:13:35 2005 +0000 2.3.4-19 -:100644 100644 ac6854b2 d7d79d16 M glibc.spec +:100644 100644 ac6854b d7d79d1 M glibc.spec commit b9e65a8e5be41e35da3e7dbcee8717b47f30c562 Author: Jakub Jelinek @@ -29959,7 +31093,7 @@ CommitDate: Fri Apr 1 23:36:57 2005 +0000 2.3.4-19 -:100644 100644 aa870a28 ac6854b2 M glibc.spec +:100644 100644 aa870a2 ac6854b M glibc.spec commit 619faf4e2671ce3a751f83ad70796d776e8c2b90 Author: Jakub Jelinek @@ -29969,7 +31103,7 @@ CommitDate: Fri Apr 1 23:13:25 2005 +0000 2.3.4-19 -:100644 100644 59819be0 aa870a28 M glibc.spec +:100644 100644 59819be aa870a2 M glibc.spec commit 4465bbcd3df379f7d25fad196160bd43ec0d92ae Author: Jakub Jelinek @@ -29979,10 +31113,10 @@ CommitDate: Fri Apr 1 16:55:01 2005 +0000 auto-import glibc-2.3.4-19 on branch devel from glibc-2.3.4-19.src.rpm -:100644 100644 a744cf5e 007b46e5 M .cvsignore -:100644 100644 1d0994b1 fbb3d662 M glibc-fedora.patch -:100644 100644 2a1c787d 59819be0 M glibc.spec -:100644 100644 c2bf21da a49c134d M sources +:100644 100644 a744cf5 007b46e M .cvsignore +:100644 100644 1d0994b fbb3d66 M glibc-fedora.patch +:100644 100644 2a1c787 59819be M glibc.spec +:100644 100644 c2bf21d a49c134 M sources commit 382a296001a6f2490468dd808ad9bd46249f3e6e Author: Jakub Jelinek @@ -29992,9 +31126,9 @@ CommitDate: Fri Mar 25 12:20:11 2005 +0000 auto-import glibc-2.3.4-18 on branch devel from glibc-2.3.4-18.src.rpm -:100644 100644 e69b3959 1d0994b1 M glibc-fedora.patch -:100644 100644 51ffad22 2a1c787d M glibc.spec -:100644 100644 3e3dade6 c2bf21da M sources +:100644 100644 e69b395 1d0994b M glibc-fedora.patch +:100644 100644 51ffad2 2a1c787 M glibc.spec +:100644 100644 3e3dade c2bf21d M sources commit a5475cb9242512613dd81664172fcb595b83d37a Author: Jakub Jelinek @@ -30004,7 +31138,7 @@ CommitDate: Fri Mar 25 08:31:15 2005 +0000 Fix wcstol and strtol with new GCC. -:100644 100644 8626f2d2 e69b3959 M glibc-fedora.patch +:100644 100644 8626f2d e69b395 M glibc-fedora.patch commit d04ad27e565774089eb299a9e67113bc5e3a4ebb Author: Jakub Jelinek @@ -30014,10 +31148,10 @@ CommitDate: Thu Mar 24 09:08:31 2005 +0000 auto-import glibc-2.3.4-17 on branch devel from glibc-2.3.4-17.src.rpm -:100644 100644 f19de63f a744cf5e M .cvsignore -:100644 100644 c756eae5 8626f2d2 M glibc-fedora.patch -:100644 100644 ec2d1be2 51ffad22 M glibc.spec -:100644 100644 5b258a7f 3e3dade6 M sources +:100644 100644 f19de63 a744cf5 M .cvsignore +:100644 100644 c756eae 8626f2d M glibc-fedora.patch +:100644 100644 ec2d1be 51ffad2 M glibc.spec +:100644 100644 5b258a7 3e3dade M sources commit a67e3da90770c5102ca03640a361b624717707b3 Author: Jakub Jelinek @@ -30027,7 +31161,7 @@ CommitDate: Sun Mar 20 07:06:13 2005 +0000 2.3.4-16 -:100644 100644 2ce9ad16 ec2d1be2 M glibc.spec +:100644 100644 2ce9ad1 ec2d1be M glibc.spec commit 8d6dc3baf57a3d267769e146b46244a809bbc893 Author: Jakub Jelinek @@ -30037,10 +31171,10 @@ CommitDate: Sat Mar 19 22:00:27 2005 +0000 auto-import glibc-2.3.4-15 on branch devel from glibc-2.3.4-15.src.rpm -:100644 100644 74b6c810 f19de63f M .cvsignore -:100644 100644 5bf1e4d9 c756eae5 M glibc-fedora.patch -:100644 100644 8c799477 2ce9ad16 M glibc.spec -:100644 100644 4854449a 5b258a7f M sources +:100644 100644 74b6c81 f19de63 M .cvsignore +:100644 100644 5bf1e4d c756eae M glibc-fedora.patch +:100644 100644 8c79947 2ce9ad1 M glibc.spec +:100644 100644 4854449 5b258a7 M sources commit 5de4c62391633e92fd8640dd288ffcd515a4b447 Author: roland @@ -30050,8 +31184,8 @@ CommitDate: Sun Mar 6 23:47:00 2005 +0000 auto-import glibc-2.3.4-14 on branch devel from glibc-2.3.4-14.src.rpm -:100644 100644 35804a2e 5bf1e4d9 M glibc-fedora.patch -:100644 100644 1f5457b7 8c799477 M glibc.spec +:100644 100644 35804a2 5bf1e4d M glibc-fedora.patch +:100644 100644 1f5457b 8c79947 M glibc.spec commit 0c99a24061577ea491c8420dfaf36b2c229ad250 Author: roland @@ -30061,9 +31195,9 @@ CommitDate: Sun Mar 6 21:04:43 2005 +0000 auto-import glibc-2.3.4-13 on branch devel from glibc-2.3.4-13.src.rpm -:100644 100644 4c95fb57 35804a2e M glibc-fedora.patch -:100644 100644 fc5b9202 1f5457b7 M glibc.spec -:100644 100644 a723d6f0 4854449a M sources +:100644 100644 4c95fb5 35804a2 M glibc-fedora.patch +:100644 100644 fc5b920 1f5457b M glibc.spec +:100644 100644 a723d6f 4854449 M sources commit ff798471238935f07a95d6adebc61ff8cf9498ef Author: Jakub Jelinek @@ -30073,9 +31207,9 @@ CommitDate: Sat Mar 5 14:14:54 2005 +0000 auto-import glibc-2.3.4-12 on branch devel from glibc-2.3.4-12.src.rpm -:100644 100644 45d08f9a 4c95fb57 M glibc-fedora.patch -:100644 100644 b5c1a3bd fc5b9202 M glibc.spec -:100644 100644 51dbc5a6 a723d6f0 M sources +:100644 100644 45d08f9 4c95fb5 M glibc-fedora.patch +:100644 100644 b5c1a3b fc5b920 M glibc.spec +:100644 100644 51dbc5a a723d6f M sources commit 155304c64077fc06876d87a462a3b13afb6dea49 Author: Jakub Jelinek @@ -30085,7 +31219,7 @@ CommitDate: Sat Mar 5 00:23:38 2005 +0000 2.3.4-11 -:100644 100644 93abdc29 45d08f9a M glibc-fedora.patch +:100644 100644 93abdc2 45d08f9 M glibc-fedora.patch commit 1fec258384d14a8ef063cb9a53eebfc6ac1a47a0 Author: Jakub Jelinek @@ -30095,7 +31229,7 @@ CommitDate: Fri Mar 4 23:28:05 2005 +0000 2.3.4-11 -:100644 100644 6b6bd39f 93abdc29 M glibc-fedora.patch +:100644 100644 6b6bd39 93abdc2 M glibc-fedora.patch commit 28d2eaadf879398cec88535200491598574f0653 Author: Jakub Jelinek @@ -30105,7 +31239,7 @@ CommitDate: Fri Mar 4 19:28:16 2005 +0000 2.3.4-11 -:100644 100644 fec88649 6b6bd39f M glibc-fedora.patch +:100644 100644 fec8864 6b6bd39 M glibc-fedora.patch commit aa68137e2d84f111451803fae1bc3a13b453c14d Author: Jakub Jelinek @@ -30115,10 +31249,10 @@ CommitDate: Fri Mar 4 00:18:49 2005 +0000 auto-import glibc-2.3.4-11 on branch devel from glibc-2.3.4-11.src.rpm -:100644 100644 32bd9f5d 74b6c810 M .cvsignore -:100644 100644 2c2f3d3a fec88649 M glibc-fedora.patch -:100644 100644 56977a8a b5c1a3bd M glibc.spec -:100644 100644 8651cdc5 51dbc5a6 M sources +:100644 100644 32bd9f5 74b6c81 M .cvsignore +:100644 100644 2c2f3d3 fec8864 M glibc-fedora.patch +:100644 100644 56977a8 b5c1a3b M glibc.spec +:100644 100644 8651cdc 51dbc5a M sources commit 258b61751e0328039f915177416e526d45b0003f Author: Jakub Jelinek @@ -30128,7 +31262,7 @@ CommitDate: Sat Feb 12 11:48:25 2005 +0000 2.3.4-10 -:100644 100644 4cf6881c 56977a8a M glibc.spec +:100644 100644 4cf6881 56977a8 M glibc.spec commit efa0c2f7671fa45863859ae514ad54e54af0a720 Author: Jakub Jelinek @@ -30138,9 +31272,9 @@ CommitDate: Sat Feb 12 11:01:55 2005 +0000 auto-import glibc-2.3.4-10 on branch devel from glibc-2.3.4-10.src.rpm -:100644 100644 7ccfc2f1 2c2f3d3a M glibc-fedora.patch -:100644 100644 22c21096 4cf6881c M glibc.spec -:100644 100644 3b676e4a 8651cdc5 M sources +:100644 100644 7ccfc2f 2c2f3d3 M glibc-fedora.patch +:100644 100644 22c2109 4cf6881 M glibc.spec +:100644 100644 3b676e4 8651cdc M sources commit 54d12e3eef4032330e03f0f4bbedc9e1717c5ce4 Author: Jakub Jelinek @@ -30150,7 +31284,7 @@ CommitDate: Fri Feb 11 19:30:58 2005 +0000 2.3.4-9 -:100644 100644 793300c7 22c21096 M glibc.spec +:100644 100644 793300c 22c2109 M glibc.spec commit e023db3a7598099414bd7b2958b85726259111df Author: Jakub Jelinek @@ -30160,9 +31294,9 @@ CommitDate: Fri Feb 11 15:23:09 2005 +0000 2.3.4-9 -:100644 100644 755406d3 7ccfc2f1 M glibc-fedora.patch -:100644 100644 e0ef8364 793300c7 M glibc.spec -:100644 100644 071747e0 3b676e4a M sources +:100644 100644 755406d 7ccfc2f M glibc-fedora.patch +:100644 100644 e0ef836 793300c M glibc.spec +:100644 100644 071747e 3b676e4 M sources commit 271728ab7e9ba4438ae82daa1a26bb5777d1a43c Author: Jakub Jelinek @@ -30172,10 +31306,10 @@ CommitDate: Fri Feb 11 11:29:59 2005 +0000 auto-import glibc-2.3.4-9 on branch devel from glibc-2.3.4-9.src.rpm -:100644 100644 acb9860c 32bd9f5d M .cvsignore -:100644 100644 d4ee94a0 755406d3 M glibc-fedora.patch -:100644 100644 6be301cc e0ef8364 M glibc.spec -:100644 100644 589725a6 071747e0 M sources +:100644 100644 acb9860 32bd9f5 M .cvsignore +:100644 100644 d4ee94a 755406d M glibc-fedora.patch +:100644 100644 6be301c e0ef836 M glibc.spec +:100644 100644 589725a 071747e M sources commit b691459b9d2eb83f4c5c220bc00f0b09d375d4db Author: Jakub Jelinek @@ -30185,10 +31319,10 @@ CommitDate: Fri Feb 11 10:07:12 2005 +0000 auto-import glibc-2.3.4-8 on branch devel from glibc-2.3.4-8.src.rpm -:100644 100644 e9721f8d acb9860c M .cvsignore -:100644 100644 d03b960a d4ee94a0 M glibc-fedora.patch -:100644 100644 64879a9a 6be301cc M glibc.spec -:100644 100644 9015a5da 589725a6 M sources +:100644 100644 e9721f8 acb9860 M .cvsignore +:100644 100644 d03b960 d4ee94a M glibc-fedora.patch +:100644 100644 64879a9 6be301c M glibc.spec +:100644 100644 9015a5d 589725a M sources commit 1acd360444c179476d349850dd7dddbd35369898 Author: Jakub Jelinek @@ -30198,10 +31332,10 @@ CommitDate: Tue Feb 8 23:09:41 2005 +0000 auto-import glibc-2.3.4-7 on branch devel from glibc-2.3.4-7.src.rpm -:100644 100644 9d22ca53 e9721f8d M .cvsignore -:100644 100644 1a1f6583 d03b960a M glibc-fedora.patch -:100644 100644 5227a83d 64879a9a M glibc.spec -:100644 100644 941b2c75 9015a5da M sources +:100644 100644 9d22ca5 e9721f8 M .cvsignore +:100644 100644 1a1f658 d03b960 M glibc-fedora.patch +:100644 100644 5227a83 64879a9 M glibc.spec +:100644 100644 941b2c7 9015a5d M sources commit 3246028926fb4268f1c02d26412e9593560a1256 Author: Jakub Jelinek @@ -30211,7 +31345,7 @@ CommitDate: Tue Feb 8 14:19:56 2005 +0000 2.3.4-6 -:100644 100644 038b4982 5227a83d M glibc.spec +:100644 100644 038b498 5227a83 M glibc.spec commit 9ea18a709b7501cc207a04809eaee57072b856d1 Author: Jakub Jelinek @@ -30221,7 +31355,7 @@ CommitDate: Tue Feb 8 12:51:52 2005 +0000 2.3.4-6 -:100644 100644 9e8fed47 038b4982 M glibc.spec +:100644 100644 9e8fed4 038b498 M glibc.spec commit cc43692c0e5344f3c587636d69c53444937f8e28 Author: Jakub Jelinek @@ -30231,10 +31365,10 @@ CommitDate: Tue Feb 8 10:49:20 2005 +0000 auto-import glibc-2.3.4-6 on branch devel from glibc-2.3.4-6.src.rpm -:100644 100644 6794f045 9d22ca53 M .cvsignore -:100644 100644 6f41ae1c 1a1f6583 M glibc-fedora.patch -:100644 100644 31269e98 9e8fed47 M glibc.spec -:100644 100644 7e8b98c5 941b2c75 M sources +:100644 100644 6794f04 9d22ca5 M .cvsignore +:100644 100644 6f41ae1 1a1f658 M glibc-fedora.patch +:100644 100644 31269e9 9e8fed4 M glibc.spec +:100644 100644 7e8b98c 941b2c7 M sources commit b9a4ff0da44504dd03edb69aa45c12b6fed46db2 Author: Jakub Jelinek @@ -30244,10 +31378,10 @@ CommitDate: Thu Jan 6 22:47:44 2005 +0000 auto-import glibc-2.3.4-5 on branch devel from glibc-2.3.4-5.src.rpm -:100644 100644 91aa4343 6794f045 M .cvsignore -:100644 100644 5b1447d5 6f41ae1c M glibc-fedora.patch -:100644 100644 39440c86 31269e98 M glibc.spec -:100644 100644 68802a1a 7e8b98c5 M sources +:100644 100644 91aa434 6794f04 M .cvsignore +:100644 100644 5b1447d 6f41ae1 M glibc-fedora.patch +:100644 100644 39440c8 31269e9 M glibc.spec +:100644 100644 68802a1 7e8b98c M sources commit 5b49637891d2c657456e57382b4ec593cde42b24 Author: Jakub Jelinek @@ -30257,10 +31391,10 @@ CommitDate: Thu Jan 6 15:47:36 2005 +0000 auto-import glibc-2.3.4-4 on branch devel from glibc-2.3.4-4.src.rpm -:100644 100644 47a1307f 91aa4343 M .cvsignore -:100644 100644 9d9330c3 5b1447d5 M glibc-fedora.patch -:100644 100644 da1cf69f 39440c86 M glibc.spec -:100644 100644 f45fcc88 68802a1a M sources +:100644 100644 47a1307 91aa434 M .cvsignore +:100644 100644 9d9330c 5b1447d M glibc-fedora.patch +:100644 100644 da1cf69 39440c8 M glibc.spec +:100644 100644 f45fcc8 68802a1 M sources commit cae8344de5d4268de62fe6b69c6de9f1c494a44d Author: Jakub Jelinek @@ -30270,10 +31404,10 @@ CommitDate: Tue Dec 21 09:22:01 2004 +0000 auto-import glibc-2.3.4-3 on branch devel from glibc-2.3.4-3.src.rpm -:100644 100644 accd8e4f 47a1307f M .cvsignore -:100644 100644 1ab133a4 9d9330c3 M glibc-fedora.patch -:100644 100644 1595fc14 da1cf69f M glibc.spec -:100644 100644 b235d2c1 f45fcc88 M sources +:100644 100644 accd8e4 47a1307 M .cvsignore +:100644 100644 1ab133a 9d9330c M glibc-fedora.patch +:100644 100644 1595fc1 da1cf69 M glibc.spec +:100644 100644 b235d2c f45fcc8 M sources commit 83613a0af1294a4850057fb1c795fc0276fea5a1 Author: Jakub Jelinek @@ -30283,10 +31417,10 @@ CommitDate: Sat Dec 18 23:34:50 2004 +0000 auto-import glibc-2.3.3-99 on branch devel from glibc-2.3.3-99.src.rpm -:100644 100644 2eec0b2f accd8e4f M .cvsignore -:100644 100644 5a3054ce 1ab133a4 M glibc-fedora.patch -:100644 100644 edc901e1 1595fc14 M glibc.spec -:100644 100644 d8a5b5b3 b235d2c1 M sources +:100644 100644 2eec0b2 accd8e4 M .cvsignore +:100644 100644 5a3054c 1ab133a M glibc-fedora.patch +:100644 100644 edc901e 1595fc1 M glibc.spec +:100644 100644 d8a5b5b b235d2c M sources commit 6492fbc2b0f1b7b23c52d8c35726577e77be5572 Author: Jakub Jelinek @@ -30296,10 +31430,10 @@ CommitDate: Fri Dec 17 11:36:40 2004 +0000 auto-import glibc-2.3.3-97 on branch devel from glibc-2.3.3-97.src.rpm -:100644 100644 4399dff3 2eec0b2f M .cvsignore -:100644 100644 0ff022ad 5a3054ce M glibc-fedora.patch -:100644 100644 e5442677 edc901e1 M glibc.spec -:100644 100644 5247dade d8a5b5b3 M sources +:100644 100644 4399dff 2eec0b2 M .cvsignore +:100644 100644 0ff022a 5a3054c M glibc-fedora.patch +:100644 100644 e544267 edc901e M glibc.spec +:100644 100644 5247dad d8a5b5b M sources commit f08a267818c999dbaca7304f5b0d0aebed4b3613 Author: Jakub Jelinek @@ -30309,7 +31443,7 @@ CommitDate: Wed Dec 15 12:27:17 2004 +0000 2.3.3-93 -:100644 100644 7dbd6fc8 0ff022ad M glibc-fedora.patch +:100644 100644 7dbd6fc 0ff022a M glibc-fedora.patch commit b99305215fabfa79e91ecbd2b3eb967412c07674 Author: Jakub Jelinek @@ -30319,10 +31453,10 @@ CommitDate: Wed Dec 15 11:45:56 2004 +0000 auto-import glibc-2.3.3-93 on branch devel from glibc-2.3.3-93.src.rpm -:100644 100644 dc561059 4399dff3 M .cvsignore -:100644 100644 a35fc5cd 7dbd6fc8 M glibc-fedora.patch -:100644 100644 2c0ea7e1 e5442677 M glibc.spec -:100644 100644 e90d9a9e 5247dade M sources +:100644 100644 dc56105 4399dff M .cvsignore +:100644 100644 a35fc5c 7dbd6fc M glibc-fedora.patch +:100644 100644 2c0ea7e e544267 M glibc.spec +:100644 100644 e90d9a9 5247dad M sources commit 96343339ed9d37c701f6813b5c0e6fb078350192 Author: Jakub Jelinek @@ -30332,10 +31466,10 @@ CommitDate: Tue Dec 14 12:01:31 2004 +0000 auto-import glibc-2.3.3-92 on branch devel from glibc-2.3.3-92.src.rpm -:100644 100644 e0384fe6 dc561059 M .cvsignore -:100644 100644 f9ffd06b a35fc5cd M glibc-fedora.patch -:100644 100644 663f2b49 2c0ea7e1 M glibc.spec -:100644 100644 97688071 e90d9a9e M sources +:100644 100644 e0384fe dc56105 M .cvsignore +:100644 100644 f9ffd06 a35fc5c M glibc-fedora.patch +:100644 100644 663f2b4 2c0ea7e M glibc.spec +:100644 100644 9768807 e90d9a9 M sources commit 08ffd2e675b55ee41fbf62d5fadbffc945c315e4 Author: Jakub Jelinek @@ -30345,10 +31479,10 @@ CommitDate: Tue Dec 14 00:07:47 2004 +0000 auto-import glibc-2.3.3-91 on branch devel from glibc-2.3.3-91.src.rpm -:100644 100644 d5b9b31b e0384fe6 M .cvsignore -:100644 100644 400bccd8 f9ffd06b M glibc-fedora.patch -:100644 100644 765370a3 663f2b49 M glibc.spec -:100644 100644 3f242105 97688071 M sources +:100644 100644 d5b9b31 e0384fe M .cvsignore +:100644 100644 400bccd f9ffd06 M glibc-fedora.patch +:100644 100644 765370a 663f2b4 M glibc.spec +:100644 100644 3f24210 9768807 M sources commit d0685fc7fa88480f2e365b7718bba721f5655045 Author: Jakub Jelinek @@ -30359,7 +31493,7 @@ CommitDate: Fri Dec 10 09:22:15 2004 +0000 auto-import glibc-2.3.3-90.EL4 on branch devel from glibc-2.3.3-90.EL4.src.rpm -:100644 100644 9f666e92 765370a3 M glibc.spec +:100644 100644 9f666e9 765370a M glibc.spec commit 55a4f67377b7de012c7a3c1c48819014385dedee Author: Jakub Jelinek @@ -30369,7 +31503,7 @@ CommitDate: Fri Dec 10 09:12:18 2004 +0000 2.3.3-90 -:100644 100644 95a59ea9 400bccd8 M glibc-fedora.patch +:100644 100644 95a59ea 400bccd M glibc-fedora.patch commit fed967a9be39a2dd8529246a99f63d609ceb6894 Author: Jakub Jelinek @@ -30379,10 +31513,10 @@ CommitDate: Fri Dec 10 07:02:45 2004 +0000 auto-import glibc-2.3.3-90 on branch devel from glibc-2.3.3-90.src.rpm -:100644 100644 73519dc5 d5b9b31b M .cvsignore -:100644 100644 c4f9465f 95a59ea9 M glibc-fedora.patch -:100644 100644 e4f4245c 9f666e92 M glibc.spec -:100644 100644 43c47fe3 3f242105 M sources +:100644 100644 73519dc d5b9b31 M .cvsignore +:100644 100644 c4f9465 95a59ea M glibc-fedora.patch +:100644 100644 e4f4245 9f666e9 M glibc.spec +:100644 100644 43c47fe 3f24210 M sources commit 61d52d11e863d537d124c2e79c25ff74119e8c75 Author: Jakub Jelinek @@ -30392,10 +31526,10 @@ CommitDate: Wed Dec 8 11:39:39 2004 +0000 auto-import glibc-2.3.3-89 on branch devel from glibc-2.3.3-89.src.rpm -:100644 100644 3cb85d24 73519dc5 M .cvsignore -:100644 100644 3e57bddf c4f9465f M glibc-fedora.patch -:100644 100644 2f470a7c e4f4245c M glibc.spec -:100644 100644 54625fbd 43c47fe3 M sources +:100644 100644 3cb85d2 73519dc M .cvsignore +:100644 100644 3e57bdd c4f9465 M glibc-fedora.patch +:100644 100644 2f470a7 e4f4245 M glibc.spec +:100644 100644 54625fb 43c47fe M sources commit d0f23188c9e4ecfbd416dbcb95ce995ca5da954f Author: Jakub Jelinek @@ -30405,7 +31539,7 @@ CommitDate: Tue Dec 7 16:27:44 2004 +0000 2.3.3-88 -:100644 100644 8f943ba5 3e57bddf M glibc-fedora.patch +:100644 100644 8f943ba 3e57bdd M glibc-fedora.patch commit ef031de359879786ba38183ea651497a4a635b5b Author: Jakub Jelinek @@ -30415,10 +31549,10 @@ CommitDate: Tue Dec 7 15:19:04 2004 +0000 auto-import glibc-2.3.3-88 on branch devel from glibc-2.3.3-88.src.rpm -:100644 100644 3698e687 3cb85d24 M .cvsignore -:100644 100644 941aee11 8f943ba5 M glibc-fedora.patch -:100644 100644 b8d27e27 2f470a7c M glibc.spec -:100644 100644 fe1f30fc 54625fbd M sources +:100644 100644 3698e68 3cb85d2 M .cvsignore +:100644 100644 941aee1 8f943ba M glibc-fedora.patch +:100644 100644 b8d27e2 2f470a7 M glibc.spec +:100644 100644 fe1f30f 54625fb M sources commit 99d596a1feb06c324f51bb823d6732fa017787bc Author: Jakub Jelinek @@ -30428,10 +31562,10 @@ CommitDate: Fri Dec 3 12:38:56 2004 +0000 auto-import glibc-2.3.3-87 on branch devel from glibc-2.3.3-87.src.rpm -:100644 100644 928be021 3698e687 M .cvsignore -:100644 100644 fbc9c558 941aee11 M glibc-fedora.patch -:100644 100644 08a59498 b8d27e27 M glibc.spec -:100644 100644 eb36d041 fe1f30fc M sources +:100644 100644 928be02 3698e68 M .cvsignore +:100644 100644 fbc9c55 941aee1 M glibc-fedora.patch +:100644 100644 08a5949 b8d27e2 M glibc.spec +:100644 100644 eb36d04 fe1f30f M sources commit 38c8be067cee6c11014c2ad2f8a88a5216ee137a Author: Jakub Jelinek @@ -30441,10 +31575,10 @@ CommitDate: Fri Nov 26 14:08:00 2004 +0000 auto-import glibc-2.3.3-85 on branch devel from glibc-2.3.3-85.src.rpm -:100644 100644 0f47cc0d 928be021 M .cvsignore -:100644 100644 e6e0ce5c fbc9c558 M glibc-fedora.patch -:100644 100644 4b75648d 08a59498 M glibc.spec -:100644 100644 57822a37 eb36d041 M sources +:100644 100644 0f47cc0 928be02 M .cvsignore +:100644 100644 e6e0ce5 fbc9c55 M glibc-fedora.patch +:100644 100644 4b75648 08a5949 M glibc.spec +:100644 100644 57822a3 eb36d04 M sources commit 4f3e9bcdfecd9b3f97e055e51565430650a22611 Author: Jakub Jelinek @@ -30454,10 +31588,10 @@ CommitDate: Wed Nov 24 08:45:39 2004 +0000 auto-import glibc-2.3.3-84 on branch devel from glibc-2.3.3-84.src.rpm -:100644 100644 a1e20b51 0f47cc0d M .cvsignore -:100644 100644 3216ca40 e6e0ce5c M glibc-fedora.patch -:100644 100644 9afce732 4b75648d M glibc.spec -:100644 100644 4b963ffe 57822a37 M sources +:100644 100644 a1e20b5 0f47cc0 M .cvsignore +:100644 100644 3216ca4 e6e0ce5 M glibc-fedora.patch +:100644 100644 9afce73 4b75648 M glibc.spec +:100644 100644 4b963ff 57822a3 M sources commit 83a138efa0f6480d8f6f2295c03b210a2950ff42 Author: Jakub Jelinek @@ -30467,10 +31601,10 @@ CommitDate: Sat Nov 20 10:12:53 2004 +0000 auto-import glibc-2.3.3-82 on branch devel from glibc-2.3.3-82.src.rpm -:100644 100644 802fd6b2 a1e20b51 M .cvsignore -:100644 100644 c74fb4de 3216ca40 M glibc-fedora.patch -:100644 100644 74358801 9afce732 M glibc.spec -:100644 100644 917c5f2e 4b963ffe M sources +:100644 100644 802fd6b a1e20b5 M .cvsignore +:100644 100644 c74fb4d 3216ca4 M glibc-fedora.patch +:100644 100644 7435880 9afce73 M glibc.spec +:100644 100644 917c5f2 4b963ff M sources commit 36d99a3d2a730afd06adadfeb6d5ebdc5a0136e9 Author: Jakub Jelinek @@ -30480,8 +31614,8 @@ CommitDate: Fri Nov 19 06:46:12 2004 +0000 auto-import glibc-2.3.3-81 on branch devel from glibc-2.3.3-81.src.rpm -:100644 100644 fb26514d c74fb4de M glibc-fedora.patch -:100644 100644 47098bef 74358801 M glibc.spec +:100644 100644 fb26514 c74fb4d M glibc-fedora.patch +:100644 100644 47098be 7435880 M glibc.spec commit 76b3fa33768affb8c6cbe16a706e2141908ed230 Author: Jakub Jelinek @@ -30491,10 +31625,10 @@ CommitDate: Fri Nov 19 00:41:25 2004 +0000 auto-import glibc-2.3.3-80 on branch devel from glibc-2.3.3-80.src.rpm -:100644 100644 60dd7816 802fd6b2 M .cvsignore -:100644 100644 0ab8afb2 fb26514d M glibc-fedora.patch -:100644 100644 36efb464 47098bef M glibc.spec -:100644 100644 05b3756d 917c5f2e M sources +:100644 100644 60dd781 802fd6b M .cvsignore +:100644 100644 0ab8afb fb26514 M glibc-fedora.patch +:100644 100644 36efb46 47098be M glibc.spec +:100644 100644 05b3756 917c5f2 M sources commit 45fdec0ef89ff2c66ba3c0b0368063d938c89a28 Author: Jakub Jelinek @@ -30504,10 +31638,10 @@ CommitDate: Tue Nov 16 10:39:21 2004 +0000 auto-import glibc-2.3.3-79 on branch devel from glibc-2.3.3-79.src.rpm -:100644 100644 b8197093 60dd7816 M .cvsignore -:100644 100644 41f704a7 0ab8afb2 M glibc-fedora.patch -:100644 100644 6263e7f1 36efb464 M glibc.spec -:100644 100644 ab17e962 05b3756d M sources +:100644 100644 b819709 60dd781 M .cvsignore +:100644 100644 41f704a 0ab8afb M glibc-fedora.patch +:100644 100644 6263e7f 36efb46 M glibc.spec +:100644 100644 ab17e96 05b3756 M sources commit ba41ef5365a2e9cb4e8d7beafede0694ae189214 Author: Jakub Jelinek @@ -30517,7 +31651,7 @@ CommitDate: Mon Nov 15 10:48:51 2004 +0000 2.3.3-78 -:100644 100644 684199ea 41f704a7 M glibc-fedora.patch +:100644 100644 684199e 41f704a M glibc-fedora.patch commit b74a61038603452555b26741b93431f98893629d Author: Jakub Jelinek @@ -30527,10 +31661,10 @@ CommitDate: Mon Nov 15 10:37:39 2004 +0000 auto-import glibc-2.3.3-78 on branch devel from glibc-2.3.3-78.src.rpm -:100644 100644 94efa619 b8197093 M .cvsignore -:100644 100644 63ddb633 684199ea M glibc-fedora.patch -:100644 100644 81c7ecc5 6263e7f1 M glibc.spec -:100644 100644 ac77e0c7 ab17e962 M sources +:100644 100644 94efa61 b819709 M .cvsignore +:100644 100644 63ddb63 684199e M glibc-fedora.patch +:100644 100644 81c7ecc 6263e7f M glibc.spec +:100644 100644 ac77e0c ab17e96 M sources commit f67657a8381b7d23f6bb005effeca720cee4581d Author: Jakub Jelinek @@ -30540,7 +31674,7 @@ CommitDate: Fri Nov 12 18:43:26 2004 +0000 2.3.3-77 -:100644 100644 880877b2 63ddb633 M glibc-fedora.patch +:100644 100644 880877b 63ddb63 M glibc-fedora.patch commit 716ff1cd257fdd72bf5264e96b32cdc0390d54bd Author: Jakub Jelinek @@ -30550,10 +31684,10 @@ CommitDate: Fri Nov 12 18:11:26 2004 +0000 auto-import glibc-2.3.3-77 on branch devel from glibc-2.3.3-77.src.rpm -:100644 100644 fc812dc8 94efa619 M .cvsignore -:100644 100644 5b9904ff 880877b2 M glibc-fedora.patch -:100644 100644 bbd828a7 81c7ecc5 M glibc.spec -:100644 100644 8cb847a3 ac77e0c7 M sources +:100644 100644 fc812dc 94efa61 M .cvsignore +:100644 100644 5b9904f 880877b M glibc-fedora.patch +:100644 100644 bbd828a 81c7ecc M glibc.spec +:100644 100644 8cb847a ac77e0c M sources commit 217261e7355076c2a80e8e88bcd7329fea95e9be Author: Jakub Jelinek @@ -30563,10 +31697,10 @@ CommitDate: Wed Nov 10 10:13:44 2004 +0000 auto-import glibc-2.3.3-76 on branch devel from glibc-2.3.3-76.src.rpm -:100644 100644 14342b28 fc812dc8 M .cvsignore -:100644 100644 b90dc3da 5b9904ff M glibc-fedora.patch -:100644 100644 8febd3d6 bbd828a7 M glibc.spec -:100644 100644 5818dcc8 8cb847a3 M sources +:100644 100644 14342b2 fc812dc M .cvsignore +:100644 100644 b90dc3d 5b9904f M glibc-fedora.patch +:100644 100644 8febd3d bbd828a M glibc.spec +:100644 100644 5818dcc 8cb847a M sources commit 2254f537a73ca67acc88c28c754df19ade0b1927 Author: Jakub Jelinek @@ -30576,7 +31710,7 @@ CommitDate: Tue Nov 2 17:33:31 2004 +0000 2.3.3-75 -:100644 100644 b8a87494 b90dc3da M glibc-fedora.patch +:100644 100644 b8a8749 b90dc3d M glibc-fedora.patch commit 67c2a6a3808a20d4300d030515cfdb693247c8f9 Author: Jakub Jelinek @@ -30586,10 +31720,10 @@ CommitDate: Tue Nov 2 14:03:10 2004 +0000 auto-import glibc-2.3.3-75 on branch devel from glibc-2.3.3-75.src.rpm -:100644 100644 9dd9d465 14342b28 M .cvsignore -:100644 100644 aa9622d5 b8a87494 M glibc-fedora.patch -:100644 100644 bc26ce8b 8febd3d6 M glibc.spec -:100644 100644 670d8620 5818dcc8 M sources +:100644 100644 9dd9d46 14342b2 M .cvsignore +:100644 100644 aa9622d b8a8749 M glibc-fedora.patch +:100644 100644 bc26ce8 8febd3d M glibc.spec +:100644 100644 670d862 5818dcc M sources commit 03d052509c1b4af8990dc3ab0e598448cabdd9c1 Author: Jakub Jelinek @@ -30599,8 +31733,8 @@ CommitDate: Thu Oct 21 11:56:17 2004 +0000 auto-import glibc-2.3.3-73 on branch devel from glibc-2.3.3-73.src.rpm -:100644 100644 3708bb3d aa9622d5 M glibc-fedora.patch -:100644 100644 3eac487b bc26ce8b M glibc.spec +:100644 100644 3708bb3 aa9622d M glibc-fedora.patch +:100644 100644 3eac487 bc26ce8 M glibc.spec commit 6bd344f17f40c612b2744617f132a09fa55a00ae Author: Jakub Jelinek @@ -30610,10 +31744,10 @@ CommitDate: Thu Oct 21 08:49:09 2004 +0000 auto-import glibc-2.3.3-72 on branch devel from glibc-2.3.3-72.src.rpm -:100644 100644 cd8f010f 9dd9d465 M .cvsignore -:100644 100644 880edf6e 3708bb3d M glibc-fedora.patch -:100644 100644 e97d5d76 3eac487b M glibc.spec -:100644 100644 82512b8b 670d8620 M sources +:100644 100644 cd8f010 9dd9d46 M .cvsignore +:100644 100644 880edf6 3708bb3 M glibc-fedora.patch +:100644 100644 e97d5d7 3eac487 M glibc.spec +:100644 100644 82512b8 670d862 M sources commit af0b5d4445588d3b9de462a27f2f3b1418a18734 Author: Jakub Jelinek @@ -30623,7 +31757,7 @@ CommitDate: Wed Oct 20 13:41:43 2004 +0000 2.3.3-71 -:100644 100644 f4af1e7b e97d5d76 M glibc.spec +:100644 100644 f4af1e7 e97d5d7 M glibc.spec commit 8660b873a822d9fc7d85312aad626b66faf1a7bd Author: Jakub Jelinek @@ -30633,10 +31767,10 @@ CommitDate: Wed Oct 20 11:45:54 2004 +0000 auto-import glibc-2.3.3-71 on branch devel from glibc-2.3.3-71.src.rpm -:100644 100644 f8400ab1 cd8f010f M .cvsignore -:100644 100644 a1938c67 880edf6e M glibc-fedora.patch -:100644 100644 393674f4 f4af1e7b M glibc.spec -:100644 100644 04166005 82512b8b M sources +:100644 100644 f8400ab cd8f010 M .cvsignore +:100644 100644 a1938c6 880edf6 M glibc-fedora.patch +:100644 100644 393674f f4af1e7 M glibc.spec +:100644 100644 0416600 82512b8 M sources commit cfeb07d562eb72ce1de828c7e2771536b6be924e Author: Jakub Jelinek @@ -30646,9 +31780,9 @@ CommitDate: Mon Oct 18 23:44:24 2004 +0000 auto-import glibc-2.3.3-70 on branch devel from glibc-2.3.3-70.src.rpm -:100644 100644 6bd6badb a1938c67 M glibc-fedora.patch -:100644 100644 f903bcbb 393674f4 M glibc.spec -:100644 100644 78151c61 04166005 M sources +:100644 100644 6bd6bad a1938c6 M glibc-fedora.patch +:100644 100644 f903bcb 393674f M glibc.spec +:100644 100644 78151c6 0416600 M sources commit 468791b35108c78204b0069f51543a85b0d3e1bf Author: Jakub Jelinek @@ -30658,10 +31792,10 @@ CommitDate: Mon Oct 18 12:35:19 2004 +0000 auto-import glibc-2.3.3-69 on branch devel from glibc-2.3.3-69.src.rpm -:100644 100644 036a52ad f8400ab1 M .cvsignore -:100644 100644 882ad4d9 6bd6badb M glibc-fedora.patch -:100644 100644 93a4c757 f903bcbb M glibc.spec -:100644 100644 ccf87229 78151c61 M sources +:100644 100644 036a52a f8400ab M .cvsignore +:100644 100644 882ad4d 6bd6bad M glibc-fedora.patch +:100644 100644 93a4c75 f903bcb M glibc.spec +:100644 100644 ccf8722 78151c6 M sources commit fb72ee058fe1cd44a118d97e83b7a4bf40bf2e73 Author: Jakub Jelinek @@ -30671,8 +31805,8 @@ CommitDate: Thu Oct 14 13:09:38 2004 +0000 2.3.3-68 -:100644 100644 f2becd4c 882ad4d9 M glibc-fedora.patch -:100644 100644 36a59575 ccf87229 M sources +:100644 100644 f2becd4 882ad4d M glibc-fedora.patch +:100644 100644 36a5957 ccf8722 M sources commit 348245d3f97573da8834c997794a847e5f03562f Author: Jakub Jelinek @@ -30682,7 +31816,7 @@ CommitDate: Thu Oct 14 12:17:19 2004 +0000 2.3.3-68 -:100644 100644 9e577e27 f2becd4c M glibc-fedora.patch +:100644 100644 9e577e2 f2becd4 M glibc-fedora.patch commit b488809b5de285547f94e67367dd86a6bd747d9f Author: Jakub Jelinek @@ -30692,8 +31826,8 @@ CommitDate: Thu Oct 14 10:45:16 2004 +0000 2.3.3-68 -:100644 100644 fdb01afe 9e577e27 M glibc-fedora.patch -:100644 100644 305650f6 36a59575 M sources +:100644 100644 fdb01af 9e577e2 M glibc-fedora.patch +:100644 100644 305650f 36a5957 M sources commit b709c7ef3e73d009c82e9e0b46a54168443fee58 Author: Jakub Jelinek @@ -30703,10 +31837,10 @@ CommitDate: Thu Oct 14 06:14:09 2004 +0000 auto-import glibc-2.3.3-68 on branch devel from glibc-2.3.3-68.src.rpm -:100644 100644 0ce191c5 036a52ad M .cvsignore -:100644 100644 37b3db3a fdb01afe M glibc-fedora.patch -:100644 100644 48025aec 93a4c757 M glibc.spec -:100644 100644 4872bd2c 305650f6 M sources +:100644 100644 0ce191c 036a52a M .cvsignore +:100644 100644 37b3db3 fdb01af M glibc-fedora.patch +:100644 100644 48025ae 93a4c75 M glibc.spec +:100644 100644 4872bd2 305650f M sources commit fae95423abb4c19a61326e4da4243d8bc96385c1 Author: Jakub Jelinek @@ -30716,10 +31850,10 @@ CommitDate: Tue Oct 12 12:23:57 2004 +0000 auto-import glibc-2.3.3-67 on branch devel from glibc-2.3.3-67.src.rpm -:100644 100644 6f5f4fd8 0ce191c5 M .cvsignore -:100644 100644 f653d58b 37b3db3a M glibc-fedora.patch -:100644 100644 c9957984 48025aec M glibc.spec -:100644 100644 756e4ee0 4872bd2c M sources +:100644 100644 6f5f4fd 0ce191c M .cvsignore +:100644 100644 f653d58 37b3db3 M glibc-fedora.patch +:100644 100644 c995798 48025ae M glibc.spec +:100644 100644 756e4ee 4872bd2 M sources commit a0d8ce000e54c86051d9aca969fe6593ab3097c6 Author: Jakub Jelinek @@ -30729,10 +31863,10 @@ CommitDate: Wed Oct 6 09:51:52 2004 +0000 auto-import glibc-2.3.3-66 on branch devel from glibc-2.3.3-66.src.rpm -:100644 100644 65f05352 6f5f4fd8 M .cvsignore -:100644 100644 f953053d f653d58b M glibc-fedora.patch -:100644 100644 7a057a9c c9957984 M glibc.spec -:100644 100644 28b8e21f 756e4ee0 M sources +:100644 100644 65f0535 6f5f4fd M .cvsignore +:100644 100644 f953053 f653d58 M glibc-fedora.patch +:100644 100644 7a057a9 c995798 M glibc.spec +:100644 100644 28b8e21 756e4ee M sources commit 3611d17ac6744097b1c3f6945d7ff1a6703a90db Author: Jakub Jelinek @@ -30742,7 +31876,7 @@ CommitDate: Tue Oct 5 15:50:38 2004 +0000 2.3.3-65 -:100644 100644 5d6b1067 f953053d M glibc-fedora.patch +:100644 100644 5d6b106 f953053 M glibc-fedora.patch commit 1c1864e24536efefb9df7488e0f2b658609ec663 Author: Jakub Jelinek @@ -30752,7 +31886,7 @@ CommitDate: Tue Oct 5 15:24:37 2004 +0000 2.3.3-65 -:100644 100644 38abfa67 5d6b1067 M glibc-fedora.patch +:100644 100644 38abfa6 5d6b106 M glibc-fedora.patch commit 7e89ca471ac0d08ac620ae6924f8982e74b1eece Author: Jakub Jelinek @@ -30762,7 +31896,7 @@ CommitDate: Tue Oct 5 12:50:02 2004 +0000 2.3.3-65 -:100644 100644 9b6397e5 38abfa67 M glibc-fedora.patch +:100644 100644 9b6397e 38abfa6 M glibc-fedora.patch commit 8e2ca29c895de54f97822127d8956898ddbd65cb Author: Jakub Jelinek @@ -30772,8 +31906,8 @@ CommitDate: Tue Oct 5 11:34:53 2004 +0000 2.3.3-65 -:100644 100644 3ff3d921 9b6397e5 M glibc-fedora.patch -:100644 100644 e8e447c8 28b8e21f M sources +:100644 100644 3ff3d92 9b6397e M glibc-fedora.patch +:100644 100644 e8e447c 28b8e21 M sources commit 78a67cf59d37d70f554de8122a3436a53ef3060b Author: Jakub Jelinek @@ -30783,10 +31917,10 @@ CommitDate: Tue Oct 5 09:19:10 2004 +0000 auto-import glibc-2.3.3-65 on branch devel from glibc-2.3.3-65.src.rpm -:100644 100644 793bb4f5 65f05352 M .cvsignore -:100644 100644 9c588628 3ff3d921 M glibc-fedora.patch -:100644 100644 c40e6976 7a057a9c M glibc.spec -:100644 100644 dc2b11fb e8e447c8 M sources +:100644 100644 793bb4f 65f0535 M .cvsignore +:100644 100644 9c58862 3ff3d92 M glibc-fedora.patch +:100644 100644 c40e697 7a057a9 M glibc.spec +:100644 100644 dc2b11f e8e447c M sources commit 3b26136617351664885f2644dae06f5140f95b40 Author: Jakub Jelinek @@ -30796,10 +31930,10 @@ CommitDate: Mon Oct 4 09:35:40 2004 +0000 auto-import glibc-2.3.3-64 on branch devel from glibc-2.3.3-64.src.rpm -:100644 100644 e833ff77 793bb4f5 M .cvsignore -:100644 100644 ac16772d 9c588628 M glibc-fedora.patch -:100644 100644 cb95ff75 c40e6976 M glibc.spec -:100644 100644 53436150 dc2b11fb M sources +:100644 100644 e833ff7 793bb4f M .cvsignore +:100644 100644 ac16772 9c58862 M glibc-fedora.patch +:100644 100644 cb95ff7 c40e697 M glibc.spec +:100644 100644 5343615 dc2b11f M sources commit f6aa9ffe91cb715159826e9fe3c98064f7188572 Author: Jakub Jelinek @@ -30809,10 +31943,10 @@ CommitDate: Fri Oct 1 21:54:12 2004 +0000 auto-import glibc-2.3.3-63 on branch devel from glibc-2.3.3-63.src.rpm -:100644 100644 fa5b3edc e833ff77 M .cvsignore -:100644 100644 4d4ab74d ac16772d M glibc-fedora.patch -:100644 100644 ea22dc16 cb95ff75 M glibc.spec -:100644 100644 d69a440d 53436150 M sources +:100644 100644 fa5b3ed e833ff7 M .cvsignore +:100644 100644 4d4ab74 ac16772 M glibc-fedora.patch +:100644 100644 ea22dc1 cb95ff7 M glibc.spec +:100644 100644 d69a440 5343615 M sources commit 12fd806326d09a6c50c0563eba4df3fdb436e6fd Author: Jakub Jelinek @@ -30822,10 +31956,10 @@ CommitDate: Fri Oct 1 12:06:34 2004 +0000 auto-import glibc-2.3.3-62 on branch devel from glibc-2.3.3-62.src.rpm -:100644 100644 fa4afe3e fa5b3edc M .cvsignore -:100644 100644 8203dc53 4d4ab74d M glibc-fedora.patch -:100644 100644 1bfba207 ea22dc16 M glibc.spec -:100644 100644 d695940b d69a440d M sources +:100644 100644 fa4afe3 fa5b3ed M .cvsignore +:100644 100644 8203dc5 4d4ab74 M glibc-fedora.patch +:100644 100644 1bfba20 ea22dc1 M glibc.spec +:100644 100644 d695940 d69a440 M sources commit bb8d7783fdb3b5a8e18d555e5d9c4e4fb62c5a17 Author: Jakub Jelinek @@ -30835,10 +31969,10 @@ CommitDate: Thu Sep 30 09:26:07 2004 +0000 auto-import glibc-2.3.3-61 on branch devel from glibc-2.3.3-61.src.rpm -:100644 100644 f073e5f9 fa4afe3e M .cvsignore -:100644 100644 c0260973 8203dc53 M glibc-fedora.patch -:100644 100644 42c700a5 1bfba207 M glibc.spec -:100644 100644 b8978488 d695940b M sources +:100644 100644 f073e5f fa4afe3 M .cvsignore +:100644 100644 c026097 8203dc5 M glibc-fedora.patch +:100644 100644 42c700a 1bfba20 M glibc.spec +:100644 100644 b897848 d695940 M sources commit c372148b5f14f4e1b56c706c57c186a560bd8725 Author: Jakub Jelinek @@ -30848,8 +31982,8 @@ CommitDate: Wed Sep 29 10:46:14 2004 +0000 2.3.3-60 -:100644 100644 140055e1 c0260973 M glibc-fedora.patch -:100644 100644 e9dbbb55 b8978488 M sources +:100644 100644 140055e c026097 M glibc-fedora.patch +:100644 100644 e9dbbb5 b897848 M sources commit 612f3e8c2813d5151dc9f3bc0304619edc696e11 Author: Jakub Jelinek @@ -30859,7 +31993,7 @@ CommitDate: Wed Sep 29 10:35:17 2004 +0000 2.3.3-60 -:100644 100644 11500f69 140055e1 M glibc-fedora.patch +:100644 100644 11500f6 140055e M glibc-fedora.patch commit f3926e3d10453593d240d326c15753335a0201de Author: Jakub Jelinek @@ -30869,10 +32003,10 @@ CommitDate: Wed Sep 29 09:50:33 2004 +0000 auto-import glibc-2.3.3-60 on branch devel from glibc-2.3.3-60.src.rpm -:100644 100644 a946896b f073e5f9 M .cvsignore -:100644 100644 bddf40db 11500f69 M glibc-fedora.patch -:100644 100644 c2301adb 42c700a5 M glibc.spec -:100644 100644 b751b9ec e9dbbb55 M sources +:100644 100644 a946896 f073e5f M .cvsignore +:100644 100644 bddf40d 11500f6 M glibc-fedora.patch +:100644 100644 c2301ad 42c700a M glibc.spec +:100644 100644 b751b9e e9dbbb5 M sources commit b9cb6db770fd96ed9f17fabef3eaf626b6626081 Author: Jakub Jelinek @@ -30882,10 +32016,10 @@ CommitDate: Mon Sep 27 06:37:42 2004 +0000 auto-import glibc-2.3.3-59 on branch devel from glibc-2.3.3-59.src.rpm -:100644 100644 0c719b43 a946896b M .cvsignore -:100644 100644 22fd78bd bddf40db M glibc-fedora.patch -:100644 100644 58b68f89 c2301adb M glibc.spec -:100644 100644 6955c212 b751b9ec M sources +:100644 100644 0c719b4 a946896 M .cvsignore +:100644 100644 22fd78b bddf40d M glibc-fedora.patch +:100644 100644 58b68f8 c2301ad M glibc.spec +:100644 100644 6955c21 b751b9e M sources commit b3c1f7270571fbfb43f1c03d3f75045faaf70169 Author: Jakub Jelinek @@ -30895,10 +32029,10 @@ CommitDate: Sun Sep 26 08:58:16 2004 +0000 auto-import glibc-2.3.3-58 on branch devel from glibc-2.3.3-58.src.rpm -:100644 100644 f95f5454 0c719b43 M .cvsignore -:100644 100644 9e541041 22fd78bd M glibc-fedora.patch -:100644 100644 8cd69ff0 58b68f89 M glibc.spec -:100644 100644 8649343f 6955c212 M sources +:100644 100644 f95f545 0c719b4 M .cvsignore +:100644 100644 9e54104 22fd78b M glibc-fedora.patch +:100644 100644 8cd69ff 58b68f8 M glibc.spec +:100644 100644 8649343 6955c21 M sources commit 631accf9ab21b2a0462b2896b94d320308df480f Author: Jakub Jelinek @@ -30908,8 +32042,8 @@ CommitDate: Sun Sep 26 04:55:06 2004 +0000 2.3.3-57 -:100644 100644 d594d558 9e541041 M glibc-fedora.patch -:100644 100644 b74223c2 8649343f M sources +:100644 100644 d594d55 9e54104 M glibc-fedora.patch +:100644 100644 b74223c 8649343 M sources commit ac27057750534b9718b943f9538643d64c9c1063 Author: Jakub Jelinek @@ -30919,9 +32053,9 @@ CommitDate: Sat Sep 25 12:21:22 2004 +0000 2.3.3-57 -:100644 100644 b5a34b25 f95f5454 M .cvsignore -:100644 100644 bf8c75b2 d594d558 M glibc-fedora.patch -:100644 100644 56df34fa b74223c2 M sources +:100644 100644 b5a34b2 f95f545 M .cvsignore +:100644 100644 bf8c75b d594d55 M glibc-fedora.patch +:100644 100644 56df34f b74223c M sources commit 2342cb0ed936f5e8580b9eb736d420dd9f0b7d2d Author: Jakub Jelinek @@ -30931,8 +32065,8 @@ CommitDate: Sat Sep 25 12:20:42 2004 +0000 2.3.3-57 -:100644 100644 f95f5454 b5a34b25 M .cvsignore -:100644 100644 26cbcf77 56df34fa M sources +:100644 100644 f95f545 b5a34b2 M .cvsignore +:100644 100644 26cbcf7 56df34f M sources commit c7aa529bd29880da55414efcf317319c8dd790e0 Author: Jakub Jelinek @@ -30942,10 +32076,10 @@ CommitDate: Sat Sep 25 08:23:12 2004 +0000 auto-import glibc-2.3.3-57 on branch devel from glibc-2.3.3-57.src.rpm -:100644 100644 0dce9284 f95f5454 M .cvsignore -:000000 100644 00000000 bf8c75b2 A glibc-fedora.patch -:100644 100644 9787051d 8cd69ff0 M glibc.spec -:100644 100644 fa67f034 26cbcf77 M sources +:100644 100644 0dce928 f95f545 M .cvsignore +:000000 100644 0000000 bf8c75b A glibc-fedora.patch +:100644 100644 9787051 8cd69ff M glibc.spec +:100644 100644 fa67f03 26cbcf7 M sources commit 80169fee7b7bc2ab0fbb7e2b0cee35c0af0411f5 Author: Jakub Jelinek @@ -30955,9 +32089,9 @@ CommitDate: Wed Sep 22 06:44:09 2004 +0000 auto-import glibc-2.3.3-55 on branch devel from glibc-2.3.3-55.src.rpm -:100644 100644 f8d4801b 0dce9284 M .cvsignore -:100644 100644 ad843d96 9787051d M glibc.spec -:100644 100644 bda78ed0 fa67f034 M sources +:100644 100644 f8d4801 0dce928 M .cvsignore +:100644 100644 ad843d9 9787051 M glibc.spec +:100644 100644 bda78ed fa67f03 M sources commit 5660d36681a5d8cc21957cab325bcf1fa2b50484 Author: Jakub Jelinek @@ -30967,9 +32101,9 @@ CommitDate: Fri Sep 17 06:41:05 2004 +0000 auto-import glibc-2.3.3-54 on branch devel from glibc-2.3.3-54.src.rpm -:100644 100644 15247125 f8d4801b M .cvsignore -:100644 100644 71917faa ad843d96 M glibc.spec -:100644 100644 7a0acd7e bda78ed0 M sources +:100644 100644 1524712 f8d4801 M .cvsignore +:100644 100644 71917fa ad843d9 M glibc.spec +:100644 100644 7a0acd7 bda78ed M sources commit 639ba184b5f1562bc4f88af2a9a5259e73682bd5 Author: Jakub Jelinek @@ -30979,8 +32113,8 @@ CommitDate: Tue Sep 14 14:31:42 2004 +0000 auto-import glibc-2.3.3-53 on branch devel from glibc-2.3.3-53.src.rpm -:100644 100644 31797235 71917faa M glibc.spec -:100644 100644 bc565081 7a0acd7e M sources +:100644 100644 3179723 71917fa M glibc.spec +:100644 100644 bc56508 7a0acd7 M sources commit 5aec04cca283c7be2dd8abc3d7d9af1d99fcb84a Author: Jakub Jelinek @@ -30990,9 +32124,9 @@ CommitDate: Tue Sep 14 13:41:56 2004 +0000 auto-import glibc-2.3.3-52 on branch devel from glibc-2.3.3-52.src.rpm -:100644 100644 29d2ecac 15247125 M .cvsignore -:100644 100644 2345902c 31797235 M glibc.spec -:100644 100644 e2bcb65c bc565081 M sources +:100644 100644 29d2eca 1524712 M .cvsignore +:100644 100644 2345902 3179723 M glibc.spec +:100644 100644 e2bcb65 bc56508 M sources commit 6e86160076ddaeb7cb4ca1cf53f9d91f405b9eb0 Author: Jakub Jelinek @@ -31002,9 +32136,9 @@ CommitDate: Fri Sep 10 21:13:22 2004 +0000 auto-import glibc-2.3.3-51 on branch devel from glibc-2.3.3-51.src.rpm -:100644 100644 47447180 29d2ecac M .cvsignore -:100644 100644 0d50f572 2345902c M glibc.spec -:100644 100644 2a428df1 e2bcb65c M sources +:100644 100644 4744718 29d2eca M .cvsignore +:100644 100644 0d50f57 2345902 M glibc.spec +:100644 100644 2a428df e2bcb65 M sources commit fe619b540a2aed0f8e7db8b025630e673e6211ba Author: Jakub Jelinek @@ -31014,9 +32148,9 @@ CommitDate: Fri Sep 10 10:22:16 2004 +0000 auto-import glibc-2.3.3-50 on branch devel from glibc-2.3.3-50.src.rpm -:100644 100644 65a4ab13 47447180 M .cvsignore -:100644 100644 13ecf0be 0d50f572 M glibc.spec -:100644 100644 88a04961 2a428df1 M sources +:100644 100644 65a4ab1 4744718 M .cvsignore +:100644 100644 13ecf0b 0d50f57 M glibc.spec +:100644 100644 88a0496 2a428df M sources commit 7abcfd39ad06d4423938ba20906654d16bc4156e Author: cvsdist @@ -31036,9 +32170,9 @@ CommitDate: Thu Sep 9 05:54:44 2004 +0000 - add NPTL support for i386 glibc (only if run on i486 or higher CPU) - add __NR_waitid defines for i386, x86_64 and sparc* -:100644 100644 2e17ddad 65a4ab13 M .cvsignore -:100644 100644 165315c1 13ecf0be M glibc.spec -:100644 100644 6185c51d 88a04961 M sources +:100644 100644 2e17dda 65a4ab1 M .cvsignore +:100644 100644 165315c 13ecf0b M glibc.spec +:100644 100644 6185c51 88a0496 M sources commit 4a201b7398751f527677f1636613d936dfeba1a2 Author: cvsdist @@ -31057,9 +32191,9 @@ CommitDate: Thu Sep 9 05:53:08 2004 +0000 line is missing (#120588) - ugly hacks for the IA-64 /emul braindamage (#124996, #128267) -:100644 100644 ce082375 2e17ddad M .cvsignore -:100644 100644 51a89dba 165315c1 M glibc.spec -:100644 100644 7bea376d 6185c51d M sources +:100644 100644 ce08237 2e17dda M .cvsignore +:100644 100644 51a89db 165315c M glibc.spec +:100644 100644 7bea376 6185c51 M sources commit f3d86bbd54359e8475c903fd9620bc9f8fc6d764 Author: cvsdist @@ -31071,9 +32205,9 @@ CommitDate: Thu Sep 9 05:52:58 2004 +0000 Sat Aug 21 2004 Jakub Jelinek 2.3.3-46 - update from CVS -:100644 100644 ae5dc01e ce082375 M .cvsignore -:100644 100644 adaa198e 51a89dba M glibc.spec -:100644 100644 4deec86e 7bea376d M sources +:100644 100644 ae5dc01 ce08237 M .cvsignore +:100644 100644 adaa198 51a89db M glibc.spec +:100644 100644 4deec86 7bea376 M sources commit e8590cd432dd5b05db272d05724c9b773f1ad26f Author: cvsdist @@ -31092,9 +32226,9 @@ CommitDate: Thu Sep 9 05:52:48 2004 +0000 - BuildPrereq libselinux-devel (#129946) - on ppc64, build without dot symbols -:100644 100644 26bed522 ae5dc01e M .cvsignore -:100644 100644 4fb92796 adaa198e M glibc.spec -:100644 100644 da3b8fe6 4deec86e M sources +:100644 100644 26bed52 ae5dc01 M .cvsignore +:100644 100644 4fb9279 adaa198 M glibc.spec +:100644 100644 da3b8fe 4deec86 M sources commit 48f92b4b2d7e99aa5f5eeb16bcff56bf7ae3fb36 Author: cvsdist @@ -31110,9 +32244,9 @@ CommitDate: Thu Sep 9 05:52:21 2004 +0000 - update RLIMIT_* constants in , make POSIX compliant (#129740) -:100644 100644 85faa7c1 26bed522 M .cvsignore -:100644 100644 b73a25a0 4fb92796 M glibc.spec -:100644 100644 91404885 da3b8fe6 M sources +:100644 100644 85faa7c 26bed52 M .cvsignore +:100644 100644 b73a25a 4fb9279 M glibc.spec +:100644 100644 9140488 da3b8fe M sources commit 3990320c40c82d860005b0f2f1e75fe711e2cc36 Author: cvsdist @@ -31146,9 +32280,9 @@ CommitDate: Thu Sep 9 05:52:01 2004 +0000 - handle /lib/i686/librtkaio-* in i386 glibc_post_upgrade the same as /lib/i686/librt-* -:100644 100644 259ba3a7 85faa7c1 M .cvsignore -:100644 100644 57284a18 b73a25a0 M glibc.spec -:100644 100644 cf1ae7fb 91404885 M sources +:100644 100644 259ba3a 85faa7c M .cvsignore +:100644 100644 57284a1 b73a25a M glibc.spec +:100644 100644 cf1ae7f 9140488 M sources commit 6d3776a9db87859a6fca5683a664688bb1477592 Author: cvsdist @@ -31162,9 +32296,9 @@ CommitDate: Thu Sep 9 05:51:19 2004 +0000 - conformance related changes in headers - remove -finline-limit=2000 for GCC 3.4.x+ -:100644 100644 28001783 259ba3a7 M .cvsignore -:100644 100644 71a26223 57284a18 M glibc.spec -:100644 100644 8449ebb5 cf1ae7fb M sources +:100644 100644 2800178 259ba3a M .cvsignore +:100644 100644 71a2622 57284a1 M glibc.spec +:100644 100644 8449ebb cf1ae7f M sources commit bbcc9fcd80fa271a30976dd2fe5f72cfb3fa423b Author: cvsdist @@ -31180,9 +32314,9 @@ CommitDate: Thu Sep 9 05:51:13 2004 +0000 - fix ppc64 setjmp - fix strtold (BZ #274) -:100644 100644 e937f400 28001783 M .cvsignore -:100644 100644 51cc71f2 71a26223 M glibc.spec -:100644 100644 dbfc74d0 8449ebb5 M sources +:100644 100644 e937f40 2800178 M .cvsignore +:100644 100644 51cc71f 71a2622 M glibc.spec +:100644 100644 dbfc74d 8449ebb M sources commit 57f83e48464a59c6fb14d2a4629a700cf800113e Author: cvsdist @@ -31197,9 +32331,9 @@ CommitDate: Thu Sep 9 05:51:10 2004 +0000 - fix pow{f,,l} on IA-32 and powl on x86-64 - allow PIEs on IA-32 to have main in a shared library they depend on -:100644 100644 f78cd9f2 e937f400 M .cvsignore -:100644 100644 b3648b0c 51cc71f2 M glibc.spec -:100644 100644 12248a27 dbfc74d0 M sources +:100644 100644 f78cd9f e937f40 M .cvsignore +:100644 100644 b3648b0 51cc71f M glibc.spec +:100644 100644 12248a2 dbfc74d M sources commit 488256d1400d830b853632047db38f23a65b4b32 Author: cvsdist @@ -31221,9 +32355,9 @@ CommitDate: Thu Sep 9 05:51:02 2004 +0000 - printf_parsemb initialization fix - NPTL version is now the same as glibc version -:100644 100644 0dca6324 f78cd9f2 M .cvsignore -:100644 100644 2843f6a3 b3648b0c M glibc.spec -:100644 100644 bad778ce 12248a27 M sources +:100644 100644 0dca632 f78cd9f M .cvsignore +:100644 100644 2843f6a b3648b0 M glibc.spec +:100644 100644 bad778c 12248a2 M sources commit 9c616202ba89314d8cb843351b22ef7a557f3feb Author: cvsdist @@ -31239,9 +32373,9 @@ CommitDate: Thu Sep 9 05:50:18 2004 +0000 -m32 -D_FILE_OFFSET_BITS=64 compilations - avoid calling non-existing fcntl64 syscall on ppc64 -:100644 100644 ada5cb60 0dca6324 M .cvsignore -:100644 100644 2c3f3e45 2843f6a3 M glibc.spec -:100644 100644 09ddb301 bad778ce M sources +:100644 100644 ada5cb6 0dca632 M .cvsignore +:100644 100644 2c3f3e4 2843f6a M glibc.spec +:100644 100644 09ddb30 bad778c M sources commit f28d1a99a9eb693c09ab7ea4c47b53d7f1025156 Author: cvsdist @@ -31256,9 +32390,9 @@ CommitDate: Thu Sep 9 05:50:07 2004 +0000 - fix backtrace in statically linked programs - rebuilt with GCC 3.4, adjusted ulps and i386 -:100644 100644 9684613f ada5cb60 M .cvsignore -:100644 100644 b940e090 2c3f3e45 M glibc.spec -:100644 100644 f296ad8d 09ddb301 M sources +:100644 100644 9684613 ada5cb6 M .cvsignore +:100644 100644 b940e09 2c3f3e4 M glibc.spec +:100644 100644 f296ad8 09ddb30 M sources commit d07b59af3605df6bfb77c0625c6ac18fcc4de04b Author: cvsdist @@ -31270,7 +32404,7 @@ CommitDate: Thu Sep 9 05:49:35 2004 +0000 Wed Jun 09 2004 Elliot Lee 2.3.3-31.1 - rebuild with gcc 3.4 -:100644 100644 8366deca b940e090 M glibc.spec +:100644 100644 8366dec b940e09 M glibc.spec commit 7df9d7d88dab34690b943b5b735dc2952224d5cb Author: cvsdist @@ -31284,9 +32418,9 @@ CommitDate: Thu Sep 9 05:49:31 2004 +0000 - and changes for GCC 3.{2,4,5}+ - make c_stubs buildable even with GCC 3.2.x (#123042) -:100644 100644 cfbc0a22 9684613f M .cvsignore -:100644 100644 d3365d6c 8366deca M glibc.spec -:100644 100644 2469e8a4 f296ad8d M sources +:100644 100644 cfbc0a2 9684613 M .cvsignore +:100644 100644 d3365d6 8366dec M glibc.spec +:100644 100644 2469e8a f296ad8 M sources commit e166fbd3b9e44c1fecd6b55509b657334434fed9 Author: cvsdist @@ -31298,9 +32432,9 @@ CommitDate: Thu Sep 9 05:49:08 2004 +0000 Fri May 21 2004 Jakub Jelinek 2.3.3-30 - fix pthread_cond_wait on architectures other than IA-32 and x86_64 -:100644 100644 12be0faa cfbc0a22 M .cvsignore -:100644 100644 fd9e2d24 d3365d6c M glibc.spec -:100644 100644 85b3294b 2469e8a4 M sources +:100644 100644 12be0fa cfbc0a2 M .cvsignore +:100644 100644 fd9e2d2 d3365d6 M glibc.spec +:100644 100644 85b3294 2469e8a M sources commit 7cbfe8c1d247f10ad566ec8bfada5e2e37325e3a Author: cvsdist @@ -31312,9 +32446,9 @@ CommitDate: Thu Sep 9 05:49:02 2004 +0000 Thu May 20 2004 Jakub Jelinek 2.3.3-29 - use lib64 instead of lib on ia64 if %{_lib} is defined to lib64 -:000000 100644 00000000 05fd9229 A glibc-ia64-lib64.patch -:100644 100644 e8b33886 fd9e2d24 M glibc.spec -:100644 100644 887bd609 85b3294b M sources +:000000 100644 0000000 05fd922 A glibc-ia64-lib64.patch +:100644 100644 e8b3388 fd9e2d2 M glibc.spec +:100644 100644 887bd60 85b3294 M sources commit b335e4b24374c5d0854392e26bee98648944c1c1 Author: cvsdist @@ -31333,9 +32467,9 @@ CommitDate: Thu Sep 9 05:48:51 2004 +0000 - x86_64 makecontext alignment fix - make POSIX sigpause the default sigpause, unless BSD sigpause requested -:100644 100644 d5dcb45c 12be0faa M .cvsignore -:100644 100644 c466b28a e8b33886 M glibc.spec -:100644 100644 52a963b3 887bd609 M sources +:100644 100644 d5dcb45 12be0fa M .cvsignore +:100644 100644 c466b28 e8b3388 M glibc.spec +:100644 100644 52a963b 887bd60 M sources commit ce09106efc1013ae7c8d4a9c55f309d938fbe7ba Author: cvsdist @@ -31414,9 +32548,9 @@ CommitDate: Thu Sep 9 05:48:43 2004 +0000 - update from CVS - affinity API changes -:100644 100644 e979483c d5dcb45c M .cvsignore -:100644 100644 f33d09e9 c466b28a M glibc.spec -:100644 100644 72e9e4fc 52a963b3 M sources +:100644 100644 e979483 d5dcb45 M .cvsignore +:100644 100644 f33d09e c466b28 M glibc.spec +:100644 100644 72e9e4f 52a963b M sources commit 195182b0b448eb6352c068fdddb4e011ee9a6228 Author: cvsdist @@ -31461,9 +32595,9 @@ CommitDate: Thu Sep 9 05:46:40 2004 +0000 Fri Feb 20 2004 Jakub Jelinek 2.3.3-9 - update from CVS -:100644 100644 6b2f0c95 e979483c M .cvsignore -:100644 100644 66a0377b f33d09e9 M glibc.spec -:100644 100644 98399eff 72e9e4fc M sources +:100644 100644 6b2f0c9 e979483 M .cvsignore +:100644 100644 66a0377 f33d09e M glibc.spec +:100644 100644 98399ef 72e9e4f M sources commit aa7475ac1a6971add99dbad42b0188dca6594d60 Author: cvsdist @@ -31473,9 +32607,9 @@ CommitDate: Thu Sep 9 05:43:45 2004 +0000 auto-import glibc-2.3.3-7 from glibc-2.3.3-7.src.rpm -:100644 100644 4755b6a6 6b2f0c95 M .cvsignore -:100644 100644 a2af76d6 66a0377b M glibc.spec -:100644 100644 9dc9a0ff 98399eff M sources +:100644 100644 4755b6a 6b2f0c9 M .cvsignore +:100644 100644 a2af76d 66a0377 M glibc.spec +:100644 100644 9dc9a0f 98399ef M sources commit 083e7af5618e589e1e5ecd9d21a70ccb5f306995 Author: cvsdist @@ -31485,9 +32619,9 @@ CommitDate: Thu Sep 9 05:43:31 2004 +0000 auto-import glibc-2.3.3-6 from glibc-2.3.3-6.src.rpm -:100644 100644 6832ad2b 4755b6a6 M .cvsignore -:100644 100644 54d04010 a2af76d6 M glibc.spec -:100644 100644 e147d783 9dc9a0ff M sources +:100644 100644 6832ad2 4755b6a M .cvsignore +:100644 100644 54d0401 a2af76d M glibc.spec +:100644 100644 e147d78 9dc9a0f M sources commit 67f9b52e0d0585505f5a2013380a1cd56f6b0fe9 Author: cvsdist @@ -31497,9 +32631,9 @@ CommitDate: Thu Sep 9 05:42:45 2004 +0000 auto-import glibc-2.3.3-3 from glibc-2.3.3-3.src.rpm -:100644 100644 929550a3 6832ad2b M .cvsignore -:100644 100644 bf99cd37 54d04010 M glibc.spec -:100644 100644 510093ec e147d783 M sources +:100644 100644 929550a 6832ad2 M .cvsignore +:100644 100644 bf99cd3 54d0401 M glibc.spec +:100644 100644 510093e e147d78 M sources commit b3d3095f21ba26c32aedc482213e2a7b36d7510e Author: cvsdist @@ -31509,9 +32643,9 @@ CommitDate: Thu Sep 9 05:42:39 2004 +0000 auto-import glibc-2.3.3-2 from glibc-2.3.3-2.src.rpm -:100644 100644 e7b1493f 929550a3 M .cvsignore -:100644 100644 e8c3a18f bf99cd37 M glibc.spec -:100644 100644 aed4d536 510093ec M sources +:100644 100644 e7b1493 929550a M .cvsignore +:100644 100644 e8c3a18 bf99cd3 M glibc.spec +:100644 100644 aed4d53 510093e M sources commit 7da373a20cb92723bdb01d4be30669e2f3b3e898 Author: cvsdist @@ -31521,9 +32655,9 @@ CommitDate: Thu Sep 9 05:42:25 2004 +0000 auto-import glibc-2.3.3-1 from glibc-2.3.3-1.src.rpm -:100644 100644 4da0c3c7 e7b1493f M .cvsignore -:100644 100644 82db9c88 e8c3a18f M glibc.spec -:100644 100644 947fba03 aed4d536 M sources +:100644 100644 4da0c3c e7b1493 M .cvsignore +:100644 100644 82db9c8 e8c3a18 M glibc.spec +:100644 100644 947fba0 aed4d53 M sources commit 9253f552c03d67ecb130dea84c882ee0f67e1f7c Author: cvsdist @@ -31551,7 +32685,7 @@ CommitDate: Thu Sep 9 05:42:03 2004 +0000 - pthread_cond_timedwait bugfix - protect _dl_make_stack_executable with a special challenge -:100644 100644 5f25f07e 82db9c88 M glibc.spec +:100644 100644 5f25f07 82db9c8 M glibc.spec commit a004e0e1f2b394501374e60a0ec875938f90b69b Author: cvsdist @@ -31566,7 +32700,7 @@ CommitDate: Thu Sep 9 05:41:57 2004 +0000 - change regfree to match old regex behaviour (what is freed and clearing of freed pointers) -:100644 100644 af481338 5f25f07e M glibc.spec +:100644 100644 af48133 5f25f07 M glibc.spec commit 41ee47bf4aa3a076c2b86290761315ee5a5da7c4 Author: cvsdist @@ -31576,7 +32710,7 @@ CommitDate: Thu Sep 9 05:41:47 2004 +0000 auto-import glibc-2.3.2-101.3 from glibc-2.3.2-101.3.src.rpm -:100644 100644 08ef8bb6 af481338 M glibc.spec +:100644 100644 08ef8bb af48133 M glibc.spec commit 849c1214f63a25f7f3448364164a5d9ad01c5b61 Author: cvsdist @@ -31610,7 +32744,7 @@ CommitDate: Thu Sep 9 05:41:43 2004 +0000 - randomize PIE shared libraries, honor LD_USE_LOAD_BIAS env variable - fix execstack handling on kernels without exec-shield -:100644 100644 c8a416e2 08ef8bb6 M glibc.spec +:100644 100644 c8a416e 08ef8bb M glibc.spec commit e2748b71cbd715a1dcff7b85325c73b77e0e3a56 Author: cvsdist @@ -31633,7 +32767,7 @@ CommitDate: Thu Sep 9 05:41:22 2004 +0000 - fix RE_ICASE multi-byte handling in regex - fix pthread_exit in libpthread.a (#109790) -:100644 100644 39aa8b7e c8a416e2 M glibc.spec +:100644 100644 39aa8b7 c8a416e M glibc.spec commit c381c23439d5f6c69b74a5017f82009c2567f3a3 Author: cvsdist @@ -31643,9 +32777,9 @@ CommitDate: Thu Sep 9 05:40:37 2004 +0000 auto-import glibc-2.3.2-101 from glibc-2.3.2-101.src.rpm -:100644 100644 172c870f 4da0c3c7 M .cvsignore -:000000 100644 00000000 39aa8b7e A glibc.spec -:100644 100644 d6e0a3f2 947fba03 M sources +:100644 100644 172c870 4da0c3c M .cvsignore +:000000 100644 0000000 39aa8b7 A glibc.spec +:100644 100644 d6e0a3f 947fba0 M sources commit d955dcc554c5888be05ac416b4692f593db3b4d4 Author: cvsdist @@ -31655,9 +32789,9 @@ CommitDate: Thu Sep 9 05:33:04 2004 +0000 auto-import glibc-2.3.2-33.9 from glibc-2.3.2-33.9.src.rpm -:100644 100644 20b42dc5 172c870f M .cvsignore -:100644 000000 2741f2f5 00000000 D glibc.spec -:100644 100644 1787902f d6e0a3f2 M sources +:100644 100644 20b42dc 172c870 M .cvsignore +:100644 000000 2741f2f 0000000 D glibc.spec +:100644 100644 1787902 d6e0a3f M sources commit 93178aa3c3473640dcc8c539c361742c1dbc5f3c Author: cvsdist @@ -31667,7 +32801,7 @@ CommitDate: Thu Sep 9 05:32:57 2004 +0000 auto-import glibc-2.3.2-27.9.6 from glibc-2.3.2-27.9.6.src.rpm -:000000 100644 00000000 2741f2f5 A glibc.spec +:000000 100644 0000000 2741f2f A glibc.spec commit da256929431e0d200f005b96add79e8421d535e5 Author: cvsdist @@ -31677,8 +32811,8 @@ CommitDate: Thu Sep 9 05:32:38 2004 +0000 auto-import glibc-2.3.2-27.9 from glibc-2.3.2-27.9.src.rpm -:100644 100644 8cb74ee5 20b42dc5 M .cvsignore -:100644 100644 bacee566 1787902f M sources +:100644 100644 8cb74ee 20b42dc M .cvsignore +:100644 100644 bacee56 1787902 M sources commit 60f9d3369035dc710335c8e1aa082707b1057a67 Author: cvsdist @@ -31688,9 +32822,9 @@ CommitDate: Thu Sep 9 05:32:18 2004 +0000 auto-import glibc-2.3.2-11.9 from glibc-2.3.2-11.9.src.rpm -:100644 100644 47d7e6c6 8cb74ee5 M .cvsignore -:100644 000000 ec09e57a 00000000 D glibc.spec -:100644 100644 a3c56170 bacee566 M sources +:100644 100644 47d7e6c 8cb74ee M .cvsignore +:100644 000000 ec09e57 0000000 D glibc.spec +:100644 100644 a3c5617 bacee56 M sources commit e9ae29d032d290dd79f05ff8afbba2a0722acf08 Author: cvsdist @@ -31700,9 +32834,9 @@ CommitDate: Thu Sep 9 05:31:53 2004 +0000 auto-import glibc-2.3.2-5 from glibc-2.3.2-5.src.rpm -:100644 100644 6d6f606b 47d7e6c6 M .cvsignore -:100644 100644 55beb855 ec09e57a M glibc.spec -:100644 100644 c905376e a3c56170 M sources +:100644 100644 6d6f606 47d7e6c M .cvsignore +:100644 100644 55beb85 ec09e57 M glibc.spec +:100644 100644 c905376 a3c5617 M sources commit 296254e820ea61af80ef8e89b4265c5c43e86557 Author: cvsdist @@ -31712,7 +32846,7 @@ CommitDate: Thu Sep 9 05:31:44 2004 +0000 auto-import glibc-2.3.2-4.80.8 from glibc-2.3.2-4.80.8.src.rpm -:000000 100644 00000000 55beb855 A glibc.spec +:000000 100644 0000000 55beb85 A glibc.spec commit e7a3a9dfd3cb55e689983d9f5788124c9c526040 Author: cvsdist @@ -31722,9 +32856,9 @@ CommitDate: Thu Sep 9 05:31:03 2004 +0000 auto-import glibc-2.3.2-4.80 from glibc-2.3.2-4.80.src.rpm -:100644 100644 64231d7c 6d6f606b M .cvsignore -:100644 000000 fcdfa043 00000000 D glibc.spec -:100644 100644 f0e1d2cc c905376e M sources +:100644 100644 64231d7 6d6f606 M .cvsignore +:100644 000000 fcdfa04 0000000 D glibc.spec +:100644 100644 f0e1d2c c905376 M sources commit f68ab8f6040c12512f4cc44a037ccd1d4afc29a1 Author: cvsdist @@ -31734,9 +32868,9 @@ CommitDate: Thu Sep 9 05:30:51 2004 +0000 auto-import glibc-2.3.1-32 from glibc-2.3.1-32.src.rpm -:100644 100644 e427f50a 64231d7c M .cvsignore -:100644 100644 e42aceaa fcdfa043 M glibc.spec -:100644 100644 5f11f0aa f0e1d2cc M sources +:100644 100644 e427f50 64231d7 M .cvsignore +:100644 100644 e42acea fcdfa04 M glibc.spec +:100644 100644 5f11f0a f0e1d2c M sources commit 72f7cf67bfe5e38887a39974065cdc732e3a5a41 Author: cvsdist @@ -31746,9 +32880,9 @@ CommitDate: Thu Sep 9 05:30:40 2004 +0000 auto-import glibc-2.3-1 from glibc-2.3-1.src.rpm -:100644 100644 f44e75fb e427f50a M .cvsignore -:100644 100644 0befbf66 e42aceaa M glibc.spec -:100644 100644 4056861a 5f11f0aa M sources +:100644 100644 f44e75f e427f50 M .cvsignore +:100644 100644 0befbf6 e42acea M glibc.spec +:100644 100644 4056861 5f11f0a M sources commit e0cdfa0614286b48df083440c6803cf104cc55b5 Author: cvsdist @@ -31758,9 +32892,9 @@ CommitDate: Thu Sep 9 05:30:26 2004 +0000 auto-import glibc-2.2.93-5 from glibc-2.2.93-5.src.rpm -:100644 100644 063b70ea f44e75fb M .cvsignore -:100644 100644 20aa798d 0befbf66 M glibc.spec -:100644 100644 1cfaed64 4056861a M sources +:100644 100644 063b70e f44e75f M .cvsignore +:100644 100644 20aa798 0befbf6 M glibc.spec +:100644 100644 1cfaed6 4056861 M sources commit 00522b9a349261e83a842eec8c3066d333612269 Author: cvsdist @@ -31772,7 +32906,7 @@ CommitDate: Thu Sep 9 05:30:08 2004 +0000 Wed Nov 05 2003 Jakub Jelinek 2.2.4-44 - fix getgrouplist (#101691) -:100644 100644 51a0c1a0 20aa798d M glibc.spec +:100644 100644 51a0c1a 20aa798 M glibc.spec commit 18c157db6de33b61313a6ab4a7cbad4eb3958fe5 Author: cvsdist @@ -31782,7 +32916,7 @@ CommitDate: Thu Sep 9 05:29:21 2004 +0000 auto-import glibc-2.2.5-43 from glibc-2.2.5-43.src.rpm -:100644 100644 ad4cad0b 51a0c1a0 M glibc.spec +:100644 100644 ad4cad0 51a0c1a M glibc.spec commit 211c16fa70183fdc10c12be7ea48875e6f73f1ce Author: cvsdist @@ -31792,7 +32926,7 @@ CommitDate: Thu Sep 9 05:29:06 2004 +0000 auto-import glibc-2.2.5-40 from glibc-2.2.5-40.src.rpm -:100644 100644 a7f776a1 ad4cad0b M glibc.spec +:100644 100644 a7f776a ad4cad0 M glibc.spec commit b18ac84fd3ff734f4641b1467e07170b1c47bbdb Author: cvsdist @@ -31802,7 +32936,7 @@ CommitDate: Thu Sep 9 05:29:00 2004 +0000 auto-import glibc-2.2.5-39 from glibc-2.2.5-39.src.rpm -:100644 100644 ca07d5ff a7f776a1 M glibc.spec +:100644 100644 ca07d5f a7f776a M glibc.spec commit 2e3cbbc31c01e11e39a269f1603096b4b228723c Author: cvsdist @@ -31812,9 +32946,9 @@ CommitDate: Thu Sep 9 05:28:20 2004 +0000 auto-import glibc-2.2.5-36 from glibc-2.2.5-36.src.rpm -:100644 100644 17d63cd2 063b70ea M .cvsignore -:100644 100644 101530e7 ca07d5ff M glibc.spec -:100644 100644 e5e63bc5 1cfaed64 M sources +:100644 100644 17d63cd 063b70e M .cvsignore +:100644 100644 101530e ca07d5f M glibc.spec +:100644 100644 e5e63bc 1cfaed6 M sources commit a76a167f168722f8661a701a0d9b615b96fb6319 Author: cvsdist @@ -31824,7 +32958,7 @@ CommitDate: Thu Sep 9 05:28:12 2004 +0000 auto-import glibc-2.2.5-34.1 from glibc-2.2.5-34.1.src.rpm -:100644 100644 26cef095 101530e7 M glibc.spec +:100644 100644 26cef09 101530e M glibc.spec commit 075c0fe7e4904b896081c824c1932f6cfdb81346 Author: cvsdist @@ -31834,9 +32968,9 @@ CommitDate: Thu Sep 9 05:27:57 2004 +0000 auto-import glibc-2.2.5-34 from glibc-2.2.5-34.src.rpm -:100644 100644 ed484223 17d63cd2 M .cvsignore -:100644 100644 b8b4380f 26cef095 M glibc.spec -:100644 100644 70fe94aa e5e63bc5 M sources +:100644 100644 ed48422 17d63cd M .cvsignore +:100644 100644 b8b4380 26cef09 M glibc.spec +:100644 100644 70fe94a e5e63bc M sources commit 9282a2c0c5bd13ad0dc8384d95aee3d2da6c1f65 Author: cvsdist @@ -31846,7 +32980,7 @@ CommitDate: Thu Sep 9 05:25:26 2004 +0000 auto-import glibc-2.2.4-32 from glibc-2.2.4-32.src.rpm -:100644 100644 1be481ca b8b4380f M glibc.spec +:100644 100644 1be481c b8b4380 M glibc.spec commit b7c7924237d64b70b232c744c403eccea7f3fa93 Author: cvsdist @@ -31856,7 +32990,7 @@ CommitDate: Thu Sep 9 05:24:55 2004 +0000 auto-import glibc-2.2.4-30 from glibc-2.2.4-30.src.rpm -:100644 100644 5b6004da 1be481ca M glibc.spec +:100644 100644 5b6004d 1be481c M glibc.spec commit fb47195111335311d0fd7c10258fb77029389f05 Author: cvsdist @@ -31866,7 +33000,7 @@ CommitDate: Thu Sep 9 05:24:23 2004 +0000 auto-import glibc-2.2.4-29 from glibc-2.2.4-29.src.rpm -:100644 100644 8f3eb710 5b6004da M glibc.spec +:100644 100644 8f3eb71 5b6004d M glibc.spec commit 48664b95f6328b7e87c437f5648c7a25a9c93500 Author: cvsdist @@ -31876,7 +33010,7 @@ CommitDate: Thu Sep 9 05:23:16 2004 +0000 auto-import glibc-2.2.4-26 from glibc-2.2.4-26.src.rpm -:100644 100644 adfb1150 8f3eb710 M glibc.spec +:100644 100644 adfb115 8f3eb71 M glibc.spec commit 3f472ec1585bb483a5f49d7ccfe6bedbd11dce75 Author: cvsdist @@ -31892,7 +33026,7 @@ CommitDate: Thu Sep 9 05:22:57 2004 +0000 Sat Apr 13 2002 Florian La Roche - add missing s390/s390x patches -:100644 100644 2e476b5e adfb1150 M glibc.spec +:100644 100644 2e476b5 adfb115 M glibc.spec commit cc7ca1e799ed49d8e41ab4c60925118f93eb92a3 Author: cvsdist @@ -31916,7 +33050,7 @@ CommitDate: Thu Sep 9 05:22:37 2004 +0000 - remove /lib/i686/ libraries in glibc_post_upgrade when performing i386 glibc install -:100644 100644 2794b812 2e476b5e M glibc.spec +:100644 100644 2794b81 2e476b5 M glibc.spec commit e86a80cd574c03820be936dc8492063d72c42654 Author: cvsdist @@ -31926,7 +33060,7 @@ CommitDate: Thu Sep 9 05:21:51 2004 +0000 auto-import glibc-2.2.4-19.3m from glibc-2.2.4-19.3m.src.rpm -:100644 100644 c7d61b98 2794b812 M glibc.spec +:100644 100644 c7d61b9 2794b81 M glibc.spec commit 16298371ca74bff3dd22974a9309b3c0c2ef1c91 Author: cvsdist @@ -31938,7 +33072,7 @@ CommitDate: Thu Sep 9 05:21:36 2004 +0000 Sat Dec 08 2001 Jakub Jelinek 2.2.4-19.3 - fix inttypes.h typo (#57268) -:100644 100644 eee4ee37 c7d61b98 M glibc.spec +:100644 100644 eee4ee3 c7d61b9 M glibc.spec commit 55dc6c2895373402b277b468b520ef8fd81b425a Author: cvsdist @@ -31948,7 +33082,7 @@ CommitDate: Thu Sep 9 05:21:18 2004 +0000 auto-import glibc-2.2.4-19a from glibc-2.2.4-19a.src.rpm -:100644 100644 02033709 eee4ee37 M glibc.spec +:100644 100644 0203370 eee4ee3 M glibc.spec commit 2704fae76df0e30cbdfcbd237cbaa4d90b7088df Author: cvsdist @@ -31958,7 +33092,7 @@ CommitDate: Thu Sep 9 05:21:12 2004 +0000 auto-import glibc-2.2.4-19 from glibc-2.2.4-19.src.rpm -:100644 100644 db4a8a9a 02033709 M glibc.spec +:100644 100644 db4a8a9 0203370 M glibc.spec commit c6011023afca1f264181275f63b9be8895fb3244 Author: cvsdist @@ -31970,8 +33104,8 @@ CommitDate: Thu Sep 9 05:19:45 2004 +0000 Tue Dec 04 2001 Jakub Jelinek 2.2.4-18.7.0.2 - fix glob buffer overflow -:100644 100644 a5014408 db4a8a9a M glibc.spec -:100644 100644 012169ef 70fe94aa M sources +:100644 100644 a501440 db4a8a9 M glibc.spec +:100644 100644 012169e 70fe94a M sources commit f2d193bb0cb89442326b9aa14575a7472bac13c3 Author: cvsdist @@ -31985,7 +33119,7 @@ CommitDate: Thu Sep 9 05:19:29 2004 +0000 - reapply yshao@redhat.com's glibc-2.2.4-gb18030.patch - reapply llch@redhat.com's glibc-2.2.4-sc.patch -:100644 100644 03b1f6dd a5014408 M glibc.spec +:100644 100644 03b1f6d a501440 M glibc.spec commit 12cb3228aded26b7c8b167d405ddea4962a413dc Author: cvsdist @@ -31999,7 +33133,7 @@ CommitDate: Thu Sep 9 05:19:24 2004 +0000 Sat Nov 10 2001 Yu Shao 2.2.4-14c - gb18030 fix -:100644 100644 d3fdd3c8 03b1f6dd M glibc.spec +:100644 100644 d3fdd3c 03b1f6d M glibc.spec commit 06aa72cc307afd8794290eb1550e3aa44a52b24c Author: cvsdist @@ -32087,9 +33221,9 @@ CommitDate: Thu Sep 9 05:19:00 2004 +0000 - update from CVS (#43681, #43350, #44663, #45685) - fix ro_RO bug (#44644) -:100644 100644 1f706369 ed484223 M .cvsignore -:100644 100644 17c021e0 d3fdd3c8 M glibc.spec -:100644 100644 5be22498 012169ef M sources +:100644 100644 1f70636 ed48422 M .cvsignore +:100644 100644 17c021e d3fdd3c M glibc.spec +:100644 100644 5be2249 012169e M sources commit 4118c172e9a71624b118a11fb84032e4fa3697ee Author: cvsdist @@ -32106,8 +33240,8 @@ CommitDate: Thu Sep 9 05:18:46 2004 +0000 - update from CVS to (among other things): - fix tanhl bug (#43352) -:100644 100644 33685977 17c021e0 M glibc.spec -:100644 100644 22a0bac9 5be22498 M sources +:100644 100644 3368597 17c021e M glibc.spec +:100644 100644 22a0bac 5be2249 M sources commit e2f026e202a32747435193ce0956a5d43eebc231 Author: cvsdist @@ -32162,9 +33296,9 @@ CommitDate: Thu Sep 9 05:18:39 2004 +0000 Wed Apr 11 2001 Jakub Jelinek - update from CVS -:100644 100644 3d6f0efa 1f706369 M .cvsignore -:100644 100644 5bdcb320 33685977 M glibc.spec -:100644 100644 0ce7b99b 22a0bac9 M sources +:100644 100644 3d6f0ef 1f70636 M .cvsignore +:100644 100644 5bdcb32 3368597 M glibc.spec +:100644 100644 0ce7b99 22a0bac M sources commit 987ea0c1bd4b6cc0c43054dd05b968c79feb5746 Author: cvsdist @@ -32229,9 +33363,9 @@ CommitDate: Thu Sep 9 05:18:35 2004 +0000 - fix getaddrinfo (#25437) - support DF_1_INITFIRST (#25029) -:100644 100644 20b92fec 3d6f0efa M .cvsignore -:100644 100644 5d418942 5bdcb320 M glibc.spec -:100644 100644 642da77e 0ce7b99b M sources +:100644 100644 20b92fe 3d6f0ef M .cvsignore +:100644 100644 5d41894 5bdcb32 M glibc.spec +:100644 100644 642da77 0ce7b99 M sources commit dac76f742288c68393ea0902644ec78b0a24a591 Author: cvsdist @@ -32273,9 +33407,9 @@ CommitDate: Thu Sep 9 05:18:27 2004 +0000 - move nscd in rc.d before netfs on shutdown - fix $RESOLV_HOST_CONF in SUID apps (#23562) -:100644 100644 04efab11 20b92fec M .cvsignore -:100644 100644 0b8d78b5 5d418942 M glibc.spec -:100644 100644 ebabe3a8 642da77e M sources +:100644 100644 04efab1 20b92fe M .cvsignore +:100644 100644 0b8d78b 5d41894 M glibc.spec +:100644 100644 ebabe3a 642da77 M sources commit 99bce0062ea7167c744553d4ed7812ebbac7a984 Author: cvsdist @@ -32301,8 +33435,8 @@ CommitDate: Thu Sep 9 05:18:16 2004 +0000 - use auxarches define in spec file for auxiliary architectures (#21219) - remove /usr/share directory from filelist (#21218) -:100644 100644 6d64c060 0b8d78b5 M glibc.spec -:100644 100644 94f3531e ebabe3a8 M sources +:100644 100644 6d64c06 0b8d78b M glibc.spec +:100644 100644 94f3531 ebabe3a M sources commit dc652d4df13002774ab6dc538c7799c7eeb6a097 Author: cvsdist @@ -32314,7 +33448,7 @@ CommitDate: Thu Sep 9 05:18:04 2004 +0000 Wed Dec 06 2000 Bill Nottingham - fix strcpy on ia64 (random SIGILLs) -:100644 100644 869ff787 6d64c060 M glibc.spec +:100644 100644 869ff78 6d64c06 M glibc.spec commit 3bf2920539e463f3e263cffd4814b8048fe75df0 Author: cvsdist @@ -32347,9 +33481,9 @@ CommitDate: Thu Sep 9 05:17:59 2004 +0000 - set LC_MESSAGES in zic/zdump for proper error message output (#19495) - fix LFS fcntl when used with non-LFS aware kernels (#19730) -:100644 100644 38ab9cb8 04efab11 M .cvsignore -:100644 100644 398e0cde 869ff787 M glibc.spec -:100644 100644 3030d774 94f3531e M sources +:100644 100644 38ab9cb 04efab1 M .cvsignore +:100644 100644 398e0cd 869ff78 M glibc.spec +:100644 100644 3030d77 94f3531 M sources commit b32d7ee5d82462b7aabb6842502626e34917f24c Author: cvsdist @@ -32366,8 +33500,8 @@ CommitDate: Thu Sep 9 05:17:54 2004 +0000 - fix rexec on little endian machines (#18886) - started writing changelog again -:100644 100644 3c3c4e94 398e0cde M glibc.spec -:100644 100644 0bbdf831 3030d774 M sources +:100644 100644 3c3c4e9 398e0cd M glibc.spec +:100644 100644 0bbdf83 3030d77 M sources commit ab184636b8f254a0844a9781ebecdeacef1f37ea Author: cvsdist @@ -32379,9 +33513,9 @@ CommitDate: Thu Sep 9 05:17:39 2004 +0000 Mon Oct 16 2000 Jakub Jelinek - build from CVS archive -:100644 100644 981ba9ae 38ab9cb8 M .cvsignore -:100644 100644 0c61941d 3c3c4e94 M glibc.spec -:100644 100644 c2993c26 0bbdf831 M sources +:100644 100644 981ba9a 38ab9cb M .cvsignore +:100644 100644 0c61941 3c3c4e9 M glibc.spec +:100644 100644 c2993c2 0bbdf83 M sources commit 1ced64dde7c2a6e8b411605d00b649b0edbfb256 Author: cvsdist @@ -32393,9 +33527,9 @@ CommitDate: Thu Sep 9 05:17:10 2004 +0000 Wed Sep 13 2000 Jakub Jelinek - build from CVS archive -:100644 100644 536ff86a 981ba9ae M .cvsignore -:100644 100644 977c7552 0c61941d M glibc.spec -:100644 100644 a9c6b66c c2993c26 M sources +:100644 100644 536ff86 981ba9a M .cvsignore +:100644 100644 977c755 0c61941 M glibc.spec +:100644 100644 a9c6b66 c2993c2 M sources commit 742e23890a3fd90e921d99ebc3db4b6abe043b32 Author: cvsdist @@ -32405,7 +33539,7 @@ CommitDate: Thu Sep 9 05:16:57 2004 +0000 auto-import glibc-2.1.92-14.2.4 from glibc-2.1.92-14.2.4.src.rpm -:100644 100644 e0cb9498 977c7552 M glibc.spec +:100644 100644 e0cb949 977c755 M glibc.spec commit 8200dbbd45ec46eeaf2a5d25424786d8f9ef457d Author: cvsdist @@ -32417,9 +33551,9 @@ CommitDate: Thu Sep 9 05:16:54 2004 +0000 Wed Aug 30 2000 Jakub Jelinek - build from CVS archive -:100644 100644 e69de29b 536ff86a M .cvsignore -:000000 100644 00000000 e0cb9498 A glibc.spec -:100644 100644 e69de29b a9c6b66c M sources +:100644 100644 e69de29 536ff86 M .cvsignore +:000000 100644 0000000 e0cb949 A glibc.spec +:100644 100644 e69de29 a9c6b66 M sources commit f2c89a195bdc5c23254376c49f7df070e47c7ec9 Author: cvsdist @@ -32429,6 +33563,6 @@ CommitDate: Thu Sep 9 05:16:51 2004 +0000 Setup of module glibc -:000000 100644 00000000 e69de29b A .cvsignore -:000000 100644 00000000 d4168e91 A Makefile -:000000 100644 00000000 e69de29b A sources +:000000 100644 0000000 e69de29 A .cvsignore +:000000 100644 0000000 d4168e9 A Makefile +:000000 100644 0000000 e69de29 A sources diff --git a/patch-git.lua b/patch-git.lua index 696dc07..d43a928 100644 --- a/patch-git.lua +++ b/patch-git.lua @@ -551,8 +551,8 @@ local function generate_files() -- patch depth sorting below). To include committer dates, use -- --pretty=fuller. check_git( - 'log --first-parent --no-renames --raw --pretty=fuller --date=default ' - .. log_branch .. ' > ' .. git_log_file) + 'log --first-parent --no-decorate --no-renames --raw --pretty=fuller' + .. ' --date=default ' .. log_branch .. ' > ' .. git_log_file) -- Atomically replace the contents of git_commit_file, confirming that -- the new Git log has been written. @@ -660,7 +660,7 @@ local function parse_commits() break end local l = string.match(line, remove_indent) - if not l then break + if not l then -- No longer the commit message. break end @@ -1720,9 +1720,7 @@ local function parse_commit_messages() -- A Patch-Git-Version commit on its own does not tell us how to -- interpret previous history. The first commit setting version/release -- must also set the patch-git version. - if patchgit_version - and patchgit_version and release_known and changelog_known - then + if patchgit_version and release_known and changelog_known then start_commit = i break end @@ -1756,14 +1754,16 @@ do Dec=12, } function git_date_to_rpm_date(s) - local wd, mon, d, y = string.match( - s, '^([A-z][a-z][a-z]) ([A-Z][a-z][a-z]) (%d+) %d%d:%d%d:%d%d (%d+)') - assert(y, s) - local m = assert(months[mon], s) - local rpmdate = string.format('%s %s %02d %04d', wd, mon, d, y) - local ymd = string.format('%04d-%02d-%02d', y, m, d) - return rpmdate, ymd + local wd, mon, d, y = string.match( + s, '^([A-Z][a-z][a-z]) ([A-Z][a-z][a-z]) (%d+) %d%d:%d%d:%d%d (%d+)') + assert(y, s) + local m = assert(months[mon], s) + local rpmdate = string.format('%s %s %02d %04d', wd, mon, d, y) + local ymd = string.format('%04d-%02d-%02d', y, m, d) + return rpmdate, ymd end + assert_eq({git_date_to_rpm_date('Fri Dec 5 14:39:48 2025 +0100')}, + {'Fri Dec 05 2025', '2025-12-05'}) end -- Tests for git_date_to_rpm_date. do @@ -2067,7 +2067,7 @@ else print('FAIL: term=' .. term .. ', status=' .. status) end end - if fail then + if failure then os.exit(1) end end diff --git a/wrap-find-debuginfo.sh b/wrap-find-debuginfo.sh index 5257de7..7bc79aa 100644 --- a/wrap-find-debuginfo.sh +++ b/wrap-find-debuginfo.sh @@ -114,6 +114,13 @@ for ldso_debug_candidate in `find "$sysroot_path" -maxdepth 2 \ fi done rm -f "$ldso_debug" +# Same logic, but for installed ld-linux*.debug files, where the depth +# is more and there may be more than one (32-bit and 64-bit) +for ldso_debug_candidate in `find "$sysroot_path/usr/lib/debug" \ + -regextype posix-extended \ + -regex '.*/ld(-.*|64|)\.so\.[0-9]+.*debug$' -type f` ; do + rm -f "$ldso_debug_candidate" +done # ld.so: Rewrite the source file paths to match the extracted # locations. First compute the arguments for invoking debugedit.